/* Elementy XYZ — wspólny plik stylów (paleta kolorów, podstawy, przełącznik języka)
   Ładowany przez wszystkie strony. Style specyficzne dla danej strony (nav, sekcje,
   formularze) zostają lokalnie w <style> danego pliku, bo różnią się strukturalnie. */

:root{
  --bg: #14100c; --bg-2:#1c160f; --card:#211a11;
  --ink:#f4ead9; --ink-soft:#a89477; --ink-faint:#9a8b70; /* v2_27: było #766952 — za słaby kontrast (3,2:1), teraz ≥5,1:1 */
  --line:rgba(244,234,217,0.10); --line-strong:rgba(244,234,217,0.18);
  --lbg:#f6f2e8; --lbg-alt:#efe9db; --lpanel:#ffffff;
  --link:#221c14; --link-soft:#5f5548; /* v2_27: było #6b6153 */ --lline:#e2dac6;
  --copper:#c9863f; --copper-ink:#8a5419; /* copper-ink: miedziany TEKST na jasnym tle (≥5,1:1) */ --copper-soft:#e3b579; --copper-dim:rgba(201,134,63,0.14);
  --dark:#221c14;
}
*{ box-sizing:border-box; }
body{ margin:0; background:var(--lbg); color:var(--link); font-family:'Inter',sans-serif; -webkit-font-smoothing:antialiased; }
h1,h2,h3,.disp{ font-family:'Manrope',sans-serif; font-weight:800; letter-spacing:-0.01em; margin:0; }
img{ max-width:100%; display:block; }

