/* PROTOKÓŁ · DESIGN.md §2–3. */
:root {
  color-scheme: light;
  --papier: #F6F3EB;
  --karta: #FFFEFA;
  --atrament: #14283F;
  --wtorny: #53606C;
  --pieczec: #245942;
  --pieczec-tlo: #E8EEE7;
  --zastrzezenie: #843C31;
  --zastrzezenie-tlo: #F4EAE3;
  --norma-tlo: #E9EEF1;
  --linia: #616960;
  --siatka: #DDDCD3;
  --tytul: 'Source Serif 4', Georgia, serif;
  --tekst: 'IBM Plex Sans', Arial, sans-serif;
  --mono: 'IBM Plex Mono', 'IBM Plex Sans', monospace;
  --odstep-1: 4px;
  --odstep-2: 8px;
  --odstep-3: 12px;
  --odstep-4: 16px;
  --odstep-6: 24px;
  --odstep-8: 32px;
  --odstep-12: 48px;
  --odstep-16: 64px;
  --odstep-24: 96px;
  --margines: 20px;
  --sekcja: 72px;
  --podpis: clamp(.8125rem, .95vw, .875rem);
  --etykieta: clamp(.6875rem, .85vw, .75rem);
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-padding-top: 112px; }
body {
  margin: 0;
  color: var(--atrament);
  background: var(--papier);
  font: 400 clamp(1rem, 1.15vw, 1.125rem)/1.65 var(--tekst);
  font-synthesis: none;
  text-align: left;
  hyphens: auto;
  overflow-wrap: break-word;
}
img, svg { display: block; max-width: 100%; height: auto; }
picture { display: block; }
figure, blockquote, dl, dd, p, ul, ol, h1, h2, h3, h4 { margin: 0; }
ul, ol { padding-left: 1.5em; }
button, input, select { font: inherit; }
button { cursor: pointer; }
[hidden] { display: none !important; }
a {
  color: var(--pieczec);
  text-decoration-thickness: 1px;
  text-underline-offset: .2em;
  transition: color 120ms, background-color 120ms, text-decoration-color 120ms;
}
a:hover { text-decoration-thickness: 2px; }
strong, b { font-weight: 600; }
em, i, cite { font-style: normal; }
h1, h2, h3, h4 { font-family: var(--tytul); font-weight: 600; text-wrap: pretty; }
h2 { font-size: clamp(1.85rem, 2.5vw, 2.5rem); line-height: 1.18; letter-spacing: -.025em; }
h3 { font-size: clamp(1.4rem, 1.7vw, 1.75rem); line-height: 1.25; letter-spacing: -.015em; }
h4 { font-size: clamp(1.1rem, 1.3vw, 1.25rem); line-height: 1.35; }
:focus-visible { outline: 3px solid var(--atrament); outline-offset: 4px; }
::selection { background: var(--pieczec); color: var(--karta); }
.skip {
  position: absolute;
  z-index: 100;
  top: 12px;
  left: var(--margines);
  padding: 12px 20px;
  color: var(--atrament);
  background: var(--pieczec-tlo);
  font-weight: 600;
  transform: translateY(-200%);
}
.skip:focus { transform: none; }

/* Układ i siatki · §4. Żadna ścieżka nie ma domyślnego minimum 1fr. */
.hero__wrap, .filary, .liczby, .kroki-sekcja, .branze, .wstep,
.przewodnik, .faq-skrot, .zrodla--home, .art, .powiazane, .pusto, .stopka__wrap {
  width: min(calc(100% - 2 * var(--margines)), 1200px);
  margin-inline: auto;
}
.naglowek__wrap { width: min(calc(100% - 2 * var(--margines)), 1280px); margin-inline: auto; }
.hero__wrap, .art__uklad, .filary__lista, .liczby__lista, .kroki__lista,
.branze__lista, .powiazane__lista, .stopka__nav, .pusto__mapa ul {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}
.hero__tekst, .prose, .art__uklad > *, .faq__odp, .haslo, .przewodnik__tresc { min-width: 0; }
.hero__wrap, .art__uklad { gap: var(--odstep-12); }
.filary__lista, .kroki__lista, .branze__lista, .powiazane__lista { gap: var(--odstep-8); }
.filary, .liczby, .kroki-sekcja, .branze, .przewodnik, .faq-skrot, .powiazane {
  padding-block: var(--sekcja);
}
.filary__lista, .liczby__lista, .kroki__lista, .branze__lista, .powiazane__lista,
.przewodnik__lista, .menu__lista, .stopka ul, .hero__noty, .spis ol,
.okruszki ol, .faq__grupy ul, .slownik__indeks ul, .pusto__mapa ul { padding: 0; list-style: none; }

