/* Wygląd strony ofert. Kolory i rozmiary w zmiennych: zmiana marki = zmiana sekcji 2.

   SPIS TREŚCI
    1. Fonty
    2. Zmienne
    3. Baza
    4. Komponenty wspólne (przyciski, panel, opis, chipsy)
    5. Nagłówek i menu (z rozwijanym podmenu)
    6. Hero
    7. Pas z filtrami
    8. Lista ofert
    9. Karta oferty
   10. Mapa
   11. Lightbox
   12. Zespół i strona agenta
   13. Formularz „Zgłoś nieruchomość”
   14. O firmie
   15. Wirtualny spacer
   16. Partnerzy
   17. Stopka
   18. Przycisk „na górę”
   19. prefers-reduced-motion

   Zasada: media queries leżą zaraz pod komponentem, którego dotyczą. */


/* ==========================================================================
   1. FONTY
   ========================================================================== */
@font-face { font-family:"Albert Sans"; font-style:normal; font-weight:100 900; font-display:swap;
  src:url("fonts/albert-sans-latin-ext-wght-normal.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:"Albert Sans"; font-style:normal; font-weight:100 900; font-display:swap;
  src:url("fonts/albert-sans-latin-wght-normal.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }


/* ==========================================================================
   2. ZMIENNE
   ========================================================================== */
:root {
  --kreda:#f4f6f8;      /* tło strony */
  --atrament:#0a1624;   /* tekst, ciemne pasy */
  --baltyk:#022651;     /* akcent: przyciski, linki (kolor główny) */
  --baltyk-ciemny:#011a3a;
  --piasek:#dcd3c0;     /* linie i drugi akcent */
  --piasek-jasny:#ebe6da;
  --mgla:#56657a;       /* tekst pomocniczy */
  --linia:#d8dee6;
  --r:6px;
  --wrap:1200px;
  font-family:"Albert Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}


/* ==========================================================================
   3. BAZA
   ========================================================================== */
* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
html.lb-open { overflow:hidden; }
body { margin:0; font-size:1rem; line-height:1.6; color:var(--atrament); background:var(--kreda); font-feature-settings:"tnum" 1; }
img { max-width:100%; }
a { color:var(--baltyk); text-underline-offset:.15em; }
a:hover { color:var(--baltyk-ciemny); }
:focus-visible { outline:3px solid var(--baltyk); outline-offset:2px; }
h1, h2 { line-height:1.15; letter-spacing:-.015em; }
h1 { font-size:clamp(1.9rem, 4.2vw, 3rem); font-weight:700; margin:0; }
h2 { font-size:1.25rem; font-weight:650; margin:0 0 .6em; }
.wrap { max-width:var(--wrap); margin:0 auto; padding:0 20px; }
.sr-only { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }


/* ==========================================================================
   4. KOMPONENTY WSPÓLNE
   ========================================================================== */

/* Przyciski */
.btn { display:inline-flex; align-items:center; justify-content:center; height:46px; padding:0 22px; border:0; border-radius:var(--r); background:var(--baltyk); color:#fff; font:inherit; font-weight:650; text-decoration:none; cursor:pointer; }
.btn:hover { background:var(--baltyk-ciemny); color:#fff; }
.btn-quiet { background:transparent; color:var(--baltyk); border:1.5px solid var(--baltyk); }
.btn-quiet:hover { background:var(--baltyk); color:#fff; }

/* Panel (karta kontaktowa, formularz, karty „O firmie”) */
.panel { background:#fff; border-top:4px solid var(--baltyk); border-radius:0 0 var(--r) var(--r); padding:22px 22px 24px; box-shadow:0 1px 0 var(--linia), 0 0 0 1px var(--linia); }

/* Blok treści, opis, chipsy */
.block { margin-top:40px; }
.desc { max-width:68ch; overflow-wrap:anywhere; }
.desc p { margin:0 0 1em; }
.chips { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:8px; }
.chips li { padding:5px 14px; border-radius:999px; background:var(--piasek-jasny); font-size:.95rem; }

/* ==========================================================================
   5. NAGŁÓWEK I MENU
   ========================================================================== */
.site-header { background: var(--kreda); border-bottom: 1px solid var(--linia); }

/* Dodano flex-wrap: wrap, aby nawigacja mogła "spaść" pod logo na małych ekranach */
.site-header .wrap { 
  display: flex; 
  justify-content: space-between; 
  align-items: center; 
  min-height: 64px; 
  gap: 16px; 
  flex-wrap: wrap; 
}

.brand { display: inline-flex; align-items: center; text-decoration: none; }
.brand-logo { height: 60px; width: auto; display: block; transition: height 0.2s; }

.site-header nav { display: flex; align-items: center; gap: 24px; }
.site-header nav a { color: var(--atrament); text-decoration: none; font-weight: 550; padding: 6px 0; border-bottom: 2px solid transparent; }
.site-header nav a:hover, .site-header nav a[aria-current] { border-bottom-color: var(--baltyk); }

/* Przycisk „Zgłoś swoją nieruchomość” */
.site-header nav a.nav-cta { padding: 9px 18px; border: 0; border-radius: var(--r); background: var(--baltyk); color: #fff; font-weight: 650; white-space: nowrap; }
.site-header nav a.nav-cta:hover,
.site-header nav a.nav-cta[aria-current] { background: var(--baltyk-ciemny); color: #fff; }

/* Menu rozwijane (desktop: czysty CSS) */
.nav-item { position: relative; display: inline-block; }
.nav-item > .nav-parent::after { content:""; display: inline-block; width: .38em; height: .38em; margin-left: .45em; border: solid currentColor; border-width: 0 2px 2px 0; transform: rotate(45deg) translateY(-2px); transition: transform .2s; }
.nav-item:hover > .nav-parent::after,
.nav-item:focus-within > .nav-parent::after { transform: rotate(225deg) translateY(-1px); }

.nav-sub { position: absolute; top: 100%; left: 0; min-width: 220px; padding: .5rem 0; background: #fff; border-radius: 8px; box-shadow: 0 10px 30px rgba(0,0,0,.12); opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .18s, transform .18s, visibility .18s; z-index: 100; }
.nav-item:hover > .nav-sub,
.nav-item:focus-within > .nav-sub { opacity: 1; visibility: visible; transform: none; }

.site-header .nav-sub a { display: block; margin: 0; padding: .6rem 1.1rem; border-bottom: 0; white-space: nowrap; }
.site-header .nav-sub a:hover,
.site-header .nav-sub a:focus-visible,
.site-header .nav-sub a[aria-current] { background: rgba(0,0,0,.05); }

/* ==========================================================================
   MEDIA QUERIES (Poprawiona responsywność)
   ========================================================================== */
@media (max-width: 820px) {
  /* Nawigacja zajmuje pełną szerokość i układa elementy w pionie */
  .site-header nav { 
    width: 100%; 
    flex-direction: column; 
    align-items: stretch; /* rozciągnięcie elementów */
    gap: 4px; 
    padding-bottom: 16px;
  }
  
  /* Główne linki ułożone wygodnie pod palec */
  .site-header nav a { 
    display: block;
    padding: 10px 0;
  }

  /* Podmenu zawsze rozwinięte, w linii pod rodzicem */
  .nav-item { display: block; width: 100%; }
  .nav-item > .nav-parent::after { display: none; }
  
  .nav-sub { 
    position: static; 
    opacity: 1; 
    visibility: visible; 
    transform: none; 
    box-shadow: none; 
    background: transparent; 
    /* Zwiększone wcięcie i opcjonalna lewa ramka ułatwiająca czytanie hierarchii */
    padding: 4px 0 4px 1.2rem; 
    margin-left: 8px;
    border-left: 2px solid var(--linia, #eaeaea);
  }
  
  /* Linki w podmenu lekko mniejsze i zawijające tekst, gdyby był bardzo długi */
  .site-header .nav-sub a { 
    padding: 8px 12px; 
    white-space: normal; 
  }

  /* Przycisk CTA zajmujący 100% szerokości dla lepszej konwersji mobilnej */
  .site-header nav a.nav-cta { 
    margin-top: 12px;
    text-align: center;
    padding: 12px 18px;
  }
}

@media (max-width: 640px) {
  /* Skalujemy delikatnie w dół przy najmniejszych ekranach */
  .brand-logo { height: 48px; }
  .site-header .wrap { padding-top: 12px; padding-bottom: 12px; }
}


/* ==========================================================================
   MOBILNE MENU (CZYSTY CSS - CHECKBOX HACK)
   ========================================================================== */
/* Zawsze ukrywamy sam checkbox */
.menu-checkbox {
  display: none;
}

/* Domyślnie ukrywamy hamburgera na dużych ekranach */
.menu-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 44px;
  height: 44px;
  cursor: pointer;
  margin-left: auto; /* Dopycha przycisk do prawej strony */
}

/* Kreski w hamburgerze */
.menu-toggle span {
  display: block;
  width: 26px;
  height: 2px;
  background-color: var(--atrament, #000);
  transition: transform 0.3s, opacity 0.3s;
  margin: 0 auto;
}

/* ==========================================================================
   MEDIA QUERIES (< 820px)
   ========================================================================== */
@media (max-width: 820px) {
  /* Pokazujemy przycisk na telefonach */
  .menu-toggle { display: flex; }

  /* Domyślnie UKRYWAMY nawigację na telefonach */
  .site-header nav { 
    display: none; 
    width: 100%; 
    flex-direction: column; 
    align-items: stretch;
    gap: 4px; 
    padding-bottom: 16px;
    margin-top: 10px;
  }

  /* MAGIA CZYSTEGO CSS: Gdy checkbox jest :checked, pokazujemy <nav>, który jest jego sąsiadem (~) */
  .menu-checkbox:checked ~ nav {
    display: flex;
    animation: fadeIn 0.3s ease;
  }

  /* Animacja hamburgera na krzyżyk (X), gdy menu jest otwarte (checkbox:checked) */
  .menu-checkbox:checked ~ .menu-toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .menu-checkbox:checked ~ .menu-toggle span:nth-child(2) { opacity: 0; }
  .menu-checkbox:checked ~ .menu-toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

  /* Style dla linków (jak poprzednio) */
  .site-header nav a { display: block; padding: 10px 0; border-bottom: 1px solid var(--linia, #eee); }
  .site-header nav a:last-child { border-bottom: none; }

  /* Podmenu na telefonie */
  .nav-item { display: block; width: 100%; }
  .nav-item > .nav-parent::after { display: none; }
  .nav-sub { 
    position: static; 
    opacity: 1; 
    visibility: visible; 
    transform: none; 
    box-shadow: none; 
    background: transparent; 
    padding: 4px 0 4px 1.2rem; 
    margin-left: 8px;
    border-left: 2px solid rgba(0,0,0,0.1);
  }
  .site-header .nav-sub a { padding: 8px 12px; white-space: normal; border-bottom: none; }
  
  /* Przycisk CTA */
  .site-header nav a.nav-cta { margin-top: 12px; text-align: center; padding: 12px 18px; border: none; }
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(-10px); }
  to { opacity: 1; transform: translateY(0); }
}

/* ==========================================================================
   6. HERO
   ========================================================================== */
.hero { --hero-h:clamp(460px, 72vh, 720px); --ease:cubic-bezier(.7,0,.3,1); height:var(--hero-h); transition:height .9s var(--ease); }
.hero.is-collapsed { height:0; }
.hero.is-instant { transition:none; }
.hero :focus-visible { outline-color:var(--piasek); }

.hero-clip { position:relative; height:100%; overflow:hidden; background:var(--atrament); }
.hero-stage { position:absolute; left:0; right:0; bottom:0; height:var(--hero-h); }   /* dół przyklejony do pasa z filtrami, góra wyjeżdża pod nagłówek */

/* Tło: ilustracja albo zdjęcie (miniatura rozmyta + pełne zdjęcie wchodzi płynnie) */
.hero-art, .hero-lo, .hero-img { position:absolute; inset:0; width:100%; height:100%; display:block; }
.hero-lo, .hero-img { object-fit:cover; background:var(--piasek-jasny); }
.hero-lo { filter:blur(22px); transform:scale(1.1); }
.hero-img { opacity:0; transition:opacity 1s ease; animation:hero-zoom 20s linear both; }
.hero-img.is-loaded { opacity:1; }
.hero-shade { position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(13,34,48,.72) 0%, rgba(13,34,48,.32) 45%, rgba(13,34,48,0) 75%),
             linear-gradient(0deg, rgba(13,34,48,.5) 0%, rgba(13,34,48,0) 42%); }

/* Treść */
.hero-content { position:relative; z-index:1; height:100%; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding-bottom:40px; color:#fff; }
.hero-kicker { margin:0 0 8px; font-size:.95rem; font-weight:650; letter-spacing:.04em; text-transform:uppercase; color:var(--piasek); animation:hero-in .8s .1s ease both; }
.hero-price { margin:0; font-size:clamp(2rem, 5vw, 3.4rem); font-weight:750; letter-spacing:-.02em; line-height:1.1; animation:hero-in .8s .2s ease both; }
.hero-price small { font-size:.45em; font-weight:550; color:#d4dde0; letter-spacing:0; }
.hero-title { margin:.3em 0 .3em; font-size:clamp(1.25rem, 2.6vw, 1.9rem); font-weight:650; max-width:30ch; animation:hero-in .8s .3s ease both; }
.hero-title-lg { font-size:clamp(2rem, 5vw, 3.6rem); font-weight:750; max-width:16ch; }
.hero-lead { margin:0 0 26px; max-width:44ch; font-size:1.15rem; color:#e1e8ea; animation:hero-in .9s .5s ease both; }
.hero-place { margin:0 0 14px; color:#e1e8ea; font-size:1.02rem; animation:hero-in .8s .35s ease both; }
.hero-meta { margin:0 0 24px; display:flex; flex-wrap:wrap; gap:2px 18px; color:#e1e8ea; animation:hero-in .8s .4s ease both; }
.hero-excerpt { margin:0 0 22px; max-width:52ch; color:#eef2f3; font-size:1.05rem; line-height:1.55;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; animation:hero-in .8s .45s ease both; }

/* Szklany panel ze statystykami */
.hero-stats { margin:0 0 26px; padding:14px 22px; display:inline-flex; flex-wrap:wrap; gap:14px 0; border-radius:var(--r);
  background:rgba(13,34,48,.5); border:1px solid rgba(220,211,192,.4); animation:hero-in .8s .55s ease both; }
@supports (backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px)) {
  .hero-stats { background:rgba(255,255,255,.12); -webkit-backdrop-filter:blur(14px) saturate(1.3); backdrop-filter:blur(14px) saturate(1.3); }
}
.hero-stats div { padding:0 24px; }
.hero-stats div:first-child { padding-left:0; }
.hero-stats div:last-child { padding-right:0; }
.hero-stats div + div { border-left:1px solid rgba(220,211,192,.4); }
.hero-stats dt { font-size:.8rem; letter-spacing:.04em; text-transform:uppercase; color:var(--piasek); }
.hero-stats dd { margin:2px 0 0; font-size:1.25rem; font-weight:650; }

/* Przyciski w hero */
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; }
.hero .btn { background:var(--piasek); color:var(--atrament); animation:hero-in .9s .65s ease both; }
.hero .btn:hover { background:#fff; }
.hero .btn.btn-reset { background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,.6); }
.hero .btn.btn-reset:hover { background:rgba(255,255,255,.16); border-color:#fff; }
.hero .btn-arrow::after { content:"\2192"; margin-left:.55em; display:inline-block; transition:transform .2s ease; }
.hero .btn-arrow:hover::after { transform:translateX(5px); }

/* Pasek odliczania 20 s (pauza razem z timerem w hero.js) */
.hero-bar { position:absolute; left:0; bottom:0; width:100%; height:2px; opacity:.9; background:var(--piasek); transform-origin:left; animation:hero-bar 20s linear forwards; }
.hero:hover .hero-bar, .hero:focus-within .hero-bar { animation-play-state:paused; }
.hero.is-collapsed .hero-bar { animation:none; }

/* Warstwy ilustracji wjeżdżają od dołu po kolei */
.hl { animation:hero-rise 1.3s cubic-bezier(.2,.7,.2,1) both; }
.hl-0 { animation-name:hero-fade; }
.hl-1 { animation-delay:.1s; } .hl-2 { animation-delay:.25s; } .hl-3 { animation-delay:.45s; } .hl-4 { animation-delay:.6s; }
.hero-sun { animation:hero-sun 2s .1s cubic-bezier(.2,.7,.2,1) both; }
.win { animation:hero-twinkle 4s ease-in-out infinite; }
.win:nth-of-type(3n) { animation-delay:-1.3s; } .win:nth-of-type(3n+1) { animation-delay:-2.6s; }
.star { animation:hero-twinkle 3s ease-in-out infinite; }
.star:nth-of-type(2n) { animation-delay:-1.5s; }
.hero.is-collapsed .win, .hero.is-collapsed .star { animation:none; }

@keyframes hero-rise { from { opacity:0; transform:translateY(70px); } to { opacity:1; transform:none; } }
@keyframes hero-fade { from { opacity:0; } to { opacity:1; } }
@keyframes hero-sun { from { opacity:0; transform:translateY(140px); } to { opacity:1; transform:none; } }
@keyframes hero-in { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:none; } }
@keyframes hero-twinkle { 0%,100% { opacity:1; } 50% { opacity:.45; } }
@keyframes hero-zoom { from { transform:scale(1.08); } to { transform:scale(1); } }
@keyframes hero-bar { from { transform:scaleX(1); } to { transform:scaleX(0); } }

@media (max-width:640px) {
  .hero { --hero-h:clamp(520px, 80vh, 700px); }
  .hero-shade { background:linear-gradient(180deg, rgba(13,34,48,.5) 0%, rgba(13,34,48,.25) 35%, rgba(13,34,48,.82) 100%); }
  .hero-content { justify-content:flex-end; padding-bottom:28px; }
  .hero-excerpt { -webkit-line-clamp:2; font-size:.98rem; margin-bottom:16px; }
  .hero-stats { padding:10px 14px; margin-bottom:18px; }
  .hero-stats div { padding:0 12px; }
  .hero-stats dd { font-size:1.05rem; }
  .hero .btn { height:42px; padding:0 16px; }
}


/* ==========================================================================
   7. PAS Z FILTRAMI
   ========================================================================== */
.band { background:var(--atrament); color:#fff; padding:36px 0 32px; border-bottom:4px solid var(--piasek); }
.band h1 { margin-bottom:22px; }
.band-title { margin:0 0 18px; font-size:1.25rem; }
.band-lead { font-size:1.15rem; color:#d4dde0; max-width:60ch; margin:0; }
.band :focus-visible { outline-color:var(--piasek); }
.band .btn { background:var(--piasek); color:var(--atrament); }
.band .btn:hover { background:#fff; color:var(--atrament); }
.band .btn-reset { background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,.55); }
.band .btn-reset:hover { background:rgba(255,255,255,.14); color:#fff; border-color:#fff; }

.filters { display:grid; gap:18px; }
.seg { border:0; margin:0; padding:3px; display:inline-flex; width:max-content; max-width:100%; background:rgba(255,255,255,.08); border-radius:var(--r); gap:2px; }
.seg legend { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.seg label { position:relative; }
.seg input { position:absolute; opacity:0; inset:0; margin:0; cursor:pointer; }
.seg span { display:block; padding:8px 18px; border-radius:4px; font-weight:600; color:#d4dde0; cursor:pointer; }
.seg input:checked + span { background:#fff; color:var(--atrament); }
.seg input:focus-visible + span { outline:3px solid var(--piasek); outline-offset:2px; }

.filter-row { display:grid; grid-template-columns:repeat(5, minmax(0,1fr)) auto; gap:14px; align-items:end; }
.field { display:flex; flex-direction:column; gap:6px; }
.field > span { font-size:.85rem; color:#c3cfd3; font-weight:550; }
.field select, .field input { width:100%; height:46px; padding:0 12px; border:1px solid transparent; border-radius:var(--r); font:inherit; color:var(--atrament); background:#fff; }
.field select:focus-visible, .field input:focus-visible { outline:3px solid var(--piasek); outline-offset:1px; }

@media (max-width:1000px) {
  .filter-row { grid-template-columns:repeat(3, minmax(0,1fr)); }
  .filter-row .btn { grid-column:1 / -1; }
}
@media (max-width:640px) {
  .band { padding:28px 0 24px; }
  .filter-row { grid-template-columns:repeat(2, minmax(0,1fr)); }
  .seg { width:100%; }
  .seg label { flex:1; }
  .seg span { text-align:center; padding:9px 8px; }
}


/* ==========================================================================
   8. LISTA OFERT
   ========================================================================== */
.results { padding-top:28px; padding-bottom:56px; transition:opacity .15s; }
.results.is-loading { opacity:.5; }

.toolbar { display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; margin-bottom:24px; padding-bottom:14px; border-bottom:1px solid var(--piasek); }
.count { margin:0; color:var(--mgla); }
.count strong { color:var(--atrament); font-size:1.15rem; }
.reset { margin-left:12px; font-size:.95rem; }
.sort { display:flex; align-items:center; gap:10px; color:var(--mgla); }
.sort select { height:40px; padding:0 10px; border:1px solid var(--linia); border-radius:var(--r); font:inherit; color:var(--atrament); background:#fff; }

.tiles { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:40px 28px; }
/* 1. Usunięcie cienia z samego zdjęcia */
.tile-photo { 
  position:relative; 
  aspect-ratio:4/3; 
  overflow:hidden; 
  border-radius:var(--r); 
  background:var(--piasek-jasny) url("placeholder.png") center / 40px no-repeat;
}

/* 2. Przeniesienie granatowego cienia na CAŁĄ kartę */
.tile a { 
  display:block; 
  color:inherit; 
  text-decoration:none; 
  padding: 12px;                  /* Margines wewnętrzny, by tekst odetchnął */
  border-radius: calc(var(--r) + 4px);
  background: #fff;               /* Biały kontener dla tekstu */
  box-shadow: 0 10px 30px rgba(10, 30, 65, 0.15); /* Subtelny granatowy ambient light */
  transition: transform .2s ease, box-shadow .2s ease;
}

.tile a:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 36px rgba(10, 30, 65, 0.25);
}
.tile-photo img { width:100%; height:100%; object-fit:cover; display:block; color:transparent; }
.noimg { height:100%; display:flex; align-items:center; justify-content:center; color:var(--mgla); }
.badge { position:absolute; left:10px; top:10px; padding:3px 10px; border-radius:4px; background:var(--kreda); color:var(--atrament); font-size:.85rem; font-weight:650; }
.tile-price { margin:14px 0 0; font-size:1.65rem; font-weight:750; letter-spacing:-.02em; line-height:1.15; }
.tile-price small, .panel-price small { font-size:.55em; font-weight:550; letter-spacing:0; color:var(--mgla); }   /* wspólne z kartą oferty */
.tile-sub { margin:2px 0 0; color:var(--mgla); font-size:.9rem; }
.tile-title { margin:8px 0 6px; font-size:1.02rem; font-weight:600; letter-spacing:0; line-height:1.35; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.tile-meta { margin:0; display:flex; flex-wrap:wrap; gap:2px 16px; color:var(--mgla); font-size:.95rem; }
.tile a:hover .tile-title { color:var(--baltyk); text-decoration:underline; text-underline-offset:.18em; }

/* Tło pod tekstem i zaokrąglenie dołu */
.tile a {
  display: flex;
  flex-direction: column;
  color: inherit;
  text-decoration: none;
}

/* Wstęga z tekstem łącząca się płynnie pod zdjęciem */
.tile-price { margin: 12px 0 0; font-size: 1.5rem; font-weight: 750; }
.tile-sub { margin: 2px 0 0; color: var(--mgla); font-size: 0.85rem; }
.tile-title { margin: 6px 0 8px; font-size: 1rem; font-weight: 600; line-height: 1.3; }
.tile-meta { margin-top: auto; display: flex; gap: 12px; color: var(--mgla); font-size: 0.88rem; }




.empty { padding:48px 0; max-width:36rem; }
.empty-title { font-size:1.25rem; font-weight:650; margin:0 0 6px; }

.pager { display:flex; gap:6px; flex-wrap:wrap; margin:48px 0 0; }
.pager a, .pager .cur { min-width:42px; height:42px; padding:0 14px; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--linia); border-radius:var(--r); text-decoration:none; color:var(--atrament); background:#fff; }
.pager a:hover { border-color:var(--baltyk); }
.pager .cur { background:var(--atrament); border-color:var(--atrament); color:#fff; font-weight:650; }

@media (max-width:1000px) { .tiles { grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width:640px)  { .tiles { grid-template-columns:1fr; gap:32px; } .toolbar { align-items:flex-start; } }


/* ==========================================================================
   9. KARTA OFERTY
   ========================================================================== */
.offer { padding-top:20px; padding-bottom:64px; }
.offer h1 { font-size:clamp(1.6rem, 3.4vw, 2.4rem); max-width:24ch; }
.back { margin:0 0 14px; font-size:.95rem; }
.loc { margin:8px 0 24px; color:var(--mgla); font-size:1.05rem; }
.offer-grid { display:grid; grid-template-columns:minmax(0,1fr) 380px; gap:48px; align-items:start; }
.offer-main { min-width:0; }
.offer-side { position:sticky; top:16px; }

/* Galeria: główne zdjęcie (przejście przez rozmycie) + miniatury */
.viewer-main { position:relative; display:block; border-radius:var(--r); overflow:hidden; cursor:zoom-in; background:var(--piasek-jasny) url("placeholder.png") center / 40px no-repeat; }
.viewer-main img { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; color:transparent; transition:filter .6s ease; }
.viewer-main img.is-out { filter:blur(14px); }                                  /* stare zdjęcie rozmywa się pod spodem */
.viewer-main img.viewer-next { position:absolute; inset:0; width:100%; height:100%; aspect-ratio:auto; object-fit:cover;
  opacity:0; filter:blur(18px); transition:opacity .55s ease, filter .65s ease; }
.viewer-main img.viewer-next.is-in { opacity:1; filter:blur(0); }               /* nowe wyostrza się i wchodzi */
.viewer-main.fx-reset img { transition:none; }

.thumbs { list-style:none; margin:10px 0 0; padding:0 0 10px; display:flex; gap:8px; overflow-x:auto; scrollbar-width:thin; scrollbar-color:var(--baltyk) var(--piasek-jasny); scroll-snap-type:x proximity; }
.thumbs li { flex:0 0 96px; scroll-snap-align:start; }
.thumbs a { display:block; border-radius:4px; overflow:hidden; border:2px solid transparent; opacity:.75; background:var(--piasek-jasny) url("placeholder.png") center / 24px no-repeat; }
.thumbs a[aria-current], .thumbs a:hover { border-color:var(--baltyk); opacity:1; }
.thumbs img { display:block; width:100%; aspect-ratio:3/2; object-fit:cover; color:transparent; }
.thumbs::-webkit-scrollbar { height:6px; }
.thumbs::-webkit-scrollbar-track { background:var(--piasek-jasny); border-radius:999px; }
.thumbs::-webkit-scrollbar-thumb { background:var(--baltyk); border-radius:999px; }
.thumbs::-webkit-scrollbar-thumb:hover { background:var(--baltyk-ciemny); }

/* Rzuty */
.plans { display:grid; grid-template-columns:repeat(auto-fill, minmax(240px,1fr)); gap:12px; }
.plans a { display:block; min-height:140px; border-radius:var(--r); cursor:zoom-in; background:var(--piasek-jasny) url("placeholder.png") center / 40px no-repeat; }
.plans img { display:block; width:100%; border-radius:var(--r); background:#fff; border:1px solid var(--linia); color:transparent; }
.tags { margin:32px 0 0; color:var(--mgla); font-size:.9rem; }

/* Panel boczny: cena, statystyki, agent */
.panel-price { margin:0; font-size:2.1rem; font-weight:750; letter-spacing:-.025em; line-height:1.1; }
.panel-sub { margin:4px 0 0; color:var(--mgla); }
.panel-pdf { display:flex; margin-top:14px; }
.stats { display:grid; grid-template-columns:repeat(auto-fit, minmax(90px,1fr)); gap:0; margin:20px 0 0; padding:16px 0 0; border-top:1px solid var(--linia); }
.stats div { padding-right:12px; }
.stats div + div { padding-left:14px; border-left:1px solid var(--linia); }
.stats dt { font-size:.82rem; color:var(--mgla); }
.stats dd { margin:2px 0 0; font-size:1.15rem; font-weight:650; }

.agent { display:grid; gap:10px; margin-top:22px; padding-top:18px; border-top:1px solid var(--linia); }
.agent p { margin:0; }
.agent-head { display:flex; align-items:center; gap:14px; }
.agent-avatar { flex:0 0 72px; width:72px; height:72px; border-radius:50%; overflow:hidden; background:var(--piasek-jasny); }
.agent-name { font-weight:650; font-size:1.05rem; }
.agent-role { color:var(--mgla); font-size:.9rem; margin-bottom:4px !important; }

.side-h { margin:32px 0 8px; font-size:1.05rem; }
.facts { width:100%; border-collapse:collapse; }
.facts th, .facts td { text-align:left; padding:9px 0; border-bottom:1px solid var(--linia); vertical-align:top; font-size:.95rem; }
.facts th { color:var(--mgla); font-weight:400; width:50%; padding-right:12px; }
.facts td { font-weight:550; }

@media (max-width:1000px) {
  /* Na telefonie cena i kontakt tuż pod galerią, opis niżej. */
  .offer-grid { display:flex; flex-direction:column; align-items:stretch; gap:0; }
  .offer-main, .offer-side { display:contents; }
  .offer-side { position:static; }
  .viewer { order:1; }
  .offer-grid .panel { order:2; margin-top:24px; }
  .offer-main .block { order:3; }
  .offer-main .tags { order:4; }
  .side-h { order:5; }
  .facts { order:6; }
}


/* ==========================================================================
   10. MAPA
   ========================================================================== */
.map { height:380px; border-radius:var(--r); background:var(--piasek-jasny); overflow:hidden; z-index:0; }
.map-note { margin:8px 0 0; color:var(--mgla); font-size:.9rem; }
.map-pin { background:none; border:0; }
.map-pin::before { content:""; display:block; box-sizing:border-box; width:22px; height:22px; margin:3px 3px 0; background:var(--baltyk); border:3px solid #fff; border-radius:50% 50% 50% 0; transform:rotate(-45deg); box-shadow:0 1px 4px rgba(0,0,0,.35); }
.leaflet-container { font-family:inherit; }
.leaflet-container a { color:var(--baltyk); }

@media (max-width:640px) { .map { height:300px; } }

/* --- NIEBIESKIE ZNACZNIKI CENOWE NA MAPIE --- */
.custom-price-marker {
  background: transparent;
  border: none;
}

.price-pin-blue {
  background: #022651;
  color: #ffffff;
  padding: 6px 12px;
  border-radius: 20px;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: -0.2px;
  white-space: nowrap;
  box-shadow: 0 4px 12px rgba(0, 123, 255, 0.35);
  border: 1px solid rgba(255, 255, 255, 0.4);
  transition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1), background-color 0.2s ease;
  cursor: pointer;
}

/* Efekt powiększenia i przyciemnienia niebieskiego po najechaniu kursorem */
.leaflet-marker-icon:hover .price-pin-blue {
  transform: scale(1.12);
  background: #0056b3;
  color: #ffffff;
  z-index: 999;
}

/* --- LEAFLET POPUP STYLES --- */
.leaflet-popup-content-wrapper {
  padding: 0 !important;
  border-radius: 12px !important;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15) !important;
  border: 1px solid #e1e4e8;
  overflow: hidden;
}

.leaflet-popup-content {
  margin: 0 !important;
  line-height: 1.4 !important;
}

.map-popup-card {
  width: 220px;
  font-family: inherit;
}

.map-popup-thumb {
  width: 100%;
  height: 120px;
  object-fit: cover;
  display: block;
}

.map-popup-body {
  padding: 12px;
}

.map-popup-title {
  font-size: 13px;
  font-weight: 600;
  color: #111;
  margin: 0 0 4px 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.map-popup-price {
  font-size: 14px;
  font-weight: 800;
  color: #022651;
  margin: 0 0 6px 0;
}

.map-popup-meta {
  font-size: 11px;
  color: #666;
  margin-bottom: 8px;
}

.map-popup-btn {
  display: block;
  text-align: center;
  background: #022651;
  color: #fff !important;
  text-decoration: none;
  font-weight: 700;
  font-size: 11px;
  padding: 6px 0;
  border-radius: 6px;
  transition: background 0.2s ease;
}

.map-popup-btn:hover {
  background: #0056b3;
}

/* Style wnętrza okienka popup */
.map-popup-card {
  width: 220px;
  font-family: inherit;
}

.map-popup-thumb {
  width: 100%;
  height: 130px;
  object-fit: cover;
  display: block;
}

.map-popup-body {
  padding: 12px 14px 14px;
}

.map-popup-title {
  font-size: 14px;
  font-weight: 600;
  color: #1a1a1a;
  margin: 0 0 4px 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.map-popup-price {
  font-size: 15px;
  font-weight: 800;
  color: #022651;
  margin: 0 0 6px 0;
}

.map-popup-meta {
  font-size: 11px;
  color: #717171;
  margin-bottom: 10px;
}

.map-popup-btn {
  display: block;
  text-align: center;
  background: #1a1a1a;
  color: #fff !important;
  text-decoration: none;
  font-weight: 600;
  font-size: 12px;
  padding: 7px 0;
  border-radius: 8px;
  transition: background 0.2s ease;
}

.map-popup-btn:hover {
  background: #022651;
}

/* ==========================================================================
   11. LIGHTBOX
   ========================================================================== */
.lb { position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center; background:#0b151a; }
.lb[hidden] { display:none; }
.lb :focus-visible { outline:3px solid var(--piasek); outline-offset:2px; }
.lb-bar { position:absolute; top:0; left:0; right:0; z-index:2; display:flex; align-items:center; gap:16px; padding:12px 16px; color:#dbe4e7; font-size:.95rem; }
.lb-count { margin-right:auto; }
.lb-full { color:#dbe4e7; }
.lb-close, .lb-nav { appearance:none; border:0; background:rgba(255,255,255,.12); color:#fff; border-radius:50%; width:44px; height:44px; font-size:28px; line-height:1; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; }
.lb-close:hover, .lb-nav:hover { background:rgba(255,255,255,.24); }
.lb-nav { position:absolute; top:50%; margin-top:-22px; z-index:2; }
.lb-prev { left:16px; }
.lb-next { right:16px; }
.lb-stage { width:100%; height:100%; padding:64px 80px 24px; display:flex; align-items:center; justify-content:center; background:url("placeholder.png") center / 48px no-repeat; }
.lb-img { max-width:100%; max-height:100%; object-fit:contain; border-radius:4px; opacity:0; transition:opacity .15s; }
.lb-img.is-ready { opacity:1; }

@media (max-width:640px) {
  .lb-stage { padding:56px 8px 72px; }
  .lb-nav { top:auto; bottom:14px; margin-top:0; }
  .lb-prev { left:14px; }
  .lb-next { right:14px; }
}


/* ==========================================================================
   12. ZESPÓŁ I STRONA AGENTA
   ========================================================================== */

/* Elementy wspólne: zdjęcia, inicjały, linki z nazwiskiem */
.member-photo, .agent-photo { width:100%; aspect-ratio:1/1; overflow:hidden; background:var(--piasek-jasny); }
/* UWAGA: w oryginale było „border-radius:0%20%” (nieprawidłowa wartość, przeglądarka ją ignorowała),
   więc zdjęcia są dziś prostokątne. Jeśli chcesz zaokrąglenie, odkomentuj i dobierz wartość:
   .member-photo, .agent-photo { border-radius:0 20%; } */
.member-photo img, .agent-photo img, .agent-avatar img { width:100%; height:100%; object-fit:cover; display:block; color:transparent; background:var(--piasek-jasny) url("placeholder.png") center / 40px no-repeat; }
.agent-avatar img { background-size:24px; }
.member-ph, .avatar-ph { display:flex; align-items:center; justify-content:center; width:100%; height:100%; font-weight:700; color:var(--baltyk); }
.member-ph { font-size:2.4rem; }
.avatar-ph { font-size:1.4rem; }
.member-name a, .agent-name a { color:inherit; text-decoration:none; }
.member-name a:hover, .agent-name a:hover { color:var(--baltyk); text-decoration:underline; text-underline-offset:.18em; }

/* Lista zespołu */
.team-page { padding-top:48px; }
.team-grid { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:24px; }
.member { display:flex; flex-direction:column; align-items:center; text-align:center; }
.member-photo { max-width:208px; margin-bottom:12px; }
.member-name { margin:8px 0 4px; font-size:1.25rem; }
.member-role { margin:0 0 24px; color:var(--mgla); font-size:.9rem; }
.member-actions { margin-top:auto; display:flex; flex-direction:column; gap:10px; width:100%; }

/* Strona agenta */
.agent-page { padding:20px 0 40px; }
.agent-hero { display:grid; grid-template-columns:240px minmax(0,1fr); gap:40px; align-items:start; }
.agent-photo { max-width:240px; }
.agent-photo .member-ph { font-size:3.4rem; }
.agent-lead { margin:8px 0 0; color:var(--mgla); font-size:1.05rem; }
.agent-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.agent-desc { margin-top:24px; }

@media (max-width:1000px) { .team-grid { grid-template-columns:repeat(3, minmax(0,1fr)); } }
@media (max-width:760px)  { .agent-hero { grid-template-columns:1fr; gap:20px; } .agent-photo { max-width:180px; } }
@media (max-width:640px)  { .team-grid { grid-template-columns:repeat(2, minmax(0,1fr)); gap:16px; } .member-name { font-size:1.05rem; } }


/* ==========================================================================
   13. FORMULARZ „ZGŁOŚ NIERUCHOMOŚĆ”
   ========================================================================== */
.form-page { padding-top:40px; }
.zn-panel { max-width:760px; margin:0 auto; padding:28px 28px 32px; }
.zn-panel > h2 { font-size:1.5rem; }
.zn-grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:18px; }
.zn-field { display:flex; flex-direction:column; gap:6px; min-width:0; }
.zn-field.full { grid-column:1 / -1; }
.zn-field label { font-size:.9rem; font-weight:600; }
.zn-field input, .zn-field select, .zn-field textarea { width:100%; height:46px; padding:0 12px; border:1px solid var(--linia); border-radius:var(--r); font:inherit; color:var(--atrament); background:#fff; }
.zn-field textarea { height:auto; min-height:150px; padding:10px 12px; resize:vertical; }
.zn-field input:focus-visible, .zn-field select:focus-visible, .zn-field textarea:focus-visible { outline:3px solid var(--baltyk); outline-offset:1px; }
.zn-check { display:flex; gap:10px; align-items:flex-start; margin-top:22px; font-size:.95rem; }
.zn-check input { flex:0 0 auto; width:18px; height:18px; margin-top:.2em; accent-color:var(--baltyk); }
.zn-panel .cf-turnstile { margin-top:18px; }
.zn-submit { margin-top:22px; }
.zn-alert { margin-bottom:22px; padding:12px 16px; border-radius:var(--r); background:#fdecea; border:1px solid #d9534f; color:#6b1d1a; }
.zn-alert ul { margin:0; padding-left:1.2em; }
.zn-hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }   /* honeypot */

@media (max-width:640px) {
  .zn-panel { padding:20px 18px 24px; }
  .zn-grid { grid-template-columns:1fr; }
  .zn-submit { width:100%; }
}


/* ==========================================================================
   14. O FIRMIE
   ========================================================================== */
.about-page { padding-top:44px; }
.about-page .block > h2 { font-size:1.5rem; margin-bottom:.8em; }
.about-page .chips li { padding:10px 16px; border-radius:var(--r); }   /* prostokątne plakietki zamiast pigułek */
.about-company { max-width:560px; }

/* Wstęp: pierwszy akapit jako wyróżniony lead */
.about-intro { max-width:74ch; }
.about-intro .desc { max-width:none; }
.about-intro .desc p { margin:0 0 1.1em; }
.about-intro .desc p:first-child { font-size:1.2rem; line-height:1.55; font-weight:550; }

/* Liczby (sekcja ukryta, dopóki tablica stats jest pusta) */
.about-stats { display:grid; grid-template-columns:repeat(auto-fit, minmax(170px,1fr)); gap:24px; margin:40px 0 0; padding:0; }
.about-stats div { padding-top:12px; border-top:4px solid var(--piasek); }
.about-stats dt { color:var(--mgla); font-size:.9rem; }
.about-stats dd { margin:2px 0 0; font-size:2.1rem; font-weight:750; letter-spacing:-.02em; line-height:1.1; }

/* Trzy listy: lewa wysoka karta, prawa kolumna: dwie karty jedna pod drugą */
.values-grid { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:24px; }
.values-grid > li { padding:26px 28px 28px; }
.values-grid > li:first-child { grid-row:span 2; }
.value-title { margin:0 0 12px; padding-bottom:12px; border-bottom:1px solid var(--linia); font-size:1.2rem; }
.about-list { margin:0; padding:0; list-style:none; }
.about-list li { position:relative; padding:7px 0 7px 20px; font-size:.97rem; line-height:1.5; }
.about-list li::before { content:""; position:absolute; left:0; top:1.05em; width:6px; height:6px; border-radius:50%; background:var(--baltyk); }

/* Trzy filary */
.pillars { list-style:none; counter-reset:pillar; margin:22px 0 0; padding:0; display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:24px; }
.pillars > li { counter-increment:pillar; padding:24px 24px 26px; }
.pillars > li::before { content:counter(pillar); display:flex; align-items:center; justify-content:center; width:36px; height:36px; margin-bottom:12px; border-radius:50%; background:var(--atrament); color:#fff; font-weight:700; }

/* Wezwanie do działania: ciemny pas jak .band */
.about-cta { margin-top:56px; padding:32px 32px 34px; display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap;
  background:var(--atrament); color:#fff; border-top-color:var(--piasek); box-shadow:none; }
.about-cta h2 { margin:0 0 .3em; color:#fff; }
.about-cta p { margin:0; color:#c3cfd3; }
.about-cta-actions { display:flex; flex-wrap:wrap; gap:10px; }
.about-cta :focus-visible { outline-color:var(--piasek); }
.about-cta .btn { background:var(--piasek); color:var(--atrament); }
.about-cta .btn:hover { background:#fff; color:var(--atrament); }
.about-cta .btn-quiet { background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,.55); }
.about-cta .btn-quiet:hover { background:rgba(255,255,255,.14); border-color:#fff; color:#fff; }

@media (max-width:1000px) {
  .values-grid { grid-template-columns:1fr; }
  .values-grid > li:first-child { grid-row:auto; }
  .pillars { grid-template-columns:1fr; }
}
@media (max-width:640px) {
  .about-page { padding-top:32px; }
  .about-intro .desc p:first-child { font-size:1.1rem; }
  .values-grid > li { padding:20px 20px 22px; }
  .about-cta { padding:24px 20px 26px; }
  .about-cta-actions { width:100%; }
  .about-cta-actions .btn { flex:1; }
}


/* ==========================================================================
   15. WIRTUALNY SPACER
   ========================================================================== */
.tour { position:relative; aspect-ratio:16/9; background:#111; border-radius:8px; overflow:hidden; }
.tour iframe, .tour .tour-poster { position:absolute; inset:0; width:100%; height:100%; border:0; }
.tour .tour-poster { object-fit:cover; filter:brightness(.6); }
.tour-play { position:absolute; inset:0; margin:auto; width:max-content; height:max-content; display:flex; align-items:center; gap:.6em; padding:14px 26px;
  border:0; border-radius:999px; background:#fff; color:#111; font-weight:700; font-size:1rem; cursor:pointer; box-shadow:0 4px 20px rgba(0,0,0,.35); }
.tour-play:hover { background:#f0f0f0; }

@media (max-width:600px) { .tour { aspect-ratio:4/3; } }


/* ==========================================================================
   16. PARTNERZY (przewijany pasek logo)
   ========================================================================== */
.partners { padding:clamp(2rem,5vw,3.5rem) 0; background:var(--piasek-jasny); border-block:1px solid var(--linia); }
.partners-title { margin:0 0 1.5rem; text-align:center; font-size:.8rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--mgla); }
.partners-viewport { overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.partners-track { display:flex; width:max-content; animation:partners-scroll var(--partners-dur,40s) linear infinite; }
.partners-viewport:hover .partners-track,
.partners-viewport:focus-within .partners-track { animation-play-state:paused; }
.partners-group { display:flex; flex:none; align-items:center; margin:0; padding:0; list-style:none; }
.partners-item { flex:none; padding:0 clamp(1.5rem,4vw,3rem); }   /* odstęp jako padding, nie gap, żeby pętla była bez skoku */
.partners-item a { display:block; }
.partners-item img { display:block; height:clamp(36px,5vw,52px); width:auto; max-width:170px; object-fit:contain; filter:grayscale(1); opacity:.65; transition:filter .25s, opacity .25s; }
.partners-item:hover img, .partners-item a:focus-visible img { filter:none; opacity:1; }
.partners-item a:focus-visible { outline:2px solid var(--baltyk); outline-offset:4px; }

@keyframes partners-scroll { to { transform:translateX(-50%); } }   /* dokładnie jedna z dwóch grup */


/* ==========================================================================
   17. STOPKA
   ========================================================================== */
.site-footer { background:var(--atrament); color:#c9d4d8; padding:40px 0 28px; }
.site-footer a { color:#fff; }

.foot-grid { display:grid; grid-template-columns:repeat(1, 1fr); gap:2rem; }
.foot-grid p { margin:0 0 6px; }
.foot-col { display:flex; flex-direction:column; }
.foot-title { margin:0 0 .85rem; color:#fff; font-size:1.1rem; font-weight:650; }
.foot-name { color:#fff; font-weight:700; font-size:1.1rem; }

.foot-socials { display:flex; align-items:center; gap:.85rem; margin-top:.25rem; }
.foot-socials a { display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:var(--r);
  background:rgba(255,255,255,.08); color:#c9d4d8; text-decoration:none; transition:background-color .2s ease, color .2s ease, transform .2s ease; }
.foot-socials a:hover { opacity:.75; background:var(--baltyk); color:#fff; transform:translateY(-2px); }   /* opacity .75 to pozostałość ze starszej wersji; usuń, jeśli ikony mają się nie przyciemniać */
.foot-socials a:focus-visible { outline:2px solid var(--piasek); outline-offset:2px; }
.foot-socials svg { display:block; }

.foot-copy { margin:32px 0 0; padding-top:16px; border-top:1px solid rgba(255,255,255,.14); font-size:.88rem; color:#8fa1a8; }

@media (min-width:768px) { .foot-grid { grid-template-columns:repeat(3, 1fr); } }


/* ==========================================================================
   18. PRZYCISK „NA GÓRĘ”
   ========================================================================== */
.to-top { position:fixed; right:max(20px, env(safe-area-inset-right)); bottom:max(20px, env(safe-area-inset-bottom)); z-index:900;
  width:48px; height:48px; padding:0; display:inline-flex; align-items:center; justify-content:center;
  border:0; border-radius:50%; background:var(--baltyk); color:#fff; cursor:pointer; box-shadow:0 0 0 2px #fff, 0 3px 12px rgba(18,35,43,.4);
  visibility:hidden; opacity:0; transform:translateY(12px); transition:opacity .25s ease, transform .25s ease, background-color .15s, visibility 0s .25s; }
.to-top.is-visible { visibility:visible; opacity:1; transform:none; transition-delay:0s; }
.to-top:hover { background:var(--baltyk-ciemny); }
.to-top:focus-visible { outline:3px solid var(--piasek); outline-offset:3px; }
html.lb-open .to-top { display:none; }


/* ==========================================================================
   19. PREFERS-REDUCED-MOTION (jedno miejsce, na końcu, żeby wygrywało z resztą)
   ========================================================================== */
@media (prefers-reduced-motion:reduce) {
  /* przejścia */
  .hero, .hero-img, .hero .btn-arrow::after, .results, .lb-img,
  .viewer-main img, .viewer-main img.viewer-next { transition:none; }
  .to-top { transition:none; transform:none; }

  /* animacje hero */
  .hl, .hero-sun, .win, .star, .hero-img, .hero .btn,
  .hero-kicker, .hero-price, .hero-title, .hero-lead, .hero-place, .hero-meta, .hero-excerpt, .hero-stats { animation:none; }

  /* partnerzy: zwykłe ręczne przewijanie, bez duplikatu grupy */
  .partners-viewport { overflow-x:auto; -webkit-mask-image:none; mask-image:none; }
  .partners-track { animation:none; }
  .partners-group[aria-hidden="true"] { display:none; }
}