/*
 * Kancelaria v3 — "Akta sprawy po redakcji" (case file, edited).
 * Source of truth: design/art-direction.md (concept), design/concept.html (home reference),
 * design/ux-spec.md §4–§6 (pattern IDs in comments, still valid for structure/behaviour).
 * Palette, fonts and shape tokens come from theme.json; hex values not in presets are copied
 * from design/art-direction.md (Krok 4).
 *
 * Breakpoints: phone ≤ 781 px (WordPress columns stack), tablet 782–1199 px, desktop ≥ 1200 px (one-line menu, side TOC).
 * The full editorial grid (margin column, § numbers, margin notes, red margin line) is used on the
 * home page only (front-page.html content); every other template reuses the same colours, type and
 * shapes through the k-* component classes below.
 */

:root {
	--k-bg: var(--wp--preset--color--background);
	--k-surface: var(--wp--preset--color--surface);
	--k-quiet: var(--wp--preset--color--quiet);
	--k-brand-100: var(--wp--preset--color--brand-100);
	--k-brand-300: var(--wp--preset--color--brand-300);
	--k-brand: var(--wp--preset--color--brand);
	--k-ink: var(--wp--preset--color--ink);
	--k-muted: var(--wp--preset--color--muted);
	--k-action: var(--wp--preset--color--action);
	--k-action-hover: var(--wp--preset--color--action-hover);
	--k-action-active: var(--wp--preset--color--action-active);
	--k-accent-text: var(--wp--preset--color--accent-text);
	--k-border: var(--wp--preset--color--border);
	--k-border-strong: var(--wp--preset--color--border-strong);
	--k-red-on-ink: var(--wp--preset--color--brand-300);
	--k-muted-on-ink: var(--wp--preset--color--inverse-muted);

	--k-radius-sm: var(--wp--custom--radius--sm, 0px);
	--k-radius-md: var(--wp--custom--radius--md, 0px);
	--k-radius-lg: var(--wp--custom--radius--lg, 0px);
	--k-control: var(--wp--custom--control-height, 3rem);
	--k-shadow-1: none;
	--k-shadow-2: none;
	--k-fast: var(--wp--custom--duration--fast, 120ms);
	--k-base: var(--wp--custom--duration--base, 200ms);
	--k-slow: var(--wp--custom--duration--slow, 300ms);
	--k-ease: var(--wp--custom--easing--standard, cubic-bezier(0.2, 0, 0, 1));
	--k-nudge: var(--wp--custom--nudge, 4px);
	--k-mono: var(--wp--preset--font-family--mono);
	--k-serif: var(--wp--preset--font-family--heading);
	--k-sans: var(--wp--preset--font-family--body);

	--k-wide: var(--wp--style--global--wide-size, 72rem);
	--k-text: 41rem;            /* ≈ 66 characters of body text */
	--k-gutter: var(--wp--custom--gutter, 1rem);
	--k-section: var(--wp--preset--spacing--90);
	--k-anchor-offset: 1.5rem;  /* static header on desktop */
	--k-bottombar-h: 0px;
	--k-margin-col: clamp(0px, 11vw, 168px);
}

@media (prefers-reduced-motion: reduce) {
	:root { --k-fast: 0ms; --k-base: 0ms; --k-slow: 0ms; --k-nudge: 0px; }
}
@media (prefers-reduced-motion: no-preference) {
	html { scroll-behavior: smooth; }
}

*, *::before, *::after { box-sizing: border-box; }
html { overflow-x: clip; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; font-variant-numeric: proportional-nums; }
.wp-site-blocks { display: flex; flex-direction: column; min-height: 100vh; }
.wp-site-blocks > .k-main, .wp-site-blocks > main { flex: 1 0 auto; }
:where(h1, h2, h3) { text-wrap: balance; }
p, li, dd { text-wrap: pretty; }
:where(h2, h3)[id] { scroll-margin-top: var(--k-anchor-offset); }
img { max-width: 100%; height: auto; }

/* Didone headings: low optical size everywhere, or the hairlines vanish at screen scale
   (design/art-direction.md, Krok 3). Never above opsz 24, never negative letter-spacing. */
:where(h1, h2, h3, h4) {
	font-kerning: normal;
	font-variation-settings: "opsz" 14;
	letter-spacing: 0;
	text-rendering: optimizeLegibility;
}
h2 { font-variation-settings: "opsz" 20; }
h3 { font-variation-settings: "opsz" 16; }