/* Nagłówek, menu i stopka · §5. */
.naglowek { position: sticky; top: 0; z-index: 20; border-bottom: 1px solid var(--linia); background: var(--papier); }
.naglowek--przewiniety { background: var(--karta); }
.naglowek__wrap { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 80px; }
.logo { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; color: var(--atrament); text-decoration: none; }
.logo__znak { flex: 0 0 32px; color: var(--pieczec); }
.logo__tekst { font-size: 1rem; line-height: 1.18; font-weight: 600; letter-spacing: -.025em; hyphens: none; }
.logo__akcent { font-weight: 400; }
.menu__lista { display: flex; align-items: center; gap: 6px; }
.menu__lista a { display: flex; align-items: center; min-height: 44px; padding: 10px 9px; color: var(--atrament); font-size: .875rem; font-weight: 500; text-decoration: none; }
.menu__lista a:hover { background: var(--pieczec-tlo); }
.menu__lista a[aria-current="page"] { text-decoration: underline; text-decoration-color: var(--pieczec); text-decoration-thickness: 2px; text-underline-offset: 8px; }
.menu__toggle { display: none; align-items: center; gap: 10px; min-width: 44px; min-height: 44px; padding: 8px 12px; border: 1px solid var(--linia); color: var(--atrament); background: var(--karta); font-size: .875rem; }
.menu__toggle-kreski { display: grid; gap: 4px; width: 16px; }
.menu__toggle-kreski span { display: block; height: 1px; background: currentColor; }
.stopka { margin-top: var(--odstep-12); padding-block: 64px 32px; background: var(--atrament); color: var(--papier); }
.stopka a { color: var(--karta); }
.stopka :focus-visible { outline-color: var(--karta); }
.stopka .logo__znak { color: var(--karta); }
.stopka__marka { display: flex; align-items: start; justify-content: space-between; gap: 32px; padding-bottom: 40px; border-bottom: 1px solid var(--karta); }
.stopka__tagline { max-width: 44ch; font-size: 1rem; }
.stopka__nav { gap: 32px; padding-block: 40px; }
.stopka__grupa-tytul { margin-bottom: 12px; font-family: var(--mono); font-size: var(--etykieta); text-transform: uppercase; letter-spacing: .065em; }
.stopka__grupa a { display: block; min-height: 44px; padding-block: 10px; font-size: .9375rem; line-height: 1.5; text-decoration: none; }
.stopka__grupa a:hover, .stopka__grupa a[aria-current] { text-decoration: underline; }
.stopka__dol { padding-top: 32px; border-top: 1px solid var(--karta); }
.stopka__zastrzezenie, .stopka__wydawca { max-width: 105ch; font-size: var(--podpis); line-height: 1.7; }
.stopka__wydawca { margin-top: 16px; }
.stopka__copy { margin-top: 32px; font-family: var(--mono); font-size: var(--etykieta); font-variant-numeric: tabular-nums lining-nums; }

