/* ===== Katalog nieruchomości ===== */
/* strony wewnętrzne startują z jasnym nagłówkiem — nie ma tu ciemnego hero */
body.sub{padding-top:128px}
body.sub .hdr{background:rgba(246,245,236,.94);backdrop-filter:blur(10px);box-shadow:0 1px 0 var(--line)}
/* podstrony nie mają ciemnego hero, więc treść nagłówka zawsze ciemna —
   ale pasek info i przycisk CTA zachowują się jak na stronie głównej */
body.sub .hdr .nav a,body.sub .hdr .nav__t,body.sub .hdr .logo,body.sub .hdr .lang__btn{color:var(--text)}
body.sub .hdr .logo__mark{background-color:var(--accent)}
body.sub .hdr .logo__sub{color:var(--metal)}
body.sub.is-scrolled{padding-top:82px}

.cat{padding:34px 0 90px}
.crumbs{font-size:12.5px;color:var(--text-2);margin-bottom:26px}
.crumbs a{color:var(--text-2)}
.crumbs a:hover{color:var(--accent)}
.crumbs span{margin:0 6px;opacity:.5}
.cat__head h1{font-family:var(--serif);font-weight:400;font-size:clamp(32px,4.2vw,58px);line-height:1.05;margin:8px 0 0}
.cat__lead{max-width:62ch;color:var(--text-2);margin:16px 0 0}

/* ---------- filtry ---------- */
.filters{margin:38px 0 26px}
.filters__bar{
  display:grid;grid-template-columns:repeat(7,1fr) auto;gap:0;
  border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--bg)
}
.filters__bar .fld{border-right:1px solid var(--line)}
.filters__more{
  display:grid;grid-template-columns:repeat(3,1fr) auto;gap:20px;align-items:end;
  margin-top:14px;padding:20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-alt)
}
.filters__more .fld{border:0;padding:0}
.filters__more input{
  width:100%;border:0;border-bottom:1px solid var(--line);background:none;
  padding:8px 0;font-family:var(--sans);font-size:14px;font-weight:300;color:var(--text)
}
.filters__more input:focus{outline:none;border-bottom-color:var(--accent)}
.fchk{display:flex;align-items:center;gap:9px;font-size:14px;color:var(--text-2);white-space:nowrap}
.fchk input{accent-color:var(--accent)}
.filters__foot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:14px;flex-wrap:wrap;font-size:13.5px;color:var(--text-2)}
.filters__acts{display:flex;gap:22px}
.lnk{background:none;border:0;padding:0;cursor:pointer;color:var(--text);font-size:13.5px;border-bottom:1px solid var(--line)}
.lnk:hover{color:var(--accent)}

/* ---------- pasek wyników ---------- */
.res{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-wrap:wrap}
.res__sort{display:flex;align-items:center;gap:11px;font-size:13.5px;color:var(--text-2)}
.res__sort select{border:0;background:none;font-family:var(--sans);font-size:14px;color:var(--text);cursor:pointer}
.res__sort select:focus{outline:none}
.res__view{display:flex;gap:6px}
.vbtn{width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--line);border-radius:6px;background:none;cursor:pointer;color:var(--text-2)}
.vbtn.on{border-color:var(--accent);color:var(--accent)}
.vbtn .ico{width:17px;height:17px}

/* ---------- siatka wyników ---------- */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:30px}
.grid .card{width:auto;background:var(--bg)}
.grid .card__b{position:relative}
.card__ref{position:absolute;right:20px;top:18px;font-size:10.5px;letter-spacing:.1em;color:var(--text-2);opacity:.75}

/* widok listy */
.grid--list{grid-template-columns:1fr;gap:16px}
/* widok listy: zdjęcie dwukrotnie większe */
.grid--list .card{display:grid;grid-template-columns:600px 1fr;align-items:stretch}
.grid--list .card__ph{aspect-ratio:auto;height:100%;min-height:400px}
.grid--list .card__b{padding:24px 26px;display:flex;flex-direction:column;justify-content:center}
.grid--list .card h3{font-size:23px}

.empty{margin:46px 0;color:var(--text-2)}
.empty a{color:var(--accent);border-bottom:1px solid var(--line)}

/* ---------- paginacja ---------- */
.pager{display:flex;gap:7px;justify-content:center;margin-top:48px;flex-wrap:wrap}
.pager button{
  min-width:40px;height:40px;padding:0 12px;border:1px solid var(--line);border-radius:6px;
  background:none;cursor:pointer;font-family:var(--sans);font-size:14px;color:var(--text);transition:border-color .2s,background .2s
}
.pager button:hover:not(:disabled){border-color:var(--accent)}
.pager button.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.pager button:disabled{opacity:.35;cursor:default}

