/*
 * Serwis faktoringowy Nalevio - układ wzorowany na private-debt.pl (siatka "tytuł | treść" 5:7, pasy sekcji, mega-menu),
 * Marka Nalevio (brandbook v1.0, docs/marka): granat #0B2545, morski #0F766E, zieleń #22C55E, mięta #ECFDF5, jasne tło #F1F5F9.
 * Zieleń ma z bielą kontrast ok. 2,3:1 - przycisk CTA zielony z GRANATOWYM tekstem (6,8:1); tekst i linki w akcencie: morski (5,5:1).
 * Krój Manrope (nagłówki 700, treść 400/500), hostowany lokalnie (licencja OFL, assets/fonts).
 * Kalkulatory, raport, słownik i formularze: narzedzia.css (ładowany tylko tam, gdzie są - Komponenty::styl).
 */

@font-face {
	font-family: "Manrope Variable";
	font-style: normal;
	font-display: swap;
	font-weight: 200 800;
	src: url(../fonts/manrope-latin-ext-wght-normal.woff2) format("woff2-variations");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Manrope Variable";
	font-style: normal;
	font-display: swap;
	font-weight: 200 800;
	src: url(../fonts/manrope-latin-wght-normal.woff2) format("woff2-variations");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root {
	/* paleta */
	--granat: #0B2545;           /* nagłówki, menu, stopka */
	--tekst: #3B4658;            /* treść */
	--tekst-slaby: #5A6577;      /* opisy, okruszki */
	--linia: #DCE6EC;
	--tlo-sekcji: #F1F5F9;       /* pasy sekcji ("jasne tło") - wyraźna naprzemienność z bielą */
	--akcent: #0F766E;           /* morski: linki, podkreślenia, kropki, fokus, elementy funkcjonalne */
	--akcent-hover: #115E59;
	--akcent-tlo: #ECFDF5;       /* mięta: jasne tło w kolorze akcentu */
	--cta: #22C55E;              /* zieleń: główny przycisk (tekst granatowy) */
	--cta-hover: #16A34A;
	--zielen-akcent: #22C55E;    /* zieleń: tylko akcenty graficzne (kropki, kreski) - nigdy kolor tekstu */
	--blad: #B91C1C;             /* błędy: obramowania pól i tekst komunikatów (kontrast 6,5:1 z bielą) */
	--blad-tlo: #FEF2F2;
	--blad-tekst: #991B1B;
	--akcent-tekst: #0F766E;     /* tekst w odcieniu akcentu */
	--na-ciemnym: #22C55E;       /* akcent graficzny na granacie (kropki, podkreślenia) - nie kolor tekstu */
	--ostrzezenie: #B45309;
	--obramowanie-pola: #7A8699;  /* obramowania pól, kafli i wyszukiwarki - kontrast min. 3:1 z bielą (WCAG 1.4.11) */

	--font-naglowki: "Manrope Variable", "Segoe UI", Arial, sans-serif;
	--font-tresc: "Manrope Variable", "Segoe UI", Arial, sans-serif;
	--margines: clamp(16px, 4vw, 48px);
	--wys-naglowka: 80px;
	/* jedna siatka sekcji "tytuł | treść" (5 + 7 z 12 kolumn), jak w PD */
	--uklad-kolumny: minmax(0, 5fr) minmax(0, 7fr);
	--uklad-odstep: clamp(40px, 6vw, 96px);
	--szer: 1320px;
}

/* ---------- podstawy ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--wys-naglowka) + 16px); }
body { margin: 0; overflow-x: clip; font: 16px/1.6 var(--font-tresc); color: var(--tekst); background: #fff; }
img { max-width: 100%; height: auto; }
h1, h2, h3, h4 { font-family: var(--font-naglowki); font-weight: 700; letter-spacing: -0.02em; color: var(--granat); }
h1 { font-size: clamp(2rem, 1.5rem + 1.8vw, 3rem); line-height: 1.1; margin: 0; }
h2 { font-size: clamp(1.6rem, 1.4rem + 0.7vw, 2rem); line-height: 1.2; }
h3 { font-size: clamp(1.2rem, 1.1rem + 0.4vw, 1.5rem); line-height: 1.3; font-weight: 600; margin: 2em 0 0.5em; }
p { margin: 0 0 1em; }
a { color: var(--granat); text-underline-offset: 3px; text-decoration-color: color-mix(in srgb, var(--akcent) 55%, transparent); }
a:hover { color: var(--akcent); }
:focus-visible { outline: 2px solid var(--akcent); outline-offset: 3px; }
strong { color: var(--granat); font-weight: 650; }
.kontener { max-width: var(--szer); margin: 0 auto; padding: 0 var(--margines); }
.pomin { position: absolute; left: -9999px; }
.pomin:focus { left: 16px; top: 16px; z-index: 2000; background: #fff; padding: 8px 12px; }

/* ---------- przyciski ---------- */
.przycisk { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 16px 28px; border-radius: 999px; border: 0; background: var(--cta); color: var(--granat); font: 700 16px/1.2 var(--font-naglowki); text-decoration: none; cursor: pointer; transition: background-color .2s ease; }
.przycisk:hover, .przycisk:focus-visible { background: var(--cta-hover); color: var(--granat); }
.przycisk--maly { padding: 11px 20px; font-size: 15px; }
.przycisk--pelny { width: 100%; }
.przycisk--jasny { background: #fff; color: var(--granat); }
.przycisk--jasny:hover, .przycisk--jasny:focus-visible { background: var(--akcent-tlo); color: var(--granat); }
.przycisk--przyklejony { display: none; }
.przycisk--zastepczy { visibility: hidden; pointer-events: none; }
@media (max-width: 1199.98px) { .przycisk--zastepczy { display: none; } }
.link-podkreslony { color: var(--granat); font: 500 16px/1.2 var(--font-naglowki); text-decoration: underline; text-decoration-color: var(--akcent); text-decoration-thickness: 2px; text-underline-offset: 6px; }
.link-podkreslony:hover { color: var(--akcent); }
.strzalka { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 32px; height: 32px; border: 1px solid currentColor; border-radius: 50%; transition: background-color .2s, color .2s, border-color .2s; }

/* ---------- logo ---------- */
.logo { display: inline-flex; align-items: center; }
.logo__obraz { display: block; width: auto; height: 44px; }

/* ---------- nagłówek i mega-menu ---------- */
.naglowek { position: sticky; top: 0; z-index: 1000; background: #fff; border-bottom: 1px solid var(--linia); font-family: var(--font-naglowki); }
.naglowek__pasek { display: flex; align-items: center; gap: 32px; max-width: var(--szer); min-height: var(--wys-naglowka); margin: 0 auto; padding: 0 var(--margines); }
.naglowek__logo { flex: none; text-decoration: none; }
.naglowek__burger { display: none; }
.nawigacja { display: flex; align-items: center; gap: 28px; margin-left: auto; }
.nawigacja__lista { display: flex; gap: 0 26px; margin: 0; padding: 0; list-style: none; }
.nawigacja__przelacznik, .nawigacja__link, .nawigacja__pomocniczy, .nawigacja__jezyk, .nawigacja__boczne .przycisk { white-space: nowrap; }
.nawigacja__jezyk { color: var(--tekst-slaby); font: 500 14px/1 var(--font-naglowki); letter-spacing: .04em; text-decoration: none; }
.nawigacja__jezyk:hover { color: var(--granat); }
.nawigacja__przelacznik, .nawigacja__link {
	display: inline-flex; align-items: center; gap: 6px; padding: 12px 0; border: 0; background: none; color: var(--granat);
	font: 400 15px/1.2 var(--font-naglowki); text-decoration: none; cursor: pointer;
	background-image: linear-gradient(var(--akcent), var(--akcent)); background-repeat: no-repeat; background-position: 0 calc(100% - 4px); background-size: 0 2px; transition: background-size .3s ease;
}
.nawigacja__przelacznik:hover, .nawigacja__link:hover, .nawigacja__przelacznik[aria-expanded="true"],
.jest-biezaca > .nawigacja__przelacznik, .jest-biezaca > .nawigacja__link { color: var(--granat); background-size: 100% 2px; }
.panel-otwarty .jest-biezaca > .nawigacja__przelacznik[aria-expanded="false"]:not(:hover) { background-size: 0 2px; }
.nawigacja__przelacznik svg { transition: transform .2s ease; }
.nawigacja__przelacznik[aria-expanded="true"] svg { transform: rotate(180deg); }
.nawigacja__boczne { display: flex; align-items: center; gap: 20px; padding-left: 28px; border-left: 1px solid var(--linia); }
.nawigacja__pomocniczy { color: var(--tekst-slaby); font-size: 15px; text-decoration: none; }
.nawigacja__pomocniczy:hover, .nawigacja__pomocniczy[aria-current] { color: var(--granat); }
.panel__tytul { display: inline-flex; align-items: center; gap: 14px; margin-bottom: 28px; color: var(--granat); font: 600 26px/1.2 var(--font-naglowki); letter-spacing: -0.02em; text-decoration: none; }
.panel__przedrostek { display: none; }
.panel__tytul:hover .strzalka, .panel__kafel:hover .strzalka { background: var(--akcent); border-color: var(--akcent); color: #fff; }
.panel__grupy { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.panel__grupy--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.panel__grupy--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.panel__naglowek { margin: 0 0 14px; padding-bottom: 10px; border-bottom: 1px solid var(--linia); color: var(--tekst-slaby); font: 600 13px/1.3 var(--font-naglowki); letter-spacing: .1em; text-transform: uppercase; }
.panel__linki { margin: 0; padding: 0; list-style: none; }
.panel__linki li + li { margin-top: 8px; }
.panel__linki a { color: var(--granat); font: 400 16px/1.35 var(--font-tresc); text-decoration: none; }
.panel__linki a:hover, .panel__linki a[aria-current] { color: var(--akcent-tekst); text-decoration: underline; text-decoration-color: var(--akcent); }
.panel__kafel { display: flex; flex-direction: column; align-self: start; gap: 10px; padding: 28px; border-radius: 12px; background: var(--akcent-tlo); color: var(--granat); text-decoration: none; }
.panel__kafel:hover { color: var(--granat); }
.panel__kafel-tytul { font: 600 20px/1.25 var(--font-naglowki); letter-spacing: -0.01em; }
.panel__kafel-tekst { color: var(--tekst); font: 400 16px/1.45 var(--font-tresc); }
.panel__kafel-cta { display: inline-flex; align-items: center; gap: 12px; padding-top: 14px; color: var(--akcent); font: 500 15px/1.2 var(--font-naglowki); }
@media (min-width: 1200px) {
	.panel { position: absolute; top: 100%; left: 0; right: 0; max-height: calc(100vh - var(--wys-naglowka)); overflow-y: auto; background: #fff; border-top: 1px solid var(--linia); box-shadow: 0 30px 50px rgba(11, 37, 69, .08); }
	.panel__wnetrze { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 56px; max-width: var(--szer); margin: 0 auto; padding: 40px var(--margines) 48px; }
	.panel-otwarty body::after { content: ""; position: fixed; inset: 0; z-index: 900; background: rgba(11, 37, 69, .25); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
}
@media (max-width: 1199.98px) {
	:root { --wys-naglowka: 64px; }
	.logo__obraz { height: 40px; }
	.naglowek__burger { display: inline-flex; align-items: center; gap: 10px; margin-left: auto; padding: 10px 0; border: 0; background: none; color: var(--granat); font: 400 15px/1 var(--font-naglowki); cursor: pointer; }
	.naglowek__burger-linie, .naglowek__burger-linie::before, .naglowek__burger-linie::after { display: block; width: 22px; height: 1.5px; background: currentColor; transition: transform .2s, opacity .2s; }
	.naglowek__burger-linie { position: relative; }
	.naglowek__burger-linie::before, .naglowek__burger-linie::after { content: ""; position: absolute; left: 0; }
	.naglowek__burger-linie::before { top: -7px; }
	.naglowek__burger-linie::after { top: 7px; }
	.naglowek__burger[aria-expanded="true"] .naglowek__burger-linie { background: transparent; }
	.naglowek__burger[aria-expanded="true"] .naglowek__burger-linie::before { transform: translateY(7px) rotate(45deg); }
	.naglowek__burger[aria-expanded="true"] .naglowek__burger-linie::after { transform: translateY(-7px) rotate(-45deg); }
	.nawigacja { display: none; position: fixed; top: var(--wys-naglowka); left: 0; right: 0; bottom: 0; flex-direction: column; align-items: stretch; gap: 0; margin: 0; padding: 8px var(--margines) 40px; overflow-y: auto; overscroll-behavior: contain; background: #fff; border-top: 1px solid var(--linia); }
	.menu-otwarte .nawigacja { display: flex; }
	.menu-otwarte body { overflow: hidden; }
	.nawigacja__lista { flex-direction: column; }
	.nawigacja__lista > li { border-bottom: 1px solid var(--linia); }
	.nawigacja__przelacznik, .nawigacja__link { justify-content: space-between; width: 100%; padding: 18px 0; font-size: 19px; background-image: none; }
	.jest-biezaca > .nawigacja__przelacznik span, .jest-biezaca > .nawigacja__link { color: var(--akcent); }
	.panel__wnetrze { padding: 0 0 24px; }
	.panel__przedrostek { display: inline; }
	.panel__tytul { margin-bottom: 20px; font-size: 18px; }
	.panel__grupy, .panel__grupy--2, .panel__grupy--4 { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 24px; }
	.panel__linki li + li { margin-top: 0; }
	.panel__linki a { display: block; padding: 10px 0; }
	.panel__kafel { margin-top: 24px; padding: 22px; }
	.nawigacja__boczne { flex-direction: column; align-items: stretch; gap: 16px; margin-top: 24px; padding-left: 0; border-left: 0; }
	.nawigacja__pomocniczy { font-size: 17px; }
}

/* ---------- nagłówek podstrony ---------- */
.naglowek-strony { position: relative; overflow: hidden; background: var(--akcent-tlo); }
/* bez zdjęcia: szerszy tytuł i lead, w tle delikatna siatka kropek wygaszana ku lewej (faktura, nie "brakujący obrazek") */
.naglowek-strony:not(.naglowek-strony--zdjecie)::after { content: ""; position: absolute; inset: 0 0 0 auto; width: 55%; background-image: radial-gradient(circle, rgba(15, 118, 110, .16) 1.2px, transparent 1.6px); background-size: 22px 22px; -webkit-mask-image: linear-gradient(90deg, transparent, #000 70%); mask-image: linear-gradient(90deg, transparent, #000 70%); pointer-events: none; }
.naglowek-strony:not(.naglowek-strony--zdjecie) h1 { max-width: 28ch; }
.naglowek-strony:not(.naglowek-strony--zdjecie) .naglowek-strony__lead { max-width: 72ch; }
.naglowek-strony__uklad { position: relative; z-index: 1; }
.naglowek-strony__uklad { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px clamp(40px, 6vw, 96px); align-items: center; padding-top: clamp(40px, 6vw, 72px); padding-bottom: clamp(36px, 5vw, 64px); }
.naglowek-strony--zdjecie .naglowek-strony__uklad { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
.naglowek-strony h1 { max-width: 22ch; }
.naglowek-strony__lead { max-width: 60ch; margin: 24px 0 0; color: var(--tekst); font-size: clamp(1.1rem, 1rem + .35vw, 1.25rem); line-height: 1.6; }
.naglowek-strony__akcje { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 32px; margin: 32px 0 0; }
.naglowek-strony__zdjecie { margin: 0; }
.naglowek-strony__zdjecie img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 16px; }
.okruszki ol { display: flex; flex-wrap: wrap; gap: 4px 8px; margin: 0 0 20px; padding: 0; list-style: none; color: var(--tekst-slaby); font-size: 15px; }
.okruszki li + li::before { content: "/"; margin-right: 8px; color: var(--tekst-slaby); }
.okruszki a { color: var(--granat); text-decoration-color: rgba(11, 37, 69, .25); }
.okruszki a:hover { text-decoration-color: var(--akcent); }
.metryka { margin: 20px 0 0; color: var(--tekst-slaby); font: 500 14px/1.4 var(--font-naglowki); }
.zaufanie { display: grid; grid-template-columns: repeat(2, max-content); gap: 6px 28px; margin: 24px 0 0; padding: 0; list-style: none; color: var(--tekst); font-size: 15px; }
.zaufanie li { display: flex; align-items: flex-start; gap: 8px; }
.zaufanie svg { flex: none; margin-top: 3px; color: var(--akcent-tekst); }
.udostepnij { display: flex; align-items: center; gap: 10px; margin-top: 20px; color: var(--tekst-slaby); font-size: 14px; }
.udostepnij a, .udostepnij button { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: 1px solid var(--obramowanie-pola); border-radius: 50%; background: #fff; color: var(--granat); cursor: pointer; }
.udostepnij a:hover, .udostepnij button:hover { border-color: var(--akcent); color: var(--akcent); }
.udostepnij button.skopiowano { border-color: var(--akcent-tekst); color: var(--akcent-tekst); }

/* ---------- strona główna ---------- */
.hero { position: relative; overflow: hidden; background: #fff; }
/* duże koło w kolorze akcentu - jedyny element dekoracyjny (jak kropka z logo w PD) */
.hero::before { content: ""; position: absolute; top: -18%; right: -10%; width: min(64vw, 860px); aspect-ratio: 1; border-radius: 50%; background: var(--akcent-tlo); }
.hero__uklad { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 440px); gap: clamp(40px, 6vw, 104px); align-items: center; max-width: var(--szer); margin: 0 auto; padding: clamp(40px, 5vw, 80px) var(--margines) clamp(48px, 5vw, 80px); }
.hero__tytul { max-width: 20ch; font-size: clamp(2.25rem, 1.6rem + 2vw, 3rem); line-height: 1.06; letter-spacing: -0.03em; }
.hero__lead { max-width: 54ch; margin: 28px 0 0; font-size: clamp(1.05rem, 1rem + .3vw, 1.2rem); }
.hero__akcje { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 32px; margin: 36px 0 0; }
.hero .zaufanie { grid-template-columns: repeat(2, max-content); }
.hero__karta { padding: 28px; border: 1px solid var(--linia); border-radius: 20px; background: #fff; box-shadow: 0 30px 60px rgba(11, 37, 69, .1); }
.hero__karta-tytul { margin: 0 0 6px; color: var(--granat); font: 600 22px/1.3 var(--font-naglowki); letter-spacing: -0.02em; }
.hero__karta-opis { margin: 0 0 20px; color: var(--tekst-slaby); font-size: 16px; line-height: 1.5; }
.hero__kafle { display: grid; gap: 10px; margin: 0 0 20px; padding: 0; list-style: none; }
.hero__kafle a { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 18px; border: 1px solid var(--linia); border-radius: 12px; color: var(--granat); font: 500 16px/1.3 var(--font-naglowki); text-decoration: none; transition: border-color .2s, background-color .2s; }
.hero__kafle a:hover { border-color: var(--akcent); background: var(--akcent-tlo); color: var(--granat); }
.hero__kafle svg { color: var(--akcent); flex: none; }
.hero__karta-przypis { margin: 14px 0 0; color: var(--tekst-slaby); font-size: 14px; line-height: 1.45; }
.sciezki { position: relative; border-top: 1px solid var(--linia); background: #fff; }
.sciezki__lista { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0 auto; list-style: none; }
.sciezki__lista li + li { border-left: 1px solid var(--linia); }
.sciezki__pozycja { display: flex; flex-direction: column; gap: 10px; height: 100%; padding: 28px 32px; color: var(--granat); text-decoration: none; transition: background-color .2s; }
.sciezki__lista li:first-child .sciezki__pozycja { padding-left: 0; }
.sciezki__pozycja:hover { background: var(--tlo-sekcji); color: var(--granat); }
.sciezki__tytul { font: 500 18px/1.35 var(--font-naglowki); letter-spacing: -0.01em; }
.sciezki__link { color: var(--akcent); font: 500 15px/1.2 var(--font-naglowki); text-decoration: underline; text-underline-offset: 5px; }

/* ---------- treść: wstęp i sekcje "tytuł | treść" ---------- */
.wstep { padding: clamp(48px, 6vw, 80px) 0 clamp(16px, 3vw, 32px); }
.wstep + .sekcja:not(.sekcja--szara) { padding-top: clamp(24px, 3vw, 40px); }
.wstep .kontener > ul, .wstep .kontener > ol { max-width: none; }
/* akapity wstępu na pełną szerokość kontenera (decyzja właściciela: tekst bez pustej połowy kolumny) */
.wstep .kontener > p { max-width: none; }
.sekcja { padding: clamp(64px, 8vw, 112px) 0; }
.sekcja--szara { background: var(--tlo-sekcji); }
.sekcja__uklad { display: grid; grid-template-columns: var(--uklad-kolumny); gap: 24px var(--uklad-odstep); align-items: start; }
.sekcja__tytul h2 { max-width: 18ch; margin: 0; font-weight: 650; font-size: clamp(1.6rem, 1.3rem + 1vw, 2.25rem); line-height: 1.15; letter-spacing: -0.03em; }
.sekcja__tresc { max-width: none; padding-top: 6px; }
.sekcja__tresc > :last-child, .sekcja__tekst > :last-child { margin-bottom: 0; }
.sekcja__tresc > h3:first-child { margin-top: 0; }
.sekcja__dalej { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; margin-top: 40px; }
.sekcja__dalej > * { min-width: 0; } /* tabela szersza od ekranu przewija się w .tabela, nie rozpycha kolumny (audyt 1, G-1) */
.sekcja__tekst { max-width: none; }
.sekcja__naglowek { display: grid; grid-template-columns: var(--uklad-kolumny); gap: 16px var(--uklad-odstep); align-items: end; margin-bottom: 40px; }
.sekcja__naglowek h2 { margin: 0; font-weight: 650; font-size: clamp(1.6rem, 1.3rem + 1vw, 2.25rem); line-height: 1.15; letter-spacing: -0.03em; }
.sekcja__naglowek p { margin: 0; max-width: none; }
/* listy z kropką w kolorze akcentu */
.wstep ul:not([class]), .sekcja ul:not([class]), .faq__odpowiedz ul { padding-left: 0; list-style: none; }
.wstep ul:not([class]) > li, .sekcja ul:not([class]) > li, .faq__odpowiedz ul > li { position: relative; margin: .55em 0; padding-left: 22px; }
.wstep ul:not([class]) > li::before, .sekcja ul:not([class]) > li::before, .faq__odpowiedz ul > li::before { content: ""; position: absolute; left: 2px; top: .62em; width: 7px; height: 7px; border-radius: 50%; background: var(--akcent); }
.sekcja ol:not([class]) { padding-left: 1.3em; }
.sekcja ol:not([class]) > li { margin: .55em 0; padding-left: 4px; }
.sekcja ol:not([class]) > li::marker { color: var(--akcent); font-weight: 600; }

/* ---------- ramki (eyebrow z kropką jak w PD) ---------- */
.ramka { margin: 32px 0; padding: 24px 28px; border-left: 3px solid var(--akcent); border-radius: 0 14px 14px 0; background: var(--tlo-sekcji); }
.sekcja--szara .ramka { background: #fff; }
.ramka > :last-child { margin-bottom: 0; }
.ramka__tytul { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 8px; color: var(--granat); font: 500 15px/1.3 var(--font-naglowki); }
.ramka__tytul::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--akcent); }
.ramka--uwaga { border-left-color: var(--ostrzezenie); }
.ramka--uwaga .ramka__tytul::before { background: var(--ostrzezenie); }
.ramka--wygaslo { max-width: 60ch; margin: 20px 0 0; padding: 14px 20px; font-size: 16px; }
/* ramki informacyjne (przykład, wskazówka, podstawa prawna) - jeden kolor akcentu; pomarańcz tylko dla "Uwaga" */
/* krótka odpowiedź: duży tekst na jasnym tle akcentu */
.ramka--krotko { margin: 0 0 clamp(24px, 3vw, 40px); padding: clamp(28px, 4vw, 40px) clamp(28px, 4vw, 48px); background: var(--tlo-sekcji); }
.ramka--krotko:last-child { margin-bottom: 0; }
.ramka--krotko .ramka__tytul { color: var(--tekst-slaby); }
.ramka--krotko p:not(.ramka__tytul) { max-width: none; color: var(--granat); font: 400 clamp(1.1rem, 1rem + .45vw, 1.35rem)/1.55 var(--font-naglowki); letter-spacing: -0.01em; }
.ramka--krotko strong { font-weight: 500; }
/* bloki układu: kroki, fakty, karty (lista w ramce bez tytułu) */
.ramka--kroki, .ramka--fakty, .ramka--karty { margin: 0; padding: 0; border: 0; border-radius: 0; background: none; }
.sekcja--szara .ramka--kroki, .sekcja--szara .ramka--fakty, .sekcja--szara .ramka--karty { background: none; }
.sekcja .ramka--kroki ol, .wstep .ramka--kroki ol { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 32px; margin: 0; padding: 0; list-style: none; counter-reset: krok; }
.sekcja .ramka--kroki li, .wstep .ramka--kroki li { counter-increment: krok; margin: 0; padding: 24px 0 0; border-top: 1px solid var(--linia); }
.ramka--kroki li::before { content: counter(krok, decimal-leading-zero); display: block; margin-bottom: 16px; color: var(--akcent); font: 400 48px/1 var(--font-naglowki); }
.ramka--kroki li strong { display: block; margin-bottom: 8px; font: 600 20px/1.3 var(--font-naglowki); }
.sekcja .ramka--fakty ul, .wstep .ramka--fakty ul { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--linia); border-bottom: 1px solid var(--linia); }
.sekcja .ramka--fakty ul > li, .wstep .ramka--fakty ul > li { margin: 0; padding: 24px 28px 28px 0; color: var(--tekst-slaby); font: 500 14px/1.4 var(--font-naglowki); }
.sekcja .ramka--fakty ul > li + li, .wstep .ramka--fakty ul > li + li { padding-left: 28px; border-left: 1px solid var(--linia); }
.ramka--fakty li::before { display: none; }
.ramka--fakty li strong { display: block; margin-top: 10px; color: var(--granat); font: 400 clamp(1.6rem, 1.2rem + 1.3vw, 2.2rem)/1.15 var(--font-naglowki); letter-spacing: -0.02em; }
.ramka--fakty--tekst li strong { font-size: clamp(1.15rem, 1rem + .4vw, 1.4rem); line-height: 1.3; letter-spacing: -0.01em; }
.sekcja .ramka--karty ul, .wstep .ramka--karty ul, .karty { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 20px; margin: 0; padding: 0; list-style: none; }
.sekcja .ramka--karty ul > li, .wstep .ramka--karty ul > li { margin: 0; padding: 32px; border: 1px solid var(--linia); border-radius: 16px; background: #fff; }
.ramka--karty li::before { display: none; }
.ramka--karty li strong:first-child { display: block; margin-bottom: 10px; font: 600 20px/1.3 var(--font-naglowki); letter-spacing: -0.01em; }

/* ---------- karty stron ---------- */
.karta { display: flex; flex-direction: column; gap: 10px; height: 100%; padding: 28px; border: 1px solid var(--linia); border-radius: 16px; background: #fff; color: var(--tekst); text-decoration: none; transition: border-color .2s; }
.karta:hover { border-color: var(--akcent); color: var(--tekst); }
.karta__etykieta { color: var(--tekst-slaby); font: 500 13px/1.3 var(--font-naglowki); }
.karta__tytul { color: var(--granat); font: 600 20px/1.3 var(--font-naglowki); letter-spacing: -0.01em; }
.karta__opis { font-size: 16px; line-height: 1.55; }
.karta__wiecej { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 12px; color: var(--akcent); font: 500 15px/1.2 var(--font-naglowki); }
/* karta z wezwaniem pod krótką odpowiedzią */
.karta-cta { display: flex; align-items: center; justify-content: space-between; gap: 16px 32px; margin-top: 20px; padding: 20px 24px 20px 32px; border: 1px solid var(--linia); border-radius: 16px; background: #fff; }
.karta-cta p { margin: 0; color: var(--tekst-slaby); font-size: 15px; }
.karta-cta .karta-cta__tytul { color: var(--granat); font: 600 17px/1.35 var(--font-naglowki); }
.karta-cta .przycisk { flex: none; padding: 13px 24px; }

/* ---------- tabele ---------- */
.tabela { overflow-x: auto; border: 1px solid var(--linia); border-radius: 14px; background: #fff; }
.tabela table { width: 100%; border-collapse: collapse; font-size: 16px; }
.tabela th, .tabela td { padding: 16px 20px; border-bottom: 1px solid var(--linia); text-align: left; vertical-align: top; }
.tabela thead th { background: var(--granat); color: #fff; font: 500 15px/1.3 var(--font-naglowki); }
.tabela tbody th { width: 34%; color: var(--granat); font: 500 15px/1.4 var(--font-naglowki); }
.tabela tr:last-child > * { border-bottom: 0; }
.t-right { text-align: right !important; }

/* ---------- FAQ i źródła ---------- */
.faq__pozycja { border-bottom: 1px solid var(--linia); }
.faq__pozycja:first-child { border-top: 1px solid var(--linia); }
.faq summary { position: relative; padding: 22px 48px 22px 0; color: var(--granat); font: 500 18px/1.4 var(--font-naglowki); letter-spacing: -0.01em; list-style: none; cursor: pointer; }
.faq summary::-webkit-details-marker { display: none; }
.faq__ikona { position: absolute; right: 0; top: 50%; width: 32px; height: 32px; margin-top: -16px; border: 1px solid var(--obramowanie-pola); border-radius: 50%; background: #fff; }
.faq__ikona::before, .faq__ikona::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 1.5px; margin: -.75px 0 0 -6px; background: var(--granat); transition: transform .2s; }
.faq__ikona::after { transform: rotate(90deg); }
.faq details[open] .faq__ikona::after { transform: rotate(0); }
.faq__odpowiedz { padding: 0 0 22px; }
.faq__odpowiedz > :last-child { margin-bottom: 0; }
.zrodla { padding: 0 0 clamp(48px, 6vw, 80px); }
.zrodla__ramka { padding: 24px 28px; border: 1px solid var(--linia); border-radius: 14px; background: #fff; font-size: 15px; }
.zrodla:not(.sekcja--szara) .zrodla__ramka { background: var(--tlo-sekcji); }
.zrodla__tytul { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 8px; color: var(--granat); font: 500 15px/1.3 var(--font-naglowki); }
.zrodla__tytul::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--akcent); }
.zrodla ul { margin: 0; padding-left: 18px; }
.zrodla li { margin: 4px 0; }

/* ---------- pas CTA i stopka ---------- */
/* pas CTA przed stopką: jasne tło w odcieniu marki (mięta), ciemny tekst, zielony przycisk z granatowym tekstem */
.pas-cta { position: relative; overflow: hidden; background: var(--akcent-tlo); color: var(--tekst); }
.pas-cta::before { content: ""; position: absolute; top: -60%; right: -6%; width: min(40vw, 520px); aspect-ratio: 1; border-radius: 50%; background: #fff; opacity: .6; pointer-events: none; }
.pas-cta__uklad { position: relative; }
.pas-cta__uklad { display: flex; align-items: center; justify-content: space-between; gap: 24px 48px; padding-top: clamp(48px, 6vw, 72px); padding-bottom: clamp(48px, 6vw, 72px); }
.pas-cta__tytul { margin: 0 0 8px; color: var(--granat); font-weight: 650; font-size: clamp(1.5rem, 1.2rem + 1vw, 2.1rem); }
.pas-cta p { margin: 0; font-size: 17px; }
.stopka { padding: clamp(56px, 6vw, 80px) 0 0; background: var(--granat); color: rgba(255, 255, 255, .7); font-size: 15px; }
.stopka a { color: rgba(255, 255, 255, .85); text-decoration: none; }
.stopka a:hover { color: #fff; text-decoration: underline; }
.stopka__kolumny { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 40px 32px; }
.stopka__naglowek { margin: 0 0 16px; font: 600 13px/1.3 var(--font-naglowki); letter-spacing: .14em; text-transform: uppercase; }
.stopka__naglowek, .stopka__naglowek a { color: #fff; }
/* zieleń tylko jako akcent graficzny: kropka przed nagłówkiem kolumny (brandbook; audyt 1, G-4) */
.stopka__naglowek::before { content: ""; display: inline-block; width: 8px; height: 8px; margin-right: 10px; border-radius: 50%; background: var(--zielen-akcent); vertical-align: 1px; }
.stopka ul { margin: 0; padding: 0; list-style: none; }
.stopka li { margin: 0 0 10px; }
.stopka__dol { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px 40px; align-items: start; margin-top: 56px; padding: 32px 0 40px; border-top: 1px solid rgba(255, 255, 255, .12); }
.stopka__marka { display: flex; align-items: flex-start; gap: 16px 40px; }
.stopka__logo { flex: none; }
.stopka__opis { margin: 0; max-width: 62ch; font-size: 14px; line-height: 1.55; }
.stopka__kontakt { margin: 0; }
.stopka .stopka__linki { grid-column: 1 / -1; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px 22px; padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, .08); font-size: 13px; }
.stopka__linki li { margin: 0; }
.stopka__linki, .stopka__linki a, .stopka__linki .stopka__link { color: rgba(255, 255, 255, .6); }
.stopka__linki a:hover, .stopka__linki .stopka__link:hover { color: #fff; }
.stopka__prawa { margin-left: 8px !important; }

/* ---------- wyszukiwarka ---------- */
.nawigacja__szukaj { display: inline-flex; align-items: center; gap: 8px; color: var(--granat); text-decoration: none; }
.nawigacja__szukaj:hover { color: var(--akcent); }
.nawigacja__szukaj-tekst { position: absolute; left: -9999px; }
@media (max-width: 1199.98px) {
	.nawigacja__szukaj-tekst { position: static; font-size: 17px; }
}
.wyszukiwarka { display: flex; gap: 12px; max-width: 760px; }
.wyszukiwarka input { flex: 1; min-width: 0; padding: 14px 18px; border: 1px solid var(--obramowanie-pola); border-radius: 999px; font: 400 17px/1.3 var(--font-tresc); color: var(--granat); }
.wyszukiwarka input:focus { outline: 2px solid var(--akcent); border-color: var(--akcent); }
/* pole w nagłówku strony /szukaj (jak w PD): pełna szerokość kolumny, białe tło */
.wyszukiwarka--naglowek { max-width: 980px; margin-top: 28px; }
.wyszukiwarka--naglowek input { background: #fff; padding: 16px 22px; }
.wyszukiwarka__czesto { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin: 0; }
.wyszukiwarka__czesto span { color: var(--tekst-slaby); font-size: 15px; margin-right: 4px; }
.wyszukiwarka__czesto a { padding: 6px 14px; border: 1px solid var(--linia); border-radius: 999px; background: #fff; color: var(--granat); font-size: 15px; text-decoration: none; transition: border-color .2s, color .2s; }
.wyszukiwarka__czesto a:hover { border-color: var(--akcent); color: var(--akcent-tekst); }
/* wyniki: karty jak w PD - miniatura | dział, tytuł, fragment | strzałka; cała karta klikalna */
.wyszukiwarka__wyniki { display: grid; gap: 16px; max-width: none; margin: 0; padding: 0 !important; list-style: none; }
.wyszukiwarka__wyniki .wynik { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 32px; gap: 8px 28px; align-items: start; margin: 0 !important; padding: 28px 32px !important; border: 1px solid var(--linia); border-radius: 16px; background: #fff; transition: border-color .2s, box-shadow .2s; }
.wyszukiwarka__wyniki .wynik::before { display: none !important; }
.wyszukiwarka__wyniki .wynik--zdjecie { grid-template-columns: 200px minmax(0, 1fr) 32px; }
.wynik:hover { border-color: var(--akcent); box-shadow: 0 8px 24px rgba(15, 35, 70, .06); }
.wynik:hover .strzalka { background: var(--akcent); border-color: var(--akcent); color: #fff; }
.wynik:focus-within { outline: 2px solid var(--akcent); outline-offset: 2px; }
.wynik__zdjecie { display: block; width: 200px; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 10px; }
.wynik__dzial { margin: 0 0 6px !important; color: var(--akcent-tekst); font: 500 14px/1.3 var(--font-naglowki); }
.wynik__tytul { margin: 0 0 8px !important; color: var(--granat); font: 500 22px/1.3 var(--font-naglowki); letter-spacing: 0; }
.wynik__link { color: inherit; text-decoration: none; }
.wynik__link:focus { outline: none; }
.wynik__link::after { content: ""; position: absolute; inset: 0; border-radius: 16px; }
.wynik__fragment { margin: 0 !important; color: var(--tekst); font-size: 16px; line-height: 1.55; }
.wynik .strzalka { color: var(--granat); }
/* podświetlenie bez poziomego odstępu - nie dzieli wyrazów ("mini koparce"); obwódka cieniem, nie paddingiem */
.wynik mark { background: var(--akcent-tlo); color: var(--granat); border-radius: 2px; padding: 0; box-shadow: 0 0 0 1px var(--akcent-tlo); }
@media (max-width: 767.98px) {
	.wyszukiwarka__wyniki .wynik, .wyszukiwarka__wyniki .wynik--zdjecie { grid-template-columns: minmax(0, 1fr); padding: 18px !important; gap: 12px; }
	/* telefon: miniatura 72 x 72 obok tytułu, fragment do 3 linii - zwarte karty (audyt 3, UX 10) */
	.wyszukiwarka__wyniki .wynik--zdjecie { grid-template-columns: 72px minmax(0, 1fr); gap: 0 14px; align-items: start; }
	.wynik__zdjecie { width: 72px; height: 72px; aspect-ratio: 1; border-radius: 8px; }
	.wynik .strzalka { display: none; }
	.wynik__tytul { font-size: 18px; }
	.wynik__dzial { font-size: 13px; }
	.wynik__fragment { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; font-size: 15px; }
	.wyszukiwarka--naglowek { flex-wrap: wrap; }
	.wyszukiwarka--naglowek input { flex-basis: 100%; }
}

/* ---------- mapa strony ---------- */
.mapa-strony { columns: 3 300px; column-gap: 48px; }
.mapa-strony__sekcja { break-inside: avoid; margin-bottom: 32px; }
.mapa-strony h2 { margin: 0 0 10px; font-size: 1.25rem; }
.mapa-strony h2 a { text-decoration: none; }
.mapa-strony ul { margin: 0; padding: 0 !important; list-style: none; }
.mapa-strony li { margin: 4px 0 !important; padding: 0 !important; font-size: 15px; }
.mapa-strony li::before { display: none !important; }
.mapa-strony__poziom-2 { padding-left: 16px !important; }
.mapa-strony__poziom-3 { padding-left: 32px !important; }

/* ---------- baner cookies ---------- */
.przycisk--obrys { background: #fff; color: var(--granat); box-shadow: inset 0 0 0 1.5px var(--granat); }
.przycisk--obrys:hover, .przycisk--obrys:focus-visible { background: var(--akcent-tlo); color: var(--granat); }
.cookies { position: fixed; left: 50%; bottom: 20px; z-index: 1100; display: flex; align-items: center; gap: 16px 28px; width: min(1080px, calc(100% - 32px)); padding: 18px 24px; transform: translateX(-50%); border: 1px solid var(--linia); border-radius: 16px; background: #fff; box-shadow: 0 20px 50px rgba(11, 37, 69, .18); font-size: 14px; line-height: 1.5; }
.cookies[hidden] { display: none; }
.cookies p { margin: 0; }
.cookies__tytul { color: var(--granat); font: 600 15px/1.3 var(--font-naglowki); margin-bottom: 2px !important; }
.cookies__przyciski { display: flex; flex: none; gap: 10px; }
.stopka__link { padding: 0; border: 0; background: none; color: rgba(255, 255, 255, .85); font: inherit; cursor: pointer; }
.stopka__link:hover { color: #fff; text-decoration: underline; }
@media (max-width: 767.98px) {
	.cookies { flex-direction: column; align-items: stretch; bottom: 12px; }
	.cookies__przyciski > * { flex: 1; }
}

/* ---------- telefon i tablet ---------- */
@media (max-width: 991.98px) {
	.hero__uklad, .naglowek-strony--zdjecie .naglowek-strony__uklad, .sekcja__uklad, .sekcja__naglowek { grid-template-columns: minmax(0, 1fr); }
	.hero::before { top: auto; bottom: -30%; width: 120vw; }
	.sekcja__tytul h2 { max-width: none; }
	.sekcja__tresc { padding-top: 0; }
	.sciezki__lista { grid-template-columns: minmax(0, 1fr); }
	.sciezki__lista li + li { border-left: 0; border-top: 1px solid var(--linia); }
	.sciezki__pozycja, .sciezki__lista li:first-child .sciezki__pozycja { padding: 22px 0; }
	.sekcja .ramka--fakty ul > li + li, .wstep .ramka--fakty ul > li + li { padding-left: 0; border-left: 0; border-top: 1px solid var(--linia); }
	.karta-cta { flex-direction: column; align-items: flex-start; padding: 20px 24px; }
	.pas-cta__uklad { flex-direction: column; align-items: flex-start; }
	.stopka__dol { grid-template-columns: minmax(0, 1fr); }
	.stopka__marka { flex-direction: column; }
	.stopka .stopka__linki { justify-content: flex-start; }
	.stopka__prawa { margin-left: 0 !important; }
}
@media (max-width: 599.98px) {
	.zaufanie, .hero .zaufanie { grid-template-columns: minmax(0, 1fr); }
	.tabela { border-radius: 0; margin: 0 calc(var(--margines) * -1); border-left: 0; border-right: 0; }
	.tabela th, .tabela td { padding: 12px 14px; }
	.ramka { padding: 20px; }
}

/* ---- audyt 1: dostępność, formularze, CTA (zespół A) */
/* tekst tylko dla czytników ekranu */
.dla-czytnikow { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
/* fokus na ciemnym i niebieskim tle - biały obrys */
.stopka :focus-visible, .sekcja--ciemna :focus-visible { outline-color: #fff; }
main:focus { outline: none; }
/* cele dotykowe min. 44 x 44 px */
.nawigacja__jezyk, .nawigacja__szukaj { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; }
/* kwoty w tabelach nie łamią się */
.tabela td.t-right, .tabela th.t-right { white-space: nowrap; }
.tabela:focus-visible { outline-offset: 2px; }
/* karty: link tylko na tytule, cała karta klikalna (rozciągnięty obszar linku) */
.karta { position: relative; margin: 0; }
.karta__tytul { margin: 0; }
.karta__link { color: inherit; text-decoration: none; }
.karta__link::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.karta__link:focus-visible { outline: none; }
.karta:has(.karta__link:focus-visible) { outline: 2px solid var(--akcent); outline-offset: 3px; }
.karta:hover .karta__link { color: var(--granat); }
.stopka__naglowek a { text-decoration: none; }
/* przyklejony przycisk (telefon): pokazuje go serwis.js po zniknięciu głównego CTA; ukryty, gdy otwarty baner cookies */
@media (max-width: 767.98px) {
	.przycisk--przyklejony { display: flex; position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 950; box-shadow: 0 12px 30px rgba(11, 37, 69, .25); }
	.przycisk--przyklejony[hidden], .cookies-otwarte .przycisk--przyklejony { display: none; }
	html.przyklejony-widoczny { scroll-padding-bottom: 88px; }
	.przyklejony-widoczny .stopka { padding-bottom: 72px; }
	/* zdjęcie nagłówka pod tekstem: niski pas zamiast pełnego 4:3 */
	.naglowek-strony__zdjecie img { aspect-ratio: 16 / 9; max-height: 220px; }
}
.podziekowanie p { margin: 0 0 8px; }
/* ograniczony ruch: bez animacji i płynnego przewijania */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto !important; }
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
.wyszukiwarka__liczba { margin: 0 0 16px !important; color: var(--tekst); font: 400 16px/1.4 var(--font-tresc); }
.wyszukiwarka__wyniki .wynik[hidden] { display: none; }
.wyszukiwarka__wiecej { margin-top: 20px; border: 1px solid var(--obramowanie-pola); }
.wyszukiwarka__brak .wyszukiwarka__czesto { margin-top: 20px; }
.wyszukiwarka__dzialy { margin-top: 32px; }
.wyszukiwarka__brak { max-width: none; }

/* ---------- audyt 1, faza 2: rytm, etykiety sekcji, ikony, karty, formularz (zespół E) ---------- */
/* etykieta nad tytułem sekcji ("● Pytania") - z "## Tytuł {etykieta=...}" albo domyślna w szablonie */
.etykieta { display: flex; align-items: center; gap: 10px; margin: 0 0 18px; color: var(--tekst-slaby); font: 500 14px/1.3 var(--font-naglowki); letter-spacing: 0; }
.etykieta::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--akcent); }
.sekcja__naglowek .etykieta { margin-bottom: 14px; }
/* sekcja na granatowym tle ("## Tytuł {tlo=ciemne}") */
.sekcja--ciemna { background: var(--granat); color: rgba(255, 255, 255, .82); }
.sekcja--ciemna h2, .sekcja--ciemna h3, .sekcja--ciemna strong { color: #fff; }
.sekcja--ciemna .etykieta { color: rgba(255, 255, 255, .72); }
.sekcja--ciemna .etykieta::before { background: var(--na-ciemnym); }
.sekcja--ciemna a:not(.przycisk) { color: #fff; text-decoration-color: var(--na-ciemnym); }
.sekcja--ciemna a:not(.przycisk):hover { color: #fff; text-decoration-thickness: 2px; }
.sekcja--ciemna .ramka--kroki li::before { color: rgba(255, 255, 255, .7); font-weight: 300; }
.sekcja.sekcja--ciemna .ramka--kroki li { border-top: 2px solid var(--na-ciemnym); }
.sekcja--ciemna .ramka--kroki li strong { color: #fff; }
.sekcja--ciemna .przycisk { background: #fff; color: var(--granat); }
.sekcja--ciemna .przycisk:hover { background: var(--akcent-tlo); color: var(--granat); }
/* ikona liniowa w kółku (karty "::: karty" z {ikona=...}, kolumna formularza) */
.ikona-karty { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 48px; height: 48px; border-radius: 50%; background: var(--akcent-tlo); color: var(--akcent); }
.ramka--karty li.karta-ikona > .ikona-karty { display: flex; margin-bottom: 22px; }
.ramka--karty li > .ikona-karty + strong { display: block; margin-bottom: 10px; font: 600 20px/1.3 var(--font-naglowki); letter-spacing: -0.01em; }
/* karta z linkiem w tytule ("- **[Tytuł](/adres)** opis") - cała karta klikalna */
.ramka--karty li { position: relative; transition: border-color .2s, transform .2s, box-shadow .2s; }
.ramka--karty li > strong a { color: inherit; text-decoration: none; }
.ramka--karty li > strong a::after { content: ""; position: absolute; inset: 0; border-radius: 16px; }
.ramka--karty li > strong a:focus-visible { outline: none; }
.ramka--karty li:has(> strong a:focus-visible) { outline: 2px solid var(--akcent); outline-offset: 3px; }
.ramka--karty li:has(> strong a):hover { border-color: var(--akcent); transform: translateY(-2px); box-shadow: 0 12px 30px rgba(11, 37, 69, .08); }
/* liczba kart niepodzielna przez 4 -> 3 kolumny */
@media (min-width: 1200px) {
	.karty { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.karty--3, .sekcja .ramka--karty ul:not(:has(> li:nth-child(4n):last-child)) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
/* karty stron: uniesienie i cień, strzałka w kółku zamiast "Zobacz", opis najwyżej 2 linie */
.karta { transition: border-color .2s, transform .2s, box-shadow .2s; }
.karta:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(11, 37, 69, .08); }
@media (prefers-reduced-motion: reduce) {
	.karta:hover { transform: none; }
}
/* opis skraca PHP (fa_opis_karty: pełne zdanie albo wyraz z wielokropkiem); clamp tylko jako zabezpieczenie */
.karta__opis { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; line-clamp: 4; overflow: hidden; }
.karta__wiecej { padding-top: 14px; }
.karta__wiecej .strzalka { color: var(--akcent); }
.karta:hover .strzalka { background: var(--akcent); border-color: var(--akcent); color: #fff; }
.karta--zdjecie { padding: 0 0 24px; overflow: hidden; }
.karta--zdjecie > :not(.karta__zdjecie) { margin-left: 24px; margin-right: 24px; }
.karta__zdjecie { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; margin-bottom: 8px; background: var(--tlo-sekcji); }
.karty--zdjecia .karta__tytul { font-size: 19px; }
.akcje-tresci { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 32px; margin: 28px 0 0; }
/* przypis pod tabelą (np. stawki referencyjne: odesłanie do administratora wskaźników) */
.tabela-przypis { margin: 12px 0 0; color: var(--tekst-slaby); font-size: 15px; }
/* skróty do grup huba pod nagłówkiem strony */
.skroty ul { display: flex; flex-wrap: wrap; gap: 10px; margin: 28px 0 0; padding: 0; list-style: none; }
.skroty a { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 8px 10px 8px 18px; border: 1px solid var(--obramowanie-pola); border-radius: 999px; background: #fff; color: var(--granat); font: 500 15px/1.2 var(--font-naglowki); text-decoration: none; transition: border-color .2s; }
.skroty a:hover { border-color: var(--akcent); color: var(--granat); }
.skroty__liczba { display: inline-flex; align-items: center; justify-content: center; min-width: 28px; height: 28px; padding: 0 8px; border-radius: 999px; background: var(--akcent-tlo); color: var(--granat); font-size: 13px; }
/* mega-menu: link "Wszystkie (N)" pod skróconą listą grupy */
.panel__linki .panel__wszystkie { margin-top: 14px; }
.panel__linki .panel__wszystkie a { display: inline-flex; align-items: center; gap: 8px; color: var(--akcent); font: 500 15px/1.3 var(--font-naglowki); }
.panel__linki .panel__wszystkie a:hover { color: var(--akcent-hover); }
/* menu na telefonie: linki pomocnicze i przycisk na całą szerokość na dole panelu */
.nawigacja__telefon { display: none; }
@media (max-width: 1199.98px) {
	.nawigacja__boczne { margin-top: 24px; padding-top: 24px; } /* bez margin-top: auto - bez luki przy krótkim menu (audyt 3, UX 23) */
	.nawigacja__telefon { display: grid; margin: 0; padding: 0; list-style: none; }
	/* linki pomocnicze są na telefonie w liście .nawigacja__telefon (bez dubli) */
	.nawigacja__pomocniczy { display: none; }
	.nawigacja__telefon a { display: flex; align-items: center; min-height: 44px; color: var(--granat); font: 400 17px/1.3 var(--font-naglowki); text-decoration: none; }
	.nawigacja__telefon a[aria-current] { color: var(--akcent); }
	.nawigacja__boczne .przycisk { order: 10; width: 100%; padding: 16px 28px; font-size: 16px; }
	.nawigacja__jezyk { align-self: flex-start; width: 44px; height: 44px; border: 1px solid var(--obramowanie-pola); border-radius: 50%; color: var(--granat); }
	.nawigacja__szukaj { justify-content: flex-start; }
}
/* przycisk "do góry" (długie strony, po przewinięciu 2 ekranów) */
.do-gory { position: fixed; right: 24px; bottom: 24px; z-index: 940; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 1px solid var(--obramowanie-pola); border-radius: 50%; background: #fff; color: var(--granat); box-shadow: 0 8px 24px rgba(11, 37, 69, .14); cursor: pointer; transition: background-color .2s, color .2s; }
.do-gory svg { transform: rotate(-90deg); }
.do-gory:hover { background: var(--akcent); border-color: var(--akcent); color: #fff; }
.do-gory[hidden], .cookies-otwarte .do-gory, .menu-otwarte .do-gory { display: none; }
@media (max-width: 991.98px) { html:has(.kalkulator, .formularz) .do-gory { display: none; } }
/* otwarte menu telefonu: baner cookies nie zasłania menu (wraca po zamknięciu menu) */
.menu-otwarte .cookies { display: none; }
@media (max-width: 767.98px) {
	.do-gory { right: 16px; }
	.przyklejony-widoczny .do-gory { bottom: 84px; }
}
/* FAQ z 1-2 pytaniami: jedna kolumna */
.faq--krotki .sekcja__uklad { grid-template-columns: minmax(0, 1fr); }
.faq--krotki .sekcja__tresc { max-width: none; }
.faq--krotki .sekcja__tytul h2 { max-width: none; }
/* kroki: równe kolumny także przy krótkich opisach */
@media (min-width: 768px) {
	.sekcja .ramka--kroki li, .wstep .ramka--kroki li { min-height: 180px; }
}
@media (max-width: 599.98px) {
	/* okruszki: tylko "← poziom nadrzędny" */
	.okruszki li { display: none; }
	.okruszki li:nth-last-child(2) { display: block; }
	.okruszki li:nth-last-child(2)::before { content: "\2190"; content: "\2190" / ""; margin-right: 8px; color: var(--granat); }
}
.sekcja__tresc:empty { display: none; }
/* link "Wszystkie ..." pod siatką kart */
.sekcja__szeroka:has(.karty, .ramka--karty) + .sekcja__tekst > p:only-child > a:only-child { color: var(--granat); font: 500 16px/1.2 var(--font-naglowki); text-decoration: underline; text-decoration-color: var(--akcent); text-decoration-thickness: 2px; text-underline-offset: 6px; }
.sekcja__szeroka:has(.karty, .ramka--karty) + .sekcja__tekst > p:only-child > a:only-child::after { content: " \2192"; content: " \2192" / ""; }
.sekcja--ciemna .sekcja__dalej { margin-top: 48px; }
@media (max-width: 599.98px) {
	/* karty ze zdjęciem na telefonie: 2 kolumny, sam tytuł */
	.karty--zdjecia { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.karty--zdjecia .karta { padding-bottom: 16px; gap: 6px; }
	.karty--zdjecia .karta > :not(.karta__zdjecie) { margin-left: 14px; margin-right: 14px; }
	.karty--zdjecia .karta__tytul { font-size: 16px; }
	.karty--zdjecia .karta__opis, .karty--zdjecia .karta__wiecej { display: none; }
}
@media (min-width: 1200px) {
	.panel__grupy--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 24px; }
}
@media (max-width: 1199.98px) {
	.panel__grupy--5 { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 24px; }
}
@media (min-width: 1200px) {
	.panel__wnetrze:has(.panel__grupy--5) { grid-template-columns: minmax(0, 1fr) 260px; gap: 40px; }
	.panel__grupy--5 .panel__linki a { font-size: 15px; }
}
@media (max-width: 599.98px) {
	/* strona ze zdjęciem w nagłówku: "ptaszki" zwinięte do jednej linii, żeby nie spychały krótkiej odpowiedzi */
	.naglowek-strony--zdjecie .zaufanie { margin-top: 18px; font-size: 13px; }
	.naglowek-strony--zdjecie .zaufanie li:not(:first-child) { display: none; }
	.naglowek-strony--zdjecie .naglowek-strony__uklad { gap: 24px; padding-bottom: 28px; }
	.naglowek-strony--zdjecie .naglowek-strony__zdjecie img { max-height: 160px; }
	.naglowek-strony + .wstep { padding-top: 28px; }
}
.karta--ikona > .ikona-karty { margin-bottom: 8px; }
@page { size: A4; margin: 14mm 14mm 16mm; }
@media print {
	html, body { background: #fff; font-size: 11pt; }
	.naglowek, .stopka, .cookies, .pas-cta, .do-gory, .spis-pasek, .pomin, .przycisk--przyklejony, .okruszki, .udostepnij, [data-komunikat-strony] { display: none !important; }
	thead { display: table-header-group; }
	tr, li { break-inside: avoid; page-break-inside: avoid; }
	h2, h3 { break-after: avoid; page-break-after: avoid; }
	* { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* ---------- mega-menu: karty narzędzi (Kalkulatory) i kafle tematów (Baza wiedzy) ---------- */
.panel__narzedzia { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 32px; }
.panel__karty { margin: 0; padding: 0; list-style: none; }
.panel__karty { display: grid; gap: 8px; }
.panel__karta { display: flex; align-items: flex-start; gap: 14px; padding: 12px 14px; border: 1px solid var(--linia); border-radius: 12px; background: #fff; color: var(--granat); text-decoration: none; transition: border-color .15s, box-shadow .15s, transform .15s; }
.panel__karta:hover, .panel__karta[aria-current] { border-color: var(--akcent); box-shadow: 0 10px 24px rgba(11, 37, 69, .08); transform: translateY(-1px); color: var(--granat); }
.panel__karta-ikona { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: var(--akcent-tlo); color: var(--akcent); }
.panel__karta-tekst { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.panel__karta-tytul { font: 600 15px/1.3 var(--font-naglowki); }
.panel__karta-opis { color: var(--tekst-slaby); font: 400 14px/1.4 var(--font-tresc); }
.panel__karty--tematy { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px; }
.panel__karty li { display: flex; }
.panel__karty .panel__karta { flex: 1; }
@media (max-width: 1199.98px) {
	.panel__narzedzia { grid-template-columns: minmax(0, 1fr); gap: 20px; }
	.panel__karty--tematy { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
	.panel__karta { transition: none; }
	.panel__karta:hover { transform: none; }
}
.panel__naglowek a { color: inherit; text-decoration: none; }
.panel__naglowek a:hover, .panel__naglowek a[aria-current] { color: var(--granat); }
.panel__grupy--tematy { row-gap: 28px; }
/* panel Wiedza: skróty pod tytułem (jak w PD) */
.panel__skroty { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: -12px 0 28px; padding: 0; list-style: none; }
.panel__skroty a { color: var(--granat); font: 500 15px/1.3 var(--font-naglowki); text-decoration: underline; text-decoration-color: var(--akcent); text-underline-offset: 5px; }
.panel__skroty a:hover { color: var(--akcent); }
.panel__grupy--3 { row-gap: 28px; }
/* nagłówek 1200-1439 px: menu, lupa, Dla pośredników, EN i CTA w jednej linii */
@media (min-width: 1200px) and (max-width: 1439.98px) {
	.nawigacja__lista { gap: 0 16px; }
	.nawigacja__boczne { gap: 12px; padding-left: 16px; }
	.nawigacja__przelacznik, .nawigacja__link { font-size: 15px; }
	.nawigacja__pomocniczy { font-size: 14px; }
	.naglowek__pasek { gap: 24px; }
}
@media (min-width: 1200px) and (max-width: 1279.98px) {
	.nawigacja__lista { gap: 0 13px; }
	.nawigacja__boczne { gap: 10px; padding-left: 12px; }
	.naglowek__pasek { gap: 18px; }
	.logo__obraz { height: 40px; }
}

/* ---------- spis treści długich stron (czesci/tresc.php, fa_spis) ---------- */
/* zwinięty blok pod wstępem; na komputerze rozwija go serwis.js; numery sekcji w kolorze morskim (--akcent-tekst) */
.spis { margin-top: 20px; border: 1px solid var(--linia); border-radius: 16px; background: #fff; }
.spis summary { position: relative; display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 16px 64px 16px 24px; color: var(--granat); font: 600 17px/1.35 var(--font-naglowki); list-style: none; cursor: pointer; }
.spis summary::-webkit-details-marker { display: none; }
.spis summary:focus-visible { outline: 2px solid var(--akcent); outline-offset: 2px; border-radius: 16px; }
.spis__tytul { display: inline-flex; align-items: center; gap: 10px; }
.spis__tytul::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--akcent); }
.spis__liczba { display: inline-flex; align-items: center; justify-content: center; min-width: 28px; height: 28px; padding: 0 8px; border-radius: 999px; background: var(--akcent-tlo); color: var(--granat); font-size: 13px; font-weight: 500; }
.spis__ikona { position: absolute; right: 20px; top: 50%; width: 32px; height: 32px; margin-top: -16px; border: 1px solid var(--obramowanie-pola); border-radius: 50%; background: #fff; }
.spis__ikona::before { content: ""; position: absolute; left: 50%; top: 50%; width: 8px; height: 8px; margin: -6px 0 0 -4px; border: solid var(--granat); border-width: 0 1.5px 1.5px 0; transform: rotate(45deg); transition: transform .2s; }
.spis details[open] .spis__ikona::before { margin-top: -2px; transform: rotate(-135deg); }
.spis__lista { margin: 0; padding: 0 24px 16px; list-style: none; counter-reset: spis; columns: 2 300px; column-gap: 40px; }
.spis__lista li { position: relative; margin: 0; padding: 10px 0 10px 40px; border-top: 1px solid var(--linia); break-inside: avoid; counter-increment: spis; }
.spis__lista li::before { content: counter(spis, decimal-leading-zero); position: absolute; left: 0; top: 11px; color: var(--akcent-tekst); font: 600 14px/1.5 var(--font-naglowki); }
.spis__lista a { color: var(--granat); font-size: 16px; line-height: 1.45; text-decoration: none; }
.spis__lista a:hover, .spis__lista a:focus-visible { color: var(--akcent); text-decoration: underline; }
/* bieżąca sekcja (serwis.js: aria-current="location") - kolor, grubość i znacznik, nie sam kolor (WCAG 1.4.1) */
.spis__lista a[aria-current] { color: var(--granat); font-weight: 650; text-decoration: underline; text-decoration-color: var(--akcent); text-decoration-thickness: 2px; }
.spis__lista li:has(> a[aria-current])::before { color: var(--akcent); }
/* przyklejony pasek spisu (serwis.js): pod nagłówkiem po minięciu spisu, rozwija tę samą listę */
.spis-pasek { position: fixed; top: var(--wys-naglowka); left: 0; right: 0; z-index: 990; background: rgba(255, 255, 255, .97); border-bottom: 1px solid var(--linia); box-shadow: 0 8px 24px rgba(11, 37, 69, .06); }
.spis-pasek[hidden], .menu-otwarte .spis-pasek, .panel-otwarty .spis-pasek { display: none; }
.spis-pasek__przycisk { position: relative; display: flex; align-items: center; gap: 12px; width: 100%; min-height: 48px; padding: 8px 52px 8px 0; border: 0; background: none; color: var(--granat); font: 500 15px/1.3 var(--font-naglowki); text-align: left; cursor: pointer; }
.spis-pasek__przycisk:focus-visible { outline-offset: -2px; }
.spis-pasek__przycisk .spis__ikona { right: 0; }
.spis-pasek__etykieta { display: inline-flex; align-items: center; gap: 8px; flex: none; color: var(--tekst-slaby); font-size: 14px; }
.spis-pasek__etykieta::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--akcent); }
.spis-pasek__biezaca { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-weight: 600; }
.spis-pasek__biezaca:not(:empty)::before { content: "·"; margin-right: 12px; color: var(--tekst-slaby); font-weight: 400; }
.spis-pasek--otwarty .spis__ikona::before { margin-top: -2px; transform: rotate(-135deg); }
.spis-pasek__panel { max-height: min(60vh, 520px); overflow-y: auto; overscroll-behavior: contain; padding-bottom: 8px; }
.spis-pasek__panel .spis__lista { columns: 1; padding: 0; }
html.spis-pasek-widoczny { scroll-padding-top: calc(var(--wys-naglowka) + 64px); }
/* kotwice sekcji: nad H2 stoi etykieta z kropką - cel przewija się razem z nią (audyt 3, UX 16) */
.sekcja__tytul h2[id] { scroll-margin-top: 40px; }
.sekcja .karta-cta { margin-top: clamp(32px, 4vw, 48px); }
@media (max-width: 599.98px) {
	.spis summary { padding: 14px 60px 14px 18px; }
	.spis__ikona { right: 14px; }
	.spis__lista { padding: 0 18px 12px; }
}
@media (prefers-reduced-motion: reduce) { .spis__ikona::before { transition: none; } }

/* ---------- strona główna: karta z narzędziem (pole hero_kalkulator) i skróty z karta_linki pod przyciskami ---------- */
.hero__narzedzie .hero__karta-przypis { padding: 0 8px; }
/* telefon i tablet: karta kalkulatora zaraz pod przyciskami, przed ptaszkami i skrótami (audyt 3, UX 4) */
@media (max-width: 991.98px) {
	.hero--narzedzie .hero__uklad { gap: 0; }
	.hero--narzedzie .hero__tekst { display: contents; }
	.hero--narzedzie .hero__narzedzie { order: 1; margin-top: 32px; }
	.hero--narzedzie .zaufanie, .hero--narzedzie .hero__skroty { order: 2; }
	.hero--narzedzie .zaufanie { margin-top: 28px; }
}
.hero__skroty { margin-top: 32px; }
.hero__skroty-tytul { margin: 0; color: var(--tekst-slaby); font: 500 14px/1.3 var(--font-naglowki); }
.hero__skroty ul { margin-top: 12px; }

/* ---------- audyt 1: poprawki wyglądu (zespół C) ---------- */
/* baner cookies otwarty: element z fokusem nie chowa się pod banerem (WCAG 2.4.11; audyt 1, K-W10) */
html.cookies-otwarte { scroll-padding-bottom: 140px; }
@media (max-width: 767.98px) { html.cookies-otwarte { scroll-padding-bottom: 240px; } }
/* kadrowanie zdjęć kart i nagłówka (pole zdjecie_pozycja: gora, dol, lewo, prawo; audyt 1, G-19) */
.zdjecie--gora { object-position: 50% 15%; }
.zdjecie--dol { object-position: 50% 85%; }
.zdjecie--lewo { object-position: 15% 50%; }
.zdjecie--prawo { object-position: 85% 50%; }
@media (max-width: 991.98px) {
	/* dekoracyjne koło hero: na wąskim ekranie bez półokręgu między kartą a ścieżkami (G-34) */
	.hero::before { display: none; }
}
@media (max-width: 599.98px) {
	/* kroki, fakty i karty bez wcięcia ramki - trzymają lewą krawędź tekstu (G-2) */
	.ramka--kroki, .ramka--fakty, .ramka--karty { padding: 0; }
	/* kroki zwarte: numer obok tytułu, nie nad nim (G-23) */
	.sekcja .ramka--kroki ol, .wstep .ramka--kroki ol { gap: 20px; }
	.sekcja .ramka--kroki ol > li, .wstep .ramka--kroki ol > li { position: relative; padding: 18px 0 0 52px; }
	.ramka--kroki li::before { position: absolute; left: 0; top: 18px; margin: 0; font-size: 30px; }
	/* stopka: grupy linków w dwóch kolumnach, bez "Polecane na start" (G-15) */
	.stopka__kolumny { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 20px; }
	.stopka__polecane { display: none; }
	.stopka__naglowek { letter-spacing: .08em; }
	/* "ptaszki" pod przyciskiem czytelne także na stronach ze zdjęciem (G-33) */
	.naglowek-strony--zdjecie .zaufanie { font-size: 15px; }
}