/* Monospace label: numbers, kickers, captions, telephone (design-system "atrament maszynopisu"). */
.k-mono {
	font-family: var(--k-mono);
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

/* Links: always underlined (WCAG 1.4.1); hover turns red — "korekta redaktora". */
a { text-decoration-thickness: 1px; text-underline-offset: 0.15em; transition: color var(--k-fast) var(--k-ease), text-decoration-thickness var(--k-fast) var(--k-ease); }
a:hover { text-decoration-thickness: 2px; }

/* Focus: one ring everywhere — 2 px ink + 2 px offset. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--k-ink);
	outline-offset: 2px;
	border-radius: 0;
}

.screen-reader-text {
	border: 0; clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden;
	padding: 0; position: absolute; width: 1px; word-wrap: normal !important;
}
.skip-link.screen-reader-text:focus {
	background: var(--k-surface); clip-path: none; color: var(--k-ink); font-weight: 600; height: auto;
	left: 1rem; padding: 0.75rem 1rem; top: 1rem; width: auto; z-index: 100000;
	border: 1px solid var(--k-ink);
}
.k-icon { flex: none; vertical-align: -0.2em; }

/* "Wersja robocza": one monospace line, black on white, no green (design/art-direction.md, Krok 5). */
.k-draft-banner {
	background: var(--k-bg);
	border-bottom: 1px solid var(--k-ink);
	color: var(--k-ink);
	font-family: var(--k-mono);
	font-size: 12px;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	padding: 0.5rem 1rem;
	text-align: center;
}
.k-draft-banner a { color: var(--k-action); }

/* ---------- Buttons: rectangle, 1 px border in the fill colour, invert on hover ---------- */
.k-btn {
	align-items: center;
	border: 1px solid transparent;
	border-radius: 0;
	display: inline-flex;
	font-family: var(--k-sans);
	font-size: var(--wp--preset--font-size--base);
	font-weight: 600;
	gap: 0.5rem;
	justify-content: center;
	line-height: 1.2;
	min-height: var(--k-control);
	padding: 0.625rem 1.375rem;
	text-decoration: none;
	transition: background-color var(--k-fast) var(--k-ease), border-color var(--k-fast) var(--k-ease), color var(--k-fast) var(--k-ease);
}
.k-btn--primary, .k-btn--primary:visited { background: var(--k-action); border-color: var(--k-action); color: #fff; }
.k-btn--primary:hover { background: var(--k-ink); border-color: var(--k-ink); color: #fff; }
.k-btn--primary:active { background: #000; border-color: #000; }
.k-btn--outline, .k-btn--outline:visited { background: transparent; border-color: var(--k-ink); color: var(--k-ink); }
.k-btn--outline:hover { background: var(--k-ink); color: #fff; }
.k-btn--outline:active { background: #000; border-color: #000; color: #fff; }
.wp-block-button__link { align-items: center; display: inline-flex; min-height: var(--k-control); text-decoration: none; transition: background-color var(--k-fast) var(--k-ease), border-color var(--k-fast) var(--k-ease), color var(--k-fast) var(--k-ease); }
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; border: 1px solid var(--k-ink); color: var(--k-ink); }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--k-ink); color: #fff; }
.k-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 0.75rem; }
.k-phone { align-items: center; color: var(--k-ink); display: inline-flex; font-family: var(--k-mono); font-weight: 500; gap: 0.375rem; text-decoration: none; font-variant-numeric: tabular-nums; }
.k-phone:hover { color: var(--k-action); }
.k-phone:hover span { text-decoration: underline; text-decoration-thickness: 2px; }
.k-btn.k-phone:hover { color: #fff; }
.k-btn.k-phone:hover span { text-decoration: none; }
.k-btn--primary.k-phone { color: #fff; }

/* ---------- Header: masthead, like the top of a legal brief ---------- */
/* The bottom rule sits on the inner row, inset by the same gutter as the page content
   grid (--k-gutter), so it lines up with the red margin line below it (design/concept.html). */
.k-header { background: var(--k-surface); position: relative; }
.k-header__inner.alignfull {
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	margin-inline: 0;
	padding-inline: var(--k-gutter);
	gap: 0.75rem;
	min-height: 4.5rem;
	border-bottom: 1px solid var(--k-ink);
	position: relative;
}
.k-header__inner.alignfull::after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 3px; background: var(--k-ink); }
.k-header__inner .k-brand { margin: 0 1.25rem 0 0; flex: none; }
.k-brand a { color: var(--k-ink); display: flex; flex-direction: column; line-height: 1.1; text-decoration: none; white-space: nowrap; }
.k-brand__name { color: var(--k-ink); font-family: var(--k-serif); font-size: var(--wp--preset--font-size--medium); font-weight: 600; font-variation-settings: "opsz" 11; letter-spacing: -0.01em; line-height: 1.1; }
.k-brand__role { color: var(--k-muted); font-family: var(--k-mono); font-size: 12px; letter-spacing: 0.04em; text-transform: uppercase; margin-top: 0.375rem; }
.k-header__actions { align-items: center; display: flex; flex: none; gap: 1rem; margin: 0 0 0 auto; white-space: nowrap; }
.k-header__actions .k-btn { min-height: 2.75rem; padding: 0.5rem 1.125rem; }

.k-nav { flex: 1 1 auto; min-width: 0; }
.k-nav, .k-nav .wp-block-navigation-item__content, .k-nav .wp-block-navigation-submenu__toggle { font-family: var(--k-sans); }
.k-nav .wp-block-navigation__container { gap: 0.25rem 1.125rem; }
.k-nav .wp-block-navigation-item { white-space: nowrap; }
.k-nav .wp-block-navigation-item__content,
.k-nav .wp-block-navigation-submenu__toggle { color: var(--k-ink); font-weight: 500; padding: 0.5rem 0; text-decoration: none; }
.k-nav .wp-block-navigation-item__content:hover { color: var(--k-action); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.35em; }
.k-nav [aria-current="page"],
.k-nav .is-current-parent > .wp-block-navigation-submenu__toggle {
	color: var(--k-ink); font-weight: 600;
	text-decoration: underline; text-decoration-color: var(--k-action); text-decoration-thickness: 3px; text-underline-offset: 0.4em;
}
.k-nav .wp-block-navigation__submenu-icon { transition: transform var(--k-base) var(--k-ease); }
.k-nav [aria-expanded="true"] .wp-block-navigation__submenu-icon,
.k-nav [aria-expanded="true"] + .wp-block-navigation__submenu-icon { transform: rotate(180deg); }
.k-nav .wp-block-navigation__submenu-container {
	background: var(--k-surface) !important;
	border: 1px solid var(--k-ink) !important;
	border-radius: 0;
	box-shadow: none;
	min-width: 19rem !important;
	padding: 0.5rem !important;
}
.k-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { border-radius: 0; padding: 0.625rem 0.75rem !important; }
.k-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: none; color: var(--k-action); text-decoration: underline; }
.k-nav .wp-block-navigation__submenu-container [aria-current="page"] { background: none; text-decoration: none; font-weight: 600; box-shadow: inset 3px 0 0 var(--k-action); }
.k-nav .wp-block-navigation__responsive-container-open,
.k-nav .wp-block-navigation__responsive-container-close {
	align-items: center;
	border: 1px solid var(--k-ink);
	border-radius: 0;
	color: var(--k-ink);
	font-family: var(--k-mono);
	font-size: 13px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	font-weight: 500;
	justify-content: center;
	min-height: 2.75rem;
	padding: 0.5rem 0.875rem;
}
.k-nav .wp-block-navigation__responsive-container-open:hover,
.k-nav .wp-block-navigation__responsive-container-close:hover { background: var(--k-ink); color: #fff; }
.k-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--k-bg) !important;
	padding: 1.25rem var(--k-gutter);
}
.k-nav .is-menu-open .wp-block-navigation__responsive-container-content { font-size: var(--wp--preset--font-size--medium); gap: 0.25rem; padding-top: 3.5rem; }
.k-nav .is-menu-open .wp-block-navigation__container { gap: 0.5rem; }
.k-nav .is-menu-open .wp-block-navigation__submenu-container { border: 0 !important; box-shadow: none; min-width: 0 !important; padding: 0.25rem 0 0.25rem 1rem !important; background: transparent !important; }
.k-nav .is-menu-open .wp-block-navigation-item { white-space: normal; }

/* Desktop ≥ 1200 px: whole menu on one line, header scrolls away with the page. */
@media (min-width: 1200px) {
	.k-nav .wp-block-navigation__responsive-container-open { display: none !important; }
	.k-header__actions .k-phone:not(.k-btn) span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
	.k-header__actions .k-phone:not(.k-btn) {
		border: 1px solid var(--k-ink); border-radius: 0;
		height: 2.75rem; justify-content: center; width: 2.75rem;
	}
	.k-header__actions .k-phone:not(.k-btn):hover { background: var(--k-ink); color: #fff; }
	.k-brand__role { display: none; }
}
@media (min-width: 1440px) {
	.k-header__actions .k-phone:not(.k-btn) span { position: static; width: auto; height: auto; clip-path: none; overflow: visible; }
	.k-header__actions .k-phone:not(.k-btn) { border: 0; width: auto; height: auto; }
	.k-header__actions .k-phone:not(.k-btn):hover { background: none; color: var(--k-action); }
	.k-brand__role { display: block; }
}

/* Below 1200 px the menu goes into the "Menu" panel (WordPress switches only below 600 px by default). */
@media (min-width: 600px) and (max-width: 1199px) {
	.k-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.k-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
	.k-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { display: flex; }
	.k-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: flex-start; flex-direction: column; }
	.k-nav .is-menu-open .wp-block-navigation__submenu-container { height: auto !important; opacity: 1 !important; position: static !important; visibility: visible !important; width: auto !important; }
}
@media (max-width: 1199px) {
	.k-header__inner > .k-nav { flex: 0 0 auto; order: 3; }
	.k-header__actions { margin-left: auto; }
}

/* Phone ≤ 781 px: logo · "Zadzwoń" icon · Menu; header hides on scroll down, returns on scroll up (B-11). */
@media (max-width: 781px) {
	:root { --k-anchor-offset: 5rem; }
	.wp-site-blocks > header.wp-block-template-part {
		position: sticky; top: 0; z-index: 40;
		transition: transform var(--k-slow) var(--k-ease);
	}
	.wp-site-blocks > header.wp-block-template-part.is-hidden { transform: translateY(-100%); }
	.k-header__inner { gap: 0.5rem; min-height: 4rem; }
	.k-brand__role { display: none; }
	.k-header__cta { display: none !important; }
	.k-header__actions .k-phone span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
	.k-header__actions .k-phone {
		border: 1px solid var(--k-ink); border-radius: 0;
		height: 2.75rem; justify-content: center; width: 2.75rem;
	}
}
@media (max-width: 380px) {
	.k-brand__name { font-size: var(--wp--preset--font-size--medium); }
}

/* ---------- Sections: one left edge (the wide container), text at a readable measure ---------- */
.k-main > .wp-block-post-content > *:first-child { margin-top: 0; }
.wp-block-post-content > * { margin-block: 0; }
.k-section { margin-block: 0 !important; padding-block: var(--k-section); }
.k-section + .k-section:not([class*="k-band"]) { padding-top: 0; }
[class*="k-band"] + .k-section { padding-top: var(--k-section) !important; }
.k-section > :not(.alignfull) {
	margin-left: auto !important;
	margin-right: auto !important;
	max-width: var(--k-wide) !important;
}
.k-section > :is(p, ul, ol, .wp-block-heading, .wp-block-buttons, .k-toc, .k-notice, .k-price-card, .k-contact-card, .k-kv, form, address, .k-access) {
	margin-left: max(0px, calc((100% - var(--k-wide)) / 2)) !important;
	margin-right: auto !important;
	max-width: var(--k-text) !important;
}
.k-section > .wp-block-group:not(.alignwide):not(.k-qa):not(.k-stats):not(.k-person-card):not(.k-toc-layout) {
	margin-left: max(0px, calc((100% - var(--k-wide)) / 2)) !important;
	margin-right: auto !important;
}
.k-section > .k-kv { max-width: 52rem !important; }
.k-section > :is(.k-rows, .wp-block-table) { max-width: min(var(--k-wide), 60rem) !important; margin-left: max(0px, calc((100% - var(--k-wide)) / 2)) !important; }
.k-section h2 { margin-bottom: var(--wp--preset--spacing--50); margin-top: 0; }
.k-section > * + h2 { margin-top: var(--wp--preset--spacing--80); }
.k-section h3 { margin-bottom: var(--wp--preset--spacing--30); margin-top: var(--wp--preset--spacing--60); }
/* Bands: no tinted backgrounds any more (one red, one ink, everything else is a line). */
.k-band-quiet { background: var(--k-bg); border-top: 1px solid var(--k-ink); }
.k-band-quiet + .k-section { border-top: 0; }
.k-note { color: var(--k-muted); font-size: var(--wp--preset--font-size--small); }

/* Black full-width card — the one section-level surface the concept allows (design/art-direction.md §4/§8). */
.k-band-brand {
	background: var(--k-ink);
	color: #fff;
}
.k-band-brand :where(h1, h2, h3, h4) { color: #fff; }
.k-band-brand .k-mono, .k-band-brand .sec-head .mono { color: var(--k-muted-on-ink); }
.k-band-brand a:not(.k-btn) { color: var(--k-red-on-ink); }
.k-band-brand a:not(.k-btn):hover { color: #fff; }
.k-band-brand .k-note { color: var(--k-muted-on-ink); }
.k-band-brand .k-btn--outline, .k-band-brand .k-btn--outline:visited { border-color: #fff; color: #fff; }
.k-band-brand .k-btn--outline:hover { background: #fff; color: var(--k-ink); }
.k-band-brand .k-phone { color: #fff; }
.k-band-brand .k-phone:hover { color: var(--k-red-on-ink); }
.k-band-brand .wp-block-button .wp-block-button__link { background: var(--k-action); border-color: var(--k-action); color: #fff; }
.k-band-brand .wp-block-button .wp-block-button__link:hover { background: #fff; border-color: #fff; color: var(--k-ink); }
/* Price / comparison tables inside the black card: no boxed table, rows separated by hairlines (like concept .price). */
.k-band-brand .k-table { border: 0; }
.k-band-brand .k-table table { background: transparent; border: 0; color: #fff; }
.k-band-brand .k-table th, .k-band-brand .k-table td { border-bottom: 1px solid rgba(255, 255, 255, 0.28); color: #fff; }
.k-band-brand .k-table thead th { background: transparent; color: var(--k-muted-on-ink); font-family: var(--k-mono); font-size: 13px; font-weight: 500; letter-spacing: 0.03em; text-transform: uppercase; border-bottom-color: #fff; }
.k-band-brand .k-table thead th a { color: var(--k-red-on-ink); }
.k-band-brand .k-table .k-price { color: #fff; font-family: var(--k-serif); font-size: var(--wp--preset--font-size--x-large); font-variation-settings: "opsz" 20; }
.k-band-brand .k-table figcaption, .k-band-brand .k-table .wp-element-caption { color: var(--k-muted-on-ink); }
.k-band-brand .k-stat__value { color: var(--k-red-on-ink); }
.k-band-brand .k-stat { border-left-color: var(--k-red-on-ink); }
.k-band-brand .k-stat__label { color: #fff; }

/* ---------- Hero: typographic — H1 carries the page (design/art-direction.md Krok 2, F1) ---------- */
.k-hero { padding-top: clamp(2rem, 1rem + 4vw, 4.5rem); }
.k-hero h1 { margin-top: 0; max-width: 18ch; }
.k-lead { font-size: var(--wp--preset--font-size--medium); line-height: 1.45; }
.k-facts-line { color: var(--k-muted); font-size: var(--wp--preset--font-size--small); }
.k-facts-line strong { color: var(--k-ink); }
.k-hero .wp-block-group.is-layout-flex { align-items: center; gap: 0.75rem 1rem; }
.k-hero .wp-block-group.is-layout-flex > p { margin: 0; }
.k-hero .wp-block-columns { align-items: center; gap: var(--wp--preset--spacing--70); }
.k-hero__media { display: flex; justify-content: flex-end; }
/* § 4 "Kim jestem": a large portrait filling its column, no width cap (design/concept.html .about). */
.k-about__media { display: flex; justify-content: flex-end; min-width: 0; }
.k-about__media .k-figure { width: 100%; }

/* ---------- Photos: one black-and-white treatment everywhere, no frame, no shadow, no offset ---------- */
.k-figure { isolation: isolate; margin: 0; }
.k-figure picture { display: block; position: relative; }
.k-figure img { border-radius: 0; display: block; height: auto; object-fit: cover; width: 100%; filter: grayscale(1) contrast(1.05); }
.k-figure figcaption { color: var(--k-muted); font-family: var(--k-mono); font-size: 12px; letter-spacing: 0.03em; text-transform: uppercase; margin-top: 0.625rem; display: flex; justify-content: space-between; gap: 1rem; }
.k-figure--hero img, .k-figure--o-mnie img { aspect-ratio: 4 / 5; object-position: 50% 35%; }
.k-figure--rozmowa img { aspect-ratio: 3 / 2; object-position: 70% 45%; }
.k-figure--karta img { aspect-ratio: 1; object-position: 50% 35%; }
.k-hero__media .k-figure { max-width: 26rem; width: 100%; }
@media (max-width: 781px) {
	.k-hero .wp-block-columns { gap: var(--wp--preset--spacing--60); }
	.k-hero__media { justify-content: flex-start; }
	.k-hero__media .k-figure { max-width: 22rem; }
}
@media (max-width: 719px) {
	.k-figure--hero img { aspect-ratio: 1; }
}

/* ---------- P-A-16:V1 situation rows (whole row clickable; hover turns the title red) ---------- */
.k-rows { border-top: 1px solid var(--k-ink); list-style: none; margin-block: 0; padding: 0; }
.k-rows > li {
	border-bottom: 1px solid var(--k-border);
	color: var(--k-muted);
	min-height: 4rem;
	padding: 1rem 3.5rem 1rem 1rem;
	position: relative;
	transition: background-color var(--k-fast) var(--k-ease);
}
.k-rows > li > a:first-child {
	color: var(--k-ink);
	display: inline-block;
	font-family: var(--k-serif);
	font-size: var(--wp--preset--font-size--medium);
	font-variation-settings: "opsz" 18;
	font-weight: 600;
	line-height: 1.3;
	margin-bottom: 0.25rem;
	text-decoration: none;
}
.k-rows > li > a:first-child::after { content: ""; inset: 0; position: absolute; }
.k-rows > li::after {
	color: var(--k-action);
	content: "→";
	font-size: 1.5rem;
	line-height: 1;
	position: absolute;
	right: 1.25rem;
	top: 50%;
	transform: translate(0, -50%);
	transition: transform var(--k-base) var(--k-ease);
}
.k-rows > li:hover > a:first-child { color: var(--k-action); text-decoration: underline; text-decoration-thickness: 2px; }
.k-rows > li:hover::after { transform: translate(var(--k-nudge), -50%); }
.k-rows > li > a:first-child:focus-visible { outline: none; }
.k-rows > li:has(> a:first-child:focus-visible) { outline: 2px solid var(--k-ink); outline-offset: 2px; }

/* ---------- P-A-17 tables (prices, comparison, related pages): lines only, no boxed card ---------- */
.wp-block-table.k-table { margin-block: 0 var(--wp--preset--spacing--40); overflow-x: auto; }
.k-table table { background: transparent; border: 0; border-collapse: collapse; border-spacing: 0; width: 100%; }
.k-table th, .k-table td { border: 0; border-bottom: 1px solid var(--k-border); padding: 0.875rem 0.5rem; text-align: left; vertical-align: top; }
.k-table tbody tr:last-child > * { border-bottom: 1px solid var(--k-ink); }
.k-table thead th { background: transparent; border-bottom: 1px solid var(--k-ink); color: var(--k-ink); font-family: var(--k-mono); font-size: 13px; font-weight: 500; letter-spacing: 0.03em; text-transform: uppercase; }
.k-table thead th a { color: var(--k-ink); }
.k-table tbody th { color: var(--k-ink); font-weight: 600; }
.k-table .k-price { font-family: var(--k-serif); font-variation-settings: "opsz" 18; font-size: var(--wp--preset--font-size--medium); font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--k-ink); }
.k-table figcaption, .k-table .wp-element-caption { color: var(--k-muted); font-size: var(--wp--preset--font-size--small); margin-top: 0.5rem; text-align: left; }
.k-prices td:nth-child(2) { white-space: nowrap; }
.k-compare tbody td { color: var(--k-ink); }
.k-compare table { table-layout: fixed; }
.k-compare th:first-child { width: 28%; }
.k-related tbody tr { position: relative; transition: background-color var(--k-fast) var(--k-ease); }
.k-related tbody td:first-child a { color: var(--k-ink); font-weight: 600; text-decoration: none; }
.k-related tbody td:first-child a::after { content: ""; inset: 0; position: absolute; }
.k-related tbody td:first-child a::before { content: "→ "; color: var(--k-action); display: inline-block; transition: transform var(--k-base) var(--k-ease); }
.k-related tbody tr:hover td:first-child a { color: var(--k-action); text-decoration: underline; }
.k-related tbody tr:hover td:first-child a::before { transform: translateX(var(--k-nudge)); }
.k-related tbody td:last-child { color: var(--k-muted); }
.k-related td:first-child a:focus-visible { outline: none; }
.k-related tbody tr:has(a:focus-visible) { outline: 2px solid var(--k-ink); outline-offset: -2px; }
@media (max-width: 781px) {
	.k-table th, .k-table td { padding: 0.75rem 0.375rem; }
	.k-compare table { table-layout: auto; font-size: var(--wp--preset--font-size--small); }
	.k-compare th:first-child { width: auto; }
	.k-table th, .k-table td { overflow-wrap: normal; word-break: normal; hyphens: auto; -webkit-hyphens: auto; }
	.k-prices thead th:nth-child(3), .k-prices td:nth-child(3) { display: none; }
	.k-related table, .k-related tbody, .k-related tr, .k-related td { display: block; }
	.k-related thead { display: none; }
	.k-related tbody td { border-bottom: 0; padding-block: 0.25rem; }
	.k-related tbody tr { border-bottom: 1px solid var(--k-border); padding-block: 0.625rem; }
	.k-related tbody tr:last-child { border-bottom: 0; }
}

/* ---------- P-A-30:V1 key → value summary list (GOV.UK style) ---------- */
.k-kv { border-top: 1px solid var(--k-ink); margin-block: 0; }
.k-kv__row { border-bottom: 1px solid var(--k-border); display: grid; gap: 0.25rem 2rem; grid-template-columns: minmax(12rem, 2fr) 3fr; padding-block: 0.875rem; }
.k-kv dt { color: var(--k-ink); font-weight: 600; }
.k-kv dd { margin: 0; }
.k-kv--wide .k-kv__row { grid-template-columns: minmax(14rem, 2fr) 3fr; }
@media (max-width: 781px) {
	.k-kv__row { grid-template-columns: 1fr; }
}

/* ---------- P-A-33 key-number band: no box, a red rule marks each number ---------- */
.k-stats {
	background: none;
	border-top: 1px solid var(--k-ink);
	display: grid;
	gap: var(--wp--preset--spacing--50) var(--wp--preset--spacing--60);
	grid-template-columns: repeat(auto-fit, minmax(min(13rem, 100%), 1fr));
	margin-block: 0 var(--wp--preset--spacing--50);
	padding: var(--wp--preset--spacing--60) 0 0;
}
.k-stat { border-left: 3px solid var(--k-action); padding-left: var(--wp--preset--spacing--40); }
.k-stat > * { margin-block: 0; }
.k-stat__value { color: var(--k-action); font-family: var(--k-serif); font-size: var(--wp--preset--font-size--x-large); font-variation-settings: "opsz" 20; font-variant-numeric: tabular-nums; line-height: 1; }
.k-stat__value .k-price { color: inherit; }
.k-stat__label { color: var(--k-ink); font-size: var(--wp--preset--font-size--small); margin-top: 0.5rem !important; }
.k-stat__label strong { display: block; font-size: var(--wp--preset--font-size--base); }

/* ---------- P-A-29:V2 vertical numbered steps — numbers set in monospace, joined by a line ---------- */
.k-steps { counter-reset: k-step; display: grid; gap: var(--wp--preset--spacing--50); list-style: none; padding: 0; }
.k-steps > li { counter-increment: k-step; min-height: 2.5rem; padding-left: 3.5rem; position: relative; }
.k-steps > li::before {
	align-items: center; background: var(--k-surface); border: 1px solid var(--k-ink); color: var(--k-ink);
	content: counter(k-step); display: flex; font-family: var(--k-mono); font-size: 13px; font-variant-numeric: tabular-nums; font-weight: 500; height: 2.25rem; justify-content: center;
	left: 0; position: absolute; top: -0.125rem; width: 2.25rem; z-index: 1;
}
.k-steps > li:not(:last-child)::after {
	background: var(--k-border); bottom: calc(-1 * var(--wp--preset--spacing--50)); content: ""; left: calc(1.125rem - 1px); position: absolute; top: 2.25rem; width: 1px;
}
.k-steps > li strong:first-child { color: var(--k-ink); font-family: var(--k-serif); font-variation-settings: "opsz" 16; }

/* ---------- P-A-28:V1 visible Q&A in two columns (no icons) / P-A-16 list on /pytania/ ---------- */
.k-qa { display: grid; gap: var(--wp--preset--spacing--60) var(--wp--preset--spacing--70); margin-block: 0; }
.k-qa__item > * { margin-block: 0; }
.k-qa__item h3 { font-size: var(--wp--preset--font-size--medium); margin: 0 0 var(--wp--preset--spacing--20) !important; }
.k-qa__item h3 + * { margin-top: 0; }
.k-qa__item > * + * { margin-top: var(--wp--preset--spacing--30); }
@media (min-width: 782px) {
	.k-qa:not(.k-qa--list) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.k-qa--list { gap: 0; max-width: var(--k-text); border-top: 1px solid var(--k-ink); }
.k-qa--list .k-qa__item { border-bottom: 1px solid var(--k-border); padding-block: var(--wp--preset--spacing--50); }

/* ---------- P-A-28:V2 checklists (✓ = "this fits you"; document icon on /o-mnie/) ---------- */
.k-check { list-style: none; padding: 0; }
.k-check > li { padding-left: 2rem; position: relative; }
.k-check > li + li { margin-top: 0.5rem; }
.k-check > li::before {
	background: var(--k-ink);
	content: "";
	height: 1.25rem;
	left: 0;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12.5l5 5L20 6.5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12.5l5 5L20 6.5'/%3E%3C/svg%3E") center / contain no-repeat;
	position: absolute;
	top: 0.2em;
	width: 1.25rem;
}
.k-check--doc > li::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 3v5h5M9 13h6M9 17h4'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 3v5h5M9 13h6M9 17h4'/%3E%3C/svg%3E");
}

/* ---------- P-A-14:V3 "Na tej stronie": sticky side column ≥ 1200 px, visible list on top below ---------- */
.k-toc-layout { margin-inline: auto; max-width: calc(var(--k-wide) + 2 * var(--k-gutter)); padding-inline: var(--k-gutter); padding-top: var(--wp--preset--spacing--60); }
.k-toc-layout__main > .k-section { padding-inline: 0 !important; }
.k-toc-layout__main > .k-section:first-child { padding-top: 0; }
.k-toc-layout__main .k-section > * { margin-left: 0 !important; }
.k-toc-layout__main .k-section > :not(.alignfull) { max-width: 100% !important; }
.k-toc-layout__main .k-section > :is(p, ul, ol, .wp-block-heading, .wp-block-buttons, .k-kv, .k-qa--list, .k-notice) { max-width: var(--k-text) !important; }
.k-toc-layout__main .k-section > .k-kv { max-width: 52rem !important; }
.k-toc-layout__main .k-section + .k-section { padding-top: var(--wp--preset--spacing--80); }
.k-toc {
	background: var(--k-surface);
	border: 1px solid var(--k-ink);
	border-radius: 0;
	margin: 0 0 var(--wp--preset--spacing--50);
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50);
}
.k-toc__title { color: var(--k-muted); font-family: var(--k-mono); font-size: 12px; font-weight: 500; letter-spacing: 0.04em; margin: 0 0 0.5rem; text-transform: uppercase; }
.k-toc ul { list-style: none; margin: 0; padding: 0; }
.k-toc li a {
	border-left: 3px solid transparent;
	color: var(--k-ink);
	display: block;
	padding: 0.375rem 0 0.375rem 0.75rem;
	text-decoration: none;
	transition: border-color var(--k-fast) var(--k-ease), color var(--k-fast) var(--k-ease);
}
.k-toc li a:hover { color: var(--k-action); text-decoration: underline; }
.k-toc li a[aria-current="true"] { border-left-color: var(--k-action); color: var(--k-ink); font-weight: 600; }
@media (min-width: 1200px) {
	.k-toc-layout { align-items: start; column-gap: var(--wp--preset--spacing--80); display: grid; grid-template-columns: 16rem minmax(0, 1fr); padding-top: var(--wp--preset--spacing--70); }
	.k-toc {
		background: transparent;
		border: 0;
		border-right: 1px solid var(--k-border);
		border-radius: 0;
		margin: 0;
		max-height: calc(100vh - 4rem);
		overflow: auto;
		padding: 0 var(--wp--preset--spacing--40) 0 0;
		position: sticky;
		top: 2rem;
	}
	.k-toc li a { font-size: var(--wp--preset--font-size--small); }
}

/* ---------- People: P-B-13:V2 (home, photo at work) and P-B-13:V3 (card, text first, 160 px photo) ---------- */
.k-person-split { align-items: center; gap: var(--wp--preset--spacing--70) !important; }
.k-person-split h2 { margin-top: 0; }
.k-person-card {
	align-items: flex-start;
	background: none;
	border-top: 1px solid var(--k-ink);
	border-radius: 0;
	display: flex;
	gap: var(--wp--preset--spacing--50);
	justify-content: space-between;
	margin-left: 0 !important;
	max-width: 48rem !important;
	padding: var(--wp--preset--spacing--50) 0 0;
}
.k-person-card__text > * { margin-block: 0 0.5rem; }
.k-person-card__text > :last-child { margin-bottom: 0; }
.k-kicker { color: var(--k-muted) !important; font-family: var(--k-mono) !important; font-size: 12px !important; letter-spacing: 0.06em; text-transform: uppercase; }
.k-person-card__name { color: var(--k-ink); font-family: var(--k-serif); font-size: var(--wp--preset--font-size--large); font-variation-settings: "opsz" 18; font-weight: 600; line-height: 1.2; }
.k-person-card .k-figure { flex: none; width: 160px; }
.k-section:not(.k-toc-layout__main *) > .k-person-card { margin-left: max(0px, calc((100% - var(--k-wide)) / 2)) !important; }
@media (max-width: 559px) {
	.k-person-card { flex-direction: column-reverse; }
	.k-person-card .k-figure { width: 120px; }
}

/* ---------- Pricing: P-B-21 single price card — line-bordered, no shadow ---------- */
.k-price-card {
	background: none;
	border-top: 3px solid var(--k-ink);
	border-radius: 0;
	max-width: 44rem !important;
	padding: var(--wp--preset--spacing--60) 0 0;
}
.k-price-card > :first-child { margin-top: 0; }
.k-price-card > :last-child { margin-bottom: 0; }
.k-price-card__price, .k-price-card__price .k-price { color: var(--k-ink); font-family: var(--k-serif); font-size: var(--wp--preset--font-size--large); font-variation-settings: "opsz" 18; }
.k-price-card .k-facts-line { font-size: var(--wp--preset--font-size--base); }

/* ---------- Contact: P-B-30:V4 final band, P-B-33 blocks, cards ---------- */
.k-contact-card {
	background: none;
	border-left: 3px solid var(--k-action);
	border-radius: 0;
	padding: 0 0 0 var(--wp--preset--spacing--50);
}
.k-contact-card > :first-child { margin-top: 0; }
.k-contact-card > :last-child { margin-bottom: 0; }
.k-contact-card h2 { font-size: var(--wp--preset--font-size--large); }
.k-band-brand .k-contact-card { border-left-color: var(--k-red-on-ink); }
.k-final-cta .wp-block-columns { align-items: center; gap: var(--wp--preset--spacing--70); }
.k-final-cta h2 { margin-top: 0; }
.k-contact-split { align-items: flex-start; gap: var(--wp--preset--spacing--70) !important; }
.k-contact-split h2 { margin-top: 0; }
.k-office { align-items: flex-start; gap: var(--wp--preset--spacing--60) !important; }
.k-address { font-style: normal; }
.k-access { color: var(--k-muted); }
.k-directions::after { content: " ↗"; }
.k-map { aspect-ratio: 16 / 9; border: 1px solid var(--k-ink); border-radius: 0; display: block; overflow: hidden; position: relative; text-decoration: none; }
.k-map svg { display: block; height: 100%; width: 100%; }
.k-map__label { background: var(--k-surface); border: 1px solid var(--k-ink); border-radius: 0; bottom: 1rem; color: var(--k-ink); font-family: var(--k-mono); font-size: 12px; left: 1rem; padding: 0.5rem 0.75rem; position: absolute; }
.k-map__cta { background: var(--k-ink); border-radius: 0; color: #fff; font-family: var(--k-mono); font-size: 12px; letter-spacing: 0.03em; text-transform: uppercase; font-weight: 500; padding: 0.5rem 0.75rem; position: absolute; right: 1rem; top: 1rem; transition: background-color var(--k-fast) var(--k-ease); }
.k-map:hover .k-map__cta { background: var(--k-action); }

/* O-04: sticky heading 4/12 + text 8/12 (P-A-27:V1) */
@media (min-width: 782px) {
	.k-sticky-split { align-items: flex-start !important; gap: var(--wp--preset--spacing--70) !important; }
	.k-sticky-split > .wp-block-column:first-child { position: sticky; top: 2rem; }
}
.k-sticky-split h2 { margin-top: 0; }

/* ---------- Notices: red line = attention, no colour fill (design/art-direction.md Krok 4) ---------- */
.k-notice {
	background: none;
	border-left: 4px solid var(--wp--preset--color--error);
	border-radius: 0;
	color: var(--k-ink);
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50);
}
.k-notice > :first-child { margin-top: 0; }
.k-notice > :last-child { margin-bottom: 0; }
.k-notice__label {
	align-items: center; color: var(--wp--preset--color--error); display: flex; font-family: var(--k-mono); font-size: 12px;
	font-weight: 500; gap: 0.5rem; letter-spacing: 0.06em; margin-bottom: 0.25rem; text-transform: uppercase;
}
.k-notice__label::before {
	background: currentColor; content: ""; flex: none; height: 1.25rem; width: 1.25rem;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.5v5.5M12 16.5v.01'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.5v5.5M12 16.5v.01'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---------- Breadcrumbs: full trail on wide screens, "‹ parent" on phones ---------- */
.k-breadcrumbs { box-sizing: content-box; margin: 1rem auto 0; max-width: var(--k-wide); padding-inline: var(--k-gutter); }
.k-breadcrumbs ol { color: var(--k-muted); display: flex; flex-wrap: wrap; font-family: var(--k-mono); font-size: 12px; gap: 0.25rem 0.5rem; list-style: none; margin: 0; padding: 0; text-transform: uppercase; letter-spacing: 0.02em; }
.k-breadcrumbs li + li::before { color: var(--k-muted); content: "›"; margin-right: 0.5rem; }
.k-breadcrumbs a:hover { color: var(--k-action); }
@media (max-width: 781px) {
	.k-breadcrumbs li { display: none; }
	.k-breadcrumbs li:nth-last-child(2) { display: block; }
	.k-breadcrumbs li:nth-last-child(2)::before { content: "‹ "; }
	.k-breadcrumbs li:nth-last-child(2) a { display: inline-flex; align-items: center; min-height: 2.75rem; }
}

/* ---------- Copy e-mail ---------- */
.k-copy { background: none; border: 1px solid var(--k-border-strong); border-radius: 0; color: var(--k-ink); cursor: pointer; font: inherit; font-size: var(--wp--preset--font-size--small); margin-left: 0.5rem; min-height: 2rem; padding: 0.25rem 0.625rem; }
.k-copy:hover { background: var(--k-ink); color: #fff; }
.k-copy-status { color: var(--k-action); font-size: var(--wp--preset--font-size--small); margin-left: 0.5rem; }

/* ---------- Form (P-B-34:V2): square fields, ink borders, red = error line ---------- */
.k-form { display: grid; gap: var(--wp--preset--spacing--50); max-width: 36rem; }
.k-form__intro { margin: 0; }
.k-field { display: grid; gap: 0.375rem; }
.k-field label { font-weight: 600; }
.k-optional { color: var(--k-muted); font-weight: 400; }
.k-field__hint { color: var(--k-muted); font-size: var(--wp--preset--font-size--small); margin: 0; }
.k-field input, .k-field select, .k-field textarea {
	background: var(--k-surface);
	border: 1px solid var(--k-border-strong);
	border-radius: 0;
	color: var(--k-ink);
	font: inherit;
	height: var(--k-control);
	line-height: 1.4;
	padding: 0.5rem 0.875rem;
	width: 100%;
}
.k-field textarea { height: auto; min-height: 8rem; resize: vertical; }
.k-field input:focus-visible, .k-field select:focus-visible, .k-field textarea:focus-visible { border-color: var(--k-ink); outline: 2px solid var(--k-ink); outline-offset: 0; }
.k-field [aria-invalid="true"] { border: 2px solid var(--wp--preset--color--error); }
.k-field__error { align-items: center; color: var(--k-ink); display: flex; font-weight: 600; gap: 0.375rem; margin: 0; }
.k-field__error svg { color: var(--wp--preset--color--error); }
.k-error-summary { background: none; border: 2px solid var(--wp--preset--color--error); border-radius: 0; padding: 1rem 1.25rem; }
.k-error-summary__title { color: var(--wp--preset--color--error); font-weight: 600; margin: 0 0 0.5rem; }
.k-error-summary ul { margin: 0; padding-left: 1.25rem; }
.k-error-summary a { color: var(--wp--preset--color--error); }
.k-form-success { background: none; border: 2px solid var(--k-ink); border-radius: 0; padding: 1.25rem 1.5rem; }
.k-form-success__title { color: var(--k-ink); font-family: var(--k-serif); font-size: var(--wp--preset--font-size--large); font-variation-settings: "opsz" 18; font-weight: 600; margin-top: 0; }
.k-form-success__title::before { content: "✓ "; color: var(--k-action); }
.k-form__legal { color: var(--k-muted); font-size: var(--wp--preset--font-size--small); margin: 0; }
.k-form [data-k-submit] { justify-self: start; }
.k-form [data-k-submit][aria-busy="true"] { cursor: progress; opacity: 0.62; }
.k-hp { height: 1px; left: -9999px; overflow: hidden; position: absolute; width: 1px; }

/* ---------- Quick exit (B-10) ---------- */
.k-quick-exit {
	background: var(--k-ink); border: 0; border-radius: 0; box-shadow: none; color: #fff; cursor: pointer;
	font: inherit; font-weight: 600; min-height: 2.75rem; padding: 0.5rem 1rem; position: fixed; right: 1rem; top: 5.5rem; z-index: 50;
}
.k-quick-exit:hover { background: var(--k-action); }

/* ---------- Footer: already the one dark surface the concept allows; red-on-ink for links ---------- */
.k-footer {
	background: var(--k-ink);
	color: var(--k-bg);
	font-size: var(--wp--preset--font-size--small);
	padding-block: var(--wp--preset--spacing--80);
}
.k-footer .wp-block-columns { gap: var(--wp--preset--spacing--70); }
.k-footer a, .k-footer .k-phone { color: var(--k-red-on-ink); }
.k-footer a:hover, .k-footer .k-phone:hover { color: #fff; }
.k-footer :where(a, button):focus-visible { outline-color: var(--k-bg); }
.k-footer__title { color: #fff; font-family: var(--k-serif); font-size: var(--wp--preset--font-size--medium); font-variation-settings: "opsz" 14; font-weight: 600; margin-bottom: 0.5rem; }
.k-footer__links { list-style: none; padding: 0; }
.k-footer__links li { margin-bottom: 0.375rem; }
.k-footer__note, .k-footer .k-access { color: var(--k-muted-on-ink); }

/* ---------- Bottom action bar: phones only (P-A-13:V3, B-12) ---------- */
.k-bottombar { display: none; }
@media (max-width: 781px) {
	:root { --k-bottombar-h: calc(4.5rem + env(safe-area-inset-bottom, 0px)); }
	body { padding-bottom: var(--k-bottombar-h); }
	.k-bottombar {
		background: var(--k-surface);
		border-top: 1px solid var(--k-ink);
		bottom: 0;
		box-shadow: none;
		display: flex;
		gap: 0.5rem;
		left: 0;
		margin: 0 !important;
		padding: 0.75rem var(--k-gutter) calc(0.75rem + env(safe-area-inset-bottom, 0px));
		position: fixed;
		right: 0;
		transition: transform var(--k-slow) var(--k-ease);
		z-index: 30;
	}
	.k-bottombar > * { flex: 1; }
	.k-bottombar.is-hidden { transform: translateY(110%); }
	body.k-no-bottombar { padding-bottom: 0; }
	body.k-no-bottombar .k-bottombar { display: none; }
	.k-quick-exit { top: 4.75rem; right: 0.75rem; }
}

/* ---------- Columns ---------- */
@media (min-width: 782px) {
	.wp-block-columns { gap: var(--wp--preset--spacing--60); }
}
.k-bottombar .k-btn { padding-inline: 0.75rem; text-align: center; }

/* =====================================================================
   Home page only: the editorial "case file" grid from design/concept.html —
   margin column with sticky § numbers, content column, margin-notes column,
   and the red margin rule running the height of the page.
   ===================================================================== */
/* The home editorial grid is drawn at the concept's own 1440 px canvas, wider than the
   site's regular 72rem measure — .alignfull escapes the sitewide wide-size cap. */
.k-doc.alignfull {
	display: grid;
	grid-template-columns: var(--k-margin-col) minmax(0, 1fr) clamp(0px, 20vw, 264px);
	column-gap: clamp(20px, 3vw, 48px);
	max-width: 1440px !important;
	margin-inline: auto !important;
	padding-inline: var(--k-gutter);
	position: relative;
}
.k-sec-head { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-bottom: clamp(28px, 4vw, 56px); }
.k-sec-head h2 { margin: 0; }
.k-sec-head .k-mono { color: var(--k-muted); }
.k-band-brand .k-sec-head .k-mono { color: var(--k-muted-on-ink); }
.k-section--ruled { border-top: 1px solid var(--k-ink); }
/* Closes the document like a signature line under the last clause (design/art-direction.md §7). */
.k-section--close { border-bottom: 3px solid var(--k-ink); }
/* The home hero sits right under the masthead — the concept's own small gap, not a full
   section rhythm plus the hero's own padding stacked on top of it. */
.k-section--tight { padding-top: clamp(1.5rem, 1rem + 2vw, 3rem) !important; }
.k-doc .k-hero { padding-top: 0; }
.k-doc::before {
	content: "";
	position: absolute;
	top: 0; bottom: 0;
	left: calc(var(--k-margin-col) + var(--k-gutter) - 24px);
	width: 1px;
	background: var(--k-action);
	transform-origin: top;
	animation: k-draw 1.2s cubic-bezier(0.2, 0.7, 0.2, 1) both;
}
@keyframes k-draw { from { transform: scaleY(0); } }
.k-doc__margin { grid-column: 1; }
.k-doc__body { grid-column: 2; min-width: 0; }
.k-doc__notes { grid-column: 3; align-self: start; }
.k-doc__wide { grid-column: 2 / 4; min-width: 0; }
.k-band-brand .k-doc::before { background: var(--k-red-on-ink); animation: none; }

.k-clause {
	font-family: var(--k-serif);
	font-size: clamp(40px, 4.5vw, 64px);
	line-height: 0.85;
	color: var(--k-action);
	font-weight: 500;
	font-variation-settings: "opsz" 11;
	position: sticky; top: 24px;
}
.k-clause small { display: block; font-family: var(--k-mono); font-size: 12px; line-height: 1.4; letter-spacing: 0.04em; text-transform: uppercase; color: var(--k-muted); margin-top: 14px; max-width: 150px; }
.k-band-brand .k-clause { color: var(--k-red-on-ink); }
.k-band-brand .k-clause small { color: var(--k-muted-on-ink); }

.k-home-hero h1 {
	font-size: clamp(46px, 8vw, 116px);
	line-height: 0.94;
	font-weight: 500;
	font-variation-settings: "opsz" 14;
	letter-spacing: 0;
	text-wrap: balance;
	max-width: none;
	margin-bottom: clamp(28px, 3vw, 40px);
}
.k-home-hero h1 .line { display: block; animation: k-rise 0.8s cubic-bezier(0.2, 0.7, 0.2, 1) both; }
.k-home-hero h1 .line:nth-child(2) { animation-delay: 0.12s; }
.k-home-hero h1 .line:nth-child(3) { animation-delay: 0.24s; }
@keyframes k-rise { from { opacity: 0; transform: translateY(24px); } }
.k-home-hero h1 .dash { font-family: var(--k-sans); font-weight: 300; color: var(--k-action); letter-spacing: -0.05em; }
.k-home-hero h1 em { font-style: italic; font-weight: 400; position: relative; white-space: nowrap; }
.k-home-hero h1 em::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0.04em; height: 0.035em;
	background: var(--k-action);
	transform-origin: left; animation: k-draw-x 1s 0.9s cubic-bezier(0.2, 0.7, 0.2, 1) both;
}
@keyframes k-draw-x { from { transform: scaleX(0); } }
.k-home-hero .k-lead { max-width: 34ch; }

.k-margin-note {
	border-left: 2px solid var(--k-action); padding: 2px 0 2px 16px; margin: 0 0 18px;
	animation: k-rise 0.8s 0.6s both;
}
.k-margin-note .k { display: block; margin-bottom: 4px; color: var(--k-action); }
.k-margin-note .v { font-family: var(--k-serif); font-size: 27px; line-height: 1.05; font-variation-settings: "opsz" 14; display: block; color: var(--k-ink); }
.k-margin-note .v small { font-family: var(--k-sans); font-size: 14px; color: var(--k-muted); display: block; margin-top: 6px; font-weight: 400; }

.k-paths { display: grid; grid-template-columns: 1fr 1fr; gap: 0 48px; }
.k-path { border-top: 1px solid var(--k-ink); padding: 26px 0 40px; text-decoration: none; display: grid; grid-template-columns: 64px 1fr; gap: 8px 20px; }
.k-path .n { font-family: var(--k-mono); font-size: 14px; color: var(--k-action); padding-top: 8px; }
.k-path h3 { grid-column: 2; font-size: clamp(22px, 2.2vw, 30px); line-height: 1.1; font-variation-settings: "opsz" 18; transition: color var(--k-fast) var(--k-ease); margin: 0; }
.k-path p { grid-column: 2; margin: 0; color: var(--k-muted); max-width: 40ch; }
.k-path .go { grid-column: 2; font-family: var(--k-mono); font-size: 13px; text-transform: uppercase; letter-spacing: 0.04em; margin-top: 6px; }
.k-path:hover h3 { color: var(--k-action); }
.k-path:hover .go { color: var(--k-action); }

.k-price-rows { border-top: 1px solid #fff; }
.k-price-row { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 8px 40px; align-items: baseline; padding: 28px 0; border-bottom: 1px solid rgba(255, 255, 255, 0.28); }
.k-price-row .what { font-size: 20px; font-weight: 500; }
.k-price-row .what small { display: block; font-family: var(--k-mono); font-size: 13px; color: var(--k-muted-on-ink); font-weight: 400; margin-top: 6px; text-transform: uppercase; letter-spacing: 0.03em; }
.k-price-row .amt { font-family: var(--k-serif); font-size: clamp(36px, 5vw, 72px); line-height: 1; font-variation-settings: "opsz" 20; text-align: right; white-space: nowrap; }
.k-price-row .amt i { font-style: italic; font-size: 0.5em; font-weight: 400; margin-right: 0.2em; color: var(--k-muted-on-ink); }
.k-fineprint { display: grid; grid-template-columns: 1fr auto; gap: 24px 48px; align-items: end; margin-top: 32px; }
.k-fineprint p { margin: 0; color: var(--k-muted-on-ink); max-width: 60ch; }
.k-fineprint p b { color: #fff; font-weight: 500; }
.k-link { font-family: var(--k-mono); font-size: 13px; text-transform: uppercase; letter-spacing: 0.05em; text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 3px; color: var(--k-action); }
.k-band-brand .k-link { color: var(--k-red-on-ink); }
.k-link:hover { color: var(--k-ink); }
.k-band-brand .k-link:hover { color: #fff; }

.k-rules { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--k-ink); }
.k-rules li { display: grid; grid-template-columns: 64px 1fr; gap: 20px; padding: 16px 0; border-bottom: 1px solid var(--k-border); font-family: var(--k-serif); font-size: 22px; line-height: 1.25; font-variation-settings: "opsz" 12; }
.k-rules li .dash { font-family: var(--k-sans); color: var(--k-action); font-weight: 300; }
.k-rules li .n { font-family: var(--k-mono); font-size: 14px; color: var(--k-action); padding-top: 6px; }

/* Numbered clauses — the same "§ n.n" system continued into the process steps and the FAQ,
   so the home page keeps its one idea all the way to the footer (design/art-direction.md, Krok 5). */
.k-clauses { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--k-ink); }
.k-clauses > li { border-bottom: 1px solid var(--k-border); display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 8px 20px; padding: 24px 0; }
.k-clauses > li > .n { color: var(--k-action); font-family: var(--k-mono); font-size: 14px; padding-top: 6px; }
.k-clauses > li > div { min-width: 0; }
.k-clauses > li > div > strong { color: var(--k-ink); display: block; font-family: var(--k-serif); font-size: var(--wp--preset--font-size--medium); font-variation-settings: "opsz" 16; font-weight: 600; line-height: 1.25; margin-bottom: 4px; }
.k-clauses > li > div > p { color: var(--k-muted); margin: 0; max-width: 60ch; }
.k-clauses > li > div > p a { color: var(--k-ink); }
@media (max-width: 480px) {
	.k-clauses > li { grid-template-columns: 48px 1fr; }
}

@media (max-width: 860px) {
	:root { --k-margin-col: 0px; }
	.k-doc, .k-doc.alignfull { grid-template-columns: minmax(0, 1fr); column-gap: 0; max-width: none !important; }
	.k-doc::before { display: none; }
	.k-doc__margin, .k-doc__body, .k-doc__notes, .k-doc__wide { grid-column: 1; }
	.k-clause { position: static; font-size: 48px; margin-bottom: 20px; display: flex; align-items: baseline; gap: 16px; }
	.k-clause small { margin: 0; max-width: none; }
	.k-doc__notes { margin-top: 36px; display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; }
	.k-margin-note { margin-bottom: 18px; }
	.k-margin-note .v { font-size: 22px; }
	.k-paths { grid-template-columns: 1fr; }
	.k-price-row { grid-template-columns: 1fr; gap: 6px; }
	.k-price-row .amt { text-align: left; }
}
@media (max-width: 480px) {
	.k-doc__notes { grid-template-columns: 1fr; }
	.k-path { grid-template-columns: 48px 1fr; }
	.k-rules li { grid-template-columns: 48px 1fr; font-size: 19px; }
	.k-clause { font-size: 40px; }
}
@media (prefers-reduced-motion: reduce) {
	.k-doc::before, .k-home-hero h1 .line, .k-home-hero h1 em::after, .k-margin-note { animation: none; }
}