@media (max-width:1200px){
  .grid--list .card{grid-template-columns:420px 1fr}
  .grid--list .card__ph{min-height:300px}
  .filters__bar{grid-template-columns:repeat(4,1fr)}
  .filters__bar .search__btn{grid-column:1/-1;padding:15px;justify-content:center}
  .grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:760px){
  /* pasek info 46px + nagłówek 68px; po przewinięciu zostaje sam nagłówek 60px */
  body.sub{padding-top:114px}
  body.sub.is-scrolled{padding-top:66px}
  .art-body h2,.svc-block,.pd h2{scroll-margin-top:76px}
  .filters__bar{grid-template-columns:1fr 1fr}
  .filters__more{grid-template-columns:1fr}
  .grid{grid-template-columns:1fr}
  .grid--list .card{grid-template-columns:1fr}
  .grid--list .card__ph{min-height:0;aspect-ratio:4/3}
  /* siedem pól w dwóch kolumnach: ostatnie zajmuje cały wiersz,
     żeby nie zostawała pusta komórka, plus poziome linie podziału */
  .filters__bar .fld{border-bottom:1px solid var(--line)}
  .filters__bar .fld:nth-child(2n){border-right:0}
  .filters__bar .fld:nth-last-of-type(1){grid-column:1/-1;border-right:0}
  .filters__foot{justify-content:center;text-align:center}
  .filters__acts{gap:18px}
  .crumbs{font-size:13px}
}

