/* ─────────────────────────────────────────────────────────────────────────
   opieka.farm — dodatki motywu WP ponad portem prototypu (home.css).
   Tu trafiają wyłącznie reguły specyficzne dla WordPressa (a11y, integracje),
   NIE style designu — te żyją w home.css i modułach *-styles.css z prototypu.
   ───────────────────────────────────────────────────────────────────────── */

/* Skip-link (WCAG 2.4.1) — ukryty do momentu fokusa */
.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 1000;
  padding: 10px 16px;
  background: var(--primary);
  color: #fff;
  border-radius: 0 0 var(--rad-sm) 0;
  font-weight: 600;
}
.skip-link:focus { left: 0; }

/* Klasa czytników ekranu (odpowiednik WP .screen-reader-text) */
.screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px;
  margin: -1px; padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  border: 0;
  white-space: nowrap;
}

/* Wordmark w chrome (sidebar/utilbar/footer renderują <img> z logo) */
.brand-logo img, .mobile-brand img, .footer .about > img { height: auto; }

/* Ukrycie dekoracji dropdownów do czasu otwarcia (sterowane JS-em).
   Reguła ogólna: atrybut hidden ZAWSZE wygrywa z komponentowym display
   (inaczej np. .fb-thanks z display:flex pokazuje się mimo hidden). */
.notif-pop[hidden], .um-pop[hidden], .cmdk-mask[hidden], .report-mask[hidden],
.fb-thanks[hidden], .inline-toc[hidden], .report-done[hidden], #of-report-form[hidden],
.of-popup-mask[hidden], .utilbar .icon-btn .badge[hidden], .np-grp .ct[hidden],
.np-mark[hidden], .pw-item[hidden], .pw-empty[hidden],
.kd-lesson[hidden], .kd-prog[hidden], .kd-quiz-fail[hidden], .kp-sl-note[hidden] { display: none !important; }

/* ⌘K: kolumna tytułu musi wypełniać track, inaczej długie tytuły (realne dane)
   uciekają spod wielokropka i nachodzą na plakietkę typu. Prototyp tego nie
   ujawniał (krótkie tytuły demo) — zgłoszone jako poprawka do prototypu. */
.cmdk .item .tt { justify-self: stretch; }

/* Boks „Identyfikacja" w treści (.from-rail-box.atc-card): style wierszy w prototypie
   są scope'owane do .calc-rail .atc-card, a decyzja 13.07 przeniosła boks do treści.
   Odtwarzamy tu układ wierszy (etykieta / wartość + dopisek w nowej linii). */
.calc-prose .from-rail-box.atc-card .row {
  display: flex; justify-content: space-between; gap: 12px;
  padding: 7px 0; font-size: 14px; align-items: baseline;
}
.calc-prose .from-rail-box.atc-card .row + .row { border-top: 1px solid var(--line); }
.calc-prose .from-rail-box.atc-card .row .lab { color: var(--ink-3); flex-shrink: 0; }
.calc-prose .from-rail-box.atc-card .row .val { font-weight: 600; text-align: right; }
.calc-prose .from-rail-box.atc-card .row .val small { display: block; font-weight: 400; color: var(--ink-3); font-size: 11.5px; margin-top: 2px; }

/* Placeholder miniatury w kartach `.ar-card` (brak obrazka wyróżniającego) — fallback
   marki 1:1 z home (#56): gradient petrol→mięta→malina + znak portalu jako watermark.
   `.ar-thumb-ph` renderuje się tylko gdy wpis NIE ma miniatury (else w szablonie),
   więc bez `:not(:has(img))`. Spójność między home a archiwami opracowań/szkoleń/stref. */
.ar-thumb-ph {
  display: block; width: 100%; height: 100%; position: relative;
  background: linear-gradient(135deg, var(--primary) 0%, var(--primary-2) 45%, var(--accent) 100%);
}
.ar-thumb-ph::before {
  content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: url(../img/mark-white.svg) center / 38% no-repeat;
  opacity: .16;
}

