/* Strona „Dofinansowania” aslandi.pl (lab, v1, 16.10.2026). Język strony głównej i quizu pomp: sosna, złoto, Poppins,
   duże karty z ikonami 3D, osoba firmy przy ankiecie. Jeden szczyt: kwota w złotych. Klasy z przedrostkiem dt-, żeby nie
   mieszać się z motywem i innymi wtyczkami. */
.dt {
  --dt-sosna: #123f2d;
  --dt-sosna-2: #19583f;
  --dt-sosna-3: #0c2e21;
  --dt-atrament: #1c3428;
  --dt-szary: #58685f;
  --dt-zloto: #ceb472;
  --dt-zloto-tekst: #182e23;
  --dt-zloto-jasne: #dcc78f;
  --dt-zloto-tlo: #f4ecd6;
  --dt-tlo: #f7f8f4;
  --dt-szalwia: #eaf0e3;
  --dt-linia: #dce3da;
  --dt-fokus: #a67b23;
  --dt-blad: #a12a1a;
  --dt-blad-jasny: #ffb9ae;
  --dt-gwiazdka: #f4b400;
  --dt-cien: 0 24px 48px -28px rgba(0, 21, 15, 0.5), 0 2px 6px rgba(18, 63, 45, 0.08);
  --dt-cien-maly: 0 10px 24px -18px rgba(0, 21, 15, 0.45);
  --dt-r: 16px;
  --dt-r-maly: 12px;
  --dt-ease: cubic-bezier(0.23, 1, 0.32, 1);
  --dt-sekcja: clamp(56px, 7vw, 104px);
  font-family: Poppins, system-ui, sans-serif;
  color: var(--dt-atrament);
  /* Astra: .ast-container jest wierszem flex, więc własny szablon musi zająć całą szerokość (lekcja z /kontakt/) */
  flex: 1 1 100%;
  width: 100%;
}
.dt *, .dt *::before, .dt *::after { box-sizing: border-box; }
.dt [hidden] { display: none !important; }
.dt-sekcja :where(h1, h2, h3, p, ul, ol, li, figure) { margin: 0; padding: 0; }
.dt-sekcja :where(h1, h2, h3, p) { text-align: left; }
.dt-sekcja :where(ul, ol) { list-style: none; }
.dt-sekcja :where(img) { max-width: 100%; height: auto; display: block; }
.dt ::selection { background: var(--dt-zloto-jasne); color: var(--dt-zloto-tekst); }
.dt :focus-visible { outline: 3px solid var(--dt-fokus); outline-offset: 3px; }
.dt-sr { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap !important; border: 0 !important; }
.dt-wew { width: min(1280px, 100% - 64px); margin-inline: auto; }
.dt-sekcja { padding-block: var(--dt-sekcja); }
.dt-sekcja h2 { font-size: clamp(28px, 1.6vw + 18px, 42px); font-weight: 600; line-height: 1.18; letter-spacing: -0.018em; color: var(--dt-sosna); text-wrap: balance; }
.dt-sekcja h2 em, .dt-sekcja h1 em { font-style: normal; }
.dt-sekcja h3 { font-size: 19px; font-weight: 600; line-height: 1.3; color: var(--dt-sosna); }
.dt-sekcja-lead { margin-top: 12px; max-width: 60ch; font-size: clamp(16px, 0.3vw + 15px, 18px); line-height: 1.6; color: var(--dt-szary); }
.dt-ikona { width: 22px; height: 22px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.dt-liczba { font-variant-numeric: tabular-nums; white-space: nowrap; }

/* Przyciski: motyw nadaje przyciskom własne kolory, więc wszystko jawnie */
.dt .dt-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 24px;
  border: 1.5px solid transparent; border-radius: 8px; font: inherit; font-size: 16px; font-weight: 600; line-height: 1.2;
  text-decoration: none; text-transform: none; letter-spacing: normal; cursor: pointer; box-shadow: none;
  transition: background-color 0.2s var(--dt-ease), transform 0.16s var(--dt-ease), border-color 0.2s var(--dt-ease);
}
.dt .dt-btn:active { transform: scale(0.98); }
.dt .dt-btn-zloto { background: var(--dt-zloto); color: var(--dt-zloto-tekst); }
.dt .dt-btn-sosna { background: var(--dt-sosna); color: #fff; }
.dt .dt-btn .dt-ikona { width: 20px; height: 20px; }
@media (hover: hover) and (pointer: fine) {
  .dt .dt-btn-zloto:hover { background: #e6d3a1; color: var(--dt-zloto-tekst); }
  .dt .dt-btn-sosna:hover { background: var(--dt-sosna-2); color: #fff; }
}

/* ---------- 1. Hero: tytuł i zdanie, pod nimi ankieta na całą szerokość (filar strony, Igor 16.10.2026), w niej dom
   z kwotami przy urządzeniach ---------- */
.dt-hero {
  position: relative; overflow: clip; color: #fff;
  background:
    radial-gradient(60% 70% at 24% 62%, rgba(46, 112, 82, 0.55) 0%, rgba(18, 63, 45, 0) 70%),
    linear-gradient(160deg, var(--dt-sosna) 0%, var(--dt-sosna-3) 100%);
  padding-block: clamp(22px, 2.6vw, 48px) clamp(40px, 5vw, 80px);
}
.dt-hero-wew { width: min(1280px, 100% - 64px); margin-inline: auto; display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(18px, 1.8vw, 26px); }
.dt-hero-tresc { display: grid; gap: 14px; justify-items: start; }
.dt-hero h1 { font-size: clamp(32px, 2vw + 16px, 50px); font-weight: 600; line-height: 1.1; letter-spacing: -0.022em; color: #fff; text-wrap: balance; }
.dt-hero h1 em { color: var(--dt-zloto-jasne); }
.dt-hero-lead { max-width: 62ch; font-size: clamp(16.5px, 0.4vw + 15px, 19px); line-height: 1.55; color: rgba(255, 255, 255, 0.86); }
.dt-hero-stan { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: rgba(255, 255, 255, 0.72); text-wrap: balance; }
.dt-hero-stan .dt-ikona { width: 18px; height: 18px; color: var(--dt-zloto); }

/* Dom 3D: zdjęcie modelu bez tła, na nim pinezki z kwotą przy urządzeniu. Pozycje pinezek są w danych (procent obrazu). */
.dt-dom { margin: 4px 0 0; width: 100%; max-width: 680px; }
.dt-dom-scena { position: relative; }
.dt-dom-obraz { width: 100%; height: auto; filter: drop-shadow(0 30px 40px rgba(0, 12, 8, 0.45)); }
.dt-pin { position: absolute; left: var(--x); top: var(--y); transform: translate(-50%, -50%); z-index: 1; }
.dt-pin-kropka { position: absolute; left: 0; top: 0; width: 14px; height: 14px; margin: -7px 0 0 -7px; border-radius: 50%; background: var(--dt-zloto); box-shadow: 0 0 0 3px rgba(12, 46, 33, 0.55); }
.dt-pin-kropka::after { content: ""; position: absolute; inset: -6px; border-radius: 50%; border: 2px solid var(--dt-zloto); opacity: 0; }
.dt-pin-etykieta {
  position: absolute; top: 0; display: grid; gap: 1px; padding: 7px 12px 8px; border-radius: 10px; white-space: nowrap;
  background: rgba(10, 38, 27, 0.86); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  border: 1px solid rgba(220, 199, 143, 0.35); box-shadow: 0 10px 22px -12px rgba(0, 0, 0, 0.6);
  transition: opacity 0.3s var(--dt-ease), transform 0.3s var(--dt-ease);
}
.dt-pin[data-strona="prawa"] .dt-pin-etykieta { left: 16px; transform: translateY(-50%); }
.dt-pin[data-strona="lewa"] .dt-pin-etykieta { right: 16px; transform: translateY(-50%); }
.dt-pin[data-strona="gora"] .dt-pin-etykieta { left: 50%; bottom: 14px; top: auto; transform: translateX(-50%); }
.dt-pin[data-strona="dol"] .dt-pin-etykieta { left: 50%; top: 14px; transform: translateX(-50%); }
.dt-pin-nazwa { font-size: 12.5px; font-weight: 500; line-height: 1.25; color: rgba(255, 255, 255, 0.85); }
.dt-pin-kwota { font-size: 15.5px; font-weight: 600; line-height: 1.2; color: var(--dt-zloto-jasne); font-variant-numeric: tabular-nums; }
/* po ankiecie: pinezki, których czytelnik nie wybrał, gasną; wybrane dostają jego kwotę */
.dt-pin.jest-ukryty, .dt-dom-legenda li.jest-ukryty { display: none; }
/* przy wyborze celów: niewybrane urządzenia przygasają */
.dt-pin, .dt-dom-legenda li { transition: opacity 0.3s var(--dt-ease); }
.dt-pin.jest-wygaszony, .dt-dom-legenda li.jest-wygaszony { opacity: 0.5; }
/* bezpiecznik daty: program bez świeżych danych pokazuje „kwota do potwierdzenia” */
.jest-nieaktualny .dt-prog-kwota, .jest-nieaktualny .dt-karta-kwota { color: var(--dt-szary); font-size: 15px; font-weight: 500; }
.dt-prog.jest-glowny.jest-nieaktualny { grid-template-columns: auto minmax(0, 1fr); }
.dt-faq-uwaga { margin: 0 0 8px; padding: 8px 12px; border-radius: 10px; background: var(--dt-zloto-tlo, #f6efdc); color: var(--dt-zloto-tekst); font-size: 14px; line-height: 1.45; }
.dt-karta-pozycje li.jest-dodatek { color: var(--dt-szary); }
.dt-pin.jest-zero .dt-pin-kwota { color: #fff; }
.dt-pin-kwota.jest-sprawdzany { font-size: 14px; font-weight: 500; color: rgba(255, 255, 255, 0.82); }
.dt-pin-zrodlo { font-size: 11.5px; font-weight: 500; line-height: 1.3; color: rgba(255, 255, 255, 0.7); }
.dt-pin.jest-nowy .dt-pin-kropka::after { animation: dt-puls 1.4s var(--dt-ease) 2; }
@keyframes dt-puls { from { opacity: 0.9; transform: scale(0.6); } to { opacity: 0; transform: scale(1.8); } }

/* legenda pinezek: tylko na telefonie, gdzie podpisy przy kropkach nie mieszczą się na ekranie */
.dt-dom-legenda { display: none; }
.dt-nr { display: inline-grid; place-items: center; width: 22px; height: 22px; flex: none; border-radius: 50%; background: var(--dt-zloto); color: var(--dt-zloto-tekst); font-size: 12px; font-weight: 700; }
.dt-dom.jest-osobisty .dt-dom-legenda li.jest-wygaszony { opacity: 0.45; }
.dt-prog-wiecej { margin-top: 2px; }
.dt-prog-wiecej summary { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; font-size: 14.5px; font-weight: 600; color: var(--dt-sosna); cursor: pointer; list-style: none; }
.dt-prog-wiecej summary::-webkit-details-marker { display: none; }
.dt-prog-wiecej summary::after { content: "+"; font-size: 18px; font-weight: 400; transition: transform 0.2s var(--dt-ease); }
.dt-prog-wiecej[open] summary::after { transform: rotate(45deg); }
.dt-prog-wiecej p { margin-top: 4px; font-size: 14.5px; line-height: 1.6; color: var(--dt-szary); max-width: 70ch; }
.dt-q-mini svg { width: 100%; height: auto; display: block; }
.dt-q-mini path { fill: var(--dt-szalwia); stroke: #fff; stroke-width: 1; vector-effect: non-scaling-stroke; }
.dt-q-mini path.jest-program { fill: #cfdcc4; }
.dt-q-mini path.jest-wybrana { fill: var(--dt-zloto); stroke: var(--dt-sosna); stroke-width: 1.5; }

/* „Nowość” (Przydomowe Magazyny Energii cz. 2): pasek pod zdaniem w hero, znak na odpowiedzi w ankiecie i w karcie
   programu; przycisk paska zaznacza magazyn w ankiecie. */
.dt-nowosc { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 2px 0 0; padding: 6px; border: 1px solid rgba(220, 199, 143, 0.45);
  border-radius: 999px; background: rgba(255, 255, 255, 0.06); color: #fff; font-size: 15px; line-height: 1.35; }
.dt-nowosc-znak, .dt-q-nowosc, .dt-nowy { display: inline-flex; align-items: center; padding: 3px 10px; border-radius: 999px; background: var(--dt-zloto);
  color: var(--dt-zloto-tekst); font-size: 12.5px; font-weight: 700; line-height: 1.25; white-space: nowrap; }
.dt-nowosc-tekst { padding-inline: 2px; }
.dt-nowosc-krotko { display: none; }
.dt .dt-nowosc-przycisk { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; margin: 0; padding: 6px 16px; border: 0; border-radius: 999px;
  background: var(--dt-zloto-jasne); color: var(--dt-zloto-tekst); box-shadow: none; font: inherit; font-size: 14.5px; font-weight: 600; cursor: pointer; }
.dt .dt-nowosc-przycisk .dt-ikona { width: 16px; height: 16px; }
@media (hover: hover) and (pointer: fine) { .dt .dt-nowosc-przycisk:hover { background: #e6d3a1; color: var(--dt-zloto-tekst); } }
.dt .dt-q-opcja.jest-nowosc { border-color: var(--dt-zloto); box-shadow: 0 0 0 3px rgba(220, 199, 143, 0.3); }
.dt .dt-q-opcja.jest-nowosc[aria-pressed="true"] { border-color: var(--dt-sosna); box-shadow: none; }
.dt-q-nowosc { position: absolute; top: 9px; left: 9px; z-index: 1; }

/* ---------- Ankieta ---------- */
/* Karta na całą szerokość: na szerokim ekranie po lewej pytania, po prawej dom na sośnie; węziej jedno pod drugim
   (pytania, zgłoszenie po wyniku, dom). */
.dt-quiz {
  grid-template-areas: "osoba" "panel" "cta" "dom";
  position: relative; display: grid; grid-template-columns: minmax(0, 1fr); color: var(--dt-atrament);
  background: var(--dt-tlo); border-radius: var(--dt-r); box-shadow: 0 34px 70px -34px rgba(0, 0, 0, 0.75), 0 0 0 1px rgba(220, 199, 143, 0.25);
  overflow: clip; scroll-margin-top: 90px;
}
.dt-quiz-osoba { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; padding: 11px clamp(16px, 2.4vw, 26px); color: #fff; background: linear-gradient(120deg, var(--dt-sosna-2) 0%, var(--dt-sosna) 100%); border-bottom: 1px solid rgba(220, 199, 143, 0.3); }
.dt-osoby-awatary { display: inline-flex; flex: none; }
.dt-osoby-awatary img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; object-position: 50% 20%; box-shadow: 0 0 0 2px var(--dt-zloto); background: #fff; }
.dt-osoby-awatary img + img { margin-left: -12px; }
.dt-osoby-duze img { width: 64px; height: 64px; }
.dt-osoba-zdjecie { flex: none; width: 52px; height: 52px; border-radius: 50%; object-fit: cover; background: var(--dt-sosna-2); box-shadow: 0 0 0 2px var(--dt-zloto); }
.dt-osoba-podpis { display: grid; gap: 1px; margin-right: auto; }
.dt-osoba-podpis b { font-size: 16px; font-weight: 600; line-height: 1.25; }
.dt-osoba-podpis span { font-size: 13.5px; color: var(--dt-zloto-jasne); }
.dt-ocena { display: inline-flex; align-items: center; gap: 6px 8px; padding: 7px 14px; border-radius: 999px; background: #fff; color: var(--dt-atrament); font-size: 13.5px; line-height: 1.2; }
.dt-ocena img { width: 52px; height: auto; }
.dt-ocena strong { font-size: 15.5px; font-weight: 600; font-variant-numeric: tabular-nums; }
.dt-gwiazdki { width: 70px; height: 14px; fill: var(--dt-gwiazdka); }

.dt-quiz-osoba { grid-area: osoba; }
.dt-quiz-panel { grid-area: panel; display: flex; flex-direction: column; gap: 20px; min-width: 0; min-height: 470px; padding: clamp(20px, 2vw, 28px); }
.dt-quiz .dt-cta { grid-area: cta; }
.dt-quiz-dom { grid-area: dom; min-width: 0; padding: clamp(20px, 2.4vw, 36px); color: #fff;
  background:
    radial-gradient(70% 60% at 50% 52%, rgba(46, 112, 82, 0.6) 0%, rgba(18, 63, 45, 0) 72%),
    linear-gradient(160deg, var(--dt-sosna) 0%, var(--dt-sosna-3) 100%); }
.dt-quiz-dom-wew { display: grid; gap: 14px; justify-items: center; position: sticky; top: 100px; }
.dt-quiz-dom .dt-dom { max-width: 560px; margin: 0 auto; }
/* podpis stanu pod domem: ikona w linii tekstu, linie wyrównane (bez sieroty „2026”) */
.dt-quiz-dom .dt-hero-stan { display: block; max-width: 44ch; text-align: center; }
.dt-quiz-dom .dt-hero-stan .dt-ikona { display: inline-block; margin-right: 6px; vertical-align: -3px; }
/* dwie kolumny od 1200 px: węziej podpisy pinezek nie mieszczą się w prawej kolumnie */
@media (min-width: 1200px) {
  .dt-quiz { grid-template-columns: minmax(0, 1.18fr) minmax(0, 1fr); grid-template-areas: "osoba osoba" "panel dom" "cta cta"; }
}
/* 1200–1365 px: dom dostaje więcej miejsca, żeby podpis pompy nie dotykał krawędzi karty */
@media (min-width: 1200px) and (max-width: 1365px) {
  .dt-quiz { grid-template-columns: minmax(0, 1.06fr) minmax(0, 1fr); }
}
.dt-quiz-gora { display: grid; gap: 10px; }
.dt-quiz-postep { font-size: 14.5px; font-weight: 500; color: var(--dt-szary); font-variant-numeric: tabular-nums; }
.dt-quiz-pasek { height: 4px; border-radius: 4px; background: var(--dt-linia); overflow: hidden; }
.dt-quiz-pasek span { display: block; height: 100%; background: var(--dt-sosna); transform: scaleX(0.06); transform-origin: left center; transition: transform 0.3s var(--dt-ease); }
.dt-q { min-width: 0; margin: 0; padding: 0; border: 0; }
.dt-q-legenda { display: block; width: 100%; margin: 0 0 6px; padding: 0; border: 0; }
.dt-sekcja .dt-q-pytanie { font-size: clamp(21px, 0.8vw + 16px, 26px); line-height: 1.25; color: var(--dt-sosna); text-wrap: balance; }
.dt-q-pytanie:focus, .dt-cta-dziekujemy:focus, .dt-wynik-kwota:focus { outline: none; }
.dt-q-po-co { margin: 0 0 16px; font-size: 14.5px; line-height: 1.45; color: var(--dt-szary); }
.dt-q-opcje { display: grid; gap: 10px; }
.dt-q-siatka { grid-template-columns: repeat(var(--kolumny, 2), minmax(0, 1fr)); }
.dt-q-lista { grid-template-columns: minmax(0, 1fr); }
.dt-q-rzad { grid-template-columns: repeat(var(--kolumny, 3), minmax(0, 1fr)); }

.dt .dt-q-opcja {
  position: relative; display: flex; align-items: center; gap: 12px; width: 100%; min-height: 64px; margin: 0; padding: 12px 40px 12px 14px;
  border: 1.5px solid var(--dt-linia); border-radius: var(--dt-r-maly); background: #fff; color: var(--dt-atrament); box-shadow: none;
  font: inherit; font-size: 16px; font-weight: 500; line-height: 1.3; text-align: left; text-transform: none; letter-spacing: normal; cursor: pointer;
  transition: border-color 0.18s var(--dt-ease), background-color 0.18s var(--dt-ease), transform 0.12s var(--dt-ease);
}
.dt .dt-q-opcja:hover, .dt .dt-q-opcja:focus { background: #fff; color: var(--dt-atrament); }
.dt .dt-q-opcja::after {
  content: ""; position: absolute; top: 10px; right: 10px; width: 20px; height: 20px; border-radius: 50%;
  border: 2px solid #8b9a91; background: #fff; transition: border-color 0.18s var(--dt-ease), background-color 0.18s var(--dt-ease), box-shadow 0.18s var(--dt-ease);
}
.dt .dt-q-wiele .dt-q-opcja::after { border-radius: 6px; }
.dt .dt-q-opcja[aria-pressed="true"] { border-color: var(--dt-sosna); background: var(--dt-szalwia); }
.dt .dt-q-opcja[aria-pressed="true"]::after { border-color: var(--dt-sosna); background: var(--dt-sosna); box-shadow: inset 0 0 0 4px #fff; }
.dt .dt-q-wiele .dt-q-opcja[aria-pressed="true"]::after { background: var(--dt-sosna) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 14px no-repeat; box-shadow: none; }
.dt .dt-q-opcja:active { transform: scale(0.98); }
@media (hover: hover) and (pointer: fine) {
  .dt .dt-q-opcja:hover { border-color: var(--dt-sosna); }
  .dt .dt-q-opcja:hover::after { border-color: var(--dt-sosna); }
  .dt .dt-q-opcja:hover .dt-q-obraz { transform: translateY(-3px) scale(1.05); }
}
.dt-q-obraz { width: 64px; height: 64px; flex: none; object-fit: contain; transition: transform 0.25s var(--dt-ease); }
.dt .dt-q-opcja[aria-pressed="true"] .dt-q-obraz { transform: scale(1.06); }
.dt-q-tekst { display: grid; gap: 2px; min-width: 0; }
.dt-q-etykieta { font-weight: 600; }
.dt-q-opis { font-size: 14px; font-weight: 400; line-height: 1.4; color: var(--dt-szary); }
.dt .dt-q-siatka .dt-q-opcja { flex-direction: column; justify-content: center; gap: 8px; min-height: 124px; padding: 14px 12px 12px; text-align: center; }
/* 5 celów jako 3 + 2 bez pustej komórki (siatka 6 kolumn: rząd po 3, ostatnie dwa szersze) */
@media (min-width: 601px) {
  .dt .dt-q-cele { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .dt .dt-q-cele > .dt-q-opcja { grid-column: span 2; }
  .dt .dt-q-cele > .dt-q-opcja:nth-child(3n+1):nth-last-child(2), .dt .dt-q-cele > .dt-q-opcja:nth-child(3n+2):last-child { grid-column: span 3; }
  .dt .dt-q-cele > .dt-q-opcja:nth-child(3n+1):last-child { grid-column: 1 / -1; }
}
.dt .dt-q-siatka .dt-q-tekst { justify-items: center; }
.dt .dt-q-rzad .dt-q-opcja { justify-content: center; min-height: 58px; padding-inline: 30px; text-align: center; }
.dt .dt-q-lista .dt-q-opcja { min-height: 66px; }
.dt-q-ikona { width: 44px; height: 44px; flex: none; padding: 10px; border-radius: 50%; background: var(--dt-szalwia); color: var(--dt-sosna); }
.dt .dt-q-opcja[aria-pressed="true"] .dt-q-ikona { background: var(--dt-sosna); color: var(--dt-zloto-jasne); }
/* jedno wejście ikon przy pierwszym pokazaniu pytania (klasy ustawia skrypt; bez skryptu ikony stoją) */
.dt-quiz.dt-ikony-czekaja .dt-q-obraz { opacity: 0; transform: translateY(10px) scale(0.92); }
.dt-quiz.dt-ikony-wchodza .dt-q-obraz { transition: opacity 0.32s var(--dt-ease), transform 0.32s var(--dt-ease); transition-delay: calc(var(--i, 0) * 45ms); }

/* Miejscowość: pole z podpowiedziami, skróty do najczęstszych gmin i mała mapa z zaznaczoną gminą */
.dt-q-miejsce { display: grid; grid-template-columns: minmax(0, 1fr) 150px; gap: 16px; align-items: start; }
.dt-q-pole-gminy { display: grid; gap: 6px; }
.dt-q-pole-gminy > span { font-size: 14px; font-weight: 500; color: var(--dt-szary); }
.dt .dt-q-pole-gminy input, .dt .dt-gminy-szukaj input {
  width: 100%; min-height: 54px; margin: 0; padding: 0 16px; border: 1.5px solid var(--dt-linia); border-radius: 10px; background: #fff;
  box-shadow: none; font: inherit; font-size: 17px; color: var(--dt-atrament);
}
.dt .dt-q-pole-gminy input:focus, .dt .dt-gminy-szukaj input:focus { outline: none; border-color: var(--dt-sosna); }
.dt .dt-q-pole-gminy input:focus-visible, .dt .dt-gminy-szukaj input:focus-visible { outline: 3px solid var(--dt-fokus); outline-offset: 2px; }
.dt-q-skroty { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.dt .dt-q-skrot {
  min-height: 40px; margin: 0; padding: 0 14px; border: 1.5px solid var(--dt-linia); border-radius: 999px; background: #fff; color: var(--dt-sosna);
  box-shadow: none; font: inherit; font-size: 14.5px; font-weight: 500; cursor: pointer; transition: border-color 0.18s var(--dt-ease), background-color 0.18s var(--dt-ease);
}
.dt .dt-q-skrot:hover, .dt .dt-q-skrot:focus { background: #fff; color: var(--dt-sosna); }
.dt .dt-q-skrot[aria-pressed="true"] { border-color: var(--dt-sosna); background: var(--dt-szalwia); }
@media (hover: hover) and (pointer: fine) { .dt .dt-q-skrot:hover { border-color: var(--dt-sosna); } }
.dt-q-osoby { display: grid; gap: 8px; margin-bottom: 14px; }
.dt-q-osoby > span { font-size: 14px; font-weight: 500; color: var(--dt-szary); }
.dt-q-osoby-lista { display: flex; flex-wrap: wrap; gap: 8px; }
.dt .dt-q-osoba { min-width: 52px; min-height: 44px; }
.dt .dt-q-ponad { margin-top: 10px; font-size: 14.5px; font-weight: 500; text-align: left; }
.dt-albo { font-size: 12.5px; font-weight: 500; color: var(--dt-szary); }
.dt-wynik-zamkniete summary { cursor: pointer; font-weight: 600; color: var(--dt-sosna); list-style: none; }
.dt-wynik-zamkniete summary::-webkit-details-marker { display: none; }
.dt-wynik-zamkniete summary::after { content: " +"; }
.dt-wynik-zamkniete details[open] summary::after { content: " −"; }
.dt-q-gmina-info { min-height: 1.5em; margin-top: 12px; font-size: 15px; font-weight: 500; line-height: 1.45; color: var(--dt-sosna); }
.dt-q-gmina-info.jest-blad { color: var(--dt-blad); }
.dt-mini-mapa { width: 100%; height: auto; }
.dt-mini-mapa path { fill: var(--dt-szalwia); stroke: #fff; stroke-width: 0.9; transition: fill 0.3s var(--dt-ease); }
.dt-mini-mapa path.jest-program { fill: #d8e4cf; }
.dt-mini-mapa path.jest-wybrana { fill: var(--dt-zloto); }

.dt .dt-q-dalej { margin-top: 18px; }
.dt .dt-q-dalej:disabled { opacity: 0.45; cursor: not-allowed; transform: none; }
.dt .dt-quiz-wstecz, .dt .dt-wynik-zmien, .dt .dt-q-pomin {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin: 0; padding: 0 4px; border: 0; border-radius: 6px;
  background: none; box-shadow: none; color: var(--dt-sosna); font: inherit; font-size: 15.5px; font-weight: 600; line-height: 1.2; cursor: pointer;
}
.dt .dt-quiz-wstecz:hover, .dt .dt-quiz-wstecz:focus, .dt .dt-wynik-zmien:hover, .dt .dt-wynik-zmien:focus, .dt .dt-q-pomin:hover, .dt .dt-q-pomin:focus { background: none; color: var(--dt-sosna); }
.dt .dt-quiz-wstecz { align-self: flex-start; margin-top: auto; }
.dt .dt-quiz-wstecz .dt-ikona { width: 18px; height: 18px; }
.dt .dt-wynik-zmien, .dt .dt-q-pomin { text-decoration: underline; text-underline-offset: 4px; text-decoration-color: rgba(18, 63, 45, 0.35); }
.dt-q-przyciski { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 22px; margin-top: 18px; }
.dt-q-przyciski .dt-q-dalej { margin-top: 0; }
.dt-bez-js { font-size: 15px; color: var(--dt-szary); }

/* ---------- Wynik ---------- */
.dt-quiz.jest-wynik .dt-quiz-gora { display: none; }
.dt-quiz.jest-wynik .dt-quiz-panel { min-height: 0; }
.dt-wynik { display: grid; gap: 16px; }
.dt-wynik-odp { font-size: 14.5px; line-height: 1.5; color: var(--dt-szary); }
.dt .dt-wynik-zmien { min-height: 36px; margin-block: -8px; font-size: 14.5px; }
.dt-wynik-glowa { display: grid; gap: 4px; padding: 18px 20px 20px; border-radius: var(--dt-r-maly); background: var(--dt-sosna); color: #fff; position: relative; overflow: hidden; }
.dt-wynik-glowa::before { content: ""; position: absolute; right: -40px; top: -60px; width: 220px; height: 220px; border-radius: 50%; background: radial-gradient(closest-side, rgba(220, 199, 143, 0.22), rgba(220, 199, 143, 0)); }
.dt-wynik-nad { position: relative; font-size: 15px; font-weight: 500; color: rgba(255, 255, 255, 0.85); }
.dt-sekcja .dt-wynik-kwota { position: relative; font-size: clamp(40px, 2.6vw + 24px, 60px); font-weight: 600; line-height: 1.04; letter-spacing: -0.025em; color: var(--dt-zloto-jasne); font-variant-numeric: tabular-nums; }
.dt-wynik-pod { position: relative; font-size: 15px; line-height: 1.45; color: rgba(255, 255, 255, 0.86); }
.dt-wynik-pod strong { color: #fff; font-weight: 600; }

.dt-karty { display: grid; gap: 10px; }
.dt-karta { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 4px 14px; align-items: start; padding: 14px 16px; border: 1px solid var(--dt-linia); border-radius: var(--dt-r-maly); background: #fff; }
.dt-karta.jest-alternatywa { background: var(--dt-tlo); border-style: dashed; }
.dt-karta.jest-brak { background: var(--dt-tlo); }
.dt-plakietka { grid-row: span 3; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 12px; background: var(--dt-szalwia); color: var(--dt-sosna); }
.dt-plakietka .dt-ikona { width: 24px; height: 24px; }
.dt-plakietka[data-ton="zloto"] { background: var(--dt-zloto-tlo); color: #6b5520; }
.dt-plakietka[data-ton="sosna"] { background: var(--dt-sosna); color: var(--dt-zloto-jasne); }
.dt-karta-nazwa { font-size: 16px; font-weight: 600; line-height: 1.3; color: var(--dt-sosna); }
.dt-karta-kwota { font-size: 19px; font-weight: 600; line-height: 1.2; color: var(--dt-sosna); text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.dt-karta-kwota small { display: block; font-size: 12.5px; font-weight: 500; color: var(--dt-szary); }
.dt-karta-meta { grid-column: 2 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font-size: 13.5px; color: var(--dt-szary); }
.dt-karta-pozycje { grid-column: 2 / -1; display: grid; gap: 3px; margin-top: 4px; }
.dt-karta-pozycje li { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; line-height: 1.4; color: var(--dt-atrament); }
.dt-karta-pozycje li span:last-child { font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--dt-szary); }
.dt-karta-uwaga { grid-column: 2 / -1; margin-top: 4px; font-size: 13.5px; line-height: 1.45; color: var(--dt-szary); }
.dt-karta-uwaga.jest-wazna { color: var(--dt-atrament); font-weight: 500; }
.dt-karta-warunki { grid-column: 2 / -1; margin-top: 2px; }
.dt-karta-warunki summary { display: inline-flex; align-items: center; gap: 6px; min-height: 34px; font-size: 13.5px; font-weight: 600; color: var(--dt-sosna); cursor: pointer; list-style: none; }
.dt-karta-warunki summary::-webkit-details-marker { display: none; }
.dt-karta-warunki summary::after { content: "+"; font-size: 17px; font-weight: 400; transition: transform 0.2s var(--dt-ease); }
.dt-karta-warunki[open] summary::after { transform: rotate(45deg); }
.dt-karta-warunki p { margin-top: 4px; font-size: 13.5px; line-height: 1.45; color: var(--dt-szary); }
.dt-karta a { color: var(--dt-sosna); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(18, 63, 45, 0.35); }
.dt-status { display: inline-flex; align-items: center; gap: 6px; padding: 2px 10px; border-radius: 999px; font-size: 12.5px; font-weight: 600; line-height: 1.6; white-space: nowrap; }
.dt-status::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.dt-status[data-typ="otwarty"] { background: var(--dt-szalwia); color: #1d6a43; }
.dt-status[data-typ="wkrotce"] { background: var(--dt-zloto-tlo); color: #6b5520; }
.dt-status[data-typ="zamkniety"] { background: #eceeea; color: #5e6862; }
.dt-wynik-droga { display: grid; gap: 10px; justify-items: start; padding: 14px 16px; border-radius: var(--dt-r-maly); background: var(--dt-szalwia); font-size: 15px; line-height: 1.5; color: var(--dt-atrament); }
.dt .dt-wynik-droga .dt-btn { min-height: 46px; font-size: 15px; }
.dt-wynik-ulga { display: flex; gap: 12px; align-items: flex-start; padding: 12px 16px; border-radius: var(--dt-r-maly); background: var(--dt-zloto-tlo); font-size: 14.5px; line-height: 1.5; color: var(--dt-atrament); }
.dt-wynik-ulga .dt-ikona { color: #6b5520; margin-top: 1px; }
.dt-wynik-ulga strong { color: var(--dt-sosna); }
.dt-wynik-zamkniete { padding: 12px 16px; border-radius: var(--dt-r-maly); border: 1px solid var(--dt-linia); font-size: 14px; line-height: 1.5; color: var(--dt-szary); }
.dt-wynik-zamkniete b { color: var(--dt-atrament); }
.dt-wynik-zamkniete ul { display: grid; gap: 6px; margin-top: 6px; }
.dt-wynik-zamkniete li { padding-left: 14px; position: relative; }
.dt-wynik-zamkniete li::before { content: ""; position: absolute; left: 0; top: 0.62em; width: 6px; height: 6px; border-radius: 50%; background: #9aa69f; }
.dt-wynik-uwagi { display: grid; gap: 6px; font-size: 13.5px; line-height: 1.5; color: var(--dt-szary); }
.dt-wynik-uwagi li { padding-left: 14px; position: relative; }
.dt-wynik-uwagi li::before { content: ""; position: absolute; left: 0; top: 0.62em; width: 6px; height: 6px; border-radius: 50%; background: var(--dt-zloto); }

/* Pas wezwania pod wynikiem: Klaudia, imię, telefon, duży złoty przycisk */
.dt-cta { padding: clamp(20px, 2.6vw, 32px); background: var(--dt-sosna); color: #fff; border-top: 3px solid var(--dt-zloto); }
.dt-cta-wew { display: grid; gap: 14px; }
.dt-cta-naglowek { display: grid; gap: 6px; }
.dt-sekcja .dt-cta-tytul { font-size: clamp(22px, 1vw + 16px, 28px); line-height: 1.18; letter-spacing: -0.015em; color: #fff; text-wrap: balance; }
.dt-cta-podtytul { font-size: 15.5px; line-height: 1.5; color: rgba(255, 255, 255, 0.86); }
.dt-cta-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.dt-cta-pole { display: grid; gap: 6px; }
.dt-cta-pole span { font-size: 14px; font-weight: 500; color: rgba(255, 255, 255, 0.9); }
.dt .dt-cta-pole input { width: 100%; min-height: 52px; margin: 0; padding: 0 14px; border: 1.5px solid rgba(255, 255, 255, 0.35); border-radius: 8px; background: #fff; box-shadow: none; font: inherit; font-size: 16px; color: var(--dt-atrament); }
.dt .dt-cta-pole input:focus { outline: none; border-color: var(--dt-zloto); }
.dt .dt-cta-pole input:focus-visible { outline: 3px solid var(--dt-zloto-jasne); outline-offset: 2px; }
.dt .dt-cta-pole input[aria-invalid="true"] { border-color: var(--dt-blad-jasny); }
.dt .dt-cta-przycisk { grid-column: 1 / -1; min-height: 58px; font-size: 17px; }
.dt .dt-cta-przycisk:disabled { cursor: progress; opacity: 0.85; }
.dt-cta-blad { grid-column: 1 / -1; font-size: 15px; font-weight: 500; color: var(--dt-blad-jasny); }
.dt-cta-czas { grid-column: 1 / -1; display: flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 600; color: #fff; }
.dt-cta-czas .dt-ikona { width: 20px; height: 20px; color: var(--dt-zloto); }
.dt-cta-zgoda { grid-column: 1 / -1; font-size: 12.5px; line-height: 1.5; color: rgba(255, 255, 255, 0.72); }
.dt-cta-zgoda a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.dt-cta-tel { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; width: max-content; color: #fff; font-size: 16.5px; font-weight: 600; text-decoration: none; font-variant-numeric: tabular-nums; }
.dt-cta-tel span { font-weight: 400; color: rgba(255, 255, 255, 0.82); }
.dt-cta-tel .dt-ikona { color: var(--dt-zloto); }
.dt-cta-dziekujemy-tekst { font-size: 18px; font-weight: 600; line-height: 1.45; color: #fff; }
.dt-cta-mail { margin: 10px 0 0; padding: 12px 14px; border-radius: 10px; background: rgba(255, 255, 255, 0.08); color: rgba(255, 255, 255, 0.92); font-size: 12.5px; line-height: 1.55; white-space: pre-wrap; overflow-wrap: anywhere; }

/* ---------- 2. Programy 2026 ---------- */
.dt-programy { background: var(--dt-tlo); }
.dt-prog-lista { margin-top: clamp(24px, 3vw, 40px); display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 14px; }
.dt-prog { grid-column: span 6; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 6px 16px; align-content: start; padding: clamp(18px, 2vw, 26px); border-radius: var(--dt-r); background: #fff; border: 1px solid var(--dt-linia); }
.dt-prog.jest-glowny { grid-column: span 12; grid-template-columns: auto minmax(0, 1fr) minmax(0, 0.9fr); background: #fff; box-shadow: var(--dt-cien-maly); }
.dt-prog.jest-maly { grid-column: span 6; }
.dt-prog .dt-plakietka { grid-row: 1 / span 5; width: 54px; height: 54px; border-radius: 14px; }
.dt-prog > :not(.dt-plakietka):not(.dt-prog-tabela) { grid-column: 2; }
.dt-prog-glowa { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; }
.dt-sekcja .dt-prog-nazwa { font-size: 20px; }
.dt-prog-kwota { font-size: clamp(24px, 1vw + 18px, 32px); font-weight: 600; line-height: 1.15; letter-spacing: -0.015em; color: var(--dt-sosna); font-variant-numeric: tabular-nums; }
.dt-prog-kwota small { font-size: 15px; font-weight: 500; color: var(--dt-szary); letter-spacing: 0; }
.dt-prog-opis { font-size: 15.5px; line-height: 1.55; color: var(--dt-atrament); max-width: 62ch; }
.dt-prog-zrodlo { font-size: 13.5px; color: var(--dt-szary); }
.dt-prog-zrodlo a { color: var(--dt-sosna); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(18, 63, 45, 0.35); }
.dt-prog-tabela { grid-row: 1 / span 5; grid-column: 3; align-self: center; width: 100%; border-collapse: separate; border-spacing: 0; font-size: 15px; border: 1px solid var(--dt-linia); border-radius: var(--dt-r-maly); overflow: hidden; }
.dt-prog-tabela caption { caption-side: bottom; padding: 8px 4px 0; text-align: left; font-size: 13px; color: var(--dt-szary); }
.dt-prog-tabela th, .dt-prog-tabela td { padding: 10px 14px; text-align: left; border-bottom: 1px solid var(--dt-linia); font-variant-numeric: tabular-nums; }
.dt-prog-tabela thead th { font-size: 13px; font-weight: 500; color: var(--dt-szary); background: var(--dt-tlo); }
.dt-prog-tabela tbody th { font-weight: 500; }
.dt-prog-tabela td { font-weight: 600; color: var(--dt-sosna); white-space: nowrap; }
.dt-prog-tabela tbody tr:last-child > * { border-bottom: 0; }
.dt-zrodla-dopisek { margin-top: 18px; max-width: 80ch; font-size: 13.5px; line-height: 1.55; color: var(--dt-szary); }

/* ---------- 3. Gminy: wyszukiwarka, panel gminy i mapa ---------- */
.dt-gminy { background: #fff; }
.dt-gminy-uklad { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 0.8fr); gap: clamp(28px, 4vw, 64px); align-items: start; }
.dt-gminy-szukaj { display: grid; gap: 6px; margin-top: 22px; max-width: 460px; }
.dt-gminy-szukaj span { font-size: 14px; font-weight: 500; color: var(--dt-szary); }
.dt-gmina-panel { margin-top: 18px; display: grid; gap: 10px; }
.dt-gmina-nazwa { font-size: 22px; font-weight: 600; color: var(--dt-sosna); }
.dt-gmina-nazwa small { display: block; font-size: 14px; font-weight: 400; color: var(--dt-szary); }
.dt-gmina-brak { font-size: 15px; line-height: 1.55; color: var(--dt-szary); max-width: 56ch; }
.dt-mapa { position: relative; margin: 0; }
.dt-mapa-svg { aspect-ratio: 640 / 880; }
.dt-mapa svg { width: 100%; height: auto; display: block; }
.dt-mapa path.dt-g { fill: var(--dt-szalwia); stroke: #fff; stroke-width: 0.8; cursor: pointer; transition: fill 0.25s var(--dt-ease); }
.dt-mapa path.dt-g.jest-program { fill: #cfdcc4; }
.dt-mapa path.dt-g.jest-otwarty { fill: var(--dt-zloto); }
.dt-mapa path.dt-g.jest-wybrana { fill: var(--dt-sosna); }
@media (hover: hover) and (pointer: fine) { .dt-mapa path.dt-g:hover { fill: var(--dt-sosna-2); } }
.dt-mapa path.dt-powiat { fill: none; stroke: var(--dt-sosna); stroke-opacity: 0.22; stroke-width: 1; pointer-events: none; }
.dt-mapa circle.dt-biuro { fill: #fff; stroke: var(--dt-sosna); stroke-width: 2.5; }
.dt-mapa text { font-family: Poppins, system-ui, sans-serif; font-size: 13px; font-weight: 600; fill: var(--dt-sosna); paint-order: stroke; stroke: #fff; stroke-width: 3px; }
.dt-mapa figcaption { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 13px; color: var(--dt-szary); }
.dt-mapa figcaption i { display: inline-block; width: 12px; height: 12px; margin-right: 6px; border-radius: 3px; vertical-align: -1px; }
.dt-gminy-wszystkie { margin-top: clamp(24px, 3vw, 40px); border-top: 1px solid var(--dt-linia); }
.dt-gminy-wszystkie summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 60px; font-size: 17px; font-weight: 600; color: var(--dt-sosna); cursor: pointer; list-style: none; }
.dt-gminy-wszystkie summary::-webkit-details-marker { display: none; }
.dt-gminy-wszystkie summary::after { content: "+"; font-size: 24px; font-weight: 400; transition: transform 0.2s var(--dt-ease); }
.dt-gminy-wszystkie[open] summary::after { transform: rotate(45deg); }
.dt-gminy-lista { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 32px; padding-bottom: 12px; }
.dt-gminy-lista li { display: grid; gap: 4px; padding: 14px 0; border-top: 1px solid var(--dt-linia); font-size: 15px; line-height: 1.55; }
.dt-gminy-lista b { color: var(--dt-sosna); }

/* ---------- 4. Jak załatwiamy dofinansowanie ---------- */
/* Właściciele stoją na dolnej krawędzi sekcji i sięgają wysokością treści obok (Igor 16.10.2026: „muszą być dostosowani
   wysokościowo do sekcji”). Szerokość grupy to kolumna; obie sylwetki mają tę samą wysokość dzięki szerokościom
   liczonym z proporcji (Dawid 581:793, Dagmara 503:799, Dagmara schowana za Dawidem o 38% swojej szerokości). */
.dt-jak { background: var(--dt-szalwia); padding-bottom: 0; overflow: clip; }
.dt-jak-uklad { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr); gap: clamp(28px, 4vw, 64px); align-items: end; }
.dt-jak-osoba { position: relative; align-self: end; }
.dt-jak-portrety { display: flex; justify-content: center; align-items: flex-end; }
.dt-jak-portrety img { display: block; height: auto; max-width: none; }
.dt-portret-1 { width: 56%; margin-right: -21.3%; }
.dt-portret-0 { width: 65.2%; position: relative; z-index: 1; }
.dt-jak-osoba p { position: absolute; z-index: 2; left: 50%; bottom: 28px; transform: translateX(-50%); width: max-content; margin: 0; display: grid; gap: 1px; padding: 10px 18px; border-radius: 10px; background: var(--dt-sosna); color: #fff; text-align: center; white-space: nowrap; box-shadow: var(--dt-cien-maly); }
.dt-jak-osoba b { font-size: 15.5px; }
.dt-jak-osoba span { font-size: 13px; color: var(--dt-zloto-jasne); }
.dt-jak-tresc { padding-bottom: var(--dt-sekcja); }
.dt-os { margin-top: clamp(22px, 2.6vw, 34px); display: grid; gap: 14px; }
.dt-os li { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 14px; align-items: start; }
.dt-os .dt-ikona { width: 48px; height: 48px; padding: 12px; border-radius: 50%; background: var(--dt-sosna); color: var(--dt-zloto-jasne); stroke-width: 1.6; }
.dt-os strong { display: block; font-size: 17px; font-weight: 600; line-height: 1.35; color: var(--dt-sosna); }
.dt-os span { display: block; margin-top: 2px; font-size: 15px; line-height: 1.5; color: var(--dt-szary); }
.dt-zanim { margin-top: 26px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.dt-zanim li { display: grid; gap: 6px; align-content: start; padding: 14px; border-radius: var(--dt-r-maly); background: #fff; font-size: 14.5px; line-height: 1.45; color: var(--dt-atrament); }
.dt-zanim .dt-ikona { color: var(--dt-sosna); }
.dt-zanim b { color: var(--dt-sosna); font-size: 15px; }
.dt-jak-cta { margin-top: 26px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.dt-jak-tel { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--dt-sosna); font-size: 18px; font-weight: 600; text-decoration: none; font-variant-numeric: tabular-nums; }

/* ---------- Formularz na dole: filar strony, mało tekstu, pola i telefon ---------- */
.dt-dol { background: linear-gradient(160deg, var(--dt-sosna) 0%, var(--dt-sosna-3) 100%); color: #fff; }
.dt-dol-uklad { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 20px clamp(28px, 4vw, 64px); align-items: center; }
.dt-dol-naglowek { display: grid; gap: 12px; justify-items: start; }
.dt-sekcja.dt-dol h2 { color: #fff; }
.dt-dol-naglowek p { font-size: 17px; line-height: 1.55; color: rgba(255, 255, 255, 0.86); max-width: 40ch; }
.dt-dol-tel { display: inline-flex; align-items: center; gap: 10px; min-height: 48px; color: #fff; font-size: 24px; font-weight: 600; text-decoration: none; font-variant-numeric: tabular-nums; }
.dt-dol-tel .dt-ikona { color: var(--dt-zloto); width: 24px; height: 24px; }
.dt-dol-form { padding: clamp(18px, 2.4vw, 28px); border-radius: var(--dt-r); background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(220, 199, 143, 0.3); }
.dt-pole-cale { grid-column: 1 / -1; }
.dt-dol .dt-cta-dziekujemy { grid-column: 2; }

/* ---------- 5. Pytania ---------- */
.dt-faq { background: var(--dt-tlo); }
.dt-faq-uklad { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: clamp(24px, 4vw, 64px); align-items: start; }
.dt-faq-lista { display: grid; gap: 10px; }
.dt-faq details { border: 1px solid var(--dt-linia); border-radius: var(--dt-r-maly); background: #fff; }
.dt-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 60px; padding: 14px 20px; font-size: 16.5px; font-weight: 600; line-height: 1.4; color: var(--dt-sosna); cursor: pointer; list-style: none; }
.dt-faq summary::-webkit-details-marker { display: none; }
.dt-faq summary::after { content: "+"; flex: none; font-size: 24px; font-weight: 400; transition: transform 0.2s var(--dt-ease); }
.dt-faq details[open] summary::after { transform: rotate(45deg); }
.dt-faq details p { padding: 0 20px 20px; font-size: 16px; line-height: 1.65; color: var(--dt-atrament); max-width: 64ch; }
.dt-faq details a { color: var(--dt-sosna); }

/* ---------- 6. Usługi ---------- */
.dt-uslugi { background: #fff; padding-block: clamp(44px, 5vw, 72px); }
.dt-sekcja.dt-uslugi h2 { font-size: clamp(24px, 1.2vw + 17px, 32px); }
.dt-uslugi-lista { margin-top: 22px; display: flex; flex-wrap: wrap; gap: 10px; }
.dt-uslugi-lista a { display: inline-flex; align-items: center; gap: 10px; min-height: 52px; padding: 0 18px 0 8px; border: 1.5px solid var(--dt-linia); border-radius: 999px; color: var(--dt-sosna); font-size: 15.5px; font-weight: 600; text-decoration: none; transition: border-color 0.2s var(--dt-ease); }
.dt-uslugi-lista img { width: 40px; height: 40px; object-fit: contain; }
@media (hover: hover) and (pointer: fine) { .dt-uslugi-lista a:hover { border-color: var(--dt-sosna); } }

/* ---------- Szerokości ---------- */
@media (max-width: 1100px) {
  .dt-prog.jest-glowny { grid-template-columns: auto minmax(0, 1fr); }
  .dt-prog-tabela { grid-row: auto; grid-column: 1 / -1; }
  .dt-prog.jest-maly { grid-column: span 6; }
}
@media (max-width: 900px) {
  /* pasek nowości w jednym wierszu: znak, krótkie zdanie i okrągły przycisk (ankieta zostaje wysoko) */
  .dt-nowosc { display: flex; flex-wrap: nowrap; width: 100%; max-width: 560px; gap: 10px; font-size: 14.5px; }
  .dt-nowosc-tekst, .dt-nowosc-przycisk-tekst { display: none; }
  .dt-nowosc-krotko { display: block; flex: 1; min-width: 0; font-weight: 500; }
  .dt .dt-nowosc-przycisk { flex: none; justify-content: center; width: 44px; height: 44px; min-height: 44px; padding: 0; }
}
@media (max-width: 960px) {
  .dt-gminy-uklad, .dt-faq-uklad { grid-template-columns: minmax(0, 1fr); }
  .dt-mapa { max-width: 520px; }
  .dt-jak-uklad { grid-template-columns: minmax(0, 1fr); }
  .dt-jak-osoba { order: 2; width: min(100%, 460px); justify-self: center; }
  .dt-jak-tresc { padding-bottom: 8px; }
  .dt-dol-uklad { grid-template-columns: minmax(0, 1fr); }
  .dt-dol .dt-cta-dziekujemy { grid-column: 1; }
}
@media (max-width: 700px) {
  .dt-wew, .dt-hero-wew { width: calc(100% - 32px); }
  .dt-prog, .dt-prog.jest-maly { grid-column: span 12; }
  .dt-gminy-lista { grid-template-columns: minmax(0, 1fr); }
  .dt-zanim { grid-template-columns: minmax(0, 1fr); }
  .dt-cta-form { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  .dt-hero { padding-top: 22px; }
  .dt-quiz-dom { padding: 18px 14px 20px; }
  .dt-hero-wew { gap: 22px; }
  .dt-quiz-osoba { padding: 12px 14px; gap: 8px 12px; }
  .dt-ocena { padding: 6px 10px; }
  .dt-quiz-panel { gap: 16px; padding: 18px 14px 16px; min-height: 0; }
  .dt .dt-q-siatka .dt-q-opcja { min-height: 112px; padding: 12px 8px; }
  .dt-q-obraz { width: 54px; height: 54px; }
  .dt .dt-q-opcja { padding-right: 34px; font-size: 15.5px; }
  .dt .dt-q-opcja::after { top: 8px; right: 8px; width: 18px; height: 18px; }
  .dt-q-miejsce { grid-template-columns: minmax(0, 1fr); }
  .dt-q-mini { display: none; }
  .dt .dt-q-siatka { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .dt .dt-q-siatka > .dt-q-opcja:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .dt-mapa { max-width: 360px; margin-inline: auto; }
  .dt-jak-osoba { width: min(100%, 360px); }
  .dt-pin-etykieta { display: none; }
  .dt-pin-kropka { width: 24px; height: 24px; margin: -12px 0 0 -12px; display: grid; place-items: center; }
  .dt-pin-kropka::before { content: attr(data-nr); font-size: 12px; font-weight: 700; color: var(--dt-zloto-tekst); }
  .dt-dom-legenda { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 10px; }
  .dt-dom-legenda li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0 8px; align-items: center; padding: 8px 10px; border-radius: 10px; background: rgba(10, 38, 27, 0.6); border: 1px solid rgba(220, 199, 143, 0.25); transition: opacity 0.3s var(--dt-ease); }
  .dt-dom-legenda .dt-nr { grid-row: span 2; }
  .dt-dom-legenda .dt-pin-nazwa { font-size: 12.5px; color: rgba(255, 255, 255, 0.85); }
  .dt-dom-legenda .dt-pin-kwota { font-size: 14.5px; }
  .dt-karta { grid-template-columns: auto minmax(0, 1fr); padding: 12px; }
  .dt-karta-kwota { grid-column: 2; text-align: left; }
  .dt-plakietka { width: 40px; height: 40px; grid-row: span 4; }
}
@media (prefers-reduced-motion: reduce) {
  .dt *, .dt *::before, .dt *::after { transition-duration: 0.01ms !important; animation: none !important; }
}
