/* =========================================================
   FizjoDysk — style motywu
   Kolejność: tokeny → baza → elementy wspólne → komponenty → strony → responsywność
   Fonty (Outfit, Figtree) ładuje inc/scripts-styles.php.
   ========================================================= */

/* Tokeny projektu: kolory marki, typografia, wymiary */

:root {
  /* kolory marki (z logo) */
  --brand: #0993C7;
  --brand-600: #0779A6;
  --brand-300: #34C9E8;
  --teal: #60B6B7;
  --teal-100: #DDF0F0;

  /* granatowo-niebieskie (zamiast czerni — prośba klientki 10.2026):
     --ink: pogrubione napisy i ciemne tła sekcji, --ink-2/-3: stany hover */
  --ink: #0A5B85;
  --ink-2: #0C6896;
  --ink-3: #1176A8;
  --deep: linear-gradient(150deg, #0B6E9F 0%, #08557E 100%);
  --text: #2B4656;
  --muted: #5C7584;
  --line: rgba(10, 91, 133, .14);
  --bg: #F6F3EE;
  --paper: #FFFFFF;
  --mist: #EAF5F8;

  /* akcent bólu – używany tylko w wizualizacjach */
  --pain: #F0665A;
  --star: #F5B521;

  /* typografia */
  --f-display: "Outfit", system-ui, sans-serif;
  --f-body: "Figtree", system-ui, sans-serif;

  /* layout */
  --wrap: 1240px;
  --gut: clamp(16px, 4vw, 40px);
  --r-sm: 12px;
  --r: 20px;
  --r-lg: 32px;
  --hdr-h: 76px;
  --ease: cubic-bezier(.2, .7, .1, 1);
  --shadow: 0 1px 2px rgba(14,34,48,.05), 0 12px 32px -12px rgba(14,34,48,.18);
}

/* Baza: reset uzupełniający Tailwind preflight, typografia, układ sekcji */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--hdr-h) + 12px); }

body {
  margin: 0;
  font: 400 17px/1.6 var(--f-body);
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}

img { display: block; max-width: 100%; height: auto; }

a { color: inherit; }

h1, h2, h3, h4 { font-family: var(--f-display); color: var(--ink); margin: 0; line-height: 1.08; letter-spacing: -.02em; font-weight: 600; }

p { margin: 0; }

em { font-style: normal; }

h1 em, h2 em { font-weight: 300; color: var(--brand); }

button { font: inherit; cursor: pointer; }

:focus-visible { outline: 3px solid var(--brand-300); outline-offset: 3px; border-radius: 6px; }

::-moz-selection { background: var(--brand-300); color: var(--ink); }

::selection { background: var(--brand-300); color: var(--ink); }

.wrap { width: 100%; max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gut); }

