<?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 próba szczelności - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/tag/proba-szczelnosci/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/tag/proba-szczelnosci/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Tue, 25 Aug 2026 19:13:06 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1-32x32.jpg</url>
	<title>Archiwa próba szczelności - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/tag/proba-szczelnosci/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Najczęstsze błędy na budowie, które psują nawet najlepszy projekt ogrzewania podłogowego.</title>
		<link>https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Fri, 24 Apr 2026 07:40:41 +0000</pubDate>
				<category><![CDATA[Błędy wykonawcze]]></category>
		<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Energooszczędne ogrzewanie]]></category>
		<category><![CDATA[Koszty inwestycji]]></category>
		<category><![CDATA[Normy budowlane]]></category>
		<category><![CDATA[Normy techniczne]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Optymalizacja kosztów]]></category>
		<category><![CDATA[Oszczędności energii]]></category>
		<category><![CDATA[Oszczędzanie energii]]></category>
		<category><![CDATA[Poradnik inwestora]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Poradniki inwestora]]></category>
		<category><![CDATA[błędy na budowie]]></category>
		<category><![CDATA[dylatacje podłogówki]]></category>
		<category><![CDATA[jastrych]]></category>
		<category><![CDATA[koszty budowy]]></category>
		<category><![CDATA[norma pn-en 1264]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[próba ciśnieniowa]]></category>
		<category><![CDATA[próba szczelności]]></category>
		<category><![CDATA[projekt instalacji]]></category>
		<category><![CDATA[projekt ozc]]></category>
		<category><![CDATA[rotametry]]></category>
		<category><![CDATA[rozdzielacz inox]]></category>
		<category><![CDATA[rozstaw rur]]></category>
		<category><![CDATA[styropian pod wylewkę]]></category>
		<category><![CDATA[taśma brzegowa]]></category>
		<category><![CDATA[usterki hydrauliczne]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=4403</guid>

					<description><![CDATA[<p>Zdecydowałeś się na nowoczesną instalację płaszczyznową, zapłaciłeś za profesjonalne wyliczenia OZC i kupiłeś drogi rozdzielacz? To świetny start, ale niestety to za mało, aby spać spokojnie. Prawdziwy test dla Twojej inwestycji odbywa się w momencie zalewania rur betonem. To właśnie w tej fazie najczęściej dochodzi do kosztownych pomyłek z winy pośpiechu i brawury ekip. Pozorna oszczędność na taśmie dylatacyjnej, zalanie jastrychu bez odpowiedniego ciśnienia czy zignorowanie zaleceń dotyczących grubości izolacji to klasyczne przykłady na to, jak najczęstsze błędy na budowie, które psują nawet najlepszy projekt ogrzewania podłogowego, potrafią zrujnować Twój portfel. Skucie popękanej posadzki i naprawa wycieków kosztują kilkadziesiąt tysięcy złotych. Przeczytaj ten raport, zapisz naszą listę kontrolną i obroń swój budżet, zanim betoniarka wjedzie na plac budowy.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/">Najczęstsze błędy na budowie, które psują nawet najlepszy projekt ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-build-control {
    --rk-dark: #102536;
    --rk-navy: #14384d;
    --rk-blue: #078fbe;
    --rk-cyan: #28c9da;
    --rk-cyan-soft: #e9fbfe;
    --rk-orange: #ff6238;
    --rk-red: #d83c2f;
    --rk-red-soft: #fff0ed;
    --rk-green: #178265;
    --rk-green-soft: #eaf8f3;
    --rk-yellow: #f2b441;
    --rk-yellow-soft: #fff7e6;
    --rk-ink: #1d2c3a;
    --rk-text: #465a6b;
    --rk-muted: #687b89;
    --rk-line: #d7e6ed;
    --rk-soft: #f4f9fb;
    --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-build-control,
  #rk-build-control * {
    box-sizing: border-box;
  }

  #rk-build-control img,
  #rk-build-control svg {
    max-width: 100%;
  }

  #rk-build-control button,
  #rk-build-control input,
  #rk-build-control a,
  #rk-build-control summary,
  #rk-build-control label {
    -webkit-tap-highlight-color: transparent;
  }

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

  #rk-build-control a:hover {
    color: var(--rk-red);
  }

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

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

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

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

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

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

  #rk-build-control strong {
    color: var(--rk-dark);
  }

  #rk-build-control section[id] {
    scroll-margin-top: 30px;
  }

  #rk-build-control .rk-build-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-build-control .rk-build-progress-track {
    position: sticky;
    z-index: 40;
    top: 0;
    width: 100%;
    height: 5px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.9);
  }

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

  #rk-build-control .rk-build-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(38px, 6.5vw, 80px);
    color: var(--rk-white);
    background:
      radial-gradient(circle at 88% 14%, rgba(255, 98, 56, 0.34), transparent 28%),
      radial-gradient(circle at 73% 82%, rgba(40, 201, 218, 0.22), transparent 32%),
      linear-gradient(135deg, #0d2230 0%, #143b50 58%, #09647e 100%);
  }

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

  #rk-build-control .rk-build-hero::before {
    right: -135px;
    bottom: -190px;
    width: 430px;
    height: 430px;
    border: 62px solid rgba(255, 255, 255, 0.055);
  }

  #rk-build-control .rk-build-hero::after {
    right: 145px;
    bottom: -135px;
    width: 245px;
    height: 245px;
    border: 35px solid rgba(255, 98, 56, 0.13);
  }

  #rk-build-control .rk-build-badge {
    display: inline-flex;
    gap: 10px;
    align-items: center;
    margin: 0 0 24px;
    padding: 8px 15px;
    border: 1px solid rgba(255, 255, 255, 0.23);
    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-build-control .rk-build-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-build-control .rk-build-hero h2 {
    max-width: 1080px;
    margin-bottom: 24px;
    color: var(--rk-white);
    font-size: clamp(2.05rem, 5.1vw, 3.9rem);
    letter-spacing: -0.055em;
  }

  #rk-build-control .rk-build-hero h2 span {
    color: #83edf5;
  }

  #rk-build-control .rk-build-hook {
    max-width: 930px;
    margin: 0 0 21px;
    padding: 20px 22px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-left: 5px solid var(--rk-orange);
    border-radius: 0 16px 16px 0;
    color: #eefbff;
    background: rgba(4, 23, 34, 0.28);
    font-size: clamp(1.02rem, 2vw, 1.22rem);
    font-weight: 760;
  }

  #rk-build-control .rk-build-hero-lead {
    max-width: 970px;
    margin-bottom: 25px;
    color: #d8e8ee;
    font-size: clamp(1rem, 1.8vw, 1.16rem);
  }

  #rk-build-control .rk-build-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 26px;
    color: #d8e8ee;
    font-size: 0.84rem;
    font-weight: 800;
  }

  #rk-build-control .rk-build-hero-meta span {
    display: inline-flex;
    gap: 8px;
    align-items: center;
  }

  #rk-build-control .rk-build-hero-meta span::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--rk-orange);
  }

  #rk-build-control .rk-build-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding: 18px clamp(20px, 4vw, 52px);
    border-bottom: 1px solid var(--rk-line);
    background: #f8fbfc;
  }

  #rk-build-control .rk-build-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 8px 14px;
    border: 1px solid #c9dce5;
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: 0.8rem;
    font-weight: 850;
    line-height: 1.3;
    text-decoration: none;
  }

  #rk-build-control .rk-build-nav a:hover,
  #rk-build-control .rk-build-nav a:focus-visible {
    border-color: var(--rk-blue);
    color: var(--rk-white);
    background: var(--rk-blue);
    outline: none;
  }

  #rk-build-control .rk-build-content {
    padding: clamp(26px, 5.2vw, 72px);
  }

  #rk-build-control .rk-build-section {
    padding: clamp(24px, 4.2vw, 54px) 0;
    border-bottom: 1px solid var(--rk-line);
  }

  #rk-build-control .rk-build-section:last-child {
    border-bottom: 0;
  }

  #rk-build-control .rk-build-section-head {
    display: grid;
    grid-template-columns: 62px minmax(0, 1fr);
    gap: 20px;
    align-items: start;
    margin-bottom: 25px;
  }

  #rk-build-control .rk-build-section-no {
    display: grid;
    place-items: center;
    width: 62px;
    height: 62px;
    border-radius: 18px;
    color: var(--rk-white);
    background: linear-gradient(135deg, var(--rk-blue), var(--rk-cyan));
    box-shadow: 0 12px 25px rgba(7, 143, 190, 0.18);
    font-size: 0.84rem;
    font-weight: 950;
    letter-spacing: 0.05em;
  }

  #rk-build-control .rk-build-section-head p {
    max-width: 930px;
    margin: 0;
  }

  #rk-build-control .rk-build-answer {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(250px, 0.42fr);
    gap: 26px;
    align-items: stretch;
    padding: clamp(24px, 4vw, 42px);
    border: 1px solid #bce8ef;
    border-radius: 24px;
    background: linear-gradient(135deg, #f2fdff, #ffffff 58%);
  }

  #rk-build-control .rk-build-answer h3 {
    font-size: clamp(1.35rem, 3vw, 2rem);
  }

  #rk-build-control .rk-build-answer p:last-child {
    margin-bottom: 0;
  }

  #rk-build-control .rk-build-answer-verdict {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 24px;
    border-radius: 20px;
    color: var(--rk-white);
    background: linear-gradient(145deg, var(--rk-dark), var(--rk-navy));
  }

  #rk-build-control .rk-build-answer-verdict span {
    display: block;
    margin-bottom: 8px;
    color: #83edf5;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
  }

  #rk-build-control .rk-build-answer-verdict strong {
    color: var(--rk-white);
    font-size: clamp(1.22rem, 2.6vw, 1.7rem);
    line-height: 1.22;
  }

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

  #rk-build-control .rk-build-flow-card {
    position: relative;
    min-height: 190px;
    padding: 26px;
    border: 1px solid var(--rk-line);
    border-radius: 22px;
    background: var(--rk-white);
  }

  #rk-build-control .rk-build-flow-card:not(:last-child)::after {
    content: "→";
    position: absolute;
    z-index: 3;
    top: 50%;
    right: -25px;
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    color: var(--rk-white);
    background: var(--rk-orange);
    transform: translateY(-50%);
    font-weight: 950;
  }

  #rk-build-control .rk-build-flow-card span {
    display: inline-flex;
    margin-bottom: 15px;
    padding: 6px 10px;
    border-radius: 999px;
    color: var(--rk-blue);
    background: var(--rk-cyan-soft);
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #rk-build-control .rk-build-flow-card p:last-child {
    margin-bottom: 0;
  }

  #rk-build-control .rk-build-formulas {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-top: 26px;
  }

  #rk-build-control .rk-build-formula {
    padding: 24px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-soft);
  }

  #rk-build-control .rk-build-formula code {
    display: block;
    margin: 12px 0 14px;
    padding: 14px 16px;
    border-radius: 12px;
    color: #eafcff;
    background: var(--rk-dark);
    font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
    font-size: clamp(0.95rem, 2vw, 1.12rem);
    font-weight: 800;
    line-height: 1.45;
    white-space: normal;
  }

  #rk-build-control .rk-build-formula p:last-child {
    margin-bottom: 0;
  }

  #rk-build-control .rk-build-note,
  #rk-build-control .rk-build-warning,
  #rk-build-control .rk-build-tip {
    margin: 25px 0;
    padding: 22px 24px;
    border-radius: 18px;
  }

  #rk-build-control .rk-build-note {
    border-left: 5px solid var(--rk-blue);
    background: var(--rk-cyan-soft);
  }

  #rk-build-control .rk-build-warning {
    border-left: 5px solid var(--rk-red);
    background: var(--rk-red-soft);
  }

  #rk-build-control .rk-build-tip {
    border-left: 5px solid var(--rk-green);
    background: var(--rk-green-soft);
  }

  #rk-build-control .rk-build-note p:last-child,
  #rk-build-control .rk-build-warning p:last-child,
  #rk-build-control .rk-build-tip p:last-child {
    margin-bottom: 0;
  }

  #rk-build-control .rk-build-table-wrap {
    margin: 28px 0;
    border: 1px solid var(--rk-line);
    border-radius: 22px;
    overflow: hidden;
  }

  #rk-build-control .rk-build-table {
    width: 100%;
    border: 0;
    border-collapse: collapse;
    table-layout: fixed;
    margin: 0;
    background: var(--rk-white);
  }

  #rk-build-control .rk-build-table th,
  #rk-build-control .rk-build-table td {
    padding: 17px 18px;
    border: 0;
    border-bottom: 1px solid var(--rk-line);
    vertical-align: top;
    text-align: left;
  }

  #rk-build-control .rk-build-table th {
    color: var(--rk-white);
    background: var(--rk-dark);
    font-size: 0.76rem;
    font-weight: 900;
    letter-spacing: 0.05em;
    line-height: 1.35;
    text-transform: uppercase;
  }

  #rk-build-control .rk-build-table td {
    color: var(--rk-text);
    font-size: 0.9rem;
    line-height: 1.58;
  }

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

  #rk-build-control .rk-build-table tbody tr:nth-child(even) td {
    background: #f8fbfc;
  }

  #rk-build-control .rk-build-status {
    display: inline-flex;
    padding: 5px 9px;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 900;
    letter-spacing: 0.04em;
    line-height: 1.25;
    text-transform: uppercase;
  }

  #rk-build-control .rk-build-status.is-red {
    color: #a52e22;
    background: #ffe2dc;
  }

  #rk-build-control .rk-build-status.is-orange {
    color: #8c5419;
    background: #fff0cd;
  }

  #rk-build-control .rk-build-status.is-green {
    color: #176f58;
    background: #dff4eb;
  }

  #rk-build-control .rk-build-responsibility {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
    margin-top: 28px;
  }

  #rk-build-control .rk-build-responsibility-card {
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-white);
  }

  #rk-build-control .rk-build-responsibility-card > span {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    margin-bottom: 15px;
    border-radius: 13px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: 0.74rem;
    font-weight: 950;
  }

  #rk-build-control .rk-build-responsibility-card p:last-child {
    margin-bottom: 0;
    font-size: 0.88rem;
    line-height: 1.62;
  }

  #rk-build-control .rk-build-audit {
    overflow: hidden;
    margin-top: 30px;
    border: 1px solid #b9dce6;
    border-radius: 26px;
    background: var(--rk-white);
    box-shadow: 0 18px 45px rgba(16, 37, 54, 0.09);
  }

  #rk-build-control .rk-build-audit-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 310px;
    gap: 24px;
    align-items: center;
    padding: clamp(24px, 4vw, 40px);
    color: var(--rk-white);
    background: linear-gradient(135deg, var(--rk-dark), #14516a);
  }

  #rk-build-control .rk-build-audit-head h3 {
    margin-bottom: 10px;
    color: var(--rk-white);
  }

  #rk-build-control .rk-build-audit-head p {
    margin: 0;
    color: #d8e8ee;
  }

  #rk-build-control .rk-build-audit-score {
    padding: 20px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 19px;
    background: rgba(255, 255, 255, 0.08);
  }

  #rk-build-control .rk-build-audit-score-label {
    display: block;
    color: #b9dce6;
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #rk-build-control .rk-build-audit-score strong {
    display: block;
    margin: 4px 0 3px;
    color: var(--rk-white);
    font-size: clamp(2rem, 5vw, 3.1rem);
    line-height: 1;
  }

  #rk-build-control .rk-build-audit-score small {
    color: #d8e8ee;
    font-weight: 750;
  }

  #rk-build-control .rk-build-audit-bar {
    height: 12px;
    overflow: hidden;
    background: #dcebf0;
  }

  #rk-build-control .rk-build-audit-fill {
    width: 0;
    height: 100%;
    background: var(--rk-red);
    transition: width 0.24s ease, background 0.24s ease;
  }

  #rk-build-control .rk-build-audit-result {
    display: grid;
    grid-template-columns: 160px minmax(0, 1fr);
    gap: 22px;
    align-items: center;
    padding: 24px clamp(22px, 4vw, 38px);
    border-bottom: 1px solid var(--rk-line);
    background: var(--rk-red-soft);
  }

  #rk-build-control .rk-build-audit-signal {
    display: grid;
    place-items: center;
    min-height: 76px;
    padding: 12px;
    border-radius: 16px;
    color: var(--rk-white);
    background: var(--rk-red);
    font-size: 1.18rem;
    font-weight: 950;
    line-height: 1.18;
    text-align: center;
  }

  #rk-build-control .rk-build-audit-result p {
    margin: 0;
    font-weight: 740;
  }

  #rk-build-control .rk-build-audit-body {
    padding: clamp(22px, 4vw, 38px);
  }

  #rk-build-control .rk-build-audit-stage-nav {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 26px;
  }

  #rk-build-control .rk-build-audit-stage-nav a {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 78px;
    padding: 12px;
    border: 1px solid var(--rk-line);
    border-radius: 15px;
    color: var(--rk-dark);
    background: var(--rk-soft);
    text-align: center;
    text-decoration: none;
  }

  #rk-build-control .rk-build-audit-stage-nav a span {
    color: var(--rk-blue);
    font-size: 0.67rem;
    font-weight: 950;
    letter-spacing: 0.07em;
    text-transform: uppercase;
  }

  #rk-build-control .rk-build-audit-stage-nav a strong {
    font-size: 0.78rem;
    line-height: 1.35;
  }

  #rk-build-control .rk-build-audit-stage-nav a:hover,
  #rk-build-control .rk-build-audit-stage-nav a:focus-visible {
    border-color: var(--rk-blue);
    background: var(--rk-cyan-soft);
    outline: none;
  }

  #rk-build-control .rk-build-audit-groups {
    display: grid;
    gap: 18px;
  }

  #rk-build-control .rk-build-audit-group {
    scroll-margin-top: 30px;
    padding: 24px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: #fbfdfe;
  }

  #rk-build-control .rk-build-audit-group-head {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: center;
    margin-bottom: 16px;
  }

  #rk-build-control .rk-build-audit-group-head h4 {
    margin: 0;
  }

  #rk-build-control .rk-build-stage-count {
    flex: 0 0 auto;
    padding: 5px 9px;
    border-radius: 999px;
    color: var(--rk-blue);
    background: var(--rk-cyan-soft);
    font-size: 0.7rem;
    font-weight: 900;
  }

  #rk-build-control .rk-build-checks {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  #rk-build-control .rk-build-check {
    position: relative;
    display: grid;
    grid-template-columns: 25px minmax(0, 1fr);
    gap: 11px;
    align-items: start;
    min-height: 66px;
    margin: 0;
    padding: 14px;
    border: 1px solid #dbe7ec;
    border-radius: 14px;
    color: var(--rk-text);
    background: var(--rk-white);
    cursor: pointer;
    font-size: 0.84rem;
    font-weight: 690;
    line-height: 1.46;
  }

  #rk-build-control .rk-build-check:hover {
    border-color: #91cbd8;
    background: #f4fcfe;
  }

  #rk-build-control .rk-build-check input {
    width: 22px;
    height: 22px;
    margin: 1px 0 0;
    accent-color: var(--rk-green);
  }

  #rk-build-control .rk-build-check em {
    display: inline-flex;
    margin-left: 6px;
    padding: 2px 6px;
    border-radius: 999px;
    color: #a52e22;
    background: #ffe2dc;
    font-size: 0.61rem;
    font-style: normal;
    font-weight: 950;
    letter-spacing: 0.04em;
    text-transform: uppercase;
  }

  #rk-build-control .rk-build-audit-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    justify-content: space-between;
    align-items: center;
    margin-top: 22px;
  }

  #rk-build-control .rk-build-reset {
    min-height: 46px;
    padding: 10px 16px;
    border: 0;
    border-radius: 12px;
    color: var(--rk-white);
    background: var(--rk-dark);
    cursor: pointer;
    font: inherit;
    font-size: 0.78rem;
    font-weight: 900;
  }

  #rk-build-control .rk-build-reset:hover,
  #rk-build-control .rk-build-reset:focus-visible {
    background: var(--rk-blue);
    outline: 3px solid rgba(40, 201, 218, 0.24);
  }

  #rk-build-control .rk-build-missing {
    color: var(--rk-muted);
    font-size: 0.8rem;
    font-weight: 800;
  }

  #rk-build-control .rk-build-disclaimer {
    margin: 0 clamp(22px, 4vw, 38px) clamp(22px, 4vw, 38px);
    padding: 17px 19px;
    border-radius: 14px;
    color: var(--rk-text);
    background: var(--rk-yellow-soft);
    font-size: 0.79rem;
    line-height: 1.55;
  }

  #rk-build-control .rk-build-gates {
    display: grid;
    gap: 22px;
  }

  #rk-build-control .rk-build-gate {
    display: grid;
    grid-template-columns: 128px minmax(0, 1fr);
    gap: 24px;
    padding: 28px;
    border: 1px solid var(--rk-line);
    border-radius: 22px;
    background: var(--rk-white);
  }

  #rk-build-control .rk-build-gate-no {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 126px;
    padding: 16px;
    border-radius: 18px;
    color: var(--rk-white);
    background: linear-gradient(145deg, var(--rk-dark), var(--rk-navy));
    text-align: center;
  }

  #rk-build-control .rk-build-gate-no span {
    color: #83edf5;
    font-size: 0.68rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #rk-build-control .rk-build-gate-no strong {
    color: var(--rk-white);
    font-size: 2.5rem;
    line-height: 1;
  }

  #rk-build-control .rk-build-gate-content p:last-child {
    margin-bottom: 0;
  }

  #rk-build-control .rk-build-gate-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-top: 18px;
  }

  #rk-build-control .rk-build-gate-box {
    padding: 18px;
    border-radius: 15px;
    background: var(--rk-soft);
  }

  #rk-build-control .rk-build-gate-box h4 {
    margin-bottom: 7px;
    font-size: 0.9rem;
  }

  #rk-build-control .rk-build-gate-box ul {
    margin: 0;
    padding-left: 20px;
    color: var(--rk-text);
  }

  #rk-build-control .rk-build-gate-box li {
    margin: 0 0 6px;
    padding: 0;
    font-size: 0.84rem;
    line-height: 1.5;
  }

  #rk-build-control .rk-build-gate-box li:last-child {
    margin-bottom: 0;
  }

  #rk-build-control .rk-build-stop-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: 26px;
  }

  #rk-build-control .rk-build-stop-card {
    padding: 23px;
    border: 1px solid #ffd2ca;
    border-radius: 19px;
    background: var(--rk-red-soft);
  }

  #rk-build-control .rk-build-stop-card > span {
    display: inline-flex;
    margin-bottom: 12px;
    padding: 5px 9px;
    border-radius: 999px;
    color: var(--rk-white);
    background: var(--rk-red);
    font-size: 0.66rem;
    font-weight: 950;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #rk-build-control .rk-build-stop-card p:last-child {
    margin-bottom: 0;
    font-size: 0.86rem;
    line-height: 1.55;
  }

  #rk-build-control .rk-build-docs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: 26px;
  }

  #rk-build-control .rk-build-doc {
    padding: 24px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-white);
  }

  #rk-build-control .rk-build-doc > span {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    margin-bottom: 15px;
    border-radius: 14px;
    color: var(--rk-white);
    background: linear-gradient(135deg, var(--rk-blue), var(--rk-cyan));
    font-size: 0.75rem;
    font-weight: 950;
  }

  #rk-build-control .rk-build-doc p:last-child {
    margin-bottom: 0;
    font-size: 0.87rem;
    line-height: 1.6;
  }

  #rk-build-control .rk-build-faq-list {
    display: grid;
    gap: 12px;
  }

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

  #rk-build-control .rk-build-faq summary {
    position: relative;
    display: block;
    padding: 18px 55px 18px 20px;
    color: var(--rk-dark);
    cursor: pointer;
    font-weight: 870;
    line-height: 1.45;
    list-style: none;
  }

  #rk-build-control .rk-build-faq summary::-webkit-details-marker {
    display: none;
  }

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

  #rk-build-control .rk-build-faq[open] summary::after {
    content: "−";
    background: var(--rk-orange);
  }

  #rk-build-control .rk-build-faq-answer {
    padding: 0 20px 20px;
  }

  #rk-build-control .rk-build-faq-answer p:last-child {
    margin-bottom: 0;
  }

  #rk-build-control .rk-build-sources {
    padding: 22px 24px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-soft);
  }

  #rk-build-control .rk-build-sources ul {
    margin: 0;
    padding-left: 22px;
  }

  #rk-build-control .rk-build-sources li {
    margin-bottom: 10px;
    color: var(--rk-text);
  }

  #rk-build-control .rk-build-sources li:last-child {
    margin-bottom: 0;
  }

  #rk-build-control .rk-build-small {
    margin-top: 15px;
    color: var(--rk-muted);
    font-size: 0.78rem;
    line-height: 1.55;
  }

  #rk-build-control .rk-build-cta {
    margin: clamp(30px, 5vw, 58px) 0;
    padding: clamp(28px, 5vw, 54px);
    border-radius: 26px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 90% 10%, rgba(255, 98, 56, 0.26), transparent 32%),
      linear-gradient(135deg, var(--rk-dark), #17485e);
    text-align: center;
  }

  #rk-build-control .rk-build-cta h3 {
    max-width: 920px;
    margin: 0 auto 15px;
    color: var(--rk-white);
    font-size: clamp(1.45rem, 3.4vw, 2.35rem);
  }

  #rk-build-control .rk-build-cta p {
    max-width: 930px;
    margin: 0 auto 24px;
    color: #d8e8ee;
  }

  #rk-build-control .rk-build-cta-link {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-height: 58px;
    padding: 14px 26px;
    border-radius: 15px;
    color: var(--rk-white) !important;
    background: linear-gradient(90deg, var(--rk-orange), #f04432);
    box-shadow: 0 14px 30px rgba(216, 60, 47, 0.25);
    font-weight: 950;
    line-height: 1.3;
    text-decoration: none !important;
  }

  #rk-build-control .rk-build-cta-link:hover,
  #rk-build-control .rk-build-cta-link:focus-visible {
    color: var(--rk-white) !important;
    background: linear-gradient(90deg, #f04432, var(--rk-orange));
    transform: translateY(-1px);
    outline: 3px solid rgba(255, 255, 255, 0.18);
  }

  #rk-build-control .rk-build-cta small {
    display: block;
    max-width: 850px;
    margin: 14px auto 0;
    color: #b9cbd4;
    font-size: 0.72rem;
    line-height: 1.45;
  }

  #rk-build-control .rk-build-author-box {
    overflow: hidden;
    border: 1px solid #cbdfe7;
    border-radius: 26px;
    background: var(--rk-white);
  }

  #rk-build-control .rk-build-author-head {
    display: flex;
    justify-content: space-between;
    gap: 22px;
    align-items: center;
    padding: 28px clamp(24px, 4vw, 42px);
    border-bottom: 5px solid var(--rk-cyan);
    color: var(--rk-white);
    background: linear-gradient(135deg, var(--rk-dark), #17485e);
  }

  #rk-build-control .rk-build-author-head h3 {
    margin-bottom: 7px;
    color: var(--rk-white);
    font-size: clamp(1.55rem, 3.4vw, 2.35rem);
  }

  #rk-build-control .rk-build-author-head p {
    margin: 0;
    color: #d8e8ee;
  }

  #rk-build-control .rk-build-author-mark {
    flex: 0 0 auto;
    padding: 10px 16px;
    border: 1px solid rgba(40, 201, 218, 0.4);
    border-radius: 14px;
    color: #72eaf4;
    font-size: 0.75rem;
    font-weight: 950;
    letter-spacing: 0.1em;
  }

  #rk-build-control .rk-build-author-main {
    display: grid;
    grid-template-columns: 330px minmax(0, 1fr);
  }

  #rk-build-control .rk-build-author-profile {
    padding: 38px 28px;
    border-right: 1px solid var(--rk-line);
    background: #f3f8fa;
    text-align: center;
  }

  #rk-build-control .rk-build-author-profile img {
    width: 174px;
    height: 174px;
    margin: 0 auto 20px;
    border: 9px solid var(--rk-white);
    border-radius: 50%;
    object-fit: cover;
    box-shadow: 0 16px 38px rgba(16, 37, 54, 0.14);
  }

  #rk-build-control .rk-build-author-profile h4 {
    margin-bottom: 8px;
    font-size: 1.3rem;
  }

  #rk-build-control .rk-build-author-role {
    display: block;
    color: var(--rk-blue);
    font-size: 0.74rem;
    font-weight: 950;
    letter-spacing: 0.07em;
    line-height: 1.55;
    text-transform: uppercase;
  }

  #rk-build-control .rk-build-author-content {
    padding: clamp(28px, 4vw, 46px);
  }

  #rk-build-control .rk-build-quote {
    position: relative;
    margin-bottom: 26px;
    padding: 26px 26px 26px 54px;
    border-radius: 19px;
    background: var(--rk-cyan-soft);
  }

  #rk-build-control .rk-build-quote::before {
    content: "“";
    position: absolute;
    top: 8px;
    left: 18px;
    color: var(--rk-cyan);
    font-family: Georgia, serif;
    font-size: 3.4rem;
    font-weight: 900;
    line-height: 1;
  }

  #rk-build-control .rk-build-quote blockquote {
    margin: 0;
    padding: 0;
    border: 0;
    color: var(--rk-dark);
    font-size: clamp(1.04rem, 2vw, 1.25rem);
    font-style: italic;
    font-weight: 820;
    line-height: 1.62;
  }

  #rk-build-control .rk-build-author-tabs {
    position: relative;
  }

  #rk-build-control .rk-build-author-radio {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    opacity: 0;
    overflow: hidden;
  }

  #rk-build-control .rk-build-author-labels {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border: 1px solid var(--rk-line);
    border-radius: 15px 15px 0 0;
    overflow: hidden;
    background: var(--rk-soft);
  }

  #rk-build-control .rk-build-author-labels label {
    display: grid;
    place-items: center;
    min-height: 60px;
    margin: 0;
    padding: 11px;
    border-right: 1px solid var(--rk-line);
    color: var(--rk-muted);
    cursor: pointer;
    font-size: 0.72rem;
    font-weight: 950;
    letter-spacing: 0.04em;
    line-height: 1.3;
    text-align: center;
    text-transform: uppercase;
  }

  #rk-build-control .rk-build-author-labels label:last-child {
    border-right: 0;
  }

  #rk-build-control .rk-build-author-labels label:hover {
    color: var(--rk-blue);
    background: #eefbfe;
  }

  #rk-build-control .rk-build-author-panels {
    min-height: 200px;
    padding: 25px;
    border: 1px solid var(--rk-line);
    border-top: 0;
    border-radius: 0 0 15px 15px;
  }

  #rk-build-control .rk-build-author-panel {
    display: none;
  }

  #rk-build-control .rk-build-author-panel p:last-child {
    margin-bottom: 0;
  }

  #rk-build-author-about:checked ~ .rk-build-author-labels label[for="rk-build-author-about"],
  #rk-build-author-exp:checked ~ .rk-build-author-labels label[for="rk-build-author-exp"],
  #rk-build-author-sites:checked ~ .rk-build-author-labels label[for="rk-build-author-sites"] {
    color: var(--rk-blue);
    background: var(--rk-white);
    box-shadow: inset 0 -5px 0 var(--rk-blue);
  }

  #rk-build-author-about:focus-visible ~ .rk-build-author-labels label[for="rk-build-author-about"],
  #rk-build-author-exp:focus-visible ~ .rk-build-author-labels label[for="rk-build-author-exp"],
  #rk-build-author-sites:focus-visible ~ .rk-build-author-labels label[for="rk-build-author-sites"] {
    outline: 3px solid rgba(40, 201, 218, 0.28);
    outline-offset: -3px;
  }

  #rk-build-author-about:checked ~ .rk-build-author-panels .rk-build-author-about,
  #rk-build-author-exp:checked ~ .rk-build-author-panels .rk-build-author-exp,
  #rk-build-author-sites:checked ~ .rk-build-author-panels .rk-build-author-sites {
    display: block;
  }

  #rk-build-control .rk-build-portals {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 16px;
  }

  #rk-build-control .rk-build-portals a {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    padding: 9px 14px;
    border: 1px solid #c9dce5;
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-white);
    text-decoration: none;
  }

  #rk-build-control .rk-build-portals a:hover,
  #rk-build-control .rk-build-portals a:focus-visible {
    border-color: var(--rk-blue);
    color: var(--rk-white);
    background: var(--rk-blue);
    outline: none;
  }

  @media (max-width: 1120px) {
    #rk-build-control .rk-build-responsibility {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    #rk-build-control .rk-build-stop-grid,
    #rk-build-control .rk-build-docs {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-build-control .rk-build-author-main {
      grid-template-columns: 280px minmax(0, 1fr);
    }
  }

  @media (max-width: 860px) {
    #rk-build-control {
      font-size: 17px;
    }

    #rk-build-control .rk-build-answer,
    #rk-build-control .rk-build-audit-head,
    #rk-build-control .rk-build-audit-result,
    #rk-build-control .rk-build-author-main {
      grid-template-columns: 1fr;
    }

    #rk-build-control .rk-build-flow {
      grid-template-columns: 1fr;
    }

    #rk-build-control .rk-build-flow-card:not(:last-child)::after {
      top: auto;
      right: 50%;
      bottom: -25px;
      transform: translateX(50%) rotate(90deg);
    }

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

    #rk-build-control .rk-build-audit-stage-nav {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-build-control .rk-build-author-profile {
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
    }
  }

  @media (max-width: 720px) {
    #rk-build-control .rk-build-shell {
      border-radius: 22px;
    }

    #rk-build-control .rk-build-section-head {
      grid-template-columns: 48px minmax(0, 1fr);
      gap: 14px;
    }

    #rk-build-control .rk-build-section-no {
      width: 48px;
      height: 48px;
      border-radius: 14px;
      font-size: 0.72rem;
    }

    #rk-build-control .rk-build-formulas,
    #rk-build-control .rk-build-checks,
    #rk-build-control .rk-build-gate-grid,
    #rk-build-control .rk-build-stop-grid,
    #rk-build-control .rk-build-docs {
      grid-template-columns: 1fr;
    }

    #rk-build-control .rk-build-gate {
      grid-template-columns: 1fr;
    }

    #rk-build-control .rk-build-gate-no {
      min-height: 86px;
      flex-direction: row;
      gap: 10px;
    }

    #rk-build-control .rk-build-table-wrap {
      overflow: visible;
      border: 0;
      border-radius: 0;
    }

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

    #rk-build-control .rk-build-table {
      background: transparent;
    }

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

    #rk-build-control .rk-build-table tr {
      margin-bottom: 14px;
      padding: 5px 18px;
      border: 1px solid var(--rk-line);
      border-radius: 18px;
      background: var(--rk-white);
      box-shadow: 0 9px 24px rgba(16, 37, 54, 0.05);
    }

    #rk-build-control .rk-build-table td,
    #rk-build-control .rk-build-table tbody tr:nth-child(even) td {
      padding: 13px 0;
      border-bottom: 1px solid var(--rk-line);
      background: transparent;
    }

    #rk-build-control .rk-build-table td:last-child {
      border-bottom: 0;
    }

    #rk-build-control .rk-build-table td::before {
      content: attr(data-label);
      display: block;
      margin-bottom: 5px;
      color: var(--rk-blue);
      font-size: 0.65rem;
      font-weight: 950;
      letter-spacing: 0.06em;
      text-transform: uppercase;
    }
  }

  @media (max-width: 560px) {
    #rk-build-control {
      margin-top: 18px;
      font-size: 16px;
    }

    #rk-build-control .rk-build-hero,
    #rk-build-control .rk-build-content {
      padding-left: 20px;
      padding-right: 20px;
    }

    #rk-build-control .rk-build-nav {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      padding-left: 16px;
      padding-right: 16px;
    }

    #rk-build-control .rk-build-nav a {
      justify-content: center;
      text-align: center;
    }

    #rk-build-control .rk-build-responsibility,
    #rk-build-control .rk-build-audit-stage-nav,
    #rk-build-control .rk-build-author-labels {
      grid-template-columns: 1fr;
    }

    #rk-build-control .rk-build-author-labels {
      border-radius: 15px 15px 0 0;
    }

    #rk-build-control .rk-build-author-labels label {
      min-height: 48px;
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
    }

    #rk-build-control .rk-build-author-labels label:last-child {
      border-bottom: 0;
    }

    #rk-build-control .rk-build-author-head {
      align-items: flex-start;
      flex-direction: column;
    }

    #rk-build-control .rk-build-author-mark {
      align-self: flex-start;
    }

    #rk-build-control .rk-build-author-panels {
      min-height: 0;
      padding: 20px;
    }

    #rk-build-control .rk-build-audit-result {
      padding: 20px;
    }

    #rk-build-control .rk-build-audit-signal {
      min-height: 60px;
    }

    #rk-build-control .rk-build-audit-actions {
      align-items: stretch;
      flex-direction: column;
    }

    #rk-build-control .rk-build-reset {
      width: 100%;
    }

    #rk-build-control .rk-build-portals {
      align-items: stretch;
      flex-direction: column;
    }

    #rk-build-control .rk-build-portals a {
      justify-content: center;
      text-align: center;
    }
  }

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