/* Przełącznik języka — jedna, spójna wersja z poprawionym kontrastem dla wszystkich stron */
.lang-switch{ display:flex; gap:2px; background:rgba(244,234,217,0.14); border:1px solid rgba(244,234,217,0.16); border-radius:16px; padding:2px; }
#site-nav.on-light .lang-switch{ background:rgba(34,28,20,0.08); border-color:rgba(34,28,20,0.12); }
.lang-switch a{ font-size:12.5px; font-weight:700; padding:5px 9px; border-radius:14px; color:#f4ead9; text-decoration:none; opacity:.6; }
.lang-switch a:focus{ outline:none; }
.lang-switch a:focus-visible{ outline:2px solid var(--copper); outline-offset:2px; }
.lang-switch a.active{ background:var(--copper); color:#1c1409; opacity:1; }
#cookie-consent-banner{ position:fixed; left:0; right:0; bottom:0; z-index:200; background:var(--bg-2); border-top:1px solid var(--line-strong); padding:16px 20px; display:flex; flex-wrap:wrap; align-items:center; gap:16px; justify-content:space-between; box-shadow:0 -8px 28px rgba(0,0,0,0.4); }
#cookie-consent-banner .ccb-text{ font-size:14px; color:var(--ink-soft); line-height:1.5; max-width:640px; }
#cookie-consent-banner .ccb-text a{ color:var(--copper-soft); font-weight:600; }
#cookie-consent-banner .ccb-actions{ display:flex; gap:10px; flex-shrink:0; }
#cookie-consent-banner .ccb-btn{ padding:10px 20px; border-radius:20px; font-size:14px; font-weight:600; cursor:pointer; white-space:nowrap; }
#cookie-consent-banner .ccb-accept{ background:var(--copper); border:1px solid var(--copper); color:#1c1409; }
#cookie-consent-banner .ccb-reject{ background:transparent; border:1px solid var(--line-strong); color:var(--ink); }
@media (max-width:640px){ #cookie-consent-banner{ padding:14px 16px 18px; } #cookie-consent-banner .ccb-actions{ width:100%; } #cookie-consent-banner .ccb-btn{ flex:1; } }
.phase-pill-row{ border-bottom:none !important; padding-top:2px; padding-bottom:10px; }
.price-phase-pill{ display:inline-flex; align-items:center; gap:6px; background:rgba(201,134,63,0.14); border:1px solid rgba(201,134,63,0.4); border-radius:20px; padding:5px 12px; font-size:13px; font-weight:700; color:var(--copper-soft); cursor:pointer; font-family:inherit; }
.price-phase-pill.phase2{ background:rgba(244,234,217,0.06); border-color:var(--line-strong); color:var(--ink-soft); }
.price-phase-dot{ width:6px; height:6px; border-radius:50%; background:var(--copper-soft); flex-shrink:0; animation:price-phase-pulse 2s infinite; }
.price-phase-pill.phase2 .price-phase-dot{ background:var(--ink-faint); animation:none; }
@keyframes price-phase-pulse{ 0%,100%{ opacity:1; } 50%{ opacity:.35; } }
.price-phase-pill.timeline-pill{ background:rgba(244,234,217,0.06); border-color:var(--line-strong); color:var(--ink-soft); }
.r6-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:24px; }
.r6-card{ background:var(--card); padding:18px 14px; }
.r6-card h4{ font-size:13.5px; font-weight:700; color:var(--copper-soft); margin:0 0 6px; }
.r6-card p{ font-size:13px; color:var(--ink-soft); line-height:1.5; margin:0; }
.r6-card.future{ opacity:.7; }
.r6-badge{ display:inline-block; font-size:11px; font-weight:700; color:var(--copper-soft); background:rgba(201,134,63,.14); border-radius:8px; padding:1px 7px; margin-left:4px; vertical-align:middle; }
.r6-sustain-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-top:none; }
.r6-sustain-grid .cred-card h3{ font-size:14.5px; }
.r6-compliance{ margin-top:20px; border-left:2px solid var(--copper); background:var(--card); padding:12px 18px; font-size:13.5px; color:var(--ink-soft); line-height:1.55; }
@media (max-width:760px){ .r6-grid{ grid-template-columns:repeat(2,1fr); } .r6-sustain-grid{ grid-template-columns:1fr; } }
.dm-grid{ display:flex; flex-direction:column; gap:1px; background:var(--lline); border:1px solid var(--lline); border-radius:10px; overflow:hidden; margin-top:28px; max-width:760px; }
.dm-row{ background:var(--lpanel); padding:22px 24px; display:flex; align-items:flex-start; gap:20px; }
.dm-row .n{ font-family:'Manrope',sans-serif; font-weight:800; font-size:26px; color:var(--copper); min-width:38px; line-height:1; }
.dm-row h3{ font-size:15px; font-weight:700; margin:0 0 6px; color:var(--link); }
.dm-row p{ font-size:14px; color:var(--link-soft); line-height:1.6; margin:0; max-width:56ch; }
.dm-cta{ margin-top:22px; }
@media (max-width:640px){ .dm-row{ padding:18px 16px; gap:14px; } .dm-row .n{ font-size:22px; min-width:30px; } }

/* v2_25 — czytelność hasła w hero (jasne niebo na zdjęciu) */
html #hero .hero-scrim{ background:linear-gradient(180deg, rgba(12,9,6,0.25) 0%, rgba(12,9,6,0.22) 30%, rgba(12,9,6,0.55) 52%, rgba(10,8,5,0.88) 100%); }
html .hero-content .eyebrow{ text-shadow:0 1px 3px rgba(0,0,0,.7), 0 0 18px rgba(0,0,0,.55); }

/* v2_25 — wąskie telefony: logo nie może nachodzić na przełącznik języka, brak poziomego przewijania */
@media (max-width:420px){
  html #site-nav{ padding:12px 12px; gap:8px; }
  html .logo{ flex-shrink:0; gap:7px; }
  html .logo img{ width:26px; }
  html .nav-links{ gap:8px; }
  html .lang-switch a{ padding:5px 6px; }
  html .price-context .pc-num{ white-space:normal; font-size:22px; }
}

/* v2_26 — podpis slajdu w karuzeli konfiguratora („Cały dom” / „Osobno”) */
.hero-variant-note span{ color:var(--copper-soft); font-weight:700; margin-right:6px; }

/* v2_26 — pasek miniatur pod zdjęciem konfiguratora (cały dom / element / moduły) */
.cfg-thumbs{ display:none; gap:8px; margin-top:10px; overflow-x:auto; scrollbar-width:none; }
.cfg-thumbs::-webkit-scrollbar{ display:none; }
.cfg-thumb{ flex:0 0 auto; width:112px; padding:0; background:none; border:none; cursor:pointer; text-align:left; font-family:inherit; }
.cfg-thumb img{ width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:6px; border:2px solid transparent; opacity:.6; transition:opacity .15s, border-color .15s; }
.cfg-thumb span{ display:block; margin-top:4px; font-size:13px; font-weight:600; color:var(--ink-soft); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cfg-thumb:hover img{ opacity:.9; }
.cfg-thumb.active img{ opacity:1; border-color:var(--copper); }
.cfg-thumb.active span{ color:var(--copper-soft); }
.cfg-thumb:focus-visible{ outline:2px solid var(--copper); outline-offset:2px; border-radius:6px; }
@media (max-width:640px){ .cfg-thumb{ width:88px; } .cfg-thumb span{ font-size:12px; } }

/* v2_26 — jednolite oznaczenie pozycji „wkrótce” / niedostępnych: przerywana miedziana obwódka
   (jak „Większy element bazowy” i „Smart home”) */
html .compact-row.coming-soon{ border:1px dashed rgba(201,134,63,0.45); background:transparent; }
html .compact-row.coming-soon:hover{ border-color:var(--copper); }
html .cfg-hero-fallback-card{ border:1px dashed rgba(201,134,63,0.45); }
html .viewer-empty{ border:1px dashed rgba(201,134,63,0.45); border-radius:10px; }
.cfg-thumb.soon img{ border:2px dashed rgba(201,134,63,0.55); }
.cfg-thumb.soon.active img{ border-color:var(--copper); }

/* v2_26 — dźwig jako osobna pozycja w okienku transportu */
.transport-box .tc-result .tc-crane{ display:block; margin-top:12px; padding-top:10px; border-top:1px solid var(--line); }

/* v2_26 — własna lista wyboru miasta w sekcji transportu (w stylu wierszy konfiguratora) */
.tc-picker{ position:relative; margin-bottom:14px; }
.tc-trigger{ width:100%; display:flex; align-items:center; gap:12px; text-align:left; font-family:inherit; color:var(--ink);
  background:var(--card); border:1px solid var(--line-strong); border-radius:8px; padding:10px 14px; cursor:pointer; transition:border-color .15s; }
.tc-trigger:hover, .tc-trigger.open{ border-color:var(--copper); }
.tc-trigger:focus-visible{ outline:2px solid var(--copper); outline-offset:2px; }
.tc-pin{ width:30px; height:30px; border-radius:50%; background:var(--copper-dim); color:var(--copper-soft); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.tc-main{ display:flex; flex-direction:column; min-width:0; flex:1; }
.tc-cap{ font-size:12.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-faint); font-weight:600; }
.tc-name{ font-size:14.5px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tc-km{ font-size:13.5px; color:var(--ink-soft); font-variant-numeric:tabular-nums; white-space:nowrap; }
.tc-chev{ color:var(--ink-soft); display:flex; transition:transform .15s; }
.tc-trigger.open .tc-chev{ transform:rotate(180deg); }
.tc-list{ position:absolute; left:0; right:0; top:calc(100% + 6px); z-index:30; margin:0; padding:6px; list-style:none;
  background:var(--bg-2); border:1px solid var(--line-strong); border-radius:10px; max-height:320px; overflow-y:auto;
  box-shadow:0 14px 34px rgba(0,0,0,0.45); outline:none; }
.tc-opt{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding:9px 12px; border-radius:6px; font-size:14.5px; color:var(--ink); cursor:pointer; }
.tc-opt:hover, .tc-opt.active{ background:rgba(244,234,217,0.06); }
.tc-opt.selected{ color:var(--copper-soft); font-weight:600; }
.tc-opt.selected > span:first-child::before{ content:"✓"; display:inline-block; width:18px; }
.tc-opt-km{ font-size:13px; color:var(--ink-faint); font-variant-numeric:tabular-nums; white-space:nowrap; }
.tc-opt.custom{ margin-top:6px; border-top:1px dashed rgba(201,134,63,0.45); border-radius:0 0 6px 6px; padding-top:11px; color:var(--ink-soft); }
@media (prefers-reduced-motion: reduce){ .tc-chev, .tc-trigger{ transition:none; } }

/* v2_26 — kod pocztowy działki (rynek PL) */
.tc-postal{ margin-bottom:14px; }
.tc-postal-field{ display:flex; align-items:center; gap:12px; background:var(--card); border:1px solid var(--line-strong); border-radius:8px; padding:10px 14px; cursor:text; transition:border-color .15s; }
.tc-postal-field:focus-within{ border-color:var(--copper); }
.tc-postal-field input{ background:transparent; border:none; outline:none; color:var(--ink); font-family:'Manrope',sans-serif; font-weight:700; font-size:17px; letter-spacing:.06em; padding:0; width:100%; font-variant-numeric:tabular-nums; }
.tc-postal-field input::placeholder{ color:var(--ink-faint); font-weight:500; }
.tc-postal-place{ font-size:13.5px; color:var(--ink-soft); white-space:nowrap; font-variant-numeric:tabular-nums; }
.tc-postal-msg{ font-size:13.5px; color:var(--ink-soft); margin-top:8px; line-height:1.5; min-height:18px; }
.tc-postal-msg.err{ color:#e08a75; }
.tc-postal-msg a{ color:var(--ink-faint); }
.tc-link{ background:none; border:none; padding:0; margin-top:6px; font-family:inherit; font-size:14px; font-weight:600; color:var(--copper-soft); cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.tc-link:focus-visible{ outline:2px solid var(--copper); outline-offset:3px; border-radius:3px; }
/* SV / DE / AT — transport i dźwig wyceniane indywidualnie: wyraźnie oznaczone, jak inne pozycje niedostępne w konfiguratorze */
.transport-box.foreign .tc-result{ border:1px dashed rgba(201,134,63,0.45); border-radius:8px; padding:14px 16px; }

/* v2_27 — dane spółki w stopce (art. 206 KSH) */
.footer-company{ font-size:14px; line-height:1.6; color:#a89477; max-width:110ch; margin-top:4px; }
.footer-company a{ color:#e3b579; text-decoration:underline; text-underline-offset:2px; }

/* v2_27 — czytelność: miedziany tekst na JASNYCH sekcjach ciemniejszym odcieniem (kontrast ≥5:1, norma WCAG AA 4,5:1).
   Na ciemnych sekcjach miedź zostaje bez zmian (tam kontrast jest dobry). */
html .lsection .kicker, html .lsection .fn-label, html .lsection .future-badge, html .lsection .rc-badge,
html .lsection .sh-badge, html .lsection .step-time, html .lsection .n, html .lsection .tn-highlight-label,
html .lsection a:not(.btn):not(.cta){ color:var(--copper-ink); }
html .hero-scrolldown{ color:var(--ink-soft); }
html .lsection .config-summary-card .edit-link{ color:var(--copper-soft); }

/* v2_27 — wąskie telefony (375 px i 320 px): nic nie wychodzi poza ekran, także przy długich słowach (DE/SV) i większych czcionkach */
html .reason, html .step, html .team-card, html .reason-grid > *, html .steps > *{ min-width:0; overflow-wrap:break-word; hyphens:auto; }
html .team-grid > *{ min-width:0; }
@media (max-width:480px){
  html .reason-grid, html .steps{ grid-template-columns:minmax(0,1fr); }
  html .team-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:420px){
  html #site-nav .lang-switch a{ padding:5px 5px; font-size:12px; }
  html #site-nav .nav-links{ gap:6px; }
  html #site-nav .cta{ padding:7px 10px; font-size:13px; }
}
@media (max-width:360px){
  html #site-nav .cta{ display:none; } /* kontakt nadal dostępny w dolnym pasku i w stopce */
  html #site-nav .logo-text .t2{ display:none; }
}
/* podstrony (dokumenty prawne, B2B, Impressum): nawigacja zawija się do drugiej linii zamiast wychodzić poza ekran */
html body > nav:not(#site-nav){ flex-wrap:wrap; row-gap:12px; }
html body > nav:not(#site-nav) > div:not(.logo), html .nav-right{ flex-wrap:wrap; gap:10px; }
@media (max-width:480px){ html body > nav:not(#site-nav) > div:not(.logo), html .nav-right{ width:100%; justify-content:space-between; } }
@media (max-width:480px){
  html .proces-headline{ flex-wrap:wrap; }
  html .proces-headline .t{ min-width:0; flex:1 1 180px; }
  html .cfg-toolbar{ flex-wrap:wrap; }
  html .cfg-toolbar .view-tabs button{ padding:6px 9px; }
  html #reserve-btn{ white-space:normal; max-width:100%; }
  html #reserve-btn span{ white-space:normal; }
  html .hero-content{ padding-left:16px; padding-right:16px; }
  html body > footer span{ overflow-wrap:anywhere; }
}
@media (max-width:360px){ html .cfg-toolbar .view-tabs button{ padding:6px 7px; font-size:12px; } }

/* v2_27 — „Wyślij ofertę PDF na e-mail” w karcie podsumowania */
.offer-mail{ display:flex; flex-direction:column; gap:8px; margin-top:14px; width:100%; }
.offer-mail .om-label{ font-size:13.5px; color:var(--ink-soft); }
.offer-mail .om-row{ display:flex; gap:8px; flex-wrap:wrap; }
.offer-mail input[type=email]{ flex:1 1 200px; min-width:0; background:var(--bg); border:1px solid var(--line-strong); border-radius:20px; padding:10px 16px; color:var(--ink); font-family:inherit; font-size:14px; }
.offer-mail input[type=email]:focus{ outline:none; border-color:var(--copper); }
.offer-mail .om-consent{ display:flex; gap:8px; align-items:flex-start; font-size:13px; color:var(--ink-soft); line-height:1.5; cursor:pointer; }
.offer-mail .om-consent input{ margin-top:3px; accent-color:var(--copper); }
.offer-mail .om-consent a{ color:var(--copper-soft); }
.offer-mail .om-msg{ font-size:13.5px; min-height:1px; line-height:1.5; }
.offer-mail .om-msg.err{ color:#e08a75; }
.offer-mail .om-msg.ok{ color:var(--copper-soft); }
/* v2_27 — pole wyboru w formularzu kontaktowym w stylu pól tekstowych */
html .field select{ width:100%; border:1px solid var(--lline); background:var(--lpanel); border-radius:6px; padding:12px 40px 12px 14px; font-size:14.5px; color:var(--link); font-family:inherit; appearance:none; -webkit-appearance:none; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%235f5548' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; }
html .field select:focus{ outline:none; border-color:var(--copper); }

/* v2_27 — „Z placu budowy”: miejsca na dziennik budowy i wideo (oznaczone jak inne pozycje „wkrótce”: przerywana obwódka) */
.soon-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin-top:32px; }
.soon-card{ border:1.5px dashed rgba(201,134,63,0.55); border-radius:12px; padding:20px; display:flex; flex-direction:column; gap:10px; background:transparent; min-width:0; }
.soon-media{ aspect-ratio:16/9; border-radius:8px; background:repeating-linear-gradient(135deg, rgba(201,134,63,0.06) 0 12px, transparent 12px 24px); border:1px dashed rgba(201,134,63,0.35); display:flex; align-items:center; justify-content:center; color:var(--copper-ink); }
.soon-badge{ align-self:flex-start; font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--copper-ink); border:1px dashed rgba(138,84,25,0.6); border-radius:999px; padding:3px 10px; }
.soon-card h3{ font-size:19px; color:var(--link); margin:0; }
.soon-card p{ font-size:15px; color:var(--link-soft); line-height:1.6; margin:0; }
@media (max-width:640px){ .soon-grid{ grid-template-columns:minmax(0,1fr); } }

/* dźwig w cenie domu — spokojniejsza linia zamiast osobnej kwoty */
.transport-box .tc-result .tc-included b{ font-size:15px; color:var(--copper-soft); } /* kolor jak pozostałe wartości w okienku transportu */

/* v2_27 — sekcja „Dom pokazowy”: zapis na zwiedzanie (lewa) + miejsca na dziennik budowy i wideo (prawa) */
.showcase-grid{ display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); gap:20px; align-items:start; margin-top:14px; }
.showcase-grid > .showhome-block{ margin-top:0; }
.soon-stack{ display:flex; flex-direction:column; gap:16px; }
.soon-stack .soon-card{ padding:16px; gap:8px; }
.soon-stack .soon-media{ aspect-ratio:16/7; }
.soon-stack .soon-card h3{ font-size:17px; }
.soon-stack .soon-card p{ font-size:14px; }
@media (max-width:860px){ .showcase-grid{ grid-template-columns:minmax(0,1fr); } }

/* v2_27 — „Czy macie już działkę?”: przyciski wyboru w stylu pól formularza (zamiast rozwijanej listy) */
.plot-choices{ display:flex; gap:6px; flex-wrap:wrap; }
.plot-chip{ flex:1 1 auto; border:1px solid var(--lline); background:var(--lpanel); color:var(--link); border-radius:6px; padding:11px 12px; font-family:inherit; font-size:14.5px; cursor:pointer; transition:border-color .15s, background .15s; }
.plot-chip:hover{ border-color:var(--copper); }
.plot-chip.on{ border-color:var(--copper); background:rgba(201,134,63,0.12); color:var(--copper-ink); font-weight:600; }
.plot-chip:focus-visible{ outline:2px solid var(--copper); outline-offset:2px; }

/* ===== v2_28 — Asystent „Zapytaj o dom” (gotowe odpowiedzi, bez AI) ===== */
html .faq-btn.as-launch{ width:auto; height:auto; padding:12px 18px 12px 14px; border-radius:999px; gap:8px; display:flex; align-items:center; font-family:'Manrope',sans-serif; font-weight:700; font-size:15px; color:#1c1409; }
html .faq-btn.as-launch svg{ width:20px; height:20px; flex-shrink:0; }
@media (max-width:480px){ html .faq-btn.as-launch{ padding:11px 14px 11px 12px; font-size:14px; } }
html .faq-panel{ width:380px; max-height:72vh; }
html .faq-body.as-body{ display:flex; flex-direction:column; padding:0; overflow:hidden; }
.as-log{ flex:1; overflow-y:auto; padding:12px 12px 4px; display:flex; flex-direction:column; gap:8px; min-height:120px; }
.as-msg{ max-width:92%; padding:10px 12px; border-radius:14px; font-size:14.5px; line-height:1.55; }
.as-msg.bot{ background:rgba(244,234,217,0.06); border:1px solid var(--line); color:var(--ink); border-top-left-radius:4px; align-self:flex-start; }
.as-msg.user{ background:var(--copper); color:#1c1409; font-weight:500; align-self:flex-end; border-top-right-radius:4px; }
.as-acts{ display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.as-act{ font-family:inherit; font-size:13.5px; font-weight:600; border-radius:999px; padding:7px 12px; border:1px solid var(--copper); color:var(--copper-soft); background:transparent; cursor:pointer; }
.as-act.solid{ background:var(--copper); color:#1c1409; }
.as-act:focus-visible, .as-chip:focus-visible{ outline:2px solid var(--copper-soft); outline-offset:2px; }
.as-chips{ display:flex; flex-wrap:wrap; gap:6px; padding:8px 12px 10px; border-top:1px solid var(--line); max-height:34vh; overflow-y:auto; }
.as-chip{ font-family:inherit; font-size:13.5px; text-align:left; border:1px solid var(--line-strong); border-radius:999px; padding:7px 12px; color:var(--ink); background:transparent; cursor:pointer; }
.as-chip:hover{ border-color:var(--copper); background:rgba(201,134,63,0.10); }
.as-chip.more{ color:var(--copper-soft); border-style:dashed; }
.as-form{ display:flex; gap:8px; padding:10px 12px; border-top:1px solid var(--line); }
.as-form input{ flex:1; min-width:0; background:var(--bg); border:1px solid var(--line-strong); border-radius:999px; padding:10px 14px; color:var(--ink); font-family:inherit; font-size:14.5px; }
.as-form input:focus{ outline:none; border-color:var(--copper); }
.as-form button{ width:40px; height:40px; border-radius:50%; border:none; background:var(--copper); color:#1c1409; font-weight:800; font-size:16px; cursor:pointer; flex-shrink:0; }
.as-ask{ display:flex; gap:6px; flex-wrap:wrap; margin-top:10px; }
.as-ask input{ flex:1 1 160px; min-width:0; background:var(--bg); border:1px solid var(--line-strong); border-radius:999px; padding:8px 12px; color:var(--ink); font-family:inherit; font-size:14px; }
.as-ask-msg{ font-size:13.5px; color:var(--copper-soft); margin-top:6px; }
.as-cmp{ margin-top:4px; overflow-x:auto; }
.as-cmp table{ border-collapse:collapse; width:100%; font-size:13px; }
.as-cmp th, .as-cmp td{ padding:7px 6px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; line-height:1.45; }
.as-cmp thead th{ font-size:12px; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.04em; }
.as-cmp tbody th{ color:var(--ink-soft); font-weight:600; width:24%; }
.as-cmp td.us{ color:var(--ink); font-weight:600; }
.as-cmp td{ color:var(--ink-soft); }
.as-src{ font-size:12px; color:var(--ink-faint); margin-top:6px; }
@media (max-width:480px){ html .faq-panel{ right:12px; left:12px; width:auto; max-width:none; bottom:140px; max-height:70vh; } }

/* ===== v2_28 — Kalkulator raty ===== */
.lc-link{ background:none; border:none; padding:0; margin-top:8px; font-family:inherit; font-size:14px; font-weight:600; color:var(--copper-soft); cursor:pointer; text-decoration:underline; text-underline-offset:3px; text-align:left; }
#sheet-inner .lc-link{ display:block; margin:10px 0 4px; }
.loan-calc{ display:flex; flex-direction:column; gap:14px; }
.lc-top{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; flex-wrap:wrap; font-size:14px; color:var(--ink-soft); }
.lc-top b{ font-family:'Manrope',sans-serif; font-size:19px; color:var(--ink); }
.lc-rate{ background:rgba(201,134,63,0.14); border:1px solid rgba(201,134,63,0.4); border-radius:12px; padding:14px 16px; }
.lc-rate span{ display:block; font-size:13.5px; color:var(--copper-soft); font-weight:600; }
.lc-rate b{ font-family:'Manrope',sans-serif; font-size:30px; font-weight:800; color:var(--ink); font-variant-numeric:tabular-nums; }
.lc-rate small{ font-size:14px; color:var(--ink-soft); }
.lc-slider{ display:flex; flex-direction:column; gap:6px; }
.lc-row{ display:flex; justify-content:space-between; font-size:14px; color:var(--ink-soft); }
.lc-row b{ color:var(--ink); font-variant-numeric:tabular-nums; }
.lc-slider input{ width:100%; accent-color:var(--copper); }
.lc-split{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.lc-split div{ background:rgba(244,234,217,0.05); border:1px solid var(--line); border-radius:8px; padding:9px 10px; font-size:13px; color:var(--ink-soft); }
.lc-split b{ display:block; color:var(--ink); font-size:15px; font-variant-numeric:tabular-nums; margin-top:2px; }
.lc-note{ font-size:13px; color:var(--ink-faint); line-height:1.55; margin:0; }
.lc-cta{ align-self:flex-start; }
@media (max-width:480px){ .lc-split{ grid-template-columns:minmax(0,1fr); } }

.as-cmp{ display:flex; flex-direction:column; gap:8px; margin-top:4px; }
.as-cmp-row{ border:1px solid var(--line); border-radius:10px; padding:9px 10px; display:flex; flex-direction:column; gap:5px; }
.as-cmp-k{ font-size:12px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--ink-soft); }
.as-cmp-us, .as-cmp-tr{ font-size:13.5px; line-height:1.45; }
.as-cmp-us{ color:var(--ink); font-weight:600; }
.as-cmp-tr{ color:var(--ink-soft); }
.as-cmp-us span, .as-cmp-tr span{ display:inline-block; font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; border-radius:999px; padding:1px 7px; margin-right:6px; vertical-align:1px; }
.as-cmp-us span{ background:var(--copper); color:#1c1409; }
.as-cmp-tr span{ border:1px solid var(--line-strong); color:var(--ink-soft); }

/* v2_28 — stopka z powrotem drobniejsza (jak przed powiększeniem czcionek) */
html body > footer{ font-size:12px; }
html .footer-legal{ font-size:11.5px; }
html .footer-company{ font-size:11.5px; line-height:1.55; }
html body > footer a[style]{ font-size:12px !important; } /* linki w stopce B2B mają rozmiar wpisany w HTML */

/* v2_28 — „Policz ratę” obok „Porozmawiaj o finansowaniu” */
html .lc-btn-fin{ margin-left:10px; cursor:pointer; font-family:inherit; }
@media (max-width:480px){ html .lc-btn-fin{ margin-left:0; margin-top:10px; } }

/* ===== v2_29: newsletter (newsletter.js) ===== */
.nl-opt{ cursor:pointer; }
.consent.nl-opt{ margin-top:-6px; }
.consent.nl-opt input, .om-consent.nl-opt input{ accent-color:var(--copper); }
.nl-status{ font-size:13px; line-height:1.5; margin:0 0 12px; }
.nl-status:empty{ display:none; }
.nl-status.ok{ color:var(--copper-ink); font-weight:600; }
.nl-status.err{ color:#a33b2b; }
.showhome-block .nl-status{ margin-top:10px; }
footer .footer-nl{ display:flex; flex-direction:column; gap:6px; margin-bottom:10px; max-width:440px; }
footer .fnl-title{ font-family:'Manrope',sans-serif; font-weight:700; font-size:13.5px; color:var(--ink); }
footer .fnl-row{ display:flex; gap:8px; position:relative; }
footer .fnl-row input[type=email]{ flex:1; min-width:0; padding:9px 14px; border-radius:22px; border:1px solid var(--line-strong); background:rgba(244,234,217,0.06); color:var(--ink); font:inherit; font-size:13.5px; }
footer .fnl-row input[type=email]::placeholder{ color:var(--ink-faint); }
footer .fnl-row input[type=email]:focus{ outline:none; border-color:var(--copper); }
footer .fnl-hp{ position:absolute; left:-9999px; width:1px; height:1px; opacity:0; }
footer .fnl-btn{ padding:9px 18px; border-radius:22px; border:none; background:var(--copper); color:#1c1409; font:inherit; font-weight:700; font-size:13.5px; cursor:pointer; }
footer .fnl-btn:hover{ background:var(--copper-soft); }
footer .fnl-btn:disabled{ opacity:.6; cursor:default; }
footer .fnl-note{ font-size:11.5px; color:var(--ink-faint); line-height:1.5; }
footer .fnl-note a{ color:var(--copper-soft); }
footer .nl-status{ margin:0; font-size:12.5px; }
footer .nl-status.ok{ color:var(--copper-soft); }
footer .nl-status.err{ color:#e8a090; }
.consent input[type=checkbox]{ accent-color:var(--copper); } /* spójnie z polem newslettera */
.nl-soon{ flex-basis:100%; display:flex; gap:8px; align-items:flex-start; font-size:12.5px; line-height:1.45; color:var(--ink-soft); margin-top:2px; }
#bet-overlay .nl-soon, #smarthome-overlay .nl-soon, #teaser-overlay .nl-soon{ color:var(--link-soft); }
.nl-soon input, .as-nl input{ margin-top:2px; accent-color:var(--copper); flex-shrink:0; }
.as-nl{ flex-basis:100%; display:flex; gap:8px; align-items:flex-start; font-size:12.5px; line-height:1.45; margin-top:6px; color:inherit; opacity:.85; }
#smarthome-form-state, #teaser-lead-form-state{ flex-wrap:wrap; gap:8px; }
#ts-box{ position:fixed; left:50%; bottom:16px; transform:translateX(-50%); z-index:10000; } /* Turnstile — widoczny tylko, gdy Cloudflare poprosi o kliknięcie */
/* v2_35: przycisk asystenta nad paskiem podsumowania; na telefonie przy widocznym pasku — sama ikona */
html .faq-btn.as-launch{ transition:bottom .25s ease, transform .15s; }
html .faq-btn.as-launch.as-compact{ padding:0; width:52px; height:52px; justify-content:center; }
html .faq-btn.as-launch.as-compact span{ display:none; }

/* ===== v2_35: jeden język wyboru w konfiguratorze (wariant A) =====
   kółko = jedna z kilku opcji (element bazowy, deska, blacha, stolarka, pakiet wnętrz),
   kwadrat z ✓ = dodatek (moduły, instalacje); znacznik zawsze przy prawej krawędzi wiersza. */
.sel{ width:22px; height:22px; flex-shrink:0; box-sizing:border-box; border:2px solid rgba(244,234,217,0.38); position:relative; display:inline-block; padding:0; margin:0 0 0 2px; background:transparent; }
.sel-radio{ border-radius:50%; }
.compact-row.active .sel-radio{ border-color:var(--copper); }
.compact-row.active .sel-radio::after{ content:""; position:absolute; inset:3px; border-radius:50%; background:var(--copper); }
.sel-check{ border-radius:6px; cursor:pointer; transition:background .15s, border-color .15s; }
.sel-check:focus-visible{ outline:2px solid var(--copper); outline-offset:2px; }
.sel-check.on{ background:var(--copper); border-color:var(--copper); }
.sel-check.on::after{ content:""; position:absolute; left:6px; top:2px; width:5px; height:10px; border:solid #1c1409; border-width:0 2.5px 2.5px 0; transform:rotate(45deg); }
.compact-row:hover .sel{ border-color:rgba(201,134,63,0.7); }
.compact-row.active .sel-check, .compact-row .sel-check.on{ border-color:var(--copper); }
.base-card .compact-row-badge{ font-size:12px; }
@media (prefers-reduced-motion: reduce){ .sel-check{ transition:none; } }

/* ===== v2_36: rezerwacja — zgody i pola wg § 4 Regulaminu ===== */
.rc-terms{ display:flex; flex-direction:column; gap:10px; margin-bottom:14px; }
.rc-terms #rc-company{ width:100%; box-sizing:border-box; border:1px solid var(--lline); background:var(--lpanel); border-radius:6px; padding:10px 12px; font:inherit; font-size:13.5px; color:var(--link); }
.rc-terms #rc-company:focus{ outline:none; border-color:var(--copper); }
.rc-check{ display:flex; gap:8px; align-items:flex-start; font-size:12.5px; line-height:1.5; color:var(--link-soft); cursor:pointer; }
.rc-check input{ margin-top:3px; accent-color:var(--copper); flex-shrink:0; }
.rc-check a{ color:var(--copper-ink); font-weight:600; }
.rc-terms #rc-parcel{ width:100%; box-sizing:border-box; border:1px solid var(--lline); background:var(--lpanel); border-radius:6px; padding:10px 12px; font:inherit; font-size:13.5px; color:var(--link); }
.rc-terms #rc-parcel:focus{ outline:none; border-color:var(--copper); }
.rc-parcel-msg{ font-size:12.5px; line-height:1.45; color:var(--link-soft); margin-top:-4px; }
.rc-parcel-msg:empty{ display:none; }
.rc-parcel-msg.ok{ color:var(--copper-ink); font-weight:600; }
.rc-parcel-msg.warn{ color:#a33b2b; }
.rc-parcel-help{ font-size:11.5px; line-height:1.45; color:var(--link-soft); margin-top:-4px; }
.rc-parcel-help a{ color:var(--copper-ink); }
.rc-parcel-pick{ display:flex; flex-direction:column; gap:4px; margin-top:6px; }
.rc-parcel-pick button{ text-align:left; font:inherit; font-size:12px; color:var(--link); background:var(--lpanel); border:1px solid var(--lline); border-radius:6px; padding:6px 8px; cursor:pointer; }
.rc-parcel-pick button:hover{ border-color:var(--copper); }
.rc-parcel-more{ font-size:11.5px; margin-top:6px; color:var(--link-soft); }
/* v2_36: karta rezerwacji — obie kolumny od góry, szersza kolumna z polami */
html .reserve-card{ align-items:flex-start; }
html .reserve-card .rc-right{ width:340px; max-width:100%; }
html .reserve-card .rc-left h3{ margin-top:4px; }
@media (max-width:760px){ html .reserve-card .rc-right{ width:100%; } }
.rc-parcel-msg div + div{ margin-top:3px; font-weight:400; color:var(--link-soft); }