/* Artykuł, miara tekstu, metryka i numery rozdziałów · §3–5. */
.art__naglowek { padding-block: 32px 48px; border-bottom: 1px solid var(--linia); }
.okruszki { margin-bottom: 32px; color: var(--wtorny); font: 400 var(--etykieta)/1.6 var(--mono); text-transform: uppercase; letter-spacing: .065em; }
.okruszki ol { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 12px; }
.okruszki li + li::before { content: '/'; margin-right: 12px; }
.okruszki a { display: inline-flex; align-items: center; min-height: 44px; color: inherit; }
.kicker, .przewodnik__kicker {
  color: var(--wtorny);
  font: 400 var(--etykieta)/1.6 var(--mono);
  letter-spacing: .065em;
  text-transform: uppercase;
}
.kicker { margin-bottom: 16px; }
.art__tytul { max-width: 24ch; font-size: clamp(2.5rem, 4.4vw, 4rem); line-height: 1.12; letter-spacing: -.035em; }
.art__lead, .hero__lead { max-width: 58ch; font-size: clamp(1.125rem, 1.5vw, 1.375rem); line-height: 1.55; text-wrap: pretty; }
.art__lead { margin-top: 24px; }
.art__meta { display: flex; flex-wrap: wrap; gap: 12px 24px; margin-top: 32px; padding-block: 16px; border-top: 1px solid var(--linia); color: var(--wtorny); font: 400 var(--etykieta)/1.6 var(--mono); font-variant-numeric: tabular-nums lining-nums; }
.art__meta span + span { padding-left: 24px; border-left: 1px solid var(--linia); }
.art__ilustracja, .art__diagram { min-width: 0; max-width: 100%; margin-block: 40px; }
.art__ilustracja { max-width: 1200px; }
.rysunek__przewijanie { width: 100%; min-width: 0; overflow-x: auto; overscroll-behavior-x: contain; border: 1px solid var(--linia); background: var(--karta); }
.rysunek__przewijanie img { width: 100%; min-width: 75rem; max-width: none; height: auto; }
.art__ilustracja figcaption, .art__diagram figcaption { max-width: 85ch; margin-top: 12px; color: var(--wtorny); font-size: var(--podpis); line-height: 1.55; }
.rysunek__pomoc { margin-bottom: 12px; color: var(--wtorny); font-size: var(--podpis); line-height: 1.55; }
.art__uklad { align-items: start; margin-top: 48px; }
.spis { border-top: 2px solid var(--atrament); padding-top: 16px; }
.spis__tytul { margin-bottom: 12px; font: 600 var(--etykieta)/1.6 var(--mono); text-transform: uppercase; letter-spacing: .065em; }
.spis a { display: grid; grid-template-columns: 24px minmax(0, 1fr); align-items: baseline; gap: 8px; min-height: 44px; margin-left: -12px; padding: 10px 8px 10px 10px; border-left: 2px solid transparent; color: var(--wtorny); text-decoration: none; font-size: .875rem; line-height: 1.5; }
.spis__nr { font: 400 .6875rem/1.6 var(--mono); font-variant-numeric: tabular-nums lining-nums; }
.spis a:hover, .spis a[aria-current="true"] { color: var(--pieczec); border-left-color: var(--pieczec); background: var(--pieczec-tlo); }
.prose { width: 100%; max-width: 72ch; margin-inline: auto; line-height: 1.75; }
.prose > p, .prose > ul, .prose > ol { margin-block: 20px; }
.prose > :first-child { margin-top: 0; }
.prose > h2 { position: relative; margin-block: 52px 24px; }
.prose > h3 { margin-block: 36px 20px; }
.prose > h4 { margin-block: 28px 16px; }
.num { display: block; margin-bottom: 8px; color: var(--wtorny); font: 400 var(--etykieta)/1.6 var(--mono); letter-spacing: .065em; font-variant-numeric: tabular-nums lining-nums; }
.prose li + li { margin-top: 8px; }
.prose li::marker { color: var(--pieczec); }
.prose blockquote { padding-left: 24px; border-left: 3px solid var(--linia); }
.prose code, .prose pre, .prose kbd { font-family: var(--mono); font-size: .9em; }
.prose pre { max-width: 100%; overflow: auto; padding: 20px; background: var(--karta); }
.prose hr { margin-block: 40px; border: 0; border-top: 1px solid var(--linia); }
.zrodla { margin-top: 52px; padding-top: 24px; border-top: 1px solid var(--linia); color: var(--wtorny); }
.zrodla__h, .prose .zrodla__h { margin: 0 0 16px; font: 600 var(--etykieta)/1.6 var(--mono); text-transform: uppercase; letter-spacing: .065em; }
.zrodla__lista { padding-left: 1.4em; font-size: var(--podpis); line-height: 1.65; overflow-wrap: anywhere; }
.zrodla__lista li + li { margin-top: 12px; }
.art__faq { max-width: 850px; margin: 72px auto 0; }