/* =================== KARTA OBIEKTU =================== */
.pd__hero{position:relative;height:min(62vh,620px);overflow:hidden;border-radius:var(--radius);background:#e6e3d8}
.pd__hero img{width:100%;height:100%;object-fit:cover;transform:scale(1.16)}
.pd__open{
  position:absolute;inset:0;display:grid;place-items:center;background:rgba(12,26,22,.18);
  transition:background .3s
}
.pd__open:hover{background:rgba(12,26,22,.3)}
.pd__open span{
  display:grid;place-items:center;width:150px;height:150px;border-radius:50%;
  background:rgba(12,26,22,.66);color:#fff;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;
  text-align:center;line-height:1.4;transition:width .3s,height .3s,background .3s
}
.pd__open:hover span{width:166px;height:166px;background:var(--accent)}
.pd__count{position:absolute;right:18px;bottom:18px;background:rgba(12,26,22,.7);color:#fff;font-size:12.5px;padding:7px 13px;border-radius:6px}

.pd{display:grid;grid-template-columns:1fr 340px;gap:56px;margin-top:44px;align-items:start}
.pd h1{font-family:var(--serif);font-weight:400;font-size:clamp(28px,3.4vw,46px);line-height:1.1;margin:0}
.pd__loc{display:flex;align-items:center;gap:8px;font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--metal);margin-bottom:12px}
.pd__price{font-size:clamp(24px,2.6vw,34px);color:var(--accent);margin:18px 0 0}
.pd__old{font-size:16px;color:var(--text-2);text-decoration:line-through;margin-left:10px}
.pd h2{font-family:var(--serif);font-weight:400;font-size:clamp(22px,2.2vw,30px);margin:44px 0 18px}
.pd__key{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:13px 30px}
.pd__key li{display:flex;align-items:center;gap:11px;font-size:15px;padding-bottom:11px;border-bottom:1px solid var(--line)}
.pd__key .ico{width:17px;height:17px;color:var(--metal);flex:none}
.pd__key b{font-weight:400;color:var(--text-2);margin-left:auto}
.pd__desc p{margin:0 0 1em;color:var(--text)}
.pd__note{font-size:13.5px;color:var(--text-2);font-style:italic;margin-top:14px}

/* sidebar */
.pd__side{position:sticky;top:110px;border:1px solid var(--line);border-radius:var(--radius);padding:26px;background:var(--bg)}
.pd__side .person{margin-bottom:18px}
.pd__acts{display:flex;flex-direction:column;gap:10px;margin-top:18px}
.pd__acts .btn{justify-content:center}
.pd__acts .btn--ghost{border-color:var(--line)}
.pd__side small{display:block;margin-top:16px;font-size:12.5px;color:var(--text-2);text-align:center}

/* pasek nawigacyjny */
.pd__nav{position:sticky;top:66px;z-index:30;display:flex;background:var(--accent);border-radius:var(--radius);overflow:hidden;margin-top:40px}
.pd__nav a{flex:1;text-align:center;padding:15px 10px;font-size:13px;color:rgba(242,242,242,.8);border-right:1px solid rgba(255,255,255,.12);transition:background .25s,color .25s}
.pd__nav a:last-child{border-right:0;background:var(--metal);color:#fff}
.pd__nav a:hover{background:rgba(255,255,255,.09);color:#fff}
.pd__nav a:last-child:hover{background:#5f5540;color:#fff}

/* galeria modal */
/* jawna kolumna minmax(0,1fr): bez niej domyślna kolumna auto rozrastała się
   do max-content kadru (1180px) i cała galeria wychodziła poza ekran telefonu */
.gal{position:fixed;inset:0;z-index:9997;background:rgba(10,18,15,.96);display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:1fr auto;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
.gal.on{opacity:1;visibility:visible}
.gal__stage{position:relative;display:grid;place-items:center;padding:56px 64px 12px;min-width:0;overflow:hidden}
/* Czysty render eGO (bez znaku wodnego) wpisuje zdjęcie w ramkę i dokłada białe pasy.
   Oś pasów zależy od proporcji konkretnego zdjęcia, więc samo object-fit nie wystarcza —
   kadr dostaje delikatny zoom w kontenerze z overflow:hidden. Docelowo: czyste zdjęcia z feedu. */
/* max-width jest konieczne: przy aspect-ratio wysokość z max-height wyliczała szerokość
   większą niż ekran, przez co na telefonie kadr wychodził poza scenę i zasłaniał krzyżyk */
.gal__frame{width:min(100%,1180px);max-width:100%;aspect-ratio:4/3;max-height:76vh;overflow:hidden;border-radius:6px;display:grid;place-items:center}
.gal__frame img{width:100%;height:100%;object-fit:cover;transform:scale(1.16)}
.gal__x{position:absolute;top:18px;right:22px;background:none;border:0;color:#fff;font-size:34px;line-height:1;cursor:pointer;opacity:.7}
.gal__x:hover{opacity:1}
.gal__nav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:rgba(0,0,0,.3);color:#fff;cursor:pointer;display:grid;place-items:center;font-size:22px}
.gal__nav:hover{background:rgba(0,0,0,.55)}
.gal__prev{left:14px} .gal__next{right:14px}
.gal__foot{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 24px 22px;color:rgba(255,255,255,.75);font-size:13px}
.gal__thumbs{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;max-width:70%}
.gal__thumbs img{width:76px;height:50px;object-fit:cover;border-radius:4px;opacity:.45;cursor:pointer;flex:none;transition:opacity .2s}
.gal__thumbs img.on{opacity:1;outline:2px solid var(--metal)}

@media (max-width:1000px){
  .pd{grid-template-columns:1fr;gap:34px}
  .pd__side{position:static}
  .pd__key{grid-template-columns:1fr}
  .gal__stage{padding:52px 12px 8px}
  .gal__thumbs{max-width:100%}
}

/* ---------- karta w katalogu: cena/m², slider, CTA na hover ---------- */
.grid .card__ph{display:block}
.grid .card__ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .4s}
.grid .card__ph img.on{opacity:1}
.card__a{
  position:absolute;top:50%;transform:translateY(-50%);z-index:3;
  width:34px;height:34px;border-radius:50%;border:0;cursor:pointer;
  background:rgba(255,255,255,.85);color:var(--accent);font-size:19px;line-height:1;
  opacity:0;transition:opacity .3s,background .2s
}
.card:hover .card__a{opacity:1}
.card__a:hover{background:#fff}
.card__a--p{left:10px} .card__a--n{right:10px}
.card__price s{display:block;font-size:12.5px;opacity:.7;font-weight:300}
.card__m2{display:flex;gap:14px;flex-wrap:wrap;margin-top:9px;font-size:12px;color:var(--text-2)}
.card__cta{
  display:block;margin-top:14px;padding:9px 14px;text-align:center;border-radius:6px;
  background:var(--accent);color:var(--on-accent);font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;
  opacity:0;transform:translateY(6px);transition:opacity .3s,transform .3s,background .2s
}
.card:hover .card__cta{opacity:1;transform:none}
.card__cta:hover{background:var(--metal);color:var(--bg)}
@media (hover:none){.card__cta,.card__a{opacity:1;transform:none}}

/* ---------- blog: wyróżniony wpis + siatka ---------- */
.blog__chips{display:flex;gap:9px;flex-wrap:wrap;margin:30px 0 34px}
.blog__chips button{
  border:1px solid var(--line);background:none;border-radius:999px;padding:8px 17px;cursor:pointer;
  font-family:var(--sans);font-size:12.5px;letter-spacing:.08em;color:var(--text-2);transition:all .2s
}
.blog__chips button:hover{border-color:var(--metal);color:var(--text)}
.blog__chips button.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.post--big{display:grid;grid-template-columns:1.15fr 1fr;gap:34px;align-items:center;margin-bottom:52px}
.post--big .post__ph{aspect-ratio:16/10}
.post--big h3{font-size:clamp(24px,2.6vw,36px);line-height:1.2}
.post--big p{font-size:16px;margin-top:12px}
.post--big .post__more{display:inline-flex;align-items:center;gap:9px;margin-top:18px;font-size:13.5px;color:var(--accent)}
.blog__grid--3{grid-template-columns:repeat(3,1fr)}
@media (max-width:900px){.post--big{grid-template-columns:1fr;gap:20px}.blog__grid--3{grid-template-columns:1fr}}

/* =================== STRONA REGIONU =================== */
.rg__hero{position:relative;height:min(52vh,470px);overflow:hidden;border-radius:var(--radius);margin-bottom:40px}
/* czysty render eGO ma białe pasy o zmiennej osi — lekki zoom je zjada */
.rg__hero img{width:100%;height:100%;object-fit:cover;transform:scale(1.16)}
.rg__hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,26,22,.15),rgba(12,26,22,.72))}
.rg__hero-in{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:34px;color:#fff}
.rg__hero-in h1{font-family:var(--serif);font-weight:400;font-size:clamp(32px,4.6vw,62px);line-height:1.02;margin:0;text-shadow:0 1px 3px rgba(0,0,0,.3)}
.rg__hero-in .eyebrow{color:rgba(255,255,255,.85)}

.rg__stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-bottom:48px}
.rg__stat{background:var(--bg);padding:22px 24px}
.rg__stat b{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(24px,2.6vw,34px);color:var(--accent);line-height:1}
.rg__stat span{display:block;margin-top:7px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-2)}

.rg__cols{display:grid;grid-template-columns:1.4fr 1fr;gap:56px;align-items:start;margin-bottom:56px}
.rg__cols h2{font-family:var(--serif);font-weight:400;font-size:clamp(24px,2.6vw,36px);margin:0 0 16px}
.rg__cols p{color:var(--text);margin:0 0 1em}
.rg__cities{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.rg__cities li a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 4px;border-bottom:1px solid var(--line);font-size:15.5px}
.rg__cities li a:hover{color:var(--accent)}
.rg__cities b{font-weight:400;color:var(--text-2);font-size:13.5px}

.rg__note{font-size:13.5px;color:var(--text-2);font-style:italic;margin-top:18px}
@media (max-width:1000px){.rg__stats{grid-template-columns:1fr 1fr}.rg__cols{grid-template-columns:1fr;gap:34px}}

/* =================== USŁUGI (struktura wg tb-developments/services) =================== */
.page-head{padding:10px 0 40px}
.page-head h1{font-family:var(--serif);font-weight:400;font-size:clamp(34px,5vw,64px);line-height:1.02;margin:8px 0 0}
.page-head .lede{max-width:58ch;color:var(--text-2);margin-top:18px;font-size:17px}

/* spis faz */
.svc-journey{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0;margin-bottom:64px}
.svc-journey .section-title{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--metal);margin:0 0 14px;font-family:var(--sans);font-weight:500}
.svc-journey ol{list-style:none;margin:0;padding:0;display:flex;gap:34px;flex-wrap:wrap}
.svc-journey a{display:inline-flex;align-items:baseline;gap:9px;font-size:15px;color:var(--text)}
.svc-journey a b{font-weight:400;font-size:12px;color:var(--metal);font-variant-numeric:tabular-nums}
.svc-journey a:hover{color:var(--accent)}

/* blok usługi */
.svc-block{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;margin-bottom:88px;scroll-margin-top:110px}
.svc-block.flip .txt{order:2}
.svc-block .txt{max-width:760px}
.svc-block .no{display:block;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--metal);font-variant-numeric:tabular-nums}
.svc-block h2{font-family:var(--serif);font-weight:400;font-size:clamp(26px,2.9vw,40px);line-height:1.15;max-width:15ch;margin:10px 0 22px}
.scope-link{
  display:inline-flex;align-items:center;gap:12px;background:none;border:0;padding:0 0 14px;cursor:pointer;
  font-family:var(--sans);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-2)
}
.scope-link:hover{color:var(--accent)}
.scope-link .ind{position:relative;width:13px;height:13px;flex:none}
.scope-link .ind::before,.scope-link .ind::after{content:"";position:absolute;left:0;top:6px;width:13px;height:1.5px;background:currentColor;transition:transform .45s}
.scope-link .ind::after{transform:rotate(90deg)}
.scope-open .scope-link .ind::after{transform:rotate(0)}
.svc-block .intro{color:var(--text);max-width:44ch;margin:0}
.scope ul{list-style:none;margin:0;padding:0;counter-reset:sc;columns:2;column-gap:34px}
.scope li{counter-increment:sc;break-inside:avoid;display:flex;gap:11px;padding:9px 0;border-bottom:1px solid var(--line);font-size:14.5px;color:var(--text)}
.scope li::before{content:counter(sc,decimal-leading-zero);color:var(--metal);font-size:11px;font-variant-numeric:tabular-nums;padding-top:3px}
/* desktop: podmiana opisu na listę — bez skoku układu */
@media (min-width:881px){
  .svc-swap{display:grid}
  .svc-swap>.intro,.svc-swap>.scope{grid-area:1/1}
  .svc-swap>.scope{opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .4s ease .08s,transform .4s ease .08s}
  .svc-swap>.intro{transition:opacity .28s ease,transform .28s ease}
  .scope-open .svc-swap>.intro{opacity:0;transform:translateY(-8px);pointer-events:none}
  .scope-open .svc-swap>.scope{opacity:1;transform:none;pointer-events:auto}
}
/* mobile: klasyczny akordeon */
@media (max-width:880px){
  .svc-block{grid-template-columns:1fr;gap:24px}
  .svc-block.flip .txt{order:0}
  .svc-swap>.scope{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s cubic-bezier(.23,1,.32,1)}
  .svc-swap>.scope>div{overflow:hidden}
  .scope-open .svc-swap>.scope{grid-template-rows:1fr}
  .scope ul{columns:1}
}
/* zdjęcie z siatką */
.svc-block .plate{position:relative;border-radius:var(--radius);overflow:hidden;background:#e6e3d8}
.svc-block .ph{position:relative;min-height:clamp(380px,52vh,560px)}
.svc-block .ph img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;transform:scale(1.16)}
.svc-block .ph::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.10) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.10) 1px,transparent 1px);
  background-size:210px 210px
}

