/* Kotlina24 — redesign "Modern Bento" 2025/2026
   Warstwowy układ kart, jasne tło, duże zaokrąglenia, miękkie cienie */

/* Google Fonts wczytywany przez <link> w <head> (layout.php), nie przez @import tutaj —
   @import w CSS blokuje odkrycie fontu do czasu pobrania i sparsowania całego pliku CSS,
   podczas gdy <link> w HTML przeglądarka widzi od razu i pobiera równolegle. */

:root{
  /* domyślnie: Lwówek24 (bordowy) — nadpisywane przez [data-portal] niżej */
  --brand: #A00202;
  --brand-dark: #7A0101;
  --brand-tint: #FBEAEA;
  --brand-rgb: 160,2,2;
  --on-brand: #FFFFFF;
  --brand-ink: #A00202;   /* wersja marki do tekstu/cienkich linii na jasnym tle — zawsze czytelna */

  --ink: #15171B;
  --ink-soft: #4A4A4A;
  --muted: #8A8F98;
  --bg: #F4F5F7;
  --surface: #FFFFFF;
  --surface-soft: #F1F2F4;
  --line-soft: #ECEDEF;
  --gold: #B4791A;
  --gold-tint: #FBF1DF;

  --display: 'Plus Jakarta Sans', Inter, sans-serif;
  --sans: 'Inter', -apple-system, Segoe UI, sans-serif;

  --r-lg: 20px;   /* hero, big media */
  --r-md: 12px;   /* cards */
  --r-sm: 10px;   /* thumbnails, inputs, small tiles */
  --r-pill: 999px;/* buttons, search, filter pills */

  --shadow-card: 0px 4px 20px rgba(20, 20, 25, 0.05);
  --shadow-card-hover: 0px 14px 34px rgba(20, 20, 25, 0.09);
  --shadow-header: 0px 2px 16px rgba(20, 20, 25, 0.04);

  --container: 1200px;
  --header-bg-rgb: 255,255,255;
}

/* ---------- DARK MODE ----------
   Domyślnie zawsze jasny motyw (niezależnie od ustawień systemu).
   Ciemny włącza się tylko przełącznikiem w nagłówku — wybór zapamiętuje
   ciasteczko "theme" (patrz site.js), a serwer wypisuje [data-theme] na
   <html> już w HTML, więc nie ma mignięcia przy przechodzeniu między stronami. */
:root[data-theme="dark"]{
  --ink: #E9EAED; --ink-soft: #BFC2C9; --muted: #9AA0AA;
  --bg: #111215; --surface: #1A1B20; --surface-soft: #24252C; --line-soft: #33353D;
  --brand-tint: #3A1616; --header-bg-rgb: 26,27,32;
  --brand-ink: #F28B82;   /* bordo na ciemnym tle byłoby nieczytelne */
  --gold-tint: #3A2E17;
  --shadow-card: 0 4px 20px rgba(0,0,0,.35);
  --shadow-card-hover: 0 14px 34px rgba(0,0,0,.45);
  --shadow-header: 0 2px 16px rgba(0,0,0,.3);
  color-scheme: dark;
}
:root[data-theme="dark"][data-portal="zlotoryja"]{
  --brand-tint: #3A3410;
  --brand-ink: #FBDC10;   /* na ciemnym tle żółty jest czytelny, bursztyn nie */
}
:root[data-theme="dark"] img:not(.no-dark-dim){ opacity:.94; }
/* Elementy z twardo wpisaną bielą w jasnym motywie */
:root[data-theme="dark"] .scroll-row-arrow,
:root[data-theme="dark"] .hub-pharmacy-note,
:root[data-theme="dark"] .show-more-btn,
:root[data-theme="dark"] .radny-card,
:root[data-theme="dark"] .content-gallery-nav button{
  background:var(--surface); border-color:var(--line-soft); color:var(--ink);
}
:root[data-theme="dark"] .show-more-btn{ color:var(--brand-ink); }
:root[data-theme="dark"] .kl-t tr.me,
:root[data-theme="dark"] .sp-tbl tr.me{ background:rgba(251,220,16,.14); }
:root[data-theme="dark"] input,
:root[data-theme="dark"] textarea,
:root[data-theme="dark"] select{
  background-color:var(--surface-soft); color:var(--ink); border-color:var(--line-soft);
}
:root[data-theme="dark"] ::placeholder{ color:var(--muted); }
body{ background:var(--bg); color:var(--ink); transition:background-color .15s, color .15s; }

.theme-toggle{
  display:flex; align-items:center; justify-content:center; width:32px; height:32px;
  border-radius:50%; border:none; background:transparent; color:var(--ink-soft); cursor:pointer;
  font-size:14px; margin-left:4px;
}
.theme-toggle:hover{ background:var(--surface-soft); color:var(--ink); }
.theme-toggle-icon-light{ display:none; }
:root[data-theme="dark"] .theme-toggle-icon-dark{ display:none; }
:root[data-theme="dark"] .theme-toggle-icon-light{ display:block; }

/* Moja Złotoryja — przełącznik marki (żółty #FBDC10, ciemny tekst dla kontrastu) */
[data-portal="zlotoryja"]{
  --brand: #FBDC10;
  --brand-dark: #E0C300;
  --brand-tint: #FFF8CE;
  --brand-rgb: 251,220,16;
  --on-brand: #23200E;
  --brand-ink: #8A6A00;   /* ciemny bursztyn — czytelny na bieli i na jasnożółtym tle, żółty sam w sobie by zniknął */
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; overflow-x:hidden; -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body{
  margin:0;
  overflow-x:hidden; max-width:100%;
  font-family:var(--sans);
  color:var(--ink);
  background:
    radial-gradient(640px circle at 6% 0%, rgba(var(--brand-rgb),0.055), transparent 60%),
    radial-gradient(720px circle at 96% 8%, rgba(180,121,26,0.05), transparent 55%),
    var(--bg);
  background-attachment:fixed;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }
:focus-visible{ outline:2px solid var(--brand); outline-offset:2px; }

/* ---------- dostepnosc (WCAG) ---------- */
.skip-to-content{
  position:absolute; top:-100px; left:12px; z-index:9999; background:var(--brand); color:#fff;
  padding:12px 20px; border-radius:0 0 8px 8px; font-weight:700; font-size:14px; text-decoration:none;
  transition:top .15s;
}
.skip-to-content:focus{ top:0; }
#main-content:focus{ outline:none; }

.wrap{
  max-width:var(--container);
  margin:0 auto;
  padding:0 24px;
}

/* ---------- header ---------- */
header.site{
  background:rgba(var(--header-bg-rgb),.72);
  backdrop-filter:blur(18px) saturate(160%);
  -webkit-backdrop-filter:blur(18px) saturate(160%);
  border-radius:var(--r-md);
  margin:14px 0 0;
  padding:0 24px;
  box-shadow:var(--shadow-header);
  position:sticky;
  top:14px;
  z-index:40;
}
.header-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:10px 0;
  border-bottom:1px solid var(--line-soft);
  font-size:12px;
  color:var(--muted);
}
.utility-left{ display:flex; gap:16px; align-items:center; }
.utility-left .weather{ display:flex; align-items:center; gap:6px; color:var(--ink-soft); font-weight:600; }
.utility-right{ display:flex; gap:16px; align-items:center; }
.utility-right a:hover{ color:var(--brand-ink); }
.phone-cta{
  display:inline-flex; align-items:center; gap:6px; white-space:nowrap;
  font-weight:800; color:var(--brand-ink); font-size:14.5px; letter-spacing:.01em;
}
.phone-cta svg{ width:15px; height:15px; flex-shrink:0; }
.phone-cta:hover{ opacity:.8; }

/* ---------- social media (Facebook / YouTube / Instagram) ---------- */
.social-links{ display:flex; gap:7px; align-items:center; padding-left:14px; border-left:1px solid var(--line-soft); }
.social-btn{
  width:25px; height:25px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:var(--surface-soft); color:var(--ink-soft); flex-shrink:0;
}
.social-btn svg{ width:13px; height:13px; }
.social-btn:hover{ background:var(--brand-tint); color:var(--brand-ink); }

.header-row{
  display:flex;
  align-items:center;
  gap:20px;
  padding:16px 0;
}
.header-row .header-actions{ margin-left:auto; }

.logo{
  font-family:var(--display);
  font-weight:800;
  font-size:27px;
  letter-spacing:-0.5px;
  white-space:nowrap;
  display:flex;
  align-items:baseline;
  gap:2px;
}
.logo-block{ display:flex; flex-direction:column; justify-content:center; }

/* ---------- przełącznik portalu (logo + rozwijana lista) ---------- */
.logo-switcher{ position:relative; display:flex; align-items:center; gap:6px; }
.logo-link{ display:flex; align-items:center; }
.logo-img{ height:60px; width:auto; max-width:220px; object-fit:contain; }
.logo-caret-btn{
  display:flex; align-items:center; justify-content:center;
  width:26px; height:26px;
  background:var(--surface-soft); border:none; border-radius:50%;
  flex-shrink:0;
}
.logo-caret-btn:hover{ background:var(--brand-tint); }
.logo-caret{
  width:13px; height:13px; color:var(--muted);
  transition:transform .18s, color .18s;
}
.logo-caret-btn[aria-expanded="true"] .logo-caret{ transform:rotate(180deg); color:var(--brand-ink); }
.logo-caret-btn:hover .logo-caret{ color:var(--brand-ink); }

.logo-dropdown{
  position:absolute;
  top:calc(100% + 10px);
  left:0;
  min-width:240px;
  background:var(--surface);
  border-radius:var(--r-md);
  box-shadow:var(--shadow-card-hover);
  padding:8px;
  display:flex;
  flex-direction:column;
  gap:2px;
  z-index:50;
  opacity:0;
  visibility:hidden;
  transform:translateY(-6px);
  transition:opacity .16s, transform .16s, visibility .16s;
}
.logo-dropdown.open{ opacity:1; visibility:visible; transform:translateY(0); }
.logo-option{
  display:flex; align-items:center; gap:12px;
  background:none; border:none; border-radius:var(--r-sm);
  padding:9px 10px; text-align:left; width:100%;
}
.logo-option:hover{ background:var(--surface-soft); }
.logo-option.active{ background:var(--brand-tint); }
.logo-option img{ height:22px; width:44px; object-fit:contain; flex-shrink:0; }
.logo-option span{ font-size:13.5px; font-weight:600; color:var(--ink); }
.logo-option .check{ margin-left:auto; width:14px; height:14px; color:var(--brand-ink); flex-shrink:0; visibility:hidden; }
.logo-option.active .check{ visibility:visible; }

/* ---------- trzeci wiersz headera: nawigacja + wyszukiwarka ---------- */
.header-nav-row{
  display:flex;
  align-items:center;
  gap:20px;
  padding:12px 0 16px;
  border-top:1px solid var(--line-soft);
}

nav.main{ flex:1; min-width:0; }
nav.main ul{
  list-style:none;
  display:flex;
  gap:2px;
  margin:0; padding:0;
  flex-wrap:wrap;
}
nav.main a{
  display:block;
  padding:9px 13px;
  font-size:13.5px;
  font-weight:600;
  color:var(--ink-soft);
  border-radius:var(--r-pill);
  white-space:nowrap;
  transition:background .15s, color .15s;
}
nav.main li.active a,
nav.main a:hover{
  color:var(--brand-ink);
  background:var(--brand-tint);
}

/* search pill */
.search-pill{
  display:flex;
  align-items:center;
  gap:10px;
  background:var(--surface);
  border:1.5px solid var(--line-soft);
  border-radius:var(--r-pill);
  padding:12px 20px;
  height:46px;
  flex:0 0 auto;
  width:260px;
  margin-left:auto;
  transition:border-color .15s, box-shadow .15s;
}
.search-pill:focus-within{
  border-color:var(--brand);
  box-shadow:0 0 0 3px rgba(var(--brand-rgb),.12);
}
.search-pill svg{ width:18px; height:18px; color:var(--muted); flex-shrink:0; }
.search-pill input{
  border:none; background:transparent; outline:none;
  font-family:inherit; font-size:15px; font-weight:500; color:var(--ink);
  width:100%;
  min-width:0;
}
.search-pill input::placeholder{ color:var(--muted); font-weight:400; }

.header-actions{ display:flex; align-items:center; gap:10px; }
.mobile-cta-row{ display:none; gap:10px; padding:0 0 14px; }
.mobile-cta-row .btn-ghost,
.mobile-cta-row .btn-cta{ flex:1; justify-content:center; }
.icon-btn{
  width:38px; height:38px;
  display:flex; align-items:center; justify-content:center;
  border:none;
  border-radius:50%;
  background:var(--surface-soft);
  color:var(--ink-soft);
}
.icon-btn:hover{ background:var(--brand-tint); color:var(--brand-ink); }
.btn-ghost{
  display:inline-flex;
  align-items:center;
  gap:7px;
  background:var(--surface-soft);
  color:var(--ink-soft);
  font-weight:700;
  font-size:13px;
  padding:11px 18px;
  border:none;
  border-radius:var(--r-pill);
  white-space:nowrap;
}
.btn-ghost:hover{ background:var(--brand-tint); color:var(--brand-ink); }
.btn-cta{
  display:inline-flex;
  align-items:center;
  gap:7px;
  background:var(--brand);
  color:var(--on-brand);
  font-weight:700;
  font-size:13.5px;
  padding:11px 20px;
  border:none;
  border-radius:var(--r-pill);
  white-space:nowrap;
  box-shadow:0 6px 16px rgba(var(--brand-rgb),.22);
}
.btn-cta svg{ width:14px; height:14px; }
.btn-cta:hover{ background:var(--brand-dark); transform:translateY(-1px); box-shadow:0 10px 22px rgba(var(--brand-rgb),.28); }

/* "Zgłoś temat" w headerze/mobile-cta-row: delikatne pulsowanie, żeby
   przyciągało wzrok — tylko te dwa wystąpienia (attrybut data-open-report-modal),
   nie inne przyciski .btn-cta (np. submit formularza w modalu). */
.btn-cta[data-open-report-modal]{ animation:cta-pulse 1.4s ease-in-out infinite; }
.btn-cta[data-open-report-modal]:hover{ animation-play-state:paused; }
@keyframes cta-pulse{
  0%, 100%{ box-shadow:0 6px 16px rgba(var(--brand-rgb),.22); transform:scale(1); }
  50%{ box-shadow:0 6px 26px rgba(var(--brand-rgb),.65); transform:scale(1.035); }
}

.hamburger{ display:none; }

/* ---------- pasek "na bieżąco" (przesuwany ticker) ---------- */
.ticker{
  display:flex;
  align-items:center;
  gap:16px;
  background:var(--brand);
  color:var(--on-brand);
  border-radius:var(--r-pill);
  padding:11px 22px;
  margin:14px 0 0;
  overflow:hidden;
  box-shadow:0 6px 16px rgba(var(--brand-rgb),.2);
}
.ticker-label{
  flex-shrink:0;
  display:flex; align-items:center; gap:7px;
  font-size:11.5px; font-weight:800; text-transform:uppercase; letter-spacing:.05em;
  padding-right:16px;
  border-right:1.5px solid rgba(0,0,0,.15);
}
.ticker-label .live-dot{
  width:7px; height:7px; border-radius:50%;
  background:var(--on-brand);
  animation:ticker-pulse 1.6s ease-in-out infinite;
}
.ticker-track{ overflow:hidden; flex:1; min-width:0; }
.ticker-track:hover .ticker-move{ animation-play-state:paused; }
.ticker-move{
  display:flex;
  gap:44px;
  width:max-content;
  animation:ticker-scroll 32s linear infinite;
}
.ticker-move span, .ticker-item{
  font-size:13px; line-height:1.3; font-weight:600; white-space:nowrap;
  -webkit-text-size-adjust:100%; text-size-adjust:100%;
}
.ticker-item{ color:inherit; text-decoration:none; }
.ticker-item:hover{ opacity:.7; }
@keyframes ticker-scroll{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); }
}
@keyframes ticker-pulse{
  0%, 100%{ opacity:1; }
  50%{ opacity:.35; }
}

/* ---------- ad slots (pod headerem) ---------- */
.ad-row{
  display:flex;
  flex-direction:column;
  gap:14px;
  margin:18px 0 0;
}
.ad-slot{
  background:var(--surface);
  border:1.5px dashed #D7D9DD;
  border-radius:var(--r-md);
  box-shadow:var(--shadow-card);
  padding:20px 16px;
  min-height:96px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  text-align:center;
  color:var(--muted);
}
.ad-slot.ad-slot-lg{ min-height:220px; }
.ad-slot svg{ width:20px; height:20px; opacity:.55; }
.ad-slot .ad-label{
  font-size:12px; font-weight:700; color:var(--ink-soft);
  text-transform:uppercase; letter-spacing:.04em;
}
.ad-slot .ad-size{ font-size:11.5px; color:var(--muted); }
.ad-slot.ad-slot--live{
  border-style:solid; border-color:transparent; padding:0; position:relative; overflow:hidden;
  display:block; text-decoration:none; min-height:96px;
}
.ad-slot.ad-slot--live.ad-slot-lg{ min-height:220px; }
.ad-live-label{
  position:absolute; top:8px; left:8px; background:rgba(0,0,0,.55); color:#fff;
  font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.04em;
  padding:3px 8px; border-radius:4px;
}

