/* ==========================================================================
   NZOZ „Zdrowie" s.c. — user.css
   Szablon potomny: cassiopeia_extended · Joomla 6
   Ścieżka: media/templates/site/cassiopeia_extended/css/user.css

   Wersja scalona — zastępuje w całości dotychczasowy plik z łatkami 01–19.
   --------------------------------------------------------------------------
   SPIS TREŚCI
     1.  Tokeny i kroje pisma
     2.  Typografia podstawowa
     3.  Szerokość strony (Cassiopeia + nasze sekcje)
     4.  Nagłówek — szeroki ekran
     5.  Nagłówek — telefon i menu wysuwane
     6.  Kolory działów
     7.  Elementy wspólne (przyciski, ikony, nadtytuły)
     8.  Strona główna — hero
     9.  Strona główna — pozostałe sekcje
     10. Stopka
     11. Podstrony — okruszki i pas nagłówkowy
     12. Podstrony — lista artykułów
     13. Podstrony — pojedynczy artykuł
     14. Strona błędu
     15. Dostępność
   ========================================================================== */


/* ==========================================================================
   1. TOKENY I KROJE PISMA
   ========================================================================== */
:root{
  /* granat z logo */
  --nz-navy:#173883;
  --nz-navy-deep:#101F4D;
  --nz-navy-soft:#EEF2FB;

  /* akcent — ten sam odcień, jaśniejszy; kontrast na bieli 6,75:1 */
  --nz-accent:#1F55BF;
  --nz-accent-dark:#173E8E;
  --nz-accent-soft:#E8EEFB;

  /* drugi akcent — oszczędnie: nocna opieka, obrys fokusa; 5,97:1 */
  --nz-amber:#8A590F;
  --nz-amber-soft:#FBF3E6;

  --nz-ink:#2A3140;
  --nz-muted:#6B7484;
  --nz-bg:#FFFFFF;
  --nz-bg-soft:#F5F8FC;
  --nz-line:#E4EAF3;

  --nz-r:14px;
  --nz-r-lg:20px;
  --nz-shadow:0 1px 2px rgba(16,31,77,.04),0 8px 24px rgba(16,31,77,.06);
  --nz-shadow-h:0 2px 6px rgba(16,31,77,.06),0 14px 34px rgba(16,31,77,.11);

  /* jedna szerokość dla całej strony — także dla siatki Cassiopei */
  --nz-wrap:1200px;
  --container-max-width:1200px;
}

/* Kroje hostowane lokalnie — Google Fonts z CDN przekazuje adresy IP
   pacjentów do Google bez podstawy prawnej.
   Pliki .woff2 w: media/templates/site/cassiopeia_extended/fonts/ */
@font-face{font-family:"Jakarta";font-style:normal;font-weight:400;font-display:swap;
  src:url("../fonts/plus-jakarta-sans-400.woff2") format("woff2")}
@font-face{font-family:"Jakarta";font-style:normal;font-weight:600;font-display:swap;
  src:url("../fonts/plus-jakarta-sans-600.woff2") format("woff2")}
@font-face{font-family:"Jakarta";font-style:normal;font-weight:700;font-display:swap;
  src:url("../fonts/plus-jakarta-sans-700.woff2") format("woff2")}
@font-face{font-family:"Jakarta";font-style:normal;font-weight:800;font-display:swap;
  src:url("../fonts/plus-jakarta-sans-800.woff2") format("woff2")}


/* ==========================================================================
   2. TYPOGRAFIA PODSTAWOWA
   ========================================================================== */
html{overflow-x:clip}   /* clip, nie hidden — hidden psuje position:sticky */

body{
  font-family:"Jakarta",-apple-system,"Segoe UI",Roboto,sans-serif;
  font-size:17px;
  line-height:1.65;
  color:var(--nz-ink);
  background:var(--nz-bg);
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{
  color:var(--nz-navy-deep);
  font-weight:600;
  line-height:1.2;
  letter-spacing:-.015em;
}
h1{font-size:clamp(2rem,4vw,3.05rem)}
h2{font-size:clamp(1.5rem,2.4vw,2rem)}
a{color:var(--nz-accent);text-underline-offset:3px}
a:hover{color:var(--nz-accent-dark)}

:focus-visible{outline:3px solid var(--nz-amber);outline-offset:3px;border-radius:4px}


/* ==========================================================================
   3. SZEROKOŚĆ STRONY
   --------------------------------------------------------------------------
   Cassiopeia opakowuje każdą pozycję modułu i obszar komponentu
   w .grid-child o własnej szerokości. Zrównujemy ją z naszą, żeby
   krawędzie treści pokrywały się na całej stronie.
   ========================================================================== */
.nz-wrap{max-width:var(--nz-wrap);margin-inline:auto;padding-inline:24px}

.site-grid > .grid-child{
  max-width:var(--nz-wrap);
  margin-inline:auto;
  width:100%;
  padding-inline:24px;
}
/* pozycje, w których szerokością steruje nasz .nz-wrap */
.site-grid > .container-top-a,
.site-grid > .container-bottom-a,
.site-grid > .container-bottom-b{padding-inline:0}

.container-banner.full-width{max-width:none;padding:0;margin:0;width:100%}
.container-component{padding-bottom:72px}

/* Sekcje wyłamujące się na pełną szerokość okna.
   UWAGA: left/right + ujemny margines zamiast calc(50% - 50vw) —
   nie zależy od szerokości rodzica, więc działa w każdym kontenerze. */
.nz-section,
.nz-tasks,
.nz-phead{
  position:relative;
  left:50%;
  right:50%;
  width:100vw;
  max-width:100vw;
  margin-left:-50vw;
  margin-right:-50vw;
  padding-inline:0;
}
.nz-section > .nz-wrap,
.nz-tasks > .nz-wrap,
.nz-phead > .nz-wrap{
  max-width:var(--nz-wrap);
  margin-inline:auto;
  padding-inline:24px;
}


/* ==========================================================================
   4. NAGŁÓWEK — SZEROKI EKRAN
   --------------------------------------------------------------------------
   Cassiopeia układa .container-header jako siatkę, w której każdy
   .grid-child zajmuje osobny wiersz. Przełączamy na flex.
   ========================================================================== */
.container-header{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:0 32px;
  padding-block:20px;
  padding-inline:max(24px, calc((100% - 1200px) / 2));
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--nz-line);
  position:sticky;
  top:0;
  z-index:50;
  overflow:visible;
  color:var(--nz-ink);
}
@media (min-width:1500px){
  .container-header{padding-inline:max(24px, calc((100% - 1360px) / 2))}
}
.container-header a{color:var(--nz-ink)}

/* biblioteka ikon SVG — poza układem, ale w drzewie renderowania,
   żeby odwołania <use href="#nz-…"> działały pewnie */
.container-header > .container-below-top{
  position:absolute;
  width:1px;height:1px;
  overflow:hidden;
  clip-path:inset(50%);
  padding:0;margin:0;
}

/* logo — jedyny .grid-child bez własnej klasy */
.container-header > .grid-child:not(.container-below-top):not(.container-nav){
  flex:0 0 auto;
  width:auto;
  min-width:0;
  max-width:none;
  display:block;
  margin:0;
  padding:0;
}
.container-header .navbar-brand{margin:0;padding:0}
.container-header .brand-logo{display:block}
.container-header .brand-logo img{height:64px;width:auto}

/* menu + prawa strona */
.container-header > .container-nav{
  flex:1 1 0%;
  display:flex;
  flex-wrap:nowrap;
  align-items:center;
  gap:20px;
  width:auto;
  min-width:0;
  max-width:none;
  margin:0;
  padding:0;
}
.container-header .container-search{
  margin-left:auto;
  flex:0 0 auto;
  width:auto;
  max-width:none;
  padding:0;
}
.container-header .container-search > div{gap:10px}

/* --- menu główne --- */
.container-header ul.mod-menu{
  display:flex;
  align-items:center;
  flex-wrap:nowrap;
  flex-shrink:1;
  min-width:0;
  gap:16px;
  list-style:none;
  margin:0;
  padding:0;
  font-size:.92rem;
  font-weight:600;
}
.container-header ul.mod-menu > li{
  position:relative;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:0 4px;
}
/* „Home" zabrane z paska — do strony głównej prowadzi logo */
.container-header ul.mod-menu > li.default{display:none}

.container-header ul.mod-menu > li > a{
  display:inline-block;
  color:var(--nz-ink);
  text-decoration:none;
  padding:5px 0;
  white-space:nowrap;
  position:relative;
}
.container-header ul.mod-menu > li > a::after{
  content:"";
  position:absolute;left:0;right:0;bottom:-3px;height:2.5px;
  background:var(--nz-accent);border-radius:2px;
  transform:scaleX(0);transform-origin:left;transition:transform .2s;
}
.container-header ul.mod-menu > li > a:hover::after,
.container-header ul.mod-menu > li.current > a::after{transform:scaleX(1)}
.container-header ul.mod-menu > li.current > a{color:var(--nz-accent-dark)}

/* --- podmenu: stabilne przy przechodzeniu kursorem --- */
@media (min-width:1041px){
  .container-header ul.mod-menu ul,
  .container-header ul.mod-menu .mod-menu__sub{
    display:block;
    position:absolute;
    top:100%;
    left:0;
    margin-top:12px;
    min-width:262px;
    z-index:60;
    background:#fff;
    border:1px solid var(--nz-line);
    border-radius:var(--nz-r);
    box-shadow:var(--nz-shadow-h);
    padding:8px;
    list-style:none;

    visibility:hidden;
    opacity:0;
    transform:translateY(-6px);
    /* zwłoka 0,3 s przy zamykaniu — kursor ma czas dojść do listy */
    transition:opacity .14s ease, transform .14s ease, visibility 0s linear .3s;
  }
  .container-header ul.mod-menu > li:hover > ul,
  .container-header ul.mod-menu > li:focus-within > ul,
  .container-header ul.mod-menu > li:hover > .mod-menu__sub,
  .container-header ul.mod-menu > li:focus-within > .mod-menu__sub{
    visibility:visible;opacity:1;transform:none;transition-delay:0s;
  }
  /* niewidzialny mostek przykrywający szczelinę 12 px */
  .container-header ul.mod-menu > li > ul::before,
  .container-header ul.mod-menu > li > .mod-menu__sub::before{
    content:"";position:absolute;left:0;right:0;top:-14px;height:14px;
  }
  /* dwie ostatnie pozycje otwierają listę w lewo */
  .container-header ul.mod-menu > li:nth-last-child(-n+2) > ul,
  .container-header ul.mod-menu > li:nth-last-child(-n+2) > .mod-menu__sub{
    left:auto;right:0;
  }
}

/* kolor w podmenu — Cassiopeia zakłada ciemny nagłówek i ustawia biel;
   !important wyłącznie na kolorze */
.container-header ul.mod-menu ul a,
.container-header ul.mod-menu ul a:link,
.container-header ul.mod-menu ul a:visited,
.container-header ul.mod-menu .mod-menu__sub a{
  display:block;
  border-radius:8px;
  padding:8px 12px;
  font-weight:500;
  color:var(--nz-ink) !important;
  text-decoration:none;
}
.container-header ul.mod-menu ul a:hover,
.container-header ul.mod-menu ul a:focus{
  background:var(--nz-accent-soft);
  color:var(--nz-accent-dark) !important;
}
.container-header ul.mod-menu ul li.current > a{
  color:var(--nz-accent-dark) !important;font-weight:600;
}