/* Filtr kart: [hidden] musi wygrać z display:grid/flex komponentu. */
[data-cat-item][hidden], [data-cat-group][hidden] { display: none !important; }

/* Przycisk „Zapisz" po zapisaniu — ikona zakładki wypełniona (serwerowo renderujemy
   bookmark z fill:none, więc po toggle JS-em wymuszamy wypełnienie przez klasę .on). */
.save-btn.on { border-color: var(--primary-2); color: var(--primary); }
.save-btn.on .ic svg { fill: currentColor; }

/* Miękka brama (F5): treść zamknięta jest w PEŁNI w DOM (SEO), a gościowi
   przycinamy ją wizualnie kurtyną. Prototypowe .fade-wrap/.fade-mask nie tną
   wysokości — robimy to tu. Zalogowany/otwarta: .of-gated bez fade = brak limitu. */
/* #87: klasyczny zanik do tła (wzór handoff/brama-styles.css) zamiast blur+mask-image.
   ~15 czytelnych linii, bez rozmycia, nakładka .fade-mask kończy się na dolnej krawędzi
   okna (bottom:0) → gradient sięga bieli WEWNĄTRZ próbki, brak twardej krawędzi. */
.of-gated.fade-wrap {
  position: relative;
  max-height: 36em; overflow: hidden;
}
/* #87: przywrócona nakładka gradientu do tła (prototyp). Gość nie zaznacza/kopiuje próbki. */
.of-gated.fade-wrap > :not(.fade-mask) { pointer-events: none; user-select: none; }
.of-gated.fade-wrap .fade-mask {
  display: block; position: absolute; left: 0; right: 0; bottom: 0;
  height: 240px; pointer-events: none;
  background: linear-gradient(180deg, rgba(250, 250, 249, 0) 0%, var(--bg) 78%);
}
/* #65: materiał sponsorowany — próbka zasłonięta CAŁKIEM (gość startuje od spisu treści + bramy). */
.of-gated.fade-wrap.of-gated--covered {
  max-height: 0; padding-top: 0; margin-top: 0; border: 0;
}
.of-gated.fade-wrap.of-gated--covered .fade-mask { display: none; }
.rx-neutral { margin-top: 8px; }