/* Rdzeń: sylwetki informacji · §6. Kolor jest uzupełnieniem formy. */
.skrocie, .podstawa, .norma, .uwaga, .wada, .liczba, .kroki, .wzor { position: relative; margin-block: 32px; }
.skrocie > :last-child, .podstawa > :last-child, .norma > :last-child,
.uwaga > :last-child, .wada > :last-child, .liczba figcaption > :last-child, .kroki > :last-child { margin-bottom: 0; }
.skrocie__label, .podstawa__label, .norma__label, .uwaga__label, .wada__label, .kroki__label {
  margin-bottom: 16px;
  font: 600 var(--etykieta)/1.6 var(--mono);
  letter-spacing: .065em;
  text-transform: uppercase;
}
.skrocie { padding: 28px 32px; background: var(--pieczec-tlo); }
.skrocie__label, .kroki__label { color: var(--pieczec); }
.skrocie ul { list-style: none; padding: 0; }
.skrocie li { position: relative; padding-left: 24px; }
.skrocie li::before { position: absolute; content: ''; left: 0; top: .85em; width: 10px; border-top: 2px solid var(--pieczec); }
.skrocie li + li { margin-top: 12px; }
.podstawa { padding: 28px 32px 28px 64px; border-left: 6px solid var(--atrament); background: var(--karta); }
.podstawa::before { content: '§'; position: absolute; top: 24px; left: 20px; font: 600 2rem/1 var(--tytul); }
.podstawa__akt, .norma__akt { margin-bottom: 20px; font: 400 .8125rem/1.65 var(--mono); font-variant-numeric: tabular-nums lining-nums; overflow-wrap: anywhere; }
.podstawa > p:not([class]) { margin-block: 20px; font: 600 clamp(1.125rem, 1.6vw, 1.5rem)/1.55 var(--tytul); }
.podstawa > p:not([class]) + p:last-child { padding-top: 16px; border-top: 1px solid var(--linia); font: 400 var(--podpis)/1.65 var(--tekst); }
.norma { padding: 28px 32px; border: 1px dashed var(--linia); background: var(--norma-tlo); color: var(--wtorny); clip-path: polygon(0 0, calc(100% - 24px) 0, 100% 24px, 100% 100%, 0 100%); }
.norma::after { content: ''; position: absolute; top: -1px; right: -1px; width: 25px; height: 25px; border-left: 1px dashed var(--linia); border-bottom: 1px dashed var(--linia); }
.norma__label { color: var(--atrament); }
.norma p + p:not([class]) { margin-top: 16px; }
.norma:focus-within { clip-path: none; }
.uwaga { padding: 20px 0 20px 24px; border-left: 2px dotted var(--linia); color: var(--wtorny); }
.uwaga__label { margin-bottom: 8px; }
.uwaga p + p { margin-top: 12px; }
.wada { padding: 28px 32px; border: 2px solid var(--zastrzezenie); border-top: 7px double var(--zastrzezenie); background: var(--zastrzezenie-tlo); font-size: 1em; }
.wada__label { display: flex; align-items: center; gap: 12px; color: var(--zastrzezenie); }
.wada__label::before { content: '!'; display: inline-grid; place-items: center; flex: 0 0 28px; height: 28px; border: 2px solid currentColor; font-size: 1.125rem; }
.wada > p:not([class]) { margin-block: 16px; }
.liczba { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; padding: 28px 32px; border-block: 2px solid var(--atrament); background: var(--karta); font-variant-numeric: tabular-nums lining-nums; }
.liczba__v { font: 600 clamp(2rem, 3.4vw, 3.5rem)/1.15 var(--mono); letter-spacing: -.04em; }
.liczba figcaption { min-width: 0; line-height: 1.65; }
.liczba figcaption p + p { margin-top: 12px; }
.kroki { padding: 28px 32px; background: var(--pieczec-tlo); }
.kroki ol { padding: 0; list-style: none; counter-reset: krok; }
.kroki li { position: relative; min-height: 44px; padding: 4px 0 4px 60px; counter-increment: krok; }
.kroki li + li { margin-top: 20px; }
.kroki li::before { content: counter(krok, decimal-leading-zero); position: absolute; top: 0; left: 0; display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid var(--pieczec); color: var(--pieczec); font: 400 .75rem/1 var(--mono); }
.wzor { padding-block: 28px; border-block: 2px solid var(--atrament); }
.wzor__t { font: 600 clamp(1.25rem, 2.2vw, 2rem)/1.5 var(--mono); text-align: center; overflow-wrap: anywhere; font-variant-numeric: tabular-nums lining-nums; }
.wzor__legenda { margin-top: 20px; width: 100%; font-size: 1em; }
.wzor__legenda p + p { margin-top: 12px; }

/* Tabele · §4, §8. Scroll należy do regionu, nigdy do dokumentu. */
.tabela { width: 100%; max-width: none; margin-block: 28px; overflow-x: auto; overscroll-behavior-x: contain; border: 1px solid var(--linia); background: var(--karta); }
.tabela table { width: 100%; min-width: 48rem; table-layout: fixed; border-collapse: separate; border-spacing: 0; font-size: .9375rem; line-height: 1.55; font-variant-numeric: tabular-nums lining-nums; }
.tabela caption { padding: 16px 20px; color: var(--wtorny); text-align: left; font: 400 var(--etykieta)/1.6 var(--mono); letter-spacing: .025em; }
.tabela th, .tabela td { padding: 16px; text-align: left; vertical-align: top; overflow-wrap: anywhere; border-bottom: 1px solid var(--linia); }
.tabela th { font-weight: 600; }
.tabela thead th { color: var(--karta); background: var(--atrament); }
.tabela th:first-child { width: 22%; }
.tabela tbody th { background: var(--papier); }
.tabela tbody td { background: var(--karta); }
.tabela tbody tr:last-child > * { border-bottom: 0; }
.tabela a { text-underline-offset: .14em; }
.tabela:has(tr > :nth-child(5)) table { min-width: 58rem; }
.prose p[id^="tabela-"][id$="pomoc"] { display: none; margin: 28px 0 -12px; font-size: var(--podpis); color: var(--wtorny); }
.prose p[id^="tabela-"]:has(+ .tabela--przewijana) { display: block; }