/* =================== O NAS (struktura wg accumin/we-are) =================== */
.ab-hero{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;padding:10px 0 56px}
.ab-hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(36px,5.4vw,72px);line-height:1.02;margin:10px 0 0}
.ab-hero .lede{color:var(--text-2);font-size:17px;margin:0;align-self:end}
.ab-full{position:relative;height:min(46vh,420px);overflow:hidden;border-radius:var(--radius);margin:0 0 72px;background:#e6e3d8}
.ab-full img{width:100%;height:100%;object-fit:cover;transform:scale(1.16)}
.ab-claim{max-width:22ch;font-family:var(--serif);font-size:clamp(26px,3.4vw,46px);line-height:1.2;margin:0 auto 72px;text-align:center;color:var(--accent)}
.ab-two{display:grid;grid-template-columns:1fr 1fr;gap:56px;margin-bottom:76px}
.ab-two .pre{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--metal)}
.ab-two h3{font-family:var(--serif);font-weight:400;font-size:clamp(22px,2.4vw,32px);line-height:1.2;margin:10px 0 0}
/* wartości */
.ab-val{border-top:1px solid var(--line);padding:28px 0;display:grid;grid-template-columns:1fr 1.2fr;gap:40px;align-items:start}
.ab-val:last-of-type{border-bottom:1px solid var(--line)}
.ab-val h3{font-family:var(--serif);font-weight:400;font-size:clamp(22px,2.3vw,30px);margin:0}
.ab-val p{color:var(--text-2);margin:0;max-width:52ch}
.ab-sec-title{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--metal);margin:0 0 24px;font-family:var(--sans);font-weight:500}
/* liczby */
.ab-nums{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-bottom:76px}
.ab-num{background:var(--bg);padding:26px 22px}
.ab-num b{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(26px,3vw,40px);color:var(--accent);line-height:1}
.ab-num span{display:block;margin-top:9px;font-size:12.5px;color:var(--text-2);line-height:1.4}
/* manifest z „kurtyną" */
.ab-man{display:grid;grid-template-columns:1fr 1.1fr;gap:56px;align-items:center;margin-bottom:76px}
.ab-man__ph{position:relative;overflow:hidden;border-radius:var(--radius);aspect-ratio:4/5;background:#e6e3d8}
.ab-man__ph img{width:100%;height:100%;object-fit:cover;transform:scale(1.16)}
.ab-man__ph .curtain{position:absolute;inset:0;background:var(--accent);transform:translateY(0);transition:transform 1.1s cubic-bezier(.23,1,.32,1)}
.ab-man__ph.in .curtain{transform:translateY(-101%)}
.ab-man p{margin:0 0 1em;max-width:46ch}
/* regiony + partnerzy */
.ab-geo{display:grid;grid-template-columns:1fr 1fr;gap:56px;margin-bottom:76px}
.ab-geo ul{list-style:none;margin:0;padding:0;columns:2;column-gap:34px}
.ab-geo li{padding:9px 0;border-bottom:1px solid var(--line);font-size:15px;break-inside:avoid}
.ab-std{display:grid;grid-template-columns:1fr 1.6fr;gap:34px;padding:22px 0;border-top:1px solid var(--line)}
.ab-std:last-of-type{border-bottom:1px solid var(--line)}
.ab-std b{font-family:var(--serif);font-weight:400;font-size:20px}
.ab-std p{margin:0;color:var(--text-2);font-size:15px}
@media (max-width:900px){
  .ab-hero,.ab-two,.ab-man,.ab-geo,.ab-val,.ab-std{grid-template-columns:1fr;gap:22px}
  .ab-nums{grid-template-columns:1fr 1fr}
  .ab-geo ul{columns:1}
}

/* =================== ARTYKUŁ =================== */
.art-head{max-width:800px;margin:0 0 34px}
.art-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--metal)}
.art-meta span{color:var(--text-2);letter-spacing:.08em}
.art-head h1{font-family:var(--serif);font-weight:400;font-size:clamp(30px,4.2vw,56px);line-height:1.08;margin:14px 0 0}
.art-lede{font-size:19px;color:var(--text-2);margin:20px 0 0;max-width:64ch}
.art-author{display:flex;align-items:center;gap:13px;margin:28px 0 0;font-size:14px;color:var(--text-2)}
.art-author .person__ph{width:44px;height:44px;font-size:16px}
.art-author b{color:var(--text);font-weight:400}
.art-hero{height:min(52vh,480px);overflow:hidden;border-radius:var(--radius);margin:40px 0 56px;background:#e6e3d8}
.art-hero img{width:100%;height:100%;object-fit:cover}

.art{display:grid;grid-template-columns:240px 1fr;gap:64px;align-items:start}
.art-toc{position:sticky;top:110px}
.art-toc h2{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--metal);margin:0 0 14px;font-family:var(--sans);font-weight:500}
.art-toc ol{list-style:none;margin:0;padding:0;counter-reset:t;display:flex;flex-direction:column;gap:2px}
.art-toc li{counter-increment:t}
.art-toc a{display:flex;gap:10px;padding:8px 0;font-size:14px;color:var(--text-2);border-bottom:1px solid var(--line)}
.art-toc a::before{content:counter(t,decimal-leading-zero);font-size:11px;color:var(--metal);padding-top:3px}
.art-toc a:hover,.art-toc a.on{color:var(--accent)}