.ic { width: 1.15em; height: 1.15em; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

.ic use[href="#i-spine"], svg use[href="#i-spine"] { fill: currentColor; stroke: none; }

.skip { position: fixed; left: 12px; top: -60px; z-index: 200; background: var(--ink); color: #fff; padding: 10px 16px; border-radius: 10px; text-decoration: none; }

.skip:focus { top: 12px; }

.sec { padding-block: clamp(80px, 11vw, 150px); }

.sec__head { max-width: 640px; margin-bottom: clamp(36px, 5vw, 64px); }

.sec__head h2, .mdt__head h2, .about h2, .contact__title { font-size: clamp(40px, 6vw, 76px); }

.sec__head--row { max-width: none; display: flex; justify-content: space-between; align-items: end; gap: 32px 64px; flex-wrap: wrap; }

.sec__head--row .sec__lead { max-width: 440px; }

.sec__lead { margin-top: 18px; font-size: 19px; color: var(--muted); }

.sec__head--row .sec__lead { margin-top: 0; }

.sec__aside { max-width: 440px; display: grid; gap: 16px; justify-items: start; }

.kicker { font: 600 13px/1 var(--f-body); letter-spacing: .14em; text-transform: uppercase; color: var(--brand); margin-bottom: 18px; display: inline-flex; align-items: center; gap: 10px; }

.kicker::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; box-shadow: 0 13px 0 -1px currentColor, 0 -13px 0 -2px currentColor; opacity: .9; }

.kicker--light { color: var(--brand-300); }

/* Animacje wejścia — tylko gdy działa JavaScript */

/* Stan przed wejściem: tylko dopóki element nie dostanie .is-in. Po wejściu reguły znikają,
   więc efekty hover komponentów (np. uniesienie karty) działają normalnie. */

.js [data-reveal]:not(.is-in) { opacity: 0; transform: translateY(36px); }

/* Karty w siatkach (usługi, kroki, opinie, kafle) wjeżdżają po kolei — opóźnienie ustawia reveal.js */

.js :is(.bento, .srel__grid, .visit__steps, .sblocks__grid, .tiles, .blist__grid, .cpage__tiles) > [data-reveal]:not(.is-in) {
  transform: translate3d(0, 90px, 0) scale(.9) rotate(var(--tilt, 0deg));
}

.js :is(.bento, .srel__grid, .visit__steps, .sblocks__grid, .tiles, .blist__grid, .cpage__tiles) > [data-reveal]:nth-child(odd) { --tilt: -2deg; }

.js :is(.bento, .srel__grid, .visit__steps, .sblocks__grid, .tiles, .blist__grid, .cpage__tiles) > [data-reveal]:nth-child(even) { --tilt: 2deg; }

/* lista usług na stronie Oferta wysuwa się z boku */

.js .olist__rows > [data-reveal]:not(.is-in) { transform: translate3d(-80px, 0, 0); }

/* przejście tylko na czas wejścia (klasę zdejmuje reveal.js) */

.js [data-reveal].is-entering { transition: opacity .8s var(--ease), transform 1.1s cubic-bezier(.16, 1, .3, 1) !important; }

/* punkty na sylwetce „wyskakują” po kolei */

.js .pain__figure:not(.is-in) .spot { opacity: 0; }

.pain__figure.is-in .spot { animation: spotIn .65s cubic-bezier(.34, 1.56, .64, 1) backwards; animation-delay: calc(.35s + var(--n, 0) * 80ms); }

@keyframes spotIn { from { opacity: 0; transform: translate(-50%, -50%) scale(0); } }

/* nagłówki sekcji: słowa wysuwają się spod linii (headings.js) */

.split-line { padding-bottom: .08em; margin-bottom: -.08em; }

/* Lenis — płynne przewijanie */

html.lenis, html.lenis body { height: auto; }

.lenis:not(.lenis-autoToggle).lenis-stopped { overflow: clip; }

.lenis [data-lenis-prevent] { overscroll-behavior: contain; }

.lenis.lenis-smooth iframe { pointer-events: none; }

/* Nagłówek sekcji z tekstem po prawej — mniejszy, żeby oba mieściły się w jednym wierszu */

.sec__head--row h2 { font-size: clamp(38px, 4.8vw, 62px); }

.sec__head--row .sec__aside { max-width: 400px; }

/* karuzela opinii: karty wchodzą razem z sekcją, bez czekania na przewinięcie w poziomie */

.js .quotes > [data-reveal]:not(.is-in) { opacity: 1; transform: none; }

/* Przyciski i linki tekstowe */

.btn {
  --h: 50px;
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  height: var(--h); padding: 0 24px; border-radius: 999px; border: 1.5px solid transparent;
  font: 600 16px/1 var(--f-body); text-decoration: none; white-space: nowrap;
  transition: transform .25s var(--ease), background-color .25s, color .25s, border-color .25s, box-shadow .25s;
}

.btn:hover { transform: translateY(-2px); }

.btn:active { transform: translateY(0); }

.btn--sm { --h: 42px; padding: 0 18px; font-size: 15px; }

.btn--lg { --h: 58px; padding: 0 28px; font-size: 17px; }

.btn--brand { background: var(--brand); color: #fff; box-shadow: 0 10px 24px -10px rgba(9,147,199,.7); }

.btn--brand:hover { background: var(--brand-600); }

.btn--ghost { border-color: var(--line); color: var(--ink); background: rgba(255,255,255,.6); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }

.btn--ghost:hover { border-color: var(--ink); }

.btn--light { background: #fff; color: var(--ink); }

.btn--light:hover { background: var(--mist); }

.btn__price { padding: 5px 9px; margin-right: -12px; border-radius: 999px; background: rgba(255,255,255,.2); font-size: 14px; }

.link { display: inline-flex; align-items: center; gap: 6px; color: var(--brand); font-weight: 600; text-decoration: none; background: none; border: 0; padding: 0; }

.link .ic { transition: transform .25s var(--ease); }

.link:hover .ic { transform: translate(3px, -1px); }

/* Treść z edytora (wpisy bloga, pola WYSIWYG) oraz drobne elementy tekstowe */

.prose { font-size: 17.5px; line-height: 1.7; color: var(--text); }

.prose > * + * { margin-top: 1.1em; }

.prose h2 { font-size: clamp(26px, 3vw, 36px); margin-top: 1.8em; }

.prose h3 { font-size: 22px; margin-top: 1.6em; }

.prose h4 { font-size: 19px; margin-top: 1.4em; }

.prose a { color: var(--brand); text-decoration: underline; text-underline-offset: 3px; }

.prose a:hover { color: var(--brand-600); }

.prose strong, .prose b { color: var(--ink); font-weight: 600; }

.prose ul { list-style: none; padding-left: 0; }

.prose ul li { position: relative; padding-left: 1.5em; }

.prose ul li::before { content: ""; position: absolute; left: .2em; top: .62em; width: 8px; height: 8px; border-radius: 50%; background: var(--teal); }

.prose ol { list-style: decimal; padding-left: 1.3em; }

.prose ol li::marker { color: var(--brand); font-weight: 600; }

.prose li + li { margin-top: .45em; }

.prose blockquote { border-left: 3px solid var(--teal); padding-left: 22px; font: 300 22px/1.4 var(--f-display); color: var(--ink); }

.prose blockquote cite { display: block; margin-top: 10px; font: 400 14px var(--f-body); color: var(--muted); }

.prose img { border-radius: var(--r); }

.prose figure figcaption { margin-top: 8px; font-size: 14px; color: var(--muted); text-align: center; }

.prose hr { border: 0; height: 1px; background: var(--line); margin-block: 2em; }

.prose table { width: 100%; border-collapse: collapse; font-size: 16px; }

.prose th, .prose td { padding: 12px 14px; border-bottom: 1px solid var(--line); text-align: left; }

.prose th { font-weight: 600; color: var(--ink); }

.prose--lead > p:first-child { font-size: 1.18em; line-height: 1.55; color: var(--ink); }

.prose--light { color: rgba(255,255,255,.8); }

.prose--light strong, .prose--light b { color: #fff; }

.prose--light a { color: var(--brand-300); }

.tag { display: inline-flex; align-items: center; padding: 6px 12px; border-radius: 999px; background: rgba(9,147,199,.12); color: var(--brand); font-weight: 600; font-size: 13px; text-decoration: none; }

a.tag:hover { background: var(--brand); color: #fff; }

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* Biały „arkusz” — wspólne tło sekcji na podstronach */

.sheet { background: var(--paper); border-radius: var(--r-lg); }

.sheet > .sec + .sec { padding-top: 0; }

.sheet .pain, .sheet .visit, .sheet .offer, .sheet .price, .sheet .reviews, .sheet .faq, .sheet .about { background: none; border-radius: 0; margin-top: 0; }

.sheet .quals { background: var(--bg); }

/* sekcja po arkuszu (np. metoda, kontakt) zaczyna się z odstępem */

.sheet + .mdt { margin-top: clamp(16px, 2vw, 24px); }

/* Nagłówek, rozwijane menu „Oferta”, menu mobilne */

.hdr {
  position: fixed; inset: 0 0 auto; z-index: 100; height: var(--hdr-h);
  transition: transform .4s var(--ease), background-color .3s, box-shadow .3s;
}

.hdr.is-solid { background: rgba(246,243,238,.86); -webkit-backdrop-filter: saturate(1.4) blur(14px); backdrop-filter: saturate(1.4) blur(14px); box-shadow: 0 1px 0 var(--line); }

.hdr.is-hidden { transform: translateY(-100%); }

.hdr__in { height: 100%; display: flex; align-items: center; gap: 24px; }

.hdr__logo img { height: 54px; width: auto; }

.hdr__nav { display: flex; align-items: center; gap: 4px; margin-inline: auto; }

.hdr__nav > a, .dd__btn { display: inline-flex; align-items: center; gap: 6px; padding: 9px 14px; border: 0; border-radius: 999px; background: none; text-decoration: none; font: 500 15.5px/1.2 var(--f-body); color: var(--ink); transition: background-color .2s, color .2s; }

.hdr__nav > a:hover, .dd__btn:hover, .dd.is-open .dd__btn { background: rgba(9,147,199,.1); }

.hdr__nav > a[aria-current="page"], .dd.is-current .dd__btn { color: var(--brand); font-weight: 600; }

.mega__list a[aria-current="page"] { background: var(--bg); }

.dd__btn .ic { width: 16px; height: 16px; transition: transform .3s var(--ease); }

.dd.is-open .dd__btn .ic { transform: rotate(180deg); }

.dd__btn { position: relative; }

/* mega menu „Oferta” */

.mega {
  position: absolute; left: 0; right: 0; top: calc(100% - 6px);
  padding-inline: var(--gut); pointer-events: none;
  opacity: 0; transform: translateY(-8px); visibility: hidden;
  transition: opacity .25s, transform .35s var(--ease), visibility 0s .35s;
}

.dd.is-open .mega { opacity: 1; transform: none; visibility: visible; pointer-events: auto; transition: opacity .25s, transform .35s var(--ease); }

@media (hover: hover) {
  .dd:hover .dd__btn::after { content: ""; position: absolute; left: -30px; right: -30px; top: 100%; height: 34px; }
}

.mega__in {
  max-width: calc(var(--wrap) - 2 * var(--gut)); margin-inline: auto;
  display: grid; grid-template-columns: 1fr 300px; gap: 8px;
  background: var(--paper); border-radius: var(--r); padding: 8px; box-shadow: 0 30px 60px -20px rgba(14,34,48,.35), 0 0 0 1px var(--line);
}

.mega__list { list-style: none; margin: 0; padding: 8px; display: grid; grid-template-columns: 1fr 1fr; gap: 4px; }

.mega__list a { display: flex; gap: 14px; align-items: flex-start; padding: 14px; border-radius: 14px; text-decoration: none; transition: background-color .2s; }

.mega__list a:hover, .mega__list a:focus-visible { background: var(--bg); }

.mega__ic { flex: none; width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; background: var(--mist); color: var(--brand); transition: background-color .2s, color .2s; }

.mega__list a:hover .mega__ic { background: var(--brand); color: #fff; }

.mega__list strong { display: block; font: 600 16px/1.3 var(--f-display); color: var(--ink); letter-spacing: -.01em; }

.mega__list small { display: block; margin-top: 3px; font-size: 14px; color: var(--muted); }

.mega__promo { background: var(--deep); color: rgba(255,255,255,.75); border-radius: 14px; padding: 24px; display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }

.mega__promo .kicker { margin: 0; }

.mega__promo-t { font: 600 19px/1.3 var(--f-display); color: #fff; letter-spacing: -.01em; }

.mega__all { margin-top: auto; display: inline-flex; align-items: center; gap: 6px; color: var(--brand-300); font-weight: 600; text-decoration: none; }

.mega__all:hover .ic { transform: translateX(3px); }

.mega__all .ic { transition: transform .25s var(--ease); }

.hdr__cta { display: flex; align-items: center; gap: 14px; }

.hdr__tel { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; text-decoration: none; color: var(--ink); font-size: 15.5px; }

.hdr__tel .ic { color: var(--brand); }

.hdr__burger { display: none; width: 44px; height: 44px; border-radius: 50%; border: 1.5px solid var(--line); background: rgba(255,255,255,.7); color: var(--ink); align-items: center; justify-content: center; }

.hdr__burger .ic { width: 22px; height: 22px; }

/* Menu mobilne: components/mobile-nav.scss */

/* Pasek administracyjny WordPressa (zalogowany użytkownik) */

.admin-bar .hdr { top: 32px; }

@media (max-width: 782px) {
  .admin-bar .hdr { top: 46px; }
}

/* Ramka w menu „Oferta”: telefon („Nie wiesz, co wybrać? Zadzwoń”) + link do rezerwacji online */

.mega__book { display: inline-flex; align-items: center; gap: 6px; color: #fff; font-weight: 600; font-size: 15px; text-decoration: none; }

.mega__book .ic { width: 16px; height: 16px; transition: transform .25s var(--ease); }

.mega__book:hover .ic { transform: translateX(3px); }

/* Menu mobilne — pełnoekranowy panel pod nagłówkiem
   Układ: przewijana lista (menu + informacje) i stały dolny pasek z przyciskami. */

.mnav {
  --mnav-top: var(--hdr-h);
  position: fixed; inset: 0; z-index: 99; display: flex; flex-direction: column; padding-top: var(--mnav-top);
  background:
    radial-gradient(75% 38% at 100% 0%, rgba(52,201,232,.20), transparent 70%),
    radial-gradient(70% 40% at 0% 100%, rgba(96,182,183,.18), transparent 70%),
    var(--bg);
  /* panel „wyrasta” z przycisku menu w prawym górnym rogu */
  -webkit-clip-path: circle(0 at calc(100% - var(--gut) - 22px) calc(var(--mnav-top) - var(--hdr-h) / 2));
          clip-path: circle(0 at calc(100% - var(--gut) - 22px) calc(var(--mnav-top) - var(--hdr-h) / 2));
  transition: -webkit-clip-path .4s var(--ease);
  transition: clip-path .4s var(--ease);
  transition: clip-path .4s var(--ease), -webkit-clip-path .4s var(--ease);
}

.mnav[hidden] { display: none; }

.mnav.is-open { -webkit-clip-path: circle(150% at calc(100% - var(--gut) - 22px) calc(var(--mnav-top) - var(--hdr-h) / 2)); clip-path: circle(150% at calc(100% - var(--gut) - 22px) calc(var(--mnav-top) - var(--hdr-h) / 2)); transition-duration: .65s; }

.mnav__scroll { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding: 14px var(--gut) 26px; }

.mnav__nav { display: grid; }

/* --- pozycje główne --- */

.mnav__link {
  display: grid; grid-template-columns: 28px minmax(0, 1fr) auto auto; align-items: center; gap: 10px; width: 100%;
  padding: 16px 0; border: 0; border-bottom: 1px solid var(--line); background: none; text-align: left; text-decoration: none; color: var(--ink);
  -webkit-tap-highlight-color: transparent;
}

.mnav__n { padding-top: 5px; font: 500 12.5px/1 var(--f-body); letter-spacing: .08em; color: var(--muted); font-variant-numeric: tabular-nums; }

.mnav__label { font: 600 28px/1.1 var(--f-display); letter-spacing: -.02em; transition: color .25s; }

.mnav__go, .mnav__chev {
  grid-column: 4; width: 40px; height: 40px; border-radius: 50%; border: 1.5px solid var(--line); display: grid; place-items: center; color: var(--ink);
  background: rgba(255,255,255,.55); transition: transform .45s var(--ease), background-color .3s, border-color .3s, color .3s;
}

.mnav__go .ic, .mnav__chev .ic { width: 18px; height: 18px; }

.mnav__link:active .mnav__go { transform: translateX(4px); background: var(--ink); border-color: var(--ink); color: #fff; }

.mnav__count { grid-column: 3; min-width: 26px; height: 26px; padding-inline: 8px; border-radius: 999px; display: grid; place-items: center; background: rgba(9,147,199,.12); color: var(--brand); font: 600 12.5px/1 var(--f-body); }

/* bieżąca strona */

.mnav__link[aria-current="page"] .mnav__label, .mnav__group.is-current > .mnav__toggle .mnav__label { color: var(--brand); }

.mnav__link[aria-current="page"] .mnav__n, .mnav__group.is-current > .mnav__toggle .mnav__n { color: var(--brand); }

.mnav__link[aria-current="page"] .mnav__go { background: var(--brand); border-color: var(--brand); color: #fff; }

/* --- grupa z podmenu (Oferta) --- */

.mnav__group { border-bottom: 1px solid var(--line); }

.mnav__toggle { border-bottom: 0; cursor: pointer; }

.mnav__group.is-open .mnav__chev { transform: rotate(180deg); background: var(--ink); border-color: var(--ink); color: #fff; }

.mnav__sub { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .5s var(--ease); }

.mnav__group.is-open > .mnav__sub { grid-template-rows: 1fr; }

.mnav__sub-in { min-height: 0; overflow: hidden; display: grid; gap: 2px; margin-inline: -10px; padding-inline: 10px; visibility: hidden; opacity: 0; transition: opacity .25s, visibility 0s .5s; }

.mnav__group.is-open > .mnav__sub > .mnav__sub-in { visibility: visible; opacity: 1; transition: opacity .4s .1s, visibility 0s; }

.mnav__svc { display: flex; align-items: center; gap: 14px; margin-inline: -10px; padding: 9px 10px; border-radius: 16px; text-decoration: none; color: var(--text); transition: background-color .2s; -webkit-tap-highlight-color: transparent; }

.mnav__svc:active { background: rgba(255,255,255,.8); }

.mnav__svc-ic { flex: none; width: 44px; height: 44px; border-radius: 13px; display: grid; place-items: center; background: #fff; color: var(--brand); box-shadow: 0 1px 0 var(--line); transition: background-color .2s, color .2s; }

.mnav__svc-ic .ic { width: 21px; height: 21px; }

.mnav__svc-txt { min-width: 0; }

.mnav__svc-txt strong { display: block; font: 600 16.5px/1.25 var(--f-display); letter-spacing: -.01em; color: var(--ink); }

.mnav__svc-txt small { display: block; margin-top: 2px; font-size: 13.5px; line-height: 1.3; color: var(--muted); }

.mnav__svc[aria-current="page"] { background: #fff; }

.mnav__svc[aria-current="page"] .mnav__svc-ic { background: var(--brand); color: #fff; box-shadow: none; }

.mnav__svc[aria-current="page"] strong { color: var(--brand); }

.mnav__all { justify-self: start; display: inline-flex; align-items: center; gap: 8px; margin: 10px 0 18px; padding: 11px 18px; border-radius: 999px; background: rgba(9,147,199,.1); color: var(--brand); font-weight: 600; font-size: 15px; text-decoration: none; }

.mnav__all[aria-current="page"] { background: var(--brand); color: #fff; }

/* --- informacje pod listą --- */

.mnav__info { display: grid; gap: 8px; margin-top: 22px; }

.mnav__fact { display: flex; align-items: center; gap: 12px; padding: 11px 14px; border-radius: 16px; background: rgba(255,255,255,.62); border: 1px solid rgba(255,255,255,.9); color: var(--ink); font-weight: 600; font-size: 14.5px; line-height: 1.3; text-decoration: none; }

.mnav__fact small { display: block; margin-bottom: 3px; font: 600 11.5px/1 var(--f-body); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }

.mnav__fact-ic { flex: none; width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; background: var(--mist); color: var(--brand); }

.mnav__fact-ic .ic { width: 18px; height: 18px; }

.mnav__fact-ic--star { background: rgba(245,181,33,.16); color: var(--star); }

.mnav__fact-ic--star svg { width: 18px; height: 18px; fill: currentColor; }

.mnav__social { display: flex; flex-wrap: wrap; gap: 8px; }

.mnav__social a { display: inline-flex; align-items: center; gap: 8px; height: 44px; padding-inline: 16px; border-radius: 999px; background: rgba(255,255,255,.62); border: 1px solid rgba(255,255,255,.9); color: var(--ink); font-weight: 600; font-size: 14.5px; text-decoration: none; }

.mnav__social a .ic { color: var(--brand); width: 18px; height: 18px; }

/* --- stały pasek z przyciskami --- */

.mnav__foot {
  flex: none; display: grid; grid-template-columns: 1fr 1.6fr; gap: 8px;
  padding: 12px var(--gut) calc(12px + env(safe-area-inset-bottom, 0px));
  background: rgba(246,243,238,.88); -webkit-backdrop-filter: saturate(1.4) blur(14px); backdrop-filter: saturate(1.4) blur(14px); border-top: 1px solid var(--line);
}

.mnav__foot > :only-child { grid-column: 1 / -1; }

.mnav__call, .mnav__book { display: flex; align-items: center; justify-content: center; gap: 9px; height: 54px; border-radius: 999px; font-weight: 600; font-size: 16px; text-decoration: none; white-space: nowrap; }

.mnav__call { background: #fff; border: 1.5px solid var(--line); color: var(--ink); }

.mnav__call .ic { color: var(--brand); }

.mnav__book { background: var(--brand); color: #fff; box-shadow: 0 12px 26px -12px rgba(9,147,199,.85); }

.mnav__book:active { background: var(--brand-600); }

/* --- wejście elementów (kaskada) --- */

.mnav__nav > *, .mnav__info { opacity: 0; transform: translateY(16px); transition: opacity .25s, transform .25s; }

.mnav.is-open .mnav__nav > *, .mnav.is-open .mnav__info {
  opacity: 1; transform: none;
  transition: opacity .5s var(--ease), transform .7s var(--ease);
  transition-delay: calc(.16s + var(--i, 0) * .06s);
}

.mnav__foot { transform: translateY(100%); transition: transform .3s var(--ease); }

.mnav.is-open .mnav__foot { transform: none; transition: transform .6s var(--ease) .22s; }

/* przycisk menu w nagłówku: wyraźny stan „otwarte” */

.hdr__burger { transition: background-color .3s, border-color .3s, color .3s; }

.hdr__burger .ic { transition: transform .45s var(--ease); }

.hdr__burger[aria-expanded="true"] { background: var(--ink); border-color: var(--ink); color: #fff; }

.hdr__burger[aria-expanded="true"] .ic { transform: rotate(90deg); }

/* niższe ekrany */

@media (max-height: 700px) {
  .mnav__link { padding-block: 12px; }
  .mnav__label { font-size: 24px; }
  .mnav__go, .mnav__chev { width: 36px; height: 36px; }
  .mnav__info { margin-top: 16px; }
  .mnav__call, .mnav__book { height: 50px; }
}

@media (max-width: 359px) {
  .mnav__book span { font-size: 15px; }
  .mnav__foot { grid-template-columns: 1fr 1.4fr; }
}

/* Pasek administracyjny WordPressa */

.admin-bar .mnav { --mnav-top: calc(var(--hdr-h) + 32px); }

@media (max-width: 782px) {
  .admin-bar .mnav { --mnav-top: calc(var(--hdr-h) + 46px); }
}

/* Skrót do kuponu podarunkowego w miejscu adresu i oceny (prośba klientki 21.10) */

.mnav__fact--gift { text-decoration: none; background: var(--deep); border-color: transparent; color: #fff; }

.mnav__fact--gift small { color: var(--brand-300); }

.mnav__fact--gift .mnav__fact-ic { background: rgba(255,255,255,.14); color: #fff; }

.mnav__fact--gift .mnav__go { margin-left: auto; width: 34px; height: 34px; border-color: rgba(255,255,255,.3); background: rgba(255,255,255,.1); color: #fff; }

/* Stopka, podpis realizacji, pasek mobilny */

.ftr { background: var(--deep); color: rgba(255,255,255,.65); margin-top: clamp(16px, 2vw, 24px); padding: 72px 0 28px; font-size: 15px; }

.ftr__in { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 40px; }

.ftr__brand img { height: 56px; width: auto; margin-bottom: 18px; }

.ftr__brand p { font: 300 24px/1.3 var(--f-display); color: #fff; }

.ftr__nav { display: flex; flex-direction: column; gap: 10px; }

.ftr__nav h4 { color: #fff; font: 600 13px/1 var(--f-body); letter-spacing: .12em; text-transform: uppercase; margin-bottom: 8px; }

.ftr__nav a { text-decoration: none; }

.ftr__nav a:hover { color: #fff; }

.ftr__bar { display: flex; align-items: center; gap: 16px 28px; flex-wrap: wrap; margin-top: 56px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.1); font-size: 14px; }

.ftr__bar a { text-decoration: none; }

.ftr__bar a:hover { color: #fff; }

.credit { display: inline-flex; align-items: center; gap: 12px; margin-left: auto; color: rgba(255,255,255,.55); transition: color .3s; }

.credit__logo { position: relative; width: 40px; height: 40px; flex: none; }

.credit__logo img { position: absolute; inset: 0; width: 40px; height: 40px; transition: opacity .3s; }

.credit__hover { opacity: 0; }

.credit:hover .credit__hover { opacity: 1; }

/* ---------- pasek mobilny ---------- */

.mbar { display: none; }

/* Komponenty używane na wielu stronach */

/* Nagłówek podstrony + okruszki */

.phero { position: relative; isolation: isolate; overflow: clip; padding: calc(var(--hdr-h) + clamp(28px, 4vw, 56px)) 0 clamp(48px, 7vw, 92px); }

.phero__bg {
  position: absolute; inset: 0; z-index: -2;
  background:
    radial-gradient(55% 70% at 88% 20%, rgba(52,201,232,.20), transparent 70%),
    radial-gradient(40% 60% at 6% 100%, rgba(96,182,183,.18), transparent 70%);
}

.phero__spine { position: absolute; z-index: -1; right: clamp(24px, 12vw, 230px); top: calc(var(--hdr-h) + 8px); height: calc(100% - var(--hdr-h) + 40px); width: auto; overflow: visible; pointer-events: none; opacity: .85; }

.phero__spine circle { fill: var(--brand); }

.phero__title { font-size: clamp(42px, 6.4vw, 88px); line-height: 1; letter-spacing: -.03em; max-width: 920px; }

.phero__lead { margin-top: 22px; max-width: 640px; font-size: clamp(18px, 1.5vw, 21px); color: var(--text); }

.phero__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin-top: 24px; font-size: 15px; color: var(--muted); }

.phero__meta > * + *:not(.tag)::before { content: "·"; margin-right: 18px; opacity: .6; }

.phero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }

.phero--article .phero__title { font-size: clamp(34px, 4.6vw, 62px); line-height: 1.05; max-width: 980px; }

.phero--article .phero__spine { display: none; }

.crumbs { margin-bottom: 26px; }

.crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; font-size: 14px; color: var(--muted); }

.crumbs li { display: inline-flex; align-items: center; gap: 6px; min-width: 0; }

.crumbs li + li::before { content: "/"; opacity: .45; }

.crumbs a { text-decoration: none; }

.crumbs a:hover { color: var(--brand); }

.crumbs span[aria-current] { color: var(--ink); font-weight: 500; max-width: 46ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Strona 404 */

@media (max-width: 900px) {
  .phero__spine { display: none; }
  .phero__actions .btn { flex: 1 1 100%; }
}

/* Mapa bólu „Gdzie boli?” */

.pain { background: var(--paper); border-radius: var(--r-lg) var(--r-lg) 0 0; margin-top: 40px; }

.pain__grid > *, .mdt__in > *, .about__in > *, .price__in > *, .faq__in > *, .contact__in > *, .hero__in > * { min-width: 0; }

.pain__grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(32px, 6vw, 96px); align-items: center; }

.pain__figure { position: relative; max-width: 380px; width: 100%; margin-inline: auto; }

.body { width: 100%; height: auto; display: block; }

.body__shape > * { fill: #E3EDEF; stroke: #E3EDEF; stroke-linecap: round; stroke-linejoin: round; }

.body__shape circle { stroke: none; }

.body__spine circle { fill: var(--teal); opacity: .7; transition: fill .3s, opacity .3s; }

.body__glow > * { fill: var(--pain); stroke: var(--pain); stroke-width: 0; stroke-linecap: round; opacity: 0; filter: blur(12px); transition: opacity .45s var(--ease); }

.body__glow path { fill: none; stroke-width: 30; }

.body__glow .is-on { opacity: .55; }

.spot {
  position: absolute; left: var(--x); top: var(--y); transform: translate(-50%, -50%);
  width: 26px; height: 26px; border-radius: 50%; border: 0; padding: 0;
  background: #fff; box-shadow: 0 0 0 2px var(--brand), 0 6px 14px -4px rgba(14,34,48,.4);
  transition: transform .25s var(--ease), background-color .25s, box-shadow .25s;
}

.spot::before { content: ""; position: absolute; inset: 7px; border-radius: 50%; background: var(--brand); transition: background-color .25s; }

.spot::after { content: ""; position: absolute; inset: -6px; border-radius: 50%; border: 2px solid var(--brand); opacity: 0; animation: ping 2.4s var(--ease) infinite; }

.spot:nth-of-type(2n)::after { animation-delay: .8s; }

.spot:nth-of-type(3n)::after { animation-delay: 1.4s; }

.spot span {
  position: absolute; left: 50%; bottom: calc(100% + 10px); transform: translate(-50%, 4px); white-space: nowrap;
  font: 600 13px/1 var(--f-body); background: var(--ink); color: #fff; padding: 7px 10px; border-radius: 8px;
  opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s;
}

.spot:hover span, .spot:focus-visible span { opacity: 1; transform: translate(-50%, 0); }

.spot:hover { transform: translate(-50%, -50%) scale(1.15); }

.spot.is-active { background: var(--pain); box-shadow: 0 0 0 2px #fff, 0 0 0 6px rgba(240,102,90,.35), 0 6px 14px -4px rgba(14,34,48,.4); }

.spot.is-active::before { background: #fff; }

.spot.is-active::after { border-color: var(--pain); }

@keyframes ping { 0% { transform: scale(.6); opacity: .7; } 80%, 100% { transform: scale(1.6); opacity: 0; } }

.chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 22px; }

.chips button {
  border: 1.5px solid var(--line); background: var(--paper); color: var(--ink); border-radius: 999px;
  padding: 9px 16px; font-weight: 500; font-size: 15px; transition: background-color .2s, border-color .2s, color .2s;
}

.chips button:hover { border-color: var(--ink); }

.chips button[aria-selected="true"] { background: var(--ink); border-color: var(--ink); color: #fff; }

.pcard { background: var(--bg); border-radius: var(--r-lg); padding: clamp(24px, 3.4vw, 44px); position: relative; overflow: hidden; }

.pcard::after { content: ""; position: absolute; right: -60px; top: -60px; width: 200px; height: 200px; border-radius: 50%; background: radial-gradient(circle, rgba(240,102,90,.18), transparent 70%); }

.pcard__tag { display: inline-block; font-size: 13px; font-weight: 600; color: var(--pain); background: rgba(240,102,90,.1); padding: 6px 10px; border-radius: 999px; margin-bottom: 16px; }

.pcard__tag:empty { display: none; }

.pcard__title { font-size: clamp(28px, 3vw, 40px); margin-bottom: 12px; }

.pcard__sym { font-size: 18px; color: var(--text); max-width: 560px; }

.pcard__how { margin-top: 26px; padding-top: 22px; border-top: 1px solid var(--line); }

.pcard__how h4 { font: 600 13px/1 var(--f-body); letter-spacing: .12em; text-transform: uppercase; color: var(--muted); margin-bottom: 14px; }

.pcard__how ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }

.pcard__how li { display: flex; gap: 12px; align-items: flex-start; }

.pcard__how li .ic { color: var(--brand); margin-top: 4px; }

.pcard__foot { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; margin-top: 28px; }

.pcard__svc { display: inline-flex; align-items: center; gap: 10px; font-weight: 600; color: var(--ink); text-decoration: none; }

.pcard__svc .ic { color: var(--teal); width: 22px; height: 22px; }

.pcard__svc span { border-bottom: 1.5px solid var(--line); }

.pcard.is-swap > * { animation: swap .45s var(--ease) both; }

.pcard.is-swap > *:nth-child(2) { animation-delay: .04s; }

.pcard.is-swap > *:nth-child(3) { animation-delay: .08s; }

.pcard.is-swap > *:nth-child(4) { animation-delay: .12s; }

.pcard.is-swap > *:nth-child(5) { animation-delay: .16s; }

@keyframes swap { from { opacity: 0; transform: translateY(10px); } }

.pain__note { font-size: 14px; color: var(--muted); margin-top: 14px; }

/* Sekcja oferty i karty usług (bento) */

.offer { background: var(--paper); padding-top: 0; }

/* 3 kolumny: wszystkie karty jednakowe (prośba klientki 21.10), szeroki baner „Wizyty on-line” na końcu */

.bento { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }

.svc {
  position: relative; display: flex; flex-direction: column; gap: 14px; padding: 28px; min-height: 290px;
  background: var(--bg); border-radius: var(--r); text-decoration: none; overflow: hidden;
  transition: transform .35s var(--ease), background-color .35s, box-shadow .35s;
}

.svc:hover { transform: translateY(-4px); background: var(--mist); box-shadow: var(--shadow); }

.svc h3 { font-size: 22px; line-height: 1.15; }

.svc p { font-size: 15.5px; color: var(--muted); }

.svc__ic { width: 50px; height: 50px; border-radius: 14px; display: grid; place-items: center; background: #fff; color: var(--brand); box-shadow: 0 1px 0 var(--line); }

.svc__ic .ic { width: 24px; height: 24px; }

.svc__more { margin-top: auto; display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: 15px; color: var(--brand); }

.svc__more .ic { transition: transform .3s var(--ease); }

.svc:hover .svc__more .ic { transform: translateX(4px); }

.svc--hero { grid-column: span 2; grid-row: span 2; background: var(--deep); color: #fff; padding: clamp(28px, 3.4vw, 44px); }

/* hover: gradient zostaje, płynnie rozjaśnia go nakładka (gradientu nie da się animować) */

.svc--hero::before { content: ""; position: absolute; inset: 0; border-radius: inherit; background: radial-gradient(120% 90% at 85% 0%, rgba(52,201,232,.28), transparent 60%); opacity: 0; transition: opacity .5s var(--ease); pointer-events: none; }

.svc--hero:hover { background: var(--deep); box-shadow: 0 30px 60px -28px rgba(10,91,133,.75); }

.svc--hero:hover::before { opacity: 1; }

.svc--hero > * { position: relative; }

.svc--hero h3 { color: #fff; font-size: clamp(30px, 3.2vw, 44px); max-width: 440px; margin-top: auto; }

.svc--hero p { color: rgba(255,255,255,.72); font-size: 17px; max-width: 460px; }

.svc--hero .svc__ic { background: rgba(255,255,255,.08); color: var(--brand-300); box-shadow: none; }

.svc--hero .svc__more { color: var(--brand-300); margin-top: 10px; }

.svc__top { display: flex; justify-content: space-between; align-items: center; }

.svc__badge { font-size: 13px; font-weight: 600; padding: 7px 12px; border-radius: 999px; background: rgba(52,201,232,.15); color: var(--brand-300); }

.svc__tags { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 0; }

.svc__tags li { font-size: 13.5px; padding: 6px 12px; border-radius: 999px; border: 1px solid rgba(255,255,255,.16); color: rgba(255,255,255,.85); }

.svc__mark { position: absolute; right: -40px; top: -40px; width: 300px; max-width: none; opacity: .07; filter: brightness(0) invert(1); pointer-events: none; transition: transform .8s var(--ease); }

.svc--hero:hover .svc__mark { transform: rotate(-4deg) scale(1.03); }

.svc--online { grid-column: 1 / -1; min-height: 0; flex-direction: row; align-items: center; gap: 24px; background: linear-gradient(110deg, var(--teal-100), var(--mist)); }

.svc--online h3 { flex: none; }

.svc--online p { flex: 1; max-width: 520px; }

.svc--online .svc__more { margin: 0 0 0 auto; }

/* Pomoc w wyborze usługi (pod kartami) */

.helpnote { display: grid; grid-template-columns: auto 1fr auto; gap: 18px 24px; align-items: center; margin-top: 16px; padding: clamp(20px, 2.6vw, 28px) clamp(22px, 3vw, 34px); border-radius: var(--r); border: 1.5px dashed rgba(9,147,199,.35); background: rgba(255,255,255,.6); }

.helpnote__ic { width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; background: var(--brand); color: #fff; box-shadow: 0 12px 24px -12px rgba(9,147,199,.8); }

.helpnote__ic .ic { width: 22px; height: 22px; }

.helpnote h3 { font-size: clamp(19px, 1.8vw, 22px); margin-bottom: 4px; }

.helpnote p { font-size: 15.5px; color: var(--muted); max-width: 720px; }

.helpnote p strong { color: var(--ink); font-weight: 600; }

.helpnote .btn { white-space: nowrap; }

@media (max-width: 900px) {
  .helpnote { grid-template-columns: auto 1fr; }
  .helpnote .btn { grid-column: 1 / -1; justify-self: start; }
}

@media (max-width: 600px) {
  .helpnote { grid-template-columns: 1fr; }
  .helpnote .btn { width: 100%; justify-content: center; }
}

/* Wejście kart (src/js/functions/services.js): bez przejść CSS, żeby nie walczyły z GSAP; na koniec błysk światła */

.svc.is-dealing, .svc.is-dealing > * { transition: none !important; }

.svc.is-shine::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  background: linear-gradient(105deg, transparent 30%, rgba(255,255,255,.7) 50%, transparent 70%);
  transform: translateX(-110%); animation: svcShine 1.1s cubic-bezier(.4, 0, .2, 1) forwards;
}

.svc--hero.is-shine::after { background: linear-gradient(105deg, transparent 30%, rgba(120,214,240,.22) 50%, transparent 70%); }

@keyframes svcShine { to { transform: translateX(110%); } }

/* Metoda McKenziego — animacja centralizacji i kroki */

.mdt { background: var(--deep); color: rgba(255,255,255,.78); padding-block: clamp(80px, 11vw, 150px); border-radius: var(--r-lg); margin-inline: clamp(0px, 1.2vw, 16px); position: relative; overflow: clip; }

.mdt h2, .mdt h3 { color: #fff; }

.mdt h2 em { color: var(--brand-300); }

.mdt__in { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 6vw, 100px); align-items: start; }

.mdt__stick { position: sticky; top: calc(var(--hdr-h) + 24px); }

.mdt__visual { position: relative; aspect-ratio: 360 / 560; max-height: calc(100vh - var(--hdr-h) - 60px); margin-inline: auto; }

.mdt__visual svg { width: 100%; height: 100%; overflow: visible; }

.mdt__grid circle { fill: none; stroke: rgba(255,255,255,.06); stroke-dasharray: 2 6; }

.mdt__leg { fill: none; stroke: rgba(255,255,255,.12); stroke-width: 34; stroke-linecap: round; }

.mdt__pelvis { fill: none; stroke: rgba(255,255,255,.14); stroke-width: 3; }

.mdt__pain { fill: none; stroke: url(#mdtPain); stroke-width: 34; stroke-linecap: round; stroke-dasharray: 100 200; opacity: .9; transition: stroke-dasharray 1.1s var(--ease), opacity .8s; }

.mdt__pain--core { stroke-width: 6; opacity: .9; }

.mdt__spine circle { fill: var(--teal); transition: fill .8s, transform .8s var(--ease); }

.mdt__arrows path { fill: none; stroke: var(--brand-300); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; opacity: 0; transition: opacity .5s; }

.mdt__ok circle { fill: rgba(52,201,232,.14); stroke: var(--brand-300); stroke-width: 2; }

.mdt__ok path { fill: none; stroke: var(--brand-300); stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; }

.mdt__ok { opacity: 0; transform-origin: 290px 90px; transform: scale(.6); transition: opacity .5s, transform .6s var(--ease); }

.mdt__labels span {
  position: absolute; left: 0; top: 4%; font: 600 14px/1 var(--f-body); color: #fff; padding: 9px 14px; border-radius: 999px;
  background: rgba(240,102,90,.22); border: 1px solid rgba(240,102,90,.5); opacity: 0; transform: translateY(8px); transition: opacity .4s, transform .4s var(--ease);
}

.mdt__labels span[data-l="4"] { background: rgba(52,201,232,.18); border-color: rgba(52,201,232,.5); }

.mdt__meter { position: absolute; left: 0; bottom: 0; display: flex; gap: 6px; }

.mdt__meter span { width: 28px; height: 4px; border-radius: 4px; background: rgba(255,255,255,.15); transition: background-color .4s; }

.mdt__visual[data-step="1"] .mdt__pain { stroke-dasharray: 100 200; }

.mdt__visual[data-step="2"] .mdt__pain { stroke-dasharray: 100 200; animation: throb 1.6s ease-in-out infinite; }

.mdt__visual[data-step="2"] .mdt__arrows path { opacity: 1; }

.mdt__visual[data-step="3"] .mdt__pain { stroke-dasharray: 34 200; }

.mdt__visual[data-step="4"] .mdt__pain { stroke-dasharray: 0 200; opacity: 0; }

.mdt__visual[data-step="4"] .mdt__spine circle { fill: var(--brand-300); }

.mdt__visual[data-step="4"] .mdt__ok { opacity: 1; transform: scale(1); }

.mdt__visual[data-step="1"] [data-l="1"], .mdt__visual[data-step="2"] [data-l="2"],
.mdt__visual[data-step="3"] [data-l="3"], .mdt__visual[data-step="4"] [data-l="4"] { opacity: 1; transform: none; }

.mdt__visual[data-step="1"] .mdt__meter span:nth-child(-n+1),
.mdt__visual[data-step="2"] .mdt__meter span:nth-child(-n+2),
.mdt__visual[data-step="3"] .mdt__meter span:nth-child(-n+3),
.mdt__visual[data-step="4"] .mdt__meter span { background: var(--brand-300); }

@keyframes throb { 50% { opacity: .45; } }

.mdt__head { margin-bottom: clamp(40px, 6vw, 80px); }

.mdt__head p:last-child { margin-top: 22px; font-size: 18px; max-width: 520px; }

.steps { list-style: none; margin: 0; padding: 0; }

.step { padding: 36px 0 36px 0; border-top: 1px solid rgba(255,255,255,.1); min-height: 38vh; transition: opacity .5s; }

.js .step { opacity: .35; }

.js .step.is-active { opacity: 1; }

.step__n { font: 500 14px/1 var(--f-body); color: var(--brand-300); letter-spacing: .1em; display: block; margin-bottom: 16px; }

.step h3 { font-size: clamp(26px, 2.6vw, 34px); margin-bottom: 14px; }

.step p { font-size: 17.5px; max-width: 480px; }

.step strong { color: #fff; }

.mdt__more { margin-top: 8px; }

.mdt__cert { display: grid; grid-template-columns: 120px 1fr; gap: 24px; align-items: center; margin-top: 48px; padding: 24px; border-radius: var(--r); background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.08); }

.mdt__cert p { font-size: 15px; }

.mdt__cert p strong { color: #fff; font-size: 16px; }

.mdt__cert p + p { margin: 6px 0 12px; }

.mdt__cert .link { color: var(--brand-300); }

.certcard { border: 0; padding: 0; background: none; border-radius: 6px; overflow: hidden; transform: rotate(-4deg); box-shadow: 0 16px 30px -10px rgba(0,0,0,.6); transition: transform .4s var(--ease); }

.certcard:hover { transform: rotate(0) scale(1.04); }

/* Pierwsza wizyta — kroki */

.visit { background: var(--paper); border-radius: var(--r-lg) var(--r-lg) 0 0; }

.visit__steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; counter-reset: v; }

.visit__steps li { position: relative; padding: 32px; border-radius: var(--r); background: var(--bg); display: flex; flex-direction: column; gap: 12px; }

.visit__steps li:not(:last-child)::after {
  content: ""; position: absolute; right: -14px; top: 56px; z-index: 1; width: 12px; height: 12px; border-radius: 50%;
  background: var(--teal); box-shadow: 0 0 0 4px var(--paper);
}

.visit__n { position: absolute; right: 26px; top: 18px; font: 600 72px/1 var(--f-display); color: rgba(14,34,48,.06); letter-spacing: -.04em; }

.visit__ic { width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; background: var(--brand); color: #fff; margin-bottom: 8px; }

.visit__ic .ic { width: 22px; height: 22px; }

.visit h3 { font-size: 24px; }

.visit p { color: var(--muted); }

.visit q { margin-top: auto; padding-top: 16px; border-top: 1px dashed var(--line); font: 400 17px/1.45 var(--f-display); color: var(--ink); quotes: "„" "”"; }

.bring { margin-top: 16px; padding: 22px 28px; border-radius: var(--r); border: 1.5px dashed rgba(96,182,183,.6); background: rgba(96,182,183,.06); }

.bring strong { color: var(--ink); }

/* Cennik — lista pozycji */

.price { background: var(--paper); padding-top: 0; }

.price__in { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(32px, 6vw, 96px); align-items: start; }

.price .sec__head { position: sticky; top: calc(var(--hdr-h) + 24px); }

.price__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; margin-top: 30px; }

.plist { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ink); }

.plist li { display: flex; align-items: baseline; gap: 20px; padding: 24px 0; border-bottom: 1px solid var(--line); transition: padding .3s var(--ease), background-color .3s; }

.plist li:hover { padding-inline: 14px; background: var(--bg); }

.plist div { flex: 1; min-width: 0; }

.plist strong { display: block; font: 600 20px/1.3 var(--f-display); color: var(--ink); letter-spacing: -.01em; }

.plist span { font-size: 15px; color: var(--muted); }

.plist b { font: 600 26px/1 var(--f-display); color: var(--ink); white-space: nowrap; letter-spacing: -.02em; }

.plist b small { font: 500 14px var(--f-body); color: var(--muted); margin-right: 4px; }

.plist b.ask { font: 600 15px var(--f-body); color: var(--brand); }

/* Opinie pacjentów: nagłówek z ocenami ZnanyLekarz + Google, pod nim karuzela opinii na całą szerokość */

.reviews { background: var(--paper); padding-top: 0; }

.reviews__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 28px 48px; margin-bottom: clamp(28px, 4vw, 44px); }

.reviews__head h2 { font-size: clamp(38px, 4.8vw, 62px); }

/* oceny: kompaktowe karty obok siebie */

.scores { display: flex; flex-wrap: wrap; gap: 12px; }

.score {
  position: relative; overflow: hidden; display: flex; align-items: center; gap: 18px; min-width: 290px; padding: 18px 20px 18px 24px;
  border-radius: var(--r); color: #fff; text-decoration: none; transition: transform .35s var(--ease), box-shadow .35s var(--ease);
}

.score::after { content: ""; position: absolute; right: -40px; bottom: -70px; width: 150px; height: 150px; border-radius: 50%; background: rgba(255,255,255,.09); pointer-events: none; }

a.score:hover { transform: translateY(-4px); box-shadow: 0 24px 44px -20px rgba(10,91,133,.6); }

.score--zl { background: var(--brand); }

.score--google { background: var(--deep); }

.score__big { font: 600 54px/1 var(--f-display); letter-spacing: -.05em; }

.score__meta { display: grid; gap: 5px; justify-items: start; }

.score__src { display: inline-flex; align-items: center; gap: 7px; font: 600 12px/1 var(--f-body); letter-spacing: .12em; text-transform: uppercase; }

.score__src .ic { width: 16px; height: 16px; }

.score .rating__stars svg { width: 15px; height: 15px; }

.score__sub { font-size: 14.5px; color: rgba(255,255,255,.85); }

.score__go { position: relative; z-index: 1; margin-left: auto; flex: none; width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; background: #fff; color: var(--ink); }

.score__go .ic { width: 16px; height: 16px; transition: transform .3s var(--ease); }

a.score:hover .score__go .ic { transform: translate(2px, -2px); }

/* Karuzela opinii (ZnanyLekarz + Google) */

.rcar { min-width: 0; display: grid; gap: 18px; }

.rcar__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }

.chips--reviews { margin: 0; }

.chips--reviews button { display: inline-flex; align-items: center; gap: 7px; }

.chips--reviews button .ic { width: 15px; height: 15px; color: var(--brand); }

.chips--reviews button[aria-pressed="true"] { background: var(--ink); border-color: var(--ink); color: #fff; }

.chips--reviews button[aria-pressed="true"] .ic { color: #fff; }

.chips--reviews b { font-weight: 600; opacity: .7; }

.rcar__nav { display: flex; gap: 8px; margin-left: auto; }

.quotes {
  list-style: none; margin: 0; padding: 2px 2px 4px; display: flex; gap: 16px; align-items: stretch;
  overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain;
}

.quotes::-webkit-scrollbar { display: none; }

.quote { flex: 0 0 calc((100% - 48px) / 3.2); scroll-snap-align: start; margin: 0; background: var(--bg); border-radius: var(--r); padding: 26px; display: flex; flex-direction: column; gap: 14px; }

.quote.is-hidden { display: none; }

.quote.is-shown { animation: certIn .55s var(--ease) both; }

.quote__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 10px; }

.quote__src { display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border-radius: 999px; background: #fff; font-size: 12.5px; font-weight: 600; color: var(--brand); }

.quote__src .ic { width: 14px; height: 14px; }

.quote blockquote { margin: 0; font: 400 17px/1.5 var(--f-display); color: var(--ink); }

.quote blockquote.is-long:not(.is-open) { display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden; }

.quote__more { align-self: flex-start; font-size: 14.5px; }

.quote__by { margin-top: auto; padding-top: 6px; display: flex; align-items: center; gap: 12px; font-size: 14.5px; color: var(--muted); }

.quote__by strong { display: block; color: var(--ink); }

.quote__by small { display: block; font-size: 13px; }

.av { flex: none; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--teal-100); color: var(--ink); font-weight: 700; }

.av--img { -o-object-fit: cover; object-fit: cover; }

.rcar__foot { display: flex; align-items: center; gap: 24px; }

.rcar__foot .certs__bar { flex: 1; }

.rcar__write { flex: none; font-size: 15px; }

.rcar__write .ic { width: 16px; height: 16px; }

/* miękkie wygaszenie prawej krawędzi, dopóki są kolejne opinie */

@media (min-width: 601px) {
  .quotes:not(.is-end) { -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 70px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 70px), transparent); }
}

@media (max-width: 1080px) {
  .quote { flex-basis: calc((100% - 16px) / 2.15); }
  .reviews__head { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 600px) {
  .quote { flex-basis: 86%; padding: 22px; }
  .scores { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; width: 100%; }
  .score { min-width: 0; flex-direction: column; align-items: flex-start; gap: 8px; padding: 16px; }
  .score__big { font-size: 40px; }
  .score__meta { gap: 4px; }
  .score__src { font-size: 10.5px; letter-spacing: .08em; }
  .score .rating__stars svg { width: 13px; height: 13px; }
  .score__sub { font-size: 13px; }
  .score__go { position: absolute; top: 12px; right: 12px; width: 30px; height: 30px; }
  .rcar__nav { display: none; }
  .chips--reviews { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(var(--gut) * -1); padding-inline: var(--gut); scrollbar-width: none; max-width: 100vw; }
  .chips--reviews button { flex: none; }
  .rcar__foot { flex-direction: column; align-items: stretch; gap: 16px; }
  .rcar__write { align-self: flex-start; }
}

/* Strona „Opinie”: wszystkie opinie w siatce, bez strzałek i paska */

.reviews__head--scores { justify-content: flex-start; }

.rcar--grid .rcar__foot { justify-content: flex-end; }

.rcar--grid .quotes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: visible; -webkit-mask-image: none; mask-image: none; padding: 0; }

.rcar--grid .quote { flex: none; }

@media (max-width: 1080px) { .rcar--grid .quotes { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

@media (max-width: 600px) { .rcar--grid .quotes { grid-template-columns: 1fr; } }

.reviews--page { padding-top: clamp(48px, 6vw, 88px); }

/* Pytania (akordeon) i skrót bloga */

.faq { background: var(--paper); border-radius: 0 0 var(--r-lg) var(--r-lg); padding-top: 0; }

.faq__in { display: grid; grid-template-columns: 1.4fr .6fr; gap: clamp(32px, 6vw, 96px); align-items: start; }

.acc details { border-bottom: 1px solid var(--line); }

.acc details:first-child { border-top: 1px solid var(--line); }

.acc summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 24px 0; cursor: pointer; font: 600 20px/1.3 var(--f-display); color: var(--ink); letter-spacing: -.01em; }

.acc summary::-webkit-details-marker { display: none; }

.acc summary .ic { width: 26px; height: 26px; padding: 5px; border-radius: 50%; background: var(--bg); color: var(--brand); transition: transform .35s var(--ease), background-color .3s; }

.acc summary:hover .ic { background: var(--mist); }

.acc details[open]:not(.is-closing) summary .ic, .acc details.is-opening summary .ic { transform: rotate(45deg); background: var(--brand); color: #fff; }

.acc__body { padding: 0 48px 26px 0; }

.acc__body p { color: var(--muted); max-width: 640px; }

.blog { display: grid; gap: 14px; padding-top: 10px; }

.post { display: grid; grid-template-columns: 76px 1fr; gap: 16px; align-items: center; text-decoration: none; padding: 12px; margin-inline: -12px; border-radius: var(--r-sm); transition: background-color .25s; }

.post:hover { background: var(--bg); }

.post__img { width: 76px; height: 76px; border-radius: 14px; display: grid; place-items: center; color: #fff; }

.post__img .ic { width: 28px; height: 28px; }

.post__img--a { background: linear-gradient(135deg, var(--brand), var(--teal)); }

.post__img--b { background: linear-gradient(135deg, var(--ink-3), var(--brand)); }

.post small { display: block; font-size: 12.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .1em; color: var(--brand); margin-bottom: 4px; }

.post strong { font: 600 16.5px/1.3 var(--f-display); color: var(--ink); }

/* Blok kontaktowy z mapą */

.contact { padding-block: clamp(16px, 2vw, 24px); }

.contact__in { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; max-width: calc(var(--wrap) + 80px); }

.contact__card { background: var(--deep); color: rgba(255,255,255,.78); border-radius: var(--r-lg); padding: clamp(28px, 4.5vw, 60px); }

.contact__title { color: #fff; margin-bottom: 18px; }

.contact__title em { color: var(--brand-300); }

.contact__lead { font-size: 18px; }

.contact__actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 32px 0 36px; }

.cinfo { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; border-top: 1px solid rgba(255,255,255,.1); padding-top: 30px; }

.cinfo li { display: flex; gap: 16px; align-items: flex-start; }

.cinfo .ic { color: var(--brand-300); margin-top: 3px; width: 20px; height: 20px; }

.cinfo strong { color: #fff; display: block; font-weight: 600; }

.cinfo a { text-decoration: none; color: #fff; border-bottom: 1px solid rgba(255,255,255,.25); }

.cinfo a:hover { border-color: var(--brand-300); }

.contact__more { margin-top: 28px; color: var(--brand-300); }

.contact__map { position: relative; border-radius: var(--r-lg); overflow: hidden; min-height: 420px; background: var(--mist) radial-gradient(circle, rgba(9,147,199,.18) 1.5px, transparent 1.6px) 0 0 / 22px 22px; }

.contact__map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: grayscale(.85) contrast(1.05); }

.contact__route { position: absolute; left: 20px; bottom: 20px; display: inline-flex; align-items: center; gap: 8px; background: #fff; color: var(--ink); font-weight: 600; text-decoration: none; padding: 12px 18px; border-radius: 999px; box-shadow: var(--shadow); }

.contact__route .ic { color: var(--brand); }

/* Pełnoekranowy podgląd certyfikatów */

.lb { border: 0; padding: 0; margin: 0; width: 100vw; height: 100dvh; max-width: none; max-height: none; background: rgba(6,70,104,.95); color: #fff; }

.lb::backdrop { background: transparent; }

.lb[open] { animation: lbIn .3s var(--ease); }

@keyframes lbIn { from { opacity: 0; } }

.lb__in { position: relative; width: 100%; height: 100%; display: grid; place-items: center; padding: 72px 96px 40px; }

.lb__fig { margin: 0; display: flex; flex-direction: column; align-items: center; gap: 18px; max-width: 100%; max-height: 100%; }

.lb__fig img { max-width: min(1100px, 100%); max-height: calc(100dvh - 210px); width: auto; height: auto; border-radius: 4px; background: #fff; box-shadow: 0 30px 80px -20px rgba(0,0,0,.6); }

.lb__fig img.is-swap { animation: swap .4s var(--ease) both; }

.lb__fig figcaption { text-align: center; display: grid; gap: 4px; max-width: 720px; }

.lb__fig strong { font: 600 20px/1.3 var(--f-display); }

.lb__fig span { font-size: 15px; color: rgba(255,255,255,.65); }

.lb__btn, .lb__x { position: absolute; width: 52px; height: 52px; border-radius: 50%; border: 1px solid rgba(255,255,255,.18); background: rgba(255,255,255,.06); color: #fff; display: grid; place-items: center; transition: background-color .2s; }

.lb__btn:hover, .lb__x:hover { background: rgba(255,255,255,.18); }

.lb__btn { top: 50%; transform: translateY(-50%); }

.lb__btn--prev { left: 24px; }

.lb__btn--prev .ic { transform: scaleX(-1); }

.lb__btn--next { right: 24px; }

.lb__x { right: 24px; top: 16px; }

.lb__count { position: absolute; left: 28px; top: 30px; font-size: 14px; color: rgba(255,255,255,.6); font-variant-numeric: tabular-nums; }

/* Pas z wezwaniem do działania na dole podstron */

.cta { padding-top: clamp(16px, 2vw, 24px); }

.cta__in {
  position: relative; overflow: hidden; display: grid; grid-template-columns: 1fr auto; gap: 32px clamp(32px, 5vw, 80px); align-items: center;
  background: var(--brand); color: #fff; border-radius: var(--r-lg); padding: clamp(32px, 5vw, 72px);
}

.cta__mark { position: absolute; right: 18%; top: -70px; width: 320px; max-width: none; opacity: .1; filter: brightness(0) invert(1); pointer-events: none; }

.cta__copy { position: relative; }

.cta h2 { color: #fff; font-size: clamp(32px, 4.4vw, 58px); }

.cta h2 em { color: #fff; opacity: .82; }

.cta p { margin-top: 14px; max-width: 540px; font-size: 18px; color: rgba(255,255,255,.88); }

.cta__actions { position: relative; display: grid; gap: 10px; }

.cta .btn--brand { background: var(--ink); box-shadow: none; }

.cta .btn--brand:hover { background: var(--ink-2); }

@media (max-width: 900px) {
  .cta__in { grid-template-columns: 1fr; }
  .cta__mark { right: -60px; }
}

/* Formularze Contact Form 7 (szablon formularza używa klas .fd-form i .field) */

.formcard { background: var(--paper); color: var(--text); border-radius: var(--r-lg); padding: clamp(24px, 3.4vw, 44px); box-shadow: var(--shadow); }

.sheet .formcard { background: var(--bg); box-shadow: none; }

.formcard h2 { font-size: clamp(28px, 3vw, 40px); margin-bottom: 10px; }

.formcard__lead { color: var(--muted); margin-bottom: 26px; }

.fd-form { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }

.fd-form .field { display: grid; gap: 7px; align-content: start; min-width: 0; }

.fd-form .field--full { grid-column: 1 / -1; }

.fd-form label { font-weight: 600; font-size: 14.5px; color: var(--ink); }

.fd-form .req { color: var(--pain); }

.fd-form .wpcf7-form-control-wrap { display: block; }

.fd-form input[type="text"], .fd-form input[type="email"], .fd-form input[type="tel"], .fd-form input[type="number"], .fd-form select, .fd-form textarea {
  width: 100%; height: 54px; padding: 0 16px; border: 1.5px solid var(--line); border-radius: 14px; background: #fff;
  font: 400 16px/1.4 var(--f-body); color: var(--ink); -webkit-appearance: none; -moz-appearance: none; appearance: none; transition: border-color .2s, box-shadow .2s;
}

.fd-form textarea { height: auto; min-height: 140px; padding: 14px 16px; resize: vertical; }

.fd-form select {
  padding-right: 44px; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230A5B85' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center; background-size: 18px;
}

.fd-form input::-moz-placeholder, .fd-form textarea::-moz-placeholder { color: #9AA9B3; }

.fd-form input::placeholder, .fd-form textarea::placeholder { color: #9AA9B3; }

.fd-form input:focus, .fd-form select:focus, .fd-form textarea:focus { outline: none; border-color: var(--brand); box-shadow: 0 0 0 4px rgba(9,147,199,.15); }

.fd-form .wpcf7-not-valid { border-color: var(--pain); }

.fd-form .wpcf7-not-valid-tip { display: block; margin-top: 6px; font-size: 13.5px; color: #C0392B; }

.fd-form .wpcf7-acceptance .wpcf7-list-item { display: block; margin: 0; }

.fd-form .wpcf7-acceptance label { display: flex; gap: 12px; align-items: flex-start; font-weight: 400; font-size: 14px; line-height: 1.5; color: var(--muted); cursor: pointer; }

.fd-form .wpcf7-acceptance input[type="checkbox"] { flex: none; width: 22px; height: 22px; margin: 0; accent-color: var(--brand); cursor: pointer; }

.fd-form .wpcf7-acceptance a { color: var(--brand); }

.fd-form__hint { grid-column: 1 / -1; position: relative; padding: 12px 16px 12px 40px; border-radius: 12px; background: rgba(96,182,183,.12); font-size: 14px; line-height: 1.5; color: var(--text); }

.fd-form__hint::before { content: ""; position: absolute; left: 16px; top: 18px; width: 10px; height: 10px; border-radius: 50%; background: var(--teal); box-shadow: 0 0 0 4px rgba(96,182,183,.25); }

.fd-form__foot { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 14px 20px; margin-top: 4px; }

.fd-form__note { font-size: 14.5px; color: var(--muted); }

.fd-form__note a { color: var(--ink); font-weight: 600; text-decoration: none; }

.fd-form .wpcf7-submit { border: 0; cursor: pointer; }

.fd-form .wpcf7-submit:disabled { opacity: .6; cursor: not-allowed; }

/* Elementy techniczne CF7 (motyw nie ładuje arkusza wtyczki) */

.wpcf7 .screen-reader-response { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); -webkit-clip-path: inset(50%); clip-path: inset(50%); border: 0; }

.wpcf7 .hidden-fields-container { display: none; }

.wpcf7 form .wpcf7-spinner { display: none; width: 22px; height: 22px; border: 3px solid rgba(9,147,199,.25); border-top-color: var(--brand); border-radius: 50%; }

.wpcf7 form.submitting .wpcf7-spinner { display: inline-block; animation: fd-spin .8s linear infinite; }

.wpcf7 form .wpcf7-response-output { margin-top: 18px; padding: 14px 18px; border-radius: 14px; font-size: 15px; line-height: 1.5; }

.wpcf7 form.init .wpcf7-response-output, .wpcf7 form.resetting .wpcf7-response-output, .wpcf7 form.submitting .wpcf7-response-output { display: none; }

.wpcf7 form.sent .wpcf7-response-output { background: var(--mist); color: var(--ink); border: 1.5px solid rgba(9,147,199,.4); }

.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.payment-required .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output, .wpcf7 form.aborted .wpcf7-response-output, .wpcf7 form.spam .wpcf7-response-output { background: #FBEEEC; color: #8C2A21; border: 1.5px solid rgba(240,102,90,.45); }

@keyframes fd-spin { to { transform: rotate(360deg); } }

@media (max-width: 600px) {
  .fd-form { grid-template-columns: 1fr; }
  .fd-form .wpcf7-submit { width: 100%; }
}

/* Kafle informacyjne (cennik: informacje, kontakt: dojazd) i stan „brak treści” */

.tiles { display: grid; gap: 16px; }

.tiles--2 { grid-template-columns: repeat(2, 1fr); }

.tiles--3 { grid-template-columns: repeat(3, 1fr); }

.tiles--4 { grid-template-columns: repeat(4, 1fr); }

@media (max-width: 1080px) { .tiles--4 { grid-template-columns: repeat(2, 1fr); } }

.tile { display: flex; flex-direction: column; gap: 12px; padding: 30px; border-radius: var(--r); background: var(--bg); }

.tile h3 { font-size: 21px; margin-top: 6px; }

.tile p { font-size: 16px; color: var(--muted); }

.empty { display: grid; justify-items: center; gap: 14px; max-width: 520px; margin-inline: auto; padding: 40px 0; text-align: center; }

.empty h2 { font-size: 30px; }

.empty p { color: var(--muted); }

@media (max-width: 900px) {
  .tiles--2, .tiles--3, .tiles--4 { grid-template-columns: 1fr; }
}

/* Znak Metody McKenziego (logo + podpis) */

.mck { display: inline-flex; align-items: center; gap: 16px; text-decoration: none; }

.mck__logo { flex: none; width: 76px; height: 76px; border-radius: 50%; background: #fff; padding: 5px; display: grid; place-items: center; box-shadow: 0 10px 26px -10px rgba(0,0,0,.45); }

.mck__logo img { width: 100%; height: 100%; -o-object-fit: contain; object-fit: contain; border-radius: 50%; }

.mck__text { display: grid; gap: 3px; }

.mck__text strong { font: 600 19px/1.2 var(--f-display); letter-spacing: -.01em; }

.mck__text span { font-size: 14.5px; line-height: 1.35; max-width: 260px; }

.mck--dark { margin-bottom: 34px; padding: 10px 24px 10px 10px; border-radius: 999px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); }

.mck--dark .mck__text strong { color: #fff; }

.mck--dark .mck__text span { color: rgba(255,255,255,.72); }

a.mck--dark:hover { background: rgba(255,255,255,.1); }

.mck--footer { margin-top: 28px; }

.mck--footer .mck__logo { width: 64px; height: 64px; }

.mck--footer .mck__text strong { color: #fff; font-size: 17px; }

.mck--footer .mck__text span { color: rgba(255,255,255,.65); font-size: 14px; }

/* wariant pionowy — karta w nagłówku podstrony terapii */

.mck--stack { position: relative; flex-direction: column; text-align: center; gap: 14px; }

.mck--stack .mck__logo { width: 132px; height: 132px; padding: 8px; }

.mck--stack .mck__text { justify-items: center; }

.mck--stack .mck__text strong { color: #fff; font-size: 22px; }

.mck--stack .mck__text span { color: rgba(255,255,255,.75); }

.shero__art--mck { aspect-ratio: auto; padding: 34px 20px; }

@media (max-width: 600px) {
  .mck--dark { border-radius: 24px; }
  .mck__logo { width: 64px; height: 64px; }
}

.ftr__brand .mck__logo img { width: 100%; height: 100%; margin: 0; }

/* Linki społecznościowe (components/cmp-social.php) */

.social { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }

.social a { display: inline-flex; align-items: center; justify-content: center; gap: 8px; text-decoration: none; transition: background-color .25s, color .25s, border-color .25s, transform .25s var(--ease); }

.social a:hover { transform: translateY(-2px); }

.social .ic { width: 19px; height: 19px; }

/* okrągłe ikony na ciemnym tle */

.social--light a { width: 44px; height: 44px; border-radius: 50%; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.18); color: #fff; }

.social--light a:hover { background: #fff; color: var(--ink); }

.ftr .social, .contact__card .social { margin-top: 24px; }

/* pastylki z podpisem na jasnym tle */

.social--pills a { height: 44px; padding-inline: 16px; border-radius: 999px; background: #fff; border: 1px solid var(--line); color: var(--ink); font-weight: 600; font-size: 14.5px; }

.social--pills .ic { color: var(--brand); }

.social--pills a:hover { background: var(--ink); border-color: var(--ink); color: #fff; }

.social--pills a:hover .ic { color: #fff; }

.mnav .social { margin-top: 4px; }

/* Baner „Kupon podarunkowy” (strona główna, Cennik) */

.voucher { padding: 0 0 clamp(64px, 8vw, 120px); }

.voucher__card {
  position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 32px clamp(32px, 5vw, 72px); align-items: center;
  padding: clamp(28px, 4.4vw, 56px); border-radius: var(--r-lg); background: var(--deep); color: rgba(255,255,255,.86);
}

.voucher__card::before { content: ""; position: absolute; left: -120px; bottom: -160px; width: 420px; height: 420px; border-radius: 50%; background: radial-gradient(circle, rgba(96,182,183,.3), transparent 70%); pointer-events: none; }

.voucher__copy { position: relative; }

.voucher h2 { color: #fff; font-size: clamp(34px, 4.4vw, 56px); margin-bottom: 16px; }

.voucher h2 em { color: var(--brand-300); }

.voucher__text { font-size: clamp(17px, 1.5vw, 19px); max-width: 520px; margin-bottom: 28px; }

/* „bilet” — sam obrazek, cała akcja jest w przycisku */

.voucher__ticket {
  position: relative; display: grid; justify-items: center; gap: 10px; padding: 40px 28px 34px; border-radius: 22px; text-decoration: none; text-align: center;
  background: #fff; color: var(--ink); transform: rotate(-4deg); box-shadow: 0 34px 60px -30px rgba(0,0,0,.6);
  transition: transform .5s var(--ease);
  -webkit-mask: radial-gradient(circle 16px at 0 62%, #0000 98%, #000) left / 51% 100% no-repeat, radial-gradient(circle 16px at 100% 62%, #0000 98%, #000) right / 51% 100% no-repeat;
          mask: radial-gradient(circle 16px at 0 62%, #0000 98%, #000) left / 51% 100% no-repeat, radial-gradient(circle 16px at 100% 62%, #0000 98%, #000) right / 51% 100% no-repeat;
}

.voucher__card:hover .voucher__ticket { transform: rotate(0) scale(1.03); }

.voucher__ticket::after { content: ""; position: absolute; left: 22px; right: 22px; top: 62%; border-top: 2px dashed var(--line); }

.voucher__ribbon { position: absolute; top: 0; bottom: 0; left: 50%; width: 22px; transform: translateX(-50%); background: linear-gradient(90deg, rgba(96,182,183,.85), rgba(96,182,183,.6)); }

.voucher__ic { position: relative; width: 64px; height: 64px; border-radius: 50%; display: grid; place-items: center; background: var(--brand); color: #fff; box-shadow: 0 0 0 8px #fff; }

.voucher__ic .ic { width: 30px; height: 30px; }

.voucher__ticket strong { position: relative; padding: 4px 12px; background: #fff; font: 600 clamp(20px, 2vw, 24px)/1.2 var(--f-display); }

.voucher__brand { position: relative; margin-top: 30px; padding: 2px 10px; background: #fff; font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--brand); }

@media (max-width: 900px) {
  .voucher__card { grid-template-columns: 1fr; }
  .voucher__ticket { max-width: 340px; width: 100%; justify-self: center; order: -1; }
}

@media (max-width: 600px) {
  .voucher .btn { width: 100%; justify-content: center; }
}

/* Strona 404 — „kręg wypadł z osi” (404.php) */

.e404 { position: relative; isolation: isolate; overflow: hidden; padding: calc(var(--hdr-h) + clamp(32px, 6vw, 80px)) 0 clamp(64px, 8vw, 120px); }

.e404__bg {
  position: absolute; inset: 0; z-index: -1;
  background:
    radial-gradient(55% 60% at 80% 30%, rgba(52,201,232,.18), transparent 70%),
    radial-gradient(45% 45% at 5% 95%, rgba(96,182,183,.16), transparent 70%);
}

.e404__in { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(32px, 5vw, 80px); align-items: center; }

.e404__title { font-size: clamp(46px, 7vw, 96px); line-height: .98; letter-spacing: -.035em; margin: 6px 0 24px; }

.e404__lead { font-size: clamp(18px, 1.6vw, 21px); max-width: 520px; color: var(--text); }

.e404__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }

/* ilustracja: kręgosłup z kręgiem, który wraca na miejsce */

.e404__art { position: relative; display: grid; place-items: center; min-height: 440px; }

.e404__num {
  position: absolute; inset: 50% auto auto 50%; transform: translate(-50%, -50%);
  font: 700 clamp(150px, 20vw, 280px)/1 var(--f-display); letter-spacing: -.06em; color: transparent;
  -webkit-text-stroke: 2px rgba(9,147,199,.16); -webkit-user-select: none; -moz-user-select: none; user-select: none;
}

.e404__spine { position: relative; width: min(100%, 240px); height: auto; overflow: visible; }

.e404__vert rect { fill: var(--ink); }

.e404__vert:nth-child(odd) rect { fill: #0b6e9f; }

.e404__disc { fill: var(--teal); opacity: .55; }

.e404__vert.is-out { transform-box: fill-box; transform-origin: center; animation: e404Out 6s cubic-bezier(.65, 0, .35, 1) infinite; }

.e404__vert.is-out rect { animation: e404Color 6s ease infinite; }

.e404__glow { fill: rgba(239,95,85,.25); animation: e404Glow 6s ease infinite; }

.e404__ok { opacity: 0; transform-box: view-box; transform-origin: 0 0; animation: e404Ok 6s ease infinite; }

.e404__ok circle { fill: var(--brand); }

.e404__ok path { fill: none; stroke: #fff; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }

@keyframes e404Out {
  0%, 38% { transform: translate(34px, -2px) rotate(12deg); }
  50%, 92% { transform: translate(0, 0) rotate(0); }
  100% { transform: translate(34px, -2px) rotate(12deg); }
}

@keyframes e404Color {
  0%, 40% { fill: #ef5f55; }
  52%, 92% { fill: var(--brand); }
  100% { fill: #ef5f55; }
}

@keyframes e404Glow {
  0%, 36% { opacity: 1; transform: scale(1); }
  18% { opacity: .55; }
  48%, 100% { opacity: 0; }
}

@keyframes e404Ok {
  0%, 52% { opacity: 0; transform: translate(166px, 254px) scale(.4); }
  58%, 86% { opacity: 1; transform: translate(166px, 254px) scale(1); }
  94%, 100% { opacity: 0; transform: translate(166px, 254px) scale(.4); }
}

@media (prefers-reduced-motion: reduce) {
  .e404__vert.is-out, .e404__vert.is-out rect, .e404__glow, .e404__ok { animation: none; }
  .e404__vert.is-out { transform: translate(34px, -2px) rotate(12deg); }
  .e404__vert.is-out rect { fill: #ef5f55; }
}

/* „Może tego szukasz?” */

.e404__more { margin-top: clamp(48px, 7vw, 96px); }

.e404__h { font-size: clamp(26px, 2.6vw, 34px); margin-bottom: 20px; }

.e404__links { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }

.e404__card {
  display: flex; align-items: center; gap: 14px; padding: 20px; border-radius: var(--r); text-decoration: none; color: var(--ink);
  background: rgba(255,255,255,.75); border: 1px solid rgba(255,255,255,.9); box-shadow: 0 1px 2px rgba(10,91,133,.06);
  transition: transform .35s var(--ease), box-shadow .35s var(--ease), background-color .3s;
}

.e404__card:hover { transform: translateY(-4px); background: #fff; box-shadow: var(--shadow); }

.e404__card strong { display: block; font: 600 18px/1.2 var(--f-display); }

.e404__card small { display: block; margin-top: 3px; font-size: 14px; color: var(--muted); }

.e404__ic { flex: none; width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; background: var(--mist); color: var(--brand); }

.e404__ic .ic { width: 22px; height: 22px; }

.e404__go { margin-left: auto; flex: none; color: var(--brand); transition: transform .3s var(--ease); }

.e404__go .ic { width: 18px; height: 18px; }

.e404__card:hover .e404__go { transform: translateX(4px); }

.e404__svc { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 0; }

.e404__svc a {
  display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border-radius: 999px; border: 1px solid var(--line);
  background: rgba(255,255,255,.6); color: var(--ink); font-size: 14.5px; font-weight: 500; text-decoration: none; transition: border-color .2s, background-color .2s;
}

.e404__svc a:hover { border-color: var(--brand); background: #fff; }

.e404__svc .ic { width: 16px; height: 16px; color: var(--brand); }

.e404 .helpnote { margin-top: 24px; }

@media (max-width: 1080px) { .e404__links { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

@media (max-width: 900px) {
  .e404__in { grid-template-columns: 1fr; }
  .e404__art { order: -1; min-height: 300px; }
  .e404__spine { width: 170px; }
}

@media (max-width: 600px) {
  .e404__links { grid-template-columns: 1fr; }
  .e404__actions .btn { flex: 1 1 100%; justify-content: center; }
}

/* Strony */

/* Strona główna — hero */

.hero { position: relative; padding-top: calc(var(--hdr-h) + clamp(28px, 5vw, 64px)); padding-bottom: 40px; isolation: isolate; }

.hero__bg {
  position: absolute; inset: 0; z-index: -1; overflow: hidden;
  background:
    radial-gradient(60% 55% at 85% 30%, rgba(52,201,232,.20), transparent 70%),
    radial-gradient(45% 45% at 10% 90%, rgba(96,182,183,.18), transparent 70%);
}

.hero__in { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(32px, 5vw, 80px); align-items: center; }

.eyebrow { display: inline-flex; align-items: center; gap: 10px; font-weight: 500; font-size: 15px; color: var(--muted); padding: 8px 14px 8px 12px; border-radius: 999px; background: rgba(255,255,255,.7); border: 1px solid var(--line); }

.eyebrow .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--teal); box-shadow: 0 0 0 4px rgba(96,182,183,.25); }

.hero__title { font-size: clamp(54px, 8.4vw, 116px); line-height: .96; letter-spacing: -.035em; margin: 26px 0 26px; }

.hero__title em { display: inline; letter-spacing: -.02em; }

.hero__lead { font-size: clamp(18px, 1.6vw, 21px); max-width: 540px; color: var(--text); }

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

.rating { display: inline-flex; align-items: center; gap: 12px; margin-top: 28px; text-decoration: none; color: var(--muted); font-size: 15px; }

.rating strong { color: var(--ink); }

.rating__stars { display: inline-flex; gap: 2px; color: var(--star); }

.rating__stars svg { width: 17px; height: 17px; fill: currentColor; }

.rating__stars--lg svg { width: 26px; height: 26px; }

.hero__visual { position: relative; display: flex; justify-content: flex-end; }

.hero__photo {
  margin: 0; position: relative; width: min(100%, 500px); aspect-ratio: 4 / 5;
  border-radius: 999px 999px var(--r-lg) var(--r-lg); overflow: hidden; background: var(--mist);
  box-shadow: 0 40px 80px -40px rgba(14,34,48,.45);
}

.hero__photo img { width: 100%; height: 100%; -o-object-fit: cover; object-fit: cover; -o-object-position: 30% 50%; object-position: 30% 50%; transform: scale(1.04); }

.spine { position: absolute; right: calc(min(100%, 500px) - 34px); top: -4%; height: 108%; width: auto; z-index: 2; overflow: visible; pointer-events: none; }

.spine circle { fill: var(--brand); }

.chip {
  position: absolute; z-index: 3; display: flex; align-items: center; gap: 12px;
  background: rgba(255,255,255,.92); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border-radius: 18px; padding: 12px 18px 12px 12px;
  box-shadow: var(--shadow); border: 1px solid rgba(255,255,255,.7);
}

.chip--mdt { left: 4%; bottom: 13%; max-width: 290px; }

.chip--mdt img { width: 48px; height: 48px; border-radius: 50%; }

.chip--mdt strong { display: block; font: 700 16px/1.2 var(--f-display); color: var(--ink); }

.chip--mdt span { font-size: 13.5px; line-height: 1.3; color: var(--muted); display: block; }

.chip--years { right: -3%; top: 16%; flex-direction: column; align-items: flex-start; gap: 4px; padding: 16px 20px; }

.chip--years strong { font: 700 44px/1 var(--f-display); color: var(--brand); letter-spacing: -.03em; }

.chip--years > span { max-width: 110px; font-size: 13.5px; line-height: 1.3; color: var(--muted); }

.stats {
  list-style: none; margin: clamp(48px, 7vw, 88px) auto 0; padding-top: 0; padding-bottom: 0;
  display: grid; grid-template-columns: repeat(4, 1fr);
}

.stats li { padding: 26px 26px 6px 0; border-top: 1px solid var(--line); }

.stats li + li { padding-left: 26px; border-left: 1px solid var(--line); }

.stats strong { display: block; font: 600 clamp(34px, 3.4vw, 46px)/1 var(--f-display); color: var(--ink); letter-spacing: -.03em; margin-bottom: 8px; }

.stats strong small { font-size: .5em; color: var(--muted); }

.stats li > span { font-size: 15px; color: var(--muted); }

/* Klikalne kafelki i plakietki przy zdjęciu (prośba klientki 10.2026) */

a.chip { text-decoration: none; color: inherit; transition: transform .35s var(--ease), box-shadow .35s var(--ease); }

a.chip:hover { transform: translateY(-4px); box-shadow: 0 1px 2px rgba(10,91,133,.08), 0 22px 40px -16px rgba(10,91,133,.4); }

.chip__go { position: absolute; right: 10px; top: 10px; width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; background: var(--mist); color: var(--brand); }

.chip__go .ic { width: 13px; height: 13px; }

.chip--mdt { padding-right: 40px; }

.stats li:has(.stats__link) { padding: 0; }

.stats__link {
  position: relative; display: block; height: 100%; padding: 26px 26px 18px; margin: 0 -1px; border-radius: var(--r);
  text-decoration: none; color: inherit; transition: background-color .3s, transform .35s var(--ease), box-shadow .35s;
}

.stats li:first-child .stats__link { margin-left: -26px; }

.stats__link:hover, .stats__link:focus-visible { background: rgba(255,255,255,.75); transform: translateY(-3px); box-shadow: var(--shadow); }

.stats__link > strong { padding-right: 30px; }

.stats__link > span:not(.stats__go) { display: block; padding-right: 30px; font-size: 15px; color: var(--muted); }

.stats__go { position: absolute; right: 14px; top: 22px; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; border: 1.5px solid var(--line); color: var(--brand); transition: background-color .3s, color .3s, border-color .3s, transform .35s var(--ease); }

.stats__go .ic { width: 15px; height: 15px; }

.stats__link:hover .stats__go { background: var(--brand); border-color: var(--brand); color: #fff; transform: rotate(45deg); }

@media (max-width: 600px) {
  .stats__link { padding: 20px 12px 14px; }
  .stats li:first-child .stats__link, .stats li:nth-child(3) .stats__link { margin-left: -12px; }
  .stats__go { right: 6px; top: 16px; width: 26px; height: 26px; }
}

/* Kafelki w siatce hero (pod zdjęciem i tekstem na całą szerokość) */

.hero__in > .stats { grid-column: 1 / -1; margin-top: 0; }

/* Telefon i tablet: nagłówek → zdjęcie z plakietkami → kafelki → tekst → przyciski (prośba klientki 21.10) */

@media (max-width: 900px) {
  .hero__in { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
  .hero__copy { display: contents; }
  .hero .eyebrow { order: 1; align-self: flex-start; }
  .hero__title { order: 2; margin-bottom: 24px; }
  .hero__visual { order: 3; }
  .hero__in > .stats { order: 4; margin-top: 30px; }
  .hero__lead { order: 5; margin-top: 30px; }
  .hero__actions { order: 6; margin-top: 26px; }
  .hero .rating { order: 7; align-self: flex-start; }
}

/* Strona główna — O mnie (sam tekst: kim jestem i co robię) */

.about__in { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(28px, 6vw, 100px); align-items: start; }

.about__head h2 { margin: 0; }

.about__lead { font-size: clamp(19px, 1.7vw, 22px); line-height: 1.6; color: var(--text); }

.about__quote { margin: 36px 0 0; padding: 0 0 0 26px; border-left: 3px solid var(--teal); }

.about__quote p { font: 300 clamp(24px, 2.4vw, 30px)/1.3 var(--f-display); color: var(--ink); letter-spacing: -.01em; }

/* Kwalifikacje — oś czasu (sekcja certyfikatów „Wiedza potwierdzona”) */

.quals { background: var(--paper); border-radius: var(--r-lg); padding: clamp(24px, 3vw, 36px); }

.quals h3 { font-size: 22px; margin-bottom: 20px; }

.tl { list-style: none; margin: 0; padding: 0; position: relative; }

.tl::before { content: ""; position: absolute; left: 74px; top: 8px; bottom: 8px; width: 2px; background: repeating-linear-gradient(var(--teal) 0 4px, transparent 4px 10px); opacity: .6; }

.tl li { display: grid; grid-template-columns: 62px 1fr; gap: 26px; padding: 10px 0; position: relative; }

.tl li::before { content: ""; position: absolute; left: 70px; top: 17px; width: 10px; height: 10px; border-radius: 50%; background: var(--paper); border: 2px solid var(--brand); }

.tl li:first-child::before { background: var(--brand); }

.tl time { font: 600 14px/1.6 var(--f-body); color: var(--brand); text-align: right; font-variant-numeric: tabular-nums; }

.tl strong { display: block; color: var(--ink); font-weight: 600; line-height: 1.35; }

.tl span { font-size: 14.5px; color: var(--muted); }

.quals__kif { display: flex; align-items: center; gap: 10px; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); font-weight: 500; font-size: 15px; color: var(--ink); }

.quals__kif .ic { color: var(--teal); }

/* W sekcji certyfikatów: nagłówek i dokument KIF po lewej, oś czasu po prawej */

.quals--certs { margin-top: clamp(40px, 5vw, 64px); background: #fff; display: grid; grid-template-columns: minmax(0, 300px) minmax(0, 1fr); gap: 20px clamp(32px, 5vw, 72px); align-items: start; }

.quals--certs h3 { font-size: clamp(24px, 2.4vw, 30px); margin-bottom: 10px; }

.quals__lead { font-size: 15px; color: var(--muted); }

.quals--certs .quals__kif { margin-top: 24px; align-items: flex-start; }

.quals--certs .tl li::before { background: #fff; }

.quals--certs .tl li:first-child::before { background: var(--brand); }

@media (max-width: 900px) {
  .about__in { grid-template-columns: 1fr; gap: 18px; }
  .quals--certs { grid-template-columns: 1fr; }
  .quals--certs .quals__kif { margin-top: 8px; }
}

@media (max-width: 600px) {
  .quals .tl::before { left: 58px; }
  .quals .tl li { grid-template-columns: 48px 1fr auto; gap: 18px; }
  .quals .tl li::before { left: 54px; }
  .quals .tl time { font-size: 13px; }
}

/* Strona główna — galeria certyfikatów */

.certs { overflow: hidden; }

.certs__nav { display: flex; align-items: center; gap: 10px; }

.certs__btn { width: 48px; height: 48px; border-radius: 50%; border: 1.5px solid var(--line); background: var(--paper); color: var(--ink); display: grid; place-items: center; transition: background-color .2s, color .2s, border-color .2s, opacity .2s; }

.certs__btn:hover { background: var(--ink); border-color: var(--ink); color: #fff; }

.certs__btn[data-dir="-1"] .ic { transform: scaleX(-1); }

.certs__btn:disabled { opacity: .35; pointer-events: none; }

.certs__count { margin-left: 8px; font-size: 14.5px; color: var(--muted); }

.certs__count b { font: 600 18px var(--f-display); color: var(--ink); }

.certs__track {
  --h: 320px;
  list-style: none; margin: 0; display: flex; gap: 28px; align-items: flex-start;
  overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none;
  padding: 18px max(var(--gut), calc((100vw - var(--wrap)) / 2 + var(--gut))) 30px;
  scroll-padding-inline: max(var(--gut), calc((100vw - var(--wrap)) / 2 + var(--gut)));
  cursor: grab;
}

.certs__track::-webkit-scrollbar { display: none; }

.certs__track.is-drag { cursor: grabbing; scroll-snap-type: none; }

.certs__track.is-drag .cert__open { pointer-events: none; }

.cert { flex: none; width: -moz-min-content; width: min-content; scroll-snap-align: start; display: flex; flex-direction: column; gap: 18px; }

.cert__open {
  position: relative; display: block; border: 0; padding: 10px; border-radius: 6px; background: #fff; cursor: zoom-in;
  box-shadow: 0 1px 2px rgba(14,34,48,.08), 0 18px 40px -18px rgba(14,34,48,.35);
  transition: transform .45s var(--ease), box-shadow .45s var(--ease);
}

.cert__open::after { content: ""; position: absolute; inset: 10px; border-radius: 2px; box-shadow: inset 0 0 0 1px rgba(14,34,48,.06); pointer-events: none; }

.cert__open img { height: var(--h); width: auto; max-width: none; border-radius: 2px; -webkit-user-select: none; -moz-user-select: none; user-select: none; }

.cert__open:hover { transform: translateY(-6px) rotate(-.6deg); box-shadow: 0 1px 2px rgba(14,34,48,.08), 0 30px 60px -20px rgba(14,34,48,.45); }

.cert__zoom { position: absolute; right: 20px; bottom: 20px; width: 40px; height: 40px; border-radius: 50%; background: var(--ink); color: #fff; display: grid; place-items: center; opacity: 0; transform: scale(.8); transition: opacity .25s, transform .3s var(--ease); }

.cert__open:hover .cert__zoom, .cert__open:focus-visible .cert__zoom { opacity: 1; transform: none; }

.cert__badge { position: absolute; left: 50%; top: -13px; transform: translateX(-50%); white-space: nowrap; font-size: 12.5px; font-weight: 600; padding: 6px 10px; border-radius: 999px; background: var(--brand); color: #fff; box-shadow: 0 6px 14px -6px rgba(9,147,199,.8); }

.cert__cap { display: grid; gap: 4px; padding-right: 4px; }

.cert__cap time { font: 600 13px/1 var(--f-body); letter-spacing: .1em; color: var(--brand); }

.cert__cap strong { font: 600 17px/1.3 var(--f-display); color: var(--ink); }

.cert__cap small { font-size: 14px; line-height: 1.45; color: var(--muted); }

.certs__bar { height: 3px; border-radius: 3px; background: var(--line); overflow: hidden; }

.certs__bar span { display: block; height: 100%; width: 20%; background: var(--brand); border-radius: 3px; transform-origin: left; transition: transform .15s linear; }

/* przyciski „zobacz certyfikat” w osi czasu */

.tl li { grid-template-columns: 62px 1fr auto; }

.tl__see, .quals__kif .tl__see { width: 34px; height: 34px; border-radius: 50%; border: 0; background: var(--mist); color: var(--brand); display: grid; place-items: center; align-self: start; transition: background-color .2s, color .2s; }

.tl__see:hover { background: var(--brand); color: #fff; }

.tl__see .ic { width: 17px; height: 17px; }

.quals__kif .tl__see { margin-left: auto; }

.quals__kif .tl__see .ic { color: inherit; }

/* Filtr grup certyfikatów */

.chips--certs { margin: -18px 0 8px; }

.chips--certs button[aria-pressed="true"] { background: var(--ink); border-color: var(--ink); color: #fff; }

.chips--certs b { margin-left: 4px; font-weight: 600; opacity: .7; }

.cert.is-hidden { display: none; }

.cert.is-shown { animation: certIn .55s var(--ease) both; }

@keyframes certIn { from { opacity: 0; transform: translateY(18px) scale(.97); } }

@media (max-width: 900px) { .chips--certs { margin-top: -8px; } }

/* Strona „Oferta” — lista usług w dużych wierszach */

.olist .sec__head { max-width: none; }

.olist__rows { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ink); }

.orow {
  display: grid; grid-template-columns: 44px 60px minmax(0, 1fr) auto 52px; gap: 8px 24px; align-items: center;
  padding: 30px 8px; border-bottom: 1px solid var(--line); text-decoration: none; color: var(--text);
  transition: background-color .35s, padding .35s var(--ease);
}

.orow:hover, .orow:focus-visible { background: var(--bg); padding-inline: 22px; }

.orow__n { font: 500 14px/1 var(--f-body); letter-spacing: .1em; color: var(--brand); }

.orow__ic { width: 60px; height: 60px; border-radius: 18px; display: grid; place-items: center; background: var(--mist); color: var(--brand); transition: background-color .3s, color .3s; }

.orow__ic .ic { width: 26px; height: 26px; }

.orow:hover .orow__ic { background: var(--brand); color: #fff; }

.orow__body { display: block; min-width: 0; }

.orow__title { display: block; font: 600 clamp(22px, 2.4vw, 30px)/1.15 var(--f-display); letter-spacing: -.02em; color: var(--ink); }

.orow__badge { display: inline-block; margin-left: 10px; padding: 5px 10px; border-radius: 999px; background: rgba(9,147,199,.12); color: var(--brand); font: 600 12.5px/1 var(--f-body); letter-spacing: 0; vertical-align: middle; }

.orow__desc { display: block; margin-top: 8px; max-width: 660px; color: var(--muted); }

.orow__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; }

.orow__tags span { padding: 5px 11px; border: 1px solid var(--line); border-radius: 999px; font-size: 13px; color: var(--text); background: var(--paper); }

.orow__price { grid-column: 4; font: 600 24px/1 var(--f-display); letter-spacing: -.02em; color: var(--ink); white-space: nowrap; }

.orow__price small { margin-right: 4px; font: 500 13px var(--f-body); color: var(--muted); }

.orow__go { grid-column: 5; width: 52px; height: 52px; border-radius: 50%; border: 1.5px solid var(--line); display: grid; place-items: center; color: var(--ink); transition: background-color .3s, color .3s, border-color .3s; }

.orow__go .ic { transition: transform .35s var(--ease); }

.orow:hover .orow__go { background: var(--ink); border-color: var(--ink); color: #fff; }

.orow:hover .orow__go .ic { transform: translateX(3px); }

@media (max-width: 900px) {
  .orow { grid-template-columns: 52px minmax(0, 1fr) 44px; gap: 6px 16px; padding: 24px 0; align-items: start; }
  .orow:hover, .orow:focus-visible { padding-inline: 12px; }
  .orow__n { display: none; }
  .orow__ic { width: 52px; height: 52px; border-radius: 15px; }
  .orow__price { grid-column: 2; grid-row: 2; font-size: 20px; margin-top: 6px; }
  .orow__go { width: 44px; height: 44px; grid-column: 3; grid-row: 1; }
}

/* Podstrona usługi */

/* --- nagłówek z kartą ceny --- */

.shero__in { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(32px, 5vw, 80px); align-items: center; }

.shero__in > * { min-width: 0; }

.shero__kicker { display: inline-flex; align-items: center; gap: 12px; margin-bottom: 20px; font: 600 13px/1 var(--f-body); letter-spacing: .14em; text-transform: uppercase; color: var(--brand); }

.shero__ic { width: 44px; height: 44px; border-radius: 13px; display: grid; place-items: center; background: #fff; color: var(--brand); box-shadow: 0 1px 0 var(--line); }

.shero__ic .ic { width: 22px; height: 22px; }

.shero .phero__title { font-size: clamp(38px, 5vw, 68px); line-height: 1.03; }

.shero__tags { list-style: none; margin: 24px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }

.shero__tags li { padding: 7px 13px; border-radius: 999px; border: 1px solid var(--line); background: rgba(255,255,255,.7); font-size: 14px; }

.shero__card { background: var(--paper); border-radius: var(--r-lg); padding: 10px; box-shadow: 0 40px 80px -40px rgba(14,34,48,.4); }

.shero__img { border-radius: 24px; overflow: hidden; aspect-ratio: 4 / 3; background: var(--mist); }

.shero__img img { width: 100%; height: 100%; -o-object-fit: cover; object-fit: cover; }

.shero__art { position: relative; border-radius: 24px; aspect-ratio: 16 / 10; overflow: hidden; display: grid; place-items: center; background: var(--deep); }

.shero__art > svg:first-child { position: absolute; left: 12%; top: -12%; height: 124%; width: auto; overflow: visible; }

.shero__art > svg:first-child circle { fill: rgba(52,201,232,.38); }

.shero__art-ic { position: relative; width: 104px; height: 104px; fill: none; stroke: var(--brand-300); stroke-width: 1.3; stroke-linecap: round; stroke-linejoin: round; }

.shero__art-ic use[href="#i-spine"] { fill: var(--brand-300); stroke: none; }

.shero__facts { display: grid; gap: 16px; padding: 22px 20px 16px; }

.shero__price { display: grid; grid-template-columns: 1fr auto; align-items: baseline; gap: 2px 12px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }

.shero__price span { font-size: 14px; color: var(--muted); }

.shero__price b { font: 600 34px/1 var(--f-display); letter-spacing: -.03em; color: var(--ink); }

.shero__price b small { font: 500 15px var(--f-body); color: var(--muted); letter-spacing: 0; }

.shero__price em { grid-column: 1 / -1; font-size: 14px; color: var(--muted); }

.shero__facts ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; font-size: 15.5px; }

.shero__facts li { display: flex; align-items: center; gap: 10px; }

.shero__facts li .ic { color: var(--brand); }

.shero__facts li a { text-decoration: none; font-weight: 600; color: var(--ink); }

/* --- wstęp + korzyści --- */

.sintro__in, .ssteps__in, .sfaq__in { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(32px, 6vw, 96px); align-items: start; }

.sintro__in > *, .ssteps__in > *, .sfaq__in > * { min-width: 0; }

.sintro__side, .ssteps__in > .sec__head, .sfaq__in > .sec__head { position: sticky; top: calc(var(--hdr-h) + 24px); margin-bottom: 0; }

.sintro__side h2 { font-size: clamp(34px, 4.4vw, 58px); }

.sintro__side .about__quote { margin: 32px 0 0; }

.sintro__side cite { display: block; margin-top: 12px; font-style: normal; font-size: 14px; color: var(--muted); }

.checks { margin-top: 36px; padding: clamp(22px, 3vw, 36px); border-radius: var(--r); background: var(--bg); }

.checks h3 { font-size: 22px; margin-bottom: 20px; }

.checks ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }

.checks li { display: flex; align-items: flex-start; gap: 14px; }

.checks li .ic { flex: none; width: 26px; height: 26px; padding: 5px; margin-top: 1px; border-radius: 50%; background: var(--brand); color: #fff; }

/* wyróżniona ramka (np. „Fizykoterapia w cenie wizyty”) */

.snote { position: relative; overflow: hidden; display: grid; grid-template-columns: auto 1fr; gap: 18px; align-items: start; margin-top: 36px; padding: clamp(22px, 3vw, 32px); border-radius: var(--r); background: var(--deep); color: rgba(255,255,255,.86); }

.snote::after { content: ""; position: absolute; right: -60px; top: -80px; width: 220px; height: 220px; border-radius: 50%; background: radial-gradient(circle, rgba(52,201,232,.28), transparent 70%); pointer-events: none; }

.snote__ic { width: 52px; height: 52px; border-radius: 16px; display: grid; place-items: center; background: rgba(255,255,255,.12); color: var(--brand-300); }

.snote__ic .ic { width: 26px; height: 26px; }

.snote h3 { color: #fff; font-size: clamp(21px, 2vw, 25px); margin-bottom: 8px; }

.snote h3 em { color: var(--brand-300); }

.snote p { font-size: 16.5px; line-height: 1.6; }

/* certyfikat przy wstępie (np. instruktor fitness przy zajęciach grupowych) */

.scert { display: grid; grid-template-columns: 116px 1fr; gap: 22px; align-items: center; margin-top: 32px; padding: 20px; border-radius: var(--r); background: var(--bg); }

.scert time { font: 600 13px/1 var(--f-body); letter-spacing: .1em; color: var(--brand); }

.scert p { font-size: 14.5px; color: var(--muted); }

.scert p strong { display: block; margin: 6px 0 4px; font: 600 16.5px/1.3 var(--f-display); color: var(--ink); }

.scert .link { margin-top: 10px; font-size: 15px; }

.scert .certcard { box-shadow: 0 14px 26px -12px rgba(10,91,133,.45); }

@media (max-width: 600px) {
  .snote { grid-template-columns: 1fr; gap: 14px; }
  .scert { grid-template-columns: 92px 1fr; gap: 16px; padding: 16px; }
}

/* --- bloki --- */

.sblocks__grid { display: grid; gap: 16px; }

.sblocks__grid--2 { grid-template-columns: repeat(2, 1fr); }

.sblocks__grid--3 { grid-template-columns: repeat(3, 1fr); }

.sblocks__grid--4 { grid-template-columns: repeat(4, 1fr); }

@media (max-width: 1080px) { .sblocks__grid--4 { grid-template-columns: 1fr 1fr; } }

.sblock { display: flex; flex-direction: column; gap: 14px; padding: 30px; border-radius: var(--r); background: var(--bg); }

.sblock h3 { font-size: 22px; margin-top: 6px; }

.sblock p { font-size: 16px; color: var(--muted); }

.sblock ul { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 9px; font-size: 15.5px; }

.sblock li { position: relative; padding-left: 20px; }

.sblock li::before { content: ""; position: absolute; left: 2px; top: .62em; width: 7px; height: 7px; border-radius: 50%; background: var(--teal); }

/* --- przebieg wizyty --- */

.ssteps__list { position: relative; list-style: none; margin: 0; padding: 0; }

.ssteps__list::before { content: ""; position: absolute; left: 25px; top: 20px; bottom: 40px; width: 2px; background: repeating-linear-gradient(var(--teal) 0 4px, transparent 4px 10px); opacity: .6; }

.ssteps__list li { position: relative; display: grid; grid-template-columns: 52px 1fr; gap: 22px; padding-bottom: 30px; }

.ssteps__list li:last-child { padding-bottom: 0; }

.ssteps__n { position: relative; z-index: 1; width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; background: var(--paper); border: 2px solid var(--brand); color: var(--brand); font: 600 19px/1 var(--f-display); }

.ssteps__list li:first-child .ssteps__n { background: var(--brand); color: #fff; }

.ssteps__list h3 { font-size: 21px; margin: 12px 0 6px; }

.ssteps__list p { color: var(--muted); }

/* --- wskazania / przeciwwskazania --- */

.sind__in { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }

.sind__in--single { grid-template-columns: 1fr; max-width: 820px; }

.sind__card { padding: clamp(24px, 3.4vw, 44px); border-radius: var(--r-lg); }

.sind__card--yes { background: var(--mist); }

.sind__card--no { background: #FBEEEC; }

.sind__card h2 { font-size: clamp(24px, 2.6vw, 32px); margin-bottom: 22px; }

.sind__card ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }

.sind__card li { display: flex; align-items: flex-start; gap: 12px; }

.sind__card li .ic { flex: none; width: 24px; height: 24px; padding: 5px; margin-top: 2px; border-radius: 50%; color: #fff; }

.sind__card--yes li .ic { background: var(--brand); }

.sind__card--no li .ic { background: var(--pain); }

/* --- podsumowanie --- */

.soutro__in { display: grid; grid-template-columns: auto 1fr; gap: 24px; max-width: 900px; margin-inline: auto; padding: clamp(24px, 3.4vw, 44px); border-radius: var(--r-lg); border: 1.5px dashed rgba(96,182,183,.6); background: rgba(96,182,183,.06); }

.soutro__ic { width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: var(--teal); color: #fff; }

.soutro__ic .ic { width: 26px; height: 26px; }

/* --- sekcja dodatkowa (ciemna) --- */

.sextra { margin-inline: clamp(0px, 1.2vw, 16px); margin-bottom: clamp(80px, 11vw, 150px); padding-block: clamp(64px, 9vw, 120px); border-radius: var(--r-lg); background: var(--deep); color: rgba(255,255,255,.78); }

.sextra__in { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 6vw, 88px); align-items: start; }

.sextra__in > * { min-width: 0; }

.sextra__in--single { grid-template-columns: 1fr; max-width: 900px; }

.sextra h2 { color: #fff; font-size: clamp(34px, 4.6vw, 60px); margin-bottom: 22px; }

.sextra h2 em { color: var(--brand-300); }

.sextra__items { list-style: none; margin: 28px 0 0; padding: 0; border-top: 1px solid rgba(255,255,255,.16); }

.sextra__items li { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; padding: 18px 0; border-bottom: 1px solid rgba(255,255,255,.1); }

.sextra__items strong { display: block; font: 600 18px/1.3 var(--f-display); color: #fff; }

.sextra__items span { font-size: 14.5px; }

.sextra__items b { font: 600 22px/1 var(--f-display); color: var(--brand-300); white-space: nowrap; }

.sextra__note { margin-top: 18px; font-size: 14px; color: rgba(255,255,255,.55); }

.sextra .formcard { background: var(--paper); box-shadow: none; }

/* --- pozostałe usługi --- */

.srel__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }

.srel .sec__head--row { align-items: end; }

/* Sekcja McKenziego wewnątrz białego arkusza */

.sheet > .mdt { margin-bottom: clamp(80px, 11vw, 150px); }

@media (max-width: 1080px) {
  .srel__grid { grid-template-columns: 1fr 1fr; }
  .sblocks__grid--3 { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 900px) {
  .shero__in, .sintro__in, .ssteps__in, .sfaq__in, .sind__in, .sextra__in { grid-template-columns: 1fr; }
  .sintro__side, .ssteps__in > .sec__head, .sfaq__in > .sec__head { position: static; }
  .ssteps__in > .sec__head, .sfaq__in > .sec__head { margin-bottom: 8px; }
  .shero__card { max-width: 520px; }
  .sblocks__grid--2, .sblocks__grid--3, .sblocks__grid--4, .srel__grid { grid-template-columns: 1fr; }
  .soutro__in { grid-template-columns: 1fr; }
}

/* Po ciemnej sekcji odstęp daje jej margines — kolejna sekcja nie dodaje własnego */

.sheet > .sextra + .sec, .sheet > .mdt + .sec { padding-top: 0; }

/* Strona „Cennik” */

.pricing__in { display: grid; grid-template-columns: 1.3fr .7fr; gap: clamp(32px, 5vw, 80px); align-items: start; }

.pricing__in > * { min-width: 0; }

.pgroup + .pgroup { margin-top: clamp(44px, 5vw, 76px); }

.pgroup__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 8px 24px; margin-bottom: 18px; }

.pgroup__head h2 { font-size: clamp(26px, 3vw, 36px); }

.pgroup__head p { font-size: 15px; color: var(--muted); }

.pricing__note { display: flex; align-items: flex-start; gap: 10px; margin-top: 28px; font-size: 15px; color: var(--muted); }

.pricing__note .ic { color: var(--brand); margin-top: 3px; }

.pricing__aside { position: sticky; top: calc(var(--hdr-h) + 24px); }

.bookcard { position: relative; overflow: hidden; display: grid; gap: 12px; padding: 32px; border-radius: var(--r-lg); background: var(--deep); color: rgba(255,255,255,.78); }

.bookcard .kicker { margin-bottom: 4px; }

.bookcard__title { margin-bottom: 10px; font: 600 24px/1.25 var(--f-display); color: #fff; letter-spacing: -.01em; }

.bookcard__mark { position: absolute; right: -30px; top: -30px; width: 180px; max-width: none; opacity: .07; filter: brightness(0) invert(1); pointer-events: none; }

.bookcard__addr { display: flex; align-items: center; gap: 10px; margin-top: 10px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.12); font-size: 15px; }

.bookcard__addr .ic { color: var(--brand-300); }

.plist a { color: inherit; text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1.5px no-repeat; transition: background-size .35s var(--ease); }

.plist a:hover { background-size: 100% 1.5px; }

.plist__time { display: inline-flex; align-items: center; gap: 5px; margin-left: 10px; font-weight: 500; color: var(--brand); white-space: nowrap; }

.plist__time .ic { width: 14px; height: 14px; }

@media (max-width: 900px) {
  .pricing__in { grid-template-columns: 1fr; }
  .pricing__aside { position: static; }
}

/* Strona „Kontakt” */

.cpage__in { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(24px, 4vw, 56px); align-items: start; }

.cpage__in > * { min-width: 0; }

.cpage__in--single { grid-template-columns: 1fr; }

.cpage__tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

.ctile {
  position: relative; display: flex; flex-direction: column; gap: 6px; min-height: 172px; padding: 24px;
  border-radius: var(--r); background: var(--bg); color: var(--text); text-decoration: none;
  transition: transform .35s var(--ease), background-color .35s, box-shadow .35s;
}

a.ctile:hover { transform: translateY(-3px); background: var(--mist); box-shadow: var(--shadow); }

.ctile__ic { width: 46px; height: 46px; margin-bottom: auto; border-radius: 13px; display: grid; place-items: center; background: #fff; color: var(--brand); }

.ctile__ic .ic { width: 21px; height: 21px; }

.ctile__label { margin-top: 18px; font: 600 12.5px/1 var(--f-body); letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }

.ctile strong { font: 600 20px/1.25 var(--f-display); letter-spacing: -.01em; color: var(--ink); overflow-wrap: anywhere; }

.ctile__sub { font-size: 14.5px; color: var(--muted); }

.ctile__go { position: absolute; right: 20px; top: 22px; }

.ctile--brand { background: var(--brand); color: #fff; box-shadow: 0 18px 36px -18px rgba(9,147,199,.8); }

.ctile--brand strong { color: #fff; }

.ctile--brand .ctile__label { color: rgba(255,255,255,.82); }

.ctile--brand .ctile__ic { background: rgba(255,255,255,.16); color: #fff; }

a.ctile--brand:hover { background: var(--brand-600); }

.ctile--wide { grid-column: 1 / -1; min-height: 0; }

.ctile--wide .ctile__ic { margin-bottom: 0; }

.ctile--row { flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; }

.ctile--row .ctile__label { margin-top: 0; }

.ctile__hours { margin: 8px 0 0; }

.ctile__hours div { display: flex; justify-content: space-between; gap: 16px; padding: 9px 0; border-bottom: 1px dashed var(--line); }

.ctile__hours dt { font-weight: 600; color: var(--ink); }

.ctile__hours dd { margin: 0; }

.ctile__social { display: flex; flex-wrap: wrap; gap: 10px; }

.ctile__social a { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 999px; background: #fff; color: var(--ink); font-weight: 600; text-decoration: none; transition: background-color .25s, color .25s; }

.ctile__social a .ic { color: var(--brand); }

.ctile__social a:hover { background: var(--ink); color: #fff; }

.cmap { padding-bottom: clamp(48px, 6vw, 88px); }

.cmap + .sec { padding-top: 0; }

.contact__map--wide { min-height: clamp(340px, 42vw, 500px); }

.cinfo__hours { display: grid; gap: 4px; }

.cinfo__hours b { color: #fff; font-weight: 600; }

.cinfo__hours small { font-size: 13.5px; opacity: .7; }

@media (max-width: 900px) {
  .cpage__in { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
  .cpage__tiles { grid-template-columns: 1fr; }
  .ctile { min-height: 0; }
  .ctile__ic { margin-bottom: 6px; }
}

@media (min-width: 901px) {
  .cpage__tiles { position: sticky; top: calc(var(--hdr-h) + 24px); }
}

/* Blog: lista wpisów, karta wpisu, pojedynczy wpis */

.chips--links { margin-bottom: 36px; }

.chips--links a { padding: 9px 16px; border: 1.5px solid var(--line); border-radius: 999px; background: var(--paper); color: var(--ink); font-weight: 500; font-size: 15px; text-decoration: none; transition: background-color .2s, border-color .2s, color .2s; }

.chips--links a:hover { border-color: var(--ink); }

.chips--links a[aria-current="page"] { background: var(--ink); border-color: var(--ink); color: #fff; }

.blist__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px 20px; }

.pcardx { display: flex; flex-direction: column; overflow: hidden; border-radius: var(--r); background: var(--bg); transition: transform .4s var(--ease), box-shadow .4s; }

.pcardx:hover { transform: translateY(-4px); box-shadow: var(--shadow); }

.pcardx__media { display: block; aspect-ratio: 3 / 2; overflow: hidden; background: var(--mist); }

.pcardx__media img { width: 100%; height: 100%; -o-object-fit: cover; object-fit: cover; transition: transform .9s var(--ease); }

.pcardx:hover .pcardx__media img { transform: scale(1.04); }

.pcardx__media--empty { display: grid; place-items: center; background: linear-gradient(135deg, var(--brand), var(--teal)); color: #fff; }

.pcardx:nth-child(even) .pcardx__media--empty { background: linear-gradient(135deg, var(--ink-3), var(--brand)); }

.pcardx__media--empty .ic { width: 58px; height: 58px; stroke-width: 1.4; }

.pcardx__body { flex: 1; display: flex; flex-direction: column; gap: 12px; padding: 24px; }

.pcardx__meta { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 13.5px; color: var(--muted); }

.pcardx__meta a { font-weight: 600; font-size: 12.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--brand); text-decoration: none; }

.pcardx__title { font-size: 22px; line-height: 1.2; }

.pcardx__title a { color: inherit; text-decoration: none; }

.pcardx__excerpt { font-size: 15.5px; color: var(--muted); }

.pcardx .link { margin-top: auto; padding-top: 6px; font-size: 15px; }

.pcardx--featured { grid-column: 1 / -1; flex-direction: row; }

.pcardx--featured .pcardx__media { flex: 1.2; aspect-ratio: auto; min-height: 340px; }

.pcardx--featured .pcardx__body { flex: 1; justify-content: center; padding: clamp(24px, 3.4vw, 52px); }

.pcardx--featured .pcardx__title { font-size: clamp(28px, 3.2vw, 42px); line-height: 1.1; }

.pcardx--featured .pcardx__excerpt { font-size: 17px; }

.pcardx--featured .link { margin-top: 8px; }

.post__img img { width: 100%; height: 100%; -o-object-fit: cover; object-fit: cover; border-radius: 14px; }

/* Osobne krzywe tonalne zdjęć źródłowych, także dla miniaturek na stronie głównej. */

:is(.pcardx__media, .post__img, .article__cover) img[src*="/gabinet"] {
  filter: url("#fd-blog-room");
}

:is(.pcardx__media, .post__img, .article__cover) img[src*="/wizyta-online"] {
  filter: url("#fd-blog-online");
}

.pager { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 48px; }

.pager .page-numbers { display: inline-grid; place-items: center; min-width: 46px; height: 46px; padding: 0 14px; border: 1.5px solid var(--line); border-radius: 999px; color: var(--ink); font-weight: 600; text-decoration: none; transition: background-color .2s, border-color .2s, color .2s; }

.pager a.page-numbers:hover { border-color: var(--ink); }

.pager .page-numbers.current { background: var(--ink); border-color: var(--ink); color: #fff; }

.pager .prev .ic { transform: scaleX(-1); }

/* --- pojedynczy wpis / strona tekstowa --- */

.article { padding-block: clamp(32px, 5vw, 64px) clamp(64px, 8vw, 110px); }

.article__cover { margin: 0 0 clamp(32px, 5vw, 64px); border-radius: var(--r-lg); overflow: hidden; aspect-ratio: 16 / 9; background: var(--mist); }

.article__cover img { width: 100%; height: 100%; -o-object-fit: cover; object-fit: cover; }

.article__body { max-width: 760px; margin-inline: auto; }

.article__nav { margin-top: 32px; }

.article__nav .link .ic { transform: scaleX(-1); }

.authorbox { display: flex; align-items: center; gap: 20px; margin-top: 56px; padding: 26px; border-radius: var(--r); background: var(--bg); }

.authorbox img { flex: none; width: 76px; height: 76px; border-radius: 50%; -o-object-fit: cover; object-fit: cover; -o-object-position: 30% 20%; object-position: 30% 20%; }

.authorbox__name { font: 600 19px/1.2 var(--f-display); color: var(--ink); }

.authorbox__role { margin-bottom: 6px; font-size: 14px; font-weight: 600; color: var(--brand); }

.authorbox p:last-child { font-size: 15px; color: var(--muted); }

.blist--more { padding-top: 0; }

@media (max-width: 1080px) {
  .blist__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 900px) {
  .pcardx--featured { flex-direction: column; }
  .pcardx--featured .pcardx__media { flex: none; aspect-ratio: 3 / 2; min-height: 0; }
}

@media (max-width: 600px) {
  .blist__grid { grid-template-columns: 1fr; }
  .authorbox { flex-direction: column; align-items: flex-start; }
}

/* Na końcu: reguły responsywne części wspólnej */

/* Responsywność sekcji strony głównej i elementów wspólnych */

@media (max-width: 1200px) {
  .hdr__nav > a, .dd__btn { padding: 9px 11px; font-size: 15px; }
  .mega__in { grid-template-columns: 1fr 260px; }
}

@media (max-width: 1080px) {
  .hdr__nav { display: none; }
  .hdr__burger { display: inline-flex; }
  .hdr__cta { margin-left: auto; }
  .bento { grid-template-columns: repeat(2, 1fr); }
  .ftr__in { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 900px) {
  :root { --hdr-h: 66px; }
  body { font-size: 16.5px; }
  .hdr__logo img { height: 38px; }
  .hdr__tel span { display: none; }
  .hdr__tel { width: 44px; height: 44px; border-radius: 50%; border: 1.5px solid var(--line); justify-content: center; background: rgba(255,255,255,.7); }
  .hdr__cta .btn { display: none; }

  .hero__in { grid-template-columns: 1fr; }
  .hero__visual { justify-content: center; max-width: 460px; margin-inline: auto; width: 100%; }
  .hero__photo { width: 86%; margin-left: auto; }
  .spine { right: calc(86% - 30px); }
  .chip--years { right: 0; }
  .chip--mdt { left: 0; bottom: 8%; }
  .stats { grid-template-columns: 1fr 1fr; }
  .stats li:nth-child(3) { padding-left: 0; border-left: 0; }

  .pain__grid { grid-template-columns: 1fr; }
  .pain__figure { max-width: 300px; }
  .chips { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(var(--gut) * -1); padding-inline: var(--gut); scrollbar-width: none; }
  .chips::-webkit-scrollbar { display: none; }
  .chips button, .chips a { flex: none; }
  .chips { max-width: 100vw; }

  .mdt__in { grid-template-columns: 1fr; gap: 0; }
  .mdt__stick { top: 0; z-index: 2; background: linear-gradient(var(--ink) 88%, transparent); padding: 14px 0 24px; margin-inline: calc(var(--gut) * -1); order: 2; }
  .mdt__visual { height: 40vh; aspect-ratio: auto; max-height: none; width: 100%; }
  .mdt__visual svg { width: auto; margin-inline: auto; display: block; }
  .mdt__labels span { left: var(--gut); top: auto; bottom: 6px; }
  .mdt__meter { left: auto; right: var(--gut); top: 8px; bottom: auto; }
  .mdt__copy { display: contents; }
  .mdt__head { order: 1; margin-bottom: 32px; }
  .steps { order: 3; }
  .mdt__cert { order: 4; grid-template-columns: 90px 1fr; }
  .step { min-height: 46vh; }

  .visit__steps { grid-template-columns: 1fr; }
  .certs__track { --h: 250px; gap: 20px; }
  .certs__nav .certs__btn { display: none; }
  .certs__count { margin-left: 0; }
  .lb__in { padding: 64px 12px 96px; }
  .lb__btn { top: auto; bottom: 22px; transform: none; }
  .lb__btn--prev { left: calc(50% - 64px); } .lb__btn--next { right: calc(50% - 64px); }
  .lb__fig img { max-height: calc(100dvh - 260px); }
  .visit__steps li:not(:last-child)::after { right: auto; left: 52px; top: auto; bottom: -14px; }
  .price__in { grid-template-columns: 1fr; }
  .price .sec__head { position: static; }
  .faq__in { grid-template-columns: 1fr; }
  .contact__in { grid-template-columns: 1fr; }
  .contact__map { min-height: 320px; }

  .mbar {
    display: grid; grid-template-columns: 1fr 1.4fr; gap: 8px; position: fixed; left: 10px; right: 10px; bottom: 10px; z-index: 90;
    padding: 8px; border-radius: 999px; background: rgba(10,91,133,.94); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: 0 12px 30px -10px rgba(0,0,0,.5);
    transform: translateY(140%); transition: transform .45s var(--ease);
  }
  .mbar.is-on { transform: none; }
  .mbar a { display: flex; align-items: center; justify-content: center; gap: 8px; height: 48px; border-radius: 999px; text-decoration: none; font-weight: 600; color: #fff; }
  .mbar__book { background: var(--brand); }
  .ftr { padding-bottom: 100px; }
}

@media (max-width: 600px) {
  .bento { grid-template-columns: 1fr; }
  .svc--hero { grid-column: auto; grid-row: auto; min-height: 420px; }
  .svc { min-height: 0; }
  .svc--online { flex-direction: column; align-items: flex-start; gap: 14px; }
  .svc--online .svc__more { margin: 0; }
  .eyebrow__addr { display: none; }
  .hero__actions .btn { flex: 1 1 100%; }
  .chip--mdt { max-width: 240px; padding: 10px 14px 10px 10px; }
  .chip--mdt img { width: 40px; height: 40px; }
  .chip--years strong { font-size: 34px; }
  .chip--years { padding: 12px 14px; }
  .stats li { padding-right: 12px; }
  .stats li + li { padding-left: 12px; }
  .stats li:nth-child(3) { padding-left: 0; }
  .plist b { font-size: 21px; }
  .plist strong { font-size: 18px; }
  .ftr__in { grid-template-columns: 1fr; }
  .acc__body { padding-right: 0; }
}

/* ---------- ograniczony ruch ---------- */

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .js [data-reveal]:not(.is-in), .js :is(.bento, .srel__grid, .visit__steps, .sblocks__grid, .tiles, .blist__grid, .cpage__tiles, .olist__rows) > [data-reveal]:not(.is-in) { opacity: 1; transform: none; }
  .js .pain__figure:not(.is-in) .spot { opacity: 1; }
}

body:has(.lb[open]) .mbar { visibility: hidden; }
