/* Dentio · projekt graficzny. Styl 2 „Precyzja” + nagłówki Fraunces. Tokeny w :root, opis w index.html. */
:root{
  --bialy:#FFFFFF; --szary:#F2F6F6; --linia:#DCE5E5; --linia-2:#C5D3D3;
  --tekst:#0E1F21; --tekst-2:#45585A;
  --morski:#0D4446; --morski-2:#09302F; --morski-jasny:#B9D6D3;
  --turkus:#45C6C9; --turkus-hover:#5ED2D4; --sage:#84BBB7;
  --brak:#FFF4D6; --brak-linia:#E3B341;
  --r-s:10px; --r-m:16px; --r-drzwi:160px 160px 18px 18px;
  --f-nag:'Fraunces',Georgia,'Times New Roman',serif;
  --f-tekst:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;
  --szer:1320px; --czyt:62ch;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:110px}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--bialy);color:var(--tekst);font:400 1.0625rem/1.58 var(--f-tekst)}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:3px solid var(--turkus);outline-offset:3px;border-radius:4px}
.wrap{max-width:var(--szer);margin:0 auto;padding:0 40px}
.skip{position:absolute;left:-999px;top:8px;background:var(--morski);color:#fff;padding:10px 16px;border-radius:8px;z-index:100}
.skip:focus{left:8px}

/* ---------- typografia ---------- */
h1,h2,h3{font-family:var(--f-nag);font-weight:600;color:inherit;margin:0;text-wrap:balance;font-variation-settings:'SOFT' 100}
h1{font-size:clamp(38px,4.6vw,60px);line-height:1.06;letter-spacing:-.015em;font-variation-settings:'SOFT' 100,'opsz' 96}
h2{font-size:clamp(30px,3.2vw,42px);line-height:1.12;letter-spacing:-.01em;margin-bottom:18px;max-width:22ch;font-variation-settings:'SOFT' 100,'opsz' 72}
h3{font-size:1.3125rem;line-height:1.2;letter-spacing:-.005em;font-variation-settings:'SOFT' 100,'opsz' 24}
p{margin:0 0 14px;max-width:var(--czyt);text-wrap:pretty}
.lead{font-size:1.1875rem;color:var(--tekst-2);max-width:54ch}
.label{font-weight:700;font-size:0.9375rem;margin:22px 0 8px;color:var(--tekst)}
.label:first-child{margin-top:0}
.mini{font-size:0.9375rem;color:var(--tekst-2)}
b,strong{font-weight:700}
.dp{background:var(--brak);border-bottom:1.5px dashed var(--brak-linia);padding:4px 8px;border-radius:3px;color:#5B4300;font-size:.92em;-webkit-box-decoration-break:clone;box-decoration-break:clone}

/* ---------- przyciski i linki ---------- */
.btns{display:flex;flex-wrap:wrap;gap:12px;margin:0}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 24px;border-radius:var(--r-s);
  font:700 1rem/1.2 var(--f-tekst);text-decoration:none;border:1.5px solid transparent;cursor:pointer;transition:background-color .15s,border-color .15s,color .15s}
.btn-p{background:var(--turkus);color:#06292B}
.btn-p:hover{background:var(--turkus-hover)}
.btn-s{background:var(--bialy);color:var(--tekst);border-color:var(--linia-2)}
.btn-s:hover{border-color:var(--morski)}
.btn-d{background:var(--morski);color:#fff}
.btn-d:hover{background:var(--morski-2)}
.btn-sm{min-height:40px;padding:0 14px;font-size:0.9375rem}
.lnk{display:inline;font-weight:700;color:var(--morski);text-decoration:none}
.lnk .ic{display:inline-block;vertical-align:-4px;margin-left:6px}
.lnk span{text-decoration:underline;text-decoration-color:var(--sage);text-decoration-thickness:2px;text-underline-offset:5px}
.lnk:hover span{text-decoration-color:var(--morski)}
.lnk-p{margin:18px 0 0}
.lnk-row{display:flex;flex-wrap:wrap;gap:12px 28px;margin:16px 0}
.lnk-row .lnk-p{margin:0}
.h3-link .lnk{color:inherit;font-weight:600}

/* ---------- pasek, nagłówek, okruszek ---------- */
.pasek{background:var(--morski);color:#DCEDEB;font-size:0.875rem}
.pasek-w{display:flex;gap:28px;align-items:center;min-height:38px}
.pasek a,.pasek span{display:inline-flex;align-items:center;gap:8px;text-decoration:none}
.pasek-adr{margin-left:auto}
.pasek .dp{background:transparent;border-color:#E3B341;color:#F6DE9A}
.hd{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.96);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--linia)}
.hd-w{display:flex;align-items:center;gap:32px;min-height:78px}
.logo img{height:60px;width:auto}
.nav{display:flex;align-items:center;gap:2px}
.nav-a{display:inline-flex;align-items:center;gap:4px;padding:10px 14px;border-radius:8px;font:600 1rem/1 var(--f-tekst);text-decoration:none;color:var(--tekst);background:none;border:0;cursor:pointer}
.nav-a:hover{background:var(--szary)}
.nav-a[aria-current]{color:var(--morski);position:relative}
.nav-a[aria-current]::after{content:"";position:absolute;left:12px;right:12px;bottom:-3px;height:10px;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 20' preserveAspectRatio='none'%3E%3Cpath d='M3 4C28 17 72 17 97 4' fill='none' stroke='%2345C6C9' stroke-width='3.5' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") no-repeat center/100% 100%}
.nav-dd{position:relative}
.nav-menu{display:none;position:absolute;top:calc(100% + 8px);left:0;min-width:330px;background:#fff;border:1px solid var(--linia);border-radius:var(--r-m);padding:8px;z-index:50}
.nav-dd>button[aria-expanded=true]+.nav-menu,.nav-dd:focus-within .nav-menu{display:block}
@media (hover:hover){.nav-dd:hover .nav-menu{display:block}.nav-dd::after{content:"";position:absolute;left:0;right:0;top:100%;height:10px}}
.nav-menu a{display:flex;align-items:center;gap:14px;padding:10px 12px;border-radius:10px;text-decoration:none;font-weight:600}
.nav-menu a:hover{background:var(--szary)}
.nav-menu a .ic{color:var(--morski);flex:none}
.nav-menu .nav-wszystkie{justify-content:space-between;border-top:1px solid var(--linia);border-radius:0 0 10px 10px;margin-top:6px;padding-top:14px;color:var(--morski)}
.hd-r{margin-left:auto;display:flex;align-items:center;gap:10px}
.hd-tel{display:inline-flex;align-items:center;gap:8px;font-weight:700;text-decoration:none;padding:0 12px}
.hd-r .btn{min-height:46px}
.hd-menu{display:none;background:none;border:0;padding:10px;cursor:pointer;color:var(--tekst)}
.okr{display:flex;flex-wrap:wrap;gap:10px;align-items:baseline;line-height:1.5;font-size:0.9375rem;color:var(--tekst-2);padding-top:22px;padding-bottom:0}
.okr a{color:var(--tekst-2)}
.okr .sep{color:var(--linia-2)}

/* ---------- sekcje ---------- */
.sec{padding:120px 0}
.sec-szara{background:var(--szary)}
.sec-ciemna{background:var(--morski);color:#fff;--tekst:#fff;--tekst-2:#CFE3E1;--linia:rgba(255,255,255,.2);--linia-2:rgba(255,255,255,.4)}
.sec-ciemna p,.sec-ciemna .lead,.sec-ciemna .mini{color:#CFE3E1}
.sec-ciemna .lnk{color:#fff}.sec-ciemna .lnk span{text-decoration-color:var(--turkus)}
.sec-ciemna .btn-s{background:transparent;color:#fff;border-color:rgba(255,255,255,.45)}
.sec-ciemna .btn-s:hover{border-color:#fff}
.sec-ciemna .karta{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.18);color:#fff}
.sec-ciemna .karta-szara{background:rgba(255,255,255,.08)}
.sec-ciemna .rays{color:var(--turkus)}
.sec-ciemna .fud-i .ic{color:var(--turkus)}
.sec-ciemna .dp{background:rgba(227,179,65,.18);color:#F6DE9A}
.sec-ciemna .kroki .nr{color:var(--turkus)}
.sec-ciemna .kroki li{border-color:rgba(255,255,255,.2)}
.sec>.wrap>h2:first-child+.lead,.sec>.wrap>h2+p{margin-bottom:8px}
.sec>.wrap>.lead+*{margin-top:36px}
.kotwica{display:block;position:relative;top:-110px}

/* hero */
.sec-hero{padding:56px 0 96px}
.hero-g{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:72px;align-items:center}
.hero-70{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.hero-t h1{margin-bottom:22px;max-width:16ch}
.hero-t .lead{font-size:1.25rem}
.hero-sam{max-width:820px}
.hero-sam h1{max-width:22ch}
.hero-f{position:relative}

/* ---------- zdjęcia: drzwi z futryną ---------- */
.foto{margin:0;overflow:hidden;border-radius:var(--r-m);background:var(--sage)}
.foto img{width:100%;height:100%;object-fit:cover}
.foto-portret img{object-position:center 18%}
.foto-drzwi{border-radius:var(--r-drzwi);aspect-ratio:4/5;position:relative;overflow:visible;background:transparent}
.foto-drzwi img{border-radius:var(--r-drzwi);position:relative;z-index:1}
.foto-drzwi::after{content:"";position:absolute;inset:16px -16px -16px 16px;border:1.5px solid var(--sage);border-radius:var(--r-drzwi);z-index:0}
.p-strona-glowna .foto-drzwi img,.p-kontakt .foto-drzwi img{object-position:72% center}
.sr .foto,.sl .foto{aspect-ratio:4/3}
.sr .foto-portret{aspect-ratio:4/5}

/* ---------- układy ---------- */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:start}
.split-szeroki{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr)}
.split-70{grid-template-columns:minmax(0,1.7fr) minmax(0,.9fr)}
.sec .split{margin-top:8px}
.sec>.wrap>h2+.lead+.split,.sec>.wrap>.lead+.split{margin-top:40px}
.siatka{display:grid;gap:20px;margin-top:32px}
.siatka-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.siatka-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.siatka-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.siatka-1{grid-template-columns:1fr}
.karta{background:var(--bialy);border:1px solid var(--linia);border-radius:var(--r-m);padding:30px}
.sec-szara .karta{border-color:transparent}
.karta-szara{background:var(--szary);border-color:transparent}
.sec-szara .karta-szara{background:var(--bialy)}
.karta>*:last-child{margin-bottom:0}
.karta h3{margin-bottom:10px}
.karta .foto{margin:-30px -30px 22px;border-radius:var(--r-m) var(--r-m) 0 0;aspect-ratio:16/10}
.stos>*+*{margin-top:12px}

/* linia faktów pod przyciskami */
.fud{display:flex;flex-wrap:wrap;gap:10px 26px;margin:6px 0 10px;font-size:0.9375rem;color:var(--tekst-2)}
.fud-i{display:inline-flex;align-items:center;gap:8px}
.fud-i .ic{color:var(--morski);flex:none}
.fud-star .ic{color:#D6962A}
.fud a{color:inherit;text-underline-offset:4px}

/* ---------- lista usług (wyróżnik: ikona zęba obok nazwy) ---------- */
.uslugi{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 48px;margin-top:40px;border-top:1px solid var(--linia)}
.usl{display:grid;grid-template-columns:52px minmax(0,1fr) 28px;gap:20px;align-items:start;padding:28px 0;border-bottom:1px solid var(--linia);text-decoration:none;color:inherit}
.usl-ic{color:var(--morski);padding-top:2px}
.usl h3{margin-bottom:6px;transition:color .15s}
.usl p{font-size:1rem;color:var(--tekst-2);margin-bottom:8px}
.usl p:last-child{margin-bottom:0}
.usl b{color:var(--morski)}
.usl-go{color:var(--sage);padding-top:4px;transition:transform .2s,color .2s}
.usl:hover h3{color:var(--morski)}
.usl:hover .usl-go{transform:translateX(4px);color:var(--morski)}
.usl .fud{margin:4px 0 0}
.usl:first-child{grid-column:1/-1;grid-template-columns:72px minmax(0,1fr) 28px;padding:36px 0}
.usl:first-child .usl-ic svg{width:60px;height:60px}
.usl:first-child h3{font-size:1.75rem}

/* ---------- listy z promieniami z logo ---------- */
.rays-list{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:12px}
.rays-list li{display:grid;grid-template-columns:30px 1fr;gap:10px;align-items:start}
.rays{color:var(--morski);margin-top:5px}

/* ---------- kroki (prawdziwa kolejność) ---------- */
.kroki{list-style:none;padding:0;margin:36px 0 0;display:grid;gap:0}
.kroki li{display:grid;grid-template-columns:64px 1fr;gap:20px;padding:24px 0;border-top:1px solid var(--linia)}
.kroki .nr{font:600 2.5rem/1 var(--f-nag);color:var(--morski);font-variation-settings:'SOFT' 100,'opsz' 72}
.kroki h3{margin-bottom:6px}
.kroki p{margin:0}
.kroki-rzad{grid-template-columns:repeat(var(--n,4),minmax(0,1fr));gap:32px}
.kroki-rzad li{grid-template-columns:1fr;gap:14px;padding:24px 0 0}

/* ---------- cennik ---------- */
.cennik{border-top:2px solid var(--tekst)}
.cw{display:flex;align-items:baseline;gap:14px;padding:18px 0;border-bottom:1px solid var(--linia)}
.cw-n{flex:1;display:flex;align-items:baseline;gap:14px;min-width:0}
.cw-n::after{content:"";flex:1;min-width:24px;border-bottom:1.5px dotted var(--linia-2);transform:translateY(-5px)}
.cw-c{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:1.125rem}
.cw-c b{font-weight:700}
.tabela-wrap{overflow-x:auto;margin:16px 0}
.tabela{width:100%;border-collapse:collapse;font-size:1rem}
.tabela th{text-align:left;font-weight:700;padding:12px 16px 12px 0;border-bottom:2px solid var(--tekst)}
.tabela td{padding:14px 16px 14px 0;border-bottom:1px solid var(--linia);vertical-align:top}
.tabela td:last-child,.tabela th:last-child{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.cena-duza{font:600 2.5rem/1.1 var(--f-nag);color:var(--morski)}

/* ---------- pytania ---------- */
.pytania{margin-top:28px;border-top:1px solid var(--linia);max-width:880px}
.pyt{border-bottom:1px solid var(--linia)}
.pyt summary{list-style:none;display:flex;justify-content:space-between;gap:24px;align-items:center;padding:22px 0;cursor:pointer}
.pyt summary::-webkit-details-marker{display:none}
.pyt summary h3{font-size:1.25rem}
.pyt-z{flex:none;width:36px;height:36px;border-radius:50%;border:1px solid var(--linia-2);display:grid;place-items:center;color:var(--morski);transition:transform .2s}
.pyt[open] .pyt-z{transform:rotate(45deg)}
.pyt-o{padding:0 56px 22px 0}
.sec-ciemna .pytania,.sec-ciemna .pyt{border-color:rgba(255,255,255,.2)}

/* ---------- zespół ---------- */
.zespol-siatka{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:36px}
.osoba{display:grid;grid-template-columns:160px minmax(0,1fr);gap:24px;align-items:start;background:var(--bialy);border:1px solid var(--linia);border-radius:var(--r-m);padding:18px}
.sec-szara .osoba{border-color:transparent}
.osoba .foto{aspect-ratio:4/5;border-radius:80px 80px 14px 14px}
.osoba h3{font-size:1.25rem;margin:6px 0 4px}
.osoba .rola{font-size:0.875rem;font-weight:700;color:var(--morski);margin-bottom:10px}
.osoba p{font-size:1rem}
.p-strona-glowna .zespol-siatka,.p-zespol .zespol-siatka{grid-template-columns:repeat(3,minmax(0,1fr))}
.p-strona-glowna .osoba,.p-zespol .osoba{grid-template-columns:1fr;padding:0;border:0;background:transparent}
.p-strona-glowna .osoba .foto,.p-zespol .osoba .foto{aspect-ratio:4/4.4}

/* ---------- telefon, mapa, ramka rezerwacji ---------- */
.tel-duzy{margin:8px 0}
.tel-duzy a{display:inline-flex;align-items:center;gap:12px;font:600 2.25rem/1.1 var(--f-nag);text-decoration:none;color:var(--morski)}
.sec-ciemna .tel-duzy a{color:#fff}
.mapa{position:relative;border-radius:var(--r-m);overflow:hidden;min-height:420px;display:grid;align-items:end;background:var(--morski)}
.mapa>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.35;filter:saturate(.6)}
.mapa-k{position:relative;margin:24px;background:#fff;border-radius:12px;padding:24px;max-width:420px}
.mapa-k p{margin-bottom:6px}
.mapa-k .btns{margin:14px 0 8px}
.mapa-pin{color:var(--morski);display:block;margin-bottom:8px}
.ramka{border:1px solid var(--linia-2);border-radius:var(--r-m);min-height:var(--h,600px);display:grid;grid-template-rows:auto 1fr;background:#fff;overflow:hidden}
.ramka-kroki{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);background:var(--szary);border-bottom:1px solid var(--linia)}
.ramka-kroki li{display:flex;gap:10px;align-items:center;padding:16px 20px;font-size:0.9375rem;font-weight:600}
.ramka-kroki span{width:28px;height:28px;border-radius:50%;background:var(--morski);color:#fff;display:grid;place-items:center;font-size:0.875rem;flex:none}
.ramka-tresc{display:grid;place-items:center;align-content:center;gap:14px;text-align:center;padding:40px;color:var(--tekst-2)}
.ramka-tresc .ic{color:var(--morski)}
.ramka-tresc p{margin:0 auto;max-width:42ch}

/* ---------- dokument prawny ---------- */
.dok{display:grid;grid-template-columns:260px minmax(0,1fr);gap:56px}
.dok-spis{position:sticky;top:110px;align-self:start;font-size:0.9375rem}
.dok-spis ol{padding-left:20px;margin:0;display:grid;gap:6px}
.dok-spis a{color:var(--tekst-2)}
.dok-tresc h2{font-size:1.5rem;margin:36px 0 10px;max-width:none}
.dok-tresc h2:first-child{margin-top:0}

/* zakładki */
.zakladki [role=tablist]{display:flex;gap:6px;flex-wrap:wrap;margin:20px 0}
.zakladki [role=tab]{font:600 0.9375rem var(--f-tekst);padding:10px 16px;border-radius:999px;border:1px solid var(--linia-2);background:#fff;cursor:pointer}
.zakladki [role=tab][aria-selected=true]{background:var(--morski);color:#fff;border-color:var(--morski)}

/* ---------- stopka ---------- */
.st{background:var(--morski-2);color:#CFE3E1;padding:72px 0 32px;font-size:0.9375rem}
.st-g{display:grid;grid-template-columns:1.2fr 1fr 1fr 1.4fr;gap:40px}
.st-marka img{height:64px;width:auto;margin-bottom:14px;background:#fff;border-radius:12px;padding:8px 12px}
.st-h{font-weight:700;color:#fff;margin-bottom:12px}
.st ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.st a{color:#fff;text-decoration:none}.st a:hover{text-decoration:underline}
.st-k li{display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:start}
.st-k .ic{color:var(--turkus);margin-top:2px}
.st .dp{background:transparent;color:#F6DE9A;border-color:#E3B341}
.st-prawne{margin:48px 0 16px;font-size:0.875rem;color:#9FC0BD;max-width:62ch}
.st-dol{display:flex;gap:24px;flex-wrap:wrap;font-size:0.875rem;padding-top:16px;border-top:1px solid rgba(255,255,255,.14)}

/* ---------- podgląd (tylko projekt) ---------- */
.pg{position:fixed;left:16px;bottom:16px;z-index:60;font:600 0.875rem/1.3 var(--f-tekst)}
.pg summary{list-style:none;cursor:pointer;background:#111;color:#fff;padding:10px 16px;border-radius:999px}
.pg summary::-webkit-details-marker{display:none}
.pg-l{position:absolute;bottom:48px;left:0;background:#fff;border:1px solid var(--linia);border-radius:12px;padding:8px;width:250px;max-height:70vh;overflow:auto;display:grid}
.pg-l a{padding:8px 10px;border-radius:8px;text-decoration:none}
.pg-l a:hover{background:var(--szary)}
.pg-l a[aria-current]{background:var(--szary);color:var(--morski)}
.pg-l .pg-o{border-top:1px solid var(--linia);margin-top:4px;color:var(--morski)}
.mbar{display:none}

/* ---------- responsywność ---------- */
@media (max-width:68.75em){
  .nav{display:none}.hd-menu{display:block}
  body.menu-o .nav{display:flex;flex-direction:column;align-items:stretch;position:fixed;inset:78px 0 0 0;background:#fff;padding:16px 24px;overflow:auto;z-index:45}
  body.menu-o .nav-menu{display:block;position:static;border:0;padding:0 0 0 8px;min-width:0}
  .hero-g,.split,.split-szeroki,.split-70,.dok{grid-template-columns:minmax(0,1fr);gap:44px}
  .hero-f{max-width:520px}
  .st-g{grid-template-columns:1fr 1fr}
  .siatka-3,.siatka-4,.p-strona-glowna .zespol-siatka,.p-zespol .zespol-siatka{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kroki-rzad{grid-template-columns:1fr 1fr}
  .dok-spis{position:static}
  .pasek-adr{display:none}
}
@media (max-width:47.5em){
  body{font-size:1.0625rem;padding-bottom:76px}
  .wrap{padding:0 16px}
  .pasek{display:none}
  .hd-w{min-height:64px;gap:12px}.logo img{height:42px}
  .hd-tel span,.hd-r .btn{display:none}
  body.menu-o .nav{inset:64px 0 0 0}
  .sec{padding:72px 0}.sec-hero{padding:28px 0 64px}
  .lead,.hero-t .lead{font-size:1.125rem}
  .foto-drzwi::after{inset:10px -8px -10px 8px}
  .hero-f{max-width:none;margin-right:8px}
  .uslugi{grid-template-columns:1fr}
  .usl,.usl:first-child{grid-template-columns:40px minmax(0,1fr);gap:14px}
  .usl-go{display:none}
  .usl-ic svg,.usl:first-child .usl-ic svg{width:36px;height:36px}
  .usl:first-child h3{font-size:1.375rem}
  .siatka-2,.siatka-3,.siatka-4,.zespol-siatka,.p-strona-glowna .zespol-siatka,.p-zespol .zespol-siatka,.kroki-rzad{grid-template-columns:1fr}
  .osoba{grid-template-columns:112px minmax(0,1fr);gap:16px}
  .p-strona-glowna .osoba,.p-zespol .osoba{grid-template-columns:112px minmax(0,1fr)}
  .p-strona-glowna .osoba .foto,.p-zespol .osoba .foto{aspect-ratio:4/5}
  .karta{padding:22px}.karta .foto{margin:-22px -22px 18px}
  .kroki li{grid-template-columns:48px 1fr}.kroki .nr{font-size:2rem}
  .pyt-o{padding-right:0}
  .ramka-kroki{grid-template-columns:1fr}
  .mapa{min-height:340px}.mapa-k{margin:12px}
  .tel-duzy a{font-size:1.875rem}
  .cw{flex-wrap:wrap;gap:4px 14px}.cw-n::after{display:none}.cw-c{white-space:normal;margin-left:auto;text-align:right}
  .st-g{grid-template-columns:1fr}
  .btns .btn{flex:1 1 auto}
  .mbar{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:50;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--linia)}
  .pg{bottom:84px;left:auto;right:8px}.pg summary{padding:8px 12px;font-size:0.8125rem}.pg-l{left:auto;right:0}
}
.cw-c:has(.dp){white-space:normal;max-width:55%;text-align:right}

/* ================= rytm i odstępy (30.10, uwaga: za dużo tekstu, za mało odstępów) ================= */
.sec>.wrap>*,.karta>*,.sl>*,.sr>*,.hero-t>*,.faq-l>*,.sec-hd>div>*,.wyb>div>*,.osoba>div>*{margin-top:0;margin-bottom:0}
.sec>.wrap>*+*,.sl>*+*,.sr>*+*,.hero-t>*+*,.faq-l>*+*{margin-top:22px}
.karta>*+*,.osoba>div>*+*,.wyb>div>*+*{margin-top:12px}
.sec>.wrap>*+:is(.split,.siatka,.uslugi,.kroki,.cennik,.zespol-siatka,.kafle,.wybor,.tabela-wrap,.pytania,.mapa,.dok),
.sec-hd+*{margin-top:56px}
.sl>*+:is(.siatka,.cennik,.kroki,.kafle,.tabela-wrap),.sr>*+:is(.siatka,.kafle,.karta){margin-top:32px}
.hero-t>h1+.lead{margin-top:26px}
.hero-t>.btns{margin-top:36px}
.btns+.fud{margin-top:18px}
.karta{padding:36px}
.karta .foto{margin:-36px -36px 24px}
.siatka{gap:24px}
.p-uslugi .siatka-2 .karta,.siatka-2 .karta{padding:40px}
h2{margin-bottom:0}
.label{margin:0}
/* wyróżniona cena w karcie */
.cena-k{font:600 2.125rem/1.1 var(--f-nag);font-variation-settings:'SOFT' 100,'opsz' 48;color:var(--morski)}
.sec-ciemna .cena-k{color:#fff}
.karta h3+.cena-k{margin-top:8px}
.cena-k+p{padding-top:14px;border-top:1px solid var(--linia)}

/* nagłówek sekcji w dwóch kolumnach */
.sec-hd{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:end}
.sec-hd h2{max-width:20ch}
.sec-hd .lead{max-width:56ch}

/* pytania: nagłówek przyklejony z lewej, akordeon z prawej */
.faq{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:72px;align-items:start}
.faq-l{position:sticky;top:120px}
.faq .pytania{margin-top:0;max-width:none}

/* kafle linków (więcej niż dwa linki) */
.kafle{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.kafel{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:center;padding:20px 22px;background:var(--bialy);
  border:1px solid var(--linia);border-radius:var(--r-m);text-decoration:none;color:var(--tekst);font-weight:600;line-height:1.35;transition:border-color .15s}
.kafel:hover{border-color:var(--morski)}
.kafel-ic{color:var(--morski);display:grid}
.kafel-go{color:var(--sage);transition:transform .2s,color .2s}
.kafel:hover .kafel-go{transform:translateX(3px);color:var(--morski)}
.sec-szara .kafel{border-color:transparent}
.sec-szara .kafel:hover{border-color:var(--morski)}
.sec-ciemna .kafel{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.18);color:#fff}
.sec-ciemna .kafel-ic{color:var(--turkus)}
.sr .kafle,.sl .kafle,.karta .kafle{grid-template-columns:1fr}

/* karty wyboru rodzaju wizyty */
.wybor{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.wyb{display:grid;grid-template-columns:56px minmax(0,1fr);gap:22px;align-items:start;background:var(--bialy);border-radius:var(--r-m);padding:32px}
.wyb-ic{color:var(--morski)}
.wyb h3{font-size:1.375rem}
.wyb-co{font-size:1rem;color:var(--tekst-2);display:flex;flex-wrap:wrap;gap:6px 10px;align-items:baseline}
.wyb-co b{color:var(--tekst);font-weight:700}
.wyb-cena{font-weight:700;color:var(--morski);background:var(--szary);border-radius:999px;padding:2px 12px}
.wyb-pilne{grid-column:1/-1;background:var(--morski);color:#fff}
.wyb-pilne .wyb-ic{color:var(--turkus)}
.wyb-pilne .wyb-co,.wyb-pilne .mini{color:#CFE3E1}
.wyb-pilne .wyb-co b{color:#fff}
.wyb-pilne .dp{background:rgba(227,179,65,.18);color:#F6DE9A}

/* hero rezerwacji: tekst i telefon u góry, ramka na całą szerokość */
.rez-top{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:64px;align-items:end}
.rez-tel .karta{padding:32px}
.rez-tel h2{font-size:1.75rem}
.rez-ramka{margin-top:48px}
.rez-ramka>*+*{margin-top:14px}
.ramka{min-height:clamp(640px,70vh,900px)}

/* kroki w siatce (5 i więcej) */
.kroki-siatka{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 40px}
.kroki-siatka li{grid-template-columns:56px 1fr}

/* 404: po lewej 4·ząb·4 z tytułem, po prawej kafle, wszystko w pierwszym ekranie */
.p-404 .sec-hero{padding:40px 0 72px}
.z404{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:72px;align-items:center}
.z404-l>*+*{margin-top:28px}
.z404-g{display:flex;align-items:center;color:var(--morski);font:600 clamp(110px,11.5vw,176px)/.9 var(--f-nag);
  font-variation-settings:'SOFT' 100,'opsz' 144;letter-spacing:-.04em;margin-left:-.04em}
.z404-zab{width:1.05em;height:1.05em;margin:0 -.06em;color:var(--morski);overflow:visible}
.z404-t>*+*{margin-top:18px}
.z404-t h1{font-size:clamp(34px,3.6vw,50px);max-width:15ch}
.z404-t .lead{max-width:46ch}
.z404-h2{font-size:1.5rem;margin:0 0 18px}
.z404-kafle{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.z404-kafle .kafel{padding:14px 16px;gap:12px;font-size:0.9375rem}
.z404-kafle .kafel-ic svg{width:26px;height:26px}
.z404-kafle .kafel:nth-child(n+6){background:var(--szary);border-color:transparent}
.z404-kafle .kafel:nth-child(n+6):hover{border-color:var(--morski)}
.z404-kreska{stroke-dasharray:100}
@media (prefers-reduced-motion:no-preference){
  .z404-kreska{animation:z404-rys 1.5s cubic-bezier(.6,0,.3,1) .25s both}
  .z404-wyp{animation:z404-wyp .7s ease-out 1.6s both}
  .z404-prom{animation:z404-prom .45s cubic-bezier(.3,1.5,.5,1) 2.15s both;transform-box:fill-box;transform-origin:50% 100%}
  .z404-g>span{animation:z404-cyfra .7s cubic-bezier(.2,.8,.2,1) both}
  .z404-g>span:last-child{animation-delay:.12s}
}
@keyframes z404-rys{from{stroke-dashoffset:100}}
@keyframes z404-wyp{from{opacity:0}}
@keyframes z404-prom{from{opacity:0;transform:scale(.4)}}
@keyframes z404-cyfra{from{opacity:0;transform:translateY(.12em)}}

@media (max-width:68.75em){
  .sec-hd,.faq,.rez-top,.z404{grid-template-columns:minmax(0,1fr);gap:28px}
  .z404{gap:48px}
  .faq-l{position:static}
  .kroki-siatka{grid-template-columns:repeat(2,minmax(0,1fr))}
  .wybor{grid-template-columns:1fr}
}
@media (max-width:47.5em){
  .wrap{padding:0 16px}
  .sec{padding:80px 0}
  .karta,.wyb{padding:24px}.karta .foto{margin:-24px -24px 18px}
  .wyb{grid-template-columns:40px minmax(0,1fr);gap:14px}.wyb-ic svg{width:36px;height:36px}
  .kroki-siatka{grid-template-columns:1fr}
  .sec>.wrap>*+:is(.split,.siatka,.uslugi,.kroki,.cennik,.zespol-siatka,.kafle,.wybor,.tabela-wrap,.pytania,.mapa,.dok),.sec-hd+*{margin-top:40px}
  .z404-g{order:-1}
}

/* ================= obrazowanie zamiast tekstu ================= */
/* lista z ikonami tematów (objawy, kroki, zasady) */
.ik-list{list-style:none;padding:0;margin:0;display:grid;gap:18px}
.ik-list li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:14px;align-items:start}
.ik-l{width:44px;height:44px;border-radius:50%;background:var(--szary);color:var(--morski);display:grid;place-items:center}
.karta .ik-l,.sec-szara .ik-l{background:var(--bialy)}
.sec-szara .karta .ik-l{background:var(--szary)}
.sec-ciemna .ik-l{background:rgba(255,255,255,.1);color:var(--turkus)}
.ik-list li>span:last-child{padding-top:9px}
.wrap>.ik-list,.sl>.ik-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 40px}
/* ikona w tytule kroku */
.kr-ic{display:inline-grid;vertical-align:-6px;margin-right:10px;color:var(--morski)}
.sec-ciemna .kr-ic{color:var(--turkus)}
/* skala cen: wspólna oś dla wierszy tabeli */
.cw{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(80px,1fr) auto;align-items:center;gap:20px}
.cw-n::after{display:none}
.sk{position:relative;height:10px;border-radius:999px;background:var(--szary)}
.sec-szara .sk,.karta .sk{background:var(--bialy);box-shadow:inset 0 0 0 1px var(--linia)}
.sk>span{position:absolute;top:0;bottom:0;border-radius:999px}
.sk-zakres{background:var(--sage)}
.sk-punkt{width:10px!important;margin-left:-5px;background:var(--morski)}
.sk-od{background:linear-gradient(90deg,var(--morski) 0 10px,var(--morski-jasny) 10px)}
.cw:not(:has(.sk)){grid-template-columns:minmax(0,1fr) auto}
/* rozwinięcie (kursy) */
.rozw{border-top:1px solid var(--linia);padding-top:12px}
.rozw summary{list-style:none;display:flex;align-items:center;gap:10px;cursor:pointer;font-weight:700;color:var(--morski)}
.rozw summary::-webkit-details-marker{display:none}
.rozw-z{margin-left:auto;transition:transform .2s}
.rozw[open] .rozw-z{transform:rotate(180deg)}
.kursy{margin:12px 0 0;padding-left:20px;display:grid;gap:8px;font-size:0.9375rem;color:var(--tekst-2)}
/* skrót dokumentu */
.skrot{background:var(--szary);border-radius:var(--r-m);padding:32px 36px;margin-bottom:56px}
.skrot .ik-list{margin-top:18px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px 36px}
.skrot .ik-l{background:var(--bialy)}
@media (max-width:47.5em){
  .wrap>.ik-list,.sl>.ik-list{grid-template-columns:1fr}
  .cw{grid-template-columns:minmax(0,1fr) auto;gap:6px 14px}.sk{grid-column:1/-1;grid-row:2}
  .skrot{padding:24px}
}
@media print{details>*{display:block}}
.osoba{align-content:start}
/* kafle w karcie osoby: zwarte */
.osoba .kafle{grid-template-columns:1fr;gap:8px}
.osoba .kafel{padding:10px 14px;gap:12px;font-size:0.9375rem}
.osoba .kafel-ic svg{width:22px;height:22px}

.dok-tresc{max-width:62ch}
.dok-tresc li{margin:6px 0}
.dp{overflow-wrap:anywhere}
@media (max-width:47.5em){.cw-c:has(.dp){max-width:100%}}

/* ================= 31.10: kontakt, mapa, kafle, kroki, spis ================= */
/* jedna informacja raz: adres, godziny, dojazd i e-mail obok mapy */
.kontakt{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:64px;align-items:stretch}
.kontakt-l>*{margin:0}
.kontakt-l>*+*{margin-top:40px}
.kontakt-l>.btns+*{margin-top:22px}
.kinfo{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 36px}
.kinfo li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:14px;align-items:start}
.kinfo h3{font:700 0.9375rem/1.4 var(--f-tekst);color:var(--tekst-2);margin:0 0 6px;padding-top:11px}
.kinfo p{margin:0}
.kinfo p+p{margin-top:6px}
.kinfo a[href^=mailto]{color:var(--morski);font-weight:600;text-underline-offset:4px;white-space:nowrap}
.kontakt-r .mapa{height:100%;min-height:520px}
/* mapa: plan ulic z pinezką, zdjęcie wejścia w rogu, przycisk na dole */
.mapa{position:relative;display:block;min-height:420px;border-radius:var(--r-m);overflow:hidden;background:#E4EEED}
.mapa-plan{position:absolute;inset:0;width:100%;height:100%}
.mapa-znacznik{position:absolute;left:42%;top:46%;transform:translate(-50%,-100%);display:grid;justify-items:center;gap:6px;color:var(--morski)}
.mapa-znacznik .ic{fill:var(--turkus);stroke:var(--morski)}
.mapa-znacznik b{background:var(--morski);color:#fff;font-size:0.875rem;padding:3px 12px;border-radius:999px}
.mapa-k{position:absolute;left:20px;bottom:20px;right:20px;margin:0;max-width:none;display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;
  background:none;padding:0}
.mapa-k .btn{background:#fff}
.mapa-k .mini{margin:0;color:var(--tekst-2);background:rgba(255,255,255,.85);padding:4px 10px;border-radius:8px}
.mapa-foto{position:absolute;right:20px;top:20px;width:min(40%,220px);margin:0;background:#fff;padding:8px 8px 10px;border-radius:14px}
.mapa-foto img{aspect-ratio:4/5;object-fit:cover;border-radius:9px;width:100%}
.mapa-foto figcaption{font-size:0.8125rem;line-height:1.3;color:var(--tekst-2);padding:8px 4px 0}
/* kafle: tyle kolumn, ile linków (bez sierot) */
.sec>.wrap>.kafle-3,.sec>.wrap>.kafle-6,.sec>.wrap>.kafle-9{grid-template-columns:repeat(3,minmax(0,1fr))}
.sec>.wrap>.kafle-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.sec>.wrap>.kafle-5{grid-template-columns:repeat(5,minmax(0,1fr))}
.kafle-pion .kafel{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"ic go" "t t";align-items:start;gap:28px 12px;padding:24px;min-height:168px}
.kafle-pion .kafel-ic{grid-area:ic}.kafle-pion .kafel-go{grid-area:go}
.kafle-pion .kafel-t{grid-area:t;align-self:end}
.kafle-pion .kafel-ic svg{width:40px;height:40px}
/* karta pilna: przycisk telefonu w prawym górnym rogu */
.wyb-pilne{grid-template-columns:56px minmax(0,1fr) auto}
.wyb-tel{align-self:start;white-space:nowrap}
/* kroki w rzędzie: karty, numer na górze, treść wyrównana do góry */
.kroki-rzad{gap:24px}
.kroki-rzad li{border:0;border-radius:var(--r-m);background:var(--szary);padding:36px 32px;align-content:start;gap:20px}
.sec-szara .kroki-rzad li{background:var(--bialy)}
.sec-ciemna .kroki-rzad li{background:rgba(255,255,255,.07)}
.kroki-rzad .nr{font-size:3.25rem;color:var(--morski)}
.sec-ciemna .kroki-rzad .nr{color:var(--turkus)}
.kroki-rzad h3{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.kroki-rzad .kr-ic{margin:0}
/* przypis: jedno zdanie z linkiem */
.przypis{display:flex;gap:10px;align-items:flex-start;font-size:0.9375rem;color:var(--tekst-2);max-width:none}
.przypis>.ic{flex:none;margin-top:3px;color:var(--sage)}
/* spis treści dokumentu: numer raz, bez podkreśleń */
.dok-spis ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.dok-spis a{display:grid;grid-template-columns:40px minmax(0,1fr);gap:6px;padding:6px 0;text-decoration:none;color:var(--tekst-2);line-height:1.45}
.dok-spis a:hover{color:var(--morski)}
.spis-nr{font-weight:700;color:var(--morski)}
@media (max-width:68.75em){
  .kontakt{grid-template-columns:minmax(0,1fr);gap:40px}
  .sec>.wrap>.kafle-4,.sec>.wrap>.kafle-5{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:47.5em){
  .kinfo{grid-template-columns:minmax(0,1fr);gap:22px}
  .kinfo a[href^=mailto]{white-space:normal;overflow-wrap:anywhere}
  .kontakt-r .mapa{min-height:420px}
  .sec>.wrap>:is(.kafle-3,.kafle-4,.kafle-5,.kafle-6,.kafle-9){grid-template-columns:minmax(0,1fr)}
  .kafle-pion .kafel{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"ic t go";align-items:center;min-height:0;padding:20px 22px;gap:16px}
  .kafle-pion .kafel-ic svg{width:30px;height:30px}
  .wyb-pilne{grid-template-columns:40px minmax(0,1fr)}
  .wyb-tel{grid-column:1/-1}
  .kroki-rzad li{padding:28px 24px}
}

/* ================= 31.10 (2): ilustracje, łuk w H1, wykresy, kontakt ================= */
/* lista usług z ilustracją w stylu ręcznego szkicu */
.usl{grid-template-columns:96px minmax(0,1fr) 28px;align-items:center}
.usl-il svg{width:96px;height:96px;display:block}
.usl:first-child{grid-template-columns:128px minmax(0,1fr) 28px}
.usl:first-child .usl-il svg{width:128px;height:128px}
/* łuk uśmiechu pod słowem w H1 */
.luk{position:relative;display:inline-block;white-space:nowrap}
.luk-s{position:absolute;left:-3%;width:106%;bottom:-.16em;height:.28em;color:var(--turkus);overflow:visible;pointer-events:none}
/* wykresy */
.sec>.wrap>.wykres{margin-top:56px}
.sec>.wrap>.wykres+*{margin-top:56px}
.sec-hd-oc{align-items:center}
.sec-hd-oc .oc{justify-content:flex-start}
.ty{display:grid;grid-template-columns:48px minmax(0,1fr);gap:12px;max-width:640px}
.ty-os{display:flex;flex-direction:column;justify-content:space-between;font-size:0.8125rem;color:var(--tekst-2);height:200px}
.ty-k{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.ty-d{display:grid;grid-template-rows:200px auto;gap:10px;justify-items:center}
.ty-d b{font-size:0.875rem}
.ty-pas{width:100%;max-width:56px;height:100%;border-radius:10px;background:var(--szary);position:relative;overflow:hidden}
.sec-szara .ty-pas,.karta .ty-pas{background:var(--bialy)}
.ty-pas::after{content:"";position:absolute;left:0;right:0;top:12%;bottom:18%;border-radius:10px;background:var(--morski)}
.ty-sob::after{bottom:52%}
.ty-maly{grid-template-columns:36px minmax(0,1fr);gap:8px;margin-top:6px}
.ty-maly .ty-os{height:96px;font-size:0.75rem}
.ty-maly .ty-k{gap:6px}
.ty-maly .ty-d{grid-template-rows:96px auto;gap:6px}
.ty-maly .ty-d b{font-size:0.75rem;font-weight:600}
.ty-maly .ty-pas{border-radius:6px}.ty-maly .ty-pas::after{border-radius:6px}
.ty-n{margin:10px 0 0}
.wz{display:flex;align-items:stretch;gap:12px;flex-wrap:wrap;max-width:900px}
.wz-b{flex:1 1 160px;background:var(--morski);color:#fff;border-radius:12px;padding:22px;font-weight:700;display:grid;gap:4px}
.wz-b small{font-weight:500;color:#CFE3E1;font-size:0.9375rem}
.wz-m{background:transparent;color:var(--morski);border:2px dashed var(--sage)}
.wz-m small{color:var(--tekst-2)}
.wz-p{align-self:center;font-size:0.875rem;color:var(--tekst-2)}
.wz-n{margin:12px 0 0}
.zk-w{display:flex;justify-content:space-between;max-width:760px}
.zk{margin:0;display:grid;justify-items:center;gap:6px;color:var(--morski)}
.zk svg{width:110px;height:110px}
.zk figcaption{display:grid;justify-items:center;font-size:0.9375rem;line-height:1.3}
.zk figcaption span{color:var(--tekst-2)}
.zk-skala{display:grid;grid-template-columns:auto 1fr auto;margin-top:14px;font-weight:700;color:var(--morski);max-width:760px}
.zk-pas{grid-column:1/-1;height:10px;border-radius:999px;background:var(--sage);margin-bottom:8px}
.zk-sr{text-align:center;font-weight:500;color:var(--tekst-2);font-size:0.875rem}
.ow{display:flex;gap:6px;max-width:900px}
.ow-s{min-width:0;padding:4px 12px 4px 14px;display:grid;gap:6px;align-content:start;font-size:0.9375rem;line-height:1.3;border-left:3px solid var(--morski)}
.ow-ic{color:var(--morski)}
.ow-s .dp{font-size:0.8125rem;justify-self:start}
.ow-razem{margin:16px 0 0}
.oc{display:flex;gap:24px;align-items:center}
.oc-l{font:600 5.5rem/1 var(--f-nag);color:var(--morski);font-variation-settings:'SOFT' 100,'opsz' 144}
.oc-g{display:flex;gap:4px;color:#D6962A}
.oc p{margin:10px 0 0}
/* Kontakt: dane w czterech blokach pod hero */
.kdane{list-style:none;padding:44px 48px;margin:64px 0 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 64px;background:var(--szary);border-radius:var(--r-m)}
.kdane li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:14px;align-items:start}
.kdane .ik-l{background:var(--bialy)}
.kd-h{font:700 0.9375rem/1.4 var(--f-tekst);color:var(--tekst-2);margin:0 0 6px;padding-top:11px;max-width:none;letter-spacing:0}
.kdane p{margin:0}.kdane p+p{margin-top:8px}
.kd-tel a{font:600 1.75rem/1.1 var(--f-nag);color:var(--morski);text-decoration:none;white-space:nowrap}
.kd-mail{color:var(--morski);font-weight:600;text-underline-offset:4px}
.kdane .ty-pas{background:var(--bialy)}
.kdane .ty-maly{max-width:420px}
/* mapa ze zdjęciem wejścia: kolumny równej wysokości */
.split-mapa{align-items:stretch}
.split-mapa>.sl{display:flex;flex-direction:column}
.split-mapa>.sl>.mapa{flex:1;min-height:440px}
/* karta ze zdjęciem osoby */
.karta-foto{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:48px;align-items:center}
.karta-foto-t>*{margin:0}.karta-foto-t>*+*{margin-top:18px}
.karta-foto .foto{margin:0;border-radius:var(--r-drzwi);aspect-ratio:4/5}
.karta-foto .foto img{border-radius:var(--r-drzwi)}
/* dane podmiotu: zwarta siatka */
.dane{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 32px;margin:0;border-top:1px solid var(--linia)}
.dane>div{padding:16px 0;border-bottom:1px solid var(--linia)}
.dane dt{font-size:0.875rem;color:var(--tekst-2);margin-bottom:2px}
.dane dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums}
.dane .dane-szer{grid-column:span 2}
.sec>.wrap>*+.dane{margin-top:48px}
@media (max-width:68.75em){
  .dane{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:47.5em){
  .usl,.usl:first-child{grid-template-columns:72px minmax(0,1fr)}
  .usl-il svg,.usl:first-child .usl-il svg{width:72px;height:72px}
  .kdane{grid-template-columns:minmax(0,1fr);padding:24px;gap:24px}
  .karta-foto{grid-template-columns:minmax(0,1fr);gap:28px}
  .karta-foto .foto{max-width:260px}
  .dane{grid-template-columns:minmax(0,1fr)}.dane .dane-szer{grid-column:auto}
  .z404-kafle{grid-template-columns:minmax(0,1fr)}
  .ow{flex-direction:column}
  .ty-k{gap:6px}
  .zk svg{width:72px;height:72px}
  .oc-l{font-size:4rem}
}
.dane>div:last-child:nth-child(3n+1){grid-column:1/-1}

/* ================= 31.10 (3): odstępy przycisków, spis, mapa, godziny, karty wizyt, zespół ================= */
/* przyciski zawsze z odstępem od tekstu nad nimi (wcześniej .btns{margin:0} zerowało odstęp w kolumnach i kartach) */
:is(.sl,.sr,.faq-l,.karta,.osoba>div,.kontakt-l,.karta-foto-t,.z404-t)>*+.btns{margin-top:32px}
.sec>.wrap>*+.btns{margin-top:40px}
.btns+:is(.fud,.mini,.lnk-p){margin-top:18px}
/* spis treści dokumentów: cichszy, numer tuż przy tytule, bez zawijania */
.dok{grid-template-columns:300px minmax(0,1fr);gap:80px}
.dok-tresc{max-width:66ch}
.dok-spis{font-size:0.875rem}
.dok-spis .label{font-size:0.875rem;font-weight:600;color:var(--tekst-2);margin:0 0 10px}
.dok-spis ul{gap:0;border-left:1px solid var(--linia)}
.dok-spis a{grid-template-columns:auto minmax(0,1fr);gap:6px;padding:5px 0 5px 16px;color:var(--tekst-2);line-height:1.45}
.dok-spis a:hover{color:var(--morski)}
.spis-nr{font-weight:400;color:#5E7072;min-width:1.4em}
.spis-par .spis-nr{min-width:2.1em}
/* mapa: zrzut z Google Maps, po kliknięciu ramka */
.mapa>.mapa-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 47%;opacity:1;filter:none}
.mapa iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.mapa-on .mapa-k{display:none}
.kontakt-r{display:flex;flex-direction:column;gap:16px}
.kontakt-r .mapa{flex:1;height:auto;min-height:400px}
.split-mapa>.sl>.mapa{min-height:420px}
/* zdjęcie wejścia: osobno, małe, z podpisem */
.wejscie{margin:0;display:grid;grid-template-columns:128px minmax(0,1fr);gap:16px;align-items:center}
.wejscie img{width:128px;aspect-ratio:4/3;object-fit:cover;border-radius:12px}
.wejscie figcaption{display:grid;gap:2px;font-size:0.9375rem;line-height:1.4}
.wejscie figcaption span{color:var(--tekst-2)}
.sr>.wejscie{margin-top:28px}
/* godziny przyjęć tekstem */
.godz{margin:0;display:grid;gap:4px}
.godz>div{display:grid;grid-template-columns:104px auto;gap:12px}
.godz dt{color:var(--tekst-2)}
.godz dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums}
/* karty wyboru wizyty: sytuacja u góry, pod linią decyzja: nazwa i cena w jednym wierszu */
.wyb{grid-template-columns:48px minmax(0,1fr) auto;gap:20px;align-items:center;padding:28px 32px;align-content:start}
.wyb>h3{font-size:1.3125rem;margin:0}
.wyb-pilne{grid-template-columns:48px minmax(0,1fr) auto}
.wyb-tel{grid-column:3;align-self:center}
.wyb-dol{grid-column:1/-1;border-top:1px solid var(--linia);padding-top:18px;display:grid;gap:6px}
.wyb>.wyb-dol>*{margin:0}
.wyb-l{font-size:0.875rem;color:var(--tekst-2)}
.wyb>.wyb-dol>.wyb-co{display:flex;justify-content:space-between;align-items:baseline;gap:16px;color:var(--tekst)}
.wyb-co b{font:600 1.375rem/1.25 var(--f-nag);font-variation-settings:'SOFT' 100,'opsz' 24}
.wyb-cena{font:600 1.375rem/1.25 var(--f-nag);font-variation-settings:'SOFT' 100,'opsz' 24;color:var(--morski);background:none;padding:0;white-space:nowrap}
.wyb>.wyb-dol>.lnk-p,.wyb>.wyb-dol>.mini{margin-top:8px}
.wyb-pilne .wyb-dol{border-color:rgba(255,255,255,.2)}
.wyb-pilne .wyb-l{color:#CFE3E1}
.wyb-pilne .wyb-co b{color:#fff}
/* oś pierwszej wizyty: jeden pasek na całą szerokość */
.ow{display:block;max-width:none}
.ow-pas{display:flex;gap:6px;height:12px}
.ow-o{border-radius:999px}
.ow-o0{background:var(--sage)}.ow-o1{background:var(--morski)}.ow-o2{background:var(--turkus)}
.ow-pod{display:flex;gap:6px;margin-top:18px}
.ow-s{display:flex;gap:12px;align-items:flex-start;border:0;padding:0 16px 0 0;min-width:0;font-size:1rem}
.ow-s>div{display:grid;gap:6px;justify-items:start}
.ow-s .ow-ic{margin-top:1px}
.ow-razem{margin:24px 0 0;color:var(--tekst-2);font-size:0.9375rem}
/* listy z ikonami w kolumnie obok zdjęcia: jedna kolumna, zdanie wstępu blisko listy, dalej większy odstęp (prawa Gestalt) */
.sl>.ik-list{grid-template-columns:minmax(0,1fr);gap:16px}
.sl>p+.ik-list{margin-top:16px}
.sl>.ik-list+*{margin-top:36px}
.sl>.lead+p{margin-top:28px}
:is(.sl,.sr)>h3+*{margin-top:18px}
/* ilustracja szkicem w karcie (cennik, „Kiedy” na stronach usług) */
.karta-il{display:block;margin:-6px 0 4px}
.karta-il svg{display:block}
/* zespół: zakres jako jednakowe etykiety, reszta pod rozwinięciem, „Umów” na zdjęciu */
.lek .foto{position:relative}
.lek-umow{position:absolute;left:16px;bottom:16px;min-height:46px;padding:0 18px}
.lek .label{font-size:0.875rem;font-weight:600;color:var(--tekst-2);margin-top:16px}
.lek .label+.zakres{margin-top:8px}
.zakres{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.zakres a{display:inline-flex;align-items:center;gap:6px;padding:6px 14px 6px 10px;border-radius:999px;background:var(--bialy);border:1px solid var(--linia);
  text-decoration:none;font-size:0.9375rem;font-weight:600;color:var(--tekst);transition:border-color .15s}
.zakres a:hover{border-color:var(--morski)}
.zakres .ic{color:var(--morski)}
.rozw-t{margin-top:12px}
.rozw-t>*{margin:0}.rozw-t>*+*{margin-top:10px}
.rozw-t p{font-size:0.9375rem;color:var(--tekst-2)}
@media (max-width:47.5em){
  .ow-pod{flex-direction:column;gap:14px}
  .ow-s{flex:none!important}
  .wyb{grid-template-columns:40px minmax(0,1fr)}
  .wyb-tel{grid-column:1/-1}
  .wejscie{grid-template-columns:96px minmax(0,1fr)}.wejscie img{width:96px}
}
@media (max-width:68.75em){.dok{grid-template-columns:minmax(0,1fr);gap:40px}.dok-spis{position:static}}
.karta-z-il{position:relative}
.karta-il-r{position:absolute;top:16px;right:24px;margin:0}
.karta-z-il:has(.karta-il-r)>h3{padding-right:84px}
.karta-z-il>.karta-il-r+*{margin-top:0}

/* ================= 31.10 (4) ================= */
/* dane podmiotu: cztery najważniejsze na wierzchu, reszta pod rozwinięciem */
.dane-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.dane-4>div:last-child:nth-child(3n+1){grid-column:auto}
.dane-rozw{margin-top:20px;border-top:0;padding-top:0}
.dane-rozw[open] .dane{margin-top:16px}
.dane-rozw .dane>div:last-child:nth-child(3n+1){grid-column:auto}
.dane-rozw .dane>div:last-child:nth-child(3n+2){grid-column:span 2}
/* zdjęcie wejścia: powiększenie po kliknięciu */
.pow{position:relative;display:block;padding:0;border:0;background:none;cursor:zoom-in;border-radius:12px}
.pow img{display:block}
.pow-ic{position:absolute;right:6px;bottom:6px;width:26px;height:26px;border-radius:50%;background:#fff;color:var(--morski);display:grid;place-items:center}
.lb{border:0;padding:0;background:transparent;max-width:min(92vw,960px);max-height:92vh;overflow:visible}
.lb::backdrop{background:rgba(9,48,47,.82)}
.lb img{display:block;max-width:100%;max-height:88vh;border-radius:16px;cursor:zoom-out}
.lb-x{position:absolute;top:-14px;right:-14px;width:44px;height:44px;border-radius:50%;border:0;background:#fff;color:var(--morski);display:grid;place-items:center;cursor:pointer}
.lb-x svg{transform:rotate(45deg)}
/* karty wyboru wizyty: ikona bliżej tytułu, etykieta bliżej nazwy, cieńsze podkreślenie linku */
.wyb,.wyb-pilne{grid-template-columns:40px minmax(0,1fr) auto;column-gap:12px}
.wyb-ic svg{width:40px;height:40px}
.wyb-dol{gap:2px}
.wyb .lnk span{text-decoration-thickness:1px;text-underline-offset:4px}
/* cennik: bez linii pod tytułami kart, linki jako przyciski drugorzędne */
.p-cennik .cennik{border-top:0}
.p-cennik .karta h3+.cennik{margin-top:8px}
.btns-karta{gap:10px}
.karta>*+.btns-karta{margin-top:24px}
@media (max-width:68.75em){.dane-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:47.5em){.dane-4{grid-template-columns:minmax(0,1fr)}.dane-rozw .dane>div{grid-column:auto!important}.wyb,.wyb-pilne{grid-template-columns:40px minmax(0,1fr)}}

/* ================= 31.10 (5) ================= */
/* odznaka z oceną (odznaki.html, wariant 4) w linii pod przyciskami */
.o4{display:inline-flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--linia);border-radius:999px;padding:4px 14px 4px 6px;font-size:0.9375rem;line-height:1}
.o4-l{font:600 1.25rem/1 var(--f-nag);color:var(--morski)}
.o4-t{white-space:nowrap;font-weight:600;color:var(--tekst)}
.o4 svg{display:block;flex:none}
.fud:has(.ocena-p){align-items:center;gap:12px 24px}
/* Kontakt: dane spółki obok zdjęć zespołu */
.dane-split .dane-4{grid-template-columns:repeat(2,minmax(0,1fr))}
.dane-split .dane-rozw .dane{grid-template-columns:repeat(2,minmax(0,1fr))}
.dane-split .dane-rozw .dane>div{grid-column:auto!important}
.zespol-kolaz{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.zespol-kolaz .foto{margin:0;aspect-ratio:4/5;border-radius:120px 120px 14px 14px;overflow:hidden}
.zespol-kolaz .foto img{width:100%;height:100%;object-fit:cover}
.zespol-kolaz .foto:nth-child(2),.zespol-kolaz .foto:nth-child(4){transform:translateY(28px)}
.zespol-kolaz+.mini{margin-top:44px}
/* ceny: kwota wyrównana do pierwszej linii nazwy */
.cw{align-items:baseline}
.cw-c{align-self:baseline}
/* karty cennika: przyciski obok siebie i zawsze na dole karty */
.p-cennik .siatka>.karta{display:flex;flex-direction:column}
.p-cennik .siatka>.karta>.lnk-row,.p-cennik .siatka>.karta>.btns-karta{margin-top:auto;padding-top:24px}
.p-cennik .lnk-row{margin-bottom:0}
.btns-karta .btn-sm{min-height:40px;padding:0 14px;font-size:0.875rem}
.btns-karta{flex-wrap:wrap;gap:8px}
/* cennik: przyklejone zakładki działów */
.sec-taby{padding-top:0}
.taby{position:sticky;top:79px;z-index:30;background:var(--szary);border-bottom:1px solid var(--linia);margin-bottom:88px}
.sec-biala .taby{background:var(--bialy)}
.taby-w{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;padding-top:10px;padding-bottom:10px}
.taby-w::-webkit-scrollbar{display:none}
.taby a{flex:none;padding:10px 16px;border-radius:999px;text-decoration:none;font-weight:600;font-size:0.9375rem;color:var(--tekst-2);white-space:nowrap}
.taby a:hover{color:var(--morski);background:var(--bialy)}
.taby a[aria-current]{background:var(--morski);color:#fff}
html:has(.taby){scroll-padding-top:160px}
@media (max-width:47.5em){.taby{top:64px;margin-bottom:56px}.zespol-kolaz .foto:nth-child(even){transform:none}.dane-split .dane-4,.dane-split .dane-rozw .dane{grid-template-columns:minmax(0,1fr)}}
.dane-split .sl>*+.dane{margin-top:40px}
/* we wszystkich kartach w siatce przyciski i linki akcji stoją na dole */
.siatka>.karta{display:flex;flex-direction:column}
.siatka>.karta>:is(.btns,.lnk-p,.lnk-row,.btns-karta,.kafle):last-child{margin-top:auto;padding-top:24px}

/* ================= 31.10 (6) ================= */
/* ocena na zdjęciu w hero */
.hero-f{position:relative}
.ocena-na-foto{position:absolute;z-index:2}
.ocena-pigulka{left:-56px;bottom:64px}
.ocena-dymek{left:-72px;bottom:40px}
.o4-duza{padding:9px 20px 9px 10px;gap:12px;font-size:1rem;border:0;box-shadow:0 14px 34px rgba(13,68,70,.16)}
.o4-duza .o4-l{font-size:1.5rem}
.o5{display:flex;align-items:center;gap:6px}
.o5-dymek{position:relative;background:#fff;border:1.5px solid var(--morski);border-radius:20px;padding:14px 18px}
.o5-dymek::before{content:"";position:absolute;left:-9px;top:44%;width:16px;height:16px;background:#fff;border-left:1.5px solid var(--morski);border-bottom:1.5px solid var(--morski);transform:rotate(45deg)}
.o-ocena{font:600 2.5rem/1 var(--f-nag);color:var(--morski);margin:0 0 6px;font-variation-settings:'SOFT' 100,'opsz' 144}
.o-l{margin:0;font-size:1rem;white-space:nowrap}.o-l b{font-weight:700}
.o1,.o5{color:var(--tekst)}
.o1 .mini,.o5 .mini{margin:4px 0 0;white-space:nowrap}
.o1{display:flex;align-items:center;gap:18px}
/* opinie: odznaka na tle przewijanych fragmentów */
.op-split{align-items:stretch}
.op-panel{position:relative;height:100%;min-height:460px;border-radius:var(--r-m);background:var(--szary);overflow:hidden;display:grid;place-items:center}
.sec-szara .op-panel{background:var(--bialy)}
.op-tlo{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:0 18px;opacity:.6;
  -webkit-mask-image:linear-gradient(transparent,#000 16%,#000 84%,transparent);mask-image:linear-gradient(transparent,#000 16%,#000 84%,transparent)}
.op-kol{list-style:none;margin:0;padding:0;display:grid;gap:14px;align-content:start}
.op-kol li{background:var(--bialy);border-radius:12px;padding:14px 16px;font-size:0.9375rem;line-height:1.4;display:flex;gap:8px;color:var(--tekst-2)}
.sec-szara .op-kol li{background:var(--szary)}
.op-kol li .ic{color:#D6962A;flex:none;margin-top:3px}
.op-kol-1{margin-top:-70px}
@media (prefers-reduced-motion:no-preference){
  .op-kol{animation:op-przewin 46s linear infinite}
  .op-kol-1{animation-duration:58s}
}
@keyframes op-przewin{to{transform:translateY(-50%)}}
.op-odznaka{position:relative;background:var(--bialy);border-radius:24px;padding:28px 34px;box-shadow:0 20px 50px rgba(13,68,70,.16)}
.op-zrodlo{position:absolute;left:16px;right:16px;bottom:14px;margin:0;font-size:0.8125rem;color:var(--tekst-2);background:rgba(255,255,255,.92);padding:6px 10px;border-radius:8px;max-width:none}
/* zęby z kanałami: ilustracja szkicem na całą szerokość */
.zk-il{max-width:none}
.zk-w{display:flex;justify-content:space-between;max-width:none;padding:0 4%}
.zk svg{width:180px;height:180px}
.zk figcaption{font-size:1rem}
.zk-skala{max-width:none;margin-top:24px}
.zk-pas{height:12px}
/* obok tabeli cen: karta równej wysokości, przycisk na dole */
.split-cena{align-items:stretch}
.karta-cena-obok{height:100%;display:flex;flex-direction:column;background:var(--szary);border:0}
.sec-szara .karta-cena-obok{background:var(--bialy)}
.karta-cena-obok>.ik-l{background:var(--bialy)}
.sec-szara .karta-cena-obok>.ik-l{background:var(--szary)}
.karta-cena-obok>:is(.btns,.lnk-p):last-of-type{margin-top:auto;padding-top:24px}
.karta-cena-obok>*+*{margin-top:16px}
/* Kontakt: dane pod sobą, wyraźne odcięcie od zdjęć zespołu */
.dane-split{gap:96px}
.dane-split>.sr{background:var(--szary);border-radius:var(--r-m);padding:40px 40px 32px}
.dane-split .dane-4,.dane-split .dane-rozw .dane{grid-template-columns:minmax(0,1fr);border-top:1px solid var(--linia)}
.dane-split .dane>div{display:grid;grid-template-columns:200px minmax(0,1fr);gap:16px;align-items:baseline;padding:14px 0}
.dane-split .dane dt{margin:0}
.dane-split .dane-rozw .dane{border-top:0}
/* zespół: karty lekarzy w jednym rzędzie, kolejne elementy na tej samej wysokości */
.zespol-siatka:has(>.lek){grid-template-columns:repeat(4,minmax(0,1fr));gap:0 24px}
.lek{display:grid;grid-template-rows:subgrid;grid-row:span 5;row-gap:16px;align-content:start}
.lek .foto{margin:0;aspect-ratio:4/4.6;border-radius:120px 120px 14px 14px}
.lek-n h3{font-size:1.25rem;margin:0 0 4px}
.lek-n .rola{font-size:0.875rem;font-weight:700;color:var(--morski);margin:0}
.lek-z .label{margin:0 0 6px}
.lek .zakres{gap:6px}
.lek .zakres a{padding:5px 12px 5px 9px;font-size:0.875rem}
.lek-p{margin:0;font-size:0.9375rem;color:var(--tekst-2)}
.lek-umow{left:12px;bottom:12px;font-size:0.875rem;min-height:42px;padding:0 14px}
@media (max-width:68.75em){.zespol-siatka:has(>.lek){grid-template-columns:repeat(2,minmax(0,1fr));row-gap:48px}.ocena-pigulka{left:16px;bottom:16px}.ocena-dymek{left:12px;bottom:12px}}
@media (max-width:47.5em){
  .zespol-siatka:has(>.lek){grid-template-columns:minmax(0,1fr)}
  .lek{grid-row:auto;grid-template-rows:none}
  .dane-split{gap:40px}.dane-split .dane>div{grid-template-columns:minmax(0,1fr);gap:2px}
  .zk svg{width:90px;height:90px}.zk-w{padding:0}
  .op-panel{min-height:380px}
  .o4-duza{font-size:0.875rem}.ocena-dymek .o5>svg{width:90px;height:90px}
}
.op-panel,.sec-szara .op-panel{background:none}
.op-kol li{background:var(--szary)}
.sec-szara .op-kol li{background:var(--bialy)}
.op-zrodlo{font-size:0.875rem}

/* ================= przejścia między sekcjami (31.10: łuk uśmiechu, karta na styku, wsunięty arkusz, ząb na linii dziąsła) ================= */
/* 1 łuk uśmiechu: dolna krawędź sekcji wygina się w dół */
.prz-gora{position:relative;z-index:2}
.prz-luk{position:absolute;left:0;right:0;bottom:-63px;width:100%;height:64px;display:block;pointer-events:none;color:var(--bialy)}
.sec-szara>.prz-luk{color:var(--szary)}
.sec-ciemna>.prz-luk{color:var(--morski)}
.prz-po-luku{padding-top:176px}
/* 10 ząb na linii dziąsła: górna krawędź sekcji usług */
.prz-dziaslo{position:relative}
.prz-dz{position:absolute;left:0;right:0;top:-89px;width:100%;height:90px;display:block;color:var(--szary);pointer-events:none}
.prz-zab{position:absolute;left:50%;top:-174px;transform:translateX(-50%);z-index:2;pointer-events:none}
.prz-zab svg{display:block}
.prz-przed-dz{padding-bottom:210px}
/* 8 wsunięty arkusz: sekcja pod hero na stronach usług */
.prz-przed-ark{padding-bottom:168px}
.sec-arkusz{position:relative;z-index:2;margin-top:-72px;border-radius:40px 40px 0 0;box-shadow:0 -18px 40px rgba(13,68,70,.07)}
/* 4 karta na styku: pierwsza wizyta, między hero a krokami */
.prz-przed-styk{padding-bottom:150px}
.prz-styk{position:relative;padding-top:180px}
.prz-styk-w{position:absolute;left:0;right:0;top:0;transform:translateY(-50%);z-index:2}
.prz-styk-k{display:flex;align-items:center;gap:24px;background:var(--bialy);border-radius:20px;padding:22px 28px;box-shadow:0 18px 44px rgba(13,68,70,.14);max-width:900px;margin:0 auto}
.prz-styk-k p{margin:0;font-size:1rem;flex:1;max-width:none}
.prz-styk-k .lnk{white-space:nowrap}
.prz-twarze{display:flex;flex:none}
.prz-twarze img{width:52px;height:52px;border-radius:50%;object-fit:cover;object-position:50% 20%;border:3px solid var(--bialy);margin-left:-14px}
.prz-twarze img:first-child{margin-left:0}
@media (max-width:47.5em){
  .prz-luk{height:36px;bottom:-35px}.prz-po-luku{padding-top:112px}
  .prz-dz{height:56px;top:-55px}.prz-zab{top:-130px}.prz-zab svg{width:96px;height:96px}.prz-przed-dz{padding-bottom:150px}
  .sec-arkusz{margin-top:-40px;border-radius:28px 28px 0 0}.prz-przed-ark{padding-bottom:100px}
  .prz-styk-k{flex-direction:column;align-items:flex-start;gap:14px;margin:0 16px}.prz-styk{padding-top:230px}.prz-przed-styk{padding-bottom:170px}
}

/* ================= 31.10 (7) ================= */
/* wsunięty arkusz → płynne przenikanie hero w kolejną sekcję (uwaga usera) */
.prz-przed-ark{background:linear-gradient(var(--bialy) 0,var(--bialy) calc(100% - 280px),var(--szary) 100%);padding-bottom:120px}
.sec-arkusz{margin-top:0;border-radius:0;box-shadow:none}
/* wykresy w osobnym tle */
.sec>.wrap>.wykres{background:var(--bialy);border-radius:var(--r-m);padding:44px 48px}
.sec-biala>.wrap>.wykres{background:var(--szary)}
.wykres .zk-w{padding:0 2%}
.wykres .ow-pod{margin-top:22px}
/* zespół: etykiety zakresu bliżej siebie */
.lek .zakres{gap:2px}
/* „Od czego zacząć”: panel zamykający pod kartami */
.zamk{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:48px;align-items:center;margin-top:24px;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.18);border-radius:var(--r-m);padding:36px 40px}
.sec-biala .zamk,.sec-szara .zamk{background:var(--szary);border-color:transparent}
.zamk-t>*{margin:0}.zamk-t>*+*{margin-top:12px}
.zamk-t p:first-child{font-size:0.9375rem;opacity:.85}
.zamk-a>*{margin:0}.zamk-a>*+*{margin-top:16px}
.zamk-a .lnk-row{gap:8px 24px;margin:16px 0 0}
@media (max-width:56.25em){.zamk{grid-template-columns:minmax(0,1fr);gap:24px;padding:28px 24px}.sec>.wrap>.wykres{padding:28px 20px}}
.sec-arkusz{padding-top:72px}

/* ================= przejścia, druga runda (31.10): łagodne przenikanie, zdjęcie za kadr, pas z cytatem ================= */
/* 11 łagodne przenikanie: dół sekcji przechodzi w tło kolejnej (szarej) */
.prz-fade{background:linear-gradient(var(--bialy) 0,var(--bialy) calc(100% - 260px),var(--szary) 100%)}
.prz-fade.sec-szara{background:linear-gradient(var(--szary) 0,var(--szary) calc(100% - 260px),var(--bialy) 100%)}
.prz-po-fade{padding-top:72px}
/* 13 zdjęcie wychodzi za kadr: lekarka z ciemnej sekcji schodzi w sekcję cen */
.prz-wychodzi{position:relative;z-index:3;padding-bottom:72px}
.prz-wychodzi .sr>.foto{margin-bottom:-170px;box-shadow:0 24px 50px rgba(13,68,70,.22)}
.prz-po-wychodzi{padding-top:150px}
.prz-po-wychodzi .sec-hd{grid-template-columns:minmax(0,1fr) minmax(0,.62fr);padding-right:0}
.prz-po-wychodzi .sec-hd>div:last-child{max-width:420px}
/* 15 pas z cytatem z opinii */
.pas-cyt{background:var(--turkus);color:#06292B}
.pas-cyt-w{display:flex;align-items:center;gap:20px 32px;flex-wrap:wrap;padding-top:34px;padding-bottom:34px}
.pas-cyt-g{display:flex;gap:2px;color:var(--morski)}
.pas-cyt-g .ic{fill:var(--morski)}
.pas-cyt-t{margin:0;font:600 clamp(22px,2.2vw,30px)/1.25 var(--f-nag);font-variation-settings:'SOFT' 100,'opsz' 48;flex:1;min-width:260px;max-width:none}
.pas-cyt-z{margin:0;font-size:0.875rem;font-weight:600}
.pas-cyt .dp{background:rgba(255,255,255,.55);color:#3D2E00}
@media (max-width:68.75em){.prz-wychodzi .sr>.foto{margin-bottom:0}.prz-po-wychodzi{padding-top:120px}.prz-po-wychodzi .sec-hd{grid-template-columns:minmax(0,1fr)}}
@media (max-width:47.5em){.prz-po-wychodzi{padding-top:72px}.pas-cyt-w{padding-top:28px;padding-bottom:28px}}

/* ================= 31.10 (8) ================= */
/* 13 zdjęcie za kadr: poprawka (przesunięcie zamiast ujemnego marginesu) */
.prz-wychodzi .sr>.foto{margin-bottom:0}
.prz-wychodzi .split{align-items:end}
.prz-wychodzi .sr{transform:translateY(190px)}
/* hero Usług: czytaj więcej */
.czytaj{margin-top:14px}
.czytaj summary{list-style:none;display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-weight:700;color:var(--morski)}
.czytaj summary::-webkit-details-marker{display:none}
.czytaj[open] .rozw-z{transform:rotate(180deg)}
.czytaj-t{margin-top:12px}
.czytaj-t>*{margin:0}.czytaj-t>*+*{margin-top:12px}
.czytaj-t .lead{font-size:1.0625rem}
.hero-t>.czytaj+.btns{margin-top:32px}
/* hero Zespołu: kolaż portretów */
.hero-kolaz{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.hero-kolaz .foto{margin:0;aspect-ratio:4/5;border-radius:120px 120px 14px 14px}
.hero-kolaz .foto img{width:100%;height:100%;object-fit:cover}
.hero-kolaz .foto:nth-child(3n+2){transform:translateY(28px)}
.p-zespol .ocena-pigulka{bottom:-14px}
/* ocena i link obok siebie */
.dowod-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px 28px}
.dowod-row>.lnk-p{margin:0}
/* G w pastylce bez ucinania */
.o4 .g-szkic{overflow:visible;flex:none}
@media (max-width:68.75em){.prz-wychodzi .sr{transform:none}.prz-wychodzi .split{align-items:start}}
@media (max-width:47.5em){.hero-kolaz{gap:8px}.hero-kolaz .foto:nth-child(3n+2){transform:none}}

/* ================= 31.10 (9) ================= */
/* liczba kanałów: schody (kanaly.html wariant 2) */
.kb{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:end}
.kb-k{display:grid;justify-items:center;text-align:center}
.kb-z{margin-bottom:-6px;position:relative;z-index:1}
.kb-z svg{display:block}
.kb-s{width:100%;height:var(--h);background:var(--morski);color:#fff;border-radius:16px 16px 0 0;display:grid;place-content:center;justify-items:center;gap:4px}
.kb-s b{font:600 3rem/1 var(--f-nag);letter-spacing:-.03em;font-variation-settings:'SOFT' 100,'opsz' 72}
.kb-s small{font-size:0.875rem;color:#CFE3E1}
.kb-n{margin:14px 0 0;font-weight:700;font-size:1rem}
.kb-cena{display:grid;grid-template-columns:auto minmax(0,1fr);gap:40px;align-items:center;margin-top:32px;padding-top:28px;border-top:1px solid var(--linia)}
.kb-cena>div{display:grid;gap:4px}
.kb-cena-l{font-size:0.875rem;font-weight:600;color:var(--tekst-2)}
.kb-cena-k{font:600 2.25rem/1 var(--f-nag);letter-spacing:-.02em;color:var(--morski);white-space:nowrap;font-variation-settings:'SOFT' 100,'opsz' 72}
.kb-cena p{margin:0;max-width:56ch;color:var(--tekst-2);padding-left:40px;border-left:1px solid var(--linia)}
@media (max-width:47.5em){.kb{gap:8px}.kb-z svg{width:72px;height:72px}.kb-s b{font-size:1.875rem}.kb-n{font-size:0.875rem}
  .kb-cena{grid-template-columns:minmax(0,1fr);gap:14px}.kb-cena p{padding-left:0;border-left:0}}
/* opinie: odznaka zwarta, kolumny w przeciwne strony */
.op-panel{min-height:400px}
.op-odznaka{padding:22px 28px}
.op-odznaka .o1{gap:20px}
.op-odznaka .o1>svg{width:120px;height:auto}
@media (prefers-reduced-motion:no-preference){.op-kol-1{animation-direction:reverse}}
/* zespół: etykieta „Zakres” bliżej etykiet */
.lek-z .label{margin:0}
.lek-z .label+.zakres{margin-top:2px}
/* karty wyboru wizyty: ilustracja szkicem */
.wyb-il svg{display:block;width:64px;height:64px;margin:-12px 0 -10px -10px}
.wyb,.wyb-pilne{grid-template-columns:56px minmax(0,1fr) auto}
.o1p{display:flex;align-items:center;gap:22px}
.o1p>svg{display:block;flex:none}
.o1p-t{display:grid;gap:8px;justify-items:start}
.o1p-t>*{margin:0}
.o1p-n{font-size:1.125rem;line-height:1.3;color:var(--tekst)}
.o1p-n b{font:600 1.625rem/1.1 var(--f-nag);color:var(--morski)}
.o1p .mini{font-size:0.875rem}

/* ================= typografia (skill typografia, 31.10) ================= */
/* tytuły ciaśniej: im większy, tym bardziej ujemny tracking (preferencja usera, zasady 55, 69) */
h1{letter-spacing:-.028em;line-height:1.02}
h2{letter-spacing:-.022em;line-height:1.08}
.sec-hero h1{text-wrap:balance}
/* tekst ciągły 1,5–1,6, lead tak samo */
.lead{line-height:1.55}
p,li,dd{text-wrap:pretty}
/* etykiety w kartach danych to nagłówki pomocnicze: ciasno */
.kd-h,.kinfo h3{line-height:1.2}
/* najmniejszy tekst ciągły nie mniej niż 15 px (zasada 49) */
.st-prawne{font-size:0.9375rem}
.przypis,.mini{line-height:1.5}
/* skala stopni: 14 (podpisy, etykiety, dane pomocnicze) · 17 (tekst) · 20 (lead) · 22 (H3) · H2 · H1; przyciski i menu 16 jako UI (zasady 26, 33–35) */
.mini,.fud,.przypis,.label,.kursy,.wyb-l,.pas-cyt-z,.op-kol li,.kd-h,.kinfo h3,.lek .label,.wejscie figcaption,.zk-sr,.ty-d b,.dane dt,.okr,.pasek,.st-dol,.dok-spis,.ow-razem,.op-zrodlo,.kb-s small,.kb-cena-l,.o1p .mini,.mapa-k .mini,.osoba .rola,.lek-n .rola,.spis-nr{font-size:0.875rem}
.usl p,.osoba p,.lek-p,.karta p,.wyb-co,.dane dd,.kinfo p,.kdane p:not(.mini),.zamk-t p,.ow-s,.kb-n,.cw-c,.cw-n,.kafel,.zakres a,.lek .zakres a,.o1p-n,.st li,.st p:not(.st-h),.st-prawne{font-size:1.0625rem}
.zamk-t p:first-child{font-size:0.875rem}
.lead,.wyb h3,.wyb>h3,.osoba h3,.lek-n h3,.kb-cena p{font-size:1.25rem}
.sec-hd .lead,.hero-t .lead{font-size:1.25rem}
h3,.kroki h3,.karta h3{font-size:1.375rem}
.lek .zakres a{font-size:0.9375rem}
.dp{font-size:1em}
.rozw-t p,.rozw-t .kursy,.kursy{font-size:1rem}
@media (max-width:47.5em){.cw-n{min-width:0;overflow-wrap:anywhere;font-size:1rem}}
.cw:has(.cw-c .dp){grid-template-columns:minmax(0,1fr)!important;gap:6px}.cw-c:has(.dp){max-width:none;text-align:left}

/* ================= 31.10 (10) ================= */
/* ikony tematów w stylu szkicu */
.szic{display:block;overflow:visible}
.ik-sz{background:none!important;width:48px;height:48px}
.ik-list li{grid-template-columns:48px minmax(0,1fr);align-items:center}
.ik-list li>span:last-child{padding-top:0}
/* kroki: ilustracja szkicem z numerem */
.kr-il{position:relative;display:inline-block;width:64px;height:64px}
.kr-il .nr{position:absolute;right:-10px;bottom:-4px;width:28px;height:28px;border-radius:50%;background:var(--morski);color:#fff;
  font:700 0.875rem/28px var(--f-tekst);text-align:center;letter-spacing:0}
.sec-ciemna .kr-il .nr{background:var(--turkus);color:#06292B}
.kroki-rzad li{gap:18px}
.kroki-rzad .kr-il .nr{font-size:0.875rem}
/* 5 i więcej kroków: oś w jednym rzędzie */
.kroki-os{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:28px;position:relative}
.kroki-os::before{content:"";position:absolute;left:32px;right:calc(100% / var(--n) - 32px);top:32px;border-top:2px dashed var(--sage)}
.kroki-os li{position:relative;display:grid;gap:18px;align-content:start;border:0;padding:0}
.kroki-os .kr-il{background:var(--bialy);border-radius:50%;box-shadow:0 0 0 8px var(--szary)}
.sec-biala .kroki-os .kr-il{box-shadow:0 0 0 8px var(--bialy)}
.kroki-os h3{font-size:1.25rem;margin:0 0 8px}
.kroki-os p{margin:0;font-size:1rem}
.po-wizycie{display:grid;grid-template-columns:48px minmax(0,1fr);gap:16px;margin-top:48px;background:var(--bialy);border-radius:var(--r-m);padding:28px 32px}
.sec-biala .po-wizycie{background:var(--szary)}
.po-wizycie h3{font-size:1.25rem;margin:0 0 8px}
.po-wizycie p{margin:0}.po-wizycie p+p{margin-top:10px}
/* okruszek */
.okr{gap:8px;align-items:center}
.okr a{text-decoration:none;color:var(--tekst-2)}
.okr a:hover{color:var(--morski);text-decoration:underline;text-underline-offset:4px}
.okr-start{display:inline-flex;align-items:center;gap:6px}
.okr .sep{display:inline-flex;color:var(--sage)}
.okr [aria-current]{color:var(--tekst);font-weight:600}
/* Kto: zdjęcia lekarzy */
.fud-kto{align-items:center}
.avatary{display:inline-flex;flex:none}
.avatary img{width:32px;height:32px;border-radius:50%;object-fit:cover;object-position:50% 18%;border:2px solid var(--bialy);margin-left:-8px;box-shadow:0 0 0 1px var(--linia)}
.avatary img:first-child{margin-left:0}
/* rejestracja obok przycisku */
.btns{align-items:center}
.btns-info{display:inline-flex;max-width:30ch;font-size:0.875rem;color:var(--tekst-2);line-height:1.4;margin-left:8px}
.btns-info .fud-i{gap:8px;align-items:flex-start}
.btns-info .ic{flex:none;margin-top:1px}
.sec-ciemna .btns-info,.wyb-pilne .btns-info{color:#CFE3E1}
/* cennik: kliknięta zakładka podświetla kartę */
.taby a[aria-current]{background:none;color:var(--tekst-2)}
@keyframes karta-blysk{0%,40%{box-shadow:0 0 0 3px var(--turkus),0 18px 40px rgba(13,68,70,.12)}100%{box-shadow:0 0 0 0 transparent}}
.karta-blysk{animation:karta-blysk 1.8s ease-out .35s both}
@media (prefers-reduced-motion:reduce){.karta-blysk{animation:none;box-shadow:0 0 0 3px var(--turkus)}}
/* galeria gabinetu: bento */
.bento{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:240px 240px;gap:14px}
.bento figure{margin:0;position:relative;border-radius:var(--r-m);overflow:hidden}
.bento-0{grid-column:span 2;grid-row:span 2}
.bento-3{grid-column:span 1}
.bento .pow{width:100%;height:100%;border-radius:0}
.bento img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.bento .pow:hover img{transform:scale(1.04)}
.bento figcaption{position:absolute;left:12px;bottom:12px;background:rgba(255,255,255,.92);border-radius:999px;padding:4px 12px;font-size:0.875rem;font-weight:600}
.bento .pow-ic{right:12px;bottom:auto;top:12px}
.bento-brak{margin-top:14px}
.pasek-cta{display:flex;flex-wrap:wrap;align-items:center;gap:16px 32px;margin-top:32px;padding:24px 28px;background:var(--bialy);border-radius:var(--r-m)}
.sec-biala .pasek-cta{background:var(--szary)}
.pasek-cta>*{margin:0!important}
.pasek-cta .lnk-p{margin-left:auto!important}
/* lightbox z miniaturami */
.lb{max-width:min(94vw,1100px)}
.lb-w{position:relative}
.lb-img{display:block;max-width:100%;max-height:76vh;margin:0 auto;border-radius:16px}
.lb-prev,.lb-next{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:0;background:#fff;color:var(--morski);display:grid;place-items:center;cursor:pointer}
.lb-prev{left:-24px}.lb-prev svg{transform:rotate(180deg)}.lb-next{right:-24px}
.lb-jedno .lb-prev,.lb-jedno .lb-next{display:none}
.lb-mini{display:flex;gap:10px;justify-content:center;margin-top:16px}
.lb-mini button{width:72px;height:54px;padding:0;border:2px solid transparent;border-radius:10px;overflow:hidden;cursor:pointer;background:none;opacity:.6}
.lb-mini button[aria-current=true]{border-color:#fff;opacity:1}
.lb-mini img{width:100%;height:100%;object-fit:cover}
/* wielkość ubytku na skali ceny */
.ka{position:relative;height:230px;margin:0 70px}
.ka-z{position:absolute;bottom:0;left:var(--x);transform:translateX(-50%);margin:0;display:grid;justify-items:center;gap:6px;text-align:center}
.ka-z figcaption{display:grid;font-size:0.875rem;line-height:1.3}.ka-z figcaption b{font-size:1rem}.ka-z figcaption span{color:var(--tekst-2)}
.ka-tick{width:2px;height:14px;background:var(--morski);margin-top:4px}
.ka-skala{display:grid;grid-template-columns:auto 1fr auto;font-weight:700;color:var(--morski)}
.ka-pas{grid-column:1/-1;height:12px;border-radius:999px;background:var(--sage);margin:0 0 8px}
.ka-sr{text-align:center;font-weight:500;color:var(--tekst-2);font-size:0.875rem}
.ka-skala span:last-child{grid-column:3}
.ka-n{margin:18px 0 0}
/* pas z cytatem: gwiazdki szkicem */
.pas-cyt-g svg{display:block}
/* 404: zapis wyśrodkowany */
.p-404 .sec:last-of-type .sec-hd{grid-template-columns:minmax(0,1fr);justify-items:center;text-align:center;gap:14px}
.p-404 .sec:last-of-type .sec-hd h2{max-width:none}
.p-404 .sec:last-of-type .btns{justify-content:center}
/* Usługi: „Co jeszcze leczymy” dalej od listy */
.p-uslugi .uslugi+h2{margin-top:120px}
@media (max-width:68.75em){.kroki-os{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:40px}.kroki-os::before{display:none}
  .bento{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;grid-auto-rows:200px}.bento-0{grid-column:1/-1;grid-row:auto}}
@media (max-width:47.5em){.kroki-os{grid-template-columns:minmax(0,1fr)}.ka{margin:0 36px;height:190px}.ka-z svg{width:76px;height:76px}
  .btns-info{margin-left:0;max-width:none}.pasek-cta .lnk-p{margin-left:0!important}.lb-prev{left:6px}.lb-next{right:6px}.p-uslugi .uslugi+h2{margin-top:80px}}
.kroki-os li{grid-template-columns:minmax(0,1fr)}
.btns-info{display:grid;gap:6px;max-width:34ch}
.btns-info .fud-i{display:flex}
.ka-z figcaption{white-space:nowrap}

/* ================= responsywność (skill responsive, 31.10): poprawki z pomiaru 15 stron × 26 szerokości ================= */
/* płynne stopnie tytułów: na 320 px H1 ok. 32 px (zasady typografii 144, responsive §1) */
h1{font-size:clamp(2rem,1.25rem + 3.6vw,3.75rem)}
h2{font-size:clamp(1.625rem,1.15rem + 2.2vw,2.625rem)}
.kb-cena-k{font-size:clamp(1.75rem,1.4rem + 1.2vw,2.25rem)}
/* pasek na telefonie i panel „Strony projektu”: kolumny mogą się zwęzić (minmax 0) */
.mbar{grid-auto-columns:minmax(0,1fr)}
.mbar .btn{min-width:0;padding:0 12px}
.pg{max-width:calc(100vw - 32px)}
/* odznaka z oceną może przejść do drugiego wiersza zamiast wypychać */
.o4{max-width:100%;flex-wrap:wrap;row-gap:4px}
/* skrót „5 punktów”: kolumna nie szersza niż ekran */
.skrot .ik-list{grid-template-columns:repeat(auto-fill,minmax(min(100%,20rem),1fr))}
@media (width < 37.5em){
  /* wiersz cennika: nazwa nad ceną, żeby nazwa nie spadała do kilku znaków w wierszu */
  .cw,.cw:not(:has(.sk)){grid-template-columns:minmax(0,1fr);gap:2px}
  .cw-c{text-align:left;white-space:normal}
  /* karty osób: zdjęcie nad tekstem */
  .osoba{grid-template-columns:minmax(0,1fr)}
  .osoba .foto{max-width:180px}
  /* lista usług: ilustracja nad nazwą */
  .usl,.usl:first-child{grid-template-columns:minmax(0,1fr)}
  .usl-il svg,.usl:first-child .usl-il svg{width:72px;height:72px}
  /* wykres ubytków: podpisy mogą się łamać */
  .ka-z figcaption{white-space:normal;max-width:96px}
  .ka{margin:0 44px}
  /* galeria: jedno zdjęcie w rzędzie */
  .bento{grid-template-columns:minmax(0,1fr);grid-auto-rows:220px}
  .wyb>h3{font-size:1.125rem}
  .karta-z-il:has(.karta-il-r)>h3{padding-right:72px}
  .karta-il-r svg{width:56px;height:56px}
}
/* prymitywy zamiast progów okna (responsive §4.2): kolumny same przechodzą w jedną, gdy blok jest za wąski */
.zespol-siatka:not(:has(>.lek)){grid-template-columns:repeat(auto-fit,minmax(min(100%,27rem),1fr))}
.p-strona-glowna .zespol-siatka,.p-zespol .zespol-siatka:not(:has(>.lek)){grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr))}
.p-cennik .siatka-2{grid-template-columns:repeat(auto-fit,minmax(min(100%,26rem),1fr))}
.uslugi{grid-template-columns:repeat(auto-fit,minmax(min(100%,24rem),1fr))}
.usl:first-child{grid-column:1/-1}
.z404-kafle{grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr))}
.siatka-3{grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr))}
@media (width < 30em){.ik-list li{grid-template-columns:40px minmax(0,1fr);gap:12px}.ik-sz,.ik-sz svg{width:40px;height:40px}
  .karta{padding:22px 20px}}
.siatka>*,.wybor>*,.kafle>*{min-width:0}
.karta h3,.pyt summary h3{overflow-wrap:break-word;min-width:0}
.pyt summary>h3{flex:1 1 auto}
.ka{margin-inline:clamp(48px,9vw,70px)}
@media (width < 37.5em){.ka{margin-inline:52px}.ka-z figcaption{max-width:88px}}
@media (width < 30em){.ocena-dymek{left:8px;bottom:8px;transform:scale(.86);transform-origin:left bottom}}

/* ================= animacje (plan: plans/001-animacje.md, skill improve-animations) ================= */
:root{--ease-out:cubic-bezier(.23,1,.32,1);--ease-io:cubic-bezier(.77,0,.175,1);--t-szybki:150ms;--t-ui:220ms;--t-wejscie:600ms}
/* 1 tokeny w istniejących przejściach */
.btn{transition:background-color var(--t-szybki) var(--ease-out),border-color var(--t-szybki) var(--ease-out),color var(--t-szybki) var(--ease-out),transform 160ms var(--ease-out)}
.kafel,.zakres a,.usl h3{transition:border-color var(--t-szybki) var(--ease-out),color var(--t-szybki) var(--ease-out)}
.kafel-go,.usl-go,.rozw-z,.pyt-z{transition:transform var(--t-ui) var(--ease-out),color var(--t-szybki) var(--ease-out)}
.bento img{transition:transform 400ms var(--ease-out)}
/* 3 wciśnięcie */
.btn:active{transform:scale(.97)}
/* 2 hover tylko tam, gdzie jest kursor */
@media (hover:none){.kafel:hover .kafel-go,.usl:hover .usl-go{transform:none}.bento .pow:hover img{transform:none}}
/* 4 menu Usługi: wejście 180 ms, zamknięcie bez animacji */
@media (prefers-reduced-motion:no-preference){
  .nav-dd>button[aria-expanded=true]+.nav-menu{animation:menu-wejscie 180ms var(--ease-out)}
  /* 5 powiększenie zdjęcia */
  .lb[open]{animation:lb-wejscie var(--t-ui) var(--ease-out)}
  .lb[open]::backdrop{animation:lb-tlo var(--t-ui) var(--ease-out)}
  .lb-img{transition:opacity var(--t-szybki) var(--ease-out)}
  /* 6 rozwinięcia */
  :root{interpolate-size:allow-keywords}
  details::details-content{transition:height var(--t-ui) var(--ease-out),content-visibility var(--t-ui) allow-discrete;height:0;overflow:clip}
  details[open]::details-content{height:auto}
}
@keyframes menu-wejscie{from{opacity:0;transform:translateY(-4px)}}
@keyframes lb-wejscie{from{opacity:0;transform:scale(.97)}}
@keyframes lb-tlo{from{opacity:0}}
/* A–E: ruch przy przewijaniu (tylko z JS i bez ograniczenia ruchu; bez JS wszystko widoczne) */
@media (prefers-reduced-motion:no-preference){
  .js-ruch .kb-s{transform:scaleY(0);transform-origin:50% 100%;transition:transform 700ms var(--ease-out)}
  .js-ruch .kb-s>*{opacity:0;transition:opacity 300ms var(--ease-out)}
  .js-ruch .kb-z{opacity:0;transform:translateY(16px);transition:opacity 400ms var(--ease-out),transform 500ms var(--ease-out)}
  .js-ruch .kb-k:nth-child(2) *{transition-delay:90ms}.js-ruch .kb-k:nth-child(3) *{transition-delay:180ms}
  .js-ruch .kb.widac .kb-s{transform:none}
  .js-ruch .kb.widac .kb-s>*{opacity:1;transition-delay:450ms}
  .js-ruch .kb.widac .kb-k:nth-child(2) .kb-s>*{transition-delay:540ms}.js-ruch .kb.widac .kb-k:nth-child(3) .kb-s>*{transition-delay:630ms}
  .js-ruch .kb.widac .kb-z{opacity:1;transform:none}
  .js-ruch .ow-o{transform:scaleX(0);transform-origin:0 50%;transition:transform var(--t-wejscie) var(--ease-out)}
  .js-ruch .ow-o1{transition-delay:120ms}.js-ruch .ow-o2{transition-delay:240ms}
  .js-ruch .ow.widac .ow-o{transform:none}
  .js-ruch .ka-z{opacity:0;translate:0 12px;transition:opacity 500ms var(--ease-out),translate 500ms var(--ease-out)}
  .js-ruch .ka-z:nth-child(2){transition-delay:90ms}.js-ruch .ka-z:nth-child(3){transition-delay:180ms}
  .js-ruch .ka.widac .ka-z{opacity:1;translate:0 0}
  .js-ruch .kroki-os li{opacity:0;translate:0 12px;transition:opacity 500ms var(--ease-out),translate 500ms var(--ease-out)}
  .js-ruch .kroki-os li:nth-child(2){transition-delay:70ms}.js-ruch .kroki-os li:nth-child(3){transition-delay:140ms}
  .js-ruch .kroki-os li:nth-child(4){transition-delay:210ms}.js-ruch .kroki-os li:nth-child(5){transition-delay:280ms}
  .js-ruch .kroki-os::before{scale:0 1;transform-origin:0 50%;transition:scale 900ms var(--ease-io) 100ms}
  .js-ruch .kroki-os.widac li{opacity:1;translate:0 0}
  .js-ruch .kroki-os.widac::before{scale:1 1}
  /* E: odznaka na zdjęciu w hero, raz po załadowaniu */
  .ocena-na-foto{animation:odznaka-wejscie 500ms var(--ease-out) 350ms both}
}
@keyframes odznaka-wejscie{from{opacity:0;translate:0 10px}}
@media (prefers-reduced-motion:no-preference) and (hover:hover){.nav-dd:hover .nav-menu{animation:menu-wejscie 180ms var(--ease-out)}}

/* ================= 31.10 (11): logo Google nigdy w drugim wierszu; schemat dojazdu ================= */
.o4{flex-wrap:nowrap;white-space:nowrap;max-width:none}
@media (width < 30em){.o4{gap:6px;padding-right:10px}.o4>svg[role=img]:not(.g-szkic){width:72px;height:auto}.o4-l{font-size:1.125rem}.o4-t{font-size:0.875rem}}
/* schemat dojazdu na zrzucie mapy */
.dj{position:relative;display:block;min-height:0;border-radius:var(--r-m);overflow:hidden;background:var(--bialy)}
.dj-img{display:block;width:100%;height:auto;filter:saturate(.55)}
.dj-w{position:absolute;inset:0;background:rgba(255,255,255,.55)}
.dj>svg{position:absolute;inset:0;width:100%;height:100%}
.dj line{stroke-linecap:round;vector-effect:non-scaling-stroke}
.dj-h line{stroke:#fff;stroke-width:8}
.dj-k line{stroke:var(--morski);stroke-width:3;stroke-dasharray:1 7}
.dj-p,.dj-d,.dj-m,.dj-c,.dj-t{position:absolute}
.dj-p{width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:var(--morski);border:3px solid #fff}
.dj-m{font-weight:700;font-size:0.9375rem;line-height:1;background:#fff;color:var(--tekst);border-radius:999px;padding:6px 11px;white-space:nowrap}
.dj-p+.dj-m{transform:translate(12px,-50%)}
.dj-p+.dj-lw{transform:translate(calc(-100% - 12px),-50%)}
.dj-t{transform:translate(-50%,-50%);display:inline-flex;align-items:center;gap:4px;background:var(--morski);color:#fff;font-size:0.8125rem;font-weight:700;border-radius:999px;padding:3px 9px;white-space:nowrap}
.dj-mt{display:none}
.dj-d{width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;background:var(--turkus);border:4px solid var(--morski)}
.dj-c{transform:translate(12px,10px);background:var(--morski);color:#fff;border-radius:999px;padding:6px 14px;font:600 1.0625rem/1.2 var(--f-nag)}
.dj .mapa-k{left:auto;right:16px;bottom:16px}
.dj-z{margin:10px 0 0}
.dj-split{align-items:start}
.dj-l{list-style:none;margin:0;padding:0;display:grid;gap:0;border-top:1px solid var(--linia)}
.dj-l li{display:grid;grid-template-columns:96px minmax(0,1fr);gap:4px 16px;padding:14px 0;border-bottom:1px solid var(--linia)}
.dj-l b{grid-row:span 2}
.dj-l span{display:inline-flex;align-items:center;gap:8px;font-size:1rem}
.dj-l span .ic{color:var(--morski);flex:none}
.dj-l small{color:var(--tekst-2);font-size:0.875rem}
.dj-l+*{margin-top:24px!important}
@media (width < 37.5em){
  .dj-m{font-size:0.6875rem;padding:3px 6px}.dj-p+.dj-m{transform:translate(7px,-50%)}.dj-p+.dj-lw{transform:translate(calc(-100% - 7px),-50%)}
  .dj-p{width:9px;height:9px;margin:-4.5px 0 0 -4.5px;border-width:2px}.dj-d{width:14px;height:14px;margin:-7px 0 0 -7px;border-width:3px}
  .dj-c{font-size:0.75rem;padding:3px 8px;transform:translate(6px,6px)}
  .dj-t{display:none}.dj-mt{display:inline;font-weight:500}
  .dj-h line{stroke-width:5}.dj-k line{stroke-width:2;stroke-dasharray:1 5}
  .dj .mapa-k{right:8px;bottom:8px}.dj .mapa-k .btn{min-height:40px;font-size:0.875rem;padding:0 12px}
  .dj-l li{grid-template-columns:minmax(0,1fr)}.dj-l b{grid-row:auto}
}
.o4 .g-szkic{width:22px;height:22px}

/* ================= płynność i WCAG (31.10, 12) ================= */
/* fokus: kontrast 3:1 z tłem (WCAG 1.4.11, 2.4.7): morski na jasnym, turkus na ciemnym; podwójny pierścień na przyciskach w kolorze turkusu */
:focus-visible{outline:3px solid var(--morski);outline-offset:3px;border-radius:6px}
.sec-ciemna :focus-visible,.wyb-pilne :focus-visible,.pasek :focus-visible,.st :focus-visible,.lb :focus-visible,.taby a[aria-current]:focus-visible{outline-color:var(--turkus)}
.btn-p:focus-visible{outline-color:var(--morski);box-shadow:0 0 0 2px #fff inset}
.sec-ciemna .btn-p:focus-visible,.wyb-pilne .btn-p:focus-visible{outline-color:#fff}
.bento .pow:focus-visible,.usl:focus-visible{outline-offset:-4px}
.lb .lb-mini button:focus-visible{outline-offset:2px}
/* hover i fokus dają ten sam sygnał (nie tylko kolor: ruch strzałki, ramka) */
.kafel:focus-visible{border-color:var(--morski)}
@media (hover:hover){.kafel:hover .kafel-go,.usl:hover .usl-go{transform:translateX(4px)}}
.kafel:focus-visible .kafel-go,.usl:focus-visible .usl-go{transform:translateX(4px);color:var(--morski)}
.zakres a:focus-visible{border-color:var(--morski)}
/* strzałki i plusy jako sygnalizatory: kontrast co najmniej 3:1 (było 2,1:1) */
.kafel-go,.usl-go{color:#5B8F8B}
.pyt-z{border-color:#7FA8A5}
.lb-prev,.lb-next,.lb-x{transition:transform 160ms var(--ease-out),background-color 160ms var(--ease-out)}
@media (hover:hover){.lb-prev:hover,.lb-next:hover,.lb-x:hover{transform:scale(1.06)}.lb-prev:hover{transform:translateY(-50%) scale(1.06)}.lb-next:hover{transform:translateY(-50%) scale(1.06)}}
.lb-prev:active,.lb-next:active{transform:translateY(-50%) scale(.94)}
.lb-x:active{transform:scale(.94)}
/* powiększenie: zdjęcie można przesuwać palcem; bez zaznaczania i przewijania strony */
.lb-img{touch-action:pan-y;user-select:none;-webkit-user-drag:none;cursor:grab;will-change:transform}
.lb-img:active{cursor:grabbing}
.lb[open]{animation:none}
.lb-mini button{transition:opacity var(--t-szybki) var(--ease-out),border-color var(--t-szybki) var(--ease-out),transform 160ms var(--ease-out)}
.lb-mini button:active{transform:scale(.95)}
@media (hover:hover){.lb-mini button:hover{opacity:.9}}
/* galeria: przybliżenie i ramka przy fokusie płynnie */
.bento .pow img{transition:transform 450ms var(--ease-out),filter 300ms var(--ease-out)}
@media (hover:hover){.bento .pow:hover img{transform:scale(1.04)}}
.bento .pow:focus-visible img{transform:scale(1.04)}
.bento .pow-ic{transition:transform 220ms var(--ease-out)}
@media (hover:hover){.bento .pow:hover .pow-ic{transform:scale(1.12)}}
/* zakładki dojazdu i menu na telefonie: płynne pojawienie */
@media (prefers-reduced-motion:no-preference){
  body.menu-o .nav{animation:menu-wejscie 220ms var(--ease-out)}
  .taby a{transition:background-color var(--t-szybki) var(--ease-out),color var(--t-szybki) var(--ease-out)}
}
/* C: wykres ubytków wyraźniej: pasek ceny rośnie od lewej, zęby opadają na swoje miejsca po kolei */
@media (prefers-reduced-motion:no-preference){
  .js-ruch .ka-z{opacity:0;translate:0 -28px;scale:.9;transition:opacity 450ms var(--ease-out),translate 650ms cubic-bezier(.34,1.32,.64,1),scale 650ms cubic-bezier(.34,1.32,.64,1)}
  .js-ruch .ka-z:nth-child(1){transition-delay:250ms}.js-ruch .ka-z:nth-child(2){transition-delay:400ms}.js-ruch .ka-z:nth-child(3){transition-delay:550ms}
  .js-ruch .ka.widac .ka-z{opacity:1;translate:0 0;scale:1}
  .js-ruch .ka+.ka-skala .ka-pas{transform:scaleX(0);transform-origin:0 50%;transition:transform 700ms var(--ease-out)}
  .js-ruch .ka.widac+.ka-skala .ka-pas{transform:none}
  .js-ruch .ka-tick{opacity:0;transition:opacity 300ms var(--ease-out) 800ms}
  .js-ruch .ka.widac .ka-tick{opacity:1}
}
/* E: gwiazdki w odznace pojawiają się po kolei, gdy odznaka już stoi */
@media (prefers-reduced-motion:no-preference){
  .ocena-na-foto .gw{transform-box:fill-box;transform-origin:50% 50%;animation:gw-wejscie 420ms cubic-bezier(.34,1.4,.64,1) both}
  .ocena-na-foto .gw:nth-child(1){animation-delay:700ms}.ocena-na-foto .gw:nth-child(2){animation-delay:770ms}
  .ocena-na-foto .gw:nth-child(3){animation-delay:840ms}.ocena-na-foto .gw:nth-child(4){animation-delay:910ms}
  .ocena-na-foto .gw:nth-child(5){animation-delay:980ms}
}
@keyframes gw-wejscie{from{opacity:0;transform:scale(.3) rotate(-30deg)}}

/* ================= menu na telefonie (31.10): panel liczony od ekranu, nie od nagłówka ================= */
/* .hd ma backdrop-filter, a to tworzy blok zawierający dla position:fixed – panel dostawał wysokość nagłówka (32 px) */
.hd-menu{width:48px;height:48px;display:none;place-items:center;padding:0;border-radius:10px}
.hd-menu .ic{grid-area:1/1;transition:opacity var(--t-szybki) var(--ease-out),transform var(--t-ui) var(--ease-out)}
.hd-menu-x{opacity:0;transform:rotate(-45deg) scale(.6)}
body.menu-o .hd-menu-o{opacity:0;transform:rotate(45deg) scale(.6)}
body.menu-o .hd-menu-x{opacity:1;transform:rotate(45deg)}
@media (max-width:68.75em){
  .hd-menu{display:grid}
  body.menu-o .hd{backdrop-filter:none;-webkit-backdrop-filter:none;background:#fff}
  body.menu-o .nav{position:fixed;inset:var(--hd-h,78px) 0 0 0;height:auto;min-height:calc(100dvh - var(--hd-h,78px));
    padding:16px 24px calc(96px + env(safe-area-inset-bottom));gap:4px;border-top:1px solid var(--linia)}
  body.menu-o .nav-a{min-height:48px;font-size:1.125rem;padding:12px 8px}
  body.menu-o .nav-menu a{min-height:48px}
}
@media (max-width:47.5em){:root{--hd-h:64px}}
/* dojazd: jedno miasto w jednym wierszu na desktopie */
.dj-l li{grid-template-columns:96px minmax(0,1fr) minmax(0,1.15fr);gap:4px 20px;align-items:center;padding:14px 0}
.dj-l b{grid-row:auto}
.dj-l li>span{display:flex;align-items:center;gap:10px;font-size:1rem;min-width:0}
.dj-l li>span>.ic{color:var(--morski);flex:none}
.dj-l strong{font-weight:700}
.dj-l small{color:var(--tekst-2);font-size:0.875rem;margin-left:4px}
.dj-l .dj-hd{padding:0 0 8px;border-bottom:1px solid var(--linia)}
.dj-l .dj-hd span{font-size:0.875rem;color:var(--tekst-2);font-weight:600}
.dj-t .ic{flex:none}
@media (width < 37.5em){.dj-l li{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.dj-l b{grid-column:1/-1}.dj-l .dj-hd{display:none}}
html:has(body.menu-o){overflow:hidden}
/* menu: panel zaczyna się dokładnie pod nagłówkiem (wysokość mierzona w JS, bo nad nagłówkiem bywa pasek z telefonem),
   a przycisk zamknięcia zawsze leży nad panelem */
@media (max-width:68.75em){
  .hd-menu{position:relative;z-index:3}
  body.menu-o .nav{z-index:2;inset:var(--menu-top,var(--hd-h,78px)) 0 0 0;min-height:calc(100dvh - var(--menu-top,var(--hd-h,78px)))}
}
/* logo w wektorze (style/img/logo.svg); w stopce wersja odwrócona bez białego prostokąta */
.st-marka img{height:80px;width:auto;background:none;border-radius:0;padding:0;margin-bottom:20px}

/* ================= zgody cookie (skill cookie-consent-gtm): tokeny banera w kolorach marki ================= */
:root{--cc-font:var(--f-tekst);--cc-bg:#fff;--cc-fg:var(--tekst);--cc-muted:var(--tekst-2);--cc-border:#7FA8A5;--cc-accent:var(--morski);
  --cc-accent-fg:#fff;--cc-focus:var(--morski);--cc-switch-on:var(--morski);--cc-surface:var(--szary);--cc-radius:var(--r-s);--cc-max:var(--szer)}
@media (prefers-color-scheme:dark){:root{--cc-bg:#fff;--cc-fg:var(--tekst);--cc-muted:var(--tekst-2);--cc-surface:var(--szary)}}
.st-cookie{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.lnk-btn{background:none;border:0;padding:0;font:inherit;color:var(--morski);font-weight:700;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.mapa-k .mini{max-width:none}
/* baner cookie: wiersz tekstu ≤ 75 znaków; przy otwartym menu baner chowa się i wraca po zamknięciu menu (inaczej zasłania linki menu) */
.cc-banner__text{max-width:62ch}
body.menu-o .cc-banner{visibility:hidden}

/* ================= poprawki z testu Safari iOS i Firefox 20/24 px (1.11) ================= */
/* 4 górny pasek: adres ukryty do 1100 px (wyższa specyficzność niż .pasek a), bez łamania numeru */
.pasek a,.pasek span{white-space:nowrap}
@media (max-width:68.75em){.pasek a.pasek-adr{display:none}}
/* 3 schody: etykieta zębów na telefonie mniejsza, długie słowo z miękkim podziałem */
@media (max-width:47.5em){.kb .kb-n{font-size:.8125rem;hyphens:manual;overflow-wrap:break-word}}
/* 6 kroki w rzędzie na telefonie: ilustracja nad treścią, numer nie wchodzi na tekst */
@media (max-width:47.5em){.kroki.kroki-rzad li{grid-template-columns:minmax(0,1fr)}}
/* 7 baner cookie na małym telefonie: wszystkie przyciski widoczne bez przewijania w banerze */
@media (max-width:30em){.cc-banner--bar{max-height:70dvh}.cc-banner__text{font-size:.875rem;line-height:1.45}}
/* 8 poziom na telefonie: niższy nagłówek i dolny pasek (razem poniżej 40% wysokości) */
@media (orientation:landscape) and (max-height:30em){
  .mbar{padding-top:6px;padding-bottom:calc(6px + env(safe-area-inset-bottom))}.mbar .btn{min-height:44px}
  .hd-w{min-height:52px}.logo img{height:34px}}
/* 9 krzyżyk powiększenia na telefonie wewnątrz ekranu */
@media (max-width:37.5em){.lb-x{top:10px;right:10px}}
/* 10 otwarte menu: dolny pasek z przyciskami chowa się (nie zasłania ostatnich pozycji) */
body.menu-o .mbar{visibility:hidden}
/* 11 godziny pod przyciskiem w hero nie łamią zakresu */
.btns-info span{text-wrap:balance}
/* cel dotyku ikony telefonu w nagłówku ≥ 44 px; długi e-mail łamie się przy dużej czcionce zamiast wypychać stronę */
.hd-tel{min-height:44px;min-width:44px;justify-content:center}
.kd-mail{overflow-wrap:anywhere}
footer li>a{display:inline-flex;align-items:center;min-height:24px}
/* przycisk pod ramką IQ Dental (03.11.2026): zostaje też, gdy ramki nie da się osadzić */
.ramka-pod{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin:16px 0 0}
.ramka-pod .mini{color:var(--tekst-2)}
/* stopka 03.11.2026: dane spółki drobnym pismem (dane pomocnicze, skala 14), identyfikatory w jednym rzędzie; dolny pasek rozłożony na całą szerokość */
.st .st-prawne{margin:48px 0 20px;max-width:none;color:#9FC0BD}
.st .st-prawne p,.st .st-prawne li{font-size:0.875rem;line-height:1.55}
.st .st-prawne p{margin:0 0 6px;max-width:none}
.st .st-prawne ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 24px}
.st-dol{justify-content:space-between;align-items:center;gap:12px 24px}
.st-dol-l{display:flex;flex-wrap:wrap;gap:8px 24px;align-items:center}
@media (max-width:47.5em){.st-dol{flex-direction:column;align-items:flex-start}}

/* ocena 04.11: Karta Dużej Rodziny nad cennikiem; liczba opinii w jednej linii */
.kdr{display:flex;align-items:center;gap:16px;max-width:620px;margin:18px 0 8px;padding:12px 18px 12px 12px;background:#fff;border:1px solid #DCE5E7;border-radius:var(--r-s)}
.kdr img{flex:none;width:60px;height:60px;border-radius:10px}
.kdr p{margin:0}
.o4-t{white-space:nowrap}