/* Strona główna · §5. */
.hero { padding-block: 72px; border-bottom: 1px solid var(--linia); }
.hero__wrap { align-items: center; }
.hero__tytul { max-width: 18ch; font-size: clamp(3rem, 4.8vw, 4.5rem); line-height: 1.07; letter-spacing: -.045em; hyphens: manual; }
.hero__tytul em { color: var(--pieczec); }
.hero__lead { margin-top: 28px; }
.hero__cta { display: flex; flex-wrap: wrap; align-items: stretch; gap: 12px; margin-top: 32px; }
.przycisk { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 48px; padding: 12px 20px; border: 1px solid var(--atrament); background: var(--atrament); color: var(--karta); text-decoration: none; font-size: .9375rem; font-weight: 500; line-height: 1.5; hyphens: manual; }
.przycisk:hover { background: var(--pieczec); border-color: var(--pieczec); text-decoration: underline; }
.przycisk--drugi { background: transparent; border-color: var(--linia); color: var(--atrament); }
.przycisk--drugi:hover { background: var(--pieczec-tlo); color: var(--pieczec); }
.hero__noty { display: flex; flex-wrap: wrap; gap: 12px 20px; max-width: 80ch; margin-top: 28px; color: var(--wtorny); font: 400 var(--etykieta)/1.6 var(--mono); font-variant-numeric: tabular-nums lining-nums; }
.hero__noty li { padding-left: 12px; border-left: 1px solid var(--linia); }
.hero__grafika { margin: 0; }
.hero__grafika img { width: 100%; }
.sekcja__glowka { display: flex; justify-content: space-between; align-items: end; flex-wrap: wrap; gap: 20px 48px; margin-bottom: 32px; }
.sekcja__lead { max-width: 48ch; color: var(--wtorny); }
.filar { display: flex; flex-direction: column; align-items: start; padding-top: 24px; border-top: 2px solid var(--atrament); }
.filar__nr { margin-bottom: 24px; color: var(--wtorny); font: 400 var(--etykieta)/1.6 var(--mono); font-variant-numeric: tabular-nums lining-nums; }
.filar__tytul { margin-bottom: 16px; }
.filar__tekst, .krok__tekst, .branza__tekst { max-width: 45ch; color: var(--wtorny); line-height: 1.65; }
.filar__wiecej { margin-top: auto; padding-top: 20px; }
.link-strzalka { display: inline-flex; align-items: center; gap: 16px; min-height: 44px; padding-block: 8px; font-size: .9375rem; font-weight: 500; }
/* Dekoracyjne strzałki z kresek: U+2192 nie występuje w lokalnych fontach.
   Rozmiar w rem pozostaje niezerowy po ukryciu zapasowego glifu w HTML. */
.link-strzalka::after, .przewodnik__strzalka::after, .karta__strzalka::after, .hero__cta .przycisk::after {
  content: ''; display: inline-block; flex: 0 0 auto; width: .5rem; height: .5rem;
  border-right: 2px solid currentColor; border-top: 2px solid currentColor;
  transform: rotate(45deg); vertical-align: .0625rem; font-size: 0;
}
.hero__cta .przycisk::after { content: none; }
.liczby { padding: 40px 28px; border-block: 1px solid var(--linia); background: var(--karta); }
.liczby > .sekcja__tytul { margin-bottom: 36px; }
.liczby__lista { gap: 32px; }
.liczba-kafel { padding-top: 24px; border-top: 1px solid var(--linia); }
.liczba-kafel__v { display: block; margin-bottom: 16px; font: 600 clamp(2.5rem, 3.8vw, 3.25rem)/1.12 var(--tytul); letter-spacing: -.035em; font-variant-numeric: tabular-nums lining-nums; }
.liczba-kafel__l { display: block; margin-bottom: 16px; color: var(--pieczec); font: 400 var(--etykieta)/1.6 var(--mono); text-transform: uppercase; letter-spacing: .065em; }
.liczba-kafel__t { display: block; font-size: 1rem; line-height: 1.7; }
.krok__nr { display: grid; place-items: center; width: 44px; height: 44px; margin-bottom: 24px; border: 1px solid var(--pieczec); color: var(--pieczec); font: 400 .75rem/1 var(--mono); font-variant-numeric: tabular-nums lining-nums; }
.krok__tytul { margin-bottom: 16px; }
.branze { border-top: 1px solid var(--linia); }
.branza { padding-top: 24px; border-top: 1px solid var(--linia); }
.branza__tytul { margin-bottom: 16px; }
.branze__wiecej, .faq-skrot__wiecej { margin-top: 28px; }
.wstep { padding-block: 48px; border-block: 1px solid var(--linia); }
.wstep .prose { margin-inline: 0; }
.przewodnik__lista { border-top: 2px solid var(--atrament); }
.przewodnik__poz { border-bottom: 1px solid var(--linia); }
.przewodnik__poz > a { display: grid; grid-template-columns: 36px minmax(0, 1fr) 24px; gap: 20px; align-items: baseline; padding: 24px 12px; color: var(--atrament); text-decoration: none; }
.przewodnik__poz > a:hover { background: var(--pieczec-tlo); }
.przewodnik__nr { color: var(--wtorny); font: 400 var(--etykieta)/1.6 var(--mono); font-variant-numeric: tabular-nums lining-nums; }
.przewodnik__kicker { display: block; margin-bottom: 8px; }
.przewodnik__tytul { display: block; font: 600 clamp(1.25rem, 1.7vw, 1.625rem)/1.3 var(--tytul); letter-spacing: -.015em; }
.przewodnik__tekst { display: block; margin-top: 8px; color: var(--wtorny); max-width: 75ch; }
.przewodnik__strzalka { color: var(--pieczec); font-size: 0; }
.faq-skrot { border-top: 1px solid var(--linia); }
.zrodla--home { margin-bottom: 64px; }

