/* =========================================================
   NZOZ Provita - style motywu (następca „Własnego CSS" z zestawu Elementora).

   Spis treści
   1. Zmienne
   2. Baza szablonów motywu (body.pv)
   3. Układ: .pv-wrap, .pv-sekcja, .pv-stos, .pv-hero
   4. Komponenty wspólne: .section-title, .ui-card, .section--alt, .btn-primary, .btn-accent, .pv-ikona
   5. Treść z edytora: .pv-tresc
   6. Harmonijka: .pv-harmonijka
   7. Podstrona specjalisty: .pv-spec, .pv-dyplomy
   8. Lightbox: .pv-lightbox
   9. Zespół: .pv-filtr, .pv-osoby, .pv-osoba
   10. Wiersze i karty stron treściowych: .pv-wiersz, .pv-karta, .therapy-intro, .ui-media
   11. Lista podstron: .pv-lista
   12. Formularz kontaktowy: .pv-form
   13. Cennik: .pv-cennik
   14. Strona główna: .pv-powitanie, .pv-kafelki, .pv-aktualnosci, .pv-os
   15. Nagłówek, panel mobilny, pasek dolny, stopka: .pv-naglowek, .pv-menu, .pv-panel, .pv-pasek, .pv-stopka
   16. Konfigurator: .pv-konf
   17. Siatka kafelków z opisem: .pv-siatka
   18. Dostępność

   Nazwy .ui-card, .section-title, .btn-primary odziedziczone po dawnym zestawie Elementora
   (wpisy bloga mają je w treści). Reguły bazowe siedzą w :where(), żeby miały zerową
   specyficzność i dały się nadpisać pojedynczą klasą komponentu.
   19. Wyszukiwarka, archiwa wpisów, pojedynczy wpis, 404, paginacja
   20. Blok „Umów się” na końcu strony: .pv-cta
   21. Rozmiar tekstu: html[data-tekst], .pv-tekst
   22. Wysoki kontrast: html[data-kontrast], .pv-kontrast
   23. Podpowiedzi wyszukiwarki: .pv-szukaj__lista
   24. Cookies: .pv-cookies, .pv-osadzenie
   25. Certyfikat ISO: .pv-iso, .pv-stopka__iso
   26. Opinie pacjentów (Trustindex): .pv-opinie
   ========================================================= */

/* ---------- 1. Zmienne ---------- */
:root {
  --brand: #1657A3;
  --brand-dark: #0F3E73;
  --accent: #bfb39c;
  --accent-dark: #D8873F;
  --accent-soft: #FFF2E6;
  --accent-border: #F3C59B;
  --line: #E5E7EB;
  --soft: #F8FAFD;
  --check-bg: #EAF2FB;

  --pv-font-naglowki: "Montserrat", sans-serif;
  --pv-font-tekst: "Lato", sans-serif;
  --pv-szerokosc: 1366px;
  --pv-margines: 10px;
  --pv-odstep: 20px;
  /* skala odstępów układu: wewnątrz karty 20 < między kolumnami 32 < między sekcjami 64 (komputer); tablet 24/48, telefon 20/40 */
  --pv-kolumna: 32px;
  --pv-sekcja: 64px;
  --pv-hover-tlo: rgba(227, 154, 86, 0.08);
}
@media (max-width: 1024px) {
  :root { --pv-kolumna: 24px; --pv-sekcja: 48px; }
}
@media (max-width: 767px) {
  :root { --pv-kolumna: 20px; --pv-sekcja: 40px; }
}

/* ---------- 2. Baza ---------- */
:where(.pv) .pv-main {
  font-family: var(--pv-font-tekst);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: var(--brand);
}
:where(.pv) .pv-main :where(h1, h2, h3, h4, h5, h6) {
  margin: 0;
  clear: none;
  font-family: var(--pv-font-naglowki);
  font-weight: 300;
  color: var(--brand);
}
:where(.pv) .pv-main :where(h1) { font-size: 2.8125rem; line-height: 1; letter-spacing: -0.01em; }
:where(.pv) .pv-main :where(h2) { font-size: 2.1875rem; line-height: 1.5; }
:where(.pv) .pv-main :where(h3) { font-size: 1.6875rem; line-height: 1.5; }
:where(.pv) .pv-main :where(h4) { font-size: 1.25rem; line-height: 1.5; }
:where(.pv) .pv-main :where(p) { margin: 0; }
:where(.pv) .pv-main :where(img) { max-width: 100%; height: auto; display: block; }
:where(.pv) .pv-main :where(a) { color: var(--brand); }

@media (max-width: 767px) {
  :where(.pv) .pv-main :where(h1) { font-size: 2.25rem; }
  :where(.pv) .pv-main :where(h2) { font-size: 1.875rem; }
  :where(.pv) .pv-main :where(h3) { font-size: 1.5rem; }
}

/* ---------- 3. Układ ---------- */
.pv-wrap {
  width: 100%;
  max-width: calc(var(--pv-szerokosc) + 2 * var(--pv-margines));
  margin-inline: auto;
  padding-inline: var(--pv-margines);
  box-sizing: border-box;
}
.pv-sekcja { margin-block: var(--pv-sekcja); }
.pv-stos { display: flex; flex-direction: column; align-items: flex-start; gap: var(--pv-odstep); }

/* pas tytułowy podstrony */
.pv-hero {
  background: var(--soft);
  border-bottom: 1px solid var(--line);
}
.pv-hero__srodek {
  min-height: 179px;
  padding-block: 20px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: var(--pv-odstep);
}
.pv-hero--gora .pv-hero__srodek { justify-content: flex-start; min-height: 185px; }
.pv-hero__rola {
  font-family: var(--pv-font-naglowki);
  font-weight: 500;
  font-size: 1rem;
  line-height: 1.2;
  letter-spacing: 0.04em;
}
nav.rank-math-breadcrumb p { margin: 0; }
nav.rank-math-breadcrumb p a { color: var(--brand); text-decoration: none; }
nav.rank-math-breadcrumb p a:hover { text-decoration: underline; }

/* ---------- 4. Komponenty wspólne ---------- */
.section-title::after {
  content: "";
  display: block;
  width: 256px;
  max-width: 100%;
  height: 2px;
  margin-top: 10px;
  background: linear-gradient(90deg, var(--accent) 0%, var(--accent) 45%, rgba(255, 255, 255, 0) 100%);
}
.section-title.center::after { margin: 10px auto 0; }
@media (max-width: 768px) {
  .section-title::after { width: 106px; }
}

.ui-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: 0 10px 25px rgba(15, 62, 115, 0.08);
  padding: 28px;
  box-sizing: border-box;
}
.ui-card p a,
.ui-card li a { color: var(--brand); text-decoration: underline; }
.ui-card.section--alt,
.section--alt { background: var(--soft); }
@media (max-width: 1025px) {
  .ui-card { padding: 18px; }
}

/* przyciski - jako <a> albo <button>, ikona po prawej. Dwa poziomy: .btn-primary (konwersja: umów, napisz, zadzwoń, kup)
   i .btn-secondary (nawigacja: czytaj dalej, zobacz, dowiedz się więcej) - obrys zamiast wypełnienia, ta sama wysokość */
