/* Góra strony miasta (uklad.gora = "kalkulator"): reguły wyżej przeniesione bez zmian ze strony magazynów energii (magazyny-energii-od-zera/v1/magazyn.css, sekcje hero, kafle, wynik, formularz, słupki), niżej tylko to, co pompa ma inne. */
/* LAB strona magazynów energii v1 (03.11.2026). Język: strona główna, /dofinansowania/, strona PV. Tokeny: marka/DESIGN.md.
   Bez pauz w treści, bez etykiet wersalikami nad nagłówkami. Górna strefa jak landingi spółdzielni: kafle-klawisze, przed i po, słupki. Ruch: jedno podskoczenie kafli, wejścia kroków, paski wyniku. */
.mg { --sosna:#123f2d; --sosna2:#19583f; --sosna3:#0c2e21; --atrament:#1c3428; --mut:#58685f; --zloto:#ceb472; --zloto2:#dcc78f; --tlo:#f7f8f4; --szalwia:#eaf0e3; --linia:#dce3da; --fokus:#a67b23; font-family:Poppins,system-ui,sans-serif; color:var(--atrament); background:var(--tlo); font-size:16px; line-height:1.65; overflow-x:clip; }
.mg *, .mg *::before, .mg *::after { box-sizing:border-box; }
.mg img, .mg svg { max-width:100%; }
.mg h1,.mg h2,.mg h3 { font-weight:600; line-height:1.22; color:inherit; margin:0; letter-spacing:0; }
.mg h2 { font-size:clamp(25px,3.4vw,36px); margin-bottom:14px; text-wrap:balance; }
.mg h3 { font-size:20px; line-height:1.35; }
.mg p { margin:0 0 14px; }
.mg a { color:var(--sosna2); text-underline-offset:3px; }
.mg :focus-visible { outline:3px solid var(--fokus); outline-offset:2px; }

/* hero: jedno zdjęcie jako tło po całej szerokości (Igor 03.11: zdjęcie po lewej, zdjęcie po prawej, formularz na środku). Dawid po lewej, magazyn po prawej,
   nagłówek i karta na spokojnej ścianie w kolorze strony. Klatki z filmu RsivO_oOjCE przerobione w Gemini. Telefon: pas zdjęcia nad nagłówkiem. */
.mg-gora { position:relative; background:var(--sosna3); isolation:isolate; overflow:hidden; }
.mg-hero { position:relative; display:flex; align-items:center; height:clamp(250px,30vw,320px); }
.mg-hero-foto { position:absolute; inset:0; z-index:-1; }
.mg-hero-foto picture { display:block; height:100%; }
.mg-hero-foto img { display:block; width:100%; height:100%; max-width:none; object-fit:cover; object-position:100% 0; -webkit-mask-image:linear-gradient(0deg,#0000 0,#000 16%); mask-image:linear-gradient(0deg,#0000 0,#000 16%); }
.mg-hero-tresc { width:calc(100% - 64px); margin-inline:auto; padding-bottom:48px; }
.mg-hero h1 { max-width:11.5em; color:#fff; font-size:clamp(28px,3.6vw,38px); font-weight:600; line-height:1.14; letter-spacing:-.02em; text-align:left; text-wrap:balance; }
.mg-hero h1 span { color:var(--zloto2); }
.mg-hero h1 em { display:block; margin-top:.4em; font-size:.6em; font-style:normal; font-weight:500; letter-spacing:-.01em; color:#fff; }
.mg-ai-hero { z-index:1; top:12px; right:12px; bottom:auto; }
@media (min-width:1181px) {
  .mg-hero { position:static; display:block; height:auto; padding:clamp(14px,2.8svh,32px) 0 clamp(12px,2.2svh,22px); }
  .mg-hero-foto { inset:0 0 auto 0; height:clamp(600px,calc(100svh - 76px),1040px); }
  .mg-hero-foto img { object-position:50% 25%; }
  .mg-hero-tresc { width:min(900px,100% - 64px); padding:0; }
  .mg-hero h1 { max-width:none; font-size:clamp(30px,2.6vw,46px); text-align:center; }
}

/* karty kalkulatora: białe panele na sośnie */
.mg-kalk-pas { position:relative; z-index:1; padding:0 16px clamp(48px,6vw,76px); scroll-margin-top:90px; }
.mg-karta { position:relative; z-index:1; display:grid; gap:18px; width:min(680px,100%); margin:-44px auto 0; scroll-margin-top:84px; }
@media (min-width:1181px) { .mg-karta { margin-top:0; scroll-margin-top:100px; } }
.mg-panel { background:#fff; border-radius:22px; padding:clamp(16px,2.6vw,26px); box-shadow:0 24px 48px -28px #00150f80,0 2px 6px #123f2d14; }
.mg-panel[hidden],.mg-wynik[hidden] { display:none; }
.mg-sr { position:absolute !important; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.mg-postep { display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.mg-postep-nr { flex:none; display:grid; place-items:center; width:26px; height:26px; border-radius:50%; background:var(--sosna); color:var(--zloto2); font-size:13px; font-weight:700; }
.mg-postep-tor { flex:1; height:6px; border-radius:6px; background:var(--szalwia); overflow:hidden; --p:15%; }
.mg-postep-tor i { display:block; height:100%; width:var(--p); background:var(--sosna); border-radius:6px; transition:width .35s cubic-bezier(.22,1,.36,1); }
.mg-kroki { min-width:0; }
.mg-krok { border:0; padding:0; margin:0; min-width:0; }
.mg-krok[hidden] { display:none; }
.mg-pytanie { float:none; width:100%; padding:0; margin:0 0 14px; font-size:clamp(21px,1vw + 17px,29px); font-weight:700; line-height:1.2; letter-spacing:-.015em; color:var(--sosna); text-align:center; text-wrap:balance; outline:0; }
.mg .mg-zacheta-tekst { display:flex; align-items:center; justify-content:center; gap:6px; margin:-6px 0 12px; font-size:13.5px; font-weight:500; color:var(--mut); }
.mg-zacheta-tekst svg { width:18px; height:18px; color:#1d9150; }
.mg-wchodzi-prawo { animation:mg-prawo .28s cubic-bezier(.22,1,.36,1); }
.mg-wchodzi-lewo { animation:mg-lewo .28s cubic-bezier(.22,1,.36,1); }
@keyframes mg-prawo { from { opacity:0; transform:translateX(18px); } }
@keyframes mg-lewo { from { opacity:0; transform:translateX(-18px); } }

/* kafle odpowiedzi: wyglądają jak klawisze, z kółkiem wyboru */
.mg-opcje { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.mg-opcje-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.mg .mg-opcja { -webkit-tap-highlight-color:transparent; -webkit-user-select:none; user-select:none; position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; min-width:0; min-height:clamp(104px,16svh,150px); margin:0; padding:12px 10px 11px; border:1.5px solid #c9d7cc; border-radius:14px; background:#eef4ea; box-shadow:0 3px 0 #c9d7cc; color:var(--atrament); font:600 14.5px/1.25 Poppins,sans-serif; text-align:center; text-transform:none; letter-spacing:normal; cursor:pointer; touch-action:manipulation; transition:border-color .18s,background-color .18s,transform .12s,box-shadow .12s; }
.mg .mg-opcja::after { content:""; position:absolute; top:8px; right:8px; width:22px; height:22px; border-radius:50%; border:2px solid #5d7266; background:#fff; transition:background-color .18s,box-shadow .18s; }
@media (hover:hover) and (pointer:fine) { .mg .mg-opcja:hover { border-color:var(--sosna); background:#e6efe2; color:var(--atrament); } }
.mg .mg-opcja:focus { background:#eef4ea; color:var(--atrament); }
.mg .mg-opcja:active { transform:translateY(2px); box-shadow:0 1px 0 #c9d7cc; }
.mg .mg-opcja[aria-pressed="true"] { border-color:var(--sosna); background:#e1ece0; box-shadow:0 3px 0 var(--sosna); }
.mg .mg-opcja[aria-pressed="true"]::after { border-color:var(--sosna); background:var(--sosna); box-shadow:inset 0 0 0 4px #fff; }
.mg-opcja-obraz { display:flex; align-items:center; justify-content:center; gap:2px; width:100%; height:clamp(50px,9.6svh,92px); }
.mg-opcja-obraz img { width:auto; height:100%; min-width:0; flex:0 1 auto; object-fit:contain; }
.mg-opcja-obraz svg { width:auto; height:78%; color:var(--sosna); }
.mg-opcja-tekst { text-wrap:balance; }
.mg-opcje-kwoty .mg-opcja { min-height:clamp(84px,15svh,112px); padding-top:26px; border-color:#9fd01f; background:linear-gradient(180deg,#ddfb80 0%,#b9ea2c 100%); box-shadow:0 3px 0 #86b414; color:#182e23; }
.mg .mg-opcje-kwoty .mg-opcja:focus { background:linear-gradient(180deg,#ddfb80 0%,#b9ea2c 100%); }
@media (hover:hover) and (pointer:fine) { .mg .mg-opcje-kwoty .mg-opcja:hover { border-color:#86b414; background:linear-gradient(180deg,#e6fc98 0%,#c4f03c 100%); } }
.mg .mg-opcje-kwoty .mg-opcja:active { box-shadow:0 1px 0 #86b414; }
.mg .mg-opcje-kwoty .mg-opcja::after { border-color:#2c4a1a; background:#ffffff8c; }
.mg .mg-opcje-kwoty .mg-opcja[aria-pressed="true"] { border-color:#0c2e21; background:#0c2e21; box-shadow:0 3px 0 #04150e; color:#c6f53d; }
.mg .mg-opcje-kwoty .mg-opcja[aria-pressed="true"]::after { border-color:#c6f53d; background:#c6f53d; box-shadow:inset 0 0 0 4px #0c2e21; }
.mg-opcja-duze { font-size:clamp(25px,6.4vw,34px); font-weight:800; line-height:1; letter-spacing:-.025em; white-space:nowrap; }
.mg-opcja-duze i { font-style:normal; font-weight:500; }
.mg-opcja-duze small { font-size:.5em; font-weight:700; letter-spacing:0; }
.mg-opcja-male { font-size:12.5px; font-weight:600; line-height:1.2; }
.mg .mg-link-niewiem { display:block; margin:12px auto 0; padding:6px 8px; border:0; background:none; color:var(--sosna); font:600 14.5px/1.3 Poppins,sans-serif; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.mg .mg-wstecz { display:inline-flex; align-items:center; gap:6px; min-height:40px; margin-top:6px; padding:6px 10px 6px 4px; border:0; background:none; color:var(--sosna); font:600 14px/1.2 Poppins,sans-serif; cursor:pointer; }
.mg-wstecz svg { width:18px; height:18px; }
.mg-wstecz[hidden] { display:none; }
@media (prefers-reduced-motion:no-preference) {
  .mg-zacheta > .mg-opcja { animation:mg-zacheta .36s cubic-bezier(.23,1,.32,1); }
  .mg-zacheta > .mg-opcja:nth-child(2) { animation-delay:.09s; }
  .mg-zacheta > .mg-opcja:nth-child(3) { animation-delay:.18s; }
  .mg-zacheta > .mg-opcja:nth-child(4) { animation-delay:.27s; }
}
@keyframes mg-zacheta { 40% { transform:translateY(-5px); } }

/* przyciski */
.mg-btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:50px; padding:12px 22px; border-radius:9px; border:0; font:600 16px/1.25 Poppins,sans-serif; text-decoration:none; cursor:pointer; touch-action:manipulation; transition:transform .12s,background-color .15s; }
.mg-btn:active { transform:scale(.98); }
.mg .mg-btn-zloto { background:var(--zloto); color:#182e23; }
.mg .mg-btn-sosna { background:var(--sosna); color:#fff; }
.mg .mg-btn-sosna:hover { background:#1c573e; }
.mg .mg-btn-zielony { width:100%; min-height:58px; border-radius:14px; background:linear-gradient(180deg,#1d9150 0%,#0f7a40 100%); box-shadow:0 12px 24px -12px #0f7a40; color:#fff; font-size:clamp(16px,2.4vw,18px); font-weight:700; }
.mg .mg-btn-zielony:hover { background:linear-gradient(180deg,#22a55c 0%,#118548 100%); color:#fff; }
.mg .mg-btn-zielony svg { width:20px; height:20px; }
.mg-wysylanie .mg-btn-zielony { opacity:.7; }

/* wynik: najpierw przed i po, zaraz formularz, pod nim liczby */
.mg-wynik { display:grid; gap:18px; }
.mg .mg-wynik-odp { margin:0 0 10px; font-size:13.5px; line-height:1.5; color:var(--mut); text-align:center; }
.mg .mg-zmien { position:relative; display:inline-flex; margin-left:4px; padding:4px 12px; border:1.5px solid #c9d7cc; border-radius:999px; background:#eef4ea; box-shadow:0 2px 0 #c9d7cc; color:var(--sosna); font:600 13px/1.3 Poppins,sans-serif; cursor:pointer; }
.mg .mg-zmien::after { content:""; position:absolute; inset:-9px -4px; }
.mg .mg-zmien:active { transform:translateY(1px); box-shadow:0 1px 0 #c9d7cc; }
.mg .mg-wynik-h { margin:0 0 14px; font-size:clamp(21px,1vw + 17px,28px); font-weight:700; line-height:1.2; color:var(--sosna); text-align:center; outline:0; }
.mg-rozmiary { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); gap:8px; }
.mg .mg-rozmiar { -webkit-tap-highlight-color:transparent; -webkit-user-select:none; user-select:none; position:relative; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; gap:6px; min-height:112px; padding:16px 4px 9px; border:1.5px solid #c9d7cc; border-radius:14px; background:#eef4ea; box-shadow:0 3px 0 #c9d7cc; color:var(--atrament); font:600 14px/1.2 Poppins,sans-serif; cursor:pointer; touch-action:manipulation; transition:border-color .18s,background-color .18s,transform .12s; }
.mg .mg-rozmiar b { font-size:clamp(14px,3.6vw,16px); font-weight:700; white-space:nowrap; }
.mg .mg-rozmiar small { position:absolute; z-index:1; top:-10px; left:50%; translate:-50% 0; padding:2px 8px; border-radius:999px; background:var(--zloto); color:#182e23; font-size:11px; font-weight:700; line-height:1.4; white-space:nowrap; }
.mg .mg-rozmiar:focus { background:#eef4ea; color:var(--atrament); }
@media (hover:hover) and (pointer:fine) { .mg .mg-rozmiar:hover { border-color:var(--sosna); background:#e6efe2; color:var(--atrament); } }
.mg .mg-rozmiar::after { content:""; position:absolute; top:14px; right:6px; width:17px; height:17px; border-radius:50%; border:2px solid #5d7266; background:#fff; }
.mg .mg-rozmiar:active { transform:translateY(2px); box-shadow:0 1px 0 #c9d7cc; }
.mg .mg-rozmiar[aria-pressed="true"] { border-color:var(--sosna); background:var(--sosna); box-shadow:0 3px 0 #04150e; color:#fff; }
.mg .mg-rozmiar[aria-pressed="true"]::after { border-color:#fff; background:var(--sosna); box-shadow:inset 0 0 0 3.5px #fff; }
.mg-stos { display:block; width:34px; height:calc(var(--n) * 12.5px * 34 / 44 + 12px); overflow:visible; }
.mg-stos-moduly rect { fill:#f1ecdc; stroke:#b9b3a0; stroke-width:.8; }
.mg-stos-gora { fill:#5d6562; }
.mg-stos-bok { fill:#d4cfbd; }
.mg .mg-wynik-dlaczego { margin:10px 0 0; font-size:13px; line-height:1.4; color:var(--mut); text-align:center; }
.mg-wynik-dlaczego[hidden] { display:none; }

.mg-przedpo { position:relative; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:16px; }
.mg-przedpo[hidden] { display:none; }
.mg-strona { container-type:inline-size; display:flex; flex-direction:column; align-items:center; min-width:0; padding:8px 8px 14px; border-radius:20px; text-align:center; }
.mg-strona-dzis { background:#cf34270f; box-shadow:inset 0 0 0 1px #cf342729; }
.mg-strona-po { background:#1d915014; box-shadow:inset 0 0 0 1px #1d915038; }
.mg-strona img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; object-position:50% 30%; border-radius:14px; }
.mg-strona-po img { object-position:50% 45%; }
.mg-etykieta { position:relative; margin-top:-15px; padding:5px 12px; border-radius:999px; box-shadow:0 0 0 3px #fff; font-size:14px; font-weight:700; line-height:1.2; text-align:center; text-wrap:balance; }
.mg-strona-dzis .mg-etykieta { background:#fdecea; color:#b02a1f; }
.mg-strona-po .mg-etykieta { background:#e4f4e9; color:#0f7a40; }
.mg-kwota-stara,.mg-kwota-nowa { margin-top:auto; padding-top:10px; font-weight:800; line-height:1; letter-spacing:-.03em; font-variant-numeric:tabular-nums; white-space:nowrap; }
.mg-kwota-stara { font-size:min(60px,21cqi); color:#cf3427; }
.mg-kwota-stara small { margin-right:.08em; font-size:.34em; font-weight:700; letter-spacing:0; }
.mg-kwota-nowa { font-size:min(60px,21cqi); color:#0d7a42; }
.mg-kwota-nowa small { margin-right:.08em; font-size:.34em; font-weight:700; letter-spacing:0; }
.mg-kwota-pod { margin-top:4px; font-size:13px; font-weight:600; line-height:1.3; color:var(--mut); }
.mg-strzalka-kolo { position:absolute; z-index:2; top:68%; left:50%; translate:-50% -50%; display:grid; place-items:center; width:44px; height:44px; border-radius:50%; background:var(--sosna); box-shadow:0 0 0 4px #fff,0 8px 18px -6px #0c2e218c; color:#c6f53d; }
.mg-strzalka-kolo svg { width:24px; height:24px; }
.mg .mg-wynik-dopisek { width:fit-content; margin:14px auto 0; padding:8px 16px; border-radius:999px; background:#f4ecd6; color:#182e23; font-size:15px; font-weight:700; line-height:1.35; text-align:center; }
.mg .mg-wynik-dopisek.mg-dopisek-tekst { margin-top:16px; border-radius:14px; font-size:14.5px; font-weight:600; }
.mg-kafle { list-style:none; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:0; padding:0; }
.mg-kafel { display:grid; align-content:center; gap:3px; padding:12px 10px; border:1px solid var(--linia); border-radius:14px; background:var(--tlo); text-align:center; }
.mg-kafel strong { font-size:clamp(22px,5.6vw,30px); font-weight:800; line-height:1.1; letter-spacing:-.02em; color:var(--sosna); font-variant-numeric:tabular-nums; }
.mg-kafel span { font-size:12.5px; line-height:1.3; color:var(--mut); }

/* formularz: jasna karta w złotej ramce, kroki 1-2-3 */
.mg-strzalka-zlota { position:absolute; z-index:3; top:-92px; left:calc(50% + 120px); width:62px; height:auto; transform:rotate(28deg) scale(-1.3,1); filter:drop-shadow(0 2px 3px #0000004d); pointer-events:none; }
.mg .mg-kontakt { position:relative; margin-top:28px; padding-top:50px; border:2px solid var(--zloto); background:#fffdf8; box-shadow:0 0 0 6px #dcc78f38,0 24px 48px -28px #00150f80; }
.mg-kontakt[hidden] { display:none; }
.mg-kontakt-twarz { position:absolute; top:-38px; left:50%; translate:-50% 0; width:76px; height:76px; border-radius:50%; border:3px solid var(--zloto); background:#fff; object-fit:cover; }
.mg .mg-kontakt h3 { margin:0 0 16px; font-size:clamp(21px,1.4vw + 16px,30px); font-weight:800; line-height:1.18; letter-spacing:-.02em; color:var(--sosna); text-align:center; text-wrap:balance; }
.mg .mg-kontakt h3 span { display:block; margin-top:4px; font-size:.72em; font-weight:700; letter-spacing:-.01em; color:#0d7a42; }
.mg-pole-nazwa { display:flex; align-items:center; gap:7px; margin-bottom:6px; font-size:14px; font-weight:600; color:var(--atrament); }
.mg-pole-nazwa i { display:grid; place-items:center; flex:none; width:21px; height:21px; border-radius:50%; background:#0d7a42; color:#fff; font-size:12px; font-style:normal; font-weight:700; }
.mg-miejsca { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:8px; }
.mg .mg-chip { -webkit-tap-highlight-color:transparent; -webkit-user-select:none; user-select:none; display:inline-flex; align-items:center; gap:7px; min-height:44px; padding:6px 12px 6px 9px; border:1.5px solid #c9d7cc; border-radius:999px; background:#eef4ea; box-shadow:0 2px 0 #c9d7cc; color:var(--atrament); font:600 13.5px/1.2 Poppins,sans-serif; cursor:pointer; touch-action:manipulation; }
.mg .mg-chip::before { content:""; flex:none; width:16px; height:16px; border-radius:50%; border:2px solid #5d7266; background:#fff; }
.mg .mg-chip:focus { background:#eef4ea; color:var(--atrament); }
.mg .mg-chip[aria-pressed="true"] { border-color:var(--sosna); background:var(--sosna); box-shadow:0 2px 0 #04150e; color:#fff; }
.mg .mg-chip[aria-pressed="true"]::before { border-color:#fff; background:var(--sosna); box-shadow:inset 0 0 0 3px #fff; }
.mg-pola { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:10px; margin:12px 0; }
.mg-pola label { display:block; min-width:0; }
.mg .mg-kontakt input { display:block; width:100%; min-height:50px; padding:10px 12px; border:2px solid #b8c7bd; border-radius:12px; background:#fff; box-shadow:inset 0 2px 4px #123f2d14; color:var(--atrament); font:500 16px/1.3 Poppins,sans-serif; }
.mg .mg-kontakt input:focus { border-color:#0d7a42; outline:0; }
.mg #mg-miejscowosc { margin-bottom:8px; }
.mg #mg-miejscowosc[hidden] { display:none; }
.mg-tel { display:flex; }
.mg-tel span { display:grid; place-items:center; padding:0 8px; border:2px solid #b8c7bd; border-right:0; border-radius:12px 0 0 12px; background:#eef4ea; font-size:15px; font-weight:700; color:var(--mut); }
.mg .mg-tel input { min-width:0; padding-inline:9px; border-radius:0 12px 12px 0; }
.mg .mg-gmina-info { display:grid; gap:4px; margin:0 0 10px; font-size:13px; line-height:1.4; color:var(--atrament); }
.mg-gmina-info[hidden] { display:none; }
.mg .mg-blad { margin:0 0 10px; color:#a12a1a; font-size:14px; font-weight:600; }
.mg-blad[hidden] { display:none; }
.mg-kontakt-plusy { display:flex; flex-wrap:wrap; justify-content:center; gap:4px 18px; margin:10px 0 6px; font-size:13.5px; font-weight:600; color:var(--sosna); }
.mg-kontakt-plusy span::before { content:"✓"; margin-right:6px; color:#0d7a42; font-weight:800; }
.mg .mg-kontakt .mg-zgoda { margin:0 0 10px; font-size:11.5px; line-height:1.4; color:var(--mut); text-align:center; }
.mg .mg-kontakt .mg-zgoda a { color:var(--sosna); }
.mg .mg-kontakt-tel { display:block; font-size:clamp(23px,4vw,28px); font-weight:800; letter-spacing:-.01em; color:var(--sosna); text-align:center; text-decoration:none; }
.mg-dzieki { background:var(--szalwia); }
.mg-dzieki[hidden] { display:none; }
.mg-mail-podglad { white-space:pre-wrap; font:12px/1.5 ui-monospace,Menlo,monospace; background:#fff; padding:10px; border-radius:8px; overflow:auto; }

/* dane: słupki na realnych liczbach */
.mg .mg-nad { margin:26px 0 10px; font-size:17px; font-weight:600; line-height:1.3; color:var(--sosna); text-align:center; text-wrap:balance; }
.mg-por { list-style:none; display:grid; gap:10px; margin:0; padding:0; }
.mg-por li { display:flex; flex-wrap:wrap; align-items:center; gap:8px 10px; padding:12px 14px 14px; border:1px solid var(--linia); border-radius:16px; background:var(--tlo); }
.mg-por li[data-ton="nasz"] { border:2px solid var(--zloto); background:#fffbf1; box-shadow:0 0 0 4px #dcc78f38; }
.mg-por-ikony { display:flex; align-items:center; gap:3px; flex:none; }
.mg-por-ikony img { width:44px; height:44px; object-fit:contain; }
.mg-por-ikony i { display:grid; place-items:center; width:18px; height:18px; border-radius:50%; background:#0d7a42; color:#fff; font-size:13px; font-style:normal; font-weight:700; line-height:1; }
.mg-por-nazwa { flex:1 1 50px; min-width:0; font-size:14px; font-weight:600; line-height:1.25; }
.mg-por-kwota { flex:none; font-size:21px; font-weight:800; line-height:1.1; font-variant-numeric:tabular-nums; white-space:nowrap; }
.mg-por-kwota small { margin-left:2px; font-size:12.5px; font-weight:600; color:var(--mut); }
[data-ton="nasz"] .mg-por-kwota { padding:5px 12px; border-radius:999px; background:var(--sosna); color:var(--zloto2); }
[data-ton="nasz"] .mg-por-kwota small { color:var(--zloto2); }
.mg-por-pasek { display:block; flex-basis:100%; height:12px; border-radius:999px; background:#123f2d14; overflow:hidden; }
.mg-por-pasek span { display:block; width:var(--w); height:100%; border-radius:inherit; background:#b9c4bc; transform-origin:left; transform:scaleX(0); transition:transform .9s cubic-bezier(.23,1,.32,1); }
[data-ton="nowe"] .mg-por-pasek span { background:#8fa79a; transition-delay:.15s; }
[data-ton="nasz"] .mg-por-pasek span { background:linear-gradient(90deg,var(--zloto) 0%,#ecdcae 100%); transition-delay:.3s; }
.mg-pokazany .mg-por-pasek span { transform:scaleX(1); }
.mg-udzial-opis { display:flex; justify-content:space-between; gap:12px; margin-bottom:6px; font-size:15px; }
.mg-udzial-opis b { font-weight:800; color:#0d7a42; }
.mg-udzial-opis span { font-weight:600; color:var(--mut); }
.mg-udzial-tor { height:18px; border-radius:999px; background:#c9d2cc; overflow:hidden; }
.mg-udzial-tor i { display:block; height:100%; background:linear-gradient(90deg,#1d9150,#2fb56d); }
.mg-miesiace { list-style:none; display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:clamp(3px,.8vw,6px); margin:0; padding:0; align-items:end; }
.mg-mies { display:flex; flex-direction:column; align-items:center; gap:3px; min-width:0; }
.mg-mies-slup { position:relative; display:block; width:100%; height:112px; margin-top:18px; border-radius:6px; background:var(--szalwia); }
.mg-mies-slup::after { content:""; position:absolute; left:0; right:0; bottom:0; height:var(--h); border-radius:6px; background:#2fa56b; transition:height .3s cubic-bezier(.22,1,.36,1); }
.mg-mies-slup i { position:absolute; left:50%; bottom:calc(var(--h) + 2px); translate:-50% 0; z-index:1; font-size:12.5px; font-style:normal; font-weight:700; color:var(--atrament); white-space:nowrap; }
.mg-mies b { font-size:11px; font-weight:600; color:var(--mut); }
.mg-miesiace-duze .mg-mies-slup { height:190px; margin-top:0; }
.mg-miesiace-duze .mg-mies-slup i { font-size:11px; }
.mg-miesiace-duze .mg-mies b { font-size:12px; }
.mg-zwrot { display:grid; gap:2px; margin-top:22px; padding:12px 14px; border:1px solid var(--linia); border-radius:14px; background:var(--tlo); text-align:center; }
.mg-zwrot span { font-size:14px; font-weight:600; color:var(--sosna); }
.mg-zwrot strong { font-size:clamp(18px,4.4vw,22px); font-weight:800; line-height:1.2; color:var(--sosna); }
.mg-zwrot small { font-size:13px; color:var(--mut); }
.mg-programy { list-style:none; margin:0; padding:0; }
.mg-programy li { display:flex; align-items:center; gap:12px; padding:9px 0; border-bottom:1px solid var(--linia); }
.mg-programy img { flex:none; width:40px; height:40px; object-fit:contain; }
.mg-programy span { flex:1; min-width:0; font-size:14.5px; font-weight:600; line-height:1.25; }
.mg-programy b { flex:none; font-size:15.5px; font-weight:800; color:#0d7a42; white-space:nowrap; }
.mg-programy b.mg-prog-zloto { color:#7d6322; }
.mg-propozycje[hidden] { display:none; }
.mg .mg-wynik-cena { margin:16px 0 0; font-size:14px; line-height:1.45; color:var(--mut); text-align:center; }
.mg-szczegoly { margin-top:12px; padding-top:6px; border-top:1px solid var(--linia); }
.mg-szczegoly summary { padding:11px 0; min-height:44px; font-size:14px; font-weight:600; cursor:pointer; }
.mg-szczegoly ul { margin:0 0 8px; padding-left:18px; font-size:13px; line-height:1.5; }
.mg-szczegoly li { margin-bottom:6px; }
.mg-zrodla { font-size:12px; color:var(--mut); }
.mg-wynik-dane > .mg-btn-zielony { margin-top:14px; }
.mg-noscript { padding:18px; background:#fff; border-radius:14px; }
@media (prefers-reduced-motion:reduce) {
  .mg-wchodzi-prawo,.mg-wchodzi-lewo { animation:none; }
  .mg-postep-tor i,.mg .mg-opcja,.mg-btn,.mg-mies-slup::after { transition:none; }
  .mg-por-pasek span { transition:none; transform:none; }
}

/* zdjęcia magazynów w treści */
.mg-galeria { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:clamp(10px,1.4vw,16px); margin:clamp(18px,2.4vw,28px) 0 0; padding:0; list-style:none; }
.mg-galeria li { position:relative; grid-column:span 2; margin:0; }
.mg-galeria li.mg-gal-duze { grid-column:span 4; grid-row:span 2; }
.mg-galeria li.mg-gal-pol { grid-column:span 3; }
.mg-galeria img { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; border-radius:14px; }
.mg-galeria span { display:block; margin-top:6px; font-size:13.5px; font-weight:600; line-height:1.3; color:var(--atrament); }
.mg-galeria span small { display:block; font-size:12.5px; font-weight:400; color:var(--mut); }
.mg-foto-awaria { margin:clamp(16px,2vw,24px) 0; }
@media (max-width:760px) {
  .mg-hero { display:block; height:auto; }
  .mg-hero-foto { position:relative; inset:auto; z-index:0; }
  .mg-hero-foto img { width:100%; height:clamp(100px,min(49vw,calc(100svh - 530px)),372px); object-fit:cover; object-position:50% 0; -webkit-mask-image:linear-gradient(0deg,#0000 0,#000 9%); mask-image:linear-gradient(0deg,#0000 0,#000 9%); }
  .mg-hero-tresc { width:calc(100% - 32px); padding:4px 0 50px; }
  .mg-hero h1 { max-width:none; font-size:clamp(23px,6.4vw,27px); line-height:1.16; }
  .mg-hero h1 em { margin-top:.28em; font-size:.74em; }
  .mg-ai-hero { top:8px; right:8px; }
  .mg-kalk-pas { padding-inline:10px; }
  .mg-karta { margin-top:-38px; }
  .mg-galeria li,.mg-galeria li.mg-gal-pol { grid-column:span 3; }
  .mg-galeria li.mg-gal-duze { grid-column:1 / -1; grid-row:auto; }
  .mg-opcje { gap:10px; }
  .mg-strzalka-zlota { top:-62px; left:calc(50% + 84px); width:44px; }
  .mg-por-ikony img { width:34px; height:34px; }
  .mg-por-ikony i { width:15px; height:15px; font-size:11px; }
  .mg-por-nazwa { font-size:13px; }
  .mg-por-kwota { font-size:18px; }
  [data-ton="nasz"] .mg-por-kwota { padding:4px 9px; }
  .mg .mg-opcja { min-height:0; font-size:13.5px; padding:8px 6px 7px; }
  .mg-opcja-obraz { height:clamp(44px,7.6svh,72px); }
  .mg-pytanie { margin-bottom:8px; }
  .mg .mg-zacheta-tekst { margin:-2px 0 8px; }
  .mg-postep { margin-bottom:8px; }
  .mg .mg-opcja::after { top:6px; right:6px; width:20px; height:20px; }
  .mg-opcje-3 { grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
  .mg .mg-opcje-3 .mg-opcja { font-size:12.5px; }
}
@media (max-height:800px) and (min-width:761px) {
  .mg-strona img { aspect-ratio:21/9; }
  .mg-rozmiary .mg-rozmiar { min-height:92px; }
  .mg .mg-wynik-h { margin-bottom:10px; }
}
@media (max-height:600px) and (max-width:760px) {
  .mg-hero-foto { display:none; }
  .mg-hero-tresc { padding-top:10px; }
  .mg .mg-zacheta-tekst { display:none; }
  .mg-hero h1 { font-size:21px; }
  .mg-hero h1 em { display:inline; margin:0; font-size:1em; }
  .mg-opcja-obraz { height:40px; }
  .mg .mg-opcja { min-height:0; }
}



/* pompa: warianty zamiast rozmiarów, sześć kafli drugiego ekranu pytania, sekcja zdjęć pod kalkulatorem na tle strony miasta */
.mg-opcje-6 { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.mg .mg-opcje-6 .mg-opcja { min-height:clamp(66px,11svh,104px); flex-direction:row; gap:8px; padding:8px 28px 8px 10px; font-size:14px; text-align:left; justify-content:flex-start; }
.mg-opcje-6 .mg-opcja-obraz { flex:none; width:clamp(38px,6.6svh,62px); height:clamp(38px,6.6svh,62px); }
.mg-wariant-ikony { display:flex; align-items:center; justify-content:center; gap:2px; min-height:52px; }
.mg-wariant-ikony img { width:52px; height:52px; object-fit:contain; }
.mg-wariant-ikony i { font-style:normal; font-weight:800; color:inherit; }
.mg .mg-rozmiar b { white-space:normal; text-align:center; line-height:1.2; padding:0 4px; font-size:clamp(13.5px,3.4vw,15px); }
.mg .mg-rozmiar[aria-pressed="true"] .mg-wariant-ikony img { filter:drop-shadow(0 1px 2px #0006); }
.mg .mg-wynik-dlaczego { margin-top:10px; }
.mg-ai { position:absolute; display:grid; place-items:center; width:20px; height:20px; border-radius:50%; background:#0009; color:#fff; font:600 12px/1 Poppins,sans-serif; }
.mg-sekcja { padding:clamp(40px,6vw,76px) 0; background:var(--tlo); }
.mg-szer { width:min(1180px,100% - 32px); margin-inline:auto; }
.mg .mg-lead { max-width:62ch; font-size:clamp(16px,1.2vw,18px); line-height:1.55; color:var(--atrament); }
@media (max-width:760px) { .mg-galeria li,.mg-galeria li.mg-gal-duze,.mg-galeria li.mg-gal-pol { grid-column:span 6; grid-row:auto; } .mg-opcje-6 { gap:7px; } .mg .mg-opcje-6 .mg-opcja { font-size:13px; } }

/* „Wstecz” w pasku postępu: każdy krok mieści się w oknie (KA-03) */
.mg .mg-postep .mg-wstecz { flex:none; min-height:36px; margin:0 -4px 0 -6px; padding:4px 6px; font-size:13.5px; }
.mg-postep .mg-wstecz svg { width:17px; height:17px; }
@media (max-width:480px) { .mg-postep .mg-wstecz span { display:none; } }
/* kwoty roczne pompy mają pięć cyfr, więc niżej niż miesięczne kwoty magazynu; mieszczą się na każdej szerokości także w trakcie zmiany wariantu (KA-04) */
.mg-kwota-stara,.mg-kwota-nowa { font-size:min(46px,15.5cqi); letter-spacing:-.035em; }
.mg-kwota-stara small,.mg-kwota-nowa small { font-size:.42em; }
.mg-etykieta { font-size:13px; }
/* kroki w oknie: ocieplenie ma dwuwierszowe podpisy, a drugi ekran ogrzewania sześć kafli */
.mg .mg-link-niewiem { margin-top:6px; padding:5px 8px; }
.mg .mg-opcje-6 .mg-opcja { min-height:clamp(54px,8.4svh,92px); }
.mg-opcje-6 .mg-opcja-obraz { width:clamp(34px,5.8svh,56px); height:clamp(34px,5.8svh,56px); }
.mg [data-krok="ocieplenie"] .mg-opcja-obraz { height:clamp(44px,8svh,84px); }
.mg [data-krok="ocieplenie"] .mg-opcja { min-height:clamp(96px,14.4svh,146px); }
@media (min-width:761px) and (max-width:1180px) {
  .mg-hero { height:clamp(210px,23vw,250px); }
  .mg .mg-opcja { min-height:clamp(96px,13svh,130px); }
  .mg-opcja-obraz { height:clamp(46px,8svh,80px); }
}
@media (max-width:760px) { .mg [data-krok="ocieplenie"] .mg-opcja { min-height:0; } .mg .mg-opcje-6 .mg-opcja { min-height:clamp(52px,8svh,76px); } }
.mg-jw-film { margin-top:clamp(28px,4vw,48px); }
body:has(#mg) { background:#0c2e21; }
/* złota strzałka nad formularzem nie może wejść na zdanie pod pastylką */
.mg-strzalka-zlota { left:calc(50% + 240px); top:-84px; }
@media (max-width:760px) { .mg-strzalka-zlota { left:calc(50% + 118px); top:-58px; width:38px; } .mg-wynik-glowa { padding-bottom:30px; } }
/* czekanie na wysyłkę ma się ruszać (Igor): kółko w przycisku zamiast strzałki */
.mg-wysylanie .mg-btn-zielony svg { display:none; }
.mg-wysylanie .mg-btn-zielony::after { content:""; flex:none; width:20px; height:20px; border-radius:50%; border:3px solid #ffffff66; border-top-color:#fff; animation:mg-kolo .8s linear infinite; }
@keyframes mg-kolo { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce) { .mg-wysylanie .mg-btn-zielony::after { animation-duration:2.4s; } }
/* telefon: krócej do cennika, bez zmiany treści dla robotów */
@media (max-width:760px) {
  .mg-galeria li:nth-child(n+4) { display:none; }
  .pc-tabela-waska .pc-tabela th,.pc-tabela-waska .pc-tabela td { padding-block:6px; }
}

/* dół strony przy opcji góry: kotwice pod nagłówkiem, większe obiekty dotacji, duże karty na telefonie, karty programów */
section[id] { scroll-margin-top:96px; }
.pc-program .pc-program-obraz { width:148px; height:148px; }
.pc-sekcja .pc-program h4 { margin:0; font-size:18px; line-height:1.3; color:var(--pc-sosna,#0c2e21); }
.pc-programy-dopisek { grid-template-columns:repeat(2,minmax(0,1fr)); }
.mg .mg-kontakt-tel { min-height:44px; display:flex; align-items:center; justify-content:center; }
.mg .mg-kontakt .mg-zgoda a { display:inline-block; padding:10px 0; margin:-10px 0; }
@media (max-width:900px) { .pc-programy-dopisek { grid-template-columns:minmax(0,1fr); } }
@media (max-width:600px) {
  .pc-okolica-karty, .pc-okolica-karty:has(> :nth-child(4):last-child) { grid-template-columns:minmax(0,1fr); }
}
.mg-kod { white-space:nowrap; }
.pc-program .pc-link-tekst + .pc-link-tekst { margin-top:2px; }
/* obszar dotyku 44 px bez zmiany układu kroku (KA-03) */
.mg .mg-postep .mg-wstecz, .mg .mg-link-niewiem { position:relative; }
.mg .mg-postep .mg-wstecz::after { content:""; position:absolute; inset:-6px -8px; }
.mg .mg-link-niewiem::after { content:""; position:absolute; inset:-8px 0; }
.mg .mg-lead-2 { margin-top:-6px; }
/* telefon: scena „sama pompa czy z panelami” przed tekstem, żeby nie było ściany słów (bramka SCIANA_TEKSTU) */
@media (max-width:900px) { .pc-koszt-dol { display:flex; flex-direction:column; } .pc-koszt-dol > :not(.pc-koszt-dol-tekst) { order:-1; } }
/* długa wartość w „Dopłaty i ulgi” ma się zawijać: nowrap rozpychał całą kartę poza ekran telefonu (KA-19) */
.mg .mg-programy li > span, .mg .mg-programy li > div { min-width:0; }
.mg .mg-programy b { white-space:normal; text-align:right; flex:0 1 46%; min-width:0; }
.mg input::placeholder { color:#58685f; opacity:1; }

