/* Szablon specjalizacji 07–12 — wzorzec C2 145 07 Umowy … C2 145 12 Rynek kapitalowy (jeden szablon prototypu, dane P[n]).
   Treść: c2/build/lib/specjalizacja.js (dane c2/data/specjalizacje/), akordeon: c2/scripts/akordeon.js (tryb „jeden”).
   Wartości 1:1 z prototypu. Prototyp ma osobne gałęzie komputer (≥ 1024 px) / telefon i liczy część wartości w JS
   (renderVals, MC) — tu odtwarza je CSS: mobile-first, komputer od 64em, progi prototypu 73.75em (1180 px: pasek 86 px,
   obraz otwarcia od 74 px) i 80em (1280 px: „wide”). Jednostki jak w fundamencie: tekst w rem, odstępy w px, od 1440 px
   skala dużych ekranów (nagłówki + N·--kh, tekst + N·--kt, odstępy + N·--ks — tokens.css; prototyp: × --h / --t / --s).
   Elementy jednej gałęzi prototypu: .c2-sz-d (tylko komputer), .c2-sz-m (tylko telefon).
   Wartości zależne od strony (kadry, przerywnik) — zmienne na .c2-sz--NN (zgodność z danymi sprawdza test jednostkowy). */

/* ===================================================================== wspólne */
.c2-sz {
  --sz-mpx: max(20px, calc((100% - 37.5rem) / 2));      /* margines telefonu prototypu: max(20px, (100% − 600px) / 2) */
  --sz-sec: calc(96px + 96 * var(--ks));                 /* padD: calc(96px * --s) */
  background: #FFFFFF;
  color: var(--c-ink);
}
.c2-sz ul, .c2-sz ol { list-style: none; padding: 0; }
/* elementy, które w prototypie są span / div — bez wspólnej reguły pretty dla p, li (base.css) */
.c2-sz :is(.c2-sz-k, .c2-sz-hero__kicker, .c2-sz-k3__name, .c2-sz-k3__role, .c2-sz-k3__k, .c2-sz-k3__mk, .c2-sz-k3__dips li, .c2-sz-k3__ak, .c2-sz-k3__bk,
  .c2-sz-two__lab, .c2-sz-two__ex, .c2-sz-scope__gl, .c2-sz-kons__k, .c2-sz-kons__price, .c2-sz-contact__k, .c2-sz-contact__who) { text-wrap: wrap; }
@media (min-width: 64em) { .c2-sz-m { display: none !important; } }
@media (max-width: 63.999em) { .c2-sz-d { display: none !important; } }

/* wartości zależne od strony: kadr otwarcia (pos / mpos) i przerywnika (pd / sd — komputer, pm / sm — telefon; rozmiar tła
   „X% auto” → kw = X / 100, „auto Y%” → kh = Y / 100), najdłuższy wiersz przerywnika (L, szerokość obrazu 1024–1279 px),
   dodatek wysokości (mx) i szerokość obrazu (cw) */
.c2-sz--04 { --sz-pos: 40% 52%; --sz-mpos: 44% 50%; --sz-pd-x: 50%; --sz-pd-y: 46%; --sz-pd-kw: 1; --sz-pd-kh: 0; --sz-pm-x: 62%; --sz-pm-y: 40%; --sz-pm-kw: 1.2; --sz-pm-kh: 0; --sz-pas-l: 19; }
.c2-sz--05 { --sz-pos: 66% 50%; --sz-mpos: 64% 50%; --sz-pd-x: 50%; --sz-pd-y: 42%; --sz-pd-kw: 1; --sz-pd-kh: 0; --sz-pm-x: 60%; --sz-pm-y: 30%; --sz-pm-kw: 1.2; --sz-pm-kh: 0; --sz-pas-l: 21; }
.c2-sz--06 { --sz-pos: 50% 55%; --sz-mpos: 50% 52%; --sz-pd-x: 50%; --sz-pd-y: 52%; --sz-pd-kw: 1; --sz-pd-kh: 0; --sz-pm-x: 60%; --sz-pm-y: 40%; --sz-pm-kw: 1.2; --sz-pm-kh: 0; --sz-pas-l: 17; }
.c2-sz--07 { --sz-pos: 40% 56%; --sz-mpos: 42% 54%; --sz-pd-x: 50%; --sz-pd-y: 46%; --sz-pd-kw: 1; --sz-pd-kh: 0; --sz-pm-x: 40%; --sz-pm-y: 36%; --sz-pm-kw: 1.2; --sz-pm-kh: 0; --sz-pas-l: 23; }
.c2-sz--08 { --sz-pos: 64% 50%; --sz-mpos: 62% 50%; --sz-pd-x: 50%; --sz-pd-y: 62%; --sz-pd-kw: 1; --sz-pd-kh: 0; --sz-pm-x: 62%; --sz-pm-y: 52%; --sz-pm-kw: 0; --sz-pm-kh: 1.5; --sz-pas-l: 24; }
.c2-sz--09 { --sz-pos: 55% 50%; --sz-mpos: 55% 50%; --sz-pd-x: 100%; --sz-pd-y: 52%; --sz-pd-kw: 0; --sz-pd-kh: 2; --sz-pm-x: 70%; --sz-pm-y: 50%; --sz-pm-kw: 1.3; --sz-pm-kh: 0; --sz-pas-l: 28; --sz-pas-mx: 24px; --sz-pas-cw: 2; }

/* proporcje obrazów z kadrem tła (klasa z budowania: wymiary oryginału z manifestu) */
.c2-sz-ar--1-1 { --sz-ar: 1; }
.c2-sz-ar--3-2 { --sz-ar: calc(2 / 3); }
.c2-sz-ar--4-3 { --sz-ar: .75; }
/* Kadr tła prototypu (background-size „X% auto” / „auto Y%” + background-position x y) na <img> bez wychodzenia poza ramkę:
   wysokość = wysokość obrazu w tle (Hs), szerokość naturalna, ale najwyżej 100% ramki — gdy obraz jest szerszy, object-fit: cover
   ze skalą Hs / wysokość oryginału i object-position x daje to samo przesunięcie (szer. ramki − szer. obrazu) · x;
   w pionie left/top = x/y, translate −x/−y własnego rozmiaru = (ramka − obraz) · x/y — jak background-position. */
/* przyciski — c2-btn fundamentu; promień 12 px także na telefonie (proc, kontakt, K3), przy wzorcowej wysokości 54 / 58 px */
.c2-sz .c2-sz-proc__btn, .c2-sz .c2-sz-contact__btn, .c2-sz .c2-sz-k3__btn { border-radius: 0 var(--r-btn) 0 0; }

/* etykieta i H2 modułów (prototyp: md.ks, md.h2) */
.c2-sz-k { font: 600 .75rem/normal var(--f-sans); letter-spacing: .1em; text-transform: uppercase; color: var(--sz-kc, var(--c-petrol)); }
.c2-sz-h2 {
  font: 500 1.875rem/1.08 var(--f-serif);
  font-size: clamp(1.625rem, calc(1.625rem + (100cqi - 320px) * .028), 1.875rem);
  letter-spacing: -.01em;
}
@media (min-width: 64em) {
  .c2-sz-k { font-size: .8125rem; }
  .c2-sz-h2 { font-size: calc(clamp(1.875rem, calc(1.875rem + (100cqi - 64rem) * 16 / 416), 2.875rem) + 46 * var(--kh)); }
}

