/* ═══════════════════════════════════════════════════════════════════════
   ZDZ Kielce — szablon serwisu.
   Kolorystyka i typografia jak w serwisach ZDZ (szukaj.zdz.kielce.pl, strona błędu zdz.kielce.pl):
   jasne tło #F0F2FA, białe karty, granat #090979, akcent #FF4201, Montserrat + Open Sans.
   Motyw jasny domyślny; ciemny — z wyboru odwiedzającego (przełącznik w górnym pasku, html[data-theme="dark"]).
   Tokeny są wspólne dla szablonu i rozszerzeń (com_catalog, mod_zdz_*).
   ═══════════════════════════════════════════════════════════════════════ */

/* ---------- 0. Czcionki z serwera (Montserrat i Open Sans, zmienna grubość, WOFF2). Bez połączeń z Google: szybciej
   i bez przekazywania adresów IP odwiedzających. Inne kroje z panelu „Wygląd” — z Google Fonts, tylko gdy wybrane.
   Trzy pliki na krój: latin (podstawowe znaki), pl (same polskie litery, kilka KB) i latin-ext (pozostałe języki — zapas,
   pobierany tylko gdy na stronie wystąpi taki znak). Przy nakładających się zakresach przeglądarka bierze krój zadeklarowany
   później, więc polskie litery pochodzą z małego pliku „pl”, a nie z dużego „latin-ext”. Zakresy wag = używane w CSS. ---------- */