/* ---------- ad slots: naturalny obrazek (bez przycinania, szerokie banery) ---------- */
.ad-slot.ad-slot--native{
  border:0; background:none; box-shadow:none; padding:0; margin:0; min-height:0;
  display:block; text-decoration:none; line-height:0;
}
.ad-slot.ad-slot--native img{
  display:block; width:100%; height:auto; border-radius:var(--r-md);
}
/* Pasek pełnoszerokich banerów jeden pod drugim (np. home_premium) — trochę
   węższy niż cała kolumna treści i wyśrodkowany, żeby nie rozciągał się na
   całą szerokość; auto-marginesy w gridzie centrują element w komórce. */
.ad-grid.ad-grid--cols-1 .ad-slot--native{
  max-width:640px; margin:0 auto;
}
/* Odstęp między kolejnymi sekcjami reklam (np. home_premium i home_standard
   pod sobą) — bez tego na mobile (gdzie każdy .ad-grid jest w osobnym
   .wrap/div) stykały się bez żadnej przerwy. */
.ad-section-stack{ display:flex; flex-direction:column; gap:20px; }
.ad-section-stack:empty{ display:none; }

/* ---------- ad slots: tryb siatki (kilka reklam naraz w jednym slocie) ---------- */
.ad-grid{
  display:grid;
  gap:14px;
  width:100%;
}
.ad-grid.ad-grid--cols-1{ grid-template-columns:1fr; }
.ad-grid.ad-grid--cols-2{ grid-template-columns:1fr 1fr; }
.ad-grid.ad-grid--cols-3{ grid-template-columns:repeat(3,1fr); }
.ad-grid.ad-grid--cols-4{ grid-template-columns:repeat(4,1fr); }
.ad-grid .ad-slot{ min-height:auto; }
@media (max-width:768px){
  .ad-grid.ad-grid--cols-2,
  .ad-grid.ad-grid--cols-3,
  .ad-grid.ad-grid--cols-4{ grid-template-columns:1fr; }
}

/* ---------- breadcrumb ---------- */
.breadcrumb{
  font-size:12.5px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--muted);
  padding:22px 0 0;
}
.breadcrumb a:hover{ color:var(--brand-ink); }

/* ---------- hero ---------- */
.hero-carousel{
  margin:22px 0 8px;
  background:var(--surface);
  border-radius:var(--r-lg);
  overflow:hidden;
  box-shadow:var(--shadow-card);
}
.hero-media-frame{ position:relative; }
.hero-media{
  display:block;
  aspect-ratio:21/8.4;
  background:#333 center/cover no-repeat;
  transition:background-image .2s;
}
.hero-arrow{
  position:absolute; top:50%; transform:translateY(-50%);
  width:42px; height:42px;
  border-radius:50%;
  border:none;
  background:rgba(255,255,255,.85);
  backdrop-filter:blur(4px);
  color:var(--ink);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 14px rgba(0,0,0,.15);
  transition:background .15s, transform .15s;
}
.hero-arrow svg{ width:19px; height:19px; }
.hero-arrow:hover{ background:var(--brand); color:var(--on-brand); }
.hero-arrow--prev{ left:16px; }
.hero-arrow--next{ right:16px; }
.hero-dots{
  position:absolute; left:0; right:0; bottom:14px;
  display:flex; justify-content:center; gap:7px;
}
.hero-dot{
  width:7px; height:7px; border-radius:50%;
  background:rgba(255,255,255,.55);
  border:none; padding:0;
}
.hero-dot.active{ background:#fff; width:20px; border-radius:4px; }

.hero-content{ display:block; padding:26px 34px 30px; max-width:720px; }
.chip{
  display:inline-block;
  font-size:11.5px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.04em;
  padding:6px 13px;
  border-radius:var(--r-pill);
  background:var(--brand);
  color:var(--on-brand);
  margin-bottom:16px;
}
.chip.gold{ background:var(--gold); }
.chip.ghost{ background:rgba(255,255,255,.16); backdrop-filter:blur(3px); }
.hero-content h1{
  font-family:var(--display);
  font-size:clamp(24px,2.6vw,32px);
  line-height:1.18;
  margin:0 0 12px;
  font-weight:800;
  letter-spacing:-0.3px;
  color:var(--ink);
}
.hero-meta{
  font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.04em;
  color:var(--muted); display:flex; gap:16px; flex-wrap:wrap;
}

/* ---------- Polecane: bento (1 duży + 2 średnie + 3 małe) ---------- */
.featured-grid{
  display:grid;
  grid-template-columns:1.7fr 1fr;
  gap:16px;
}
.featured-side{
  display:flex;
  flex-direction:column;
  gap:16px;
}
.feature-card{
  position:relative;
  display:flex;
  border-radius:var(--r-md);
  overflow:hidden;
  background:#333 center/cover no-repeat;
  box-shadow:var(--shadow-card);
  flex:1;
  min-height:190px;
  transition:box-shadow .25s cubic-bezier(.2,.8,.2,1), transform .25s cubic-bezier(.2,.8,.2,1);
}
.feature-card:hover{ box-shadow:var(--shadow-card-hover); transform:translateY(-2px); }
.feature-card::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(0deg, rgba(6,6,8,.88) 0%, rgba(6,6,8,.5) 45%, rgba(6,6,8,.05) 78%, rgba(6,6,8,0) 100%);
}
.feature-content{
  position:relative; z-index:1;
  display:flex; flex-direction:column; justify-content:flex-end;
  padding:18px 20px; width:100%;
  color:#fff;
}
.feature-content .chip{ margin-bottom:10px; align-self:flex-start; }
.feature-content h3{
  font-family:var(--display);
  font-size:16.5px;
  font-weight:700;
  line-height:1.3;
  margin:0;
  color:#fff;
}
.feature-card:hover h3{ text-decoration:underline; }

.featured-bottom-row{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
  margin-top:16px;
}
.feature-card--small{ min-height:160px; }
.feature-card--small h3{ font-size:14.5px; }
.ad-slot--feature{ min-height:160px; }

/* ---------- treść główna + sidebar (Najważniejsze + widżety) ---------- */
.content-with-sidebar{
  display:grid;
  grid-template-columns:1.65fr 1fr;
  gap:20px;
  align-items:start;
}
.main-col{ min-width:0; }
.variant-label{
  display:inline-block;
  font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.06em;
  color:var(--muted); background:var(--surface-soft);
  padding:6px 14px; border-radius:var(--r-pill);
  margin:14px 0 4px;
}

/* ============================================================
   WARIANT 1 — Redakcyjny podział: zdjęcie + tekst pod spodem,
   obok pionowa, numerowana lista mniejszych newsów
   ============================================================ */
