/* ==========================================================================
   SIBZ.pl — system projektowy
   Paleta: biel + zieleń wyprowadzona z logo (#4fc172). Zero beżu.
   Typografia: Source Serif 4 (nagłówki) + Hanken Grotesk (tekst/UI).
   ========================================================================== */

/* ---------- Fonty (self-host, latin + latin-ext) ---------- */
@font-face{font-family:"Hanken Grotesk";src:url("../fonts/hanken-grotesk-v12-latin_latin-ext-regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Hanken Grotesk";src:url("../fonts/hanken-grotesk-v12-latin_latin-ext-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Hanken Grotesk";src:url("../fonts/hanken-grotesk-v12-latin_latin-ext-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Hanken Grotesk";src:url("../fonts/hanken-grotesk-v12-latin_latin-ext-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Source Serif 4";src:url("../fonts/source-serif-4-v14-latin_latin-ext-regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Source Serif 4";src:url("../fonts/source-serif-4-v14-latin_latin-ext-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Source Serif 4";src:url("../fonts/source-serif-4-v14-latin_latin-ext-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}

/* ---------- Tokeny ---------- */
:root{
  /* kolory */
  --bg:#ffffff;
  --bg-soft:oklch(0.977 0.006 155);
  --ink:oklch(0.26 0.02 160);
  --ink-soft:oklch(0.44 0.025 160);
  --pine-900:oklch(0.30 0.055 155);
  --pine-800:oklch(0.36 0.07 154);
  --pine-700:oklch(0.42 0.08 153);
  --pine-600:oklch(0.49 0.09 152);
  --brand-500:#4fc172;
--logo-ink:#1f3d2b;              /* zieleń logo — dekoracja i statusy, nie tekst na bieli */
  --tint-200:oklch(0.93 0.035 152);
  --tint-100:oklch(0.962 0.02 152);
  --line:oklch(0.90 0.012 155);
  --line-soft:oklch(0.935 0.008 155);

  /* statusy lokali */
  --st-sale-ink:var(--pine-700);
  --st-sale-bg:var(--tint-200);
  --st-res-ink:oklch(0.50 0.11 70);
  --st-res-bg:oklch(0.95 0.045 85);
  --st-sold-ink:oklch(0.46 0.01 160);
  --st-sold-bg:oklch(0.945 0.004 160);
  --error:oklch(0.50 0.19 27);
  --error-bg:oklch(0.96 0.02 20);

  /* typografia */
  --font-body:"Hanken Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-display:"Source Serif 4",Georgia,"Times New Roman",serif;
  --text-xs:.8125rem;
  --text-sm:.9375rem;
  --text-base:1.0625rem;
  --text-lg:1.25rem;
  --text-xl:clamp(1.35rem,.9vw + 1.1rem,1.6rem);
  --text-h3:clamp(1.45rem,1.1vw + 1.15rem,1.75rem);
  --text-h2:clamp(1.9rem,2.4vw + 1.15rem,2.7rem);
  --text-h1:clamp(2.3rem,3.6vw + 1.3rem,3.6rem);
  --text-hero:clamp(2.5rem,4.6vw + 1.2rem,4.15rem);

  /* przestrzeń (skala 4pt) */
  --sp-1:.25rem; --sp-2:.5rem; --sp-3:.75rem; --sp-4:1rem; --sp-5:1.5rem;
  --sp-6:2rem; --sp-7:3rem; --sp-8:4rem; --sp-9:6rem;
  --section:clamp(4rem,7.5vw,6.5rem);
  --container:75rem;
  --radius-sm:.375rem; --radius:.625rem; --radius-lg:1rem;

  /* cienie */
  --shadow-sm:0 1px 2px oklch(0.3 0.03 160 / .06);
  --shadow-md:0 2px 6px oklch(0.3 0.03 160 / .07),0 12px 28px -12px oklch(0.3 0.03 160 / .18);
  --shadow-lg:0 4px 10px oklch(0.3 0.03 160 / .08),0 24px 48px -16px oklch(0.3 0.03 160 / .25);

  /* z-index */
  --z-dropdown:10; --z-sticky:20; --z-overlay:40; --z-modal:50; --z-toast:60;

  --ease-out:cubic-bezier(.165,.84,.44,1); /* quart */
}

/* ---------- Reset / baza ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--font-body);font-size:var(--text-base);line-height:1.65;
  font-kerning:normal;text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}
img,video{max-width:100%;height:auto;display:block}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.15;margin:0 0 var(--sp-4);text-wrap:balance;letter-spacing:-0.01em}
h1{font-size:var(--text-h1)}
h2{font-size:var(--text-h2)}
h3{font-size:var(--text-h3)}
h4{font-family:var(--font-body);font-weight:600;font-size:var(--text-lg);letter-spacing:0}
p{margin:0 0 var(--sp-4);max-width:68ch;text-wrap:pretty}
a{color:var(--pine-700);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--pine-600)}
ul,ol{margin:0 0 var(--sp-4);padding-left:1.25rem}
strong{font-weight:600}
hr{border:0;border-top:1px solid var(--line);margin:var(--sp-6) 0}
:focus-visible{outline:2px solid var(--pine-600);outline-offset:2px;border-radius:2px}
::selection{background:var(--tint-200)}
[hidden]{display:none !important}

.skip-link{position:absolute;left:-9999px;top:0;z-index:var(--z-toast);background:var(--pine-900);color:#fff;padding:.75rem 1.25rem;border-radius:0 0 var(--radius) 0}
.skip-link:focus{left:0}

/* ---------- Układ ---------- */
.container{max-width:var(--container);margin-inline:auto;padding-inline:clamp(1.25rem,4vw,2.5rem)}
.section{padding-block:var(--section)}
.section--soft{background:var(--bg-soft)}
.section--tight{padding-block:clamp(3rem,5vw,4.5rem)}
.section-head{max-width:46rem;margin-bottom:clamp(2rem,4vw,3.25rem)}
.section-head .lead{font-size:var(--text-lg);color:var(--ink-soft);margin:0}
.section-head--row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--sp-4);max-width:none}
.section-head--row > div{max-width:46rem}
.section-head--row h2{margin-bottom:var(--sp-2)}

/* ---------- Motyw łuków (z sygnetu logo) ---------- */
.arcs{color:var(--brand-500);display:block}
.arcs--faint{color:var(--tint-200)}

/* ---------- Przyciski ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  font:600 1rem/1.2 var(--font-body);letter-spacing:.005em;
  padding:.85rem 1.5rem;min-height:48px;border-radius:var(--radius);
  border:1.5px solid transparent;cursor:pointer;text-decoration:none;
  transition:background-color .2s var(--ease-out),border-color .2s var(--ease-out),color .2s var(--ease-out),box-shadow .2s var(--ease-out);
}
.btn svg{flex:none}
.btn--primary{background:var(--pine-700);color:#fff}
.btn--primary:hover{background:var(--pine-600);color:#fff}
.btn--primary:active{background:var(--pine-800)}
.btn--secondary{background:transparent;color:var(--pine-700);border-color:oklch(0.42 0.08 153 / .45)}
.btn--secondary:hover{border-color:var(--pine-600);background:var(--tint-100);color:var(--pine-700)}
.btn--ghost{background:transparent;color:var(--pine-700);padding-inline:.75rem}
.btn--ghost:hover{background:var(--tint-100);color:var(--pine-700)}
.btn--light{background:#fff;color:var(--pine-800)}
.btn--light:hover{background:var(--tint-100);color:var(--pine-900)}
.btn--outline-light{background:transparent;color:#fff;border-color:oklch(1 0 0 / .55)}
.btn--outline-light:hover{border-color:#fff;background:oklch(1 0 0 / .12);color:#fff}
.btn--sm{padding:.5rem 1rem;min-height:40px;font-size:var(--text-sm)}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.55;pointer-events:none}
.link-arrow{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;text-decoration:none}
.link-arrow svg{transition:translate .2s var(--ease-out)}
.link-arrow:hover svg{translate:3px 0}

/* ---------- Nagłówek ---------- */
.site-header{
  position:sticky;top:0;z-index:var(--z-sticky);
  background:oklch(1 0 0 / .92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border-bottom:1px solid transparent;
  transition:transform .35s var(--ease-out),border-color .25s var(--ease-out),box-shadow .25s var(--ease-out);
}
.site-header.is-stuck{border-color:var(--line-soft);box-shadow:var(--shadow-sm)}
.site-header__in{display:flex;align-items:center;gap:var(--sp-5);min-height:76px}
.site-header__logo{display:inline-flex;align-items:center;flex:none}
.site-header__logo img{height:38px;width:auto}
/* Logo jako maska CSS — jeden przezroczysty zasób, dowolny kolor per kontekst.
   Nagłówek/menu: ciemna sosnowa zieleń (jak w brandingu). Stopka zostaje białym <img>. */
.logo-mark{display:block;height:38px;aspect-ratio:56 / 20;background-color:var(--logo-ink);
  -webkit-mask:url(../img/logo/logo-green.png) left center / contain no-repeat;
  mask:url(../img/logo/logo-green.png) left center / contain no-repeat}
.mobile-menu__top .logo-mark{height:34px}
.site-nav{display:flex;align-items:center;gap:.25rem;margin-left:auto}
.site-nav a{
  font:500 1rem/1 var(--font-body);color:var(--ink);text-decoration:none;
  padding:.65rem .85rem;border-radius:var(--radius-sm);
  transition:background-color .18s var(--ease-out),color .18s var(--ease-out);
}
.site-nav a:hover{background:var(--tint-100);color:var(--pine-800)}
.site-nav a[aria-current="page"]{color:var(--pine-700);font-weight:600}
.site-header__cta{margin-left:var(--sp-3)}
.lang-switch{display:flex;border:1px solid var(--line);border-radius:999px;padding:2px;margin-left:var(--sp-3)}
.lang-switch button{
  font:600 .8125rem/1 var(--font-body);letter-spacing:.02em;color:var(--ink-soft);
  background:none;border:0;border-radius:999px;padding:.45rem .7rem;cursor:pointer;
  transition:background-color .18s var(--ease-out),color .18s var(--ease-out);
}
.lang-switch button[aria-pressed="true"]{background:var(--pine-700);color:#fff}
.lang-switch button:not([aria-pressed="true"]):hover{color:var(--pine-700)}
.nav-toggle{display:none;margin-left:auto;background:none;border:1.5px solid var(--line);border-radius:var(--radius-sm);width:48px;height:48px;cursor:pointer;color:var(--ink);align-items:center;justify-content:center}
.nav-toggle:hover{border-color:var(--pine-600);color:var(--pine-700)}

/* menu mobilne */
.mobile-menu{border:0;border-radius:0;padding:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;background:var(--bg)}
.mobile-menu::backdrop{background:oklch(0.2 0.03 160 / .4)}
.mobile-menu__in{display:flex;flex-direction:column;min-height:100dvh;padding:1.25rem}
.mobile-menu__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-6)}
.mobile-menu__top img{height:34px;width:auto}
.mobile-menu nav{display:flex;flex-direction:column;gap:.25rem}
.mobile-menu nav a{
  font-family:var(--font-display);font-size:1.6rem;font-weight:600;color:var(--ink);
  text-decoration:none;padding:.7rem .5rem;border-radius:var(--radius-sm);
}
.mobile-menu nav a:hover{background:var(--tint-100)}
.mobile-menu nav a[aria-current="page"]{color:var(--pine-700)}
.mobile-menu__foot{margin-top:auto;display:grid;gap:var(--sp-3);padding-top:var(--sp-6)}
.mobile-menu__close{background:none;border:1.5px solid var(--line);border-radius:var(--radius-sm);width:48px;height:48px;cursor:pointer;color:var(--ink);display:flex;align-items:center;justify-content:center}

/* pływający przycisk "Zadzwoń" (mobile) */
.call-fab{
  display:none;position:fixed;right:1rem;bottom:1rem;z-index:var(--z-sticky);
  width:56px;height:56px;border-radius:50%;background:var(--pine-700);color:#fff;
  align-items:center;justify-content:center;box-shadow:var(--shadow-lg);text-decoration:none;
}
.call-fab:hover{background:var(--pine-600);color:#fff}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:min(88svh,52rem);display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:var(--pine-900)}
.hero__media,.hero__media video,.hero__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero__scrim{position:absolute;inset:0;background:
  linear-gradient(to top,oklch(0.23 0.05 158 / .82) 0%,oklch(0.23 0.05 158 / .38) 38%,oklch(0.23 0.05 158 / .12) 62%,transparent 100%),
  linear-gradient(to right,oklch(0.23 0.05 158 / .34),transparent 55%)}
.hero__in{position:relative;width:100%;padding-block:clamp(3rem,7vw,5.5rem)}
.hero h1{font-size:var(--text-hero);font-weight:600;letter-spacing:-0.015em;color:#fff;max-width:17ch;margin-bottom:var(--sp-4)}
.hero .hero__lead{font-size:clamp(1.1rem,.9vw + 1rem,1.3rem);line-height:1.55;letter-spacing:.01em;color:oklch(0.97 0.008 150);max-width:44ch;margin-bottom:var(--sp-6)}
.hero__cta{display:flex;flex-wrap:wrap;gap:var(--sp-3)}
.hero__toggle{
  position:absolute;right:clamp(1rem,3vw,2rem);bottom:clamp(1rem,3vw,2rem);
  width:44px;height:44px;border-radius:50%;border:1px solid oklch(1 0 0 / .5);
  background:oklch(0.2 0.04 160 / .35);color:#fff;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
}
.hero__toggle:hover{background:oklch(0.2 0.04 160 / .6)}

/* ---------- Wiersz liczb (wyróżniki) ---------- */
.figures{display:flex;flex-wrap:wrap;gap:var(--sp-6) var(--sp-8)}
.figures div{flex:1 1 12rem}
.figures .num{font-family:var(--font-display);font-size:clamp(2.4rem,2.6vw + 1.6rem,3.4rem);font-weight:600;color:var(--pine-700);line-height:1.05;font-variant-numeric:tabular-nums}
.figures .num span{font-size:.55em}
.figures .label{margin-top:var(--sp-2);color:var(--ink-soft);font-size:var(--text-base);max-width:22ch}

/* ---------- Chipy statusów ---------- */
.chip{display:inline-flex;align-items:center;gap:.45rem;font:600 var(--text-xs)/1 var(--font-body);letter-spacing:.015em;padding:.45rem .8rem;border-radius:999px;white-space:nowrap}
.chip::before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:currentColor}
.chip--sale{color:var(--st-sale-ink);background:var(--st-sale-bg)}
.chip--reserved{color:var(--st-res-ink);background:var(--st-res-bg)}
.chip--sold{color:var(--st-sold-ink);background:var(--st-sold-bg)}
.chip--info{color:var(--pine-800);background:var(--tint-100)}
.chip--info::before{display:none}

/* nota "materiał poglądowy" na zdjęciach */
.media-note{position:absolute;left:.75rem;bottom:.75rem;z-index:1;font:500 .71rem/1.2 var(--font-body);letter-spacing:.02em;color:#fff;background:oklch(0.22 0.03 160 / .62);padding:.3rem .6rem;border-radius:var(--radius-sm);pointer-events:none}

/* ---------- Karty lokali ---------- */
.units-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(20rem,100%),1fr));gap:clamp(1.25rem,2.5vw,2rem)}
.unit-card{
  position:relative;display:flex;flex-direction:column;background:var(--bg);
  border:1px solid var(--line-soft);border-radius:var(--radius-lg);overflow:hidden;
  transition:box-shadow .25s var(--ease-out),border-color .25s var(--ease-out),translate .25s var(--ease-out);
}
.unit-card:hover{box-shadow:var(--shadow-md);border-color:var(--line);translate:0 -2px}
.unit-card__media{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--tint-100)}
.unit-card__media img{width:100%;height:100%;object-fit:cover;transition:scale .45s var(--ease-out)}
.unit-card:hover .unit-card__media img{scale:1.03}
.unit-card__media .chip{position:absolute;top:.75rem;left:.75rem;z-index:1;box-shadow:var(--shadow-sm)}
.unit-card__body{display:flex;flex-direction:column;gap:var(--sp-3);padding:1.25rem 1.25rem 1.35rem;flex:1}
.unit-card__title{font-family:var(--font-display);font-size:1.35rem;font-weight:600;margin:0}
.unit-card__title a{color:inherit;text-decoration:none}
.unit-card__title a::after{content:"";position:absolute;inset:0}
.unit-card__loc{color:var(--ink-soft);font-size:var(--text-sm);margin:0;display:flex;align-items:center;gap:.4rem}
.unit-card__facts{display:flex;flex-wrap:wrap;gap:.4rem .95rem;list-style:none;padding:.75rem 0 0;margin:0;border-top:1px solid var(--line-soft);font-size:var(--text-sm)}
.unit-card__facts li{display:flex;align-items:center;gap:.4rem;color:var(--ink)}
.unit-card__facts svg{color:var(--pine-700);flex:none}
.unit-card__facts b{font-weight:600;font-variant-numeric:tabular-nums}
.unit-card__price{margin-top:auto;padding-top:var(--sp-3);display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3)}
.unit-card__price .val{font-weight:700;font-size:1.15rem;font-variant-numeric:tabular-nums}
.unit-card__price .per{color:var(--ink-soft);font-size:var(--text-xs)}
.unit-card--sold .unit-card__media img{filter:grayscale(1);opacity:.75}
.unit-card--sold{background:var(--bg-soft)}
.unit-card--sold .unit-card__title,.unit-card--sold .unit-card__facts li{color:var(--ink-soft)}

/* ---------- Wyszukiwarka ---------- */
.browse{display:grid;grid-template-columns:17.5rem minmax(0,1fr);gap:clamp(1.5rem,3vw,3rem);align-items:start}
.filters{position:sticky;top:96px;display:flex;flex-direction:column;gap:var(--sp-5)}
.filters-form fieldset{border:0;padding:0;margin:0;display:grid;gap:.6rem}
.filters-form legend,.filters-form .f-label{font:600 var(--text-sm)/1.3 var(--font-body);letter-spacing:.01em;margin-bottom:.15rem;padding:0;color:var(--ink)}
.filters-form .check{display:flex;align-items:center;gap:.6rem;font-size:var(--text-sm);cursor:pointer;min-height:28px}
.filters-form .check input{width:1.15rem;height:1.15rem;accent-color:var(--pine-700);cursor:pointer;margin:0}
.field{display:grid;gap:.4rem}
.field > label{font:600 var(--text-sm)/1.3 var(--font-body);color:var(--ink)}
.field .hint{font-size:var(--text-xs);color:var(--ink-soft)}
select,input[type="text"],input[type="email"],input[type="tel"],input[type="number"],textarea{
  font:400 1rem/1.4 var(--font-body);color:var(--ink);background:#fff;
  border:1.5px solid var(--line);border-radius:var(--radius-sm);
  padding:.6rem .75rem;min-height:46px;width:100%;
  transition:border-color .18s var(--ease-out);
}
select:hover,input:hover:not([type="checkbox"]):not([type="radio"]),textarea:hover{border-color:oklch(0.75 0.03 155)}
::placeholder{color:oklch(0.52 0.02 160);opacity:1}
select:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--pine-600);outline-offset:1px;border-color:var(--pine-600)}
select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23374d40' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .7rem center;padding-right:2.3rem;cursor:pointer}
textarea{min-height:8.5rem;resize:vertical}
.range-pair{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.seg{display:flex;border:1.5px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}
.seg button{flex:1;font:500 var(--text-sm)/1 var(--font-body);background:#fff;color:var(--ink-soft);border:0;padding:.65rem .5rem;min-height:44px;cursor:pointer;transition:background-color .15s,color .15s}
.seg button + button{border-left:1.5px solid var(--line)}
.seg button[aria-pressed="true"]{background:var(--pine-700);color:#fff}
.seg button:not([aria-pressed="true"]):hover{background:var(--tint-100);color:var(--pine-700)}

.browse-top{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-5)}
.browse-count{font-weight:600;margin:0}
.browse-count b{font-variant-numeric:tabular-nums}
.browse-sort{display:flex;align-items:center;gap:.55rem;margin-left:auto}
.browse-sort label{font-size:var(--text-sm);color:var(--ink-soft)}
.browse-sort select{width:auto;min-height:44px}
.filters-open{display:none}
.active-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 var(--sp-4);padding:0;list-style:none}
.active-chips button{
  display:inline-flex;align-items:center;gap:.4rem;font:500 var(--text-xs)/1 var(--font-body);
  background:var(--tint-100);color:var(--pine-800);border:1px solid var(--line-soft);
  border-radius:999px;padding:.45rem .75rem;cursor:pointer;min-height:34px;
}
.active-chips button:hover{background:var(--tint-200)}
.active-chips .clear-all{background:none;border-color:transparent;color:var(--ink-soft);text-decoration:underline;text-underline-offset:3px}
.active-chips .clear-all:hover{color:var(--pine-700);background:none}

.empty-state{border:1.5px dashed var(--line);border-radius:var(--radius-lg);padding:clamp(2.5rem,6vw,4.5rem) var(--sp-5);text-align:center;display:grid;justify-items:center;gap:var(--sp-3)}
.empty-state h3{margin:0}
.empty-state p{margin:0;color:var(--ink-soft)}

/* dialog filtrów (mobile) */
.filters-dialog{border:0;border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:0;width:100%;max-width:100%;margin:auto 0 0;max-height:88dvh;background:var(--bg)}
.filters-dialog::backdrop{background:oklch(0.2 0.03 160 / .45)}
.filters-dialog__in{padding:1.25rem;overflow:auto;max-height:88dvh}
.filters-dialog__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-4)}
.filters-dialog__top h2{font:600 1.25rem/1.2 var(--font-body);margin:0}
.filters-dialog__apply{position:sticky;bottom:0;background:linear-gradient(to top,var(--bg) 70%,transparent);padding-top:var(--sp-4);margin-top:var(--sp-5);display:grid;gap:.5rem}