.art-body{max-width:70ch;font-size:17.5px}
.art-body h2{font-family:var(--serif);font-weight:400;font-size:clamp(24px,2.6vw,34px);line-height:1.2;margin:52px 0 18px;scroll-margin-top:110px}
.art-body h3{font-family:var(--serif);font-weight:400;font-size:22px;margin:32px 0 12px}
.art-body p{margin:0 0 1.15em}
.art-body ul{margin:0 0 1.4em;padding-left:0;list-style:none}
.art-body ul li{position:relative;padding:0 0 9px 22px}
.art-body ul li::before{content:"";position:absolute;left:0;top:12px;width:9px;height:1px;background:var(--metal)}
.art-tab{width:100%;border-collapse:collapse;margin:0 0 1.6em;font-size:15.5px}
.art-tab th,.art-tab td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line)}
.art-tab th{font-weight:500;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--metal)}
.art-tab td:last-child,.art-tab th:last-child{text-align:right;white-space:nowrap}
.art-tab tr.sum td{border-top:1px solid var(--text);border-bottom:0;font-weight:500;color:var(--accent)}
.art-box{background:var(--bg-alt);border-radius:var(--radius);padding:26px 28px;margin:0 0 1.6em}
.art-box b{display:block;font-family:var(--serif);font-weight:400;font-size:21px;margin-bottom:10px}
.art-box p:last-child{margin:0}
.art-note{font-size:14px;color:var(--text-2);font-style:italic;border-left:2px solid var(--metal);padding-left:16px;margin:0 0 1.6em}
.art-cta{background:var(--accent);color:var(--on-accent);border-radius:var(--radius);padding:32px;margin:44px 0}
.art-cta b{display:block;font-family:var(--serif);font-weight:400;font-size:24px;margin-bottom:10px}
.art-cta p{color:rgba(242,242,242,.8);margin:0 0 20px;font-size:15.5px}