/* Komunikaty formularzy (logowanie, profil) */
.of-alert { padding: 11px 14px; border-radius: var(--rad-sm); font-size: 14px; margin: 14px 0; border: 1px solid; }
.of-alert, .of-alert--err { background: rgba(204,50,102,0.08); border-color: rgba(204,50,102,0.35); color: #8f2247; }
.of-alert--ok { background: var(--accent-soft); border-color: rgba(20,160,133,0.4); color: var(--accent-2); }

/* ── Druk (F3/§11): domknięcie reguł @media print dla modułów dodanych po porcie
   bazowym (home.css ukrywa .rail/chrome/reklamy). Tu chowamy raile i elementy
   interaktywne wprowadzone przez karty/narzędzia/Q&A/wydarzenia oraz spłaszczamy
   ich kontenery do czystej kartki. Cel: karta substancji/choroby drukuje się jako
   sam dokument, bez sidebara, ankiety, przycisków i pasków postępu. */
@media print {
  /* Raile i sidebary modułów (baza chowa tylko .rail) */
  .calc-rail, .qa-detail-aside, .qa-aside, .ev-aside { display: none !important; }
  /* Elementy interaktywne bez wartości na papierze */
  .read-progress, .fb, .eeat-report, .save-dock, .of-save-btn,
  .cat-filter, .qa-filter, .ev-filters, .ix-presets, .ix-search .ix-menu,
  .qa-back, .ev-back, .qa-cta-card, .refs-more, .fn3pg-refs-more { display: none !important; }
  /* Kontenery treści modułów na pełną szerokość kartki */
  .calc-main, .qa-detail, .qa-detail-main, .qa-main, .ev-detail, .ev-main {
    max-width: none !important; width: auto !important; margin: 0 !important;
    padding: 0 !important; border: 0 !important; box-shadow: none !important;
    display: block !important; grid-template-columns: none !important;
  }
  /* Nie łam wewnątrz bloków kluczowych dla czytelności karty */
  .from-rail-box, .calc-warn, .interp, .ev-keyfacts, .ev-program,
  .qa-a-block, .eeat, .refs-plain { break-inside: avoid; }
  /* Źródła zawsze w całości (rozwinięte) na wydruku */
  .refs-clip.clamped { max-height: none !important; }
  .refs-clip.clamped::after { display: none !important; }
  .fn3pg-footnotes-wrap.of-clamped ol.fn3pg-footnotes { max-height: none !important; -webkit-mask-image: none !important; mask-image: none !important; }
  .fn3pg-footnotes-wrap { break-inside: avoid; }
}

/* Placeholder w miejscu narzędzia (np. zamienniki — SubstTool robimy osobno). */
.of-tool-ph { padding: 0; }
.of-tool-ph-in {
  display: flex; flex-direction: column; align-items: center; text-align: center; gap: 8px;
  padding: 40px 28px; border: 1.5px dashed var(--line-2); border-radius: var(--rad-md);
  background: var(--bg-2); color: var(--ink-3);
}
.of-tool-ph-in b { font-size: 16px; color: var(--ink-2); }
.of-tool-ph-in p { max-width: 52ch; margin: 0; font-size: 13.5px; line-height: 1.55; }
.of-tool-ph-ic {
  display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px;
  border-radius: 50%; background: rgba(29,115,139,0.10); color: var(--primary-2); margin-bottom: 2px;
}

/* ── Oznaczenie sponsoringu (F9): wstążka .partner w nagłówku treści. W prototypie
   .partner żyje w article-styles.css (tylko opracowanie), a w motywie sponsoring jest
   na 13 typach treści (F1) → komponent musi być site-wide. Port 1:1 z article-styles.css
   (na opracowaniu obie definicje są identyczne, więc kaskada bez konfliktu). */
.partner {
  display: flex; align-items: center; gap: 12px;
  margin-top: 22px; padding: 11px 15px;
  background: var(--bg-2); border-radius: 10px;
  font-size: 12.5px; color: var(--ink-2);
}
.partner .lbl {
  font-family: 'Source Sans 3', sans-serif; font-size: 10px;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--ink-3); font-weight: 500;
}
.partner .name { font-weight: 600; color: var(--ink); }
.partner .mat {
  margin-left: auto;
  font-family: 'Source Sans 3', sans-serif; font-size: 10.5px;
  color: var(--ink-3); letter-spacing: 0.06em;
}

/* Sponsorowany kafel w feedzie (F9 krok 3) — badge na miniaturze (port home-extra.css:518).
   Globalnie, bo pojawia się na froncie (.feat .ph) i w archiwum aktualności (.nw-thumb). */
.hc-sponsor {
  position: absolute; left: 10px; bottom: 10px; z-index: 2;
  font-family: 'Source Sans 3', sans-serif; font-size: 10px; letter-spacing: 0.06em;
  text-transform: uppercase; font-weight: 500;
  background: rgba(10,37,48,0.78); color: #fff; padding: 3px 8px; border-radius: 6px;
}
.feat .card .ph, .nw-row .nw-thumb { position: relative; }

/* Strefa (F9) — landing marki: układ jednokolumnowy (bez raila) na bazie .calc-wrap. */
.calc-wrap.strefa-solo { grid-template-columns: minmax(0,1fr); max-width: 900px; }
.strefa-hero { margin: 0 0 24px; border-radius: var(--rad-md); overflow: hidden; border: 1px solid var(--line); }
.strefa-hero img { display: block; width: 100%; height: auto; }