<article id="rk-build-control" itemscope="" itemtype="https://schema.org/TechArticle" aria-labelledby="rk-build-hero-title">
  <meta itemprop="inLanguage" content="pl-PL">
  <meta itemprop="datePublished" content="2026-04-24">
  <meta itemprop="dateModified" content="2026-08-25">
  <meta itemprop="mainEntityOfPage" content="https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/">

  <div class="rk-build-shell">
    <div class="rk-build-progress-track" aria-hidden="true"><div class="rk-build-progress"></div></div>

    <header class="rk-build-hero">
      <div class="rk-build-badge">Kontrola zgodności • 5 bramek odbiorowych</div>
      <h2 id="rk-build-hero-title" itemprop="headline">Projekt był dobry. <span>Budowa zmieniła dane wejściowe.</span></h2>
      <div class="rk-build-hook">Najgroźniejsze odstępstwo nie musi wyglądać jak fuszerka. Czasem jest nim przesunięcie rozdzielacza, zmiana okładziny, cieńsza izolacja albo inny układ ścian — decyzja podjęta już po wykonaniu obliczeń.</div>
      <p class="rk-build-hero-lead" itemprop="description">Najczęstsze błędy na budowie, które psują nawet najlepszy projekt ogrzewania podłogowego, powstają wtedy, gdy rzeczywisty budynek przestaje odpowiadać danym, dla których policzono moc, rozstaw rur, długości pętli, przepływy i temperaturę zasilania. Ten poradnik pokazuje, które zmiany wymagają ponownej kontroli oraz jak przeprowadzić odbiór w pięciu etapach.</p>
      <div class="rk-build-hero-meta">
        <span>Autor: Robert Kucharski</span>
        <span>Aktualizacja techniczna: 25 sierpnia 2026 r.</span>
        <span>Poziom: inwestor • wykonawca • kierownik budowy</span>
      </div>
    </header>

    <nav class="rk-build-nav" aria-label="Nawigacja po artykule">
      <a href="#rk-build-decision">Krótka odpowiedź</a>
      <a href="#rk-build-changes">Zmiany wymagające kontroli</a>
      <a href="#rk-build-audit">Kontrola 5 etapów</a>
      <a href="#rk-build-gates">Odbiory etapowe</a>
      <a href="#rk-build-stop">Kiedy powiedzieć STOP</a>
      <a href="#rk-build-faq">FAQ</a>
    </nav>

    <div class="rk-build-content">
      <section class="rk-build-section" id="rk-build-decision" aria-labelledby="rk-build-h2-1">
        <div class="rk-build-section-head">
          <div class="rk-build-section-no">01</div>
          <div>
            <h2 id="rk-build-h2-1">Czy dobry projekt ogrzewania podłogowego może zostać zepsuty na budowie?</h2>
            <p>Tak — jeżeli wykonanie albo sam budynek różnią się od danych przyjętych do obliczeń.</p>
          </div>
        </div>

        <div class="rk-build-answer">
          <div>
            <h3>Najkrótsza odpowiedź</h3>
            <p><strong>Projekt nie przestaje być poprawny tylko dlatego, że na budowie podjęto inną decyzję.</strong> Przestaje natomiast opisywać rzeczywisty układ. Jeżeli zmieniono izolację, stolarkę, temperaturę źródła, opór okładziny, powierzchnię aktywną, położenie rozdzielacza albo geometrię pomieszczeń, trzeba ocenić wpływ tej zmiany przed zakryciem instalacji.</p>
            <p>Najbezpieczniejsza zasada brzmi: <strong>najpierw zapis zmiany, potem decyzja projektowa, na końcu wykonanie</strong>. Kolejność odwrotna prowadzi do sytuacji, w której projekt i dokumentacja powykonawcza pokazują dwa różne budynki.</p>
          </div>
          <div class="rk-build-answer-verdict">
            <span>Zasada nadrzędna</span>
            <strong>Nie pytaj tylko: „czy rury są ułożone równo?”. Zapytaj: „czy wykonano układ, który został policzony?”.</strong>
          </div>
        </div>

        <div class="rk-build-note">
          <p><strong>Ważne rozróżnienie:</strong> szczegółowe usterki montażowe rur, rozdzielacza, dylatacji i hydrauliki omawia osobny poradnik o tym, <a href="https://projekt-ogrzewania.pl/jakie-bledy-najczesciej-popelniaja-instalatorzy-ogrzewania-podlogowego/">jakie błędy najczęściej popełniają instalatorzy ogrzewania podłogowego</a>. Ten artykuł koncentruje się na kontroli zmian między projektem a rzeczywistą budową.</p>
        </div>
      </section>

      <section class="rk-build-section" id="rk-build-logic" aria-labelledby="rk-build-h2-2">
        <div class="rk-build-section-head">
          <div class="rk-build-section-no">02</div>
          <div>
            <h2 id="rk-build-h2-2">Dlaczego drobna zmiana może naruszyć kilka obliczeń jednocześnie?</h2>
            <p>Parametry ogrzewania podłogowego tworzą system naczyń połączonych.</p>
          </div>
        </div>

        <p><a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">Profesjonalny projekt ogrzewania podłogowego</a> nie jest tylko rysunkiem przewodów. Łączy obciążenie cieplne pomieszczeń, aktywną powierzchnię podłogi, konstrukcję przegrody, opór cieplny okładziny, temperaturę wody, rozstaw rur, długość pętli, wymagany przepływ oraz stratę ciśnienia. Zmiana jednego wejścia może więc zmienić kilka wyników.</p>

        <div class="rk-build-flow" aria-label="Łańcuch wpływu zmiany budowlanej">
          <div class="rk-build-flow-card">
            <span>1. Dane projektu</span>
            <h3>Obciążenie i konstrukcja</h3>
            <p>Straty ciepła, temperatura pomieszczenia, aktywna powierzchnia, warstwy podłogi, okładzina, źródło ciepła i położenie rozdzielacza.</p>
          </div>
          <div class="rk-build-flow-card">
            <span>2. Zmiana na budowie</span>
            <h3>Inny budynek niż w obliczeniach</h3>
            <p>Przesunięta ściana, mniejsza izolacja, większe przeszklenie, dywan zamiast płytki, rozdzielacz w innym miejscu albo ograniczona powierzchnia grzejna.</p>
          </div>
          <div class="rk-build-flow-card">
            <span>3. Skutek</span>
            <h3>Inna moc i hydraulika</h3>
            <p>Może zmienić się wymagany strumień ciepła, rozstaw, temperatura zasilania, długość obiegu, przepływ, opór hydrauliczny oraz nastawa rozdzielacza.</p>
          </div>
        </div>

        <div class="rk-build-formulas">
          <div class="rk-build-formula">
            <h3>Wymagana moc z powierzchni aktywnej</h3>
            <code>q<sub>wym</sub> = Φ<sub>pom</sub> / A<sub>aktywna</sub></code>
            <p>Jeżeli zabudowa stała, wanna, wyspa lub zmiana układu pomieszczenia zmniejszy aktywną powierzchnię, na każdy pozostały metr kwadratowy przypada większe obciążenie. Nie oznacza to automatycznie, że wystarczy zagęścić rury — trzeba sprawdzić możliwości całej konstrukcji podłogi.</p>
          </div>
          <div class="rk-build-formula">
            <h3>Przepływ wynikający z mocy pętli</h3>
            <code>V̇ [m³/h] = Q [kW] / (1,163 × ΔT [K])</code>
            <p>Przepływ nie wynika z równego podziału między rotametry. Zależy od mocy przypisanej do pętli i projektowej różnicy temperatury. Po zmianie strefy lub przebiegu obiegu trzeba sprawdzić zarówno wymagany przepływ, jak i stratę ciśnienia.</p>
          </div>
        </div>

        <div class="rk-build-warning">
          <p><strong>Przykład zależności:</strong> przesunięcie rozdzielacza wydłuża odcinki przyłączeniowe kilku pętli. Nie musi zmienić zapotrzebowania pomieszczeń, ale może zmienić długości obiegów, ich opory i możliwość zrównoważenia. Dlatego sam zapis „rozdzielacz przesunięty o dwa metry” nie jest pełną odpowiedzią techniczną.</p>
        </div>
      </section>

      <section class="rk-build-section" id="rk-build-changes" aria-labelledby="rk-build-h2-3">
        <div class="rk-build-section-head">
          <div class="rk-build-section-no">03</div>
          <div>
            <h2 id="rk-build-h2-3">Które odstępstwa od projektu ogrzewania podłogowego wymagają kontroli?</h2>
            <p>Nie każda korekta oznacza przeprojektowanie całości, ale każda powinna zostać zgłoszona i oceniona przed wykonaniem.</p>
          </div>
        </div>

        <div class="rk-build-table-wrap">
          <table class="rk-build-table">
            <thead>
              <tr>
                <th style="width:22%">Zmiana na budowie</th>
                <th style="width:34%">Co może zmienić?</th>
                <th style="width:20%">Decyzja</th>
                <th style="width:24%">Co przekazać do weryfikacji?</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td data-label="Zmiana"><strong>Inna izolacja ścian, dachu lub podłogi</strong></td>
                <td data-label="Wpływ">Obciążenie cieplne pomieszczeń, straty do gruntu, wymaganą moc podłogi oraz temperaturę zasilania.</td>
                <td data-label="Decyzja"><span class="rk-build-status is-red">Sprawdzić przed rurami</span></td>
                <td data-label="Dane">Rodzaj materiału, rzeczywista grubość, deklarowana λ i przekrój warstw.</td>
              </tr>
              <tr>
                <td data-label="Zmiana"><strong>Zmiana okien, ich wymiaru albo liczby</strong></td>
                <td data-label="Wpływ">Straty przez przenikanie, infiltrację, lokalne obciążenie przy przeszkleniu i potrzebę strefy brzegowej.</td>
                <td data-label="Decyzja"><span class="rk-build-status is-red">Ponowna ocena mocy</span></td>
                <td data-label="Dane">Wymiar, współczynnik U, sposób montażu i aktualny rzut elewacji.</td>
              </tr>
              <tr>
                <td data-label="Zmiana"><strong>Przesunięcie ścian lub zmiana funkcji pomieszczenia</strong></td>
                <td data-label="Wpływ">Podział stref, temperaturę obliczeniową, powierzchnię aktywną, liczbę pętli i przypisanie sterowania.</td>
                <td data-label="Decyzja"><span class="rk-build-status is-red">Aktualizacja rzutu</span></td>
                <td data-label="Dane">Nowy rzut z wymiarami, przeznaczenie pomieszczeń i oczekiwana temperatura.</td>
              </tr>
              <tr>
                <td data-label="Zmiana"><strong>Inna okładzina podłogowa</strong></td>
                <td data-label="Wpływ">Opór cieplny nad rurą, temperaturę powierzchni, wymaganą temperaturę wody i osiągalną moc.</td>
                <td data-label="Decyzja"><span class="rk-build-status is-orange">Sprawdzić opór R</span></td>
                <td data-label="Dane">Rodzaj okładziny, grubość, podkład oraz deklarowany opór cieplny całego zestawu.</td>
              </tr>
              <tr>
                <td data-label="Zmiana"><strong>Przesunięcie rozdzielacza</strong></td>
                <td data-label="Wpływ">Długości przyłączy pętli, opory hydrauliczne, przebieg przewodów i możliwość odpowietrzania.</td>
                <td data-label="Decyzja"><span class="rk-build-status is-orange">Przeliczyć pętle</span></td>
                <td data-label="Dane">Nowa lokalizacja, odległości, wysokość montażu i dostęp serwisowy.</td>
              </tr>
              <tr>
                <td data-label="Zmiana"><strong>Inne źródło ciepła lub temperatura zasilania</strong></td>
                <td data-label="Wpływ">Dostępną moc podłogi, sprawność źródła, krzywą grzewczą, układ hydrauliczny oraz automatykę.</td>
                <td data-label="Decyzja"><span class="rk-build-status is-red">Weryfikacja całego układu</span></td>
                <td data-label="Dane">Model i parametry źródła, schemat hydrauliczny oraz projektowa temperatura zasilania i powrotu.</td>
              </tr>
              <tr>
                <td data-label="Zmiana"><strong>Inny rozstaw albo przebieg rur</strong></td>
                <td data-label="Wpływ">Moc powierzchniową, równomierność temperatury, długość obiegów, przepływy i opory.</td>
                <td data-label="Decyzja"><span class="rk-build-status is-red">Nie zmieniać „na oko”</span></td>
                <td data-label="Dane">Aktualny rzut, rzeczywista powierzchnia aktywna i przyczyna zmiany.</td>
              </tr>
              <tr>
                <td data-label="Zmiana"><strong>Inna grubość jastrychu lub poziom podłogi</strong></td>
                <td data-label="Wpływ">Położenie rury w warstwie, bezwładność, przekazywanie ciepła, dylatacje i współpracę z okładziną.</td>
                <td data-label="Decyzja"><span class="rk-build-status is-orange">Koordynacja branżowa</span></td>
                <td data-label="Dane">Rodzaj jastrychu, przekrój warstw, planowane poziomy oraz dokumentacja wykonawcza posadzki.</td>
              </tr>
              <tr>
                <td data-label="Zmiana"><strong>Większa zabudowa stała</strong></td>
                <td data-label="Wpływ">Aktywną powierzchnię oddawania ciepła, miejsca bez rur i lokalne obciążenie pozostałej podłogi.</td>
                <td data-label="Decyzja"><span class="rk-build-status is-orange">Sprawdzić powierzchnię</span></td>
                <td data-label="Dane">Rzut kuchni, szaf, wanien, kominka i innych elementów trwale związanych z podłogą.</td>
              </tr>
            </tbody>
          </table>
        </div>

        <p>Zmiana samej nazwy materiału nie zawsze ma znaczenie, ale zmiana jego parametrów — już tak. Przykładowo dwa produkty oznaczone jako styropian mogą mieć inną przewodność cieplną i wytrzymałość. Dlatego zamiast ogólnego zdania „będzie podobny materiał” potrzebne są dane z dokumentacji produktu i rzeczywisty przekrój podłogi.</p>

        <p>W przypadku okładziny warto sprawdzić nie tylko warstwę wierzchnią. <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">Wpływ okładziny na wydajność ogrzewania podłogowego</a> obejmuje także podkład, klej i sposób ułożenia. Suma oporów znajduje się nad systemem grzewczym i wpływa na warunki przekazywania ciepła.</p>
      </section>

      <section class="rk-build-section" id="rk-build-roles" aria-labelledby="rk-build-h2-4">
        <div class="rk-build-section-head">
          <div class="rk-build-section-no">04</div>
          <div>
            <h2 id="rk-build-h2-4">Kto powinien pilnować zgodności projektu z budową?</h2>
            <p>Kontrola nie może opierać się na założeniu, że „ktoś na pewno to sprawdził”.</p>
          </div>
        </div>

        <div class="rk-build-responsibility">
          <div class="rk-build-responsibility-card">
            <span>IN</span>
            <h3>Inwestor</h3>
            <p>Zgłasza zmiany funkcji, materiałów, okładzin i zabudowy. Pilnuje, aby wykonawcy pracowali na tej samej, aktualnej wersji dokumentacji.</p>
          </div>
          <div class="rk-build-responsibility-card">
            <span>PR</span>
            <h3>Projektant instalacji</h3>
            <p>Ocenia wpływ zmian na moc i hydraulikę, wskazuje potrzebne korekty oraz aktualizuje dane istotne dla wykonania i regulacji.</p>
          </div>
          <div class="rk-build-responsibility-card">
            <span>WY</span>
            <h3>Wykonawca instalacji</h3>
            <p>Porównuje warunki na budowie z projektem, nie wprowadza samowolnych zmian i zapisuje rzeczywiste długości, trasy oraz oznaczenia pętli.</p>
          </div>
          <div class="rk-build-responsibility-card">
            <span>JA</span>
            <h3>Wykonawca jastrychu</h3>
            <p>Realizuje uzgodnioną konstrukcję posadzki i pola dylatacyjne, chroni instalację oraz nie rozpoczyna pracy bez formalnego dopuszczenia do zakrycia.</p>
          </div>
          <div class="rk-build-responsibility-card">
            <span>KB</span>
            <h3>Kierownik budowy</h3>
            <p>Koordynuje kolejność robót i dokumentuje odbiory w zakresie wynikającym z inwestycji, projektu, umów oraz obowiązujących przepisów.</p>
          </div>
        </div>

        <div class="rk-build-note">
          <p><strong>Tabela ma charakter organizacyjny, a nie prawny.</strong> Formalny zakres obowiązków zależy od umów, dokumentacji inwestycji i przepisów. Technicznie najważniejsze jest jednak to, aby każda zmiana miała właściciela decyzji, datę, uzasadnienie i aktualny rysunek.</p>
        </div>
      </section>

      <section class="rk-build-section" id="rk-build-audit" aria-labelledby="rk-build-h2-5">
        <div class="rk-build-section-head">
          <div class="rk-build-section-no">05</div>
          <div>
            <h2 id="rk-build-h2-5">Interaktywna kontrola zgodności projektu z budową</h2>
            <p>Dwadzieścia potwierdzeń pogrupowanych według momentu, w którym można jeszcze bezpiecznie zatrzymać roboty.</p>
          </div>
        </div>

        <div class="rk-build-audit" data-rk-build-audit="">
          <div class="rk-build-audit-head">
            <div>
              <h3>Pięć bramek odbiorowych ogrzewania podłogowego</h3>
              <p>Zaznacz wyłącznie elementy faktycznie sprawdzone na budowie albo potwierdzone dokumentem. Punkty krytyczne blokują ocenę pozytywną.</p>
            </div>
            <div class="rk-build-audit-score">
              <span class="rk-build-audit-score-label">Stopień potwierdzenia</span>
              <strong id="rk-build-score">0%</strong>
              <small id="rk-build-count">0 z 20 punktów</small>
            </div>
          </div>

          <div class="rk-build-audit-bar" role="progressbar" aria-label="Postęp kontroli" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0"><div class="rk-build-audit-fill" id="rk-build-fill"></div></div>

          <div class="rk-build-audit-result" id="rk-build-result">
            <div class="rk-build-audit-signal" id="rk-build-signal">STOP</div>
            <p id="rk-build-message" aria-live="polite">Nie potwierdzono punktów krytycznych. Nie traktuj instalacji jako gotowej do zakrycia.</p>
          </div>

          <div class="rk-build-audit-body">
            <div class="rk-build-audit-stage-nav" aria-label="Etapy checklisty">
              <a href="#rk-build-audit-stage-1"><span>Etap 1</span><strong>Zamrożenie danych</strong></a>
              <a href="#rk-build-audit-stage-2"><span>Etap 2</span><strong>Warstwy podłogi</strong></a>
              <a href="#rk-build-audit-stage-3"><span>Etap 3</span><strong>Ułożone pętle</strong></a>
              <a href="#rk-build-audit-stage-4"><span>Etap 4</span><strong>Przed jastrychem</strong></a>
              <a href="#rk-build-audit-stage-5"><span>Etap 5</span><strong>Odbiór końcowy</strong></a>
            </div>

            <div class="rk-build-audit-groups">
              <div class="rk-build-audit-group" id="rk-build-audit-stage-1" data-rk-build-stage-group="1">
                <div class="rk-build-audit-group-head"><h4>Etap 1 — dane projektu odpowiadają aktualnemu budynkowi</h4><span class="rk-build-stage-count" data-rk-build-stage-count="1">0/4</span></div>
                <div class="rk-build-checks">
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="1" data-critical="1"><span>Wszyscy wykonawcy mają tę samą, aktualną wersję rzutu i projektu.<em>krytyczne</em></span></label>
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="1" data-critical="1"><span>Potwierdzono rzeczywiste izolacje, okna, funkcje pomieszczeń i temperatury obliczeniowe.<em>krytyczne</em></span></label>
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="1"><span>Znane są finalne okładziny, podkłady i planowana zabudowa stała.</span></label>
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="1"><span>Źródło ciepła, temperatura projektowa i lokalizacja rozdzielacza nie zmieniły się albo zostały ponownie sprawdzone.</span></label>
                </div>
              </div>

              <div class="rk-build-audit-group" id="rk-build-audit-stage-2" data-rk-build-stage-group="2">
                <div class="rk-build-audit-group-head"><h4>Etap 2 — podłoże i warstwy są gotowe pod instalację</h4><span class="rk-build-stage-count" data-rk-build-stage-count="2">0/4</span></div>
                <div class="rk-build-checks">
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="2" data-critical="1"><span>Rzeczywista wysokość i układ warstw podłogi odpowiadają przekrojowi przyjętemu w projekcie.<em>krytyczne</em></span></label>
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="2"><span>Izolacja jest stabilna, ciągła i ułożona bez pustek powodujących ruch warstw.</span></label>
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="2"><span>Uzgodniono izolację brzegową, szczeliny i pola jastrychu z przejściami rur.</span></label>
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="2"><span>Przepusty, progi, piony i kolizje branżowe zostały rozwiązane przed rozwinięciem rur.</span></label>
                </div>
              </div>

              <div class="rk-build-audit-group" id="rk-build-audit-stage-3" data-rk-build-stage-group="3">
                <div class="rk-build-audit-group-head"><h4>Etap 3 — pętle można porównać z obliczeniami</h4><span class="rk-build-stage-count" data-rk-build-stage-count="3">0/4</span></div>
                <div class="rk-build-checks">
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="3" data-critical="1"><span>Rozstaw, przebieg, miejsca bez rur i strefy brzegowe odpowiadają aktualnemu rzutowi.<em>krytyczne</em></span></label>
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="3"><span>Każda pętla ma oznaczenie, pomieszczenie, rzeczywistą długość i właściwe przyłączenie do rozdzielacza.</span></label>
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="3" data-critical="1"><span>Nie ma nieudokumentowanych połączeń, załamań ani uszkodzeń przewodu w obszarze przyszłego jastrychu.<em>krytyczne</em></span></label>
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="3"><span>Wykonano zdjęcia całych pomieszczeń i detali z miarą lub stałymi punktami odniesienia.</span></label>
                </div>
              </div>

              <div class="rk-build-audit-group" id="rk-build-audit-stage-4" data-rk-build-stage-group="4">
                <div class="rk-build-audit-group-head"><h4>Etap 4 — instalacja jest formalnie dopuszczona do zakrycia</h4><span class="rk-build-stage-count" data-rk-build-stage-count="4">0/4</span></div>
                <div class="rk-build-checks">
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="4" data-critical="1"><span>Wykonano próbę szczelności według właściwej procedury i zapisano jej wynik.<em>krytyczne</em></span></label>
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="4"><span>Protokół zawiera medium, ciśnienie, czasy odczytów, temperaturę, wynik oraz osoby uczestniczące.</span></label>
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="4"><span>Rury są zabezpieczone w przejściach, przy rozdzielaczu i w miejscach komunikacji ekip.</span></label>
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="4" data-critical="1"><span>Podpisano decyzję o dopuszczeniu do jastrychu po usunięciu wszystkich zapisanych niezgodności.<em>krytyczne</em></span></label>
                </div>
              </div>

              <div class="rk-build-audit-group" id="rk-build-audit-stage-5" data-rk-build-stage-group="5">
                <div class="rk-build-audit-group-head"><h4>Etap 5 — uruchomienie i dokumentacja zamykają proces</h4><span class="rk-build-stage-count" data-rk-build-stage-count="5">0/4</span></div>
                <div class="rk-build-checks">
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="5"><span>Jastrych pielęgnowano i uruchomiono ogrzewanie według właściwej procedury dla zastosowanego materiału.</span></label>
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="5"><span>Przed okładziną sprawdzono warunki podłoża metodą właściwą dla jastrychu i systemu wykończeniowego.</span></label>
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="5"><span>Ustawiono projektowe przepływy, parametry pompy i sterowania oraz zapisano nastawy początkowe.</span></label>
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="5"><span>Inwestor otrzymał projekt, rewizję powykonawczą, protokoły, zdjęcia, długości pętli i tabelę nastaw.</span></label>
                </div>
              </div>
            </div>

            <div class="rk-build-audit-actions">
              <button class="rk-build-reset" type="button" id="rk-build-reset">Wyczyść kontrolę</button>
              <div class="rk-build-missing" id="rk-build-missing">Brakuje 20 potwierdzeń, w tym 7 krytycznych.</div>
            </div>
          </div>

          <div class="rk-build-disclaimer"><strong>Zakres narzędzia:</strong> checklista porządkuje komunikację i dokumenty. Nie ogląda budowy, nie zna parametrów projektu i nie stanowi odbioru technicznego, opinii prawnej ani zgody na wykonanie jastrychu. Punkt należy zaznaczyć dopiero po rzeczywistym sprawdzeniu.</div>
        </div>
      </section>

      <section class="rk-build-section" id="rk-build-gates" aria-labelledby="rk-build-h2-6">
        <div class="rk-build-section-head">
          <div class="rk-build-section-no">06</div>
          <div>
            <h2 id="rk-build-h2-6">Pięć odbiorów etapowych — co dokładnie sprawdzić?</h2>
            <p>Każda bramka zamyka inne ryzyko. Odbiór dopiero po ułożeniu rur jest potrzebny, ale nie cofnie błędnej izolacji ani nieaktualnych danych wejściowych.</p>
          </div>
        </div>

        <div class="rk-build-gates">
          <div class="rk-build-gate">
            <div class="rk-build-gate-no"><span>Bramka</span><strong>01</strong></div>
            <div class="rk-build-gate-content">
              <h3>Przed zamówieniem materiałów: zamrożenie danych projektu</h3>
              <p>Projekt musi odpowiadać aktualnej architekturze i planowanym warstwom. Na tym etapie należy potwierdzić wymiary pomieszczeń, temperatury, izolacje, stolarkę, źródło ciepła, rozdzielacze oraz okładziny. Jeżeli od wykonania obliczeń zmieniła się dokumentacja budynku, nie powinno się wysyłać ekipie starego rzutu z dopiskiem „jakoś dopasujemy”.</p>
              <div class="rk-build-gate-grid">
                <div class="rk-build-gate-box">
                  <h4>Sprawdź</h4>
                  <ul><li>numer i datę rewizji projektu;</li><li>aktualny rzut architektury;</li><li>temperaturę źródła i schemat hydrauliczny;</li><li>finalne materiały przegród i podłogi.</li></ul>
                </div>
                <div class="rk-build-gate-box">
                  <h4>Zapisz</h4>
                  <ul><li>listę zmian od momentu obliczeń;</li><li>osobę akceptującą każdą zmianę;</li><li>aktualną tabelę pomieszczeń;</li><li>wersję przekazaną wykonawcy.</li></ul>
                </div>
              </div>
            </div>
          </div>

          <div class="rk-build-gate">
            <div class="rk-build-gate-no"><span>Bramka</span><strong>02</strong></div>
            <div class="rk-build-gate-content">
              <h3>Przed ułożeniem rur: odbiór podłoża i konstrukcji podłogi</h3>
              <p>Rury nie naprawią błędnej konstrukcji pod nimi. Trzeba skontrolować rzeczywistą grubość, typ i ciągłość izolacji, stabilność płyt, poziomy, izolację brzegową, przepusty oraz plan szczelin jastrychu. Zagadnienia te warto zestawić z poradnikami o <a href="https://projekt-ogrzewania.pl/jakie-sa-najlepsze-sposoby-izolacji-pod-ogrzewanie-podlogowe/">izolacji pod ogrzewaniem podłogowym</a> i o <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">izolacji brzegowej oraz dylatacjach</a>.</p>
              <div class="rk-build-gate-grid">
                <div class="rk-build-gate-box">
                  <h4>Sprawdź</h4>
                  <ul><li>zgodność przekroju i poziomów;</li><li>brak pustek i ruchomych płyt;</li><li>ciągłość taśmy brzegowej;</li><li>przewężenia, progi i pola jastrychu.</li></ul>
                </div>
                <div class="rk-build-gate-box">
                  <h4>Nie akceptuj</h4>
                  <ul><li>izolacji opisanej tylko jako „podobna”;</li><li>kolizji odkładanych do dnia wylewki;</li><li>zmiany wysokości bez korekty przekroju;</li><li>braku uzgodnienia szczelin z trasami rur.</li></ul>
                </div>
              </div>
            </div>
          </div>

          <div class="rk-build-gate">
            <div class="rk-build-gate-no"><span>Bramka</span><strong>03</strong></div>
            <div class="rk-build-gate-content">
              <h3>Po ułożeniu rur: porównanie pętla po pętli</h3>
              <p>Odbiór powinien przejść od króćca zasilającego do powrotnego każdej pętli. Należy sprawdzić oznaczenie, obsługiwane pomieszczenie, rozstaw, trasę, rzeczywistą długość, miejsca bez rur, łuki, mocowanie, przejścia i stan przewodu. <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">Dopuszczalnej długości pętli</a> nie ocenia się jedną uniwersalną liczbą — znaczenie mają średnica wewnętrzna, przepływ, opór armatury i strata ciśnienia całego obiegu.</p>
              <div class="rk-build-gate-grid">
                <div class="rk-build-gate-box">
                  <h4>Sprawdź</h4>
                  <ul><li>zgodność z aktualnym rzutem;</li><li>czytelne oznaczenia na rozdzielaczu;</li><li>brak ukrytych połączeń i uszkodzeń;</li><li>rzeczywiste długości oraz kolejność obiegów.</li></ul>
                </div>
                <div class="rk-build-gate-box">
                  <h4>Udokumentuj</h4>
                  <ul><li>zdjęcie całego pomieszczenia;</li><li>detale przejść i zagęszczeń;</li><li>miarę albo stały punkt odniesienia;</li><li>zmiany naniesione na rzut powykonawczy.</li></ul>
                </div>
              </div>
            </div>
          </div>

          <div class="rk-build-gate">
            <div class="rk-build-gate-no"><span>Bramka</span><strong>04</strong></div>
            <div class="rk-build-gate-content">
              <h3>Przed wylewką: próba, protokół i dopuszczenie do zakrycia</h3>
              <p>Próba szczelności ma wykazać stan instalacji przed jej trwałym zakryciem. Nie należy kopiować jednej wartości ciśnienia i czasu z przypadkowego poradnika do każdego systemu. Medium, ciśnienie, kolejne odczyty, wpływ temperatury i kryterium oceny muszą wynikać z właściwej procedury, projektu oraz dokumentacji zastosowanego systemu. Szczegółowe omówienie znajduje się w artykule o <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">próbie szczelności ogrzewania podłogowego</a>.</p>
              <div class="rk-build-gate-grid">
                <div class="rk-build-gate-box">
                  <h4>Protokół powinien identyfikować</h4>
                  <ul><li>instalację i badane obiegi;</li><li>medium oraz aparaturę pomiarową;</li><li>ciśnienie, czasy i temperatury;</li><li>wynik, uwagi i osoby uczestniczące.</li></ul>
                </div>
                <div class="rk-build-gate-box">
                  <h4>Przed pompą do jastrychu</h4>
                  <ul><li>usuń wszystkie niezgodności;</li><li>zabezpiecz przejścia i rozdzielacz;</li><li>ustal stan instalacji podczas prac;</li><li>podpisz odbiór przed zakryciem.</li></ul>
                </div>
              </div>
            </div>
          </div>

          <div class="rk-build-gate">
            <div class="rk-build-gate-no"><span>Bramka</span><strong>05</strong></div>
            <div class="rk-build-gate-content">
              <h3>Po wykonaniu jastrychu: uruchomienie, równoważenie i dokumentacja powykonawcza</h3>
              <p>Procedura pielęgnacji i pierwszego uruchomienia zależy od zastosowanego jastrychu oraz dokumentacji wykonawczej. Rozgrzewanie nie zastępuje pomiaru warunków podłoża przed ułożeniem okładziny. Po uruchomieniu trzeba ustawić przepływy wynikające z projektu, sprawdzić pracę pompy i automatyki oraz zapisać parametry początkowe. Informacje o konstrukcji warstwy znajdziesz w przewodniku o <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewce na ogrzewaniu podłogowym</a>.</p>
              <div class="rk-build-gate-grid">
                <div class="rk-build-gate-box">
                  <h4>Odbiór eksploatacyjny</h4>
                  <ul><li>przepływy i nastawy poszczególnych pętli;</li><li>parametry pompy i sterowania;</li><li>temperaturę zasilania i powrotu;</li><li>reakcję pomieszczeń po stabilizacji.</li></ul>
                </div>
                <div class="rk-build-gate-box">
                  <h4>Pakiet dla inwestora</h4>
                  <ul><li>projekt i rewizja powykonawcza;</li><li>protokół próby oraz odbioru;</li><li>zdjęcia tras przed wylewką;</li><li>tabela pętli, przepływów i nastaw.</li></ul>
                </div>
              </div>
            </div>
          </div>
        </div>
      </section>

      <section class="rk-build-section" id="rk-build-stop" aria-labelledby="rk-build-h2-7">
        <div class="rk-build-section-head">
          <div class="rk-build-section-no">07</div>
          <div>
            <h2 id="rk-build-h2-7">Kiedy należy powiedzieć „STOP — nie wykonywać wylewki”?</h2>
            <p>Zakrycie rur usuwa możliwość prostego oglądu i wielokrotnie zwiększa koszt każdej późniejszej ingerencji.</p>
          </div>
        </div>

        <div class="rk-build-stop-grid">
          <div class="rk-build-stop-card"><span>STOP 01</span><h3>Nieaktualny projekt</h3><p>Rzut nie pokazuje rzeczywistych ścian, funkcji pomieszczeń, rozdzielacza albo zabudowy, a zmiany nie zostały ocenione.</p></div>
          <div class="rk-build-stop-card"><span>STOP 02</span><h3>Niezgodne warstwy</h3><p>Brakuje potwierdzenia rodzaju i grubości izolacji, poziomu podłogi, rodzaju jastrychu albo podziału pól.</p></div>
          <div class="rk-build-stop-card"><span>STOP 03</span><h3>Uszkodzona rura</h3><p>Widać nacięcie, załamanie, spłaszczenie lub połączenie, którego nie ma w dokumentacji i które nie zostało ocenione.</p></div>
          <div class="rk-build-stop-card"><span>STOP 04</span><h3>Brak próby i protokołu</h3><p>Nie wiadomo, według jakiej procedury instalację zbadano, jakie były odczyty ani kto potwierdził wynik.</p></div>
          <div class="rk-build-stop-card"><span>STOP 05</span><h3>Brak zgodności pętli</h3><p>Nie można przypisać obiegów do pomieszczeń, nie znamy długości albo rozstaw i trasy istotnie różnią się od projektu.</p></div>
          <div class="rk-build-stop-card"><span>STOP 06</span><h3>Brak dokumentacji zdjęciowej</h3><p>Nie wykonano zdjęć przed zakryciem, mimo że trasy zostały zmienione albo inwestor nie otrzymał rzutu powykonawczego.</p></div>
        </div>

        <div class="rk-build-warning">
          <p><strong>Pośpiech ekipy wylewkowej nie jest argumentem technicznym.</strong> Jeżeli niezgodność można ocenić za godzinę, ale po zalaniu jej sprawdzenie będzie wymagało diagnostyki albo odkrywek, rozsądniej zatrzymać pracę przed przyjazdem jastrychu niż negocjować przy pracującej pompie.</p>
        </div>
      </section>

      <section class="rk-build-section" id="rk-build-symptoms" aria-labelledby="rk-build-h2-8">
        <div class="rk-build-section-head">
          <div class="rk-build-section-no">08</div>
          <div>
            <h2 id="rk-build-h2-8">Objawy po zamieszkaniu a możliwe odstępstwa na budowie</h2>
            <p>Objaw nie jest diagnozą. Pokazuje jedynie, od których danych i pomiarów warto zacząć.</p>
          </div>
        </div>

        <div class="rk-build-table-wrap">
          <table class="rk-build-table">
            <thead>
              <tr>
                <th style="width:24%">Objaw</th>
                <th style="width:43%">Co mogło zmienić się względem projektu?</th>
                <th style="width:33%">Co sprawdzić najpierw?</th>
              </tr>
            </thead>
            <tbody>
              <tr><td data-label="Objaw"><strong>Jedno pomieszczenie stale nie osiąga temperatury</strong></td><td data-label="Możliwe odstępstwo">Inna okładzina, mniejsza powierzchnia aktywna, większe przeszklenie, zmieniony rozstaw, niski przepływ albo inna temperatura projektowa pomieszczenia.</td><td data-label="Pierwsza kontrola">Aktualny rzut, obciążenie cieplne, aktywna powierzchnia, przepływ i temperatury pętli po stabilizacji.</td></tr>
              <tr><td data-label="Objaw"><strong>Cały system wymaga wyższej temperatury wody</strong></td><td data-label="Możliwe odstępstwo">Gorsze przegrody, inna okładzina, większe straty wentylacyjne, mniejsza aktywna powierzchnia albo niezgodna konstrukcja podłogi.</td><td data-label="Pierwsza kontrola">Rzeczywiste materiały, ustawienia krzywej, przepływy, temperatura powierzchni oraz zgodność z bilansem cieplnym.</td></tr>
              <tr><td data-label="Objaw"><strong>Nie można ustawić wymaganych przepływów</strong></td><td data-label="Możliwe odstępstwo">Wydłużone pętle po przesunięciu rozdzielacza, zmieniona armatura, powietrze, zabrudzenie albo niewłaściwy punkt pracy pompy.</td><td data-label="Pierwsza kontrola">Rzeczywiste długości, odczyty rotametrów, stan filtrów, odpowietrzenie i dostępne ciśnienie różnicowe.</td></tr>
              <tr><td data-label="Objaw"><strong>Nierównomierny ślad cieplny podłogi</strong></td><td data-label="Możliwe odstępstwo">Inna trasa lub rozstaw, zmienna warstwa nad rurą, element zabudowy, powietrze albo chwilowe warunki pomiaru.</td><td data-label="Pierwsza kontrola">Zdjęcia przed wylewką, czas pracy, temperaturę wody, rodzaj okładziny i pomiary po ustabilizowaniu.</td></tr>
              <tr><td data-label="Objaw"><strong>Rysy albo odspojenie okładziny</strong></td><td data-label="Możliwe odstępstwo">Nieprawidłowy podział pól, warunki wykonania lub pielęgnacji jastrychu, brak właściwych szczelin, zbyt wczesne uruchomienie albo błąd systemu wykończeniowego.</td><td data-label="Pierwsza kontrola">Dokumentację jastrychu, przebieg szczelin, protokół uruchomienia, wilgotność i warunki montażu okładziny.</td></tr>
              <tr><td data-label="Objaw"><strong>Brak informacji, gdzie można wiercić</strong></td><td data-label="Możliwe odstępstwo">Nie wykonano zdjęć lub rzutu powykonawczego albo trasy różnią się od projektu.</td><td data-label="Pierwsza kontrola">Archiwum zdjęć, punkty odniesienia, rzut pętli i bezpieczną diagnostykę przed ingerencją.</td></tr>
            </tbody>
          </table>
        </div>

        <p>Nieprawidłowo działającego systemu nie należy diagnozować wyłącznie kamerą termowizyjną ani samymi rotametrami. Potrzebne jest zestawienie projektu, dokumentacji powykonawczej, przepływów, temperatur i warunków pracy. Inaczej łatwo pomylić błąd projektu, odstępstwo wykonawcze, niewłaściwą regulację i chwilowy stan układu.</p>
      </section>

      <section class="rk-build-section" id="rk-build-docs" aria-labelledby="rk-build-h2-9">
        <div class="rk-build-section-head">
          <div class="rk-build-section-no">09</div>
          <div>
            <h2 id="rk-build-h2-9">Dokumentacja powykonawcza podłogówki — co powinno zostać po budowie?</h2>
            <p>Dokumentacja ma pozwolić odtworzyć to, co zniknęło pod jastrychem, oraz uruchomić układ zgodnie z obliczeniami.</p>
          </div>
        </div>

        <div class="rk-build-docs">
          <div class="rk-build-doc"><span>01</span><h3>Aktualny projekt</h3><p>Rzut pętli, obliczenia pomieszczeń, parametry pracy, rozdzielacze i schemat hydrauliczny w wersji odpowiadającej wykonanemu budynkowi.</p></div>
          <div class="rk-build-doc"><span>02</span><h3>Rejestr zmian</h3><p>Data, opis, przyczyna, osoba zgłaszająca, decyzja projektowa oraz wskazanie rysunku lub tabeli, które zostały zaktualizowane.</p></div>
          <div class="rk-build-doc"><span>03</span><h3>Tabela pętli</h3><p>Nazwa obiegu, pomieszczenie, długość rzeczywista, średnica, projektowy przepływ, nastawa i ewentualna uwaga wykonawcza.</p></div>
          <div class="rk-build-doc"><span>04</span><h3>Zdjęcia tras</h3><p>Widoki całych pomieszczeń i detali z miarą, osiami ścian albo trwałymi punktami odniesienia umożliwiającymi późniejszą lokalizację.</p></div>
          <div class="rk-build-doc"><span>05</span><h3>Protokoły</h3><p>Próba szczelności, odbiór przed zakryciem, dokumenty dotyczące jastrychu, procedura pierwszego uruchomienia i ewentualne pomiary pod okładzinę.</p></div>
          <div class="rk-build-doc"><span>06</span><h3>Nastawy startowe</h3><p>Przepływy, parametry pompy, krzywa grzewcza, ograniczenia temperatur i podstawowe ustawienia automatyki zapisane przy uruchomieniu.</p></div>
        </div>

        <div class="rk-build-tip">
          <p><strong>Praktyczna zasada archiwizacji:</strong> komplet powinien istnieć co najmniej w dwóch miejscach i mieć jednoznaczną nazwę inwestycji oraz datę. Zdjęcia bez rzutu, miary i opisu są znacznie mniej przydatne niż krótki, uporządkowany pakiet powykonawczy.</p>
        </div>
      </section>

      <section class="rk-build-section" id="rk-build-prevention" aria-labelledby="rk-build-h2-10">
        <div class="rk-build-section-head">
          <div class="rk-build-section-no">10</div>
          <div>
            <h2 id="rk-build-h2-10">Jak ograniczyć błędy bez zamieniania budowy w biuro projektowe?</h2>
            <p>Nie potrzeba setek dokumentów. Potrzeba krótkiej procedury, której każda ekipa rzeczywiście przestrzega.</p>
          </div>
        </div>

        <div class="rk-build-flow">
          <div class="rk-build-flow-card"><span>Krok A</span><h3>Jedna wersja obowiązująca</h3><p>Na budowie jest jedna aktualna dokumentacja. Starsze rzuty pozostają w archiwum z wyraźnym oznaczeniem, że nie służą do wykonania.</p></div>
          <div class="rk-build-flow-card"><span>Krok B</span><h3>Zmiana w jednym formularzu</h3><p>Każda korekta otrzymuje opis, zdjęcie lub rysunek, datę, osobę zgłaszającą oraz decyzję: bez wpływu, korekta lokalna albo aktualizacja projektu.</p></div>
          <div class="rk-build-flow-card"><span>Krok C</span><h3>Zakrycie dopiero po odbiorze</h3><p>Jastrych rozpoczyna się po zamknięciu uwag, wykonaniu próby, zdjęć i podpisaniu dopuszczenia do zakrycia.</p></div>
        </div>

        <p>Najlepiej, gdy proces rozpoczyna się jeszcze przed wejściem instalatora. Im wcześniej przygotowano <a href="https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/">projekt ogrzewania podłogowego</a> i skoordynowano go z architekturą, tym mniej zmian trzeba rozstrzygać przy rozwiniętych rurach. Jeżeli jednak zmiana jest potrzebna, jej zgłoszenie nie oznacza porażki — błędem jest dopiero ukrycie jej pod wylewką bez sprawdzenia wpływu.</p>

        <div class="rk-build-note">
          <p><strong>Kontrola jakości nie polega na szukaniu winnego.</strong> Jej celem jest wykrycie rozbieżności w momencie, w którym można ją jeszcze poprawić bez niszczenia gotowych warstw. Dlatego dobry protokół opisuje fakt, decyzję i termin, a nie emocje między ekipami.</p>
        </div>
      </section>

      <section class="rk-build-section" id="rk-build-faq" aria-labelledby="rk-build-h2-11">
        <div class="rk-build-section-head">
          <div class="rk-build-section-no">11</div>
          <div>
            <h2 id="rk-build-h2-11">FAQ — błędy na budowie a projekt ogrzewania podłogowego</h2>
            <p>Odpowiedzi na pytania dotyczące odstępstw, odbioru przed wylewką i dokumentacji powykonawczej.</p>
          </div>
        </div>

        <div class="rk-build-faq-list">
          <details class="rk-build-faq"><summary>Jakie błędy na budowie najczęściej psują projekt ogrzewania podłogowego?</summary><div class="rk-build-faq-answer"><p>Najczęściej są to niezaktualizowane zmiany architektury, inne izolacje lub okna, zmiana okładziny, przesunięcie rozdzielacza, samowolna korekta rozstawu i przebiegu pętli, niezgodna konstrukcja podłogi, brak próby szczelności, brak odbioru przed jastrychem oraz brak dokumentacji powykonawczej.</p></div></details>
          <details class="rk-build-faq"><summary>Czy każda zmiana na budowie wymaga nowego projektu podłogówki?</summary><div class="rk-build-faq-answer"><p>Nie każda wymaga opracowania projektu od początku. Każda zmiana istotna dla obciążenia cieplnego, powierzchni aktywnej, temperatury wody, długości pętli, przepływów lub konstrukcji podłogi powinna jednak zostać oceniona. Wynikiem może być brak korekty, lokalna zmiana albo aktualizacja kilku części dokumentacji.</p></div></details>
          <details class="rk-build-faq"><summary>Czy można przesunąć rozdzielacz ogrzewania podłogowego po wykonaniu projektu?</summary><div class="rk-build-faq-answer"><p>Można po sprawdzeniu nowej lokalizacji. Przesunięcie zmienia długości przyłączy kilku pętli, ich przebieg, opory hydrauliczne i dostęp serwisowy. Trzeba zaktualizować długości oraz ocenić możliwość uzyskania wymaganych przepływów.</p></div></details>
          <details class="rk-build-faq"><summary>Czy można zmienić płytki na panele po wykonaniu projektu?</summary><div class="rk-build-faq-answer"><p>Zmianę należy sprawdzić na podstawie łącznego oporu cieplnego panelu, podkładu i sposobu montażu. Większy opór nad rurą może zmniejszyć osiągalną moc albo wymagać wyższej temperatury wody. Istotne są również ograniczenia temperatury podane dla wybranej okładziny.</p></div></details>
          <details class="rk-build-faq"><summary>Czy pętla dłuższa niż 100 metrów zawsze jest błędem?</summary><div class="rk-build-faq-answer"><p>Nie można oceniać pętli tylko jedną długością. Znaczenie mają średnica wewnętrzna przewodu, przepływ, wymagana moc, różnica temperatury, armatura, opór całej trasy i dostępne ciśnienie pompy. O poprawności decydują obliczenia konkretnego obiegu.</p></div></details>
          <details class="rk-build-faq"><summary>Jakie ciśnienie zastosować przy próbie szczelności podłogówki?</summary><div class="rk-build-faq-answer"><p>Nie należy przyjmować uniwersalnej wartości bez znajomości systemu. Medium, ciśnienie, czas stabilizacji, kolejne odczyty oraz kryterium wyniku powinny wynikać z właściwej procedury, projektu, dokumentacji zastosowanych elementów i warunków na budowie.</p></div></details>
          <details class="rk-build-faq"><summary>Czy przed wylewką trzeba ustawiać wszystkie rotametry?</summary><div class="rk-build-faq-answer"><p>Odbiór przed zakryciem powinien potwierdzić identyfikację obiegów, drożność oraz próbę zgodną z procedurą. Docelowe równoważenie wykonuje się w warunkach uruchomienia instalacji według projektowych przepływów. Jednakowe ustawienie wszystkich rotametrów nie jest zasadą projektową.</p></div></details>
          <details class="rk-build-faq"><summary>Co powinien zawierać protokół odbioru podłogówki przed wylewką?</summary><div class="rk-build-faq-answer"><p>Powinien identyfikować inwestycję i wersję projektu, potwierdzać zgodność tras i oznaczeń, wskazywać uwagi oraz ich usunięcie, zawierać wynik próby szczelności, datę, uczestników i jednoznaczną decyzję dotyczącą dopuszczenia instalacji do zakrycia.</p></div></details>
          <details class="rk-build-faq"><summary>Czy zdjęcia rur przed wylewką wystarczą jako dokumentacja?</summary><div class="rk-build-faq-answer"><p>Nie. Zdjęcia są jednym z elementów. Potrzebne są również aktualny rzut, identyfikacja pętli, ich rzeczywiste długości, protokół próby, zestawienie nastaw oraz opis zmian. Fotografie powinny zawierać miarę albo trwałe punkty odniesienia.</p></div></details>
          <details class="rk-build-faq"><summary>Kiedy trzeba ponownie przeliczyć ogrzewanie podłogowe?</summary><div class="rk-build-faq-answer"><p>Ponowna kontrola jest potrzebna szczególnie po zmianie przegród, okien, temperatur pomieszczeń, aktywnej powierzchni, okładziny, źródła ciepła, temperatury zasilania, położenia rozdzielacza, liczby i przebiegu pętli albo konstrukcji podłogi.</p></div></details>
          <details class="rk-build-faq"><summary>Kto zatwierdza zmianę rozstawu rur na budowie?</summary><div class="rk-build-faq-answer"><p>Rozstaw wynika z obciążenia pomieszczenia, konstrukcji podłogi i parametrów wody, dlatego jego zmianę powinien ocenić autor właściwej części projektu lub osoba posiadająca komplet danych do ponownego sprawdzenia. Nie powinien być korygowany wyłącznie na podstawie ilości pozostałej rury.</p></div></details>
          <details class="rk-build-faq"><summary>Co zrobić, gdy instalacja została już zalana bez dokumentacji?</summary><div class="rk-build-faq-answer"><p>Należy zebrać dostępne projekty, zdjęcia i informacje wykonawcy, zidentyfikować pętle, wykonać bezpieczne pomiary instalacji oraz uzupełnić dokumentację w zakresie możliwym bez odkrywek. Zakres diagnostyki zależy od objawów i nie powinien być zastępowany zgadywaniem przebiegu rur.</p></div></details>
        </div>
      </section>

      <section class="rk-build-section" id="rk-build-sources" aria-labelledby="rk-build-h2-12">
        <div class="rk-build-section-head">
          <div class="rk-build-section-no">12</div>
          <div>
            <h2 id="rk-build-h2-12">Podstawa techniczna i źródła</h2>
            <p>Neutralne źródła dotyczące projektowania i instalowania wbudowanych systemów ogrzewania powierzchniowego.</p>
          </div>
        </div>

        <div class="rk-build-sources">
          <ul>
            <li><a href="https://www.iso.org/standard/74683.html" target="_blank" rel="noopener nofollow">ISO 11855-2:2021</a> — zasady określania projektowej mocy ogrzewania i chłodzenia powierzchniowego.</li>
            <li><a href="https://www.iso.org/standard/74685.html" target="_blank" rel="noopener nofollow">ISO 11855-5:2021</a> — zagadnienia dotyczące instalowania wbudowanych systemów powierzchniowych.</li>
            <li><a href="https://www.iso.org/standard/64999.html" target="_blank" rel="noopener nofollow">ISO 11855-6:2018</a> — zagadnienia dotyczące sterowania wbudowanymi systemami ogrzewania i chłodzenia powierzchniowego.</li>
          </ul>
        </div>
        <p class="rk-build-small">Artykuł nie publikuje treści norm i nie zastępuje projektu, dokumentacji zastosowanego systemu, wymagań dotyczących konkretnego jastrychu ani oceny wykonania na budowie. Przed zastosowaniem procedury należy sprawdzić aktualne dokumenty właściwe dla inwestycji.</p>
      </section>

      <div class="rk-build-cta" aria-label="Projekt ogrzewania podłogowego">
        <h3>Chcesz przekazać wykonawcy dokumentację, z którą można porównać każdą pętlę przed wylewką?</h3>
        <p>Projekt określa obciążenie pomieszczeń, aktywne powierzchnie, rozstaw i przebieg rur, długości pętli, wymagane przepływy, opory hydrauliczne, temperaturę zasilania oraz nastawy rozdzielacza. Dzięki temu zmiana na budowie może zostać zauważona przed trwałym zakryciem instalacji.</p>
        <a class="rk-build-cta-link" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt instalacji ogrzewania podłogowego</a>
        <small>To jedyne CTA sprzedażowe w artykule. Odnośnik prowadzi do strony usługi Projekt-Ogrzewania.pl należącej do autora opracowania.</small>
      </div>

      <aside class="rk-build-author-box" aria-labelledby="rk-build-author-title" itemprop="author" itemscope="" itemtype="https://schema.org/Person">
        <meta itemprop="name" content="Robert Kucharski">
        <meta itemprop="url" content="https://projekt-ogrzewania.pl/">
        <div class="rk-build-author-head">
          <div><h3 id="rk-build-author-title">Autor opracowania</h3><p>Praktyka projektowa, wiedza techniczna i język zrozumiały dla inwestora.</p></div>
          <div class="rk-build-author-mark">E-E-A-T • HVAC</div>
        </div>
        <div class="rk-build-author-main">
          <div class="rk-build-author-profile">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski – specjalista systemów HVAC i ogrzewania podłogowego" width="174" height="174" loading="lazy" itemprop="image">
            <h4>Robert Kucharski</h4>
            <span class="rk-build-author-role" itemprop="jobTitle">CEO • specjalista systemów HVAC i ogrzewania podłogowego</span>
          </div>
          <div class="rk-build-author-content">
            <div class="rk-build-quote"><blockquote>„Projekt nie kończy się w chwili wysłania pliku. Musi jeszcze spotkać się z rzeczywistym budynkiem. Jeżeli na budowie zmieniają się izolacje, okładziny, ściany albo trasy pętli, trzeba ponownie połączyć wykonanie z obliczeniami — zanim rury znikną pod jastrychem.”</blockquote></div>

            <div class="rk-build-author-tabs">
              <input class="rk-build-author-radio" type="radio" name="rk-build-author-tabs" id="rk-build-author-about" checked="">
              <input class="rk-build-author-radio" type="radio" name="rk-build-author-tabs" id="rk-build-author-exp">
              <input class="rk-build-author-radio" type="radio" name="rk-build-author-tabs" id="rk-build-author-sites">

              <div class="rk-build-author-labels" role="tablist" aria-label="Informacje o autorze">
                <label for="rk-build-author-about" role="tab">O autorze</label>
                <label for="rk-build-author-exp" role="tab">Doświadczenie</label>
                <label for="rk-build-author-sites" role="tab">Portale</label>
              </div>

              <div class="rk-build-author-panels">
                <div class="rk-build-author-panel rk-build-author-about">
                  <p>Specjalizuję się w projektowaniu wodnego ogrzewania podłogowego, obliczeniach obciążenia cieplnego i hydraulice instalacji. Przygotowuję dokumentację, która łączy warunki źródła ciepła, konstrukcję podłogi, pętle, przepływy oraz nastawy w jeden możliwy do wykonania i skontrolowania układ.</p>
                </div>
                <div class="rk-build-author-panel rk-build-author-exp">
                  <p>W pracy projektowej zwracam szczególną uwagę na koordynację z rzeczywistą budową. Rozstaw rur, długości pętli i przepływy są poprawne tylko dla określonych danych wejściowych. Dlatego w opracowaniach oddzielam obliczenia od przyzwyczajeń wykonawczych i wskazuję punkty wymagające odbioru przed zakryciem instalacji.</p>
                </div>
                <div class="rk-build-author-panel rk-build-author-sites">
                  <p>Jestem właścicielem i autorem publikacji w trzech serwisach branżowych. Powiązanie portali podaję jawnie, aby czytelnik znał autorstwo i kontekst linkowania:</p>
                  <div class="rk-build-portals">
                    <a href="https://projekt-ogrzewania.pl/">Projekt-Ogrzewania.pl</a>
                    <a href="https://remont.biz.pl/" target="_blank" rel="noopener nofollow">Remont.biz.pl</a>
                    <a href="https://sobir.pl/" target="_blank" rel="noopener nofollow">Sobir.pl</a>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </aside>
    </div>
  </div>
