/* ───────────────────────────────────────────────────────────
   global-enhanced — overlay globalny (po global.css, każda strona)
   Baseline global.css NIETYKALNY — poprawki SEO/hierarchii tutaj.
   ─────────────────────────────────────────────────────────── */

/* Etykiety kolumn stopki: BEZ tagów nagłówkowych (były <h5> → mieszały się
   w hierarchii treści). Teraz <div class="ft-col-h"> — styl identyczny jak
   dawne .ft-col h5, ale semantycznie to nie nagłówek (footer = chrome, nie treść). */
.ft-col .ft-col-h {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ink);
  margin: 0 0 22px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(223, 59, 163, .15);
  position: relative;
  line-height: 1.3;
}
.ft-col .ft-col-h::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 28px;
  height: 2px;
  background: var(--mag, #DF3BA3);
}

/* ── Kolor kropki statusu „otwarte" = zielony z logo (#5CC79D) ──
   Override baseline (#22c55e / --green / #4ade80). TYLKO gdy OTWARTE.
   ⚠️ Gdy ZAMKNIĘTE (.closed) kropka + pierścień muszą być magenta — dlatego
   wykluczamy .closed (:not), inaczej zielone !important nadpisywałoby magentę
   (bug: kropka magenta, ale pulsowała na zielono). Stan przez JS (global.js). */