/* przyciski w nagłówku */
.container-header .nz-btn,
.container-header .nz-btn:hover{color:#fff}
.container-header .nz-btn{padding:12px 20px;font-size:.93rem}
.container-header .nz-pill{color:var(--nz-navy);padding:10px 16px;font-size:.9rem}
.container-header .nz-pill:hover{color:var(--nz-accent-dark)}

/* listwa oddzielająca nagłówek od hero (zastąpiła pas NFZ) */
.container-banner::before{
  content:"";
  display:block;
  height:10px;
  background:var(--nz-bg-soft);
  border-bottom:1px solid var(--nz-line);
}


/* ==========================================================================
   5. NAGŁÓWEK — TELEFON I MENU WYSUWANE
   Przyciski dokłada skrypt z modułu „Menu mobilne".
   ========================================================================== */
.nz-burger,
.nz-telbtn{display:none}

@media (max-width:1040px){
  .container-header{
    flex-wrap:nowrap;
    gap:10px;
    padding-inline:18px;
    padding-block:10px;
  }
  .container-header > .grid-child:not(.container-below-top):not(.container-nav){
    margin-right:auto;
  }
  .container-header .brand-logo img{height:48px}

  .nz-telbtn{
    display:grid;place-items:center;
    width:46px;height:46px;flex:0 0 auto;
    border:1.5px solid var(--nz-line);border-radius:13px;
    background:#fff;color:var(--nz-navy);text-decoration:none;
  }
  .nz-telbtn .nz-i{width:21px;height:21px}
  .nz-telbtn:active{background:var(--nz-accent-soft)}

  .nz-burger{
    display:flex;flex-direction:column;justify-content:center;gap:5px;
    width:46px;height:46px;flex:0 0 auto;padding:0 11px;
    background:#fff;border:1.5px solid var(--nz-line);border-radius:13px;cursor:pointer;
  }
  .nz-burger span{
    display:block;height:2px;background:var(--nz-navy);
    border-radius:2px;transition:transform .2s,opacity .2s;
  }
  body.nz-nav-open .nz-burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  body.nz-nav-open .nz-burger span:nth-child(2){opacity:0}
  body.nz-nav-open .nz-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

  /* panel */
  .container-header > .container-nav{
    position:fixed;
    left:0;right:0;
    top:var(--nz-head-h,68px);
    max-height:calc(100dvh - var(--nz-head-h,68px));
    overflow-y:auto;
    display:block;
    padding:14px 20px 32px;
    background:#fff;
    border-top:1px solid var(--nz-line);
    opacity:0;visibility:hidden;transform:translateY(-10px);
    transition:opacity .18s ease,transform .18s ease,visibility .18s;
    z-index:45;
  }
  body.nz-nav-open .container-header > .container-nav{
    opacity:1;visibility:visible;transform:none;
    /* cień o wielkim rozproszeniu zastępuje osobny element nakładki */
    box-shadow:0 20px 40px rgba(16,31,77,.12), 0 0 0 100vh rgba(16,31,77,.38);
  }
  body.nz-nav-open{overflow:hidden}

  .container-header ul.mod-menu{display:block;gap:0;font-size:1.04rem}
  .container-header ul.mod-menu > li{
    display:block;border-bottom:1px solid var(--nz-line);
  }
  .container-header ul.mod-menu > li:last-child{border-bottom:0}
  .container-header ul.mod-menu > li > a{
    display:block;padding:14px 2px;white-space:normal;
  }
  .container-header ul.mod-menu > li > a::after{display:none}

  /* podmenu rozwinięte na stałe — akordeon dokłada kliknięć bez zysku */
  .container-header ul.mod-menu ul{
    position:static;display:block;
    min-width:0;margin:0 0 10px;padding:2px 0 2px 14px;
    background:none;border:0;border-left:2px solid var(--nz-accent-soft);
    border-radius:0;box-shadow:none;
    visibility:visible;opacity:1;transform:none;
  }
  .container-header ul.mod-menu ul a{
    padding:11px 8px;font-size:.95rem;
    color:var(--nz-muted) !important;background:none;
  }
  .container-header ul.mod-menu ul a:hover{background:none;color:var(--nz-accent-dark) !important}

  .container-header .container-search{margin:22px 0 0;display:block;width:auto}
  .container-header .container-search > div{
    display:flex !important;flex-direction:column;gap:10px;
  }
  .container-header .nz-btn,
  .container-header .nz-pill{
    display:flex;justify-content:center;width:100%;
    padding-block:15px;font-size:1rem;
  }
}


/* ==========================================================================
   6. KOLORY DZIAŁÓW
   Przypisane po Itemid, który Joomla dodaje do <body>.
   Najniższy kontrast na bieli: 4,99:1 (próg WCAG AA — 4,5:1).
   ========================================================================== */
body{
  --nz-sek:var(--nz-accent);
  --nz-sek-dark:var(--nz-accent-dark);
  --nz-sek-soft:var(--nz-accent-soft);
}
body.itemid-106{--nz-sek:#0E7A84;--nz-sek-dark:#0A5F67;--nz-sek-soft:#E3F3F4}  /* Diagnostyka */
body.itemid-107{--nz-sek:#7A4B96;--nz-sek-dark:#5F3A75;--nz-sek-soft:#F1EAF6}  /* Zabiegi */
body.itemid-108{--nz-sek:#2F7D5B;--nz-sek-dark:#25644A;--nz-sek-soft:#E9F4EF}  /* Profilaktyka */
body.itemid-109{--nz-sek:#8A590F;--nz-sek-dark:#6E470C;--nz-sek-soft:#FBF3E6}  /* Badania przesiewowe */
body.itemid-110{--nz-sek:#A03C6B;--nz-sek-dark:#812F55;--nz-sek-soft:#FAEBF2}  /* Opieka domowa */
body.itemid-111,body.itemid-112,body.itemid-113,body.itemid-114,
body.itemid-115,body.itemid-116,body.itemid-117,
body.itemid-119,body.itemid-120,body.itemid-121,body.itemid-122,
body.itemid-123,body.itemid-124,body.itemid-126,body.itemid-127{
  --nz-sek:#41567A;--nz-sek-dark:#334361;--nz-sek-soft:#ECEFF5;               /* Dla pacjenta, placówki */
}


/* ==========================================================================
   7. ELEMENTY WSPÓLNE
   ========================================================================== */
.nz-i{
  width:19px;height:19px;flex-shrink:0;
  stroke:currentColor;fill:none;
  stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;
}

.nz-eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:.74rem;font-weight:700;letter-spacing:.13em;
  text-transform:uppercase;color:var(--nz-sek);
}
.nz-eyebrow::before{content:"";width:18px;height:2px;background:currentColor;border-radius:2px}

.nz-lead{color:var(--nz-muted);font-size:1.06rem;margin:0}
.nz-shead{max-width:56ch;margin-bottom:34px}
.nz-shead h2{margin:14px 0 12px}

.nz-btn{
  display:inline-flex;align-items:center;gap:9px;
  background:var(--nz-accent);color:#fff;
  font-weight:600;font-size:.97rem;
  padding:14px 26px;border-radius:100px;
  text-decoration:none;border:2px solid var(--nz-accent);
  transition:.18s;white-space:nowrap;
}
.nz-btn:hover{background:var(--nz-accent-dark);border-color:var(--nz-accent-dark);color:#fff;transform:translateY(-1px)}
.nz-btn--ghost{background:#fff;color:var(--nz-navy);border-color:var(--nz-line)}
.nz-btn--ghost:hover{background:var(--nz-navy-soft);border-color:var(--nz-navy-soft);color:var(--nz-navy);transform:none}
.nz-btn--onnavy{background:#fff;color:var(--nz-navy-deep);border-color:#fff}
.nz-btn--onnavy:hover{background:var(--nz-accent-soft);border-color:var(--nz-accent-soft);color:var(--nz-navy-deep)}

.nz-pill{
  display:inline-flex;align-items:center;gap:9px;
  border:1.5px solid var(--nz-line);border-radius:100px;
  padding:11px 20px;font-weight:600;font-size:.95rem;
  color:var(--nz-navy);text-decoration:none;background:#fff;
}
.nz-pill:hover{border-color:var(--nz-accent);color:var(--nz-accent-dark)}

.nz-section{padding-block:82px}
.nz-section--soft{background:var(--nz-bg-soft)}


/* ==========================================================================
   8. STRONA GŁÓWNA — HERO
   Struktura modułu: .nz-hero__grid > .nz-hero__kol + .nz-photo
   ========================================================================== */
.nz-hero{padding-block:0}
.nz-hero > .nz-wrap{max-width:none;padding-inline:0}

.nz-photo img{width:100%;height:auto;max-width:100%;object-fit:contain;mix-blend-mode:multiply}

.nz-hero__where{
  margin:16px 0 0;font-size:.9rem;color:var(--nz-muted);max-width:52ch;
  padding-left:14px;border-left:3px solid var(--nz-accent-soft);
}

.nz-hero__dzialy{
  display:flex;flex-wrap:wrap;align-items:center;gap:4px 0;
  margin:24px 0 0;padding-top:18px;
  border-top:1px solid var(--nz-line);
  font-size:.83rem;font-weight:600;letter-spacing:.02em;color:var(--nz-muted);
}
.nz-hero__dzialy > * + *::before{content:"·";margin:0 12px;color:var(--nz-line);font-weight:400}
.nz-hero__dzialy a{
  color:var(--nz-muted);text-decoration:none;
  border-bottom:1px solid transparent;padding-bottom:1px;
  transition:color .15s,border-color .15s;
}
.nz-hero__dzialy a:hover{color:var(--nz-accent-dark);border-bottom-color:var(--nz-accent)}
.nz-hero__dzialy--fakty{letter-spacing:.04em}

.nz-hero__actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}

.nz-hero__adres{
  display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 18px;
  font-size:.9rem;color:var(--nz-muted);
}
.nz-hero__adres b{color:var(--nz-navy-deep);font-weight:600}
.nz-hero__adres a{
  font-weight:700;font-size:1.02rem;color:var(--nz-accent-dark);
  text-decoration:none;margin-left:auto;white-space:nowrap;
}

@media (min-width:1041px){
  .nz-hero__grid{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);
    align-items:center;
    gap:0 40px;
  }
  .nz-hero__grid > .nz-hero__kol{
    display:flex;flex-direction:column;
    padding:56px 8px 56px max(24px, calc((100vw - var(--nz-wrap)) / 2));
  }
  .nz-hero__grid > .nz-photo{align-self:center;padding:0}
  .nz-hero__kol > .nz-hero__reszta{margin-top:26px}
  .nz-hero__kol > .nz-hero__adres{
    padding-top:20px;margin-top:28px;
    border-top:1px solid var(--nz-line);
  }
}

@media (max-width:1040px){
  .nz-hero__grid{display:flex;flex-direction:column;gap:0}
  .nz-hero__kol{display:contents}
  .nz-hero__intro { order:1; padding:34px 20px 0 }
  .nz-photo       { order:2; padding:14px 12px 6px }
  .nz-hero__reszta{ order:3; padding:6px 20px 0 }
  .nz-hero__adres {
    order:4;margin:26px 20px 0;padding:18px 0 0;
    border-top:1px solid var(--nz-line);
  }
  .nz-hero__intro h1{margin-top:12px}
  .nz-hero__adres a{margin-left:0;width:100%}
  .nz-hero__dzialy--fakty{display:none}   /* dekoracja, nie nawigacja */
  .nz-hero__actions .nz-btn{flex:1 1 100%;justify-content:center}
}
@media (max-width:580px){
  .nz-hero__intro { padding:26px 18px 0 }
  .nz-hero__reszta{ padding:6px 18px 0 }
  .nz-hero__adres { margin:22px 18px 0 }
  .nz-photo       { padding:10px 6px 4px }
  .nz-hero__dzialy{font-size:.79rem}
  .nz-hero__dzialy > * + *::before{margin:0 9px}
}


/* ==========================================================================
   9. STRONA GŁÓWNA — POZOSTAŁE SEKCJE
   ========================================================================== */

/* --- cztery zadania --- */
.nz-tasks{padding-block:56px 8px}
.nz-tasks__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.nz-task{
  background:#fff;border:1px solid var(--nz-line);border-radius:var(--nz-r);
  padding:24px 22px 22px;text-decoration:none;color:inherit;
  display:flex;flex-direction:column;gap:9px;
  transition:.18s;box-shadow:var(--nz-shadow);
}
.nz-task:hover{box-shadow:var(--nz-shadow-h);transform:translateY(-3px);border-color:var(--nz-accent-soft);color:inherit}
.nz-task .nz-ic{
  width:46px;height:46px;border-radius:13px;
  background:var(--nz-accent-soft);color:var(--nz-accent-dark);
  display:grid;place-items:center;margin-bottom:5px;
}
.nz-task .nz-ic .nz-i{width:23px;height:23px}
.nz-task h3{font-size:1.08rem;margin:0}
.nz-task p{font-size:.87rem;color:var(--nz-muted);line-height:1.5;margin:0}
.nz-task__go{
  margin-top:auto;padding-top:12px;font-size:.86rem;font-weight:700;
  color:var(--nz-accent-dark);display:flex;align-items:center;gap:7px;
}

/* --- O przychodni ---
   minmax(0,…) jest konieczne: „1fr" to „minmax(auto,1fr)", a „auto"
   jako minimum bierze naturalną szerokość obrazka i rozpycha kolumnę. */
.nz-about{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);
  gap:56px;align-items:center;
}
.nz-about > *{min-width:0}
.nz-about img{max-width:100%;height:auto}
/* wariant bez zdjęcia — jedna kolumna zamiast pustej połowy strony */
.nz-about--bez-foto{grid-template-columns:minmax(0,1fr);max-width:74ch}

.nz-checks{list-style:none;padding:0;margin:22px 0 28px;display:grid;gap:13px}
.nz-checks li{display:flex;gap:12px;align-items:flex-start;font-size:.97rem}
.nz-checks .nz-i{color:var(--nz-accent);flex-shrink:0;margin-top:3px}

/* --- karty zakresu świadczeń --- */
.nz-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.nz-card{
  background:#fff;border:1px solid var(--nz-line);border-radius:var(--nz-r);
  padding:26px 24px;text-decoration:none;color:inherit;
  display:flex;flex-direction:column;gap:9px;
  transition:.18s;box-shadow:var(--nz-shadow);
}
.nz-card:hover{box-shadow:var(--nz-shadow-h);transform:translateY(-3px);color:inherit}
.nz-card__lab{font-size:.7rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--nz-accent)}
.nz-card h3{font-size:1.13rem;margin:0}
.nz-card p{font-size:.89rem;color:var(--nz-muted);line-height:1.55;margin:0}
.nz-card__go{
  margin-top:auto;padding-top:14px;font-size:.86rem;font-weight:700;
  color:var(--nz-navy);display:flex;align-items:center;gap:7px;
}

/* --- pracownia endoskopowa --- */
.nz-endo{background:var(--nz-navy-deep);color:#D5DEF3;border-radius:var(--nz-r-lg);overflow:hidden}
.nz-endo__in{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);
  gap:52px;padding:56px 48px;align-items:center;
}
.nz-endo__in > *{min-width:0}
.nz-endo .nz-eyebrow{color:#7FCBAA}
.nz-endo h2{color:#fff;margin:14px 0}
.nz-endo p{color:#AFBEDD;margin:0}
.nz-endo ul{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.nz-endo li{
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);
  border-radius:11px;padding:15px 18px;
  display:flex;justify-content:space-between;gap:16px;
  font-size:.94rem;color:#fff;font-weight:500;
}
.nz-endo li span{font-size:.81rem;color:#9FB2D6;font-weight:400;text-align:right}

/* --- aktualności (mod_articles_category, klasa nz-news) --- */
.nz-news .mod-articles{
  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
  list-style:none;padding:0;margin:0;
}
.nz-news .mod-articles__item,
.nz-news .mod-articles li{
  background:#fff;border:1px solid var(--nz-line);border-radius:var(--nz-r);
  padding:24px;box-shadow:var(--nz-shadow);list-style:none;
}
.nz-news time,
.nz-news .mod-articles__date{font-size:.78rem;font-weight:700;color:var(--nz-accent);letter-spacing:.04em}
.nz-news h3,
.nz-news .mod-articles__title{font-size:1.06rem;margin:9px 0 8px}
.nz-news a{color:var(--nz-navy-deep);text-decoration:none}
.nz-news a:hover{color:var(--nz-accent-dark)}
.nz-news p{font-size:.88rem;color:var(--nz-muted);margin:0}

/* --- nocna i świąteczna opieka --- */
.nz-nisoz{
  background:var(--nz-amber-soft);border:1px solid #F0E2C9;border-radius:var(--nz-r);
  padding:18px 24px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;
  font-size:.92rem;color:var(--nz-ink);margin-top:34px;
}
.nz-nisoz b{color:var(--nz-amber)}
.nz-nisoz__em{margin-left:auto;font-weight:700}


/* ==========================================================================
   10. STOPKA
   ========================================================================== */
.container-footer{background:var(--nz-bg-soft);border-top:1px solid var(--nz-line);color:var(--nz-ink)}
.container-footer a{color:var(--nz-ink);text-decoration:none}
.container-footer a:hover{color:var(--nz-accent-dark);text-decoration:underline}

.nz-fgrid{display:grid;grid-template-columns:1.45fr 1fr 1fr 1fr;gap:44px}
.nz-fgrid h4{font-size:.99rem;margin:0 0 15px}
.nz-fgrid ul{list-style:none;padding:0;margin:0;font-size:.91rem}
.nz-fgrid li{padding:4px 0}
.nz-hours{display:grid;gap:11px}
.nz-hours .nz-p{background:#fff;border:1px solid var(--nz-line);border-radius:11px;padding:13px 16px}
.nz-hours b{display:block;font-size:.94rem;color:var(--nz-navy-deep)}
.nz-hours small{display:block;font-size:.84rem;color:var(--nz-muted);margin:2px 0 5px}
.nz-hours a{font-weight:700;color:var(--nz-accent-dark);font-size:1rem;text-decoration:none}
.nz-addr{font-style:normal;font-size:.89rem;color:var(--nz-muted);line-height:1.7;margin-top:18px}
.nz-footnfz{
  margin-top:44px;padding-top:26px;border-top:1px solid var(--nz-line);
  display:flex;align-items:center;gap:20px;flex-wrap:wrap;
}
.nz-footnfz img{height:36px;width:auto}
.nz-footnfz p{font-size:.84rem;color:var(--nz-muted);max-width:62ch;margin:0}
.nz-legal{
  margin-top:20px;border-top:1px solid var(--nz-line);padding-block:18px 30px;
  display:flex;flex-wrap:wrap;gap:8px 22px;font-size:.81rem;color:var(--nz-muted);
}
.nz-legal a{color:var(--nz-muted)}


/* ==========================================================================
   11. PODSTRONY — OKRUSZKI I PAS NAGŁÓWKOWY
   Okruszki pochodzą z nadpisania mod_breadcrumbs (klasa .nz-okruszki).
   ========================================================================== */
.container-breadcrumbs{background:none;border:0;padding:0;margin:0;position:relative;z-index:2}
.nz-okruszki{
  display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;
  font-size:.83rem;color:var(--nz-muted);padding:26px 0 0;
}
.nz-okruszki a{color:var(--nz-muted);text-decoration:none}
.nz-okruszki a:hover{color:var(--nz-sek-dark);text-decoration:underline}
.nz-okruszki [aria-current]{color:var(--nz-ink);font-weight:600}
.nz-okruszki__sep{color:var(--nz-line);font-size:1rem;line-height:1}

.nz-phead{
  margin-block:0 48px;
  padding-block:4px 44px;
  background:
    radial-gradient(760px 300px at 88% -30%, var(--nz-sek-soft) 0%, transparent 65%),
    var(--nz-bg-soft);
  border-bottom:1px solid var(--nz-line);
  overflow:hidden;
}
/* znak z logo w tle */
.nz-phead::after{
  content:"";position:absolute;right:2%;top:-60px;
  width:230px;height:300px;
  background:currentColor;color:var(--nz-sek);
  opacity:.07;pointer-events:none;
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.2' stroke-linecap='round'><path d='M12 2v20'/><path d='M12 5c-4 0-4 4 0 4s4 4 0 4-4 4 0 4 4 4 0 4'/></svg>") no-repeat center/contain;
          mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.2' stroke-linecap='round'><path d='M12 2v20'/><path d='M12 5c-4 0-4 4 0 4s4 4 0 4-4 4 0 4 4 4 0 4'/></svg>") no-repeat center/contain;
}
.nz-phead > .nz-wrap{position:relative;z-index:2}

.nz-phead__grid{
  display:grid;grid-template-columns:minmax(0,1fr) auto;
  gap:40px;align-items:start;padding-top:18px;
}
.nz-phead--bez-boxu .nz-phead__grid{grid-template-columns:minmax(0,1fr)}

.nz-phead__eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-size:.73rem;font-weight:700;letter-spacing:.13em;
  text-transform:uppercase;color:var(--nz-sek);margin-bottom:14px;
}
.nz-phead__ic{
  width:30px;height:30px;border-radius:9px;
  background:var(--nz-sek-soft);color:var(--nz-sek-dark);
  display:grid;place-items:center;flex-shrink:0;
}
.nz-phead__ic .nz-i{width:16px;height:16px}
.nz-phead__tekst h1{font-size:clamp(1.8rem,3.2vw,2.6rem);max-width:20ch;margin:0}
.nz-phead__tekst p{margin:16px 0 0;color:var(--nz-muted);max-width:64ch;font-size:1.02rem}
.nz-phead__tekst p + p{margin-top:10px}
.nz-phead__tekst a{color:var(--nz-sek-dark)}

/* karta kontaktowa */
.nz-pbox{
  background:#fff;border:1px solid var(--nz-line);border-radius:var(--nz-r);
  box-shadow:var(--nz-shadow);padding:20px 22px;min-width:272px;max-width:300px;
}
.nz-pbox h2{
  font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--nz-muted);font-weight:700;margin:0 0 12px;
}
.nz-pbox__row{display:flex;gap:10px;align-items:flex-start;padding:7px 0;font-size:.9rem;color:var(--nz-muted)}
.nz-pbox__row .nz-i{color:var(--nz-sek);margin-top:3px}
.nz-pbox__row span{min-width:0}
.nz-pbox__row b{display:block;color:var(--nz-navy-deep);font-weight:600}
.nz-pbox__tel{font-size:1.12rem;font-weight:700;color:var(--nz-sek-dark);text-decoration:none}
.nz-pbox__btn{
  display:flex;justify-content:center;margin-top:14px;
  background:var(--nz-sek);font-weight:600;font-size:.92rem;
  padding:12px 18px;border-radius:100px;
  color:#fff !important;text-decoration:none;
}
.nz-pbox__btn:hover{background:var(--nz-sek-dark)}

/* opis kategorii — bez własnego ograniczenia szerokości;
   miara wiersza siedzi na akapitach */
.category-desc,
.com-content-category-blog__description,
.com-content-category__description{max-width:none;margin-bottom:0;font-size:1.03rem;color:var(--nz-muted)}
.category-desc > p,
.category-desc > ul,
.category-desc > ol{max-width:74ch;margin:0 0 14px}
.category-desc h3{font-size:1.12rem;color:var(--nz-navy-deep);margin:26px 0 10px}
.category-desc li{margin-bottom:6px}
.category-desc small{font-size:.86rem;opacity:.85}
.category-desc a{color:var(--nz-sek-dark)}

/* nagłówek strony Joomli — zbędny, gdy cały nagłówek jest w opisie */
.nz-phead ~ .page-header{display:none}

/* nagłówek dla stron bez pasa (artykuły, wyniki) */
.page-header{position:relative;margin:10px 0 34px;padding-bottom:26px;border-bottom:1px solid var(--nz-line)}
.page-header::before{
  content:"";display:block;width:34px;height:3px;
  background:var(--nz-sek);border-radius:2px;margin-bottom:16px;
}
.page-header h1,.page-header h2{font-size:clamp(1.7rem,3vw,2.5rem);margin:0}

@media (max-width:900px){
  .nz-phead__grid{grid-template-columns:minmax(0,1fr);gap:26px;padding-top:12px}
  .nz-pbox{max-width:none;min-width:0}
  .nz-phead::after{display:none}
  .nz-phead{padding-bottom:32px;margin-bottom:34px}
  .nz-phead__tekst h1{max-width:none}
}


/* ==========================================================================
   12. PODSTRONY — LISTA ARTYKUŁÓW
   Współpracuje z nadpisaniem com_content/category/default_articles.php
   ========================================================================== */
.nz-lista{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
  gap:18px;margin-top:8px;
}
.nz-lista__karta{
  position:relative;overflow:hidden;
  display:flex;flex-direction:column;gap:8px;
  padding:24px 22px;background:#fff;
  border:1px solid var(--nz-line);border-radius:var(--nz-r);
  box-shadow:var(--nz-shadow);text-decoration:none;color:inherit;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.nz-lista__karta::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:3px;
  background:var(--nz-sek);transform:scaleY(0);transform-origin:top;
  transition:transform .2s ease;
}
.nz-lista__karta:hover{
  transform:translateY(-3px);box-shadow:var(--nz-shadow-h);
  border-color:var(--nz-sek-soft);color:inherit;
}
.nz-lista__karta:hover::before{transform:scaleY(1)}
.nz-lista__ic{
  width:44px;height:44px;border-radius:12px;
  background:var(--nz-sek-soft);color:var(--nz-sek-dark);
  display:grid;place-items:center;margin-bottom:6px;flex-shrink:0;
}
.nz-lista__ic .nz-i{width:22px;height:22px}
.nz-lista__karta--bez-ikony h3{padding-top:8px}
.nz-lista__karta h3{font-size:1.1rem;margin:0;color:var(--nz-navy-deep);line-height:1.3}
.nz-lista__karta p{margin:0;font-size:.89rem;line-height:1.55;color:var(--nz-muted)}
.nz-lista__go{
  margin-top:auto;padding-top:14px;display:flex;align-items:center;gap:7px;
  font-size:.86rem;font-weight:700;color:var(--nz-sek-dark);
}
.nz-lista__go .nz-i{transition:transform .18s ease}
.nz-lista__karta:hover .nz-lista__go .nz-i{transform:translateX(3px)}

.nz-pusto{
  padding:20px 24px;background:var(--nz-bg-soft);
  border:1px dashed var(--nz-line);border-radius:var(--nz-r);
  color:var(--nz-muted);font-size:.94rem;
}

.nz-strony{margin-top:34px}
.nz-strony .pagination{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:0}
.nz-strony .page-link{
  display:block;padding:8px 14px;border:1px solid var(--nz-line);
  border-radius:9px;text-decoration:none;color:var(--nz-navy);font-size:.9rem;
}
.nz-strony .active .page-link{background:var(--nz-sek);color:#fff;border-color:var(--nz-sek)}

/* podkategorie (strona „Poradnie") */
.com-content-category__children ul,
.categories-list ul{
  list-style:none;padding:0;margin:0;
  display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;
}
.com-content-category__children li,
.categories-list li{
  background:#fff;border:1px solid var(--nz-line);border-radius:var(--nz-r);
  padding:24px 22px;box-shadow:var(--nz-shadow);
}
.com-content-category__children h3 a,
.categories-list h3 a{color:var(--nz-navy-deep);text-decoration:none;font-size:1.1rem}

/* komunikat „brak artykułów" — mniej krzykliwy */
.container-component .alert-info,
.container-component joomla-alert[type="info"]{
  background:var(--nz-bg-soft);border:1px dashed var(--nz-line);
  border-radius:var(--nz-r);color:var(--nz-muted);font-size:.92rem;
  padding:16px 20px;box-shadow:none;
}


/* ==========================================================================
   13. PODSTRONY — POJEDYNCZY ARTYKUŁ
   ========================================================================== */
.com-content-article__body,
.item-page > div:not(.page-header),
.item-page > p,.item-page > ul,.item-page > ol,
.item-page > h2,.item-page > h3,.item-page > h4{max-width:78ch}

.item-page h2{font-size:1.5rem;margin:36px 0 12px}
.item-page h3{font-size:1.22rem;margin:30px 0 10px}
.item-page h4{font-size:1.08rem;margin:26px 0 8px;color:var(--nz-navy)}
.item-page p{margin:0 0 16px}
.item-page ul,.item-page ol{margin:0 0 18px;padding-left:24px}
.item-page li{margin-bottom:7px}
.item-page strong{color:var(--nz-navy-deep)}
.item-page a{color:var(--nz-sek-dark)}
.item-page img{max-width:100%;height:auto;border-radius:var(--nz-r);margin:8px 0 20px}

/* tabele przewijane w poziomie zamiast rozpychania układu */
.item-page table{
  width:100%;border-collapse:collapse;font-size:.93rem;margin:0 0 22px;
  display:block;overflow-x:auto;white-space:nowrap;
}
.item-page table th,.item-page table td{
  border:1px solid var(--nz-line);padding:10px 14px;text-align:left;vertical-align:top;
}
.item-page table th{background:var(--nz-bg-soft);font-weight:600;color:var(--nz-navy-deep)}
@media (min-width:820px){.item-page table{display:table;white-space:normal}}

/* odnośniki do plików */
.item-page a[href$=".pdf"],.item-page a[href$=".PDF"],
.item-page a[href$=".doc"],.item-page a[href$=".docx"]{
  display:inline-block;padding:9px 16px 9px 14px;margin:2px 0;
  background:var(--nz-sek-soft);border-radius:9px;
  font-weight:600;font-size:.92rem;text-decoration:none;
}
.item-page a[href$=".pdf"]::before{content:"PDF  ";font-size:.7rem;letter-spacing:.08em;opacity:.7}


/* ==========================================================================
   14. STRONA BŁĘDU
   ========================================================================== */
.com-error .page-header::after{display:none}
.com-error .alert,.com-error .well{
  background:var(--nz-bg-soft);border:1px solid var(--nz-line);
  border-radius:var(--nz-r);padding:24px 26px;color:var(--nz-ink);
}
.com-error .alert a{color:var(--nz-accent-dark)}


/* ==========================================================================
   15. DOSTĘPNOŚĆ I PUNKTY ŁAMANIA
   ========================================================================== */
@media (max-width:1040px){
  .nz-about,.nz-endo__in{grid-template-columns:minmax(0,1fr);gap:40px}
  .nz-tasks__grid{grid-template-columns:repeat(2,1fr)}
  .nz-endo__in{padding:40px 28px}
  .nz-about--bez-foto{max-width:none}
}
@media (max-width:820px){
  .nz-cards,.nz-news .mod-articles{grid-template-columns:repeat(2,1fr)}
  .nz-fgrid{grid-template-columns:1fr 1fr}
  .nz-section{padding-block:60px}
  .page-header{margin:8px 0 26px;padding-bottom:20px}
  .container-component{padding-bottom:52px}
}
@media (max-width:640px){
  .nz-lista{grid-template-columns:1fr;gap:14px}
  .nz-lista__karta{padding:20px 18px}
}
@media (max-width:580px){
  body{font-size:16.5px}
  .nz-tasks__grid,.nz-cards,.nz-news .mod-articles,.nz-fgrid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important;scroll-behavior:auto!important}
}
.nz-pbox__btn--tel{gap:9px;align-items:center}
.nz-pbox__btn--tel .nz-i{width:18px;height:18px}
/* lista lekarzy — gotowa na dołożenie zdjęć w przyszłości */
.nz-lekarze{list-style:none;padding:0;margin:0 0 22px;display:grid;gap:10px}
.nz-lekarze li{
  display:flex;flex-direction:column;gap:2px;
  padding:14px 18px;background:var(--nz-bg-soft);
  border:1px solid var(--nz-line);border-radius:11px;
}
.nz-lekarze b{color:var(--nz-navy-deep);font-weight:600;font-size:1rem}
.nz-lekarze span{font-size:.87rem;color:var(--nz-muted)}

/* akapit do uzupełnienia — widoczny tylko na dev */
.nz-uzupelnic{
  background:#FFF4CC;border:1px dashed #D9A400;border-radius:8px;
  padding:10px 14px;color:#6B5200;font-size:.9rem;
}
/* --- godziny przyjęć: tabela --- */
.nz-godziny{
  width:auto;
  min-width:min(100%,420px);
  border-collapse:collapse;
  margin:0 0 22px;
  font-size:.95rem;
  display:table;
  white-space:normal;
}
.nz-godziny th,
.nz-godziny td{
  border:0;
  border-bottom:1px solid var(--nz-line);
  padding:11px 18px 11px 0;
  text-align:left;
  vertical-align:top;
}
.nz-godziny tr:last-child th,
.nz-godziny tr:last-child td{border-bottom:0}
.nz-godziny th{
  font-weight:600;
  color:var(--nz-navy-deep);
  background:none;
  white-space:nowrap;
}
.nz-godziny td:first-of-type{
  font-weight:600;
  color:var(--nz-sek-dark);
  white-space:nowrap;
}
.nz-godziny td:last-child{color:var(--nz-muted);font-size:.9rem}

/* --- godziny w jednym zdaniu --- */
.nz-godziny-p{
  display:inline-block;
  padding:11px 18px;
  background:var(--nz-sek-soft);
  border-radius:10px;
  font-weight:600;
  color:var(--nz-navy-deep);
  margin:0 0 22px;
}

/* --- ramka informacyjna (badania, których nie wykonujemy) --- */
.nz-info{
  padding:16px 20px;
  background:var(--nz-bg-soft);
  border-left:4px solid var(--nz-sek);
  border-radius:0 var(--nz-r) var(--nz-r) 0;
  margin:0 0 26px;
  color:var(--nz-ink);
}

.nz-kontakt{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:20px;
  margin:0 0 44px;
}
.nz-kontakt__karta{
  background:#fff;
  border:1px solid var(--nz-line);
  border-top:4px solid var(--nz-sek);
  border-radius:var(--nz-r);
  box-shadow:var(--nz-shadow);
  padding:24px 22px;
}
.nz-kontakt__karta h2{font-size:1.12rem;margin:0 0 12px}
.nz-kontakt__adres{margin:0 0 10px;color:var(--nz-muted);font-size:.93rem}
.nz-kontakt__tel a{
  font-size:1.28rem;font-weight:700;
  color:var(--nz-sek-dark);text-decoration:none;
}
.nz-kontakt__karta .nz-godziny{margin:14px 0;min-width:0;width:100%;font-size:.88rem}
.nz-kontakt__karta .nz-godziny th{padding-right:12px}
.nz-kontakt__karta p:last-child{margin:0;font-size:.88rem;color:var(--nz-muted)}
/* ── pozycje modułów: jeden moduł pod drugim, nie obok siebie ── */
.container-main-top,
.container-bottom-a,
.container-bottom-b,
.container-top-a{
  display:block;
}

/* ── aktualności: trzy karty w rzędzie ───────────────────────── */
.nz-news,
.nz-news .mod-articles,
.nz-news ul{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
  list-style:none;
  margin:0;
  padding:0;
}
.nz-news li,
.nz-news .mod-articles__item{
  display:flex;
  flex-direction:column;
  gap:8px;
  background:#fff;
  border:1px solid var(--nz-line);
  border-radius:var(--nz-r);
  box-shadow:var(--nz-shadow);
  padding:24px;
  list-style:none;
  transition:transform .18s ease, box-shadow .18s ease;
}
.nz-news li:hover{transform:translateY(-3px);box-shadow:var(--nz-shadow-h)}
.nz-news a{
  color:var(--nz-navy-deep);
  text-decoration:none;
  font-size:1.06rem;
  font-weight:600;
  line-height:1.35;
  order:2;
}
.nz-news a:hover{color:var(--nz-accent-dark)}
.nz-news time,
.nz-news .mod-articles__date{
  order:1;
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.04em;
  color:var(--nz-accent);
}
.nz-news p{
  order:3;
  margin:0;
  font-size:.88rem;
  line-height:1.55;
  color:var(--nz-muted);
}
@media (max-width:900px){
  .nz-news,.nz-news .mod-articles,.nz-news ul{grid-template-columns:1fr}
}

/* ── „O przychodni" bez zdjęcia: jedna kolumna, lista w dwóch ── */
.nz-about--jedna-kolumna .nz-about{grid-template-columns:minmax(0,1fr)}
.nz-about--jedna-kolumna .nz-checks{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px 40px;
}
.nz-about--jedna-kolumna .nz-lead{max-width:74ch}
@media (max-width:820px){
  .nz-about--jedna-kolumna .nz-checks{grid-template-columns:1fr}
}
/* ==========================================================================
   ŁATKA 21 — menu ze strzałkami + karty aktualności
   Dopisać na samym końcu user.css.
   ========================================================================== */
 
 
/* ══════════════════════════════════════════════════════════════════════════
   A. MENU — STRZAŁKI OBOK TYTUŁU, NIE POD NIM
   --------------------------------------------------------------------------
   Po dodaniu podmenu do Diagnostyki i Profilaktyki trzy pozycje dostały
   strzałki. Przy siedmiu pozycjach lista zaczęła się ściskać, a reguła
   flex-wrap:wrap na <li> pozwoliła strzałce zejść do drugiego wiersza.
 
   Blokujemy zawijanie wewnątrz pozycji i zwalniamy miejsce, zmniejszając
   odstępy. Podmenu na szerokim ekranie jest pozycjonowane absolutnie,
   więc zakaz zawijania mu nie przeszkadza.
   ══════════════════════════════════════════════════════════════════════════ */
@media (min-width:1041px){
  .container-header ul.mod-menu{
    gap:13px;
    font-size:.9rem;
  }
  .container-header ul.mod-menu > li{
    display:flex;
    flex-wrap:nowrap;
    flex-shrink:0;
    align-items:center;
    gap:0 3px;
    white-space:nowrap;
  }
  /* element strzałki — cokolwiek Joomla nim jest — nie łamie wiersza */
  .container-header ul.mod-menu > li > *:not(ul):not(.mod-menu__sub){
    flex-shrink:0;
    white-space:nowrap;
  }
  .container-header ul.mod-menu > li > button,
  .container-header ul.mod-menu > li > span[class*="icon"],
  .container-header ul.mod-menu > li > a + *{
    background:none;
    border:0;
    padding:0;
    margin:0;
    line-height:1;
    opacity:.5;
  }
  /* przy bardzo wąskim oknie menu może się jeszcze ścisnąć */
  .container-header > .container-nav{gap:16px}
  .container-header .nz-pill{padding:9px 14px;font-size:.88rem}
  .container-header .nz-btn{padding:11px 18px;font-size:.9rem}
}
@media (min-width:1400px){
  .container-header ul.mod-menu{gap:18px;font-size:.92rem}
}
 
 
/* ══════════════════════════════════════════════════════════════════════════
   B. AKTUALNOŚCI — KARTY ZAMIAST ZLANEGO TEKSTU
   --------------------------------------------------------------------------
   Moduł ma styl „none", który usuwa opakowanie niosące klasę modułu —
   dlatego reguły .nz-news nigdy nie zadziałały. Celujemy w samą listę
   modułu artykułów; to jedyny taki moduł w serwisie.
   ══════════════════════════════════════════════════════════════════════════ */
ul.mod-articles,
ul.mod-articles-category,
.mod-articles > ul{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
  list-style:none;
  margin:0;
  padding:0;
}
 
ul.mod-articles > li,
ul.mod-articles-category > li,
.mod-articles > ul > li{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:9px;
  padding:24px 22px;
  background:#fff;
  border:1px solid var(--nz-line);
  border-radius:var(--nz-r);
  box-shadow:var(--nz-shadow);
  list-style:none;
  overflow:hidden;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
ul.mod-articles > li::before{
  content:"";
  position:absolute;left:0;top:0;bottom:0;width:3px;
  background:var(--nz-accent);
  transform:scaleY(0);transform-origin:top;
  transition:transform .2s ease;
}
ul.mod-articles > li:hover{
  transform:translateY(-3px);
  box-shadow:var(--nz-shadow-h);
  border-color:var(--nz-accent-soft);
}
ul.mod-articles > li:hover::before{transform:scaleY(1)}
 
/* tytuł — pierwszy odnośnik w elemencie listy */
ul.mod-articles > li > a:first-of-type,
ul.mod-articles > li .mod-articles__title a{
  order:2;
  display:block;
  color:var(--nz-navy-deep);
  font-size:1.06rem;
  font-weight:600;
  line-height:1.35;
  text-decoration:none;
}
ul.mod-articles > li > a:first-of-type:hover{color:var(--nz-accent-dark)}
 
/* data — element czasu albo osobny span z klasą */
ul.mod-articles time,
ul.mod-articles .mod-articles__date,
ul.mod-articles .mod-articles-category-date{
  order:1;
  font-size:.76rem;
  font-weight:700;
  letter-spacing:.05em;
  color:var(--nz-accent);
  text-transform:uppercase;
}
 
/* zajawka */
ul.mod-articles p,
ul.mod-articles .mod-articles__introtext,
ul.mod-articles .mod-articles-category-introtext{
  order:3;
  margin:0;
  font-size:.88rem;
  line-height:1.55;
  color:var(--nz-muted);
}
/* elementy, których w karcie nie chcemy */
ul.mod-articles .mod-articles__category,
ul.mod-articles .mod-articles__author,
ul.mod-articles .mod-articles__hits{display:none}
 
@media (max-width:900px){
  ul.mod-articles,
  ul.mod-articles-category,
  .mod-articles > ul{grid-template-columns:1fr;gap:16px}
}
 
 
/* ══════════════════════════════════════════════════════════════════════════
   C. NAGŁÓWEK SEKCJI AKTUALNOŚCI — odstęp od kart
   ══════════════════════════════════════════════════════════════════════════ */
.container-main-top .nz-shead{margin-bottom:26px}

.nz-porownanie{
  width:100%;
  border-collapse:collapse;
  margin:0 0 30px;
  font-size:.93rem;
  display:block;
  overflow-x:auto;
  white-space:nowrap;
}
.nz-porownanie thead th{
  background:var(--nz-sek-soft);
  color:var(--nz-navy-deep);
  font-size:.72rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  font-weight:700;
  text-align:left;
  padding:12px 16px;
  border:0;
}
.nz-porownanie tbody th{
  text-align:left;
  font-weight:600;
  padding:14px 16px;
  border-bottom:1px solid var(--nz-line);
  white-space:nowrap;
}
.nz-porownanie tbody th a{color:var(--nz-sek-dark);text-decoration:none}
.nz-porownanie tbody th a:hover{text-decoration:underline}
.nz-porownanie td{
  padding:14px 16px;
  border-bottom:1px solid var(--nz-line);
  vertical-align:top;
  color:var(--nz-muted);
}
.nz-porownanie td:first-of-type{white-space:nowrap;font-weight:600;color:var(--nz-ink)}
@media (min-width:820px){
  .nz-porownanie{display:table;white-space:normal}
  .nz-porownanie td:last-child{white-space:normal}
}
/* ==========================================================================
   ŁATKA 22 — karty aktualności
   Dopisać na samym końcu user.css.
   --------------------------------------------------------------------------
   Napisana przeciwko rzeczywistemu kodowi modułu:

     <ul class="mod-articlescategory category-module mod-list">
       <li>
         <a class="mod-articles-category-title">…</a>
         <span class="mod-articles-category-date">…</span>
         <p class="mod-articles-category-introtext">…</p>
       </li>

   Klasa listy to „mod-articlescategory" — BEZ łącznika między
   „articles" i „category", choć elementy wewnątrz mają łączniki.
   Poprzednie reguły celowały w „mod-articles" i „mod-articles-category",
   czyli w nazwy, których w kodzie nie ma.

   Ta łatka zastępuje sekcję B z łatki 21 — tamtej nie trzeba usuwać,
   po prostu nic nie robi.
   ========================================================================== */

ul.mod-articlescategory{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
  list-style:none;
  margin:0;
  padding:0;
}

ul.mod-articlescategory > li{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:24px 22px;
  background:#fff;
  border:1px solid var(--nz-line);
  border-radius:var(--nz-r);
  box-shadow:var(--nz-shadow);
  list-style:none;
  overflow:hidden;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

/* pionowy pasek akcentu przy najechaniu — ten sam gest co na kartach poradni */
ul.mod-articlescategory > li::before{
  content:"";
  position:absolute;
  left:0; top:0; bottom:0;
  width:3px;
  background:var(--nz-accent);
  transform:scaleY(0);
  transform-origin:top;
  transition:transform .2s ease;
}
ul.mod-articlescategory > li:hover{
  transform:translateY(-3px);
  box-shadow:var(--nz-shadow-h);
  border-color:var(--nz-accent-soft);
}
ul.mod-articlescategory > li:hover::before{transform:scaleY(1)}

/* --- data: nad tytułem, mimo że w kodzie jest pod nim --- */
.mod-articles-category-date{
  order:1;
  font-size:.76rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--nz-accent);
}

/* --- tytuł --- */
a.mod-articles-category-title{
  order:2;
  display:block;
  color:var(--nz-navy-deep);
  font-size:1.06rem;
  font-weight:600;
  line-height:1.35;
  text-decoration:none;
}
a.mod-articles-category-title:hover{color:var(--nz-accent-dark)}

/* --- zajawka --- */
.mod-articles-category-introtext{
  order:3;
  margin:0;
  font-size:.88rem;
  line-height:1.55;
  color:var(--nz-muted);
}

/* --- pola, których w karcie nie chcemy, gdyby zostały włączone --- */
.mod-articles-category-writtenby,
.mod-articles-category-category,
.mod-articles-category-hits{display:none}

/* --- odstęp nagłówka sekcji od kart --- */
.container-main-top .nz-shead{margin-bottom:26px}

@media (max-width:900px){
  ul.mod-articlescategory{grid-template-columns:1fr;gap:16px}
}

/* ── układ sekcji: tekst po lewej, schemat po prawej ── */
.nz-endo__in{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);
  gap:48px;
  padding:56px 48px;
  align-items:center;
}
.nz-endo__in > *{min-width:0}
.nz-endo__tekst h2{color:#fff;margin:14px 0}
.nz-endo__tekst p{color:#AFBEDD;margin:0}
.nz-endo__akcje{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:28px !important;
}
.nz-endo__btn2{
  background:transparent;
  color:#fff;
  border-color:rgba(255,255,255,.45);
}
.nz-endo__btn2:hover{
  background:rgba(255,255,255,.1);
  border-color:rgba(255,255,255,.7);
  color:#fff;
}
.nz-endo__dopisek{
  margin-top:26px !important;
  padding-top:20px;
  border-top:1px solid rgba(255,255,255,.15);
  font-size:.88rem;
  color:#9FB2D6 !important;
}
.nz-endo__dopisek a{color:#B8D4F5;text-decoration:underline;text-underline-offset:3px}
.nz-endo__dopisek a:hover{color:#fff}
 
/* ── schemat ── */
.nz-endo__schemat svg{width:100%;height:auto;display:block}
 
.nz-schem__strefa rect{fill:#fff;opacity:.05}
.nz-schem__strefa--gastro rect{fill:#7FCBAA;opacity:.10}
.nz-schem__strefa--kolo rect{fill:#7FA8E8;opacity:.10}
 
.nz-schem__organ path{
  fill:none;stroke:#fff;stroke-width:2.6;
  stroke-linecap:round;stroke-linejoin:round;opacity:.85;
}
.nz-schem__cienkie path{stroke-width:1.8;opacity:.3}
.nz-schem__swiatlo path{
  fill:none;stroke:#fff;stroke-width:1.2;opacity:.22;stroke-dasharray:5 7;
}
 
/* tor wziernika */
.nz-schem__tor path{fill:none;stroke-width:2.6;stroke-linecap:round;stroke-dasharray:10 8}
.nz-schem__tor circle{stroke-width:2.6;fill:none}
.nz-schem__tor--gastro path,.nz-schem__tor--gastro circle{stroke:#7FCBAA}
.nz-schem__tor--kolo   path,.nz-schem__tor--kolo   circle{stroke:#8FB6F0}
 
.nz-schem__linia path{stroke:#fff;opacity:.28;stroke-width:1.4}
 
/* etykiety — klikalne */
.nz-schem__etykieta{cursor:pointer}
.nz-schem__etykieta text{
  fill:#fff;
  font-family:inherit;
  font-size:16px;
  font-weight:700;
  letter-spacing:1.8px;
}
.nz-schem__etykieta .nz-schem__male{
  fill:#AFC3E8;font-size:13.5px;font-weight:400;letter-spacing:0;
}
.nz-schem__etykieta--lewo text{text-anchor:end}
.nz-schem__etykieta:hover text{fill:#fff}
.nz-schem__etykieta:hover .nz-schem__male{fill:#DCE8FA}
 
/* podświetlenie właściwej strefy przy najechaniu na etykietę */
.nz-endo__schemat svg:has(.nz-schem__etykieta:hover) .nz-schem__strefa rect{opacity:.04}
.nz-endo__schemat svg:has(a[href*="gastroskopia"]:hover) .nz-schem__strefa--gastro rect{opacity:.18}
.nz-endo__schemat svg:has(a[href*="kolonoskopia"]:hover) .nz-schem__strefa--kolo rect{opacity:.18}
 
@media (max-width:1040px){
  .nz-endo__in{grid-template-columns:minmax(0,1fr);gap:34px;padding:40px 26px}
  .nz-endo__schemat{max-width:520px;margin-inline:auto}
  .nz-endo__akcje .nz-btn{flex:1 1 100%;justify-content:center}
}
@media (max-width:600px){
  .nz-schem__etykieta text{font-size:19px}
  .nz-schem__etykieta .nz-schem__male{font-size:16px}
}
/* ==========================================================================
   ŁATKA 23
   Dopisać na samym końcu user.css.
   ========================================================================== */


/* ══════════════════════════════════════════════════════════════════════════
   A. SEKCJA ENDOSKOPII Z OBRAZEM
   Zastępuje reguły schematu SVG z etapu 22 — tamtych nie trzeba usuwać,
   przestają cokolwiek robić po podmianie modułu.
   ══════════════════════════════════════════════════════════════════════════ */
.nz-endo__in{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,.92fr);
  gap:48px;
  padding:56px 48px;
  align-items:center;
}
.nz-endo__in > *{min-width:0}
.nz-endo__tekst h2{color:#fff;margin:14px 0}
.nz-endo__tekst p{color:#AFBEDD;margin:0}

.nz-endo__obraz img{
  width:100%;
  height:auto;
  display:block;
  border-radius:var(--nz-r);
}

/* --- zakres badań: dwie pozycje z kropką w kolorze z obrazu --- */
.nz-endo__zakres{
  list-style:none;
  padding:0;
  margin:26px 0 0;
  display:grid;
  gap:12px;
}
.nz-endo__zakres li{
  display:flex;
  align-items:flex-start;
  gap:14px;
  padding:14px 18px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);
  border-radius:11px;
  transition:background .18s ease, border-color .18s ease;
}
.nz-endo__zakres li:hover{
  background:rgba(255,255,255,.11);
  border-color:rgba(255,255,255,.24);
}
.nz-endo__kropka{
  width:11px;height:11px;
  border-radius:50%;
  flex-shrink:0;
  margin-top:6px;
}
.nz-endo__kropka--gastro{background:#5ED6A4;box-shadow:0 0 0 4px rgba(94,214,164,.18)}
.nz-endo__kropka--kolo{background:#7FB2F5;box-shadow:0 0 0 4px rgba(127,178,245,.18)}
.nz-endo__zakres a{
  display:flex;
  flex-direction:column;
  gap:2px;
  text-decoration:none;
  min-width:0;
}
.nz-endo__zakres b{color:#fff;font-weight:600;font-size:1rem}
.nz-endo__zakres a > span{color:#9FB2D6;font-size:.86rem}
.nz-endo__zakres a:hover b{color:#DCE8FA}

.nz-endo__akcje{
  display:flex;flex-wrap:wrap;gap:12px;
  margin-top:28px !important;
}
.nz-endo__btn2{
  background:transparent;color:#fff;border-color:rgba(255,255,255,.45);
}
.nz-endo__btn2:hover{
  background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.7);color:#fff;
}
.nz-endo__dopisek{
  margin-top:26px !important;
  padding-top:20px;
  border-top:1px solid rgba(255,255,255,.15);
  font-size:.88rem;
  color:#9FB2D6 !important;
}
.nz-endo__dopisek a{color:#B8D4F5;text-decoration:underline;text-underline-offset:3px}
.nz-endo__dopisek a:hover{color:#fff}

@media (max-width:1040px){
  .nz-endo__in{grid-template-columns:minmax(0,1fr);gap:34px;padding:40px 26px}
  .nz-endo__obraz{max-width:460px;margin-inline:auto}
  .nz-endo__akcje .nz-btn{flex:1 1 100%;justify-content:center}
}


/* ══════════════════════════════════════════════════════════════════════════
   B. KARTA KONTAKTOWA — GODZINY W JEDNYM KAWAŁKU
   ══════════════════════════════════════════════════════════════════════════ */
.nz-pbox{
  min-width:0;
  width:100%;
  max-width:330px;
}
.nz-phead__grid{grid-template-columns:minmax(0,1fr) minmax(272px,330px)}

.nz-pbox__row{
  align-items:flex-start;
  gap:11px;
  padding:8px 0;
  line-height:1.5;
}
.nz-pbox__row .nz-i{width:17px;height:17px;margin-top:4px}
.nz-pbox__row > span{
  min-width:0;
  overflow-wrap:break-word;
  hyphens:none;          /* nie dzielimy nazw dni i godzin */
}
.nz-pbox__row b{
  display:block;
  margin-bottom:2px;
  font-size:.82rem;
  letter-spacing:.02em;
  color:var(--nz-navy-deep);
}
/* godzina nigdy nie łamie się w środku */
.nz-pbox__row time,
.nz-pbox__row .nz-nowrap{white-space:nowrap}

.nz-pbox__tel{
  display:inline-block;
  font-size:1.16rem;
  line-height:1.25;
  white-space:nowrap;
}
.nz-pbox__btn{
  gap:9px;
  align-items:center;
  padding:13px 16px;
  font-size:.9rem;
  white-space:nowrap;
}
.nz-pbox__btn .nz-i{width:17px;height:17px}

@media (max-width:900px){
  .nz-phead__grid{grid-template-columns:minmax(0,1fr)}
  .nz-pbox{max-width:none}
}


/* ══════════════════════════════════════════════════════════════════════════
   C. KAFELKI W TREŚCI ARTYKUŁU
   Artykuł ma max-width 78ch z reguł dla .item-page — siatka kart
   musi z tego ograniczenia wyjść.
   ══════════════════════════════════════════════════════════════════════════ */
.item-page > .nz-lista,
.com-content-article__body > .nz-lista{max-width:none}
/* ==========================================================================
   ŁATKA 24
   Dopisać na samym końcu user.css.
   ========================================================================== */
 
 
/* ══════════════════════════════════════════════════════════════════════════
   A. KARTY ZAKRESU BADAŃ — TEKST DO LEWEJ
   --------------------------------------------------------------------------
   W scalonym arkuszu została reguła projektowana dla poprzedniej listy:
 
       .nz-endo li{display:flex;justify-content:space-between}
       .nz-endo li span{text-align:right}
 
   Tamta lista miała etykiety dosunięte do prawej krawędzi. Nowe karty
   ją dziedziczą, stąd tekst uciekający w prawo.
   ══════════════════════════════════════════════════════════════════════════ */
.nz-endo__zakres li{
  justify-content:flex-start;
  text-align:left;
}
.nz-endo__zakres a{
  flex:1 1 auto;
  text-align:left;
}
.nz-endo__zakres a > span,
.nz-endo__zakres li span{
  text-align:left;
  font-weight:400;
}
.nz-endo__zakres b{text-align:left}

.nz-kontakt{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:20px;
  margin:0 0 40px;
  max-width:none;
}
.nz-kontakt__karta{
  display:flex;
  flex-direction:column;
  background:#fff;
  border:1px solid var(--nz-line);
  border-top:4px solid var(--nz-sek);
  border-radius:var(--nz-r);
  box-shadow:var(--nz-shadow);
  padding:26px 24px;
}
.nz-kontakt__karta h2{font-size:1.2rem;margin:0}
.nz-kontakt__rola{
  margin:4px 0 14px !important;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--nz-sek);
}
.nz-kontakt__adres{margin:0 0 12px !important;color:var(--nz-muted);font-size:.93rem}
.nz-kontakt__tel a{
  font-size:1.3rem;
  font-weight:700;
  color:var(--nz-sek-dark);
  text-decoration:none;
  white-space:nowrap;
}
.nz-kontakt__karta .nz-godziny{
  width:100%;
  min-width:0;
  margin:16px 0;
  font-size:.87rem;
}
.nz-kontakt__karta .nz-godziny th{
  padding:9px 14px 9px 0;
  font-size:.87rem;
  white-space:normal;
}
.nz-kontakt__karta .nz-godziny td{padding:9px 0;color:var(--nz-ink);font-weight:500}
.nz-kontakt__zakres{
  margin:auto 0 0 !important;
  padding-top:6px;
  font-size:.86rem;
  color:var(--nz-muted);
}
 
/* tabele w treści artykułu nie mogą dziedziczyć przewijania poziomego */
.item-page .nz-godziny{display:table;white-space:normal;overflow:visible}
.item-page > .nz-kontakt,
.item-page > .nz-nisoz{max-width:none}
/* ==========================================================================
   ŁATKA 25
   Dopisać na samym końcu user.css.
   ========================================================================== */


/* ══════════════════════════════════════════════════════════════════════════
   A. PAS NAGŁÓWKOWY W ARTYKULE
   --------------------------------------------------------------------------
   Blok nz-phead w OPISIE KATEGORII wygląda poprawnie, a w ARTYKULE
   nie — bo artykuł renderuje się wewnątrz .item-page, a sekcja 13
   arkusza ustawia tam własne odstępy akapitów:

       .item-page p{margin:0 0 16px}

   Ta reguła zeruje górny margines akapitu w nagłówku, przez co tekst
   przykleja się do H1. Opis kategorii tych reguł nie dostaje.
   ══════════════════════════════════════════════════════════════════════════ */
.item-page .nz-phead__tekst p,
.com-content-article__body .nz-phead__tekst p{
  margin:16px 0 0;
  max-width:64ch;
}
.item-page .nz-phead__tekst p + p,
.com-content-article__body .nz-phead__tekst p + p{margin-top:10px}

.item-page .nz-phead__tekst h1,
.com-content-article__body .nz-phead__tekst h1{
  margin:0;
  max-width:20ch;
}

/* pas ma wyjść poza kolumnę tekstu artykułu */
.item-page > .nz-phead,
.com-content-article__body > .nz-phead{max-width:none}

/* ramka „Zapisy" w artykule — bez odstępów akapitowych z item-page */
.item-page .nz-pbox p,
.item-page .nz-pbox h2{margin:0}
.item-page .nz-pbox__row{padding:8px 0}

/* nagłówek strony generowany przez Joomlę stoi PRZED naszym pasem,
   więc selektor rodzeństwa z sekcji 11 go nie łapie */
.item-page:has(.nz-phead) > .page-header,
.com-content-article:has(.nz-phead) .page-header{display:none}


/* ══════════════════════════════════════════════════════════════════════════
   B. ODNOŚNIKI W STOPCE — CZYTELNE PO NAJECHANIU
   --------------------------------------------------------------------------
   Cassiopeia zakłada ciemną stopkę i ustawia dla niej jasny kolor
   najechania. Jej selektor ma wyższą szczegółowość niż mój, więc
   na białym tle odnośnik praktycznie znika.
   ══════════════════════════════════════════════════════════════════════════ */
.container-footer a,
.container-footer a:link,
.container-footer a:visited,
.container-footer a:not(.btn),
.container-footer .nz-fgrid a{
  color:var(--nz-ink);
  text-decoration:none;
}
.container-footer a:hover,
.container-footer a:focus,
.container-footer a:not(.btn):hover,
.container-footer a:not(.btn):focus,
.container-footer .nz-fgrid a:hover{
  color:var(--nz-accent-dark);
  text-decoration:underline;
  text-underline-offset:3px;
}

/* telefony w kartach godzin — pogrubione, w kolorze akcentu */
.container-footer .nz-hours a,
.container-footer .nz-hours a:hover{
  color:var(--nz-accent-dark);
  font-weight:700;
  text-decoration:none;
}
.container-footer .nz-hours a:hover{text-decoration:underline}

/* stopka prawna — drobniejsza, ale nadal czytelna */
.container-footer .nz-legal a{color:var(--nz-muted)}
.container-footer .nz-legal a:hover{color:var(--nz-accent-dark)}

/* ── kropka identyfikująca lekarza ── */
.nz-kropka{
  display:inline-block;
  width:10px;height:10px;
  border-radius:50%;
  margin-right:9px;
  flex-shrink:0;
  vertical-align:baseline;
}
.nz-kropka--a{background:var(--nz-sek);box-shadow:0 0 0 3px var(--nz-sek-soft)}
.nz-kropka--b{background:var(--nz-amber);box-shadow:0 0 0 3px var(--nz-amber-soft)}
 
/* ── lista lekarzy z kropkami ── */
.nz-lekarze--kolory li{
  flex-direction:row;
  align-items:baseline;
  flex-wrap:wrap;
  gap:0 4px;
}
.nz-lekarze--kolory b{margin-right:8px}
.nz-lekarze--kolory span:not(.nz-kropka){flex:1 1 100%;padding-left:19px}
 
/* ── tabela rotacyjna ── */
.nz-godziny--rotacja{width:100%;min-width:0}
.nz-godziny--rotacja thead th{
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.02em;
  color:var(--nz-navy-deep);
  border-bottom:2px solid var(--nz-line);
  padding-bottom:10px;
  white-space:normal;
  vertical-align:bottom;
}
.nz-godziny--rotacja thead th:first-child{color:var(--nz-muted);font-weight:600}
.nz-godziny--rotacja tbody th{
  color:var(--nz-ink);
  font-weight:500;
  white-space:nowrap;
  padding-right:20px;
}
.nz-godziny--rotacja td{
  font-weight:600;
  color:var(--nz-navy-deep);
  white-space:nowrap;
  padding-right:20px;
}
.nz-godziny--rotacja td.nz-pusty{
  color:var(--nz-line);
  font-weight:400;
}
 
/* na telefonie tabela rotacyjna przewija się w poziomie */
@media (max-width:640px){
  .nz-godziny--rotacja{display:block;overflow-x:auto;white-space:nowrap}
  .nz-godziny--rotacja thead th{font-size:.74rem}
}

/* ── podtytuł trybu rozliczenia ── */
.nz-tryb{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:.76rem !important;
  font-weight:700;
  letter-spacing:.11em;
  text-transform:uppercase;
  margin:30px 0 14px !important;
  padding-bottom:10px;
  border-bottom:1px solid var(--nz-line);
}
.nz-tryb::before{
  content:"";
  width:10px;height:10px;
  border-radius:3px;
  flex-shrink:0;
}
.nz-tryb--nfz{color:var(--nz-sek-dark)}
.nz-tryb--nfz::before{background:var(--nz-sek)}
.nz-tryb--komercja{color:var(--nz-amber)}
.nz-tryb--komercja::before{background:var(--nz-amber)}
 
.nz-tryb__opis{
  margin:10px 0 0 !important;
  font-size:.87rem;
  color:var(--nz-muted);
}
.nz-tryb + .nz-godziny{margin-top:0}
 
/* ── znacznik przy lekarzu i w tabeli ── */
.nz-tag{
  display:inline-block;
  padding:3px 10px;
  border-radius:5px;
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  background:var(--nz-amber-soft);
  color:var(--nz-amber);
  border:1px solid #F0E2C9;
  white-space:nowrap;
}
.nz-tag--nfz{
  background:var(--nz-sek-soft);
  color:var(--nz-sek-dark);
  border-color:var(--nz-sek-soft);
}
 
/* znacznik w liście lekarzy — własny wiersz pod specjalizacją */
.nz-lekarze .nz-tag{
  align-self:flex-start;
  margin-top:6px;
}
 
/* dopisek przy godzinie, np. „wybrane czwartki" */
.nz-godziny__uwaga{
  display:block;
  font-size:.8rem;
  font-weight:400;
  color:var(--nz-muted);
  margin-top:2px;
}
 
@media (max-width:640px){
  .nz-tryb{font-size:.72rem !important;margin-top:24px !important}
}
/* ==========================================================================
   ŁATKA 26 — tabele godzin przyjęć
   Dopisać na samym końcu user.css.
   --------------------------------------------------------------------------
   DWIE USTERKI
 
   1. Reguła .nz-godziny td:last-child{color:var(--nz-muted);font-size:.9rem}
      pisana była pod tabelę trzykolumnową, gdzie w ostatniej kolumnie
      stoi nazwisko lekarza. Gdy stoją tam godziny — wyglądają jak wyłączone.
 
   2. Reguła tr:last-child{border-bottom:0} zostawiała tabelę bez
      dolnej krawędzi, przez co wyglądała na uciętą.
 
   Rozwiązanie nie wymaga zmian w treści: pierwsza komórka danych
   zawsze zawiera godziny i dostaje najmocniejsze wyróżnienie,
   a wszystkie kolejne — kolor tekstu treści zamiast wyszarzenia.
   ========================================================================== */
 
/* ── wszystkie komórki danych: kolor treści, nie wyszarzenie ────────────── */
.nz-godziny td{
  color:var(--nz-ink);
  font-weight:500;
  font-size:.95rem;
  padding:11px 20px 11px 0;
  vertical-align:top;
}
 
/* ── pierwsza kolumna danych to zawsze godziny — najmocniejsza ──────────── */
.nz-godziny td:first-of-type{
  color:var(--nz-sek-dark);
  font-weight:600;
  white-space:nowrap;
}
 
/* ── kolejne kolumny godzin: równie czytelne, bez akcentu koloru ────────── */
.nz-godziny td:last-child:not(:first-of-type){
  color:var(--nz-ink);
  font-weight:500;
  font-size:.95rem;
}
 
/* ── znak „—" tam, gdzie nie ma przyjęć ─────────────────────────────────── */
.nz-godziny td.nz-pusty,
.nz-godziny td:empty{
  color:var(--nz-line);
  font-weight:400;
}
 
/* ── nazwisko lekarza: wyraźniejsze niż dotąd, słabsze niż godzina ──────── */
/* Klasa opcjonalna. Bez niej kolumna i tak jest teraz czytelna,
   ale z nią różnica między godziną a nazwiskiem jest wyraźniejsza. */
.nz-godziny td.nz-lekarz{
  color:var(--nz-navy-deep);
  font-weight:600;
  font-size:.92rem;
  white-space:normal;
}
 
/* ── dzień tygodnia ─────────────────────────────────────────────────────── */
.nz-godziny th{
  color:var(--nz-ink);
  font-weight:500;
  white-space:nowrap;
  padding:11px 24px 11px 0;
}
 
/* ── ostatni wiersz zamyka tabelę krawędzią ─────────────────────────────── */
.nz-godziny tr:last-child th,
.nz-godziny tr:last-child td{
  border-bottom:1px solid var(--nz-line);
}
.nz-godziny{margin-bottom:24px}
 
/* ── tabela rotacyjna: nagłówki kolumn nadal wyróżnione ─────────────────── */
.nz-godziny--rotacja thead th{
  color:var(--nz-navy-deep);
  font-weight:700;
  font-size:.78rem;
  padding-bottom:10px;
  border-bottom:2px solid var(--nz-line);
}
.nz-godziny--rotacja thead th:first-child{
  color:var(--nz-muted);
  font-weight:600;
}
/* w tabeli rotacyjnej obie kolumny to godziny — równorzędne */
.nz-godziny--rotacja td{
  color:var(--nz-sek-dark);
  font-weight:600;
  white-space:nowrap;
}
.nz-godziny--rotacja td.nz-pusty{color:var(--nz-line);font-weight:400}
 
/* ── karty kontaktowe: tam węższe odstępy ───────────────────────────────── */
.nz-kontakt__karta .nz-godziny td{padding:9px 0;font-size:.88rem}
.nz-kontakt__karta .nz-godziny th{padding:9px 14px 9px 0;font-size:.87rem}
/* ==========================================================================
   ŁATKA 27 — rytm pionowy
   Dopisać na samym końcu user.css.
   --------------------------------------------------------------------------
   PRZYCZYNA ZBYT DUŻYCH ODSTĘPÓW

   Każda sekcja miała padding-block:82px — czyli 82 px u góry i u dołu.
   Tam, gdzie dwie sekcje się stykają, wartości się sumują: 164 px.
   Przy sekcji endoskopii dochodziło jeszcze 56 px wypełnienia
   granatowej karty, co dawało 220 px pustki.

   Docelowy rytm przy szerokości 1200 px to 90–100 px ŁĄCZNIE
   między sekcjami, czyli 44–48 px na stronę.

   Wszystkie wartości wyprowadzone do zmiennych — dostrojenie
   całej strony to zmiana trzech liczb w jednym miejscu.
   ========================================================================== */

:root{
  --nz-sekcja:44px;        /* odstęp sekcji białej, na stronę */
  --nz-sekcja-soft:56px;   /* sekcja z tłem — potrzebuje więcej powietrza */
  --nz-sekcja-mob:32px;    /* telefon */
}


/* ══════════════════════════════════════════════════════════════════════════
   A. SEKCJE
   ══════════════════════════════════════════════════════════════════════════ */
.nz-section{padding-block:var(--nz-sekcja)}

/* Sekcja z tłem dostaje więcej wypełnienia. To nie kaprys —
   kolorowy pas przy tej samej wartości wygląda ciaśniej niż biały,
   bo krawędź tła jest widoczna, a krawędź bieli nie.            */
.nz-section--soft{padding-block:var(--nz-sekcja-soft)}

/* Cztery kafelki zadań pod hero */
.nz-tasks{padding-block:var(--nz-sekcja) 0}

/* Granatowa karta endoskopii — wewnętrzne wypełnienie */
.nz-endo__in{padding:48px 48px}


/* ══════════════════════════════════════════════════════════════════════════
   B. HERO
   --------------------------------------------------------------------------
   Kolumna tekstu jest wyśrodkowana względem rysunku, a rysunek jest
   wyższy — samo skrócenie wypełnienia kolumny nie zmniejszy hero.
   Wysokość ogranicza rysunek, więc dokładamy mu maksimum.
   ══════════════════════════════════════════════════════════════════════════ */
@media (min-width:1041px){
  .nz-hero__grid > .nz-hero__kol{
    padding-top:48px;
    padding-bottom:48px;
  }
  .nz-hero__grid > .nz-photo img{max-height:440px;width:auto;margin-inline:auto}
  .nz-hero__grid > .nz-photo{display:flex;justify-content:center}
}


/* ══════════════════════════════════════════════════════════════════════════
   C. OBSZAR KOMPONENTU
   --------------------------------------------------------------------------
   Ta reguła działa też na podstronach, gdzie jest ostatnim odstępem
   przed stopką. Przy 42 px treść zaczyna się o nią opierać, dlatego
   na artykułach zostaje więcej, a skracamy tylko stronę główną.
   ══════════════════════════════════════════════════════════════════════════ */
.container-component{padding-bottom:56px}
body.itemid-101 .container-component{padding-bottom:0}

/* Pusty kontener artykułów wyróżnionych na stronie głównej
   potrafi dokładać własny odstęp                                */
body.itemid-101 .blog-featured{margin:0;padding:0}
body.itemid-101 .blog-featured > *:empty{display:none}


/* ══════════════════════════════════════════════════════════════════════════
   D. DROBNE ODSTĘPY WEWNĄTRZ SEKCJI
   ══════════════════════════════════════════════════════════════════════════ */
.nz-shead{margin-bottom:26px}
.nz-nisoz{margin-top:26px}
.nz-phead{margin-block:0 36px}


/* ══════════════════════════════════════════════════════════════════════════
   E. TELEFON — mniejsze odstępy, bo ekran i tak się przewija
   ══════════════════════════════════════════════════════════════════════════ */
@media (max-width:820px){
  .nz-section{padding-block:var(--nz-sekcja-mob)}
  .nz-section--soft{padding-block:calc(var(--nz-sekcja-mob) + 10px)}
  .nz-tasks{padding-block:var(--nz-sekcja-mob) 0}
  .nz-endo__in{padding:34px 24px}
  .container-component{padding-bottom:40px}
  .nz-phead{margin-bottom:28px}
}


/* ══════════════════════════════════════════════════════════════════════════
   JAK DOSTROIĆ
   --------------------------------------------------------------------------
   Wszystko steruje się trzema liczbami w bloku :root na górze łatki.

       --nz-sekcja: 44px   →  88 px łącznie między sekcjami
       --nz-sekcja: 52px   → 104 px  (luźniej)
       --nz-sekcja: 36px   →  72 px  (ciaśniej)

   Nie trzeba szukać reguł w arkuszu — zmiana jednej wartości
   przestawia rytm całej strony.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── data na karcie poradnika ────────────────────────────────── */
.nz-lista__data{
  display:block;
  order:-1;
  margin-bottom:2px;
  font-size:.74rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--nz-sek);
}
 
/* karta z datą: ikona i data obok siebie, tytuł pod spodem */
.nz-lista__karta:has(.nz-lista__data) .nz-lista__ic{
  margin-bottom:10px;
}
 
/* ── dłuższe karty poradnika — więcej miejsca na zajawkę ─────── */
.nz-lista__karta p{
  display:-webkit-box;
  -webkit-line-clamp:4;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
 
/* ── opis kategorii nad listą: nie może zlewać się z kartami ─── */
.nz-phead + .nz-lista{margin-top:0}

/* ── nagłówek grupy kafelków ─────────────────────────────────── */
.nz-grupa{
  display:flex;
  align-items:center;
  gap:12px;
  font-size:1.18rem !important;
  font-weight:600;
  margin:44px 0 18px !important;
  padding-bottom:14px;
  border-bottom:1px solid var(--nz-line);
  max-width:none;
}
.nz-grupa:first-of-type{margin-top:0 !important}
.nz-grupa__ic{
  width:34px;height:34px;
  border-radius:10px;
  background:var(--nz-sek-soft);
  color:var(--nz-sek-dark);
  display:grid;place-items:center;
  flex-shrink:0;
}
.nz-grupa__ic .nz-i{width:18px;height:18px}
 
/* siatka kart w treści artykułu nie może dziedziczyć 78ch */
.item-page > .nz-lista,
.item-page > .nz-grupa{max-width:none}
.nz-grupa + .nz-lista{margin-top:0}
 
@media (max-width:640px){
  .nz-grupa{font-size:1.06rem !important;margin-top:34px !important}
}
 
.nz-odsyl{
  display:flex;
  gap:16px;
  align-items:flex-start;
  margin:26px 0;
  padding:20px 22px;
  background:var(--nz-bg-soft);
  border:1px solid var(--nz-line);
  border-radius:var(--nz-r);
  max-width:78ch;
}
.nz-odsyl__ic{
  width:40px;height:40px;
  border-radius:11px;
  background:var(--nz-sek-soft);
  color:var(--nz-sek-dark);
  display:grid;place-items:center;
  flex-shrink:0;
}
.nz-odsyl b{display:block;color:var(--nz-navy-deep);font-size:1rem;margin-bottom:4px}
.nz-odsyl p{margin:0 0 8px !important;font-size:.92rem;color:var(--nz-muted)}
.nz-odsyl a{font-weight:600;font-size:.9rem;color:var(--nz-sek-dark)}

/* ── „Dla pacjenta": kafelki są w opisie kategorii, więc
      automatyczna lista artykułów pod spodem byłaby powtórzeniem.
      Chowamy ją wyłącznie na tej stronie — routing artykułów
      pozostaje nietknięty. ─────────────────────────────────── */
body.itemid-111 .nz-lista--auto{display:none}
 
/* opis kategorii zawiera nagłówki grup — bez ograniczenia szerokości */
.category-desc > .nz-grupa,
.category-desc > .nz-lista{max-width:none}
 
/* nagłówki grup w opisie kategorii — te same co w artykule */
.nz-grupa{
  display:flex;align-items:center;gap:12px;
  font-size:1.18rem !important;font-weight:600;
  margin:44px 0 18px !important;padding-bottom:14px;
  border-bottom:1px solid var(--nz-line);
}
.nz-phead + .nz-grupa,
.nz-grupa:first-of-type{margin-top:0 !important}
.nz-grupa__ic{
  width:34px;height:34px;border-radius:10px;
  background:var(--nz-sek-soft);color:var(--nz-sek-dark);
  display:grid;place-items:center;flex-shrink:0;
}
.nz-grupa__ic .nz-i{width:18px;height:18px}
.nz-grupa + .nz-lista{margin-top:0}

.nz-preparaty{display:grid;gap:10px;margin:0 0 22px;max-width:78ch}
.nz-preparat{
  border:1px solid var(--nz-line);
  border-radius:var(--nz-r);
  background:#fff;
  overflow:hidden;
}
.nz-preparat summary{
  cursor:pointer;
  list-style:none;
  padding:16px 20px;
  font-weight:600;
  font-size:1.02rem;
  color:var(--nz-navy-deep);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.nz-preparat summary::-webkit-details-marker{display:none}
.nz-preparat summary::after{
  content:"";
  width:9px;height:9px;
  border-right:2px solid var(--nz-sek);
  border-bottom:2px solid var(--nz-sek);
  transform:rotate(45deg);
  transition:transform .2s ease;
  flex-shrink:0;
}
.nz-preparat[open] summary::after{transform:rotate(-135deg)}
.nz-preparat[open] summary{border-bottom:1px solid var(--nz-line);background:var(--nz-sek-soft)}
.nz-preparat summary:hover{background:var(--nz-bg-soft)}
.nz-preparat__skl{
  margin:16px 20px 8px !important;
  font-size:.9rem;
  color:var(--nz-muted);
}
.nz-preparat ol{margin:0 20px 18px 40px !important}
.nz-preparat li{margin-bottom:8px}
.nz-preparat__uwaga{
  margin:0 20px 16px !important;
  font-size:.82rem;
  color:var(--nz-amber);
}
 
/* przy druku panele są zawsze rozwinięte */
@media print{
  .nz-preparat{break-inside:avoid}
  .nz-preparat:not([open]) > *:not(summary){display:block}
  .nz-preparat summary::after{display:none}
}

/* ── cennik ─────────────────────────────────────────────────────── */
.nz-cennik__grupa{
  font-size:1.18rem !important;
  margin:40px 0 12px !important;
  padding-bottom:10px;
  border-bottom:2px solid var(--nz-sek-soft);
}
.nz-cennik{
  width:100%;
  max-width:760px;
  border-collapse:collapse;
  margin:0 0 10px;
  display:table;
  white-space:normal;
}
.nz-cennik th,
.nz-cennik td{
  border:0;
  border-bottom:1px solid var(--nz-line);
  padding:12px 0;
  vertical-align:baseline;
  background:none;
}
.nz-cennik th{
  text-align:left;
  font-weight:500;
  color:var(--nz-ink);
  padding-right:24px;
}
.nz-cennik th span{
  display:block;
  margin-top:2px;
  font-size:.84rem;
  font-weight:400;
  color:var(--nz-muted);
}
.nz-cennik td{
  text-align:right;
  white-space:nowrap;
  font-weight:700;
  color:var(--nz-navy-deep);
  font-variant-numeric:tabular-nums;
}
.nz-cennik tr:hover th,
.nz-cennik tr:hover td{background:var(--nz-bg-soft)}
.nz-cennik__uwaga{
  max-width:760px;
  margin:10px 0 0 !important;
  font-size:.88rem;
  color:var(--nz-muted);
}
.nz-cennik__stopka{
  max-width:760px;
  margin:28px 0 0 !important;
  padding-top:18px;
  border-top:1px solid var(--nz-line);
  font-size:.9rem;
  color:var(--nz-muted);
}
.nz-cennik__stopka + .nz-cennik__stopka{margin-top:6px !important;padding-top:0;border:0}
 
@media print{
  .nz-cennik tr:hover th,.nz-cennik tr:hover td{background:none}
  .nz-cennik__grupa{break-after:avoid}
  .nz-cennik{break-inside:auto}
  .nz-cennik tr{break-inside:avoid}
}

/* ── A. Szerszy nagłówek wcześniej ──────────────────────────────────── */
@media (min-width:1280px){
  .container-header{
    padding-inline:max(24px, calc((100% - 1360px) / 2));
  }
}
 
 
/* ── B. Tryb zwarty — laptopy ───────────────────────────────────────── */
@media (min-width:1041px) and (max-width:1439px){
 
  .container-header{gap:0 22px}
  .container-header .brand-logo img{height:56px}
 
  .container-header > .container-nav{gap:14px}
  .container-header .container-search > div{gap:8px}
 
  /* menu — ciaśniej, ale nadal czytelnie */
  .container-header ul.mod-menu{
    gap:10px;
    font-size:.88rem;
  }
  .container-header ul.mod-menu > li{gap:0 2px}
  .container-header ul.mod-menu > li > button{
    padding:0 2px;
    min-width:0;
  }
 
  /* telefon — sama ikona.
     Numer zostaje w kodzie strony (font-size:0 zamiast display:none),
     więc czytnik ekranu nadal go odczyta, a kliknięcie nadal dzwoni.
     Numer jest też w hero, w stopce i w każdej ramce „Zapisy". */
  .container-header .nz-pill{
    font-size:0;
    line-height:0;
    gap:0;
    padding:11px;
  }
  .container-header .nz-pill .nz-i{
    width:18px;
    height:18px;
    margin:0;
  }
 
  /* przycisk „Umów wizytę" — zostaje w pełnej postaci */
  .container-header .nz-btn{
    padding:11px 16px;
    font-size:.88rem;
  }
}


/* ── A. PRZYCISKI W TREŚCI — kolor tekstu ───────────────────────
   Reguła kolorująca odnośniki w treści (.item-page a, .category-desc a)
   ma wyższą szczegółowość niż .nz-btn, przez co przycisk dostawał
   granatowy tekst na granatowym tle.
 
   Poprawka obejmuje WYŁĄCZNIE przycisk podstawowy. Warianty z białym
   tłem — ghost, onnavy, szkic — są wyłączone przez :not() i zachowują
   własne kolory. Wcześniejsza wersja tej reguły je pomijała i dawała
   biały tekst na białym tle.
 
   Ikona przejmuje kolor przez currentColor, więc nie wymaga
   osobnej reguły. */
.item-page a.nz-btn:not(.nz-btn--ghost):not(.nz-btn--onnavy):not(.nz-btn--szkic),
.category-desc a.nz-btn:not(.nz-btn--ghost):not(.nz-btn--onnavy):not(.nz-btn--szkic),
.nz-section a.nz-btn:not(.nz-btn--ghost):not(.nz-btn--onnavy):not(.nz-btn--szkic){
  color:#fff;
  text-decoration:none;
}
 
/* warianty na białym tle — w treści artykułu reguła .item-page a
   nadpisałaby ich kolor, dlatego ustawiamy go jawnie */
.item-page a.nz-btn--ghost,
.category-desc a.nz-btn--ghost,
.nz-section a.nz-btn--ghost{color:var(--nz-navy);text-decoration:none}
 
.item-page a.nz-btn--onnavy,
.category-desc a.nz-btn--onnavy,
.nz-section a.nz-btn--onnavy{color:var(--nz-navy-deep);text-decoration:none}
 
 
/* ── B. MAPA WCZYTYWANA PO KLIKNIĘCIU ────────────────────────── */
.nz-mapa{margin:0 0 34px;max-width:760px}
.nz-mapa__start{
  display:flex;
  align-items:center;
  gap:16px;
  width:100%;
  text-align:left;
  padding:20px 22px;
  background:var(--nz-bg-soft);
  border:1px dashed var(--nz-line);
  border-radius:var(--nz-r);
  cursor:pointer;
  font:inherit;
  color:var(--nz-ink);
  transition:border-color .18s ease, background .18s ease;
}
.nz-mapa__start:hover{
  background:#fff;
  border-color:var(--nz-sek);
  border-style:solid;
}
.nz-mapa__ic{
  width:40px;height:40px;
  border-radius:11px;
  background:var(--nz-sek-soft);
  color:var(--nz-sek-dark);
  display:grid;place-items:center;
  flex-shrink:0;
}
.nz-mapa__start b{display:block;color:var(--nz-navy-deep);font-size:1rem}
.nz-mapa__start span span{
  display:block;
  margin-top:3px;
  font-size:.85rem;
  color:var(--nz-muted);
}
.nz-mapa iframe{
  width:100%;
  height:380px;
  border:1px solid var(--nz-line);
  border-radius:var(--nz-r);
  display:block;
}
.nz-mapa__linki{
  margin:0 0 14px !important;
  font-size:.9rem;
}
 
.nz-kontakt__parking{
  margin:10px 0 0 !important;
  font-size:.85rem;
  color:var(--nz-muted);
}
 
@media (max-width:640px){
  .nz-mapa iframe{height:280px}
  .nz-mapa__start{padding:16px}
}
 
.nz-mapa__zrodlo{
  margin:10px 0 0 !important;
  font-size:.85rem;
  color:var(--nz-muted);
}
.nz-mapa__start{width:100%}

.nz-zgody{
  position:fixed;
  left:0; right:0; bottom:0;
  z-index:200;
  padding:16px;
  display:flex;
  justify-content:center;
  pointer-events:none;
}
.nz-zgody[hidden]{display:none}
.nz-zgody__box{
  pointer-events:auto;
  width:100%;
  max-width:620px;
  background:#fff;
  border:1px solid var(--nz-line);
  border-radius:var(--nz-r);
  box-shadow:0 18px 50px rgba(16,31,77,.22);
  padding:26px 28px;
}
.nz-zgody__box h2{
  font-size:1.14rem !important;
  margin:0 0 12px !important;
}
.nz-zgody__box p{
  margin:0 0 10px !important;
  font-size:.92rem;
  line-height:1.55;
  color:var(--nz-muted);
}
 
.nz-zgody__wybor{
  display:grid;
  gap:10px;
  margin:18px 0;
  padding:16px 18px;
  background:var(--nz-bg-soft);
  border-radius:11px;
}
.nz-zgody__opcja{
  display:flex;
  align-items:flex-start;
  gap:11px;
  font-size:.9rem;
  line-height:1.5;
  color:var(--nz-ink);
  cursor:pointer;
}
.nz-zgody__opcja--stala{cursor:default;color:var(--nz-muted)}
.nz-zgody__opcja input{margin-top:3px;width:17px;height:17px;flex-shrink:0;accent-color:var(--nz-accent)}
.nz-zgody__opcja b{color:var(--nz-navy-deep)}
 
.nz-zgody__akcje{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.nz-zgody__akcje .nz-btn{
  flex:1 1 auto;
  justify-content:center;
  padding:12px 18px;
  font-size:.92rem;
  border:1px solid transparent;
  cursor:pointer;
}
/* wariant obrysowany — równie widoczny co główny przycisk */
.nz-btn--szkic,
.nz-btn--szkic:hover{
  background:#fff;
  color:var(--nz-navy-deep);
  border-color:var(--nz-line);
}
.nz-btn--szkic:hover{border-color:var(--nz-accent);color:var(--nz-accent-dark)}
 
.nz-zgody__stopka{
  margin:16px 0 0 !important;
  font-size:.82rem !important;
  color:var(--nz-muted);
}
 
@media (max-width:600px){
  .nz-zgody{padding:10px}
  .nz-zgody__box{padding:20px 18px}
  .nz-zgody__akcje .nz-btn{flex:1 1 100%}
}

/* pasek u dołu ekranu, nie okno pośrodku */
.nz-zgody{
  position:fixed;
  left:0; right:0; bottom:0;
  z-index:200;
  padding:12px;
  pointer-events:none;
}
.nz-zgody[hidden]{display:none}
 
.nz-zgody__box{
  pointer-events:auto;
  max-width:1180px;
  margin-inline:auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  align-items:center;
  gap:20px 28px;
  background:#fff;
  border:1px solid var(--nz-line);
  border-radius:var(--nz-r);
  box-shadow:0 14px 40px rgba(16,31,77,.20);
  padding:18px 24px;
}
 
.nz-zgody__tresc h2{
  font-size:1rem !important;
  margin:0 0 4px !important;
}
.nz-zgody__tresc p{
  margin:0 !important;
  font-size:.86rem;
  line-height:1.5;
  color:var(--nz-muted);
}
.nz-zgody__tresc a{color:var(--nz-sek-dark);text-decoration:underline;text-underline-offset:2px}
 
.nz-zgody__wybor{
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
}
.nz-zgody__opcja{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:.88rem;
  color:var(--nz-ink);
  white-space:nowrap;
  cursor:pointer;
}
.nz-zgody__opcja input{
  width:17px;height:17px;
  flex-shrink:0;
  accent-color:var(--nz-accent);
  cursor:pointer;
}
 
.nz-zgody__akcje{
  display:flex;
  gap:8px;
  flex-shrink:0;
}
.nz-zgody__akcje .nz-btn{
  padding:10px 16px;
  font-size:.88rem;
  white-space:nowrap;
  border:1px solid transparent;
  cursor:pointer;
}
.nz-btn--szkic,
.nz-btn--szkic:link,
.nz-btn--szkic:visited{
  background:#fff;
  color:var(--nz-navy-deep);
  border-color:var(--nz-line);
}
.nz-btn--szkic:hover{
  background:var(--nz-bg-soft);
  border-color:var(--nz-accent);
  color:var(--nz-accent-dark);
}
 
/* laptop — opcje pod tekstem, przyciski nadal z prawej */
@media (max-width:1100px){
  .nz-zgody__box{grid-template-columns:minmax(0,1fr) auto;gap:14px 20px}
  .nz-zgody__wybor{grid-column:1;grid-row:2}
  .nz-zgody__akcje{grid-column:2;grid-row:1 / span 2}
}
 
/* telefon — wszystko jedno pod drugim */
@media (max-width:760px){
  .nz-zgody{padding:8px}
  .nz-zgody__box{
    grid-template-columns:minmax(0,1fr);
    gap:14px;
    padding:16px 18px;
  }
  .nz-zgody__wybor,
  .nz-zgody__akcje{grid-column:1;grid-row:auto}
  .nz-zgody__akcje{flex-wrap:wrap}
  .nz-zgody__akcje .nz-btn{flex:1 1 140px;justify-content:center}
}
 
/* osadzony Facebook — te same ramy co mapa */
.nz-fb{margin:0 0 30px;max-width:520px}
.nz-fb__start{
  display:flex;align-items:center;gap:16px;width:100%;
  text-align:left;padding:20px 22px;
  background:var(--nz-bg-soft);
  border:1px dashed var(--nz-line);
  border-radius:var(--nz-r);
  cursor:pointer;font:inherit;color:var(--nz-ink);
}
.nz-fb__start:hover{background:#fff;border-color:var(--nz-sek);border-style:solid}
.nz-fb__start b{display:block;color:var(--nz-navy-deep);font-size:1rem}
.nz-fb__start span span{display:block;margin-top:3px;font-size:.85rem;color:var(--nz-muted)}
.nz-fb iframe{
  width:100%;height:500px;border:1px solid var(--nz-line);
  border-radius:var(--nz-r);display:block;
}

/* ── strona placówki: jedna kolumna bez zdjęcia, dwie ze zdjęciem ── */
.nz-placowka{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:32px;
  align-items:start;
  margin:0 0 30px;
}
.item-page > .nz-placowka{max-width:none}
.nz-placowka:has(.nz-placowka__foto){
  grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);
}
.nz-placowka__dane > p{max-width:62ch}
.nz-placowka__parking{font-size:.93rem;color:var(--nz-muted)}
.nz-placowka__foto{margin:0}
.nz-placowka__foto img{
  display:block;
  width:100%;
  height:auto;
  margin:0;
  border-radius:var(--nz-r);
  box-shadow:var(--nz-shadow);
}
@media (max-width:820px){
  .nz-placowka:has(.nz-placowka__foto){grid-template-columns:minmax(0,1fr)}
}
/* ==========================================================================
   ŁATKA 37 — tabele .nz-godziny: zawijanie tekstu i widok na telefonie
   Dopisać na samym końcu user.css.
   --------------------------------------------------------------------------
   PRZYCZYNA ROZJEŻDŻANIA
 
   Tabela .nz-godziny powstała pod krótkie wpisy: „poniedziałek" +
   „8:00 – 14:00" + nazwisko. Dlatego nagłówek wiersza i pierwsza
   komórka dostały zakaz zawijania (white-space:nowrap).
 
   Z czasem ta sama tabela trafiła do klauzul RODO, kontaktu, standardu
   teleporady — gdzie w tych samych miejscach stoją całe zdania.
   Zdanie z zakazem zawijania nie mieści się w kolumnie, więc tabela
   wychodzi poza ekran. Na telefonie dochodzi trzecia kolumna,
   na którą po prostu brakuje szerokości.
 
   ROZWIĄZANIE
   A. Zawijanie dozwolone wszędzie. Zakaz zostaje wyłącznie dla kolumny
      godzin w tabelach trzykolumnowych (dzień · godzina · lekarz) —
      poznajemy ją po tym, że w wierszu są co najmniej dwie komórki td.
      W tabelach dwukolumnowych (etykieta · treść) komórka td jest
      jedyna i zawija się normalnie.
   B. Na telefonie każdy wiersz staje się kartą: nagłówek na całą
      szerokość, pod nim godzina i lekarz obok siebie.
      Tabela rotacyjna ma nagłówki kolumn, więc zostaje tabelą
      z przewijaniem — w układzie kart straciłaby sens.
   ========================================================================== */
 
 
/* ── A. ZAWIJANIE ───────────────────────────────────────────────────── */
.nz-godziny,
.item-page .nz-godziny{
  max-width:100%;
  table-layout:auto;
}
.nz-godziny th,
.nz-godziny td,
.item-page .nz-godziny th,
.item-page .nz-godziny td{
  white-space:normal;
  overflow-wrap:break-word;
  hyphens:manual;
}
/* etykieta w tabelach dwukolumnowych nie może być szersza niż treść */
.nz-godziny th{min-width:8em}
 
/* kolumna godzin — tylko tam, gdzie po niej jest jeszcze jakaś komórka */
.nz-godziny td:first-of-type:not(:only-of-type),
.item-page .nz-godziny td:first-of-type:not(:only-of-type){
  white-space:nowrap;
}
 
/* dopisek pod dniem, np. „raz w miesiącu" */
.nz-godziny th .nz-godziny__uwaga{
  display:block;
  margin-top:2px;
  font-size:.8rem;
  font-weight:400;
  color:var(--nz-muted);
}
 
 
/* ── B. TELEFON — WIERSZ JAKO KARTA ─────────────────────────────────── */
@media (max-width:640px){
 
  table.nz-godziny:not(.nz-godziny--rotacja),
  .item-page table.nz-godziny:not(.nz-godziny--rotacja),
  table.nz-godziny:not(.nz-godziny--rotacja) tbody,
  .item-page table.nz-godziny:not(.nz-godziny--rotacja) tbody{
    display:block;
    width:100%;
    min-width:0;
    overflow:visible;
    border:0;
  }
 
  table.nz-godziny:not(.nz-godziny--rotacja) tr,
  .item-page table.nz-godziny:not(.nz-godziny--rotacja) tr{
    display:grid;
    grid-template-columns:max-content minmax(0,1fr);
    gap:4px 14px;
    padding:12px 14px;
    margin:0 0 8px;
    background:#fff;
    border:1px solid var(--nz-line);
    border-radius:10px;
  }
 
  table.nz-godziny:not(.nz-godziny--rotacja) th,
  table.nz-godziny:not(.nz-godziny--rotacja) td,
  .item-page table.nz-godziny:not(.nz-godziny--rotacja) th,
  .item-page table.nz-godziny:not(.nz-godziny--rotacja) td{
    display:block;
    padding:0;
    border:0;
    background:none;
    min-width:0;
  }
 
  /* nagłówek wiersza — na całą szerokość karty */
  table.nz-godziny:not(.nz-godziny--rotacja) th,
  .item-page table.nz-godziny:not(.nz-godziny--rotacja) th{
    grid-column:1 / -1;
    font-weight:600;
    color:var(--nz-navy-deep);
  }
 
  /* wiersz z jedną komórką td — treść też na całą szerokość */
  table.nz-godziny:not(.nz-godziny--rotacja) td:only-of-type,
  .item-page table.nz-godziny:not(.nz-godziny--rotacja) td:only-of-type{
    grid-column:1 / -1;
  }
 
  /* w kartach kontaktowych bez ramek — karta już ma swoją */
  .nz-kontakt__karta table.nz-godziny tr{
    border:0;
    border-bottom:1px solid var(--nz-line);
    border-radius:0;
    padding:10px 0;
    margin:0;
  }
}

/* ŁATKA 38 — obrazki wstawione w treść artykułu */
.item-page p img,
.item-page > img,
.com-content-article__body p img,
.com-content-article__body > img{
  display:block;
  max-width:100%;
  height:auto;
  margin:6px 0 20px;
  border-radius:var(--nz-r);
  vertical-align:top;
}
@media (min-width:821px){
  .item-page p img,
  .item-page > img,
  .com-content-article__body p img,
  .com-content-article__body > img{
    float:right;
    width:auto;
    max-width:min(38%, 320px);
    margin:6px 0 18px 28px;
  }
  .item-page p img.float-start,
  .item-page p img[style*="float: left"],
  .item-page p img[style*="float:left"],
  .item-page p img[align="left"],
  .com-content-article__body p img.float-start{
    float:left;
    margin:6px 28px 18px 0;
  }
  .item-page p img.float-none,
  .item-page p img[style*="float: none"],
  .item-page p img[style*="float:none"],
  .com-content-article__body p img.float-none{
    float:none;
    max-width:100%;
    margin:6px 0 22px;
  }
}
.item-page h2,
.item-page h3,
.com-content-article__body h2,
.com-content-article__body h3{clear:both}
.item-page::after,
.com-content-article__body::after{content:"";display:block;clear:both}
.item-page p strong > img:first-child{margin-top:0}
 
/* Link „Wszystkie komunikaty” pod nagłówkiem aktualności (pkt 4a) */
.nz-shead__wiecej{margin:10px 0 0}
.nz-shead__wiecej a{
  display:inline-flex;align-items:center;gap:7px;
  font-size:.9rem;font-weight:700;
  color:var(--nz-accent-dark);text-decoration:none;
}
.nz-shead__wiecej a:hover{text-decoration:underline;text-underline-offset:3px}
.nz-shead__wiecej .nz-i{width:16px;height:16px;transition:transform .18s ease}
.nz-shead__wiecej a:hover .nz-i{transform:translateX(3px)}

/* ŁATKA 39 — ramka „Wlewka doodbytnicza” */
.nz-wlewka{
  margin:18px 0 24px;
  padding:18px 22px 14px;
  max-width:78ch;
  border:1px solid var(--nz-line);
  border-left:4px solid var(--nz-accent);
  border-radius:var(--nz-r);
  background:var(--nz-bg-soft);
}
.nz-wlewka__tytul{
  display:flex;align-items:center;gap:10px;
  margin:0 0 12px !important;
  font-weight:700;font-size:1.05rem;color:var(--nz-navy-deep);
}
.nz-wlewka__tytul .nz-i{width:22px;height:22px;color:var(--nz-accent-dark);flex-shrink:0}
.nz-wlewka__kroki{
  list-style:none;counter-reset:wl;
  margin:0 0 12px !important;padding:0 !important;
  display:grid;gap:10px;
}
.nz-wlewka__kroki li{
  counter-increment:wl;
  position:relative;
  margin:0 !important;
  padding:12px 14px 12px 54px;
  background:#fff;
  border:1px solid var(--nz-line);
  border-radius:var(--nz-r);
}
.nz-wlewka__kroki li::before{
  content:counter(wl);
  position:absolute;left:14px;top:50%;transform:translateY(-50%);
  width:28px;height:28px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:var(--nz-accent);color:#fff;font-weight:700;font-size:.95rem;
}
.nz-wlewka__kroki strong{display:block;color:var(--nz-navy-deep)}
.nz-wlewka__kroki span{display:block;font-size:.9rem;color:var(--nz-muted)}
.nz-wlewka p{margin:0 0 8px}
.nz-wlewka__uwaga{font-size:.9rem;color:var(--nz-muted)}
@media (min-width:821px){
  .nz-wlewka__kroki{grid-template-columns:1fr 1fr}
}
@media print{
  .nz-wlewka{break-inside:avoid;background:none}
}

/* ŁATKA 40 — pływający przycisk Facebook */
.nz-fb-plywajacy{
  position:fixed;
  right:0;
  top:50%;
  z-index:900;
  display:flex;
  align-items:center;
  gap:10px;
  height:48px;
  padding:0 14px 0 12px;
  background:#1877F2;
  color:#fff !important;
  text-decoration:none !important;
  border-radius:10px 0 0 10px;
  box-shadow:0 4px 14px rgba(15,35,80,.22);
  transform:translate(calc(100% - 48px),-50%);
  transition:transform .25s ease, background .2s ease;
}
.nz-fb-plywajacy:hover,
.nz-fb-plywajacy:focus-visible{
  transform:translate(0,-50%);
  background:#0F5FCC;
}
.nz-fb-plywajacy:focus-visible{outline:3px solid #FFB020;outline-offset:2px}
.nz-fb-plywajacy__ikona{width:24px;height:24px;fill:currentColor;flex-shrink:0}
.nz-fb-plywajacy__tekst{font-weight:600;font-size:.92rem;white-space:nowrap}
 
@media (max-width:820px){
  .nz-fb-plywajacy{
    top:auto;
    bottom:16px;
    right:16px;
    width:48px;
    padding:0;
    justify-content:center;
    border-radius:50%;
    transform:none;
  }
  .nz-fb-plywajacy:hover,
  .nz-fb-plywajacy:focus-visible{transform:none}
  .nz-fb-plywajacy__tekst{
    position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;
  }
}
/* nie zasłaniaj banera zgód */
body:has(#nz-zgody:not([hidden])) .nz-fb-plywajacy{display:none}
@media (prefers-reduced-motion:reduce){
  .nz-fb-plywajacy{transition:none}
}
@media print{
  .nz-fb-plywajacy{display:none !important}
}

/* ===== ŁATKA 41 — dostępność (WCAG 2.1 AA) ===== */
 
/* 41.1 Szary tekst pomocniczy: kontrast min. 4,8:1 na wszystkich tłach
        (biały 5,62 · #F5F8FC 5,27 · #FBF3E6 5,10 · #E8EEFB 4,83) */
:root { --nz-muted: #5F6878; }
.category-desc small,
.com-content-article__body small { opacity: 1; }
 
/* 41.2 Odnośnik „Przejdź do treści” (tworzy go moduł z części 2) */
.nz-skip {
  position: absolute; left: 16px; top: -200px; z-index: 2000;
  padding: .65rem 1.1rem; border-radius: 0 0 8px 8px;
  background: var(--nz-navy); color: #fff; font-weight: 600;
  text-decoration: none;
}
.nz-skip:focus { top: 0; outline: 3px solid #fff; outline-offset: -6px; }
main:focus { outline: none; }
 
/* 41.3 Wyraźny wskaźnik fokusu klawiatury */
a:focus-visible,
button:focus-visible,
summary:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible {
  outline: 3px solid var(--nz-accent);
  outline-offset: 2px;
}
.container-banner a:focus-visible,
.container-banner button:focus-visible,
.nz-fb-plywajacy:focus-visible { outline-color: #fff; }
 
/* 41.4 Nagłówki stopki: <h4> → <h2> (SQL A), wygląd bez zmian */
.nz-fgrid h2 {
  font-size: .99rem; font-weight: 600; line-height: 1.2;
  letter-spacing: -.015em; color: var(--nz-navy-deep);
  margin: 0 0 15px; text-transform: none;
}

/* 41.5 Tytuł <h1> strony, gdy nad treścią jest blok .nz-phead:
        zamiast display:none — ukryty tylko wizualnie, czytniki go odczytają */
.nz-phead ~ .page-header,
.item-page:has(.nz-phead) > .page-header,
.com-content-article:has(.nz-phead) .page-header {
  display: block !important;
  position: absolute !important;
  width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
 
/* 41.6 Link w banerze zgód odróżniony nie tylko kolorem */
.nz-zgody__tresc a { text-decoration: underline; text-underline-offset: 2px; }
 
/* 41.7 Deklaracja dostępności: <h1> w treści (tytuł artykułu ukryty) */
.nz-a11y-dekl > h1 {
  font-size: 1.7rem; font-weight: 600; line-height: 1.2;
  letter-spacing: -.015em; color: var(--nz-navy-deep);
  margin: 0 0 26px;
}
.nz-a11y-dekl .nz-a11y-problem { margin: 0 0 1.1rem; }
.nz-a11y-dekl .nz-a11y-problem dt { font-weight: 600; color: var(--nz-ink); }
.nz-a11y-dekl .nz-a11y-problem dd { margin: 0 0 .25rem 0; }
 
/* 41.8 Sekcje na pełną szerokość (width:100vw) wychodziły ~8 px poza ekran
        na komputerach z widocznym paskiem przewijania (Windows) — pojawiał się
        poziomy pasek. clip (nie hidden) nie psuje przyklejonego nagłówka. */
body { overflow-x: clip; }
/* łatka 42 */
.container-footer .nz-zgody__tresc a, .container-footer .nz-zgody__tresc a:not(.btn)
{
  text-decoration: underline;
  text-underline-offset: 2px;
}