a.btn-primary,
button.btn-primary,
a.btn-secondary,
button.btn-secondary,
a.btn-accent,
button.btn-accent {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 5px;
  min-height: 40px;
  box-sizing: border-box;
  padding: 0.5rem 0.7rem;
  border: none;
  border-radius: 6px;
  font-family: var(--pv-font-naglowki);
  font-weight: 400;
  font-size: 1rem;
  line-height: 1;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .25s ease, transform .15s ease;
}
a.btn-primary, button.btn-primary { color: #fff; background-color: var(--brand); }
a.btn-primary:hover, button.btn-primary:hover { background-color: var(--brand-dark); transform: translateY(-1px); }
/* .btn-accent bywa łączony z .btn-primary (voucher) - reguły akcentu stoją później, żeby wygrać w obu stanach */
a.btn-accent, button.btn-accent { color: #1b1b1b; background-color: var(--accent); }
a.btn-accent:hover, button.btn-accent:hover { background-color: var(--accent); transform: translateY(-1px); }
/* drugorzędny: granatowy obrys (inset, żeby wysokość została 40 px), po najechaniu jasnobłękitne wypełnienie */
a.btn-secondary, button.btn-secondary { color: var(--brand); background-color: transparent; box-shadow: inset 0 0 0 1px var(--brand); transition: background-color .25s ease, box-shadow .25s ease, color .25s ease, transform .15s ease; }
a.btn-secondary:hover, button.btn-secondary:hover { color: var(--brand-dark); background-color: var(--check-bg); box-shadow: inset 0 0 0 1px var(--brand-dark); transform: translateY(-1px); }

.pv-ikona { width: 1.2em; height: 1.2em; flex: none; }
.btn-primary .pv-ikona,
.btn-secondary .pv-ikona,
.btn-accent .pv-ikona {
  margin-top: -2px;
  box-sizing: border-box;
  border-radius: 50%;
  transition: background-color .3s ease-in-out, box-shadow .3s ease-in-out, stroke .3s ease-in-out;
}
/* ikona z mediów (voucher.svg) była biała także na beżowym tle */
.btn-accent .pv-ikona { stroke: #fff; }
/* hover jak w zestawie: białe kółko 25 px wokół ikony 19 px, bez zmiany wysokości przycisku */
.btn-primary:hover .pv-ikona { background: #fff; box-shadow: 0 0 0 3px #fff; stroke: var(--brand-dark); }
.btn-secondary:hover .pv-ikona { background: var(--brand); box-shadow: 0 0 0 3px var(--brand); stroke: #fff; }
.btn-accent:hover .pv-ikona { background: #fff; box-shadow: 0 0 0 3px #fff; stroke: var(--accent); }

@media (max-width: 767px) {
  .pv-stos > .btn-primary,
  .pv-stos > .btn-secondary,
  .pv-stos > .btn-accent { align-self: stretch; }
}

/* ---------- 5. Treść z edytora (pola WYSIWYG) ---------- */
.pv-tresc > *:first-child { margin-top: 0; }
.pv-tresc > *:last-child { margin-bottom: 0; }
.pv-tresc p { margin: 0 0 14px; }
.pv-tresc strong { font-weight: 600; color: var(--brand-dark); }
.pv-tresc a { color: var(--brand); text-decoration: underline; }
.pv-tresc ul,
.pv-tresc ol { margin: 0 0 14px; padding-left: 40px; }
.pv-tresc ul ul,
.pv-tresc ol ol { margin-top: 10px; margin-bottom: 0; }
.pv-tresc h2,
.pv-tresc h3 {
  font-family: var(--pv-font-naglowki);
  font-weight: 300;
  line-height: 1.5;
  color: var(--brand-dark);
  margin: 30px 0 12px;
}
.pv-tresc h2 { font-size: 2.1875rem; letter-spacing: -0.01em; }
.pv-tresc h3 { font-size: 1.6875rem; }
.pv-tresc h2::after {
  content: "";
  display: block;
  width: 106px;
  height: 2px;
  margin-top: 10px;
  background: linear-gradient(90deg, var(--accent) 0%, var(--accent) 45%, rgba(255, 255, 255, 0) 100%);
}

/* widoczny znacznik linku otwieranego w nowej karcie (tekst dla czytników dokłada filtr PHP);
   maska zamiast content, żeby ikona nie była ogłaszana drugi raz */
.pv-tresc a[target="_blank"]::after {
  content: "";
  display: inline-block;
  width: 0.68em;
  height: 0.68em;
  margin-left: 0.3em;
  vertical-align: -0.02em;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='M14%203h7v7h-2V6.41l-8.29%208.3-1.42-1.42L17.59%205H14V3z'/%3E%3Cpath%20d='M19%2019H5V5h5V3H5a2%202%200%200%200-2%202v14a2%202%200%200%200%202%202h14a2%202%200%200%200%202-2v-5h-2v5z'/%3E%3C/svg%3E") no-repeat center / contain;
  mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='M14%203h7v7h-2V6.41l-8.29%208.3-1.42-1.42L17.59%205H14V3z'/%3E%3Cpath%20d='M19%2019H5V5h5V3H5a2%202%200%200%200-2%202v14a2%202%200%200%200%202%202h14a2%202%200%200%200%202-2v-5h-2v5z'/%3E%3C/svg%3E") no-repeat center / contain;
}

/* wariant z „haczykami" zamiast kropek - główny opis */
.pv-tresc--haczyki ul {
  list-style: none;
  padding: 0;
  margin: 0 0 18px;
  display: grid;
  gap: 10px;
}
.pv-tresc--haczyki ul li {
  position: relative;
  padding-left: 40px;
  padding-top: 4px;
  min-width: 0;
}
.pv-tresc--haczyki ul li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.25em;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--accent-soft);
  border: 1px solid var(--accent-border);
}
.pv-tresc--haczyki ul li::after {
  content: "";
  position: absolute;
  left: 7px;
  top: 0.7em;
  width: 10px;
  height: 6px;
  border-left: 2px solid var(--accent);
  border-bottom: 2px solid var(--accent);
  transform: rotate(-45deg);
}
.pv-tresc--haczyki ol { padding-left: 22px; margin: 0 0 18px; display: grid; gap: 8px; }

@media (max-width: 767px) {
  .pv-tresc h2 { font-size: 1.875rem; }
  .pv-tresc h3 { font-size: 1.5rem; }
  .pv-tresc--haczyki ul li { padding-left: 36px; font-size: 0.98rem; }
}

/* ---------- 6. Harmonijka (natywne <details>) ---------- */
.pv-harmonijka { display: grid; gap: 10px; }
.pv-harmonijka__el {
  border: 1px solid var(--line);
  border-radius: 14px;
  overflow: hidden;
}
.pv-harmonijka__tytul {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 16px;
  list-style: none;
  cursor: pointer;
  font-family: var(--pv-font-naglowki);
  font-weight: 500;
  font-size: 1rem;
  line-height: 1.1;
  letter-spacing: 0.04em;
  color: var(--brand);
  transition: background-color .18s ease;
}
.pv-harmonijka__tytul::-webkit-details-marker { display: none; }
.pv-harmonijka__tytul:hover,
.pv-harmonijka__el[open] > .pv-harmonijka__tytul { background: var(--pv-hover-tlo); }
.pv-harmonijka__el[open] > .pv-harmonijka__tytul { color: var(--brand-dark); }
.pv-harmonijka__tytul:focus-visible { outline-offset: -3px; border-radius: 14px; }
.pv-harmonijka__tytul .pv-ikona { width: 18px; height: 18px; transition: transform .2s ease; }
.pv-harmonijka__tytul .pv-ikona { transition: transform .28s cubic-bezier(.2, .7, .2, 1); }
.pv-harmonijka__el[open] > .pv-harmonijka__tytul .pv-ikona { transform: rotate(180deg); }
/* w trakcie zwijania (assets/js/harmonijka.js) tytuł i strzałka wracają do stanu zamkniętego razem z panelem */
.pv-harmonijka__el--zwijanie[open] > .pv-harmonijka__tytul { background: transparent; color: var(--brand); }
.pv-harmonijka__el--zwijanie[open] > .pv-harmonijka__tytul:hover { background: var(--pv-hover-tlo); }
.pv-harmonijka__el--zwijanie[open] > .pv-harmonijka__tytul .pv-ikona { transform: rotate(0deg); }
.pv-harmonijka__tresc {
  padding: 16px;
  border-top: 1px solid var(--line);
}

/* ---------- 7. Podstrona specjalisty ---------- */
.pv-spec {
  display: flex;
  align-items: flex-start;
  gap: var(--pv-kolumna);
  margin-block: var(--pv-sekcja);
}
.pv-spec__foto {
  flex: 0 0 auto;
  width: calc((100% - 40px) * 0.35);
  padding: 10px;
  box-sizing: border-box;
}
.pv-spec__foto img {
  width: 100%;
  border-radius: 6px;
  border: 1px solid var(--line);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.10);
}
.pv-spec__karta {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--pv-odstep);
}
@media (max-width: 1024px) {
  .pv-spec { flex-direction: column; align-items: stretch; }
  .pv-spec__foto { width: 100%; }
  .pv-spec__foto img { max-width: 640px; margin-inline: auto; }
  .pv-spec__karta { flex: none; }
}

.pv-dyplomy { display: flex; flex-direction: column; gap: var(--pv-odstep); }
.pv-dyplomy__siatka {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
/* .ui-card li a podkreśla linki w treści - miniatury to nie treść */
.ui-card .pv-dyplomy__link,
.pv-dyplomy__link { display: flex; flex-direction: column; text-decoration: none; color: var(--brand); }
.pv-dyplomy__kadr { display: block; position: relative; aspect-ratio: 4 / 3; overflow: hidden; }
.pv-dyplomy__kadr img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: left top;
  transition: opacity .2s ease;
}
.pv-dyplomy__link:hover .pv-dyplomy__kadr img { opacity: .85; }
.pv-dyplomy__podpis {
  display: block;
  min-height: 70px;
  margin-top: 10px;
  padding-top: 5px;
  border-top: 1px solid var(--line);
  font-size: 0.875rem;
  line-height: 1.4;
  text-align: left;
}
@media (max-width: 767px) {
  .pv-dyplomy__siatka { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---------- 8. Lightbox (<dialog>) ---------- */
.pv-lightbox {
  width: 100vw;
  height: 100vh;
  height: 100dvh;
  max-width: none;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: rgba(0, 0, 0, 0.8);
  overflow: hidden;
}
.pv-lightbox::backdrop { background: rgba(0, 0, 0, 0.5); }
/* animacja otwarcia i zamknięcia: tło się rozjaśnia, obraz lekko rośnie / maleje (subtelnie, 0.2-0.25 s) */
@keyframes pv-lightbox-tlo { from { opacity: 0; } to { opacity: 1; } }
@keyframes pv-lightbox-obraz { from { opacity: 0; transform: scale(.94); } to { opacity: 1; transform: scale(1); } }
.pv-lightbox[open] { animation: pv-lightbox-tlo .25s ease both; }
.pv-lightbox[open]::backdrop { animation: pv-lightbox-tlo .25s ease both; }
.pv-lightbox[open] .pv-lightbox__obraz { animation: pv-lightbox-obraz .25s cubic-bezier(.2, .7, .2, 1) both; }
.pv-lightbox--zamykanie[open],
.pv-lightbox--zamykanie[open]::backdrop { animation: pv-lightbox-tlo .2s ease reverse both; }
.pv-lightbox--zamykanie[open] .pv-lightbox__obraz { animation: pv-lightbox-obraz .2s ease reverse both; }
.pv-lightbox__scena {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 56px 64px;
  box-sizing: border-box;
}
.pv-lightbox__obraz {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5);
  transition: opacity .18s ease;
}
.pv-lightbox__obraz--zmiana { opacity: 0; }
.pv-lightbox__btn {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #fff;
  cursor: pointer;
  transition: background-color .2s ease;
}
.pv-lightbox__btn:hover { background: rgba(255, 255, 255, 0.15); }
.pv-lightbox__btn:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
.pv-lightbox__btn .pv-ikona { width: 30px; height: 30px; }
.pv-lightbox__btn--zamknij { top: 8px; right: 8px; }
.pv-lightbox__btn--wstecz { left: 8px; top: 50%; transform: translateY(-50%); }
.pv-lightbox__btn--dalej { right: 8px; top: 50%; transform: translateY(-50%); }
.pv-lightbox__btn[hidden] { display: none; }
@media (max-width: 767px) {
  .pv-lightbox__scena { padding: 56px 8px; }
  .pv-lightbox__btn--wstecz, .pv-lightbox__btn--dalej { top: auto; bottom: 4px; transform: none; }
}

/* ---------- 9. Zespół: filtr profesji i siatka kart ---------- */
.pv-filtr {
  display: flex;
  align-items: stretch;
  gap: 20px;
  margin-bottom: var(--pv-kolumna);
}
.pv-filtr__btn {
  position: relative;
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  min-height: 39px;
  padding: 10px 12px 10px 54px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--brand);
  font-family: var(--pv-font-tekst);
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.2;
  text-align: left;
  cursor: pointer;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.pv-filtr__btn::before {
  content: "";
  position: absolute;
  left: 14px;
  top: 50%;
  width: 38px;
  height: 38px;
  transform: translateY(-50%);
  background: var(--pv-ikona, none) no-repeat center / 18px 18px;
  opacity: .92;
  transition: opacity .2s ease, transform .2s ease;
}
.pv-filtr__btn:hover { background: var(--soft); border-color: rgba(22, 87, 163, .35); color: var(--brand); }
.pv-filtr__btn:hover::before { opacity: 1; }
.pv-filtr__btn[aria-pressed="true"] {
  background: #bfb39c29;
  border-color: #bfb39c29;
  color: var(--brand-dark);
}
.pv-filtr__btn[aria-pressed="true"]::before { opacity: 1; transform: translateY(-50%) scale(1.9); }
@media (max-width: 1366px) {
  .pv-filtr { gap: 5px; }
}
@media (max-width: 1024px) {
  .pv-filtr { flex-direction: column; }
}

.pv-osoby {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-rows: 1fr;
  gap: var(--pv-kolumna);
}
.pv-osoba {
  display: flex;
  flex-direction: column;
  gap: var(--pv-odstep);
  min-height: 610px;
  padding-block: 38px;
}
.pv-osoba[hidden] { display: none; }
.pv-osoba__foto { display: block; }
.pv-osoba__foto img {
  width: 100%;
  border-radius: 6px;
  border: 1px solid var(--line);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.10);
  box-sizing: border-box;
}
.pv-main .pv-osoba .pv-osoba__nazwa {
  font-family: var(--pv-font-naglowki);
  font-weight: 600;
  font-size: 1rem;
  line-height: 1.2;
  letter-spacing: 0.04em;
}
.pv-osoba .pv-osoba__nazwa a { color: var(--brand); text-decoration: none; }
.pv-osoba .pv-osoba__nazwa a:hover { color: var(--brand-dark); }
.pv-osoba__rola { margin-top: -10px; line-height: 1.3; }
.pv-osoba .pv-osoba__wiecej { margin-top: auto; align-self: flex-start; }
@media (max-width: 1366px) {
  .pv-osoby { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pv-osoba { min-height: 520px; }
  .pv-osoba__foto img { width: 80%; }
}
@media (max-width: 1025px) {
  .pv-osoba { padding-block: 28px; }
}
@media (max-width: 1024px) {
  .pv-osoba { min-height: 490px; }
  .pv-osoba__foto img { width: 100%; }
}
@media (max-width: 767px) {
  /* jedna kolumna - równe wiersze dawałyby tylko pustkę pod krótszymi kartami */
  .pv-osoby { grid-template-columns: minmax(0, 1fr); grid-auto-rows: auto; }
  .pv-osoba__foto img { width: 80%; }
  .pv-osoba .pv-osoba__wiecej { align-self: stretch; }
}

/* ---------- 10. Wiersze i karty stron treściowych (pole „Sekcje") ---------- */
.pv-wiersz { display: flex; align-items: stretch; gap: var(--pv-kolumna); }
.pv-wiersz > .pv-karta { flex: 1 1 100%; min-width: 0; }
.pv-karta { display: flex; flex-direction: column; align-items: flex-start; gap: var(--pv-odstep); }
.pv-karta > * { max-width: 100%; }
.pv-karta > .pv-tresc,
.pv-karta > .pv-osoby,
.pv-karta > .section-title { align-self: stretch; }
/* rytm akapitów jak w dotychczasowych kartach */
.pv-karta > .pv-tresc p { margin: 16px 0 24px; }
.pv-karta > .pv-tresc > p:first-child { margin-top: 16px; }
.pv-karta > .pv-tresc > p:last-child { margin-bottom: 24px; }
.pv-karta > .pv-tresc ul,
.pv-karta > .pv-tresc ol { margin-bottom: 0; }
.pv-karta > .pv-tresc ul { gap: 8px; }
@media (max-width: 768px) {
  .pv-karta > .pv-tresc ul { gap: 10px; }
}
/* Odstępy między blokami odtwarzają dawny układ „widget + 20 px przerwy + widget":
   marginesy w jednym polu WYSIWYG zapadają się, więc sumy są wpisane wprost. */
.pv-karta > .pv-tresc h2,
.pv-karta > .pv-tresc h3 { margin: 44px 0 20px; color: var(--brand); }
.pv-karta > .pv-tresc > h2:first-child,
.pv-karta > .pv-tresc > h3:first-child { margin-top: 0; }
.pv-karta > .pv-tresc ul + h2,
.pv-karta > .pv-tresc ul + h3,
.pv-karta > .pv-tresc ol + h2,
.pv-karta > .pv-tresc ol + h3 { margin-top: 20px; }
.pv-karta > .pv-tresc h2 + p,
.pv-karta > .pv-tresc h3 + p,
.pv-karta > .pv-tresc ul + p,
.pv-karta > .pv-tresc ol + p { margin-top: 36px; }
.pv-karta > .pv-tresc p + ul,
.pv-karta > .pv-tresc p + ol { margin-top: 44px; }
.pv-karta > .pv-tresc h2::after,
.pv-karta > .pv-tresc h3::after {
  content: "";
  display: block;
  width: 256px;
  max-width: 100%;
  height: 2px;
  margin-top: 10px;
  background: linear-gradient(90deg, var(--accent) 0%, var(--accent) 45%, rgba(255, 255, 255, 0) 100%);
}
/* „Treść w dwóch kolumnach": najwyżej dwa łamy, każdy co najmniej 300 px. Karta węższa niż ok. 630 px treści
   (np. dwie karty 50/50, karta 40 % obok zdjęcia) zostaje przy jednym łamie - wąskie łamy obok siebie raziły (Fala uderzeniowa).
   Decyduje szerokość karty, nie rodzaj wiersza, więc przełącznik działa też w szerokiej karcie wiersza „dwie karty". */
.pv-tresc--2kol { columns: 2 300px; column-gap: var(--pv-kolumna); }
.pv-tresc--2kol li { break-inside: avoid; }

/* lista numerowana w karcie - numer w kółku */
.pv-karta > .pv-tresc ol { counter-reset: step; list-style: none; padding: 0; display: block; }
.pv-karta > .pv-tresc ol > li { position: relative; padding-left: 50px; margin-bottom: 20px; }
.pv-karta > .pv-tresc ol > li::before {
  counter-increment: step;
  content: counter(step);
  position: absolute;
  left: 0;
  top: -0.3em;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--accent-soft);
  border: 1px solid var(--accent-border);
  color: var(--brand);
  font-family: var(--pv-font-naglowki);
  font-weight: 600;
  font-size: 0.9rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pv-karta > .pv-tresc ol strong { color: var(--brand); }

/* akapit otwierający z kreską */
.therapy-intro { position: relative; padding-left: 1.75rem; border-left: 3px solid var(--check-bg); }
.therapy-intro::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.4rem;
  width: 3px;
  height: 36px;
  background-color: var(--accent);
  border-radius: 2px;
}

/* dwie karty: --pv-lewa = szerokość lewej w % (flex-shrink zjada odstęp proporcjonalnie) */
.pv-wiersz--dwie > .pv-karta:first-child { flex: 0 1 calc(var(--pv-lewa, 50) * 1%); }
.pv-wiersz--dwie > .pv-karta:last-child { flex: 0 1 calc((100 - var(--pv-lewa, 50)) * 1%); }
.pv-wiersz--zespol { align-items: flex-start; }

/* karta + zdjęcie. Trzy reguły (2026-09-27), żeby karta nie rozciągała się na całą wysokość wiersza:
   1. karta ma wysokość swojej treści i stoi na środku względem zdjęć,
   2. kilka zdjęć układa się w siatkę (2 obok siebie, 3 = jedno szerokie + dwa, 4 = 2x2), a nie w słupek,
   3. pojedyncze zdjęcie w kadrze 16:10 rośnie do wysokości karty (z kadrowaniem, najwyżej do 720 px), nigdy poniżej 260 px. */
.pv-wiersz--zdjecie > .pv-karta { flex: 0 1 calc(var(--pv-karta, 40) * 1%); align-self: center; justify-content: center; position: relative; z-index: 1; }
.pv-wiersz--karta-dol > .pv-karta { align-self: flex-end; justify-content: flex-end; }
/* „dosunięta do dołu" dotyczy obu kolumn: gdy karta jest wyższa niż zdjęcie (kadr oryginalny, siatka zdjęć), zdjęcia też stoją przy dolnej krawędzi */
.pv-wiersz--karta-dol > .pv-wiersz__zdjecia { justify-content: flex-end; align-content: end; }
/* kadr „oryginalne proporcje": zdjęcie nie dopasuje się do karty (brak kadrowania), więc to karta rośnie do wysokości zdjęcia - obie krawędzie równe, treść na środku */
.pv-wiersz--karta-rozciagnij > .pv-karta { align-self: stretch; }
.pv-wiersz__zdjecia { flex: 0 1 calc((100 - var(--pv-karta, 40)) * 1%); min-width: 0; display: flex; flex-direction: column; justify-content: center; gap: var(--pv-kolumna); box-sizing: border-box; }
.pv-wiersz--zdjecie-lewa > .pv-wiersz__zdjecia { order: -1; }
.pv-wiersz__zdjecia figure { margin: 0; }
/* zdjęcie nigdy nie jest większe niż jego plik (--pv-nat-w/-h z szablonu): mały plik stoi w naturalnym rozmiarze na środku kolumny,
   zamiast rozciągać się na całą jej szerokość i wysokość karty - powiększanie dawało pikselozę */
.pv-wiersz__zdjecia > figure { width: 100%; max-width: min(100%, var(--pv-nat-w, 100%)); align-self: center; justify-self: center; }
.pv-wiersz__zdjecia > figure.ui-media { max-height: var(--pv-nat-h, none); }
.pv-wiersz__zdjecia--1 > figure.ui-media { min-height: min(max(260px, min(100%, 720px)), var(--pv-nat-h, 720px)); }
.pv-wiersz__zdjecia--2,
.pv-wiersz__zdjecia--3,
.pv-wiersz__zdjecia--4 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-content: center; align-items: start; }
.pv-wiersz__zdjecia--3 > figure:first-child { grid-column: 1 / -1; }
.pv-wiersz__zdjecia--3 > figure.ui-media:first-child { aspect-ratio: 16 / 7; }
.ui-media { border-radius: 6px; border: 1px solid var(--line); overflow: hidden; box-shadow: 0 12px 28px rgba(0, 0, 0, 0.10); aspect-ratio: 16 / 10; }
.ui-media img { width: 100%; height: 100%; object-fit: cover; display: block; filter: saturate(0.95) contrast(0.98); }
.ui-media-user img { width: 100%; border-radius: 6px; border: 1px solid var(--line); box-shadow: 0 12px 28px rgba(0, 0, 0, 0.10); box-sizing: border-box; }

/* karta bez ramki (sam tekst, np. strony prawne) */
.pv-karta--bez { padding: 0; }

/* trzy-cztery karty o równej szerokości */
.pv-wiersz--wiele > .pv-karta { flex: 1 1 0; }

/* obrazek / film na całą szerokość karty */
.pv-karta > .pv-karta__media,
.pv-karta > .pv-karta__osadzenie { align-self: stretch; margin: 0; }
.pv-karta__osadzenie { aspect-ratio: 16 / 9; }
/* opakowanie zgody cookies (.pv-osadzenie) musi wypełnić kontener, inaczej iframe z height:100% spada do domyślnych 150 px */
.pv-karta__osadzenie > .pv-osadzenie { height: 100%; }
.pv-karta__osadzenie iframe { display: block; width: 100%; height: 100%; border: 0; }

/* lista przeciwwskazań: czerwone znaczniki (klasę nadaje szablon po nagłówku „Przeciwwskazania") */
.pv-tresc--haczyki ul.pv-lista-nie li::before { background: #eb69694d; border-color: #eb69694d; }
.pv-tresc--haczyki ul.pv-lista-nie li::after { border-color: #cf1e1e; }

/* siatka zespołu wewnątrz karty */
.pv-osoby--w-karcie { grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr)); gap: 10px; }

@media (max-width: 1366px) {
  /* laptop: karta z zespołem zwęża się do 40%, treść dostaje 60% */
  .pv-wiersz--zespol-prawa > .pv-karta:first-child,
  .pv-wiersz--zespol-lewa > .pv-karta:last-child { flex-basis: 60%; }
  .pv-wiersz--zespol-prawa > .pv-karta:last-child,
  .pv-wiersz--zespol-lewa > .pv-karta:first-child { flex-basis: 40%; }
}
@media (max-width: 1024px) {
  .pv-wiersz { flex-direction: column; }
  .pv-wiersz > .pv-karta,
  .pv-wiersz--dwie > .pv-karta:first-child,
  .pv-wiersz--dwie > .pv-karta:last-child,
  .pv-wiersz--zdjecie > .pv-karta,
  .pv-wiersz__zdjecia { flex: none; width: 100%; }
  .pv-wiersz--zdjecie > .pv-karta,
  .pv-wiersz--karta-dol > .pv-karta { align-self: auto; }
  .pv-wiersz__zdjecia--1 > figure.ui-media { min-height: 0; }
  .pv-wiersz--zdjecie-lewa > .pv-wiersz__zdjecia { order: 0; }
  .pv-wiersz--zdjecie-pierwsze > .pv-wiersz__zdjecia { order: -1; }
}
@media (max-width: 767px) {
  .pv-wiersz__zdjecia--2,
  .pv-wiersz__zdjecia--3,
  .pv-wiersz__zdjecia--4 { grid-template-columns: minmax(0, 1fr); }
  .pv-wiersz__zdjecia--3 > figure.ui-media:first-child { aspect-ratio: 16 / 10; }
}
@media (max-width: 768px) {
  .therapy-intro { border-left: none; padding-left: 0; }
  .therapy-intro::before { display: none; }
  .pv-tresc--2kol { columns: 1; }
  .pv-karta > .pv-tresc ol > li { padding-left: 48px; font-size: 0.95rem; }
  .pv-karta > .pv-tresc ol > li::before { width: 30px; height: 30px; font-size: 0.85rem; }
}
@media (max-width: 767px) {
  .pv-karta > .btn-primary,
  .pv-karta > .btn-secondary { align-self: stretch; }
}

/* ---------- 11. Lista podstron (wizytówki) ---------- */
.pv-lista {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-rows: 1fr;
  gap: var(--pv-kolumna);
}
.pv-lista__el {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--pv-odstep);
  padding-block: 39px; /* jak dawne karty pętli: 28 px karty + wewnętrzne 10 px + linia */
  position: relative;
}
.pv-lista__foto {
  display: block;
  width: 80%;
  padding: 20px;
  box-sizing: border-box;
  aspect-ratio: auto;
}
.pv-lista__foto img { border-radius: 6px; }
.pv-main .pv-lista .pv-lista__tytul {
  font-family: var(--pv-font-naglowki);
  font-weight: 300;
  font-size: 1.25rem;
  line-height: 1.6;
}
.ui-card .pv-lista__tytul a,
.ui-card .pv-lista__foto { color: var(--brand); text-decoration: none; }
.pv-lista__tytul a:hover { color: var(--brand-dark); }
.pv-lista__zajawka { margin: 0; }
.pv-lista .pv-lista__wiecej { margin-top: auto; }
/* przyciski w kartach: reguła .ui-card li a podkreśla linki w treści, przycisk to nie treść */
.ui-card a.btn-primary,
.ui-card li a.btn-primary { text-decoration: none; color: #fff; }
.ui-card a.btn-secondary,
.ui-card li a.btn-secondary { text-decoration: none; color: var(--brand); }
.ui-card a.btn-secondary:hover,
.ui-card li a.btn-secondary:hover { color: var(--brand-dark); }
.ui-card a.btn-accent,
.ui-card li a.btn-accent { text-decoration: none; color: #1b1b1b; }
/* wizytówki w wyniku konfiguratora: bez wymuszonej wysokości siatki zespołu */
.pv-konf__osoby .pv-osoba { min-height: 0; }

/* wariant „panel”: białe pola z lewą kreską w jednej jasnej karcie, ozdobne kółko w rogu */
.pv-lista--panel { gap: var(--pv-kolumna) 10px; }
/* nagłówek i tekst nad listą podstron (w karcie-panelu albo nad siatką kart) */
.pv-lista-panel,
.pv-lista-sekcja { display: flex; flex-direction: column; gap: var(--pv-odstep); }
.pv-lista-panel > .pv-lista,
.pv-lista-sekcja > .pv-lista { align-self: stretch; }
.pv-lista__wstep { margin: 0; max-width: 888px; }
.pv-lista--panel > .pv-lista__el {
  gap: 24px;
  border-width: 0 0 0 1px;
  border-radius: 14px;
  box-shadow: none;
}
.pv-lista--panel > .pv-lista__el::after {
  content: "";
  position: absolute;
  right: 10px;
  bottom: 10px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #f2f6fb94;
  pointer-events: none;
  transition: background-color .25s ease;
}
/* po najechaniu na pole (albo fokusie na linku w środku) kółko w rogu dostaje wyraźniejszy niebieski */
.pv-lista--panel > .pv-lista__el:hover::after,
.pv-lista--panel > .pv-lista__el:focus-within::after { background: rgba(22, 87, 163, 0.22); }
@media (max-width: 1366px) {
  .pv-lista { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1024px) {
  .pv-lista { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .pv-lista { grid-template-columns: minmax(0, 1fr); grid-auto-rows: auto; }
  .pv-lista .pv-lista__wiecej { align-self: stretch; }
}

/* ---------- 12. Formularz kontaktowy ---------- */
.pv-karta > .pv-form { align-self: stretch; }
.pv-form form { display: flex; flex-direction: column; gap: 15px; }
.pv-form__pole { margin: 0; display: flex; flex-direction: column; gap: 6px; }
.pv-form input[type="text"],
.pv-form input[type="email"],
.pv-form input[type="tel"],
.pv-form textarea {
  width: 100%;
  box-sizing: border-box;
  font-family: var(--pv-font-tekst);
  font-size: 1rem;
  line-height: 1.5;
  padding: 0.75rem 0.9rem;
  border-radius: 10px;
  border: 1px solid #69727d;
  background: #fff;
  color: var(--brand);
  transition: border-color .2s ease, box-shadow .2s ease;
}
.pv-form textarea { min-height: 140px; resize: vertical; }
.pv-form input:focus,
.pv-form textarea:focus {
  outline: none;
  border-color: var(--brand);
  box-shadow: 0 0 0 3px rgba(22, 87, 163, .12);
}
.pv-form [aria-invalid="true"] { border-color: #cf1e1e; }
.pv-form__blad { display: block; font-size: 0.8125rem; line-height: 1.5; color: #b91c1c; }
.pv-form__blad--ogolny,
.pv-form__sukces { margin: 0 0 15px; padding: 12px 14px; border-radius: 10px; font-size: 0.875rem; }
.pv-form__blad--ogolny { background: #fdecec; border: 1px solid #f3b4b4; }
.pv-form__sukces { background: var(--check-bg); border: 1px solid rgba(22, 87, 163, .25); color: var(--brand-dark); }
.pv-form__info { margin: 0; padding: 0 5px; font-size: 0.8125rem; line-height: 1.5; }
.pv-form__info a { color: var(--brand); text-decoration: underline; }
.pv-form__www { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.pv-form__dzialy { margin: 0; padding: 0 5px; border: 0; display: flex; flex-wrap: wrap; gap: 10px 20px; }
.pv-form__dzialy legend { padding: 0; margin-bottom: 15px; font-size: 0.875rem; line-height: 1.5; }
/* pola wyboru: własne kółko z haczykiem, natywne pole ukryte, ale dostępne z klawiatury */
.pv-form__opcja { position: relative; display: inline-flex; align-items: center; }
.pv-form__zgoda { margin: 0; padding: 0 5px; align-items: flex-start; }
.pv-form__opcja input[type="checkbox"] { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.pv-form__opcja label {
  position: relative;
  padding-left: 34px;
  cursor: pointer;
  font-size: 0.95rem;
  line-height: 1.4;
  color: var(--brand);
}
.pv-form__zgoda label { font-size: 0.875rem; line-height: 1.5; }
.pv-form__opcja label::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.1em;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid #D1D5DB;
  box-sizing: border-box;
  transition: border-color .2s ease, background .2s ease;
}
.pv-form__opcja label::after {
  content: "";
  position: absolute;
  left: 6px;
  top: 0.55em;
  width: 9px;
  height: 5px;
  border-left: 2px solid var(--brand);
  border-bottom: 2px solid var(--brand);
  transform: rotate(-45deg);
  opacity: 0;
  transition: opacity .15s ease;
}
.pv-form__zgoda label::before { top: 0; }
.pv-form__zgoda label::after { top: 6px; }
.pv-form__opcja label:hover::before { border-color: var(--brand); }
.pv-form__opcja input:checked + label::before { background: var(--check-bg); border-color: var(--brand); }
.pv-form__opcja input:checked + label::after { opacity: 1; }
.pv-form__opcja input:focus-visible + label::before { box-shadow: 0 0 0 3px rgba(22, 87, 163, .15); outline: 3px solid var(--brand-dark); outline-offset: 2px; }
.pv-form__opcja input[aria-invalid="true"] + label::before { border-color: #cf1e1e; }
.pv-form__zgoda .pv-form__blad { flex-basis: 100%; padding-left: 34px; }
.pv-form button.btn-primary { align-self: flex-start; min-height: 48px; padding-inline: 1.25rem; }
@media (max-width: 767px) {
  .pv-form button.btn-primary { align-self: stretch; }
}

/* mała etykieta wersalikami w treści karty (Nagłówek 4) + ikony przy telefonach i mailach */
.pv-karta > .pv-tresc h4,
.pv-karta > .pv-tresc .pv-etykieta {
  font-family: var(--pv-font-naglowki);
  font-weight: 500;
  font-size: 1.125rem;
  line-height: 1;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--brand);
  margin: 30px 0 20px;
}
.pv-karta > .pv-tresc > h4:first-child,
.pv-karta > .pv-tresc > .pv-etykieta:first-child { margin-top: 0; }
.pv-karta > .pv-tresc h4::after,
.pv-karta > .pv-tresc .pv-etykieta::after {
  content: "";
  display: block;
  width: 256px;
  max-width: 100%;
  height: 2px;
  margin-top: 10px;
  background: linear-gradient(90deg, var(--accent) 0%, var(--accent) 45%, rgba(255, 255, 255, 0) 100%);
}
.pv-karta > .pv-tresc h4 + p,
.pv-karta > .pv-tresc .pv-etykieta + p { margin-top: 0; }
.pv-tresc a[href^="tel:"],
.pv-tresc a[href^="mailto:"] { text-decoration: none; display: inline-flex; align-items: center; gap: 10px; line-height: 2; }
.pv-tresc a[href^="tel:"]:hover,
.pv-tresc a[href^="mailto:"]:hover { text-decoration: underline; }
/* link z ikoną wewnątrz zdania (np. deklaracja dostępności): ikona na linii tekstu, bez podnoszenia interlinii.
   Klasę nadaje karta.php, gdy w akapicie obok linku jest zwykły tekst; samodzielne linki (Kontakt) zostają z podwójną interlinią */
.pv-tresc a.pv-w-tekscie[href^="tel:"],
.pv-tresc a.pv-w-tekscie[href^="mailto:"] { display: inline; line-height: inherit; }
/* ikona w rozmiarze tekstu, na linii bazowej, z odstępem jak spacja - link czyta się jak zwykłe słowo w zdaniu */
.pv-tresc a.pv-w-tekscie[href^="tel:"]::before,
.pv-tresc a.pv-w-tekscie[href^="mailto:"]::before { display: inline-block; width: 1.1em; height: 1.1em; margin-right: 0.3em; vertical-align: -0.2em; }
.pv-tresc a[href^="tel:"]::before,
.pv-tresc a[href^="mailto:"]::before {
  content: "";
  flex: none;
  width: 25px;
  height: 25px;
  background: currentColor;
  -webkit-mask: var(--pv-ikona-kontakt) no-repeat center / contain;
  mask: var(--pv-ikona-kontakt) no-repeat center / contain;
}
.pv-tresc a[href^="tel:"] { --pv-ikona-kontakt: 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.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.25 6.75c0 8.284 6.716 15 15 15h2.25a2.25 2.25 0 0 0 2.25-2.25v-1.372c0-.516-.351-.966-.852-1.091l-4.423-1.106c-.44-.11-.902.055-1.173.417l-.97 1.293c-.282.376-.769.542-1.21.38a12.035 12.035 0 0 1-7.143-7.143c-.162-.441.004-.928.38-1.21l1.293-.97c.363-.271.527-.734.417-1.173L6.963 3.102a1.125 1.125 0 0 0-1.091-.852H4.5A2.25 2.25 0 0 0 2.25 4.5v2.25Z'/%3E%3C/svg%3E"); }
.pv-tresc a[href^="mailto:"] { --pv-ikona-kontakt: 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.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21.75 6.75v10.5a2.25 2.25 0 0 1-2.25 2.25h-15a2.25 2.25 0 0 1-2.25-2.25V6.75m19.5 0A2.25 2.25 0 0 0 19.5 4.5h-15a2.25 2.25 0 0 0-2.25 2.25m19.5 0v.243a2.25 2.25 0 0 1-1.07 1.916l-7.5 4.615a2.25 2.25 0 0 1-2.36 0L3.32 8.91a2.25 2.25 0 0 1-1.07-1.916V6.75'/%3E%3C/svg%3E"); }

/* ---------- 13. Cennik ---------- */
.pv-cennik { display: flex; flex-direction: column; gap: 0; }
.pv-cennik__szukaj { display: flex; flex-direction: column; gap: 10px; margin: 0 0 28px; }
.pv-cennik__etykieta { font-family: var(--pv-font-naglowki); font-size: 1.25rem; font-weight: 500; line-height: 1.4; color: var(--brand-dark); }
.pv-cennik__pole { display: flex; gap: 10px; align-items: stretch; flex-wrap: wrap; }
/* selektor z elementem, bo style.css motywu _s ma input[type="search"] o wyższej specyficzności */
.pv-cennik input.pv-cennik__input {
  flex: 1 1 320px;
  min-width: 0;
  box-sizing: border-box;
  font-family: var(--pv-font-tekst);
  font-size: 1rem;
  line-height: 1.5;
  padding: 0.7rem 0.85rem;
  border-radius: 10px;
  border: 1px solid rgba(15, 62, 115, .55);
  background: #fff;
  color: #1F2933;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.pv-cennik input.pv-cennik__input::placeholder { color: #6B7280; }
.pv-cennik input.pv-cennik__input:focus { outline: none; border-color: var(--brand); box-shadow: 0 0 0 3px rgba(22, 87, 163, .2); }
.pv-cennik input.pv-cennik__input:focus-visible { outline: 3px solid var(--brand-dark); outline-offset: 2px; }
.pv-cennik__wyczysc,
.pv-cennik__skok {
  flex: 0 0 auto;
  font-family: var(--pv-font-naglowki);
  font-size: 0.875rem;
  font-weight: 500;
  padding: 0.5rem 0.9rem;
  border-radius: 6px;
  background: #fff;
  cursor: pointer;
  transition: background-color .2s ease, color .2s ease;
}
.pv-cennik__wyczysc { border: 1px solid #B3261E; color: #B3261E; }
.pv-cennik__wyczysc:hover { background: #B3261E; color: #fff; }
.pv-cennik__skok { border: 1px solid var(--brand); color: var(--brand); padding: 0.45rem 0.9rem; }
.pv-cennik__skok:hover { background: var(--brand); color: #fff; }
.pv-cennik__meta { margin: 0; min-height: 1.2em; font-size: 0.9rem; color: var(--brand-dark); }
.pv-cennik__licznik:not(:empty) { display: inline-block; padding: 2px 10px; border-radius: 999px; background: var(--check-bg); font-weight: 600; }
.pv-cennik__inne { display: flex; gap: 10px; flex-wrap: wrap; }
.pv-cennik__inne[hidden] { display: none; }
.pv-cennik__brak { margin: 0; padding: 14px 16px; border-radius: 10px; border: 1px solid #F1C7C4; background: #FDF3F2; color: #8A1D16; }
.pv-cennik__trafienie { background: var(--check-bg); color: #1F2933; box-shadow: inset 0 -2px 0 var(--brand); padding: 0 2px; border-radius: 2px; }

.pv-cennik__naglowek { text-align: center; margin-bottom: 40px; }
.pv-cennik__zakladki { display: flex; gap: 10px; margin-bottom: 40px; }
.pv-cennik__zakladka {
  flex: 1 1 0;
  min-height: 46px;
  padding: 10px 16px;
  border-radius: 999px;
  border: 1px solid var(--brand);
  background: #fff;
  color: var(--brand);
  font-family: var(--pv-font-tekst);
  font-size: 1rem;
  line-height: 1.5;
  text-align: left;
  cursor: pointer;
  transition: background-color .2s ease, color .2s ease;
}
.pv-cennik__zakladka:hover { background: var(--soft); }
.pv-cennik__zakladka[aria-selected="true"] { background: var(--brand); color: #fff; }
.pv-cennik__zakladka:focus-visible { outline: 3px solid var(--brand-dark); outline-offset: 2px; }
.pv-cennik__panel[hidden] { display: none; }
.pv-cennik__panel:focus-visible { outline: none; }
.pv-cennik__tytul-tabeli { margin: 32px 0 16px; }
.pv-cennik__tabela-wrap[hidden] { display: none; }
.pv-cennik__tabela-wrap + .pv-cennik__tabela-wrap { margin-top: 32px; }

.pv-cennik__tabela {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid var(--line);
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
  font-family: var(--pv-font-tekst);
}
.pv-cennik__tabela thead th {
  text-align: left;
  padding: 16px 18px;
  font-weight: 600;
  color: #fff;
  background: var(--brand);
  white-space: nowrap;
}
.pv-cennik__tabela tbody td {
  padding: 14px 18px;
  border-bottom: 1px solid rgba(15, 62, 115, .08);
  vertical-align: middle;
  color: rgba(15, 62, 115, .9);
}
.pv-cennik__tabela tbody tr:nth-child(even) td { background: rgba(22, 87, 163, .025); }
.pv-cennik__tabela tbody tr:hover td { background: rgba(227, 154, 86, .08); }
.pv-cennik__tabela tbody tr:last-child td { border-bottom: none; }
.pv-cennik__tabela tbody tr[hidden] { display: none; }
.pv-cennik__lp { width: 70px; padding-right: 8px; color: rgba(15, 62, 115, .75); font-variant-numeric: tabular-nums; }
.pv-cennik__nazwa { font-weight: 500; }
.pv-cennik__uwaga { display: block; color: rgba(15, 62, 115, .9); font-weight: 400; }
.pv-cennik__cena,
.pv-cennik__dodatkowo { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.pv-cennik__dodatkowo { color: rgba(15, 62, 115, .72); }
/* cena: pogrubiona, bez „pastylki” - tak wyglądała żywa strona (skrypt Elementora usuwał znacznik strong) */
.pv-cennik__cena strong { font-weight: 700; color: var(--brand); }
@media (max-width: 768px) {
  .pv-cennik__etykieta { font-size: 1.125rem; }
  .pv-cennik__wyczysc { flex: 1 1 100%; }
  .pv-cennik__zakladki { flex-direction: column; }
  /* tabela jako lista kart: nagłówki kolumn z data-etykieta */
  .pv-cennik__tabela { border: none; background: none; }
  .pv-cennik__tabela thead { display: none; }
  .pv-cennik__tabela tbody tr {
    display: block;
    position: relative;
    padding: 18px 16px 14px;
    margin: 10px 0;
    border-radius: 14px;
    border: 1px solid rgba(15, 62, 115, .12);
    background: radial-gradient(700px 140px at 15% 0%, rgba(227, 154, 86, .1) 0%, rgba(227, 154, 86, 0) 70%), #fff;
  }
  .pv-cennik__tabela tbody td { display: block; border: 0; padding: 0; background: transparent !important; }
  .pv-cennik__lp {
    position: absolute;
    top: 10px;
    right: 10px;
    width: auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 26px;
    min-width: 26px;
    padding: 0 8px;
    border-radius: 999px;
    font-size: .8rem;
    font-weight: 700;
    background: rgba(227, 154, 86, .18);
    border: 1px solid rgba(227, 154, 86, .35);
    color: var(--brand-dark);
  }
  .pv-cennik__nazwa { font-weight: 600; font-size: 1rem; line-height: 1.3; color: var(--brand-dark); padding: 18px 0; }
  .pv-cennik__cena,
  .pv-cennik__dodatkowo {
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: 10px;
    align-items: center;
    padding-top: 8px;
    font-size: .95rem;
    text-align: left;
  }
  .pv-cennik__cena::before,
  .pv-cennik__dodatkowo::before { content: attr(data-etykieta); font-weight: 600; font-size: .78rem; color: rgba(15, 62, 115, .55); }
}

/* ---------- 14. Strona główna: pas powitalny, kafelki, aktualności, oś czasu ---------- */
.pv-main--start > .pv-sekcja:first-child { margin-top: 28px; }   /* oddech między menu a pasem z filmem (boczny gutter to 37 px) */
@media (max-width: 767px) { .pv-main--start > .pv-sekcja:first-child { margin-top: 16px; } }
.pv-powitanie {
  position: relative;
  min-height: 450px;
  border-radius: 6px;
  background: var(--soft) center / cover no-repeat;
  display: flex;
  align-items: flex-end;
  padding: 60px;
  box-sizing: border-box;
}
.pv-powitanie__ramka {
  max-width: 560px;
  padding: 24px;
  border-radius: 6px;
  border: 1px solid var(--line);
  background: rgba(248, 250, 253, .92);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 20px;
}
.pv-main .pv-powitanie__tytul { font-size: 1.6875rem; line-height: 1.5; }
.pv-main h1.pv-powitanie__tytul--h1 { font-size: 2.1875rem; line-height: 1.3; letter-spacing: -0.01em; }
.pv-main .pv-powitanie__tytul--h1::after {
  content: "";
  display: block;
  width: 106px;
  height: 2px;
  margin-top: 12px;
  background: linear-gradient(90deg, var(--accent) 0%, var(--accent) 45%, rgba(255, 255, 255, 0) 100%);
}
.pv-powitanie__ramka p { margin: 0; }
.pv-powitanie__akcje { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.pv-powitanie__link { display: inline-flex; align-items: center; gap: 6px; color: var(--brand); font-family: var(--pv-font-naglowki); font-weight: 500; font-size: 0.9375rem; letter-spacing: 0.02em; text-decoration: none; }
.pv-powitanie__link:hover { text-decoration: underline; color: var(--brand-dark); }
.pv-powitanie__link .pv-ikona { width: 18px; height: 18px; transition: transform .2s ease; }
.pv-powitanie__link:hover .pv-ikona { transform: translateX(3px); }
a.pv-powitanie__link:visited { color: var(--brand); }   /* bazowy arkusz koloruje odwiedzone linki na fioletowo */
/* wariant „tekst na filmie" (.pv-powitanie--gradient, próba 2026-10-19): bez karty - granatowy gradient od dołu kadru i biały
   tekst wprost na filmie. H1 = nazwa + dopisek w drugim wierszu (.pv-powitanie__podtytul). Przyciski odwrócone: główny biały
   z granatowym tekstem, link drugi jako biały obrys, bo granat na granatowym gradiencie i goły link na filmie giną. */
/* pas z filmem wyższy niż ze zdjęciem (42vw, 480-640 px), żeby gradient zabierał mniej kadru; gradient to łagodna krzywa
   (7 stopni, ease-out), nie odcięcie - u dołu .86, w połowie wysokości ok. .3, powyżej 86% nic */
.pv-powitanie--gradient { min-height: clamp(480px, 42vw, 640px); }
.pv-powitanie--gradient::before { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  /* 17 stopni z krzywej smoothstep (zerowe nachylenie na obu końcach) - przy kilku stopniach widać linię tam, gdzie gradient się kończy */
  background: linear-gradient(to top, rgba(15, 62, 115, 0.86) 0%, rgba(15, 62, 115, 0.847) 6.2%, rgba(15, 62, 115, 0.809) 12.5%, rgba(15, 62, 115, 0.752) 18.8%, rgba(15, 62, 115, 0.68) 25%, rgba(15, 62, 115, 0.597) 31.2%, rgba(15, 62, 115, 0.507) 37.5%, rgba(15, 62, 115, 0.416) 43.8%, rgba(15, 62, 115, 0.326) 50%, rgba(15, 62, 115, 0.243) 56.2%, rgba(15, 62, 115, 0.168) 62.5%, rgba(15, 62, 115, 0.106) 68.8%, rgba(15, 62, 115, 0.057) 75%, rgba(15, 62, 115, 0.024) 81.2%, rgba(15, 62, 115, 0.006) 87.5%, rgba(15, 62, 115, 0) 93.8%, rgba(15, 62, 115, 0) 100%); }
.pv-powitanie--gradient .pv-powitanie__ramka { max-width: 680px; padding: 0; border: 0; border-radius: 0; background: none; color: #fff; gap: 16px; }
/* miękka plama cienia tylko pod blokiem tekstu (jasne klatki: parking, niebo) - reszta kadru zostaje czysta */
.pv-powitanie--gradient .pv-powitanie__ramka::before { content: ""; position: absolute; z-index: -1; inset: -90px -150px -40px -90px; pointer-events: none;
  border-radius: 50%; background: rgba(15, 62, 115, .7); filter: blur(56px); }   /* rozmyta elipsa: gaussowski spadek bez krawędzi (gradient radialny zostawiał obrys) */
.pv-main .pv-powitanie--gradient .pv-powitanie__tytul { text-shadow: 0 1px 2px rgba(15, 62, 115, .45); }
.pv-main .pv-powitanie--gradient .pv-powitanie__tytul { color: #fff; }
.pv-main .pv-powitanie--gradient h1.pv-powitanie__tytul--h1 { font-size: 2.5rem; line-height: 1.15; }
.pv-powitanie__podtytul { display: block; margin-top: 6px; font-size: 1.1875rem; line-height: 1.4; font-weight: 400; letter-spacing: 0.01em; color: rgba(255, 255, 255, .92); }
.pv-main .pv-powitanie--gradient .pv-powitanie__tytul--h1::after { margin-top: 14px; }
.pv-powitanie--gradient .pv-powitanie__ramka p { font-size: 1.0625rem; line-height: 1.55; color: #fff; max-width: 560px; }
.pv-powitanie--gradient a.btn-primary { color: var(--brand-dark); background-color: #fff; }
.pv-powitanie--gradient a.btn-primary:hover { background-color: var(--check-bg); color: var(--brand-dark); }
.pv-powitanie--gradient a.btn-primary .pv-ikona { stroke: var(--brand-dark); }
.pv-powitanie--gradient a.btn-primary:hover .pv-ikona { background: var(--brand); box-shadow: 0 0 0 3px var(--brand); stroke: #fff; }
.pv-powitanie--gradient a.pv-powitanie__link,
.pv-powitanie--gradient a.pv-powitanie__link:visited { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; box-sizing: border-box; padding: 0.5rem 0.9rem 0.5rem 1rem; border-radius: 6px; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .85); color: #fff; font-size: 1rem; font-weight: 400; letter-spacing: 0.04em; text-transform: uppercase; text-decoration: none; transition: background-color .25s ease, color .25s ease, box-shadow .25s ease; }
.pv-powitanie--gradient a.pv-powitanie__link:hover { background: #fff; color: var(--brand-dark); box-shadow: inset 0 0 0 1px #fff; text-decoration: none; }
.pv-powitanie--gradient a.pv-powitanie__link:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
.pv-powitanie--gradient .pv-powitanie__akcje { gap: 12px 16px; }
/* film w tle pasa (.pv-powitanie--wideo): <video> wypełnia pas jak zdjęcie (object-fit: cover), zdjęcie z tła zostaje pod spodem
   jako plakat; przycisk pauzy w prawym górnym rogu w stylu ikonowych przycisków motywu; ikonę pauza/odtwórz przełącza data-film */
.pv-powitanie--wideo { overflow: hidden; isolation: isolate; }
.pv-powitanie__film { position: absolute; inset: 0; z-index: 0; }
.pv-powitanie__wideo { display: block; width: 100%; height: 100%; object-fit: cover; }
.pv-powitanie--wideo .pv-powitanie__ramka { position: relative; z-index: 1; }
.pv-powitanie__pauza {
  position: absolute;
  top: 20px;
  right: 20px;
  z-index: 2;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(248, 250, 253, .92);
  color: var(--brand);
  box-shadow: inset 0 0 0 1px var(--line);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background-color .2s ease, color .2s ease, box-shadow .2s ease;
}
.pv-powitanie__pauza .pv-ikona { width: 20px; height: 20px; }
.pv-powitanie__pauza:hover { background: var(--brand); color: #fff; box-shadow: inset 0 0 0 1px var(--brand); }
.pv-powitanie__pauza:focus-visible { outline: 3px solid var(--brand-dark); outline-offset: 2px; }
.pv-powitanie__pauza .pv-powitanie__ikona-odtworz,
.pv-powitanie[data-film="pauza"] .pv-powitanie__ikona-pauza { display: none; }
.pv-powitanie[data-film="pauza"] .pv-powitanie__ikona-odtworz { display: block; margin-left: 2px; }
@media (max-width: 767px) {
  .pv-powitanie { padding: 16px; min-height: 360px; }
  .pv-powitanie__pauza { top: 12px; right: 12px; }
  /* telefon: pas wyższy (78% okna, 520-620 px), żeby nad tekstem zostało więcej filmu, a CTA dalej nad zgięciem;
     przyciski na całą szerokość jak w kartach i stosach */
  .pv-powitanie--gradient { padding: 20px; min-height: clamp(520px, 78svh, 620px); }
  .pv-powitanie__akcje { flex-direction: column; align-items: stretch; width: 100%; }
  .pv-powitanie__akcje > .btn-primary,
  .pv-powitanie--gradient a.pv-powitanie__link,
  .pv-powitanie--gradient a.pv-powitanie__link:visited { width: 100%; justify-content: space-between; }
  .pv-powitanie--gradient .pv-powitanie__ramka { width: 100%; }
  .pv-powitanie--gradient::before { background: linear-gradient(to top, rgba(15, 62, 115, 0.9) 0%, rgba(15, 62, 115, 0.887) 6.2%, rgba(15, 62, 115, 0.852) 12.5%, rgba(15, 62, 115, 0.798) 18.8%, rgba(15, 62, 115, 0.728) 25%, rgba(15, 62, 115, 0.647) 31.2%, rgba(15, 62, 115, 0.559) 37.5%, rgba(15, 62, 115, 0.468) 43.8%, rgba(15, 62, 115, 0.377) 50%, rgba(15, 62, 115, 0.291) 56.2%, rgba(15, 62, 115, 0.211) 62.5%, rgba(15, 62, 115, 0.142) 68.8%, rgba(15, 62, 115, 0.085) 75%, rgba(15, 62, 115, 0.042) 81.2%, rgba(15, 62, 115, 0.014) 87.5%, rgba(15, 62, 115, 0.002) 93.8%, rgba(15, 62, 115, 0) 100%); }
  .pv-powitanie--gradient .pv-powitanie__ramka::before { inset: -60px -40px -24px -40px; filter: blur(40px); }
  .pv-main .pv-powitanie--gradient h1.pv-powitanie__tytul--h1 { font-size: 1.875rem; }
  .pv-powitanie__podtytul { font-size: 1.0625rem; }
  .pv-powitanie--gradient .pv-powitanie__ramka p { font-size: 1rem; }
  .pv-powitanie__ramka { max-width: none; padding: 20px; }
  .pv-main h1.pv-powitanie__tytul--h1 { font-size: 1.75rem; }
}

.pv-main .pv-kafelki__naglowek { text-align: center; margin: 0 0 60px; }
.pv-kafelki {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
  gap: var(--pv-kolumna);
}
.pv-kafelek {
  min-height: 400px;
  border-radius: 6px;
  overflow: hidden;
  background: var(--brand-dark) center / cover no-repeat;
  display: flex;
}
.pv-kafelek__link {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
  gap: 15px;
  padding: 35px;
  color: #fff;
  text-decoration: none;
  background: linear-gradient(180deg, rgba(15, 62, 115, 0) 45%, rgba(15, 62, 115, .55) 100%);
  transition: background-color .2s ease;
}
.pv-kafelek__link:hover { background-color: rgba(15, 62, 115, .25); }
/* kafelek to link - style.css motywu _s barwi odwiedzone linki na fioletowo; tu tekst ma zostać biały */
.pv-kafelek__link:visited, .pv-kafelek__link:hover, .pv-kafelek__link:focus, .pv-kafelek__link:active,
.pv-kafelek__link:visited .pv-kafelek__tytul, .pv-kafelek__link:visited .pv-kafelek__przycisk { color: #fff; }
.pv-kafelek__link:focus-visible { outline: 3px solid #fff; outline-offset: -6px; }
.pv-kafelek__tytul {
  font-family: var(--pv-font-naglowki);
  font-weight: 300;
  font-size: 2.1875rem;
  line-height: 1.5;
  letter-spacing: -0.01em;
  text-shadow: 0 1px 2px rgba(0, 0, 0, .35);
}
.pv-kafelek__tytul::after {
  content: "";
  display: block;
  width: 256px;
  max-width: 100%;
  height: 2px;
  background: linear-gradient(90deg, #fff 0%, rgba(22, 22, 22, 0) 100%);
}
/* przycisk kafelka = drugorzędny (nawigacja) w wersji na ciemne zdjęcie: biały obrys jak link w pasie powitalnym,
   po najechaniu na kafelek białe wypełnienie i granatowy tekst; strzałka jak w .btn-secondary */
.pv-kafelek__przycisk {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 5px;
  min-height: 40px;
  box-sizing: border-box;
  padding: 0.5rem 0.7rem 0.5rem 0.9rem;
  border-radius: 6px;
  background: transparent;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .85);
  font-family: var(--pv-font-naglowki);
  font-size: 1rem;
  line-height: 1;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  transition: background-color .25s ease, color .25s ease, box-shadow .25s ease;
}
.pv-kafelek__przycisk .pv-ikona { width: 18px; height: 18px; flex: none; stroke: currentColor; transition: transform .2s ease; }
.pv-kafelek__link:hover .pv-kafelek__przycisk { background: #fff; color: var(--brand-dark); box-shadow: inset 0 0 0 1px #fff; }
.pv-kafelek__link:hover .pv-kafelek__przycisk .pv-ikona { transform: translateX(3px); }
@media (max-width: 767px) {
  .pv-kafelek { min-height: 260px; }
  .pv-kafelek__tytul { font-size: 1.875rem; }
  .pv-kafelek__przycisk { align-self: stretch; }
}

.pv-aktualnosci { display: flex; flex-direction: column; align-items: flex-start; gap: var(--pv-odstep); }
.pv-aktualnosci > .pv-wpisy { align-self: stretch; }
.pv-wpisy {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
@media (max-width: 1024px) {
  .pv-wpisy { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .pv-wpisy { grid-template-columns: minmax(0, 1fr); }
}
.pv-wpis { display: flex; flex-direction: column; align-items: flex-start; gap: var(--pv-odstep); }
.pv-wpis__foto { display: block; align-self: stretch; }
.pv-main .pv-wpis .pv-wpis__tytul { font-family: var(--pv-font-naglowki); font-weight: 300; font-size: 1.25rem; line-height: 1.6; }
.ui-card .pv-wpis__tytul a { color: var(--brand); text-decoration: none; }
.pv-wpis__tytul a:hover { color: var(--brand-dark); }
.pv-wpis__data { font-size: 0.875rem; margin-top: -10px; }
.pv-wpis__zajawka { margin: 0; }
.pv-wpis .pv-wpis__wiecej { margin-top: auto; }

.pv-wiersz--os > .pv-os { flex: 0 1 calc(var(--pv-karta, 100) * 1%); }
.pv-os__lista {
  list-style: none;
  margin: 0;
  padding: 0 0 0 2.5rem;
  max-width: 720px;
  border-left: 2px solid var(--line);
  align-self: stretch;
}
.pv-os__etap { position: relative; margin-bottom: 1.8rem; }
.pv-os__etap:last-child { margin-bottom: 0; }
.pv-os__etap::before {
  content: "";
  position: absolute;
  left: -2.85rem;
  top: 0.55rem;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--brand);
}
.pv-os__etykieta {
  display: inline-block;
  margin-bottom: 0.4rem;
  font-family: var(--pv-font-naglowki);
  font-weight: 500;
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--brand);
}
.pv-os__etap--biezacy .pv-os__etykieta { color: var(--brand-dark); }
.pv-main .pv-os .pv-os__tytul { font-family: var(--pv-font-naglowki); font-weight: 500; font-size: 1.25rem; line-height: 1.4; margin: 0 0 0.35rem; color: var(--brand-dark); }
.pv-os__etap p { margin: 0; line-height: 1.6; }
@media (max-width: 1024px) {
  .pv-wiersz--os > .pv-os { flex: none; width: 100%; }
}
@media (max-width: 768px) {
  .pv-os__lista { padding-left: 1.8rem; }
  .pv-os__etap::before { left: -2.2rem; }
}

/* logotypy partnerów: równe białe kafelki (loga mają wspólny kadr 280x150), siatka z zawijaniem;
   do czterech logotypów (.pv-logotypy--rzad) kafelki rozciągają się na całą szerokość karty */
.pv-logotypy__lista {
  list-style: none;
  margin: 0;
  padding: 0;
  align-self: stretch;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 16px;
}
.pv-logotypy--rzad .pv-logotypy__lista { display: flex; flex-wrap: wrap; justify-content: center; }
/* stała liczba kolumn z pola „Kolumny" (np. 16 marek sklepów jako 8x2); tablet połowa, telefon 2 */
.pv-logotypy--kol-6 .pv-logotypy__lista { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
.pv-logotypy--kol-8 .pv-logotypy__lista { grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 12px; }
.pv-logotypy--kol-6 .pv-logotypy__el,
.pv-logotypy--kol-8 .pv-logotypy__el { min-height: 104px; padding: 14px 12px; }
.pv-logotypy--kol-6 .pv-logotypy__el img,
.pv-logotypy--kol-8 .pv-logotypy__el img { max-height: 64px; }
@media (max-width: 1024px) {
  .pv-logotypy--kol-6 .pv-logotypy__lista { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pv-logotypy--kol-8 .pv-logotypy__lista { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .pv-logotypy--kol-6 .pv-logotypy__lista,
  .pv-logotypy--kol-8 .pv-logotypy__lista { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.pv-logotypy__el {
  min-height: 150px;
  padding: 18px 22px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
}
.pv-logotypy__el img { width: 100%; max-width: 220px; max-height: 96px; height: auto; object-fit: contain; }
.pv-logotypy--rzad .pv-logotypy__el { flex: 1 1 0; max-width: none; min-height: 170px; padding: 24px 32px; }
/* 280 px = szerokość najstarszych plików (Medicover, LUX MED) - bez powiększania ponad plik */
.pv-logotypy--rzad .pv-logotypy__el img { max-width: 280px; max-height: 130px; }
@media (max-width: 1024px) {
  /* tablet: węższe kafelki, żeby 16 marek dało pełne rzędy (4 kolumny) */
  .pv-logotypy__lista { grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); }
  .pv-logotypy--rzad .pv-logotypy__el { min-height: 150px; }
  .pv-logotypy--rzad .pv-logotypy__el img { max-width: 260px; max-height: 110px; }
}
/* mały tablet: dwie kolumny (trzy dawały niepełny ostatni rząd) */
@media (max-width: 900px) {
  .pv-logotypy__lista { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* telefon: dwa kafelki w rzędzie */
@media (max-width: 767px) {
  .pv-logotypy__lista { gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pv-logotypy__el { min-height: 96px; padding: 14px; }
  .pv-logotypy--rzad .pv-logotypy__el { flex: 1 1 calc(50% - 6px); max-width: calc(50% - 6px); min-height: 96px; padding: 14px; }
  .pv-logotypy__el img,
  .pv-logotypy--rzad .pv-logotypy__el img { max-width: 100%; max-height: 64px; }
}
.pv-wiersz--zdjecie > .pv-os { flex: 0 1 calc(var(--pv-karta, 40) * 1%); }
.pv-wiersz--os.pv-wiersz--zdjecie > :not(.pv-os) { align-self: center; }   /* oś czasu bywa dużo wyższa niż zdjęcie - zdjęcie na środku kolumny, nie u góry z pustką pod spodem */

/* karta wyśrodkowana (np. wezwanie do działania na całą szerokość) */
.pv-karta--srodek { align-items: center; text-align: center; }
.pv-karta--srodek > .pv-tresc,
.pv-karta--srodek > .section-title { align-self: center; max-width: 888px; }
.pv-karta--srodek > .section-title::after { margin-inline: auto; }

/* ---------- 15. Nagłówek, panel mobilny, pasek dolny, stopka ---------- */
/* link pomijający nawigację - widoczny dopiero po przejściu Tabem (2.4.1) */
.skip-link {
  position: fixed;
  top: 0;
  left: -9999px;
  z-index: 100000;
  padding: 14px 24px;
  background: var(--brand-dark);
  color: #fff;
  font-family: var(--pv-font-naglowki);
  font-size: 1rem;
  line-height: 1.2;
  white-space: nowrap;
  text-decoration: none;
  border-radius: 0 0 6px 0;
}
.skip-link:focus { left: 0; outline: 3px solid #fff; outline-offset: -6px; }
/* Progi jak w zestawie Elementora: komputer od 1367 px, laptop 1025-1366 (menu mobilne), tablet 768-1024, telefon do 767. */
.pv-naglowek,
.pv-panel,
.pv-pasek,
.pv-stopka {
  font-family: var(--pv-font-tekst);
  font-size: 1rem;
  line-height: 1.5;
  color: var(--brand);
  box-sizing: border-box;
}
.pv-naglowek *,
.pv-panel *,
.pv-pasek *,
.pv-stopka * { box-sizing: border-box; }
.pv-naglowek ul,
.pv-panel ul,
.pv-stopka ul { list-style: none; margin: 0; padding: 0; }
.pv-naglowek a,
.pv-panel a,
.pv-stopka a { color: inherit; text-decoration: none; }
.pv-naglowek a.btn-primary, .pv-panel a.btn-primary, .pv-stopka a.btn-primary, .pv-pasek a.btn-primary { color: #fff; }
.pv-naglowek a.btn-accent, .pv-panel a.btn-accent, .pv-stopka a.btn-accent { color: #1b1b1b; }
.pv-naglowek .pv-ikona,
.pv-panel .pv-ikona,
.pv-stopka .pv-ikona { flex: none; }

/* pasek górny */
.pv-naglowek__gora { background: var(--line); padding: 8px 0; }
.pv-naglowek__gora-srodek { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 30px; }
.pv-linki-gorne { display: flex; flex-wrap: wrap; align-items: center; gap: 0 20px; font-size: 0.875rem; color: var(--brand-dark); }
.pv-linki-gorne li { position: relative; display: flex; align-items: center; min-height: 25px; }
.pv-linki-gorne a { position: relative; display: inline-flex; align-items: center; gap: 5px; min-height: 25px; line-height: 1.25rem; }
.pv-linki-gorne .pv-ikona { width: 25px; height: 25px; }
.pv-linki-gorne .pv-menu__link { padding: 0; font-weight: 400; font-size: 0.875rem; letter-spacing: normal; text-transform: none; color: inherit; border-radius: 0; }
/* linki menu górnego: animowana kreska pod spodem (jak .top-link w Elementorze) */
.pv-linki-gorne .pv-menu__link::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 0;
  height: 1px;
  background: linear-gradient(90deg, var(--brand-dark) 50%, transparent 100%);
  transition: width .3s ease-in-out;
}
.pv-linki-gorne .pv-menu__link:hover::after { width: 80%; }
.pv-linki-gorne .pv-menu__el--biezacy .pv-menu__link { font-weight: 700; }

/* wyszukiwarka */
.pv-szukaj { display: flex; align-items: stretch; gap: 5px; width: 281px; max-width: 100%; }
/* pole z własnym przyciskiem „Wyczyść" (ikona X z rodziny ikon motywu) zamiast natywnego krzyżyka przeglądarki */
.pv-szukaj__pole-opak { position: relative; flex: 1 1 auto; min-width: 0; display: flex; }
.pv-szukaj input.pv-szukaj__pole::-webkit-search-cancel-button,
.pv-szukaj input.pv-szukaj__pole::-webkit-search-decoration { -webkit-appearance: none; appearance: none; display: none; }
.pv-szukaj__wyczysc {
  position: absolute;
  top: 50%;
  right: 6px;
  width: 32px;
  height: 32px;
  margin-top: -16px;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--brand);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background-color .2s ease, color .2s ease;
}
.pv-szukaj__wyczysc .pv-ikona { width: 18px; height: 18px; }
.pv-szukaj__wyczysc:hover { background: var(--check-bg); color: var(--brand-dark); }
.pv-szukaj__wyczysc:focus-visible { outline: 3px solid var(--brand-dark); outline-offset: 0; }
/* bez tekstu w polu i w czasie wyszukiwania (wskaźnik zajmuje to miejsce) przycisk znika */
.pv-szukaj input.pv-szukaj__pole:placeholder-shown + .pv-szukaj__wyczysc,
.pv-szukaj--szuka .pv-szukaj__wyczysc { display: none; }
.pv-szukaj input.pv-szukaj__pole {
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  height: 44px;
  padding: 0 44px 0 15px;
  border: 1px solid #69727D;
  border-radius: 10px;
  background: var(--soft);
  color: var(--brand);
  font-family: var(--pv-font-tekst);
  font-size: 1rem;
  line-height: 1;
}
.pv-szukaj input.pv-szukaj__pole::placeholder { color: #888; }
.pv-szukaj input.pv-szukaj__pole:focus { outline: none; background: #fff; border-color: var(--brand-dark); }
.pv-szukaj input.pv-szukaj__pole:focus-visible { outline: 3px solid var(--brand-dark); outline-offset: 2px; }
.pv-szukaj__przycisk {
  flex: none;
  height: 44px;
  padding: 0 16px;
  border: 0;
  border-radius: 6px;
  background: var(--brand);
  color: #fff;
  font-family: var(--pv-font-naglowki);
  font-size: 0.9375rem;
  text-transform: uppercase;
  cursor: pointer;
  transition: background-color .25s ease, transform .15s ease;
}
/* pasek górny (tylko desktop): wariant kompaktowy, żeby pasek został niski */
.pv-naglowek__gora .pv-szukaj input.pv-szukaj__pole,
.pv-naglowek__gora .pv-szukaj__przycisk { height: 32px; font-size: 0.875rem; }
.pv-naglowek__gora .pv-szukaj input.pv-szukaj__pole { padding-right: 36px; }
.pv-naglowek__gora .pv-szukaj__wyczysc { width: 26px; height: 26px; margin-top: -13px; right: 4px; }
.pv-naglowek__gora .pv-szukaj__wyczysc .pv-ikona { width: 15px; height: 15px; }
.pv-naglowek__gora .pv-szukaj__przycisk { padding: 0 11px; }
.pv-szukaj__przycisk:hover { background: var(--brand-dark); transform: translateY(-1px); }

/* ikony społecznościowe */
.pv-social { display: flex; align-items: center; gap: 25px; }
.pv-social a { display: block; width: 25px; height: 25px; color: var(--brand); border-radius: 50%; transition: color .2s ease; }
.pv-social a:hover { color: var(--brand-dark); }
.pv-social .pv-ikona--social { width: 25px; height: 25px; display: block; }

/* pas z logo */
.pv-naglowek__glowny { padding: 10px 0; background: #fff; }
.pv-naglowek__glowny-srodek { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 52px; }
.pv-naglowek__logo { display: block; flex: none; line-height: 0; }
.pv-naglowek__logo img { width: 150px; height: auto; display: block; }
.pv-naglowek__adres { margin: 0; font-size: 0.875rem; line-height: 1.4; letter-spacing: -0.01em; align-self: flex-end; margin-bottom: 2px; }   /* dół adresu równo z dołem bloków telefonów (numer + status) */
.pv-naglowek__adres br + * { margin-top: 0; }
.pv-naglowek__tel { display: inline-flex; align-items: center; gap: 7px; color: var(--brand-dark); font-family: var(--pv-font-naglowki); font-weight: 500; font-size: 1rem; line-height: 1.3; letter-spacing: 0.04em; }
.pv-naglowek__tel .pv-ikona { width: 30px; height: 30px; }
.pv-naglowek__tel small { display: block; font-size: 0.8em; font-weight: 500; }
.pv-naglowek__tel:hover { color: var(--brand); }
.pv-naglowek__hamburger,
.pv-panel__zamknij {
  display: none;
  width: 44px;
  height: 44px;
  padding: 10px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--brand);
  cursor: pointer;
}
.pv-naglowek__hamburger .pv-ikona,
.pv-panel__zamknij .pv-ikona { width: 24px; height: 24px; }
.pv-naglowek__hamburger:hover,
.pv-panel__zamknij:hover { background: var(--soft); }

/* menu główne (komputer) */
.pv-naglowek__kotwica { height: 0; }
.pv-naglowek__menu {
  position: relative;
  background: #fff;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 5px 0;
  transition: box-shadow .2s ease;
}
.pv-naglowek__menu--przyklejone { box-shadow: 0 12px 28px rgba(0, 0, 0, .1); }
/* Przyklejony nagłówek. Element sticky nie wyjdzie poza swojego rodzica, więc przyklejony jest CAŁY <header>,
   a ujemny `top` chowa to, co ma odjechać: na komputerze pasek górny i pas z logo (zostaje samo menu),
   na tablecie pasek górny (zostaje pas z logo i hamburgerem), na telefonie nic (pasek górny jest tam ukryty).
   Wysokość chowanej części mierzy naglowek.js (--pv-naglowek-chowane), wartości poniżej to zapas bez JS. */
.pv-naglowek { position: sticky; top: calc(-1 * var(--pv-naglowek-chowane, 125px)); z-index: 800; }
.pv-naglowek--przyklejony .pv-naglowek__glowny { box-shadow: 0 12px 28px rgba(0, 0, 0, .1); }
.pv-menu { display: flex; align-items: center; justify-content: space-between; padding: 0 !important; margin: 0 !important; list-style: none !important; }
.pv-menu > li { position: relative; margin: 0 3px; flex: 1 1 auto; }
.pv-menu > li > .pv-menu__link { width: 100%; justify-content: center; }
.pv-menu__link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 5px 4px;
  border-radius: 5px;
  font-family: var(--pv-font-tekst);
  font-weight: 500;
  font-size: 0.875rem;
  line-height: 1.25rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--brand);
  transition: background-color .2s ease, color .2s ease;
}
.pv-menu__strzalka { width: 14px; height: 14px; }
.pv-menu > li > .pv-menu__link:hover,
.pv-menu > li > .pv-menu__link:focus-visible,
.pv-menu > li.pv-menu__el--biezacy > .pv-menu__link { background: var(--brand-dark); color: #fff; }
/* „Jaką terapię wybrać?” - beżowa pastylka z zestawu (klasa `clients` z menu) */
.pv-menu > li.clients > .pv-menu__link { background: var(--accent); color: #1F2933; border-radius: 6px; }
.pv-menu > li.clients > .pv-menu__link:hover,
.pv-menu > li.clients > .pv-menu__link:focus-visible,
.pv-menu > li.clients.pv-menu__el--biezacy > .pv-menu__link { background: var(--brand-dark); color: #fff; }
/* podmenu rozwijane */
.pv-menu .pv-menu__pod {
  display: none;
  position: absolute;
  left: 0;
  top: calc(100% + 10px);
  z-index: 10;
  min-width: 156px;
  padding: 0;
  background: #fff;
  border: 1px solid var(--brand-dark);
  border-radius: 6px;
  box-shadow: 0 10px 25px rgba(15, 62, 115, .08);
}
.pv-menu .pv-menu__pod::before { content: ""; position: absolute; left: 0; right: 0; top: -11px; height: 11px; }
/* każde rozwinięcie (zwykłe i mega-menu) wygląda tak samo: pozycje jako zaokrąglone pastylki z marginesem 10 px, bez kresek;
   grid także dla zwykłej listy, żeby marginesy się nie zapadały i odstępy były identyczne jak w kolumnach mega-menu */
.pv-menu > li:hover > .pv-menu__pod,
.pv-menu > li:focus-within > .pv-menu__pod { display: grid; grid-auto-flow: row; }
.pv-menu > li:last-child > .pv-menu__pod { left: auto; right: 0; }
.pv-menu__pod .pv-menu__link { display: block; margin: 10px; padding: 6px 5px; border-radius: 6px; white-space: nowrap; }
.pv-menu__pod .pv-menu__link:hover,
.pv-menu__pod .pv-menu__link:focus-visible,
.pv-menu__pod .pv-menu__el--biezacy > .pv-menu__link { background: var(--brand-dark); color: #fff; }
/* mega-menu (klasy `services` i `third` z menu): kolumny po 9 lub 8 pozycji */
.pv-menu > li.services > .pv-menu__pod { width: 1000px; }
.pv-menu > li.services:hover > .pv-menu__pod,
.pv-menu > li.services:focus-within > .pv-menu__pod { grid-template-rows: repeat(9, auto); grid-auto-flow: column; column-gap: .5em; }
.pv-menu > li.services.third > .pv-menu__pod { width: 605px; }
.pv-menu > li.services.third:hover > .pv-menu__pod,
.pv-menu > li.services.third:focus-within > .pv-menu__pod { grid-template-rows: repeat(8, auto); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pv-menu > li.services > .pv-menu__pod .pv-menu__link { white-space: normal; }

/* panel mobilny (<dialog>) */
.pv-panel {
  position: fixed;
  inset: 0;
  width: 100vw;
  max-width: 100vw;
  height: 100vh;
  height: 100dvh;
  max-height: none;
  margin: 0 0 0 auto;
  padding: 0;
  border: 0;
  background: #fff;
  color: var(--brand);
  overflow-y: auto;
}
.pv-panel::backdrop { background: rgba(15, 62, 115, .45); }
/* otwieranie: panel wjeżdża z prawej, tło ściemnia się; zamykanie (klasa --zamykanie nadawana przez naglowek.js) gra to samo od tyłu */
@keyframes pv-panel-wjazd { from { transform: translateX(40px); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes pv-panel-tlo { from { opacity: 0; } to { opacity: 1; } }
.pv-panel[open] { animation: pv-panel-wjazd .26s cubic-bezier(.2, .7, .2, 1) both; }
.pv-panel[open]::backdrop { animation: pv-panel-tlo .26s ease both; }
.pv-panel--zamykanie[open] { animation: pv-panel-wjazd .2s ease reverse both; }
.pv-panel--zamykanie[open]::backdrop { animation: pv-panel-tlo .2s ease reverse both; }
.pv-panel-otwarty { overflow: hidden; }
.pv-panel__gora { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; min-height: 64px; padding: 0 12px 0 16px; border-bottom: 1px solid var(--line); background: #fff; }
.pv-panel__gora .pv-naglowek__logo img { width: auto; height: 34px; }
.pv-panel__zamknij { display: flex; align-items: center; justify-content: center; }
.pv-panel__tresc { display: flex; flex-direction: column; gap: 12px; padding: 12px 16px 20px; }
.pv-panel .pv-szukaj { width: 100%; }
.pv-panel__menu { margin: 0 -16px; }
.pv-menu-mobilne { padding: 0 !important; margin: 0 !important; list-style: none !important; }
.pv-menu-mobilne > li { border-bottom: 1px solid var(--line); }
.pv-menu-mobilne > li:first-child { border-top: 1px solid var(--line); }
.pv-menu-mobilne li { display: flex; flex-wrap: wrap; align-items: stretch; }
.pv-menu-mobilne .pv-menu__link {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  min-height: 46px;
  padding: 12px 16px;
  font-family: var(--pv-font-tekst);
  font-weight: 500;
  font-size: 0.875rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--brand);
}
.pv-menu-mobilne > li.pv-menu__el--biezacy > .pv-menu__link { background: var(--soft); color: var(--brand-dark); }
.pv-menu__rozwin {
  flex: none;
  width: 50px;
  min-height: 50px;
  border: 0;
  background: transparent;
  color: var(--brand);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pv-menu__rozwin .pv-ikona { width: 16px; height: 16px; transition: transform .2s ease; }
.pv-menu__rozwin[aria-expanded="true"] .pv-ikona { transform: rotate(180deg); }
.pv-menu-mobilne .pv-menu__pod { flex-basis: 100%; padding: 0 0 0 12px; background: var(--soft); }
.pv-menu-mobilne .pv-menu__pod[hidden] { display: none; }
.pv-menu-mobilne .pv-menu__pod .pv-menu__link { min-height: 48px; padding: 10px 16px; text-transform: none; letter-spacing: 0; font-weight: 400; font-size: 0.9375rem; }
.pv-menu-mobilne .pv-menu__pod .pv-menu__el--biezacy > .pv-menu__link { background: transparent; color: var(--brand-dark); font-weight: 700; box-shadow: inset 3px 0 0 var(--brand); }
.pv-panel__voucher { align-self: stretch; }
/* szybkie linki: Kontakt, Cennik, dwa telefony, dwa maile - dwie kolumny, jedna wielkość, kafelki 44 px */
.pv-panel__szybkie { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.pv-panel__szybkie li { list-style: none; display: flex; }
.pv-panel__szybkie a,
.pv-panel__szybkie a.pv-menu__link {
  flex: 1 1 auto;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  padding: 6px 12px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
  font-family: var(--pv-font-naglowki);
  font-weight: 500;
  font-size: 0.875rem;
  line-height: 1.2;
  letter-spacing: 0.02em;
  text-transform: none;
  color: var(--brand-dark);
}
.pv-panel__szybkie a:hover { border-color: var(--brand); background: var(--soft); }
.pv-panel__szybkie .pv-menu__el--biezacy > a.pv-menu__link { font-weight: 700; border-color: var(--brand); }
.pv-panel__szybkie .pv-ikona { width: 22px; height: 22px; color: var(--brand); }
.pv-panel__szybkie small { display: block; font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; color: rgba(15, 62, 115, .8); }
.pv-panel .pv-tekst__etykieta { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pv-panel .pv-ulatwienia--panel { gap: 8px; }
.pv-panel .pv-tekst { gap: 4px; }

/* pasek dolny (tablet i telefon) */
.pv-pasek {
  display: none;
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 900;
  gap: 10px;
  padding: 10px 16px 14px;
  background: #fff;
  border-top: 1px solid var(--line);
  box-shadow: 0 -10px 25px rgba(15, 62, 115, .08);
  transition: transform .3s ease;
}
.pv-pasek--schowany { transform: translateY(120%); }
.pv-pasek .btn-primary { flex: 1 1 0; justify-content: space-between; font-size: 0.875rem; }
.pv-pasek__tel { flex: 0 1 auto !important; }
.pv-pasek .pv-ikona { width: 17px; height: 17px; }

/* stopka */
.pv-stopka { margin-top: var(--pv-sekcja); }
.pv-stopka__glowna { background: var(--line); padding: 50px 0; color: var(--brand-dark); }
.pv-stopka__kolumny { display: flex; flex-wrap: wrap; }
.pv-stopka__kol { flex: 0 0 25%; padding: 10px; display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }
/* przyciski „Umów się” i „Kup voucher” pod danymi rejestracji w kolumnie Kontakt: jednakowej szerokości, na telefonie
   na całą kolumnę (jak w panelu mobilnym), od tabletu najwyżej 16 rem (256 px, skaluje się z przełącznikiem A+/A++) */
.pv-stopka__akcje { display: flex; flex-direction: column; gap: 8px; align-self: stretch; margin-top: 6px; }
.pv-stopka__akcje > a.btn-primary { align-self: stretch; }
@media (min-width: 768px) {
  .pv-stopka__akcje > a.btn-primary { align-self: flex-start; width: 100%; max-width: 16rem; }
}
/* grupy w kolumnie „Kontakt”: mała etykieta wersalikami (jak etykiety w kartach) + lista */
.pv-stopka__grupa { display: flex; flex-direction: column; align-items: flex-start; align-self: stretch; gap: 8px; }
/* trzy grupy w kolumnie „Kontakt” (Rejestracja, Sklep medyczny, Social media) rozdziela cienka linia i większy odstęp */
.pv-stopka__grupa + .pv-stopka__grupa { padding-top: 18px; border-top: 1px solid rgba(15, 62, 115, .22); }
.pv-stopka__etykieta { margin: 0; font-family: var(--pv-font-naglowki); font-weight: 500; font-size: 0.75rem; line-height: 1.2; letter-spacing: 0.08em; text-transform: uppercase; color: var(--brand); }
.pv-stopka .pv-stopka__tytul {
  margin: 0;
  font-family: var(--pv-font-naglowki);
  font-weight: 500;
  font-size: 1.125rem;
  line-height: 1;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--brand);
}
.pv-stopka__logo img { width: 168px; height: auto; display: block; }
.pv-stopka__adres { margin: 0; letter-spacing: -0.01em; font-size: 0.9375rem; line-height: 1.5; }
.pv-stopka__kontakt { display: flex; flex-direction: column; gap: 5px; }
.pv-stopka__kontakt li,
.pv-stopka__linki li,
.pv-stopka__wpisy li { display: flex; }
/* linki stopki jak „Kontakt” / „Cennik” w pasku górnym: 14 px, waga 400, granat, animowana kreska pod spodem */
.pv-stopka__kontakt a,
.pv-stopka__linki a.pv-menu__link,
.pv-stopka__wpisy a {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 25px;
  padding: 0;
  border-radius: 0;
  font-family: var(--pv-font-tekst);
  font-weight: 400;
  font-size: 0.875rem;
  line-height: 1.25rem;
  letter-spacing: normal;
  text-transform: none;
  color: var(--brand-dark);
  text-decoration: none;
}
.pv-stopka__kontakt .pv-ikona { width: 20px; height: 20px; color: var(--brand-dark); }
.pv-stopka__kontakt a::after,
.pv-stopka__linki a.pv-menu__link::after,
.pv-stopka__wpisy a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 0;
  height: 1px;
  background: linear-gradient(90deg, var(--brand-dark) 50%, transparent 100%);
  transition: width .3s ease-in-out;
}
.pv-stopka__kontakt a:hover::after,
.pv-stopka__linki a.pv-menu__link:hover::after,
.pv-stopka__wpisy a:hover::after { width: 80%; }
.pv-stopka__kontakt a:hover,
.pv-stopka__linki a:hover,
.pv-stopka__wpisy a:hover { color: var(--brand-dark); text-decoration: none; }
.pv-stopka .pv-social a { color: var(--brand); }
.pv-stopka__linki { display: flex; flex-direction: column; gap: 5px; padding: 0 !important; margin: 0 !important; list-style: none !important; }
.pv-stopka__linki .pv-menu__el--biezacy > a.pv-menu__link { color: var(--brand-dark); font-weight: 700; }
.pv-stopka__wpisy { display: flex; flex-direction: column; gap: 10px; }
.pv-stopka__pasek { background: #1F2933; color: #fff; }
.pv-stopka__pasek-srodek { min-height: 44px; display: flex; align-items: center; justify-content: center; padding-block: 10px; }
.pv-stopka__pasek p { margin: 0; font-size: 0.8125rem; line-height: 1.4; text-align: center; color: #fff; }
/* menu dokumentów w pasku dolnym: drobne linki w jednym wierszu z kropkami między nimi, na telefonie zawijane */
.pv-stopka__prawne-lista { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 0; margin: 0 !important; padding: 0 !important; list-style: none !important; }
.pv-stopka__prawne-lista li { display: flex; align-items: center; }
.pv-stopka__prawne-lista li + li::before { content: ""; width: 3px; height: 3px; margin: 0 10px; border-radius: 50%; background: rgba(255, 255, 255, .5); }
.pv-stopka__pasek .pv-stopka__prawne-lista a { color: #fff; font-size: 0.8125rem; line-height: 1.4; text-decoration: none; }
.pv-stopka__pasek .pv-stopka__prawne-lista a:hover { text-decoration: underline; }
.pv-stopka__pasek .pv-stopka__prawne-lista .pv-menu__el--biezacy > a { font-weight: 700; }
.pv-stopka__pasek .pv-stopka__prawne-lista a:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }

/* ---- laptop, tablet, telefon: logo + hamburger, panel, pasek dolny ---- */
@media (max-width: 1366px) {
  /* selektory z przodkiem, bo a.btn-primary (0,1,1) ma wyższą specyficzność niż sama klasa */
  .pv-naglowek .pv-naglowek__menu,
  .pv-naglowek .pv-naglowek__kotwica,
  .pv-naglowek .pv-naglowek__adres,
  .pv-naglowek .pv-naglowek__tel,
  .pv-naglowek a.pv-naglowek__voucher,
  .pv-naglowek a.pv-naglowek__umow { display: none; }
  .pv-naglowek__glowny { position: relative; padding: 0; transition: box-shadow .2s ease; }
  .pv-naglowek { top: calc(-1 * var(--pv-naglowek-chowane, 48px)); }
  .pv-naglowek__glowny-srodek { min-height: 64px; }
  .pv-naglowek__logo img { width: auto; height: 34px; }
  .pv-naglowek__hamburger { display: flex; align-items: center; justify-content: center; }
  .pv-pasek { display: flex; }
  body { padding-bottom: 4.75rem; }
  /* tablet i laptop: skrócony pasek górny - maile po lewej, przełączniki dostępności po prawej (reszta jest w panelu menu) */
  .pv-naglowek__gora .pv-linki-gorne .pv-menu__el,
  .pv-naglowek__gora .pv-szukaj,
  .pv-naglowek__gora .pv-naglowek__social { display: none; }
  .pv-naglowek__gora .pv-ulatwienia { margin-left: auto; }
}
@media (max-width: 767px) {
  .pv-naglowek .pv-naglowek__gora { display: none; }
  .pv-naglowek { top: calc(-1 * var(--pv-naglowek-chowane, 0px)); }
}
@media (min-width: 768px) and (max-width: 1366px) {
  .pv-panel { width: 420px; max-width: 100vw; }
}
@media (max-width: 1024px) {
  .pv-stopka__kolumny { gap: 20px 0; }
  .pv-stopka__kol { flex-basis: 48%; }
  .pv-stopka__glowna { padding: 50px 10px; }
}
@media (max-width: 767px) {
  .pv-pasek { padding: 10px 12px 12px; }
  .pv-stopka__kol { flex-basis: 100%; }
}

/* ---------- 16. Konfigurator „Z czym przychodzisz?” ---------- */
.pv-konf { display: flex; flex-direction: column; gap: 30px; }
.pv-konf__glowa { display: flex; flex-direction: column; gap: 16px; }
.pv-konf__wstep { margin: 0; max-width: 760px; }
.pv-konf__kroki { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 24px; font-family: var(--pv-font-naglowki); font-size: 0.875rem; letter-spacing: 0.04em; text-transform: uppercase; color: rgba(15, 62, 115, .78); }
.pv-konf__krok-nr { display: inline-flex; align-items: center; gap: 8px; }
.pv-konf__krok-nr span { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--line); background: #fff; font-weight: 600; color: var(--brand); }
.pv-konf__krok-nr--aktywny { color: var(--brand-dark); }
.pv-konf__krok-nr--aktywny span { background: var(--brand-dark); border-color: var(--brand-dark); color: #fff; }
.pv-konf__krok-nr--zrobiony span { background: var(--accent-soft); border-color: var(--accent-border); }
.pv-konf__krok { display: flex; flex-direction: column; gap: 20px; }
.pv-konf__krok[hidden] { display: none; }
.pv-main .pv-konf .pv-konf__pytanie { font-family: var(--pv-font-naglowki); font-weight: 400; font-size: 1.25rem; line-height: 1.4; color: var(--brand-dark); margin: 0; }
.pv-konf__pytanie:focus { outline: none; }
.pv-konf__podpowiedz { margin: -8px 0 0; font-size: 0.875rem; color: rgba(15, 62, 115, .8); }
.pv-konf__wstecz { align-self: flex-start; display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px 6px 4px; border: 0; border-radius: 6px; background: transparent; color: var(--brand); font-family: var(--pv-font-tekst); font-size: 0.875rem; cursor: pointer; }
.pv-konf__wstecz:hover { background: var(--soft); text-decoration: underline; }
.pv-konf__wstecz .pv-ikona { width: 18px; height: 18px; }

/* krok 1: kafelki obszarów */
.pv-konf__grupy { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(200px, 100%), 1fr)); gap: 12px; }
/* kafelki w jednym wierszu mają równą wysokość, także gdy nazwa łamie się na dwie linie */
.pv-konf__grupy li { display: flex; }
.pv-konf__grupa {
  width: 100%;
  min-height: 108px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 4px;
  padding: 16px 18px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--soft);
  color: var(--brand);
  font-family: var(--pv-font-tekst);
  text-align: left;
  cursor: pointer;
  transition: border-color .2s ease, background-color .2s ease, transform .15s ease;
}
.pv-konf__grupa:hover { border-color: rgba(22, 87, 163, .35); background: #fff; transform: translateY(-1px); }
.pv-konf__ikona {
  display: block;
  width: 52px;
  height: 52px;
  margin-bottom: 8px;
  background-color: var(--brand);
  -webkit-mask: var(--pv-ikona) no-repeat center / contain;
  mask: var(--pv-ikona) no-repeat center / contain;
  transition: background-color .2s ease;
}
.pv-konf__grupa:hover .pv-konf__ikona { background-color: var(--brand-dark); }
.pv-konf__grupa-nazwa { font-family: var(--pv-font-naglowki); font-weight: 500; font-size: 1rem; line-height: 1.3; letter-spacing: 0.02em; }
.pv-konf__grupa small { font-size: 0.8125rem; color: rgba(15, 62, 115, .7); }

/* krok 2: pastylki problemów */
.pv-konf__problemy { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr)); gap: 10px; }
.pv-konf__problemy[hidden] { display: none; }
.pv-konf__problem {
  width: 100%;
  min-height: 64px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 12px 16px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  color: var(--brand);
  font-family: var(--pv-font-tekst);
  font-size: 1rem;
  text-align: left;
  cursor: pointer;
  transition: border-color .2s ease, background-color .2s ease;
}
.pv-konf__problem:hover { background: var(--soft); border-color: rgba(22, 87, 163, .35); }
.pv-konf__problem strong { font-weight: 600; color: var(--brand-dark); }
.pv-konf__problem small { font-size: 0.8125rem; line-height: 1.4; color: rgba(15, 62, 115, .75); }

/* krok 3: propozycja */
.pv-konf__wynik { display: flex; flex-direction: column; align-items: flex-start; gap: var(--pv-odstep); }
.pv-konf__wynik[hidden] { display: none; }
.pv-konf__etykieta { margin: 0; font-family: var(--pv-font-naglowki); font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(15, 62, 115, .8); }
.pv-main .pv-konf .pv-konf__wynik .pv-konf__pytanie { font-weight: 300; font-size: 1.875rem; line-height: 1.3; color: var(--brand); }
.pv-konf__flaga { padding: 12px 16px; border-radius: 10px; border: 1px solid #F1C7C4; background: #FDF3F2; color: #8A1D16; font-size: 0.875rem; line-height: 1.5; }
.pv-konf__naglowek-czesci { margin: 8px 0 -6px; font-family: var(--pv-font-naglowki); font-weight: 500; font-size: 0.875rem; letter-spacing: 0.04em; text-transform: uppercase; color: var(--brand-dark); }
.pv-konf__terapie { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; align-self: stretch; }
.pv-konf__terapie li { display: flex; flex-direction: column; gap: 2px; padding: 12px 16px 12px 44px; position: relative; border-radius: 10px; background: var(--soft); }
.pv-konf__terapie li::before { content: ""; position: absolute; left: 14px; top: 16px; width: 18px; height: 18px; border-radius: 50%; background: var(--accent-soft); border: 1px solid var(--accent-border); }
.pv-konf__terapie li::after { content: ""; position: absolute; left: 19px; top: 21px; width: 8px; height: 5px; border-left: 2px solid var(--accent); border-bottom: 2px solid var(--accent); transform: rotate(-45deg); }
.pv-konf__terapie a { font-family: var(--pv-font-naglowki); font-weight: 500; font-size: 1rem; color: var(--brand); text-decoration: none; }
.pv-konf__terapie a:hover { text-decoration: underline; }
.pv-konf__terapie span { font-size: 0.875rem; color: rgba(15, 62, 115, .85); }
.pv-konf__gabinet { margin: 0; }
.ui-card .pv-konf__gabinet a { color: var(--brand); text-decoration: underline; font-weight: 600; }
.pv-konf__osoby { align-self: stretch; }
.pv-konf__ceny { align-self: stretch; border-collapse: collapse; font-size: 0.9375rem; }
.pv-konf__ceny th, .pv-konf__ceny td { padding: 8px 0; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.pv-konf__ceny th { font-weight: 400; padding-right: 16px; }
.pv-konf__ceny td { white-space: nowrap; text-align: right; }
.pv-konf__ceny td span { font-size: 0.8125rem; color: rgba(15, 62, 115, .7); margin-left: 6px; }
.pv-konf__dopisek { margin: -8px 0 0; font-size: 0.8125rem; color: rgba(15, 62, 115, .7); }
.pv-konf__komunikat { margin: 0; padding: 12px 16px; border-left: 3px solid var(--accent); background: var(--accent-soft); border-radius: 0 10px 10px 0; }
.pv-konf__akcje { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; }
.pv-konf__wiecej { color: var(--brand); text-decoration: underline; font-size: 0.875rem; }
/* części propozycji: terapie na całą szerokość, a specjaliści / ceny / kontakt w kolumnach (od 1025 px) */
/* odstępy jak w reszcie motywu: w kolumnie 20 px (--pv-odstep), między kolumnami 30/40 px (jak siatki zespołu i list),
   panel „Umów się" z paddingiem karty (28 px, na tablecie 18 px) */
.pv-konf__czesc { display: flex; flex-direction: column; align-items: flex-start; gap: var(--pv-odstep); min-width: 0; align-self: stretch; }
.pv-konf__czesc .pv-konf__naglowek-czesci { margin: 0 0 -4px; }
.pv-konf__kolumny { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--pv-kolumna); align-self: stretch; }
.pv-konf__czesc--akcje { padding: 28px; border-radius: 14px; background: var(--soft); }
.pv-konf__czesc--akcje .pv-konf__akcje { flex-direction: column; flex-wrap: nowrap; align-items: stretch; gap: var(--pv-odstep); align-self: stretch; }
.pv-konf__czesc--akcje .pv-konf__akcje .btn-primary { flex: none; align-self: stretch; }
.pv-konf__czesc--akcje .pv-konf__tel { align-self: flex-start; }
.pv-konf__czesc--osoby .pv-konf__osoby { grid-template-columns: minmax(0, 1fr); }
.pv-konf__czesc--osoby .pv-osoba { min-height: 0; padding-block: 28px; }
.pv-konf__czesc--osoby .pv-osoba__foto img { width: 100%; max-width: 320px; }
.pv-konf__czesc--ceny .pv-konf__ceny { align-self: stretch; }
@media (min-width: 768px) {
  /* tablet: 2 kolumny (min. 300 px każda), komputer: 3 kolumny */
  .pv-konf__kolumny { grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); gap: var(--pv-kolumna); align-items: start; }
  .pv-konf__kolumny > .pv-konf__czesc { align-self: start; }
}
@media (max-width: 1025px) {
  .pv-konf__czesc--akcje { padding: 18px; }
}
@media (min-width: 1025px) {
  .pv-konf__kolumny { gap: var(--pv-kolumna); margin-top: 10px; }
  .pv-konf__kolumny > .pv-konf__czesc--akcje { position: sticky; top: 80px; }
}
/* telefon jak w nagłówku: ikona + mała etykieta + numer */
.ui-card .pv-konf__tel,
.ui-card .pv-cta__tel { display: inline-flex; align-items: center; gap: 7px; color: var(--brand-dark); font-family: var(--pv-font-naglowki); font-weight: 500; font-size: 1rem; line-height: 1.3; letter-spacing: 0.04em; text-decoration: none; }
.pv-konf__tel .pv-ikona, .pv-cta__tel .pv-ikona { width: 30px; height: 30px; }
.pv-konf__tel small, .pv-cta__tel small { display: block; font-size: 0.8em; font-weight: 500; }
.pv-konf__tel:hover, .pv-cta__tel:hover { color: var(--brand); }
/* bez JS: wszystkie kroki widoczne, kroki-nawigacja i „wróć” bez sensu */
.pv-konf:not(.pv-konf--js) .pv-konf__kroki,
.pv-konf:not(.pv-konf--js) .pv-konf__wstecz,
.pv-konf:not(.pv-konf--js) .pv-konf__krok[data-krok="1"] { display: none; }
.pv-konf:not(.pv-konf--js) .pv-konf__wynik + .pv-konf__wynik { border-top: 1px solid var(--line); padding-top: 24px; }
@media (max-width: 767px) {
  .pv-konf__grupy { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .pv-konf__grupa { min-height: 96px; padding: 12px; }
  .pv-konf__ikona { width: 44px; height: 44px; margin-bottom: 6px; }
  .pv-konf__akcje .btn-primary { flex: 1 1 100%; }
  .pv-konf__ceny td { white-space: normal; }
}

/* ---------- 17. Siatka kafelków z opisem ---------- */
.pv-siatka { display: flex; flex-direction: column; gap: 20px; }
.pv-main .pv-siatka__naglowek { text-align: center; margin: 0; }
.pv-siatka__wstep { margin: 0 auto; max-width: 760px; text-align: center; }
.pv-siatka__lista { list-style: none; margin: 20px 0 0; padding: 0; display: grid; grid-template-columns: repeat(var(--pv-kolumny, 3), minmax(0, 1fr)); gap: var(--pv-kolumna); }
.pv-siatka__el { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.pv-siatka__foto { display: block; align-self: stretch; }
.pv-main .pv-siatka .pv-siatka__tytul { font-family: var(--pv-font-naglowki); font-weight: 300; font-size: 1.375rem; line-height: 1.4; hyphens: auto; overflow-wrap: anywhere; align-self: stretch; min-width: 0; }   /* jako element flex nagłówek brał min-content z 256 px kreski ::after i przy 4 kolumnach (1100 px) rozpychał kafelek i stronę */
.ui-card .pv-siatka__tytul a { color: var(--brand); text-decoration: none; }
.pv-siatka__tytul a:hover { color: var(--brand-dark); }
.pv-siatka__opis { margin: 0; font-size: 0.9375rem; }
.pv-siatka .pv-siatka__wiecej { margin-top: auto; }
@media (max-width: 1024px) { .pv-siatka__lista { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .pv-siatka__lista { grid-template-columns: minmax(0, 1fr); } .pv-siatka .pv-siatka__wiecej { align-self: stretch; } }

/* ---------- 18. Dostępność ---------- */
/* linki do kotwic na tej samej stronie przewijają płynnie; wyłączone dla osób z ograniczeniem ruchu */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
/* cel kotwicy nie chowa się pod przyklejonym menu / pasem z logo */
[id] { scroll-margin-top: 84px; }
:where(.pv) .pv-main :where(a[href], button, summary) { scroll-margin-top: 84px; }
:where(.pv) .pv-main :where(a, button, summary):focus-visible {
  outline: 3px solid var(--brand-dark);
  outline-offset: 2px;
  border-radius: 2px;
}
@media (prefers-reduced-motion: reduce) {
  .pv-main *, .pv-lightbox *, .pv-panel * { transition: none !important; }
  .pv-lightbox, .pv-lightbox::backdrop, .pv-lightbox *, .pv-panel, .pv-panel::backdrop { animation: none !important; }
}

/* =========================================================
   19. Wyszukiwarka, archiwa wpisów, pojedynczy wpis, 404, paginacja
   20. Blok „Umów się” na końcu strony: .pv-cta
   21. Rozmiar tekstu: html[data-tekst], .pv-tekst
   22. Wysoki kontrast: html[data-kontrast], .pv-kontrast
   23. Podpowiedzi wyszukiwarki: .pv-szukaj__lista
   24. Cookies: .pv-cookies, .pv-osadzenie
   ========================================================= */
.pv-wyniki { display: flex; flex-direction: column; align-items: stretch; gap: var(--pv-odstep); }
.pv-wyniki__licznik { margin: 0; font-size: 0.875rem; color: var(--muted, #6b7280); }
.pv-wyniki__lista {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--pv-kolumna);
}
@media (max-width: 1024px) { .pv-wyniki__lista { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) { .pv-wyniki__lista { grid-template-columns: minmax(0, 1fr); } }
.pv-wyniki__el { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: 28px; }
.pv-wyniki__typ {
  margin: 0;
  font-family: var(--pv-font-naglowki);
  font-weight: 500;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--brand);
}
.pv-main .pv-wyniki .pv-wyniki__tytul { font-family: var(--pv-font-naglowki); font-weight: 300; font-size: 1.25rem; line-height: 1.6; margin: 0; }
.ui-card .pv-wyniki__tytul a { color: var(--brand); text-decoration: none; }
.pv-wyniki__tytul a:hover { color: var(--brand-dark); }
.pv-wyniki__zajawka { margin: 0; font-size: 1rem; line-height: 1.5; }
.pv-wyniki .pv-wyniki__wiecej { margin-top: auto; }
.pv-wyniki__pusto { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; max-width: 720px; }
.pv-wyniki__pusto p { margin: 0; }
.pv-wyniki__pusto .pv-szukaj { margin-top: 12px; width: 100%; max-width: 480px; }

/* paginacja: pastylki */
.pv-paginacja { align-self: center; margin-top: 10px; }
.pv-paginacja ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.pv-main .pv-paginacja__el,
.ui-card .pv-paginacja__el {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--brand);
  font-family: var(--pv-font-naglowki);
  font-weight: 500;
  font-size: 0.95rem;
  text-decoration: none;
  transition: background-color .2s ease, color .2s ease;
}
.pv-main a.pv-paginacja__el:hover,
.pv-main a.pv-paginacja__el:focus-visible { background: var(--brand); color: #fff; border-color: var(--brand); }
.pv-main .pv-paginacja__el.current { background: var(--brand); color: #fff; border-color: var(--brand); }
.pv-main .pv-paginacja__el.dots { border-color: transparent; }

/* pojedynczy wpis */
.pv-wpis-pelny { display: flex; flex-direction: column; gap: var(--pv-odstep); }
.pv-wpis-pelny__gora { display: flex; flex-direction: column; gap: 20px; width: 70%; }
.pv-wpis-pelny__data { margin: 0; font-size: 0.9375rem; color: var(--brand-dark); }
.pv-wpis-pelny__foto { margin: 0; }
.pv-wpis-pelny__foto img { width: 100%; height: auto; display: block; }
.pv-wpis-pelny__tresc > .pv-tresc { align-self: stretch; max-width: 100%; }
.pv-main .pv-wpis-pelny__tresc h2 { font-family: var(--pv-font-naglowki); font-weight: 300; font-size: 2.1875rem; line-height: 1.3; margin: 1.2em 0 0.6em; }
.pv-main .pv-wpis-pelny__tresc h3 { font-family: var(--pv-font-naglowki); font-weight: 300; font-size: 1.6875rem; line-height: 1.3; margin: 1.2em 0 0.5em; }
.pv-main .pv-wpis-pelny__tresc h2:first-child,
.pv-main .pv-wpis-pelny__tresc h3:first-child { margin-top: 0; }
.pv-wpis-pelny__tresc img { max-width: 100%; height: auto; }
@media (max-width: 1024px) {
  .pv-wpis-pelny__gora { width: 100%; }
  .pv-main .pv-wpis-pelny__tresc h2 { font-size: 1.75rem; }
  .pv-main .pv-wpis-pelny__tresc h3 { font-size: 1.375rem; }
}

/* 404 */
.pv-404__karta { position: relative; overflow: hidden; }
.pv-404__karta::before {
  content: "";
  position: absolute;
  right: -120px;
  top: -120px;
  width: 360px;
  height: 360px;
  border-radius: 50%;
  background: var(--soft);
  pointer-events: none;
}
.pv-404__karta > * { position: relative; }
.pv-404__karta p { max-width: 720px; margin: 0; }
.pv-404__przyciski { display: flex; flex-wrap: wrap; gap: 12px; }
.pv-404 .pv-szukaj { width: 100%; max-width: 480px; }
.pv-404__pomoc { font-size: 0.9375rem; }
.ui-card .pv-404__pomoc a { color: var(--brand); text-decoration: underline; }
.pv-pusto { margin: 0; }

/* =========================================================
   20. Blok „Umów się” na końcu strony (działy Fizjoterapia / Gabinety / Jaką terapię wybrać?)
   ========================================================= */
.pv-cta { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--pv-kolumna); align-items: center; }
.pv-cta__tekst { display: flex; flex-direction: column; gap: var(--pv-odstep); min-width: 0; }
.pv-cta__tekst p { margin: 0; max-width: 640px; }
.pv-cta__akcje { display: flex; flex-direction: column; align-items: flex-start; gap: var(--pv-odstep); }
.ui-card .pv-cta__akcje a.pv-cta__przycisk { color: #fff; }
/* numer telefonu tej samej rangi co napis na przycisku: większy i pogrubiony, etykieta mniejsza nad nim */
.ui-card .pv-cta__tel { font-size: 1.25rem; font-weight: 600; line-height: 1.15; }
.pv-cta__tel small { font-size: 0.8125rem; font-weight: 500; letter-spacing: 0.04em; margin-bottom: 2px; }
.pv-cta__tel .pv-ikona { width: 34px; height: 34px; }
@media (min-width: 768px) {
  .pv-cta { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: var(--pv-kolumna); }
  /* przycisk i telefon w jednej linii */
  .pv-cta__akcje { flex-direction: row; flex-wrap: wrap; align-items: center; justify-self: start; gap: 20px 30px; }
}
@media (max-width: 767px) {
  .pv-cta__akcje { align-self: stretch; }
  .pv-cta__akcje .pv-cta__przycisk { align-self: stretch; }
}

/* panel „Dofinansowanie” w dziale Sklepy: jasna lewa kolumna (błękitne tło, granatowa kreska po lewej, granatowy tekst,
   plakietki z obwódką na białym), prawa = zwykła treść bloku (nagłówek, tekst, akcje). Granatowa wersja z 2026-10-02
   wycofana 2026-10-15 - klient: zbyt krzykliwa; przycisk „Napisz do nas" ma być najciemniejszym elementem bloku. */
.pv-cta__glowne { display: contents; }
.pv-cta--z-dof .pv-cta__glowne { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.pv-dof-panel {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 24px;
  border-radius: 10px;
  background: var(--check-bg);
  border: 1px solid var(--line);
  border-left: 3px solid var(--brand);
  color: var(--brand-dark);
  min-width: 0;
}
.pv-main .pv-dof-panel p { margin: 0; color: var(--brand-dark); max-width: none; }
.pv-main .pv-dof-panel p.pv-dof-panel__tytul,
.pv-dof-panel__tytul {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  font-family: var(--pv-font-naglowki);
  font-size: 1.125rem;
  line-height: 1.3;
  color: var(--brand);
}
.pv-dof-panel__tytul strong { font-weight: 600; }
.pv-dof-panel__tytul .pv-ikona { width: 26px; height: 26px; }
.pv-dof-panel > p:last-child { font-size: 0.9375rem; line-height: 1.5; }
/* programy jako plakietki (lista, nie tekst z kropkami) */
.pv-dof-panel__programy { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.pv-dof-panel__programy > * {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 12px;
  border: 1px solid rgba(22, 87, 163, 0.45);
  border-radius: 999px;
  background: #fff;
  font-family: var(--pv-font-naglowki);
  font-weight: 600;
  font-size: 0.875rem;
  letter-spacing: 0.06em;
  line-height: 1;
  color: var(--brand-dark);
}
/* do 1023 px panel jest pasem nad treścią (jedna kolumna); etykieta, cztery plakietki i zdanie mają wtedy pełną szerokość */
@media (min-width: 768px) and (max-width: 1023px) {
  .pv-cta--z-dof { grid-template-columns: minmax(0, 1fr); }
  .pv-cta--z-dof .pv-cta__akcje { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 20px 30px; }
}
@media (min-width: 1024px) {
  /* mały komputer: panel ~39%, obok nagłówek z tekstem, a przycisk z telefonem pod nimi */
  .pv-cta--z-dof { grid-template-columns: minmax(0, 0.72fr) minmax(0, 1fr); gap: var(--pv-kolumna); align-items: stretch; }
}
@media (min-width: 1200px) {
  /* komputer: panel ~36% - etykieta i cztery plakietki mieszczą się w jednym wierszu, zdanie w dwóch */
  .pv-cta--z-dof { grid-template-columns: minmax(0, 0.56fr) minmax(0, 1fr); gap: var(--pv-kolumna); }
  .pv-cta--z-dof .pv-cta__glowne { justify-content: center; }
}
html[data-kontrast="wysoki"] .pv-dof-panel,
html[data-kontrast="wysoki"] .pv-dof-panel__programy > * { border: 1px solid #fff !important; }

/* panel w pasie tytułowym (.pv-hero--z-dof): na komputerze po prawej od tytułu, dosunięty do dołu jak okruszki;
   do 1024 px pod okruszkami. Wersja kompaktowa bez zdania, mniejsze pole i plakietki. */
.pv-hero--z-dof .pv-hero__srodek { display: grid; grid-template-columns: minmax(0, 1fr); align-content: end; row-gap: var(--pv-odstep); }
.pv-hero__dof { margin-top: 4px; }
.pv-dof-panel--kompakt { gap: 10px; padding: 14px 18px; }
.pv-dof-panel--kompakt .pv-dof-panel__tytul { font-size: 1rem; }
.pv-dof-panel--kompakt .pv-dof-panel__tytul .pv-ikona { width: 22px; height: 22px; }
.pv-dof-panel--kompakt .pv-dof-panel__programy > * { min-height: 26px; padding: 0 10px; font-size: 0.8125rem; }
/* ostatnia pozycja rozwinięcia „Sklepy medyczne” w menu (komputer): panel jako link do #dofinansowanie na stronie zbiorczej */
/* poza siatką rozwinięcia (inaczej rozciągałby wspólny wiersz z linkiem w pierwszej kolumnie): przypięty do prawego dolnego rogu,
   lewa krawędź = lewa krawędź pastylek drugiej kolumny (kolumny równe, odstęp 7 px, margines pastylki 10 px),
   prawa = prawa krawędź pastylek. Mieści się, dopóki druga kolumna ma najwyżej 5 pozycji. */
.pv-menu__pod .pv-menu__dof { position: absolute; left: calc(50% + 13.5px); right: 10px; bottom: 10px; margin: 0; }
.pv-menu__pod a.pv-menu__dof-link { text-decoration: none; text-transform: none; letter-spacing: 0; transition: background-color .2s ease, border-color .2s ease; }
.pv-menu__pod a.pv-menu__dof-link { padding: 14px 16px; }
.pv-menu__pod a.pv-menu__dof-link .pv-dof-panel__tytul { font-size: 0.9375rem; }
/* cztery plakietki zawsze w jednym wierszu (szerokość kolumny ~245 px): ciaśniejsze i mniejsze niż w pasie tytułowym.
   Przy powiększonym tekście (A+, A++) rozwinięcie ma stałą szerokość w px, więc tam wolno im się zawinąć. */
.pv-menu__pod a.pv-menu__dof-link .pv-dof-panel__programy { flex-wrap: nowrap; gap: 6px; }
.pv-menu__pod a.pv-menu__dof-link .pv-dof-panel__programy > * { min-height: 24px; padding: 0 7px; font-size: 0.75rem; letter-spacing: 0.02em; }
html[data-tekst="wiekszy"] .pv-menu__pod a.pv-menu__dof-link .pv-dof-panel__programy,
html[data-tekst="najwiekszy"] .pv-menu__pod a.pv-menu__dof-link .pv-dof-panel__programy { flex-wrap: wrap; }
.pv-menu__pod a.pv-menu__dof-link:hover,
.pv-menu__pod a.pv-menu__dof-link:focus-visible { background: #dbe8f7; border-color: var(--brand); }
.pv-menu__pod a.pv-menu__dof-link:focus-visible { outline: 3px solid var(--brand); outline-offset: 2px; }
@media (min-width: 1025px) {
  .pv-hero--z-dof .pv-hero__srodek { grid-template-columns: minmax(0, 1fr) minmax(300px, 34%); column-gap: var(--pv-kolumna); align-items: end; }
  .pv-hero--z-dof .pv-hero__srodek > h1,
  .pv-hero--z-dof .pv-hero__srodek > nav { grid-column: 1; }
  .pv-hero__dof { grid-column: 2; grid-row: 1 / span 2; align-self: end; margin-top: 0; }
}

/* =========================================================
   21. Rozmiar tekstu (przełącznik A / A+ / A++). Rozmiary w motywie są w rem, więc wystarczy skalować <html>.
   Poziom trzyma atrybut data-tekst nakładany wczesnym skryptem w <head> (inc/rozmiar-tekstu.php) i zapisany w localStorage.
   ========================================================= */
html[data-tekst="wiekszy"] { font-size: 115%; }
html[data-tekst="najwiekszy"] { font-size: 130%; }
.pv-tekst { display: inline-flex; align-items: center; gap: 4px; flex: none; }
.pv-tekst__etykieta { margin-right: 6px; font-size: 0.875rem; color: var(--brand-dark); }
.pv-tekst__przycisk {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  min-height: 32px;
  padding: 0 7px;
  border: 1px solid transparent;
  border-radius: 6px;
  background: transparent;
  color: var(--brand-dark);
  font-family: var(--pv-font-naglowki);
  font-weight: 500;
  font-size: 0.875rem;
  line-height: 1;
  cursor: pointer;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.pv-tekst__przycisk[data-tekst-poziom="wiekszy"] { font-size: 1rem; }
.pv-tekst__przycisk[data-tekst-poziom="najwiekszy"] { font-size: 1.125rem; }
.pv-tekst__przycisk:hover { background: #fff; border-color: var(--brand); }
.pv-tekst__przycisk[aria-pressed="true"] { background: var(--brand); border-color: var(--brand); color: #fff; font-weight: 600; }
.pv-panel .pv-tekst { flex-wrap: wrap; }
.pv-panel .pv-tekst__przycisk { min-width: 40px; min-height: 40px; border-color: var(--line); background: #fff; font-weight: 600; }
.pv-panel .pv-tekst__przycisk[aria-pressed="true"] { background: var(--brand); border-color: var(--brand); }

/* =========================================================
   22. Wysoki kontrast (przełącznik „Kontrast”): czarne tło, biały tekst, żółte linki i przyciski, bez zdjęć w tle.
   Zasada: najpierw zamiana tokenów, potem blanket-reguły z !important, na końcu wyjątki dla przycisków i pól.
   ========================================================= */
.pv-ulatwienia { display: inline-flex; align-items: center; gap: 12px; flex: none; }
/* prawa grupa paska: social | szukajka + przełączniki (narzędzia) - separator przed narzędziami */
.pv-naglowek__gora .pv-szukaj { padding-left: 16px; border-left: 1px solid rgba(15, 62, 115, .25); }
.pv-ulatwienia--panel { flex-wrap: wrap; gap: 12px 20px; }
.pv-kontrast {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 32px;
  padding: 0 10px;
  border: 1px solid transparent;
  border-radius: 6px;
  background: transparent;
  color: var(--brand-dark);
  font-family: var(--pv-font-naglowki);
  font-weight: 500;
  font-size: 0.875rem;
  line-height: 1;
  cursor: pointer;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.pv-kontrast .pv-ikona { width: 18px; height: 18px; }
.pv-kontrast:hover { background: #fff; border-color: var(--brand); }
.pv-kontrast[aria-pressed="true"] { background: var(--brand); border-color: var(--brand); color: #fff; font-weight: 600; }
.pv-panel .pv-kontrast { min-height: 40px; border-color: var(--line); background: #fff; font-weight: 600; }
.pv-panel .pv-kontrast[aria-pressed="true"] { background: var(--brand); border-color: var(--brand); }

html[data-kontrast="wysoki"] {
  color-scheme: dark;
  --brand: #ffff00;
  --brand-dark: #ffff00;
  --accent: #ffff00;
  --accent-dark: #ffff00;
  --accent-soft: #000;
  --accent-border: #fff;
  --line: #fff;
  --soft: #000;
  --check-bg: #000;
  --pv-hover-tlo: #333;
}
html[data-kontrast="wysoki"],
html[data-kontrast="wysoki"] body { background: #000 !important; color: #fff !important; }
html[data-kontrast="wysoki"] body *:not(img):not(svg):not(path):not(circle):not(video):not(iframe):not(picture):not(source) {
  background-color: #000 !important;
  background-image: none !important;
  color: #fff !important;
  border-color: #fff !important;
  box-shadow: none !important;
  text-shadow: none !important;
}
html[data-kontrast="wysoki"] body a,
html[data-kontrast="wysoki"] body a *:not(svg):not(path) { color: #ffff00 !important; }
html[data-kontrast="wysoki"] body a { text-decoration: underline !important; }
html[data-kontrast="wysoki"] .ui-card,
html[data-kontrast="wysoki"] .pv-hero,
html[data-kontrast="wysoki"] .pv-naglowek__gora,
html[data-kontrast="wysoki"] .pv-naglowek__menu,
html[data-kontrast="wysoki"] .pv-menu__pod,
html[data-kontrast="wysoki"] .pv-pasek,
html[data-kontrast="wysoki"] .pv-panel,
html[data-kontrast="wysoki"] .pv-stopka,
html[data-kontrast="wysoki"] .pv-kafelek,
html[data-kontrast="wysoki"] .pv-konf__grupa,
html[data-kontrast="wysoki"] .pv-konf__problem,
html[data-kontrast="wysoki"] .pv-konf__terapie li,
html[data-kontrast="wysoki"] .pv-konf__flaga,
html[data-kontrast="wysoki"] .pv-konf__komunikat,
html[data-kontrast="wysoki"] .pv-konf__czesc--akcje,
html[data-kontrast="wysoki"] input,
html[data-kontrast="wysoki"] textarea,
html[data-kontrast="wysoki"] select { border: 1px solid #fff !important; }
/* przyciski i stany „wciśnięte”: żółte tło, czarny napis */
html[data-kontrast="wysoki"] body :is(a.btn-primary, a.btn-secondary, a.btn-accent, button.btn-primary, button.btn-secondary, button.btn-accent, .pv-kafelek__przycisk, .pv-form button, .pv-szukaj button, .pv-cennik__zakladka[aria-selected="true"], .pv-tekst__przycisk[aria-pressed="true"], .pv-kontrast[aria-pressed="true"], .pv-filtr [aria-pressed="true"], .pv-paginacja__el.current),
html[data-kontrast="wysoki"] body :is(a.btn-primary, a.btn-secondary, a.btn-accent, button.btn-primary, button.btn-secondary, button.btn-accent, .pv-kafelek__przycisk, .pv-form button, .pv-szukaj button, .pv-cennik__zakladka[aria-selected="true"], .pv-tekst__przycisk[aria-pressed="true"], .pv-kontrast[aria-pressed="true"], .pv-filtr [aria-pressed="true"], .pv-paginacja__el.current) *:not(svg):not(path) {
  background-color: #ffff00 !important;
  color: #000 !important;
  border-color: #ffff00 !important;
  text-decoration: none !important;
}
html[data-kontrast="wysoki"] body :is(a.btn-primary, a.btn-secondary, a.btn-accent, button.btn-primary, button.btn-secondary, button.btn-accent):hover { background-color: #fff !important; }
html[data-kontrast="wysoki"] .pv-ikona { background: transparent !important; box-shadow: none !important; stroke: currentColor !important; }
/* ikony-maski konfiguratora: kolor to tło elementu, więc w kontraście musi być żółte, nie czarne */
html[data-kontrast="wysoki"] body .pv-konf__grupa .pv-konf__ikona { background-color: #ffff00 !important; }
html[data-kontrast="wysoki"] :is(a.btn-primary, a.btn-secondary, a.btn-accent, button.btn-primary, button.btn-secondary, button.btn-accent) .pv-ikona { color: #000 !important; }
html[data-kontrast="wysoki"] :focus-visible { outline: 3px solid #ffff00 !important; outline-offset: 2px !important; }
/* kafelki ze zdjęciem w tle: tło znika, zostaje żółty tytuł na czerni; logo dostaje białe pole, bo jest granatowe */
html[data-kontrast="wysoki"] .pv-kafelek { min-height: 160px; }
html[data-kontrast="wysoki"] .pv-naglowek__logo img,
html[data-kontrast="wysoki"] .pv-stopka__logo img,
html[data-kontrast="wysoki"] .pv-logotypy__el { background: #fff !important; border: 1px solid #fff !important; }
html[data-kontrast="wysoki"] .section-title::after,
html[data-kontrast="wysoki"] .pv-karta > .pv-tresc h4::after,
html[data-kontrast="wysoki"] .pv-karta > .pv-tresc .pv-etykieta::after { background: #ffff00 !important; }
html[data-kontrast="wysoki"] .pv-tresc--haczyki ul li::before { background: #000 !important; border-color: #fff !important; }
html[data-kontrast="wysoki"] .pv-tresc--haczyki ul li::after { border-color: #ffff00 !important; }
html[data-kontrast="wysoki"] .pv-powitanie::before,
html[data-kontrast="wysoki"] .pv-powitanie::after { display: none !important; }
html[data-kontrast="wysoki"] .pv-powitanie--gradient .pv-powitanie__ramka { background: #000 !important; padding: 20px !important; border: 2px solid #fff !important; }
html[data-kontrast="wysoki"] .pv-powitanie--gradient .pv-powitanie__ramka::before { display: none !important; }
html[data-kontrast="wysoki"] .pv-powitanie__pauza { background: #000 !important; color: #ffff00 !important; box-shadow: inset 0 0 0 2px #fff !important; }
html[data-kontrast="wysoki"] ::placeholder { color: #ccc !important; }

/* =========================================================
   23. Podpowiedzi wyszukiwarki (assets/js/podpowiedzi.js): lista pod polem w stylu rozwinięć menu
   ========================================================= */
.pv-szukaj--z-podpowiedziami { position: relative; }
/* wskaźnik „trwa wyszukiwanie" (podpowiedzi.js): kręcący się pierścień w prawym rogu pola, w miejscu przycisku „Wyczyść" */
.pv-szukaj__trwa { position: absolute; top: 50%; right: 14px; width: 16px; height: 16px; margin-top: -8px; pointer-events: none; z-index: 1; }
.pv-szukaj__trwa[hidden] { display: none; }
.pv-szukaj__trwa::before {
  content: "";
  display: block;
  width: 16px;
  height: 16px;
  box-sizing: border-box;
  border: 2px solid rgba(22, 87, 163, .22);
  border-top-color: var(--brand);
  border-radius: 50%;
  animation: pv-szukaj-krecenie .8s linear infinite;
}
@keyframes pv-szukaj-krecenie { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  /* bez ruchu: zamiast pierścienia trzy kropki */
  .pv-szukaj__trwa::before { content: "…"; width: auto; height: auto; border: 0; animation: none; font: 700 1rem/1 var(--pv-font-tekst); color: var(--brand); }
}
.pv-szukaj__lista {
  list-style: none;
  margin: 0;
  padding: 6px;
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 6px);
  z-index: 950;
  background: #fff;
  border: 1px solid var(--brand-dark);
  border-radius: 6px;
  box-shadow: 0 10px 25px rgba(15, 62, 115, .12);
  max-height: min(60vh, 420px);
  overflow-y: auto;
}
.pv-szukaj__lista[hidden] { display: none; }
.pv-szukaj__opcja {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 10px 12px;
  border-radius: 6px;
  color: var(--brand);
  font-family: var(--pv-font-tekst);
  font-size: 1rem;
  line-height: 1.3;
  cursor: pointer;
  text-align: left;
}
.pv-szukaj__opcja + .pv-szukaj__opcja { margin-top: 2px; }
.pv-szukaj__tytul strong { font-weight: 700; }
.pv-szukaj__rodzaj { font-family: var(--pv-font-naglowki); font-size: 0.75rem; letter-spacing: 0.06em; text-transform: uppercase; color: rgba(15, 62, 115, .8); }
.pv-szukaj__opcja--wszystkie { margin-top: 6px !important; border-top: 1px solid var(--line); border-radius: 0 0 6px 6px; font-size: 0.9375rem; color: var(--brand-dark); }
.pv-szukaj__opcja--aktywna,
.pv-szukaj__opcja:hover { background: var(--brand-dark); color: #fff; }
.pv-szukaj__opcja--aktywna .pv-szukaj__rodzaj,
.pv-szukaj__opcja:hover .pv-szukaj__rodzaj { color: rgba(255, 255, 255, .85); }
/* pasek górny: lista szersza niż kompaktowe pole, żeby tytuły się nie łamały */
.pv-naglowek__gora .pv-szukaj__lista { left: auto; right: 0; width: 420px; max-width: calc(100vw - 20px); }
/* panel mobilny przewija się w środku - lista nie może wyjść poza jego szerokość */
.pv-panel .pv-szukaj__lista { max-height: 50vh; }
html[data-kontrast="wysoki"] .pv-szukaj__lista { border-color: #fff !important; }
html[data-kontrast="wysoki"] .pv-szukaj__opcja--aktywna,
html[data-kontrast="wysoki"] .pv-szukaj__opcja--aktywna *:not(svg) { background-color: #ffff00 !important; color: #000 !important; }

/* =========================================================
   24. Zgoda na cookies (inc/cookies.php): baner na dole, okno ustawień, zasłona osadzeń
   ========================================================= */
.pv-cookies {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1000;
  background: #fff;
  border-top: 1px solid var(--line);
  box-shadow: 0 -10px 30px rgba(15, 62, 115, .12);
  font-family: var(--pv-font-tekst);
  color: var(--brand);
}
.pv-cookies[hidden] { display: none; }
.pv-cookies__srodek { display: flex; align-items: center; justify-content: space-between; gap: 20px 40px; padding-block: 20px; }
.pv-cookies__tekst { flex: 1 1 520px; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.pv-cookies__tytul { margin: 0; font-family: var(--pv-font-naglowki); font-weight: 500; font-size: 1.125rem; line-height: 1.3; color: var(--brand-dark); }
.pv-cookies__tekst p { margin: 0; font-size: 0.9375rem; line-height: 1.5; }
.pv-cookies__tekst a { color: var(--brand); text-decoration: underline; }
.pv-cookies__akcje { flex: none; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; }
/* „Tylko niezbędne” tak samo widoczne jak „Akceptuję wszystkie” (równorzędne opcje), tylko w wersji konturowej */
button.pv-cookies__przycisk--drugi { background: #fff; color: var(--brand); box-shadow: inset 0 0 0 1px var(--brand); }
button.pv-cookies__przycisk--drugi:hover { background: var(--soft); color: var(--brand-dark); box-shadow: inset 0 0 0 1px var(--brand-dark); }
.pv-cookies__ustawienia,
.pv-stopka__cookies {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0 4px;
  border: 0;
  background: transparent;
  color: var(--brand);
  font-family: var(--pv-font-tekst);
  font-size: 0.9375rem;
  text-decoration: underline;
  cursor: pointer;
}
.pv-cookies__ustawienia:hover { color: var(--brand-dark); }
.pv-stopka__cookies { color: #fff; font-size: 0.8125rem; min-height: 24px; }
.pv-stopka__cookies:hover { color: #fff; text-decoration: none; }
.pv-stopka__pasek-srodek { gap: 8px 24px; flex-wrap: wrap; }

/* okno ustawień */
.pv-cookies__dialog {
  width: min(640px, calc(100vw - 32px));
  max-height: min(90vh, 100%);
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: 0 20px 50px rgba(15, 62, 115, .2);
  color: var(--brand);
  font-family: var(--pv-font-tekst);
}
.pv-cookies__dialog::backdrop { background: rgba(15, 62, 115, .45); }
.pv-cookies__forma { display: flex; flex-direction: column; gap: 20px; padding: 28px; }
.pv-cookies__dialog-gora { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.pv-cookies__dialog .section-title { margin: 0; font-family: var(--pv-font-naglowki); font-weight: 300; font-size: 1.625rem; line-height: 1.3; color: var(--brand); }
.pv-cookies__zamknij { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: 0; border-radius: 50%; background: transparent; color: var(--brand); cursor: pointer; }
.pv-cookies__zamknij:hover { background: var(--soft); }
.pv-cookies__zamknij .pv-ikona { width: 22px; height: 22px; }
.pv-cookies__dialog-tekst { margin: 0; font-size: 0.9375rem; line-height: 1.5; }
.pv-cookies__dialog-tekst a { color: var(--brand); text-decoration: underline; }
.pv-cookies__kategorie { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.pv-cookies__kategoria { padding: 14px 16px; border: 1px solid var(--line); border-radius: 10px; background: var(--soft); display: flex; flex-direction: column; gap: 6px; }
.pv-cookies__kategoria-glowa { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.pv-cookies__etykieta { font-family: var(--pv-font-naglowki); font-weight: 500; font-size: 1rem; color: var(--brand-dark); cursor: pointer; }
.pv-cookies__etykieta small { font-family: var(--pv-font-tekst); font-weight: 400; font-size: 0.8125rem; color: rgba(15, 62, 115, .8); }
.pv-cookies__opis { margin: 0; font-size: 0.875rem; line-height: 1.5; }
/* przełącznik: natywny checkbox (role=switch) pod spodem, wizualny tor + gałka */
.pv-cookies__przelacznik { position: relative; flex: none; width: 48px; height: 28px; }
.pv-cookies__przelacznik input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.pv-cookies__przelacznik input[disabled] { cursor: not-allowed; }
.pv-cookies__tor { position: absolute; inset: 0; border-radius: 14px; background: #9aa5b1; transition: background-color .2s ease; pointer-events: none; }
.pv-cookies__tor::after { content: ""; position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .3); transition: transform .2s ease; }
.pv-cookies__przelacznik input:checked + .pv-cookies__tor { background: var(--brand); }
.pv-cookies__przelacznik input:checked + .pv-cookies__tor::after { transform: translateX(20px); }
.pv-cookies__przelacznik input[disabled] + .pv-cookies__tor { background: var(--brand-dark); opacity: .55; }
.pv-cookies__przelacznik input:focus-visible + .pv-cookies__tor { outline: 3px solid var(--brand-dark); outline-offset: 2px; }
.pv-cookies__dialog-akcje { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; }

/* zasłona osadzenia (YouTube, mapa) do czasu zgody */
.pv-osadzenie { position: relative; }
.pv-osadzenie__zaslona { position: absolute; inset: 0; z-index: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 24px; text-align: center; background: var(--soft); color: var(--brand); }
.pv-osadzenie__tekst { margin: 0; max-width: 480px; font-size: 0.9375rem; line-height: 1.5; }
.pv-osadzenie__dopisek { margin: 0; max-width: 480px; font-size: 0.8125rem; line-height: 1.4; color: rgba(15, 62, 115, .8); }
.pv-osadzenie iframe[data-pv-src] { visibility: hidden; }

@media (max-width: 767px) {
  .pv-cookies__srodek { flex-direction: column; align-items: stretch; padding-block: 16px; gap: 14px; }
  .pv-cookies__tekst { flex-basis: auto; } /* w kolumnie flex-basis działa na wysokość - bez tego baner miał 520 px */
  .pv-cookies__akcje { flex-direction: column; align-items: stretch; gap: 10px; }
  .pv-cookies__akcje .pv-cookies__przycisk { justify-content: center; }
  .pv-cookies__ustawienia { justify-content: center; }
  .pv-cookies__forma { padding: 20px 16px; gap: 16px; }
  .pv-cookies__dialog-akcje { flex-direction: column; align-items: stretch; }
  .pv-cookies__dialog-akcje .btn-primary { justify-content: center; }
  .pv-osadzenie__zaslona { padding: 16px; gap: 8px; }
}
html[data-kontrast="wysoki"] .pv-cookies,
html[data-kontrast="wysoki"] .pv-cookies__dialog,
html[data-kontrast="wysoki"] .pv-cookies__kategoria { border: 1px solid #fff !important; }
html[data-kontrast="wysoki"] .pv-cookies__przelacznik input:checked + .pv-cookies__tor { background: #ffff00 !important; }

/* =========================================================
   25. Certyfikat ISO 9001 (inc/iso.php): karta z pieczęcią i faktami, pieczęć w stopce
   ========================================================= */
.pv-main .ui-card.pv-iso { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--pv-odstep); align-items: start; }
.pv-iso__znak { display: flex; justify-content: center; }
.pv-iso__znak img { width: 200px; height: auto; display: block; }
.pv-iso__tresc { display: flex; flex-direction: column; align-items: flex-start; gap: var(--pv-odstep); min-width: 0; }
.pv-iso__tresc > p { margin: 0; max-width: 720px; }
/* fakty: etykieta wersalikami, wartość zwykłym krojem, dwie kolumny od tabletu */
.pv-iso__fakty { margin: 0; align-self: stretch; display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px 32px; }
.pv-iso__fakt { display: flex; flex-direction: column; gap: 4px; padding-left: 12px; border-left: 2px solid var(--accent); }
.pv-iso__fakt dt { font-family: var(--pv-font-naglowki); font-weight: 500; font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--brand); }
.pv-iso__fakt dd { margin: 0; color: var(--brand-dark); font-size: 1rem; line-height: 1.45; }
.pv-iso__akcje { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; }
.ui-card .pv-iso__akcje a.pv-iso__link { color: var(--brand); text-decoration: underline; font-family: var(--pv-font-naglowki); font-size: 0.9375rem; }
.ui-card .pv-iso__akcje a.pv-iso__link:hover { color: var(--brand-dark); }
@media (min-width: 768px) {
  .pv-main .ui-card.pv-iso { grid-template-columns: 220px minmax(0, 1fr); gap: var(--pv-kolumna); }
  .pv-iso__fakty { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .pv-iso__znak img { width: 150px; }
  .pv-iso__akcje .btn-primary { align-self: stretch; width: 100%; }
}
/* certyfikat w stopce: pieczęć 96 px (przezroczyste tło) z podpisem obok, całość jako link do strony z certyfikatem */
.pv-stopka__iso { display: flex; align-items: center; gap: 12px; margin-top: 6px; padding: 10px 12px 10px 8px; border-radius: 10px; border: 1px solid rgba(15, 62, 115, .18); background: rgba(255, 255, 255, .55); text-decoration: none; color: var(--brand-dark); max-width: 100%; box-sizing: border-box; }
/* od tabletu ta sama szerokość co przyciski w kolumnie Kontakt (16 rem), żeby między kolumnami został oddech */
@media (min-width: 768px) { .pv-stopka__iso { width: 100%; max-width: 16rem; } }
.pv-stopka__iso-znak { width: 80px; height: 80px; flex: none; display: block; }
.pv-stopka__iso-tekst { display: flex; flex-direction: column; gap: 4px; min-width: 0; font-size: 0.875rem; line-height: 1.35; }
.pv-stopka__iso-tekst strong { font-family: var(--pv-font-naglowki); font-weight: 600; font-size: 0.9375rem; color: var(--brand); }
.pv-stopka .pv-stopka__kol a.pv-stopka__iso { color: var(--brand-dark); text-decoration: none; }
a.pv-stopka__iso { transition: background-color .2s ease, border-color .2s ease; }
a.pv-stopka__iso:hover { background: #fff; border-color: var(--brand); }
a.pv-stopka__iso:focus-visible { outline: 3px solid var(--brand-dark); outline-offset: 2px; }
html[data-kontrast="wysoki"] .pv-stopka__iso { border: 1px solid #fff !important; }

/* =========================================================
   26. Opinie pacjentów (Trustindex, template-parts/opinie.php + inc/opinie.php): suwak w ramce z własnego adresu motywu,
   style kart opinii są w tej ramce; tu tylko karta sekcji, zasłona zgody i sama ramka (wysokość ustawia assets/js/opinie.js)
   ========================================================= */
.pv-opinie__wstep { margin: 0; max-width: 720px; }
.pv-opinie__widzet { align-self: stretch; min-width: 0; }
.pv-opinie__widzet--zaslonieta { min-height: 280px; border-radius: 10px; background: rgba(255, 255, 255, .6); border: 1px dashed rgba(15, 62, 115, .3); overflow: hidden; }
.pv-opinie__ramka { display: block; width: 100%; height: 320px; border: 0; background: transparent; }
.pv-opinie__widzet--zaslonieta .pv-opinie__ramka { height: 280px; }

/* ---------- 27. Godziny otwarcia: .pv-godziny (sekcja), .pv-stopka__godziny (skrót w stopce) ---------- */
.pv-godziny__wstep { margin: 0; max-width: 720px; }
.pv-godziny__lista { align-self: stretch; display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--pv-kolumna); }
.pv-godziny__lista--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pv-godziny__lista--1 { max-width: 640px; }   /* jedna jednostka (np. sklep) nie rozciąga tabeli na całą kartę */
.pv-godziny__jednostka { display: flex; flex-direction: column; gap: 10px; padding: 20px 22px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.pv-main .pv-godziny__tytul { margin: 0; font-family: var(--pv-font-naglowki); font-weight: 500; font-size: 1.25rem; line-height: 1.4; color: var(--brand-dark); }
/* status liczony skryptem: pastylka; „teraz otwarte" z zieloną kropką, inaczej granatowa */
.pv-godziny__status { margin: 0; display: inline-flex; align-items: center; gap: 8px; align-self: flex-start; padding: 4px 10px 4px 8px; border-radius: 999px; background: var(--check-bg); color: var(--brand-dark); font-size: 0.875rem; font-weight: 600; line-height: 1.3; }
.pv-godziny__status::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--brand); flex: none; }
.pv-godziny__status--otwarte::before { background: #1B8A4C; }
.pv-godziny__tabela { width: 100%; border-collapse: collapse; margin: 4px 0 0; font-size: 1rem; }
.pv-godziny__tabela th,
.pv-godziny__tabela td { padding: 8px 10px; border-top: 1px solid var(--line); text-align: left; vertical-align: middle; }
.pv-godziny__tabela tr:first-child th,
.pv-godziny__tabela tr:first-child td { border-top: 0; }
.pv-godziny__tabela th { font-weight: 500; width: 55%; }
.pv-godziny__tabela td { font-variant-numeric: tabular-nums; white-space: nowrap; }
.pv-godziny__dzien--zamkniete td { color: #3F5F86; }   /* 6,2:1 na bieli; jaśniejszy szaroniebieski nie przechodził 4,5:1 */
/* dzisiejszy dzień (skrypt): błękitny pasek z granatową krawędzią po lewej */
.pv-godziny__dzien--dzis th,
.pv-godziny__dzien--dzis td { background: var(--check-bg); font-weight: 700; color: var(--brand-dark); }
.pv-godziny__dzien--dzis th { box-shadow: inset 3px 0 0 var(--brand); }
.pv-godziny__uwagi { margin: 0; font-size: 0.9375rem; color: rgba(15, 62, 115, .8); }
.pv-stopka__godziny { margin: 6px 0 0; font-size: 0.875rem; line-height: 1.5; }
@media (max-width: 767px) {
  .pv-godziny__lista--2 { grid-template-columns: minmax(0, 1fr); }
  .pv-godziny__jednostka { padding: 16px; }
  .pv-godziny__tabela th,
  .pv-godziny__tabela td { padding: 7px 8px; }
}
html[data-kontrast="wysoki"] .pv-godziny__jednostka { background: #000 !important; border-color: #fff !important; }
html[data-kontrast="wysoki"] .pv-godziny__dzien--dzis th,
html[data-kontrast="wysoki"] .pv-godziny__dzien--dzis td { background: #333 !important; color: #ffff00 !important; }
html[data-kontrast="wysoki"] .pv-godziny__status { background: #000 !important; color: #ffff00 !important; border: 1px solid #fff; }
/* status godzin przy telefonach w nagłówku i panelu mobilnym (skrypt godziny.js): drobny wiersz pod numerem z kropką */
.pv-naglowek__status,
.pv-panel__status { display: flex; align-items: center; gap: 5px; margin-top: 1px; font-family: var(--pv-font-tekst, inherit); font-size: 0.75rem; font-weight: 400; line-height: 1.3; letter-spacing: 0; color: var(--brand); }
.pv-naglowek__status::before,
.pv-panel__status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: rgba(15, 62, 115, .45); flex: none; }
.pv-naglowek__status[data-stan="otwarte"]::before,
.pv-panel__status[data-stan="otwarte"]::before { background: #1B8A4C; }
.pv-naglowek__tel small.pv-naglowek__status { display: flex; font-size: 0.75rem; white-space: nowrap; }
.pv-naglowek__glowny-srodek > .pv-naglowek__voucher { margin-left: 20px; }   /* 40 px przed przyciskami: informacje po lewej, akcje po prawej */
.pv-panel__status { white-space: normal; }
html[data-kontrast="wysoki"] .pv-naglowek__status,
html[data-kontrast="wysoki"] .pv-panel__status { color: #ffff00 !important; }

/* ---------- 28. Przejście między stronami (View Transitions, próba 2026-10-19) ----------
   Krótkie przenikanie całej strony przy nawigacji w obrębie serwisu (Chrome/Edge/Safari; Firefox po prostu ładuje zwykle).
   Nagłówek i pasek dolny mają własne nazwy: ich migawki są identyczne na obu stronach, więc stoją w miejscu, animuje się
   sama treść. Przy ograniczonym ruchu przejście wyłączone. */
@view-transition { navigation: auto; }
::view-transition-old(root),
::view-transition-new(root) { animation-duration: 180ms; animation-timing-function: ease; }
.pv-naglowek { view-transition-name: pv-naglowek; }
.pv-pasek { view-transition-name: pv-pasek; }
@media (prefers-reduced-motion: reduce) {
  @view-transition { navigation: none; }
}

/* ---------- 29. „Do góry" (.pv-gora): przycisk stały w prawym dolnym rogu, po przewinięciu dwóch ekranów ----------
   44 px (cel dotyku), styl przycisku drugorzędnego: biel + granatowy obrys, hover granat. Wjeżdża z dołu z zanikaniem;
   na telefonie siedzi nad stałym paskiem „Zadzwoń / Umów" (4.75rem). Nie zasłania treści poza 44 px rogiem. */
.pv-gora {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 700;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, .96);
  color: var(--brand);
  box-shadow: inset 0 0 0 1px var(--brand), 0 4px 14px rgba(15, 62, 115, .18);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0;
  transform: translateY(12px);
  transition: opacity .25s ease, transform .25s ease, background-color .2s ease, color .2s ease;
  view-transition-name: pv-gora;
}
.pv-gora[hidden] { display: flex; pointer-events: none; }
.pv-gora--widoczny { opacity: 1; transform: none; pointer-events: auto; }
.pv-gora .pv-ikona { width: 22px; height: 22px; }
.pv-gora:hover { background: var(--brand); color: #fff; }
.pv-gora:focus-visible { outline: 3px solid var(--brand-dark); outline-offset: 2px; }
@media (max-width: 767px) {
  .pv-gora { right: 12px; bottom: calc(4.75rem + 12px); }
}
@media (prefers-reduced-motion: reduce) { .pv-gora { transition: none; transform: none; } }
@media print { .pv-gora { display: none !important; } }
html[data-kontrast="wysoki"] .pv-gora { background: #000 !important; color: #ffff00 !important; box-shadow: inset 0 0 0 2px #fff !important; }

/* ---------- 30. FAQ (.pv-faq) i druga kolumna ceny w cenniku ---------- */
.pv-faq__wstep { margin: 0; max-width: 720px; }
.pv-faq__lista { align-self: stretch; }
.pv-faq__el[open] { scroll-margin-top: 140px; }
.pv-cennik__naglowek-cena2,
.pv-cennik__cena--2 { color: var(--brand-dark); }
.pv-cennik__tabela tbody .pv-cennik__cena--2 strong { color: var(--brand); }

/* ---------- TYMCZASOWO (2026-10-23, do odwołania przez klienta): konfigurator „Z czym przychodzisz?" na stronie głównej
   i przycisk „Jakiej terapii szukasz?" w pasie z filmem schowane do czasu uzupełnienia treści. Usunąć ten blok, żeby przywrócić. ---------- */
.pv-main--start .pv-sekcja--konfigurator { display: none; }
.pv-powitanie .pv-powitanie__akcje a.pv-powitanie__link { display: none !important; }   /* !important: wariant na filmie ma regułę o wyższej swoistości */