/* FAQ, słownik, 404 i odsyłacze · §5, §8. */
.faq__lista { margin-top: 32px; border-top: 2px solid var(--atrament); }
.faq__poz { border-bottom: 1px solid var(--linia); }
.faq__poz summary { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; min-height: 64px; padding: 20px 12px; color: var(--atrament); font-weight: 500; line-height: 1.5; cursor: pointer; list-style: none; }
.faq__poz summary::-webkit-details-marker { display: none; }
.faq__poz summary::after { content: '+'; flex: 0 0 24px; text-align: center; color: var(--pieczec); font: 400 1.25rem/1.2 var(--mono); }
.faq__poz[open] summary::after { content: '−'; }
.faq__poz[open] summary, .faq__poz summary:hover { background: var(--pieczec-tlo); color: var(--pieczec); }
.faq__odp { max-width: 76ch; padding: 24px 12px 32px; line-height: 1.75; }
.faq__odp p + p { margin-top: 20px; }
.faq__odp li + li { margin-top: 8px; }
.faq__grupy { padding-block: 28px; border-bottom: 1px solid var(--linia); }
.faq__grupy ul { display: flex; flex-wrap: wrap; gap: 12px 24px; }
.faq__grupy a { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 8px 2px; }
.faq__grupa { max-width: 850px; margin: 64px auto; }
.faq__grupa .num { display: inline-block; margin-right: 16px; }
.art--faq > .zrodla, .art--slownik > .zrodla { max-width: 850px; margin-inline: auto; }
.slownik__indeks { padding-block: 28px; border-bottom: 1px solid var(--linia); }
.slownik__indeks ul { display: flex; flex-wrap: wrap; gap: 10px; }
.slownik__indeks a { display: grid; place-items: center; min-width: 44px; height: 44px; padding: 6px; border: 1px solid var(--linia); color: var(--atrament); background: var(--karta); font: 500 1rem/1 var(--tekst); text-decoration: none; }
.slownik__indeks a:hover { background: var(--pieczec-tlo); }
.slownik__grupa { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; margin-top: 48px; }
.slownik__litera { padding-top: 24px; border-top: 2px solid var(--atrament); font-size: 3rem; }
.slownik__lista { min-width: 0; }
.haslo { padding-block: 24px; border-top: 1px solid var(--linia); }
.haslo dt { margin-bottom: 12px; font: 600 clamp(1.4rem, 1.7vw, 1.75rem)/1.3 var(--tytul); }
.haslo dd { max-width: 72ch; line-height: 1.75; }
.haslo dd p + p { margin-top: 16px; }
.pusto { margin-block: 64px; padding: 40px; border: 1px solid var(--linia); background: var(--karta); }
.pusto__tytul { font-size: clamp(2.5rem, 4.4vw, 4rem); line-height: 1.12; letter-spacing: -.035em; }
.pusto__lead { max-width: 58ch; margin-top: 24px; font-size: 1.125rem; }
.pusto__akcje { display: flex; flex-wrap: wrap; gap: 12px; margin-block: 28px 48px; }
.pusto__mapa-tytul { margin-bottom: 24px; font: 600 var(--etykieta)/1.6 var(--mono); text-transform: uppercase; letter-spacing: .065em; }
.pusto__mapa ul { gap: 0 32px; border-top: 1px solid var(--linia); }
.pusto__mapa a { display: block; min-height: 44px; padding-block: 12px; }
.powiazane__lista { margin-top: 32px; }
.karta { border-top: 2px solid var(--linia); }
.karta > a { display: flex; flex-direction: column; align-items: start; height: 100%; padding: 24px 12px 16px; color: var(--atrament); text-decoration: none; }
.karta > a:hover { background: var(--pieczec-tlo); }
.karta__tytul { font: 600 clamp(1.4rem, 1.7vw, 1.75rem)/1.25 var(--tytul); letter-spacing: -.015em; }
.karta__lead { display: block; max-width: 45ch; margin-block: 16px 24px; color: var(--wtorny); }
.karta__strzalka { margin-top: auto; color: var(--pieczec); font-size: 0; }
.link-zewn { overflow-wrap: anywhere; }
.link-zewn::after { content: ' ↗'; font-family: var(--tekst); font-size: .875em; white-space: nowrap; }
.link-wlasny { text-decoration-style: double; }

