/* BRYŁA — deweloper. Bauhaus / typograficzny plakat + chiaroscuro.
   Fonty: Anybody (oś szerokości 50–150 i grubości — typografia kinetyczna), Geologica (tekst). Bez zaokrągleń i kół. */
@import url('../fonts/fonts.css');

:root {
  --papier: #efe8d8;
  --papier-2: #e4dac4;
  --tusz: #121110;
  --tusz-2: #2b2825;
  --szary: #6a655b;
  --cz: #d8321f;
  --cz-2: #f2622c;
  --zo: #f2a516;
  --zo-2: #ffd54a;
  --bl: #17348f;
  --bl-2: #3a6ae6;
  --noc: #0b0a09;
  --swiatlo: #f1e4c8;
  --bursztyn: #e7a24a;
  --g-cz: linear-gradient(128deg, #c4261a 0%, #e2401f 45%, #f57a33 100%);
  --g-zo: linear-gradient(128deg, #ef9a0f 0%, #f7bd27 50%, #ffdd5c 100%);
  --g-bl: linear-gradient(128deg, #0f2670 0%, #1f44b4 50%, #4a7cf0 100%);
  --g-noc: linear-gradient(180deg, #0b0a09 0%, #17140f 100%);
  --f-d: 'Anybody', 'Arial Narrow', sans-serif;
  --f-t: 'Geologica', 'Helvetica Neue', Arial, sans-serif;
  --gut: clamp(16px, 2.2vw, 36px);
  --hdr: 68px;
  --e-out: cubic-bezier(0.16, 1, 0.3, 1);
  --e-io: cubic-bezier(0.76, 0, 0.24, 1);
  color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; border-radius: 0 !important; }
html { -webkit-text-size-adjust: 100%; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: hidden; }
body {
  margin: 0; background: var(--papier); color: var(--tusz);
  font: 400 clamp(15px, 1.05vw, 17px)/1.55 var(--f-t);
  font-feature-settings: 'ss01', 'tnum';
  -webkit-font-smoothing: antialiased; overflow-x: hidden;
}
body.is-dark { background: var(--noc); color: var(--swiatlo); color-scheme: dark; }
img, svg, canvas, video { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; background: none; border: 0; padding: 0; }
::selection { background: var(--cz); color: var(--papier); }
:focus-visible { outline: 3px solid var(--cz); outline-offset: 3px; }
.sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ziarno druku na całej stronie */
body::after {
  content: ''; position: fixed; inset: -50%; z-index: 90; pointer-events: none; opacity: 0.09;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.6 -0.35'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation: ziarno 0.9s steps(4) infinite;
}
body.is-dark::after { opacity: 0.14; mix-blend-mode: screen; filter: invert(1); }
@keyframes ziarno { 0% { transform: translate(0, 0); } 25% { transform: translate(-3%, 2%); } 50% { transform: translate(2%, -4%); } 75% { transform: translate(-1%, 3%); } }

/* ———————————————————— typografia ———————————————————— */
.d { font-family: var(--f-d); font-weight: 850; font-stretch: 100%; line-height: 0.82; letter-spacing: -0.02em; text-transform: uppercase; margin: 0; }
.d--w { font-stretch: 150%; }
.d--n { font-stretch: 55%; }
.lbl { font: 600 11px/1.2 var(--f-t); letter-spacing: 0.16em; text-transform: uppercase; }
.num { font-family: var(--f-d); font-weight: 800; font-stretch: 62%; font-variant-numeric: tabular-nums; }
p { margin: 0 0 1em; }

/* ———————————————————— kursor ———————————————————— */
.kur { position: fixed; left: 0; top: 0; z-index: 200; pointer-events: none; mix-blend-mode: difference; }
.kur__k { width: 44px; height: 44px; background: #fff; transform: translate(-50%, -50%) rotate(45deg) scale(0.32); clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); transition: transform 0.35s var(--e-out), clip-path 0.35s var(--e-out); }
.kur__t { position: absolute; left: 16px; top: 12px; white-space: nowrap; font: 700 11px/1 var(--f-t); letter-spacing: 0.16em; text-transform: uppercase; color: #fff; opacity: 0; transform: translateY(6px); transition: 0.3s var(--e-out); }
.kur.is-link .kur__k { transform: translate(-50%, -50%) rotate(0deg) scale(1); }
.kur.is-txt .kur__t { opacity: 1; transform: none; }
.kur.is-txt .kur__k { transform: translate(-50%, -50%) rotate(45deg) scale(0.23); }
.kur.is-drag .kur__k { clip-path: polygon(50% 0, 100% 100%, 0 100%); transform: translate(-50%, -60%) scale(0.8); }
@media (hover: none), (pointer: coarse) { .kur { display: none; } }

/* ———————————————————— przejście stron (żaluzja) ———————————————————— */
.zal { position: fixed; inset: 0; z-index: 150; pointer-events: none; display: grid; grid-template-columns: repeat(3, 1fr); }
.zal i { display: block; transform: scaleY(0); transform-origin: bottom; }
.zal i:nth-child(1) { background: var(--g-cz); }
.zal i:nth-child(2) { background: var(--g-zo); }
.zal i:nth-child(3) { background: var(--g-bl); }
.zal b { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); font: 900 clamp(48px, 9vw, 140px)/0.8 var(--f-d); font-stretch: 140%; color: var(--papier); text-transform: uppercase; opacity: 0; white-space: nowrap; mix-blend-mode: difference; }
html.przejscie .zal i { transform: scaleY(1); }
@view-transition { navigation: auto; }

/* ———————————————————— preloader ———————————————————— */
.pre { position: fixed; inset: 0; z-index: 160; background: var(--papier); display: grid; place-items: center; overflow: hidden; }
.pre__fig { display: flex; align-items: flex-end; gap: clamp(10px, 1.6vw, 22px); height: clamp(80px, 14vw, 200px); }
.pre__fig i { display: block; height: 100%; aspect-ratio: 1; transform: scaleY(0); transform-origin: bottom; }
.pre__fig i:nth-child(1) { background: var(--g-cz); }
.pre__fig i:nth-child(2) { background: var(--g-zo); clip-path: polygon(50% 0, 100% 100%, 0 100%); }
.pre__fig i:nth-child(3) { background: var(--g-bl); aspect-ratio: 0.32; }
.pre__fig i:nth-child(4) { background: var(--tusz); aspect-ratio: 1.6; height: 30%; }
.pre__n { position: absolute; right: var(--gut); bottom: calc(var(--gut) - 0.12em); font: 900 clamp(90px, 22vw, 360px)/0.75 var(--f-d); font-stretch: 50%; font-variant-numeric: tabular-nums; letter-spacing: -0.04em; }
.pre__l { position: absolute; left: var(--gut); bottom: var(--gut); max-width: 28ch; }
.pre__l b { display: block; font: 900 22px/1 var(--f-d); font-stretch: 130%; text-transform: uppercase; margin-bottom: 6px; }
.pre__bar { position: absolute; left: 0; top: 0; height: 6px; width: 100%; background: var(--tusz); transform-origin: left; transform: scaleX(0); }

/* ———————————————————— nagłówek ———————————————————— */
.hdr { position: fixed; left: 0; right: 0; top: 0; z-index: 100; height: var(--hdr); display: flex; align-items: center; gap: 28px; padding: 0 var(--gut); color: var(--tusz); transition: color 0.4s, background-color 0.4s, transform 0.5s var(--e-out); }
.hdr.on-dark { color: var(--papier); }
.hdr.is-hidden { transform: translateY(-100%); }
.hdr::before { content: ''; position: absolute; inset: 0; z-index: -1; background: color-mix(in srgb, var(--papier) 86%, transparent); backdrop-filter: blur(10px) saturate(1.2); opacity: 0; transition: opacity 0.4s; }
.hdr.is-solid::before { opacity: 1; }
.hdr.on-dark::before { background: color-mix(in srgb, var(--noc) 80%, transparent); }
.logo { display: flex; align-items: center; gap: 10px; font: 900 22px/1 var(--f-d); font-stretch: 125%; letter-spacing: -0.01em; }
.logo svg { width: 46px; height: 22px; overflow: visible; }
.logo svg rect, .logo svg path { transition: transform 0.6s var(--e-out); transform-box: fill-box; transform-origin: center; }
.logo:hover .l-k { transform: rotate(90deg); }
.logo:hover .l-t { transform: translateY(-3px) rotate(180deg); }
.logo:hover .l-p { transform: scaleY(1.4); }
.nav { display: flex; gap: clamp(14px, 2vw, 30px); margin-left: auto; }
.nav a { position: relative; font: 600 13px/1 var(--f-t); letter-spacing: 0.08em; text-transform: uppercase; padding: 8px 0; }
.nav a::after { content: ''; position: absolute; left: 0; right: 0; bottom: 2px; height: 3px; background: var(--cz); transform: scaleX(0); transform-origin: right; transition: transform 0.45s var(--e-out); }
.nav a:hover::after, .nav a.is-on::after { transform: scaleX(1); transform-origin: left; }
.hdr__tel { font: 700 13px/1 var(--f-t); letter-spacing: 0.04em; font-variant-numeric: tabular-nums; }
.menu-btn { display: none; width: 44px; height: 44px; position: relative; }
.menu-btn i { position: absolute; left: 10px; right: 10px; height: 3px; background: currentColor; transition: 0.4s var(--e-out); }
.menu-btn i:nth-child(1) { top: 15px; } .menu-btn i:nth-child(2) { top: 26px; right: 18px; }
.menu-open .menu-btn i:nth-child(1) { top: 20px; transform: rotate(45deg); }
.menu-open .menu-btn i:nth-child(2) { top: 20px; right: 10px; transform: rotate(-45deg); }

.btn { --bg: var(--tusz); --fg: var(--papier); position: relative; display: inline-flex; align-items: center; gap: 14px; padding: 17px 22px 16px; background: var(--bg); color: var(--fg); font: 700 13px/1 var(--f-t); letter-spacing: 0.1em; text-transform: uppercase; overflow: hidden; isolation: isolate; white-space: nowrap; }
.btn::before { content: ''; position: absolute; inset: 0; z-index: -1; background: var(--g-cz); transform: translateY(101%); transition: transform 0.55s var(--e-out); }
.btn:hover::before { transform: none; }
.btn svg { width: 18px; height: 18px; transition: transform 0.5s var(--e-out); }
.btn:hover svg { transform: translateX(5px); }
.btn--cz { --bg: var(--cz); } .btn--cz::before { background: var(--tusz); }
.btn--jasny { --bg: var(--papier); --fg: var(--tusz); }
.btn--line { --bg: transparent; --fg: currentColor; box-shadow: inset 0 0 0 2px currentColor; }
.btn--line:hover { color: var(--papier); }

/* ———————————————————— HERO (sekwencja 3D) ———————————————————— */
.hero { position: relative; height: 460vh; }
.hero__st { position: sticky; top: 0; height: 100vh; height: 100svh; overflow: hidden; }
.hero__cv { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero__cv canvas { width: 100%; height: 100%; }
.hero__poster { position: absolute; inset: 0; pointer-events: none; }
.hero__poster a, .hero__poster button { pointer-events: auto; }
.hw { position: absolute; font-family: var(--f-d); font-weight: 900; line-height: 0.74; text-transform: uppercase; letter-spacing: -0.035em; color: var(--tusz); white-space: nowrap; will-change: transform, font-stretch; }
.hw--a { left: calc(var(--gut) - 0.04em); top: calc(var(--hdr) + 1vh); font-size: clamp(110px, 25vw, 460px); font-stretch: 120%; }
.hw--b { right: calc(var(--gut) - 0.03em); bottom: calc(var(--gut) - 0.02em); font-size: clamp(110px, 25vw, 460px); font-stretch: 120%; }
.hw .ch { display: inline-block; will-change: transform; }
.h-pion { position: absolute; left: var(--gut); bottom: var(--gut); writing-mode: vertical-rl; transform: rotate(180deg); font: 600 11px/1 var(--f-t); letter-spacing: 0.32em; text-transform: uppercase; }
.h-intro { position: absolute; left: clamp(64px, 7vw, 120px); bottom: var(--gut); width: min(380px, 40vw); background: var(--papier); padding: 22px 22px 24px; box-shadow: 8px 8px 0 var(--tusz); }
.h-intro p { font-size: 15px; margin-bottom: 18px; }
.h-intro__sq { position: absolute; right: -14px; top: -14px; width: 28px; height: 28px; background: var(--g-cz); }
.h-meta { position: absolute; top: calc(var(--hdr) + 10px); right: var(--gut); text-align: right; font: 600 11px/1.7 var(--f-t); letter-spacing: 0.16em; text-transform: uppercase; }
.h-meta b { display: block; font: 900 15px/1 var(--f-d); font-stretch: 130%; letter-spacing: 0; }
.h-lines { position: absolute; inset: 0; }
.hl { position: absolute; font: 900 clamp(64px, 11vw, 200px)/0.8 var(--f-d); text-transform: uppercase; letter-spacing: -0.03em; white-space: nowrap; }
.hl--1 { left: var(--gut); top: 16vh; font-stretch: 150%; }
.hl--2 { right: var(--gut); top: 41vh; font-stretch: 56%; color: var(--papier); padding: 0.06em 0.14em 0; background: var(--g-cz); }
.hl--3 { left: 22vw; bottom: 7vh; font-stretch: 150%; font-size: clamp(110px, 21vw, 380px); }
.hl--3 em { font-style: normal; color: var(--cz); }
.h-fin { position: absolute; right: var(--gut); bottom: var(--gut); width: min(460px, 86vw); background: var(--tusz); color: var(--papier); padding: 26px; display: grid; grid-template-columns: 1fr 1fr; gap: 18px 22px; }
.h-fin h2 { grid-column: 1 / -1; font: 900 clamp(34px, 3.4vw, 54px)/0.86 var(--f-d); font-stretch: 130%; text-transform: uppercase; margin: 0; }
.h-fin h2 span { color: var(--zo); }
.h-fin .num { font-size: 52px; line-height: 0.8; display: block; }
.h-fin .btn { grid-column: 1 / -1; justify-content: space-between; --bg: var(--g-cz); background: var(--g-cz); }
.h-fin .btn::before { background: var(--papier); }
.h-fin .btn:hover { color: var(--tusz); }
.h-rail { position: absolute; right: var(--gut); top: 50%; transform: translateY(-50%); display: flex; align-items: center; gap: 12px; font: 600 11px/1 var(--f-t); letter-spacing: 0.2em; text-transform: uppercase; }
.h-rail__bar { width: 4px; height: 26vh; background: color-mix(in srgb, var(--tusz) 18%, transparent); position: relative; }
.h-rail__bar i { position: absolute; inset: 0; background: var(--tusz); transform-origin: top; transform: scaleY(0); }
.h-rail__txt { writing-mode: vertical-rl; font-variant-numeric: tabular-nums; }
.h-cue { position: absolute; left: 50%; bottom: 18px; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 8px; font: 600 11px/1 var(--f-t); letter-spacing: 0.24em; text-transform: uppercase; }
.h-cue i { width: 0; height: 0; border-left: 7px solid transparent; border-right: 7px solid transparent; border-top: 11px solid var(--tusz); animation: cue 1.6s var(--e-io) infinite; }
@keyframes cue { 50% { transform: translateY(6px); } }

/* ———————————————————— pas z tekstem ———————————————————— */
.tick { position: relative; z-index: 3; margin: -6vh 0 0; transform: rotate(-3deg); background: var(--g-cz); color: var(--papier); overflow: hidden; padding: 18px 0 14px; box-shadow: 0 0 0 6px var(--tusz); }
.tick--2 { margin: 0; transform: rotate(2deg); background: var(--g-bl); box-shadow: none; }
.tick__tr { display: flex; width: max-content; will-change: transform; }
.tick__tr span { display: flex; align-items: center; gap: 28px; padding-right: 28px; font: 900 clamp(26px, 3.4vw, 54px)/1 var(--f-d); font-stretch: 140%; text-transform: uppercase; white-space: nowrap; }
.tick__tr i { display: inline-block; width: 0.55em; height: 0.55em; background: var(--papier); }
.tick__tr i.t { background: none; width: 0; height: 0; border-left: 0.32em solid transparent; border-right: 0.32em solid transparent; border-bottom: 0.55em solid var(--zo-2); }

/* ———————————————————— sekcje: wspólne ———————————————————— */
.sek { position: relative; padding: clamp(80px, 12vw, 180px) var(--gut); }
.siatka { position: absolute; inset: 0; pointer-events: none; display: grid; grid-template-columns: repeat(12, 1fr); padding: 0 var(--gut); }
.siatka i { border-left: 1px solid color-mix(in srgb, currentColor 9%, transparent); }
.siatka i:last-child { border-right: 1px solid color-mix(in srgb, currentColor 9%, transparent); }

/* INWESTYCJE */
.inv__head { position: relative; display: grid; grid-template-columns: auto 1fr; gap: 0 clamp(20px, 3vw, 48px); align-items: end; margin-bottom: clamp(36px, 5vw, 70px); }
.inv__n { font: 900 clamp(150px, 30vw, 520px)/0.72 var(--f-d); font-stretch: 50%; letter-spacing: -0.05em; font-variant-numeric: tabular-nums; margin-left: -0.04em; display: flex; }
.inv__n .cyf { display: inline-block; overflow: hidden; height: 0.74em; }
.inv__n .cyf b { display: block; font-weight: inherit; }
.inv__t { padding-bottom: 0.4vw; }
.inv__t h2 { font: 900 clamp(40px, 6.4vw, 118px)/0.8 var(--f-d); font-stretch: 150%; text-transform: uppercase; letter-spacing: -0.03em; margin: 0 0 22px; }
.inv__t h2 span { display: block; font-stretch: 60%; color: var(--cz); }
.inv__t p { max-width: 52ch; }
.filtry { display: flex; flex-wrap: wrap; gap: 10px 28px; align-items: center; padding: 16px 0; border-top: 3px solid var(--tusz); border-bottom: 1px solid var(--tusz); margin-bottom: 34px; }
.filtry__g { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.filtry__g > span { margin-right: 6px; }
.chip { padding: 10px 14px 9px; font: 600 12px/1 var(--f-t); letter-spacing: 0.06em; text-transform: uppercase; box-shadow: inset 0 0 0 1.5px currentColor; transition: background 0.3s, color 0.3s; }
.chip:hover { background: color-mix(in srgb, var(--tusz) 10%, transparent); }
.chip.is-on { background: var(--tusz); color: var(--papier); box-shadow: none; }
.chip sup { font-size: 9px; margin-left: 3px; opacity: 0.7; }
.widok { margin-left: auto; display: flex; }
.widok button { padding: 10px 14px 9px; font: 700 12px/1 var(--f-t); letter-spacing: 0.08em; text-transform: uppercase; box-shadow: inset 0 0 0 1.5px var(--tusz); }
.widok button.is-on { background: var(--g-bl); color: var(--papier); box-shadow: none; }

.karty { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(18px, 2vw, 32px); }
.card { position: relative; display: flex; flex-direction: column; background: var(--papier); box-shadow: inset 0 0 0 2px var(--tusz); padding: 14px 14px 18px; min-height: 100%; transition: transform 0.5s var(--e-out), box-shadow 0.5s var(--e-out); }
.card:hover { transform: translate(-6px, -6px); box-shadow: inset 0 0 0 2px var(--tusz), 12px 12px 0 var(--tusz); }
.card.is-hidden { display: none; }
.card__img { position: relative; aspect-ratio: 4 / 5; overflow: hidden; background: var(--tusz); }
.card__img img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.15) brightness(0.92); transform: scale(1.04); transition: filter 0.8s var(--e-out), transform 1.2s var(--e-out); }
.card:hover .card__img img { filter: grayscale(0) contrast(1.05); transform: scale(1.1); }
.card__shape { position: absolute; z-index: 2; width: 30%; aspect-ratio: 1; right: -7%; top: 52%; transition: transform 0.9s var(--e-out); filter: drop-shadow(6px 6px 0 var(--tusz)); }
.card:hover .card__shape { transform: rotate(90deg) translate(-8%, 0); }
.card__no { position: absolute; z-index: 2; left: 26px; top: 22px; font: 900 64px/0.8 var(--f-d); font-stretch: 50%; color: var(--papier); mix-blend-mode: difference; }
.card__st { position: absolute; z-index: 2; left: 14px; top: calc(14px + (100% - 32px) * 0); }
.tag { display: inline-block; padding: 7px 10px 6px; font: 700 11px/1 var(--f-t); letter-spacing: 0.14em; text-transform: uppercase; background: var(--papier); color: var(--tusz); }
.tag--sprzedaz { background: var(--g-zo); }
.tag--przedsprzedaz { background: var(--g-bl); color: var(--papier); }
.tag--budowa { background: var(--papier); box-shadow: inset 0 0 0 1.5px var(--tusz); }
.tag--zrealizowana { background: var(--tusz); color: var(--papier); }
.card__tags { position: absolute; z-index: 3; right: 26px; top: 26px; }
.card__name { font: 900 clamp(36px, 3.6vw, 62px)/0.84 var(--f-d); font-stretch: 130%; text-transform: uppercase; letter-spacing: -0.02em; margin: 18px 0 8px; transition: font-stretch 0.6s var(--e-out); }
.card:hover .card__name { font-stretch: 150%; }
.card__loc { font: 600 12px/1.3 var(--f-t); letter-spacing: 0.12em; text-transform: uppercase; margin: 0 0 18px; display: flex; align-items: center; gap: 10px; }
.card__loc::before { content: ''; width: 22px; height: 3px; background: var(--cz); }
.card__dane { margin: auto 0 0; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 2px solid var(--tusz); }
.card__dane div { padding: 10px 8px 0 0; }
.card__dane dt { font: 600 11px/1.2 var(--f-t); letter-spacing: 0.14em; text-transform: uppercase; color: var(--szary); margin-bottom: 4px; }
.card__dane dd { margin: 0; font: 800 22px/1 var(--f-d); font-stretch: 70%; }

.mapa { display: none; grid-template-columns: 1.3fr 1fr; gap: clamp(20px, 3vw, 48px); align-items: center; }
.inv.is-mapa .karty { display: none; }
.inv.is-mapa .mapa { display: grid; }
.mapa svg { width: 100%; height: auto; overflow: visible; }
.mapa .px { fill: var(--tusz); opacity: 0.16; }
.mapa .mk { cursor: pointer; }
.mapa .mk text { font: 800 15px/1 var(--f-d); font-stretch: 120%; text-transform: uppercase; fill: var(--tusz); }
.mapa .mk .mk__f { transition: transform 0.5s var(--e-out); transform-box: fill-box; transform-origin: center; }
.mapa .mk:hover .mk__f, .mapa .mk.is-on .mk__f { transform: scale(1.5) rotate(45deg); }
.mapa .mk.is-off { opacity: 0.18; pointer-events: none; }
.mapa__info { min-height: 420px; position: relative; }
.mapa__info .card { min-height: 0; }

/* SZUKAJ */
.szukaj { background: var(--g-bl); color: var(--papier); overflow: hidden; }
.szukaj__g { position: relative; display: grid; grid-template-columns: 5fr 7fr; gap: clamp(28px, 5vw, 90px); }
.szukaj h2 { font: 900 clamp(48px, 7vw, 132px)/0.78 var(--f-d); font-stretch: 55%; text-transform: uppercase; letter-spacing: -0.02em; margin: 0 0 28px; }
.szukaj h2 b { display: block; font-stretch: 112%; font-size: clamp(30px, 4.3vw, 82px); color: var(--zo-2); }
.typy__head > *, .szukaj__g > *, .kont__g > *, .prac > *, .lok__g > *, .inv__head > *, .intro > *, .std > *, .lokal > * { min-width: 0; }
.pole { margin-bottom: 26px; }
.pole > .lbl { display: flex; justify-content: space-between; margin-bottom: 12px; }
.pole > .lbl output { font: 800 18px/1 var(--f-d); font-stretch: 80%; letter-spacing: 0; }
.szukaj .chip { box-shadow: inset 0 0 0 1.5px var(--papier); }
.szukaj .chip.is-on { background: var(--papier); color: var(--bl); }
.zakres { -webkit-appearance: none; appearance: none; width: 100%; height: 30px; background: transparent; cursor: pointer; }
.zakres::-webkit-slider-runnable-track { height: 4px; background: linear-gradient(90deg, var(--zo-2) var(--v, 50%), rgba(255, 255, 255, 0.25) var(--v, 50%)); }
.zakres::-webkit-slider-thumb { -webkit-appearance: none; width: 22px; height: 22px; margin-top: -9px; background: var(--zo-2); clip-path: polygon(50% 0, 100% 100%, 0 100%); }
.zakres::-moz-range-track { height: 4px; background: rgba(255, 255, 255, 0.25); }
.zakres::-moz-range-progress { height: 4px; background: var(--zo-2); }
.zakres::-moz-range-thumb { width: 22px; height: 22px; border: 0; background: var(--zo-2); clip-path: polygon(50% 0, 100% 100%, 0 100%); }
.wynik__n { display: flex; align-items: flex-end; gap: 18px; margin-bottom: 18px; border-bottom: 3px solid var(--papier); padding-bottom: 14px; }
.wynik__n .num { font-size: clamp(90px, 13vw, 220px); line-height: 0.74; font-stretch: 50%; }
.wynik__n p { margin: 0 0 6px; font: 700 14px/1.3 var(--f-t); letter-spacing: 0.1em; text-transform: uppercase; }
.wynik__lista { list-style: none; margin: 0; padding: 0; }
.wynik__lista li a { display: grid; grid-template-columns: 74px 1.4fr 0.6fr 0.8fr 1fr 22px; gap: 12px; align-items: center; padding: 13px 4px; border-bottom: 1px solid rgba(255, 255, 255, 0.25); font-variant-numeric: tabular-nums; transition: background 0.3s; }
.wynik__lista li a > * { transition: transform 0.4s var(--e-out); }
.wynik__lista li a:hover { background: rgba(255, 255, 255, 0.08); }
.wynik__lista li a:hover > * { transform: translateX(10px); }
.wynik__lista .nr { font: 800 17px/1 var(--f-d); font-stretch: 70%; }
.wynik__lista .inw { font: 800 17px/1 var(--f-d); font-stretch: 120%; text-transform: uppercase; }
.wynik__lista .inw small { display: block; font: 500 11px/1.4 var(--f-t); letter-spacing: 0.08em; text-transform: none; opacity: 0.75; }
.wynik__lista .cena { text-align: right; font-weight: 700; }
.wynik__lista svg { width: 18px; }
.wynik__pusto { padding: 26px 0; font-size: 18px; }

/* MANIFEST (poziomo) */
.man { position: relative; background: var(--tusz); color: var(--papier); overflow: hidden; }
.man__pin { height: 100vh; height: 100svh; display: flex; align-items: stretch; }
.man__tr { display: flex; height: 100%; will-change: transform; }
.pan { position: relative; flex: 0 0 100vw; height: 100%; display: grid; grid-template-columns: 1fr 1.1fr; grid-template-rows: auto 1fr; gap: 2vh 4vw; align-items: end; padding: calc(var(--hdr) + 5vh) var(--gut) 9vh; overflow: hidden; }
.pan__no { position: absolute; left: var(--gut); top: calc(var(--hdr) + 2vh); font: 900 16px/1 var(--f-d); font-stretch: 140%; letter-spacing: 0.1em; }
.pan__w { grid-column: 1 / -1; align-self: start; white-space: nowrap; font: 900 clamp(76px, 13.5vw, 250px)/0.76 var(--f-d); font-stretch: 100%; text-transform: uppercase; letter-spacing: -0.04em; margin: 0; }
.pan__l { align-self: end; }
.pan__w .ch { display: inline-block; }
.pan__txt { max-width: 46ch; font-size: clamp(16px, 1.25vw, 20px); color: color-mix(in srgb, var(--papier) 82%, transparent); }
.pan__txt b { color: var(--papier); }
.pan__fig { position: relative; height: min(52vh, 38vw); align-self: end; }
.pan__fig svg { width: 100%; height: 100%; overflow: visible; }
.pan__fig img { width: 100%; height: 100%; object-fit: cover; }
.pan__fig .ramka { position: absolute; inset: 0; }
.pan--cz .pan__w { color: var(--cz-2); }
.pan--zo .pan__w { color: var(--zo-2); }
.pan--bl .pan__w { color: var(--bl-2); }
.man__pasek { position: absolute; left: var(--gut); right: var(--gut); bottom: 4vh; height: 3px; background: rgba(255, 255, 255, 0.15); z-index: 2; }
.man__pasek i { position: absolute; inset: 0; background: var(--g-zo); transform-origin: left; transform: scaleX(0); }

/* PRACOWNIA (chiaroscuro) */
.prac { background: var(--noc); color: var(--swiatlo); display: grid; grid-template-columns: 1fr 1fr; gap: clamp(30px, 5vw, 90px); align-items: center; overflow: hidden; }
.prac__img { position: relative; aspect-ratio: 4 / 5; overflow: hidden; }
.prac__img img { position: absolute; inset: -8% 0; width: 100%; height: 116%; object-fit: cover; }
.prac__img::after { content: ''; position: absolute; inset: 0; box-shadow: inset 0 0 0 1px rgba(241, 228, 200, 0.12); }
.cytat { font: 300 clamp(26px, 2.7vw, 46px)/1.12 var(--f-t); letter-spacing: -0.015em; margin: 0 0 34px; }
.cytat em { font-style: normal; font-weight: 600; color: var(--bursztyn); }
.cytat__kto { display: flex; gap: 14px; align-items: center; margin-bottom: 56px; }
.cytat__kto::before { content: ''; width: 40px; height: 2px; background: var(--bursztyn); }
.liczby { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid rgba(241, 228, 200, 0.2); }
.liczby div { padding: 22px 18px 22px 0; border-bottom: 1px solid rgba(241, 228, 200, 0.2); }
.liczby .num { display: block; font-size: clamp(56px, 6vw, 108px); line-height: 0.8; font-stretch: 50%; color: var(--swiatlo); }
.liczby .num sup { font-size: 0.36em; vertical-align: top; margin-left: 4px; color: var(--bursztyn); }
.liczby span.lbl { color: color-mix(in srgb, var(--swiatlo) 65%, transparent); }

/* ARCHIWUM */
.arch h2 { font: 900 clamp(56px, 10vw, 190px)/0.78 var(--f-d); font-stretch: 150%; text-transform: uppercase; letter-spacing: -0.03em; margin: 0 0 40px; }
.arch h2 span { font-stretch: 50%; color: var(--bl); }
.arch__l { list-style: none; margin: 0; padding: 0; border-top: 3px solid var(--tusz); }
.arch__l li { position: relative; display: grid; grid-template-columns: 100px 1fr 200px 120px; gap: 16px; align-items: baseline; padding: 20px 4px 16px; border-bottom: 1px solid var(--tusz); overflow: hidden; }
.arch__l li::before { content: ''; position: absolute; inset: 0; z-index: -1; background: var(--g-zo); transform: scaleY(0); transform-origin: bottom; transition: transform 0.45s var(--e-out); }
.arch__l li:hover::before { transform: none; }
.arch__l .rok { font: 800 22px/1 var(--f-d); font-stretch: 60%; }
.arch__l .n { font: 900 clamp(30px, 3.4vw, 58px)/0.9 var(--f-d); font-stretch: 120%; text-transform: uppercase; transition: font-stretch 0.5s var(--e-out), transform 0.5s var(--e-out); }
.arch__l li:hover .n { font-stretch: 150%; transform: translateX(14px); }
.arch__l .m { font: 600 12px/1 var(--f-t); letter-spacing: 0.14em; text-transform: uppercase; }
.arch__l .l { text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; }
.podglad { position: fixed; left: 0; top: 0; z-index: 60; width: 260px; aspect-ratio: 4 / 5; pointer-events: none; overflow: hidden; opacity: 0; box-shadow: 10px 10px 0 var(--tusz); }
.podglad img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

/* KONTAKT */
.kont { background: var(--g-zo); overflow: hidden; }
.kont__g { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(30px, 5vw, 90px); }
.kont h2 { font: 900 clamp(56px, 9vw, 170px)/0.76 var(--f-d); font-stretch: 52%; text-transform: uppercase; letter-spacing: -0.02em; margin: 0 0 30px; }
.kont h2 b { display: block; font-stretch: 105%; font-size: clamp(34px, 5.4vw, 102px); }
.kont__dane { display: grid; gap: 22px; align-content: start; }
.kont__dane a { font: 800 clamp(24px, 2.4vw, 38px)/1 var(--f-d); font-stretch: 110%; }
.form { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; background: var(--papier); padding: clamp(20px, 2.4vw, 36px); box-shadow: 14px 14px 0 var(--tusz); }
.form .full { grid-column: 1 / -1; }
.fld { position: relative; padding-top: 18px; margin-bottom: 18px; }
.fld input, .fld select, .fld textarea { width: 100%; border: 0; border-bottom: 2px solid var(--tusz); background: transparent; padding: 10px 0 8px; font-size: 17px; outline: none; transition: border-color 0.3s; }
.fld textarea { min-height: 86px; resize: vertical; }
.fld label { position: absolute; left: 0; top: 28px; font-size: 15px; color: var(--szary); pointer-events: none; transition: 0.35s var(--e-out); }
.fld input:focus, .fld textarea:focus, .fld select:focus { border-color: var(--cz); }
.fld input:focus + label, .fld input:not(:placeholder-shown) + label, .fld textarea:focus + label, .fld textarea:not(:placeholder-shown) + label, .fld select + label { top: 0; font: 700 11px/1 var(--f-t); letter-spacing: 0.14em; text-transform: uppercase; color: var(--tusz); }
.fld .err { display: none; font-size: 12px; color: var(--cz); margin-top: 6px; }
.fld.is-err .err { display: block; }
.fld.is-err input { border-color: var(--cz); }
.zgoda { display: flex; gap: 12px; align-items: flex-start; font-size: 12px; line-height: 1.45; margin: 4px 0 20px; cursor: pointer; }
.zgoda input { -webkit-appearance: none; appearance: none; flex: 0 0 20px; width: 20px; height: 20px; margin: 0; box-shadow: inset 0 0 0 2px var(--tusz); cursor: pointer; }
.zgoda input:checked { background: var(--tusz); box-shadow: inset 0 0 0 2px var(--tusz), inset 0 0 0 5px var(--papier); }
.form__ok { display: none; grid-column: 1 / -1; padding: 30px 0; }
.form__ok b { display: block; font: 900 40px/0.9 var(--f-d); font-stretch: 130%; text-transform: uppercase; margin-bottom: 12px; }
.form.is-sent > :not(.form__ok) { display: none; }
.form.is-sent .form__ok { display: block; }

/* STOPKA (fizyka) */
.stopka { position: relative; background: var(--tusz); color: var(--papier); overflow: hidden; }
.plac { position: relative; height: 78vh; min-height: 480px; border-bottom: 1px solid rgba(239, 232, 216, 0.15); }
.plac canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.plac__hint { position: absolute; left: var(--gut); top: 36px; display: flex; gap: 12px; align-items: center; color: color-mix(in srgb, var(--papier) 60%, transparent); }
.plac__hint button { color: var(--papier); box-shadow: inset 0 0 0 1.5px currentColor; padding: 8px 12px 7px; font: 700 11px/1 var(--f-t); letter-spacing: 0.12em; text-transform: uppercase; }
.plac__fallback { position: absolute; inset: auto var(--gut) 20px; font: 900 22vw/0.75 var(--f-d); font-stretch: 150%; text-transform: uppercase; }
.plac.is-live .plac__fallback { display: none; }
.stopka__d { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 30px; padding: 44px var(--gut) 30px; }
.stopka__d h3 { margin: 0 0 14px; }
.stopka__d ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.stopka__d a:hover { color: var(--zo-2); }
.stopka__low { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; padding: 18px var(--gut) 26px; border-top: 1px solid rgba(239, 232, 216, 0.15); font-size: 12px; color: color-mix(in srgb, var(--papier) 55%, transparent); }

/* ———————————————————— PODSTRONA INWESTYCJI (chiaroscuro) ———————————————————— */
.is-dark .hdr::before { background: color-mix(in srgb, var(--noc) 78%, transparent); }
.ph { position: relative; height: 100vh; height: 100svh; min-height: 620px; overflow: hidden; background: var(--noc); }
.ph canvas, .ph > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ph canvas { opacity: 0; transition: opacity 1.4s; }
.ph canvas.is-ready { opacity: 1; }
.ph > img { filter: brightness(0.45) contrast(1.15); }
.ph__t { position: absolute; left: var(--gut); bottom: calc(var(--gut) + 6px); right: 34vw; pointer-events: none; }
.ph__t .sl { white-space: nowrap; }
.ph__t h1 { font: 900 clamp(64px, 11.5vw, 230px)/0.8 var(--f-d); font-stretch: 130%; text-transform: uppercase; letter-spacing: -0.04em; margin: 0; color: var(--swiatlo); }
.ph__t h1 .ch { display: inline-block; }
.ph__crumb { position: absolute; left: var(--gut); top: calc(var(--hdr) + 18px); display: flex; gap: 12px; align-items: center; }
.ph__crumb a { opacity: 0.6; } .ph__crumb a:hover { opacity: 1; }
.ph__fakty { position: absolute; right: var(--gut); bottom: calc(var(--gut) + 6px); width: min(31vw, 380px); display: grid; grid-template-columns: 1fr 1fr; border-top: 2px solid var(--swiatlo); }
.ph__fakty div { padding: 14px 10px 0 0; }
.ph__fakty dt { color: color-mix(in srgb, var(--swiatlo) 55%, transparent); margin-bottom: 6px; }
.ph__fakty dd { margin: 0; font: 800 clamp(22px, 2vw, 32px)/1 var(--f-d); font-stretch: 75%; }
.ph__hint { position: absolute; right: var(--gut); top: calc(var(--hdr) + 18px); display: flex; align-items: center; gap: 12px; color: color-mix(in srgb, var(--swiatlo) 70%, transparent); }
.ph__hint i { width: 22px; height: 16px; box-shadow: inset 0 0 0 2px var(--bursztyn); background: linear-gradient(90deg, transparent 47%, var(--bursztyn) 47% 53%, transparent 53%), linear-gradient(0deg, transparent 44%, var(--bursztyn) 44% 56%, transparent 56%); }

.intro { display: grid; grid-template-columns: repeat(12, 1fr); gap: 0 var(--gut); }
.intro__h { grid-column: 1 / 8; font: 300 clamp(34px, 4.2vw, 76px)/1.02 var(--f-t); letter-spacing: -0.03em; margin: 0 0 40px; }
.intro__h b { font-weight: 600; color: var(--bursztyn); }
.intro__p { grid-column: 8 / 13; font-size: clamp(16px, 1.2vw, 19px); color: color-mix(in srgb, var(--swiatlo) 78%, transparent); }
.intro__dane { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(5, 1fr); border-top: 1px solid rgba(241, 228, 200, 0.22); margin-top: 40px; }
.intro__dane div { padding: 20px 14px 0 0; }
.intro__dane dt { color: color-mix(in srgb, var(--swiatlo) 55%, transparent); margin-bottom: 8px; }
.intro__dane dd { margin: 0; font: 800 clamp(26px, 2.6vw, 44px)/1 var(--f-d); font-stretch: 65%; }

.slonce { position: relative; height: 380vh; }
.slonce__st { position: sticky; top: 0; height: 100vh; height: 100svh; overflow: hidden; }
.slonce__st canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.slonce__st::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(100deg, rgba(11, 10, 9, 0.86) 0%, rgba(11, 10, 9, 0.55) 30%, rgba(11, 10, 9, 0) 55%), linear-gradient(0deg, rgba(11, 10, 9, 0.7) 0%, rgba(11, 10, 9, 0) 34%); }
.slonce__ui { z-index: 2; }
.slonce__ui { position: absolute; inset: 0; pointer-events: none; display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto 1fr auto; padding: calc(var(--hdr) + 16px) var(--gut) var(--gut); }
.slonce__ui > * { pointer-events: auto; }
.slonce__h { grid-column: 1; max-width: 36ch; }
.slonce__h h2 { font: 900 clamp(34px, 3.6vw, 64px)/0.84 var(--f-d); font-stretch: 118%; text-transform: uppercase; margin: 0 0 14px; letter-spacing: -0.02em; }
.slonce__h p { color: color-mix(in srgb, var(--swiatlo) 78%, transparent); }
.godz { grid-column: 1; grid-row: 3; align-self: end; display: flex; align-items: flex-end; gap: 26px; }
.godz__n { font: 900 clamp(110px, 17vw, 300px)/0.74 var(--f-d); font-stretch: 50%; font-variant-numeric: tabular-nums; letter-spacing: -0.04em; color: var(--swiatlo); }
.godz__d { padding-bottom: 8px; display: grid; gap: 6px; }
.godz__d b { font: 800 22px/1 var(--f-d); font-stretch: 80%; }
.kompas { grid-column: 2; grid-row: 1; width: 130px; height: 130px; position: relative; box-shadow: inset 0 0 0 2px rgba(241, 228, 200, 0.5); }
.kompas span { position: absolute; font: 700 11px/1 var(--f-t); letter-spacing: 0.1em; }
.kompas .n { left: 50%; top: 6px; transform: translateX(-50%); } .kompas .s { left: 50%; bottom: 6px; transform: translateX(-50%); }
.kompas .w { left: 6px; top: 50%; transform: translateY(-50%); } .kompas .e { right: 6px; top: 50%; transform: translateY(-50%); }
.kompas i { position: absolute; left: 50%; top: 50%; width: 0; height: 0; border-left: 9px solid transparent; border-right: 9px solid transparent; border-bottom: 52px solid var(--bursztyn); transform-origin: 50% 100%; transform: translate(-50%, -100%) rotate(0deg); }
.kompas em { position: absolute; left: 50%; top: 50%; width: 10px; height: 10px; background: var(--swiatlo); transform: translate(-50%, -50%); }
.suwak { grid-column: 1 / -1; grid-row: 3; justify-self: end; align-self: end; width: min(420px, 40vw); }
.suwak .zakres::-webkit-slider-runnable-track { background: linear-gradient(90deg, var(--bursztyn) var(--v, 0%), rgba(241, 228, 200, 0.22) var(--v, 0%)); }
.suwak .zakres::-webkit-slider-thumb { background: var(--bursztyn); }
.suwak__sk { display: flex; justify-content: space-between; font: 600 11px/1 var(--f-t); letter-spacing: 0.12em; opacity: 0.6; margin-top: 4px; }

.gal { position: relative; overflow: hidden; }
.gal__pin { height: 100vh; height: 100svh; display: flex; align-items: center; }
.gal__tr { display: flex; gap: 3vw; padding: 0 var(--gut); will-change: transform; align-items: center; }
.gal__h { flex: 0 0 auto; width: min(34vw, 520px); }
.gal__h h2 { font: 900 clamp(60px, 9vw, 170px)/0.76 var(--f-d); font-stretch: 52%; text-transform: uppercase; margin: 0 0 20px; }
.gal__h h2 b { display: block; font-stretch: 145%; color: var(--bursztyn); }
.fot { position: relative; flex: 0 0 auto; height: 72vh; aspect-ratio: 1; overflow: hidden; background: #000; cursor: none; }
.fot:nth-child(odd) { height: 62vh; align-self: flex-end; }
.fot img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.fot .ciem { filter: brightness(0.32) contrast(1.25) saturate(0.7); }
.fot .jas { filter: brightness(1.18) contrast(1.05) sepia(0.12); clip-path: polygon(var(--x1) var(--y1), var(--x2) var(--y1), var(--x3) var(--y2), var(--x4) var(--y2)); --x1: 30%; --x2: 62%; --x3: 50%; --x4: 18%; --y1: 18%; --y2: 82%; }
.fot figcaption { position: absolute; left: 16px; bottom: 14px; z-index: 2; color: var(--swiatlo); }
.fot figcaption b { display: block; font: 900 26px/1 var(--f-d); font-stretch: 120%; text-transform: uppercase; }

/* lokale */
.lok h2 { font: 900 clamp(56px, 9vw, 170px)/0.78 var(--f-d); font-stretch: 150%; text-transform: uppercase; margin: 0 0 34px; letter-spacing: -0.03em; }
.lok h2 span { font-stretch: 52%; color: var(--bursztyn); }
.lok__g { display: grid; grid-template-columns: minmax(280px, 0.8fr) 2fr; gap: clamp(20px, 3vw, 50px); align-items: start; }
.elew { position: sticky; top: calc(var(--hdr) + 20px); }
.elew svg { width: 100%; height: auto; }
.elew .u { cursor: pointer; transition: fill 0.25s; }
.elew .u.wolne { fill: rgba(241, 228, 200, 0.92); }
.elew .u.rezerwacja { fill: var(--bursztyn); }
.elew .u.sprzedane { fill: rgba(241, 228, 200, 0.12); }
.elew .u.is-off { opacity: 0.15; }
.elew .u.is-hl { fill: var(--cz-2) !important; }
.legenda { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 14px; font-size: 12px; }
.legenda span { display: flex; align-items: center; gap: 6px; }
.legenda i { width: 12px; height: 12px; }
.dark-filtry { display: flex; flex-wrap: wrap; gap: 10px 24px; align-items: center; padding: 14px 0; border-top: 2px solid var(--swiatlo); border-bottom: 1px solid rgba(241, 228, 200, 0.25); margin-bottom: 8px; }
.is-dark .chip { box-shadow: inset 0 0 0 1.5px rgba(241, 228, 200, 0.55); }
.is-dark .chip:hover { background: rgba(241, 228, 200, 0.08); }
.is-dark .chip.is-on { background: var(--swiatlo); color: var(--noc); }
.tab { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.tab th { text-align: left; padding: 14px 8px 10px 0; font: 600 11px/1.2 var(--f-t); letter-spacing: 0.14em; text-transform: uppercase; color: color-mix(in srgb, var(--swiatlo) 55%, transparent); cursor: pointer; white-space: nowrap; user-select: none; }
.tab th[data-s]::after { content: ''; display: inline-block; margin-left: 6px; border-left: 4px solid transparent; border-right: 4px solid transparent; border-top: 6px solid currentColor; opacity: 0.3; }
.tab th.asc::after { opacity: 1; transform: rotate(180deg); } .tab th.desc::after { opacity: 1; }
.tab td { padding: 13px 8px 12px 0; border-top: 1px solid rgba(241, 228, 200, 0.14); }
.tab tbody tr { cursor: pointer; transition: background 0.25s; }
.tab tbody tr:hover, .tab tbody tr.is-hl { background: rgba(231, 162, 74, 0.1); }
.tab td.nr { font: 800 17px/1 var(--f-d); font-stretch: 70%; }
.tab td.c { text-align: right; font-weight: 600; white-space: nowrap; }
.tab th.c { text-align: right; }
.tab .st { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; }
.tab .st i { width: 9px; height: 9px; background: currentColor; }
.tab .st.wolne i { background: var(--swiatlo); } .tab .st.rezerwacja i { background: var(--bursztyn); } .tab .st.sprzedane { opacity: 0.45; }
.ulub { width: 26px; height: 26px; display: grid; place-items: center; }
.ulub i { width: 12px; height: 12px; box-shadow: inset 0 0 0 1.5px currentColor; transition: 0.3s var(--e-out); }
.ulub.is-on i { background: var(--cz-2); box-shadow: none; transform: rotate(45deg); }
.tab__wiecej { margin-top: 18px; }

.szuf { position: fixed; top: 0; right: 0; bottom: 0; z-index: 120; width: min(560px, 100vw); background: var(--swiatlo); color: var(--noc); transform: translateX(102%); transition: transform 0.7s var(--e-io); overflow-y: auto; padding: 26px clamp(20px, 2.4vw, 36px) 40px; }
.szuf.is-open { transform: none; }
.szuf__tlo { position: fixed; inset: 0; z-index: 110; background: rgba(11, 10, 9, 0.6); opacity: 0; pointer-events: none; transition: opacity 0.5s; }
.szuf__tlo.is-open { opacity: 1; pointer-events: auto; }
.szuf__x { position: absolute; right: 18px; top: 18px; width: 44px; height: 44px; }
.szuf__x::before, .szuf__x::after { content: ''; position: absolute; left: 10px; right: 10px; top: 21px; height: 3px; background: var(--noc); transform: rotate(45deg); }
.szuf__x::after { transform: rotate(-45deg); }
.szuf h3 { font: 900 64px/0.8 var(--f-d); font-stretch: 60%; margin: 18px 0 6px; }
.szuf .rzut { margin: 22px 0; background: var(--papier); padding: 14px; }
.szuf .rzut svg { width: 100%; height: auto; overflow: visible; }
.szuf__dane { display: grid; grid-template-columns: 1fr 1fr 1fr; border-top: 2px solid var(--noc); margin-bottom: 22px; }
.szuf__dane div { padding: 12px 8px 0 0; }
.szuf__dane dd { margin: 4px 0 0; font: 800 24px/1 var(--f-d); font-stretch: 70%; }
.hist { margin: 8px 0 26px; }
.hist svg { width: 100%; height: 90px; overflow: visible; }
.hist table { width: 100%; font-size: 13px; border-collapse: collapse; margin-top: 10px; font-variant-numeric: tabular-nums; }
.hist td { padding: 6px 0; border-top: 1px solid rgba(11, 10, 9, 0.15); }
.hist td:last-child { text-align: right; }

.lokal { display: grid; grid-template-columns: 1.2fr 1fr; gap: clamp(24px, 4vw, 70px); align-items: center; }
.lokal svg { width: 100%; height: auto; }
.lokal h2 { font: 900 clamp(50px, 7vw, 130px)/0.78 var(--f-d); font-stretch: 140%; text-transform: uppercase; margin: 0 0 24px; }
.lokal ul { list-style: none; padding: 0; margin: 0; border-top: 1px solid rgba(241, 228, 200, 0.22); }
.lokal li { display: grid; grid-template-columns: 34px 1fr auto; gap: 12px; align-items: center; padding: 13px 0; border-bottom: 1px solid rgba(241, 228, 200, 0.22); cursor: default; }
.lokal li > * { transition: transform 0.35s var(--e-out); }
.lokal li:hover > * { transform: translateX(10px); }
.lokal li i { width: 18px; height: 18px; }
.lokal li b { font: 800 18px/1 var(--f-d); font-stretch: 70%; }
.mapka .ul { stroke: rgba(241, 228, 200, 0.25); }
.mapka .ul--g { stroke: rgba(241, 228, 200, 0.55); }
.mapka .poi { transition: opacity 0.3s; }
.mapka .poi.is-dim { transition-delay: 0s; }
.mapka .poi.is-dim { opacity: 0.12; }
.mapka text { font: 700 11px/1 var(--f-t); letter-spacing: 0.08em; fill: var(--swiatlo); text-transform: uppercase; }

.std { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 4vw, 70px); align-items: center; }
.std__img { position: relative; aspect-ratio: 1; overflow: hidden; }
.std__img img { width: 100%; height: 100%; object-fit: cover; }
.std h2 { font: 900 clamp(50px, 7vw, 130px)/0.78 var(--f-d); font-stretch: 52%; text-transform: uppercase; margin: 0 0 26px; }
.std dl { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; margin: 0; }
.std dl div { padding: 16px 0; border-top: 1px solid rgba(241, 228, 200, 0.22); }
.std dt { color: color-mix(in srgb, var(--swiatlo) 55%, transparent); margin-bottom: 6px; }
.std dd { margin: 0; font-weight: 500; }

.harm h2 { font: 900 clamp(50px, 7vw, 130px)/0.78 var(--f-d); font-stretch: 145%; text-transform: uppercase; margin: 0; }
.harm__top { display: flex; justify-content: space-between; align-items: flex-end; gap: 30px; flex-wrap: wrap; margin-bottom: 60px; }
.harm__pct { margin: 0; text-align: right; }
.harm__pct .num { display: block; font-size: clamp(110px, 16vw, 300px); line-height: 0.74; font-stretch: 50%; color: var(--bursztyn); }
.harm__pct .num sup { font-size: 0.3em; vertical-align: top; }
.os { position: relative; display: grid; grid-template-columns: repeat(5, 1fr); border-top: 2px solid rgba(241, 228, 200, 0.3); }
.os__p { position: absolute; left: 0; top: -2px; height: 2px; width: 100%; background: var(--g-zo); transform-origin: left; }
.os__m { position: absolute; top: -13px; width: 0; height: 0; border-left: 10px solid transparent; border-right: 10px solid transparent; border-top: 14px solid var(--bursztyn); transform: translateX(-50%); }
.os div { padding: 22px 16px 0 0; }
.os div b { display: block; font: 800 20px/1.05 var(--f-d); font-stretch: 100%; text-transform: uppercase; margin-bottom: 6px; }
.os div.is-done b::before { content: ''; display: inline-block; width: 10px; height: 10px; margin-right: 8px; background: var(--bursztyn); }
.os div small { color: color-mix(in srgb, var(--swiatlo) 60%, transparent); }

.dalej { display: block; position: relative; padding: clamp(60px, 9vw, 140px) var(--gut); overflow: hidden; border-top: 1px solid rgba(241, 228, 200, 0.18); }
.dalej img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: brightness(0.35) grayscale(0.3); transform: scale(1.08); transition: transform 1.4s var(--e-out), filter 1s; }
.dalej:hover img { transform: scale(1); filter: brightness(0.6); }
.dalej span { position: relative; display: block; }
.dalej b { position: relative; display: block; font: 900 clamp(70px, 15vw, 290px)/0.76 var(--f-d); font-stretch: 130%; text-transform: uppercase; letter-spacing: -0.04em; color: var(--swiatlo); transition: font-stretch 0.8s var(--e-out); }
.dalej:hover b { font-stretch: 150%; }

.is-dark .kont { background: var(--noc); color: var(--swiatlo); }
.is-dark .form { background: var(--swiatlo); color: var(--noc); box-shadow: 14px 14px 0 var(--bursztyn); }

/* odsłanianie przy przewijaniu */
.rv { opacity: 0; transform: translateY(40px); }
.no-js .rv, .rm .rv { opacity: 1; transform: none; }
.mask { overflow: hidden; display: block; }

/* ———————————————————— responsywność ———————————————————— */
@media (max-width: 1100px) {
  .karty { grid-template-columns: 1fr 1fr; }
  .nav, .hdr__tel { display: none; }
  .menu-btn { display: block; margin-left: auto; }
  .hdr > .btn { display: none; }
  .menu-open .nav { display: flex; position: fixed; inset: var(--hdr) 0 auto 0; flex-direction: column; gap: 0; background: var(--papier); color: var(--tusz); padding: 10px var(--gut) 26px; box-shadow: 0 8px 0 var(--tusz); }
  .menu-open .nav a { font: 900 34px/1 var(--f-d); font-stretch: 130%; padding: 12px 0; }
  .is-dark.menu-open .nav { background: var(--noc); color: var(--swiatlo); }
  .mapa { grid-template-columns: 1fr; }
  .lok__g { grid-template-columns: 1fr; }
  .elew { position: relative; top: 0; max-width: 520px; }
}
@media (max-width: 760px) {
  :root { --hdr: 60px; }
  .hw--a { top: calc(var(--hdr) + 4px); font-size: 33vw; }
  .hw--b { font-size: 33vw; bottom: auto; top: calc(var(--hdr) + 33vw); }
  .h-intro { left: var(--gut); right: var(--gut); width: auto; bottom: 60px; padding: 18px; }
  .h-meta, .h-rail, .h-pion { display: none; }
  .hl--1 { top: 14vh; font-size: 15vw; }
  .hl--2 { top: 36vh; font-size: 17vw; }
  .hl--3 { left: var(--gut); font-size: 28vw; bottom: 10vh; }
  .h-fin { left: var(--gut); right: var(--gut); width: auto; padding: 20px; }
  .h-fin .num { font-size: 40px; }
  .inv__head { grid-template-columns: 1fr; }
  .karty { grid-template-columns: 1fr; }
  .widok { margin-left: 0; }
  .szukaj__g, .prac, .kont__g, .intro, .std, .lokal { grid-template-columns: 1fr; }
  .intro__h, .intro__p { grid-column: 1 / -1; }
  .intro__dane { grid-template-columns: 1fr 1fr; }
  .wynik__lista li a { grid-template-columns: 62px 1fr auto; }
  .wynik__lista li a .pok, .wynik__lista li a .met, .wynik__lista li a svg { display: none; }
  .man__pin { height: auto; }
  .man__tr { flex-direction: column; }
  .pan { flex: none; min-height: 0; grid-template-columns: 1fr; grid-template-rows: auto; padding: 90px var(--gut) 60px; }
  .pan__w { font-size: 19vw; }
  .pan__no { position: static; margin-bottom: 14px; }
  .inv__t h2 { font-size: 11vw; }
  .pan__fig { height: 46vh; }
  .man__pasek { display: none; }
  .arch__l li { grid-template-columns: 58px 1fr auto; }
  .arch__l .m { display: none; }
  .podglad { display: none; }
  .form { grid-template-columns: 1fr; }
  .stopka__d { grid-template-columns: 1fr 1fr; }
  .stopka__d > div:first-child { grid-column: 1 / -1; }
  .ph__t { right: var(--gut); bottom: 200px; }
  .ph__fakty { left: var(--gut); right: var(--gut); width: auto; }
  .ph__hint { display: none; }
  .gal__pin { height: auto; padding: 60px 0; }
  .gal__tr { flex-direction: column; gap: 24px; }
  .gal__h { width: auto; }
  .fot, .fot:nth-child(odd) { height: auto; width: 100%; align-self: auto; }
  .slonce__ui { grid-template-columns: 1fr; }
  .kompas { display: none; }
  .suwak { width: 100%; grid-row: 4; }
  .godz { grid-row: 3; }
  .tab .hide-m { display: none; }
  .os { grid-template-columns: 1fr; border-top: 0; border-left: 2px solid rgba(241, 228, 200, 0.3); padding-left: 18px; }
  .os__p, .os__m { display: none; }
}

/* ———————————————————— v2: pierwszy ekran wprost (budynek na pierwszym planie, oferta, przykładowy lokal) ———————————————————— */
.hero { height: 420vh; }
.hv-slowo { position: absolute; z-index: 1; left: var(--gut); right: var(--gut); top: calc(var(--hdr) + 1.5vh); font: 900 15.5vw/0.76 var(--f-d); font-stretch: 112%; letter-spacing: -0.035em; text-transform: uppercase; color: var(--tusz); white-space: nowrap; will-change: transform; }
.hv-slowo .ch { display: inline-block; }
.hv-bud { position: absolute; z-index: 2; right: -3vw; bottom: 5vh; width: min(64vw, 128vh); height: auto; filter: drop-shadow(18px 18px 0 rgba(18, 17, 16, 0.92)); will-change: transform; pointer-events: none; }
.hv-oferta { position: absolute; z-index: 3; left: var(--gut); bottom: var(--gut); width: min(540px, 40vw); background: var(--tusz); color: #fff; padding: 26px 26px 22px; box-shadow: 10px 10px 0 var(--cz); }
.hv-kto { color: var(--zo-2); margin: 0 0 12px; }
.hv-h { font: 900 clamp(30px, 2.9vw, 50px)/0.92 var(--f-d); font-stretch: 112%; text-transform: uppercase; letter-spacing: -0.015em; margin: 0 0 18px; }
.hv-fakty { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0 0 18px; border-top: 2px solid #fff; }
.hv-fakty div { padding: 10px 8px 0 0; }
.hv-fakty dt { font: 600 11px/1.2 var(--f-t); letter-spacing: 0.1em; text-transform: uppercase; color: rgba(255, 255, 255, 0.62); margin-bottom: 5px; }
.hv-fakty dd { margin: 0; font: 800 clamp(19px, 1.6vw, 26px)/1 var(--f-d); font-stretch: 72%; color: #fff; }
.hv-szuk { display: grid; grid-template-columns: auto 1fr; gap: 14px 18px; align-items: end; }
.hv-szuk__g { display: grid; gap: 8px; }
.hv-szuk__g .lbl { color: rgba(255, 255, 255, 0.7); }
.hv-pok { display: flex; gap: 6px; }
.hv-pok button { min-width: 44px; height: 44px; padding: 0 10px; font: 800 18px/1 var(--f-d); font-stretch: 80%; color: #fff; box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.55); transition: background 0.25s, color 0.25s; }
.hv-pok button:hover { box-shadow: inset 0 0 0 2px #fff; }
.hv-pok button.is-on { background: #fff; color: var(--tusz); box-shadow: none; }
.hv-szuk select { width: 100%; height: 44px; background: transparent; color: #fff; border: 0; box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.55); padding: 0 12px; font-weight: 600; -webkit-appearance: none; appearance: none; background-image: linear-gradient(45deg, transparent 50%, #fff 50%), linear-gradient(135deg, #fff 50%, transparent 50%); background-position: calc(100% - 18px) 19px, calc(100% - 13px) 19px; background-size: 5px 5px; background-repeat: no-repeat; cursor: pointer; }
.hv-szuk select option { color: var(--tusz); }
.hv-cta { grid-column: 1 / -1; justify-content: space-between; padding: 20px 22px 19px; font-size: 15px; background: var(--g-cz); }
.hv-cta::before { background: #fff; }
.hv-cta:hover { color: var(--tusz); }
.hv-link { display: inline-block; margin-top: 14px; font: 600 13px/1.3 var(--f-t); color: rgba(255, 255, 255, 0.85); border-bottom: 1.5px solid rgba(255, 255, 255, 0.4); padding-bottom: 2px; }
.hv-link:hover { color: #fff; border-color: #fff; }
.hv-lokal { position: absolute; z-index: 3; right: var(--gut); bottom: var(--gut); width: 330px; background: var(--tusz); color: #fff; display: grid; grid-template-columns: 1fr 1fr; box-shadow: 10px 10px 0 var(--zo); transition: transform 0.5s var(--e-out); }
.hv-lokal:hover { transform: translate(-4px, -4px); }
.hv-lokal__lbl { grid-column: 1 / -1; padding: 12px 14px 10px; color: var(--zo-2); }
.hv-lokal__img { position: relative; aspect-ratio: 1; overflow: hidden; }
.hv-lokal__img img { width: 100%; height: 100%; object-fit: cover; }
.hv-lokal__rzut { background: #fff; display: grid; place-items: center; padding: 6px; }
.hv-lokal__rzut svg { width: 100%; height: auto; max-height: 150px; }
.hv-lokal__d { grid-column: 1 / -1; padding: 12px 14px 4px; display: grid; gap: 4px; }
.hv-lokal__d b { font: 900 22px/1 var(--f-d); font-stretch: 90%; text-transform: uppercase; }
.hv-lokal__d em { font-style: normal; font: 800 26px/1 var(--f-d); font-stretch: 70%; color: #fff; }
.hv-lokal__d small { color: rgba(255, 255, 255, 0.7); font-size: 13px; }
.hv-lokal__d u { text-decoration: none; font: 700 12px/1 var(--f-t); letter-spacing: 0.1em; text-transform: uppercase; margin-top: 8px; color: var(--zo-2); }
.hv-lokal__nav { grid-column: 1 / -1; display: flex; gap: 4px; padding: 10px 14px 14px; }
.hv-lokal__nav i { flex: 1; height: 4px; background: rgba(255, 255, 255, 0.25); position: relative; overflow: hidden; }
.hv-lokal__nav i b { position: absolute; inset: 0; background: #fff; transform-origin: left; transform: scaleX(0); }
.akt--1 .h-cue { left: 50%; bottom: 10px; z-index: 3; }

/* CO KUPUJESZ — jedno duże zdjęcie + techniczny rzut (wysoki kontrast: czerń i cień budują, biel = konkrety) */
.typy { position: relative; height: 420vh; background: #050505; color: #fff; }
.typy__st { position: sticky; top: 0; height: 100vh; height: 100svh; overflow: hidden; }
.typy__tlo { position: absolute; inset: 0; }
.typy__f { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 0.7s var(--e-out), transform 6s linear; transform: scale(1.06); }
.typy__f.is-on { opacity: 1; transform: scale(1); }
.typy__tlo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5, 5, 5, 0.92) 0%, rgba(5, 5, 5, 0.72) 30%, rgba(5, 5, 5, 0.15) 58%, rgba(5, 5, 5, 0.5) 100%), linear-gradient(0deg, rgba(5, 5, 5, 0.75) 0%, rgba(5, 5, 5, 0) 40%); }
.typy__ui { position: relative; z-index: 2; height: 100%; display: grid; grid-template-columns: minmax(380px, 0.95fr) minmax(420px, 1fr); gap: 4vw; padding: calc(var(--hdr) + 3vh) var(--gut) 4vh; }
.typy__lewa { display: flex; flex-direction: column; gap: 2.2vh; min-width: 0; }
.typy__kick { color: var(--zo-2); }
.typy__h { font: 900 clamp(64px, 8.4vw, 150px)/0.8 var(--f-d); font-stretch: 112%; text-transform: uppercase; letter-spacing: -0.035em; margin: 0; color: #fff; white-space: nowrap; }
.typy__tabs { display: flex; gap: 6px; flex-wrap: wrap; }
.typy__tab { display: flex; align-items: baseline; gap: 8px; padding: 12px 14px 11px; color: #fff; box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.4); transition: background 0.3s, color 0.3s, box-shadow 0.3s; }
.typy__tab:hover { box-shadow: inset 0 0 0 2px #fff; }
.typy__tab .num { font-size: 30px; line-height: 0.8; font-stretch: 55%; }
.typy__tab b { font: 700 13px/1 var(--f-t); letter-spacing: 0.06em; text-transform: uppercase; }
.typy__tab small { display: none; }
.typy__tab.is-on { background: #fff; color: #050505; box-shadow: none; }
.typy__wyk { max-width: 460px; background: rgba(5, 5, 5, 0.9); box-shadow: 8px 8px 0 var(--zo); padding: 14px 16px 12px; min-height: 120px; }
.typy__wyk .lbl { color: rgba(255, 255, 255, 0.6); display: block; margin-bottom: 8px; }
.typy__wyk b { display: block; font: 900 24px/1 var(--f-d); font-stretch: 105%; text-transform: uppercase; margin-bottom: 6px; }
.typy__wyk p { margin: 0; font-size: 15px; line-height: 1.45; color: rgba(255, 255, 255, 0.88); }
.typy__fakty { margin-top: auto; background: #fff; color: #050505; padding: 18px 20px 20px; max-width: 560px; box-shadow: 10px 10px 0 var(--cz); }
.typy__dane { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0 0 14px; }
.typy__dane div { padding: 0 8px 0 0; }
.typy__dane dt { font: 600 11px/1.2 var(--f-t); letter-spacing: 0.1em; text-transform: uppercase; color: #5d584f; margin-bottom: 6px; }
.typy__dane dd { margin: 0; font: 800 clamp(20px, 1.7vw, 28px)/1 var(--f-d); font-stretch: 70%; }
.typy__sprz { display: grid; grid-template-columns: 1fr auto; gap: 6px 12px; align-items: center; margin-bottom: 14px; font-size: 13px; }
.typy__sprz .pas { grid-column: 1 / -1; height: 10px; display: flex; background: #e9e4d8; }
.typy__sprz .pas i { display: block; height: 100%; background: #050505; }
.typy__sprz .pas i + i { background: var(--bursztyn); }
.typy__sprz b { font-weight: 700; }
.typy__cta { display: flex; flex-wrap: wrap; gap: 8px; }
.typy__cta .btn--line { color: #050505; }
.typy__cta .btn--line:hover { color: #fff; }
.typy__karta { align-self: center; background: #fff; color: #050505; padding: 18px 20px 18px; display: flex; flex-direction: column; gap: 12px; max-height: calc(100vh - var(--hdr) - 7vh); box-shadow: 14px 14px 0 rgba(255, 255, 255, 0.16); }
.typy__kto { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.typy__leg { display: flex; align-items: center; gap: 6px; color: #5d584f; }
.typy__leg i { width: 14px; height: 10px; background: repeating-linear-gradient(45deg, #fff 0 2px, #cfc8b8 2px 4px); box-shadow: inset 0 0 0 1px #050505; }
.typy__rzut { flex: 1; min-height: 0; display: grid; place-items: center; }
.typy__rzut svg { width: 100%; height: 100%; max-height: 58vh; }
.rz--tech .rz-p { cursor: pointer; }
.rz--tech .rz-p rect { transition: fill 0.25s; }
.rz--tech .rz-p:hover rect, .rz--tech .rz-p.is-on rect { fill: #ffd54a; }
.rz--tech .rz-p--strefa:hover rect, .rz--tech .rz-p--strefa.is-on rect { fill: #f2622c; }
.typy__gdzie { display: grid; gap: 6px; }
.typy__gdzie > div { display: flex; flex-wrap: wrap; gap: 6px; }
.typy__gdzie a { padding: 7px 9px 6px; font: 600 12px/1 var(--f-t); box-shadow: inset 0 0 0 1.5px #050505; transition: background 0.25s, color 0.25s; }
.typy__gdzie a:hover { background: #050505; color: #fff; }
.typy__gdzie a b { font-weight: 800; margin-left: 4px; }
.typy__post { position: absolute; z-index: 3; right: var(--gut); top: 50%; transform: translateY(-50%); display: grid; gap: 6px; }
.typy__post i { display: block; width: 4px; height: 44px; background: rgba(255, 255, 255, 0.25); }
.typy__post i.is-on { background: #fff; }

/* DOOKOŁA — film makiety + zdjęcia udogodnień wskazujące miejsca */
.dook { position: relative; height: 460vh; background: #050505; color: #fff; }
.dook__st { position: sticky; top: 0; height: 100vh; height: 100svh; overflow: hidden; display: grid; grid-template-columns: 1fr minmax(0, 58vw) 1fr; grid-template-rows: auto 1fr; gap: 2vh 2vw; padding: calc(var(--hdr) + 2vh) var(--gut) 4vh; }
.dook__head { grid-column: 1 / -1; display: flex; align-items: flex-end; gap: 3vw; flex-wrap: wrap; }
.dook__head .lbl { color: var(--zo-2); width: 100%; }
.dook__head h2 { font: 900 clamp(48px, 6vw, 110px)/0.8 var(--f-d); font-stretch: 120%; text-transform: uppercase; letter-spacing: -0.03em; margin: 0; }
.dook__head p { margin: 0 0 4px; max-width: 34ch; color: rgba(255, 255, 255, 0.72); }
.dook__ramka { grid-column: 2; position: relative; align-self: center; aspect-ratio: 16 / 9; box-shadow: 0 0 0 2px #fff, 16px 16px 0 rgba(255, 255, 255, 0.12); background: #111; }
.dook__ramka canvas { width: 100%; height: 100%; }
.dook__t { position: absolute; right: 10px; bottom: 10px; background: #050505; padding: 6px 8px 5px; font-variant-numeric: tabular-nums; }
.dook__linie { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 3; overflow: visible; }
.dook__linie path { fill: none; stroke: #fff; stroke-width: 1.5; }
.dook__linie rect.pt { fill: var(--zo-2); }
.dook__linie rect.ob { fill: none; stroke: var(--zo-2); stroke-width: 2; }
.dook__karty { position: absolute; inset: 0; pointer-events: none; z-index: 4; }
.dk { position: absolute; width: min(15vw, 230px); background: #fff; color: #050505; opacity: 0; transform: translateY(20px); transition: opacity 0.5s var(--e-out), transform 0.6s var(--e-out); box-shadow: 8px 8px 0 var(--zo); }
.dk.is-on { opacity: 1; transform: none; }
.dk img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.dk figcaption { padding: 10px 12px 12px; }
.dk b { display: block; font: 900 20px/1 var(--f-d); font-stretch: 105%; text-transform: uppercase; margin-bottom: 4px; }
.dk small { display: block; font-size: 13px; line-height: 1.35; color: #3b3732; }
.dk .lbl { color: var(--cz); display: block; margin-bottom: 6px; }

/* mapy (Leaflet, ciemne) */
.mapa__leaf { height: min(70vh, 620px); background: #0e0e0e; box-shadow: 10px 10px 0 var(--tusz); }
.leaflet-container { font-family: var(--f-t); background: #0e0e0e; }
.leaflet-control-attribution { font-size: 10px; background: rgba(5, 5, 5, 0.7) !important; color: #aaa; }
.leaflet-control-attribution a { color: #ddd; }
.leaflet-bar a { background: #050505; color: #fff; border-color: #333; }
.leaflet-bar a:hover { background: #222; color: #fff; }
.mk-ik { display: flex; align-items: center; gap: 8px; white-space: nowrap; }
.mk-ik i { width: 22px; height: 22px; flex: 0 0 22px; box-shadow: 0 0 0 3px #050505; transition: transform 0.4s var(--e-out); }
.mk-ik i.tr { clip-path: polygon(50% 0, 100% 100%, 0 100%); box-shadow: none; }
.mk-ik b { background: #050505; color: #fff; font: 800 13px/1 var(--f-d); font-stretch: 110%; text-transform: uppercase; padding: 6px 8px 5px; }
.mk-ik.is-on i, .mk-ik:hover i { transform: rotate(45deg) scale(1.2); }
.mk-ik.is-off { opacity: 0.25; }
.leaflet-attribution-flag { display: none !important; }
.mapka { height: min(72vh, 640px); background: #0e0e0e; box-shadow: 12px 12px 0 var(--bursztyn); }
.poi-ik { display: block; width: 16px; height: 16px; box-shadow: 0 0 0 2px #050505; transition: transform 0.3s var(--e-out), opacity 0.3s; }
.poi-ik.tr { clip-path: polygon(50% 0, 100% 100%, 0 100%); box-shadow: none; }
.poi-ik.is-hl { transform: scale(1.6); }
.poi-ik.is-dim { opacity: 0.15; }
.inv-ik { display: block; width: 34px; height: 34px; background: var(--cz); box-shadow: 0 0 0 4px #fff, 8px 8px 0 #050505; }
.lokal li.is-hl { padding-left: 0; }
.lokal li.is-hl > * { transform: translateX(10px); }

/* sprzedane — wyraźnie */
.tab tr.is-sprz td { color: rgba(241, 228, 200, 0.45); }
.tab tr.is-sprz td.c { text-decoration: line-through; }
.stempel { display: inline-block; padding: 4px 7px 3px; font: 800 10px/1 var(--f-t); letter-spacing: 0.12em; text-transform: uppercase; color: var(--cz-2); box-shadow: inset 0 0 0 1.5px var(--cz-2); transform: rotate(-4deg); }
.card__sprz { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 4px 10px; margin-top: 12px; font: 600 11px/1.2 var(--f-t); letter-spacing: 0.08em; text-transform: uppercase; }
.card__sprz .pas { grid-column: 1 / -1; height: 6px; background: #ddd5c3; }
.card__sprz .pas i { display: block; height: 100%; background: var(--tusz); }

/* podstrona: pas typów mieszkań + CTA w hero */
.ph__cta { grid-column: 1 / -1; margin-top: 18px; justify-content: space-between; --bg: #fff; --fg: #050505; }
.ph__cta::before { background: var(--g-cz); }
.ph__cta:hover { color: #fff; }
.ptypy { background: #050505; color: #fff; padding: clamp(60px, 7vw, 110px) var(--gut); }
.ptypy h2 { font: 900 clamp(44px, 6vw, 110px)/0.8 var(--f-d); font-stretch: 125%; text-transform: uppercase; letter-spacing: -0.03em; margin: 0 0 30px; }
.ptypy__g { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.pt { display: flex; flex-direction: column; background: #fff; color: #050505; text-align: left; transition: transform 0.45s var(--e-out), box-shadow 0.45s var(--e-out); }
.pt:hover { transform: translate(-5px, -5px); box-shadow: 10px 10px 0 var(--bursztyn); }
.pt.is-pusty { opacity: 0.45; pointer-events: none; }
.pt__img { aspect-ratio: 4 / 3; overflow: hidden; background: #000; }
.pt__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--e-out); }
.pt:hover .pt__img img { transform: scale(1.06); }
.pt__rzut { padding: 10px 12px 0; }
.pt__rzut svg { width: 100%; height: 150px; }
.pt__d { padding: 12px 14px 16px; display: grid; gap: 4px; }
.pt__d b { font: 900 24px/1 var(--f-d); font-stretch: 100%; text-transform: uppercase; }
.pt__d em { font-style: normal; font: 800 22px/1 var(--f-d); font-stretch: 70%; }
.pt__d small { color: #5d584f; font-size: 13px; }
.pt__img, .pt__rzut, .pt__d { display: block; }
.pt__d { display: grid; }
.pt__d u { text-decoration: none; margin-top: 8px; font: 700 12px/1 var(--f-t); letter-spacing: 0.1em; text-transform: uppercase; color: var(--cz); }

@media (max-width: 1100px) {
  .hv-lokal { display: none; }
  .hv-oferta { width: min(560px, 60vw); }
  .typy { height: auto; }
  .typy__st { position: relative; height: auto; }
  .typy__ui { grid-template-columns: 1fr; height: auto; padding-bottom: 60px; }
  .typy__karta { max-height: none; }
  .typy__rzut svg { max-height: none; }
  .typy__post { display: none; }
  .dook { height: auto; }
  .dook__st { position: relative; height: auto; grid-template-columns: 1fr; }
  .dook__ramka { grid-column: 1; }
  .dook__linie { display: none; }
  .dook__karty { position: relative; inset: auto; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
  .dk { position: relative; width: auto; left: auto !important; right: auto !important; top: auto !important; opacity: 1; transform: none; }
  .ptypy__g { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  .hv-slowo { top: calc(var(--hdr) + 6px); }
  .hv-bud { right: -16vw; width: 128vw; bottom: auto; top: calc(var(--hdr) + 15vw); filter: drop-shadow(10px 10px 0 rgba(18, 17, 16, 0.92)); }
  .hv-oferta { left: 0; right: 0; bottom: 0; width: auto; padding: 18px var(--gut) 16px; box-shadow: none; }
  .hv-h { font-size: 25px; margin-bottom: 12px; }
  .hv-fakty { grid-template-columns: repeat(2, 1fr); margin-bottom: 12px; }
  .hv-fakty div:nth-child(n + 3) { display: none; }
  .hv-fakty dd { font-size: 22px; }
  .hv-szuk { gap: 10px 12px; }
  .hv-pok button { min-width: 40px; height: 42px; }
  .hv-cta { padding: 17px 18px 16px; }
  .hv-link { display: none; }
  .akt--1 .h-cue { display: none; }
  .typy__h { font-size: 15vw; }
  .typy__dane { grid-template-columns: 1fr 1fr; gap: 10px; }
  .typy__fakty { box-shadow: none; }
  .typy__tlo::after { background: rgba(5, 5, 5, 0.7); }
  .dook__karty { grid-template-columns: 1fr; }
  .ptypy__g { grid-template-columns: 1fr; }
}


/* SLAJDER pełnoekranowy — styl symulatora nasłonecznienia: zdjęcie na cały ekran, cień buduje, biel niesie konkrety */
.sl { position: relative; height: 100vh; height: 100svh; min-height: 620px; background: #050505; color: #fff; overflow: hidden; outline: none; }
.sl__tlo { position: absolute; inset: 0; }
.sl__f { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 1.3s var(--e-io); }
.sl__f.is-on { opacity: 1; animation: kenburns 9s linear both; }
@keyframes kenburns { from { transform: scale(1.12) translate3d(1.5%, 0, 0); } to { transform: scale(1.02) translate3d(-1%, 0, 0); } }
.sl__tlo::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(100deg, rgba(5, 5, 5, 0.82) 0%, rgba(5, 5, 5, 0.45) 32%, rgba(5, 5, 5, 0) 58%), linear-gradient(0deg, rgba(5, 5, 5, 0.86) 0%, rgba(5, 5, 5, 0.35) 30%, rgba(5, 5, 5, 0) 52%); }
.sl__ui { position: relative; z-index: 2; height: 100%; display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto 1fr auto; padding: calc(var(--hdr) + 16px) var(--gut) var(--gut); }
.sl__top { grid-column: 1; max-width: 46ch; }
.sl__kick { color: var(--zo-2); }
.sl__kick b { font-weight: 800; }
.sl__h { font: 900 clamp(34px, 3.8vw, 68px)/0.86 var(--f-d); font-stretch: 118%; text-transform: uppercase; letter-spacing: -0.02em; margin: 12px 0 12px; }
.sl__opis { margin: 0; color: rgba(255, 255, 255, 0.8); font-size: clamp(15px, 1.1vw, 18px); }
.sl__wyk { grid-column: 2; grid-row: 1; min-width: 150px; height: 150px; align-self: start; display: flex; flex-direction: column; justify-content: space-between; padding: 14px; background: #fff; color: #050505; box-shadow: 10px 10px 0 var(--cz); }
.sl__wyk .lbl { color: #5d584f; }
.sl__wyk b { font: 900 28px/0.9 var(--f-d); font-stretch: 90%; text-transform: uppercase; white-space: nowrap; }
.sl__dol { grid-column: 1 / -1; grid-row: 3; display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; flex-wrap: wrap; }
.sl__big { display: flex; align-items: flex-end; gap: clamp(18px, 2.4vw, 40px); }
.sl__n { font: 900 clamp(90px, 13.5vw, 250px)/0.74 var(--f-d); font-stretch: 50%; letter-spacing: -0.035em; text-transform: uppercase; white-space: nowrap; display: inline-block; }
.sl__d { display: grid; grid-template-columns: auto auto; gap: 6px 22px; margin: 0 0 6px; }
.sl__d div { display: contents; }
.sl__d dt { font: 600 11px/1.6 var(--f-t); letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255, 255, 255, 0.62); align-self: center; }
.sl__d dd { margin: 0; font: 800 clamp(20px, 1.8vw, 30px)/1 var(--f-d); font-stretch: 80%; }
.sl__d dd.cena { color: #fff; background: var(--cz); padding: 4px 8px 2px; justify-self: start; }
.sl__ster { display: grid; gap: 12px; justify-items: end; }
.sl__ticks { display: flex; gap: 6px; }
.sl__tick { width: clamp(38px, 4vw, 64px); height: 24px; position: relative; display: flex; align-items: flex-end; }
.sl__tick::before { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: rgba(255, 255, 255, 0.28); }
.sl__tick b { position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: #fff; transform-origin: left; transform: scaleX(0); }
.sl__tick span { position: absolute; left: 0; top: 0; font: 700 11px/1 var(--f-t); letter-spacing: 0.08em; color: rgba(255, 255, 255, 0.55); }
.sl__tick.is-on span { color: #fff; }
.sl__btns { display: flex; gap: 6px; align-items: stretch; }
.sl__btn { width: 54px; height: 54px; display: grid; place-items: center; color: #fff; box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.5); transition: background 0.3s, color 0.3s, box-shadow 0.3s; }
.sl__btn:hover { background: #fff; color: #050505; box-shadow: none; }
.sl__btn svg { width: 20px; height: 20px; }
#sl-pauza { display: flex; gap: 5px; place-items: initial; align-items: center; justify-content: center; }
#sl-pauza i { width: 4px; height: 16px; background: currentColor; }
#sl-pauza[aria-pressed="true"] i:first-child { width: 0; height: 0; background: none; border-left: 13px solid currentColor; border-top: 8px solid transparent; border-bottom: 8px solid transparent; }
#sl-pauza[aria-pressed="true"] i:last-child { display: none; }
.sl__cta { --bg: #fff; --fg: #050505; padding-left: 26px; padding-right: 26px; }
.sl__cta::before { background: var(--g-cz); }
.sl__cta:hover { color: #fff; }
@media (max-width: 760px) {
  .sl__ui { grid-template-columns: 1fr; padding-bottom: 18px; }
  .sl__wyk { grid-column: 1; grid-row: 2; align-self: start; width: auto; height: auto; flex-direction: row; align-items: baseline; gap: 10px; justify-self: start; margin-top: 14px; box-shadow: 6px 6px 0 var(--cz); padding: 10px 12px; }
  .sl__wyk b { font-size: 20px; }
  .sl__opis { display: none; }
  .sl__big { flex-direction: column; align-items: flex-start; gap: 12px; }
  .sl__n { font-size: 24vw; }
  .sl__ster { justify-items: stretch; width: 100%; }
  .sl__btns { flex-wrap: wrap; }
  .sl__cta { flex: 1; justify-content: space-between; }
  .sl__tick { flex: 1; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; }
  body::after { animation: none; }
}
.stempel.pok-m { display: none; margin-left: 6px; }
@media (max-width: 760px) { .stempel.pok-m { display: inline-block; } }