/* ---------- Strona lokalu ---------- */
.breadcrumbs{font-size:var(--text-sm);color:var(--ink-soft);margin:var(--sp-5) 0 var(--sp-4)}
.breadcrumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.35rem;padding:0;margin:0}
.breadcrumbs li+li::before{content:"/";margin-right:.35rem;color:var(--line)}
.breadcrumbs a{color:var(--ink-soft);text-decoration:none}
.breadcrumbs a:hover{color:var(--pine-700);text-decoration:underline}

.unit-hero{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(1.5rem,3vw,3rem);align-items:start}
.gallery__main{position:relative;border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:16/10;background:var(--tint-100);cursor:zoom-in;border:0;padding:0;display:block;width:100%}
.gallery__main img{width:100%;height:100%;object-fit:cover}
.gallery__thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.5rem,1fr));gap:.6rem;margin-top:.6rem}
.gallery__thumbs button{border:2px solid transparent;border-radius:var(--radius-sm);overflow:hidden;padding:0;cursor:pointer;background:none;aspect-ratio:4/3}
.gallery__thumbs button img{width:100%;height:100%;object-fit:cover}
.gallery__thumbs button[aria-current="true"]{border-color:var(--pine-700)}
.gallery__thumbs button:hover{border-color:var(--pine-600)}