.phone-dot-wrap:not(.closed) .phone-dot { background: #5CC79D !important; }
/* Otwarte: pulsujący pierścień też #5CC79D (spójny z kropką, nie baseline --green) */
.phone-dot-wrap:not(.closed)::before { border-color: #5CC79D !important; }
.ft-status-dot.is-open { background: #5CC79D !important; }
.lc-online-dot.is-open { background: #5CC79D !important; box-shadow: 0 0 0 3px rgba(92,199,157,.3) !important; }
.lc-bubble-status.is-open { background: #5CC79D !important; box-shadow: 0 0 0 0 rgba(92,199,157,.6) !important; }
/* Zamknięte: kropka + pulsujący pierścień magenta (spójne) */
.phone-dot-wrap.closed .phone-dot { background: var(--mag) !important; }
.phone-dot-wrap.closed::before { border-color: var(--mag) !important; }

/* ── Nowe logo FemiMea (2026-06) — powiększone w nav i footer ──
   Override baseline (nav 54px, footer 48px). max-width zwiększony bo nowe logo
   szersze (proporcje 1.637:1). object-fit:contain trzyma proporcje. */
.nav-logo > img { height: 64px !important; max-width: 260px !important; }
.ft-logo img { height: 64px; max-width: 220px; }
@media (max-width: 1024px) {
  .nav-logo > img { height: 48px !important; max-width: 200px !important; }
}
@media (max-width: 640px) {
  .ft-logo img { height: 52px; max-width: 190px; }
}

/* ── LCP fix: hero NAD FOLDEM widoczny natychmiast (bez reveal opacity:0) ──
   Mechanizm .reveal ustawia opacity:0 (html.reveal-anim) aż JS+IntersectionObserver
   doda .in. Dla hero (nad foldem) to opóźniało LCP o ~2.9s (PageSpeed: Element
   render delay). Hero ma być widoczny od razu — wykluczamy go z animacji wejścia.
   Sekcje niżej zachowują reveal (są pod foldem, animacja OK). */
html.reveal-anim .us-hero.reveal,
html.reveal-anim .us-hero .reveal,
html.reveal-anim .onas-h1.reveal,
html.reveal-anim .onas-hero .reveal,
html.reveal-anim .kt-h1.reveal,
html.reveal-anim .kt-hero .reveal {
    opacity: 1 !important;
    transform: none !important;
}

/* ───────────────────────────────────────────────────────────
   TrustMate — ukrycie brandingu TM we WSZYSTKICH widgetach na serwisie
   (footer „zebranych i zweryfikowanych przez TrustMate" + przycisk
   „Jak zbieramy opinie?" / omnibus modal).
   Elementy renderowane przez skrypt TM (nie nasz HTML) → tylko CSS.
   Działa globalnie: hero usługi, sekcja opinii dół, homepage, o-nas, blog.
   ⚠️ NIE ukrywać całego `.tm-ferret2__upper-row` — siedzą tam strzałki nawigacji
   karuzeli (desktop). Celujemy tylko w konkretne elementy brandingu. */
.tm-carousel__footer-mobile,
.tm-carousel__verified-mobile,
[class*="tm-carousel__footer"],
[class*="tm-carousel__verified"],
.tm-carousel__omnibus-button-wrapper,
.tm-omnibus-modal__button,
[class*="tm-carousel__omnibus"],
[class*="tm-omnibus-modal"] {
    display: none !important;
}

/* A11y: kontrast WCAG AA. Marka zostaje (magenta/teal), ale tekst i tła pod biały tekst
   dostają ciemniejsze warianty (audyt axe 29.09: magenta 3,97:1, teal 2,46:1 na białym). */
:root { --mag-a11y: #C92F93; --teal-a11y: #067b79; }
.btn-p { background: var(--mag-a11y); }
.btn-p:hover { background: var(--mag-d); }
strong[aria-current="page"] { color: var(--mag-a11y); }

/* A11y: magenta jako KOLOR TEKSTU na jasnym tle dostaje wariant AA. Tła, ramki i ikony zostają w --mag. */
body strong[aria-current="page"],
.toc-title, .toc-toggle-more, .toc-num, .b-more, .btn-s,
.article-content a:not([class*="btn"]), .inline-link,
.badge, .cennik-badge, .price-top .badge { color: var(--mag-dim) !important; }
.related-posts .bcat, .btn-p, .tc-btn-p, .badge-fill, .page-btn.active { background-color: var(--mag-a11y) !important; }
.summary-line > span { color: #6b7280 !important; }
.note-pill strong, .tc-spec, .tc-btn-s:not(:hover), .price-top .badge { color: var(--mag-dim) !important; }
.tc-acts button[data-doctor], .tc-acts .btn-book { background-color: var(--mag-a11y) !important; }

/* Dotyk: cele min. 44px na telefonie (audyt: linki stopki 22px, przyciski lekarzy 32-36px, burger 42px) */
@media (max-width: 768px) {
  .site-footer .ft-col a, footer .ft-col a, footer .ft-ci a, footer .ft-legal a { display: inline-flex; align-items: center; min-height: 44px; }
  .tc-btn-p, .tc-btn-s { min-height: 44px; }
  .mob-phone, .burger, footer .ft-social a { min-width: 44px; min-height: 44px; }
  .svc-dcg-btn, .svc-dcg-all, .hm-svc-all, .hm-about-scroll { min-height: 44px; display: inline-flex; align-items: center; }
  summary { min-height: 44px; display: flex; align-items: center; }
}

/* Mikrointerakcje (przegląd emil-design-eng 29.09): mocny ease-out, press scale(.97), hover tylko na urządzeniach z kursorem */
:root { --ease-out-strong: cubic-bezier(0.23, 1, 0.32, 1); }
.btn-p:active, .btn-s:active, .tc-btn-p:active, .tc-btn-s:active, .lk-btn:active, .buc-btn:active, .kt-q-btn:active, .btn-teal-full:active { transform: scale(0.97); }
.btn-p, .btn-s, .tc-btn-p, .tc-btn-s, .lk-btn, .buc-btn, .kt-q-btn { transition-timing-function: var(--ease-out-strong); }
@media (hover: none) {
  .btn-p:hover, .btn-s:hover, .lk-btn:hover, .buc-btn:hover { transform: none; box-shadow: none; }
}
.lk-btn:focus-visible, .buc-btn:focus-visible, .kt-q-btn:focus-visible, .lk-faq summary:focus-visible, a.lk-card:focus-visible {
  outline: 3px solid var(--teal-a11y, #067b79); outline-offset: 3px; border-radius: 10px;
}
@media (prefers-reduced-motion: reduce) {
  .btn-p, .btn-s, .tc-btn-p, .tc-btn-s, .lk-btn, .buc-btn, .kt-q-btn, .lk-card { transition-property: background-color, border-color, color, box-shadow; }
  .btn-p:active, .btn-s:active, .tc-btn-p:active, .tc-btn-s:active, .lk-btn:active, .buc-btn:active, .kt-q-btn:active, .lk-btn:hover, .buc-btn:hover { transform: none; }
}

/* Pasek górny (e-mail, godziny, social) usunięty: wysokość 0, żeby offsety hero i nawigacji się zgadzały */
:root { --top-h: 0px; }

/* ─────────────────────────────────────────────
   MEGA MENU USŁUG — kompaktowa karta: wyszukiwarka, popularne, 4 kolumny po 5 usług
   ───────────────────────────────────────────── */
@media (min-width: 1025px) {
  .mega {
    left: 50%;
    right: auto;
    top: calc(100% + 6px);
    width: min(1120px, calc(100vw - 48px));
    border: 1px solid rgba(27, 16, 32, .06);
    border-radius: 22px;
    box-shadow: 0 24px 60px rgba(27, 16, 32, .14);
    transform: translate(-50%, 8px);
    transition: opacity var(--tn) var(--eo), visibility var(--tn), transform var(--tn) var(--eo);
    overflow: hidden;
  }
  .mega.show { transform: translate(-50%, 0); }
}
.mega-in { max-width: none; padding: 22px 28px 20px; display: block; }
.mega-search {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
  margin-bottom: 18px;
}
.mega-sf {
  flex: 1 1 340px;
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  padding: 0 18px;
  background: #faf7fa;
  border: 1px solid rgba(223, 59, 163, .16);
  border-radius: var(--r-pill);
}
.mega-sf:focus-within { border-color: var(--mag-d); box-shadow: 0 0 0 3px rgba(201, 48, 143, .14); }
.mega-sf i { color: var(--mag-d); font-size: 18px; }
.mega-si {
  flex: 1;
  min-width: 0;
  border: 0;
  background: transparent;
  font: 500 15px/1.2 var(--f-ui);
  color: var(--ink);
  outline: none;
}
.mega-si::placeholder { color: var(--gray); }
.mega-pop { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.mega-pop-l { font-size: 13px; color: var(--gray); }
.mega-chip {
  min-height: 36px;
  padding: 0 14px;
  border: 1px solid rgba(27, 16, 32, .08);
  border-radius: var(--r-pill);
  background: var(--white);
  font: 600 13px/1 var(--f-ui);
  color: var(--ink);
  cursor: pointer;
  transition: border-color var(--tf), color var(--tf), background var(--tf);
}
.mega-chip:hover { border-color: var(--mag-d); color: var(--mag-d); background: var(--mag-w); }
.mega-cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; }
.mega-cols[hidden], .mega-res[hidden] { display: none; }
.mega-cols .mega-col { padding: 6px 18px 4px; border-radius: 0; transform: none; background: none; border-left: 1px solid rgba(27, 16, 32, .06); }
.mega-cols .mega-col:first-child { border-left: 0; padding-left: 0; }
.mega-cols .mega-col:hover { background: none; transform: none; }
.mega-cols .mega-col::after { display: none; }
.mega-cols .mega-ch { font-size: 15.5px; line-height: 1.25; gap: 12px; margin-bottom: 8px; }
.mega-cols .mega-ch-ico { width: 44px; height: 44px; flex-shrink: 0; }
.mega-cols .mega-a {
  justify-content: space-between;
  gap: 8px;
  margin-left: 0;
  padding: 0 8px;
  min-height: 40px;
  font-size: 14.5px;
}
.mega-cols .mega-a::before { display: none; }
.mega-cols .mega-a i { color: var(--gray); font-size: 18px; flex-shrink: 0; transition: transform var(--tf), color var(--tf); }
.mega-cols .mega-a:hover { padding-left: 8px; }
.mega-cols .mega-a:hover i { color: var(--mag-d); transform: translateX(3px); }
.mega-cols .mega-all { margin-top: 10px; padding: 0 8px; min-height: 40px; background: none; color: var(--mag-d); }
.mega-cols .mega-all:hover { background: none; }
.mega-res { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; min-height: 120px; align-content: start; }
.mega-res .mega-a { justify-content: flex-start; margin-left: 0; padding: 0 12px; min-height: 44px; font-size: 15px; }
.mega-res .mega-a::before { display: none; }
.mega-none { grid-column: 1 / -1; padding: 12px; color: var(--slate); font-size: 15px; }
@media (max-width: 1180px) {
  .mega-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 16px; }
  .mega-cols .mega-col:nth-child(odd) { border-left: 0; padding-left: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .mega { transition: opacity var(--tn) var(--eo), visibility var(--tn); }
}

/* Kontrast AA: magenta z marki jako tło pod biały tekst i jako kolor drobnego tekstu -> ciemniejsza wersja a11y */
.ft-cta-btn { background: var(--mag-a11y, #C92F93); }
.mob-phone .mob-phone-num { color: var(--mag-a11y, #C92F93); }

/* Kontrast AA (audyt axe 29.09): magenta marki zostaje w dekoracji, drobny tekst i tła pod biały tekst dostają ciemniejsze tokeny */
.slbl, .us-info-title, .doc-spec, .doc-btn, .us-where-tag, .hm-loc-tag, .hero-pill-tag, .pill-lbl { color: var(--mag-dim, #B8318A); }
.us-where-card--nfz .us-where-tag, .hm-loc-card--nfz .hm-loc-tag { color: #067b79; }
.doc-bdg, .doc-bdg-gin, .bcat { background: var(--mag-a11y, #C92F93); color: var(--white); }
.us-section-body a:not(.us-where-cta),
.us-faq-a a,
.inline-link { color: var(--mag-dim, #B8318A); text-decoration: underline; text-underline-offset: 2px; }

/* wyższa specyficzność: karty lekarzy i etykiety sekcji (home.css ładuje się później) */
body .slbl, body .us-info-title, body .doc-bdy .doc-spec, body .doc-bdy .doc-btn { color: var(--mag-dim, #B8318A); }
body .doc-bdg.doc-bdg-gin { background: var(--mag-a11y, #C92F93); color: var(--white); }
body .doc-bdg.doc-bdg-peri { background: #067b79; color: var(--white); }

/* Kontrast AA na mobile (80% ruchu): linki-tekst magenta i plakietki */
body .bmore, body .hm-about-more-show, body .hm-svc-all, body .svc-dcg-b, body .hm-loc-tag, body .st .hl, body .st { color: var(--mag-dim, #B8318A); }
body .doc-bdg.doc-bdg-endo { background: #f59e0b; color: #1b1020; }
body .doc-bdg.doc-bdg-cardio { background: #c0392b; color: var(--white); }
body .hours-head, body .sw-card-head { color: #065f5e; }
body .svc-dcg-card .svc-dcg-body .svc-dcg-b, body .us-related-head .stitle .hl, body .us-related-head .stitle em { color: var(--mag-dim, #B8318A); }
body .svc-dcg-card .svc-dcg-body .svc-dcg-b,
body .us-related-head .st,
body .us-related-head .stitle .hl { color: var(--mag-dim, #B8318A) !important; }
body .svc-dcg-card .svc-dcg-btn { color: var(--mag-dim, #B8318A) !important; }

/* ─────────────────────────────────────────────
   MOBILE: dolny pasek jak w aplikacji (Lekarze, Usługi, Umów, Cennik, Zadzwoń; od 01.10.2026)
   Telefon zostaje w nagłówku mobilnym. Klasa .mob-bottom-bar zachowana (chowanie przy popupie rezerwacji, padding body).
   ───────────────────────────────────────────── */
@media (max-width: 768px) {
  .mob-bottom-bar.app-tabbar {
    padding: 0 0 env(safe-area-inset-bottom, 0px);
    gap: 0;
    height: calc(64px + env(safe-area-inset-bottom, 0px));
    align-items: stretch;
    background: var(--white);
    border-top: 1px solid rgba(27, 16, 32, .1);
  }
  .mob-bottom-bar.app-tabbar::before { display: none; }
  body.has-mob-bar { padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px)); }
  .app-tab {
    flex: 1;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    min-width: 0;
    text-decoration: none;
    font: 600 12px/1.1 var(--f-ui);
    color: #5f4b58;
    -webkit-tap-highlight-color: transparent;
  }
  .app-tab[aria-current="page"] { color: var(--mag-a11y, #C92F93); font-weight: 700; }
  .app-tab:active { transform: scale(.94); }
  .app-tab:focus-visible { outline: 3px solid var(--mag-a11y, #C92F93); outline-offset: -3px; }
  .app-tab--cta { color: var(--mag-a11y, #C92F93); font-weight: 700; }
  .app-fab {
    position: absolute;
    top: -20px;
    left: 50%;
    margin-left: -27px;
    width: 54px;
    height: 54px;
    border-radius: 50%;
    background: var(--mag-a11y, #C92F93);
    color: var(--white);
    display: flex;
    align-items: center;
    justify-content: center;
    border: 4px solid var(--white);
    box-shadow: 0 6px 16px rgba(201, 47, 147, .35);
  }
  .app-lbl { position: absolute; bottom: 9px; left: 0; right: 0; text-align: center; }
}
@media (prefers-reduced-motion: reduce) { .app-tab:active { transform: none; } }

/* ── Paleta v2: magenta = akcja, teal = struktura, ink = tekst, tła neutralne ── */
:root { --teal-a11y: #067b79; --teal-mist: #F0F9F9; --sand: #FAF8F6; }
.mega { border-top-color: var(--teal-a11y); }
.slbl, .rez-kicker, .hero-pill-tag { color: var(--teal-a11y) !important; }
.hero-pill-tag { background: var(--teal-mist) !important; border-color: rgba(6,123,121,.22) !important; }
.hero-pill-tag svg, .hero-pill-tag i { color: var(--teal-a11y) !important; fill: currentColor; }
.stitle em, .why-v2 .sec-head .stitle em, .why-teal-title em, .process-v2 .sec-head .stitle em,
.cta-title em { color: var(--teal-a11y) !important; }
.mob-phone .mob-phone-num { color: var(--ink) !important; }
.mob-phone-dot, .mob-phone i { color: var(--teal-a11y); }
.hero { background-image: none !important; background: linear-gradient(180deg, #fff 0%, var(--teal-mist) 100%) !important; }
.btn-outline, .hero .btn-o, .hero-btns a:not(:first-child) { color: var(--ink); border-color: rgba(26,21,35,.28); }
body { --rez-linia: #E4EBEB; }

/* rezerwacja: neutralne tło, teal na strukturze, magenta tylko CTA */
.rez { --rez-tlo: var(--sand); --rez-linia: #E4EBEB; }
.rez-hero { background: linear-gradient(135deg, #fff 0%, var(--teal-mist) 60%, #fff 100%) !important; }
.rez-usp i, .rez-sekcja-hd h2 i, .rez-licznik strong, .rez-badge { color: var(--teal-a11y) !important; }
.rez-sekcja-hd h2::after, .rez-sekcja-hd::after { background: var(--teal-a11y) !important; }
.rez-chip:hover { border-color: var(--teal-a11y); color: var(--teal-a11y); }
.rez-chip.is-active { background: var(--ink); border-color: var(--ink); color: #fff; }
.rez-search input:focus, .rez-select select:focus, .rez-karta.is-klikalna:focus-within { outline-color: var(--teal-a11y); }
.rez-karta-cta { background: var(--teal-mist); color: var(--teal-a11y); }
.rez-karta.is-klikalna:hover .rez-karta-cta, .rez-karta-cta:hover { background: var(--teal-a11y); color: #fff; }
.rez-karta-nazwa a:hover, .rez-pusto a { color: var(--teal-a11y); }

/* zakładki: aktywna = teal, FAB zostaje magenta */
.app-tab[aria-current="page"], .app-tab[aria-current="page"] i { color: var(--teal-a11y); }

/* ruch: subtelne wejście i reakcja na dotyk, bez ruchu przy reduced-motion */
@media (prefers-reduced-motion: no-preference) {
  .app-tab, .app-fab, .rez-chip, .rez-karta, .hm-tiles a { transition: transform .18s cubic-bezier(.2,.8,.2,1), box-shadow .18s, background-color .18s, color .18s, border-color .18s; }
  .app-tab:active, .rez-chip:active, .hm-tiles a:active { transform: scale(.96); }
  .app-fab:active { transform: scale(.92); }
  .rez-karta:active { transform: scale(.985); }
  .rez-grid > *, .hm-tiles a { animation: fmRise .5s cubic-bezier(.2,.8,.2,1) both; }
  .rez-grid > *:nth-child(2), .hm-tiles a:nth-child(2) { animation-delay: .05s; }
  .rez-grid > *:nth-child(3), .hm-tiles a:nth-child(3) { animation-delay: .1s; }
  .rez-grid > *:nth-child(4), .hm-tiles a:nth-child(4) { animation-delay: .15s; }
  @keyframes fmRise { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
}
.hero.hero-v2 { background-image: linear-gradient(180deg, #fff 0%, var(--teal-mist) 100%) !important; }
.hero-btns .btn-s, .btn-s { color: var(--ink) !important; border-color: rgba(26,21,35,.25) !important; }
.btn-s i { color: var(--teal-a11y); }
.rez .rez-chip.is-active { background: var(--ink); border-color: var(--ink); color: #fff; }
.rez .rez-search input, .rez .rez-select select { background: #fff; border-color: #D9E3E3; }
.rez .rez-filtry-box { border-color: #E4EBEB; box-shadow: 0 8px 28px rgba(26,21,35,.05); }
.rez .rez-chip { border-color: #D9E3E3; }
.rez, .rez-sekcja { background: var(--sand); }
.rez .rez-filtry, .rez .rez-ekspres { background: var(--sand) !important; }
.mob-nav-cta { background: var(--teal-mist); }
.mob-group-body { background-image: none !important; }
.rez .rez-karta-bio { color: #5F5A6B; }
.rez .rez-karta .rez-karta-cta { background: var(--teal-mist); color: var(--teal-a11y); }
.rez .rez-karta.is-klikalna:hover .rez-karta-cta, .rez .rez-karta .rez-karta-cta:hover { background: var(--teal-a11y); color: #fff; }
.rez .rez-btn-primary, .rez .rez-sticky-szukaj { background: var(--mag-a11y, #C92F93); }

/* ── Spójność v2: ikony/linki/odznaki w tealu, chevrony neutralne, magenta = przyciski ── */
:where(i[class*="ri-"], .sc-icon, .hm-svc-ico, .us-list-check, .us-related-arrow, .b-more-icon):not(:is(button, .btn, .btn-p, .btn-s, [class*="btn-"], [class*="-cta"], .app-fab, .hm-tiles a, .mob-group-head) *) { color: var(--teal-a11y); }
.ri-arrow-right-s-line, .ri-arrow-down-s-line, .ri-arrow-up-s-line { color: var(--slate) !important; }
.sc-icon, .hm-svc-ico, .us-list-check { color: var(--teal-a11y) !important; }
.sc-icon, .hm-svc-ico { background: var(--teal-mist) !important; }
.sc-icon svg, .sc-icon path, .sc-icon circle, .sc-icon g, .sc-icon rect { color: var(--teal-a11y); stroke: currentColor; }
.doc-bdg { background: var(--teal-mist) !important; color: var(--teal-a11y) !important; border-color: rgba(6,123,121,.2) !important; }
.mob-section-label { color: var(--teal-a11y) !important; }
.phone-dot { background: var(--teal) !important; }
.b-more-icon { background: var(--teal-mist) !important; }
.new-price { color: var(--ink) !important; }
main a:not([class]) { color: var(--teal-a11y); text-decoration-color: rgba(6,123,121,.35); text-underline-offset: 3px; }
main a:not([class]):hover { color: var(--ink); }
/* nowoczesność: jednolity promień, cienie i focus */
:root { --r-card: 16px; --sh-1: 0 1px 2px rgba(26,21,35,.05), 0 8px 24px rgba(26,21,35,.06); }
:focus-visible { outline: 2px solid var(--teal-a11y); outline-offset: 3px; border-radius: 6px; }
.rez-karta, .us-where, .us-articles a, .hm-loc-card, .hm-tiles a { border-radius: var(--r-card); box-shadow: var(--sh-1); border-color: #E4EBEB; }
.ri-information-line, .ri-user-line, .ri-price-tag-3-line, .ri-stethoscope-line, .ri-team-line, .ri-microscope-line, .ri-secure-payment-line, .us-cat-icon, .ct-icon, .sc-icon svg { color: var(--teal-a11y) !important; }
.btn-p i, .btn-s i.ri-calendar-check-line, button i, .hm-tiles a i { color: inherit; }
.mob-phone-pulse, .phone-dot-wrap .phone-dot { background: var(--teal) !important; }
.mob-phone-pulse { color: var(--teal) !important; }
.us-cat-icon, .ct-icon { background: var(--teal-mist) !important; }
.us-btn-primary { background: var(--mag-a11y, #C92F93) !important; box-shadow: 0 6px 18px rgba(201,47,147,.28) !important; }
.us-btn-primary:hover { box-shadow: 0 10px 26px rgba(201,47,147,.38) !important; }
.us-hero { background: linear-gradient(180deg, var(--teal-mist) 0%, transparent 100%) !important; }
.s-card .sc-icon, .sc-icon { background: var(--teal-mist) !important; }
.f-btn.active { background: var(--ink) !important; border-color: var(--ink) !important; color: #fff !important; }
.f-btn.active i { color: #fff !important; }
.sc-link { color: var(--teal-a11y) !important; }
main a[class=""], .us-section-body a:not([class]) { color: var(--teal-a11y); }
.us-hero .us-hero-cta .us-btn-primary, body .us-btn-primary { background: var(--mag-a11y, #C92F93) !important; }
.badge.cat { color: var(--teal-a11y) !important; background: var(--teal-mist) !important; }
.badge.cat i { color: var(--teal-a11y) !important; }
/* Linki wewnętrzne w treści (01.10.2026): magenta marki (kontrast 6.6:1), miękkie podkreślenie, pełne przy najechaniu */
.inline-link, a.inline-link-auto {
  color: #A8267B !important; font-weight: 500; text-decoration: underline !important;
  text-decoration-color: rgba(201, 47, 147, .35) !important; text-decoration-thickness: 1.5px !important; text-underline-offset: 3px !important;
  transition: text-decoration-color .2s ease, color .2s ease;
}
.inline-link:hover, a.inline-link-auto:hover { color: #8E1F68 !important; text-decoration-color: currentColor !important; }
.us-section-icon, .us-sec-ico, .us-section-head > span:first-child { background: var(--teal-mist) !important; color: var(--teal-a11y) !important; }
.us-section-title > i { background: var(--teal-mist) !important; color: var(--teal-a11y) !important; }

/* Kontrast i spójność szablonów: przyciski akcji na jednym tle, etykiety w tealu */
:where(.tc-btn-p, .et-cta-primary, .legal-contact-btn, .legal-doc-hub-link, .author-cta.primary, button[onclick^="openBooking"]) { background-color: var(--mag-a11y, #C92F93) !important; color: #fff !important; }
.lh-eyebrow > span, .legal-eyebrow > span { color: var(--teal-a11y) !important; }
.et-card-dni > span { color: #8A5300 !important; }
.author-cta.primary { border-color: transparent !important; }
.tc-acts .tc-btn-p, .tc-btn-p[type="button"], button[onclick^="openBooking"], .et-card .et-cta-primary { background: var(--mag-a11y, #C92F93) !important; color: #fff !important; }
.article-content a.author-cta.primary, a.author-cta.primary { color: #fff !important; background: var(--mag-a11y, #C92F93) !important; }
.legal-eyebrow, .lh-eyebrow { background: var(--teal-mist) !important; }
.legal-eyebrow > span, .lh-eyebrow > span { color: #055f5d !important; }
/* ostatnie różowe elementy szablonów */
.breadcrumb .current, .breadcrumbs .current, nav[aria-label*="okruszk" i] [aria-current], .pr-bc-cur { color: var(--ink) !important; }
.et-hero { background: linear-gradient(180deg, var(--teal-mist), #fff) !important; }
body.error404 main i[class*="ri-search"], .err-icon, .e404-ico { color: var(--teal-a11y) !important; }
.pr-main .ri-mail-line, .pr-main .ri-mail-send-line { color: var(--teal-a11y) !important; }
.pr-hero { background: linear-gradient(160deg, #fff 0%, var(--teal-mist) 100%) !important; }
.pr-breadcrumbs-inner strong { color: var(--ink) !important; }
.pr-btn-mail i { color: var(--teal-a11y) !important; }
nav.pr-breadcrumbs-top .pr-breadcrumbs-inner strong { color: var(--ink) !important; }
.pr-btn-tel i, .pr-btn-phone i, .pr-btns a i.ri-phone-fill, .pr-btns a i.ri-phone-line { color: var(--teal-a11y) !important; }
.pr-btns a.pr-btn-book i { color: #fff !important; }
.pr-btns a:not(.pr-btn-book):not(.pr-btn-primary) { border-color: #E4EBEB !important; }
/* /uslugi/: archive-usluga-enhanced ładuje się później, więc wyższa specyficzność */
body .s-card .sc-icon, body .sc-icon { background: var(--teal-mist) !important; color: var(--teal-a11y) !important; }
body .sc-icon .usluga-icon-svg, body .sc-icon svg.usluga-icon-svg, body .sc-icon i { color: var(--teal-a11y) !important; }
body .s-card .sc-link, body .s-card .sc-link i { color: var(--teal-a11y) !important; }
body .page-header { background: linear-gradient(160deg, #fff 0%, var(--teal-mist) 100%) !important; }
body .page-header .ph-blob { background: radial-gradient(circle, rgba(12,184,182,.10), transparent 70%) !important; }
body .us-cat-icon, body .us-cat-icon[class*="sc-cat"] { background: var(--teal-mist) !important; color: var(--teal-a11y) !important; }

/* Heroes i panele: jedno neutralne tło zamiast różowych gradientów */
body .onas-hero, body .blog-header, body .kt-hero, body .lk-hero, body .article-header, body .pr-hero, body .us-hero, body .page-header, body .rez-hero, body .hero.hero-v2 { background: linear-gradient(180deg, #fff 0%, var(--teal-mist) 100%) !important; }
body .tldr, body .author-box, body .pr-about, body .hm-about-facts, body .medical-disclaimer, body .blog-usluga-cta { background: var(--teal-mist) !important; border-color: rgba(6,123,121,.16) !important; }
body .doc-ph, body .mission-img, body .tc-img { background-color: var(--teal-mist); }
body .val-icon, body .md-icon, body .onas-label, body .bthumb { background: var(--teal-mist) !important; color: var(--teal-a11y) !important; }
body .val-icon i, body .md-icon i { color: var(--teal-a11y) !important; }
body .sec-label, body .ts-label, body .onas-label, body .author-pill { color: var(--teal-a11y) !important; }
/* Znaczek listy na stronach usług (01.10.2026): zielony ptaszek z logo w miętowym kółku, jak w cenniku */
body .us-list .us-list-check {
  display: inline-grid; place-items: center; flex: none; width: 28px; height: 28px; margin-top: 0; border-radius: 50%;
  background: #EEF8F2 !important; color: #267A52 !important; font-size: 17px; line-height: 1;
}
body .us-list .us-list-check i { color: #267A52 !important; }
body .us-list li::before { display: none !important; }
body .us-list .us-list-item { align-items: center; gap: 12px; border-color: rgba(26, 21, 35, .09); border-radius: 16px; }
body .us-list .us-list-item:has(.us-list-desc) { align-items: flex-start; }
body .hm-about-scroll { color: var(--teal-a11y) !important; }
body .us-section-body ul li::before { color: var(--teal-a11y) !important; }
body .us-section-body ol li::before { background: var(--teal-a11y) !important; color: #fff !important; }
body .us-section-body li::marker { color: var(--teal-a11y); }
body .pr-about-title, body .pr-about-title i { color: var(--teal-a11y) !important; }
body .pr-box, body .pr-hero-boxes > div { background-image: none !important; }
body .ct-card .ct-txt p, body .mission-quote > span, body .md-updated { color: #566070 !important; }
body .mission-tag { color: var(--teal-a11y) !important; }

/* Opinie TrustMate renderowane serwerowo (inc/opinie-statyczne.php), zero JS */
.fm-op { width: 100%; }
.fm-op-head { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin: 0 0 12px; font-size: 15px; color: var(--ink); }
.fm-op-head strong { font-size: 18px; }
.fm-op-of, .fm-op-cnt { color: #566070; font-size: 14px; }
.fm-op-src { margin-left: auto; font-size: 13px; color: var(--teal-a11y) !important; text-decoration: underline; text-underline-offset: 3px; min-height: 44px; display: inline-flex; align-items: center; }
.fm-op-stars, .fm-op-rate { display: inline-flex; gap: 2px; color: #E8A317; }
.fm-op-track { list-style: none; margin: 0; padding: 4px 2px 12px; display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; }
.fm-op-track::-webkit-scrollbar { display: none; }
.fm-op-card { flex: 0 0 min(300px, 84%); scroll-snap-align: start; background: #fff; border: 1px solid #E4EBEB; border-radius: 16px; padding: 16px 18px; box-shadow: 0 1px 2px rgba(26,21,35,.05), 0 8px 24px rgba(26,21,35,.06); display: flex; flex-direction: column; gap: 10px; }
.fm-op-text { margin: 0; font-size: 15px; line-height: 1.55; color: #2b2733; display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden; }
.fm-op-by { margin: auto 0 0; font-size: 13px; color: #566070; display: flex; justify-content: space-between; gap: 8px; }
.fm-op-by strong { color: var(--ink); font-weight: 600; }
@media (min-width: 900px) { .fm-op-card { flex-basis: 320px; } }
.us-hero-badge:has(.fm-op) { min-height: 0; }

/* Opinie: strzałki (desktop) + przeciąganie myszą */
.fm-op{position:relative}
.fm-op-nav{position:absolute;top:50%;transform:translateY(-60%);z-index:2;width:44px;height:44px;border-radius:50%;border:1px solid #E4EBEB;background:#fff;color:#1A1523;font-size:22px;display:none;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 14px rgba(26,21,35,.14);transition:opacity .2s,background .2s}
.fm-op-nav:hover{background:#F0F9F9}
.fm-op-nav:focus-visible{outline:3px solid #067b79;outline-offset:2px}
.fm-op-prev{left:-10px}.fm-op-next{right:-10px}
.fm-op.at-start .fm-op-prev,.fm-op.at-end .fm-op-next{opacity:0;pointer-events:none}
@media (hover:hover) and (pointer:fine){.fm-op-nav{display:inline-flex}.fm-op-track{cursor:grab}.fm-op-track.is-drag{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto;user-select:none}}
.fm-op-track{touch-action:pan-x pan-y}
/* Opinie: wyraźne strzałki (pełny teal, biała ikona) */
.fm-op-nav{width:52px;height:52px;background:#067b79;border:3px solid #fff;color:#fff;font-size:26px;box-shadow:0 6px 20px rgba(6,123,121,.45)}
.fm-op-nav:hover{background:#055f5d}
.fm-op-prev{left:-14px}.fm-op-next{right:-14px}
.fm-op-nav i{color:#fff !important;font-size:28px;line-height:1}

/* ── Opinie v3: nagłówek z etykietą + strzałki w jednym rzędzie nad kartami ── */
.fm-op{display:grid;grid-template-columns:1fr auto auto;column-gap:10px;row-gap:14px;align-items:center}
.fm-op::before{content:"Opinie pacjentek";grid-column:1;font:600 13px/1 'Outfit',sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--teal-a11y,#067b79)}
.fm-op-track{grid-column:1/-1;grid-row:2}
.fm-op-nav{position:static;transform:none;grid-row:1;width:44px;height:44px;border-radius:50%;background:#fff;border:1.5px solid #067b79;color:#067b79;box-shadow:none;font-size:0;transition:background .18s ease,color .18s ease,transform .12s ease,opacity .18s ease}
.fm-op-prev{grid-column:2}.fm-op-next{grid-column:3}
.fm-op-nav i{color:inherit !important;font-size:22px;line-height:1}
.fm-op-nav:hover{background:#067b79;color:#fff}
.fm-op-nav:active{transform:scale(.94)}
.fm-op.at-start .fm-op-prev,.fm-op.at-end .fm-op-next{opacity:.35;pointer-events:none}
.fm-op-card{padding:20px 22px;gap:12px;border-radius:18px}
.fm-op-text{font-size:16px;line-height:1.6;-webkit-line-clamp:5}
.fm-op-by{font-size:14px;padding-top:12px;border-top:1px solid #EEF2F2}
@media (max-width:899px){.fm-op-nav{display:none !important}.fm-op::before{grid-column:1/-1}}

/* ── Nagłówek v3: niższy, wyrównany do siatki treści (jeden kontener na całej stronie) ── */
:root{--nav-h:68px;--fm-gutter:max(var(--px),calc((100vw - var(--max))/2))}
.navbar{padding-left:var(--fm-gutter);padding-right:var(--fm-gutter);border-bottom-color:rgba(26,21,35,.06)}
.nav-logo>img{height:42px !important;max-width:170px}
.navbar .nav-cta,.navbar .btn-nav,.navbar a[class*="cta"]{min-height:44px}
.pr-breadcrumbs-inner{max-width:calc(var(--max) + 2*var(--px)) !important;margin:0 auto}
@media (max-width:768px){:root{--nav-h:64px}.nav-logo>img{height:38px !important}}

/* ── Separacja: menu / breadcrumbs / hero ── */
.navbar{box-shadow:0 1px 0 rgba(26,21,35,.06),0 6px 20px rgba(26,21,35,.05);border-bottom:0}
.pr-breadcrumbs-top{background:#fff;border-bottom:0}
.pr-breadcrumbs-inner{padding-top:12px !important;padding-bottom:12px !important}
.us-hero,.pr-hero,.onas-hero,.blog-header,.kt-hero,.lk-hero,.rez-hero,.page-header{background:linear-gradient(180deg,#E6F4F4 0%,#F0F9F9 45%,#F8FAFA 100%) !important;border-top:1px solid rgba(6,123,121,.10)}
.nav-logo>img{height:46px !important;max-width:190px}

/* ── Logo z powrotem duże, header o oddech wyższy ── */
:root{--nav-h:76px}
.nav-logo>img{height:58px !important;max-width:230px}
@media (max-width:768px){:root{--nav-h:64px}.nav-logo>img{height:40px !important;max-width:170px}}

/* ── Nawigacja + mega menu v3: czysto, bez różowych ramek ── */
.nav-link{color:#2b2733;font-weight:600;font-size:16px;padding:10px 14px;border-radius:10px;position:relative;background:none !important}
.nav-link::after{content:"";position:absolute;left:14px;right:14px;bottom:4px;height:2px;border-radius:2px;background:var(--teal-a11y);transform:scaleX(0);transform-origin:left;transition:transform .22s cubic-bezier(.2,.7,.2,1)}
.nav-item:hover>.nav-link,.nav-item.hov>.nav-link,.nav-link.active{color:var(--ink) !important;background:none !important}
.nav-item:hover>.nav-link::after,.nav-item.hov>.nav-link::after,.nav-link.active::after{transform:scaleX(1)}
.nav-link .ci{color:#6b7280}
@media (min-width:1025px){
  .mega{border:1px solid rgba(26,21,35,.08) !important;border-top:1px solid rgba(26,21,35,.08) !important;border-radius:18px;top:calc(100% - 2px);box-shadow:0 2px 6px rgba(26,21,35,.04),0 24px 48px -12px rgba(26,21,35,.18);background:#fff}
  .mega::before{content:"";position:absolute;left:0;right:0;top:-10px;height:10px}
}
.mega-in{padding:24px 32px 22px}
.mega-search{margin-bottom:22px;padding-bottom:22px;border-bottom:1px solid rgba(26,21,35,.07)}
.mega-sf{background:#F6F8F8;border:1px solid #E4EBEB;border-radius:12px;box-shadow:none}
.mega-sf:focus-within{border-color:var(--teal-a11y);box-shadow:0 0 0 3px rgba(6,123,121,.14);background:#fff}
.mega-sf i{color:var(--teal-a11y)}
.mega-chip{background:#fff;border:1px solid #E4EBEB;color:#2b2733;border-radius:999px;font-weight:600}
.mega-chip:hover{border-color:var(--teal-a11y);color:var(--teal-a11y);background:var(--teal-mist)}
.mega-ch-ico{background:var(--teal-mist) !important;border:1px solid rgba(6,123,121,.12);box-shadow:none !important}
.mega-col:hover .mega-ch-ico{transform:none !important;box-shadow:none !important}
.mega-ch{color:var(--ink);font-weight:700}
.mega-ch:hover{color:var(--teal-a11y)}
.mega-cols .mega-col{background:none !important}
.mega-cols .mega-a{border-radius:8px;color:#3a3f4b;font-size:15px}
.mega-cols .mega-a:hover{background:var(--teal-mist);color:var(--ink);padding-left:8px}
.mega-cols .mega-a:hover i{color:var(--teal-a11y)}
.mega-cols .mega-all{color:var(--teal-a11y);font-weight:700}

/* ── Rezerwacja: hero bez grafiki, kompaktowy nagłówek nad wyszukiwarką ── */
.rez-hero-grid{grid-template-columns:1fr !important;gap:0 !important}
.rez-hero{padding:clamp(28px,4vw,52px) 0 clamp(20px,3vw,32px) !important;border-top:0}
.rez-hero-tresc{max-width:720px}
.rez-title{margin-bottom:10px}
.rez-lead{margin-bottom:0}
.rez-filtry{background:transparent !important;padding-top:8px}
.rez-filtry-box{margin-top:0 !important;box-shadow:0 1px 2px rgba(26,21,35,.05),0 12px 32px rgba(26,21,35,.06)}
.rez-wrap{max-width:none !important;padding-left:var(--fm-gutter) !important;padding-right:var(--fm-gutter) !important}
.rez-title{font-size:clamp(30px,3.4vw,46px);line-height:1.1}
@media (max-width:768px){.rez-wrap{padding-left:16px !important;padding-right:16px !important}}

/* ── Rezerwacja: teal focus, neutralne obramowania, mobile karuzela ekspres ── */
.rez-search input:focus,.rez-select select:focus{outline:2px solid var(--teal-a11y);outline-offset:1px}
.rez-karta.is-klikalna:focus-within{outline:2px solid var(--teal-a11y)}
.rez-karta-nazwa a:hover{color:var(--teal-a11y)}
.rez-karta.is-ekspres{border-color:#E4EBEB}
.rez-ekspres{background:transparent}
@media (max-width:700px){
  .rez-grid-ekspres{scroll-padding-left:16px;gap:14px}
  .rez-grid-ekspres .rez-karta{flex:0 0 78%}
}

/* Profil lekarza: lista usług, na które przyjmuje */
.pr-uslugi-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.pr-uslugi-list a { display: inline-block; padding: 8px 14px; border: 1px solid var(--line, #e7dfe4); border-radius: 999px; color: var(--ink, #241e22); text-decoration: none; font-size: 14px; line-height: 1.3; background: #fff; }
.pr-uslugi-list a:hover, .pr-uslugi-list a:focus-visible { border-color: var(--teal, #0CB8B6); color: var(--teal-d, #0a8f8d); }

/* Stopka: link do strony placówki Bielany pod adresem (30.09.2026, zamiast "·" w wierszu Smolca) */
.ft-ci .ft-ci-page { grid-column: 2; min-height: 0 !important; color: var(--ink); font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }
/* Baner prenatalny: kontrast przycisku (biały na #DF3BA3 = 3.97:1) */
.pb-btn-p { background: var(--mag-a11y, #C92F93); }

/* ═══════ Mobile (01.10.2026) ═══════ */
/* Ciemny baner prenatalny jest projektem desktopowym: na telefonie wypychał treść (ok. 570 px) i dublował dolny pasek z „Umów”. */
@media (max-width: 760px) {
  .prenatal-banner { display: none !important; }
}

/* Przycisk „do góry”: pojawia się po przewinięciu, pierścień pokazuje postęp przewijania */
.fm-totop {
  position: fixed; right: 16px; bottom: 24px; z-index: 60; width: 48px; height: 48px; border: 0; padding: 0; border-radius: 50%;
  display: grid; place-items: center; cursor: pointer; color: #A8267B;
  background: conic-gradient(#C92F93 calc(var(--p, 0) * 1%), rgba(201, 47, 147, .16) 0);
  box-shadow: 0 8px 22px -10px rgba(26, 21, 35, .35);
  opacity: 0; transform: translateY(12px) scale(.9); pointer-events: none;
  transition: opacity .25s ease, transform .3s cubic-bezier(.2, .7, .1, 1);
}
.fm-totop::before { content: ''; position: absolute; inset: 3px; border-radius: 50%; background: #fff; }
.fm-totop i { position: relative; font-size: 22px; color: inherit !important; }
.fm-totop.is-on { opacity: 1; transform: none; pointer-events: auto; }
.fm-totop:focus-visible { outline: 3px solid #A8267B; outline-offset: 3px; }
@media (max-width: 1023px) {
  .fm-totop { bottom: calc(64px + 16px + env(safe-area-inset-bottom, 0px)); }
}
@media (prefers-reduced-motion: reduce) { .fm-totop { transition: opacity .2s ease; } }

/* ═══════ Stopka v2 (01.10.2026), mobile-first: dwie placówki z telefonami, linki w dwóch zwartych kolumnach ═══════ */
.footer.ft2 { padding: 40px var(--fm-gutter, 16px) 0 !important; background: linear-gradient(180deg, #fff 0%, #FDF1F8 100%) !important; }
.ft2-in { display: grid; gap: 28px; }
.ft2-brand .ft-logo img { height: 52px !important; width: auto; }
.ft2-intro { margin: 10px 0 16px; font-size: 15px; line-height: 1.6; color: #5A5363; max-width: 44ch; }
.ft2-cta { display: inline-flex !important; }
.ft2-locs { display: grid; gap: 12px; }
.ft2-loc { background: #fff; border: 1px solid rgba(26, 21, 35, .09); border-radius: 18px; padding: 16px; display: grid; gap: 4px; }
.ft2-loc-h { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 10px; margin: 0 0 4px; }
.ft2-loc-h a { font-family: var(--f-ui); font-size: 17px; font-weight: 700; color: #1A1523; text-decoration: none; }
.ft2-loc-h a:hover { color: #A8267B; }
.ft2-tag { font-size: 12px; font-weight: 600; color: #A8267B; background: #FDF1F8; border-radius: 999px; padding: 3px 9px; }
.ft2-tag--nfz { color: #267A52; background: #EEF8F2; }
.ft2-row { display: flex; align-items: flex-start; gap: 10px; min-height: 40px; padding: 8px 0; margin: 0; font-size: 15px; line-height: 1.45; color: #3F3A47; text-decoration: none; }
.ft2-row i { flex: none; font-size: 18px; color: #A8267B !important; margin-top: 1px; }
a.ft2-row:hover span { text-decoration: underline; text-underline-offset: 3px; }
.ft2-tel span { font-weight: 700; color: #1A1523; font-variant-numeric: tabular-nums; font-size: 16px; }
.ft2-mail { padding-left: 16px; }
.ft2-status { display: inline-flex; align-items: center; gap: 8px; margin: 2px 0 0; font-size: 13.5px; font-weight: 600; color: #5A5363; }
.ft2-status span { width: 8px; height: 8px; border-radius: 50%; background: #B9B3BF; }
.ft2-status.is-open span { background: #5BB985; box-shadow: 0 0 0 3px rgba(91, 185, 133, .2); }
.ft2-links { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; border-top: 1px solid rgba(26, 21, 35, .09); padding-top: 22px; }
.ft2-h { margin: 0 0 6px; font-size: 12.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #A8267B; }
.ft2-links a { display: flex; align-items: center; min-height: 40px; font-size: 15px; color: #3F3A47; text-decoration: none; line-height: 1.3; }
.ft2-links a:hover { color: #A8267B; }
.ft2-soc { display: flex; gap: 10px; }
.ft2-soc a { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: #fff; border: 1px solid rgba(201, 47, 147, .2); }
.ft2-soc a i { font-size: 19px; color: #A8267B !important; }
.ft2-soc a:hover { background: #C92F93; border-color: #C92F93; }
.ft2-soc a:hover i { color: #fff !important; }
.ft2-bot { display: flex; flex-wrap: wrap; gap: 6px 16px; justify-content: space-between; margin-top: 28px; padding: 18px 0 calc(18px + 64px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid rgba(26, 21, 35, .09); font-size: 13px; color: #6B6573; }
.ft2-bot a { color: #6B6573; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 760px) {
  .ft2-cta { display: none !important; } /* na telefonie „Umów” jest w dolnym pasku */
}
@media (min-width: 1024px) {
  .footer.ft2 { padding-top: 64px !important; }
  .ft2-in { grid-template-columns: 1.1fr 1.4fr 1.3fr; grid-template-areas: "brand locs links" "soc locs links"; gap: 32px 48px; align-items: start; }
  .ft2-brand { grid-area: brand; } .ft2-locs { grid-area: locs; } .ft2-links { grid-area: links; border-top: 0; padding-top: 0; } .ft2-soc { grid-area: soc; }
  .ft2-bot { padding-bottom: 22px; }
}

/* ═══════ Menu mobilne v2 (01.10.2026): pełny ekran z prawej, kategorie jako kafle, telefony obu placówek, „Umów" przypięte na dole ═══════ */
.mob-nav.mn2 {
  left: auto; right: 0; width: min(440px, 100vw); transform: translateX(105%);
  background: #fff; box-shadow: -8px 0 40px rgba(26, 21, 35, .14);
  font-family: var(--f-ui);
}
.mob-nav.mn2.open { transform: translateX(0); }
.mn2-top {
  display: flex; align-items: center; justify-content: space-between; flex-shrink: 0;
  padding: 10px 16px 10px 20px; min-height: 64px; border-bottom: 1px solid rgba(26, 21, 35, .07);
}
.mn2-logo img { display: block; width: 66px; height: 40px; }
.mob-nav .mn2-close {
  width: 44px; height: 44px; border-radius: 50%; background: #FDF1F8; color: #A8267B; font-size: 22px;
}
.mob-nav .mn2-close i { color: inherit !important; }
.mob-nav .mn2-close:hover { background: #C92F93; color: #fff; }
.mn2-scroll { padding: 8px 20px 24px; }
.mn2-label {
  margin: 18px 0 10px; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #267A52;
}
.mn2-cats { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.mn2-cat {
  display: flex; flex-direction: column; align-items: flex-start; gap: 10px; height: 100%;
  padding: 14px 12px 14px 14px; border-radius: 16px; background: #FDF1F8; text-decoration: none;
  color: #1A1523; font-size: 15px; font-weight: 600; line-height: 1.25;
  transition: background .2s, transform .2s;
}
.mn2-cat:active { transform: scale(.98); background: #F9E1F0; }
.mn2-cat-ico { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: #fff; }
.mn2-cat-ico img { width: 24px; height: 24px; }
.mn2-all {
  display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; margin-top: 8px;
  border: 1px solid rgba(201, 47, 147, .25); border-radius: 14px; text-decoration: none;
  color: #A8267B; font-size: 15px; font-weight: 600;
}
.mn2-all i { color: inherit !important; font-size: 18px; }
.mn2-links { margin-top: 18px; border-top: 1px solid rgba(26, 21, 35, .07); }
.mn2-link {
  display: flex; align-items: center; justify-content: space-between; min-height: 56px;
  border-bottom: 1px solid rgba(26, 21, 35, .07); text-decoration: none;
  color: #1A1523; font-size: 19px; font-weight: 600; letter-spacing: -.01em;
}
.mn2-link i { color: #A8267B !important; font-size: 22px; transition: transform .2s; }
.mn2-link:active i, .mn2-link:hover i { transform: translateX(3px); }
.mn2-tels { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.mn2-tel {
  display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; border-radius: 14px;
  background: #EEF8F2; text-decoration: none;
}
.mn2-tel-place { font-size: 13px; font-weight: 500; color: #5A5363; }
.mn2-tel-place em { font-style: normal; font-weight: 700; color: #267A52; margin-left: 2px; }
.mn2-tel-num { font-size: 17px; font-weight: 700; color: #1A1523; font-variant-numeric: tabular-nums; white-space: nowrap; }
.mn2-foot {
  flex-shrink: 0; padding: 12px 20px calc(12px + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid rgba(26, 21, 35, .07); background: #fff;
}
.mn2-book {
  display: flex; align-items: center; justify-content: center; gap: 9px; min-height: 52px; border-radius: 999px;
  background: #C92F93; color: #fff !important; text-decoration: none; font-size: 16px; font-weight: 700;
  box-shadow: 0 6px 18px rgba(201, 47, 147, .28);
}
.mn2-book i { color: #fff !important; font-size: 19px; }
.mob-nav.mn2 a:focus-visible, .mob-nav.mn2 button:focus-visible { outline: 2px solid #C92F93; outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { .mob-nav.mn2 { transition: none; } }
/* Menu mobilne v2.1: kafle białe z obrysem, ikony Remixicon w zieleni z logo (miętowe kółko), jak listy i wartości */
.mn2-cat { background: #fff; border: 1px solid rgba(26, 21, 35, .09); gap: 12px; }
.mn2-cat:active { background: #FDF1F8; border-color: rgba(201, 47, 147, .3); }
.mn2-cat-ico { width: 42px; height: 42px; background: #EEF8F2; }
.mn2-cat-ico i { font-size: 21px; color: #267A52 !important; }

/* Dolny pasek v2 (01.10.2026, Marco: „brakuje telefonu zamiast Kontakt, pulsująca ikonka, animacja na Umów”).
   Ostatnia zakładka = Zadzwoń (tel Bielan, podmiana numeru DNI przez data-femimea-tel); zielony puls tylko w godzinach otwarcia.
   Umów: krótkie wejście przy załadowaniu + delikatna fala co kilka sekund. Bez ruchu przy prefers-reduced-motion. */
@media (max-width: 768px) {
  .app-tab--call { color: #267A52 !important; }
  .app-call { position: relative; display: grid; place-items: center; width: 34px; height: 30px; }
  .app-call svg { position: relative; z-index: 1; }
  .app-tab--call.is-open .app-call::before {
    content: ''; position: absolute; left: 50%; top: 50%; width: 30px; height: 30px; margin: -15px 0 0 -15px; border-radius: 50%;
    background: rgba(91, 185, 133, .35); animation: fmCallPulse 2.2s cubic-bezier(.2, .7, .3, 1) infinite;
  }
  .app-tab--call.is-open .app-call svg { animation: fmCallRing 4.4s ease-in-out infinite; transform-origin: 50% 60%; }
  .app-fab { animation: fmFabIn .5s cubic-bezier(.2, .9, .3, 1.3) both; }
  .app-fab::after {
    content: ''; position: absolute; inset: -4px; border-radius: 50%; border: 2px solid rgba(201, 47, 147, .55);
    animation: fmFabWave 3.6s ease-out 1.2s infinite; pointer-events: none;
  }
  .app-tab--cta:active .app-fab { transform: scale(.92); }
}
@keyframes fmCallPulse { 0% { transform: scale(.6); opacity: .9; } 100% { transform: scale(1.7); opacity: 0; } }
@keyframes fmCallRing { 0%, 80%, 100% { transform: rotate(0); } 84% { transform: rotate(-14deg); } 88% { transform: rotate(12deg); } 92% { transform: rotate(-8deg); } 96% { transform: rotate(5deg); } }
@keyframes fmFabIn { from { transform: translateY(14px) scale(.7); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes fmFabWave { 0% { transform: scale(1); opacity: .8; } 45%, 100% { transform: scale(1.45); opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
  .app-fab, .app-fab::after, .app-tab--call .app-call::before, .app-tab--call .app-call svg { animation: none !important; }
}
/* Aktywna zakładka: prawie czarna + kreska nad ikoną (magenta = Umów, zieleń = Zadzwoń, więc aktywna musi się od nich odróżniać) */
@media (max-width: 768px) {
  .app-tab:not(.app-tab--cta):not(.app-tab--call) { color: #6B6272; }
  .app-tab[aria-current="page"]:not(.app-tab--cta), .app-tab[aria-current="page"]:not(.app-tab--cta) i { color: #1A1523 !important; font-weight: 700; }
  .app-tab[aria-current="page"]:not(.app-tab--cta)::before { content: ''; position: absolute; top: 0; left: 50%; width: 26px; height: 3px; margin-left: -13px; border-radius: 0 0 3px 3px; background: #1A1523; }
}

/* Nagłówek mobilny bez skoków (01.10.2026, Marco: „na lekarzach menu znika, pojawia się”).
   Było: static -> fixed po 80 px, więc nagłówek wypadał z układu, treść podskakiwała o jego wysokość,
   a ten skok sam przełączał kierunek (miganie). Teraz zawsze sticky (zostaje w układzie), chowany tylko transformem.
   Pasek filtrów personelu: pod nagłówkiem, gdy ten jest widoczny; przy samej górze ekranu, gdy schowany. */
@media (max-width: 768px) {
  .navbar, .navbar.nav-show, .navbar.nav-hide { position: sticky !important; top: 0 !important; left: auto !important; right: auto !important; }
  .navbar.nav-show { transform: translateY(0); }
  .navbar.nav-hide { transform: translateY(-100%); box-shadow: none !important; }
  .post-type-archive-lekarz .c-controls, body.nav-is-shown.post-type-archive-lekarz .c-controls { top: var(--nav-h, 64px) !important; }
  body.nav-is-hidden.post-type-archive-lekarz .c-controls { top: 0 !important; }
}

/* ═══════ Baner prenatalny v2 (02.10.2026): jasny, w kolorach marki, tylko potwierdzone fakty ═══════ */
.prenatal-banner.pb-v2 { background: radial-gradient(700px 360px at 0% 0%, rgba(248, 201, 227, .55), transparent 70%), radial-gradient(600px 320px at 100% 100%, rgba(91, 185, 133, .18), transparent 70%), #FDF1F8 !important; color: #1A1523; padding: clamp(48px, 6vw, 88px) var(--fm-gutter, max(16px, calc((100vw - 1665px) / 2))) !important; border-top: 1px solid rgba(26, 21, 35, .08); }
.prenatal-banner.pb-v2::before, .prenatal-banner.pb-v2::after { display: none !important; }
.pb-v2 .pb-inner { max-width: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 80px); align-items: center; }
.pb-v2 .pb-content { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; }
.pb-v2 .fm-nfz { display: inline-flex; align-items: center; gap: 8px; padding: 5px 14px 5px 6px; border-radius: 999px; background: #fff; border: 1.5px solid rgba(38, 122, 82, .35); color: #267A52; line-height: 1; }
.pb-v2 .fm-nfz i { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: #267A52; color: #fff !important; font-size: 15px; }
.pb-v2 .fm-nfz span { display: flex; flex-direction: column; gap: 2px; }
.pb-v2 .fm-nfz strong { font-weight: 700; font-size: 15px; letter-spacing: .06em; }
.pb-v2 .fm-nfz small { font-size: 11px; font-weight: 500; color: #5A5363; }
.pb-v2 .pb-title { margin: 0; font-family: var(--f-serif); font-weight: 400; font-size: clamp(32px, 3.6vw, 50px); line-height: 1.06; letter-spacing: -.012em; color: #1A1523; }
.pb-v2 .pb-title em { font-style: italic; color: #A8267B; }
.pb-v2 .pb-desc { margin: 0; max-width: 54ch; font-size: clamp(16px, 1.2vw, 18px); line-height: 1.65; color: #5A5363; }
.pb-v2 .pb-btns { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; margin-top: 6px; }
.pb-v2 .pb-btn-p { display: inline-flex; align-items: center; gap: 8px; min-height: 52px; padding: 0 26px; border-radius: 999px; background: #C92F93; color: #fff !important; font-weight: 600; text-decoration: none; box-shadow: 0 14px 28px -14px rgba(201, 47, 147, .7); border: 0; }
.pb-v2 .pb-btn-s { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0; background: none !important; border: 0 !important; color: #A8267B !important; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.pb-v2 .pb-lists { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pb-v2 .pb-list { background: #fff; border-radius: 22px; padding: 20px 22px; border: 1px solid rgba(26, 21, 35, .08); }
.pb-v2 .pb-list--nfz { background: #EEF8F2; border-color: transparent; }
.pb-v2 .pb-list-h { margin: 0 0 10px; font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: #A8267B; }
.pb-v2 .pb-list--nfz .pb-list-h { color: #267A52; }
.pb-v2 .pb-list ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.pb-v2 .pb-list a { display: flex; align-items: center; min-height: 40px; color: #1A1523; font-size: 15.5px; font-weight: 500; text-decoration: none; border-bottom: 1px solid rgba(26, 21, 35, .07); }
.pb-v2 .pb-list li:last-child a { border-bottom: 0; }
.pb-v2 .pb-list a:hover { color: #A8267B; }
.pb-v2 .pb-note { grid-column: 1 / -1; margin: 0; display: flex; gap: 10px; align-items: center; font-size: 14.5px; color: #5A5363; }
.pb-v2 .pb-note i { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: #fff; color: #A8267B; font-size: 16px; flex: none; }
@media (max-width: 1024px) { .pb-v2 .pb-inner { grid-template-columns: 1fr; } }
.pb-v2 .pb-lists { align-items: start; }
.pb-v2 .pb-list .pb-note { margin-top: 14px; font-size: 13.5px; align-items: flex-start; }
.pb-v2 .pb-list .pb-note i { background: #fff; }
.pb-v2 .pb-list:last-child { background: #fff; border-color: rgba(26, 21, 35, .08); }
.pb-v2 .pb-list:last-child .pb-list-h { color: #A8267B; }
.pb-v2 .pb-list:last-child .pb-note i { background: #FDF1F8; }

/* ═══════ Opinie (karuzela na usługach i O nas) w kolorach marki (02.10.2026) ═══════ */
.fm-op-card { border-color: rgba(26, 21, 35, .08); border-radius: 22px; padding: 20px 22px; box-shadow: none; }
.fm-op-card:nth-child(3n+2) { background: #FDF1F8; border-color: transparent; }
.fm-op-card:nth-child(3n+3) { background: #EEF8F2; border-color: transparent; }
.fm-op-text { font-size: 15.5px; line-height: 1.6; color: #1A1523; }
.fm-op-by { padding-top: 12px; border-top: 1px solid rgba(26, 21, 35, .08); }
.fm-op-nav { border-color: rgba(26, 21, 35, .2); color: #1A1523; }
.fm-op-nav:hover { background: #FDF1F8; border-color: #C92F93; color: #A8267B; }
.fm-op-nav:focus-visible { outline-color: #A8267B; }