/* sekcja modułu: tło i odstępy (prototyp: padM 52 / mpx / 48, padD 96·s / --px) */
.c2-sz-mod { padding: 52px var(--sz-mpx) 48px; }
.c2-sz-mod--jasne { background: #FFFFFF; }
.c2-sz-mod--szare { background: var(--c-bg); }
.c2-sz-mod--ciemne {
  --sz-kc: #B4C6C2;
  background: var(--c-dark);
  color: var(--c-on-dark);
}
@media (min-width: 64em) { .c2-sz-mod { padding: var(--sz-sec) var(--px); } }

/* nagłówek modułów cols / two / rows: etykieta + H2 | wstęp */
.c2-sz-head { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; align-items: end; padding-bottom: 28px; }
.c2-sz-head__t { display: flex; flex-direction: column; gap: 14px; }
.c2-sz-head__i { max-width: 38.75rem; font: 400 1rem/1.6 var(--f-sans); color: #26302F; }
@media (min-width: 64em) {
  .c2-sz-head { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 24px 64px; padding-bottom: calc(56px + 56 * var(--ks)); }
  .c2-sz-head__i { font-size: calc(1.0625rem + 17 * var(--kt)); }
}

/* ===================================================================== 01 OTWARCIE
   Telefon: wartości MC(w, vh) prototypu — zależą od wysokości okna: c = (800 − vh) / 133 w granicach 0–1
   (vh ≥ 800 px → 0, vh ≤ 667 px → 1). CSS: --mc skokowo co 1/8 (środek przedziału), H = L(clamp(210, .66w, 300),
   clamp(196, .6w, 270)), przesunięcie obrazu −44·c·clamp((w − 320) / 40), odstęp sceny L(.7, .62)·H + przesunięcie. */
.c2-sz-hero {
  --mc: 0;
  --sz-mh: calc(clamp(210px, 66cqi, 300px) * (1 - var(--mc)) + clamp(196px, 60cqi, 270px) * var(--mc));
  --sz-mt: calc(clamp(0px, (100cqi - 320px) / 40, 1px) * -44 * var(--mc));
  position: relative;
  isolation: isolate;          /* obraz (z-index −1) nad tłem sekcji, pod treścią */
  overflow: hidden;
  display: flex;
  flex-direction: column;
  background: #FFFFFF;
}
@media (max-height: 49.99875em) { .c2-sz-hero { --mc: .0625; } }
@media (max-height: 48.9609em) { .c2-sz-hero { --mc: .1875; } }
@media (max-height: 47.9219em) { .c2-sz-hero { --mc: .3125; } }
@media (max-height: 46.8828em) { .c2-sz-hero { --mc: .4375; } }
@media (max-height: 45.8438em) { .c2-sz-hero { --mc: .5625; } }
@media (max-height: 44.8047em) { .c2-sz-hero { --mc: .6875; } }
@media (max-height: 43.7656em) { .c2-sz-hero { --mc: .8125; } }
@media (max-height: 42.7266em) { .c2-sz-hero { --mc: .9375; } }
@media (max-height: 41.6875em) { .c2-sz-hero { --mc: 1; } }

.c2-sz-hero__in {
  display: flex;
  flex-direction: column;
  padding: calc(var(--nav-space) + 14px - 6px * var(--mc)) var(--sz-mpx) 0;
}
.c2-sz-crumb { position: relative; z-index: 1; }
.c2-sz-crumb__list { display: none; }
.c2 .c2-sz-crumb__back {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font: 500 .875rem/normal var(--f-sans);
  color: #4B5758;
  text-decoration: none;
}
.c2-sz-hero__stage { position: relative; padding-top: calc((.7 - .08 * var(--mc)) * var(--sz-mh) + var(--sz-mt)); }
.c2-sz-hero__img {
  position: absolute;
  z-index: -1;
  top: var(--sz-mt);
  left: calc(-1 * var(--sz-mpx));
  right: calc(-1 * var(--sz-mpx));
  height: var(--sz-mh);
  pointer-events: none;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, transparent calc(10% + 6% * var(--mc)), #000 calc(50% + 6% * var(--mc))), linear-gradient(180deg, transparent 0, #000 12%, #000 calc(50% - 4% * var(--mc)), transparent calc(84% - 4% * var(--mc)));
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(90deg, transparent 0, transparent calc(10% + 6% * var(--mc)), #000 calc(50% + 6% * var(--mc))), linear-gradient(180deg, transparent 0, #000 12%, #000 calc(50% - 4% * var(--mc)), transparent calc(84% - 4% * var(--mc)));
  mask-composite: intersect;
}
.c2-sz-hero__img picture { display: block; height: 100%; }
.c2-sz-hero__pic { width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: var(--sz-mpos); }
.c2-sz-hero__kicker {
  display: flex;
  align-items: baseline;
  gap: 10px;
  font: 600 .75rem/normal var(--f-sans);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--c-petrol);
}
.c2-sz-hero__num { font: 500 1rem/normal var(--f-serif); letter-spacing: 0; text-transform: none; }
.c2-sz-hero__title {
  margin-top: 10px;
  font: 500 2.25rem/1.08 var(--f-serif);
  font-size: clamp(1.9375rem, calc(1.9375rem + (100cqi - 320px) * .06), 2.5rem);
  letter-spacing: -.012em;
}
.c2-sz-hero__hook {
  margin-top: calc(14px - 4px * var(--mc));
  font: 500 1.375rem/1.25 var(--f-serif);
  font-size: clamp(1.25rem, calc(1.25rem + (100cqi - 360px) * .05), 1.375rem);
  color: var(--c-petrol);
  text-wrap: balance;
}
.c2-sz-hero--hak .c2-sz-hero__hook { font-size: clamp(1.1875rem, calc(1.1875rem + (100cqi - 360px) * .04), 1.3125rem); }
.c2-sz-hero__lead { margin-top: calc(16px - 2px * var(--mc)); font: 400 1rem/1.6 var(--f-sans); color: #26302F; }
.c2-sz-hero__aud { margin-top: calc(10px - 2px * var(--mc)); font: 400 .875rem/1.55 var(--f-sans); color: #4B5758; }
.c2-sz-hero__cta { margin: calc(22px - 4px * var(--mc)) 0 40px; display: flex; flex-direction: column; gap: 2px; max-width: 420px; }
.c2-sz-hero__alt { margin-top: 6px; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0 12px; }   /* zawijanie tylko przy powiększonym tekście */
.c2 .c2-sz-hero__altlink {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  font: 400 .9375rem/normal var(--f-sans);
  color: #4B5758;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.c2 .c2-sz-hero__tel {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font: 600 .9375rem/normal var(--f-sans);
  color: var(--c-ink);
  text-decoration: none;
}
.c2-sz-hero__tel svg { flex: none; }

@media (min-width: 64em) {
  /* Duże ekrany (korekta 2026-11-10): ilustracja trzyma się ramy 1920 px (jak hero Specjalizacji), zamiast odjeżdżać
     do krawędzi okna; kolumna tekstu przesuwa granicę o tyle samo i zmniejsza prawe wcięcie o tyle samo — jej szerokość
     się nie zmienia. Do 1920 px --hero-off = 0, więc układ jest identyczny jak dotąd. */
  .c2-sz-hero { --hero-off: max(0px, calc((100cqi - 1920px) / 2)); display: block; min-height: clamp(600px, 44cqi, 760px); }
  .c2-sz-hero__in {
    display: flex;
    max-width: calc(100% - var(--hero-off) - min(1060px, 50cqi) * .85);
    padding: calc(var(--nav-space) + 40px + 40 * var(--ks)) calc(var(--px) - var(--hero-off)) calc(88px + 88 * var(--ks)) var(--px);
  }
  .c2-sz-crumb { position: static; }
  .c2-sz-crumb__list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0 10px;
    font: 500 .875rem/normal var(--f-sans);
    color: #4B5758;
  }
  .c2 .c2-sz-crumb__list a { min-height: 44px; display: flex; align-items: center; color: #4B5758; text-decoration: none; }
  .c2-sz-crumb__sep { color: #9AA7A6; }
  .c2-sz-crumb__list [aria-current] { color: var(--c-ink); }
  .c2 .c2-sz-crumb__back { display: none; }
  .c2-sz-hero__stage { position: static; padding-top: 0; }
  .c2-sz-hero__img {
    top: 60px;
    left: auto;
    right: var(--hero-off);
    bottom: 0;
    width: min(1060px, 50cqi);
    height: auto;
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 30%), linear-gradient(180deg, #000 58%, transparent 97%);
    mask-image: linear-gradient(90deg, transparent 0, #000 30%), linear-gradient(180deg, #000 58%, transparent 97%);
  }
  .c2-sz-hero__pic { object-position: var(--sz-pos); }
  .c2-sz-hero__kicker { padding-top: calc(28px + 28 * var(--ks)); gap: 12px; font-size: .8125rem; }
  .c2-sz-hero__num { font-size: 1.0625rem; }
  .c2-sz-hero__title {
    margin-top: calc(14px + 14 * var(--ks));
    line-height: 1.04;
    font-size: calc(clamp(2.75rem, calc(2.75rem + (100cqi - 64rem) * 16.13 / 416), 4rem) + 64 * var(--kh));
    letter-spacing: -.015em;
  }
  .c2-sz-hero--dlugi .c2-sz-hero__title { font-size: calc(clamp(2.75rem, calc(2.75rem + (100cqi - 64rem) * 10 / 416), 3.375rem) + 54 * var(--kh)); }
  .c2-sz-hero__hook, .c2-sz-hero__lead, .c2-sz-hero__aud { max-width: min(32.5rem, 100%); }
  .c2-sz-hero__hook { margin-top: calc(18px + 18 * var(--ks)); font-size: calc(clamp(1.5rem, calc(1.5rem + (100cqi - 64rem) * 4 / 416), 1.75rem) + 28 * var(--kh)); }
  .c2-sz-hero--hak .c2-sz-hero__hook { font-size: calc(clamp(1.375rem, calc(1.375rem + (100cqi - 64rem) * 4 / 416), 1.625rem) + 26 * var(--kh)); }
  .c2-sz-hero__lead { margin-top: calc(20px + 20 * var(--ks)); font-size: calc(clamp(1.0625rem, calc(1.0625rem + (100cqi - 64rem) * 2 / 416), 1.1875rem) + 19 * var(--kt)); }
  .c2-sz-hero__aud { margin-top: calc(12px + 12 * var(--ks)); font-size: calc(.9375rem + 15 * var(--kt)); }
  .c2-sz-hero__cta { margin: calc(34px + 34 * var(--ks)) 0 0; max-width: none; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 14px 28px; }
  .c2-sz-hero__alt { display: contents; }
  .c2 .c2-sz-hero__altlink { font-size: 1rem; }
}
@media (min-width: 64em) and (hover: hover) {
  .c2 .c2-sz-crumb__list a:hover, .c2 .c2-sz-hero__altlink:hover { color: var(--c-petrol); }
}
@media (min-width: 73.75em) { .c2-sz-hero__img { top: 74px; } }
@media (min-width: 80em) {
  .c2-sz-hero__in { max-width: calc(100% - var(--hero-off) - min(1060px, 52cqi) * .85); }
  .c2-sz-hero__img { width: min(1060px, 52cqi); }
  .c2-sz-hero__hook, .c2-sz-hero__lead, .c2-sz-hero__aud { max-width: calc(35rem + 560 * var(--kt)); }
}

/* ===================================================================== 02 DLACZEGO — K3 (Zaufanie C2 144-04-09, v=3, cta=w2b)
   Moduł ma własny margines (telefon 16 / 20 px, komputer max(76 px, (w − 1288) / 2)), odstęp pionowy 96 / 112 px (wide)
   i własne rozmiary (bez skali dużych ekranów). Szerokość treści K3 (maks. 1288 px) to element kompozycji modułu, nie
   margines strony — decyzja właściciela 2026-11-05 o wyrównaniu do Nav87 dotyczy marginesu sekcji, nie tego wcięcia. */
.c2-sz-k3 {
  padding: 0 20px 52px;
  background: var(--c-dark);
  color: var(--c-on-dark);
}
@media (max-width: 23.1249em) { .c2-sz-k3 { padding-left: 16px; padding-right: 16px; } }
.c2-sz-k3__aside { display: grid; grid-template-columns: 104px minmax(0, 1fr); column-gap: 16px; align-items: end; padding-top: 52px; }
.c2-sz-k3__port { aspect-ratio: 4 / 5; border-radius: 0 22px 0 0; overflow: hidden; background: #1B3436; }
.c2-sz-k3__port picture { display: block; height: 100%; }
.c2-sz-k3__img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 16%; }
.c2-sz-k3__who { display: flex; flex-direction: column; gap: 4px; padding-bottom: 4px; }
.c2-sz-k3__name { font: 500 1.25rem/1.15 var(--f-serif); color: #FFFFFF; }
.c2-sz-k3__role { font: 400 .8125rem/1.4 var(--f-sans); color: var(--c-on-dark-body); }
.c2 .c2-sz-k3__more {
  align-self: flex-start;
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  font: 600 .875rem/normal var(--f-sans);
  color: var(--c-on-hero);
  text-underline-offset: 4px;
}
.c2-sz-k3__main { display: flex; flex-direction: column; min-width: 0; }
.c2-sz-k3__head { margin-top: 22px; }
.c2-sz-k3__k { font: 600 .6875rem/normal var(--f-sans); letter-spacing: .1em; text-transform: uppercase; color: var(--c-dark-num); }
.c2-sz-k3__h2 { margin-top: 10px; font: 500 1.75rem/1.14 var(--f-serif); letter-spacing: -.01em; }
.c2-sz-k3__math { margin-top: 22px; background: #1B3436; border-radius: 0 28px 0 0; padding: 22px 18px; display: flex; flex-direction: column; gap: 12px; }
.c2-sz-k3__mcol { display: contents; }
.c2-sz-k3__mk { font: 600 .6875rem/normal var(--f-sans); letter-spacing: .1em; text-transform: uppercase; color: var(--c-dark-num); }
.c2-sz-k3__mh { font: 500 1.5625rem/1.15 var(--f-serif); color: #FFFFFF; text-wrap: balance; }
.c2-sz-k3__dips { display: flex; flex-direction: column; gap: 6px; }
.c2-sz-k3__dips li { border: 1px solid #3A5557; border-radius: 0 10px 0 0; padding: 9px 12px; display: flex; flex-direction: column; gap: 2px; }
.c2-sz-k3__dk { font: 600 .6875rem/normal var(--f-sans); letter-spacing: .1em; text-transform: uppercase; color: var(--c-dark-num); }
.c2-sz-k3__dv { font: 400 .875rem/1.4 var(--f-sans); color: var(--c-mint); }
.c2-sz-k3__m1 { font: 500 1.0625rem/1.45 var(--f-serif); color: #FFFFFF; }
.c2-sz-k3__m2 { font: 400 .9375rem/1.55 var(--f-sans); color: var(--c-on-dark-body); }
.c2-sz-k3__chips { display: flex; flex-wrap: wrap; gap: 6px; }
.c2-sz-k3__chips li { padding: 5px 9px; border: 1px solid #3A5557; border-radius: 0 8px 0 0; font: 500 .75rem/1.3 var(--f-sans); color: var(--c-mint); }
.c2-sz-k3__args { margin-top: 20px; display: flex; flex-direction: column; gap: 14px; }
.c2-sz-k3__args li { border-top: 2px solid var(--c-dark-line); border-radius: 0 20px 0 0; padding-top: 14px; display: flex; flex-direction: column; gap: 8px; }
.c2-sz-k3__ak { font: 600 .6875rem/normal var(--f-sans); letter-spacing: .1em; text-transform: uppercase; color: var(--c-dark-num); }
.c2-sz-k3__at { font: 500 1.3125rem/1.2 var(--f-serif); color: #FFFFFF; text-wrap: balance; }
.c2-sz-k3__ad { font: 400 .9375rem/1.55 var(--f-sans); color: var(--c-on-dark-body); }
.c2-sz-k3__bar { margin-top: 28px; background: var(--c-petrol); border-radius: 0 24px 0 0; padding: 24px 18px 18px; display: flex; flex-direction: column; gap: 10px; }
.c2-sz-k3__bartx { display: contents; }
.c2-sz-k3__bk { font: 600 .6875rem/normal var(--f-sans); letter-spacing: .12em; text-transform: uppercase; color: #CFE3DE; }
.c2-sz-k3__slogan { font: 500 1.6875rem/1.14 var(--f-serif); letter-spacing: -.01em; color: #FFFFFF; text-wrap: balance; }
/* prototyp: nowrap — tu zawijanie dopuszczone (przy domyślnym rozmiarze tekst mieści się w jednym wierszu; przy powiększonym nie jest obcinany) */
.c2 .c2-sz-k3__btn, .c2 .c2-sz-k3__btn:hover { margin-top: 12px; padding: 0 34px; background: var(--c-on-hero); color: var(--c-dark); }
@media (hover: hover) { .c2 .c2-sz-k3__btn:hover { background: #FFFFFF; } }
.c2 .c2-sz-k3__btn:focus-visible { outline-color: var(--c-on-hero); }

@media (min-width: 64em) {
  .c2-sz-k3 { padding: 96px max(76px, calc((100cqi - 1288px) / 2)); }
  .c2-sz-k3__top { display: grid; grid-template-columns: minmax(0, 1fr); row-gap: 44px; align-items: start; }
  .c2-sz-k3__aside { display: flex; flex-direction: row; align-items: flex-end; gap: 28px; padding-top: 0; }
  .c2-sz-k3__port { width: 200px; flex: none; border-radius: 0 48px 0 0; }
  .c2-sz-k3__who { gap: 0; padding: 0; }
  .c2-sz-k3__name { font-size: 1.625rem; }
  .c2-sz-k3__role { margin-top: 4px; font-size: .9375rem; line-height: 1.5; }
  .c2 .c2-sz-k3__more { margin-top: 6px; min-height: 44px; font-size: 1rem; text-underline-offset: 5px; }
  .c2-sz-k3__head { margin-top: 0; }
  .c2-sz-k3__k { font-size: .8125rem; letter-spacing: .12em; }
  .c2-sz-k3__h2 { margin-top: 14px; font-size: 2.375rem; line-height: 1.1; }
  .c2-sz-k3__math { margin-top: 30px; border-radius: 0 48px 0 0; padding: 36px 40px; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 18px 40px; align-items: start; }
  .c2-sz-k3__mcol { display: flex; flex-direction: column; gap: 14px; }
  .c2-sz-k3__mk { font-size: .75rem; }
  .c2-sz-k3__mh { font-size: clamp(1.5rem, calc((100cqi - 640.625px) * .064), 2.125rem); line-height: 1.1; letter-spacing: -.01em; }
  .c2-sz-k3__dips { gap: 8px; }
  .c2-sz-k3__dips li { padding: 10px 12px; gap: 3px; }
  .c2-sz-k3__m1 { font-size: 1.25rem; }
  .c2-sz-k3__m2 { font-size: 1rem; line-height: 1.6; }
  .c2-sz-k3__chips li { padding: 5px 10px; font-size: .8125rem; }
  .c2-sz-k3__args { margin-top: 56px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; }
  .c2-sz-k3__args li { border-radius: 0; padding-top: 18px; gap: 10px; }
  .c2-sz-k3__ak { font-size: .75rem; }
  .c2-sz-k3__at { font-size: 1.375rem; }
  .c2-sz-k3__ad { line-height: 1.6; }
  .c2-sz-k3__bar { margin-top: 40px; border-radius: 0 32px 0 0; padding: 34px 40px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px 40px; align-items: center; }
  .c2-sz-k3__bartx { display: flex; flex-direction: column; gap: 10px; }
  .c2-sz-k3__bk { font-size: .75rem; }
  .c2-sz-k3__slogan { font-size: 2.125rem; line-height: 1.12; }
  /* ten sam selektor co reguła podstawowa (także :hover) — inaczej najechanie przywracało margines 12 px telefonu
     i przycisk z napisem przeskakiwał o 12 px w dół (K3 07–12, komputer) */
  .c2 .c2-sz-k3__btn, .c2 .c2-sz-k3__btn:hover { margin-top: 0; }
}
@media (min-width: 80em) {
  .c2-sz-k3 { padding-top: 112px; padding-bottom: 112px; }
  .c2-sz-k3__top { grid-template-columns: 360px minmax(0, 1fr); column-gap: 64px; row-gap: 0; }
  .c2-sz-k3__aside { flex-direction: column; align-items: stretch; gap: 0; }
  .c2-sz-k3__port { width: 100%; border-radius: 0 80px 0 0; }
  .c2-sz-k3__who { padding-top: 20px; }
  .c2-sz-k3__h2 { font-size: 2.75rem; }
}

/* ===================================================================== RODZAJE ZLECEŃ (rows) */
.c2-sz-rows { border-top: 2px solid var(--c-ink); }
.c2-sz-rows__hd {
  display: grid;
  grid-template-columns: 72px minmax(0, 5fr) minmax(0, 6fr);
  gap: 24px;
  padding: 12px 0;
  border-bottom: 1px solid var(--c-ink);
  font: 600 .75rem/normal var(--f-sans);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #4B5758;
}
.c2-sz-rows__row { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 4px 10px; padding: 16px 0; border-bottom: 1px solid var(--c-line); align-items: baseline; }
.c2-sz-rows__n { font: 500 1.25rem/normal var(--f-serif); color: var(--c-petrol); }
.c2-sz-rows__s { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.c2-sz-rows__t { font: 500 1.25rem/1.2 var(--f-serif); }
.c2-sz-rows__p { max-width: 27.5rem; font: 400 1rem/1.55 var(--f-sans); color: #26302F; }
.c2-sz-rows__r { grid-column: 2; font: 400 1rem/1.55 var(--f-sans); color: #26302F; }
.c2-sz-rows__pre { font-weight: 600; color: var(--c-petrol); }
@media (min-width: 64em) {
  .c2-sz-rows__row { grid-template-columns: 72px minmax(0, 5fr) minmax(0, 6fr); gap: 24px; padding: 22px 0; }
  .c2-sz-rows__t { font-size: calc(clamp(1.3125rem, calc(1.3125rem + (100cqi - 64rem) * 3 / 416), 1.5rem) + 24 * var(--kh)); }
  .c2-sz-rows__p, .c2-sz-rows__r { font-size: calc(1.0625rem + 17 * var(--kt)); }
  .c2-sz-rows__r { grid-column: auto; }
}

/* ===================================================================== DWIE GRUPY / ŚCIEŻKI (two: pair | line) */
.c2-sz-two__grid { display: grid; grid-template-columns: minmax(0, 1fr); align-items: stretch; }
.c2-sz-mod--two-pair .c2-sz-two__grid { gap: 16px; }
.c2-sz-two__p {
  --sz-kc: var(--c-petrol);
  --sz-ln: var(--c-line);
  --sz-lns: var(--c-ink);
  --sz-mut: #26302F;
  display: flex;
  flex-direction: column;
  gap: 14px;
  color: var(--c-ink);
}
.c2-sz-mod--two-pair .c2-sz-two__p { padding: 24px 20px 20px; border-radius: 0 20px 0 0; background: #FFFFFF; border-top: 3px solid var(--c-petrol); }
.c2-sz-mod--two-pair .c2-sz-two__p--ciemna {
  --sz-kc: var(--c-dark-num);
  --sz-ln: var(--c-dark-line);
  --sz-lns: var(--c-axis);
  --sz-mut: var(--c-on-dark-body);
  background: var(--c-dark);
  color: var(--c-on-dark);
  border-top: 0;
}
.c2-sz-mod--two-line .c2-sz-two__p:first-child { padding-bottom: 28px; }
.c2-sz-mod--two-line .c2-sz-two__p + .c2-sz-two__p { padding-top: 28px; border-top: 1px solid var(--c-line); }
.c2-sz-two__lab { display: flex; align-items: center; gap: 12px; font: 600 .75rem/normal var(--f-sans); letter-spacing: .1em; text-transform: uppercase; color: var(--sz-kc); }
.c2-sz-two__k {
  width: 30px;
  height: 30px;
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--sz-kc);
  border-radius: 0 8px 0 0;
  font: 500 1rem/normal var(--f-serif);
  letter-spacing: 0;
  text-transform: none;
}
.c2-sz-two__t { margin-top: 4px; font: 500 1.4375rem/1.15 var(--f-serif); letter-spacing: -.005em; }
.c2-sz-two__d { max-width: 35rem; font: 400 1rem/1.6 var(--f-sans); color: var(--sz-mut); }
.c2-sz-two__ex { margin-top: 10px; font: 600 .9375rem/1.4 var(--f-sans); }
.c2-sz-two__list { margin-top: 6px; border-top: 1px solid var(--sz-lns); }
.c2-sz-two__ex + .c2-sz-two__list { margin-top: -4px; }
.c2-sz-two__list li { padding: 13px 0; border-bottom: 1px solid var(--sz-ln); font: 500 1rem/1.45 var(--f-sans); }
@media (min-width: 64em) {
  .c2-sz-two__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .c2-sz-mod--two-pair .c2-sz-two__grid { gap: 24px; }
  .c2-sz-mod--two-pair .c2-sz-two__p { padding: calc(40px + 40 * var(--ks)) calc(40px + 40 * var(--ks)) calc(36px + 36 * var(--ks)); border-radius: 0 28px 0 0; }
  .c2-sz-mod--two-line .c2-sz-two__p:first-child { padding: 0 calc(48px + 48 * var(--ks)) 0 0; }
  .c2-sz-mod--two-line .c2-sz-two__p + .c2-sz-two__p { padding: 0 0 0 calc(48px + 48 * var(--ks)); border-top: 0; border-left: 1px solid var(--c-line); }
  .c2-sz-two__t { font-size: calc(clamp(1.5625rem, calc(1.5625rem + (100cqi - 64rem) * 5 / 416), 1.875rem) + 30 * var(--kh)); }
  .c2-sz-two__d { font-size: calc(1.0625rem + 17 * var(--kt)); }
  .c2-sz-two__list li { font-size: calc(1.125rem + 18 * var(--kt)); }
}

/* ===================================================================== ZAKRES (scope, wariant „top”) */
.c2-sz-scope { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px 24px; align-items: start; }
.c2-sz-scope__head { display: flex; flex-direction: column; gap: 16px; }
.c2-sz-scope__head--bez-wstepu { padding-bottom: 22px; }   /* prototyp: pusty akapit wstępu (odstęp 16 + margines 6 px) */
.c2-sz-scope__i { margin-top: 6px; max-width: 40rem; font: 400 1rem/1.6 var(--f-sans); color: #26302F; }
.c2-sz-scope__list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; }
.c2-sz-scope__g { display: flex; flex-direction: column; }
.c2-sz-scope__gh { padding-bottom: 16px; border-bottom: 2px solid var(--c-ink); display: flex; flex-direction: column; gap: 4px; }
.c2-sz-scope__t { font: 500 1.25rem/1.15 var(--f-serif); }
.c2-sz-scope__gd { margin-top: 16px; font: 400 1rem/1.6 var(--f-sans); color: #26302F; }
.c2-sz-scope__gl { margin-top: 20px; padding-bottom: 4px; font: 600 .75rem/normal var(--f-sans); letter-spacing: .1em; text-transform: uppercase; color: var(--c-petrol); }
.c2-sz-scope__ul li { padding: 16px 0; border-bottom: 1px solid var(--c-line); font: 500 1rem/1.45 var(--f-sans); color: var(--c-ink); }
@media (min-width: 64em) {
  .c2-sz-scope { grid-template-columns: repeat(12, minmax(0, 1fr)); row-gap: calc(56px + 56 * var(--ks)); }
  .c2-sz-scope__head { grid-column: 1 / 8; }
  .c2-sz-scope__i { font-size: calc(1.0625rem + 17 * var(--kt)); }
  .c2-sz-scope__list { grid-column: 1 / 13; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(48px + 48 * var(--ks)); }
  .c2-sz-scope__list--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px calc(40px + 40 * var(--ks)); }
  .c2-sz-scope__t { font-size: calc(clamp(1.3125rem, calc(1.3125rem + (100cqi - 64rem) * 3 / 416), 1.5rem) + 24 * var(--kh)); }
  .c2-sz-scope__gd { font-size: calc(1.0625rem + 17 * var(--kt)); }
  .c2-sz-scope__ul li { font-size: calc(1.125rem + 18 * var(--kt)); }
}

/* ===================================================================== NA POCZĄTEK (note) */
.c2-sz-note { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; align-items: start; border-top: 1px solid var(--c-ink); padding-top: 22px; }
.c2-sz-note__l { display: flex; flex-direction: column; gap: 14px; }
.c2-sz-note__h { font: 500 1.5625rem/1.18 var(--f-serif); letter-spacing: -.01em; text-wrap: balance; }
.c2-sz-note__r { display: flex; flex-direction: column; gap: 12px; }
.c2-sz-note__r p { max-width: 38.75rem; font: 400 1rem/1.65 var(--f-sans); color: #26302F; }
@media (min-width: 64em) {
  .c2-sz-note { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 24px 64px; padding-top: calc(32px + 32 * var(--ks)); }
  .c2-sz-note__h { font-size: calc(clamp(1.75rem, calc(1.75rem + (100cqi - 64rem) * 8 / 416), 2.25rem) + 36 * var(--kh)); }
  .c2-sz-note__r { padding-top: 30px; }
  .c2-sz-note__r p { font-size: calc(1.125rem + 18 * var(--kt)); }
}

/* ===================================================================== RODZAJE SPRAW (cols, wariant „small”, 3 kolumny)
   Stage 147: rodzaj sprawy jako karta (glebia.css: biała, linia, R1, cień spoczynku, akcent górny petrol 2 px). */
.c2-sz-cols { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--c2-card-gap); }
.c2-sz-cols li {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 16px 14px 18px;
  background: #FFFFFF;
  border: 1px solid var(--c2-card-line);
  border-top: 2px solid var(--c-petrol);
  border-radius: var(--c2-r-card);
  box-shadow: var(--c2-sh-rest);
}
.c2-sz-cols__t { font: 500 1.25rem/1.15 var(--f-serif); letter-spacing: -.005em; }
.c2-sz-cols__d { max-width: 27.5rem; font: 400 .9375rem/1.6 var(--f-sans); color: #26302F; }
.c2-sz-cols__note { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--c-ink); display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px 24px; align-items: center; }
.c2-sz-cols__th { position: relative; width: 88px; height: 66px; border-radius: 0 14px 0 0; overflow: hidden; }
.c2-sz-cols__img { position: absolute; left: 60%; top: 55%; width: auto; max-width: 100%; height: calc(1.9 * 88px * var(--sz-ar)); translate: -60% -55%; object-fit: cover; object-position: 60% 50%; }
.c2-sz-cols__nt { max-width: 42.5rem; font: 400 1rem/1.55 var(--f-sans); color: #26302F; }
.c2 .c2-sz-cols__nl { min-height: 44px; display: flex; align-items: center; font: 600 1rem/normal var(--f-sans); color: var(--c-petrol); text-underline-offset: 5px; }
@media (hover: hover) { .c2 .c2-sz-cols__nl:hover { color: var(--c-ink); } }
@media (min-width: 64em) {
  .c2-sz-cols { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: calc(20px + 20 * var(--ks)); }
  .c2-sz-cols li { padding: calc(24px + 24 * var(--ks)) calc(26px + 26 * var(--ks)) calc(28px + 28 * var(--ks)); }
  .c2-sz-cols__t { font-size: calc(clamp(1.3125rem, calc(1.3125rem + (100cqi - 64rem) * 3 / 416), 1.5rem) + 24 * var(--kh)); }
  .c2-sz-cols__d { font-size: calc(1rem + 16 * var(--kt)); }
  .c2-sz-cols__note { margin-top: calc(56px + 56 * var(--ks)); grid-template-columns: 88px minmax(0, 1fr) auto; }
  .c2-sz-cols__nt, .c2 .c2-sz-cols__nl { font-size: calc(1.0625rem + 17 * var(--kt)); }
  .c2 .c2-sz-cols__nl { white-space: nowrap; }   /* prototyp: nowrap; na telefonie zawijanie przy powiększonym tekście */
}

/* ===================================================================== PRZERYWNIK (pas) */
.c2-sz-pas {
  position: relative;
  overflow: hidden;
  height: calc(clamp(304px, 82cqi, 330px) + var(--sz-pas-mx, 0px));
  background: var(--c-dark);
  color: var(--c-on-dark);
}
.c2-sz-pas__img {
  position: absolute;
  inset: 0 0 44% 0;
  overflow: hidden;
  filter: brightness(.9) saturate(.95);
  pointer-events: none;
  -webkit-mask-image: linear-gradient(180deg, #000 0, #000 44%, rgba(0, 0, 0, .45) 70%, transparent 100%), linear-gradient(90deg, transparent 0, #000 22%);
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(180deg, #000 0, #000 44%, rgba(0, 0, 0, .45) 70%, transparent 100%), linear-gradient(90deg, transparent 0, #000 22%);
  mask-composite: intersect;
}
/* background-size / background-position prototypu: left/top = p %, przesunięcie −p % własnego rozmiaru */
.c2-sz-pas__pic {
  position: absolute;
  width: auto;
  max-width: 100%;
  height: calc(var(--sz-pm-kw) * 100cqi * var(--sz-ar) + var(--sz-pm-kh) * 100%);
  left: var(--sz-pm-x);
  top: var(--sz-pm-y);
  translate: calc(-1 * var(--sz-pm-x)) calc(-1 * var(--sz-pm-y));
  object-fit: cover;
  object-position: var(--sz-pm-x) 50%;
}
.c2-sz-pas__in { position: relative; height: 100%; padding: 0 var(--sz-mpx) 22px; display: flex; flex-direction: column; justify-content: flex-end; gap: 12px; }
.c2-sz-pas__t {
  font: 500 1.75rem/1.18 var(--f-serif);
  font-size: clamp(1.625rem, calc(1.625rem + (100cqi - 360px) * .1), 1.875rem);
  letter-spacing: -.01em;
  color: #FFFFFF;
  text-wrap: balance;
}
.c2-sz-pas__t span { display: block; }
.c2 .c2-sz-pas__link {
  align-self: flex-start;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font: 600 .9375rem/normal var(--f-sans);
  color: var(--c-mint);
  text-decoration: none;
  border-bottom: 1px solid rgba(230, 238, 235, .5);
}
@media (hover: hover) { .c2 .c2-sz-pas__link:hover { color: #FFFFFF; } }
.c2 .c2-sz-pas__link:focus-visible { outline-color: var(--c-on-hero); }
@media (min-width: 64em) {
  .c2-sz-pas {
    --sz-pas-left: max(32cqi, calc((var(--g) + var(--sz-pas-l) * 20px - 10cqi) / .9), calc((100cqi - var(--sz-pas-cw, 0) * 320px) * min(var(--sz-pas-cw, 0), 1)));
    height: 320px;
  }
  /* 1024–1279 px: obraz od końca najdłuższego wiersza — max(.32w, (g + L·20 − .1w) / .9), przy cw co najmniej w − cw·320
     (prototyp: minL = cw ? w − cw·320 : 0; czynnik min(cw, 1) zeruje ograniczenie bez cw) */
  .c2-sz-pas__img {
    inset: 0 0 0 var(--sz-pas-left);
    -webkit-mask-image: linear-gradient(90deg, transparent 0, rgba(0, 0, 0, .22) 9%, rgba(0, 0, 0, .62) 19%, #000 31%), linear-gradient(180deg, rgba(0, 0, 0, .5) 0, #000 20%, #000 80%, rgba(0, 0, 0, .5) 100%);
    mask-image: linear-gradient(90deg, transparent 0, rgba(0, 0, 0, .22) 9%, rgba(0, 0, 0, .62) 19%, #000 31%), linear-gradient(180deg, rgba(0, 0, 0, .5) 0, #000 20%, #000 80%, rgba(0, 0, 0, .5) 100%);
  }
  .c2-sz-pas__pic {
    height: calc(var(--sz-pd-kw) * (100cqi - var(--sz-pas-left)) * var(--sz-ar) + var(--sz-pd-kh) * 100%);
    left: var(--sz-pd-x);
    top: var(--sz-pd-y);
    translate: calc(-1 * var(--sz-pd-x)) calc(-1 * var(--sz-pd-y));
    object-position: var(--sz-pd-x) 50%;
  }
  .c2-sz-pas__in { padding: 0 var(--px); justify-content: center; gap: 18px; }
  .c2-sz-pas__t { max-width: 47.5rem; font-size: 2.5rem; }
}
@media (min-width: 80em) {
  .c2-sz-pas { --sz-pas-left: max(32cqi, calc((100cqi - var(--sz-pas-cw, 0) * 360px) * min(var(--sz-pas-cw, 0), 1))); height: 360px; }
  .c2-sz-pas__t { font-size: 2.875rem; }
}

/* ===================================================================== JAK WYGLĄDA WSPÓŁPRACA (proc, kroki w pionie) */
.c2-sz-proc {
  --sz-ln: var(--c-line);
  --sz-nc: var(--c-petrol);
  --sz-mut: #26302F;
}
.c2-sz-mod--ciemne .c2-sz-proc { --sz-ln: var(--c-dark-line); --sz-nc: var(--c-dark-num); --sz-mut: var(--c-on-dark-body); }
.c2-sz-proc__main { display: flex; flex-direction: column; }
.c2-sz-proc__h2 { margin-top: 14px; }
.c2-sz-proc__steps { margin-top: 24px; border-top: 1px solid var(--sz-ln); }
.c2-sz-proc__steps li { display: grid; grid-template-columns: 44px minmax(0, 1fr); padding: 20px 0 22px; border-bottom: 1px solid var(--sz-ln); }
.c2-sz-proc__n { font: 500 1.375rem/1.3 var(--f-serif); color: var(--sz-nc); }
.c2-sz-proc__b { display: flex; flex-direction: column; gap: 6px; }
.c2-sz-proc__t { font: 600 1.125rem/1.3 var(--f-sans); }
.c2-sz-proc__d { max-width: 35rem; font: 400 1rem/1.6 var(--f-sans); color: var(--sz-mut); }
.c2-sz-proc__cta { margin-top: 24px; display: flex; }
.c2 .c2-sz-proc__btn { max-width: 420px; }
.c2-sz-proc__side { margin-top: 28px; display: flex; flex-direction: column; gap: 20px; }
.c2-sz-docs { background: var(--c-mint); color: var(--c-dark); border-radius: 0 24px 0 0; padding: 22px 18px 20px; }
.c2-sz-docs__h { font: 500 1.3125rem/1.2 var(--f-serif); }
.c2-sz-docs__i { margin-top: 10px; font: 400 .9375rem/1.5 var(--f-sans); color: #26302F; }
.c2-sz-docs__ul { margin-top: 16px; border-top: 1px solid #B9C7C3; }
.c2-sz-docs__ul li { display: grid; grid-template-columns: 6px minmax(0, 1fr); align-items: baseline; gap: 10px; padding: 11px 0; border-bottom: 1px solid #C9D5D1; font: 400 .9375rem/1.5 var(--f-sans); color: #26302F; }
.c2-sz-docs__ul li::before { content: ""; flex: none; width: 6px; height: 6px; background: var(--c-petrol); transform: translateY(-2px); }
.c2-sz-docs__n { margin-top: 16px; font: 500 .875rem/1.5 var(--f-sans); color: var(--c-petrol); }
.c2-sz-kons { background: var(--c-dark); color: var(--c-on-dark); border-radius: 0 32px 0 0; padding: 18px 16px 8px; display: flex; flex-direction: column; gap: 8px; }
.c2-sz-mod--ciemne .c2-sz-kons { background: #1B3436; }
.c2-sz-kons__k { font: 600 .75rem/normal var(--f-sans); letter-spacing: .12em; text-transform: uppercase; color: var(--c-dark-num); }
.c2-sz-kons__v { margin: 2px 0 6px; font: 500 1.1875rem/1.4 var(--f-serif); color: #FFFFFF; }
.c2-sz-kons__price { font: 500 2.5rem/1.05 var(--f-serif); color: #FFFFFF; text-wrap: wrap; }
.c2-sz-kons__z { margin-top: 4px; font: 400 .9375rem/1.55 var(--f-sans); color: var(--c-on-dark-body); }
.c2-sz-kons__z2 { font: 400 .875rem/1.55 var(--f-sans); color: var(--c-on-dark-meta); }
.c2 .c2-sz-kons__link { align-self: flex-start; margin-top: 6px; min-height: 44px; display: inline-flex; align-items: center; font: 600 1rem/normal var(--f-sans); color: var(--c-on-hero); text-underline-offset: 5px; }
.c2 .c2-sz-kons__link:focus-visible { outline-color: var(--c-on-hero); }
@media (min-width: 64em) {
  .c2-sz-proc { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: start; }
  .c2-sz-proc__main { grid-column: 1 / 8; padding-right: calc(32px + 32 * var(--ks)); }
  .c2-sz-proc__steps { margin-top: calc(40px + 40 * var(--ks)); }
  .c2-sz-proc__steps li { grid-template-columns: 64px minmax(0, 1fr); }
  .c2-sz-proc__t { font-size: calc(1.3125rem + 21 * var(--kt)); }
  .c2-sz-proc__d { font-size: calc(1.0625rem + 17 * var(--kt)); }
  .c2-sz-proc__cta { margin-top: calc(36px + 36 * var(--ks)); }
  .c2 .c2-sz-proc__btn { padding: 0 34px; }
  .c2-sz-proc__side { grid-column: 8 / 13; margin-top: calc(110px + 110 * var(--ks)); }
  .c2-sz-docs { padding: calc(32px + 32 * var(--ks)) calc(32px + 32 * var(--ks)) calc(28px + 28 * var(--ks)); }
  .c2-sz-docs__h { font-size: calc(1.5rem + 24 * var(--kh)); }
  .c2-sz-docs__i, .c2-sz-docs__ul li { font-size: calc(1rem + 16 * var(--kt)); }
  .c2-sz-docs__n { font-size: calc(.9375rem + 15 * var(--kt)); }
  .c2-sz-kons { padding: 28px 30px 18px; }
}

/* ===================================================================== WARTO WIEDZIEĆ (FAQ)
   Akordeon jak FAQ Home (decyzja właściciela): najwyżej jedna odpowiedź naraz, na start 01 otwarte od 768 px (poniżej
   wszystkie zwinięte); logika i przewijanie pod Nav87 — akordeon.js, tryb „jeden”. Bez JS wszystkie odpowiedzi są widoczne (stan zwinięty tylko pod
   .c2-js). Karta pytania (tło, linia, R1, cienie, akcent otwartej odpowiedzi): data-c2-faq, glebia.css (Stage 147).
   Ilustracja: kadr R1 z cienką linią i cieniem opakowania (.c2-kadr) zamiast wcześniejszej winiety. */
.c2-sz-faq { display: grid; grid-template-columns: minmax(0, 1fr); gap: 22px; align-items: start; }
.c2-sz-faq__left { display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
.c2-sz-faq__kadr { flex: none; margin-top: 6px; width: min(100%, 560px); }
.c2-sz-faq__ill { border-radius: 0 24px 0 0; overflow: hidden; background: var(--c-surface); }
.c2-sz-faq__img { display: block; width: 100%; height: auto; pointer-events: none; user-select: none; }
.c2-sz-faq__list { display: flex; flex-direction: column; gap: var(--c2-card-gap); }
.c2-sz-faq__item { --fx: 12px; display: flex; flex-direction: column; }
.c2-sz-faq__h { font: inherit; }
.c2 .c2-sz-faq__btn {
  width: 100%;
  min-height: 64px;
  padding: 14px var(--fx);
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) 36px;
  gap: 8px;
  align-items: center;
  background: transparent;
  border: 0;
  text-align: left;
  cursor: pointer;
  color: var(--c-ink);
  font-family: inherit;
  transition: color 180ms ease, padding 320ms var(--ease);
}
.c2 .c2-sz-faq__btn:focus-visible { outline-offset: -2px; }
@media (hover: hover) { .c2 .c2-sz-faq__btn:hover { color: var(--c-petrol); } }
.c2-sz-faq__num { font: 500 1.0625rem/normal var(--f-serif); color: var(--c-petrol); }
.c2-sz-faq__q { font: 600 1.125rem/1.4 var(--f-sans); text-wrap: pretty; }
.c2-sz-faq__icon { width: 36px; height: 44px; display: flex; align-items: center; justify-content: center; }
.c2-sz-faq__icon > span { position: relative; flex: none; width: 36px; height: 36px; border-radius: 50%; background: var(--c-petrol); transition: background-color 240ms ease; }
.c2-sz-faq__icon > span::before, .c2-sz-faq__icon > span::after { content: ""; position: absolute; background: #FFFFFF; }
.c2-sz-faq__icon > span::before { left: 11px; top: 17.25px; width: 14px; height: 1.5px; }
.c2-sz-faq__icon > span::after { left: 17.25px; top: 11px; width: 1.5px; height: 14px; transform: scaleY(0); transition: transform 320ms var(--ease); }
.c2-sz-faq__panel { display: grid; grid-template-rows: 1fr; transition: grid-template-rows 320ms var(--ease); }
.c2-sz-faq__clip { overflow: hidden; min-height: 0; }
.c2-sz-faq__answer {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 0 var(--fx) 24px calc(38px + var(--fx));
  opacity: 1;
  visibility: visible;
  transition: opacity 240ms ease 80ms, visibility 0s linear 0ms;
}
.c2-sz-faq__answer p { max-width: 40rem; font: 400 1rem/1.65 var(--f-sans); color: #26302F; }
/* zwinięte (tylko z JS) */
.c2-js .c2-sz-faq__item:not([data-open]) .c2-sz-faq__q { font-weight: 500; }
.c2-js .c2-sz-faq__item:not([data-open]) .c2-sz-faq__icon > span { background: var(--c-mint); }
.c2-js .c2-sz-faq__item:not([data-open]) .c2-sz-faq__icon > span::before,
.c2-js .c2-sz-faq__item:not([data-open]) .c2-sz-faq__icon > span::after { background: var(--c-petrol); }
.c2-js .c2-sz-faq__item:not([data-open]) .c2-sz-faq__icon > span::after { transform: scaleY(1); }
.c2-js .c2-sz-faq__item:not([data-open]) .c2-sz-faq__panel { grid-template-rows: 0fr; }
.c2-js .c2-sz-faq__item:not([data-open]) .c2-sz-faq__answer { opacity: 0; visibility: hidden; transition: opacity 240ms ease 0ms, visibility 0s linear 320ms; }
@media (min-width: 64em) {
  .c2-sz-faq { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 64px; }
  .c2-sz-faq__left { margin-top: -16px; }
  .c2-sz-faq__kadr {
    /* prototyp: calc(min(calc(H2 · 1.42), 68px) − 14px), H2 = rozmiar „Warto wiedzieć” */
    margin-top: calc(min(calc((clamp(1.875rem, calc(1.875rem + (100cqi - 64rem) * 16 / 416), 2.875rem) + 46 * var(--kh)) * 1.42), 68px) - 14px);
    width: min(100%, 540px, max(240px, calc(468px + (100cqi - 1440px) * .2)));
  }
  .c2-sz-faq__ill { border-radius: 0 calc(48px + 48 * var(--ks)) 0 0; }
  .c2-sz-faq__item { --fx: 20px; }
  .c2-sz-faq__icon { width: 44px; }
  .c2 .c2-sz-faq__btn { min-height: 72px; grid-template-columns: 44px minmax(0, 1fr) 44px; gap: 16px; }
  .c2-sz-faq__num { font-size: 1.1875rem; }
  .c2-sz-faq__q { font-size: calc(1.3125rem + 21 * var(--kt)); }
  .c2-sz-faq__answer { padding-left: calc(60px + var(--fx)); }
  .c2-sz-faq__answer p { font-size: calc(1.0625rem + 17 * var(--kt)); }
}

/* ===================================================================== POWIĄZANE SPECJALIZACJE */
.c2-sz-rel__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 8px 32px; padding-bottom: 16px; border-bottom: 1px solid var(--c-ink); }
.c2-sz-rel__h2 { font: 500 1.5rem/1.1 var(--f-serif); }
.c2 .c2-sz-rel__all { min-height: 44px; display: flex; align-items: center; font: 600 1rem/normal var(--f-sans); color: var(--c-petrol); text-underline-offset: 5px; }
.c2 .c2-sz-rel__all--m { margin-top: 8px; font-size: .9375rem; }
@media (hover: hover) { .c2 .c2-sz-rel__all:hover { color: var(--c-ink); } }
.c2-sz-rel__list { display: grid; grid-template-columns: minmax(0, 1fr); }
.c2-sz-rel__list li { border-bottom: 1px solid var(--c-line); }
.c2 .c2-sz-rel__card {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr) 44px;
  column-gap: 14px;
  align-items: center;
  padding: 16px 0;
  color: var(--c-ink);
  text-decoration: none;
}
.c2 .c2-sz-rel__card:focus-visible { outline-offset: 2px; }
@media (hover: hover) { .c2 .c2-sz-rel__card:hover { color: var(--c-petrol); } }
.c2-sz-rel__th { --sz-thw: 88px; position: relative; height: 66px; border-radius: 0 16px 0 0; overflow: hidden; }
.c2-sz-rel__img { position: absolute; left: 55%; top: 55%; width: auto; max-width: 100%; height: calc(1.6 * var(--sz-thw) * var(--sz-ar)); translate: -55% -55%; object-fit: cover; object-position: 55% 50%; }
.c2-sz-rel__tx { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.c2-sz-rel__t { font: 500 1.25rem/1.2 var(--f-serif); text-wrap: balance; }
.c2-sz-rel__d { font: 400 1rem/1.55 var(--f-sans); color: #26302F; text-wrap: pretty; }
.c2-sz-rel__arr {
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--c-line);
  border-radius: 0 10px 0 0;
  color: var(--c-petrol);
  font: 400 1.125rem/normal var(--f-sans);
}
@media (min-width: 64em) {
  .c2-sz-rel__h2 { font-size: calc(clamp(1.625rem, calc(1.625rem + (100cqi - 64rem) * 6 / 416), 2rem) + 32 * var(--kh)); }
  .c2-sz-rel__list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 32px; }
  .c2 .c2-sz-rel__card { grid-template-columns: 128px minmax(0, 1fr) 44px; column-gap: 24px; padding: 24px 0; }
  .c2-sz-rel__th { --sz-thw: 128px; height: 96px; }
  .c2-sz-rel__t { font-size: calc(clamp(1.3125rem, calc(1.3125rem + (100cqi - 64rem) * 3 / 416), 1.5rem) + 24 * var(--kh)); }
  .c2-sz-rel__d { font-size: calc(1rem + 16 * var(--kt)); }
}
@media (min-width: 80em) {
  .c2-sz-rel__list { column-gap: calc(48px + 48 * var(--ks)); }
  .c2 .c2-sz-rel__card { grid-template-columns: 168px minmax(0, 1fr) 44px; }
  .c2-sz-rel__th { --sz-thw: 168px; height: 126px; }
}

/* ===================================================================== KONTAKT
   Telefon: nagłówek → ilustracja → podpis, akapity, CTA (kolumna treści przezroczysta dla układu, kolejność — order). */
.c2-sz-contact { display: flex; flex-direction: column; gap: 22px; }
.c2-sz-contact__main { display: contents; }
.c2-sz-contact__head { order: 1; display: flex; flex-direction: column; gap: 14px; }
.c2-sz-contact__k { font: 600 .8125rem/normal var(--f-sans); letter-spacing: .12em; text-transform: uppercase; color: var(--c-petrol); }
.c2-sz-contact__h2 {
  font: 500 1.875rem/1.08 var(--f-serif);
  font-size: clamp(1.625rem, calc(1.625rem + (100cqi - 320px) * .028), 1.875rem);
  letter-spacing: -.01em;
}
.c2-sz-contact__media { order: 2; }
.c2-sz-contact__who, .c2-sz-contact__ps, .c2-sz-contact__act { order: 3; }
.c2-sz-contact__who { padding-top: 14px; border-top: 1px solid var(--c-line-light); font: 600 1rem/normal var(--f-sans); text-wrap: wrap; }
.c2-sz-contact__role { font-weight: 400; color: #4B5758; }
.c2-sz-contact__ps { display: flex; flex-direction: column; gap: 10px; }
.c2-sz-contact__ps p { font: 400 1.0625rem/1.6 var(--f-sans); color: #26302F; }
.c2-sz-contact__act { display: flex; flex-direction: column; gap: 14px; padding-top: 4px; }
.c2-sz-contact__row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 26px; }
.c2 .c2-sz-contact__btn { padding: 0 32px; }
.c2 .c2-sz-contact__tel { min-height: 44px; display: inline-flex; flex-wrap: wrap; align-items: center; font: 500 1rem/normal var(--f-sans); color: var(--c-ink); text-decoration: none; }
.c2-sz-contact__tel svg { flex: none; margin: 0 7px 0 4px; }
.c2-sz-contact__tel b { font-weight: 600; }
.c2-sz-contact__k2 { font: 400 .9375rem/1.55 var(--f-sans); color: #4B5758; }
.c2-sz-contact__k2 a { color: var(--c-petrol); font-weight: 600; text-underline-offset: 4px; }
.c2-sz-contact__img { width: 100%; aspect-ratio: 3 / 2; border-radius: 0 28px 0 0; overflow: hidden; background: var(--c-bg); }
.c2-sz-contact__img picture { display: block; height: 100%; }
.c2-sz-contact__pic { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 64em) {
  .c2-sz-contact { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); column-gap: calc(64px + 64 * var(--ks)); align-items: center; }
  .c2-sz-contact__main { display: flex; flex-direction: column; gap: 24px; max-width: 36.25rem; }
  .c2-sz-contact__head { gap: 18px; }
  .c2-sz-contact__h2 { font-size: calc(clamp(2rem, calc(2rem + (100cqi - 64rem) * 8 / 416), 2.5rem) + 40 * var(--kh)); }
  .c2-sz-contact__ps p { font-size: 1.125rem; }
  .c2-sz-contact__media { display: flex; justify-content: flex-end; }
  .c2-sz-contact__img { max-width: 760px; border-radius: 0 64px 0 0; }
}

/* Karty „Powiązane”: tytuł łamie się jak w prototypie — wyraz dłuższy niż kolumna może wystawać w 14-pikselowy
   odstęp przed strzałką (np. „i gospodarcze” 122 px w kolumnie 120 px przy 320 px, „przedsiębiorców” 147 px w 140 px
   przy 340 px). Dopiero gdy kolumna jest za wąska względem tekstu (telefon węższy niż ok. 336 px albo powiększony
   tekst) i wyraz nachodziłby na przycisk (w prototypie nachodzi), dzieli się w miejscu miękkiego dywizu z budowania
   (typography.js: dzielenie) — z łącznikiem, nie w przypadkowym miejscu (korekty końcowe Etapu B).
   Kontenerem zapytań jest sam tytuł (em = rozmiar tytułu, więc próg rośnie z powiększeniem tekstu); jednostki cqi
   w rozmiarze tytułu nadal odnoszą się do sekcji (element nie jest własnym kontenerem). */
.c2-sz-rel__t { container-type: inline-size; }
.c2-sz-rel__t .c2-rel__w { overflow-wrap: normal; hyphens: none; }
@container (max-width: 6.8em) { .c2-sz-rel__t .c2-rel__w { hyphens: manual; } }
/* zabezpieczenie przy powiększonym tekście (fonty ×2, tekst 200%, zoom): kolumna węższa niż 5,6em — łamanie w dowolnym
   miejscu, żeby nic nie wyszło poza ekran; przy zwykłym rozmiarze od 320 px nie występuje */
@container (max-width: 5.6em) { .c2-sz-rel__t .c2-rel__w { overflow-wrap: break-word; } }