.unit-summary{display:grid;gap:var(--sp-4)}
.unit-summary h1{margin-bottom:var(--sp-1)}
.unit-summary .loc{color:var(--ink-soft);display:flex;align-items:center;gap:.45rem;margin:0}
.facts-dl{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--line-soft);border-radius:var(--radius-lg);overflow:hidden;margin:0}
.facts-dl > div{padding:.85rem 1.1rem;display:grid;gap:.15rem;border-top:1px solid var(--line-soft)}
.facts-dl > div:nth-child(-n+2){border-top:0}
.facts-dl > div:nth-child(odd){border-right:1px solid var(--line-soft)}
.facts-dl dt{font-size:var(--text-xs);color:var(--ink-soft);letter-spacing:.01em}
.facts-dl dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums}
.price-box{background:var(--bg-soft);border:1px solid var(--line-soft);border-radius:var(--radius-lg);padding:1.1rem 1.25rem;display:grid;gap:.2rem}
.price-box .lbl{font-size:var(--text-xs);color:var(--ink-soft)}
.price-box .val{font-family:var(--font-display);font-size:1.7rem;font-weight:600;font-variant-numeric:tabular-nums}
.price-box .per{font-size:var(--text-sm);color:var(--ink-soft)}
.unit-cta{display:flex;flex-wrap:wrap;gap:var(--sp-3)}