.v1-hero{ background:var(--surface); border-radius:var(--r-sm); overflow:hidden; box-shadow:var(--shadow-card); }
.v1-image{ display:block; aspect-ratio:16/8.6; background:#333 center/cover no-repeat; }
.v1-text{ padding:26px 30px 20px; border-bottom:1px solid var(--line-soft); }
.v1-text h1{ font-family:var(--display); font-size:clamp(24px,2.6vw,32px); font-weight:800; line-height:1.18; margin:14px 0 10px; letter-spacing:-0.3px; color:var(--ink); }
.v1-text h1 a{ color:inherit; }
.v1-text h1 a:hover{ color:var(--brand-ink); }
.v1-lead{ font-size:15px; color:var(--ink-soft); line-height:1.55; margin:0 0 4px; }
.v1-list{ padding:6px 8px; }
.v1-list-item{ display:flex; align-items:baseline; gap:14px; padding:13px 14px; border-radius:var(--r-sm); }
.v1-list-item:hover{ background:var(--surface-soft); }
.v1-list-num{ font-family:var(--display); font-weight:800; font-size:14px; color:var(--brand-ink); flex-shrink:0; width:20px; }
.v1-list-title{ font-size:14px; font-weight:600; color:var(--ink); line-height:1.35; }

/* ============================================================
   WARIANT 2 — Kinowy nagłówek: duże zdjęcie z dramatycznym
   tytułem na nakładce, pasek miniatur pod spodem
   ============================================================ */
.v2-hero{ border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-card); }
.v2-media-frame{ position:relative; border-radius:var(--r-lg); animation:heroGlow 3.5s ease-in-out infinite; }
@keyframes heroGlow{
  0%, 100% { box-shadow:0 0 0 0 rgba(var(--brand-rgb),.18); }
  50% { box-shadow:0 0 26px 6px rgba(var(--brand-rgb),.18); }
}
.v2-chip-corner{ position:absolute; top:16px; left:16px; z-index:2; margin:0; }
.v2-media{ position:relative; display:flex; align-items:flex-end; aspect-ratio:16/10; background:#222 center/cover no-repeat; overflow:hidden; }
.v2-media-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.v2-media::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(4,4,6,.92) 0%, rgba(4,4,6,.55) 42%, rgba(4,4,6,0) 78%); }
.v2-overlay{ position:relative; z-index:1; padding:30px 32px; color:#fff; max-width:600px; }
.v2-overlay h1{ font-family:var(--display); font-weight:800; font-size:clamp(25px,3vw,36px); line-height:1.12; margin:14px 0 12px; letter-spacing:-0.4px; }
.v2-overlay .hero-meta{ color:#E7E2DA; }

@media (max-width:640px){
  .v2-media{ aspect-ratio:4/5; align-items:flex-end; }
  .v2-overlay{ padding:16px 16px 20px; max-width:100%; }
  .v2-overlay h1{ font-size:18px; line-height:1.28; margin:6px 0 8px; }
  .v2-overlay .hero-meta{ font-size:11.5px; gap:8px; flex-wrap:wrap; }
  .v2-chip-corner{ top:12px; left:12px; font-size:11px; padding:4px 10px; }
  .hero-arrow{ width:34px; height:34px; }
}
.v2-strip{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-top:14px; }
.v2-strip-item{ display:flex; flex-direction:column; gap:8px; }
.v2-strip-thumb{ aspect-ratio:4/3; border-radius:var(--r-sm); background:#555 center/cover no-repeat; }
.v2-strip-item span{ font-size:12.5px; font-weight:700; color:var(--ink); line-height:1.32; }
.v2-strip-item:hover span{ color:var(--brand-ink); }

/* ---------- Pilne / Ostatnio czytane (pod paskami miniatur) ---------- */
.mini-columns{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  margin-top:20px;
}
.mini-panel{
  background:var(--surface);
  border-radius:var(--r-md);
  box-shadow:var(--shadow-card);
  padding:18px 20px;
}
.mini-panel--urgent{
  background:var(--brand-tint);
  border:1.5px solid rgba(var(--brand-rgb),.35);
  box-shadow:0 6px 18px rgba(var(--brand-rgb),.12);
}
.mini-list{ display:flex; flex-direction:column; margin-top:4px; }
.mini-list-item{
  display:block;
  padding:11px 0;
  font-size:13.5px;
  font-weight:600;
  line-height:1.4;
  color:var(--ink-soft);
  border-bottom:1px solid var(--line-soft);
}
.mini-list-item:last-child{ border-bottom:none; padding-bottom:2px; }
.mini-list-item:hover{ color:var(--brand-ink); }
.mini-panel--urgent .mini-list-item{ border-bottom-color:rgba(var(--brand-rgb),.18); }
.mini-list-item.urgent{ font-weight:800; color:var(--ink); }
.mini-panel--wide{ width:100%; margin-top:22px; }
.mini-list--with-images{ display:flex; flex-direction:column; }
.mini-list-item--with-image{ display:flex; align-items:center; gap:12px; }
.mini-list-thumb{ width:56px; height:56px; flex-shrink:0; border-radius:8px; background:#555 center/cover no-repeat; }
.mini-list-text{ display:flex; flex-direction:column; gap:2px; }
.urgent-tag{
  display:inline-block;
  background:var(--brand); color:var(--on-brand);
  font-size:9.5px; font-weight:800; text-transform:uppercase; letter-spacing:.04em;
  padding:3px 7px; border-radius:4px;
  margin-right:8px; vertical-align:middle;
}
.mini-time{
  display:block;
  font-size:11px; font-weight:600; color:var(--muted);
  text-transform:uppercase; letter-spacing:.03em;
  margin-top:3px;
}
.panel-title--urgent{ align-items:center; color:var(--brand-ink); }
.pulse-dot{
  width:7px; height:7px; border-radius:50%;
  background:var(--brand);
  display:inline-block;
  margin-left:2px;
  animation:ticker-pulse 1.6s ease-in-out infinite;
}

/* ---------- mini-sekcja: informacje z sąsiedniego powiatu (siostrzany portal) ---------- */
.sister-section{ margin:36px 0 8px; }
.sister-section-inner{
  border-radius:var(--r-lg);
  padding:28px 30px 30px;
}
/* kolor jest tu ZAWSZE kolorem promowanego (drugiego) portalu — nie zmienia się
   wraz z przełącznikiem, bo to wizytówka TEGO portalu, nie aktywnego */
.sister-section-inner--zlotoryja{ background:#FBDC10; box-shadow:0 14px 30px rgba(251,220,16,.28); }
.sister-section-inner--lwowek{ background:#A00202; box-shadow:0 14px 30px rgba(160,2,2,.28); }

.sister-section .section-head{ margin-bottom:20px; }
.sister-head{ align-items:center; }
.sister-section-inner--zlotoryja .section-head h2{ color:#23200E; }
.sister-section-inner--zlotoryja .section-head h2 .dot{ background:#23200E; }
.sister-section-inner--lwowek .section-head h2{ color:#fff; }
.sister-section-inner--lwowek .section-head h2 .dot{ background:#fff; }

.sister-credit-right{
  display:inline-flex; align-items:center; gap:10px;
  font-size:12.5px; font-weight:700;
  flex-shrink:0;
}
.sister-credit-logo{
  height:30px; width:auto; max-width:130px; object-fit:contain;
  background:#fff; padding:5px 10px; border-radius:8px;
}
.sister-section-inner--zlotoryja .sister-credit-right{ color:#23200E; opacity:.85; }
.sister-section-inner--lwowek .sister-credit-right{ color:#fff; opacity:.9; }

.sister-bottom{ display:flex; justify-content:center; margin-top:22px; }
.sister-goto-btn{
  display:inline-block;
  padding:13px 28px;
  border-radius:var(--r-pill);
  font-weight:800; font-size:14px;
  white-space:nowrap;
  transition:opacity .15s, transform .15s;
}
.sister-goto-btn:hover{ transform:translateY(-1px); }
.sister-section-inner--zlotoryja .sister-goto-btn{ background:#23200E; color:#FBDC10; }
.sister-section-inner--lwowek .sister-goto-btn{ background:#fff; color:#A00202; }
.sister-goto-btn:hover{ opacity:.88; }

.grid--sister{ grid-template-columns:repeat(3,1fr); gap:16px; }
.grid--sister .card h3{ font-size:15px; }

/* ============================================================
   WARIANT 3 — Mozaika: asymetryczna siatka zdjęć różnej wielkości
   ============================================================ */
.v3-mosaic{ display:grid; grid-template-columns:repeat(4,1fr); grid-template-rows:repeat(2,150px); gap:12px; }
.v3-tile{ position:relative; display:block; border-radius:var(--r-sm); overflow:hidden; background:#333 center/cover no-repeat; box-shadow:var(--shadow-card); }
.v3-tile--big{ grid-column:1/3; grid-row:1/3; }
.v3-tile::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(4,4,6,.82), rgba(4,4,6,.12) 58%, rgba(4,4,6,0) 85%); }
.v3-tile-content{ position:relative; z-index:1; height:100%; display:flex; flex-direction:column; justify-content:flex-end; padding:14px 16px; color:#fff; }
.v3-tile-content .chip{ margin-bottom:8px; }
.v3-tile-content h3{ font-family:var(--display); font-weight:700; font-size:14px; line-height:1.28; margin:0; }
.v3-tile--big .v3-tile-content h3{ font-size:19px; }
.v3-tile:hover h3{ text-decoration:underline; }

/* ============================================================
   WARIANT 4 — Minimalizm typograficzny: duży tytuł tekstowy,
   mała miniatura, lista tekstowa pod spodem
   ============================================================ */
.v4-hero{ background:var(--surface); border-radius:var(--r-md); box-shadow:var(--shadow-card); padding:32px 34px; }
.v4-eyebrow{ font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; color:var(--brand-ink); margin-bottom:14px; }
.v4-title{ margin:0 0 16px; }
.v4-title a{ display:block; font-family:var(--display); font-weight:800; font-size:clamp(27px,3.2vw,40px); line-height:1.08; letter-spacing:-0.5px; color:var(--ink); }
.v4-title a:hover{ color:var(--brand-ink); }
.v4-row{ display:flex; gap:20px; align-items:flex-start; margin-bottom:6px; }
.v4-thumb{ width:112px; height:112px; flex-shrink:0; border-radius:var(--r-sm); background:#555 center/cover no-repeat; }
.v4-lead{ font-size:15.5px; color:var(--ink-soft); line-height:1.6; margin:0 0 10px; }
.v4-list{ margin-top:18px; padding-top:16px; border-top:1px solid var(--line-soft); display:flex; flex-direction:column; }
.v4-list-item{ display:block; padding:10px 0; font-size:14.5px; font-weight:600; color:var(--ink-soft); border-bottom:1px solid var(--line-soft); }
.v4-list-item:last-child{ border-bottom:none; }
.v4-list-item:hover{ color:var(--brand-ink); }

/* ============================================================
   WARIANT 5 — Blok marki: kolorowe tło brandowe, zdjęcie jako
   mniejsza, oprawiona karta
   ============================================================ */
.v5-hero{
  display:grid; grid-template-columns:1fr 1.3fr; align-items:center;
  background:var(--brand); border-radius:var(--r-lg); overflow:hidden;
  box-shadow:0 14px 30px rgba(var(--brand-rgb),.28);
}
.v5-photo{ aspect-ratio:1/1; background:#333 center/cover no-repeat; margin:20px; border-radius:var(--r-md); box-shadow:0 14px 26px rgba(0,0,0,.28); }
.v5-content{ padding:20px 34px 20px 6px; color:var(--on-brand); }
.v5-content h1{ font-family:var(--display); font-weight:800; font-size:clamp(23px,2.5vw,31px); line-height:1.16; margin:14px 0 12px; letter-spacing:-0.3px; }
.v5-content .hero-meta{ color:var(--on-brand); opacity:.8; }
.v5-content .chip.ghost{ background:rgba(255,255,255,.22); }

/* ============================================================
   WARIANT 6 — Top 5 dnia: ranking tekstowy z miniaturami,
   bez dominującego zdjęcia
   ============================================================ */
.v6-hero{ background:var(--surface); border-radius:var(--r-md); box-shadow:var(--shadow-card); padding:8px; }
.v6-head{ padding:14px 16px 6px; }
.v6-head h2{ font-family:var(--display); font-size:19px; font-weight:800; margin:0; }
.v6-list{ display:flex; flex-direction:column; }
.v6-item{ display:flex; align-items:center; gap:16px; padding:13px 16px; border-radius:var(--r-sm); }
.v6-item:hover{ background:var(--surface-soft); }
.v6-item:not(:last-child){ border-bottom:1px solid var(--line-soft); }
.v6-rank{ font-family:var(--display); font-weight:800; font-size:24px; color:var(--line-soft); width:36px; flex-shrink:0; text-align:center; }
.v6-item:first-child .v6-rank{ color:var(--brand-ink); font-size:30px; }
.v6-thumb{ width:60px; height:60px; border-radius:var(--r-sm); background:#555 center/cover no-repeat; flex-shrink:0; }
.v6-info{ min-width:0; }
.v6-info .chip{ margin-bottom:6px; padding:3px 9px; font-size:10px; }
.v6-info h3{ font-family:var(--display); font-weight:700; font-size:14.5px; line-height:1.3; margin:0 0 4px; color:var(--ink); }
.v6-item:first-child .v6-info h3{ font-size:16.5px; }
.v6-meta{ font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.03em; }

/* ---------- rząd widżetów pod artykułami (nekrologi / reklama / apteki) ---------- */
.widgets-row{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
  margin:36px 0 8px;
  align-items:start;
}
.widget-col{ display:flex; flex-direction:column; gap:14px; }

.side-videos{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.panel-title{
  font-family:var(--display);
  font-size:18px;
  font-weight:700;
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 4px;
  padding-bottom:0;
  border-bottom:none;
}
.panel-title .dot{ width:4px; height:18px; background:var(--brand); border-radius:2px; display:inline-block; }

.video-strip{
  display:flex;
  gap:10px;
}
.video-thumb{
  position:relative;
  flex:1;
  aspect-ratio:1/1;
  border-radius:var(--r-sm);
  overflow:hidden;
  background:#444 center/cover no-repeat;
  box-shadow:var(--shadow-card);
}
.video-thumb .play{
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  background:rgba(10,8,7,.24);
}
.video-thumb .play svg{ width:20px; height:20px; fill:#fff; }
.video-thumb:hover .play{ background:rgba(var(--brand-rgb),.45); }

.side-card{
  display:grid;
  grid-template-columns:96px 1fr;
  gap:14px;
  background:var(--surface);
  border:none;
  border-radius:var(--r-md);
  overflow:hidden;
  padding:10px;
  box-shadow:var(--shadow-card);
  transition:box-shadow .25s cubic-bezier(.2,.8,.2,1), transform .25s cubic-bezier(.2,.8,.2,1);
}
.side-card:hover{ box-shadow:var(--shadow-card-hover); transform:translateY(-2px); }
.side-card .thumb{ aspect-ratio:1/1; border-radius:var(--r-sm); background:#555 center/cover no-repeat; }
.side-card .body{ padding:2px 4px 2px 0; }
.side-card .eyebrow{
  font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.04em;
  color:var(--muted); display:flex; gap:8px; margin-bottom:5px;
}
.side-card h4{ font-size:14px; line-height:1.32; margin:0; font-weight:700; font-family:var(--display); }

/* ---------- ikony przy tytułach widżetów (apteka / kir) ---------- */
.panel-icon{
  width:26px; height:26px; border-radius:8px;
  display:inline-flex; align-items:center; justify-content:center;
  overflow:hidden; flex-shrink:0;
}
.panel-icon svg{ width:100%; height:100%; display:block; }
.panel-icon--pulse{ animation:icon-pulse 1.6s ease-in-out infinite; }
@keyframes icon-pulse{
  0%, 100%{ opacity:1; transform:scale(1); }
  50%{ opacity:.55; transform:scale(.9); }
}
.panel-sub{
  font-size:12.5px; color:var(--muted); line-height:1.5;
  margin:2px 0 14px;
}

/* ---------- dyżury aptek ---------- */
.pharmacy-list{ display:flex; flex-direction:column; gap:12px; }
.pharmacy-item{
  background:var(--surface);
  border-radius:var(--r-md);
  box-shadow:var(--shadow-card);
  padding:14px 16px;
  display:flex;
  flex-direction:column;
  gap:3px;
}
.pharmacy-item .hours{
  display:inline-flex; align-items:center; gap:6px;
  font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.04em;
  color:var(--brand-ink); margin-bottom:4px;
}
.pharmacy-item .hours::before{ content:""; width:6px; height:6px; border-radius:50%; background:var(--brand-ink); flex-shrink:0; }
.pharmacy-item .name{ font-family:var(--display); font-weight:700; font-size:14px; }
.pharmacy-item .addr{ font-size:12px; color:var(--muted); }

/* ---------- pełny harmonogram dyżurów (dyzury-aptek.html) ---------- */
.duty-schedule{ display:flex; flex-direction:column; gap:28px; margin:28px 0 56px; }
.duty-date{ font-family:var(--display); font-size:16px; font-weight:700; margin:0 0 12px; color:var(--ink); }
.pharmacy-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }

.widget-cta{
  display:inline-flex; align-items:center; gap:6px;
  margin-top:14px;
  padding:10px 16px;
  background:var(--brand-tint);
  color:var(--brand-ink);
  font-size:12.5px; font-weight:700;
  border-radius:var(--r-pill);
  transition:background .15s;
}
.widget-cta svg{ width:13px; height:13px; }
.pharmacy-duty-day{ padding:14px 0; border-top:1px solid var(--line-soft); }
.pharmacy-duty-day:first-of-type{ border-top:none; padding-top:6px; }
.pharmacy-duty-day-title{ font-size:12.5px; font-weight:800; text-transform:uppercase; letter-spacing:.03em; color:var(--muted); margin:0 0 8px; }
.pharmacy-item .widget-cta--small{ margin-top:10px; align-self:flex-start; }
.widget-cta--small{ margin-top:8px; padding:6px 14px; font-size:11.5px; }
.widget-cta--small svg{ width:11px; height:11px; }
.uslugi-index-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:16px; }
.uslugi-index-card{ background:var(--surface); border:1px solid var(--line-soft); border-radius:14px; padding:18px 20px; }
.uslugi-index-card h3{ font-size:15px; margin:0 0 10px; }
.uslugi-index-card h3 a{ color:var(--ink); text-decoration:none; }
.uslugi-index-card h3 a:hover{ color:var(--brand-ink); }
.uslugi-index-gminy{ display:flex; flex-wrap:wrap; gap:6px 10px; }
.uslugi-index-gminy a{ font-size:12px; color:var(--brand-ink); text-decoration:none; }
.uslugi-index-gminy a:hover{ text-decoration:underline; }
.widget-cta:hover{ background:var(--brand); color:var(--on-brand); }

/* ---------- mini-kategorie w sidebarze (przesuwane, 2 widoczne naraz) ---------- */
.mini-carousel{
  display:flex;
  gap:12px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  padding:2px 2px 6px;
  margin-top:14px;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
}
.mini-carousel::-webkit-scrollbar{ height:5px; }
.mini-carousel::-webkit-scrollbar-thumb{ background:var(--line-soft); border-radius:3px; }
.mini-carousel-item{
  flex:0 0 calc(50% - 6px);
  scroll-snap-align:start;
  background:var(--surface);
  border-radius:var(--r-md);
  box-shadow:var(--shadow-card);
  padding:16px 12px;
  display:flex; flex-direction:column; align-items:center; gap:8px;
  text-align:center;
  transition:box-shadow .2s, transform .2s;
}
.mini-carousel-item:hover{ box-shadow:var(--shadow-card-hover); transform:translateY(-2px); }
.mini-carousel-icon{ font-size:22px; line-height:1; }
.mini-carousel-item span{ font-size:12px; font-weight:700; color:var(--ink); line-height:1.3; }

/* ---------- nekrologi (obrazki wgrywane przez zakłady pogrzebowe) ---------- */
.obituary-list{ display:flex; flex-direction:column; gap:14px; }
.obituary-card{
  display:block;
  overflow:hidden;
  touch-action:pan-y;
  cursor:grab;
}
.obituary-card img{ width:100%; height:auto; min-height:260px; object-fit:contain; background:#f4f4f4; display:block; border-radius:4px; }
.obituary-caption{ padding:11px 14px 13px; display:flex; flex-direction:column; gap:2px; }
.obituary-caption .source{ font-size:12px; font-weight:700; color:var(--ink); }
.obituary-caption .place{ font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.03em; }

/* nekrologi jako pojedynczy, przewijany slajd (auto + strzałki) */
.obituary-list--single{ position:relative; }
.obituary-nav{ display:flex; align-items:center; justify-content:center; gap:14px; margin-top:10px; }
.obituary-arrow{
  width:28px; height:28px; border-radius:50%;
  background:var(--surface-soft); border:none;
  display:flex; align-items:center; justify-content:center;
  color:var(--ink-soft); flex-shrink:0;
}
.obituary-arrow svg{ width:14px; height:14px; }
.obituary-arrow:hover{ background:var(--brand-tint); color:var(--brand-ink); }
.obituary-dots{ display:flex; gap:6px; }
.obituary-dot{ width:6px; height:6px; border-radius:50%; background:var(--line-soft); display:inline-block; transition:all .15s; }
.obituary-dot.active{ background:var(--brand); width:16px; border-radius:3px; }


/* ---------- section heading row ---------- */
.section-head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  margin:40px 0 20px;
  border-bottom:none;
  padding-bottom:0;
}
.section-head h1,
.section-head h2{
  font-family:var(--display);
  font-size:22px;
  font-weight:800;
  margin:0;
  display:flex;
  align-items:center;
  gap:10px;
  letter-spacing:-0.2px;
}
.section-head h1 .dot,
.section-head h2 .dot{ width:4px; height:20px; background:var(--brand); border-radius:2px; }
.see-all{ font-size:12.5px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:var(--brand-ink); }
.see-all:hover{ text-decoration:underline; }
.admin-edit-pencil{
  text-decoration:none; font-size:16px; opacity:.55; padding:4px 8px; border-radius:6px; background:#fff8e1;
  border:1px dashed #e0c060;
}
.admin-edit-pencil:hover{ opacity:1; }

/* ---------- filter tabs (interactive) ---------- */
.filter-tabs{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-bottom:24px;
}
.filter-tabs button{
  border:none;
  background:var(--surface);
  padding:9px 18px;
  border-radius:var(--r-pill);
  font-size:13px;
  font-weight:600;
  color:var(--ink-soft);
  box-shadow:var(--shadow-card);
  transition:all .15s;
}
.filter-tabs button:hover{ color:var(--brand-ink); }
.filter-tabs button.active{
  background:var(--brand);
  color:#fff;
  box-shadow:0 6px 16px rgba(var(--brand-rgb),.22);
}

/* ---------- article grid ---------- */
.grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
}
.scroll-row{
  display:flex; gap:18px; overflow-x:auto; scroll-snap-type:x proximity; padding-bottom:4px;
  scrollbar-width:none; -ms-overflow-style:none;
}
.scroll-row::-webkit-scrollbar{ display:none; }
.scroll-row .card{ flex:0 0 260px; scroll-snap-align:start; }
.scroll-row-wrap{ position:relative; display:flex; align-items:center; gap:8px; }
.scroll-row-wrap .scroll-row{ flex:1; }
.scroll-row-arrow{
  flex-shrink:0; width:36px; height:36px; border-radius:50%; border:1px solid #e2e2e2; background:#fff;
  display:flex; align-items:center; justify-content:center; cursor:pointer; box-shadow:var(--shadow-card);
}
.scroll-row-arrow:hover{ background:var(--surface-soft,#f4f4f4); }
@media (max-width:640px){
  .scroll-row .card{ flex-basis:220px; }
  .scroll-row-arrow{ display:none; }
}
@media (max-width:640px){
  .scroll-row .card{ flex-basis:220px; }
}
.card{
  background:var(--surface);
  border:none;
  border-radius:var(--r-md);
  overflow:hidden;
  box-shadow:var(--shadow-card);
  transition:box-shadow .25s cubic-bezier(.2,.8,.2,1), transform .25s cubic-bezier(.2,.8,.2,1);
}
.card:hover{ box-shadow:var(--shadow-card-hover); transform:translateY(-3px); }
.card .thumb{ aspect-ratio:16/10; background:#555 center/cover no-repeat; position:relative; }
.card .thumb .chip{ position:absolute; left:12px; bottom:12px; margin:0; }
.card .body{ padding:18px 18px 20px; }
.card h3{
  font-family:var(--display);
  font-size:17.5px;
  line-height:1.3;
  font-weight:700;
  margin:0 0 12px;
  letter-spacing:-0.1px;
}
.card .meta{
  display:flex; gap:12px; align-items:center;
  font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.04em;
  color:var(--muted);
}
.card .meta span{ display:flex; align-items:center; gap:4px; }
.card[hidden]{ display:none; }

/* wide banner ad */
.ad-strip{
  margin:34px 0;
  border:none;
  background:var(--gold-tint);
  color:#7A5410;
  text-align:center;
  padding:24px;
  font-size:12px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.06em;
  border-radius:var(--r-md);
  box-shadow:var(--shadow-card);
}

/* ---------- promo band ---------- */
.promo-band{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
  margin:40px 0 8px;
  background:transparent;
  border-radius:0;
  overflow:visible;
}
.promo-band a{
  position:relative;
  aspect-ratio:4/3;
  background:#555 center/cover no-repeat;
  display:flex; align-items:flex-end; padding:16px;
  color:#fff; font-weight:700; font-size:13.5px;
  border-radius:var(--r-md);
  overflow:hidden;
  box-shadow:var(--shadow-card);
  transition:box-shadow .25s cubic-bezier(.2,.8,.2,1), transform .25s cubic-bezier(.2,.8,.2,1);
}
.promo-band a:hover{ box-shadow:var(--shadow-card-hover); transform:translateY(-3px); }
.promo-band a::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(6,6,8,.75), rgba(6,6,8,0) 62%); }
.promo-band a span{ position:relative; z-index:1; font-family:var(--display); }

/* ---------- kamery na żywo ---------- */
.camera-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
}
.camera-hub-intro{ font-size:14px; opacity:.8; max-width:640px; margin:-6px 0 20px; }
.camera-hub-empty{ opacity:.7; padding:20px 0; }
.camera-card{
  position:relative;
  display:block;
  aspect-ratio:16/10;
  border-radius:var(--r-md);
  overflow:hidden;
  background:#333 center/cover no-repeat;
  box-shadow:var(--shadow-card);
  transition:box-shadow .25s cubic-bezier(.2,.8,.2,1), transform .25s cubic-bezier(.2,.8,.2,1);
}
.camera-card:hover{ box-shadow:var(--shadow-card-hover); transform:translateY(-2px); }
.camera-card::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(0deg, rgba(4,4,6,.85) 0%, rgba(4,4,6,.15) 55%, rgba(4,4,6,0) 80%);
}
.camera-live-badge{
  position:absolute; top:10px; left:10px; z-index:2;
  display:inline-flex; align-items:center; gap:6px;
  background:rgba(0,0,0,.55);
  backdrop-filter:blur(3px);
  color:#fff;
  font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.05em;
  padding:5px 10px;
  border-radius:20px;
}
.camera-live-badge .pulse-dot{ background:#ff3b30; }
.camera-info{
  position:relative; z-index:1;
  height:100%;
  display:flex; flex-direction:column; justify-content:flex-end;
  padding:12px 14px;
  color:#fff;
}
.camera-info h4{ font-family:var(--display); font-weight:700; font-size:13.5px; margin:0 0 2px; }
.camera-info span{ font-size:10.5px; opacity:.8; display:block; }
.camera-info .camera-source{ opacity:.6; margin-top:2px; }
.camera-card--pending{ background-color:#1c1c22; }
.camera-card--pending .camera-live-badge{ background:rgba(0,0,0,.4); }

.camera-profile-head{ display:flex; align-items:center; gap:12px; margin:18px 0 14px; flex-wrap:wrap; }
.camera-profile-head h1{ font-family:var(--display); font-size:24px; margin:0; }
.camera-live-badge--static{ position:static; }
.camera-profile-player{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:16/9;
  background:#000;
  border-radius:var(--r-md);
  overflow:hidden;
  box-shadow:var(--shadow-card);
  margin-bottom:24px;
  cursor:pointer;
}
.camera-profile-pending{
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  color:#aaa; font-size:14px; text-align:center; padding:20px;
}
.camera-profile-note{ font-size:13px; opacity:.75; margin:-14px 0 8px; }
.camera-profile-note a{ color:var(--brand, #A00202); font-weight:600; }
.camera-profile-source{ font-size:12px; opacity:.6; margin:-8px 0 24px; }
.camera-profile-player iframe,
.camera-profile-player video,
.camera-profile-player img{
  position:absolute; inset:0;
  width:100%; height:100%;
  border:0;
  object-fit:cover;
}
.camera-profile-player-hint{
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  background:rgba(0,0,0,0);
  color:#fff; font-weight:700; font-size:14px; text-align:center;
  opacity:0;
  transition:opacity .2s ease, background-color .2s ease;
}
.camera-profile-player:hover .camera-profile-player-hint,
.camera-profile-player:focus-visible .camera-profile-player-hint{
  opacity:1;
  background:rgba(0,0,0,.45);
}

/* ---------- footer (spójny z resztą portalu — jasny, karty, brand accent) ---------- */
footer.site{
  margin-top:56px;
  background:var(--surface);
  color:var(--ink-soft);
  border-radius:var(--r-lg) var(--r-lg) 0 0;
  border-top:4px solid var(--brand);
  box-shadow:0 -6px 20px rgba(20,20,25,.04);
}
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr 1.1fr;
  gap:28px;
  padding:40px 0 26px;
}
.footer-col-brand{ max-width:280px; }
.footer-grid h5{
  color:var(--ink);
  font-size:12.5px;
  text-transform:uppercase;
  letter-spacing:.05em;
  margin:0 0 16px;
}
.footer-grid ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; font-size:13.5px; }
.footer-grid a{ color:var(--ink-soft); }
.footer-grid a:hover{ color:var(--brand-ink); }
.footer-logo-img{ height:52px; width:auto; max-width:220px; object-fit:contain; margin-bottom:14px; display:block; }
.footer-legal{ font-size:12.5px; color:var(--muted); line-height:1.7; margin:0; }

/* ---------- link do spisu tematow w stopce ---------- */
.footer-linkcloud{ padding:16px 0; border-top:1px solid var(--line-soft); display:flex; flex-wrap:wrap; gap:2px 14px; align-items:center; }
.footer-linkcloud a{ font-size:12.5px; font-weight:700; color:var(--brand-ink,var(--brand)); text-decoration:none; display:inline-block; padding:6px 2px; }
.footer-linkcloud a:hover{ text-decoration:underline; }
.footer-services{ padding-bottom:20px; border-top:1px solid var(--line-soft); padding-top:16px; }
.footer-services h5{ color:var(--ink); font-size:12.5px; text-transform:uppercase; letter-spacing:.05em; margin:0 0 12px; }
.footer-linkcloud--services{ border-top:none; padding:0; gap:0 12px; }
.footer-linkcloud--services a{ font-weight:600; color:var(--ink-soft); }
.footer-linkcloud--services a:hover{ color:var(--brand-ink); }

/* ---------- Kontakt ---------- */
.contact-hero{ max-width:680px; margin:24px auto 0; text-align:center; }
.contact-hero h1{ font-family:var(--display); font-size:28px; margin:0 0 14px; }
.contact-hero p{ font-size:15px; color:var(--ink-soft); line-height:1.65; margin:0 0 24px; }
.contact-hero-cta{ font-size:15px; padding:14px 28px; }
.contact-reasons{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; max-width:820px; margin:32px auto 0; }
.contact-reason{ display:flex; align-items:center; gap:12px; padding:14px 16px; background:var(--surface-soft,#f8f8f8); border-radius:12px; font-size:13.5px; font-weight:600; }
.contact-reason i{ color:var(--brand); font-size:18px; flex-shrink:0; }
.contact-channels{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px; }
.contact-channel-card{
  display:flex; align-items:center; gap:14px; padding:20px; border-radius:14px; border:1px solid #eee;
  box-shadow:var(--shadow-card); text-decoration:none; color:inherit; transition:transform .15s, box-shadow .15s;
}
.contact-channel-card:hover{ transform:translateY(-2px); box-shadow:var(--shadow-card-hover); border-color:var(--brand); }
.contact-channel-icon{ width:48px; height:48px; border-radius:50%; background:var(--brand-tint); color:var(--brand-ink); display:flex; align-items:center; justify-content:center; font-size:20px; flex-shrink:0; }
.contact-channel-card strong{ display:block; font-size:15px; margin-bottom:2px; }
.contact-channel-card span{ font-size:13px; color:var(--muted); }
.contact-response-note{ text-align:center; font-size:13px; color:var(--muted); margin:28px 0 8px; }
.contact-response-note i{ margin-right:6px; }

/* ---------- podglad formatow reklamowych na /reklama ---------- */
.ad-format-grid{ display:flex; flex-wrap:wrap; gap:24px; align-items:flex-start; }
.ad-format-card{ display:flex; flex-direction:column; align-items:center; gap:10px; }
.ad-format-preview{
  background:repeating-linear-gradient(45deg,#f4f4f4,#f4f4f4 10px,#eee 10px,#eee 20px);
  border:1.5px dashed #ccc; border-radius:8px; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:4px; color:#999; font-weight:700; font-size:13px;
}
.ad-format-dims{ font-size:11px; font-weight:600; color:#aaa; }
.ad-format-name{ font-size:13px; font-weight:600; text-align:center; }

/* ---------- galeria NextGen ---------- */
.nextgen-gallery-grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:10px;
}
.nextgen-thumb{ aspect-ratio:1/1; border-radius:8px; background:#eee center/cover no-repeat; cursor:zoom-in; }
.nextgen-lightbox-arrow{
  position:absolute; top:50%; transform:translateY(-50%); width:48px; height:48px; border-radius:50%;
  background:rgba(255,255,255,.15); border:none; color:#fff; font-size:20px; cursor:pointer; z-index:10;
  display:flex; align-items:center; justify-content:center;
}
.nextgen-lightbox-arrow:hover{ background:rgba(255,255,255,.3); }
.nextgen-lightbox-arrow--prev{ left:16px; }
.nextgen-lightbox-arrow--next{ right:16px; }
.nextgen-lightbox-counter{ position:absolute; bottom:20px; left:50%; transform:translateX(-50%); color:#fff; font-size:13px; opacity:.85; }
@media (max-width:640px){
  .nextgen-gallery-grid{ grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:6px; }
  .nextgen-lightbox-arrow{ width:38px; height:38px; font-size:16px; }
}

.gallery-teaser{
  display:flex; align-items:center; gap:12px; padding:16px 20px; margin:24px 0; border-radius:14px;
  background:var(--surface-soft,#f4f4f4); text-decoration:none; color:var(--ink); font-weight:700; font-size:14px;
}
.gallery-teaser i:first-child{ font-size:20px; color:var(--brand); }
.gallery-teaser span{ flex:1; }
.gallery-teaser:hover{ background:var(--brand-tint); }

/* ---------- CTA "Zgłoś temat" wklejone w treść artykułu (środek/koniec) ---------- */
.report-inline-cta{
  display:flex; gap:14px; align-items:flex-start; margin:26px 0; padding:18px 20px;
  background:var(--brand-tint); border-left:3px solid var(--brand); border-radius:12px;
}
.report-inline-cta-icon{
  flex-shrink:0; width:38px; height:38px; border-radius:50%; background:var(--surface);
  display:flex; align-items:center; justify-content:center; font-size:16px; color:var(--brand-ink);
  box-shadow:var(--shadow-card);
}
.report-inline-cta-text{ font-size:14.5px; line-height:1.55; color:var(--ink-soft); }
.report-inline-cta-text strong{ color:var(--ink); }
.report-inline-cta-link{
  display:inline-flex; align-items:center; gap:5px; font-weight:800; color:var(--brand-ink);
  text-decoration:none; white-space:nowrap;
}
.report-inline-cta-link:hover{ text-decoration:underline; }
.report-inline-cta-link i{ font-size:11px; transition:transform .15s; }
.report-inline-cta-link:hover i{ transform:translateX(3px); }
@media (max-width:480px){
  .report-inline-cta{ padding:15px; gap:10px; }
  .report-inline-cta-icon{ width:32px; height:32px; font-size:14px; }
}

/* ---------- strony bledow (404 itp.) ---------- */
.error-page{ max-width:520px; margin:60px auto; text-align:center; padding:0 20px; }
.error-page-code{ font-family:var(--display); font-size:72px; font-weight:800; color:var(--brand); opacity:.85; line-height:1; }
.error-page h1{ font-size:22px; margin:16px 0 10px; }
.error-page p{ color:var(--ink-soft); font-size:14.5px; margin:0 0 26px; }
.error-page-actions{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }

/* ---------- strony gmina/powiat (SEO lokalne) ---------- */
.gmina-links-row{ display:flex; flex-wrap:wrap; gap:10px; margin:20px 0 30px; }
.gmina-link-chip{ padding:8px 18px; border-radius:20px; background:var(--surface-soft,#f4f4f4); font-size:13px; font-weight:700; text-decoration:none; color:inherit; }
.gmina-link-chip:hover{ background:var(--brand-tint); }

/* ---------- spis wszystkich tematow (/tematy) ---------- */
.topics-index{ display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:10px; }
.topics-index-item{ padding:12px 16px; border-radius:10px; background:var(--surface-soft,#f7f7f7); font-size:13.5px; font-weight:600; text-decoration:none; color:inherit; }
.topics-index-item:hover{ background:var(--brand-tint); }

/* ---------- widgety na hubach SEO: pogoda i apteki ---------- */
.hub-weather-box{
  display:flex; align-items:center; gap:22px; max-width:800px; margin:24px 0; padding:26px 32px;
  border-radius:16px; background:linear-gradient(135deg, var(--brand-tint,#fdeceb) 0%, #fff 100%);
  border:1px solid var(--line-soft); flex-wrap:wrap;
}
.hub-weather-icon{ font-size:48px; color:var(--brand); flex-shrink:0; }
.hub-weather-main{ flex-shrink:0; }
.hub-weather-temp{ font-family:var(--display); font-size:42px; font-weight:800; line-height:1; }
.hub-weather-temp span{ font-size:22px; font-weight:600; opacity:.6; }
.hub-weather-desc{ font-size:14px; color:var(--ink-soft); margin-top:4px; font-weight:600; }
.hub-weather-meta{ margin-left:auto; display:flex; flex-direction:column; gap:4px; font-size:12px; color:var(--muted); text-align:right; }
.hub-pharmacy-box{ max-width:800px; margin:24px 0; padding:20px 26px; border-radius:14px; background:var(--surface-soft,#f7f7f7); }
.hub-pharmacy-box h3{ margin:0 0 14px; font-size:15px; }
.hub-pharmacy-note{ font-size:12.5px; color:var(--ink-soft); margin:0 0 14px; padding:10px 14px; background:#fff; border-radius:8px; }
.hub-pharmacy-item{ display:flex; flex-direction:column; gap:2px; padding:12px 0; border-top:1px solid var(--line-soft); font-size:13.5px; }
.hub-pharmacy-item:first-of-type{ border-top:none; }
.hub-pharmacy-label{ font-size:11px; font-weight:700; text-transform:uppercase; color:var(--brand); }

/* ---------- ogloszenia drobne ---------- */
.classified-cat-filters{ display:flex; flex-wrap:wrap; gap:8px; }
.classified-cat-chip{
  padding:7px 16px; border-radius:18px; background:var(--surface-soft); font-size:12.5px; font-weight:700;
  text-decoration:none; color:var(--ink-soft);
}
.classified-cat-chip.active, .classified-cat-chip:hover{ background:var(--brand); color:#fff; }
.classified-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:18px; }
.classified-card{ background:var(--surface); border:1px solid var(--line-soft); border-radius:14px; overflow:hidden; box-shadow:var(--shadow-card); }
.classified-card-img{ width:100%; aspect-ratio:4/3; background-size:cover; background-position:center; }
.classified-card-img--empty{ display:flex; align-items:center; justify-content:center; background:var(--surface-soft); color:var(--muted); font-size:32px; }
.classified-card-body{ padding:16px 18px; }
.classified-card-cat{ font-size:10.5px; font-weight:700; text-transform:uppercase; color:var(--brand); }
.classified-card-body h3{ font-size:16px; margin:6px 0 8px; }
.classified-card-desc{ font-size:13px; color:var(--ink-soft); margin:0 0 10px; line-height:1.5; }
.classified-card-price{ font-weight:800; font-size:15px; margin-bottom:10px; }
.classified-card-contact{ display:flex; flex-wrap:wrap; gap:10px; font-size:12.5px; color:var(--ink-soft); }
.classified-card-contact a{ color:var(--brand-ink); text-decoration:none; }
.classified-card-gmina{ font-size:11.5px; color:var(--muted); margin-top:8px; }
.classified-card--featured{ border:2px solid #f0b400; box-shadow:0 4px 18px rgba(240,180,0,.18); }
.classified-card-badges{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:4px; }
.classified-badge{ font-size:10px; font-weight:800; padding:3px 9px; border-radius:10px; text-transform:uppercase; letter-spacing:.02em; }
.classified-badge--free{ background:var(--surface-soft); color:var(--muted); }
.classified-badge--featured{ background:#f0b400; color:#3a2900; }
.classified-badge--featured i{ margin-right:3px; }

/* ---------- wybor darmowe/wyroznione w formularzu dodawania ---------- */
.classified-tier-choice{ display:flex; flex-direction:column; gap:10px; margin-top:20px; }
.classified-tier-option{
  display:flex; gap:12px; align-items:flex-start; padding:14px 16px; border:1.5px solid var(--line-soft);
  border-radius:12px; cursor:pointer; transition:border-color .15s, background .15s;
}
.classified-tier-option:has(input:checked){ border-color:var(--brand); background:var(--brand-tint); }
.classified-tier-option--featured:has(input:checked){ border-color:#f0b400; background:rgba(240,180,0,.08); }
.classified-tier-option input{ margin-top:3px; }
.classified-tier-option strong{ display:block; font-size:14px; margin-bottom:2px; }
.classified-tier-option span{ font-size:12.5px; color:var(--ink-soft); }

/* ---------- ekran platnosci po zgloszeniu wyroznionego ogloszenia ---------- */
.classified-payment-box{ max-width:560px; background:var(--surface); border:1px solid var(--line-soft); border-radius:16px; padding:26px 30px; }
.classified-payment-details{ margin:18px 0; border-top:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft); padding:14px 0; }
.classified-payment-details div{ display:flex; justify-content:space-between; padding:8px 0; font-size:14px; }
.classified-payment-details span{ color:var(--ink-soft); }

/* ---------- widget wyroznionych ogloszen na stronie glownej ---------- */
.featured-classifieds-widget{ display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:14px; }
.featured-classified-mini{
  display:block; text-decoration:none; color:inherit; background:var(--surface); border:1.5px solid #f0b400;
  border-radius:12px; overflow:hidden; box-shadow:0 3px 12px rgba(240,180,0,.15);
}
.featured-classified-mini-img{ width:100%; aspect-ratio:16/10; background-size:cover; background-position:center; background-color:var(--surface-soft); }
.featured-classified-mini-body{ padding:10px 12px; }
.featured-classified-mini-body h4{ font-size:13px; margin:4px 0 2px; }
.featured-classified-mini-price{ font-size:12.5px; font-weight:800; color:var(--brand-ink); }

/* ---------- spis firm ---------- */
.company-filters{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:24px; }
.company-filters input[type="text"]{ flex:1; min-width:200px; padding:11px 16px; border:1.5px solid var(--line-soft); border-radius:12px; background:var(--surface); color:var(--ink); font-size:14px; }
.company-filters select{ padding:11px 16px; border:1.5px solid var(--line-soft); border-radius:12px; background:var(--surface); color:var(--ink); font-size:14px; }
.company-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:16px; align-items:stretch; }
.company-card{
  position:relative; display:flex; flex-direction:column; text-decoration:none; color:inherit;
  background:var(--surface); border:1px solid var(--line-soft); border-radius:16px; padding:20px 22px;
  box-shadow:var(--shadow-card); transition:box-shadow .15s, transform .15s;
  min-width:0; height:100%; box-sizing:border-box;
}
.company-card--starred{ border-color:#f0b400; }
.company-star-badge{ position:absolute; top:14px; right:16px; color:#f0b400; font-size:16px; }
.company-card--link:hover{ box-shadow:var(--shadow-card-hover); transform:translateY(-2px); border-color:var(--brand); }
.company-card h3{
  font-size:16px; margin:0 28px 8px 0; line-height:1.35; font-weight:700;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
  min-height:calc(1.35em * 2);
}
.company-pkd{
  display:inline-block; font-size:10.5px; font-weight:700; background:var(--surface-soft); color:var(--muted);
  padding:3px 10px; border-radius:8px; margin-bottom:10px; align-self:flex-start; max-width:100%;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.company-pkd--lg{ font-size:12px; padding:5px 14px; white-space:normal; }
.company-address{
  font-size:12.5px; color:var(--ink-soft); line-height:1.5; margin-bottom:12px;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.company-gmina{ color:var(--muted); }
.company-contact{
  display:flex; flex-wrap:wrap; gap:12px; font-size:12px; color:var(--muted);
  padding-top:12px; border-top:1px solid var(--line-soft); margin-top:auto; min-width:0;
}
.company-contact a, .company-contact span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:140px; }
.company-contact a{ color:var(--brand-ink); text-decoration:none; }
.company-contact i{ margin-right:4px; }
.pagination{ display:flex; align-items:center; justify-content:center; gap:16px; margin-top:32px; }
.pagination-btn{ padding:9px 20px; border-radius:20px; background:var(--surface); border:1.5px solid var(--line-soft); color:var(--ink); text-decoration:none; font-size:13px; font-weight:700; }
.pagination-btn:hover{ border-color:var(--brand); color:var(--brand-ink); }
.pagination-info{ font-size:13px; color:var(--muted); }
.uslugi-neighbor-heading{ font-size:15px; margin:20px 0 12px; }
.faq-list{ display:flex; flex-direction:column; gap:14px; }
.faq-item{ background:var(--surface); border:1px solid var(--line-soft); border-radius:12px; padding:16px 20px; }
.faq-item strong{ display:block; font-size:14px; margin-bottom:6px; }
.faq-item p{ font-size:13.5px; color:var(--ink-soft); margin:0; line-height:1.5; }
.company-industry-links{ display:flex; flex-wrap:wrap; gap:8px 12px; align-items:center; margin-bottom:20px; font-size:12.5px; color:var(--muted); }
.company-industry-links a{ padding:5px 12px; border-radius:14px; background:var(--surface-soft); color:var(--ink); text-decoration:none; font-weight:600; }
.company-industry-links a:hover{ background:var(--brand-tint); }

/* ---------- profil firmy ---------- */
.company-profile-header{ display:flex; align-items:center; gap:18px; margin:20px 0 28px; flex-wrap:wrap; }
.company-profile-icon{ width:60px; height:60px; border-radius:16px; background:var(--brand-tint); color:var(--brand); display:flex; align-items:center; justify-content:center; font-size:26px; flex-shrink:0; }
.company-profile-logo{ width:60px; height:60px; border-radius:16px; object-fit:contain; background:var(--surface-soft); flex-shrink:0; }
.company-profile-star{ color:#f0b400; font-size:18px; }
.company-verified-badge{ display:inline-flex; align-items:center; gap:5px; font-size:11px; font-weight:700; background:#e8f7ec; color:#1e7e34; padding:3px 10px; border-radius:10px; vertical-align:middle; }
.company-premium-badge{ display:inline-flex; align-items:center; gap:5px; font-size:11px; font-weight:700; background:linear-gradient(135deg,#f0b400,#f7d774); color:#3a2900; padding:3px 10px; border-radius:10px; vertical-align:middle; }
.company-profile-banner{ margin:20px 0 -10px; border-radius:16px; overflow:hidden; }
.company-profile-banner img{ width:100%; max-height:220px; object-fit:cover; display:block; }
.company-profile-header--premium{ background:linear-gradient(135deg,var(--brand-tint),transparent); border-radius:16px; padding:16px; margin-left:-16px; margin-right:-16px; }
.company-profile-cta{ background:var(--surface); border:1px solid var(--line-soft); border-radius:14px; padding:18px; text-align:center; margin-bottom:14px; }
.company-profile-cta:last-child{ margin-bottom:0; }
.company-profile-cta--premium{ background:linear-gradient(160deg,#fffaeb,#fdf0c8); border:1px solid #f0d98c; }
.company-profile-cta-icon{ display:block; font-size:22px; color:#f0b400; margin-bottom:8px; }
.company-profile-cta--premium p{ color:#8a6d00; font-size:13px; margin:0 0 14px; }
.company-profile-cta--manage{ padding:8px; text-align:left; }
.company-profile-cta--manage a{ display:flex; align-items:center; gap:9px; padding:10px 12px; border-radius:10px; color:var(--ink-soft); text-decoration:none; font-size:13.5px; font-weight:600; }
.company-profile-cta--manage a:hover{ background:var(--surface-soft); color:var(--brand-ink); }
.company-profile-cta--manage a i{ width:16px; text-align:center; color:var(--muted); }
.btn-cta--premium{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.btn-cta-price{ font-size:13px; font-weight:800; background:rgba(0,0,0,.15); padding:3px 10px; border-radius:10px; white-space:nowrap; }
.btn-cta-price span{ font-weight:600; opacity:.8; font-size:11px; }
.company-pkd-list{ margin:0 0 8px; padding-left:18px; font-size:13px; color:var(--ink-soft); max-width:100%; overflow-wrap:break-word; }
.company-pkd-list li{ margin-bottom:3px; }
.company-profile-header h1{ font-size:22px; margin:0 0 6px; overflow-wrap:break-word; }
.company-profile-map iframe{ display:block; }
.company-profile-grid{ display:grid; grid-template-columns:2fr 1fr; gap:20px; align-items:start; }
.company-profile-main{ display:flex; flex-direction:column; gap:14px; }
.company-profile-card{ background:var(--surface); border:1px solid var(--line-soft); border-radius:14px; padding:18px 22px; min-width:0; overflow-wrap:break-word; word-break:break-word; }
.company-profile-card h3{ font-size:13.5px; margin:0 0 10px; display:flex; align-items:center; gap:8px; color:var(--ink-soft); }
.company-profile-card p{ margin:0 0 4px; font-size:14.5px; }
.company-profile-contact-list{ display:flex; flex-direction:column; gap:10px; }
.company-profile-contact-list a{ color:var(--brand-ink); text-decoration:none; font-size:14px; }
.company-gallery-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(100px,1fr)); gap:8px; }
.company-gallery-grid img{ width:100%; aspect-ratio:1; object-fit:cover; border-radius:8px; }
.company-job-item{ padding:12px 0; border-top:1px solid var(--line-soft); }
.company-job-item:first-child{ border-top:none; padding-top:0; }
.company-job-item strong{ display:block; font-size:14px; margin-bottom:4px; }
.company-job-item p{ font-size:13px; color:var(--ink-soft); margin:0; line-height:1.5; }
@media (max-width:760px){
  .company-profile-grid{ grid-template-columns:1fr; }
}
@media (max-width:640px){
  .hub-weather-box{ gap:16px; padding:20px; }
  .hub-weather-icon{ font-size:36px; }
  .hub-weather-temp{ font-size:32px; }
  .hub-weather-meta{ margin-left:0; text-align:left; width:100%; flex-direction:row; justify-content:space-between; }
}
.section-head-more{ font-size:12.5px; font-weight:700; color:var(--brand-ink,var(--brand)); text-decoration:none; white-space:nowrap; }
.section-head-more:hover{ text-decoration:underline; }
.section-head-more i{ font-size:10px; margin-left:2px; }
.footer-note{ font-size:13px; color:var(--muted); max-width:320px; line-height:1.6; }
.footer-bottom{
  border-top:1px solid var(--line-soft);
  padding:16px 0;
  font-size:11.5px;
  letter-spacing:.02em;
  color:var(--muted);
  display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap;
}

/* ---------- article page ---------- */
.article-shell{
  display:grid;
  grid-template-columns:1fr 300px;
  gap:36px;
  padding:22px 0 0;
}
article[data-article-root]{
  background:var(--surface);
  border-radius:var(--r-md);
  box-shadow:var(--shadow-card);
  padding:36px 40px 40px;
}
.article-head .chip{ margin-bottom:18px; }
.article-head h1{
  font-family:var(--display);
  font-size:clamp(28px,3.6vw,38px);
  line-height:1.15;
  font-weight:800;
  letter-spacing:-0.3px;
  margin:0 0 16px;
}
.article-lead{ font-size:17.5px; font-weight:500; color:var(--ink-soft); line-height:1.55; margin:0 0 20px; }
.article-byline{
  display:flex; align-items:center; gap:20px;
  padding:26px 0; margin-bottom:32px;
  border-top:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft);
  font-size:13px; font-weight:600; text-transform:uppercase; letter-spacing:.04em;
  color:var(--muted);
  flex-wrap:wrap;
}
.article-byline strong{ color:var(--ink); text-transform:none; letter-spacing:0; font-size:18px; }
.author-chip{
  display:flex; align-items:center; gap:9px;
  background:none; border:none; padding:0;
  text-transform:none; letter-spacing:0;
}
.author-chip:hover strong{ color:var(--brand-ink); }
.author-chip--sponsored{ cursor:default; }
.author-chip--sponsored:hover strong{ color:inherit; }
.author-chip--sponsored strong{ font-style:italic; color:var(--muted); }
.author-avatar{
  width:64px; height:64px; border-radius:50%;
  background:var(--brand-tint); color:var(--brand-ink);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--display); font-weight:700; font-size:22px;
  flex-shrink:0;
}
.author-avatar--photo{ object-fit:cover; }
.author-chip-text{ display:flex; flex-direction:column; gap:4px; }
.author-chip-count{ font-size:12.5px; font-weight:600; text-transform:none; letter-spacing:0; color:var(--muted); }

/* ---------- Dyżury Aptek ---------- */
.pharmacy-hero{
  background:linear-gradient(135deg, var(--brand) 0%, var(--brand-ink,var(--brand)) 100%);
  color:#fff; border-radius:var(--r-lg); padding:32px 32px; margin:20px 0 24px;
}
.pharmacy-hero h1{ font-family:var(--display); font-size:27px; margin:0 0 8px; }
.pharmacy-hero p{ margin:0; opacity:.92; max-width:600px; font-size:14px; }

.pharmacy-day-tabs{ display:flex; gap:8px; overflow-x:auto; padding-bottom:4px; scrollbar-width:none; }
.pharmacy-day-tabs::-webkit-scrollbar{ display:none; }
.pharmacy-day-tab{
  flex:0 0 auto; display:flex; flex-direction:column; align-items:center; gap:2px;
  min-width:76px; padding:10px 14px; border:1.5px solid var(--line-soft,#e2e2e2); border-radius:12px; background:var(--surface,#fff);
  cursor:pointer; position:relative;
}
.pharmacy-day-tab.active{ border-color:var(--brand); background:var(--brand-tint,#fdf0f0); }
.pharmacy-day-tab-label{ font-weight:700; font-size:13px; }
.pharmacy-day-tab-date{ font-size:11px; color:var(--muted); }
.pharmacy-day-tab-dot{ position:absolute; top:6px; right:8px; width:6px; height:6px; border-radius:50%; background:#1e7e34; }

.pharmacy-card-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:14px; }
.pharmacy-card{
  display:flex; align-items:center; gap:14px; padding:16px 18px; border-radius:14px; border:1px solid var(--line-soft,#eee);
  box-shadow:var(--shadow-card); text-decoration:none; color:inherit; background:var(--surface,#fff);
}
.pharmacy-card:hover{ border-color:var(--brand); }
.pharmacy-card-icon{ font-size:28px; flex-shrink:0; }
.pharmacy-card-body{ display:flex; flex-direction:column; gap:3px; flex:1; min-width:0; }
.pharmacy-card-name{ font-weight:800; font-size:14.5px; }
.pharmacy-card-addr{ font-size:12px; color:var(--muted); }
.pharmacy-card-hours{ display:flex; flex-direction:column; align-items:flex-end; flex-shrink:0; }
.pharmacy-card-hours-label{ font-size:10px; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); }
.pharmacy-card-hours-value{ font-weight:800; font-size:15px; color:var(--brand-ink,var(--brand)); }
.pharmacy-empty{ font-size:14px; color:var(--muted); font-style:italic; padding:24px; text-align:center; background:var(--surface-soft,#f8f8f8); border-radius:12px; }

/* ---------- profil apteki ---------- */
.pharmacy-profile-banner{ display:flex; align-items:center; gap:22px; margin:20px 0 26px; flex-wrap:wrap; }
.pharmacy-profile-photo{ width:120px; height:120px; border-radius:16px; overflow:hidden; flex-shrink:0; box-shadow:var(--shadow-card); }
.pharmacy-profile-photo img{ width:100%; height:100%; object-fit:cover; }
.pharmacy-profile-photo--noimg{ background:#f0f0f0; display:flex; align-items:center; justify-content:center; font-size:48px; }
.pharmacy-profile-info h1{ font-family:var(--display); font-size:24px; margin:0 0 8px; }
.pharmacy-profile-actions{ display:flex; gap:10px; margin-top:14px; flex-wrap:wrap; }
.pharmacy-profile-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:16px; }
.pharmacy-profile-card{ border:1px solid var(--line-soft,#eee); background:var(--surface); border-radius:14px; padding:18px 20px; box-shadow:var(--shadow-card); }
.pharmacy-info-line{ margin:8px 0; font-size:14px; overflow-wrap:break-word; }
.pharmacy-hours-text{ margin:8px 0 0; font-size:14px; line-height:1.7; color:var(--ink-soft); overflow-wrap:break-word; white-space:pre-wrap; }

/* ---------- Nekrologi ---------- */
.nekrologi-month-nav{
  display:flex; align-items:center; justify-content:space-between; gap:12px; margin:20px 0 24px;
  padding:14px 18px; border:1px solid #eee; border-radius:14px; flex-wrap:wrap;
}
.nekrologi-month-nav .nekrologi-month-btn:first-child{ order:1; text-align:left; }
.nekrologi-month-label{ order:2; }
.nekrologi-month-nav .nekrologi-month-btn:last-child{ order:3; text-align:right; }
.nekrologi-month-label{ font-size:15px; }
.nekrologi-month-btn{ font-size:13px; font-weight:700; color:var(--brand-ink,var(--brand)); text-decoration:none; }
.nekrologi-month-btn:hover{ text-decoration:underline; }
.nekrologi-month-btn.disabled{ color:#ccc; pointer-events:none; }
.obituary-see-all{ display:block; text-align:center; font-size:12px; font-weight:700; color:var(--brand-ink,var(--brand)); text-decoration:none; margin-top:10px; }
.obituary-see-all:hover{ text-decoration:underline; }
@media (max-width:480px){
  .nekrologi-month-nav{ flex-direction:column; text-align:center; gap:8px; }
}
.nekrolog-card{ display:block; text-decoration:none; color:inherit; transition:opacity .15s; }
.nekrolog-card:hover{ opacity:.85; }
.nekrolog-card img{ width:100%; aspect-ratio:3/4; object-fit:contain; background:#f4f4f4; border-radius:4px; }

.nekrolog-profile{
  display:flex; gap:26px; margin:20px 0 32px; padding:24px; flex-wrap:wrap;
}
.nekrolog-profile-photo{ width:600px; max-width:100%; flex-shrink:0; position:relative; }
.nekrolog-profile-photo img{
  width:100%; height:auto; max-height:780px; object-fit:contain; background:#f4f4f4; border-radius:12px; box-shadow:var(--shadow-card);
  display:block; cursor:zoom-in;
}
.nekrolog-profile-photo-hint{
  display:block; text-align:center; font-size:11px; color:var(--muted); margin-top:8px;
}
.nekrolog-profile-info{ flex:1; min-width:220px; }
.nekrolog-profile-info h1{ font-family:var(--display); font-size:22px; margin:0 0 10px; overflow-wrap:break-word; }
.nekrolog-profile-meta{ font-size:13.5px; color:var(--muted); margin:4px 0; }
.nekrolog-profile-info-text{ font-size:14px; line-height:1.6; margin:14px 0; overflow-wrap:break-word; }
.nekrolog-candle-box{ margin-top:18px; padding:16px 20px; background:#fff8e1; border:1px solid #e0c060; border-radius:14px; max-width:340px; }
.nekrolog-candle-count{ font-size:16px; font-weight:700; margin-bottom:10px; }
.nekrolog-funeral-home{ margin-top:16px; padding:12px 16px; background:var(--surface-soft,#f8f8f8); border-radius:10px; font-size:12.5px; line-height:1.6; color:var(--ink-soft); }
.nekrolog-funeral-home strong{ color:var(--ink); }
@media (max-width:900px){
  .nekrolog-profile{ flex-direction:column; }
  .nekrolog-profile-photo{ width:100%; max-width:420px; margin:0 auto; }
}
@media (max-width:560px){
  .nekrolog-profile{ align-items:center; text-align:center; padding:20px 16px; gap:16px; }
  .nekrolog-profile-photo{ max-width:280px; }
  .nekrolog-candle-box{ max-width:none; width:100%; box-sizing:border-box; }
}
.condolences-block{ margin-top:44px; padding-top:28px; border-top:1px solid var(--line-soft); }

/* ---------- profil apteki v2: duże zdjecie w tle ---------- */
.pharmacy-cover{
  position:relative; aspect-ratio:16/6; min-height:200px; border-radius:var(--r-lg); overflow:hidden;
  background:#333 center/cover no-repeat; margin:20px 0 20px; display:flex; align-items:flex-end;
}
.pharmacy-cover::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(0,0,0,.75) 0%, rgba(0,0,0,.25) 55%, rgba(0,0,0,0) 100%); }
.pharmacy-cover-noimg{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:64px; opacity:.35; }
.pharmacy-cover-overlay{ position:relative; z-index:1; padding:24px 28px; color:#fff; max-width:100%; overflow-wrap:break-word; }
.pharmacy-cover-overlay h1{ font-family:var(--display); font-size:26px; margin:8px 0 6px; overflow-wrap:break-word; }
.pharmacy-cover-overlay p{ margin:0; font-size:13.5px; opacity:.9; }
.pharmacy-cover-badge{
  display:inline-flex; align-items:center; gap:6px; background:rgba(255,255,255,.18); backdrop-filter:blur(4px);
  padding:5px 12px; border-radius:20px; font-size:12px; font-weight:700;
}
.pharmacy-cover-badge--live{ background:#1e7e34; }
.pharmacy-actions-row{ display:flex; gap:10px; margin-bottom:24px; flex-wrap:wrap; }
.pharmacy-gallery{ display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:10px; }
.pharmacy-gallery-item{ aspect-ratio:1/1; border-radius:12px; background:var(--surface-soft,#eee) center/cover no-repeat; }
@media (max-width:640px){
  .pharmacy-card-grid{ grid-template-columns:1fr; }
}
.author-panel{
  display:flex; gap:16px;
  background:var(--surface-soft);
  border-radius:var(--r-md);
  padding:20px 22px;
  margin:-8px 0 26px;
}
.author-panel-avatar{
  width:54px; height:54px; border-radius:50%;
  background:var(--brand-tint); color:var(--brand-ink);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--display); font-weight:800; font-size:18px;
  flex-shrink:0;
}
.author-panel-body h4{ font-family:var(--display); font-size:15.5px; font-weight:700; margin:0 0 6px; color:var(--ink); }
.author-panel-body p{ font-size:13.5px; color:var(--ink-soft); line-height:1.55; margin:0 0 12px; }
.author-more-label{ font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); margin-bottom:6px; }
.author-more-list{ display:flex; flex-direction:column; gap:4px; }
.author-more-list a{ font-size:13px; font-weight:600; color:var(--ink); }
.author-more-list a:hover{ color:var(--brand-ink); }
.author-more-empty{ font-size:12.5px; color:var(--muted); font-style:italic; }
.author-panel--profile{
  margin:22px 0 36px;
  padding:28px 30px;
  align-items:center;
}
.author-panel-avatar--lg{ width:84px; height:84px; font-size:26px; }
.author-panel--profile h4{ font-size:20px; }
.author-panel--profile p{ margin:0; font-size:14.5px; }

.share-row{ display:flex; gap:8px; margin-left:auto; }
.share-row a{
  width:32px; height:32px; border-radius:50%;
  background:var(--surface-soft);
  display:flex; align-items:center; justify-content:center;
}
.share-row a:hover{ background:var(--brand-tint); color:var(--brand-ink); }

.google-source-cta{
  display:inline-flex; align-items:center; gap:10px;
  padding:11px 20px; margin:4px 0 20px;
  background:var(--surface); border:1.5px solid var(--line-soft); border-radius:var(--r-pill);
  font-size:13.5px; font-weight:700; color:var(--ink);
  box-shadow:var(--shadow-card); transition:box-shadow .15s, border-color .15s, transform .15s;
}
.google-source-cta:hover{ border-color:#4285F4; box-shadow:var(--shadow-card-hover); transform:translateY(-1px); }
.google-source-cta svg{ flex-shrink:0; }

.article-figure{ margin:0 0 24px; }
.article-figure img{ width:100%; border-radius:var(--r-md); aspect-ratio:16/9; object-fit:cover; }
.article-figure figcaption{ font-size:12px; color:var(--muted); padding-top:8px; }

.article-body{ font-size:16.5px; line-height:1.75; color:var(--ink); }
.article-cover{ aspect-ratio:16/9; border-radius:var(--r-md, 12px); background:#555 center/cover no-repeat; margin-bottom:24px; }
.urgent-banner{
  display:flex; align-items:center; gap:14px; background:#c0202020; background:rgba(192,32,32,.08);
  border:1px solid rgba(192,32,32,.35); border-radius:12px; padding:14px 18px; margin:16px 0;
  text-decoration:none; color:var(--ink); transition:background .15s;
}
.urgent-banner:hover{ background:rgba(192,32,32,.14); }
.urgent-banner-tag{
  display:inline-flex; align-items:center; gap:6px; background:#c02020; color:#fff;
  font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.04em;
  padding:5px 12px; border-radius:20px; flex-shrink:0;
}
.urgent-banner-title{ font-weight:700; font-size:15px; flex:1; }
.urgent-banner-arrow{ flex-shrink:0; opacity:.6; }
@media (max-width:640px){
  .urgent-banner{ padding:12px 14px; gap:10px; }
  .urgent-banner-title{ font-size:13.5px; }
}
.article-body img{ max-width:100%; height:auto; border-radius:10px; margin:12px 0; }
.article-inline-gif{ display:block; width:100%; max-width:480px; margin:20px auto; border-radius:10px; }
.article-body .lead-paragraph{ font-size:17.5px; font-weight:700; color:var(--ink); line-height:1.55; }
.article-body .person-tag{ color:inherit; text-decoration:underline; text-decoration-style:dotted; text-underline-offset:3px; font-weight:600; }
.article-body .person-tag:hover{ color:var(--brand-ink,var(--brand)); }
.mentioned-people-grid{ display:flex; flex-wrap:wrap; gap:10px; }
.mentioned-person-card{
  display:flex; flex-direction:column; align-items:center; text-align:center; gap:3px;
  width:104px; padding:10px 6px; border:1px solid #eee; border-radius:10px; text-decoration:none; color:inherit;
}
.mentioned-person-card:hover{ background:#f8f8f8; }
.mentioned-person-card img{ width:44px; height:44px; border-radius:50%; object-fit:cover; }
.mentioned-person-noimg{ width:44px; height:44px; border-radius:50%; background:#eee; display:flex; align-items:center; justify-content:center; font-size:20px; }
.mentioned-person-name{ font-weight:700; font-size:11.5px; line-height:1.2; }
.mentioned-person-role{ font-size:10px; color:var(--muted); }
.mentioned-person-rating{ font-size:10.5px; color:var(--brand-ink,var(--brand)); font-weight:600; margin-top:1px; }
.mentioned-people-label{ font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:var(--muted); margin-bottom:8px; }
.mentioned-people-row{ display:flex; flex-wrap:wrap; gap:8px; }
.mentioned-person-chip{
  display:inline-flex; align-items:center; gap:9px; padding:6px 18px 6px 6px; border-radius:26px;
  background:#f4f4f4; text-decoration:none; color:inherit; font-size:17.5px; font-weight:600;
}
.mentioned-person-chip:hover{ background:#e9e9e9; }
.mentioned-person-chip img{ width:34px; height:34px; border-radius:50%; object-fit:cover; }
.mentioned-person-chip-noimg{ width:34px; height:34px; border-radius:50%; background:#ddd; display:flex; align-items:center; justify-content:center; font-size:18px; }

/* ---------- "Zobacz tez" - kontekstowe linki do tematow SEO ---------- */
.related-hubs-row{ display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; margin:18px 0; font-size:13px; }
.related-hubs-label{ font-weight:700; color:var(--ink-soft); }
.related-hubs-row a{ color:var(--brand-ink,var(--brand)); text-decoration:none; font-weight:600; }
.related-hubs-row a:hover{ text-decoration:underline; }
.show-more-btn{
  margin-top:10px; border:1px solid #ddd; background:#fff; border-radius:20px; padding:6px 16px;
  font-size:12.5px; font-weight:700; cursor:pointer; color:var(--brand-ink,var(--brand));
}
.show-more-btn:hover{ background:#f6f6f6; }
.show-more-btn--center{ display:block; margin:16px auto 0; }
.author-byline{
  display:inline-flex; align-items:center; gap:8px; margin-top:10px; text-decoration:none; color:inherit;
  padding:6px 12px 6px 6px; border-radius:20px; background:#f6f6f6; width:fit-content;
}
.author-byline:hover{ background:#eee; }
.author-byline-avatar{ width:28px; height:28px; border-radius:50%; background:#e2e2e2; display:flex; align-items:center; justify-content:center; font-size:13px; }
.author-byline strong{ font-size:13px; display:block; }
.author-byline-count{ font-size:11px; color:var(--muted); }
.comment-thread{ display:flex; flex-direction:column; gap:14px; }
.comment-item{ padding:14px 16px; border:1px solid #eee; border-radius:10px; }
.comment-item-head{ display:flex; justify-content:space-between; align-items:baseline; gap:10px; flex-wrap:wrap; }
.comment-item-date{ font-size:11.5px; color:var(--muted); }
.comment-item-body{ margin:8px 0 10px; font-size:14px; line-height:1.5; }
.comment-item-actions{ display:flex; align-items:center; gap:14px; }
.comment-vote-form{ display:flex; gap:8px; }
.comment-vote-form button{ border:1px solid #ddd; background:#fafafa; border-radius:16px; padding:3px 10px; font-size:12.5px; cursor:pointer; }
.comment-vote-form button:hover{ background:#eee; }
.comment-reply-btn{ border:none; background:none; color:var(--brand-ink,var(--brand)); font-size:12.5px; font-weight:700; cursor:pointer; padding:0; }
.comment-replies{ margin:12px 0 0 24px; padding-left:14px; border-left:2px solid #eee; display:flex; flex-direction:column; gap:10px; }
.comment-item--reply{ border-color:#f0f0f0; background:#fafafa; }
.comment-reply-indicator{
  display:flex; align-items:center; gap:10px; font-size:13px; background:#fff8e1; border:1px solid #e0c060;
  border-radius:8px; padding:8px 12px;
}
.comment-reply-indicator[hidden]{ display:none !important; }
.comment-reply-indicator button{ border:none; background:none; color:#a02020; font-weight:700; cursor:pointer; margin-left:auto; }

/* ---------- Oceń Radnego: lista ---------- */
.radni-hero{
  background:linear-gradient(135deg, var(--brand) 0%, var(--brand-ink,var(--brand)) 100%);
  color:#fff; border-radius:var(--r-lg); padding:36px 32px; margin:20px 0 32px;
}
.radni-hero h1{ font-family:var(--display); font-size:30px; margin:0 0 8px; }
.radni-hero p{ margin:0; opacity:.92; max-width:600px; font-size:14.5px; }
.radni-group{ margin-bottom:36px; }
.radni-group-head{ display:flex; align-items:baseline; gap:10px; margin-bottom:16px; border-bottom:2px solid var(--brand); padding-bottom:8px; }
.radni-group-head h2{ font-family:var(--display); font-size:19px; margin:0; }
.radni-group-count{ font-size:12.5px; color:var(--muted); }
.radni-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:16px; }
.radny-card{
  display:flex; flex-direction:column; align-items:center; text-align:center; gap:8px;
  padding:20px 14px; border:1px solid #eee; border-radius:14px; text-decoration:none; color:inherit;
  background:#fff; box-shadow:var(--shadow-card); transition:transform .12s, box-shadow .12s;
}
.radny-card:hover{ transform:translateY(-2px); box-shadow:0 8px 20px rgba(0,0,0,.08); }
.radny-card--leader{ border-color:var(--brand); border-width:2px; }
.radny-card-photo{ width:108px; height:108px; }
.radny-card-photo img{ width:100%; height:100%; border-radius:50%; object-fit:cover; }
.radny-card-noimg{ width:108px; height:108px; border-radius:50%; background:#eee; display:flex; align-items:center; justify-content:center; font-size:44px; }
.radny-card-body{ display:flex; flex-direction:column; gap:2px; }
.radny-card-name{ font-weight:800; font-size:14.5px; }
.radny-card-role{ font-size:11.5px; color:var(--muted); line-height:1.3; }
.radny-card-party{ font-size:10.5px; color:var(--brand-ink,var(--brand)); font-weight:600; }
.radny-card-rating{ display:flex; flex-wrap:wrap; gap:6px 10px; margin-top:2px; font-size:12px; font-weight:700; }
.radny-rating-up{ color:#1e7e34; }
.radny-rating-down{ color:#a02020; }
.radny-rating-cta{ color:var(--brand-ink,var(--brand)); }
.radni-leader-row{ display:flex; justify-content:center; gap:24px; margin:4px 0 20px; flex-wrap:wrap; }
.radni-leader-row .radny-card{ width:250px; padding:28px 20px; }
.radny-card-photo--lg{ width:140px; height:140px; }
.radny-card-photo--lg img, .radny-card-photo--lg .radny-card-noimg{ width:140px; height:140px; font-size:56px; }

/* ---------- profil osoby ---------- */
.person-banner{
  background:linear-gradient(135deg, var(--brand) 0%, var(--brand-ink,var(--brand)) 100%);
  border-radius:var(--r-lg); margin:20px 0 28px; padding:2px; box-shadow:var(--shadow-card);
}
.person-banner-inner{ display:flex; align-items:center; gap:24px; padding:30px 32px; flex-wrap:wrap; }
.person-banner-photo{ width:180px; height:180px; flex-shrink:0; }
.person-banner-photo img{ width:100%; height:100%; border-radius:50%; object-fit:cover; border:4px solid rgba(255,255,255,.85); }
.person-banner-noimg{ width:180px; height:180px; border-radius:50%; background:rgba(255,255,255,.2); display:flex; align-items:center; justify-content:center; font-size:72px; border:4px solid rgba(255,255,255,.85); }
@media (max-width:640px){
  .person-banner-photo, .person-banner-noimg{ width:120px; height:120px; font-size:48px; }
}
.person-banner-info h1{ font-family:var(--display); font-size:27px; margin:0 0 4px; color:#fff; }
.person-banner-role{ font-size:14.5px; color:rgba(255,255,255,.9); margin:0 0 12px; }
.person-banner-badges{ display:flex; gap:8px; flex-wrap:wrap; }
.person-banner .person-badge{ background:rgba(255,255,255,.18); color:#fff; }
.person-badge{ background:#f4f4f4; border-radius:16px; padding:4px 12px; font-size:12px; font-weight:600; }
.person-bio{ max-width:720px; font-size:15px; line-height:1.7; color:var(--ink); }
.person-bio--inline{ color:rgba(255,255,255,.92); font-size:14px; line-height:1.6; margin-top:14px; max-width:600px; }
.rating-widget-box{ max-width:600px; margin-top:32px; border:1px solid #eee; border-radius:14px; box-shadow:var(--shadow-card); overflow:hidden; }
.rating-widget-box--full{ max-width:none; width:100%; margin:24px 0 32px; box-sizing:border-box; }
.rating-widget-section{ padding:26px 28px; }
.rating-widget-section--comments{ background:#fafafa; border-top:1px solid #eee; }
.rating-widget-box h2{ margin:0 0 18px; font-family:var(--display); font-size:19px; }
.rating-widget-box h3{ margin:0 0 16px; font-size:14px; font-weight:700; color:var(--ink-soft,var(--muted)); text-transform:uppercase; letter-spacing:.03em; }
.rating-summary-bar{ margin-bottom:22px; }
.rating-summary-track{ height:8px; border-radius:4px; background:#f4d2d2; overflow:hidden; }
.rating-summary-fill{ height:100%; background:#1e7e34; border-radius:4px; }
.rating-summary-numbers{ display:flex; gap:20px; margin-top:10px; font-weight:700; font-size:14px; }
.rating-summary-up{ color:#1e7e34; }
.rating-summary-down{ color:#a02020; }
.thumbs-buttons{ display:flex; gap:12px; flex-wrap:wrap; }
.rating-comment-form{ margin-top:20px; padding-top:18px; border-top:1px solid var(--line-soft); }
.rating-comment-cta{
  background:linear-gradient(135deg,rgba(var(--brand-rgb),.08),rgba(var(--brand-rgb),.02));
  border:1px solid rgba(var(--brand-rgb),.2); border-radius:14px; padding:16px 20px; margin-top:20px;
}
.rating-comment-cta h3{ margin:0 0 5px; font-family:var(--display); font-size:16px; }
.rating-comment-cta p{ margin:0; color:var(--ink-soft); font-size:13.5px; }

/* ---------- CTA "Zaciekawił Cię ten temat" - delikatne miganie, żeby zachęcić ---------- */
.engage-cta--blink{ animation:engageCtaPulse 2.6s ease-in-out infinite; }
@keyframes engageCtaPulse{
  0%, 100% { box-shadow:0 0 0 0 rgba(var(--brand-rgb),.25); }
  50% { box-shadow:0 0 0 8px rgba(var(--brand-rgb),0); }
}

/* ---------- emotikony w polu komentarza ---------- */
.comment-textarea-wrap{ position:relative; }
.comment-textarea-wrap textarea{ padding-right:46px; }
.emoji-picker{ position:absolute; right:8px; bottom:8px; }
.emoji-trigger{
  border:none; background:var(--surface); color:var(--ink); border-radius:50%; width:30px; height:30px; font-size:16px;
  cursor:pointer; box-shadow:0 1px 4px rgba(0,0,0,.15);
}
.emoji-panel{
  position:absolute; right:0; bottom:38px; background:var(--surface); border:1px solid var(--line-soft); border-radius:10px;
  box-shadow:0 6px 18px rgba(0,0,0,.12); padding:8px; display:grid; grid-template-columns:repeat(5,1fr); gap:4px; z-index:5;
}
.emoji-panel[hidden]{ display:none !important; }
.emoji-option{ border:none; background:none; font-size:19px; cursor:pointer; padding:4px; border-radius:6px; }
.emoji-option:hover{ background:var(--surface-soft); }
.rating-comment-label{ display:block; font-size:12.5px; font-weight:700; color:var(--ink-soft,var(--muted)); margin-bottom:8px; }
.rating-comment-form textarea{
  width:100%; min-height:100px; padding:14px 16px; border:1.5px solid var(--line-soft); border-radius:12px;
  font-family:inherit; font-size:14px; line-height:1.5; resize:vertical; background:var(--surface); color:var(--ink);
  transition:border-color .15s, box-shadow .15s; box-sizing:border-box;
}
.rating-comment-form textarea:focus{ outline:none; border-color:var(--brand); box-shadow:0 0 0 3px rgba(var(--brand-rgb,160,2,2),.12); }
.rating-comment-form .btn-cta{ margin-top:12px; }
.thumb-btn{
  flex:1 1 0; min-width:0; padding:14px 16px; border-radius:12px; border:2px solid var(--line-soft); background:var(--surface-soft);
  color:var(--ink); font-size:14px; font-weight:700; cursor:pointer; transition:background .15s,border-color .15s,transform .1s;
  display:flex; align-items:center; justify-content:center; gap:8px;
}
.thumb-btn-icon{ font-size:18px; }
.thumb-btn--up{ color:#1e7e34; }
.thumb-btn--down{ color:#a02020; }
.thumb-btn--up:hover{ background:#e8f7ec; border-color:#1e7e34; transform:translateY(-1px); }
.thumb-btn--down:hover{ background:#fbeaea; border-color:#a02020; transform:translateY(-1px); }
.thumb-btn--active.thumb-btn--up{ background:#1e7e34; color:#fff; border-color:#1e7e34; }
.thumb-btn--active.thumb-btn--down{ background:#a02020; color:#fff; border-color:#a02020; }
.rating-form-hint{ font-size:11.5px; color:var(--muted); margin:8px 0 0; }
#publishRatingBtn:disabled{ opacity:.45; cursor:not-allowed; }
.rating-comments{ display:flex; flex-direction:column; gap:12px; }
.rating-comments-empty{ font-size:13px; color:var(--muted); font-style:italic; margin:0; }
.rating-comment-item{ display:flex; gap:12px; background:var(--surface); color:var(--ink); border:1px solid var(--line-soft); border-radius:12px; padding:14px 16px; box-shadow:0 1px 3px rgba(0,0,0,.04); }
.rating-comment-badge{
  width:34px; height:34px; border-radius:50%; flex-shrink:0; display:flex; align-items:center; justify-content:center;
  font-size:16px;
}
.rating-comment-badge--up{ background:#e8f7ec; }
.rating-comment-badge--down{ background:#fbeaea; }
.rating-comment-badge--neutral{ background:#f0f0f0; }
.rating-comment-content{ flex:1; min-width:0; }
.rating-comment-date{ font-size:11.5px; color:var(--muted); font-weight:600; }
.rating-comment-content p{ margin:5px 0 0; font-size:13.5px; line-height:1.55; color:var(--ink); }
.comment-cta{
  background:linear-gradient(135deg,rgba(var(--brand-rgb),.08),rgba(var(--brand-rgb),.02));
  border:1px solid rgba(var(--brand-rgb),.2); border-radius:14px; padding:18px 22px; margin-bottom:16px;
}
.comment-cta h3{ margin:0 0 6px; font-family:var(--display); }
.comment-cta p{ margin:0; color:var(--ink-soft); font-size:14px; }
.comment-form{ display:flex; flex-direction:column; gap:12px; max-width:none; }
.comment-form input, .comment-form textarea{
  padding:12px 14px; border:1px solid #ddd; border-radius:10px; font-family:inherit; font-size:14px;
}
.comment-form textarea{ min-height:100px; resize:vertical; }
.article-body .content-gallery{ display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:10px; margin:18px 0; }
.article-body .content-gallery img{ margin:0; aspect-ratio:16/9; object-fit:cover; }
.content-gallery-carousel{ margin:20px 0; }
.content-gallery-heading{ font-size:12px; font-weight:800; letter-spacing:.04em; color:var(--muted); margin:0 0 10px; text-transform:uppercase; }

/* ---------- Komunikaty flash na stronie publicznej (np. po wyslaniu komentarza) ---------- */
.flash{ padding:14px 16px; border-radius:10px; margin:0 0 18px; font-size:14px; }
.flash--error{ background:#fdecea; border:1px solid #f3b7ae; color:#a02020; }
.comment-pending-flash{
  display:flex; align-items:flex-start; gap:14px; padding:18px 20px;
  background:#fff8e6; border:1.5px solid #f0d98c; border-radius:12px;
}
.comment-pending-icon{ font-size:28px; line-height:1; flex-shrink:0; }
.comment-pending-flash strong{ display:block; font-size:16px; margin-bottom:4px; color:#6b5000; }
.comment-pending-flash p{ margin:0; font-size:14px; color:#7a6a30; line-height:1.5; }
.content-gallery-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.content-gallery-grid img{ margin:0; aspect-ratio:16/9; object-fit:cover; border-radius:8px; cursor:zoom-in; }
.content-gallery-nav{ display:flex; align-items:center; justify-content:center; gap:16px; margin-top:12px; }
.content-gallery-nav button{
  width:34px; height:34px; border-radius:50%; border:1px solid #ddd; background:#fff; cursor:pointer; font-size:18px; line-height:1;
}
.content-gallery-nav button:hover{ background:#f2f2f2; }
.content-gallery-nav span{ font-size:13px; color:var(--muted); min-width:48px; text-align:center; }
@media (max-width:640px){
  .content-gallery-grid{ grid-template-columns:repeat(3,1fr); gap:5px; }
}
.lightbox-overlay{ position:fixed; inset:0; background:rgba(10,10,12,.92); z-index:200; display:flex; align-items:center; justify-content:center; padding:24px; cursor:zoom-out; }
.lightbox-overlay[hidden]{ display:none !important; }
.lightbox-img{ max-width:100%; max-height:100%; border-radius:8px; box-shadow:0 20px 60px rgba(0,0,0,.5); }
.lightbox-close{ position:absolute; top:18px; right:20px; width:40px; height:40px; border-radius:50%; border:none; background:rgba(255,255,255,.12); color:#fff; font-size:18px; cursor:pointer; }
.lightbox-close:hover{ background:rgba(255,255,255,.24); }
.lightbox-arrow{
  position:absolute; top:50%; transform:translateY(-50%); width:48px; height:48px; border-radius:50%;
  background:rgba(255,255,255,.12); border:none; color:#fff; font-size:20px; cursor:pointer; z-index:10;
  align-items:center; justify-content:center;
}
.lightbox-arrow:hover{ background:rgba(255,255,255,.24); }
.lightbox-arrow--prev{ left:16px; }
.lightbox-arrow--next{ right:16px; }
@media (max-width:640px){
  .lightbox-arrow{ width:38px; height:38px; font-size:16px; }
}
.article-body p{ margin:0 0 20px; }
.article-body em{ font-style:italic; color:var(--ink); }
.pull-quote{
  font-family:var(--display);
  font-size:23px;
  line-height:1.4;
  font-weight:700;
  color:var(--brand-ink);
  border-left:3px solid var(--brand-ink);
  padding:4px 0 4px 22px;
  margin:32px 0;
  letter-spacing:-0.1px;
}
.article-duo{
  display:grid; grid-template-columns:1fr 1fr; gap:10px;
  margin:28px 0 8px;
}
.article-duo img{ width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:var(--r-sm); display:block; }
.article-duo-caption{ font-size:12.5px; color:var(--muted); margin:0 0 20px; }
.article-mini-gallery{
  display:grid; grid-template-columns:repeat(3,1fr); gap:8px;
  margin:28px 0 20px;
}
.article-mini-gallery img{ width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:var(--r-sm); display:block; }

.engage-cta{
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  background:var(--brand); color:var(--on-brand);
  border-radius:var(--r-md);
  padding:22px 28px;
  margin:34px 0;
  box-shadow:0 12px 26px rgba(var(--brand-rgb),.24);
}
.engage-cta h4{ font-family:var(--display); font-size:17px; font-weight:800; margin:0 0 4px; }
.engage-cta p{ font-size:13.5px; margin:0; opacity:.9; }
.engage-cta-btn{
  flex-shrink:0;
  background:var(--on-brand); color:var(--brand);
  font-weight:800; font-size:13.5px;
  padding:11px 22px; border-radius:var(--r-pill);
  white-space:nowrap;
}
.engage-cta-btn:hover{ opacity:.88; }

.tag-row{ display:flex; gap:8px; flex-wrap:wrap; margin:30px 0 8px; }
.tag-row a{
  font-size:12px; font-weight:600; color:var(--ink-soft);
  background:var(--surface-soft); border:none;
  padding:7px 14px; border-radius:var(--r-pill);
}
.tag-row a:hover{ background:var(--brand-tint); color:var(--brand-ink); }

aside.article-side{ display:flex; flex-direction:column; gap:26px; }
.weather-widget{
  background:var(--brand);
  color:var(--on-brand);
  padding:22px;
  border-radius:var(--r-md);
  box-shadow:0 10px 24px rgba(var(--brand-rgb),.2);
}
.weather-widget .temp{ font-family:var(--display); font-size:38px; font-weight:800; }
.weather-widget .place{ font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.04em; opacity:.85; margin-top:4px; }

.comments-block{
  margin-top:44px;
  padding-top:28px;
  border-top:1px solid var(--line-soft);
}
.comment-list{ display:flex; flex-direction:column; gap:12px; margin:18px 0 22px; }
.comments-empty{ font-size:14px; color:var(--muted); font-style:italic; margin:18px 0 22px; text-align:center; padding:18px; background:var(--surface-soft); border-radius:var(--r-md); }
.comment-card{
  display:flex; gap:14px;
  background:var(--surface-soft);
  border-radius:var(--r-md);
  padding:16px 18px;
}
.comment-avatar{
  width:40px; height:40px; border-radius:50%;
  background:var(--brand-tint); color:var(--brand-ink);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--display); font-weight:700; font-size:13px;
  flex-shrink:0;
}
.comment-head{ display:flex; align-items:baseline; gap:10px; margin-bottom:4px; flex-wrap:wrap; }
.comment-who{ font-size:13.5px; font-weight:700; color:var(--ink); }
.comment-when{ font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.03em; color:var(--muted); }
.comment-card p{ margin:0 0 10px; font-size:14px; line-height:1.55; color:var(--ink-soft); }
.comment-actions{ display:flex; gap:18px; }
.comment-actions button{
  display:inline-flex; align-items:center; gap:5px;
  background:none; border:none; padding:0;
  font-size:12px; font-weight:700; color:var(--muted);
}
.comment-actions button:hover{ color:var(--brand-ink); }
.comment-actions svg{ width:14px; height:14px; }

.comment-form{
  background:var(--surface-soft);
  border-radius:var(--r-md);
  padding:18px;
  display:flex; flex-direction:column; gap:12px;
}
.comment-form textarea{
  width:100%; min-height:84px; border:1.5px solid var(--line-soft); background:var(--surface); border-radius:var(--r-sm);
  padding:14px; font-family:inherit; font-size:14px; resize:vertical; transition:border-color .15s;
}
.comment-form textarea:focus{ outline:none; border-color:var(--brand); }
.comment-form .btn-cta{ align-self:flex-start; }

/* ---------- listing page (ogłoszenia) ---------- */
.listing-toolbar{
  display:flex; justify-content:space-between; align-items:center;
  margin:26px 0 22px; gap:16px; flex-wrap:wrap;
}
.listing-toolbar .count{ font-size:12.5px; font-weight:600; text-transform:uppercase; letter-spacing:.03em; color:var(--muted); }
.listing-toolbar select{
  border:none; border-radius:var(--r-pill); padding:10px 16px; font-size:13px; font-weight:600; background:var(--surface); box-shadow:var(--shadow-card);
}
.listing-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}
.offer-card{
  background:var(--surface);
  border:none;
  border-radius:var(--r-md);
  overflow:hidden;
  box-shadow:var(--shadow-card);
  transition:box-shadow .25s cubic-bezier(.2,.8,.2,1), transform .25s cubic-bezier(.2,.8,.2,1);
}
.offer-card:hover{ box-shadow:var(--shadow-card-hover); transform:translateY(-3px); }
.offer-card .thumb{ aspect-ratio:4/3; background:#555 center/cover no-repeat; position:relative; }
.offer-card .price{
  position:absolute; right:12px; bottom:12px;
  background:var(--ink); color:#fff; font-weight:700; font-size:13px;
  padding:6px 12px; border-radius:var(--r-pill);
}
.offer-card .body{ padding:16px 18px 18px; }
.offer-card h4{ font-family:var(--display); font-size:16px; margin:0 0 6px; font-weight:700; }
.offer-card .loc{ font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.03em; color:var(--muted); }

.page-hero{
  padding:32px 0 6px;
}
.page-hero h1{
  font-family:var(--display);
  font-size:32px;
  font-weight:800;
  letter-spacing:-0.3px;
  margin:0 0 10px;
}
.page-hero p{ color:var(--ink-soft); font-size:15px; max-width:640px; }

/* ---------- strona kontakt ---------- */
.contact-layout{
  display:grid;
  grid-template-columns:1fr 1.4fr;
  gap:24px;
  margin:26px 0 56px;
  align-items:start;
}
.contact-info{
  background:var(--surface);
  border-radius:var(--r-md);
  box-shadow:var(--shadow-card);
  padding:26px 26px;
  display:flex; flex-direction:column; gap:18px;
}
.contact-info-item{ display:flex; flex-direction:column; gap:4px; }
.contact-info-label{ font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); }
.contact-info-value{ font-size:14.5px; font-weight:600; color:var(--ink); }
.contact-info-value:is(a):hover{ color:var(--brand-ink); }
.contact-phone-link{ color:var(--brand-ink); font-weight:800; }

.contact-form{
  background:var(--surface);
  border-radius:var(--r-md);
  box-shadow:var(--shadow-card);
  padding:26px;
  display:flex; flex-direction:column; gap:16px;
}
.contact-form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.contact-field{ display:flex; flex-direction:column; gap:6px; }
.contact-field label{ font-size:12px; font-weight:700; color:var(--ink-soft); }
.contact-field input,
.contact-field textarea,
.contact-field select{
  border:1.5px solid var(--line-soft);
  background:var(--surface);
  border-radius:var(--r-sm);
  padding:12px 14px;
  font-family:inherit; font-size:14px; color:var(--ink);
  transition:border-color .15s;
}
.contact-field input:focus,
.contact-field textarea:focus,
.contact-field select:focus{ outline:none; border-color:var(--brand); }
.contact-field textarea{ min-height:130px; resize:vertical; }
.contact-field input[type="file"]{ padding:9px 10px; }
.contact-form .btn-cta{ align-self:flex-start; }

.plain-content-card{
  background:var(--surface);
  border-radius:var(--r-md);
  box-shadow:var(--shadow-card);
  padding:30px 32px;
  margin:26px 0 56px;
  color:var(--ink-soft);
  font-size:15px;
  line-height:1.7;
}
.plain-content-card em{ color:var(--muted); }

/* ---------- archiwum nekrologów ---------- */
.nekrologi-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(340px,1fr));
  gap:24px;
  margin:26px 0 56px;
}

/* ---------- reklama na portalu ---------- */
.ad-package-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
  margin:26px 0 40px;
}
.ad-package-card{
  background:var(--surface);
  border-radius:var(--r-md);
  box-shadow:var(--shadow-card);
  padding:28px 22px;
  text-align:center;
}
.ad-package-card .size{ font-family:var(--display); font-size:22px; font-weight:800; color:var(--brand-ink); margin-bottom:8px; }
.ad-package-card h4{ font-family:var(--display); font-size:15px; font-weight:700; margin:0 0 10px; color:var(--ink); }
.ad-package-card p{ font-size:13px; color:var(--ink-soft); margin:0 0 16px; line-height:1.5; }
.ad-package-card .price{ font-weight:800; font-size:16px; color:var(--ink); }

/* ---------- zgłoś temat (formularz, mobile-first) ---------- */
.report-form{
  max-width:640px;
  margin:26px auto 30px;
  display:flex; flex-direction:column; gap:20px;
  background:var(--surface);
  border-radius:var(--r-md);
  box-shadow:var(--shadow-card);
  padding:28px;
}
.report-form[hidden]{ display:none; }
.report-photo-field{ display:flex; flex-direction:column; gap:12px; }
.report-photo-btn{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
  border:2px dashed var(--line-soft);
  border-radius:var(--r-md);
  padding:38px 20px;
  cursor:pointer;
  color:var(--muted);
  transition:border-color .15s, background .15s, color .15s;
}
.report-photo-btn svg{ width:34px; height:34px; }
.report-photo-btn span{ font-size:14.5px; font-weight:700; text-align:center; }
.report-photo-btn:hover{ border-color:var(--brand); color:var(--brand-ink); background:var(--brand-tint); }
.report-photo-btn[hidden]{ display:none; }

.report-photo-preview{ position:relative; border-radius:var(--r-md); overflow:hidden; }
.report-photo-preview img{ width:100%; max-height:360px; object-fit:cover; display:block; }
.report-photo-remove{
  position:absolute; top:10px; right:10px;
  width:32px; height:32px; border-radius:50%;
  background:rgba(0,0,0,.6); color:#fff; border:none;
  display:flex; align-items:center; justify-content:center;
  font-size:15px;
}

.report-field{ display:flex; flex-direction:column; gap:8px; }
.report-field label{ font-size:13px; font-weight:700; color:var(--ink-soft); }
.report-optional{ font-weight:500; color:var(--muted); }
.report-field input, .report-field select, .report-field textarea{
  border:1.5px solid var(--line-soft); background:var(--surface); border-radius:var(--r-sm);
  padding:13px 14px; font-family:inherit; font-size:15px; color:var(--ink);
  width:100%;
}
.report-field textarea{ min-height:110px; resize:vertical; }
.report-field input:focus, .report-field select:focus, .report-field textarea:focus{ outline:none; border-color:var(--brand); }

.report-location-row{ display:flex; gap:10px; }
.report-location-row input{ flex:1; min-width:0; }
.report-location-btn{
  display:flex; align-items:center; gap:7px;
  flex-shrink:0;
  background:var(--brand-tint); color:var(--brand-ink);
  border:none; border-radius:var(--r-sm);
  padding:0 16px;
  font-size:13px; font-weight:700;
  white-space:nowrap;
}
.report-location-btn svg{ width:15px; height:15px; }
.report-location-btn:hover{ background:var(--brand); color:var(--on-brand); }
.report-location-btn.working{ opacity:.65; }
.report-location-status{ font-size:12.5px; color:var(--brand-ink); font-weight:600; margin:0; min-height:16px; }
.report-location-status.error{ color:#B3261E; }

.report-field-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.report-note{ font-size:12px; color:var(--muted); margin:-8px 0 0; }
.report-submit{ width:100%; justify-content:center; padding:15px; font-size:14.5px; }

.report-success{
  max-width:480px; margin:60px auto; text-align:center;
  display:flex; flex-direction:column; align-items:center; gap:12px;
}
.report-success[hidden]{ display:none; }
.report-success-icon{
  width:64px; height:64px; border-radius:50%;
  background:var(--brand); color:var(--on-brand);
  display:flex; align-items:center; justify-content:center;
  font-size:30px; font-weight:800;
}
.report-success h3{ font-family:var(--display); font-size:22px; margin:6px 0 4px; }
.report-success p{ font-size:14px; color:var(--ink-soft); margin:0 0 12px; }

/* ---------- krok 2 (opcjonalny): zostaw kontakt po wysłanym zgłoszeniu ---------- */
.report-contact-step{
  max-width:420px; margin:40px auto 0; text-align:center;
  display:flex; flex-direction:column; align-items:center; gap:10px;
}
.report-contact-step[hidden]{ display:none; }
.report-contact-step h3{ font-family:var(--display); font-size:20px; margin:6px 0 2px; }
.report-contact-step p{ font-size:14px; color:var(--ink-soft); margin:0 0 10px; }
.report-contact-step .report-field-row{ width:100%; text-align:left; }
.report-contact-step .report-note{ text-align:left; align-self:flex-start; }
.report-contact-actions{ display:flex; flex-direction:column; gap:8px; width:100%; margin-top:8px; }
.report-contact-skip{
  background:none; border:none; color:var(--muted); font-size:13px; font-weight:600;
  padding:8px; cursor:pointer; text-decoration:underline;
}
.report-contact-skip:hover{ color:var(--ink-soft); }

/* ---------- modal "Zgłoś temat" (mega mobile-first) ---------- */
.modal-overlay{
  position:fixed; inset:0; z-index:300;
  background:rgba(10,8,7,.55);
  display:flex; align-items:center; justify-content:center;
  padding:24px;
}
.modal-overlay[hidden]{ display:none; }
.modal-sheet{
  background:var(--surface);
  border-radius:var(--r-lg);
  width:100%; max-width:560px;
  max-height:88vh;
  display:flex; flex-direction:column;
  box-shadow:0 30px 70px rgba(0,0,0,.35);
  overflow:hidden;
}
.modal-header{
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 22px;
  border-bottom:1px solid var(--line-soft);
  flex-shrink:0;
}
.modal-header h3{ font-family:var(--display); font-size:18px; font-weight:800; margin:0; color:var(--ink); }
.modal-close{
  width:36px; height:36px; border-radius:50%;
  background:var(--surface-soft); border:none;
  display:flex; align-items:center; justify-content:center;
  font-size:16px; color:var(--ink-soft); flex-shrink:0;
}
.modal-close:hover{ background:var(--brand-tint); color:var(--brand-ink); }
.modal-body{ padding:22px; overflow-y:auto; }
.modal-lead{ font-size:14px; color:var(--ink-soft); line-height:1.55; margin:0 0 20px; }
.report-form--modal{
  background:none; box-shadow:none; padding:0; margin:0;
  max-width:none;
}

@media (max-width:700px){
  .modal-overlay{ padding:0; align-items:flex-end; }
  .modal-sheet{
    max-width:100%; width:100%;
    max-height:100vh; height:100%;
    border-radius:0;
    animation:modal-slide-up .28s ease-out;
  }
  .modal-header{ padding:18px 20px; }
  .modal-body{ padding:20px 20px 32px; }
  .report-photo-btn{ padding:44px 20px; }
}
@keyframes modal-slide-up{
  from{ transform:translateY(100%); }
  to{ transform:translateY(0); }
}







/* ---------- Oceń Radnego ---------- */
.councilor-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
  margin:26px 0 56px;
}
.councilor-card{
  background:var(--surface);
  border-radius:var(--r-md);
  box-shadow:var(--shadow-card);
  padding:26px 22px;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:4px;
}
.councilor-avatar{
  width:76px; height:76px; border-radius:50%;
  background:var(--brand-tint); color:var(--brand-ink);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--display); font-weight:800; font-size:24px;
  margin-bottom:8px;
}
.councilor-name{ font-family:var(--display); font-weight:700; font-size:16px; color:var(--ink); }
.councilor-meta{ font-size:11.5px; font-weight:600; text-transform:uppercase; letter-spacing:.03em; color:var(--muted); margin-top:2px; }
.councilor-committee{ font-size:12.5px; color:var(--ink-soft); }

.councilor-rating-current{
  display:flex; align-items:center; gap:7px;
  margin-top:10px; padding-top:14px;
  border-top:1px solid var(--line-soft);
  width:100%; justify-content:center;
}
.councilor-rating-current .stars{ display:flex; gap:2px; color:var(--gold); }
.councilor-rating-current .stars svg{ width:15px; height:15px; fill:currentColor; }
.councilor-rating-current .stars svg.half{ opacity:.5; }
.councilor-rating-current .stars svg.empty{ color:var(--line-soft); }
.councilor-rating-current .score{ font-weight:700; font-size:14px; color:var(--ink); }
.councilor-rating-current .votes{ font-size:11px; color:var(--muted); }

.rate-widget{ margin-top:6px; padding-top:14px; border-top:1px solid var(--line-soft); width:100%; }
.rate-widget .label{ font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); margin-bottom:8px; }
.rate-stars{ display:flex; justify-content:center; gap:4px; }
.rate-stars button{
  background:none; border:none; padding:2px; color:var(--line-soft);
  transition:color .1s, transform .1s;
}
.rate-stars button svg{ width:24px; height:24px; fill:currentColor; display:block; }
.rate-stars button:hover{ transform:scale(1.12); }
.rate-stars.hovering button.lit,
.rate-stars.rated button.lit{ color:var(--gold); }
.rate-feedback{ font-size:12px; color:var(--brand-ink); font-weight:700; margin-top:8px; min-height:16px; }


/* ---------- responsive ---------- */
@media (max-width:960px){
  .content-with-sidebar{ grid-template-columns:1fr; }
  .hero-media{ aspect-ratio:16/11; }
  .featured-grid{ grid-template-columns:1fr; }
  .featured-side{ flex-direction:row; }
  .v3-mosaic{ grid-template-columns:repeat(2,1fr); grid-template-rows:repeat(3,140px); }
  .v3-tile--big{ grid-column:1/3; grid-row:1/2; }
  .v2-strip{ grid-template-columns:repeat(2,1fr); }
  .v5-hero{ grid-template-columns:1fr; }
  .v5-photo{ aspect-ratio:16/9; }
  .featured-bottom-row{ grid-template-columns:1fr 1fr; }
  .widgets-row{ grid-template-columns:1fr 1fr; }
  .councilor-grid{ grid-template-columns:repeat(2,1fr); }
  .contact-layout{ grid-template-columns:1fr; }
  .company-grid{ grid-template-columns:1fr 1fr; }
  .nekrologi-grid{ grid-template-columns:1fr 1fr; }
  .ad-package-grid{ grid-template-columns:1fr; }
  .camera-grid{ grid-template-columns:repeat(2,1fr); }
  .grid{ grid-template-columns:repeat(2,1fr); }
  .listing-grid{ grid-template-columns:repeat(2,1fr); }
  .article-shell{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns:1fr 1fr; }
  .promo-band{ grid-template-columns:repeat(2,1fr); }
  .search-pill{ display:none; }
}
@media (max-width:700px){
  .header-nav-row{ padding:0; border-top:none; }
  /* backdrop-filter na headerze tworzy containing block dla position:fixed —
     bez tego menu mobilne "uciekało" w granice samego headera zamiast pokryć cały ekran */
  header.site{ backdrop-filter:none; -webkit-backdrop-filter:none; background:var(--surface); }
  .logo-img{ height:52px; }
  .header-actions .btn-ghost, .header-actions .btn-cta{ display:none; }
  .mobile-cta-row{ display:flex; }
  .hero-arrow{ width:34px; height:34px; }
  .hero-arrow svg{ width:16px; height:16px; }
  nav.main{
    position:fixed; top:0; left:0; right:0; bottom:0;
    background:var(--surface);
    transform:translateX(100%);
    transition:transform .25s;
    z-index:50;
    padding:90px 28px 28px;
    overflow-y:auto;
  }
  nav.main.open{ transform:translateX(0); }
  nav.main ul{ flex-direction:column; }
  nav.main a{ font-size:19px; padding:14px 4px; border-bottom:1px solid var(--line-soft); border-radius:0; }
  .hamburger{
    display:flex; align-items:center; justify-content:center;
    width:44px; height:44px; border:none; border-radius:50%;
    background:var(--surface-soft); z-index:60; position:relative;
    transition:background-color .2s;
  }
  .hamburger:hover{ background:var(--line-soft); }
  .hamburger span, .hamburger span::before, .hamburger span::after{
    content:""; display:block; width:18px; height:2px; background:var(--ink); position:relative;
    transition:transform .25s, opacity .2s, top .25s;
  }
  .hamburger span::before{ position:absolute; top:-6px; }
  .hamburger span::after{ position:absolute; top:6px; }
  /* Otwarte menu: linie zwijają się w "X", żeby było jasne, że ten sam przycisk zamyka */
  .hamburger.open span{ background:transparent; }
  .hamburger.open span::before{ top:0; transform:rotate(45deg); background:var(--ink); }
  .hamburger.open span::after{ top:0; transform:rotate(-45deg); background:var(--ink); }
  body.nav-open{ overflow:hidden; }
  .grid{ grid-template-columns:1fr; }
  .listing-grid{ grid-template-columns:1fr; }
  .promo-band{ grid-template-columns:1fr 1fr; }
  .ad-row{ grid-template-columns:1fr; }
  .pharmacy-grid{ grid-template-columns:1fr; }
  .featured-side{ flex-direction:column; }
  .v1-list-item{ padding:12px 4px; }
  .v4-row{ flex-direction:column; }
  .v4-thumb{ width:100%; height:160px; }
  .mini-columns{ grid-template-columns:1fr; }
  .v2-strip{ grid-template-columns:repeat(2,1fr); }
  .grid--sister{ grid-template-columns:1fr 1fr; }
  .featured-bottom-row{ grid-template-columns:1fr; }
  .widgets-row{ grid-template-columns:1fr; }
  .councilor-grid{ grid-template-columns:1fr; }
  .contact-form-row{ grid-template-columns:1fr; }
  .report-field-row{ grid-template-columns:1fr; }
  .report-form{ padding:20px; margin:18px auto 24px; }
  .report-location-row{ flex-direction:column; }
  .report-location-btn{ padding:12px 16px; justify-content:center; }
  .sister-head{ flex-direction:column; align-items:flex-start; gap:10px; }
  .company-grid{ grid-template-columns:1fr; }
  .nekrologi-grid{ grid-template-columns:1fr; }
  .camera-grid{ grid-template-columns:1fr; }
  .utility-left span.hide-mobile{ display:none; }
  .footer-grid{ grid-template-columns:1fr; padding:32px 0; text-align:center; gap:26px; }
  .footer-col-brand{ max-width:none; margin:0 auto; }
  .footer-logo-img{ margin-left:auto; margin-right:auto; }
  .footer-grid ul{ align-items:center; }
  .footer-bottom{ flex-direction:column; gap:6px; text-align:center; }
  .grid--sister{ grid-template-columns:1fr; }
  .sister-head{ flex-direction:column; align-items:flex-start; gap:10px; }
  article[data-article-root]{ padding:26px 22px 30px; }
  .article-duo{ grid-template-columns:1fr; }
  .article-mini-gallery{ grid-template-columns:repeat(2,1fr); }
  .engage-cta{ flex-direction:column; align-items:flex-start; }
  .author-panel{ flex-direction:column; }
}

/* ---------- Pasek administracyjny na stronie publicznej (jak wpadminbar w WP) ---------- */
.wp-admin-bar{
  position:sticky; top:0; z-index:500; display:flex; align-items:center; gap:2px;
  background:#1d2327; color:#ccd0d4; font-size:13px; height:32px; padding:0 8px;
  padding-top:env(safe-area-inset-top,0px);
  overflow-x:auto; white-space:nowrap;
}
.wp-admin-bar a{ color:#ccd0d4; text-decoration:none; padding:0 10px; height:32px; display:flex; align-items:center; }
.wp-admin-bar a:hover{ background:#2c3338; color:#fff; }
.wp-admin-bar-logo{ font-weight:700; color:#fff !important; }
.wp-admin-bar-edit{ background:#2271b1; color:#fff !important; }
.wp-admin-bar-edit:hover{ background:#135e96 !important; }
.wp-admin-bar-logout{ margin-left:auto; }
@media (max-width:600px){
  .wp-admin-bar a:not(.wp-admin-bar-logo):not(.wp-admin-bar-edit):not(.wp-admin-bar-logout){ display:none; }
}

/* ---------- pasek informacyjny o cookies ---------- */
.cookie-notice{
  position:fixed; left:0; right:0; bottom:0; z-index:900;
  background:var(--surface); border-top:1px solid var(--line-soft);
  box-shadow:0 -4px 16px rgba(0,0,0,.1);
}
.cookie-notice-inner{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  flex-wrap:wrap; padding:14px 20px;
}
.cookie-notice-inner p{ margin:0; font-size:13.5px; color:var(--ink); flex:1 1 320px; }
.cookie-notice-inner a{ color:var(--brand); font-weight:600; }
.cookie-notice-inner .btn-cta{
  flex-shrink:0; padding:10px 22px; font-size:13.5px;
  min-height:44px; touch-action:manipulation;
}
@media (max-width:600px){
  .cookie-notice-inner{ flex-direction:column; align-items:stretch; text-align:center; gap:10px; padding:12px 16px; }
  /* w układzie kolumnowym flex-basis to WYSOKOŚĆ — 320px robiło ogromną pustą przestrzeń */
  .cookie-notice-inner p{ flex:0 0 auto; font-size:13px; line-height:1.45; }
  .cookie-notice-inner .btn-cta{ width:100%; padding:14px 22px; }
}

/* ---------- wykrywanie AdBlocka: wariant "miękki" (pasek u góry) ---------- */
.adblock-notice{
  position:fixed; left:0; right:0; top:0; z-index:900;
  background:var(--surface); border-bottom:1px solid var(--line-soft);
  box-shadow:0 4px 16px rgba(0,0,0,.1);
}
.adblock-notice-inner{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  flex-wrap:wrap; padding:14px 20px;
}
.adblock-notice-inner p{ margin:0; font-size:13.5px; color:var(--ink); flex:1 1 320px; }
.adblock-notice-inner .btn-cta{
  flex-shrink:0; padding:10px 22px; font-size:13.5px;
  min-height:44px; touch-action:manipulation;
}
@media (max-width:600px){
  .adblock-notice-inner{ flex-direction:column; align-items:stretch; text-align:center; gap:12px; }
  .adblock-notice-inner .btn-cta{ width:100%; padding:14px 22px; }
}

/* ---------- wykrywanie AdBlocka: wariant "twardy" (blokujący ekran) ---------- */
.adblock-overlay{
  position:fixed; inset:0; z-index:950;
  background:rgba(10,8,7,.92);
  display:flex; align-items:center; justify-content:center; padding:24px;
}
.adblock-overlay[hidden]{ display:none; }
.adblock-overlay-sheet{
  background:var(--surface); border-radius:var(--r-lg);
  width:100%; max-width:460px; padding:32px 28px; text-align:center;
  box-shadow:0 30px 70px rgba(0,0,0,.4);
}
.adblock-overlay-sheet h3{ font-family:var(--display); font-size:22px; margin:0 0 10px; color:var(--ink); }
.adblock-overlay-sheet p{ font-size:14px; color:var(--ink-soft); margin:0 0 22px; line-height:1.5; }
.adblock-overlay-sheet .btn-cta{ width:100%; min-height:44px; touch-action:manipulation; }
body.adblock-blocked{ overflow:hidden; }

.classified-section-title{ font-family:var(--display); font-size:20px; margin:8px 0 14px; }
.classified-section-title .fa-star{ color:#e0a800; }

/* Komunikaty formularzy wysyłanych bez przeładowania (site.js, initAjaxForms) */
.ajax-flash{ margin-top:10px; }
.ajax-flash--inline{ display:inline-block; margin:0 0 0 8px; padding:4px 10px; font-size:12px; border-radius:8px; }
.comment-actions button.is-voted{ color:var(--brand-ink); font-weight:700; }

/* Jednostka AdSense w slocie reklamowym (wolne miejsce w siatce / pusty slot) */
.ad-slot.ad-slot--adsense{
  display:block; padding:0; border:0; background:none; box-shadow:none; min-height:0; overflow:hidden;
}
.ad-slot.ad-slot--adsense ins.adsbygoogle[data-ad-status="unfilled"]{ display:none !important; }