</article>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#webpage",
      "url": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/",
      "name": "Najczęstsze błędy na budowie, które psują nawet najlepszy projekt ogrzewania podłogowego – kontrola 5 etapów",
      "description": "Najczęstsze błędy na budowie, które psują nawet najlepszy projekt ogrzewania podłogowego. Pięć etapów kontroli zmian, wykonania i dokumentacji przed zakryciem instalacji.",
      "inLanguage": "pl-PL",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/#website" },
      "primaryImageOfPage": { "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#primaryimage" },
      "mainEntity": { "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#article" },
      "datePublished": "2026-04-24",
      "dateModified": "2026-08-25",
      "potentialAction": {
        "@type": "ReadAction",
        "target": ["https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/"]
      }
    },
    {
      "@type": ["TechArticle", "Article"],
      "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#article",
      "url": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/",
      "mainEntityOfPage": { "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#webpage" },
      "headline": "Najczęstsze błędy na budowie, które psują nawet najlepszy projekt ogrzewania podłogowego – kontrola 5 etapów",
      "alternativeHeadline": "Jak kontrolować odstępstwa od projektu podłogówki przed wylewką",
      "description": "Techniczny przewodnik po zmianach na budowie, które mogą naruszyć obliczenia ogrzewania podłogowego: dane wejściowe, warstwy podłogi, pętle, próba, jastrych, uruchomienie i dokumentacja powykonawcza.",
      "inLanguage": "pl-PL",
      "datePublished": "2026-04-24",
      "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,
      "image": { "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#primaryimage" },
      "articleSection": [
        "Błędy na budowie",
        "Ogrzewanie podłogowe",
        "Kontrola zgodności projektu",
        "Odbiór przed wylewką",
        "Dokumentacja powykonawcza"
      ],
      "keywords": "najczęstsze błędy na budowie które psują nawet najlepszy projekt ogrzewania podłogowego, błędy na budowie podłogówki, odstępstwa od projektu ogrzewania podłogowego, kontrola ogrzewania podłogowego przed wylewką, odbiór podłogówki przed wylewką, przesunięcie rozdzielacza po projekcie, zmiana rozstawu rur na budowie, zmiana okładziny po projekcie podłogówki, dokumentacja powykonawcza ogrzewania podłogowego, protokół odbioru podłogówki, checklista podłogówki przed wylewką",
      "proficiencyLevel": "Expert",
      "educationalLevel": "Zaawansowany poradnik techniczny dla inwestora, wykonawcy i kierownika budowy",
      "isAccessibleForFree": true,
      "audience": [
        { "@type": "Audience", "audienceType": "Inwestorzy budujący dom" },
        { "@type": "Audience", "audienceType": "Wykonawcy instalacji ogrzewania podłogowego" },
        { "@type": "Audience", "audienceType": "Kierownicy budowy" }
      ],
      "about": [
        { "@type": "Thing", "name": "Ogrzewanie podłogowe" },
        { "@type": "Thing", "name": "Kontrola zgodności projektu z wykonaniem" },
        { "@type": "Thing", "name": "Odbiór instalacji przed wylewką" },
        { "@type": "Thing", "name": "Dokumentacja powykonawcza" }
      ],
      "speakable": {
        "@type": "SpeakableSpecification",
        "cssSelector": ["#rk-build-h2-1", ".rk-build-answer", "#rk-build-stop", "#rk-build-faq"]
      },
      "hasPart": [
        { "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#change-list" },
        { "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#howto" },
        { "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#faq" },
        { "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#audit" }
      ],
      "citation": [
        "https://www.iso.org/standard/74683.html",
        "https://www.iso.org/standard/74685.html",
        "https://www.iso.org/standard/64999.html"
      ]
    },
    {
      "@type": "ImageObject",
      "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#primaryimage",
      "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego.webp",
      "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego.webp",
      "width": 900,
      "height": 900,
      "caption": "Najczęstsze błędy na budowie, które psują nawet najlepszy projekt ogrzewania podłogowego"
    },
    {
      "@type": "ItemList",
      "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#change-list",
      "name": "Zmiany na budowie wymagające kontroli projektu ogrzewania podłogowego",
      "description": "Lista zmian mogących wpłynąć na obciążenie cieplne, moc podłogi, długości pętli, przepływy i opory hydrauliczne.",
      "numberOfItems": 9,
      "itemListOrder": "https://schema.org/ItemListOrderAscending",
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "item": { "@type": "Thing", "name": "Zmiana izolacji ścian, dachu lub podłogi" } },
        { "@type": "ListItem", "position": 2, "item": { "@type": "Thing", "name": "Zmiana okien, ich wymiaru albo liczby" } },
        { "@type": "ListItem", "position": 3, "item": { "@type": "Thing", "name": "Przesunięcie ścian lub zmiana funkcji pomieszczenia" } },
        { "@type": "ListItem", "position": 4, "item": { "@type": "Thing", "name": "Zmiana okładziny i jej oporu cieplnego" } },
        { "@type": "ListItem", "position": 5, "item": { "@type": "Thing", "name": "Przesunięcie rozdzielacza ogrzewania podłogowego" } },
        { "@type": "ListItem", "position": 6, "item": { "@type": "Thing", "name": "Zmiana źródła ciepła lub temperatury zasilania" } },
        { "@type": "ListItem", "position": 7, "item": { "@type": "Thing", "name": "Zmiana rozstawu albo przebiegu rur" } },
        { "@type": "ListItem", "position": 8, "item": { "@type": "Thing", "name": "Zmiana grubości jastrychu lub poziomu podłogi" } },
        { "@type": "ListItem", "position": 9, "item": { "@type": "Thing", "name": "Zmiana powierzchni zabudowy stałej" } }
      ]
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#howto",
      "name": "Jak kontrolować zgodność projektu ogrzewania podłogowego z budową w pięciu etapach",
      "description": "Pięć bramek odbiorowych od zamrożenia danych projektu do uruchomienia i przekazania dokumentacji powykonawczej.",
      "inLanguage": "pl-PL",
      "totalTime": "P1D",
      "tool": [
        { "@type": "HowToTool", "name": "Aktualny projekt ogrzewania podłogowego" },
        { "@type": "HowToTool", "name": "Aktualny rzut architektury" },
        { "@type": "HowToTool", "name": "Dokumentacja zastosowanych materiałów" },
        { "@type": "HowToTool", "name": "Wyposażenie do właściwej próby szczelności" },
        { "@type": "HowToTool", "name": "Miara i aparat fotograficzny" },
        { "@type": "HowToTool", "name": "Protokół odbioru przed zakryciem" }
      ],
      "step": [
        {
          "@type": "HowToStep",
          "position": 1,
          "name": "Zamroź dane projektu przed zamówieniem materiałów",
          "text": "Potwierdź aktualny rzut, funkcje pomieszczeń, izolacje, okna, źródło ciepła, temperatury, rozdzielacz, okładziny oraz wersję dokumentacji przekazaną wykonawcy.",
          "url": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#rk-build-gates"
        },
        {
          "@type": "HowToStep",
          "position": 2,
          "name": "Odbierz podłoże i konstrukcję podłogi przed ułożeniem rur",
          "text": "Sprawdź rzeczywistą izolację, poziomy, stabilność warstw, izolację brzegową, szczeliny jastrychu, przepusty oraz kolizje branżowe.",
          "url": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#rk-build-gates"
        },
        {
          "@type": "HowToStep",
          "position": 3,
          "name": "Porównaj ułożone pętle z aktualnym projektem",
          "text": "Skontroluj oznaczenia, rozstaw, trasy, długości, miejsca bez rur, mocowanie, przejścia i stan przewodów oraz wykonaj zdjęcia z punktami odniesienia.",
          "url": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#rk-build-gates"
        },
        {
          "@type": "HowToStep",
          "position": 4,
          "name": "Wykonaj próbę i podpisz dopuszczenie do jastrychu",
          "text": "Zastosuj właściwą procedurę próby szczelności, zapisz parametry i wynik, usuń niezgodności, zabezpiecz instalację oraz formalnie dopuść ją do zakrycia.",
          "url": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#rk-build-gates"
        },
        {
          "@type": "HowToStep",
          "position": 5,
          "name": "Uruchom układ i przekaż dokumentację powykonawczą",
          "text": "Zrealizuj właściwą procedurę dla jastrychu, sprawdź podłoże przed okładziną, ustaw projektowe przepływy i sterowanie oraz przekaż projekt, protokoły, zdjęcia i tabelę nastaw.",
          "url": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#rk-build-gates"
        }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#faq",
      "inLanguage": "pl-PL",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Jakie błędy na budowie najczęściej psują projekt ogrzewania podłogowego?",
          "acceptedAnswer": { "@type": "Answer", "text": "Najczęściej są to niezaktualizowane zmiany architektury, inne izolacje lub okna, zmiana okładziny, przesunięcie rozdzielacza, samowolna korekta rozstawu i przebiegu pętli, niezgodna konstrukcja podłogi, brak próby szczelności, brak odbioru przed jastrychem oraz brak dokumentacji powykonawczej." }
        },
        {
          "@type": "Question",
          "name": "Czy każda zmiana na budowie wymaga nowego projektu podłogówki?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie każda wymaga opracowania projektu od początku. Każda zmiana istotna dla obciążenia cieplnego, powierzchni aktywnej, temperatury wody, długości pętli, przepływów lub konstrukcji podłogi powinna jednak zostać oceniona. Wynikiem może być brak korekty, lokalna zmiana albo aktualizacja kilku części dokumentacji." }
        },
        {
          "@type": "Question",
          "name": "Czy można przesunąć rozdzielacz ogrzewania podłogowego po wykonaniu projektu?",
          "acceptedAnswer": { "@type": "Answer", "text": "Można po sprawdzeniu nowej lokalizacji. Przesunięcie zmienia długości przyłączy kilku pętli, ich przebieg, opory hydrauliczne i dostęp serwisowy. Trzeba zaktualizować długości oraz ocenić możliwość uzyskania wymaganych przepływów." }
        },
        {
          "@type": "Question",
          "name": "Czy można zmienić płytki na panele po wykonaniu projektu?",
          "acceptedAnswer": { "@type": "Answer", "text": "Zmianę należy sprawdzić na podstawie łącznego oporu cieplnego panelu, podkładu i sposobu montażu. Większy opór nad rurą może zmniejszyć osiągalną moc albo wymagać wyższej temperatury wody. Istotne są również ograniczenia temperatury podane dla wybranej okładziny." }
        },
        {
          "@type": "Question",
          "name": "Czy pętla dłuższa niż 100 metrów zawsze jest błędem?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie można oceniać pętli tylko jedną długością. Znaczenie mają średnica wewnętrzna przewodu, przepływ, wymagana moc, różnica temperatury, armatura, opór całej trasy i dostępne ciśnienie pompy. O poprawności decydują obliczenia konkretnego obiegu." }
        },
        {
          "@type": "Question",
          "name": "Jakie ciśnienie zastosować przy próbie szczelności podłogówki?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie należy przyjmować uniwersalnej wartości bez znajomości systemu. Medium, ciśnienie, czas stabilizacji, kolejne odczyty oraz kryterium wyniku powinny wynikać z właściwej procedury, projektu, dokumentacji zastosowanych elementów i warunków na budowie." }
        },
        {
          "@type": "Question",
          "name": "Czy przed wylewką trzeba ustawiać wszystkie rotametry?",
          "acceptedAnswer": { "@type": "Answer", "text": "Odbiór przed zakryciem powinien potwierdzić identyfikację obiegów, drożność oraz próbę zgodną z procedurą. Docelowe równoważenie wykonuje się w warunkach uruchomienia instalacji według projektowych przepływów. Jednakowe ustawienie wszystkich rotametrów nie jest zasadą projektową." }
        },
        {
          "@type": "Question",
          "name": "Co powinien zawierać protokół odbioru podłogówki przed wylewką?",
          "acceptedAnswer": { "@type": "Answer", "text": "Powinien identyfikować inwestycję i wersję projektu, potwierdzać zgodność tras i oznaczeń, wskazywać uwagi oraz ich usunięcie, zawierać wynik próby szczelności, datę, uczestników i jednoznaczną decyzję dotyczącą dopuszczenia instalacji do zakrycia." }
        },
        {
          "@type": "Question",
          "name": "Czy zdjęcia rur przed wylewką wystarczą jako dokumentacja?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie. Zdjęcia są jednym z elementów. Potrzebne są również aktualny rzut, identyfikacja pętli, ich rzeczywiste długości, protokół próby, zestawienie nastaw oraz opis zmian. Fotografie powinny zawierać miarę albo trwałe punkty odniesienia." }
        },
        {
          "@type": "Question",
          "name": "Kiedy trzeba ponownie przeliczyć ogrzewanie podłogowe?",
          "acceptedAnswer": { "@type": "Answer", "text": "Ponowna kontrola jest potrzebna szczególnie po zmianie przegród, okien, temperatur pomieszczeń, aktywnej powierzchni, okładziny, źródła ciepła, temperatury zasilania, położenia rozdzielacza, liczby i przebiegu pętli albo konstrukcji podłogi." }
        },
        {
          "@type": "Question",
          "name": "Kto zatwierdza zmianę rozstawu rur na budowie?",
          "acceptedAnswer": { "@type": "Answer", "text": "Rozstaw wynika z obciążenia pomieszczenia, konstrukcji podłogi i parametrów wody, dlatego jego zmianę powinien ocenić autor właściwej części projektu lub osoba posiadająca komplet danych do ponownego sprawdzenia. Nie powinien być korygowany wyłącznie na podstawie ilości pozostałej rury." }
        },
        {
          "@type": "Question",
          "name": "Co zrobić, gdy instalacja została już zalana bez dokumentacji?",
          "acceptedAnswer": { "@type": "Answer", "text": "Należy zebrać dostępne projekty, zdjęcia i informacje wykonawcy, zidentyfikować pętle, wykonać bezpieczne pomiary instalacji oraz uzupełnić dokumentację w zakresie możliwym bez odkrywek. Zakres diagnostyki zależy od objawów i nie powinien być zastępowany zgadywaniem przebiegu rur." }
        }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#audit",
      "name": "Kontrola zgodności projektu ogrzewania podłogowego z budową — 5 etapów",
      "url": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#rk-build-audit",
      "description": "Interaktywna lista dwudziestu potwierdzeń pogrupowanych w pięć bramek odbiorowych, ze wskazaniem siedmiu punktów krytycznych przed zakryciem instalacji.",
      "applicationCategory": "EducationalApplication",
      "applicationSubCategory": "Interaktywna lista kontroli budowy 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": [
        "Kontrola aktualności danych projektu",
        "Kontrola podłoża i konstrukcji podłogi",
        "Kontrola ułożonych pętli",
        "Kontrola próby oraz dopuszczenia do jastrychu",
        "Kontrola uruchomienia i dokumentacji powykonawczej",
        "Siedem punktów krytycznych blokujących ocenę pozytywną",
        "Dynamiczny wynik oraz status STOP, KONSULTACJA lub GO"
      ],
      "offers": { "@type": "Offer", "price": "0", "priceCurrency": "PLN" },
      "softwareHelp": { "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#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 systemów HVAC oraz ogrzewania podłogowego",
      "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",
        "Projektowanie instalacji sanitarnych",
        "Obciążenie cieplne budynków",
        "Hydraulika instalacji grzewczych",
        "Kontrola zgodności projektu z wykonaniem",
        "Rozdzielacze i regulacja przepływów",
        "Dokumentacja powykonawcza"
      ],
      "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-1.jpg",
        "width": 1024,
        "height": 1024
      },
      "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 bootBuildControl() {
    var root = document.getElementById("rk-build-control");
    if (!root) {
      return;
    }
    if (root.getAttribute("data-rk-build-ready") === "1") {
      return;
    }
    root.setAttribute("data-rk-build-ready", "1");

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

    function findAll(selector) {
      return root.querySelectorAll(selector);
    }

    function setText(selector, value) {
      var element = find(selector);
      if (element) {
        element.textContent = value;
      }
    }

    var checks = findAll("[data-rk-build-check]");
    var fill = find("#rk-build-fill");
    var progressbar = find(".rk-build-audit-bar");
    var signal = find("#rk-build-signal");
    var result = find("#rk-build-result");

    function updateStageCounts() {
      var stage;
      for (stage = 1; stage <= 5; stage += 1) {
        var stageChecks = findAll('[data-rk-build-check][data-stage="' + stage + '"]');
        var stageChecked = 0;
        var index;
        for (index = 0; index < stageChecks.length; index += 1) {
          if (stageChecks[index].checked) {
            stageChecked += 1;
          }
        }
        setText('[data-rk-build-stage-count="' + stage + '"]', stageChecked + "/" + stageChecks.length);
      }
    }

    function updateAudit() {
      var checked = 0;
      var criticalTotal = 0;
      var criticalChecked = 0;
      var index;

      for (index = 0; index < checks.length; index += 1) {
        if (checks[index].checked) {
          checked += 1;
        }
        if (checks[index].getAttribute("data-critical") === "1") {
          criticalTotal += 1;
          if (checks[index].checked) {
            criticalChecked += 1;
          }
        }
      }

      var total = checks.length;
      var missing = total - checked;
      var criticalMissing = criticalTotal - criticalChecked;
      var percent = total > 0 ? checked / total * 100 : 0;
      var rounded = Math.round(percent);

      setText("#rk-build-score", rounded + "%");
      setText("#rk-build-count", checked + " z " + total + " punktów");
      setText("#rk-build-missing", "Brakuje " + missing + " potwierdzeń, w tym " + criticalMissing + " krytycznych.");

      if (fill) {
        fill.style.width = percent.toFixed(1) + "%";
      }
      if (progressbar) {
        progressbar.setAttribute("aria-valuenow", String(rounded));
      }

      if (criticalMissing > 0) {
        if (signal) {
          signal.textContent = "STOP";
          signal.style.background = "#d83c2f";
        }
        if (result) {
          result.style.background = "#fff0ed";
        }
        if (fill) {
          fill.style.background = "#d83c2f";
        }
        setText("#rk-build-message", "Ocena czerwona: brakuje " + criticalMissing + " punktów krytycznych. Nie traktuj instalacji jako gotowej do zakrycia przed ich rzeczywistym sprawdzeniem i udokumentowaniem.");
      } else if (missing > 0) {
        if (signal) {
          signal.textContent = "KONSULTACJA";
          signal.style.background = "#b66a16";
        }
        if (result) {
          result.style.background = "#fff7e6";
        }
        if (fill) {
          fill.style.background = "#f2b441";
        }
        setText("#rk-build-message", "Ocena pomarańczowa: punkty krytyczne są potwierdzone, ale odbiór nie jest kompletny. Uzupełnij " + missing + " brakujących elementów i skonsultuj rozbieżności przed kolejnym etapem robót.");
      } else {
        if (signal) {
          signal.textContent = "GO";
          signal.style.background = "#178265";
        }
        if (result) {
          result.style.background = "#eaf8f3";
        }
        if (fill) {
          fill.style.background = "#178265";
        }
        setText("#rk-build-message", "Ocena zielona: wszystkie 20 punktów zostało potwierdzonych. Zachowaj projekt, rewizję powykonawczą, protokoły i zdjęcia. Wynik checklisty nadal nie zastępuje odbioru technicznego na budowie.");
      }

      updateStageCounts();
    }

    root.addEventListener("change", function (event) {
      var target = event.target;
      if (!target) {
        return;
      }
      if (target.matches("[data-rk-build-check]")) {
        updateAudit();
      }
    });

    root.addEventListener("click", function (event) {
      var clicked = event.target;
      if (!clicked) {
        return;
      }

      var resetButton = clicked.closest("#rk-build-reset");
      if (resetButton) {
        if (root.contains(resetButton)) {
          event.preventDefault();
          var index;
          for (index = 0; index < checks.length; index += 1) {
            checks[index].checked = false;
          }
          updateAudit();
          var audit = find("#rk-build-audit");
          if (audit) {
            audit.scrollIntoView({ behavior: "smooth", block: "start" });
          }
          return;
        }
      }

      var anchor = clicked.closest('a[href^="#"]');
      if (!anchor) {
        return;
      }
      if (!root.contains(anchor)) {
        return;
      }
      var selector = anchor.getAttribute("href");
      if (!selector) {
        return;
      }
      if (selector === "#") {
        return;
      }
      var destination = find(selector);
      if (!destination) {
        return;
      }
      event.preventDefault();
      var motion = "smooth";
      if (window.matchMedia) {
        if (window.matchMedia("(prefers-reduced-motion: reduce)").matches) {
          motion = "auto";
        }
      }
      destination.scrollIntoView({ behavior: motion, block: "start" });
    });

    var readingProgress = find(".rk-build-progress");
    var ticking = false;

    function updateReadingProgress() {
      if (!readingProgress) {
        ticking = false;
        return;
      }
      var rect = root.getBoundingClientRect();
      var viewport = window.innerHeight || document.documentElement.clientHeight;
      var total = Math.max(root.offsetHeight - viewport, 1);
      var passed = Math.min(Math.max(-rect.top, 0), total);
      var value = Math.min(100, Math.max(0, passed / total * 100));
      readingProgress.style.width = value.toFixed(2) + "%";
      ticking = false;
    }

    function requestReadingProgress() {
      if (ticking) {
        return;
      }
      ticking = true;
      if (window.requestAnimationFrame) {
        window.requestAnimationFrame(updateReadingProgress);
      } else {
        window.setTimeout(updateReadingProgress, 16);
      }
    }

    window.addEventListener("scroll", requestReadingProgress, { passive: true });
    window.addEventListener("resize", requestReadingProgress, { passive: true });
    updateAudit();
    updateReadingProgress();
  }

  function scheduleBuildControl() {
    bootBuildControl();
    window.setTimeout(bootBuildControl, 250);
    window.setTimeout(bootBuildControl, 900);
    window.setTimeout(bootBuildControl, 2200);
  }

  if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", scheduleBuildControl);
  } else {
    scheduleBuildControl();
  }

  window.addEventListener("load", bootBuildControl);
  window.addEventListener("pageshow", bootBuildControl);
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/">Najczęstsze błędy na budowie, które psują nawet najlepszy projekt ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Samodzielny montaż ogrzewania podłogowego – 5 błędów, których nie naprawisz po wylewce.</title>
		<link>https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 19 Apr 2026 19:27:33 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Efektywne ogrzewanie]]></category>
		<category><![CDATA[Efektywność ogrzewania]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradnik inwestora]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Poradniki inwestora]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Projektowanie systemów grzewczych]]></category>
		<category><![CDATA[Systemy ogrzewania]]></category>
		<category><![CDATA[Technika grzewcza]]></category>
		<category><![CDATA[Technika instalacyjna]]></category>
		<category><![CDATA[błędy wykonawcze]]></category>
		<category><![CDATA[budowa domu]]></category>
		<category><![CDATA[dylatacje]]></category>
		<category><![CDATA[hydraulika]]></category>
		<category><![CDATA[izolacja termiczna]]></category>
		<category><![CDATA[jastrych]]></category>
		<category><![CDATA[montaż samodzielny]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędność energii]]></category>
		<category><![CDATA[pętle grzewcze]]></category>
		<category><![CDATA[porady techniczne]]></category>
		<category><![CDATA[próba szczelności]]></category>
		<category><![CDATA[projekt instalacji]]></category>
		<category><![CDATA[rura pex]]></category>
		<category><![CDATA[zebra termiczna]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=4245</guid>

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

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

/* Subtelne tło dekoracyjne */
.premium-hero-box::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, rgba(220, 38, 38, 0.05) 0%, rgba(255,255,255,0) 70%);
    border-radius: 50%;
    transform: translate(30%, -30%);
    z-index: 0;
}

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

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

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

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