@font-face{ font-family:"Montserrat"; font-style:normal; font-weight:500 800; font-display:swap;
  src:url("../fonts/montserrat-latin-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face{ font-family:"Montserrat"; font-style:normal; font-weight:500 800; font-display:swap;
  src:url("../fonts/montserrat-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face{ font-family:"Montserrat"; font-style:normal; font-weight:500 800; font-display:swap;
  src:url("../fonts/montserrat-pl.woff2") format("woff2");
  unicode-range:U+0104-0107, U+0118-0119, U+0141-0144, U+015A-015B, U+0179-017C; }
@font-face{ font-family:"Open Sans"; font-style:normal; font-weight:400 700; font-stretch:100%; font-display:swap;
  src:url("../fonts/opensans-latin-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face{ font-family:"Open Sans"; font-style:normal; font-weight:400 700; font-stretch:100%; font-display:swap;
  src:url("../fonts/opensans-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face{ font-family:"Open Sans"; font-style:normal; font-weight:400 700; font-stretch:100%; font-display:swap;
  src:url("../fonts/opensans-pl.woff2") format("woff2");
  unicode-range:U+0104-0107, U+0118-0119, U+0141-0144, U+015A-015B, U+0179-017C; }

/* ---------- 1. Tokeny — motyw jasny (domyślny) ---------- */
:root{
  /* Marka */
  --navy-900:#020024;
  /* Kanały RGB do przezroczystości (rgb(var(--…-rgb) / .3)) — akcent, baza (granat), odcień linii i cieni */
  --accent-rgb:255 66 1;
  --base-rgb:2 0 36;
  --tint-rgb:9 9 121;
  --navy-700:#090979;
  --navy-500:#1A1A9E;
  --grad-navy:linear-gradient(90deg, var(--navy-900) 0%, var(--navy-700) 100%);
  --grad-brand:linear-gradient(90deg, var(--navy-700) 0%, var(--navy-500) 55%, var(--accent) 100%);   /* np. duże „404”, pasek akcentu */
  --accent:#FF4201;                 /* ikony, obramowania, paski, focus (3,5:1 — dla grafiki) */
  --accent-dark:#C93200;            /* pomarańcz w tekście i linkach: 5,3:1 na białym */
  --accent-soft:rgb(var(--accent-rgb) / .10); /* delikatne tło wyróżnień */
  --accent-on-dark:#FF9466;         /* pomarańcz na granacie: 7:1 */
  --accent-fill:#C93200;            /* pomarańczowe wypełnienie z białym tekstem (aktywny filtr): 5,3:1 */
  --accent-fill-hover:#A62900;
  /* Przycisk główny: pomarańcz jak w serwisach ZDZ, o ton głębszy — biały tekst 4,7:1 (na #FF4201 byłoby 3,5:1) */
  --grad-cta:#D93600;
  --grad-cta-hover:#B82D00;
  --on-cta:#FFFFFF;
  --shadow-cta:0 4px 14px rgb(var(--accent-rgb) / .28);

  /* Tekst */
  --ink:#1A1A2E;                    /* nagłówki: 17:1 na białym */
  --ink-2:#26264A;                  /* mocny tekst, menu */
  --text:#4A4A6A;                   /* tekst główny: 8,9:1 */
  --muted:#626283;                  /* drobne napisy: 5,9:1 na białym, 5,2:1 na tle strony */

  /* Powierzchnie */
  --page:#F0F2FA;                   /* tło strony */
  --surface:#FFFFFF;                /* karty, panele, nagłówek */
  --surface-2:#F6F7FC;              /* pola formularzy, wiersze po najechaniu, sekcje naprzemienne */
  --line:rgb(var(--tint-rgb) / .12);
  --line-strong:rgb(var(--tint-rgb) / .26);
  --bar:var(--navy-900);
  --ghost:rgb(var(--tint-rgb) / .06);
  --ok-bg:#EAF7EF;  --err-bg:#FCEDEB;
  --error:#C42B1C;
  --success:#137547;
  --logo-filter:none;

  --radius:16px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --shadow:0 1px 2px rgb(var(--tint-rgb) / .05), 0 8px 24px rgb(var(--tint-rgb) / .08);
  --shadow-lg:0 8px 24px rgb(var(--tint-rgb) / .08), 0 32px 64px rgb(var(--tint-rgb) / .05);
  --wrap:1180px;

  /* Typografia: Montserrat (nagłówki, przyciski) + Open Sans (tekst) — jak w serwisach ZDZ */
  --font-body:"Open Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-head:"Montserrat", "Open Sans", system-ui, sans-serif;
  --fs-body:16px;      --lh-body:1.65;
  --fs-small:14px;     --fs-xs:12.5px;
  --fs-h1:clamp(28px, 3.6vw, 40px);
  --fs-h2:clamp(23px, 2.7vw, 30px);
  --fs-h3:clamp(17px, 1.6vw, 19px);
  --lh-head:1.2;       --ls-head:-.01em;
  /* Grubość nagłówków: 600 — czytelne, nie „ciężkie”; 700 tylko dla największych liczb i akcentów */
  --fw-head:600;       --fw-head-mocny:700;
  color-scheme: light;
}

/* ---------- 1b. Motyw ciemny — tylko z wyboru odwiedzającego ---------- */
:root[data-theme="dark"]{
  --accent-dark:#FF8A5C;            /* pomarańcz w tekście na ciemnym tle: 7:1 */
  --accent-soft:rgb(var(--accent-rgb) / .14);
  --accent-fill:#C93200;

  --ink:#E8E8F8;                    /* 15:1 na #0D0D38 */
  --ink-2:#D9D9F0;
  --text:#B9B9D3;                   /* 9,6:1 */
  --muted:#9696B8;                  /* 6,1:1 */

  --page:#010118;
  --surface:#0D0D38;
  --surface-2:#151545;
  --line:rgba(255,255,255,.10);
  --line-strong:rgba(255,255,255,.24);
  --ghost:rgba(255,255,255,.05);
  --ok-bg:rgba(74,222,128,.12);  --err-bg:rgba(255,122,107,.14);
  --error:#FF8A7D;
  --success:#5BE08F;
  --logo-filter:brightness(0) invert(1);   /* logo w bieli — jak w szukaj.zdz.kielce.pl */

  --shadow:0 1px 2px rgba(0,0,15,.4), 0 8px 24px rgba(0,0,15,.45);
  --shadow-lg:0 8px 32px rgb(var(--base-rgb) / .55), 0 32px 80px rgb(var(--base-rgb) / .45);
  color-scheme: dark;
}

*,*::before,*::after{ box-sizing:border-box; }
body{
  margin:0; background:var(--page); color:var(--text);
  font-family:var(--font-body); font-size:var(--fs-body); line-height:var(--lh-body); -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; height:auto; }
a{ color:var(--accent-dark); }
a:hover{ color:var(--accent); }
.wrap{ max-width:var(--wrap); margin:0 auto; padding-left:clamp(16px,3vw,24px); padding-right:clamp(16px,3vw,24px); }
.vh,.visually-hidden,.element-invisible{ position:absolute !important; width:1px; height:1px; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
:focus-visible{ outline:3px solid var(--accent); outline-offset:2px; border-radius:6px; }

/* Nagłówki w treści */
main h1,main h2,main h3{ color:var(--ink); line-height:var(--lh-head); text-wrap:balance; }
main h1{ font-family:var(--font-head); font-size:var(--fs-h1); font-weight:var(--fw-head); letter-spacing:var(--ls-head); margin:0 0 14px; }
main h2{ font-family:var(--font-head); font-size:var(--fs-h2); font-weight:var(--fw-head); letter-spacing:var(--ls-head); margin:28px 0 10px; }
main h3{ font-family:var(--font-head); font-size:var(--fs-h3); font-weight:600; letter-spacing:-.01em; margin:22px 0 8px; }

/* ---------- 2. Nagłówek ---------- */
.skip{
  position:absolute; left:8px; top:-60px; z-index:300;
  padding:10px 18px; background:var(--accent-fill); color:#fff;
  border-radius:0 0 8px 8px; font-size:14px; font-weight:600; text-decoration:none;
  transition:top .15s var(--ease);
}
.skip:focus{ top:0; color:#fff; }

.utility{ background:var(--grad-navy); color:rgba(255,255,255,.82); }
.utility .wrap{ display:flex; align-items:center; justify-content:space-between; gap:6px; min-height:36px; }
.utility__list{ margin-left:auto !important; }
.utility__list{ display:flex; align-items:center; gap:4px; margin:0; padding:0; list-style:none; }
/* Menu górne (Aktualności, O ZDZ, BIP, E-dziennik…) */
.utility-nav{ display:flex; align-items:center; gap:2px; margin:0; padding:0; list-style:none; }
.utility-nav a{ display:inline-flex; padding:6px 10px; border-radius:999px; color:rgba(255,255,255,.78); font-size:12.5px; font-weight:600; text-decoration:none; transition:background .15s var(--ease), color .15s var(--ease); }
.utility__nav .utility-nav{ margin-left:-10px; }
.utility-nav a:hover,.utility-nav a[aria-current]{ background:rgba(255,255,255,.12); color:#fff; }
.nav__extra{ display:none; }
@media (max-width:1100px){
  .utility__nav{ display:none; }
  /* W rozwiniętym menu na telefonie: drugorzędne linki pod przyciskiem „Zapisz się” */
  .menu.is-open ~ .nav__extra{ display:block; width:100%; padding:0 0 16px; }
  .nav__extra .utility-nav{ flex-wrap:wrap; gap:4px 8px; }
  .nav__extra .utility-nav a{ padding:10px 4px; color:var(--ink-2); font-size:14.5px; }
  .nav__extra .utility-nav a:hover{ background:none; color:var(--accent-dark); }
}
.utility__link{
  display:inline-flex; align-items:center; gap:7px; padding:6px 10px; border-radius:999px;
  background:none; border:0; color:inherit; font:inherit; font-size:12.5px; font-weight:600;
  text-decoration:none; cursor:pointer; transition:background .15s var(--ease), color .15s var(--ease);
}
.utility__link:hover{ background:rgba(255,255,255,.12); color:#fff; }
.utility__link svg{ width:16px; height:16px; flex:0 0 auto; }
/* „Szukaj” wyróżnione: pogrubione, z ikoną w kolorze akcentu */
.utility__link--szukaj{ color:#fff; font-weight:700; }
.utility__link--szukaj svg{ color:var(--accent); }
/* Przełącznik motywu: księżyc w jasnym, słońce w ciemnym */
.utility__link--motyw .ikona-slonce{ display:none; }
:root[data-theme="dark"] .utility__link--motyw .ikona-slonce{ display:block; }
:root[data-theme="dark"] .utility__link--motyw .ikona-ksiezyc{ display:none; }
[data-motyw-li][hidden]{ display:none; }
@media (max-width:600px){ .utility__link span{ display:none; } .utility__link{ padding:7px 9px; } }

.searchbar{ display:none; padding:18px 0 22px; background:var(--grad-navy); border-top:1px solid rgba(255,255,255,.1); }
.searchbar.is-open{ display:block; }
/* Wyszukiwarka z zakładkami w panelu „Szukaj” — biała karta na ciemnym pasku */
.searchbar .k-hub{ margin:0; box-shadow:0 18px 48px rgba(0,0,0,.35); }
/* Proste pole zapasowe (bez komponentu katalogu) */
.searchbar .wrap > form{ display:flex; gap:8px; max-width:560px; }
.searchbar .wrap > form input{
  flex:1 1 auto; min-width:0; height:42px; padding:0 14px;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.2); border-radius:8px;
  color:#fff; font:inherit; font-size:15px;
}
.searchbar .wrap > form input::placeholder{ color:rgba(255,255,255,.5); }
.searchbar .wrap > form input:focus{ outline:none; border-color:var(--accent); background:rgba(255,255,255,.12); }
.searchbar .wrap > form button{
  height:42px; padding:0 20px; background:var(--grad-cta); border:0; border-radius:8px;
  color:var(--on-cta); font:inherit; font-size:14px; font-weight:600; cursor:pointer;
}

.brandbar .wrap{ display:flex; align-items:center; gap:14px clamp(16px,3vw,32px); padding-top:14px; padding-bottom:14px; }
/* Oficjalne logo ZDZ (PNG 272×42) — nie powiększamy, żeby nie traciło ostrości */
.brandbar__logo img{ height:42px; width:auto; max-width:100%; display:block; filter:var(--logo-filter); }
.brandbar{ background:var(--surface); }
.brandbar__logo{ flex:0 0 auto; }
.brandbar__logo picture, .blad__logo picture{ display:block; }

/* Wyszukiwarka w nagłówku — pastylka z przyciskiem; prowadzi do globalnej wyszukiwarki (/szukaj?q=…) */
.hsearch{
  position:relative; flex:1 1 auto; display:flex; align-items:center; max-width:520px; margin:0 auto; padding:4px;
  border-radius:999px; background:var(--surface-2); border:1px solid var(--line);
  transition:border-color .18s var(--ease), box-shadow .18s var(--ease), background .18s var(--ease);
}
.hsearch:hover{ border-color:var(--line-strong); }
.hsearch:focus-within{ border-color:var(--accent); background:var(--surface); box-shadow:0 0 0 4px var(--accent-soft); }
.hsearch__ikona{ position:absolute; left:18px; width:18px; height:18px; color:var(--muted); pointer-events:none; }
.hsearch input{ flex:1 1 auto; min-width:0; height:40px; padding:0 12px 0 42px; border:0; background:none; color:var(--ink); font:inherit; font-size:15px; }
.hsearch input::placeholder{ color:var(--muted); }
.hsearch input:focus{ outline:none; }
.hsearch__btn{
  flex:0 0 auto; height:40px; padding:0 20px; border:0; border-radius:999px; background:var(--navy-900); color:#fff;
  font:inherit; font-size:14px; font-weight:700; cursor:pointer; transition:background .18s var(--ease);
}
.hsearch__btn:hover{ background:var(--grad-cta); }
.hsearch__btn:focus-visible{ outline:3px solid var(--accent); outline-offset:2px; }
:root[data-theme="dark"] .hsearch__btn{ background:rgba(255,255,255,.14); }

.brandbar__akcje{ flex:0 0 auto; display:flex; align-items:center; gap:10px; }
.hikona{
  display:grid; place-items:center; width:44px; height:44px; padding:0; border-radius:50%;
  background:var(--surface); border:1px solid var(--line-strong); color:var(--ink-2); cursor:pointer;
  transition:border-color .18s var(--ease), color .18s var(--ease), background .18s var(--ease);
}
.hikona:hover{ border-color:var(--accent); color:var(--accent-dark); }
.hikona svg{ width:19px; height:19px; }

.nav{ position:relative; z-index:100; background:var(--surface); border-top:1px solid var(--line); border-bottom:1px solid var(--line); transition:box-shadow .2s var(--ease), background .2s var(--ease); }
/* Przyklejony nagłówek (template.js ustawia --naglowek-gora = minus wysokość paska narzędzi i paska z logo) */
@media (min-width:1101px){
  header.js-sticky{ position:sticky; top:var(--naglowek-gora, 0); z-index:100; }
  html:has(header.js-sticky){ scroll-padding-top:76px; }
}
.nav.is-stuck{ background:color-mix(in srgb, var(--surface) 86%, transparent); -webkit-backdrop-filter:saturate(1.6) blur(14px); backdrop-filter:saturate(1.6) blur(14px); box-shadow:0 6px 22px rgb(var(--base-rgb) / .10); }
.nav .wrap{ display:flex; align-items:center; gap:10px; }
/* Znak ZDZ: pojawia się w przyklejonym menu na komputerze, gdy logo jest poza ekranem */
.nav__znak{ display:none; }
@media (min-width:1101px){
  .nav__znak{ display:block; flex:0 0 auto; width:0; margin-right:-10px; overflow:hidden; opacity:0; transition:width .25s var(--ease), opacity .2s var(--ease), margin .25s var(--ease); }
  .nav__znak img{ display:block; width:34px; height:34px; max-width:none; border-radius:9px; }
  .nav.is-stuck .nav__znak{ width:34px; margin-right:8px; opacity:1; }
}
.nav__toggle{
  display:none; align-items:center; gap:9px; margin:9px 0; padding:9px 14px;
  background:var(--surface-2); border:1px solid var(--line); border-radius:9px;
  color:var(--ink); font:inherit; font-size:14px; font-weight:600; cursor:pointer;
}
.nav__toggle svg{ width:18px; height:18px; }
/* Menu główne: każda pozycja to link do strony; strzałka obok rozwija podmenu */
.menu{ position:relative; flex:1 1 auto; display:flex; flex-wrap:wrap; align-items:center; margin:0; padding:0; list-style:none; }
/* Pozycje bez własnego pozycjonowania — panele podmenu liczą się względem całego paska menu
   (od lewej krawędzi treści do przycisku „Zapisz się”), więc mają pełną szerokość treści */
.menu__item{ position:static; display:flex; align-items:center; }
.menu__link{
  position:relative; z-index:0;
  display:inline-flex; align-items:center; min-height:58px; padding:0 14px;
  color:var(--ink-2); font-size:15px; font-weight:600;
  text-decoration:none; white-space:nowrap;
  transition:color .15s var(--ease);
}
.menu__item[data-dd] > .menu__link{ padding-right:4px; }
.menu__link::after{
  content:""; position:absolute; left:14px; right:14px; bottom:0; height:3px;
  background:var(--accent); border-radius:3px 3px 0 0;
  transform:scaleX(0); transition:transform .2s var(--ease);
}
.menu__item[data-dd] > .menu__link::after{ right:4px; }
/* Najechanie i otwarte podmenu: pastylka pod tekstem (razem ze strzałką); bieżąca strona — kreska akcentu */
.menu__link::before{
  content:""; position:absolute; inset:11px 4px; z-index:-1; border-radius:10px; background:var(--surface-2);
  opacity:0; transform:scale(.94); transition:opacity .16s var(--ease), transform .16s var(--ease);
}
.menu__item[data-dd] > .menu__link::before{ right:-32px; }
.menu__link:hover::before,.menu__item.is-open > .menu__link::before{ opacity:1; transform:none; }
/* Pierwsza pozycja równo z lewą krawędzią treści (logo) — bez wcięcia */
.menu > .menu__item:first-child > .menu__link{ padding-left:0; }
.menu > .menu__item:first-child > .menu__link::after{ left:0; }
.menu > .menu__item:first-child > .menu__link::before{ left:-10px; }
.menu__link:hover,.menu__item.is-open > .menu__link{ color:var(--ink); }
.menu__item.is-current > .menu__link{ color:var(--accent-dark); }
.menu__item.is-current > .menu__link::after{ transform:scaleX(1); }
.menu__toggle{
  position:relative; z-index:1;
  display:grid; place-items:center; width:30px; height:30px; margin-right:6px; padding:0;
  background:none; border:0; border-radius:7px; color:var(--ink-2); cursor:pointer;
  transition:background .15s var(--ease), color .15s var(--ease);
}
.menu__toggle:hover,.menu__item.is-open > .menu__toggle{ color:var(--accent-dark); }
.menu__chev{ width:13px; height:13px; transition:transform .2s var(--ease); }
.menu__item.is-open .menu__chev{ transform:rotate(180deg); }
/* Przycisk wezwania do działania (pozycja z klasą „przycisk”) */
.menu__item--cta{ margin-left:auto; padding-left:10px; }
.menu__cta{
  display:inline-flex; align-items:center; gap:8px; min-height:42px; padding:0 20px; border-radius:9px;
  background:var(--grad-cta); color:var(--on-cta); font-size:15px; font-weight:700; text-decoration:none; white-space:nowrap;
  box-shadow:var(--shadow-cta); transition:background .15s var(--ease), transform .15s var(--ease);
}
.menu__cta::after{ content:"→"; transition:transform .15s var(--ease); }
.menu__cta:hover{ background:var(--grad-cta-hover); color:var(--on-cta); }
.menu__cta:hover::after{ transform:translateX(3px); }

/* Panel podmenu — na pełną szerokość treści (od lewej krawędzi menu do prawej krawędzi przycisku „Zapisz się”).
   Kursy: linki, wyszukiwarka i kategorie; pozostałe: linki w kolumnach. Opcjonalnie karta promocyjna po prawej. */
.mega{
  position:absolute; top:calc(100% + 8px); left:0; right:0; z-index:110;
  display:grid; grid-template-columns:minmax(220px,1fr) minmax(0,2.4fr); gap:0 48px;
  padding:28px 30px;
  background:var(--surface); border:1px solid var(--line); border-radius:20px;
  box-shadow:0 24px 60px rgb(var(--base-rgb) / .18), 0 2px 6px rgb(var(--base-rgb) / .05);
  opacity:0; visibility:hidden; transform:translateY(-6px);
  transition:opacity .18s var(--ease), transform .18s var(--ease), visibility .18s;
}
.menu__item.is-open > .mega{ opacity:1; visibility:visible; transform:none; }
.mega::before{ content:""; position:absolute; left:0; right:0; top:-10px; height:10px; }
/* Komputer: panel liczony od całego paska treści (.nav .wrap), nie od listy menu — w przyklejonym menu lista przesuwa się
   o znak ZDZ, a panel ma zostać na pełnej szerokości treści. Doklejony do dolnej krawędzi paska, bez przerwy. */
@media (min-width:1101px){
  .nav .wrap{ position:relative; }
  .menu{ position:static; }
  .mega{ top:calc(100% + 1px); border-top:0; border-radius:0 0 20px 20px; transform:translateY(-4px); }
  .mega::before{ top:-12px; height:12px; }
}
.mega__label{ margin:0 0 10px; font-size:11.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.mega__list,.mega__grid{ margin:0; padding:0; list-style:none; }
.mega__grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 28px; align-content:start; }
/* Tekst linku zaczyna się równo z etykietą kolumny; tło po najechaniu wychodzi na zewnątrz (ujemny margines) */
.mega__link{
  display:block; margin:0 -10px; padding:8px 10px; border-radius:8px; color:var(--ink-2); font-size:14.5px; line-height:1.35;
  text-decoration:none; transition:background .14s var(--ease), color .14s var(--ease);
}
.mega--lista{ grid-template-columns:minmax(0,1fr); }
.mega--lista .mega__grid--lista{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.mega__link.is-strong{ font-weight:700; color:var(--ink); }
.mega__link:hover,.mega__link[aria-current]{ background:var(--accent-soft); color:var(--accent-dark); }
.mega__search{ display:flex; margin:14px 0 0; border:1px solid var(--line); border-radius:9px; overflow:hidden; background:var(--surface-2); }
.mega__search:focus-within{ border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
.mega__search input{ flex:1 1 auto; min-width:0; height:42px; padding:0 12px; border:0; background:none; color:var(--ink); font:inherit; font-size:14.5px; }
.mega__search input:focus{ outline:none; }
.mega__search button{ flex:0 0 44px; display:grid; place-items:center; border:0; background:var(--accent-fill); color:#fff; cursor:pointer; }
.mega__search svg{ width:18px; height:18px; }

/* Karta promocyjna w panelu menu (podpozycja z klasą „promo”) — ostatnia kolumna */
.mega--promo{ grid-template-columns:minmax(220px,1fr) minmax(0,2.4fr) 280px; }
.mega--lista.mega--promo{ grid-template-columns:minmax(0,1fr) 280px; }
.mega--promo .mega__grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.mega--lista.mega--promo .mega__grid--lista{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.mpromo{
  position:relative; display:flex; flex-direction:column; gap:6px; height:100%; padding:18px; overflow:hidden; isolation:isolate;
  border-radius:12px; background:var(--grad-navy); color:#fff; text-decoration:none;
}
.mpromo::before{ content:""; position:absolute; right:-34px; top:-34px; z-index:-1; width:130px; height:130px; border-radius:50%; background:rgb(var(--accent-rgb) / .28); }
.mpromo__img{ display:block; width:calc(100% + 36px); max-width:none; height:96px; margin:-18px -18px 8px; object-fit:cover; }
.mpromo__eyebrow{ font-size:11px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--accent-on-dark); }
.mpromo__title{ font-family:var(--font-head); font-size:17px; letter-spacing:-.01em; line-height:1.15; font-weight:var(--fw-head); color:#fff; text-wrap:balance; }
.mpromo__text{ font-size:13px; line-height:1.45; color:rgba(255,255,255,.82); }
.mpromo__cta{ display:inline-flex; align-items:center; gap:6px; margin-top:auto; padding-top:8px; font-size:13.5px; font-weight:700; color:#fff; }
.mpromo__cta::after{ content:"→"; transition:transform .15s var(--ease); }
.mpromo:hover .mpromo__cta::after{ transform:translateX(4px); }
.mpromo:hover{ color:#fff; }
.mpromo:focus-visible{ outline:3px solid var(--accent); outline-offset:2px; }

@media (max-width:1100px){
  .brandbar .wrap{ flex-wrap:wrap; padding-top:12px; padding-bottom:12px; }
  .brandbar__akcje{ margin-left:auto; }
  .hsearch{ order:3; flex:1 1 100%; max-width:none; }
  .nav__toggle{ display:inline-flex; }
  .nav .wrap{ flex-wrap:wrap; }
  .menu{ display:none; flex-direction:column; align-items:stretch; width:100%; padding:6px 0 16px; border-top:1px solid var(--line); }
  .menu.is-open{ display:flex; }
  .menu__item{ flex-wrap:wrap; border-bottom:1px solid var(--line); }
  .menu__link{ flex:1 1 auto; min-height:50px; padding:0 4px; font-size:16px; }
  .menu__item[data-dd] > .menu__link{ padding-right:4px; }
  .menu__link::after{ display:none; }
  .menu__toggle{ width:48px; height:48px; margin:0; }
  .mega{
    position:static; flex:0 0 100%; width:auto; min-width:0; max-width:none; margin:0 0 10px 6px; padding:2px 0 4px 12px;
    border:0; border-left:2px solid var(--accent-soft); border-radius:0; box-shadow:none;
    display:none; opacity:1; visibility:visible; transform:none;
  }
  .menu__item.is-open > .mega{ display:grid; grid-template-columns:1fr; gap:14px; }
  .mega__grid,.mega--lista .mega__grid--lista,.mega--promo .mega__grid,.mega--lista.mega--promo .mega__grid--lista{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .menu__link::before{ display:none; }
  .mega__label{ margin-top:6px; }
  .mega__link{ padding:11px 10px; font-size:15px; }
  .menu > .menu__item:first-child > .menu__link{ padding-left:4px; }
  .menu__item--cta{ margin:14px 0 0; padding:0; border-bottom:0; }
  .menu__cta{ flex:1 1 auto; justify-content:center; min-height:48px; }
}
@media (max-width:520px){ .mega__grid,.mega--lista .mega__grid--lista,.mega--promo .mega__grid,.mega--lista.mega--promo .mega__grid--lista{ grid-template-columns:1fr; } }
@media (max-width:640px){
  .brandbar__logo img{ height:34px; }
      .hsearch__btn{ padding:0 14px; }
}
/* Między szerokością tabletu a pełnym ekranem: przy karcie promocyjnej linki w dwóch kolumnach */
@media (min-width:1101px) and (max-width:1240px){ .mega--lista.mega--promo .mega__grid--lista{ grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* Podmenu bez kategorii (Dla dzieci, Dla ucznia, Dla firm): panel na całą szerokość treści, linki w jednej kolumnie,
   karta promocyjna (gradient) zajmuje resztę miejsca. Panel z kategoriami (Kursy) bez zmian. Nagłówek pierwotny — dawne panele. */
@media (min-width:1101px){
  body:not(.naglowek-pierwotny) .mega--lista{ grid-template-columns:minmax(260px,max-content); gap:0 32px; }
  body:not(.naglowek-pierwotny) .mega--lista.mega--promo{ grid-template-columns:minmax(260px,max-content) minmax(0,1fr); }
  body:not(.naglowek-pierwotny) .mega--lista .mega__grid--lista,
  body:not(.naglowek-pierwotny) .mega--lista.mega--promo .mega__grid--lista{ grid-template-columns:1fr; gap:2px; }
  body:not(.naglowek-pierwotny) .mega--lista .mega__label{ margin-bottom:8px; }
  /* Link w liście: strzałka pojawia się przy najechaniu */
  body:not(.naglowek-pierwotny) .mega--lista .mega__link{ display:flex; align-items:center; justify-content:space-between; gap:24px; padding:10px 12px; margin:0 -12px; }
  body:not(.naglowek-pierwotny) .mega--lista .mega__link::after{ content:"→"; opacity:0; transform:translateX(-4px); transition:opacity .15s var(--ease), transform .15s var(--ease); }
  body:not(.naglowek-pierwotny) .mega--lista .mega__link:hover::after,
  body:not(.naglowek-pierwotny) .mega--lista .mega__link[aria-current]::after{ opacity:1; transform:none; }
  /* Karta promocyjna na całą resztę panelu: treść u dołu, zdjęcie (jeśli jest) jako tło po prawej */
  body:not(.naglowek-pierwotny) .mega--lista .mega__col--promo{ display:flex; }
  body:not(.naglowek-pierwotny) .mega--lista .mpromo{
    flex:1 1 auto; justify-content:flex-end; gap:8px; min-height:100%; padding:28px 30px; border-radius:16px;
    background:radial-gradient(420px 260px at 100% 0%, rgb(var(--accent-rgb) / .35), transparent 70%), var(--grad-navy);
  }
  body:not(.naglowek-pierwotny) .mega--lista .mpromo::before{ right:-60px; top:-60px; width:220px; height:220px; background:rgb(var(--accent-rgb) / .18); }
  body:not(.naglowek-pierwotny) .mega--lista .mpromo__img{ position:absolute; inset:0 0 0 auto; z-index:-1; width:50%; height:100%; margin:0; object-fit:cover; opacity:.35;
    -webkit-mask-image:linear-gradient(90deg, transparent, #000 60%); mask-image:linear-gradient(90deg, transparent, #000 60%); }
  body:not(.naglowek-pierwotny) .mega--lista .mpromo__title{ max-width:22ch; font-size:22px; }
  body:not(.naglowek-pierwotny) .mega--lista .mpromo__text{ max-width:46ch; font-size:14.5px; }
  body:not(.naglowek-pierwotny) .mega--lista .mpromo__cta{ align-self:flex-start; margin-top:6px; padding:9px 16px; border-radius:10px; background:var(--grad-cta); }
  /* Kursy: kolumna linków też jako lista ze strzałkami */
  body:not(.naglowek-pierwotny) .menu__item--mega .mega__list .mega__link{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
  body:not(.naglowek-pierwotny) .menu__item--mega .mega__list .mega__link::after{ content:"→"; opacity:0; transition:opacity .15s var(--ease); }
  body:not(.naglowek-pierwotny) .menu__item--mega .mega__list .mega__link:hover::after{ opacity:1; }
}

/* ---------- 3. Układ strony ---------- */
.page-pad{ padding-block:36px 56px; }
.crumbs + .page-pad{ padding-top:20px; }

.pagehead{ margin:0 0 26px; }
.pagehead__eyebrow{ margin:0 0 8px; font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--accent-dark); }
.pagehead__eyebrow a{ color:inherit; text-decoration:none; }
.pagehead__eyebrow a:hover{ text-decoration:underline; text-underline-offset:3px; }
main .pagehead__title{
  margin:0 0 10px; font-family:var(--font-head);
  font-size:var(--fs-h1); line-height:1.18; font-weight:var(--fw-head);
  letter-spacing:var(--ls-head); color:var(--ink); text-wrap:balance;
}
.pagehead__sub{ margin:0; max-width:60ch; font-size:16px; color:var(--text); }

.section{ padding-block:clamp(40px,5vw,64px); }
.section--alt{ background:var(--surface); }   /* białe pasy na jasnym tle strony — jak karty w serwisach ZDZ */
.section__head{ margin:0 0 24px; }
.section__eyebrow{ margin:0 0 8px; font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--accent-dark); }
main .section__title{
  margin:0 0 8px; font-family:var(--font-head);
  font-size:var(--fs-h2); line-height:1.18; font-weight:var(--fw-head);
  letter-spacing:var(--ls-head); color:var(--ink); text-wrap:balance;
}
.section__sub{ margin:0; max-width:60ch; font-size:16px; color:var(--text); }
.zdz-modul + .zdz-modul{ margin-top:40px; }

/* Granatowy pas (pozycja middle-a): jasny tekst, pomarańczowy nadtytuł w jaśniejszym odcieniu */
.section--navy{ position:relative; overflow:hidden; background:var(--grad-navy); color:rgba(255,255,255,.82); }
.section--navy::before{ content:""; position:absolute; right:-160px; top:-160px; width:480px; height:480px; border-radius:50%; background:radial-gradient(circle, rgb(var(--accent-rgb) / .22), transparent 68%); pointer-events:none; }
.section--navy .wrap{ position:relative; }
.section--navy .section__eyebrow{ color:var(--accent-on-dark); }
main .section--navy .section__title{ color:#fff; }
.section--navy .section__sub{ color:rgba(255,255,255,.82); }

/* Sekcja „Dlaczego ZDZ” (mod_zdz_dlaczego) */
.why{ display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:40px 56px; align-items:start; }
.why--bez-liczb{ grid-template-columns:1fr; }
.why__lead{ margin-bottom:26px; }
.why__list{ display:grid; gap:20px; margin:0; padding:0; list-style:none; }
.why--bez-liczb .why__list{ grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); }
.why__item{ display:flex; gap:16px; align-items:flex-start; }
.why__icon{ flex:0 0 auto; display:grid; place-items:center; width:44px; height:44px; border-radius:12px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14); color:var(--accent-on-dark); }
.why__icon svg{ width:22px; height:22px; }
main .why__title{ margin:2px 0 4px; font-family:inherit; font-size:16.5px; line-height:1.3; font-weight:600; color:#fff; letter-spacing:0; }
.why__desc{ margin:0; font-size:14.5px; line-height:1.55; color:rgba(255,255,255,.75); }
.why__cta{ margin:28px 0 0; }
.why__stats{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:0; }
.why__stat{ display:flex; flex-direction:column; gap:6px; padding:24px 22px; border-radius:18px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); }
.why__stat:first-child{ background:var(--grad-cta); border-color:transparent; } /* granatowy tekst na gradiencie CTA: 5,6:1+ */
.why__num{ margin:0; font-family:var(--font-head); font-size:clamp(32px,3.4vw,44px); letter-spacing:var(--ls-head); line-height:1; font-weight:var(--fw-head); color:#fff; font-variant-numeric:tabular-nums; }
.why__label{ margin:0; font-size:14px; line-height:1.4; color:rgba(255,255,255,.8); }
.why__stat:first-child .why__num,.why__stat:first-child .why__label{ color:var(--on-cta); }
@media (max-width:900px){ .why{ grid-template-columns:1fr; } }
@media (max-width:340px){ .why__stats{ grid-template-columns:1fr; } }

/* „Dlaczego ZDZ” — układ kafelkowy (mod_zdz_dlaczego, domyślny): nagłówek z tekstem obok, numerowane powody,
   pomarańczowy panel z wyborem miasta (template.js — [data-zb]) i karty z liczbami. Pas granatowy (middle-a). */
.zb__head{ display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:14px 56px; align-items:end; margin-bottom:32px; }
main .zb__title{ margin:0; font-size:clamp(28px,3.8vw,46px); line-height:1.05; color:#fff; }
.zb__lead{ margin:0; max-width:56ch; font-size:16.5px; line-height:1.6; color:rgba(255,255,255,.82); }
.zb__powody{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin:0 0 16px; padding:0; list-style:none; }
.zb__powod{
  display:flex; gap:14px; align-items:flex-start; padding:20px; border-radius:16px;
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.12);
  transition:border-color .2s var(--ease), background .2s var(--ease);
}
.zb__powod:hover{ background:rgba(255,255,255,.08); border-color:rgba(255,148,102,.45); }
.zb__nr{
  flex:0 0 auto; display:grid; place-items:center; width:34px; height:34px; border-radius:9px;
  background:rgb(var(--accent-rgb) / .16); border:1px solid rgb(var(--accent-rgb) / .4); color:var(--accent-on-dark);
  font-size:13px; font-weight:700; font-variant-numeric:tabular-nums; letter-spacing:.02em;
}
main .zb__powod-tytul{ margin:4px 0 4px; font-family:var(--font-head); font-size:16px; line-height:1.3; font-weight:var(--fw-head); color:#fff; letter-spacing:0; }
.zb__powod-opis{ margin:0; font-size:14px; line-height:1.5; color:rgba(255,255,255,.75); }

.zb__bento{ display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,.5fr) minmax(0,.5fr); gap:16px; }
.zb__panel{
  grid-row:1 / span 2; display:flex; flex-direction:column; padding:clamp(24px,3vw,36px); border-radius:24px; color:#fff;
  background:radial-gradient(circle at 60% 18%, rgba(255,255,255,.12), transparent 42%), linear-gradient(140deg, var(--grad-cta) 0%, var(--grad-cta-hover) 100%);
  box-shadow:0 28px 60px -28px rgb(var(--accent-rgb) / .6), inset 0 0 0 1px rgba(255,255,255,.14);
}
.zb__panel p{ margin:0; }
.zb__panel-top{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:10px 16px; }
.zb__chip-tytul{
  padding:6px 12px; border-radius:999px; background:rgb(var(--base-rgb) / .28); border:1px solid rgba(255,255,255,.28);
  font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
}
.zb__zakres{ font-size:13px; font-weight:700; letter-spacing:.04em; }
.zb__panel .zb__duza{ display:flex; flex-wrap:wrap; align-items:flex-end; gap:6px 20px; margin:28px 0; }
.zb__duza-liczba{ font-family:var(--font-head); font-size:clamp(60px,7.4vw,100px); line-height:.86; font-weight:var(--fw-head); letter-spacing:var(--ls-head); font-variant-numeric:tabular-nums; }
.zb__duza-opis{ display:flex; flex-direction:column; gap:4px; padding-bottom:4px; }
.zb__duza-opis strong{ font-family:var(--font-head); font-size:clamp(20px,2.2vw,26px); line-height:1.15; font-weight:var(--fw-head); }
.zb__duza-opis span{ font-size:14.5px; }
.zb__miasta{ padding:22px 0; border-top:1px solid rgba(255,255,255,.3); border-bottom:1px solid rgba(255,255,255,.3); }
.zb__panel .zb__miasta-tytul{ margin:0 0 12px; font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.zb__chipy{ display:flex; flex-wrap:wrap; gap:8px; }
.zb__chip,.zb__inne select{
  min-height:38px; padding:0 14px; border-radius:10px; border:1px solid rgba(255,255,255,.32); background:rgb(var(--base-rgb) / .24);
  color:#fff; font:inherit; font-size:14px; font-weight:600; cursor:pointer;
  transition:background .18s var(--ease), color .18s var(--ease), border-color .18s var(--ease);
}
.zb__chip:hover,.zb__inne select:hover{ background:rgb(var(--base-rgb) / .4); border-color:rgba(255,255,255,.6); }
.zb__chip[aria-pressed="true"],.zb__inne select.is-active{ background:#fff; border-color:#fff; color:var(--navy-900); }
.zb__chip:focus-visible,.zb__inne select:focus-visible,.zb__panel a:focus-visible{ outline:3px solid #fff; outline-offset:2px; }
.zb__inne select{ padding-right:10px; }
.zb__inne select option{ color:var(--navy-900); background:#fff; }
.zb__panel-stopka{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:14px 20px; margin-top:auto; padding-top:22px; }
.zb__link{ color:#fff; font-size:14.5px; font-weight:600; text-decoration:underline; text-underline-offset:4px; text-decoration-color:rgba(255,255,255,.5); }
.zb__link:hover{ color:#fff; text-decoration-color:#fff; }
.zb__btn{
  display:inline-flex; align-items:center; gap:8px; min-height:48px; padding:0 22px; border-radius:11px;
  background:var(--navy-900); color:#fff; font-size:14px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; text-decoration:none;
  transition:background .18s var(--ease), transform .18s var(--ease);
}
.zb__btn:hover{ background:var(--navy-700); color:#fff; transform:translateY(-1px); }

.zb__karta{
  display:flex; flex-direction:column; gap:6px; padding:24px 26px; border-radius:20px;
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.12);
}
.zb__karta p{ margin:0; }
.zb__karta--terminy{ grid-column:2 / span 2; background:linear-gradient(160deg, rgba(255,255,255,.08), rgba(255,255,255,.03)); }
.zb__karta-top{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:8px 12px; }
.zb__etykieta{ font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.72); }
.zb__karta--terminy .zb__etykieta{ color:var(--accent-on-dark); }
.zb__znacznik{ padding:4px 10px; border-radius:7px; background:rgba(74,222,128,.14); border:1px solid rgba(74,222,128,.32); color:#86EFAC; font-size:12px; font-weight:700; }
.zb__karta .zb__wiersz{ display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 16px; margin:12px 0 8px; }
.zb__liczba{ font-family:var(--font-head); font-size:clamp(40px,4.4vw,60px); line-height:1; font-weight:var(--fw-head); letter-spacing:var(--ls-head); color:#fff; font-variant-numeric:tabular-nums; }
.zb__karta > .zb__liczba{ padding-top:12px; }
.zb__liczba--akcent{ color:var(--accent); }
.zb__opis{ font-size:15.5px; color:rgba(255,255,255,.86); }
.zb__tekst{ font-size:14.5px; line-height:1.55; color:rgba(255,255,255,.72); }
.zb__cta{ margin:8px 0 0; }

.zb__bento.is-zmiana [data-zb-kursy],.zb__bento.is-zmiana .zb__liczba{ animation:zb-zmiana .4s var(--ease); }
@keyframes zb-zmiana{ from{ opacity:.15; transform:translateY(6px); } to{ opacity:1; transform:none; } }

@media (max-width:1100px){
  .zb__powody{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .zb__bento{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .zb__panel,.zb__karta--terminy{ grid-column:1 / -1; grid-row:auto; }
}
@media (max-width:760px){ .zb__head{ grid-template-columns:1fr; } }
@media (max-width:560px){
  .zb__powody{ grid-template-columns:1fr; }
  .zb__powod{ padding:16px; }
  .zb__karta{ padding:20px; }
  .zb__panel-stopka{ flex-direction:column-reverse; align-items:stretch; text-align:center; }
  .zb__btn{ justify-content:center; }
}
@media (max-width:380px){ .zb__bento{ grid-template-columns:1fr; } }

/* Pytania i odpowiedzi (mod_zdz_faq): <details> + ramka kontaktu */
.faq{ display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:28px 40px; align-items:start; }
.faq--bez-kontaktu{ grid-template-columns:minmax(0,860px); }
.faq__list{ display:grid; gap:10px; }
.faq__item{ background:var(--surface); border:1px solid var(--line); border-radius:14px; transition:border-color .2s var(--ease), box-shadow .2s var(--ease); }
.faq__item[open]{ border-color:rgb(var(--accent-rgb) / .3); box-shadow:var(--shadow); }
.faq__q{
  display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 20px; cursor:pointer; list-style:none;
  font-size:16.5px; font-weight:700; line-height:1.35; color:var(--ink);
}
.faq__q::-webkit-details-marker{ display:none; }
.faq__q:hover{ color:var(--accent-dark); }
.faq__q:focus-visible{ outline:3px solid var(--accent); outline-offset:-3px; border-radius:14px; }
.faq__ico{ flex:0 0 auto; width:32px; height:32px; padding:7px; border-radius:50%; background:var(--accent-soft); fill:none; stroke:var(--accent-dark); stroke-width:2.6; stroke-linecap:round; stroke-linejoin:round; transition:transform .2s var(--ease), background .2s var(--ease); }
.faq__item[open] .faq__ico{ transform:rotate(180deg); background:var(--accent); stroke:#fff; }
.faq__a{ padding:0 20px 20px; font-size:15px; line-height:1.65; color:var(--text); }
.faq__a > :first-child{ margin-top:0; } .faq__a > :last-child{ margin-bottom:0; }
.faq__aside{ position:sticky; top:20px; padding:24px; border-radius:18px; background:var(--grad-navy); color:rgba(255,255,255,.82); }
main .faq__aside-title{ margin:0 0 6px; font-family:var(--font-head); font-size:21px; line-height:1.15; font-weight:var(--fw-head); color:#fff; letter-spacing:0; }
.faq__aside-text{ margin:0 0 16px; font-size:14.5px; line-height:1.55; }
.faq__contact{ display:grid; gap:10px; margin:0 0 18px; padding:0; list-style:none; }
.faq__contact a{ display:flex; align-items:center; gap:10px; color:#fff; font-weight:700; text-decoration:none; overflow-wrap:anywhere; }
.faq__contact a:hover{ color:var(--accent-on-dark); }
.faq__contact svg{ flex:0 0 auto; width:36px; height:36px; padding:8px; border-radius:10px; background:rgba(255,255,255,.1); fill:none; stroke:var(--accent-on-dark); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.faq__btn{ width:100%; }
@media (max-width:900px){ .faq{ grid-template-columns:1fr; } .faq__aside{ position:static; } }
@media (max-width:600px){ .faq__q{ padding:16px; font-size:15.5px; } .faq__a{ padding:0 16px 16px; } }
@media (prefers-reduced-motion:reduce){ .faq__ico{ transition:none; } }

/* Pytania i odpowiedzi — układ dzielony (mod_zdz_faq, domyślny): po lewej przyklejony tytuł, wstęp i kontakt,
   po prawej numerowane pytania rozdzielone liniami; ikona plus → minus, płynne rozwijanie (::details-content). */
.fq{ display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr); gap:32px clamp(32px,5vw,72px); align-items:start; }
.fq__bok{ position:sticky; top:96px; }
.fq__bok-wnetrze{ display:flex; flex-direction:column; gap:14px; }
.fq__bok-wnetrze .section__eyebrow{ margin:0; }
main .fq__tytul{ margin:0; font-size:clamp(28px,3.4vw,42px); line-height:1.08; }
.fq__wstep{ margin:0; max-width:40ch; font-size:16.5px; line-height:1.6; color:var(--text); }

.fq__kontakt{
  position:relative; overflow:hidden; isolation:isolate; margin-top:14px; padding:24px; border-radius:22px;
  background:var(--grad-navy); color:rgba(255,255,255,.82); box-shadow:var(--shadow-lg);
}
.fq__kontakt::before{ content:""; position:absolute; right:-90px; top:-90px; z-index:-1; width:240px; height:240px; border-radius:50%; background:radial-gradient(circle, rgb(var(--accent-rgb) / .35), transparent 68%); }
.fq__kontakt p{ margin:0; }
main .fq__kontakt-tytul{ margin:0 0 6px; font-family:var(--font-head); font-size:20px; line-height:1.2; font-weight:var(--fw-head); color:#fff; letter-spacing:-.01em; }
.fq__kontakt-tekst{ font-size:14.5px; line-height:1.55; }
.fq__kanaly{ display:grid; gap:8px; margin:18px 0 16px; padding:0; list-style:none; }
.fq__kanaly a{
  display:flex; align-items:center; gap:10px; height:100%; padding:10px 12px; border-radius:12px; min-width:0;
  background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.12); color:#fff; font-weight:700; font-size:14.5px; text-decoration:none;
  transition:background .18s var(--ease), border-color .18s var(--ease);
}
.fq__kanaly a > span:last-child{ display:flex; flex-direction:column; min-width:0; overflow-wrap:anywhere; line-height:1.25; }
.fq__kanaly small{ font-size:11.5px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.65); }
.fq__kanaly a:hover{ background:rgba(255,255,255,.13); border-color:rgba(255,255,255,.3); color:#fff; }
.fq__kanal-ikona{ flex:0 0 auto; display:grid; place-items:center; width:34px; height:34px; border-radius:10px; background:rgb(var(--accent-rgb) / .18); }
.fq__kanal-ikona svg{ width:17px; height:17px; fill:none; stroke:var(--accent-on-dark); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.fq__przycisk{
  display:flex; align-items:center; justify-content:center; gap:8px; min-height:48px; border-radius:11px;
  background:var(--grad-cta); box-shadow:var(--shadow-cta); color:var(--on-cta); font-weight:700; font-size:15px; text-decoration:none;
  transition:background .18s var(--ease), gap .18s var(--ease);
}
.fq__przycisk::after{ content:"→"; }
.fq__przycisk:hover{ background:var(--grad-cta-hover); color:var(--on-cta); gap:12px; }
.fq__kontakt a:focus-visible{ outline:3px solid #fff; outline-offset:2px; }

.fq__lista{ border-top:1px solid var(--line-strong); interpolate-size:allow-keywords; }
.fq__el{ border-bottom:1px solid var(--line-strong); }
.fq__pytanie{
  position:relative; display:grid; grid-template-columns:44px minmax(0,1fr) 40px; align-items:center; gap:16px;
  padding:22px 4px; cursor:pointer; list-style:none;
}
.fq__pytanie::-webkit-details-marker{ display:none; }
.fq__pytanie::before{ content:""; position:absolute; left:0; top:-1px; width:0; height:2px; background:var(--accent); transition:width .35s var(--ease); }
.fq__el[open] .fq__pytanie::before{ width:100%; }
.fq__pytanie:focus-visible{ outline:3px solid var(--accent); outline-offset:2px; border-radius:8px; }
.fq__nr{ font-family:var(--font-head); font-size:15px; font-weight:var(--fw-head); color:var(--muted); font-variant-numeric:tabular-nums; letter-spacing:.02em; transition:color .2s var(--ease); }
.fq__tresc{ font-family:var(--font-head); font-size:clamp(16.5px,1.5vw,19px); line-height:1.35; font-weight:var(--fw-head); color:var(--ink); letter-spacing:-.01em; transition:color .2s var(--ease); }
.fq__ikona{
  position:relative; justify-self:end; width:40px; height:40px; border-radius:50%; border:1px solid var(--line-strong);
  transition:background .25s var(--ease), border-color .25s var(--ease), transform .35s var(--ease);
}
.fq__ikona::before,.fq__ikona::after{ content:""; position:absolute; left:50%; top:50%; width:14px; height:2px; margin:-1px 0 0 -7px; border-radius:2px; background:var(--ink-2); transition:transform .35s var(--ease), background .25s var(--ease); }
.fq__ikona::after{ transform:rotate(90deg); }
.fq__pytanie:hover .fq__tresc,.fq__pytanie:hover .fq__nr{ color:var(--accent-dark); }
.fq__pytanie:hover .fq__ikona{ border-color:var(--accent); }
.fq__el[open] .fq__nr{ color:var(--accent-dark); }
.fq__el[open] .fq__ikona{ background:var(--grad-cta); border-color:transparent; transform:rotate(180deg); }
.fq__el[open] .fq__ikona::before,.fq__el[open] .fq__ikona::after{ background:#fff; }
.fq__el[open] .fq__ikona::after{ transform:rotate(0deg); }
.fq__odpowiedz{ padding:0 60px 24px 64px; font-size:16px; line-height:1.7; color:var(--text); }
.fq__odpowiedz p{ margin:0 0 10px; }
.fq__odpowiedz > :last-child{ margin-bottom:0; }
.fq__odpowiedz a{ color:var(--accent-dark); font-weight:600; text-underline-offset:3px; }
.fq__el::details-content{ block-size:0; overflow:hidden; transition:block-size .35s var(--ease), content-visibility .35s allow-discrete; }
.fq__el[open]::details-content{ block-size:auto; }

/* Wąski ekran: tytuł i wstęp nad pytaniami, ramka kontaktu pod nimi */
@media (max-width:960px){
  .fq{ grid-template-columns:1fr; gap:14px; }
  .fq__bok,.fq__bok-wnetrze{ display:contents; }
  .fq__lista{ order:1; margin-top:14px; }
  .fq__kontakt{ order:2; margin-top:24px; }
}
@media (max-width:560px){
  .fq__pytanie{ grid-template-columns:30px minmax(0,1fr) 36px; gap:10px; padding:18px 0; }
  .fq__nr{ font-size:13px; }
  .fq__ikona{ width:36px; height:36px; }
  .fq__odpowiedz{ padding:0 0 20px 40px; font-size:15.5px; }
  .fq__kanaly{ grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce){
  .fq__el::details-content,.fq__ikona,.fq__ikona::before,.fq__ikona::after,.fq__pytanie::before{ transition:none; }
}

/* Wezwanie na końcu strony (bottom-d, moduł „Własny kod” z klasą .cta-end) */
.cta-end{
  position:relative; overflow:hidden; isolation:isolate; padding:clamp(32px,5vw,56px); border-radius:24px;
  background:var(--grad-navy); color:rgba(255,255,255,.85); text-align:center;
}
.cta-end::before{ content:""; position:absolute; left:50%; top:-220px; z-index:-1; width:620px; height:420px; transform:translateX(-50%); border-radius:50%; background:radial-gradient(closest-side, rgb(var(--accent-rgb) / .35), transparent); }
main .cta-end h2{ margin:0 auto 10px; max-width:24ch; font-family:var(--font-head); font-size:var(--fs-h1); line-height:1.18; font-weight:var(--fw-head); color:#fff; letter-spacing:var(--ls-head); text-wrap:balance; }
.cta-end p{ margin:0 auto; max-width:56ch; font-size:16.5px; line-height:1.55; }
.cta-end__btns{ display:flex; flex-wrap:wrap; justify-content:center; gap:12px; margin-top:26px; }
.cta-end .btn-light{
  display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:48px; padding:0 24px; border-radius:9px;
  border:1px solid rgba(255,255,255,.35); color:#fff; font-weight:600; text-decoration:none; transition:background .18s var(--ease), border-color .18s var(--ease);
}
.cta-end .btn-light:hover{ background:rgba(255,255,255,.1); border-color:#fff; color:#fff; }

/* Wezwanie na końcu strony — układ „cta” (mod_custom, html/mod_custom/cta.php): po lewej treść modułu, po prawej
   4 ścieżki (szklane kafelki). Siatka i poświata jak w wyróżnionym projekcie i sekcji „Dlaczego ZDZ”. */
.ce{
  position:relative; overflow:hidden; isolation:isolate; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);
  gap:32px clamp(32px,5vw,64px); align-items:center; padding:clamp(28px,5vw,60px); border-radius:28px;
  background:var(--grad-navy); color:rgba(255,255,255,.82); box-shadow:var(--shadow-lg);
}
.ce--bez-sciezek{ grid-template-columns:1fr; }
.ce::before{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(520px 360px at 8% 0%, rgb(var(--accent-rgb) / .32), transparent 70%),
    radial-gradient(420px 320px at 100% 100%, rgba(255,148,102,.14), transparent 70%),
    linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px) 0 0 / 36px 36px,
    linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px) 0 0 / 36px 36px;
  -webkit-mask-image:radial-gradient(130% 120% at 0% 0%, #000 35%, rgba(0,0,0,.35) 75%); mask-image:radial-gradient(130% 120% at 0% 0%, #000 35%, rgba(0,0,0,.35) 75%);
}
.ce__glowna{ display:flex; flex-direction:column; align-items:flex-start; gap:14px; }
.ce__glowna > *{ margin:0; }
.ce__nad{
  padding:6px 13px; border-radius:999px; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2);
  color:var(--accent-on-dark); font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
}
main .ce__glowna h2{ font-family:var(--font-head); font-size:clamp(30px,4vw,48px); line-height:1.15; font-weight:var(--fw-head); color:#fff; letter-spacing:var(--ls-head); text-wrap:balance; }
.ce__glowna p:not(.ce__nad){ max-width:46ch; font-size:17px; line-height:1.6; color:rgba(255,255,255,.8); }
.ce__przyciski{ display:flex; flex-wrap:wrap; gap:12px; margin-top:10px !important; }
.ce .btn-light{
  display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:48px; padding:0 24px; border-radius:10px;
  border:1px solid rgba(255,255,255,.35); color:#fff; font-weight:600; text-decoration:none; backdrop-filter:blur(6px);
  transition:background .18s var(--ease), border-color .18s var(--ease);
}
.ce .btn-light:hover{ background:rgba(255,255,255,.1); border-color:#fff; color:#fff; }
.ce a:focus-visible{ outline:3px solid #fff; outline-offset:3px; }

.ce__sciezki{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:0; padding:0; list-style:none; }
.ce__sciezka{
  position:relative; display:flex; flex-direction:column; gap:4px; height:100%; padding:20px; border-radius:18px;
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); backdrop-filter:blur(8px);
  color:#fff; text-decoration:none; transition:background .2s var(--ease), border-color .2s var(--ease), transform .2s var(--ease);
}
.ce__sciezka:hover{ background:rgba(255,255,255,.11); border-color:rgba(255,148,102,.6); transform:translateY(-3px); color:#fff; }
.ce__ikona{ display:grid; place-items:center; width:44px; height:44px; margin-bottom:12px; border-radius:13px; background:rgb(var(--accent-rgb) / .18); border:1px solid rgba(255,148,102,.3); transition:background .2s var(--ease); }
.ce__ikona svg{ width:22px; height:22px; fill:none; stroke:var(--accent-on-dark); stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; transition:stroke .2s var(--ease); }
.ce__sciezka:hover .ce__ikona{ background:var(--grad-cta); }
.ce__sciezka:hover .ce__ikona svg{ stroke:#fff; }
.ce__sciezka-tytul{ font-family:var(--font-head); font-size:16.5px; font-weight:var(--fw-head); line-height:1.25; padding-right:28px; }
.ce__sciezka-opis{ font-size:14px; line-height:1.45; color:rgba(255,255,255,.72); }
.ce__strzalka{ position:absolute; right:16px; top:18px; width:22px; height:22px; color:rgba(255,255,255,.5); transition:color .2s var(--ease), transform .2s var(--ease); }
.ce__strzalka svg{ width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.ce__sciezka:hover .ce__strzalka{ color:var(--accent-on-dark); transform:translate(2px,-2px); }

@media (max-width:980px){ .ce{ grid-template-columns:1fr; } }
@media (max-width:520px){
  .ce{ border-radius:22px; }
  .ce__sciezki{ grid-template-columns:1fr; }
  .ce__sciezka{ flex-direction:row; flex-wrap:wrap; align-items:center; column-gap:14px; padding:14px 16px; }
  .ce__ikona{ margin:0; flex:0 0 auto; }
  .ce__sciezka-tytul{ flex:1 1 0; }
  .ce__sciezka-opis{ flex:1 1 100%; padding-left:58px; margin-top:-6px; }
  .ce__strzalka{ top:50%; margin-top:-11px; }
  .ce__przyciski,.ce__przyciski a{ width:100%; }
}
@media (prefers-reduced-motion:reduce){ .ce__sciezka:hover{ transform:none; } }
@media (max-width:420px){ .why__stat{ padding:18px 16px; } }

/* Okruszki */
.crumbs{ border-bottom:1px solid var(--line); background:var(--surface); }
.mod-breadcrumbs{ display:flex; flex-wrap:wrap; align-items:center; gap:4px 0; margin:0; padding:12px 0 !important; list-style:none; font-size:13px; color:var(--muted); }
.mod-breadcrumbs li{ display:inline-flex; align-items:center; }
.mod-breadcrumbs__here{ margin-right:6px; }
.mod-breadcrumbs__divider{ display:none !important; }
.mod-breadcrumbs .breadcrumb-item + .breadcrumb-item::before{ content:"›"; margin:0 8px; color:var(--line-strong); }
.mod-breadcrumbs a{ color:var(--ink-2); text-decoration:none; font-weight:600; }
.mod-breadcrumbs a:hover{ color:var(--accent-dark); }
.mod-breadcrumbs .active{ color:var(--muted); }
/* Długi tytuł bieżącej strony — jedna linia z wielokropkiem zamiast łamania pod strzałką */
.mod-breadcrumbs{ flex-wrap:nowrap; }
.mod-breadcrumbs li{ flex:0 0 auto; white-space:nowrap; }
.mod-breadcrumbs .active{ flex:0 1 auto; min-width:0; }
.mod-breadcrumbs .active span{ display:block; min-width:0; overflow:hidden; text-overflow:ellipsis; }
@media (max-width:600px){ .mod-breadcrumbs__here{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); } }

/* Nagłówek „Szczegóły” nad datą wpisu — tylko dla czytników ekranu */
.article-info-term{ position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* ---------- 4. Przyciski i formularze ---------- */
.btn-primary{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:48px; padding:0 26px; background:var(--grad-cta);
  border:0; border-radius:10px; box-shadow:var(--shadow-cta);
  color:var(--on-cta); font:inherit; font-size:15px; font-weight:600; text-decoration:none; cursor:pointer;
  transition:background .18s var(--ease), transform .18s var(--ease);
}
.btn-primary::after{ content:"→"; transition:transform .18s var(--ease); }
.btn-primary:hover{ background:var(--grad-cta-hover); color:var(--on-cta); transform:translateY(-2px); }
.btn-primary:hover::after{ transform:translateX(4px); }
.btn-ghost{
  display:inline-flex; align-items:center; gap:7px; padding:8px 14px;
  border:1px solid currentColor; border-radius:8px; color:var(--accent-dark);
  font-size:13px; font-weight:600; text-decoration:none; background:transparent;
  cursor:pointer; font-family:inherit;
  transition:background .18s var(--ease), color .18s var(--ease);
}
.btn-ghost::after{ content:"→"; }
.btn-ghost:hover{ background:var(--accent-fill); border-color:var(--accent-fill); color:#fff; }
.btn-sm{
  display:inline-flex; align-items:center; gap:6px; padding:8px 13px; border-radius:8px;
  font-size:13px; font-weight:600; text-decoration:none; cursor:pointer; font-family:inherit;
  border:1px solid var(--line); background:var(--surface-2); color:var(--ink-2);
  transition:background .15s, border-color .15s, color .15s;
}
.btn-sm:hover{ border-color:var(--accent); color:var(--accent-dark); }
.btn-sm--primary{ background:var(--grad-cta); border-color:transparent; color:var(--on-cta); }
.btn-sm--primary:hover{ background:var(--grad-cta-hover); border-color:transparent; color:var(--on-cta); }

.field-label{ display:block; margin:0 0 6px; font-size:13px; font-weight:600; line-height:1.3; color:var(--ink); }
.input{
  width:100%; height:46px; padding:0 14px; background:var(--surface-2);
  border:1px solid var(--line); border-radius:9px; color:var(--ink); font:inherit; font-size:15px;
  transition:border-color .15s var(--ease), background .15s var(--ease), box-shadow .15s var(--ease);
}
.input:hover{ border-color:var(--line-strong, #C9CCE2); }
.input:focus{ outline:none; background:var(--surface); border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
select.input,.select{
  appearance:none; -webkit-appearance:none; padding-right:40px; cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);
  background-position:calc(100% - 20px) calc(50% + 1px), calc(100% - 15px) calc(50% + 1px);
  background-size:5px 5px,5px 5px; background-repeat:no-repeat;
}

.chip{
  display:inline-flex; align-items:center; gap:7px;
  padding:6px 13px; background:var(--surface-2); border:1px solid var(--line); border-radius:999px;
  color:var(--ink-2); font:inherit; font-size:13.5px; font-weight:600; cursor:pointer; text-decoration:none;
  transition:background .15s, border-color .15s, color .15s;
}
.chip:hover{ border-color:var(--line-strong, #C9CCE2); color:var(--ink); }
.chip[aria-pressed="true"],.chip.is-on{ background:var(--accent-fill); border-color:var(--accent-fill); color:#fff; }

.tag{ display:inline-block; padding:3px 9px; border-radius:6px; background:var(--accent-soft); color:var(--accent-dark); font-size:11.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; text-decoration:none; }

/* Stronicowanie (makieta + klasy Joomli) */
.pager{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-top:24px; }
.pager__list,.pagination{ display:flex; flex-wrap:wrap; gap:6px; margin:0; padding:0; list-style:none; }
.pager__list a,.pager__list span,.pagination .page-link{
  display:flex; align-items:center; justify-content:center; min-width:36px; height:36px; padding:0 10px;
  background:var(--surface); border:1px solid var(--line); border-radius:8px; color:var(--ink);
  font-size:14px; font-weight:600; text-decoration:none; transition:border-color .15s, color .15s;
}
.pager__list a:hover,.pagination a.page-link:hover{ border-color:var(--accent); color:var(--accent-dark); }
.pager__list .is-active span,.pagination .active .page-link{ background:var(--accent-fill); border-color:var(--accent-fill); color:#fff; }
.pager__list .is-gap span{ border-color:transparent; background:none; min-width:20px; padding:0; }
.pagination .disabled .page-link{ opacity:.4; }
.pager__count{ font-size:13px; color:var(--muted); font-variant-numeric:tabular-nums; }
.pager[hidden]{ display:none; }

/* Wyniki wyszukiwarki serwisu (com_finder) — lista w stylu katalogu kursów */
.zdz-szukaj .com-finder__explained{ margin:0 0 12px; font-size:13.5px; color:var(--muted); }
.zdz-szukaj .com-finder__explained p{ margin:0; }
.zdz-szukaj .k-resultbar{ margin:0 0 12px; font-size:13.5px; color:var(--muted); }
.zdz-szukaj .k-resultbar strong{ color:var(--ink); }
.zdz-szukaj .com-finder__results-list{ margin:0; padding:0; list-style:none; border-top:1px solid var(--line); }
.zdz-szukaj .result__item{ position:relative; padding:18px 18px; border-bottom:1px solid var(--line); transition:background .2s var(--ease); }
.zdz-szukaj .result__item:hover{ background:var(--surface-2); }
.zdz-szukaj .result__title{ margin:0 0 6px; font-size:17px; font-weight:600; line-height:1.3; }
.zdz-szukaj .result__title-link{ display:flex; flex-direction:column-reverse; gap:3px; color:var(--ink); text-decoration:none; }
.zdz-szukaj .result__title-link::after{ content:""; position:absolute; inset:0; }
.zdz-szukaj .result__title-link:hover .result__title-text{ color:var(--accent-dark); }
.zdz-szukaj .result__title-url{ font-size:12.5px; font-style:normal; font-weight:400; color:var(--muted); overflow-wrap:anywhere; }
.zdz-szukaj .result__description{ margin:0; font-size:14.5px; color:var(--text); }
.zdz-szukaj .result__date{ margin-right:6px; color:var(--muted); font-size:13px; }
.zdz-szukaj .result__date::after{ content:" ·"; }
.zdz-szukaj mark,.zdz-szukaj .highlight{ background:var(--accent-soft); color:inherit; padding:0 2px; border-radius:3px; }
.zdz-szukaj .com-finder__navigation{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; margin-top:24px; }
.zdz-szukaj .com-finder__counter{ font-size:13px; color:var(--muted); }
.zdz-szukaj .com-finder__empty{ padding:40px 24px; text-align:center; border:1px dashed var(--line); border-radius:var(--radius); }
.zdz-szukaj .com-finder__empty h2{ margin:0 0 6px; font-size:20px; }

/* ---------- 5. Komunikaty systemowe Joomli ---------- */
#system-message-container:not(:empty){ margin:0 0 22px; }
joomla-alert,.alert{
  display:block; position:relative; margin:0 0 10px; padding:14px 46px 14px 18px;
  border:1px solid var(--line); border-left:4px solid var(--muted); border-radius:10px;
  background:var(--surface-2); color:var(--ink); font-size:14.5px;
}
joomla-alert[type="success"],.alert-success{ border-left-color:var(--success); background:var(--ok-bg); }
joomla-alert[type="danger"],joomla-alert[type="error"],.alert-danger{ border-left-color:var(--error); background:var(--err-bg); }
joomla-alert[type="warning"],.alert-warning{ border-left-color:#C98A0B; background:rgba(201,138,11,.12); }
joomla-alert[type="info"],.alert-info{ border-left-color:var(--ink-2); }
.alert-heading{ display:block; margin:0 0 2px; font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.alert-message,.alert-wrapper p{ margin:0; }
.joomla-alert--close,.joomla-alert-button--close{
  position:absolute; top:10px; right:10px; width:28px; height:28px; padding:0;
  background:none; border:0; border-radius:6px; color:var(--muted); font-size:20px; line-height:1; cursor:pointer;
}
.joomla-alert--close:hover{ background:rgb(var(--base-rgb) / .06); color:var(--ink); }

/* ---------- 6. Artykuły (com_content) ---------- */
.com-content-article,.item-page{ max-width:68ch; }
.com-content-article__body,.item-page [itemprop="articleBody"]{ font-size:16.5px; line-height:1.75; }
.com-content-article__body img{ border-radius:10px; }
.article-info,.article-info-term{ font-size:13.5px; color:var(--muted); }
.article-info dd{ margin:0; display:inline; }
main table{ width:100%; border-collapse:separate; border-spacing:0; border:1px solid var(--line); border-radius:12px; overflow:hidden; font-size:14.5px; }
main th{ padding:12px 18px; background:var(--surface-2); border-bottom:1px solid var(--line); font-size:11px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--muted); text-align:left; }
main td{ padding:12px 18px; border-top:1px solid var(--line); vertical-align:top; }
main tr:first-child td{ border-top:0; }
.page-header h1,.page-header h2{ margin-top:0; }

/* ---------- 7. Stopka ---------- */
.footer{ padding-block:44px 28px; background:var(--grad-navy); color:rgba(255,255,255,.72); }
.footer__grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:32px; }
@media (max-width:860px){ .footer__grid{ grid-template-columns:repeat(2,1fr); gap:26px; } }
@media (max-width:520px){ .footer__grid{ grid-template-columns:1fr; } }
.footer__brand b{ display:block; font-family:var(--font-head); font-size:19px; line-height:1.2; color:#fff; margin-bottom:8px; }
.footer__brand p{ margin:0; font-size:14px; line-height:1.6; }
.footer__title{ margin:0 0 12px; font-size:11.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.66); }
.footer__list{ margin:0; padding:0; list-style:none; display:grid; gap:8px; font-size:14px; }
.footer__list a{ color:rgba(255,255,255,.82); text-decoration:none; }
.footer__list a:hover{ color:#fff; text-decoration:underline; text-underline-offset:3px; }
.footer__bottom{ margin-top:34px; padding-top:20px; border-top:1px solid rgba(255,255,255,.12); font-size:13px; display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; }
/* Lista linków poza stopką (np. menu w treści) */
main .zdz-lista-linkow{ display:grid; gap:6px; font-size:15px; }
main .zdz-lista-linkow a{ color:var(--accent-dark); }

/* Pasek wersji demonstracyjnej (moduł w pozycji banner) */
.demo-bar{ background:linear-gradient(90deg, var(--accent-soft), transparent 70%), var(--surface); border-bottom:1px solid var(--line); color:var(--text); font-size:13px; }
.demo-bar .wrap{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:6px 16px; padding-top:7px; padding-bottom:7px; }
.demo-bar b{ display:inline-flex; align-items:center; margin-right:6px; padding:2px 9px; border-radius:999px; background:var(--accent-fill); color:#fff; font-size:11px; letter-spacing:.06em; text-transform:uppercase; }
.demo-bar a{ font-weight:700; color:var(--accent-dark); white-space:nowrap; }

/* ---------- 8. Baner strony głównej (moduł „Baner”) ---------- */
.hero{ position:relative; background:var(--navy-900); isolation:isolate; }
/* Slajdy leżą jeden na drugim w jednej komórce siatki — baner ma wysokość najwyższego slajdu,
   więc dłuższy tekst nigdy nie zostanie ucięty, a przełączanie nie zmienia wysokości strony */
.hero__stage{ position:relative; display:grid; min-height:var(--hero-h, clamp(400px,40vw,540px)); }
.hero__slide{ grid-area:1 / 1; position:relative; display:flex; opacity:0; visibility:hidden; transition:opacity .7s var(--ease), visibility .7s; }
.hero__slide.is-active{ opacity:1; visibility:visible; }
.hero__media{ position:absolute; inset:0; overflow:hidden; }
.hero__media{ background-size:cover; }
.hero__media img{ width:100%; height:100%; object-fit:cover; display:block; transform:scale(1.06); transition:transform 7s linear; }
.hero__slide.is-active .hero__media img{ transform:scale(1); }
/* Film leży na zdjęciu (zdjęcie = kadr startowy i zastępstwo na telefonach) */
.hero__video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero__media::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(100deg, rgb(var(--base-rgb) / .92) 0%, rgb(var(--base-rgb) / .72) 34%, rgb(var(--base-rgb) / .20) 62%, rgb(var(--base-rgb) / .05) 100%),
             linear-gradient(to top, rgb(var(--base-rgb) / .55) 0%, rgb(var(--base-rgb) / 0) 42%);
}
/* Odstęp poziomy większy niż strzałki (46 px + margines), dolny — miejsce na zakładki nachodzące na baner */
.hero__inner{
  position:relative; z-index:2; flex:1 1 auto; width:100%; max-width:var(--wrap); margin:0 auto;
  padding:clamp(40px,5vw,64px) clamp(76px,7vw,96px) clamp(96px,9vw,120px);
  display:flex; flex-direction:column; justify-content:center; color:#fff;
}
.hero__copy{ max-width:min(600px, 100%); }
.hero__eyebrow{
  /* Ciemniejszy pomarańcz: biały tekst 5,3:1 (WCAG AA); var(--accent) daje tylko 3,5:1 */
  display:inline-block; max-width:100%; margin:0 0 16px; padding:6px 14px; background:var(--accent-fill); color:#fff;
  border-radius:8px; font-size:11.5px; font-weight:700; line-height:1.35; letter-spacing:.08em; text-transform:uppercase;
}
main .hero__title{
  margin:0 0 12px; font-family:var(--font-head); color:#fff;
  font-size:clamp(28px,3.8vw,48px); line-height:1.15; font-weight:var(--fw-head);
  letter-spacing:var(--ls-head); text-wrap:balance; overflow-wrap:break-word; hyphens:auto;
  text-shadow:0 2px 24px rgba(0,0,0,.35);
}
.hero__sub{ max-width:46ch; margin:0 0 26px; font-size:clamp(16px,1.5vw,19px); line-height:1.5; color:rgba(255,255,255,.9); text-wrap:pretty; }
.hero__cta{
  display:inline-flex; align-items:center; gap:9px; padding:13px 26px;
  background:var(--grad-cta); color:var(--on-cta); border-radius:10px; font-size:16px; font-weight:700;
  text-decoration:none; box-shadow:var(--shadow-cta);
  transition:background .18s var(--ease), transform .18s var(--ease);
}
.hero__cta::after{ content:"→"; transition:transform .18s var(--ease); }
.hero__cta:hover{ background:var(--grad-cta-hover); color:var(--on-cta); transform:translateY(-2px); }
.hero__cta:hover::after{ transform:translateX(4px); }
.hero__slide.is-active :is(.hero__eyebrow,.hero__title,.hero__sub,.hero__cta){ animation:rise .62s var(--ease) backwards; }
.hero__slide.is-active .hero__title{ animation-delay:.06s; }
.hero__slide.is-active .hero__sub{ animation-delay:.12s; }
.hero__slide.is-active .hero__cta{ animation-delay:.18s; }
@keyframes rise{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
.hero__arrow{
  position:absolute; top:calc(50% - 40px); z-index:4; width:46px; height:46px;
  display:grid; place-items:center; background:rgba(255,255,255,.14);
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.26); border-radius:50%;
  color:#fff; font-size:19px; cursor:pointer; transition:background .18s var(--ease);
}
.hero__arrow:hover{ background:rgba(255,255,255,.26); }
.hero__arrow--prev{ left:clamp(10px,2vw,20px); }
.hero__arrow--next{ right:clamp(10px,2vw,20px); }
.hero__pause{
  position:absolute; right:clamp(10px,2vw,20px); top:16px; z-index:4; width:36px; height:36px;
  display:grid; place-items:center; padding:0; background:rgb(var(--base-rgb) / .45);
  border:1px solid rgba(255,255,255,.3); border-radius:50%; color:#fff; cursor:pointer;
}
.hero__pause:hover{ background:rgb(var(--base-rgb) / .7); }
.hero__pause svg{ width:16px; height:16px; fill:currentColor; }
.hero__pause .ikona-start,.hero__pause[aria-pressed="true"] .ikona-pauza{ display:none; }
.hero__pause[aria-pressed="true"] .ikona-start{ display:block; }
.tabs{
  position:relative; z-index:5; display:grid; grid-template-columns:repeat(var(--zakladek,6),minmax(0,1fr));
  margin:-56px auto 0; max-width:var(--wrap); background:var(--surface); border-radius:12px;
  box-shadow:0 12px 34px rgb(var(--base-rgb) / .20); overflow:hidden;
}
.tab{
  position:relative; display:flex; flex-direction:column; justify-content:center; gap:4px;
  min-height:86px; padding:16px 18px; background:var(--surface); border:0; border-left:1px solid var(--line);
  font:inherit; text-align:left; cursor:pointer; transition:background .2s var(--ease);
}
.tab:first-child{ border-left:0; }
a.tab{ color:inherit; text-decoration:none; }
a.tab:focus-visible{ outline:3px solid var(--accent); outline-offset:-3px; }
.tab::before{
  content:""; position:absolute; top:0; left:0; right:0; height:3px; background:var(--accent);
  transform:scaleX(0); transform-origin:left; transition:transform .22s var(--ease);
}
.tab__title{ font-size:14.5px; font-weight:600; line-height:1.25; color:var(--ink); text-wrap:balance; transition:color .2s var(--ease); }
.tab__sub{ font-size:12px; line-height:1.35; color:var(--muted); }
.tab:hover{ background:var(--surface-2); }
.tab:hover::before{ transform:scaleX(1); }
.tab:hover .tab__title{ color:var(--accent-dark); }
.tab[aria-current="true"]{ background:var(--accent-soft); }
.tab[aria-current="true"]::before{ transform:scaleX(1); }
.tab[aria-current="true"] .tab__title{ color:var(--accent-dark); }
.tab__bar{ position:absolute; left:0; bottom:0; height:2px; width:100%; background:var(--accent); transform:scaleX(0); transform-origin:left; opacity:0; }
.tab[aria-current="true"] .tab__bar{ opacity:1; }
.hero-wrap.is-playing .tab[aria-current="true"] .tab__bar{ animation:prog var(--hero-czas,7000ms) linear forwards; }
@keyframes prog{ from{ transform:scaleX(0); } to{ transform:scaleX(1); } }
.dots{ position:absolute; left:50%; bottom:10px; z-index:4; display:none; gap:0; transform:translateX(-50%); }
/* Kropka: pole dotyku 24×24 px (wymóg dostępności), widoczna kropka 8 px — tło tylko w środku (content-box) */
.dot{ box-sizing:border-box; width:24px; height:24px; padding:8px; border:0; border-radius:99px; background:rgba(255,255,255,.45); background-clip:content-box; cursor:pointer; transition:background .2s, width .2s; }
.dot[aria-current="true"]{ background-color:var(--surface); width:40px; }
@media (max-width:991px){ .tabs{ grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:-40px; } .tab{ min-height:74px; padding:12px 14px; } }
@media (max-width:991px){ .hero__inner{ padding-bottom:clamp(64px,9vw,96px); } }
/* Telefon: bez zakładek (zamiast nich kropki), strzałki na dole, tekst na całą szerokość na mocniej przyciemnionym tle */
@media (max-width:640px){
  .hero__stage{ min-height:var(--hero-h-tel, 440px); }
  .tabs{ display:none; }
  /* Kafelki-odnośniki zostają na telefonie: siatka 2 kolumn pod zdjęciem (bez paska postępu) */
  .tabs--linki{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:12px; }
  .tabs--linki .tab{ min-height:64px; border-top:1px solid var(--line); }
  .tabs--linki .tab:nth-child(-n+2){ border-top:0; }
  .tabs--linki .tab:nth-child(odd){ border-left:0; }
  .tabs--linki .tab__bar{ display:none; }
  .dots{ display:flex; bottom:30px; }
  .hero__arrow{ top:auto; bottom:16px; width:44px; height:44px; }
  .hero__pause{ top:12px; right:12px; }
  .hero__inner{ justify-content:flex-end; padding:56px 20px 84px; }
  .hero__media::after{
    background:linear-gradient(to top, rgb(var(--base-rgb) / .94) 0%, rgb(var(--base-rgb) / .78) 45%, rgb(var(--base-rgb) / .35) 100%);
  }
  .hero__eyebrow{ margin-bottom:12px; font-size:11px; }
  main .hero__title{ font-size:clamp(30px,8.6vw,40px); }
  .hero__sub{ margin-bottom:20px; font-size:16px; }
  .hero__cta{ padding:13px 22px; }
}
.is-home .crumbs{ display:none; }

/* Wysokość banera (ustawienie modułu). Baner i tak rośnie, gdy tekst się nie mieści. */
.hero-wrap--h-niska{ --hero-h:clamp(320px,30vw,420px); --hero-h-tel:380px; --mozaika-h:clamp(300px,30vw,400px); }
.hero-wrap--h-srednia{ --hero-h:clamp(400px,32vw,480px); --hero-h-tel:440px; --mozaika-h:clamp(360px,36vw,480px); }
.hero-wrap--h-wysoka{ --hero-h:clamp(480px,50vw,680px); --hero-h-tel:520px; --mozaika-h:clamp(420px,44vw,600px); }

/* ── Układ „Wyszukiwarka”: jedno zdjęcie, hasło i pole szukania kursów; bez zakładek, więc mniej miejsca na dole ── */
.hero-wrap--szukaj .hero__inner{ padding-top:clamp(40px,5vw,64px); padding-bottom:clamp(44px,5vw,64px); }
.hero-wrap--szukaj .hero__copy{ max-width:min(640px, 100%); }
.hero-wrap--szukaj .hero__media img{ transform:none; }
.hero-wrap--szukaj .hero__slide.is-active :is(.hero__eyebrow,.hero__title,.hero__sub){ animation:none; } /* baner się nie zmienia — tekst od razu */
.hero-wrap--szukaj .hero__sub{ margin-bottom:22px; }
.hero__ogloszenie{ text-decoration:none; transition:background .18s var(--ease); }
.hero__ogloszenie::after{ content:" →"; }
.hero__ogloszenie:hover{ background:var(--accent-fill-hover); color:#fff; }
.hsz{ position:relative; max-width:600px; }
.hsz__pole{
  display:flex; align-items:center; gap:6px; padding:6px 6px 6px 16px; background:#fff; border-radius:14px;
  box-shadow:0 10px 30px rgb(var(--base-rgb) / .35);
}
.hsz__pole:focus-within{ box-shadow:0 0 0 3px var(--accent-on-dark), 0 10px 30px rgb(var(--base-rgb) / .35); }
.hsz__ikona{ flex:0 0 auto; width:20px; height:20px; fill:none; stroke:#626283; stroke-width:2.2; stroke-linecap:round; }
.hsz__pole input{
  flex:1 1 auto; min-width:0; height:48px; padding:0 6px; border:0; background:none; color:#1A1A2E;
  font:inherit; font-size:17px;
}
.hsz__pole input:focus{ outline:none; }
.hsz__pole input::placeholder{ color:#626283; }
.hsz__pole input::-webkit-search-cancel-button{ cursor:pointer; }
.hsz__btn{
  flex:0 0 auto; height:48px; padding:0 24px; border:0; border-radius:10px; background:var(--grad-cta); color:var(--on-cta);
  font-family:var(--font-head); font-size:16px; font-weight:var(--fw-head); cursor:pointer; transition:background .18s var(--ease);
}
.hsz__btn:hover{ background:var(--grad-cta-hover); }
/* Podpowiedzi w banerze: zawsze jasne (leżą na zdjęciu, niezależnie od motywu strony) */
.hsz .pp-lista{ top:calc(100% + 8px); background:#fff; border-color:transparent; box-shadow:0 18px 40px rgb(var(--base-rgb) / .32); }
.hsz .pp-opcja{ color:#1A1A2E; }
.hsz .pp-opcja small{ color:#626283; }
.hsz .pp-opcja[aria-selected="true"],.hsz .pp-opcja:hover{ background:#F0F2FA; color:#1A1A2E; }
.hsz .pp-opcja--wszystko{ color:#C93200; }
.hsz .pp-opcja mark{ background:rgb(255 66 1 / .14); color:inherit; }
.hsz__skroty{ display:flex; flex-wrap:wrap; gap:8px; margin:16px 0 0; padding:0; list-style:none; }
.hsz__skroty a{
  display:inline-flex; align-items:center; min-height:36px; padding:0 14px; border:1px solid rgba(255,255,255,.38); border-radius:999px;
  background:rgb(var(--base-rgb) / .35); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
  color:#fff; font-size:14px; font-weight:600; text-decoration:none; transition:background .18s var(--ease), border-color .18s var(--ease);
}
.hsz__skroty a:hover{ background:rgba(255,255,255,.18); border-color:#fff; color:#fff; }
@media (max-width:640px){
  .hero-wrap--szukaj .hero__stage{ min-height:0; }
  .hero-wrap--szukaj .hero__inner{ justify-content:flex-start; padding:40px 16px 36px; }
  .hsz__pole{ padding-left:12px; }
  .hsz__pole input{ height:46px; font-size:16px; }
  .hsz__btn{ height:46px; padding:0 16px; }
  .hsz__skroty a{ min-height:34px; padding:0 12px; font-size:13.5px; }
}
@media (max-width:380px){ .hsz__ikona{ display:none; } }

/* ── Slider z kartą wyszukiwarki w miejscu zakładek (Pod banerem: Wyszukiwarka) ── */
.hero-szukaj{
  position:relative; z-index:5; display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:10px 24px;
  margin:-48px auto 0; max-width:var(--wrap); padding:18px 22px; background:var(--surface); border:1px solid var(--line);
  border-radius:16px; box-shadow:0 12px 34px rgb(var(--base-rgb) / .18);
}
.hero-szukaj__tytul{ grid-row:1 / span 2; margin:0; font-family:var(--font-head); font-size:19px; font-weight:var(--fw-head); line-height:1.25; color:var(--ink); max-width:12ch; }
.hero-szukaj .hsz{ max-width:none; }
.hero-szukaj .hsz__pole{ box-shadow:none; border:1px solid var(--line-strong); background:var(--surface-2); }
.hero-szukaj .hsz__pole:focus-within{ border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
.hero-szukaj .hsz__pole input{ color:var(--ink); }
.hero-szukaj .hsz__pole input::placeholder{ color:var(--muted); }
.hero-szukaj .hsz__ikona{ stroke:var(--muted); }
.hero-szukaj .hsz__skroty{ margin:0; }
.hero-szukaj .hsz__skroty a{ min-height:32px; padding:0 13px; border-color:var(--line-strong); background:none; -webkit-backdrop-filter:none; backdrop-filter:none; color:var(--ink-2); font-size:13.5px; }
.hero-szukaj .hsz__skroty a:hover{ border-color:var(--accent); background:var(--accent-soft); color:var(--accent-dark); }
/* Link do doradcy wśród skrótów — wyróżniony, bez obramowania pigułki */
.hsz__skroty .hsz__doradca a{ border-color:transparent; background:none; color:var(--accent-on-dark); text-decoration:underline; text-underline-offset:3px; }
.hero-szukaj .hsz__skroty .hsz__doradca a{ color:var(--accent-dark); }
.hsz__skroty .hsz__doradca a::after{ content:" →"; }

/* Karta wyszukiwarki (domyślna): tytuł i opis na całą szerokość, pod nimi duże pole, niżej „Popularne:” i doradca.
   Wariant pierwotny (panel „Wygląd”) — .hero-szukaj bez --karta, reguły wyżej. */
/* Bez overflow:hidden — lista podpowiedzi wysuwa się poza kartę; poświata w tle karty */
.hero-szukaj--karta{
  display:block; padding:clamp(20px,2.6vw,30px) clamp(18px,2.8vw,32px) clamp(18px,2.2vw,24px);
  border-radius:22px; box-shadow:0 24px 60px rgb(var(--base-rgb) / .18), 0 2px 6px rgb(var(--base-rgb) / .05);
  background:radial-gradient(420px 220px at 100% 0%, var(--accent-soft), transparent 70%), var(--surface);
}
.hero-szukaj__glowa{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px 24px; margin-bottom:16px; }
.hero-szukaj__glowa > div{ display:flex; flex-direction:column; gap:4px; min-width:0; }
.hero-szukaj--karta .hero-szukaj__tytul{ max-width:none; font-size:clamp(21px,2.3vw,28px); line-height:1.15; letter-spacing:var(--ls-head); }
.hero-szukaj__opis{ margin:0; font-size:15px; line-height:1.5; color:var(--muted); }
.hero-szukaj--karta .hsz__pole{ padding:6px 6px 6px 20px; border-radius:16px; border-width:1.5px; }
.hero-szukaj--karta .hsz__pole:focus-within{ background:var(--surface); box-shadow:0 0 0 4px var(--accent-soft); }
.hero-szukaj--karta .hsz__ikona{ width:22px; height:22px; }
.hero-szukaj--karta .hsz__pole input{ height:54px; padding:0 10px; font-size:17.5px; }
.hero-szukaj--karta .hsz__btn{ height:54px; padding:0 30px; border-radius:12px; box-shadow:var(--shadow-cta); }
.hero-szukaj--karta .hsz__skroty{ align-items:center; margin-top:16px; }
.hero-szukaj--karta .hsz__skroty::before{ content:"Popularne:"; margin-right:4px; font-size:13px; font-weight:700; color:var(--muted); }
.hero-szukaj--karta .hsz__skroty a{ min-height:34px; padding:0 14px; border-color:var(--line); background:var(--surface-2); font-weight:600; }
.hero-szukaj--karta .hsz__skroty a:hover{ border-color:var(--accent); background:var(--accent-soft); color:var(--accent-dark); }
.hero-szukaj--karta .hsz__skroty .hsz__doradca{ display:none; }
/* Doradca: wyróżniona pastylka w wierszu tytułu */
.hero-szukaj__doradca{
  display:inline-flex; align-items:center; gap:8px; min-height:42px; padding:0 16px; border-radius:999px;
  background:var(--accent-soft); color:var(--accent-dark); font-size:14px; font-weight:600; text-decoration:none;
  transition:background .18s var(--ease), color .18s var(--ease);
}
.hero-szukaj__doradca b{ font-weight:700; }
.hero-szukaj__doradca::before{
  content:""; width:18px; height:18px; flex:0 0 auto; background-color:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m15.5 8.5-2 5-5 2 2-5 5-2Z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m15.5 8.5-2 5-5 2 2-5 5-2Z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.hero-szukaj__doradca::after{ content:"→"; transition:transform .18s var(--ease); }
.hero-szukaj__doradca:hover{ background:var(--grad-cta); color:#fff; }
.hero-szukaj__doradca:hover::after{ transform:translateX(3px); }
@media (max-width:991px){ .hero-szukaj__doradca{ order:3; } }
@media (max-width:640px){
  .hero-szukaj--karta{ padding:18px 16px 16px; border-radius:18px; }
  .hero-szukaj__opis{ font-size:14px; }
  .hero-szukaj__pytanie{ display:none; }
  .hero-szukaj__doradca{ min-height:36px; padding:0 14px; font-size:13.5px; }
  .hero-szukaj--karta .hsz__pole{ padding-left:14px; }
  .hero-szukaj--karta .hsz__pole input{ height:48px; font-size:16px; }
  .hero-szukaj--karta .hsz__btn{ height:48px; padding:0 18px; }
  .hero-szukaj--karta .hsz__skroty::before{ flex:1 1 100%; }
}
/* Bez zakładek: kropki widoczne także na komputerze, nad kartą; aktywna wypełnia się w czasie slajdu */
.hero-wrap--pasek-szukaj .hero__inner{ padding-bottom:clamp(88px,8vw,108px); }
.hero-wrap--pasek-szukaj .dots,.hero-wrap--pasek-brak .dots{ display:flex; }
.hero-wrap--pasek-szukaj .dots{ bottom:68px; }
.dot{ position:relative; overflow:hidden; }
.dot[aria-current="true"]{ background:rgba(255,255,255,.45); }
.dot[aria-current="true"]::after{ content:""; position:absolute; inset:8px; border-radius:inherit; background:#fff; }
.hero-wrap.is-playing .dot[aria-current="true"]::after{ transform-origin:left; animation:prog var(--hero-czas,7000ms) linear forwards; }
/* Strzałki na ciemnym półprzezroczystym tle — widoczne także na jasnym fragmencie zdjęcia */
.hero__arrow{ background:rgb(var(--base-rgb) / .45); border-color:rgba(255,255,255,.35); }
.hero__arrow:hover{ background:rgb(var(--base-rgb) / .7); }
@media (max-width:991px){
  .hero-szukaj{ grid-template-columns:1fr; margin-top:-36px; padding:16px; }
  .hero-szukaj__tytul{ grid-row:auto; max-width:none; font-size:17px; }
}
@media (max-width:640px){
  .hero-szukaj{ margin:-24px 0 0; border-radius:14px; }
  .hero-wrap--pasek-szukaj .hero__inner{ padding-bottom:96px; }
  .hero-wrap--pasek-szukaj .dots{ bottom:46px; }
  .hero-wrap--pasek-szukaj .hero__arrow{ bottom:34px; }
  .hero-szukaj .hsz__btn{ padding:0 16px; }
}

/* ── Układ „Podzielony”: tekst na granatowym tle, zdjęcie w prawej połowie bez przyciemnienia ── */
.hero-wrap--podzielony .hero{ background:var(--grad-navy); }
.hero-wrap--podzielony .hero__media{ left:50%; }
.hero-wrap--podzielony .hero__media img{ transform:none; }
/* Tylko miękkie przejście od granatu do zdjęcia — zdjęcie zostaje jasne i wyraźne */
.hero-wrap--podzielony .hero__media::after{ background:linear-gradient(90deg, var(--bar) 0%, rgb(var(--base-rgb) / 0) 22%); }
.hero-wrap--podzielony .hero__copy{ max-width:min(560px, calc(50vw - max((100vw - var(--wrap)) / 2, 0px) - 136px)); }
.hero-wrap--podzielony .hero__arrow--next{ background:rgb(var(--base-rgb) / .45); }

/* ── Układ „Karta”: zdjęcie bez przyciemnienia, tekst w białej karcie ── */
.hero-wrap--karta .hero__media::after{ background:linear-gradient(to top, rgb(var(--base-rgb) / .35) 0%, rgb(var(--base-rgb) / 0) 40%); }
.hero-wrap--karta .hero__inner{ justify-content:flex-end; }
.hero-wrap--karta .hero__copy{
  max-width:min(520px, 100%); padding:clamp(22px,2.4vw,32px); background:var(--surface); color:var(--ink);
  border-radius:18px; box-shadow:0 18px 50px rgb(var(--base-rgb) / .28);
}
.hero-wrap--karta .hero__title{ color:var(--ink); text-shadow:none; font-size:clamp(28px,3.4vw,44px); }
.hero-wrap--karta .hero__sub{ color:var(--text); }
.hero-wrap--karta .hero__sub:last-child{ margin-bottom:0; }
.hero-wrap--karta .hero__arrow{ background:rgb(var(--base-rgb) / .45); }

/* Telefon i wąski tablet: zdjęcie na górze, tekst pod nim (podzielony, karta) */
@media (max-width:767px){
  .hero-wrap--podzielony .hero__slide,.hero-wrap--karta .hero__slide{ flex-direction:column; }
  .hero-wrap--podzielony .hero__stage,.hero-wrap--karta .hero__stage{ min-height:0; }
  .hero-wrap--podzielony .hero__media,.hero-wrap--karta .hero__media{ position:relative; left:auto; inset:auto; height:clamp(200px,52vw,300px); flex:0 0 auto; }
  .hero-wrap--podzielony .hero__media::after{ background:linear-gradient(to top, var(--bar) 0%, rgb(var(--base-rgb) / 0) 30%); }
  .hero-wrap--podzielony .hero__inner{ padding:20px 20px 84px; justify-content:flex-start; }
  .hero-wrap--podzielony .hero__copy{ max-width:100%; }
  .hero-wrap--karta .hero__inner{ padding:0 16px 84px; margin-top:-56px; }
  .hero-wrap--karta .hero__copy{ max-width:100%; }
  .hero-wrap--karta .hero__media::after{ background:none; }
  /* Nawigacja pod tekstem jak na telefonie: kropki i strzałki na dole, bez zakładek */
  .hero-wrap--podzielony .hero__arrow,.hero-wrap--karta .hero__arrow{ top:auto; bottom:16px; width:44px; height:44px; background:rgba(255,255,255,.14); }
  .hero-wrap--podzielony .tabs,.hero-wrap--karta .tabs{ display:none; }
  .hero-wrap--podzielony .dots,.hero-wrap--karta .dots{ display:flex; bottom:30px; }
}
/* Tablet: zdjęcie węższe, żeby tekst miał miejsce */
@media (min-width:768px) and (max-width:1023px){
  .hero-wrap--podzielony .hero__media{ left:56%; }
  .hero-wrap--podzielony .hero__copy{ max-width:calc(56vw - 124px); }
  .hero-wrap--podzielony .hero__title{ font-size:clamp(30px,4vw,40px); }
}

/* ── Układ „Mozaika”: do 3 kafli naraz, bez przewijania ── */
.mozaika-wrap{ padding-block:clamp(16px,2.4vw,28px) clamp(28px,4vw,48px); }
.mozaika{ display:grid; gap:clamp(10px,1.4vw,16px); min-height:var(--mozaika-h, clamp(360px,36vw,480px)); }
.mozaika--2{ grid-template-columns:1.4fr 1fr; }
.mozaika--3{ grid-template-columns:minmax(0,1.7fr) minmax(0,1fr); grid-template-rows:1fr 1fr; }
.mozaika--3 .mozaika__kafel--duzy{ grid-row:1 / 3; }
.mozaika__kafel{ position:relative; display:flex; flex-direction:column; justify-content:flex-end; min-height:200px; border-radius:18px; overflow:hidden; color:#fff; isolation:isolate; }
.mozaika__media{ position:absolute; inset:0; z-index:-1; background-size:cover; }
.mozaika__media img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s var(--ease); }
.mozaika__media::after{ content:""; position:absolute; inset:0; background:linear-gradient(to top, rgb(var(--base-rgb) / .9) 0%, rgb(var(--base-rgb) / .55) 45%, rgb(var(--base-rgb) / .1) 100%); }
.mozaika__kafel:hover .mozaika__media img{ transform:scale(1.04); }
.mozaika__tresc{ position:relative; padding:clamp(18px,2.2vw,28px); max-width:600px; }
.mozaika__tytul{ margin:0 0 8px; font-family:var(--font-head); font-weight:var(--fw-head); line-height:1.15; color:#fff; font-size:clamp(18px,1.7vw,22px); letter-spacing:-.01em; text-wrap:balance; }
main .mozaika__tytul{ color:#fff; }
.mozaika__kafel--duzy .mozaika__tytul{ font-size:clamp(28px,3.4vw,46px); margin-bottom:12px; }
.mozaika__tytul a{ color:#fff; text-decoration:none; }
.mozaika__tytul a::after{ content:""; position:absolute; inset:0; }   /* cały mały kafel klikalny */
.mozaika__tytul a:focus-visible{ outline:none; }
.mozaika__kafel:focus-within{ outline:3px solid var(--accent); outline-offset:3px; }
.mozaika__wiecej{ display:inline-block; font-size:14px; font-weight:700; color:#fff; border-bottom:2px solid var(--accent); padding-bottom:2px; }
.mozaika__kafel .hero__eyebrow{ margin-bottom:10px; }
.mozaika__kafel .hero__sub{ max-width:44ch; }
@media (max-width:767px){
  .mozaika,.mozaika--2,.mozaika--3{ grid-template-columns:1fr; grid-template-rows:none; min-height:0; }
  .mozaika--3 .mozaika__kafel--duzy{ grid-row:auto; }
  .mozaika__kafel--duzy{ min-height:360px; }
  .mozaika__kafel:not(.mozaika__kafel--duzy){ min-height:170px; }
}
@media (prefers-reduced-motion: reduce){ .mozaika__kafel:hover .mozaika__media img{ transform:none; } }

.section__more{
  display:inline-flex; align-items:center; gap:7px; margin-top:22px;
  color:var(--accent-dark); font-size:14px; font-weight:600; text-decoration:none;
}
.section__more::after{ content:"→"; transition:transform .18s var(--ease); }
.section__more:hover::after{ transform:translateX(4px); }

/* ---------- 9. Kafelki oferty ---------- */
.offer{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
@media (max-width:1100px){ .offer{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:820px){ .offer{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:540px){ .offer{ grid-template-columns:1fr; } }
.ocard{
  position:relative; display:flex; flex-direction:column; min-height:228px; padding:20px;
  background:var(--surface); border:1px solid var(--line); border-radius:18px; overflow:hidden;
  transition:border-color .2s var(--ease), box-shadow .2s var(--ease), transform .2s var(--ease);
}
.ocard:hover{ border-color:var(--line-strong, #C9CCE2); box-shadow:var(--shadow-lg); transform:translateY(-3px); }
.ocard__num{
  position:absolute; top:-6px; right:14px; font-family:var(--font-head);
  font-size:64px; line-height:1; font-weight:var(--fw-head-mocny); color:var(--ghost); letter-spacing:var(--ls-head);
  pointer-events:none; user-select:none; transition:color .2s var(--ease);
}
.ocard:hover .ocard__num{ color:var(--accent-soft); }
.ocard__top{ position:relative; display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.ocard__icon{ flex:0 0 auto; width:26px; height:26px; display:grid; place-items:center; color:var(--accent); }
.ocard__icon svg{ width:24px; height:24px; }
main .ocard__name{ margin:0; font-family:inherit; font-size:17px; line-height:1.2; font-weight:600; color:var(--ink); text-wrap:balance; }
.ocard__desc{
  position:relative; margin:0 0 16px; font-size:13.5px; line-height:1.55; color:var(--text);
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
}
.ocard__foot{
  position:relative; display:flex; align-items:center; justify-content:space-between; gap:10px;
  margin-top:auto; padding-top:12px; border-top:1px solid var(--line);
}
.ocard__cta{ font-size:13px; font-weight:600; color:var(--accent-dark); text-decoration:none; border-bottom:1px solid currentColor; padding-bottom:1px; }
.ocard__meta{ font-size:12.5px; font-weight:600; color:var(--muted); text-decoration:none; white-space:nowrap; }
.ocard__meta:hover{ color:var(--ink); }
.obrand{
  position:relative; display:flex; flex-direction:column; min-height:228px; padding:22px;
  border-radius:18px; overflow:hidden; color:#fff;
  background:linear-gradient(145deg,var(--accent) 0%, #C8420A 48%, var(--accent-fill-hover) 100%);
}
.obrand__bg{ position:absolute; inset:0; width:100%; height:100%; opacity:.55; }
.obrand__name{ position:relative; margin:0 0 8px; font-family:var(--font-head); font-size:25px; line-height:1; font-weight:var(--fw-head); }
.obrand__text{ position:relative; margin:0; font-size:13.5px; line-height:1.5; color:rgba(255,255,255,.9); }
.obrand__cta{
  position:relative; margin-top:auto; display:inline-flex; align-items:center; gap:7px; align-self:flex-start;
  padding:9px 16px; border-radius:8px; background:var(--surface); color:var(--accent-dark);
  font-size:13px; font-weight:700; text-decoration:none; transition:transform .18s var(--ease);
}
.obrand__cta::after{ content:"→"; transition:transform .18s var(--ease); }
.obrand__cta:hover{ transform:translateY(-2px); color:var(--accent-dark); }
.offer__lead{ margin:-14px 0 24px; }
a.ophoto{ display:block; }
a.ophoto:hover img{ transform:scale(1.03); }
.ophoto img{ transition:transform .35s var(--ease); }
.ophoto{ position:relative; min-height:228px; border-radius:18px; overflow:hidden; background:var(--surface-2); grid-column:span 2; }
.ophoto img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.ophoto__cap{
  position:absolute; left:0; right:0; bottom:0; margin:0; padding:34px 18px 16px;
  background:linear-gradient(to top, rgb(var(--base-rgb) / .86), rgb(var(--base-rgb) / 0));
  color:#fff; font-size:13.5px; font-weight:600; line-height:1.35;
}
@media (max-width:540px){ .ophoto{ grid-column:span 1; } }

/* Kafelki w układzie „Ścieżki” (mod_zdz_kafelki): siatka 12 kolumn, pierwszy kafelek duży ze zdjęciem */
.paths{ display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:18px; }
.path{
  position:relative; display:flex; flex-direction:column; gap:18px; min-height:236px; padding:24px;
  background:var(--surface); border:1px solid var(--line); border-radius:20px; overflow:hidden; isolation:isolate;
  transition:border-color .2s var(--ease), box-shadow .2s var(--ease), transform .2s var(--ease);
}
.path:hover{ border-color:var(--line-strong, #C9CCE2); box-shadow:var(--shadow-lg); transform:translateY(-3px); }
.path:focus-within{ box-shadow:0 0 0 3px var(--accent); }
.path--3{ grid-column:span 3; } .path--4{ grid-column:span 4; } .path--6{ grid-column:span 6; }
.path--8{ grid-column:span 8; } .path--12{ grid-column:span 12; }
.path--duzy{ grid-row:span 1; min-height:340px; justify-content:flex-end; background:var(--grad-navy); border-color:var(--navy-900); color:#fff; }
.path__img{ position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; object-position:70% 40%; transition:transform .5s var(--ease); }
.path--foto::before{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, rgb(var(--base-rgb) / .05) 0%, rgb(var(--base-rgb) / .55) 45%, rgb(var(--base-rgb) / .92) 100%); }
.path--foto:hover .path__img{ transform:scale(1.04); }
.path__num{ position:absolute; top:10px; right:18px; z-index:-1; font-family:var(--font-head); font-size:54px; font-weight:var(--fw-head-mocny); line-height:1; color:var(--surface-2); transition:color .2s var(--ease); }
.path:hover .path__num{ color:var(--accent-soft); }
.path__body{ display:flex; flex-direction:column; gap:6px; }
.path__icon{ display:grid; place-items:center; width:46px; height:46px; margin-bottom:8px; border-radius:13px; background:var(--accent-soft); color:var(--accent-dark); }
.path__icon svg{ width:24px; height:24px; }
.path__role{ margin:0; font-size:11.5px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--accent-dark); }
.path--duzy .path__role{ color:var(--accent-on-dark); }
.path--duzy .path__body{ margin-top:auto; } /* tekst na dole — na najciemniejszej części gradientu */
.path--duzy .path__foot{ margin-top:0; }
main .path__name{ margin:0; font-family:var(--font-head); font-size:20px; line-height:1.18; font-weight:var(--fw-head); color:var(--ink); letter-spacing:var(--ls-head); text-wrap:balance; }
main .path--duzy .path__name{ font-size:clamp(24px, 2.3vw, 31px); color:#fff; }
.path__name a{ color:inherit; text-decoration:none; }
.path__name a::after{ content:""; position:absolute; inset:0; z-index:1; } /* cały kafelek klikalny */
.path__name a:focus-visible{ outline:none; }
.path__desc{ margin:2px 0 0; font-size:14.5px; line-height:1.5; color:var(--text); }
.path--duzy .path__desc{ max-width:46ch; font-size:16px; color:rgba(255,255,255,.88); }
.path__foot{ display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; margin-top:auto; padding-top:4px; }
.path__tag{ display:inline-flex; align-items:center; padding:5px 11px; border-radius:999px; background:var(--surface-2); color:var(--ink-2); font-size:12.5px; font-weight:700; font-variant-numeric:tabular-nums; }
.path--duzy .path__tag{ background:rgba(255,255,255,.16); color:#fff; backdrop-filter:blur(4px); }
.path__meta{ position:relative; z-index:2; display:inline-flex; align-items:center; min-height:32px; padding:0 2px; font-size:13.5px; font-weight:600; color:var(--muted); text-decoration:underline; text-underline-offset:3px; } /* min. 32 px — łatwo trafić palcem */
.path__meta:hover{ color:var(--accent-dark); }
.path--duzy .path__meta{ color:rgba(255,255,255,.8); }
.path__go{ display:inline-flex; align-items:center; gap:10px; margin-left:auto; font-size:13.5px; font-weight:700; color:var(--accent-dark); }
.path--duzy .path__go{ color:#fff; }
.path__arrow{ display:grid; place-items:center; width:38px; height:38px; border-radius:50%; background:var(--accent-soft); color:var(--accent-dark); transition:background .2s var(--ease), color .2s var(--ease), transform .2s var(--ease); }
.path__arrow svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; }
.path:hover .path__arrow{ background:var(--accent); color:#fff; transform:translateX(3px); }
.path--duzy .path__arrow{ background:var(--accent); color:#fff; }
@media (max-width:1000px){
  .paths{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .path{ grid-column:span 1; }
  .path--pelny{ grid-column:span 2; }
}
@media (max-width:600px){
  .paths{ grid-template-columns:1fr; gap:14px; }
  .path,.path--pelny{ grid-column:span 1; min-height:0; padding:20px; }
  .path--duzy{ min-height:380px; }
}
@media (prefers-reduced-motion:reduce){ .path,.path__img,.path__arrow{ transition:none; } .path:hover,.path--foto:hover .path__img{ transform:none; } }

/* „Sześć ścieżek” — układ „Wybór” (mod_zdz_kafelki/tmpl/wybor.php, template.js [data-sc]): lista ról po lewej,
   panel wybranej ścieżki po prawej (zdjęcie albo tło serwisu z dużą ikoną). Bez JS: panele jeden pod drugim. */
.sc{ display:grid; grid-template-columns:1fr; gap:16px; }
.sc--js{ grid-template-columns:minmax(0,.9fr) minmax(0,1.35fr); gap:20px; align-items:stretch; }
.sc__lista{ display:flex; flex-direction:column; gap:6px; }
.sc__lista[hidden]{ display:none; }
.sc__zakladka{
  position:relative; display:grid; grid-template-columns:auto 44px minmax(0,1fr); align-items:center; gap:14px; width:100%;
  padding:12px 16px 12px 14px; border:1px solid transparent; border-radius:16px; background:none; text-align:left;
  font:inherit; color:var(--ink-2); cursor:pointer;
  transition:background .2s var(--ease), border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.sc__zakladka:hover{ background:var(--surface); border-color:var(--line); }
.sc__zakladka:focus-visible{ outline:3px solid var(--accent); outline-offset:2px; }
.sc__zakladka[aria-selected="true"]{ background:var(--surface); border-color:var(--line); box-shadow:var(--shadow); }
.sc__zakladka[aria-selected="true"]::before{ content:""; position:absolute; left:-1px; top:14px; bottom:14px; width:4px; border-radius:0 4px 4px 0; background:var(--accent); }
.sc__nr{ min-width:22px; font-family:var(--font-head); font-size:13px; font-weight:var(--fw-head); color:var(--muted); font-variant-numeric:tabular-nums; }
.sc__zakladka[aria-selected="true"] .sc__nr{ color:var(--accent-dark); }
.sc__ikona{ display:grid; place-items:center; width:44px; height:44px; border-radius:13px; background:var(--accent-soft); color:var(--accent-dark); transition:background .2s var(--ease), color .2s var(--ease); }
.sc__svg{ width:22px; height:22px; }
.sc__zakladka[aria-selected="true"] .sc__ikona{ background:var(--grad-cta); color:#fff; }
.sc__tekst{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.sc__rola{ font-size:11.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.sc__nazwa{ font-family:var(--font-head); font-size:15.5px; font-weight:var(--fw-head); line-height:1.3; color:var(--ink); }

.sc__panele{ display:grid; gap:16px; }
.sc--js .sc__panele{ display:block; }
.sc__panel{
  position:relative; overflow:hidden; isolation:isolate; display:flex; align-items:flex-end; min-height:440px; height:100%;
  padding:clamp(24px,3.4vw,40px); border-radius:26px; background:var(--grad-navy); color:rgba(255,255,255,.85); box-shadow:var(--shadow-lg);
}
.sc__panel[hidden]{ display:none; }
.sc--js .sc__panel:not([hidden]){ animation:sc-wejscie .35s var(--ease); }
@keyframes sc-wejscie{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:none; } }
/* Bez zdjęcia: siatka, poświata akcentu i duża ikona ścieżki */
.sc__panel::before{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(420px 320px at 100% 0%, rgb(var(--accent-rgb) / .38), transparent 70%),
    linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px) 0 0 / 36px 36px,
    linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px) 0 0 / 36px 36px;
}
.sc__tlo-ikona{ position:absolute; right:clamp(16px,4vw,48px); top:clamp(16px,4vw,44px); z-index:-1; width:clamp(120px,16vw,190px); height:auto; color:rgba(255,255,255,.14); stroke-width:1.1; }
/* Ze zdjęciem: zdjęcie na całym panelu, przyciemnione od dołu pod tekst */
.sc__foto{ position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; }
.sc__panel--foto::before{ background:linear-gradient(180deg, rgb(var(--base-rgb) / .1) 0%, rgb(var(--base-rgb) / .55) 45%, rgb(var(--base-rgb) / .92) 100%); }
.sc__tresc{ display:flex; flex-direction:column; align-items:flex-start; gap:12px; max-width:560px; }
.sc__tresc p{ margin:0; }
.sc__panel-rola{
  padding:5px 12px; border-radius:999px; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.24);
  color:#fff; font-size:11.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
}
main .sc__panel-tytul{ margin:0; font-family:var(--font-head); font-size:clamp(25px,3vw,38px); line-height:1.18; font-weight:var(--fw-head); color:#fff; letter-spacing:var(--ls-head); text-wrap:balance; }
.sc__opis{ font-size:16.5px; line-height:1.6; color:rgba(255,255,255,.85); }
.sc__stopka{ display:flex; flex-wrap:wrap; align-items:center; gap:10px 18px; margin-top:8px; }
.sc__cta{
  display:inline-flex; align-items:center; gap:8px; min-height:48px; padding:0 24px; border-radius:11px;
  background:var(--grad-cta); box-shadow:var(--shadow-cta); color:var(--on-cta); font-weight:700; text-decoration:none;
  transition:background .18s var(--ease), gap .18s var(--ease);
}
.sc__cta::after{ content:"→"; }
.sc__cta:hover{ background:var(--grad-cta-hover); color:var(--on-cta); gap:12px; }
.sc__meta{ color:#fff; font-weight:600; text-decoration:underline; text-underline-offset:4px; text-decoration-color:rgba(255,255,255,.5); }
.sc__meta:hover{ color:#fff; text-decoration-color:#fff; }
.sc__etykieta{ padding:6px 12px; border-radius:999px; background:rgba(255,255,255,.12); color:#fff; font-size:13px; font-weight:700; }
.sc__panel a:focus-visible{ outline:3px solid #fff; outline-offset:3px; }

@media (max-width:991px){
  .sc--js{ grid-template-columns:1fr; }
  .sc__lista{ flex-direction:row; gap:8px; margin-inline:-16px; padding:2px 16px 8px; overflow-x:auto; scroll-snap-type:x proximity; scrollbar-width:none; }
  .sc__lista::-webkit-scrollbar{ display:none; }
  .sc__zakladka{ flex:0 0 auto; width:auto; max-width:260px; grid-template-columns:36px minmax(0,1fr); gap:10px; padding:10px 14px 10px 10px; scroll-snap-align:start; background:var(--surface); border-color:var(--line); }
  .sc__nr{ display:none; }
  .sc__ikona{ width:36px; height:36px; border-radius:11px; }
  .sc__svg{ width:18px; height:18px; }
  .sc__nazwa{ font-size:14px; }
  .sc__zakladka[aria-selected="true"]::before{ left:14px; right:14px; top:auto; bottom:-1px; width:auto; height:3px; border-radius:3px 3px 0 0; }
  .sc__panel{ min-height:380px; }
}
@media (max-width:560px){
  .sc__panel{ min-height:0; padding:24px 20px; border-radius:22px; }
  .sc__tlo-ikona{ width:110px; }
  .sc__opis{ font-size:15.5px; }
  .sc__cta{ flex:1 1 100%; justify-content:center; }
}
@media (prefers-reduced-motion:reduce){ .sc--js .sc__panel:not([hidden]){ animation:none; } }

/* ---------- 10. Karty artykułów (mod_articles, układ „karty”) ---------- */
.cards{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin:0; padding:0; list-style:none; }
@media (max-width:991px){ .cards{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; } }
@media (max-width:600px){ .cards{ grid-template-columns:1fr; gap:18px; } }
.card{
  position:relative; display:flex; flex-direction:column; background:var(--surface);
  border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
  transition:border-color .2s var(--ease), box-shadow .2s var(--ease), transform .2s var(--ease);
}
.card:hover{ border-color:var(--line-strong, #C9CCE2); box-shadow:var(--shadow-lg); transform:translateY(-3px); }
.card__media{ position:relative; height:196px; background:linear-gradient(140deg,#2B4A6F,#6E93B8); overflow:hidden; }
.cards > li:nth-child(3n+2) .card__media{ background:linear-gradient(140deg,#553012,#C08A4B); }
.cards > li:nth-child(3n+3) .card__media{ background:linear-gradient(140deg,#243B2E,#6B8A6E); }
.card__media img{ width:100%; height:100%; object-fit:cover; display:block; }
.card__media--brak::after{ content:"ZDZ"; position:absolute; right:18px; bottom:4px; font-family:var(--font-head); font-size:70px; font-weight:var(--fw-head-mocny); line-height:1; color:rgba(255,255,255,.14); }
.card__badge{
  position:absolute; left:12px; bottom:12px; z-index:2; padding:5px 11px;
  background:rgb(var(--base-rgb) / .92); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px);
  border-radius:6px; color:#fff; font-size:11.5px; font-weight:700;
  letter-spacing:.06em; text-transform:uppercase; line-height:1.25;
}
.card__body{ display:flex; flex-direction:column; gap:10px; padding:16px 20px 20px; flex:1 1 auto; }
.card__kicker{ font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--accent-dark); }
main .card__title{ margin:0; font-family:inherit; font-size:17px; line-height:1.35; font-weight:600; text-wrap:balance; }
.card__title a{ color:var(--ink); text-decoration:none; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.card__title a::after{ content:""; position:absolute; inset:0; }
.card__title a:hover{ color:var(--accent); }
.card__text{ margin:0; font-size:14px; line-height:1.6; color:var(--text); display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.card__text p{ margin:0; }
.card__foot{ margin-top:auto; padding-top:6px; }

/* Aktualności na stronie głównej (mod_articles, układ „aktualności”): wpis główny — jasna karta z konturową datą
   (albo zdjęciem wprowadzenia), obok oś czasu kolejnych wpisów. */
.ak{ display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:24px; align-items:stretch; }
.ak--jeden{ grid-template-columns:1fr; }
.ak__glowny{
  position:relative; isolation:isolate; overflow:hidden; display:flex; flex-direction:column; justify-content:flex-end; min-height:380px;
  padding:clamp(26px,3.4vw,42px); border-radius:24px; background:var(--surface); border:1px solid var(--line); box-shadow:var(--shadow);
  transition:transform .2s var(--ease), box-shadow .2s var(--ease);
}
.ak__glowny::before{
  content:""; position:absolute; inset:0; z-index:-2; pointer-events:none;
  background:radial-gradient(120% 90% at 100% 0%, var(--accent-soft), transparent 55%), radial-gradient(90% 70% at 0% 100%, rgb(var(--tint-rgb) / .06), transparent 60%);
}
.ak__glowny::after{ content:""; position:absolute; left:0; top:0; right:0; height:4px; background:linear-gradient(90deg, var(--accent), var(--accent-on-dark) 60%, transparent); }
.ak__glowny:hover{ transform:translateY(-3px); box-shadow:var(--shadow-lg); }
.ak__glowny:focus-within{ outline:3px solid var(--accent); outline-offset:3px; }
.ak__tlo-dzien{
  position:absolute; right:-8px; top:-34px; z-index:-1; font-family:var(--font-head); font-size:clamp(170px,19vw,260px); font-weight:var(--fw-head-mocny); line-height:1;
  letter-spacing:var(--ls-head); color:transparent; -webkit-text-stroke:2px rgb(var(--accent-rgb) / .14); pointer-events:none; user-select:none;
}
.ak__glowny-tresc{ display:flex; flex-direction:column; gap:12px; max-width:56ch; }
.ak__glowny-tresc p{ margin:0; }
.ak__meta{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; font-size:13px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.ak__nowosc{
  display:inline-flex; align-items:center; padding:3px 10px; border-radius:999px; background:var(--accent-fill); color:#fff;
  font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; vertical-align:middle;
}
.ak__nowosc--mala{ padding:2px 8px; font-size:10px; }
main .ak__tytul{ margin:0; font-family:var(--font-head); font-size:clamp(23px,2.5vw,32px); line-height:1.15; font-weight:var(--fw-head); letter-spacing:var(--ls-head); text-wrap:balance; }
.ak__tytul a{ color:var(--ink); text-decoration:none; }
.ak__tytul a::after{ content:""; position:absolute; inset:0; z-index:1; }
.ak__tytul a:focus-visible{ outline:none; }
.ak__tekst{ font-size:16px; line-height:1.65; color:var(--text); display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; }
.ak__czytaj{ display:inline-flex; align-items:center; gap:8px; align-self:flex-start; margin-top:6px; color:var(--accent-dark); font-weight:700; font-size:15px; transition:gap .2s var(--ease); }
.ak__czytaj::after{ content:"→"; }
.ak__glowny:hover .ak__czytaj{ gap:12px; }
.ak__glowny--foto{ padding:0; justify-content:flex-start; }
.ak__glowny--foto::after{ display:none; }
.ak__foto{ aspect-ratio:16 / 9; overflow:hidden; }
.ak__foto img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s var(--ease); }
.ak__glowny--foto:hover .ak__foto img{ transform:scale(1.03); }
.ak__glowny--foto .ak__glowny-tresc{ padding:clamp(20px,2.6vw,30px); }

.ak__os{ position:relative; display:flex; flex-direction:column; gap:6px; margin:0; padding:0; list-style:none; }
.ak__os::before{ content:""; position:absolute; left:47px; top:34px; bottom:34px; width:2px; border-radius:2px; background:linear-gradient(var(--line-strong), var(--line) 80%, transparent); }
.ak__wpis{
  position:relative; flex:1 1 0; display:grid; grid-template-columns:58px minmax(0,1fr) auto; align-items:center; gap:18px;
  padding:16px 18px; border-radius:18px; border:1px solid transparent;
  transition:background .2s var(--ease), border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.ak__wpis:hover{ background:var(--surface); border-color:var(--line); box-shadow:var(--shadow); }
.ak__wpis:focus-within{ outline:3px solid var(--accent); outline-offset:2px; }
.ak__data{
  position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; justify-content:center; width:58px; height:62px;
  border-radius:15px; background:var(--surface); border:1px solid var(--line-strong); line-height:1;
  transition:background .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease);
}
.ak__dzien{ font-family:var(--font-head); font-size:22px; font-weight:var(--fw-head); color:var(--ink); font-variant-numeric:tabular-nums; }
.ak__mies{ margin-top:4px; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.ak__wpis:hover .ak__data{ background:var(--grad-cta); border-color:transparent; }
.ak__wpis:hover .ak__dzien,.ak__wpis:hover .ak__mies{ color:#fff; }
.ak__wpis-tresc{ display:flex; flex-direction:column; gap:4px; min-width:0; }
.ak__wpis-tresc p{ margin:0; }
main .ak__wpis-tytul{ margin:0; font-family:var(--font-head); font-size:16px; line-height:1.35; font-weight:var(--fw-head); letter-spacing:-.005em; }
.ak__wpis-tytul a{ color:var(--ink); text-decoration:none; }
.ak__wpis-tytul a::after{ content:""; position:absolute; inset:0; border-radius:inherit; }
.ak__wpis-tytul a:focus-visible{ outline:none; }
.ak__wpis:hover .ak__wpis-tytul a{ color:var(--accent-dark); }
.ak__wpis-tekst{ font-size:14px; line-height:1.5; color:var(--muted); display:-webkit-box; -webkit-line-clamp:1; -webkit-box-orient:vertical; overflow:hidden; }
.ak__strzalka{
  display:grid; place-items:center; width:36px; height:36px; border-radius:50%; border:1px solid var(--line-strong); color:var(--ink-2);
  opacity:0; transform:translateX(-6px); transition:opacity .2s var(--ease), transform .2s var(--ease);
}
.ak__strzalka svg{ width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.ak__wpis:hover .ak__strzalka,.ak__wpis:focus-within .ak__strzalka{ opacity:1; transform:none; }
.ak__wszystkie{ margin-top:24px; }

@media (max-width:900px){
  .ak{ grid-template-columns:1fr; }
  .ak__glowny{ min-height:0; padding-top:clamp(70px,16vw,110px); }
  .ak__glowny--foto{ padding-top:0; }
}
@media (max-width:480px){
  .ak__wpis{ grid-template-columns:50px minmax(0,1fr); gap:14px; padding:12px; }
  .ak__data{ width:50px; height:56px; border-radius:13px; }
  .ak__os::before{ left:36px; }
  .ak__strzalka{ display:none; }
  .ak__wpis-tekst{ display:none; }
}
@media (prefers-reduced-motion:reduce){ .ak__glowny:hover{ transform:none; } .ak__glowny--foto:hover .ak__foto img{ transform:none; } }

/* Projekty UE na stronie głównej (mod_articles, układ „projekty”; filtr — template.js [data-pu]).
   Wyróżniony projekt: duża karta w barwach kategorii; kolejne — lista kart obok. Kolory jak kafelki Projekty UE (.pk). */
.pu__el--0{ --pu-tlo:linear-gradient(140deg,var(--navy-900) 0%,var(--navy-700) 100%); --pu-ton:#4B4BD8; }
.pu__el--1{ --pu-tlo:linear-gradient(140deg,#123A4A 0%,#2E7D93 100%); --pu-ton:#2E7D93; }
.pu__el--2{ --pu-tlo:linear-gradient(140deg,#4A2740 0%,#8E5A7D 100%); --pu-ton:#8E5A7D; }
.pu__el--3{ --pu-tlo:linear-gradient(140deg,#243B2E 0%,#567A5A 100%); --pu-ton:#567A5A; }

.pu__filtr{ display:flex; flex-wrap:wrap; gap:8px; margin:0 0 22px; }
.pu__filtr[hidden]{ display:none; }
.pu__chip{
  display:inline-flex; align-items:center; gap:8px; min-height:40px; padding:0 8px 0 16px; border-radius:999px;
  border:1px solid var(--line-strong); background:var(--surface); color:var(--ink-2); font:inherit; font-size:14px; font-weight:600; cursor:pointer;
  transition:background .18s var(--ease), color .18s var(--ease), border-color .18s var(--ease);
}
.pu__chip span{ display:grid; place-items:center; min-width:26px; height:26px; padding:0 7px; border-radius:999px; background:var(--surface-2); color:var(--muted); font-size:12.5px; font-weight:700; font-variant-numeric:tabular-nums; }
.pu__chip:hover{ border-color:var(--accent); color:var(--ink); }
.pu__chip[aria-pressed="true"]{ background:var(--navy-900); border-color:var(--navy-900); color:#fff; }
.pu__chip[aria-pressed="true"] span{ background:rgba(255,255,255,.16); color:#fff; }

.pu__siatka{ display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:16px; margin:0; padding:0; list-style:none; }
.pu__el[hidden]{ display:none; }
.pu__el.is-wyrozniony{ grid-row:span 5; }
.pu__siatka[data-pu-ile="1"]{ grid-template-columns:1fr; }
.pu__siatka[data-pu-ile="1"] .is-wyrozniony,.pu__siatka[data-pu-ile="2"] .is-wyrozniony{ grid-row:auto; }
.pu__siatka[data-pu-ile="3"] .is-wyrozniony{ grid-row:span 2; }
.pu__siatka[data-pu-ile="4"] .is-wyrozniony{ grid-row:span 3; }
.pu__siatka[data-pu-ile="5"] .is-wyrozniony{ grid-row:span 4; }

/* Karta z listy: ikona w barwach kategorii, kategoria, tytuł, strzałka */
.pu__karta{
  position:relative; display:flex; align-items:center; gap:16px; height:100%; padding:16px 18px; border-radius:18px;
  background:var(--surface); border:1px solid var(--line); box-shadow:0 1px 2px rgb(var(--tint-rgb) / .04);
  transition:transform .2s var(--ease), box-shadow .2s var(--ease), border-color .2s var(--ease);
}
.pu__karta:hover{ transform:translateY(-2px); box-shadow:var(--shadow); border-color:var(--line-strong); }
.pu__karta:focus-within{ outline:3px solid var(--accent); outline-offset:2px; }
.pu__ikona{ flex:0 0 auto; display:grid; place-items:center; width:54px; height:54px; border-radius:15px; background:var(--pu-tlo); box-shadow:inset 0 0 0 1px rgba(255,255,255,.12); }
.pu__ikona .dz-ikona{ width:26px; height:26px; background-color:#fff; }
.pu__tresc{ display:flex; flex-direction:column; gap:4px; min-width:0; flex:1 1 auto; }
.pu__tresc p{ margin:0; }
.pu__kat{ font-size:11.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--accent-dark); }
main .pu__tytul{ margin:0; font-family:var(--font-head); font-size:16px; line-height:1.3; font-weight:var(--fw-head); letter-spacing:-.005em; }
.pu__tytul a{ color:var(--ink); text-decoration:none; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.pu__tytul a::after{ content:""; position:absolute; inset:0; border-radius:inherit; }
.pu__tytul a:focus-visible{ outline:none; }
.pu__tekst,.pu__wiecej{ display:none; }
.pu__strzalka{
  flex:0 0 auto; display:grid; place-items:center; width:38px; height:38px; border-radius:50%; border:1px solid var(--line-strong); color:var(--ink-2);
  transition:background .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease), transform .2s var(--ease);
}
.pu__strzalka svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.pu__karta:hover .pu__strzalka{ background:var(--grad-cta); border-color:transparent; color:#fff; transform:translateX(2px); }

/* Wyróżniony projekt: duża karta w barwach kategorii z siatką i poświatą jak w banerze */
.is-wyrozniony .pu__karta{
  flex-direction:column; align-items:flex-start; justify-content:space-between; gap:28px; min-height:340px; padding:clamp(24px,3vw,34px);
  overflow:hidden; isolation:isolate; border:0; background:var(--pu-tlo); color:#fff; box-shadow:var(--shadow-lg);
}
.is-wyrozniony .pu__karta::before{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(circle at 92% 8%, rgb(var(--accent-rgb) / .38), transparent 42%),
    linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px) 0 0 / 32px 32px,
    linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px) 0 0 / 32px 32px;
  -webkit-mask-image:linear-gradient(160deg, #000 10%, transparent 75%); mask-image:linear-gradient(160deg, #000 10%, transparent 75%);
}
.is-wyrozniony .pu__karta:hover{ transform:translateY(-3px); box-shadow:var(--shadow-lg); }
.is-wyrozniony .pu__ikona{ width:64px; height:64px; border-radius:18px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.22); backdrop-filter:blur(6px); }
.is-wyrozniony .pu__ikona .dz-ikona{ width:30px; height:30px; }
.is-wyrozniony .pu__tresc{ gap:10px; flex:0 0 auto; }
.is-wyrozniony .pu__kat{
  align-self:flex-start; padding:5px 11px; border-radius:999px; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.24);
  color:#fff; letter-spacing:.1em;
}
main .is-wyrozniony .pu__tytul{ font-size:clamp(22px,2.4vw,30px); line-height:1.15; letter-spacing:var(--ls-head); text-wrap:balance; }
.is-wyrozniony .pu__tytul a{ color:#fff; -webkit-line-clamp:3; }
.is-wyrozniony .pu__tekst{ display:block; max-width:52ch; font-size:15.5px; line-height:1.6; color:rgba(255,255,255,.82); }
.is-wyrozniony .pu__wiecej{
  display:inline-flex; align-items:center; gap:8px; align-self:flex-start; margin-top:10px; min-height:44px; padding:0 20px; border-radius:10px;
  background:#fff; color:var(--navy-900); font-size:14.5px; font-weight:700; transition:gap .2s var(--ease);
}
.is-wyrozniony .pu__wiecej::after{ content:"→"; }
.is-wyrozniony .pu__karta:hover .pu__wiecej{ gap:12px; }
.is-wyrozniony .pu__strzalka{ display:none; }
.pu__siatka[data-pu-ile="1"] .is-wyrozniony .pu__karta{ min-height:0; }

.pu__stopka{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:12px 24px; margin-top:24px; }
.pu__stopka .section__more{ margin:0; }
.pu__licznik{ color:var(--muted); font-weight:600; }
.pu__archiwum{ font-size:14.5px; font-weight:600; color:var(--muted); text-decoration:underline; text-underline-offset:4px; text-decoration-color:var(--line-strong); }
.pu__archiwum:hover{ color:var(--ink); }

@media (max-width:900px){
  .pu__siatka{ grid-template-columns:1fr; }
  .pu__el.is-wyrozniony,.pu__siatka[data-pu-ile] .is-wyrozniony{ grid-row:auto; }
  .is-wyrozniony .pu__karta{ min-height:0; }
}
@media (max-width:480px){
  .pu__filtr{ flex-wrap:nowrap; margin-inline:-16px; padding:2px 16px 6px; overflow-x:auto; scrollbar-width:none; }
  .pu__filtr::-webkit-scrollbar{ display:none; }
  .pu__chip{ flex:0 0 auto; }
  .pu__karta{ gap:12px; padding:14px; }
  .pu__ikona{ width:46px; height:46px; border-radius:13px; }
  .pu__strzalka{ display:none; }
}
@media (prefers-reduced-motion:reduce){ .pu__karta,.pu__karta:hover{ transform:none; } }

/* ---------- 11. Karty placówek (artykuł Kontakt) ---------- */
.pgrid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(290px,1fr)); gap:18px; margin:0 0 30px; }
.pcard{ display:flex; flex-direction:column; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; transition:box-shadow .2s, border-color .2s, transform .2s; }
.pcard:hover{ border-color:var(--line-strong, #C9CCE2); box-shadow:var(--shadow-lg); transform:translateY(-2px); }
.pcard__top{ padding:18px 20px 14px; border-bottom:1px solid var(--line); }
main .pcard__city{ margin:0 0 2px; font-family:var(--font-head); font-size:19px; letter-spacing:-.01em; line-height:1.15; font-weight:var(--fw-head); color:var(--ink); }
.pcard__unit{ margin:0; font-size:13px; line-height:1.4; color:var(--muted); }
.pcard__body{ display:flex; flex-direction:column; gap:6px; padding:16px 20px 18px; font-size:14px; line-height:1.5; }
.pcard__body p{ margin:0; }
/* Telefon i e-mail wyglądają jak linki — widać, że można kliknąć (zadzwonić, napisać) */
.pcard__body a{ display:inline-flex; min-height:28px; align-items:center; color:var(--accent-dark); font-weight:600; font-variant-numeric:tabular-nums; text-decoration:underline; text-decoration-color:rgba(201,50,0,.35); text-underline-offset:3px; overflow-wrap:anywhere; }
.pcard__body a:hover{ text-decoration-color:currentColor; }
.region__name{ margin:30px 0 14px; padding-bottom:10px; border-bottom:1px solid var(--line); font-size:13px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--ink); }

/* Artykuł: lead i listy w treści */
.lead{ padding-left:18px; border-left:3px solid var(--accent-soft); font-size:18.5px; line-height:1.6; color:var(--ink); font-weight:500; }
.com-content-article__body ul{ padding-left:1.2em; }
.com-content-article__body li{ margin-bottom:6px; }
.status-list{ list-style:none; padding:0 !important; }
.status-list li{ position:relative; padding-left:28px; }
.status-list li::before{ position:absolute; left:0; top:0; font-weight:700; }
.status-list--done li::before{ content:"✓"; color:var(--success); }
.status-list--todo li::before{ content:"○"; color:var(--muted); }
.callout{ margin:24px 0; padding:18px 20px; background:var(--accent-soft); border-radius:12px; color:var(--ink); }
.callout p{ margin:0; }

/* Strona błędu (error.php) — karta na jasnym tle, jak strona 404 serwisu zdz.kielce.pl */
.blad{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:28px; min-height:100vh; padding:40px 16px; }
.blad__karta{
  width:min(620px, 100%); padding:clamp(28px,5vw,48px) clamp(20px,5vw,52px); text-align:center;
  background:var(--surface); border:1px solid var(--line); border-radius:20px; box-shadow:var(--shadow-lg);
}
.blad__logo{ display:inline-block; margin-bottom:22px; }
.blad__logo img{ display:block; height:42px; width:auto; filter:var(--logo-filter); }
.blad__kod{
  margin:0; font-family:var(--font-head); font-size:clamp(84px,16vw,124px); font-weight:var(--fw-head); line-height:1; letter-spacing:var(--ls-head);
  background:var(--grad-brand); -webkit-background-clip:text; background-clip:text; color:var(--navy-700); -webkit-text-fill-color:transparent;
}
:root[data-theme="dark"] .blad__kod{ background:linear-gradient(90deg, #8C8CFF 0%, #B3B3FF 50%, #FF8A5C 100%); -webkit-background-clip:text; background-clip:text; }
main .blad__tytul{ margin:10px 0 10px; font-family:var(--font-head); font-size:clamp(22px,3vw,28px); font-weight:var(--fw-head); color:var(--ink); letter-spacing:var(--ls-head); }
.blad__opis{ max-width:44ch; margin:0 auto 26px; color:var(--text); }
.blad__przyciski{ display:flex; flex-wrap:wrap; justify-content:center; gap:12px; margin-bottom:26px; }
.blad__btn{
  display:inline-flex; align-items:center; gap:9px; min-height:46px; padding:0 22px; border-radius:12px;
  border:1px solid var(--line); background:var(--ghost); color:var(--navy-700);
  font-family:var(--font-head); font-size:15px; font-weight:600; text-decoration:none;
  transition:background .15s var(--ease), border-color .15s var(--ease), transform .15s var(--ease);
}
.blad__btn svg{ width:16px; height:16px; fill:none; stroke:var(--accent); stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
.blad__btn:hover{ border-color:var(--line-strong); transform:translateY(-1px); color:var(--navy-700); }
.blad__btn--glowny{ background:var(--navy-700); border-color:var(--navy-700); color:#fff; box-shadow:0 6px 18px rgb(var(--tint-rgb) / .22); }
.blad__btn--glowny svg{ stroke:#fff; }
.blad__btn--glowny:hover{ background:var(--navy-500); border-color:var(--navy-500); color:#fff; }
:root[data-theme="dark"] .blad__btn{ color:var(--ink); }
:root[data-theme="dark"] .blad__btn--glowny{ background:var(--navy-500); border-color:var(--navy-500); color:#fff; }
.blad__szukaj{ display:flex; max-width:440px; margin:0 auto 18px; border:1px solid var(--line); border-radius:999px; background:var(--surface-2); overflow:hidden; }
.blad__szukaj:focus-within{ border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
.blad__szukaj input{ flex:1 1 auto; min-width:0; height:46px; padding:0 18px; border:0; background:none; color:var(--ink); font:inherit; font-size:15px; }
.blad__szukaj input:focus{ outline:none; }
.blad__szukaj input::placeholder{ color:var(--muted); }
.blad__szukaj button{ flex:0 0 52px; display:grid; place-items:center; border:0; background:none; color:var(--accent-dark); cursor:pointer; }
.blad__szukaj button svg{ width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; }
.blad__skroty{ display:flex; flex-wrap:wrap; justify-content:center; gap:8px; margin:0; padding:0; list-style:none; }
.blad__skroty a{ display:inline-flex; align-items:center; min-height:34px; padding:0 14px; border:1px solid var(--line); border-radius:999px; color:var(--ink-2); font-size:14px; font-weight:600; text-decoration:none; }
.blad__skroty a:hover{ border-color:var(--accent); color:var(--accent-dark); }
.blad__stopka{ margin:0; text-align:center; font-size:13.5px; line-height:1.6; color:var(--muted); }
.blad__stopka b{ color:var(--ink-2); font-weight:600; }
.error-debug{ padding:16px; background:var(--surface-2); border-radius:10px; overflow:auto; font-size:13px; }

@media (prefers-reduced-motion: reduce){
  *{ transition:none !important; animation:none !important; }
}
@media print{
  .utility,.searchbar,.nav,.footer,.crumbs{ display:none !important; }
}

/* ── Strona działu (artykuł w układzie „dzial”): nagłówek, „Na tej stronie”, sekcje, karty, kroki, pas CTA ── */
.dz{ max-width:none; }
.dz-glowa{
  position:relative; overflow:hidden; margin:0 0 18px; padding:clamp(24px,4vw,44px) clamp(20px,4vw,48px);
  background:var(--surface); border:1px solid var(--line); border-radius:20px; box-shadow:var(--shadow);
}
.dz-glowa::after{ content:""; position:absolute; right:-120px; top:-120px; width:340px; height:340px; border-radius:50%;
  background:radial-gradient(circle, var(--accent-soft), transparent 70%); pointer-events:none; }
.dz-glowa > *{ position:relative; z-index:1; }
.dz-glowa__nad{ margin:0 0 10px; font-size:11.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--accent-dark); }
main .dz-glowa__tytul{ margin:0 0 14px; max-width:22ch; font-family:var(--font-head); font-size:var(--fs-h1); line-height:1.18; font-weight:var(--fw-head); letter-spacing:var(--ls-head); color:var(--ink); text-wrap:balance; }
.dz-glowa__wstep{ max-width:66ch; }
.dz-glowa__wstep .lead{ margin:0 0 20px; padding:0; border:0; font-size:clamp(17px,1.6vw,19px); line-height:1.6; color:var(--text); font-weight:400; }
.dz-glowa__wstep p:last-child{ margin-bottom:0; }
.dz-przyciski,.dz-glowa__wstep p:has(> .btn-primary, > .btn-ghost){ display:flex; flex-wrap:wrap; gap:10px; margin:0; }
.dz-fakty{ display:flex; flex-wrap:wrap; gap:10px 28px; margin:22px 0 0 !important; padding:18px 0 0; list-style:none; border-top:1px solid var(--line); }
.dz-fakty li{ display:flex; flex-direction:column; font-size:13px; color:var(--muted); }
.dz-fakty b{ font-family:var(--font-head); font-size:22px; line-height:1.15; color:var(--ink); }

.dz-spis{ display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; margin:0 0 8px; padding:12px 16px; background:var(--surface); border:1px solid var(--line); border-radius:14px; }
.dz-spis__tytul{ font-size:13px; font-weight:700; color:var(--muted); }
.dz-spis ul{ display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0; list-style:none; }
.dz-spis a{ display:inline-flex; min-height:34px; align-items:center; padding:0 14px; border:1px solid var(--line-strong); border-radius:999px; color:var(--ink-2); font-size:14px; font-weight:600; text-decoration:none; transition:border-color .15s var(--ease), color .15s var(--ease); }
.dz-spis a:hover{ border-color:var(--accent); color:var(--accent-dark); }

.dz-tresc{ font-size:16.5px; line-height:1.7; }
.dz-tresc > p,.dz-sekcja > p,.dz-sekcja > ul:not(.dz-chipy),.dz-sekcja > ol:not(.dz-kroki){ max-width:72ch; }
.dz-sekcja{ padding-top:clamp(32px,4vw,48px); }
main .dz-sekcja > h2{ margin:0 0 12px; font-family:var(--font-head); font-size:var(--fs-h2); line-height:var(--lh-head); letter-spacing:var(--ls-head); color:var(--ink); }
.dz [id]{ scroll-margin-top:110px; }

/* Karty — w treści: <div class="dz-karty"><div class="dz-karta"><h3>…</h3><p>…</p><a>…</a></div></div> */
.dz-karty{ display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); gap:16px; margin:18px 0 0; }
.dz-karta{ display:flex; flex-direction:column; gap:8px; padding:20px; background:var(--surface); border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow);
  transition:border-color .2s var(--ease), transform .2s var(--ease); }
.dz-karta:hover{ border-color:var(--line-strong); transform:translateY(-2px); }
.dz-karta:target{ border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft), var(--shadow); }
main .dz-karta h3,main .dz-karta__tytul{ margin:0; font-family:var(--font-head); font-size:var(--fs-h3); line-height:1.25; color:var(--ink); }
.dz-karta p,.dz-karta__opis{ margin:0; font-size:15px; line-height:1.6; color:var(--text); }
.dz-karta > a,.dz-karta__link{ margin-top:auto; padding-top:6px; align-self:flex-start; color:var(--accent-dark); font-weight:700; text-decoration:none; }
.dz-karta > a::after,.dz-karta__link::after{ content:" →"; }
.dz-karta > a:hover,.dz-karta__link:hover{ text-decoration:underline; text-underline-offset:3px; }
.dz-karta__fakty{ display:flex; flex-wrap:wrap; gap:6px; margin:0; padding:0; list-style:none; }
.dz-karta__fakty li{ padding:3px 9px; border-radius:7px; background:var(--accent-soft); color:var(--accent-dark); font-size:12px; font-weight:700; }

/* Pigułki — <ul class="dz-chipy"><li><a>…</a></li></ul> */
.dz-chipy{ display:flex; flex-wrap:wrap; gap:8px; margin:14px 0 0; padding:0; list-style:none; }
.dz-chipy a,.dz-chipy span{ display:inline-flex; align-items:center; min-height:36px; padding:0 14px; border:1px solid var(--line-strong); border-radius:999px; background:var(--surface); color:var(--ink-2); font-size:14px; font-weight:600; text-decoration:none; }
.dz-chipy a:hover{ border-color:var(--accent); color:var(--accent-dark); }

/* Kroki — <ol class="dz-kroki"><li><b>Tytuł</b> opis</li></ol> */
.dz-kroki{ display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr)); gap:16px; margin:18px 0 0; padding:0; list-style:none; counter-reset:dzk; }
.dz-kroki li{ position:relative; padding:48px 18px 18px; background:var(--surface); border:1px solid var(--line); border-radius:16px; font-size:15px; line-height:1.55; color:var(--text); counter-increment:dzk; }
.dz-kroki li::before{ content:counter(dzk); position:absolute; left:18px; top:14px; display:grid; place-items:center; width:26px; height:26px; border-radius:50%;
  background:var(--accent-fill); color:#fff; font-family:var(--font-head); font-size:13px; font-weight:var(--fw-head); }
.dz-kroki b{ display:block; margin-bottom:2px; color:var(--ink); }

/* Pas z wezwaniem — <div class="dz-cta"><p><b>…</b> …</p><p><a class="btn-primary">…</a></p></div> */
.dz-cta{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px 24px; margin:clamp(32px,4vw,48px) 0 0; padding:24px clamp(20px,3vw,32px);
  background:var(--grad-navy); border-radius:18px; color:rgba(255,255,255,.86); }
.dz-cta p{ margin:0; max-width:60ch; }
.dz-cta b{ display:block; font-family:var(--font-head); font-size:20px; color:#fff; }
.dz-cta p:has(> a){ display:flex; flex-wrap:wrap; gap:10px; }
.dz-cta .btn-ghost{ border-color:rgba(255,255,255,.4); color:#fff; background:transparent; }
.dz-cta a:not([class]){ color:#fff; }

/* Doradca i placówki z edu-system */
.dz-doradca{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 20px; margin:clamp(28px,4vw,40px) 0 0; padding:18px 22px;
  background:var(--surface); border:1px solid var(--line); border-left:4px solid var(--accent); border-radius:16px; box-shadow:var(--shadow); }
.dz-doradca__tekst{ margin:0; max-width:60ch; color:var(--text); }
.dz-doradca__tekst b{ display:block; font-family:var(--font-head); font-size:18px; color:var(--ink); }
.dz-placowki{ display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr)); gap:14px; margin:18px 0 0; }
.dz-placowka{ display:flex; flex-direction:column; gap:4px; padding:18px; background:var(--surface); border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow); font-size:14.5px; }
main .dz-placowka__miasto{ margin:0; font-family:var(--font-head); font-size:18px; color:var(--ink); }
.dz-placowka p{ margin:0; }
.dz-placowka__adres{ color:var(--muted); }
.dz-placowka__nazwa{ margin-top:6px !important; font-weight:600; color:var(--ink-2); }
.dz-placowka__kontakt{ display:flex; flex-wrap:wrap; gap:4px 14px; }
.dz-placowka a{ color:var(--accent-dark); font-weight:600; text-decoration:none; overflow-wrap:anywhere; }
.dz-placowka a:hover{ text-decoration:underline; }
.dz-placowka__trasa{ margin-top:6px; }
.dz-placowki__wiecej{ margin:12px 0 0; }
.dz-placowki__wiecej a{ color:var(--accent-dark); font-weight:700; }
.dz-placowki__wiecej a::after{ content:" →"; }

/* ── Strona działu: grafika — zdjęcie w nagłówku, karty ze zdjęciem, tekst + zdjęcie, ikony ── */
.dz-glowa--foto{ display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:clamp(20px,3vw,40px); align-items:center; padding-right:clamp(20px,2.5vw,28px); }
.dz-glowa--foto .dz-glowa__wstep{ max-width:none; }
.dz-glowa__foto{ position:relative; margin:0; aspect-ratio:4 / 3; border-radius:16px; overflow:hidden; box-shadow:0 18px 40px rgb(var(--base-rgb) / .18); }
.dz-glowa__foto img{ width:100%; height:100%; object-fit:cover; display:block; }
.dz-glowa__foto::after{ content:""; position:absolute; inset:auto 0 0 0; height:6px; background:var(--grad-brand); }
.dz-glowa--foto::after{ left:-120px; right:auto; }

.dz-karta--z-obrazem{ padding:0; overflow:hidden; }
.dz-karta--z-obrazem > :not(.dz-karta__obraz){ margin-inline:20px; }
.dz-karta--z-obrazem > :last-child{ margin-bottom:20px; }
.dz-karta__obraz{ display:block; width:100%; aspect-ratio:3 / 2; object-fit:cover; margin-bottom:6px; }
.dz-karta__obraz--brak{ display:grid; place-items:center; aspect-ratio:3 / 1.3; background:var(--grad-navy); position:relative; overflow:hidden; }
.dz-karta__obraz--brak::before{ content:""; position:absolute; right:-40px; top:-60px; width:200px; height:200px; border-radius:50%; background:radial-gradient(circle, rgb(var(--accent-rgb) / .35), transparent 70%); }
.dz-karta__obraz--brak .dz-ikona{ width:56px; height:56px; background-color:#fff; position:relative; }

.dz-split{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.9fr); gap:clamp(20px,3vw,36px); align-items:center; }
.dz-split > div > p{ max-width:60ch; }
.dz-split figure{ margin:0; border-radius:16px; overflow:hidden; box-shadow:var(--shadow-lg); }
.dz-split figure img{ display:block; width:100%; height:auto; aspect-ratio:3 / 2; object-fit:cover; }

/* Ikony (maska SVG) — <span class="dz-ikona dz-ikona--budynek|firma|online|szkola|matura|certyfikat|dziecko|muzyka"></span> */
.dz-ikona{ display:inline-block; width:44px; height:44px; flex:0 0 auto; background-color:var(--accent-dark);
  -webkit-mask:var(--ik) center / contain no-repeat; mask:var(--ik) center / contain no-repeat; }
.dz-karta > .dz-ikona{ width:40px; height:40px; padding:0; margin-bottom:4px; }
.dz-ikona--budynek{ --ik:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21h18M5 21V7l7-4 7 4v14M9 21v-5h6v5M9 10h.01M15 10h.01M9 13h.01M15 13h.01'/%3E%3C/svg%3E"); }
.dz-ikona--firma{ --ik:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21V10l5 3V10l5 3V6l8 4v11H3Z'/%3E%3Cpath d='M7 17h2M12 17h2M17 17h1'/%3E%3C/svg%3E"); }
.dz-ikona--online{ --ik:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='12' rx='2'/%3E%3Cpath d='M8 20h8M12 16v4M10 8.5l4 1.5-4 1.5v-3Z'/%3E%3C/svg%3E"); }
.dz-ikona--szkola{ --ik:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8.5 12 4l9 4.5-9 4.5-9-4.5Z'/%3E%3Cpath d='M7 11v4.6c0 .9 2.2 2.4 5 2.4s5-1.5 5-2.4V11M21 8.5V14'/%3E%3C/svg%3E"); }
.dz-ikona--matura{ --ik:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h11l5 5v11H4Z'/%3E%3Cpath d='M14 4v6h6M8 13h8M8 17h5'/%3E%3C/svg%3E"); }
.dz-ikona--certyfikat{ --ik:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='9' r='5'/%3E%3Cpath d='m9 13.5-1.5 7L12 18l4.5 2.5-1.5-7'/%3E%3C/svg%3E"); }
.dz-ikona--dziecko{ --ik:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 3 2.6 5.3 5.9.9-4.3 4.1 1 5.8L12 16.4 6.8 19.1l1-5.8L3.5 9.2l5.9-.9L12 3Z'/%3E%3C/svg%3E"); }
.dz-ikona--muzyka{ --ik:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 18V5l12-2v13'/%3E%3Ccircle cx='6' cy='18' r='3'/%3E%3Ccircle cx='18' cy='16' r='3'/%3E%3C/svg%3E"); }

@media (max-width:900px){
  .dz-glowa--foto{ grid-template-columns:1fr; padding-right:clamp(20px,4vw,48px); }
  .dz-glowa__foto{ order:-1; aspect-ratio:16 / 9; }
  .dz-split{ grid-template-columns:1fr; }
}

/* ── Projekty UE: kafelki kategorii i przełącznik na stronie kategorii ── */
.dz-ikona--zdrowie{ --ik:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20s-7-4.4-7-10a4 4 0 0 1 7-2.6A4 4 0 0 1 19 10c0 5.6-7 10-7 10Z'/%3E%3Cpath d='M9 11h2V9h2v2h2v2h-2v2h-2v-2H9Z'/%3E%3C/svg%3E"); }
.dz-ikona--narzedzia{ --ik:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a5 5 0 0 0-7 7l-4 4a1.5 1.5 0 0 0 2.1 2.1l4-4a5 5 0 0 0 7-7l-2.6 2.6-2.1-2.1L14.7 6.3Z'/%3E%3C/svg%3E"); }
.dz-ikona--partnerstwo{ --ik:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3Ccircle cx='16' cy='8' r='3'/%3E%3Cpath d='M2 20v-1a5 5 0 0 1 9-3M22 20v-1a5 5 0 0 0-9-3M9 17l3 2 3-2'/%3E%3C/svg%3E"); }
.dz-ikona--archiwum{ --ik:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='4' rx='1'/%3E%3Cpath d='M5 8v11a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V8M10 12h4'/%3E%3C/svg%3E"); }

.pk{ margin:0 0 clamp(28px,4vw,44px); }
.pk__siatka{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin:0; padding:0; list-style:none; }
.pk__karta{
  position:relative; isolation:isolate; display:flex; flex-direction:column; gap:8px; height:100%; min-height:200px; padding:22px 20px 18px;
  border-radius:18px; overflow:hidden; color:#fff; text-decoration:none; background:var(--pk-tlo);
  box-shadow:0 10px 26px rgb(var(--base-rgb) / .16); transition:transform .2s var(--ease), box-shadow .2s var(--ease);
}
.pk__karta::before{ content:""; position:absolute; z-index:-1; right:-70px; bottom:-90px; width:220px; height:220px; border-radius:50%; background:radial-gradient(circle, rgba(255,255,255,.18), transparent 68%); }
.pk__karta:hover{ transform:translateY(-4px); box-shadow:0 18px 38px rgb(var(--base-rgb) / .24); color:#fff; }
.pk__karta:focus-visible{ outline:3px solid var(--accent); outline-offset:3px; }
/* Kolory kafelków — granat marki i trzy stonowane odcienie, jak motywy banera */
.pk__el--0 .pk__karta{ --pk-tlo:linear-gradient(140deg,var(--navy-900) 0%,var(--navy-700) 100%); }
.pk__el--1 .pk__karta{ --pk-tlo:linear-gradient(140deg,#123A4A 0%,#2E7D93 100%); }
.pk__el--2 .pk__karta{ --pk-tlo:linear-gradient(140deg,#4A2740 0%,#8E5A7D 100%); }
.pk__el--3 .pk__karta{ --pk-tlo:linear-gradient(140deg,#243B2E 0%,#567A5A 100%); }
.pk__el--archiwum .pk__karta{ --pk-tlo:linear-gradient(140deg,#3A3A55 0%,#6A6A88 100%); }
.pk__foto{ position:absolute; z-index:-2; inset:0; width:100%; height:100%; object-fit:cover; }
.pk__el--foto .pk__karta{ background:none; }
.pk__el--foto .pk__karta::after{ content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(to top, rgb(var(--base-rgb) / .92) 0%, rgb(var(--base-rgb) / .55) 55%, rgb(var(--base-rgb) / .25) 100%); }
.pk__ikona{ display:grid; place-items:center; width:48px; height:48px; margin-bottom:6px; border-radius:14px; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.22); }
.pk__ikona .dz-ikona{ width:26px; height:26px; background-color:#fff; }
.pk__tytul{ font-family:var(--font-head); font-size:18px; line-height:1.25; font-weight:var(--fw-head); }
.pk__opis{ font-size:14px; line-height:1.5; color:rgba(255,255,255,.82); }
.pk__licznik{ margin-top:auto; padding-top:8px; align-self:flex-start; display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:700; color:var(--accent-on-dark); }
.pk__licznik::after{ content:"→"; transition:transform .2s var(--ease); }
.pk__karta:hover .pk__licznik::after{ transform:translateX(4px); }
main .pk__lista-tytul{ margin:0 0 18px; font-family:var(--font-head); font-size:var(--fs-h2); color:var(--ink); }

.pk-przelacz{ margin:0 0 24px; }
.pk-przelacz ul{ display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0; list-style:none; }
.pk-przelacz a{ display:inline-flex; align-items:center; gap:8px; min-height:40px; padding:0 16px; border:1px solid var(--line-strong); border-radius:999px; background:var(--surface);
  color:var(--ink-2); font-size:14px; font-weight:600; text-decoration:none; transition:border-color .15s var(--ease), color .15s var(--ease); }
.pk-przelacz a .dz-ikona{ width:18px; height:18px; background-color:currentColor; }
.pk-przelacz a:hover{ border-color:var(--accent); color:var(--accent-dark); }
.pk-przelacz a.is-on{ background:var(--navy-700); border-color:var(--navy-700); color:#fff; }
:root[data-theme="dark"] .pk-przelacz a.is-on{ background:var(--navy-500); border-color:var(--navy-500); }

@media (max-width:1100px){ .pk__siatka{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px){
  .pk__siatka{ grid-template-columns:1fr; gap:10px; }
  .pk__karta{ min-height:0; flex-direction:row; flex-wrap:wrap; align-items:center; gap:4px 14px; padding:16px; }
  .pk__ikona{ margin:0; width:44px; height:44px; }
  .pk__tytul{ flex:1 1 0; min-width:0; }
  .pk__opis{ flex:1 1 100%; }
  .pk__licznik{ margin-top:0; }
}

/* ==========================================================================
   Panel „Wygląd” (wersja demonstracyjna): warianty kolorystyczne, szerokości, nagłówek pierwotny, sam panel.
   Atrybuty <html data-akcent / data-szerokosc> i klasę body.naglowek-pierwotny ustawia index.php (Wyglad.php).
   ========================================================================== */

/* Kolorystyka — cała strona: kolor bazowy (granatowe pasy, stopka, nakładki na zdjęciach, cienie, linie) i akcent.
   Palety podmieniają kolory bazowe i kanały RGB; tokeny pochodne (--grad-navy, --accent-soft, --line, --shadow…)
   liczą się z nich same. Tekst i wypełnienia z białym tekstem — kontrast ≥ 4,5:1 jak w palecie domyślnej. */
:root[data-akcent="grafit"]{
  --navy-900:#141518; --navy-700:#3A3D44; --navy-500:#4B4F57; --base-rgb:20 21 24; --tint-rgb:39 39 42;
  --ink:#18181B; --ink-2:#27272A; --text:#45454D; --muted:#63636D;
  --page:#F2F2F3; --surface-2:#F7F7F8;
}
:root[data-akcent="blekit"]{
  --navy-900:#06173A; --navy-700:#1E3A8A; --navy-500:#2B50B8; --base-rgb:6 23 58; --tint-rgb:30 58 138;
  --accent:#2563EB; --accent-rgb:37 99 235; --accent-dark:#1D4ED8; --accent-on-dark:#9DB8FF;
  --accent-fill:#1D4ED8; --accent-fill-hover:#1E40AF; --grad-cta:#1D4ED8; --grad-cta-hover:#1E40AF;
  --page:#EFF3FB; --surface-2:#F5F8FE;
}
:root[data-akcent="zielen"]{
  --navy-900:#042418; --navy-700:#14532D; --navy-500:#1D6B3C; --base-rgb:4 36 24; --tint-rgb:20 83 45;
  --accent:#16A34A; --accent-rgb:22 163 74; --accent-dark:#15803D; --accent-on-dark:#7DE3A6;
  --accent-fill:#15803D; --accent-fill-hover:#166534; --grad-cta:#15803D; --grad-cta-hover:#166534;
  --page:#EFF6F2; --surface-2:#F4FAF6;
}
:root[data-akcent="fiolet"]{
  --navy-900:#190A33; --navy-700:#4C1D95; --navy-500:#5B2BB5; --base-rgb:25 10 51; --tint-rgb:76 29 149;
  --accent:#7C3AED; --accent-rgb:124 58 237; --accent-dark:#6D28D9; --accent-on-dark:#C9B8FF;
  --accent-fill:#6D28D9; --accent-fill-hover:#5B21B6; --grad-cta:#6D28D9; --grad-cta-hover:#5B21B6;
  --page:#F4F1FB; --surface-2:#F9F7FE;
}
/* Ciemny motyw: tła w odcieniu palety, akcent w tekście jaśniejszy */
:root[data-theme="dark"][data-akcent="grafit"]{
  --page:#0B0B0D; --surface:#18181B; --surface-2:#222226;
  --ink:#F4F4F5; --ink-2:#E4E4E7; --text:#C4C4CC; --muted:#9D9DA8;
}
:root[data-theme="dark"][data-akcent="blekit"]{ --page:#020A1C; --surface:#0B1A3A; --surface-2:#12244B; --accent-dark:#9DB8FF; }
:root[data-theme="dark"][data-akcent="zielen"]{ --page:#01120B; --surface:#0A2418; --surface-2:#113022; --accent-dark:#7DE3A6; }
:root[data-theme="dark"][data-akcent="fiolet"]{ --page:#0C0519; --surface:#1D1038; --surface-2:#271848; --accent-dark:#C9B8FF; }
/* Szarość #D0D0D0 — monochromatyczna. Jasny motyw: #D0D0D0 jako tło strony, białe karty, grafitowe pasy i przyciski,
   akcenty szare (tekst akcentu ciemnoszary). Ciemny motyw: #D0D0D0 jako tekst i akcent na grafitowym tle.
   Kontrast: tekst #3F3F3F na #D0D0D0 6,8:1, drobne napisy #4D4D4D 5,5:1, biały na przycisku #3D3D3D 11:1. */
:root[data-akcent="szary"]{
  --navy-900:#1F1F1F; --navy-700:#454545; --navy-500:#5A5A5A; --base-rgb:26 26 26; --tint-rgb:40 40 40;
  --accent:#8C8C8C; --accent-rgb:208 208 208; --accent-dark:#3D3D3D; --accent-on-dark:#D0D0D0; --accent-soft:rgba(0,0,0,.06);
  --accent-fill:#3D3D3D; --accent-fill-hover:#262626; --grad-cta:#3D3D3D; --grad-cta-hover:#262626; --shadow-cta:0 4px 14px rgba(0,0,0,.22);
  --ink:#141414; --ink-2:#222222; --text:#3F3F3F; --muted:#4D4D4D;
  --page:#D0D0D0; --surface:#FFFFFF; --surface-2:#EDEDED;
}
:root[data-theme="dark"][data-akcent="szary"]{
  --navy-900:#0E0E0E; --navy-700:#2C2C2C; --navy-500:#3A3A3A; --base-rgb:10 10 10; --tint-rgb:208 208 208;
  --accent:#D0D0D0; --accent-dark:#D0D0D0; --accent-on-dark:#D0D0D0; --accent-soft:rgba(208,208,208,.12);
  --accent-fill:#5C5C5C; --accent-fill-hover:#6E6E6E; --grad-cta:#5C5C5C; --grad-cta-hover:#6E6E6E;
  --ink:#F2F2F2; --ink-2:#E2E2E2; --text:#D0D0D0; --muted:#A6A6A6;
  --page:#161616; --surface:#222222; --surface-2:#2C2C2C;
}
/* Stonowane: chłodna szarość (łupek) z morskim, ciepła szarość z terakotą, szałwia z miodem — szarości także w tekstach */
:root[data-akcent="lupek"]{
  --navy-900:#0F172A; --navy-700:#334155; --navy-500:#475569; --base-rgb:15 23 42; --tint-rgb:51 65 85;
  --accent:#14B8A6; --accent-rgb:20 184 166; --accent-dark:#0F766E; --accent-on-dark:#5EEAD4;
  --accent-fill:#0F766E; --accent-fill-hover:#115E59; --grad-cta:#0F766E; --grad-cta-hover:#115E59;
  --ink:#0F172A; --ink-2:#1E293B; --text:#475569; --muted:#5E6E82;
  --page:#F1F5F9; --surface-2:#F8FAFC;
}
:root[data-akcent="kamien"]{
  --navy-900:#1C1917; --navy-700:#44403C; --navy-500:#57534E; --base-rgb:28 25 23; --tint-rgb:68 64 60;
  --accent:#EA580C; --accent-rgb:234 88 12; --accent-dark:#C2410C; --accent-on-dark:#FDBA74;
  --accent-fill:#C2410C; --accent-fill-hover:#9A3412; --grad-cta:#C2410C; --grad-cta-hover:#9A3412;
  --ink:#1C1917; --ink-2:#292524; --text:#57534E; --muted:#6B6560;
  --page:#F5F5F4; --surface-2:#FAFAF9;
}
:root[data-akcent="szalwia"]{
  --navy-900:#16211B; --navy-700:#3F5A4C; --navy-500:#4F6E5D; --base-rgb:22 33 27; --tint-rgb:63 90 76;
  --accent:#D97706; --accent-rgb:217 119 6; --accent-dark:#B45309; --accent-on-dark:#FCD34D;
  --accent-fill:#B45309; --accent-fill-hover:#92400E; --grad-cta:#B45309; --grad-cta-hover:#92400E;
  --ink:#1A2620; --ink-2:#26352D; --text:#4A5A51; --muted:#5E6E64;
  --page:#F2F5F2; --surface-2:#F8FAF8;
}
/* Kolorowe: morski, bordo */
:root[data-akcent="morski"]{
  --navy-900:#062A3A; --navy-700:#0E5E78; --navy-500:#137490; --base-rgb:6 42 58; --tint-rgb:14 94 120;
  --accent:#0891B2; --accent-rgb:8 145 178; --accent-dark:#0E7490; --accent-on-dark:#67E8F9;
  --accent-fill:#0E7490; --accent-fill-hover:#155E75; --grad-cta:#0E7490; --grad-cta-hover:#155E75;
  --page:#EFF6F8; --surface-2:#F5FAFB;
}
:root[data-akcent="bordo"]{
  --navy-900:#2A0A14; --navy-700:#6B1A2E; --navy-500:#82233B; --base-rgb:42 10 20; --tint-rgb:107 26 46;
  --accent:#E11D48; --accent-rgb:225 29 72; --accent-dark:#BE123C; --accent-on-dark:#FDA4AF;
  --accent-fill:#BE123C; --accent-fill-hover:#9F1239; --grad-cta:#BE123C; --grad-cta-hover:#9F1239;
  --page:#FAF2F4; --surface-2:#FDF7F8;
}
:root[data-theme="dark"][data-akcent="lupek"]{
  --page:#070C17; --surface:#111A2C; --surface-2:#18233A; --accent-dark:#5EEAD4;
  --ink:#F1F5F9; --ink-2:#E2E8F0; --text:#CBD5E1; --muted:#94A3B8;
}
:root[data-theme="dark"][data-akcent="kamien"]{
  --page:#0C0A09; --surface:#1C1917; --surface-2:#292524; --accent-dark:#FDBA74;
  --ink:#F5F5F4; --ink-2:#E7E5E4; --text:#D6D3D1; --muted:#A8A29E;
}
:root[data-theme="dark"][data-akcent="szalwia"]{
  --page:#0A100C; --surface:#16211B; --surface-2:#1F2D25; --accent-dark:#FCD34D;
  --ink:#EEF3EF; --ink-2:#DDE6E0; --text:#C3CFC7; --muted:#94A69A;
}
:root[data-theme="dark"][data-akcent="morski"]{ --page:#021821; --surface:#08283A; --surface-2:#0E3347; --accent-dark:#67E8F9; }
:root[data-theme="dark"][data-akcent="bordo"]{ --page:#14060A; --surface:#2A0F18; --surface-2:#361521; --accent-dark:#FDA4AF; }

/* Szerokość treści */
:root[data-szerokosc="waska"]{ --wrap:1080px; }
:root[data-szerokosc="szeroka"]{ --wrap:1320px; }
:root[data-szerokosc="pelna"]{ --wrap:1480px; }

/* Nagłówek pierwotny (sprzed przebudowy): „Szukaj” i motyw w pasku narzędzi, sam logotyp w pasku marki,
   podkreślenie zamiast pastylki w menu, panel podmenu przyklejony do paska */
.naglowek-pierwotny .utility .wrap{ justify-content:flex-end; min-height:40px; }
.naglowek-pierwotny .utility__list{ margin-left:0 !important; }
.naglowek-pierwotny .utility__nav .utility-nav{ margin-left:0; }
.naglowek-pierwotny .utility-nav a,.naglowek-pierwotny .utility__link{ padding:7px 10px; border-radius:7px; font-size:13px; }
.naglowek-pierwotny .brandbar .wrap{ padding-top:16px; padding-bottom:16px; }
.naglowek-pierwotny .menu__link{ min-height:52px; }
.naglowek-pierwotny .menu__link::before{ display:none; }
.naglowek-pierwotny .menu__link:hover,.naglowek-pierwotny .menu__item.is-open > .menu__link{ color:var(--accent-dark); }
.naglowek-pierwotny .menu__link:hover::after,.naglowek-pierwotny .menu__item.is-open > .menu__link::after{ transform:scaleX(1) !important; }
.naglowek-pierwotny .menu__toggle:hover,.naglowek-pierwotny .menu__item.is-open > .menu__toggle{ background:var(--accent-soft); }
.naglowek-pierwotny .mega{ top:100%; padding:26px 28px; border-radius:0 0 14px 14px; box-shadow:0 18px 48px rgb(var(--base-rgb) / .18); }
.naglowek-pierwotny .mega::before{ display:none; }
.naglowek-pierwotny .nav.is-stuck{ background:var(--surface); -webkit-backdrop-filter:none; backdrop-filter:none; }
.naglowek-pierwotny .demo-bar{ background:var(--surface); border-bottom:1px solid rgb(var(--accent-rgb) / .3); color:var(--ink); font-size:13.5px; }
.naglowek-pierwotny .demo-bar .wrap{ padding-top:9px; padding-bottom:9px; }
.naglowek-pierwotny .demo-bar b{ display:inline; margin:0; padding:0; border-radius:0; background:none; color:inherit; font-size:inherit; letter-spacing:0; text-transform:none; }
@media (max-width:1100px){ .naglowek-pierwotny .brandbar__akcje{ margin-left:0; } }

/* Wezwanie na końcu strony — wariant pierwotny: treść modułu (z nowym markupem) w dawnym banerze .cta-end */
.cta-end .ce__nad{ display:none; }
.cta-end .ce__przyciski{ display:flex; flex-wrap:wrap; justify-content:center; gap:12px; margin-top:26px; }
.cta-end .ce__przyciski .btn-light{
  display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:48px; padding:0 24px; border-radius:9px;
  border:1px solid rgba(255,255,255,.35); color:#fff; font-weight:600; text-decoration:none;
}

/* Uchwyt panelu — pionowa zakładka przy lewej krawędzi ekranu */
.wp-uchwyt{
  position:fixed; left:0; bottom:120px; z-index:900; display:flex; flex-direction:column; align-items:center; gap:8px;
  padding:14px 9px 14px 8px; border:0; border-radius:0 14px 14px 0;
  background:var(--navy-900); color:#fff; box-shadow:0 10px 30px rgb(var(--base-rgb) / .3); cursor:pointer;
  font:inherit; font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  transition:padding .2s var(--ease), background .2s var(--ease);
}
.wp-uchwyt[hidden]{ display:none; }
.wp-uchwyt:hover{ padding-left:12px; background:var(--navy-700); }
.wp-uchwyt:focus-visible{ outline:3px solid var(--accent); outline-offset:2px; }
.wp-uchwyt svg{ width:20px; height:20px; fill:none; stroke:var(--accent-on-dark); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.wp-uchwyt span{ writing-mode:vertical-rl; transform:rotate(180deg); }

.wp-tlo{ position:fixed; inset:0; z-index:950; background:rgb(var(--base-rgb) / .4); opacity:0; transition:opacity .3s var(--ease); }
.wp-tlo[hidden]{ display:none; }
.wp-tlo.is-open{ opacity:1; }

/* Panel */
.wp{
  position:fixed; left:0; top:0; bottom:0; z-index:1000; display:flex; flex-direction:column; width:min(380px, 92vw);
  background:var(--surface); color:var(--ink); box-shadow:24px 0 60px rgb(var(--base-rgb) / .25);
  transform:translateX(-102%); transition:transform .3s var(--ease);
}
.wp[hidden]{ display:none; }
.wp.is-open{ transform:none; }
.wp.is-bez-animacji{ transition:none; }
.wp__glowa{
  position:relative; overflow:hidden; isolation:isolate; display:flex; align-items:flex-start; justify-content:space-between; gap:12px;
  padding:22px 22px 20px; background:var(--grad-navy); color:rgba(255,255,255,.8);
}
.wp__glowa::before{ content:""; position:absolute; right:-70px; top:-90px; z-index:-1; width:220px; height:220px; border-radius:50%; background:radial-gradient(circle, rgb(var(--accent-rgb) / .35), transparent 68%); }
.wp__glowa p{ margin:0; }
.wp__tytul{ margin:0 0 4px; font-family:var(--font-head); font-size:20px; font-weight:var(--fw-head); color:#fff; letter-spacing:-.01em; }
.wp__opis{ font-size:13.5px; line-height:1.45; }
.wp__zamknij{ flex:0 0 auto; display:grid; place-items:center; width:36px; height:36px; padding:0; border:1px solid rgba(255,255,255,.3); border-radius:50%; background:transparent; color:#fff; font-size:22px; line-height:1; cursor:pointer; }
.wp__zamknij:hover{ background:rgba(255,255,255,.12); }
.wp__zamknij:focus-visible{ outline:3px solid #fff; outline-offset:2px; }

.wp__tresc{ flex:1 1 auto; overflow-y:auto; overscroll-behavior:contain; padding:6px 22px 22px; }
.wp__grupa{ margin:0; padding:0 0 4px; border:0; border-bottom:1px solid var(--line); min-width:0; }
.wp__grupa:last-child{ border-bottom:0; }
.wp__etykieta{ float:left; width:100%; padding:0; margin:18px 0 10px; font-size:11.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.wp__etykieta + *{ clear:both; }
.wp__sekcja{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:8px 0; }
.wp__sekcja-nazwa{ font-size:14px; font-weight:600; color:var(--ink-2); }
.wp__przelacznik{ flex:0 0 auto; display:inline-flex; padding:3px; border-radius:999px; background:var(--surface-2); border:1px solid var(--line); }
.wp__przelacznik label{ position:relative; cursor:pointer; }
.wp__przelacznik input,.wp__probka input,.wp__szerokosc input{ position:absolute; opacity:0; width:1px; height:1px; }
.wp__przelacznik span{ display:block; padding:5px 11px; border-radius:999px; font-size:12.5px; font-weight:700; color:var(--muted); transition:background .16s var(--ease), color .16s var(--ease); }
.wp__przelacznik input:checked + span{ background:var(--navy-900); color:#fff; }
:root[data-theme="dark"] .wp__przelacznik input:checked + span{ background:var(--accent-fill); }
.wp__przelacznik input:focus-visible + span,.wp__probka input:focus-visible ~ .wp__kolor,.wp__szerokosc input:focus-visible + span{ outline:3px solid var(--accent); outline-offset:2px; }

.wp__probki{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding-bottom:14px; }
.wp__probka{ position:relative; display:flex; align-items:center; gap:10px; padding:8px 10px; border-radius:12px; border:1.5px solid var(--line); cursor:pointer; font-size:13.5px; font-weight:600; color:var(--ink-2); transition:border-color .16s var(--ease); }
.wp__probka:hover{ border-color:var(--line-strong); }
.wp__probka:has(input:checked){ border-color:var(--ink); }
.wp__kolor{ flex:0 0 auto; width:28px; height:28px; border-radius:50%; background:linear-gradient(135deg, var(--baza) 0 50%, var(--probka) 50% 100%); box-shadow:inset 0 0 0 2px rgba(255,255,255,.4); }

.wp__kroje{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding-bottom:14px; }
.wp__kroj{ position:relative; cursor:pointer; }
.wp__kroj input{ position:absolute; opacity:0; width:1px; height:1px; }
.wp__kroj span{ display:flex; align-items:center; gap:10px; padding:8px 10px; border-radius:12px; border:1.5px solid var(--line); transition:border-color .16s var(--ease), background .16s var(--ease); }
.wp__kroj b{ flex:0 0 auto; width:34px; font-size:21px; font-weight:700; line-height:1; color:var(--ink); }
.wp__kroj small{ font-size:12.5px; font-weight:600; line-height:1.25; color:var(--ink-2); }
.wp__kroj:hover span{ border-color:var(--line-strong); }
.wp__kroj input:checked + span{ border-color:var(--ink); background:var(--surface-2); }
.wp__kroj input:focus-visible + span{ outline:3px solid var(--accent); outline-offset:2px; }
.wp__szerokosci{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding-bottom:14px; }
.wp__szerokosc{ position:relative; cursor:pointer; }
.wp__szerokosc span{ display:flex; flex-direction:column; gap:1px; padding:9px 12px; border-radius:12px; border:1.5px solid var(--line); transition:border-color .16s var(--ease), background .16s var(--ease); }
.wp__szerokosc b{ font-size:13.5px; color:var(--ink-2); }
.wp__szerokosc small{ font-size:12px; color:var(--muted); font-variant-numeric:tabular-nums; }
.wp__szerokosc:hover span{ border-color:var(--line-strong); }
.wp__szerokosc input:checked + span{ border-color:var(--ink); background:var(--surface-2); }

.wp__stopka{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 22px; border-top:1px solid var(--line); background:var(--surface-2); }
.wp__info{ margin:0; font-size:13px; color:var(--muted); }
.wp__reset{ margin-left:auto; padding:9px 14px; border:1px solid var(--line-strong); border-radius:10px; background:var(--surface); color:var(--ink-2); font:inherit; font-size:13.5px; font-weight:700; cursor:pointer; }
.wp__reset:hover{ border-color:var(--accent); color:var(--accent-dark); }

@media (max-width:600px){
  .wp-uchwyt{ top:auto; bottom:84px; padding:10px 8px; }
  .wp-uchwyt span{ display:none; }
}
@media (prefers-reduced-motion:reduce){ .wp,.wp-tlo{ transition:none; } }
@media print{ .wp-uchwyt,.wp,.wp-tlo{ display:none !important; } }

/* ==========================================================================
   Artykuł — „blog detail” (html/com_content/article/default.php): nagłówek na jasnym gradiencie na całą szerokość
   okna, treść, galeria (plugin pól zdzgaleria) i udostępnianie; w Aktualnościach i Projektach UE kolumna boczna.
   ========================================================================== */
.ab__glowa{
  position:relative; isolation:isolate; margin:-36px calc(50% - 50vw) 36px; padding:clamp(28px,5vw,56px) 16px clamp(30px,5vw,58px);
  background:linear-gradient(110deg, rgb(var(--tint-rgb) / .07), rgb(var(--accent-rgb) / .08) 55%, rgb(var(--tint-rgb) / .05)), var(--surface);
  border-bottom:1px solid var(--line); text-align:center;
}
.ab__glowa::before{ content:""; position:absolute; inset:0; z-index:-1; background:radial-gradient(600px 220px at 85% 0%, rgb(var(--accent-rgb) / .14), transparent 70%), radial-gradient(520px 220px at 10% 100%, rgb(var(--tint-rgb) / .1), transparent 70%); }
.ab__glowa-wnetrze{ display:flex; flex-direction:column; align-items:center; gap:12px; max-width:860px; margin:0 auto; }
.ab__okruszki .breadcrumb,.ab__okruszki ol{ justify-content:center; margin:0; padding:0 !important; background:none; font-size:13px; }
.ab__okruszki{ max-width:100%; }
.ab__okruszki ol{ flex-wrap:wrap; row-gap:4px; }
/* Ostatni element (tytuł artykułu — powtórzony niżej w nagłówku) skrócony wielokropkiem */
.ab__okruszki li:last-child{ min-width:0; max-width:42ch; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
@media (max-width:600px){ .ab__okruszki li:last-child{ display:none; } }
.ab__kategoria{ padding:5px 13px; border-radius:999px; background:var(--accent-soft); color:var(--accent-dark); font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; text-decoration:none; }
.ab__kategoria:hover{ background:var(--grad-cta); color:#fff; }
main .ab__tytul{ margin:0; font-size:clamp(26px,3.6vw,42px); line-height:1.15; text-wrap:balance; }
.ab__meta{ display:flex; flex-wrap:wrap; justify-content:center; gap:4px 10px; margin:0; font-size:14.5px; color:var(--muted); }

.ab__uklad{ display:grid; grid-template-columns:minmax(0,1fr); gap:36px; max-width:860px; margin:0 auto; }
.ab--blog .ab__uklad{ grid-template-columns:minmax(0,1fr) 320px; max-width:none; align-items:start; }
.ab__glowna{ min-width:0; }
.ab__foto{ margin:0 0 26px; }
/* Zdjęcie artykułu w całości — bez przycinania; pionowe (plakaty) ograniczone wysokością i wyśrodkowane na tle */
.ab__foto{ display:flex; justify-content:center; overflow:hidden; border-radius:20px; background:var(--surface-2); box-shadow:var(--shadow); }
.ab__foto img{ display:block; width:auto; max-width:100%; height:auto; max-height:min(80vh, 760px); object-fit:contain; }
.ab__foto:has(figcaption){ flex-direction:column; align-items:center; }
.ab__foto figcaption{ align-self:stretch; padding:8px 14px 10px; font-size:13.5px; color:var(--muted); background:var(--surface); }
.ab__tresc{ font-size:17px; line-height:1.75; color:var(--text); }
.ab__tresc > :first-child{ margin-top:0; }
.ab__tresc p{ margin:0 0 1.1em; }
.ab__tresc a{ color:var(--accent-dark); text-underline-offset:3px; }
.ab__tresc img{ max-width:100%; height:auto; border-radius:12px; }
.ab__tresc ul,.ab__tresc ol{ padding-left:1.3em; margin:0 0 1.1em; }
.ab__tresc li{ margin-bottom:.4em; }
.ab__tresc blockquote{ margin:1.4em 0; padding:14px 20px; border-left:4px solid var(--accent); background:var(--surface-2); border-radius:0 12px 12px 0; color:var(--ink-2); }

main .ab__sekcja-tytul{ margin:36px 0 14px; font-size:20px; }
.ab__galeria{ margin-top:8px; }

.ab__udostepnij{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:32px; padding-top:20px; border-top:1px solid var(--line); }
.ab__udostepnij-tytul{ margin-right:6px; font-size:13px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.ab__udostepnij a,.ab__udostepnij button{
  display:grid; place-items:center; width:40px; height:40px; padding:0; border-radius:50%; border:1px solid var(--line-strong);
  background:var(--surface); color:var(--ink-2); cursor:pointer; transition:background .18s var(--ease), color .18s var(--ease), border-color .18s var(--ease);
}
.ab__udostepnij a:hover,.ab__udostepnij button:hover{ background:var(--grad-cta); border-color:transparent; color:#fff; }
.ab__udostepnij svg{ width:18px; height:18px; fill:currentColor; }
.ab__udostepnij .ab__ikona-linia{ fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.ab__skopiowano{ font-size:13px; color:var(--success); }

/* Kolumna boczna */
.ab__bok{ position:sticky; top:96px; display:grid; gap:18px; }
.ab__karta{ padding:20px; border-radius:18px; background:var(--surface); border:1px solid var(--line); box-shadow:0 1px 2px rgb(var(--tint-rgb) / .04); }
main .ab__karta-tytul{ margin:0 0 14px; font-size:16px; }
.ab__szukaj{ display:flex; border:1px solid var(--line-strong); border-radius:12px; overflow:hidden; background:var(--surface-2); }
.ab__szukaj:focus-within{ border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
.ab__szukaj input{ flex:1 1 auto; min-width:0; height:44px; padding:0 12px; border:0; background:none; color:var(--ink); font:inherit; font-size:14.5px; }
.ab__szukaj input:focus{ outline:none; }
.ab__szukaj button{ flex:0 0 46px; display:grid; place-items:center; border:0; background:var(--grad-cta); color:#fff; cursor:pointer; }
.ab__szukaj svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; }
.ab__wpisy{ display:grid; gap:14px; margin:0; padding:0; list-style:none; }
.ab__wpis{ display:grid; grid-template-columns:64px minmax(0,1fr); gap:12px; align-items:center; }
.ab__wpis-foto{ width:64px; height:52px; object-fit:cover; border-radius:10px; }
.ab__wpis-data{ display:flex; flex-direction:column; align-items:center; justify-content:center; width:64px; height:52px; border-radius:10px; background:var(--grad-navy); color:rgba(255,255,255,.75); font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; line-height:1.1; }
.ab__wpis-data b{ font-family:var(--font-head); font-size:19px; color:#fff; letter-spacing:0; }
.ab__wpis-tytul{ display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; color:var(--ink); font-size:14px; font-weight:600; line-height:1.35; text-decoration:none; }
.ab__wpis-tytul:hover{ color:var(--accent-dark); }
.ab__wpis-kiedy{ display:block; margin-top:3px; font-size:12.5px; color:var(--muted); }
.ab__wiecej{ display:inline-block; margin-top:16px; color:var(--accent-dark); font-size:14px; font-weight:700; text-decoration:none; }
.ab__wiecej::after{ content:" →"; }
.ab__kategorie{ display:grid; gap:2px; margin:0; padding:0; list-style:none; }
.ab__kategorie a{ display:flex; justify-content:space-between; gap:10px; padding:8px 10px; margin:0 -10px; border-radius:9px; color:var(--ink-2); font-size:14.5px; text-decoration:none; }
.ab__kategorie a:hover,.ab__kategorie a[aria-current]{ background:var(--accent-soft); color:var(--accent-dark); }
.ab__kategorie b{ min-width:24px; padding:1px 7px; border-radius:99px; background:var(--surface-2); font-size:12px; text-align:center; color:var(--muted); }
.ab__tagi{ display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0; list-style:none; }
.ab__tagi--dol{ margin-top:24px; }
.ab__tagi a{ display:inline-flex; padding:6px 12px; border-radius:999px; background:var(--surface-2); border:1px solid var(--line); color:var(--ink-2); font-size:13px; font-weight:600; text-decoration:none; }
.ab__tagi a:hover{ border-color:var(--accent); color:var(--accent-dark); }

@media (max-width:991px){
  .ab--blog .ab__uklad{ grid-template-columns:1fr; }
  .ab__bok{ position:static; }
}
@media (max-width:600px){
  .ab__glowa{ margin-bottom:24px; text-align:left; }
  .ab__glowa-wnetrze{ align-items:flex-start; }
  .ab__okruszki .breadcrumb,.ab__okruszki ol,.ab__meta{ justify-content:flex-start; }
  .ab__tresc{ font-size:16px; }
}

/* Galeria (plugin pól zdzgaleria, tmpl/zdzgaleria.php) — siatka miniatur; podgląd pełnoekranowy: template.js [data-galeria] */
.galeria__siatka{ display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:10px; margin:0; padding:0; list-style:none; }
.galeria--jedno .galeria__siatka{ grid-template-columns:1fr; }
.galeria--dwa .galeria__siatka{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.galeria__link{ position:relative; display:block; overflow:hidden; border-radius:14px; background:var(--surface-2); }
.galeria__link img{ display:block; width:100%; aspect-ratio:4 / 3; object-fit:cover; transition:transform .35s var(--ease); }
.galeria--jedno .galeria__link img{ aspect-ratio:16 / 9; }
.galeria__link::after{ content:""; position:absolute; inset:0; background:rgb(var(--base-rgb) / 0); transition:background .2s var(--ease); }
.galeria__link:hover img{ transform:scale(1.04); }
.galeria__link:hover::after{ background:rgb(var(--base-rgb) / .15); }
.galeria__link:focus-visible{ outline:3px solid var(--accent); outline-offset:2px; }
.galeria-okno{ position:fixed; inset:0; width:auto; max-width:none; height:auto; max-height:none; margin:0; padding:0; border:0; overflow:hidden; background:rgb(var(--base-rgb) / .94); color:#fff; }
/* Otwarty podgląd — strona pod spodem się nie przewija (bez dodatkowych pasków przewijania) */
html:has(.galeria-okno[open]){ overflow:hidden; }
.galeria-okno::backdrop{ background:rgb(var(--base-rgb) / .6); }
.galeria-okno__ramka{ position:relative; display:grid; grid-template-rows:auto minmax(0,1fr) auto; height:100%; }
.galeria-okno__gora{ display:flex; justify-content:space-between; align-items:center; padding:14px 18px; font-size:14px; color:rgba(255,255,255,.8); }
.galeria-okno__obraz{ display:flex; align-items:center; justify-content:center; min-width:0; min-height:0; overflow:hidden; padding:0 72px; }
.galeria-okno__obraz img{ display:block; width:auto; height:auto; max-width:100%; max-height:100%; object-fit:contain; border-radius:8px; box-shadow:0 20px 60px rgba(0,0,0,.4); }
.galeria-okno__opis{ margin:0; padding:12px 18px 18px; text-align:center; font-size:14.5px; color:rgba(255,255,255,.85); min-height:1.4em; }
.galeria-okno button{ display:grid; place-items:center; width:44px; height:44px; padding:0; border:1px solid rgba(255,255,255,.3); border-radius:50%; background:rgba(255,255,255,.08); color:#fff; font-size:22px; line-height:1; cursor:pointer; }
.galeria-okno button:hover{ background:rgba(255,255,255,.2); }
.galeria-okno button:focus-visible{ outline:3px solid #fff; outline-offset:2px; }
.galeria-okno__nav{ position:absolute; top:50%; transform:translateY(-50%); }
.galeria-okno__nav--prev{ left:14px; }
.galeria-okno__nav--next{ right:14px; }
@media (max-width:600px){
  .galeria__siatka{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .galeria-okno__obraz{ padding:0 8px; }
  .galeria-okno__nav{ top:auto; bottom:12px; transform:none; }
}

/* ---------- Zamówienia publiczne (html/com_content/category/zamowienia.php, article/default.php, zamowienia.php) ----------
   Lista: wybór roku (karty z liczbą ogłoszeń), panel z wyszukiwarką i filtrem statusu, wiersze ogłoszeń (data, znak sprawy,
   status, tytuł, dokumenty). Strona ogłoszenia: znak i status w nagłówku, dokumenty jako karty plików w grupach. */
.zp-lata ul{ display:grid; grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); gap:12px; margin:0 0 22px; padding:0; list-style:none; }
.zp-lata a{ position:relative; display:flex; flex-direction:column; gap:2px; padding:16px 18px; border-radius:var(--radius); background:var(--surface); border:1px solid var(--line); box-shadow:var(--shadow); color:var(--ink); text-decoration:none; overflow:hidden; transition:transform .2s var(--ease), border-color .2s var(--ease), box-shadow .2s var(--ease); }
.zp-lata a::after{ content:""; position:absolute; inset:auto 0 0 0; height:3px; background:var(--grad-brand); transform:scaleX(0); transform-origin:left; transition:transform .3s var(--ease); }
.zp-lata a:hover{ transform:translateY(-2px); border-color:var(--line-strong); }
.zp-lata a:hover::after, .zp-lata a.is-on::after{ transform:none; }
.zp-lata b{ font-family:var(--font-head); font-size:28px; font-weight:var(--fw-head-mocny); line-height:1.1; letter-spacing:-.02em; font-variant-numeric:lining-nums; }
.zp-lata small{ font-size:13px; color:var(--muted); }
.zp-lata a.is-on{ background:var(--grad-navy); border-color:transparent; color:#fff; box-shadow:0 10px 28px rgb(var(--tint-rgb) / .25); }
.zp-lata a.is-on small{ color:rgba(255,255,255,.75); }

.zp-panel{ padding:clamp(16px, 3vw, 28px); border-radius:calc(var(--radius) + 4px); background:var(--surface); border:1px solid var(--line); box-shadow:var(--shadow); }
.zp-panel__glowa{ display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:6px 16px; margin-bottom:16px; }
.zp-panel__tytul{ margin:0; font-size:var(--fs-h2); }
.zp-panel__licznik{ margin:0; font-size:14px; color:var(--muted); }

.zp-narzedzia{ display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-bottom:18px; }
.zp-narzedzia[hidden]{ display:none; }
.zp-szukaj{ position:relative; flex:1 1 320px; }
.zp-szukaj svg{ position:absolute; left:16px; top:50%; width:18px; height:18px; transform:translateY(-50%); fill:none; stroke:var(--muted); stroke-width:2; stroke-linecap:round; pointer-events:none; }
.zp-szukaj input{ width:100%; height:48px; padding:0 16px 0 44px; border:1px solid var(--line-strong); border-radius:999px; background:var(--surface-2); color:var(--ink); font:inherit; font-size:15px; }
.zp-szukaj input:focus{ outline:none; border-color:var(--accent); box-shadow:0 0 0 4px var(--accent-soft); background:var(--surface); }
.zp-filtry{ display:flex; flex-wrap:wrap; gap:6px; }
.zp-filtry button{ display:inline-flex; align-items:center; gap:7px; height:40px; padding:0 14px; border:1px solid var(--line-strong); border-radius:999px; background:var(--surface); color:var(--ink-2); font:inherit; font-size:14px; font-weight:600; cursor:pointer; transition:background .15s, border-color .15s, color .15s; }
.zp-filtry button span{ min-width:22px; padding:1px 7px; border-radius:99px; background:var(--surface-2); color:var(--muted); font-size:12px; text-align:center; }
.zp-filtry button:hover{ border-color:var(--accent); }
.zp-filtry button[aria-pressed="true"]{ background:var(--accent-fill); border-color:var(--accent-fill); color:#fff; }
.zp-filtry button[aria-pressed="true"] span{ background:rgba(255,255,255,.2); color:#fff; }
.zp-kropka{ width:8px; height:8px; border-radius:50%; background:var(--accent); }
.zp-kropka--rozstrzygniete{ background:var(--success); }
.zp-kropka--uniewaznione{ background:var(--error); }
.zp-filtry button[aria-pressed="true"] .zp-kropka{ background:#fff; }

.zp-lista{ display:grid; gap:0; margin:0; padding:0; list-style:none; border-top:1px solid var(--line); }
.zp-el{ border-bottom:1px solid var(--line); }
.zp-el[hidden]{ display:none; }
.zp-el__link{ display:grid; grid-template-columns:56px minmax(0,1fr) 24px; align-items:center; gap:18px; padding:16px 10px; margin:0 -10px; border-radius:14px; color:inherit; text-decoration:none; transition:background .15s var(--ease); }
.zp-el__link:hover{ background:var(--surface-2); }
.zp-el__data{ display:flex; flex-direction:column; align-items:center; justify-content:center; width:56px; height:58px; border-radius:14px; background:var(--accent-soft); color:var(--accent-dark); font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }
.zp-el__data b{ font-family:var(--font-head); font-size:22px; line-height:1; letter-spacing:-.02em; color:var(--ink); }
.zp-el__tresc{ display:grid; grid-template-columns:minmax(0,1fr); gap:5px; min-width:0; }
.zp-el__gora{ display:flex; flex-wrap:wrap; align-items:center; gap:6px 8px; }
.zp-el__tytul{ font-family:var(--font-head); font-size:16.5px; font-weight:var(--fw-head); line-height:1.35; color:var(--ink); overflow-wrap:anywhere; }
.zp-el__link:hover .zp-el__tytul{ color:var(--accent-dark); }
.zp-el__meta{ display:flex; flex-wrap:wrap; align-items:center; gap:4px 8px; font-size:13.5px; color:var(--muted); }
.zp-el__meta svg{ width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linejoin:round; }
.zp-typy{ padding-left:8px; border-left:1px solid var(--line-strong); letter-spacing:.04em; font-size:12px; }
.zp-el__strzalka{ width:20px; height:20px; fill:none; stroke:var(--muted); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; transition:transform .2s var(--ease), stroke .2s; }
.zp-el__link:hover .zp-el__strzalka{ transform:translateX(3px); stroke:var(--accent); }

.zp-znak{ display:inline-flex; align-items:center; padding:3px 9px; border-radius:7px; background:var(--surface-2); border:1px solid var(--line); color:var(--ink-2); font-family:ui-monospace, "SFMono-Regular", Consolas, monospace; font-size:12.5px; font-weight:600; letter-spacing:.02em; white-space:nowrap; }
.zp-status{ display:inline-flex; align-items:center; gap:6px; padding:3px 10px; border-radius:999px; font-size:12px; font-weight:700; white-space:nowrap; background:var(--accent-soft); color:var(--accent-dark); }
.zp-status::before{ content:""; width:7px; height:7px; border-radius:50%; background:currentColor; }
.zp-status--rozstrzygniete{ background:var(--ok-bg); color:var(--success); }
.zp-status--uniewaznione{ background:var(--err-bg); color:var(--error); }
.zp-brak{ margin:22px 0 4px; text-align:center; color:var(--muted); }
.zp-brak button{ margin-left:6px; padding:0; border:0; background:none; color:var(--accent-dark); font:inherit; font-weight:600; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }

/* Strona ogłoszenia */
.zp-meta{ align-items:center; gap:8px 12px; }
.zp-dok{ margin:0 0 28px; }
.zp-dok .ab__sekcja-tytul{ display:flex; align-items:center; gap:10px; }
.zp-dok .ab__sekcja-tytul::before{ content:""; width:10px; height:10px; border-radius:3px; background:var(--accent); }
.zp-dok--wynik .ab__sekcja-tytul::before{ background:var(--success); }
.zp-dok--uniewaznienie .ab__sekcja-tytul::before{ background:var(--error); }
.zp-dok--informacje .ab__sekcja-tytul::before{ background:var(--navy-500); }
.zp-dok__lista{ display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:10px; margin:0; padding:0; list-style:none; }
.zp-plik{ display:grid; grid-template-columns:44px minmax(0,1fr) 20px; align-items:center; gap:12px; height:100%; padding:12px 14px; border-radius:14px; background:var(--surface); border:1px solid var(--line); color:var(--ink); text-decoration:none; transition:border-color .15s, box-shadow .2s var(--ease), transform .2s var(--ease); }
.zp-plik:hover{ border-color:var(--accent); box-shadow:var(--shadow); transform:translateY(-1px); }
.zp-plik__typ{ display:grid; place-items:center; width:44px; height:52px; border-radius:8px 14px 8px 8px; background:var(--navy-700); color:#fff; font-size:10.5px; font-weight:800; letter-spacing:.04em; }
.zp-plik__typ--pdf{ background:#C42B1C; }
.zp-plik__typ--doc, .zp-plik__typ--docx, .zp-plik__typ--odt, .zp-plik__typ--rtf{ background:#1F5BB8; }
.zp-plik__typ--xls, .zp-plik__typ--xlsx, .zp-plik__typ--ods{ background:#137547; }
.zp-plik__typ--zip, .zp-plik__typ--rar, .zp-plik__typ--7z{ background:#6B5B1E; }
.zp-plik__nazwa{ font-size:14.5px; font-weight:600; line-height:1.35; overflow-wrap:anywhere; }
.zp-plik__pobierz{ width:20px; height:20px; fill:none; stroke:var(--muted); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.zp-plik:hover .zp-plik__pobierz{ stroke:var(--accent); }
.zp-wroc{ display:inline-flex; margin:4px 0 28px; color:var(--accent-dark); font-weight:600; text-decoration:none; }
.zp-wroc:hover{ text-decoration:underline; text-underline-offset:3px; }

@media (max-width:600px){
  .zp-lata ul{ grid-template-columns:repeat(3, minmax(0,1fr)); gap:8px; }
  .zp-lata a{ padding:12px; }
  .zp-lata b{ font-size:22px; }
  .zp-lata small{ font-size:11.5px; }
  .zp-el__link{ grid-template-columns:46px minmax(0,1fr); gap:12px; }
  .zp-el__data{ width:46px; height:50px; }
  .zp-el__data b{ font-size:18px; }
  .zp-el__strzalka{ display:none; }
  .zp-el__tytul{ font-size:15.5px; }
}
.pagehead__link{ display:inline-flex; gap:6px; margin-top:12px; padding:8px 14px; border-radius:999px; background:var(--accent-soft); color:var(--accent-dark); font-size:14px; font-weight:600; text-decoration:none; }
.pagehead__link:hover{ background:var(--accent-fill); color:#fff; }
.ab__tytul{ overflow-wrap:anywhere; }   /* tytuły bez spacji (np. „Zakup_materialow_…”) nie rozpychają strony */

/* ---------- Kariera i oferty pracy (html/com_content/category/kariera.php, article/default_oferta.php, kariera.php) ----------
   Wstęp: motto, akapity obok mozaiki zdjęć, pasek liczb. Oferty: karty z faktami (miejsce, wynagrodzenie, termin);
   zakończone wyciszone. Strona oferty: sekcje jako karty z listami „✓”, obok przyklejona karta „Aplikuj”. */
.kr-opis{ display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); column-gap:clamp(24px,4vw,56px); align-items:start; margin-bottom:clamp(28px,4vw,48px); }
.kr-opis > *{ grid-column:1; }
.kr-opis p{ margin:0 0 14px; color:var(--text); font-size:16.5px; }
.kr-motto{ margin:0 0 18px; padding:0 0 0 18px; border-left:3px solid var(--accent); }
.kr-motto p{ margin:0; font-family:var(--font-head); font-size:clamp(20px,2.2vw,26px); font-style:italic; font-weight:var(--fw-head); line-height:1.3; color:var(--ink); }
.kr-zdjecia{ grid-column:2; grid-row:1 / span 6; display:grid; grid-template-columns:repeat(3, 1fr); gap:12px; }
.kr-zdjecia img{ display:block; width:100%; height:100%; aspect-ratio:4/3; object-fit:cover; border-radius:18px; box-shadow:var(--shadow); }
.kr-zdjecia img:nth-child(1){ grid-column:1 / -1; aspect-ratio:16/9; }
.kr-liczby{ grid-column:1 / -1 !important; display:grid; grid-template-columns:repeat(auto-fit, minmax(190px,1fr)); gap:12px; margin:22px 0 0; padding:0; list-style:none; }
.kr-liczby li{ padding:18px 20px; border-radius:var(--radius); background:var(--surface); border:1px solid var(--line); box-shadow:var(--shadow); font-size:14px; line-height:1.45; color:var(--muted); }
.kr-liczby small{ display:block; font-size:11.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.kr-liczby b{ display:block; margin-bottom:4px; white-space:nowrap; font-family:var(--font-head); font-size:clamp(22px,2.4vw,28px); font-weight:var(--fw-head-mocny); line-height:1.1; letter-spacing:-.02em; color:var(--ink); }
.kr-liczby li:first-child b{ color:var(--accent-dark); }

.kr-oferty{ scroll-margin-top:calc(var(--naglowek-gora, 0px) + 90px); }
.kr-oferty__glowa{ display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:6px 16px; margin-bottom:16px; }
.kr-oferty__glowa h2{ margin:0; font-size:var(--fs-h2); }
.kr-oferty__glowa p{ margin:0; color:var(--muted); font-size:14px; }
.kr-lista{ display:grid; grid-template-columns:repeat(auto-fill, minmax(320px,1fr)); gap:16px; margin:0 0 32px; padding:0; list-style:none; }
.kr-oferta{ position:relative; display:flex; flex-direction:column; gap:10px; padding:24px; border-radius:calc(var(--radius) + 4px); background:var(--surface); border:1px solid var(--line); box-shadow:var(--shadow); overflow:hidden; transition:transform .2s var(--ease), box-shadow .2s var(--ease), border-color .2s var(--ease); }
.kr-oferta::before{ content:""; position:absolute; inset:0 0 auto 0; height:4px; background:var(--grad-brand); }
.kr-oferta:hover{ transform:translateY(-3px); box-shadow:var(--shadow-lg); border-color:var(--line-strong); }
.kr-oferta__gora{ display:flex; flex-wrap:wrap; gap:6px; min-height:24px; }
.kr-chip{ display:inline-flex; align-items:center; margin:0; padding:3px 11px; border-radius:999px; background:var(--accent-soft); color:var(--accent-dark); font-size:12px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.kr-chip--koniec{ background:var(--surface-2); color:var(--muted); border:1px solid var(--line-strong); }
.kr-oferta__tytul{ margin:0; font-size:clamp(19px,1.9vw,22px); line-height:1.25; }
.kr-oferta__tytul a{ color:var(--ink); text-decoration:none; }
.kr-oferta__tytul a::after{ content:""; position:absolute; inset:0; }   /* cała karta klikalna */
.kr-oferta__tytul a:focus-visible{ outline:none; }
.kr-oferta:has(.kr-oferta__tytul a:focus-visible){ outline:3px solid var(--accent); outline-offset:2px; }
.kr-oferta__opis{ margin:0; color:var(--text); font-size:15px; }
.kr-fakty{ display:flex; flex-wrap:wrap; gap:8px 18px; margin:2px 0 0; padding:0; list-style:none; font-size:14px; color:var(--ink-2); }
.kr-fakty li{ display:inline-flex; align-items:center; gap:7px; }
.kr-fakty svg{ width:17px; height:17px; flex:0 0 auto; fill:none; stroke:var(--accent); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.kr-oferta__wiecej{ margin-top:auto; padding-top:8px; color:var(--accent-dark); font-weight:700; font-size:14.5px; text-decoration:none; }
.kr-oferta__wiecej span{ display:inline-block; transition:transform .2s var(--ease); }
.kr-oferta:hover .kr-oferta__wiecej span{ transform:translateX(4px); }
.kr-oferta--zakonczona{ background:var(--surface-2); box-shadow:none; }
.kr-oferta--zakonczona::before{ background:var(--line-strong); }
.kr-oferta--zakonczona .kr-oferta__tytul a, .kr-oferta--zakonczona .kr-oferta__opis{ color:var(--muted); }
.kr-oferta--zakonczona .kr-fakty svg{ stroke:var(--muted); }

.kr-rodo{ margin:0 0 28px; border-radius:var(--radius); background:var(--surface); border:1px solid var(--line); }
.kr-rodo summary{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 20px; cursor:pointer; font-weight:700; color:var(--ink); list-style:none; }
.kr-rodo summary::-webkit-details-marker{ display:none; }
.kr-rodo summary::after{ content:"+"; font-size:22px; line-height:1; color:var(--accent); transition:transform .2s var(--ease); }
.kr-rodo[open] summary::after{ transform:rotate(45deg); }
.kr-rodo__tresc{ padding:0 20px 18px; font-size:14px; color:var(--text); }
.kr-rodo__tresc ol{ margin:8px 0 0; padding-left:20px; }
.kr-rodo__tresc li{ margin-bottom:6px; }

/* Strona oferty */
.kr-fakty--glowa{ justify-content:center; font-size:15px; }
.op-wstep{ margin:0 0 22px; font-size:18px; line-height:1.55; color:var(--ink-2); }
.op-tresc h2{ display:flex; align-items:center; gap:10px; margin:30px 0 12px; font-size:var(--fs-h3); }
.op-tresc h2::before{ content:""; width:10px; height:10px; border-radius:3px; background:var(--accent); flex:0 0 auto; }
.op-tresc h2:first-child{ margin-top:0; }
.op-tresc h3{ margin:16px 0 8px; font-size:13px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.op-tresc ul{ display:grid; gap:8px; margin:0 0 14px; padding:18px 20px; border-radius:var(--radius); background:var(--surface); border:1px solid var(--line); list-style:none; }
.op-tresc ul li{ position:relative; padding-left:28px; line-height:1.5; }
.op-tresc ul li::before{ content:""; position:absolute; left:0; top:.2em; width:18px; height:18px; border-radius:50%; background:var(--accent-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C93200' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12 4 4 8-8'/%3E%3C/svg%3E") center / 12px no-repeat; }
.op-tresc p{ color:var(--text); }
.op-pracodawca{ margin:34px 0 18px; padding:22px 24px; border-radius:var(--radius); background:var(--surface-2); border:1px solid var(--line); }
.op-pracodawca h2{ margin:0 0 10px; font-size:var(--fs-h3); }
.op-pracodawca p{ margin:0 0 10px; font-size:15px; color:var(--text); }
.op-pracodawca p:last-child{ margin-bottom:0; }
.op-aplikuj{ position:sticky; top:calc(var(--naglowek-gora, 0px) + 80px); display:grid; gap:12px; border-top:4px solid var(--accent); }
.op-aplikuj--koniec{ border-top-color:var(--line-strong); }
.op-termin{ display:grid; gap:2px; margin:0; padding:12px 14px; border-radius:12px; background:var(--accent-soft); }
.op-aplikuj--koniec .op-termin{ background:var(--surface-2); }
.op-termin span, .op-kontakt span{ font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.op-termin b{ font-family:var(--font-head); font-size:18px; color:var(--ink); }
.op-przycisk{ display:inline-flex; align-items:center; justify-content:center; gap:9px; height:50px; padding:0 20px; border-radius:999px; background:var(--grad-cta); color:var(--on-cta); font-weight:700; text-decoration:none; box-shadow:var(--shadow-cta); transition:background .15s; }
.op-przycisk:hover{ background:var(--grad-cta-hover); color:var(--on-cta); }
.op-przycisk svg{ width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.op-przycisk--drugi{ background:var(--surface); color:var(--accent-dark); border:1px solid var(--line-strong); box-shadow:none; }
.op-przycisk--drugi:hover{ background:var(--accent-soft); color:var(--accent-dark); }
.op-kontakt{ display:grid; gap:2px; margin:0; font-size:15px; }
.op-kontakt a{ color:var(--ink); font-weight:600; overflow-wrap:anywhere; }
.op-uwaga{ margin:0; font-size:14px; color:var(--muted); }

@media (max-width:900px){
  .kr-opis{ grid-template-columns:1fr; }
  .kr-zdjecia{ grid-column:1; grid-row:auto; margin:8px 0 4px; }
  .op-aplikuj{ position:static; }
}
@media (max-width:600px){
  .kr-lista{ grid-template-columns:1fr; }
  .kr-oferta{ padding:20px; }
}

/* Kontrast (WCAG 4,5:1): pomarańczowy tekst na jasnym pomarańczowym tle — o ton ciemniejszy w motywie jasnym
   (color-mix zachowuje kolor z wybranej palety; w ciemnym motywie tekst jest jasny i ma dość kontrastu) */
:root:not([data-theme="dark"]) .hero-szukaj__doradca:not(:hover),
:root:not([data-theme="dark"]) .bk__plakietka{ color:color-mix(in srgb, var(--accent-dark) 80%, #000); }

/* ---------- WCAG 2.2 AA — 1.4.11 kontrast elementów nietekstowych: obramowanie pola formularza ≥ 3:1 do tła ----------
   (dotąd --line ok. 1,4:1 — pole było trudne do zauważenia dla osób słabowidzących). Token z odcienia palety,
   więc działa we wszystkich kolorystykach z panelu „Wygląd”; w ciemnym motywie — jasny. */
:root{ --line-pole:rgb(var(--tint-rgb) / .55); }
:root[data-theme="dark"]{ --line-pole:rgba(255,255,255,.48); }
.input, .zdz-k .input, .hsearch, .hero-szukaj .hsz__pole, .mega__search, .blad__szukaj, .ab__szukaj, .zp-szukaj input{ border-color:var(--line-pole); }
.input:hover, .zdz-k .input:hover, .hsearch:hover{ border-color:var(--ink-2); }
.zb__inne select{ border-color:rgba(255,255,255,.6); }
/* Fokus nadal w kolorze akcentu (reguły wyżej nadpisałyby obramowanie ustawione przy fokusie) */
.input:focus, .zdz-k .input:focus, .zp-szukaj input:focus, .hsearch:focus-within, .hero-szukaj .hsz__pole:focus-within,
.mega__search:focus-within, .blad__szukaj:focus-within, .ab__szukaj:focus-within{ border-color:var(--accent); }

/* Okres jubileuszu (logo.php). W ciemnym motywie — jak zwykłe logo — w bieli (--logo-filter).
   Wariant „jubileuszowe”: logo 80-lecia, dwuwierszowe, więc wyższe niż zwykłe, żeby napis był czytelny. */
.brandbar__logo--jubileuszowe img, .blad__logo--jubileuszowe img{ height:72px; }
@media (max-width:640px){ .brandbar__logo--jubileuszowe img{ height:54px; } }
/* Wariant „pierwotny80”: zwykłe logo, cienka kreska i znak „80 LAT” obok */
.logo-jubileusz{ display:flex; align-items:center; gap:16px; }
.logo-jubileusz__kreska{ flex:0 0 1px; height:38px; background:var(--line-strong); }
.logo-jubileusz picture{ display:block; flex:0 0 auto; }
.brandbar__logo .logo-jubileusz__znak, .blad__logo .logo-jubileusz__znak{ height:50px; }
/* Telefon: logo trochę niższe niż zwykle, żeby razem ze znakiem zmieściło się w jednym wierszu z przełącznikiem motywu */
@media (max-width:640px){
  .brandbar__logo .logo-jubileusz{ gap:8px; }
  .brandbar__logo .logo-jubileusz .logo-zdz__img{ height:30px; }
  .brandbar__logo .logo-jubileusz__kreska{ height:26px; }
  .brandbar__logo .logo-jubileusz__znak{ height:36px; }
}
.wp__loga{ grid-template-columns:1fr; }
/* Wariant „znak80”: znak „80 LAT” w miejscu „ZDZ”, obok napis z pierwotnego logo */
.logo-znak80{ display:flex; align-items:center; gap:16px; }
.logo-znak80 picture{ display:block; flex:0 0 auto; }
.brandbar__logo .logo-znak80__znak, .blad__logo .logo-znak80__znak{ height:48px; }
@media (max-width:640px){
  .brandbar__logo .logo-znak80{ gap:12px; }
  .brandbar__logo .logo-znak80__znak{ height:40px; }
}

/* Podpowiedzi pod polami wyszukiwania (template.js — input[data-pp], input[data-pp-lokalne]): lista pod polem,
   dopasowane fragmenty wyróżnione, ostatnia pozycja „Pokaż wszystkie wyniki”. Kolory z tokenów — także tryb ciemny. */
.pp-kotwica{ position:relative; }
.pp-lista{
  position:absolute; z-index:40; left:0; right:0; top:calc(100% + 6px); margin:0; padding:6px; list-style:none; text-align:left;
  background:var(--surface); border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow-lg);
  max-height:min(380px, 60vh); overflow:auto; overscroll-behavior:contain;
}
.pp-lista[hidden]{ display:none; }
.pp-opcja{
  display:flex; flex-direction:column; gap:2px; padding:9px 12px; border-radius:10px;
  color:var(--ink); font-size:15px; line-height:1.35; text-decoration:none; cursor:pointer;
}
.pp-opcja b{ font-weight:600; }
.pp-opcja small{ font-size:13px; color:var(--muted); }
.pp-opcja mark{ padding:0 1px; border-radius:3px; background:var(--accent-soft); color:inherit; font-weight:700; }
.pp-opcja[aria-selected="true"], .pp-opcja:hover{ background:var(--surface-2); color:var(--ink); }
.pp-opcja[aria-selected="true"]{ box-shadow:inset 3px 0 0 var(--accent); }
.pp-opcja--wszystko{ margin-top:4px; border-top:1px solid var(--line); border-radius:0 0 10px 10px; color:var(--accent-dark); }
.pp-opcja--wszystko b{ font-weight:700; }
@media (forced-colors:active){ .pp-opcja[aria-selected="true"]{ outline:2px solid Highlight; } }
/* Pola z obramowaniem na całym formularzu (zaokrąglenie przez overflow:hidden) — lista musi z nich wychodzić;
   zaokrąglenie przycisku przejmuje sam przycisk */
.ab__szukaj, .blad__szukaj, .mega__search{ overflow:visible; }
.ab__szukaj button{ border-radius:0 11px 11px 0; }
.mega__search button{ border-radius:0 8px 8px 0; }
/* Lista pod polem w nagłówku leży nad menu (.nav ma z-index 100) */
.brandbar:has(.pp-lista:not([hidden])){ position:relative; z-index:101; }