/* Jedna warstwa na każdy próg, wspólna dla całego dokumentu. */
@media (min-width: 40em) {
  .prose { max-width: min(72ch, calc(100% - 6rem)); }
  .prose > h2 .num { position: absolute; top: .4em; left: -48px; margin: 0; }
  .liczba { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
  .liczba figcaption { padding-left: 24px; border-left: 1px solid var(--linia); }
  .slownik__grupa { grid-template-columns: 72px minmax(0, 1fr); gap: 40px; }
}
@media (min-width: 48em) {
  :root { --margines: 32px; --sekcja: 80px; }
  .filary__lista, .kroki__lista, .branze__lista, .powiazane__lista, .stopka__nav, .pusto__mapa ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .liczby__lista { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .liczba-kafel:last-child { grid-column: 1 / -1; }
  .spis ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px; }
}
@media (max-width: 61.25em) {
  .naglowek__wrap { flex-wrap: wrap; gap: 12px; min-height: 76px; padding-block: 12px; }
  .menu { width: 100%; }
  .menu__lista { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; gap: 0 12px; }
  .menu__lista a { border-top: 1px solid var(--linia); }
  html:not(.js) .naglowek { position: relative; }
  .js .naglowek__wrap { flex-wrap: nowrap; }
  .js .menu { width: auto; flex-shrink: 0; }
  .js .menu__toggle { display: flex; }
  .js .menu__lista { display: none; position: absolute; top: 100%; left: 0; right: 0; padding: 16px var(--margines) 24px; border-bottom: 1px solid var(--linia); background: var(--karta); max-height: calc(100svh - 76px); overflow-y: auto; }
  .js .menu-otwarte .menu__lista { display: grid; }
  .hero__wrap, .art__uklad { grid-template-columns: minmax(0, 1fr); }
  .hero { padding-block: 48px; }
  .stopka__marka { flex-direction: column; }
  .tabela th:first-child { position: sticky; left: 0; z-index: 1; width: 8.5rem; border-right: 1px solid var(--linia); }
  .tabela thead th:first-child { z-index: 2; }
  .prose p[id^="tabela-"][id$="pomoc"] { display: block; }
}
@media (min-width: 61.3125em) {
  .hero__wrap { grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: 64px; }
  .hero__wrap:not(:has(.hero__grafika)) { grid-template-columns: minmax(0, 1fr); }
  .hero__wrap:not(:has(.hero__grafika)) .hero__tekst { max-width: 920px; }
  .filary__lista, .kroki__lista { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .liczby__lista, .branze__lista, .powiazane__lista, .stopka__nav { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .liczba-kafel:last-child { grid-column: auto; }
  .liczba-kafel__v { min-height: 2.24em; }
  .art__uklad { grid-template-columns: 216px minmax(0, 790px); gap: 64px; padding-right: 8rem; }
  .art__uklad .prose { max-width: 72ch; margin-inline: 0; }
  .spis { position: sticky; top: 112px; max-height: calc(100svh - 144px); overflow-y: auto; padding-inline: 12px 8px; }
  .spis ol { display: block; }
  .prose .tabela, .prose .liczba { width: calc(100% + 8rem); }
  .art__faq { margin-left: 280px; }
}
@media (max-width: 39.999em) {
  .logo__tekst { font-size: .9375rem; }
  .naglowek__wrap { gap: 8px; }
  .hero__cta { flex-direction: column; align-items: stretch; }
  .hero__cta .przycisk { justify-content: space-between; }
  .hero__cta .przycisk::after { content: ''; }
  .hero__noty { flex-direction: column; gap: 8px; }
  .art__naglowek { padding-bottom: 28px; }
  .art__meta { flex-direction: column; gap: 8px; }
  .art__meta span + span { padding-left: 0; border-left: 0; }
  .art__uklad { margin-top: 32px; gap: 32px; }
  .skrocie, .norma, .wada, .kroki, .liczba { padding: 24px 20px; }
  .podstawa { padding: 24px 20px; }
  .podstawa::before { position: static; display: block; margin-bottom: 16px; }
  .podstawa > p:not([class]) { font-size: 1.125rem; }
  .podstawa > p:not([class]) + p:last-child { font-size: var(--podpis); }
  .liczby { padding: 32px 20px; }
  .przewodnik__poz > a { grid-template-columns: 24px minmax(0, 1fr) 16px; gap: 12px; padding-inline: 0; }
  .faq__poz summary, .faq__odp { padding-inline: 0; }
  .pusto { padding: 28px 20px; }
  .stopka { padding-top: 40px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; scroll-behavior: auto !important; }
}

/* Wydruk i kolory wymuszone: zachowujemy sylwetki oraz wszystkie ustalenia. */
@media print {
  @page { margin: 18mm; }
  :root { --margines: 0px; --sekcja: 24px; }
  body { background: white; color: black; font-size: 11pt; }
  .naglowek, .skip, .spis, .hero__cta, .powiazane, .stopka__nav, .slownik__indeks, .faq__grupy { display: none; }
  .hero__wrap, .art__uklad, .filary__lista, .kroki__lista, .liczby__lista, .branze__lista, .stopka__marka { display: block; }
  .hero, .art__naglowek { padding-block: 0 20px; }
  .art__uklad { padding: 0; margin-top: 24px; }
  .prose, .art__uklad .prose { max-width: none; }
  .prose > h2 .num { position: static; display: inline; margin-right: 12px; }
  .art__faq { margin-left: 0; }
  .prose .tabela, .prose .liczba { width: 100%; }
  .tabela { overflow: visible; }
  .rysunek__przewijanie { overflow: visible; }
  .rysunek__przewijanie img { min-width: 0; }
  .rysunek__pomoc { display: none; }
  .tabela table, .tabela:has(tr > :nth-child(5)) table { min-width: 0; font-size: 9pt; }
  .tabela th, .tabela td { padding: 8px; }
  .tabela th:first-child { position: static; }
  .tabela thead th { background: white; color: black; border-block: 2px solid black; }
  .prose p[id^="tabela-"][id$="pomoc"] { display: none; }
  .skrocie, .podstawa, .norma, .uwaga, .wada, .liczba, .kroki, .wzor { background: white; color: black; break-inside: avoid; }
  .skrocie { border-block: 1px solid black; }
  .norma { clip-path: none; border-style: dashed; }
  .podstawa { border-left-color: black; }
  .wada { border-color: black; }
  .faq__poz > .faq__odp { display: block !important; }
  .faq__poz::details-content { content-visibility: visible; }
  .faq__poz summary::after { content: ''; }
  a, .stopka a, .kicker, .num { color: black; }
  h2, h3, h4, summary { break-after: avoid; }
  p, li { widows: 3; orphans: 3; }
  .stopka { margin-top: 32px; padding: 24px 0; color: black; background: white; border-top: 1px solid black; }
  .stopka__marka, .stopka__dol { border: 0; }
  .stopka__marka { padding-bottom: 0; }
  .stopka .logo__znak { color: black; }
}
@media (forced-colors: active) {
  :focus-visible, .stopka :focus-visible { outline-color: Highlight; }
  .naglowek, .stopka, .przycisk, .skrocie, .podstawa, .norma, .wada, .liczba, .kroki, .tabela { color: CanvasText; background: Canvas; }
  .skrocie, .kroki { border-block: 1px solid CanvasText; }
  .podstawa { border-left-color: CanvasText; }
  .norma { border-color: CanvasText; border-style: dashed; }
  .uwaga { border-left: 2px dotted CanvasText; }
  .wada { border-color: CanvasText; border-top: 7px double CanvasText; }
  .tabela th, .tabela td { color: CanvasText; background: Canvas; }
  .przycisk, .menu__toggle, .slownik__indeks a { border: 1px solid ButtonText; }
  .menu__lista a[aria-current], .spis a[aria-current] { color: LinkText; text-decoration: underline; }
  .spis a[aria-current] { border-left-color: Highlight; }
  .menu__toggle-kreski span { border-top: 1px solid ButtonText; }
  .logo__znak, .stopka .logo__znak { color: CanvasText; }
}