.hero-text:last-of-type {
    margin-bottom: 40px;
}

/* Moduły / Spis treści */
.hero-modules-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: #94a3b8;
    letter-spacing: 1px;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 15px;
}

.hero-modules-title::after {
    content: "";
    flex-grow: 1;
    height: 1px;
    background: var(--border-color);
}

.hero-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
}

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

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

.hero-card-icon {
    font-size: 28px;
    margin-bottom: 12px;
    display: block;
    transition: transform 0.3s;
}

.hero-card:hover .hero-card-icon {
    transform: scale(1.15);
}

.hero-card-title {
    font-size: 13px;
    font-weight: 800;
    color: var(--primary);
    line-height: 1.4;
}

@media (max-width: 900px) {
    .hero-content { padding: 35px 25px; }
    .hero-grid { grid-template-columns: repeat(2, 1fr); gap: 15px; }
}

@media (max-width: 500px) {
    .hero-grid { grid-template-columns: 1fr; }
    .hero-card { display: flex; align-items: center; text-align: left; gap: 15px; padding: 15px; }
    .hero-card-icon { margin-bottom: 0; font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "headline": "Samodzielny montaż ogrzewania podłogowego – 5 błędów, których nie naprawisz po wylewce",
    "description": "Techniczny przewodnik po najczęstszych błędach podczas montażu podłogówki DIY. Dowiedz się, dlaczego fizyka budowli i mechanika płynów są ważniejsze niż samo układanie rur.",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl"
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl"
    },
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Przegląd techniczny błędów montażowych",
    "description": "Zestawienie kluczowych parametrów technicznych i zagrożeń wynikających z błędów przy samodzielnym montażu ogrzewania podłogowego.",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Projekt hydrauliczny",
        "value": "Równowaga oporów",
        "description": "Zagrożenie: Niedogrzane pomieszczenia"
      },
      {
        "@type": "PropertyValue",
        "name": "Test ciśnieniowy",
        "value": "6 bar (0.6 MPa)",
        "description": "Zagrożenie: Wyciek pod wylewką"
      },
      {
        "@type": "PropertyValue",
        "name": "Dylatacje",
        "value": "0.012 mm/(m·K)",
        "description": "Zagrożenie: Pękanie płytek i jastrychu"
      },
      {
        "@type": "PropertyValue",
        "name": "Długość obwodów",
        "value": "Max 100m (PEX 16)",
        "description": "Zagrożenie: Przeciążenie pompy obiegowej"
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="premium-hero-box" id="hero-app-container">
    <div class="hero-content">
        
        <div class="hero-badge">
            <span>⚠️</span> Punkt bez powrotu
        </div>
        
        <p class="hero-text">Kiedy wpisujesz w wyszukiwarkę frazę <strong>„jak samemu zrobić ogrzewanie podłogowe”</strong>, widzisz dziesiątki poradników pokazujących, jak łatwo rozwinąć rolkę czerwonej lub białej rury PEX i przyszpilić ją do styropianu. Rzeczywiście, sama czynność układania wężyków jest prosta i może dać ogromną satysfakcję oraz oszczędności na robociźnie rzędu kilku tysięcy złotych.</p>
        
        <p class="hero-text">Problem w tym, że prawdziwa wiedza potrzebna przy samodzielnym montażu ogrzewania podłogowego nie dotyczy wpinania rury w rozdzielacz, ale <strong>fizyki budowli i mechaniki płynów</strong>. Poniższy artykuł to techniczny przewodnik dla tych, którzy rozumieją, że po stwardnieniu betonowej wylewki jedyną metodą naprawy błędu jest młot udarowy i nowy remont.</p>

        <div class="hero-modules-title">Poznaj katalog głównych grzechów:</div>
        
        <div class="hero-grid">
            <div class="hero-card">
                <span class="hero-card-icon">📐</span>
                <span class="hero-card-title">Brak projektu i obliczeń</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">💧</span>
                <span class="hero-card-title">Zła próba szczelności</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">🏗️</span>
                <span class="hero-card-title">Zignorowanie dylatacji</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">⚠️</span>
                <span class="hero-card-title">Błędy długości pętli</span>
            </div>
        </div>

    </div>

    <noscript>
        <div style="padding: 20px 50px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h2 style="font-size: 18px; color: #0f172a; margin-bottom: 15px;">Przegląd techniczny błędów montażowych</h2>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left;">
                <thead>
                    <tr style="border-bottom: 2px solid #cbd5e1;">
                        <th style="padding: 10px 0; color: #475569;">Obszar kontroli</th>
                        <th style="padding: 10px 0; color: #475569;">Kluczowy parametr</th>
                        <th style="padding: 10px 0; color: #475569;">Zagrożenie</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0;">Projekt hydrauliczny</td>
                        <td style="padding: 10px 0; font-weight: bold;">Równowaga oporów</td>
                        <td style="padding: 10px 0; color: #dc2626;">Niedogrzane pomieszczenia</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0;">Test ciśnieniowy</td>
                        <td style="padding: 10px 0; font-weight: bold;">6 bar (0.6 MPa)</td>
                        <td style="padding: 10px 0; color: #dc2626;">Wyciek pod wylewką</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0;">Dylatacje</td>
                        <td style="padding: 10px 0; font-weight: bold;">0.012 mm/(m·K)</td>
                        <td style="padding: 10px 0; color: #dc2626;">Pękanie płytek i jastrychu</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0;">Długość obwodów</td>
                        <td style="padding: 10px 0; font-weight: bold;">Max 100m (PEX 16)</td>
                        <td style="padding: 10px 0; color: #dc2626;">Przeciążenie pompy obiegowej</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // ZABEZPIECZENIE DOMENOWE (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('hero-app-container');
        if (container) {
            container.innerHTML = `
                <div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 300px; font-family: sans-serif;">
                    <span style="font-size: 48px; margin-bottom: 20px;">🔒</span>
                    <div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona prawem autorskim</div>
                    <p style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.5;">Ten moduł wprowadzający jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i został skopiowany nielegalnie.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="margin-top: 25px; padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
                </div>
            `;
        }
    }
});
</script>



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

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

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

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

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

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