/* Strona wyników wyszukiwania (F8). */
.of-sr { display: flex; flex-direction: column; gap: 10px; margin: 8px 0 28px; }
.of-sr-item {
  display: grid; grid-template-columns: auto 1fr; align-items: baseline; gap: 4px 14px;
  padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--rad-md);
  background: var(--card); text-decoration: none; transition: border-color .12s, background .12s;
}
.of-sr-item:hover { border-color: var(--primary-2); background: var(--bg-2); }
.of-sr-kind {
  grid-row: 1 / span 2; align-self: center; font-family: 'IBM Plex Mono', monospace;
  font-size: 11px; letter-spacing: .04em; text-transform: uppercase; color: var(--primary-2);
  background: rgba(29,115,139,0.10); padding: 4px 9px; border-radius: 6px; white-space: nowrap;
}
.of-sr-t { font-family: 'Onest', sans-serif; font-weight: 600; font-size: 16px; color: var(--ink); }
.of-sr-s { grid-column: 2; font-size: 13.5px; color: var(--ink-3); line-height: 1.5; }
.of-sr-empty { padding: 40px 20px; text-align: center; color: var(--ink-3); }
.of-sr-empty h4 { font-size: 18px; color: var(--ink-2); margin: 0 0 6px; }

/* Paginacja WP — kanoniczny styl site-wide dla the_posts_pagination(class=nw-pager).
   Wcześniej .page-numbers było nieostylowane (goła paginacja) na opracowaniach,
   aktualnościach i wideo; ten blok domyka je spójnie (pigułki jak w projekcie). */