.art-more{margin-top:90px;padding-top:44px;border-top:1px solid var(--line)}
@media (max-width:1000px){
  /* minmax(0,1fr), bo przewijana tabela kosztów rozciągała kolumnę do swojej min-width */
  .art{grid-template-columns:minmax(0,1fr);gap:34px}
  .art>*{min-width:0}
  .art-toc{position:static;border-bottom:1px solid var(--line);padding-bottom:18px}
  .art-toc ol{flex-direction:row;flex-wrap:wrap;gap:8px 22px}
  .art-toc a{border:0;padding:4px 0}
}

/* trzy fakty o regionie — jako klasa, nie inline style, żeby media query mogło je złamać */
.serv--3{grid-template-columns:repeat(3,1fr);margin-top:24px}
@media (max-width:760px){.serv--3{grid-template-columns:1fr;gap:24px}}

/* =================== poprawki mobilne =================== */
@media (max-width:640px){
  /* pasek karty obiektu: trzy zakładki w rzędzie, CTA na całą szerokość —
     inaczej „Zapytaj o obiekt” łamie się i chowa pod widgetem WhatsApp */
  .pd__nav{flex-wrap:wrap;top:60px}
  .pd__nav a{flex:1 1 0;padding:13px 6px;font-size:12px}
  .pd__nav a:last-child{flex:1 1 100%;border-top:1px solid rgba(255,255,255,.14)}
  .pd__open span{width:118px;height:118px;font-size:11px}
  .pd__count{right:12px;bottom:12px;font-size:11.5px;padding:6px 10px}
  .gal__stage{padding:48px 8px 6px}
  .gal__x{top:10px;right:12px;font-size:28px}
  .gal__nav{width:40px;height:40px;font-size:18px}
  .gal__prev{left:6px} .gal__next{right:6px}
  .gal__foot{flex-direction:column;align-items:flex-start;gap:10px;padding:10px 14px 18px}
  .gal__thumbs{max-width:100%;width:100%}

  /* spis faz na Usługach: rząd z flex-wrap zostawiał przypadkowe przerwy */
  .svc-journey ol{flex-direction:column;gap:0}
  .svc-journey li{border-bottom:1px solid var(--line)}
  .svc-journey li:last-child{border-bottom:0}
  .svc-journey a{width:100%;padding:11px 0}
  .svc-block .ph{min-height:clamp(260px,42vh,360px)}
  .svc-block .ph::after{background-size:120px 120px}

  /* spis treści artykułu jako lista, nie łamany rząd */
  .art-toc ol{flex-direction:column;gap:0}
  .art-toc li{border-bottom:1px solid var(--line)}
  .art-toc li:last-child{border-bottom:0}
  .art-toc a{padding:9px 0}
  .art-hero{height:min(38vh,300px);margin:28px 0 36px}
  .art-cta{padding:24px 22px}
  /* tabela kosztów nie mieści się w 375px — własny scroll zamiast rozpychania strony */
  .art-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 0 1.6em}
  .art-scroll .art-tab{min-width:460px;margin:0}
  .art-body{font-size:16.5px}

  /* karty regionów i statystyki */
  .rg__stats{grid-template-columns:1fr 1fr}
  .ab-nums{grid-template-columns:1fr 1fr}
}