.physics-content {
    padding: 40px;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA (Domain Lock)
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('physics-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;">' +
                '<span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>' +
                '<div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div>' +
                '<p>Ten moduł jest własnością Projekt-Ogrzewania.pl</p></div>';
        }
        return; 
    }

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

.error-content {
    padding: 40px;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('pressure-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div><p>Ten moduł jest własnością Projekt-Ogrzewania.pl</p></div>';
        }
        return; 
    }

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

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

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

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

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



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

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

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

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

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

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

.error-content {
    padding: 40px;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('expansion-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div><p>Ten moduł jest własnością Projekt-Ogrzewania.pl</p></div>';
        }
        return; 
    }

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

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

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

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

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

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

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

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



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

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

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

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

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

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

.error-content {
    padding: 40px;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('zebra-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div></div>';
        }
        return; 
    }

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

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

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

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

        visualizer.style.background = data.grad;

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

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



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

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

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

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

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

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

.error-content {
    padding: 40px;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('insulation-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div></div>';
        }
        return; 
    }

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

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

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

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

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

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

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

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



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

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

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

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

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

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

.error-content {
    padding: 40px;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('loop-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div></div>';
        }
        return; 
    }

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

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

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

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

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

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

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

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



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

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

/* Nowy styl dla H2 */
.expert-tip-wrapper h2 {
    font-family: 'Inter', -apple-system, sans-serif;
    font-size: 24px;
    font-weight: 900;
    color: var(--primary-hvac);
    margin: 0 0 20px 0;
    text-align: center;
}