.rooms-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}
.rooms-table th,.rooms-table td{text-align:left;padding:.6rem .75rem;border-bottom:1px solid var(--line-soft)}
.rooms-table th{font-weight:600;color:var(--ink-soft);font-size:var(--text-xs);letter-spacing:.02em}
.rooms-table td:last-child,.rooms-table th:last-child{text-align:right;font-variant-numeric:tabular-nums}
.rooms-table tfoot td{font-weight:700;border-bottom:0;border-top:2px solid var(--line)}
.plan-figure{border:1px solid var(--line-soft);border-radius:var(--radius-lg);overflow:hidden;background:#fff}
.plan-figure img{width:100%;height:auto}
.plan-figure figcaption{padding:.75rem 1rem;font-size:var(--text-xs);color:var(--ink-soft);border-top:1px solid var(--line-soft)}

/* dokumenty */
.docs-list{list-style:none;padding:0;margin:0;display:grid;gap:.6rem}
.docs-list li{border:1px solid var(--line-soft);border-radius:var(--radius);transition:border-color .18s var(--ease-out),background-color .18s var(--ease-out)}
.docs-list li:hover{border-color:var(--line);background:var(--tint-100)}
.docs-list a,.docs-list .doc-pending{display:flex;align-items:center;gap:.9rem;padding:.9rem 1.1rem;text-decoration:none;color:var(--ink)}
.docs-list .doc-ico{flex:none;width:42px;height:42px;border-radius:var(--radius-sm);background:var(--tint-200);color:var(--pine-700);display:flex;align-items:center;justify-content:center}
.docs-list .doc-name{font-weight:600;line-height:1.3}
.docs-list .doc-meta{font-size:var(--text-xs);color:var(--ink-soft);margin-top:.1rem}
.docs-list .doc-dl{margin-left:auto;color:var(--pine-700);flex:none;display:flex;align-items:center;gap:.35rem;font-size:var(--text-sm);font-weight:600}
.docs-list .doc-pending{cursor:default}
.docs-list .doc-pending .doc-ico{background:var(--st-sold-bg);color:var(--st-sold-ink)}
.docs-list .doc-pending .doc-name{color:var(--ink-soft)}

/* ---------- Formularze ---------- */
.form-grid{display:grid;gap:var(--sp-4)}
.form-grid .row{display:grid;gap:var(--sp-4);grid-template-columns:1fr 1fr}
.field .error-msg{display:none;font-size:var(--text-sm);color:var(--error);margin-top:.1rem}
.field.has-error input,.field.has-error textarea{border-color:var(--error)}
.field.has-error .error-msg{display:block}
.consent{display:flex;gap:.7rem;align-items:flex-start;font-size:var(--text-sm);color:var(--ink-soft);cursor:pointer}
.consent input{width:1.15rem;height:1.15rem;accent-color:var(--pine-700);margin-top:.2rem;flex:none;cursor:pointer}
.form-status{border-radius:var(--radius);padding:1rem 1.25rem;font-size:var(--text-sm)}
.form-status--ok{background:var(--tint-200);color:var(--pine-800)}
.form-status--err{background:var(--error-bg);color:var(--error)}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ---------- Lightbox ---------- */
.lightbox{border:0;background:transparent;padding:0;width:min(96vw,1200px);max-width:96vw}
.lightbox::backdrop{background:oklch(0.15 0.02 160 / .88)}
.lightbox figure{margin:0;position:relative}
.lightbox img{width:100%;height:auto;max-height:82dvh;object-fit:contain;border-radius:var(--radius)}
.lightbox figcaption{color:oklch(0.9 0.01 150);text-align:center;font-size:var(--text-sm);padding-top:.75rem}
.lightbox__btn{position:absolute;top:50%;translate:0 -50%;width:48px;height:48px;border-radius:50%;border:0;background:oklch(1 0 0 / .92);color:var(--ink);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md)}
.lightbox__btn:hover{background:#fff}
.lightbox__prev{left:.75rem}.lightbox__next{right:.75rem}
.lightbox__close{position:absolute;top:.75rem;right:.75rem;width:44px;height:44px;border-radius:50%;border:0;background:oklch(1 0 0 / .92);color:var(--ink);cursor:pointer;display:flex;align-items:center;justify-content:center}
.lightbox__close:hover{background:#fff}

/* ---------- Realizacje / galerie ---------- */
.projects-strip{display:grid;grid-template-columns:1.6fr 1fr;grid-template-rows:1fr 1fr;gap:1rem}
.projects-strip a,.projects-strip button{position:relative;border-radius:var(--radius-lg);overflow:hidden;display:block;background:var(--tint-100);border:0;padding:0;cursor:pointer}
.projects-strip a:first-child,.projects-strip button:first-child{grid-row:1/3}
.projects-strip img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;transition:scale .45s var(--ease-out)}
.projects-strip a:first-child img,.projects-strip button:first-child img{aspect-ratio:auto;position:absolute;inset:0}
.projects-strip a:hover img,.projects-strip button:hover img{scale:1.03}

.project-card{border:1px solid var(--line-soft);border-radius:var(--radius-lg);overflow:hidden;background:#fff;display:flex;flex-direction:column;transition:box-shadow .25s var(--ease-out),translate .25s var(--ease-out)}
.project-card:hover{box-shadow:var(--shadow-md);translate:0 -2px}
.project-card__media{position:relative;aspect-ratio:16/10;background:var(--pine-900);overflow:hidden}
.project-card__media img{width:100%;height:100%;object-fit:cover}
.project-card__media--tile{display:grid;place-items:center}
.project-card__media--tile svg{width:38%;height:auto;opacity:.9}
.project-card:nth-child(even) .project-card__media{background:var(--pine-800)}
.project-card:nth-child(even) .project-card__media--tile svg{transform:scaleX(-1)}
.project-card__body{padding:1.25rem;display:grid;gap:.35rem}
.project-card__body h3{margin:0;font-size:1.3rem}
.project-card__body .loc{color:var(--ink-soft);font-size:var(--text-sm);display:flex;gap:.4rem;align-items:center}
.project-card__body .desc{margin:.35rem 0 0;font-size:var(--text-sm);color:var(--ink-soft)}

/* ---------- Split (aktualna inwestycja) ---------- */
.invest-split{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(2rem,4vw,4rem);align-items:center}
.invest-split__media{position:relative;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg)}
.invest-split__media img{width:100%;height:auto}
.invest-facts{list-style:none;margin:var(--sp-5) 0;padding:0;display:grid;gap:.65rem;font-size:var(--text-base)}
.invest-facts li{display:flex;gap:.7rem;align-items:baseline}
.invest-facts li b{font-variant-numeric:tabular-nums}
.invest-facts svg{color:var(--pine-700);flex:none;translate:0 3px}

/* ---------- Pasmo CTA ---------- */
.cta-band{background:var(--pine-900);color:#fff;position:relative;overflow:hidden}
.cta-band .arcs-bg{position:absolute;right:-4rem;bottom:-5rem;width:26rem;color:oklch(0.36 0.07 154 / .55);pointer-events:none}
.cta-band__in{position:relative;display:grid;gap:var(--sp-5);max-width:44rem}
.cta-band h2{color:#fff;margin-bottom:0}
.cta-band p{color:oklch(0.93 0.015 150);margin:0;font-size:var(--text-lg)}
.cta-band .hero__cta{margin-top:var(--sp-2)}
.cta-band a.plain{color:#fff}

/* ---------- Stopka ---------- */
.site-footer{background:var(--pine-900);color:oklch(0.93 0.015 150);font-size:var(--text-sm);line-height:1.7;letter-spacing:.01em}
.site-footer a{color:#fff;text-decoration:none}
.site-footer a:hover{text-decoration:underline;text-underline-offset:3px;color:#fff}
.site-footer__grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.4fr;gap:var(--sp-6);padding-block:var(--sp-8) var(--sp-6)}
.site-footer__brand img{height:40px;width:auto;margin-bottom:var(--sp-4)}
.site-footer__brand p{color:oklch(0.88 0.02 150);max-width:34ch}
.site-footer h3{font:600 var(--text-sm)/1.3 var(--font-body);letter-spacing:.03em;color:#fff;margin-bottom:var(--sp-3)}
.site-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:.5rem}
.site-footer address{font-style:normal}
.site-footer__legal{border-top:1px solid oklch(0.42 0.06 155 / .6);padding-block:var(--sp-5);display:grid;gap:var(--sp-3)}
.site-footer__legal p{color:oklch(0.82 0.02 150);font-size:var(--text-xs);max-width:none;margin:0}
.site-footer__row{display:flex;flex-wrap:wrap;gap:var(--sp-4);justify-content:space-between;align-items:center}

/* ---------- Strony treści ---------- */
.prose{max-width:68ch}
.prose h2{margin-top:var(--sp-7)}
.prose h3{margin-top:var(--sp-6)}
.page-hero{padding-block:clamp(3.5rem,6vw,5.5rem) 0}
.page-hero .lead{font-size:var(--text-lg);color:var(--ink-soft);max-width:52ch}
.todo{background:var(--st-res-bg);color:var(--st-res-ink);border-radius:var(--radius-sm);padding:.1em .45em;font-weight:600;white-space:nowrap}

.values-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:var(--sp-6) var(--sp-7)}
.values-grid h3{font-family:var(--font-body);font-size:var(--text-lg);font-weight:600;display:flex;align-items:center;gap:.6rem;margin-bottom:var(--sp-2)}
.values-grid h3 svg{color:var(--pine-700)}
.values-grid p{color:var(--ink-soft);font-size:var(--text-base);margin:0}

.data-card{border:1px solid var(--line-soft);background:var(--bg-soft);border-radius:var(--radius-lg);padding:clamp(1.5rem,3vw,2.25rem)}
.data-card dl{display:grid;grid-template-columns:auto 1fr;gap:.5rem 1.5rem;margin:0;font-size:var(--text-base)}
.data-card dt{color:var(--ink-soft)}
.data-card dd{margin:0;font-weight:600}

/* kontakt */
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(2rem,4vw,4rem);align-items:start}
.contact-items{list-style:none;padding:0;margin:var(--sp-5) 0;display:grid;gap:1rem}
.contact-items a{display:flex;align-items:center;gap:1rem;text-decoration:none;color:var(--ink);padding:1rem 1.1rem;border:1px solid var(--line-soft);border-radius:var(--radius);transition:border-color .18s,background-color .18s}
.contact-items a:hover{border-color:var(--line);background:var(--tint-100)}
.contact-items .ico{flex:none;width:44px;height:44px;border-radius:50%;background:var(--tint-200);color:var(--pine-700);display:flex;align-items:center;justify-content:center}
.contact-items .lbl{font-size:var(--text-xs);color:var(--ink-soft)}
.contact-items .val{font-weight:600;font-variant-numeric:tabular-nums}
.map-embed{border:1px solid var(--line-soft);border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:4/3;position:relative;background:var(--tint-100);display:grid;place-items:center}
.map-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.map-embed__ph{display:grid;gap:var(--sp-3);justify-items:center;text-align:center;padding:var(--sp-5)}
.map-embed__ph p{margin:0;color:var(--ink-soft);font-size:var(--text-sm);max-width:36ch}

/* ==========================================================================
   Scroll experience (strona główna) — wideo „odtwarzane" przewijaniem,
   w konwencji SKANDOM: ciemny hero z reveal słów → circle-wipe kadru →
   sekcje przesuwające się nad przyklejonym kadrem → jasna treść produktowa.
   Domyślnie (bez JS / save-data / brak GSAP): statyczny ciemny hero z posterem,
   #scroll-container ukryty. body.scrub-on włącza doświadczenie;
   body.scrub-static = świadomy fallback (bez klatek).
   ========================================================================== */

/* ---- Loader (dwufazowy) ---- */
#loader{position:fixed;inset:0;z-index:80;display:grid;place-items:center;background:var(--pine-900);color:var(--brand-500);transition:clip-path .8s var(--ease-out);clip-path:inset(0 0 0 0)}
#loader.done{clip-path:inset(0 0 100% 0)}
.no-js #loader,body.scrub-static #loader{display:none}
.loader-inner{display:grid;justify-items:center;gap:1.1rem}
.loader-brand{font-family:var(--font-display);font-size:1.05rem;font-weight:600;letter-spacing:.4em;text-indent:.4em;color:#fff;margin:0}
.loader-track{width:180px;height:2px;background:oklch(1 0 0 / .16);overflow:hidden;border-radius:2px}
#loader-bar{width:100%;height:100%;background:var(--brand-500);transform:scaleX(0);transform-origin:left;transition:transform .2s ease}
#loader-percent{font:500 var(--text-xs)/1 var(--font-body);color:oklch(0.85 0.02 150);font-variant-numeric:tabular-nums;margin:0}

/* ---- Lenis ---- */
html.lenis{height:auto}
html.lenis,html.lenis body{scroll-behavior:auto !important}
.lenis.lenis-stopped{overflow:hidden}

/* ---- Kadr wideo: fixed, circle-wipe ---- */
.canvas-wrap{position:fixed;inset:0;z-index:1;background:var(--pine-900);clip-path:circle(0% at 50% 50%);visibility:hidden;pointer-events:none}
.canvas-wrap canvas{width:100%;height:100%;display:block}
.canvas-wrap::after{content:"";position:absolute;inset:0;pointer-events:none;background:
  linear-gradient(90deg,oklch(0 0 0 / .58) 0%,oklch(0 0 0 / .18) 30%,transparent 50%,transparent 50%,oklch(0 0 0 / .18) 70%,oklch(0 0 0 / .58) 100%),
  linear-gradient(180deg,oklch(0 0 0 / .38) 0%,transparent 24%,transparent 64%,oklch(0 0 0 / .52) 100%)}
.no-js .canvas-wrap,body.scrub-static .canvas-wrap{display:none}

/* ---- Overlay + marquee ---- */
.scrub-overlay{position:fixed;inset:0;z-index:3;background:oklch(0.20 0.03 158);opacity:0;visibility:hidden;pointer-events:none}
.scrub-marquee{position:fixed;left:0;bottom:9vh;width:100%;z-index:2;overflow:hidden;pointer-events:none;opacity:0;visibility:hidden}
.scrub-marquee__text{white-space:nowrap;margin:0;max-width:none;font-family:var(--font-display);font-style:italic;font-size:11vw;line-height:1;color:transparent;-webkit-text-stroke:1px oklch(1 0 0 / .4);will-change:transform}
.no-js .scrub-overlay,.no-js .scrub-marquee,body.scrub-static .scrub-overlay,body.scrub-static .scrub-marquee{display:none}

/* ---- Hero: ciemny ekran startowy ---- */
.hero-scrub{position:relative;z-index:5;min-height:100svh;display:flex;flex-direction:column;justify-content:center;background:var(--pine-900);color:#fff;overflow:hidden;padding-block:clamp(6.5rem,15vh,9rem) 7.5rem}
.hero-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.3}
body.scrub-on .hero-fallback{display:none}            /* pełne doświadczenie: hero czysto ciemne — kadr wjeżdża circle-wipem */
.hero-scrub::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(to top,oklch(0.24 0.05 158 / .55),transparent 62%)}
.no-js .hero-scrub::before,body.scrub-static .hero-scrub::before{background:linear-gradient(to top,oklch(0.22 0.05 158 / .88) 0%,oklch(0.22 0.05 158 / .42) 46%,oklch(0.22 0.05 158 / .2) 100%)}
.hero-watermark{position:absolute;right:-5vw;bottom:-6vw;width:min(46vw,34rem);color:var(--brand-500);opacity:.1;pointer-events:none}
.hero-scrub__in{position:relative;z-index:1;width:100%;will-change:opacity,transform}
.hero-kicker{font:600 var(--text-sm)/1.4 var(--font-body);letter-spacing:.01em;color:var(--brand-500);margin:0 0 1.4rem;max-width:44ch}
.hero-heading{font-family:var(--font-display);font-size:clamp(2.6rem,6vw,5rem);font-weight:600;line-height:1.04;letter-spacing:-.02em;color:#fff;margin:0;max-width:15ch;text-wrap:balance}
.hero-heading em{font-style:normal;color:var(--brand-500)}
.hero-heading .word-mask{display:inline-block;overflow:hidden;vertical-align:top;padding-block:.06em}
.hero-heading .word{display:inline-block}
.hero-tagline{margin:1.6rem 0 0;max-width:52ch;font-size:clamp(1.05rem,.8vw + .95rem,1.25rem);line-height:1.6;color:oklch(0.94 0.012 150);text-wrap:pretty}
.hero-cta{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-top:2.4rem}
.hero-meta{position:absolute;left:0;right:0;bottom:0;z-index:1;width:min(var(--container),calc(100% - 2*clamp(1.25rem,4vw,2.5rem)));margin-inline:auto;display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;padding-block:1.4rem;border-top:1px solid oklch(1 0 0 / .14);font-size:var(--text-sm)}
.hero-meta p{margin:0;max-width:none;color:oklch(0.82 0.02 150);display:flex;flex-direction:column;gap:.15rem}
.hero-meta strong{font-family:var(--font-display);font-size:1.5rem;font-weight:600;color:#fff;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.hero-scroll{position:absolute;right:clamp(1.25rem,4vw,2.5rem);bottom:8.5rem;z-index:1;display:flex;flex-direction:column;align-items:center;gap:.7rem;color:oklch(0.82 0.02 150);font:500 var(--text-xs)/1 var(--font-body);letter-spacing:.14em;text-transform:uppercase}
.hero-scroll svg{animation:hint-nudge 2.6s var(--ease-out) infinite}
@keyframes hint-nudge{0%,100%{transform:translateY(0);opacity:1}50%{transform:translateY(7px);opacity:.5}}

/* ---- Sekcje nad kadrem ---- */
#scroll-container{display:none}
body.scrub-on #scroll-container{display:block;position:relative;z-index:4;height:600vh;pointer-events:none;overflow-x:clip}
.scrub-sec{position:absolute;left:0;width:100%;min-height:100vh;display:flex;flex-direction:column;justify-content:center;color:#fff;pointer-events:none}
.scrub-sec .scrub-sec__inner{pointer-events:auto;max-width:34rem}
.scrub-sec--right .scrub-sec__inner{margin-left:auto}
.scrub-sec--center{text-align:center}
.scrub-sec--center .scrub-sec__inner{margin-inline:auto;max-width:46rem}
.scrub-sec--center .scrub-sec__label,.scrub-sec--center .scrub-sec__body{margin-inline:auto}
/* top% = (mid*(H-1)+0.5)/H dla H=6 (600vh); mid = środek zakresu enter/leave */
.scrub-sec[data-enter="12"]{top:25.83%;transform:translateY(-50%)}
.scrub-sec[data-enter="34"]{top:44.17%;transform:translateY(-50%)}
.scrub-sec[data-enter="56"]{top:61.67%;transform:translateY(-50%)}
.scrub-sec[data-enter="78"]{top:82.5%;transform:translateY(-50%)}
.scrub-sec__label{font:600 var(--text-sm)/1.3 var(--font-body);letter-spacing:.04em;text-transform:uppercase;color:oklch(0.82 0.11 150);margin:0 0 var(--sp-3);text-shadow:0 1px 12px oklch(0 0 0 / .55)}
.scrub-sec__h{font-family:var(--font-display);font-size:clamp(1.9rem,3.4vw + 1rem,3.3rem);font-weight:600;line-height:1.12;letter-spacing:-.015em;color:#fff;margin:0 0 var(--sp-4);text-shadow:0 2px 30px oklch(0 0 0 / .55),0 1px 4px oklch(0 0 0 / .4);text-wrap:balance}
.scrub-sec__body{max-width:32rem;font-size:clamp(1.05rem,.5vw + .95rem,1.2rem);line-height:1.6;color:#fff;text-shadow:0 1px 3px oklch(0 0 0 / .6),0 2px 22px oklch(0 0 0 / .5);margin:0;text-wrap:pretty}
.scrub-sec--right .scrub-sec__body{margin-left:auto}
.scrub-sec--cta .hero-cta{margin-top:var(--sp-6);justify-content:center}
.scrub-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(1.5rem,4vw,4rem);pointer-events:auto}
.scrub-stat__row{display:flex;align-items:baseline;justify-content:center;gap:.25rem;margin:0;font-family:var(--font-display);font-size:clamp(2.6rem,5vw,4.6rem);font-weight:600;color:#fff;font-variant-numeric:tabular-nums;line-height:1}
.scrub-stat__suffix{font-size:.4em;font-weight:600;color:var(--brand-500)}
.scrub-stat__label{margin:.85rem auto 0;font-size:var(--text-sm);color:oklch(0.9 0.02 150);line-height:1.5;max-width:22ch;text-align:center}

/* podczas doświadczenia body jest ciemne — poza kołem circle-wipe widać zieleń, nie biel */
body.scrub-on{background:var(--pine-900)}
/* treść po doświadczeniu przykrywa przyklejony kadr */
body.scrub-on .page-after{position:relative;z-index:6;background:var(--bg)}
body.scrub-on .site-footer{position:relative;z-index:6}

/* nagłówek chowa się przy scrollu w dół, wraca w górę */
.site-header.is-hidden{transform:translateY(-100%)}

@media (max-width:64rem){
  body.scrub-on #scroll-container{height:560vh}
  .hero-scroll{display:none}
}
/* niskie ekrany (laptopy): liczby w hero kolidowałyby z CTA — chowamy, wracają niżej */
@media (min-width:40rem) and (max-height:800px){
  .hero-meta{display:none}
  .hero-scrub{justify-content:center}
}
@media (max-width:40rem){
  body.scrub-on #scroll-container{height:520vh}
  .hero-heading{font-size:clamp(2.3rem,10vw,3rem);max-width:none}
  .hero-meta{display:none}                 /* na mobile liczby wracają w sekcji „Rodzinna firma" i statystykach — bez kolizji z CTA */
  .hero-scrub{justify-content:flex-start;padding-block:clamp(6rem,14vh,8rem) 4rem}
  .scrub-sec .scrub-sec__inner{max-width:none;background:oklch(0.18 0.03 158 / .74);padding:1.5rem 1.4rem;border-radius:var(--radius)}
  .scrub-stats{grid-template-columns:1fr 1fr;gap:2rem 1rem}
  .scrub-marquee__text{font-size:17vw}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
}

/* ---------- Responsywność ---------- */
@media (max-width:64rem){
  .site-nav,.site-header__cta,.site-header .lang-switch{display:none}
  .nav-toggle{display:inline-flex}
  .call-fab{display:flex}
  .browse{grid-template-columns:minmax(0,1fr)}
  .filters{display:none}
  .filters-open{display:inline-flex}
  .unit-hero{grid-template-columns:minmax(0,1fr)}
  .invest-split{grid-template-columns:minmax(0,1fr)}
  .contact-grid{grid-template-columns:minmax(0,1fr)}
  .site-footer__grid{grid-template-columns:1fr 1fr}
}
@media (max-width:40rem){
  :root{--text-base:1rem}
  .hero{min-height:76svh}
  .form-grid .row{grid-template-columns:1fr}
  .projects-strip{grid-template-columns:1fr;grid-template-rows:auto}
  .projects-strip a:first-child{grid-row:auto}
  .facts-dl{grid-template-columns:1fr}
  .facts-dl > div{border-right:0 !important}
  .facts-dl > div:nth-child(2){border-top:1px solid var(--line-soft)}
  .site-footer__grid{grid-template-columns:1fr}
  .figures div{flex:1 1 100%}
}