/* cała karta klikalna; strzałki slidera i CTA zostają nad warstwą */
.grid .card{position:relative}
.card__hit{position:absolute;inset:0;z-index:1}
.grid .card__a,.grid .card__cta{position:relative;z-index:2}
.grid .card__a{position:absolute}

/* =================== katalog z feedu =================== */
/* checkboxy cech: cały wiersz pod polami „więcej filtrów" */
.filters__more input[type=checkbox]{width:auto;border:0;padding:0}
.filters__feats{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:12px 26px;padding-top:6px;border-top:1px solid var(--line)}
.filters__feats .fchk{padding-top:12px}
.grid__load{grid-column:1/-1;padding:60px 0;text-align:center;color:var(--text-2)}
.pager__gap{align-self:center;padding:0 4px;color:var(--text-2)}

/* =================== karta obiektu z feedu =================== */
.pd__feats{display:grid;gap:22px}
.pd__fg h3{font-family:var(--sans);font-size:11px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--metal);margin:0 0 10px}
.pd__chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.pd__chips li{font-size:14px;padding:7px 14px;border:1px solid var(--line);border-radius:999px;color:var(--text)}
.pd__map{margin-top:18px;border-radius:var(--radius);overflow:hidden;aspect-ratio:16/9;background:#e6e3d8}
.pd__map iframe{width:100%;height:100%;border:0;display:block;filter:grayscale(.35)}
.pd__media{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.pd__sim{margin-top:90px;padding-top:44px;border-top:1px solid var(--line)}
.pd__sim h2{font-family:var(--serif);font-weight:400;font-size:clamp(24px,2.6vw,34px);margin:0 0 26px}
.pd__sim .grid{grid-template-columns:repeat(3,1fr)}
.pd__gone{max-width:62ch;padding:30px 0 50px}
.pd__gone h1{font-family:var(--serif);font-weight:400;font-size:clamp(30px,4vw,52px);line-height:1.1;margin:10px 0 16px}
.pd__gone p{color:var(--text-2)}
@media (max-width:1000px){.pd__sim .grid{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.pd__sim .grid{grid-template-columns:1fr}}
/* region bez opublikowanych ofert (np. Barcelona, dopóki nie dojdzie feed EB) */
.rg__empty{border:1px solid var(--line);border-radius:var(--radius);padding:34px;text-align:center;background:var(--bg-alt)}
.rg__empty p{max-width:52ch;margin:0 auto 20px;color:var(--text-2)}

/* =================== poprawki po przeglądzie 18.09 =================== */
/* długa dzielnica („Playa de San Juan - El Cabo de las Huertas") wchodziła na referencję */
.grid .card__loc{padding-right:78px;line-height:1.5}
/* kotwice Opis / Lokalizacja / Zapytaj: nagłówek nie może chować się pod nagłówkiem strony
   i przyklejonym paskiem zakładek (66 + ~50 px). Do tego po pierwszym przewinięciu pasek info
   się zwija i cała treść podjeżdża o 46–48 px (body.sub.is-scrolled) — już PO obliczeniu kotwicy */
.pd [id]{scroll-margin-top:190px}
@media (max-width:640px){.pd [id]{scroll-margin-top:210px}}
/* filtry na tablecie: 7 pól w 4 kolumnach zostawiało pustą komórkę */
@media (min-width:761px) and (max-width:1200px){
  .filters__bar .fld:nth-of-type(7){grid-column:span 2;border-right:0}
}

/* =================== nowe inwestycje (tools/groups.py) =================== */
.pd__grp{margin:14px 0 0;padding:12px 16px;border-left:2px solid var(--metal);background:var(--bg-alt);font-size:14.5px;color:var(--text-2)}
.pd__grp a{color:var(--accent);border-bottom:1px solid var(--line)}
.pd__units{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:var(--radius)}
.pd__units table{width:100%;border-collapse:collapse;font-size:14.5px;min-width:560px}
.pd__units th,.pd__units td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--line);white-space:nowrap}
.pd__units th{font-weight:500;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--metal);background:var(--bg-alt)}
.pd__units tbody th{font-weight:400;font-size:inherit;letter-spacing:0;text-transform:none;color:inherit;background:none}
.pd__units tr:last-child td,.pd__units tr:last-child th{border-bottom:0}
.pd__units .num{text-align:right}
.pd__units td:first-child a{color:var(--accent)}
.pd__units tbody tr:hover{background:var(--bg-alt)}
/* tabela lokali (nowrap) rozpychała lewą kolumnę → poziomy scroll strony; tabela ma własny scroll */
.pd{grid-template-columns:minmax(0,1fr) 340px}
.pd>*{min-width:0}
@media (max-width:1000px){.pd{grid-template-columns:minmax(0,1fr)}}