.expert-tip-container {
    background: var(--bg-tip);
    border-radius: 20px;
    padding: 30px;
    display: flex;
    gap: 25px;
    align-items: center;
    border-left: 6px solid var(--accent-hvac);
    position: relative;
    font-family: 'Inter', -apple-system, sans-serif;
    text-align: left;
}

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

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

.expert-tip-photo-wrap::after {
    content: '📐';
    position: absolute;
    bottom: -5px;
    right: -5px;
    background: #ffffff;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

.expert-tip-content {
    flex-grow: 1;
}

.expert-tip-label {
    display: block;
    font-size: 12px;
    font-weight: 800;
    color: var(--accent-hvac);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 8px;
}

.expert-tip-text {
    font-size: 16px;
    line-height: 1.6;
    color: var(--primary-hvac);
    font-style: italic;
    margin: 0;
}

.expert-tip-signature {
    display: block;
    margin-top: 10px;
    font-size: 13px;
    font-weight: 700;
    color: #64748b;
}

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

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

<div class="expert-tip-wrapper">
    <h2><span style="margin-right:10px">🛡️</span>Robert Kucharski: Moja rekomendacja dla inwestorów</h2>
    
    <div class="expert-tip-container" id="expert-tip-hvac">
        <div class="expert-tip-photo-wrap">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="expert-tip-photo" loading="lazy">
        </div>
        <div class="expert-tip-content">
            <span class="expert-tip-label">Twoja polisa bezpieczeństwa</span>
            <p class="expert-tip-text">
                "Projekt instalacji to dla wykonawcy świętość, a dla Ciebie podstawa rzetelnej inwentaryzacji powykonawczej. Zanim wylejesz beton, zrób dokładne zdjęcia i zweryfikuj, czy każda pętla leży dokładnie tak, jak przewidział projektant. Tylko pełna zgodność z obliczeniami hydraulicznymi gwarantuje, że Twoje ogrzewanie osiągnie zakładaną moc i niskie koszty eksploatacji."
            </p>
            <span class="expert-tip-signature">— Robert Kucharski, CEO & Główny Projektant Projekt-Ogrzewania.pl</span>
        </div>
    </div>

    <noscript>
        <div style="padding: 20px; background: #f1f5f9; border-radius: 20px; margin-top: 20px; font-family: sans-serif;">
            <h3 style="font-size: 16px; color: #0f172a; margin-bottom: 15px;">Zalecenia inżynierskie przed wylewką betonu</h3>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left;">
                <thead>
                    <tr style="border-bottom: 2px solid #cbd5e1;">
                        <th style="padding: 10px 0; color: #475569;">Działanie inwestora</th>
                        <th style="padding: 10px 0; color: #475569;">Cel i rekomendacja inżynierska</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">Dokumentacja fotograficzna</td>
                        <td style="padding: 10px 0;">Rzetelna inwentaryzacja powykonawcza przed ukryciem rur.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">Weryfikacja układu pętli</td>
                        <td style="padding: 10px 0;">Sprawdzenie zgodności fizycznego montażu z projektem hydraulicznym.</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0; font-weight: bold;">Zgodność z obliczeniami</td>
                        <td style="padding: 10px 0;">Gwarancja osiągnięcia zakładanej mocy grzewczej i niskich kosztów.</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // ZABEZPIECZENIE DOMENOWE (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('expert-tip-hvac');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px 20px; text-align: center; background: #fee2e2; color: #dc2626; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 200px; font-family: sans-serif; border-radius: 20px; width: 100%;">
                    <span style="font-size: 32px; margin-bottom: 15px;">🔒</span>
                    <div style="margin-top:0; font-size: 20px; font-weight: bold; margin-bottom: 10px;">Wskazówka ekspercka chroniona prawem autorskim</div>
                    <p style="font-size: 14px; max-width: 500px; color: #7f1d1d; line-height: 1.5;">Ten moduł jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i został skopiowany nielegalnie.</p>
                </div>
            `;
            container.style.borderLeft = 'none';
            container.style.background = 'transparent';
            container.style.padding = '0';
        }
    }
});
</script>



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<script>
// ZABEZPIECZENIE DOMENOWE (Domain Lock)
document.addEventListener('DOMContentLoaded', function() {
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const appElement = document.getElementById('params-app');
        if (appElement) {
            appElement.innerHTML = `
                <div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 400px; border-radius: 20px;">
                    <span style="font-size: 48px; margin-bottom: 20px;">🔒</span>
                    <div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona prawem autorskim</div>
                    <p style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.5;">Ta tabela techniczna jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i została wklejona na tę stronę bez zgody autora.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="margin-top: 25px; padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
                </div>
            `;
        }
    }
});
</script>



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



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

/* ZAJAWKA SEO I LINK */
.calc-intro {
    max-width: 1150px;
    margin: 40px auto 10px auto;
    text-align: center;
    padding: 0 20px;
}

.calc-intro h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--primary);
    margin-bottom: 15px;
}

.calc-intro p {
    font-size: 16px;
    color: #475569;
    line-height: 1.6;
    max-width: 800px;
    margin: 0 auto;
}

.screed-calc {
    max-width: 1150px;
    margin: 30px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    overflow: hidden;
    color: var(--primary);
}

.calc-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
}

/* LEWA STRONA - KONFIGURACJA */
.config-side {
    padding: 40px;
    background: #ffffff;
}

.section-title {
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    color: #94a3b8;
    letter-spacing: 1.2px;
    margin-bottom: 20px;
    display: block;
}

.type-selector {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    margin-bottom: 30px;
}

.type-btn {
    padding: 14px 8px;
    border: 2px solid #cbd5e1;
    border-radius: 12px;
    cursor: pointer;
    text-align: center;
    font-weight: 700;
    font-size: 13px;
    color: #475569;
    background: #fff;
    transition: all 0.2s;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.type-btn span {
    margin-top: 4px;
}

.type-btn.active {
    border-color: var(--accent);
    background: #eff6ff;
    color: var(--accent);
    box-shadow: 0 4px 12px rgba(37, 99, 235, 0.1);
}

.input-wrap { margin-bottom: 25px; }
.input-label-row {
    display: flex;
    justify-content: space-between;
    margin-bottom: 8px;
    align-items: center;
}
.input-label-row label { font-weight: 600; font-size: 14px; }
.input-label-row .val-badge {
    background: #f1f5f9;
    padding: 4px 12px;
    border-radius: 8px;
    font-weight: 800;
    color: var(--accent);
    font-size: 14px;
}

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

/* PRAWA STRONA - WYNIKI */
.result-side {
    padding: 40px;
    background: var(--bg-light);
    border-left: 1px solid #f1f5f9;
}

.main-score-box {
    background: white; padding: 30px; border-radius: 20px; text-align: center; box-shadow: 0 10px 25px rgba(0,0,0,0.03); margin-bottom: 25px; border-bottom: 6px solid var(--success); transition: 0.3s;
}
.score-num { font-size: 48px; font-weight: 900; line-height: 1; display: block; margin: 10px 0; }
.score-label { font-size: 12px; color: #64748b; font-weight: 700; text-transform: uppercase; }

#risk-msg {
    margin-top: 15px; padding: 12px; border-radius: 10px; font-size: 13px; font-weight: 600; display: none; background: #fee2e2; color: var(--danger); border: 1px solid #fecaca; line-height: 1.4; text-align: left;
}

.tech-grid {
    background: var(--primary); color: white; padding: 25px; border-radius: 20px; display: grid; gap: 12px;
}
.tech-item {
    display: flex; justify-content: space-between; padding-bottom: 12px; border-bottom: 1px solid #1e293b; align-items: center;
}
.tech-item:last-child { border: none; padding-bottom: 0; }
.tech-item span { color: #94a3b8; font-size: 13px; }
.tech-item strong { font-size: 15px; text-align: right;}

.material-grid {
    display: grid; grid-template-columns: 1fr; gap: 10px; margin-top: 15px;
}
.mini-card { background: rgba(255,255,255,0.08); padding: 15px; border-radius: 12px; text-align: center;}
.mini-card span { font-size: 11px; color: #94a3b8; display: block; margin-bottom: 6px; text-transform: uppercase; font-weight: 600;}
.mini-card strong { font-size: 18px; color: #fbbf24; }

/* STOPKA */
.footer-cta {
    margin: 0 40px 40px 40px;
    padding: 30px;
    background: #eff6ff;
    border-radius: 20px;
    border-left: 6px solid var(--accent);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 30px;
}

.cta-text-side {
    max-width: 550px;
}

.cta-buttons-stack {
    display: flex;
    flex-direction: column; 
    gap: 12px;
    min-width: 280px; 
}

.cta-btn {
    display: block; background: var(--accent); color: white; text-decoration: none; padding: 16px 20px; border-radius: 12px; font-weight: 800; transition: 0.3s; font-size: 13px; text-align: center; border: none; cursor: pointer;
}
.cta-btn:hover { transform: translateY(-3px); box-shadow: 0 5px 15px rgba(37, 99, 235, 0.2); }

@media (max-width: 900px) {
    .calc-grid { grid-template-columns: 1fr; }
    .footer-cta { flex-direction: column; text-align: center; gap: 25px; margin: 20px; }
    .cta-buttons-stack { min-width: 100%; width: 100%; }
}
</style>

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

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

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

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

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

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

    <div class="footer-cta">
        <div class="cta-text-side">
            <h3 style="margin:0 0 10px 0; color:#1e3a8a">Chcesz obliczyć cały dom?</h3>
            <p style="margin:0; font-size:14px; color:#475569">Ten uproszczony wzór świetnie sprawdza się do szybkiej estymacji jednego pokoju. Jeśli chcesz zaprojektować rozdzielacz dla całego domu, skorzystaj z naszego zaawansowanego narzędzia.</p>
        </div>
        <div class="cta-buttons-stack">
            <a href="https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/" class="cta-btn">
                KOMPLEKSOWY KALKULATOR →
            </a>
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="cta-btn" style="background:#1e293b">
                ZAMÓW PROJEKT INŻYNIERSKI
            </a>
        </div>
    </div>

    <noscript>
        <div style="padding: 30px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h3 style="font-size: 18px; color: #0f172a;">Metodyka obliczeń zapotrzebowania na rurę</h3>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left; margin-bottom: 20px;">
                <thead>
                    <tr style="border-bottom: 2px solid #cbd5e1;">
                        <th style="padding: 10px 0; color: #475569;">Rozstaw rur</th>
                        <th style="padding: 10px 0; color: #475569;">Zużycie na 1 m²</th>
                        <th style="padding: 10px 0; color: #475569;">Komentarz</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">10 cm</td>
                        <td style="padding: 10px 0;">~10.0 m</td>
                        <td style="padding: 10px 0;">Łazienki i pompy ciepła.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">15 cm</td>
                        <td style="padding: 10px 0;">~6.6 m</td>
                        <td style="padding: 10px 0;">Standard rynkowy.</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0; font-weight: bold;">25 cm</td>
                        <td style="padding: 10px 0;">~4.0 m</td>
                        <td style="padding: 10px 0;">Wyłącznie jako tło cieplne.</td>
                    </tr>
                </tbody>
            </table>
            <p style="font-size: 13px; color: #475569; line-height: 1.6;">
                <strong>Wzór:</strong> Całkowita długość = (Powierzchnia / Rozstaw) + (2 * Długość ścian zewnętrznych).<br>
                Zgodnie z prawami fizyki, pojedyncza pętla z rury 16x2.0 nie powinna przekraczać 100 metrów ze względu na opory hydrauliczne.
            </p>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA (Domain Lock)
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('pipe-calc-app');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px; font-family: sans-serif;">' +
                '<span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>' +
                '<div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px; color: #dc2626;">Narzędzie chronione</div>' +
                '<p style="font-size: 16px; margin-bottom: 25px;">Ten kalkulator jest własnością serwisu <a href="https://projekt-ogrzewania.pl/" style="color: #dc2626; font-weight: bold; text-decoration: underline;">Projekt-Ogrzewania.pl</a></p>' +
                '<a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 14px 28px; background: #dc2626; color: #ffffff; text-decoration: none; border-radius: 12px; font-weight: 800;">PRZEJDŹ DO ORYGINAŁU</a>' +
                '</div>';
        }
        return; 
    }

    var spacingMeters = 0.15; // Domyślny rozstaw to 15 cm
    var SAFE_LOOP_LIMIT = 90; // Oczekiwany dzielnik długości pętli
    var MAX_LOOP_LIMIT = 100; // Bezwzględny limit pętli
    
    function updateCalc() {
        var areaEl = document.getElementById('area');
        var wallsEl = document.getElementById('walls');
        
        if(!areaEl || !wallsEl) return;

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

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

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

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

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

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

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

    var btnKeys = Object.keys(spacingOptions);
    for (var i = 0; i < btnKeys.length; i++) {
        (function(btnId) {
            var btn = document.getElementById(btnId);
            if(btn) {
                btn.addEventListener('click', function(e) {
                    spacingMeters = spacingOptions[btnId];
                    // Reset klas active
                    for(var j = 0; j < btnKeys.length; j++) {
                        var el = document.getElementById(btnKeys[j]);
                        if(el) { el.classList.remove('active'); }
                    }
                    e.currentTarget.classList.add('active');
                    updateCalc();
                });
            }
        })(btnKeys[i]);
    }

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<script>
// ZABEZPIECZENIE DOMENOWE (Domain Lock - Czysty JS)
document.addEventListener('DOMContentLoaded', function() {
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const appContainer = document.getElementById('diy-myth-app');
        if (appContainer) {
            appContainer.innerHTML = `
                <div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 400px; border-radius: 24px; font-family: sans-serif;">
                    <span style="font-size: 48px; margin-bottom: 20px;">🔒</span>
                    <div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona prawem autorskim</div>
                    <p style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.5;">To zestawienie mitów budowlanych jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i zostało wklejone na tę stronę bez zgody autora.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="margin-top: 25px; padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
                </div>
            `;
        }
    }
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --accent-light: #eff6ff;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
    --text-muted: #475569;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('faq-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div></div>';
        }
        return; 
    }

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

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

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



<style>
:root {
    --sum-bg-gradient: linear-gradient(145deg, #1e293b 0%, #0f172a 100%);
    --sum-text: #f8fafc;
    --sum-accent: #3b82f6;
    --sum-danger: #ef4444;
    --sum-warning: #f59e0b;
    --sum-success: #10b981;
}

.premium-summary-box {
    max-width: 950px;
    margin: 60px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--sum-bg-gradient);
    border-radius: 24px;
    box-shadow: 0 30px 60px -15px rgba(0, 0, 0, 0.4);
    border: 1px solid #334155;
    overflow: hidden;
    color: var(--sum-text);
    position: relative;
}

/* Subtelny szum / poświata w tle */
.premium-summary-box::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, rgba(59,130,246,0.05) 0%, transparent 60%);
    z-index: 0;
    pointer-events: none;
}

.summary-content {
    position: relative;
    z-index: 1;
    padding: 50px;
}

.summary-header {
    text-align: center;
    margin-bottom: 35px;
}

.summary-icon {
    font-size: 56px;
    line-height: 1;
    margin-bottom: 20px;
    display: inline-block;
    filter: drop-shadow(0 4px 6px rgba(0,0,0,0.3));
}

.summary-header h2 {
    margin: 0 0 15px 0;
    font-size: 32px;
    font-weight: 900;
    color: #ffffff;
    letter-spacing: -0.5px;
}

.summary-text {
    font-size: 16px;
    line-height: 1.8;
    color: #cbd5e1;
    text-align: center;
    max-width: 800px;
    margin: 0 auto 30px auto;
}

.summary-text strong {
    color: #ffffff;
    font-weight: 700;
}

/* WIZUALNA WAGA RYZYKA */
.risk-scale-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin: 40px 0;
}

.risk-card {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 16px;
    padding: 30px;
    text-align: center;
    transition: transform 0.3s ease;
}

.risk-card:hover {
    transform: translateY(-5px);
    background: rgba(255, 255, 255, 0.05);
}

.risk-card.bad-choice {
    border-bottom: 4px solid var(--sum-danger);
}

.risk-card.good-choice {
    border-bottom: 4px solid var(--sum-success);
}

.risk-label {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    font-weight: 800;
    margin-bottom: 15px;
    display: block;
}

.bad-choice .risk-label { color: #fca5a5; }
.good-choice .risk-label { color: #6ee7b7; }

.risk-value {
    font-size: 36px;
    font-weight: 900;
    color: #ffffff;
    margin-bottom: 10px;
    display: block;
}

.risk-desc {
    font-size: 14px;
    color: #94a3b8;
    line-height: 1.5;
    margin: 0;
}

/* CTA BUTTONS */
.summary-actions {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: 40px;
    flex-wrap: wrap;
}

.sum-btn {
    padding: 16px 32px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    text-decoration: none;
    transition: all 0.3s ease;
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.sum-btn-primary {
    background: var(--sum-accent);
    color: #ffffff !important;
    box-shadow: 0 10px 20px -5px rgba(59, 130, 246, 0.5);
    border: 1px solid #60a5fa;
}

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

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

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

@media (max-width: 768px) {
    .summary-content { padding: 40px 25px; }
    .risk-scale-grid { grid-template-columns: 1fr; gap: 15px; }
    .summary-actions { flex-direction: column; width: 100%; gap: 15px; }
    .sum-btn { justify-content: center; width: 100%; }
}
</style>

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

<div class="premium-summary-box" id="summary-app-lock">
    <div class="summary-content">
        
        <div class="summary-header">
            <span class="summary-icon">🏁</span>
            <h2>Podsumowanie: Beton nie wybacza</h2>
        </div>

        <p class="summary-text">
            Decydując się na samodzielne wykonanie instalacji ogrzewania podłogowego, stajesz przed <strong>zadaniem inżynierskim</strong>, a nie tylko pracą fizyczną. Pięć wymienionych błędów – od braku ciśnienia podczas wylewki, przez ignorowanie dylatacji, po zbyt długie pętle – to problemy, które w przeciwieństwie do krzywo przyklejonej tapety, <strong>zostaną z Tobą na zawsze pod warstwą płytek i wylewki.</strong>
        </p>

        <div class="risk-scale-grid">
            <div class="risk-card bad-choice">
                <span class="risk-label">Fałszywa Oszczędność</span>
                <span class="risk-value">1 000 zł</span>
                <p class="risk-desc">Tyle rzekomo zaoszczędzisz rezygnując z projektu lub zagęszczenia rur. Może to jednak skutkować koniecznością <strong>skucia całej podłogi za 10 000 zł</strong>.</p>
            </div>
            <div class="risk-card good-choice">
                <span class="risk-label">Prawdziwa Inwestycja</span>
                <span class="risk-value">30 Lat</span>
                <p class="risk-desc">Projekt i precyzyjne wyliczenia to jedyna inwestycja w tej układance, która nie wymaga wylewki, a daje <strong>zwrot w postaci cichej i taniej pracy instalacji przez dekady.</strong></p>
            </div>
        </div>

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

        <div class="summary-actions">
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="sum-btn sum-btn-primary">
                📐 SKONSULTUJ SIĘ Z PROJEKTANTEM
            </a>
            <a href="https://projekt-ogrzewania.pl/blog/" class="sum-btn sum-btn-secondary">
                📖 CZYTAJ NASZ BLOG
            </a>
        </div>

    </div>

    <noscript>
        <div style="padding: 30px; background: #0f172a; border-top: 1px solid #334155; font-family: sans-serif; color: #cbd5e1;">
            <h3 style="color: #ffffff; margin-top: 0;">Analiza ryzyka samodzielnego montażu podłogówki</h3>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left; margin-bottom: 20px;">
                <thead>
                    <tr style="border-bottom: 2px solid #334155;">
                        <th style="padding: 10px 0; color: #94a3b8;">Podejście do inwestycji</th>
                        <th style="padding: 10px 0; color: #94a3b8;">Szacowany koszt początkowy</th>
                        <th style="padding: 10px 0; color: #94a3b8;">Konsekwencje</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #1e293b;">
                        <td style="padding: 10px 0; font-weight: bold;">Oszczędność na projekcie</td>
                        <td style="padding: 10px 0; color: #ef4444;">-1000 PLN (pozornie)</td>
                        <td style="padding: 10px 0;">Ryzyko skucia posadzki i wysokich rachunków.</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0; font-weight: bold;">Profesjonalny projekt</td>
                        <td style="padding: 10px 0; color: #10b981;">Koszt rynkowy</td>
                        <td style="padding: 10px 0;">Gwarancja cichej i taniej pracy przez min. 30 lat.</td>
                    </tr>
                </tbody>
            </table>
            <p style="font-size: 13px; line-height: 1.6;">
                Samodzielny montaż to zadanie inżynierskie. Błędy hydrauliczne i konstrukcyjne stają się nieodwracalne po wylaniu betonu. Projekt instalacji to jedyna pewna polisa bezpieczeństwa.
            </p>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('summary-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div><p>Ten moduł jest własnością Projekt-Ogrzewania.pl</p></div>';
        }
    }
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/">Samodzielny montaż ogrzewania podłogowego – 5 błędów, których nie naprawisz po wylewce.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ile trwa montaż ogrzewania podłogowego?</title>
		<link>https://projekt-ogrzewania.pl/ile-trwa-montaz-ogrzewania-podlogowego/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 17 May 2025 12:45:04 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Instalacja ogrzewania podłogowego]]></category>
		<category><![CDATA[Montaż ogrzewania podłogowego]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Podłogówka]]></category>
		<category><![CDATA[Remont]]></category>
		<category><![CDATA[Remont domu]]></category>
		<category><![CDATA[Systemy grzewcze]]></category>
		<category><![CDATA[Systemy niskotemperaturowe]]></category>
		<category><![CDATA[Systemy ogrzewania]]></category>
		<category><![CDATA[czas montażu podłogówki]]></category>
		<category><![CDATA[ile trwa montaż ogrzewania podłogowego]]></category>
		<category><![CDATA[jak długo schnie jastrych]]></category>
		<category><![CDATA[montaż podłogówki]]></category>
		<category><![CDATA[ogrzewanie wodne]]></category>
		<category><![CDATA[podłogówka bez wylewki]]></category>
		<category><![CDATA[próba szczelności]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[system mokry]]></category>
		<category><![CDATA[system suchy]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2611</guid>

					<description><![CDATA[<p>Ile trwa montaż ogrzewania podłogowego? To pytanie zadaje sobie każdy, kto planuje modernizację lub budowę domu z komfortowym systemem grzewczym. Czas realizacji zależy od wielu czynników – powierzchni, systemu (mokrego lub suchego), etapu budowy i jakości projektu. W tym artykule przedstawiamy realistyczne scenariusze, praktyczne przykłady i sposoby na skrócenie czasu prac bez utraty jakości.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-trwa-montaz-ogrzewania-podlogowego/">Ile trwa montaż ogrzewania podłogowego?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><em>Czas realizacji instalacji grzewczej</em> to jeden z kluczowych czynników, który wpływa na decyzję inwestora. Wśród różnych systemów coraz większą popularność zyskuje <strong>wodne ogrzewanie podłogowe</strong>, które zapewnia komfort cieplny i równomierny rozkład temperatury. Ale <strong>ile trwa montaż ogrzewania podłogowego</strong>? Odpowiedź nie jest jednoznaczna, bo zależy od wielu czynników – rodzaju systemu, powierzchni, etapu budowy czy doświadczenia wykonawcy. W tym artykule analizujemy realny czas potrzebny na wykonanie instalacji oraz wskazujemy, co może ten proces przyspieszyć lub opóźnić.</p>



<h2 class="wp-block-heading">Etapy montażu ogrzewania podłogowego – co wpływa na czas realizacji?</h2>



<p class="wp-block-paragraph">Aby zrozumieć, <em>ile trwa montaż podłogówki</em>, warto najpierw przyjrzeć się poszczególnym etapom prac:</p>



<h3 class="wp-block-heading">1. Przygotowanie podłoża.</h3>



<p class="wp-block-paragraph">To etap niezbędny, zwłaszcza przy montażu na gruncie lub na nierównym stropie. Obejmuje:</p>



<ul class="wp-block-list">
<li>wyrównanie powierzchni,</li>



<li>ułożenie folii i izolacji termicznej (np. <a href="https://projekt-ogrzewania.pl/produkt/plyta-styropianowa-eps-100-z-folia-przeciwwilgociowa/">płyta styropianowa EPS 100</a>),</li>



<li>montaż taśmy brzegowej i dylatacyjnej.</li>
</ul>



<p class="wp-block-paragraph">⏱️ <strong>Czas trwania:</strong> 1 dzień przy sprawnym zespole.</p>



<h3 class="wp-block-heading">2. Układanie rur grzewczych.</h3>



<p class="wp-block-paragraph">Ten etap wymaga największej precyzji. W zależności od systemu, <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">rury</a> układa się w pętle spiralne (ślimak) lub meandryczne. Średnio układa się od 80 do 120 metrów rury dziennie na osobę.</p>



<p class="wp-block-paragraph">⏱️ <strong>Czas trwania:</strong> 1–2 dni dla 100 m² powierzchni.</p>



<h3 class="wp-block-heading">3. Test szczelności (próba ciśnieniowa)</h3>



<p class="wp-block-paragraph">To obowiązkowy etap przed zalaniem instalacji wylewką. Instalacja jest napełniana wodą i przez minimum 24 godziny utrzymywana pod ciśnieniem 6 barów.</p>



<p class="wp-block-paragraph">⏱️ <strong>Czas trwania:</strong> 1 dzień (najczęściej równolegle z innymi pracami).</p>



<p class="wp-block-paragraph">📌 Zobacz więcej: <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">Próba szczelności ogrzewania podłogowego</a></p>



<h3 class="wp-block-heading">4. Wylewka cementowa lub anhydrytowa</h3>



<p class="wp-block-paragraph">W przypadku systemu mokrego to kluczowy moment. Na rurach wylewana jest warstwa 5–7 cm jastrychu.</p>



<p class="wp-block-paragraph">⏱️ <strong>Czas montażu:</strong> 1 dzień, ale <strong>czas schnięcia</strong> to kolejne 21–28 dni (beton) lub 7–14 dni (anhydryt).</p>



<p class="wp-block-paragraph">📖 Szczegóły: <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">Wylewka na ogrzewanie podłogowe – kompletny przewodnik</a></p>



<h2 class="wp-block-heading">System suchy a czas montażu – krótszy nawet o połowę.</h2>



<p class="wp-block-paragraph">Jeśli zależy Ci na czasie, warto rozważyć <strong>system suchy</strong>. Rury układa się w gotowych płytach styropianowych lub kasetach aluminiowych, bez konieczności wylewania jastrychu.</p>



<h3 class="wp-block-heading"><strong>Zalety pod względem czasu:</strong></h3>



<ul class="wp-block-list">
<li>brak czasu schnięcia wylewki,</li>



<li>łatwy montaż bez ciężkiego sprzętu,</li>



<li>możliwość natychmiastowego ułożenia podłogi.</li>
</ul>



<p class="wp-block-paragraph">⏱️ <strong>Czas montażu systemu suchego:</strong> 2–3 dni dla powierzchni 100 m².</p>



<p class="wp-block-paragraph">📖 Porównanie systemów: <a href="https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/">System mokry czy suchy – który wybrać?</a></p>



<h2 class="wp-block-heading">O co pytają inwestorzy zanim zdecydują się na montaż?</h2>



<p class="wp-block-paragraph">Jeśli jesteś na etapie planowania ogrzewania podłogowego, to pewnie głowa pęka Ci od pytań. „Ile to w ogóle trwa?” – pytasz. „Czy da się to zrobić w jeden weekend, czy raczej czeka mnie miesiąc czekania aż wylewka wyschnie?”. A co jeśli masz dom 120 m², a wykonawca mówi, że będzie „szybko”? No właśnie – co to znaczy „szybko”? I czy w ogóle można zrobić podłogówkę bez projektu?</p>



<p class="wp-block-paragraph">To są normalne pytania – miał je praktycznie każdy, kto robił taką instalację. Dlatego zebraliśmy wszystko w tym artykule, żebyś nie musiał szukać odpowiedzi po dziesięciu forach i grupach na Facebooku.</p>



<h2 class="wp-block-heading">Od czego jeszcze zależy czas montażu?</h2>



<p class="wp-block-paragraph">🔹 <strong>Wielkość i podział pomieszczeń</strong> – duże, otwarte przestrzenie układa się szybciej niż wiele małych pokoi.</p>



<p class="wp-block-paragraph">🔹 <strong>Doświadczenie wykonawcy</strong> – profesjonalna ekipa skróci montaż nawet o 30%.</p>



<p class="wp-block-paragraph">🔹 <strong>Obecność projektu instalacji</strong> – gotowy projekt (np. <a href="https://projekt-ogrzewania.pl/kategoria-produktu/projekty/">projekt instalacji ogrzewania podłogowego</a>) zawiera rozkład rur, ilość pętli, dobór rozdzielacza i moc źródła ciepła. Dzięki temu nie trzeba nic improwizować – prace są szybsze i dokładniejsze.</p>



<h2 class="wp-block-heading">Ile więc trwa montaż ogrzewania podłogowego w praktyce?</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><th>Etap prac</th><th>System mokry</th><th>System suchy</th></tr><tr><td>Przygotowanie podłoża</td><td>1 dzień</td><td>1 dzień</td></tr><tr><td>Układanie rur</td><td>1–2 dni</td><td>1–2 dni</td></tr><tr><td>Test szczelności</td><td>1 dzień</td><td>1 dzień</td></tr><tr><td>Wylewka i schnięcie</td><td>7–28 dni</td><td>brak</td></tr><tr><td>Układanie posadzki</td><td>1 dzień</td><td>1 dzień</td></tr><tr><td><strong>Łącznie aktywne prace</strong></td><td><strong>4–5 dni</strong></td><td><strong>3–4 dni</strong></td></tr></tbody></table></figure>



<h2 class="wp-block-heading">Przykłady z życia – ile trwało naprawdę?</h2>



<p class="wp-block-paragraph">🔧 <strong>Dom 120 m², system mokry, 4 osoby w ekipie:</strong></p>



<ul class="wp-block-list">
<li>Przygotowanie + układanie rur: 2 dni</li>



<li>Próba szczelności + wylewka: 1 dzień</li>



<li>Schnięcie jastrychu: 21 dni</li>



<li><strong>Łącznie:</strong> 24 dni (z przerwą)</li>
</ul>



<p class="wp-block-paragraph">🔧 <strong>Mieszkanie 80 m², system suchy, 2 osoby:</strong></p>



<ul class="wp-block-list">
<li>Całość prac wykonana w 3 dni robocze</li>
</ul>



<h2 class="wp-block-heading">Projekt to podstawa – jak skrócić czas montażu i uniknąć poprawek?</h2>



<p class="wp-block-paragraph">Zamawiając <strong>projekt ogrzewania podłogowego</strong>, zyskujesz:</p>



<ul class="wp-block-list">
<li>gotowe rozstawy rur (np. 10, 15 lub 20 cm),</li>



<li>obliczone długości pętli i średnice rur,</li>



<li>schemat rozdzielacza,</li>



<li>dobór izolacji, sterowania i źródła ciepła.</li>
</ul>



<p class="wp-block-paragraph">Dzięki temu cały proces przebiega szybciej, a wykonawca działa pewnie i bez błędów. Co więcej, mając projekt, łatwiej uzyskać ofertę na materiały oraz porównać kilku wykonawców.</p>



<p class="wp-block-paragraph">📍 <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów profesjonalny projekt ogrzewania podłogowego</a></p>



<h2 class="wp-block-heading">FAQ – najczęstsze pytania i odpowiedzi:</h2>



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1747485043112"><strong class="schema-faq-question"><strong>Czy można zamontować ogrzewanie podłogowe bez projektu?</strong></strong> <p class="schema-faq-answer">Tak, ale wiąże się to z większym ryzykiem błędów, nierównomiernym ogrzewaniem i trudnościami w doborze materiałów.</p> </div> <div class="schema-faq-section" id="faq-question-1747485052584"><strong class="schema-faq-question"><strong>Ile dni potrzeba na montaż podłogówki w jednym pomieszczeniu?</strong></strong> <p class="schema-faq-answer">Zazwyczaj 1–2 dni, w zależności od przygotowania podłoża i doświadczenia ekipy.</p> </div> <div class="schema-faq-section" id="faq-question-1747485067672"><strong class="schema-faq-question"><strong>Jak długo trzeba czekać na wyschnięcie wylewki w systemie mokrym?</strong></strong> <p class="schema-faq-answer">W przypadku betonu od 21 do 28 dni, dla anhydrytu 7–14 dni – przy odpowiedniej wentylacji.</p> </div> <div class="schema-faq-section" id="faq-question-1747485076156"><strong class="schema-faq-question"><strong>Czy system suchy naprawdę skraca czas montażu?</strong></strong> <p class="schema-faq-answer">Tak, nie wymaga wylewki ani schnięcia – cały proces można zamknąć w 2–3 dniach dla 100 m².</p> </div> <div class="schema-faq-section" id="faq-question-1747485092532"><strong class="schema-faq-question"><strong>Co może opóźnić prace montażowe?</strong></strong> <p class="schema-faq-answer">Brak projektu, niedoświadczona ekipa, niska temperatura otoczenia (w przypadku wylewek), a także zły dobór materiałów.</p> </div> </div>



<h2 class="wp-block-heading">Podsumowanie: Ile trwa montaż ogrzewania podłogowego?</h2>



<p class="wp-block-paragraph"><strong>System mokry</strong> to standard, ale wymaga czasu na schnięcie – łącznie nawet 3–4 tygodnie. <strong>System suchy</strong> pozwala zakończyć prace w kilka dni. Jeśli masz dobry projekt, sprawdzoną ekipę i odpowiednie materiały – montaż instalacji podłogowej może być szybki, precyzyjny i bezstresowy.</p>



<p class="wp-block-paragraph">Pamiętaj – liczy się nie tylko czas wykonania, ale też <em>dokładność</em>, która przełoży się na komfort cieplny przez kolejne lata.</p>



<figure class="wp-block-embed aligncenter is-type-wp-embed is-provider-projekt-ogrzewania wp-block-embed-projekt-ogrzewania"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="GtBzHACote"><a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Projekt instalacji ogrzewania podłogowego &#8211; podłogówki</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8222;Projekt instalacji ogrzewania podłogowego &#8211; podłogówki&#8221; &#8212; Projekt Ogrzewania" src="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/embed/#?secret=S7tiiC9CbY#?secret=GtBzHACote" data-secret="GtBzHACote" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-trwa-montaz-ogrzewania-podlogowego/">Ile trwa montaż ogrzewania podłogowego?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
