/* Ventaluce (fikcyjna residenza, Castelmiraso — comune fittizio; immobile da costruire, D.Lgs. 122/2005) — arkusz
   z rodziny Orvenhof → Belvaure z własną identyfikacją: travertino (tło), verde lago (kolor główny), terracotta (akcent),
   oliwka (statusy); Bodoni Moda z osią optical size + Figtree (lokalnie), ostre krawędzie (standard Veltris).
   Nagłówki w Bodoni z kontrastem kreski, liczby w Figtree (tabular-nums). */
:root{
  --lime:#f4efe5;--lime-2:#e9e0cf;--paper:#fffcf6;--ink:#1d2321;--ink-2:#3a413d;--muted:#5d625b;
  --sea:#234a47;--sea-d:#132a28;--terra:#a4522f;--sand:#dcc7a5;--line:#dcd2bf;--zinc:#5d6670;
  --available:#4c6a3c;--reserved:#a8651f;--sold:#9a958c;
  --serif:"Bodoni Moda",Didot,"Bodoni 72",Georgia,serif;--sans:"Figtree",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --g:clamp(16px,4vw,48px);--w:1240px
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--lime);color:var(--ink);font:400 16px/1.6 var(--sans);-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.1;margin:0;text-wrap:balance}
h2{font-size:clamp(30px,4vw,48px)}
a{color:var(--sea)}
.wrap{max-width:var(--w);margin:0 auto;padding-inline:var(--g)}
.mut{color:var(--muted)}.small{font-size:14px}
.num{font-variant-numeric:tabular-nums;white-space:nowrap}
.topbar{position:sticky;top:env(safe-area-inset-top,0px);z-index:20}
.demo{margin:0;background:var(--sea-d);color:#e8efe9;font-size:12px;line-height:1.4;letter-spacing:.04em;text-align:center;padding:6px var(--g)}
.hdr{display:flex;align-items:center;gap:20px;padding:12px var(--g);background:rgba(244,239,229,.95);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);margin-right:auto}
.brand svg{width:30px;height:30px;color:var(--terra)}
.brand span{font:500 18px/1 var(--serif);letter-spacing:.28em}
.brand small{display:block;font:600 9px/1 var(--sans);letter-spacing:.34em;color:var(--muted);margin-top:4px}
.nav{display:flex;gap:22px}.nav a{color:var(--ink-2);text-decoration:none;font-weight:500;font-size:14px}
.nav a:hover{color:var(--sea)}
.lang{display:flex;border:1px solid var(--line);border-radius:0;overflow:hidden}
.lang button{background:none;border:0;padding:6px 10px;min-height:44px;min-width:44px;font:600 12px var(--sans);cursor:pointer;color:var(--muted)}
.lang button[aria-pressed=true]{background:var(--sea);color:#fff}
@media (max-width:720px){.nav{display:none}}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 22px;border-radius:0;border:1px solid var(--sea);background:var(--sea);color:#fff;font:600 15px var(--sans);text-decoration:none;cursor:pointer}
.btn:hover{background:var(--sea-d)}
.btn--l{background:transparent;color:var(--sea)}
.btn--l:hover{background:var(--lime-2)}
.btn:disabled{opacity:.5;cursor:default}
.hero{position:relative;min-height:min(86svh,820px);display:grid;align-items:end;overflow:hidden;color:#fff;
  background:linear-gradient(180deg,#e5b98e 0%,#e8cda9 40%,#9fb0ad 70%,#2c4542 100%)}
.hero__img,.hero__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,31,30,.62) 0%,rgba(14,31,30,.25) 45%,rgba(14,31,30,0) 70%),linear-gradient(180deg,rgba(14,31,30,.25) 0%,rgba(14,31,30,0) 25%,rgba(14,31,30,0) 45%,rgba(14,31,30,.7) 100%)}
.hero__in{position:relative;z-index:1;max-width:var(--w);width:100%;margin:0 auto;padding:0 var(--g) clamp(32px,6vh,72px)}
.kicker{font-size:13px;letter-spacing:.14em;text-transform:uppercase;margin:0 0 12px;opacity:.92}
.hero h1{font-size:clamp(42px,7vw,92px);max-width:14ch}
.hero h1 em{font-style:italic;color:#f1d2b4}
.hero__p{max-width:56ch;font-size:clamp(16px,1.4vw,19px);margin:18px 0 0;color:#eef2ee}
.cta{margin:26px 0 0}.hero .btn{background:#fff;color:var(--sea-d);border-color:#fff}
.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));max-width:var(--w);margin:0 auto;padding:0 var(--g)}
.facts div{padding:22px 0;border-bottom:1px solid var(--line)}
.facts b{display:block;font:400 clamp(22px,6vw,32px)/1.1 var(--serif);color:var(--sea-d);overflow-wrap:anywhere}.facts span{font-size:13px;color:var(--muted)}
@media (max-width:720px){.facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
.sec{padding:clamp(56px,8vw,104px) 0}.sec--alt{background:var(--paper)}
.sec h2+p{margin:10px 0 0;max-width:62ch}
.elev{margin-top:28px;background:linear-gradient(180deg,#f8f8f5,#e9e8e2);border:1px solid var(--line);border-radius:2px;padding:10px;overflow-x:auto}
.elev svg{display:block;width:100%;min-width:620px;height:auto}
.elev .u rect{fill:#fff;stroke:#cdbfa7;stroke-width:1;cursor:pointer;transition:fill .15s}
.elev .u.available rect{fill:#e3efe8}.elev .u.reserved rect{fill:#f5e6cd}.elev .u.sold rect{fill:#e6e2db}
.elev .u:hover rect,.elev .u:focus rect{fill:var(--sea);stroke:var(--sea-d)}
.elev .u:hover text,.elev .u:focus text{fill:#fff}
.elev .u:focus{outline:none}.elev .u:focus-visible rect{stroke-width:3}
.elev text{font:600 10px var(--sans);fill:var(--ink-2);text-anchor:middle;pointer-events:none}
.elev .rail{stroke:#b9ab93;stroke-width:1}.elev .perg{stroke:#b8643f;stroke-width:1.2;fill:none}
.elev .ground{stroke:#9fb3ad;stroke-width:2}.elev .bl{font:500 13px var(--serif);fill:var(--muted)}
.legend{display:flex;gap:18px;font-size:13px;color:var(--muted);margin:12px 0 0}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;vertical-align:0}
.dot.available{background:var(--available)}.dot.reserved{background:var(--reserved)}.dot.sold{background:var(--sold)}
.filters{display:flex;flex-wrap:wrap;gap:14px 18px;align-items:end;margin:30px 0 14px}
.filters label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:var(--ink-2);text-transform:uppercase;letter-spacing:.06em}
.filters select{font:400 15px var(--sans);min-height:42px;padding:0 10px;border:1px solid var(--line);border-radius:2px;background:var(--paper);color:var(--ink);min-width:130px}
.filters .chk{flex-direction:row;align-items:center;gap:8px;text-transform:none;letter-spacing:0;font-size:14px;min-height:42px}
.filters #n{margin:0 0 0 auto;align-self:center}
.chk input{width:18px;height:18px;accent-color:var(--sea)}
.scroll{overflow-x:auto;border:1px solid var(--line);border-radius:2px;background:var(--paper)}
.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th,.tbl td{padding:16px 14px;vertical-align:middle;border-bottom:1px solid #eee5d6;text-align:left;white-space:nowrap}
.tbl thead th{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}
.tbl tbody th{font-weight:600}.tbl tbody th small{display:block;font-weight:400;color:var(--muted);font-size:12px}
.tbl tbody tr{cursor:pointer}.tbl tbody tr:hover{background:#f7f1e6}
.tbl tr.sold{color:var(--muted)}
.lnk{background:none;border:0;color:var(--sea);font:600 14px var(--sans);cursor:pointer;padding:6px}
.pill{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;border-radius:2px}
.pill.reserved{background:#f5e6cd;color:#8a5b1c}.pill.sold{background:#ece8e1;color:var(--muted)}
.life{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;margin-top:30px}
.life h3{font-size:22px}.life p{color:var(--muted);margin:8px 0 0}
@media (max-width:900px){.life{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.life{grid-template-columns:1fr}}
.contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:40px}
@media (max-width:860px){.contact{grid-template-columns:minmax(0,1fr)}}
.contact h2,.contact p,.contact label span{overflow-wrap:anywhere;hyphens:auto;-webkit-hyphens:auto}
#lead{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
#lead label{display:flex;flex-direction:column;gap:5px;font-size:14px;font-weight:600}
#lead input:not([type=checkbox]),#lead select,#lead textarea{font:400 16px var(--sans);padding:11px 12px;border:1px solid var(--line);border-radius:2px;background:var(--paper);color:var(--ink);min-width:0;max-width:100%}
#lead .chk{flex-direction:row;align-items:flex-start;gap:10px;font-weight:400}
.hp{position:absolute;left:-9999px}.err{color:#a3422c;margin:0;min-height:1em}
.ok{padding:24px;background:var(--paper);border:1px solid var(--line);border-radius:2px}
.foot{background:var(--sea-d);color:#d9e4e0;font-size:13px;padding:30px 0}.foot a{color:#fff}
/* karta */
dialog{width:min(1080px,calc(100% - 24px));max-height:calc(100dvh - 24px);border:0;border-radius:2px;padding:0;background:var(--paper);color:var(--ink)}
dialog::backdrop{background:rgba(14,31,30,.55)}
.dlg__hd{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;background:var(--paper);border-bottom:1px solid var(--line)}
.dlg__hd h2{font-size:24px;margin-right:auto;min-width:0}.dlg__hd h2 small{font:400 15px var(--sans);color:var(--muted)}
.dlg__p{margin:0;font:400 22px/1.1 var(--serif);color:var(--sea-d)}
.x44{min-height:44px!important;min-width:44px;width:44px;padding:0!important;font-size:24px!important;line-height:1}
@media (max-width:560px){.dlg__hd{padding:8px 12px;gap:8px}.dlg__hd h2{font-size:20px}.dlg__hd h2 small{display:none}.dlg__p{font-size:18px}}
.dlg__b{padding:20px}
.card{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:24px}
@media (max-width:820px){.card{grid-template-columns:minmax(0,1fr)}}
.card__plan{background:#fff;border:1px solid var(--line);border-radius:2px;padding:8px}
.plan{display:block;width:100%;height:auto}
.plan .r{fill:#fbf8f2;stroke:#33413f;stroke-width:1}.plan .wet{fill:#e8f0ef}.plan .hall{fill:#f4efe6}
.plan .wall{fill:none;stroke:#20302f;stroke-width:4}.plan .win{stroke:#7fb2b6;stroke-width:5}
.plan .door{fill:none;stroke:#20302f;stroke-width:1}
.plan .ter{fill:#efe4d0;stroke:#b8a988;stroke-dasharray:4 3}.plan .gar{fill:#dfe9d6;stroke:#a6bb94}
.plan .rl{font:600 11px var(--sans);fill:#20302f;text-anchor:middle}.plan .ra{font:400 10px var(--sans);fill:#66706b;text-anchor:middle}
.plan .north circle{fill:#fff;stroke:#20302f}.plan .north path{fill:#20302f}.plan .north text{font:600 10px var(--sans);text-anchor:middle}
.card__price{font:400 38px/1.1 var(--serif);margin:0;color:var(--sea-d)}
.card__st{margin:6px 0 14px;color:var(--muted)}
.kv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:2px;overflow:hidden;margin:0}
.kv div{background:#fff;padding:9px 12px}.kv div:last-child:nth-child(odd){grid-column:1/-1}.kv dt{font-size:12px;color:var(--muted)}.kv dd{margin:0;font-weight:600;overflow-wrap:anywhere}.kv dt{overflow-wrap:anywhere;hyphens:auto}
.hist{margin-top:16px}.hist h4{margin:0 0 6px;font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.hist p{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin:4px 0;font-size:14px}.hist small{color:var(--muted)}
.calc{margin-top:26px;padding-top:20px;border-top:1px solid var(--line)}
.calc h3{font-size:26px}.calc>.mut{margin:6px 0 14px;max-width:70ch}
.calc__ctl{display:flex;flex-wrap:wrap;gap:16px 26px;align-items:end;margin-bottom:12px}
.calc__ctl label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600}
.calc__ctl .chk{flex-direction:row;align-items:center;gap:8px;font-weight:400}
.calc__ctl select{font:400 15px var(--sans);min-height:40px;padding:0 10px;border:1px solid var(--line);border-radius:2px;background:#fff}
.calc__ctl fieldset{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px 18px}
.calc__ctl legend{font-size:13px;font-weight:600;margin-bottom:4px}
.calc__ctl input[type=range]{width:200px;accent-color:var(--sea)}
.cost{width:100%;border-collapse:collapse;font-size:15px}
.cost th,.cost td{padding:9px 4px;border-bottom:1px solid #eee5d6;text-align:left;font-weight:400}
.cost td{text-align:right}.cost td.pct{color:var(--muted);width:70px}
.cost th small{color:var(--muted)}
.cost .tot th,.cost .tot td{font-weight:700;border-bottom:0;border-top:2px solid var(--ink);font-size:17px}
.src{color:var(--muted);margin:10px 0 0}
.fine{font-size:14px;line-height:1.55;color:var(--ink-2);margin:10px 0 0;max-width:80ch}
.card__acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
@media print{
  @page{size:A4;margin:12mm}
  body.printing{background:#fff}
  body.printing>*:not(dialog){display:none!important}
  body.printing dialog{position:static;display:block;width:100%;max-width:none;max-height:none;height:auto;overflow:visible;margin:0;border-radius:0;box-shadow:none;background:#fff}
  body.printing dialog::backdrop{display:none}
  body.printing .dlg__hd{position:static;padding:0 0 8px;border-bottom:2px solid #20302f}
  body.printing .dlg__b{padding:12px 0 0;overflow:visible}
  .no-print,.dlg__hd .btn,.calc__ctl{display:none!important}
  .print-only{display:block!important}
  .card{grid-template-columns:1.2fr 1fr;gap:16px}
  .calc{break-inside:avoid}
}
.print-only{display:none}
/* rzut do PDF (arkusz A4) — widoczny tylko w druku z klasą body.printplan */
.planprint{display:none}
.plan__acts{display:flex;flex-wrap:wrap;gap:8px}
@media print{
  body.printplan{background:#fff}
  body.printplan>*:not(#planprint){display:none!important}
  body.printplan #planprint{display:block;color:#20302f;font-size:11pt}
  .planprint header{border-bottom:2px solid #20302f;padding-bottom:6px;margin-bottom:8px}
  .planprint__b{letter-spacing:.2em;font-size:9pt;margin:0}
  .planprint h1{font-size:18pt;margin:2px 0}
  .planprint header p{margin:0}
  .planprint dl{display:grid;grid-template-columns:repeat(3,1fr);gap:4px 16px;margin:0 0 8px}
  .planprint dl div{display:flex;justify-content:space-between;border-bottom:1px solid #ccc}
  .planprint dt{color:#555}.planprint dd{margin:0;font-weight:600}
  .planprint svg{display:block;width:100%;height:auto;max-height:190mm}
  .planprint__cap{font-weight:600;margin:6px 0 2px}
  .planprint__demo{font-size:8.5pt;color:#555;margin:0}
}
.mp{position:relative;margin:28px 0 0;border-radius:2px;overflow:hidden;background:#d9c7a7}
.mp img{display:block;width:100%;height:auto}
.mp svg{position:absolute;inset:0;width:100%;height:100%}
.mp .ap{fill:transparent;stroke:transparent;stroke-width:2;cursor:pointer;transition:fill .15s}
.mp .ap.available:hover{fill:rgba(76,106,60,.45);stroke:#fff}
.mp .ap.reserved:hover{fill:rgba(196,138,58,.45);stroke:#fff}
.mp .ap.sold:hover{fill:rgba(120,115,108,.45);stroke:#fff}
@media (hover:none){.mp .ap.available{fill:rgba(76,106,60,.22);stroke:rgba(255,255,255,.7)}}
#mp-tip{position:absolute;z-index:2;background:rgba(16,38,36,.94);color:#fff;font-size:13px;line-height:1.4;padding:8px 10px;border-radius:2px;pointer-events:none;max-width:220px}
.inter{margin:28px 0 0}.inter img{display:block;width:100%;height:auto;border-radius:2px}.inter figcaption{font-size:13px;color:var(--muted);margin-top:8px}
@media (max-width:640px){.filters #n{margin-left:0;width:100%}}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:28px}.pair .inter{margin:0}@media (max-width:860px){.pair{grid-template-columns:1fr}}
.cmpbar{position:fixed;z-index:30;left:50%;transform:translateX(-50%);bottom:calc(14px + env(safe-area-inset-bottom,0px));display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;background:var(--paper);border:1px solid var(--line);border-radius:2px;padding:8px 10px 8px 18px;box-shadow:0 8px 30px rgba(14,31,30,.18);max-width:calc(100% - 24px);font-size:14px}
.cmpbar .btn{min-height:38px}
.tbl.cmp tbody tr{cursor:default}
[hidden]{display:none!important}
@media (max-width:520px){.cmpbar{left:12px;right:12px;transform:none;max-width:none;border-radius:2px;justify-content:space-between}}
.plan .fu{fill:#fff;stroke:#8b958f;stroke-width:1}.plan .fu2{fill:#ece5d8;stroke:#a59c8b;stroke-width:.8}
.plan .gap{stroke:#fbf8f2;stroke-width:4}
.plan .r{stroke-width:2.2}
.ctop{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:16px}
.ctop__eye{margin:0 0 4px;font-size:13px;color:var(--muted);letter-spacing:.02em}
.ctop .card__acts{margin:0}
.stats{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:2px;overflow:hidden;margin-bottom:18px}
.stats div{background:#fff;padding:12px 16px}.stats b{display:block;font:400 26px/1.15 var(--serif);color:var(--sea-d)}.stats span{font-size:12px;color:var(--muted)}
.vtabs{display:flex;gap:4px;margin:2px 2px 8px}.vtabs button{font:600 13px var(--sans);border:1px solid var(--line);background:#fff;border-radius:16px;padding:6px 12px;cursor:pointer;color:var(--ink-2)}
.vtabs button[aria-selected=true]{background:var(--sea);color:#fff;border-color:var(--sea)}
.vpane img{display:block;width:100%;height:auto;border-radius:2px}
details.hist summary,details.calc summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:baseline;gap:12px}
details summary::-webkit-details-marker{display:none}
details.calc summary h3::after{content:" ▾";font-size:16px;color:var(--muted)}
details.calc:not([open]) summary h3::after{content:" ▸"}
details.calc summary b{font:400 24px var(--serif);color:var(--sea-d)}
details.hist{margin-top:14px}details.hist summary{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
@media print{details.calc,details.hist{display:block}details>*{display:block}}
.seltabs{margin:24px 0 0}
.seltabs+.mp{margin-top:10px}
#elev{margin-top:10px}
/* historia ceny: widoczny wskaźnik rozwinięcia i liczba zmian zamiast „pustego” nagłówka */
details.hist summary{border-top:1px solid var(--line);padding-top:10px}
details.hist summary::after{content:"+";font-size:18px;line-height:1;color:var(--ink)}
details.hist[open] summary::after{content:"−"}

/* A4 (26.10): statusy tekstem, dopisek o podatkach, oznaczenia „przykładowe dane”, karty lokali na telefonie, panel wyboru, rzut na pełnym ekranie */
.tag{display:inline-block;font:600 11px/1.5 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:#6b5323;background:#f3e7cf;border:1px solid #e2cfa6;border-radius:4px;padding:0 6px;vertical-align:1px;white-space:nowrap}
.pill{font-size:12px;padding:3px 9px;border-radius:2px;white-space:nowrap}
.pill.available{background:#e3efe8;color:#2b5e4e}.pill.reserved{background:#f5e6cd;color:#7a4f15}.pill.sold{background:#ece8e1;color:#5d5850}
.btn--s{min-height:40px;padding:0 16px;font-size:14px}
.tbl td.price small,.ucard__p small{display:block;font:400 11px var(--sans);color:var(--muted);white-space:normal}
.tbl tbody tr.hl{background:#eef4f1;box-shadow:inset 3px 0 0 var(--sea)}
.pnote{margin:0 0 10px;color:var(--ink-2);max-width:none}
.ucards{display:none;list-style:none;margin:0;padding:0;gap:12px}
.ucard{background:var(--paper);border:1px solid var(--line);border-radius:2px;padding:14px;display:grid;gap:6px}
.ucard.hl{border-color:var(--sea);box-shadow:0 0 0 2px var(--sea) inset}
.ucard__hd{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}.ucard__hd b{font:500 20px var(--serif)}.ucard__hd span:not(.pill){color:var(--muted);font-size:14px;flex:1 1 auto}
.ucard__p{margin:0;font:400 24px/1.2 var(--serif);color:var(--sea-d)}.ucard.sold .ucard__p{color:var(--muted)}
.ucard__m{margin:0;font-size:14px;color:var(--ink-2)}
.ucard .btn{min-height:44px;width:100%}
@media (max-width:640px){.tblwrap{display:none}.ucards{display:grid}}
.mp .ap.hl{fill:rgba(35,74,71,.5)!important;stroke:#fff!important}
.elev .u.hl rect{fill:var(--sea);stroke:var(--sea-d)}.elev .u.hl text{fill:#fff}
.elev text.st{font:500 7px var(--sans);fill:var(--muted)}
.elev .u.sold rect{fill:#e6e2db;stroke-dasharray:3 2}
#mp-tip{max-width:260px}#mp-tip small{opacity:.85}#mp-tip .pill{font-size:11px}
.mpsel{position:relative;margin:10px 0 0;padding:14px 56px 14px 16px;background:var(--paper);border:1px solid var(--sea);border-radius:2px;font-size:15px;line-height:1.5}
.mpsel small{color:var(--muted)}.mpsel .btn{margin-top:10px;min-height:44px}
.mpsel__x{position:absolute;top:4px;right:4px}
.legend{flex-wrap:wrap;align-items:center}
.card__excl{margin:2px 0 0;font-size:13px;color:var(--muted)}
.card__st{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.plan__ft{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:6px 4px 2px}.plan__ft p{margin:0}
details.calc summary{align-items:center}
.sum__h{display:flex;flex-direction:column;gap:2px}.sum__h small{font-size:13px;color:var(--muted)}
.calc .fixed{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600}.calc .fixed b{font:400 15px var(--sans);min-height:40px;display:flex;align-items:center}
.cost .cmph td{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);text-align:right}
.cost .cmpc{color:var(--muted)}
.cost tr.opt th,.cost tr.opt td{color:var(--ink-2);font-style:italic}
.cost .tot--opt th,.cost .tot--opt td{font-size:15px;border-top:1px solid var(--ink)}
details.how{margin-top:12px;border:1px solid var(--line);border-radius:2px;background:#fff;padding:0 14px}
details.how summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:12px;min-height:44px;align-items:center;font-weight:600;font-size:15px}
details.how summary::after{content:"+";font-size:18px}details.how[open] summary::after{content:"−"}
details.how ul{margin:0 0 12px;padding-left:18px;font-size:14px;line-height:1.55;color:var(--ink-2)}details.how li{margin:4px 0}
.sched th small{display:block;color:var(--muted);font-weight:400}.sched .guar{color:var(--available)}
.sched thead th{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}
.sched thead th.num{text-align:right}.sched td.w{text-align:left}.sched td{white-space:nowrap}
.sched tr.mile th,.sched tr.mile td{color:var(--muted);font-style:italic;background:#faf6ef}.sched .mile__n{text-align:right}
@media (max-width:700px){
  .sched thead{display:none}
  .sched,.sched tbody,.sched tr{display:block}
  .sched tr{padding:10px 0;border-bottom:1px solid #eee5d6}
  .sched th,.sched td{display:flex;justify-content:space-between;gap:12px;border:0;padding:2px 0;text-align:right}
  .sched th{display:block;text-align:left;font-weight:600;padding-bottom:4px}
  .sched td[data-l]::before{content:attr(data-l);color:var(--muted);font-size:13px;text-align:left}
  .sched td:empty,.sched td.pct{display:none}
  .sched tr.tot{border-top:2px solid var(--ink)}.sched tr.tot th,.sched tr.tot td{border:0}
}
.defs{margin:8px 0 0;font-size:14px}.defs dt{font-weight:600;margin-top:8px}.defs dd{margin:2px 0 0;color:var(--ink-2)}
.loc{margin-top:36px;max-width:72ch}.loc h3{font-size:22px}.loc p{color:var(--ink-2);margin:8px 0 0}
.sec--docs{border-top:1px solid var(--line)}
.docs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:18px;margin-top:28px}
.doc{background:var(--paper);border:1px solid var(--line);border-radius:2px;padding:18px}
.doc h3{font-size:21px}.doc__s{margin:8px 0}.doc p:last-child{margin:0;color:var(--ink-2);font-size:15px}
.docs__note{margin:18px 0 0;color:var(--ink-2)}
.tel{display:grid;grid-template-columns:minmax(0,130px) minmax(0,1fr);gap:10px}
.consent{display:flex;flex-wrap:wrap;align-items:flex-start;gap:4px 12px}.consent a{font-size:14px;padding:2px 0}
.zoom{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;border-radius:0;display:none;flex-direction:column;background:#fff}
.zoom[open]{display:flex}
.zoom__hd{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--paper)}
.zoom__hd h2{font-size:20px}
.zoom__ctl{display:flex;align-items:center;gap:6px}.zoom__ctl output{min-width:48px;text-align:center;font-size:14px}
.zoom__b{flex:1;overflow:auto;padding:12px;touch-action:pan-x pan-y pinch-zoom;-webkit-overflow-scrolling:touch}
.zoom__b svg{display:block;width:100%;max-width:none;height:auto}
.zoom__cap{margin:0;padding:8px 12px;border-top:1px solid var(--line);color:var(--muted)}
@media (max-width:560px){.stats{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr))}.stats div{padding:10px 10px}.stats b{font-size:20px}.stats span{font-size:12px;line-height:1.3;display:block}}
@media (max-width:560px){.dlg__b{padding:14px}.vtabs{flex-wrap:wrap}.card__acts .btn{width:100%}}
@media (max-width:560px){.cost{font-size:14px}.cost th,.cost td{padding:8px 3px}.cost td small{display:block}.cost .tot th,.cost .tot td{font-size:15px}details.calc summary{flex-wrap:wrap}details.calc summary b{font-size:22px}.calc h3{font-size:23px}}
@media (max-width:400px){.cost th{hyphens:auto;-webkit-hyphens:auto;overflow-wrap:anywhere}.cost td{font-size:13px}.cost .tot td{font-size:14px}}
@media (max-width:560px){.dlg__hd{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;column-gap:8px;row-gap:0}.dlg__hd h2{grid-column:1;grid-row:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dlg__p{grid-column:1;grid-row:2}#dlg-ask{grid-column:2;grid-row:1/3}#dlg-x{grid-column:3;grid-row:1/3}}
@media (max-width:400px){.stats{grid-template-columns:1fr}.stats div{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:8px 12px}.stats span{font-size:13px;text-align:right}}
#dlg-t:focus{outline:none}

/* Corvela: profil kupującego, linia VAT „zwolniony”, koszty roczne, stopka z linkami prawnymi */
h1,h2,h3{font-weight:500}
.prof{border:1px solid var(--line);padding:10px 14px;margin:0 0 14px;display:grid;gap:4px}
.prof legend{font-weight:600;font-size:14px;padding:0 6px}
.prof label{min-height:44px;display:flex;align-items:center;gap:10px}
.cost tr.zero td{color:var(--muted);font-style:italic}
.annual__h{font:600 15px/1.3 var(--sans);margin:18px 0 6px}
.foot a{color:inherit}
.foot .foot__legal{font-size:13px;opacity:.85}
.mp img{display:block;width:100%;height:auto}

/* Runda poprawek R1 (27.10): hero czytelniej, ID lokali krojem bezszeryfowym, menu na telefonie jako drugi wiersz (L37),
   karty: „pokaż wszystkie”, objaśnienie IMT, notka profilu, specyfikacja, korzyści przy formularzu, podpowiedź fasady */
.hero__in{max-width:min(620px,100%)}
.hero__p{max-width:560px;font-size:17px;line-height:1.55}
.hero::after{background:linear-gradient(90deg,rgba(14,31,30,.72) 0%,rgba(14,31,30,.42) 42%,rgba(14,31,30,0) 72%),linear-gradient(180deg,rgba(14,31,30,.35) 0%,rgba(14,31,30,0) 28%,rgba(14,31,30,0) 45%,rgba(14,31,30,.72) 100%)}
.kicker{text-shadow:0 1px 8px rgba(14,31,30,.55)}
.tbl th[scope=row],.ucard__hd b,#dlg-t,.cmp th[scope=col]{font-family:var(--sans);font-variant-numeric:lining-nums;font-weight:600}
@media (max-width:720px){
  .hdr{flex-wrap:wrap;row-gap:4px}
  .nav{display:flex;order:3;width:100%;overflow-x:auto;gap:18px;scrollbar-width:none;margin:0 -2px}
  .nav::-webkit-scrollbar{display:none}
  .nav{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 22px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 22px),transparent);padding-right:22px}
  .nav a{display:inline-flex;align-items:center;min-height:44px;white-space:nowrap;font-size:14px}
}
.ucards__more{text-align:center;margin:14px 0 0}
@media (min-width:821px){.ucards__more{display:none}}
.prof__n{margin:6px 0 0;font-size:14px;line-height:1.5;color:var(--ink-2);background:var(--lime);padding:10px 12px;border-left:3px solid var(--terra)}
.imtcalc{font-size:14px;line-height:1.5;margin:10px 0 0;color:var(--ink-2)}
.imtcalc small{color:var(--muted)}
.fine,.how li,.src{font-size:13px;line-height:1.45}
@media (max-width:720px){.fine,.how li,.src{font-size:14px;line-height:1.5}}
.spec{margin-top:32px;border-top:1px solid var(--line);padding-top:22px}
.spec h3{font-size:24px;margin-bottom:12px}
.spec dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:14px 28px;margin:0}
.spec dt{font-weight:600;font-size:14px;letter-spacing:.04em;text-transform:uppercase;color:var(--terra)}
.spec dd{margin:4px 0 0;color:var(--ink-2)}
.contact__b{margin:18px 0 0;padding:0;list-style:none;display:grid;gap:8px}
.contact__b li{padding-left:22px;position:relative}
.contact__b li::before{content:"";position:absolute;left:0;top:.6em;width:12px;height:1px;background:var(--terra)}
#mp-svg.hint .ap.available{stroke:#fff;stroke-width:3;fill:rgba(255,255,255,.18);transition:fill .4s}
input[type=radio],input[type=checkbox],input[type=range]{accent-color:var(--sea)}

/* --- CH: finansowanie, porównanie kantonów, karta „Lex Koller” --- */
.cost tr.sub th,.cost tr.sub td{font-weight:600;border-top:1px solid var(--ink-2)}
.cost.cant tr.here th,.cost.cant tr.here td{font-weight:700;background:#eef2f1}
.cost.cant th small{display:block;color:var(--muted);font-weight:400}
#c-cant{margin-top:14px}#c-cant h4{margin:0 0 6px;font:600 15px var(--sans)}
.fin__in{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px}
.fin__in label{display:flex;flex-direction:column;gap:4px;font-size:14px;min-width:0}
.fin__in input{min-height:44px;padding:8px 10px;font:600 16px var(--sans);border:1px solid var(--line);border-radius:0;background:#fff;color:var(--ink);font-variant-numeric:tabular-nums;width:100%;min-width:0}
.checks{list-style:none;margin:14px 0;padding:0;display:grid;gap:6px;font-size:15px}
.checks li{padding:6px 10px;border-left:3px solid var(--line);background:var(--paper)}
.checks li.ok{border-color:var(--available)}.checks li.no{border-color:#b4532f}
.checks li.ok span{color:var(--available)}.checks li.no span{color:#b4532f}
.cost tr.okr td{color:var(--available);font-weight:700}.cost tr.nor td{color:#b4532f;font-weight:700}
#f-sum{font-size:15px;white-space:normal;text-align:right}#f-sum.ok{color:var(--available)}#f-sum.no{color:#b4532f}
.doc--wide{grid-column:1/-1}
.sched td.w{white-space:normal;overflow-wrap:anywhere}
/* Orvenhof: kwota kredytu, wybór landu, WoFlV, blok energii § 87 GModG, KfW */
.calc__ctl .loan input{min-height:44px;padding:8px 10px;font:600 16px var(--sans);border:1px solid var(--line);border-radius:0;background:#fff;color:var(--ink);font-variant-numeric:tabular-nums;width:180px;max-width:100%}
.calc__ctl .loan[hidden]{display:none}
.calc__ctl label{min-width:0;max-width:100%}
.calc__ctl select{max-width:100%;min-width:0}
.land__n{color:var(--terra);font-weight:600}
.sched th small.guar{display:block}
.energy dt small{display:inline-block;margin-left:6px;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--terra)}
.pair2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:34px}
@media (max-width:860px){.pair2{grid-template-columns:minmax(0,1fr)}}
.energy-b,.kfw-b{background:var(--paper);border:1px solid var(--line);padding:22px;min-width:0}
.energy-b h3,.kfw-b h3{font-size:24px;margin-bottom:8px}
.kfw{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:12px}
.kfw li{display:grid;gap:4px;border-left:3px solid var(--sea);padding:4px 0 4px 12px;font-size:14px;overflow-wrap:anywhere}
.kfw li span{color:var(--ink-2)}
/* R2: rzut przyklejony w karcie desktop (bez pustej kolumny), łamanie długich słów DE, nawigacja 320–380 bez ucięcia */
@media (min-width:821px){.card{align-items:start}.card__plan{position:sticky;top:12px}}
.kv dd{hyphens:auto;-webkit-hyphens:auto}
@media (max-width:380px){.nav{gap:14px}.nav a{font-size:13px}}
@media (max-width:420px){.hero h1{text-wrap:balance;letter-spacing:-.01em}}
.energy dt small{opacity:.75}
#tbl tr.is-cur>*{background:#eef2f1}#tbl tr.is-cur th:first-child{box-shadow:inset 3px 0 0 var(--sea)}#ucards>.is-cur{box-shadow:0 0 0 2px var(--sea)}
@media (max-width:440px){.kv.energy{grid-template-columns:minmax(0,1fr)}.kv.energy div:last-child:nth-child(odd){grid-column:auto}}

/* Belvaure: mentions légales, wynik PTZ, dépôt, kontrola plafonds, kapitaliki sekcji */
.foot .notice{margin-top:14px;border-top:1px solid rgba(255,255,255,.18);padding-top:10px}
.foot .notice h3{font:600 14px/1.3 var(--sans);letter-spacing:.06em;text-transform:uppercase;margin:6px 0 0;color:#fff}
.foot .notice dl{display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr);gap:6px 18px;margin:8px 0 0;font-size:13px}
.foot .notice dt{font-weight:600}.foot .notice dd{margin:0;overflow-wrap:anywhere}
@media (max-width:640px){.foot .notice dl{grid-template-columns:minmax(0,1fr)}.foot .notice dd{margin-bottom:6px}}
.ptz{margin:10px 0;padding:10px 12px;border-left:3px solid var(--sold);background:var(--paper)}
.ptz.ok{border-left-color:var(--available)}.ptz.no{border-left-color:var(--reserved)}
.dep{border-left:3px solid var(--terra);padding-left:10px}
.capok{color:var(--available);font-weight:600}
.sec h2{letter-spacing:.01em}
.kicker{letter-spacing:.14em;text-transform:uppercase;font-size:12px}
.calc__ctl input{min-width:0}
.calc__ctl input[inputmode]{min-height:44px;padding:8px 10px;font:600 16px var(--sans);border:1px solid var(--line);border-radius:0;background:#fff;color:var(--ink);font-variant-numeric:tabular-nums;width:180px;max-width:100%}
.calc__ctl select{min-height:44px}
.sched td.num small.guar{display:block;font-weight:400}
@media (max-width:640px){.sched td.num{flex-wrap:wrap}.sched td.num small.guar{flex-basis:100%;white-space:normal;text-align:right}}
@media (max-width:700px){.hero__p{max-width:32ch}}
@media (max-width:640px){.calc summary h3{font-size:22px}.cost th,.cost td{padding-top:10px;padding-bottom:10px}.cost td.num{font-weight:600}}

/* Ventaluce: cena IVA esclusa + IVA 4 % / 10 %, requisiti prima casa, fideiussione na planie płatności, Bodoni */
h1,h2,h3{font-family:var(--serif);font-optical-sizing:auto;font-weight:500;letter-spacing:-.005em}
.hero h1{font-weight:500;letter-spacing:-.015em;max-width:13ch}
.hero h1 em{font-weight:400}
.brand span{font:600 17px/1 var(--serif);letter-spacing:.3em}
.brand svg{color:var(--terra)}
.card__price,.ucard__p,.dlg__p,.stats b,.facts b,details.calc summary b{font-family:var(--sans);font-weight:600;letter-spacing:-.01em}
.card__price{font-size:34px}.ucard__p{font-size:22px}.dlg__p{font-size:20px}.stats b{font-size:22px}.facts b{font-size:clamp(22px,5vw,30px)}
details.calc summary b{font-size:20px}
@media (max-width:560px){details.calc summary b{font-size:18px}.dlg__p{font-size:16px}}
.ivas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin:10px 0 0;max-width:460px}
.ivas div{background:#fff;padding:8px 12px}.ivas dt{font-size:12px;color:var(--muted)}.ivas dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums}
.ivas div.on{box-shadow:inset 3px 0 0 var(--terra)}
.pcq{border:1px solid var(--line);padding:10px 14px;margin:0 0 12px;display:grid;gap:2px;min-width:0}
.pcq legend{font-weight:600;font-size:14px;padding:0 6px}
.pcq label{min-height:44px;display:flex;align-items:center;gap:10px;font-size:15px;line-height:1.35}
.pcq label input{flex:0 0 auto}
.pcres{margin:10px 0;padding:10px 12px;border-left:3px solid var(--sold);background:var(--paper)}
.pcres.ok{border-left-color:var(--available)}.pcres.no{border-left-color:var(--reserved)}
.cost tr.grp th{font:600 12px/1.4 var(--sans);text-transform:uppercase;letter-spacing:.08em;color:var(--terra);padding-top:16px;border-bottom:1px solid var(--line)}
.cost tr.grp td{border-bottom:1px solid var(--line)}
.fid{display:inline-block;font:600 11px/1.5 var(--sans);letter-spacing:.04em;color:#2f5a3f;background:#e5efe2;border:1px solid #c6d8bf;padding:0 6px;white-space:nowrap}
.fid.no{color:var(--muted);background:#f0ece4;border-color:var(--line)}
.guarbox{margin:12px 0 0;padding:12px 14px;border:1px solid var(--line);background:#fff;display:grid;gap:6px;font-size:14px}
.guarbox b{font-variant-numeric:tabular-nums}
.spec dt{color:var(--terra)}
.foot{background:var(--sea-d)}
.demo{background:#0f2120;color:#e6ede8}
.mp{background:#cdb999}
/* hero: tekst przy lewej krawędzi siatki (bryła budynku w środku kadru) */
.hero__in{margin:0;margin-left:max(0px,calc((100% - var(--w)) / 2))}
/* R1: wskazówka nad fasadą, warunek IVA, pytania prima casa tak/nie, tekst pomocniczy 14 px, gradient hero na telefonie */
.mphint{margin:10px 0 0;font:600 14px/1.4 var(--sans);color:var(--sea)}
.seltabs+.mphint+.mp{margin-top:8px}
.ivacond{max-width:460px;margin-top:6px}
.pcq{grid-template-columns:repeat(2,minmax(0,max-content));column-gap:22px}
.pcq legend{font-weight:500;font-size:15px;line-height:1.4;padding:0 2px;max-width:100%;white-space:normal}
.pcq[hidden]{display:none}
.fine,.how li,.src{font-size:14px;line-height:1.55}
.cost tr.tot th,.cost tr.tot td{border-top:2px solid var(--sea-d);padding-top:14px}
@media (max-width:700px){.hero::after{background:linear-gradient(0deg,rgba(12,30,27,.78) 0%,rgba(12,30,27,.5) 42%,rgba(12,30,27,.06) 80%),linear-gradient(90deg,rgba(12,30,27,.35),rgba(12,30,27,0) 70%)}}
/* R2: mocniejszy gradient hero na telefonie, filtry 44 px, stały delikatny kontur lokali na ekranach dotykowych */
@media (max-width:700px){.hero::after{background:linear-gradient(0deg,rgba(12,30,27,.86) 0%,rgba(12,30,27,.6) 45%,rgba(12,30,27,.1) 82%),linear-gradient(90deg,rgba(12,30,27,.42),rgba(12,30,27,0) 72%)}}
.filters select,.filters .chk{min-height:44px}
@media (hover:none){.mp .ap{stroke:rgba(255,255,255,.55);stroke-width:1.5}}
/* R3 (P2): kontur lokali na ekranach dotykowych 2 px, aktywny wyraźniejszy; ciaśniej nad rzutem w karcie na telefonie */
@media (hover:none){.mp .ap{stroke-width:2}.mp .ap.hl{stroke-width:3}}
@media (max-width:560px){.ivas{margin-top:6px}.ivacond{margin-top:4px}.card__st{margin:2px 0 10px}.ctop{gap:10px;margin-bottom:10px}}