.nw-pager { margin-top: 34px; }
.nw-pager .nav-links { display: flex; align-items: center; justify-content: center; gap: 6px; flex-wrap: wrap; }
.nw-pager .page-numbers {
  min-width: 36px; height: 36px; padding: 0 11px; border: 1px solid var(--line); background: var(--card);
  border-radius: 9px; font-family: 'Onest', sans-serif; font-size: 14px; font-weight: 600; color: var(--ink-2);
  display: inline-flex; align-items: center; justify-content: center;
  transition: border-color .12s, color .12s, background .12s;
}
.nw-pager a.page-numbers:hover { border-color: var(--primary-2); color: var(--primary); }
.nw-pager .page-numbers.current { background: var(--primary); border-color: var(--primary); color: #fff; cursor: default; }
.nw-pager .page-numbers.dots { border-color: transparent; background: transparent; min-width: 20px; padding: 0 2px; }
.nw-pager .page-numbers svg { width: 16px; height: 16px; }

/* Subskrypcje tematów (F10) — przycisk „Obserwuj" (of_subscribe_button) + znacznik
   „obserwowane" na itemach powiadomień z subskrybowanym data-topic. */
.of-sub-btn {
  display: inline-flex; align-items: center; gap: 7px; height: 38px; padding: 0 16px; margin-top: 16px;
  border-radius: 999px; border: 1px solid var(--line-2); background: var(--card);
  font-family: 'Onest', sans-serif; font-size: 13.5px; font-weight: 600; color: var(--primary);
  cursor: pointer; transition: border-color .12s, background .12s, color .12s;
}
.of-sub-btn .ic { display: inline-flex; }
.of-sub-btn .ic svg { width: 16px; height: 16px; }
.of-sub-btn:hover { border-color: var(--primary-2); }
.of-sub-btn.on { background: var(--primary); border-color: var(--primary); color: #fff; }
.of-sub-btn:disabled { opacity: .6; cursor: default; }

.np-item.of-followed, .pw-item.of-followed { box-shadow: inset 3px 0 0 var(--primary-2); }
.pill-followed svg { width: 14px; height: 14px; vertical-align: -2px; margin-right: 2px; }

/* Placeholder sekcji „w przygotowaniu" (templates/soon.php) */
.of-soon { max-width: 720px; margin: 8px 0 40px; padding: 40px 36px; text-align: center;
	background: var(--card); border: 1px solid var(--line); border-radius: var(--rad-lg); }
.of-soon-ic { width: 64px; height: 64px; margin: 0 auto 18px; display: grid; place-items: center;
	background: #e7f3f1; color: var(--primary); border-radius: 18px; }
.of-soon-ic svg { width: 30px; height: 30px; }
.of-soon-badge { display: inline-flex; align-items: center; gap: 7px; margin-bottom: 16px;
	font: 600 12px/1 'Onest', sans-serif; letter-spacing: .08em; text-transform: uppercase; color: var(--primary);
	padding: 6px 12px; background: #e7f3f1; border-radius: 999px; }
.of-soon-badge .live { width: 7px; height: 7px; border-radius: 50%; background: var(--primary-2);
	box-shadow: 0 0 0 0 var(--primary-2); animation: of-soon-pulse 2s infinite; }
@keyframes of-soon-pulse { 0% { box-shadow: 0 0 0 0 rgba(20,160,133,.5); } 70% { box-shadow: 0 0 0 8px rgba(20,160,133,0); } 100% { box-shadow: 0 0 0 0 rgba(20,160,133,0); } }
.of-soon p { margin: 0 auto 14px; max-width: 56ch; color: var(--ink-2); font: 400 16px/1.65 'Source Sans 3', sans-serif; }
.of-soon-extra { margin-bottom: 14px; text-align: left; }
.of-soon-cta { display: inline-flex; align-items: center; gap: 8px; margin-top: 8px;
	font: 600 14px/1 'Onest', sans-serif; color: var(--primary); text-decoration: none; }
.of-soon-cta:hover { text-decoration: underline; }
.of-soon-cta svg { width: 16px; height: 16px; transform: rotate(180deg); }

/* Baner cookies motywu (of-cookie) usunięty 16.07.2026 — zgody obsługuje Cookiebot. */

/* Strona prawna (templates/legal.php) */
.of-legal { margin: 8px 0 24px; }
.of-legal h2 { font: 700 22px/1.3 'Onest', sans-serif; color: var(--ink); margin: 32px 0 12px; }
.of-legal h3 { font: 600 17px/1.35 'Onest', sans-serif; color: var(--ink); margin: 22px 0 8px; }
.of-legal ul { margin: 0 0 16px; padding-left: 22px; }
.of-legal li { margin: 0 0 7px; }
.of-legal-note { background: #fff6e6; border: 1px solid #f0d999; border-radius: var(--rad-md);
	padding: 14px 16px; font: 400 14px/1.55 'Source Sans 3', sans-serif; color: #6b5410; margin: 0 0 24px; }
.of-legal-updated { margin: 8px 0 40px; font: 400 13px/1.4 'Source Sans 3', sans-serif; color: var(--ink-3); }

/* Szkolenia / LMS (F11) — nagłówek grupy modułu + panel lekcji inline. Dodatki do
   kursy-styles.css; pełnoekranowy odtwarzacz .kp-* świadomie poza v1 (patrz ideas.md). */
.kd-modgroup { display: flex; align-items: baseline; gap: 9px; margin: 20px 0 6px; }
.kd-modgroup:first-child { margin-top: 0; }
.kd-modgroup .mn { font: 600 10.5px/1 'Source Sans 3', sans-serif; letter-spacing: 0.1em; text-transform: uppercase; color: var(--primary-2); white-space: nowrap; }
.kd-modgroup .mt { font: 600 14px/1.3 'Onest', sans-serif; color: var(--ink); }
.kd-modgroup .mm { margin-left: auto; font: 400 11px/1 'Source Sans 3', sans-serif; color: var(--ink-3); white-space: nowrap; }
.kd-mod.lesson[aria-expanded="true"] { border-color: var(--primary-2); }
.kd-lesson { margin-top: -2px; padding: 16px 18px; background: var(--bg-2); border: 1px solid var(--line); border-left: 3px solid var(--primary-2); border-radius: var(--rad-md); }
.kd-lesson-media { position: relative; aspect-ratio: 16 / 9; margin: 0 0 14px; border-radius: var(--rad-md); overflow: hidden; background: #000; }
.kd-lesson-media iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.kd-lesson-body { margin-bottom: 14px; }
.kd-lesson-empty { font: 400 13.5px/1.5 'Source Sans 3', sans-serif; color: var(--ink-3); margin: 0 0 14px; }
.kd-lesson-nav { display: flex; justify-content: flex-end; }
.kd-cert-wm { font: 700 18px/1 'Onest', sans-serif; letter-spacing: -0.02em; color: var(--primary); }
.kd-cert-wm b { color: var(--primary-2); font-weight: 700; }

/* Edukacja pacjenta (F13) — badge „W opracowaniu" na karcie teasera (zamiast Drukuj). */
.edu-card .edu-soon { display: inline-flex; align-items: center; gap: 6px; font: 500 12px/1 'Source Sans 3', sans-serif; color: var(--ink-3); }
.edu-card .edu-soon svg { width: 14px; height: 14px; }

/* ── 404 (port notfound.jsx / .nf-* z 404.html) — dziedziczy tokeny z home.css ── */
.nf-wrap { max-width: 720px; margin: 0 auto; padding: 64px 0 40px; text-align: center; position: relative; }
.nf-num { font-family: 'Source Sans 3', sans-serif; font-weight: 500; font-size: clamp(96px, 20vw, 188px); line-height: 0.9; letter-spacing: -0.04em; color: transparent; -webkit-text-stroke: 1.5px var(--line-2); user-select: none; margin-bottom: 8px; }
.nf-kick { font-family: 'Source Sans 3', sans-serif; font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--accent-2); }
.nf-h1 { font-size: clamp(26px, 4vw, 34px); letter-spacing: -0.025em; line-height: 1.1; margin: 12px 0 0; color: var(--ink); }
.nf-lead { font-size: 15.5px; line-height: 1.6; color: var(--ink-2); max-width: 52ch; margin: 14px auto 0; text-wrap: pretty; }
.nf-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-top: 26px; }
.nf-btn { display: inline-flex; align-items: center; gap: 9px; height: 44px; padding: 0 18px; border-radius: 12px; border: 1px solid var(--line-2); background: var(--card); font-size: 14.5px; font-weight: 600; color: var(--ink); cursor: pointer; transition: border-color 0.12s ease, background 0.12s ease, transform 0.12s ease; }
.nf-btn:hover { border-color: var(--ink-3); transform: translateY(-1px); }
.nf-btn svg { width: 18px; height: 18px; }
.nf-btn kbd { font-family: 'Source Sans 3', sans-serif; font-size: 11px; padding: 2px 6px; border-radius: 5px; background: var(--bg-2); color: var(--ink-3); border: 1px solid var(--line); }
.nf-btn.primary { background: var(--accent); border-color: var(--accent); color: #fff; }
.nf-btn.primary kbd { background: rgba(255,255,255,0.18); color: #fff; border-color: transparent; }
.nf-btn.primary:hover { background: var(--accent-2); border-color: var(--accent-2); }
.nf-links { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 40px; text-align: left; }
.nf-card { display: flex; align-items: center; gap: 13px; padding: 15px 16px; background: var(--card); border: 1px solid var(--line); border-radius: var(--rad-md); transition: border-color 0.12s ease, transform 0.12s ease, box-shadow 0.12s ease; }
.nf-card:hover { border-color: var(--line-2); transform: translateY(-1px); box-shadow: var(--shadow-sm); }
.nf-ic { flex-shrink: 0; width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; background: var(--accent-soft); color: var(--accent-2); }
.nf-ic svg { width: 19px; height: 19px; }
.nf-tt { display: flex; flex-direction: column; min-width: 0; }
.nf-tt .t { font-size: 14.5px; font-weight: 600; color: var(--ink); }
.nf-tt .s { font-size: 12.5px; color: var(--ink-3); margin-top: 1px; }
.nf-arr { margin-left: auto; color: var(--ink-4); }
.nf-arr svg { width: 18px; height: 18px; }
.nf-card:hover .nf-arr { color: var(--accent-2); }
.nf-foot { font-size: 13px; color: var(--ink-3); margin-top: 32px; line-height: 1.55; }
.nf-foot b { color: var(--ink-2); }
@media (max-width: 560px) { .nf-wrap { padding-top: 36px; } .nf-links { grid-template-columns: 1fr; } }

/* ── Aktualność single (lekki układ artykułu, single.php) — kicker kategorii + źródło ── */
.article-h .eyebrow .cdot { width: 7px; height: 7px; border-radius: 50%; display: inline-block; vertical-align: middle; margin-right: 4px; }
.article-h .eyebrow .cat { font-weight: 600; }
.article-h .eyebrow .sep { color: var(--ink-4); margin: 0 3px; }
.article-h .eyebrow .urg { margin-left: 6px; padding: 1px 6px; border-radius: 4px; font-size: 9.5px; background: rgba(204,50,102,0.14); color: var(--warn); text-transform: uppercase; letter-spacing: 0.04em; }
.news-src { font-family: 'Source Sans 3', sans-serif; font-size: 13.5px; color: var(--ink-3); margin: 20px 0 0; padding-top: 14px; border-top: 1px solid var(--line); }
.news-src a { color: var(--primary-2); display: inline-flex; align-items: center; gap: 4px; }
.news-src a svg { width: 13px; height: 13px; }

/* ── SIL — Skrócona Informacja o Leku (akordeon; port .jv-sil z juvit-partner.css, site-wide) ── */
.of-sil-wrap { margin-top: 18px; display: grid; gap: 12px; }
.of-sil { border: 1px solid var(--line); border-radius: 10px; background: var(--bg-2); overflow: hidden; }
.of-sil-wrap .of-sil { margin-top: 0; }
.of-sil summary {
  list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 10px;
  cursor: pointer; padding: 11px 15px; user-select: none;
  /* #57: zwykły font treści zamiast mono+wersaliki (mniej „pijące po oczach") */
  font-family: 'Source Sans 3', sans-serif; font-size: 13px; font-weight: 600;
  letter-spacing: normal; text-transform: none; color: var(--ink-3);
}
.of-sil summary::-webkit-details-marker { display: none; }
.of-sil summary:hover { color: var(--ink-2); }
.of-sil .chev {
  width: 7px; height: 7px; flex-shrink: 0;
  border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg); transition: transform 0.15s;
}
.of-sil[open] .chev { transform: rotate(-135deg); }
.of-sil .silc { padding: 2px 15px 13px; border-top: 1px solid var(--line); }
.of-sil .silc p { margin: 10px 0 0; font-size: 11.5px; line-height: 1.6; color: var(--ink-3); }
.of-sil .silc p b, .of-sil .silc p strong { color: var(--ink-2); }
/* Tabele wewnątrz SIL (dawkowanie itp.) — czytelne, drobne */
.of-sil .silc table { width: 100%; border-collapse: collapse; margin: 10px 0 0; font-size: 11px; }
.of-sil .silc th, .of-sil .silc td { border: 1px solid var(--line); padding: 5px 8px; text-align: left; vertical-align: top; line-height: 1.5; color: var(--ink-3); }
.of-sil .silc th { background: var(--bg-2); color: var(--ink-2); font-weight: 600; }

/* Nota atrybucji partnera (Wariant 2) — „Partner: <tekst>" nad źródłami, kursywa/szary. */
.of-partner-note { font-size: 12.5px; color: var(--ink-3); font-style: italic; margin: 16px 0 0; }
.of-partner-note b { font-style: normal; font-weight: 600; color: var(--ink-2); }
