/* ==========================================================================
   Przystań — theme stylesheet. Rebuilt to the approved concept "Plakat na
   ścianie" (design/art-direction.md, design/concept.html): black + paper +
   one acid colour, huge condensed uppercase type, sharp 0 px shapes, diagonal
   cuts, a departure-board schedule. Built only from tokens.css.
   Sections: 1 base · 2 layout & surfaces · 3 header/footer/action bar ·
   4 buttons, notices, forms · 5 class card + 13 states (departure-board rows)
   6 schedule (week ≥ 1200 px, day list below) · 7 module pages ·
   8 section patterns (class kp-<id>) · 9 home-only poster sections ·
   10 print / motion
   ========================================================================== */

/* ---------- 1. Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-padding-top: 6rem; -webkit-text-size-adjust: 100%; overflow-x: clip; }
body { margin: 0; background: var(--color-background); color: var(--color-text); font-family: var(--font-body); font-size: var(--step-0); line-height: var(--leading-relaxed); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
::selection { background: var(--acid); color: var(--ink); }
h1, h2, h3, h4 { font-family: var(--font-condensed); font-weight: var(--weight-bold); text-transform: uppercase; letter-spacing: var(--tracking-tight); line-height: var(--leading-snug); text-wrap: balance; margin: 0 0 var(--space-4); }
h1, h2 { font-family: var(--font-display); font-weight: 400; line-height: var(--leading-tight); letter-spacing: 0; }
h1 { font-size: var(--step-5); max-inline-size: 18ch; }
h2 { font-size: var(--step-3); margin-block-start: var(--space-12); max-inline-size: 14ch; }
h3 { font-size: var(--step-2); }
h4 { font-size: var(--step-1); }
p, ul, ol, dl { margin: 0 0 var(--space-4); }
p { max-inline-size: var(--measure-body); }
a { color: var(--color-link); text-decoration: underline; text-underline-offset: 0.18em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: var(--focus-ring-width) solid var(--color-focus-ring); outline-offset: var(--focus-ring-offset); }
img { max-inline-size: 100%; block-size: auto; }
address { font-style: normal; }
del { text-decoration-thickness: 1px; }
.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 { clip-path: none; height: auto; width: auto; margin: 0; padding: var(--space-3) var(--space-4); background: var(--acid); color: var(--ink); z-index: var(--z-toast); left: var(--space-2); top: var(--space-2); font-weight: var(--weight-bold); text-transform: uppercase; }
[hidden] { display: none !important; }
.k-outline { color: transparent; -webkit-text-stroke: 2px var(--acid); paint-order: stroke; }
.kp-section--acid .k-outline, .kp-section--paper .k-outline { -webkit-text-stroke-color: var(--ink); }
.k-arr { font-family: var(--font-mono); font-weight: var(--weight-bold); }
.k-link { font-weight: var(--weight-semibold); }
.k-caption, figcaption { font-family: var(--font-mono); font-size: var(--step--2); text-transform: uppercase; letter-spacing: var(--tracking-caps); color: var(--color-text-muted); margin-block-start: var(--space-2); }

/* ---------- 2. Layout & surfaces ---------- */
.k-container { inline-size: 100%; max-inline-size: var(--container-default); margin-inline: auto; padding-inline: var(--space-page-x); }
/* No outer content column (art-direction §5): every page carries its own gutter here instead of
   relying on a theme.json "constrained" layout, so a section can cancel it and go edge to edge. */
.k-main { padding-block: var(--space-8) var(--space-section-md); }
.k-main > *, .wp-block-post-content > * { padding-inline: var(--space-page-x); }
.k-main > .wp-block-post-content > * + * { margin-block-start: var(--space-4); }
.k-page-title { margin-block-end: var(--space-6); padding-inline: var(--space-page-x); }
.wp-site-blocks > * + * { margin-block-start: 0; }
.alignfull { inline-size: 100%; padding-inline: 0 !important; }
.k-band-alt { background: var(--color-surface-2); }
.k-section { padding-block: var(--space-section-sm); }

/* section surfaces: scoping these custom properties re-themes every component
   inside (buttons, links, borders, text) without a single component rewrite —
   art-direction §4 "rytm ciemne / jasne / kwas / ciemne". */
.kp-section--paper {
	background: var(--paper); color: var(--ink);
	--color-background: var(--paper); --color-surface: var(--paper); --color-surface-2: #e6e6e3;
	--color-text: var(--ink); --color-text-muted: #5c5c58; --color-text-strong-muted: #3a3a3a;
	--color-border: #d0d0cc; --color-border-strong: #b8b8b3; --color-control-border: #737373;
	--color-secondary-border: var(--ink); --color-link: var(--ink); --color-focus-ring: var(--ink);
	--shadow-hard: var(--shadow-hard-ink);
}
/* acid fails contrast as text or a ring on paper (1.9:1); keep it only as a decorative underline */
.kp-section--paper a { text-decoration-color: var(--acid); }
.kp-section--acid {
	background: var(--acid); color: var(--ink);
	--color-background: var(--acid); --color-surface: var(--acid); --color-surface-2: #c2ee22;
	--color-text: var(--ink); --color-text-muted: #3a3a3a; --color-text-strong-muted: #1a1a1a;
	--color-border: var(--ink); --color-border-strong: var(--ink); --color-control-border: var(--ink);
	--color-secondary-border: var(--ink); --color-link: var(--ink); --color-focus-ring: var(--ink);
	--color-primary: var(--ink); --color-on-primary: var(--acid);
	--shadow-hard: var(--shadow-hard-ink);
}
.k-caption, figcaption { color: inherit; }
.kp-section--paper .k-caption, .kp-section--paper figcaption,
.kp-section--acid .k-caption, .kp-section--acid figcaption { color: var(--color-text-muted); }

/* diagonal cut: place on a section to slice its bottom edge into the next
   surface's colour (concept .hero::after / .prices::before). */
.k-cut-down { position: relative; }
.k-cut-down::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: var(--space-cut); background: var(--ink); clip-path: polygon(0 100%, 100% 0, 100% 100%); pointer-events: none; }
.k-cut-up { position: relative; }
.k-cut-up::before { content: ""; position: absolute; left: 0; right: 0; top: -1px; height: var(--space-cut); background: var(--ink); clip-path: polygon(0 0, 100% 0, 0 100%); pointer-events: none; }
.kp-section--paper.k-cut-up::before, .kp-section--paper.k-cut-down::after { background: var(--paper); }
.kp-section--acid.k-cut-up::before, .kp-section--acid.k-cut-down::after { background: var(--acid); }

/* ---------- 3. Header, utility strip, navigation, footer, action bar ---------- */
.k-header { background: var(--color-background); position: relative; z-index: var(--z-sticky); }
.k-utility { font-family: var(--font-mono); font-size: var(--step--1); text-transform: uppercase; letter-spacing: var(--tracking-caps); border-block-end: var(--border-hairline) solid var(--color-border); }
.k-utility__inner { display: flex; justify-content: space-between; align-items: center; gap: var(--space-4); min-block-size: 2.5rem; }
.k-utility p { margin: 0; color: var(--color-text-muted); }
.k-utility__hours { position: relative; padding-inline-start: var(--space-5); }
.k-utility__hours::before { content: ""; position: absolute; left: 0; top: 50%; translate: 0 -50%; inline-size: 8px; block-size: 8px; background: var(--acid); animation: k-blink 1.6s steps(2) infinite; }
.k-utility__links { display: flex; gap: var(--space-6); list-style: none; padding: 0; margin: 0; }
.k-utility a { color: var(--color-text-muted); text-decoration: none; }
.k-utility a:hover, .k-utility a[aria-current] { color: var(--color-text); text-decoration: underline; }
@keyframes k-blink { 50% { opacity: 0.2; } }
.k-bar { display: flex; align-items: center; gap: var(--space-6); min-block-size: 5rem; }
.k-logo { display: flex; align-items: baseline; gap: var(--space-3); text-decoration: none; color: var(--color-text); line-height: 1; margin-inline-end: auto; }
/* min 3.5rem/56px: below that, this font's "Ń" accent mark rasterises away at some pixel grids */
.k-logo__name { font-family: var(--font-display); font-weight: 400; text-transform: uppercase; font-size: clamp(3.5rem, 3.3rem + 0.9vw, 4rem); letter-spacing: 0.01em; }
.k-logo__tag { font-family: var(--font-condensed); font-weight: var(--weight-semibold); font-size: var(--step--1); text-transform: uppercase; letter-spacing: var(--tracking-caps); color: var(--color-text-muted); white-space: nowrap; }
.k-nav ul { display: flex; gap: var(--space-2) var(--space-6); list-style: none; margin: 0; padding: 0; }
.k-nav a { color: var(--color-text); text-decoration: none; font-family: var(--font-condensed); font-weight: var(--weight-bold); text-transform: uppercase; letter-spacing: 0.03em; font-size: var(--step-0); display: inline-block; padding-block: var(--space-3); border-block-end: var(--border-accent) solid transparent; }
.k-nav a:hover { border-color: var(--acid); }
.k-nav a[aria-current="page"] { border-color: var(--acid); }
.k-menu { display: flex; align-items: center; }
.k-menu__utility { display: none; }
.k-menu-toggle, .k-menu-nojs { display: none; }
@media (max-width: 1199px) and (min-width: 1024px) { .k-nav ul { gap: var(--space-4); } .k-bar { gap: var(--space-4); } }
@media (max-width: 1023px) {
	.k-utility { display: none; }
	.k-bar { min-block-size: 4rem; gap: var(--space-3); flex-wrap: wrap; }
	.k-bar .k-bar__cta { display: none; }
	.k-menu-nojs { display: inline-flex; min-block-size: var(--target-min); align-items: center; font-weight: var(--weight-bold); text-transform: uppercase; font-family: var(--font-condensed); }
	.k-menu-toggle { display: inline-flex; align-items: center; min-block-size: var(--target-min); padding-inline: var(--space-4); border: var(--border-strong) solid var(--color-text); background: transparent; color: var(--color-text); font: var(--weight-bold) var(--step-0)/1 var(--font-condensed); text-transform: uppercase; letter-spacing: 0.04em; cursor: pointer; }
	.js .k-menu-toggle:not([hidden]) { display: inline-flex; }
	.js .k-menu-nojs { display: none; }
	.k-menu { display: none; flex-basis: 100%; flex-direction: column; align-items: stretch; padding-block: var(--space-2) var(--space-4); border-block-start: var(--border-hairline) solid var(--color-border); }
	.k-menu.is-open { display: flex; }
	.k-nav ul { flex-direction: column; gap: 0; }
	.k-nav a { display: block; padding-block: var(--space-3); border-block-end: var(--border-hairline) solid var(--color-border); border-block-end-width: 1px; }
	.k-nav a:hover, .k-nav a[aria-current="page"] { border-block-end-color: var(--acid); border-block-end-width: 1px; color: var(--acid); }
	.k-menu__utility { display: block; list-style: none; padding: var(--space-3) 0 0; margin: 0; font-family: var(--font-mono); text-transform: uppercase; font-size: var(--step--1); }
	.k-menu__utility li { padding-block: var(--space-2); }
}

.k-footer { background: var(--ink); color: var(--paper); border-block-start: var(--border-accent) solid var(--acid); padding-block: var(--space-12) var(--space-8); font-size: var(--step--1); }
.k-footer a { color: var(--paper); }
.k-footer :focus-visible { outline-color: var(--acid); }
.k-footer__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-8); }
.k-footer__h { font-family: var(--font-mono); font-weight: var(--weight-bold); text-transform: uppercase; letter-spacing: var(--tracking-caps); font-size: var(--step--1); margin: 0 0 var(--space-3); color: var(--paper); }
.k-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--space-2); }
.k-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-4); margin-block-start: var(--space-10); padding-block-start: var(--space-6); border-block-start: var(--border-hairline) solid var(--line); color: var(--neutral-700); font-family: var(--font-mono); text-transform: uppercase; letter-spacing: 0.03em; }
.k-footer__bottom ul { display: flex; flex-wrap: wrap; gap: var(--space-4); }
.k-footer__bottom p { margin: 0; }
.k-footer__note { flex-basis: 100%; }
@media (max-width: 1023px) { .k-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 599px) { .k-footer__grid { grid-template-columns: 1fr; } }

.k-actionbar { display: none; }
@media (max-width: 1023px) {
	.k-actionbar { display: grid; grid-template-columns: 2fr 1fr; gap: var(--space-2); position: fixed; inset-inline: 0; inset-block-end: 0; z-index: var(--z-sticky); padding: var(--space-2) var(--space-4) calc(var(--space-2) + env(safe-area-inset-bottom)); background: var(--ink); border-block-start: var(--border-strong) solid var(--line); }
	.k-actionbar .k-btn { min-block-size: var(--control-lg); }
	.k-actionbar.is-hidden { display: none; }
	body { padding-block-end: 4.5rem; }
}

/* ---------- 4. Buttons, notices, forms — sharp, heavy, hard-shadow hover (concept .btn) ---------- */
.k-btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); min-block-size: var(--target-min); padding: 0.8em 1.4em; border: var(--border-strong) solid transparent; font: var(--weight-bold) clamp(1rem, 0.94rem + 0.3vw, 1.1rem)/1.1 var(--font-condensed); text-transform: uppercase; letter-spacing: 0.04em; text-decoration: none; cursor: pointer; text-align: center; transition: transform var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard); }
.k-btn .k-icon { inline-size: var(--icon-sm); block-size: var(--icon-sm); flex: none; }
.k-btn:hover { transform: translate(-3px, -3px); }
.k-btn:active { transform: translate(0, 0); box-shadow: none; }
@media (prefers-reduced-motion: reduce) { .k-btn:hover { transform: none; } }
.k-btn--primary { background: var(--color-primary); color: var(--color-on-primary); border-color: var(--color-primary); }
.k-btn--primary:hover { background: var(--color-primary-hover); border-color: var(--color-primary-hover); box-shadow: var(--shadow-hard); }
.k-btn--primary:active { background: var(--color-primary-active); }
.k-btn--secondary { background: transparent; color: var(--color-text); border-color: var(--color-secondary-border); }
.k-btn--secondary:hover { box-shadow: var(--shadow-hard-acid); }
.k-btn--tertiary { background: transparent; color: var(--color-link); text-decoration: underline; text-transform: none; letter-spacing: normal; font-family: var(--font-body); font-weight: var(--weight-semibold); padding-inline: 0; border: 0; min-block-size: var(--target-min); }
.k-btn--tertiary:hover { transform: none; }
.k-btn--danger { background: var(--error); color: var(--on-error); border-color: var(--error); }
.k-btn--danger:hover { box-shadow: var(--shadow-hard); }
.k-btn--block { inline-size: 100%; }
.k-btn[aria-disabled="true"] { opacity: var(--disabled-content); cursor: progress; }

.k-icon { inline-size: var(--icon-md); block-size: var(--icon-md); flex: none; }
.k-notice { display: flex; gap: var(--space-3); padding: var(--space-4) var(--space-5); margin-block: var(--space-4); max-inline-size: 60rem; background: var(--color-surface-2); border-inline-start: var(--border-accent) solid var(--color-text-strong-muted); }
.k-main .wp-block-post-content > .k-notice { margin-inline: 0 !important; }
.k-notice > .k-icon { margin-block-start: 0.2em; }
.k-notice__body > :last-child, .k-notice__body ul:last-child { margin-block-end: 0; }
.k-notice__body p { max-inline-size: 70ch; }
.k-notice--v1 { border-inline-start-color: var(--color-text-strong-muted); }
.k-notice--v2 { color: var(--warning-text); border-inline-start-color: var(--warning); }
.k-notice--v3 { border: var(--border-strong) solid var(--color-secondary-border); border-inline-start-width: var(--border-strong); }
.k-notice--success { color: var(--success-text); border-inline-start-color: var(--success); }
.k-notice--error { color: var(--error-text); border-inline-start-color: var(--error); }
.k-notice:focus { outline: var(--focus-ring-width) solid var(--color-focus-ring); outline-offset: var(--focus-ring-offset); }
.k-notice__lead { font-weight: var(--weight-bold); text-transform: uppercase; }
.k-rules summary { cursor: pointer; list-style: none; display: flex; flex-wrap: wrap; gap: var(--space-2); align-items: baseline; }
.k-rules summary::-webkit-details-marker { display: none; }
.k-rules[open] .k-rules__first, .k-rules[open] .k-rules__more { display: none; }
.k-rules__more { color: var(--color-link); text-decoration: underline; font-weight: var(--weight-semibold); }
.k-rules ul { margin: var(--space-2) 0; padding-inline-start: var(--space-5); display: grid; gap: var(--space-1); }
.k-rules p { margin: 0; }

.k-form { display: grid; gap: var(--space-5); max-inline-size: var(--container-form); }
.k-form__legend { font-family: var(--font-mono); font-size: var(--step--1); text-transform: uppercase; color: var(--color-text-muted); margin: 0; }
.k-field { display: grid; gap: var(--space-1); }
.k-field label { font-weight: var(--weight-semibold); font-family: var(--font-condensed); text-transform: uppercase; letter-spacing: 0.02em; }
.k-field__hint { font-size: var(--step--1); color: var(--color-text-muted); margin: 0; }
.k-field input[type="text"], .k-field input[type="email"], .k-field input[type="tel"], .k-field select {
	inline-size: 100%; min-block-size: var(--control-lg); padding-inline: var(--space-3); font: inherit; font-size: max(1rem, var(--step-0));
	color: var(--color-text); background: transparent; border: var(--border-strong) solid var(--color-control-border);
}
.k-field input:focus-visible, .k-field select:focus-visible { border-color: var(--color-focus-ring); }
.k-field.has-error input, .k-field.has-error select { border-color: var(--error); }
.k-field__error { display: flex; gap: var(--space-2); align-items: center; color: var(--error-text); font-weight: var(--weight-semibold); font-size: var(--step--1); margin: 0; }
.k-field__error .k-icon { inline-size: var(--icon-sm); block-size: var(--icon-sm); }
.k-field--check { grid-template-columns: auto 1fr; column-gap: var(--space-3); align-items: start; }
.k-field--check input { inline-size: 1.5rem; block-size: 1.5rem; margin: 0.1rem 0 0; accent-color: var(--acid); }
.k-field--check .k-field__hint, .k-field--check .k-field__error { grid-column: 2; }
.k-field--check .k-field__error { grid-column: 1 / -1; }
.k-req { color: var(--error-text); }
.k-opt { font-weight: var(--weight-regular); text-transform: none; color: var(--color-text-muted); }
.k-hp { position: absolute; left: -10000px; inline-size: 1px; block-size: 1px; overflow: hidden; }
.k-errors { border: var(--border-strong) solid var(--error); padding: var(--space-4) var(--space-5); margin-block: var(--space-4); }
.k-errors h3 { font-size: var(--step-0); color: var(--error-text); margin: 0 0 var(--space-2); }
.k-errors ul { margin: 0; padding-inline-start: var(--space-5); }
.k-errors a { color: var(--error-text); font-weight: var(--weight-semibold); }
.k-form__privacy { font-size: var(--step--1); color: var(--color-text-muted); margin: 0; }
.k-form__note { margin: 0; font-weight: var(--weight-semibold); }
.k-field textarea { inline-size: 100%; padding: var(--space-3); font: inherit; font-size: max(1rem, var(--step-0)); line-height: var(--leading-normal, 1.5); color: var(--color-text); background: transparent; border: var(--border-strong) solid var(--color-control-border); resize: vertical; }
.k-field input[type="date"] { inline-size: 100%; max-inline-size: 16rem; min-block-size: var(--control-lg); padding-inline: var(--space-3); font: inherit; color: var(--color-text); background: transparent; border: var(--border-strong) solid var(--color-control-border); }
.k-field textarea:focus-visible, .k-field input[type="date"]:focus-visible { border-color: var(--color-focus-ring); }
.k-field.has-error textarea { border-color: var(--error); }
.k-fieldset { border: 0; padding: 0; margin: 0; display: grid; gap: var(--space-3); min-inline-size: 0; }
.k-fieldset legend { font-weight: var(--weight-semibold); padding: 0; margin-block-end: var(--space-1); }
.k-fieldset .k-field__hint { margin-block-start: calc(-1 * var(--space-2)); }
.k-lead { background: var(--color-surface-2); border: var(--border-hairline) solid var(--color-border); padding: var(--space-6); margin-block: var(--space-8); }
.k-lead > h2 { margin-block: 0 var(--space-4); font-size: var(--step-2); }
.k-lead__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-8); }
.k-lead--karnet .k-lead__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: start; }
.k-offer-summary { background: var(--color-background); border: var(--border-hairline) solid var(--color-border); padding: var(--space-5); }
.k-offer-summary h3 { font-size: var(--step-1); margin-block-end: var(--space-3); }
.k-offer-summary h4 { font-size: var(--step-0); margin: var(--space-4) 0 var(--space-2); }
.k-offer-summary .k-facts__row { grid-template-columns: 1fr; gap: var(--space-1); }
.k-offer-summary__foot, .k-offer-summary__hint { font-size: var(--step--1); color: var(--color-text-strong-muted); margin: var(--space-3) 0 0; }
@media (max-width: 959px) { .k-lead--karnet .k-lead__grid { grid-template-columns: minmax(0, 1fr); } .k-lead--karnet .k-offer-summary { order: -1; } }
@media (max-width: 599px) { .k-lead { padding: var(--space-4); margin-inline: calc(-1 * var(--space-2)); } }
.k-inline-form { display: inline; }
.k-inline-form p { display: inline; }
.k-form--inline { display: flex; flex-wrap: wrap; align-items: end; gap: var(--space-3); max-inline-size: 40rem; }
.k-form--inline .k-field { flex: 1 1 18rem; }

/* ---------- 5. Class card (ux-spec §5.10) — a departure-board row, not a card ---------- */
.k-cards { list-style: none; padding: 0; margin: 0; display: grid; gap: 0; }
.k-card { position: relative; display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); gap: var(--space-2) var(--space-4); padding-block: var(--space-4); border-block-end: var(--border-hairline) solid var(--color-border); }
.k-card p { margin: 0; max-inline-size: none; }
.k-card__time { font: var(--weight-bold) clamp(1.125rem, 0.95rem + 0.9vw, 1.5rem)/1.2 var(--font-mono); font-variant-numeric: var(--numeric-schedule); }
.k-card__date { display: block; font-weight: var(--weight-regular); font-family: var(--font-mono); text-transform: uppercase; font-size: var(--step--2); color: var(--color-text-strong-muted); }
.k-card__body { display: grid; gap: var(--space-2); justify-items: start; min-inline-size: 0; }
.k-card__name { font: var(--weight-bold) clamp(1.375rem, 1.15rem + 1.1vw, 2rem)/1 var(--font-condensed); text-transform: uppercase; letter-spacing: 0.01em; margin: 0; max-inline-size: none; }
.k-card__name a { color: inherit; text-decoration-color: var(--color-border-strong); }
.k-card__name a:hover { text-decoration-color: currentColor; }
.k-card__level { font-family: var(--font-mono); font-size: var(--step--2); text-transform: uppercase; letter-spacing: var(--tracking-caps); font-weight: var(--weight-regular); color: var(--color-text-strong-muted); }
.k-card__meta { font-size: var(--step--1); line-height: 1.4; color: var(--color-text-strong-muted); display: flex; flex-wrap: wrap; gap: 0 var(--space-3); }
.k-card__meta del { color: var(--color-text-muted); }
.k-card__action:empty { display: none; }
.k-card__how { font-size: var(--step--1); }
.k-card__how summary { cursor: pointer; color: var(--color-link); text-decoration: underline; min-block-size: var(--target-min); display: flex; align-items: center; }
.k-card__how p { margin-block-start: var(--space-2); }
.k-sub { display: inline-flex; align-items: center; gap: var(--space-1); color: var(--st-sub-fg); font-weight: var(--weight-semibold); }
.k-sub .k-icon { inline-size: var(--icon-sm); block-size: var(--icon-sm); }

/* state chip: coloured text = about the class · filled chip = about you · dashed = "not yet" · hatch = cancelled */
.k-state { display: inline-flex; align-items: flex-start; gap: var(--space-2); padding: 0; border: var(--border-hairline) solid transparent; font: var(--weight-bold) var(--step--1)/1.4 var(--font-mono); text-transform: uppercase; letter-spacing: 0.02em; font-variant-numeric: var(--numeric-schedule); min-block-size: 1.9rem; }
.k-state .k-icon { inline-size: var(--icon-sm); block-size: var(--icon-sm); margin-block-start: 0.15em; }
.k-state--st-1 { color: var(--st-notyet-fg); border: var(--border-hairline) dashed var(--st-notyet-border); padding-inline: var(--space-2); }
.k-state--st-2 { color: var(--st-open-fg); }
.k-state--st-3 { color: var(--st-last-fg); }
.k-state--st-4 { color: var(--st-reserve-fg); }
.k-state--st-5, .k-state--st-5a { color: var(--st-full-fg); }
.k-state--st-6 { color: var(--st-closed-fg); }
.k-state--st-7 { color: var(--st-cancel-fg); }
.k-state--st-9 { color: var(--st-past-fg); border-color: var(--color-border-strong); padding-inline: var(--space-2); }
.k-state--st-10 { background: var(--st-mine-bg); color: var(--st-mine-fg); padding: var(--space-1) var(--space-3); }
.k-state--st-11 { background: var(--st-mywait-bg); color: var(--st-mywait-fg); padding: var(--space-1) var(--space-3); }
.k-state--st-12 { color: var(--st-pending-fg); border: var(--border-strong) dashed var(--st-pending-border); padding-inline: var(--space-2); }

.k-card--st-1 { border-block-end-style: dashed; border-block-end-color: var(--neutral-600); }
.k-card--st-7, .k-card--st-10, .k-card--st-11 { padding-inline-start: calc(var(--space-4) + var(--space-2)); }
.k-card--st-7::before, .k-card--st-10::before, .k-card--st-11::before { content: ""; position: absolute; inset-block: 0; inset-inline-start: 0; inline-size: var(--st-edge-width); }
.k-card--st-7::before { background: var(--st-hatch); inline-size: var(--space-2); }
.k-card--st-10::before { background: var(--st-mine-bg); }
.k-card--st-11::before { background: var(--st-mywait-bg); }
.k-card--st-12 { border: var(--border-strong) dashed var(--st-pending-border); border-block-end: var(--border-strong) dashed var(--st-pending-border); padding-inline: var(--space-3); }
.k-card--st-9 { background: var(--st-past-bg); color: var(--st-past-fg); }
.k-card--st-9 .k-card__name a, .k-card--st-9 .k-card__meta, .k-card--st-9 .k-card__level { color: var(--st-past-fg); }
.k-cards--rows .k-card { grid-template-columns: 5.5rem minmax(0, 1fr); }
@media (min-width: 720px) {
	.k-cards--rows .k-card { grid-template-columns: 6.5rem minmax(0, 1fr) minmax(12rem, auto); align-items: center; }
	.k-cards--rows .k-card__body { grid-column: 2 / 4; display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: var(--space-6); }
	.k-cards--rows .k-card__name, .k-cards--rows .k-card__level, .k-cards--rows .k-card__meta { grid-column: 1; }
	.k-cards--rows .k-card__state { grid-column: 1; }
	.k-cards--rows .k-card__action { grid-column: 2; grid-row: 1 / span 4; align-self: center; }
	.k-cards--rows .k-card__how { grid-column: 1 / -1; }
}

/* ---------- 6. Schedule [1] — the departure board ---------- */
.k-schedule { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
.k-page-head__title { margin-block-end: var(--space-2); }
.k-page-head__lead { color: var(--color-text-strong-muted); margin: 0; }
.k-daybar { position: sticky; top: 0; z-index: var(--z-sticky); background: var(--sched-head-bg); border-block-end: var(--border-hairline) solid var(--color-border); margin-inline: calc(-1 * var(--space-page-x)); padding: var(--space-2) var(--space-page-x); }
.k-daybar ul { display: flex; gap: var(--space-2); list-style: none; padding: 0; margin: 0; overflow-x: auto; scrollbar-width: thin; }
.k-daybar li { flex: none; }
.k-daybar__day { display: grid; justify-items: center; min-inline-size: var(--control-lg); min-block-size: var(--control-lg); padding: var(--space-1) var(--space-3); border: var(--border-hairline) solid var(--color-control-border); background: var(--chip-bg); color: var(--chip-fg); text-decoration: none; font: var(--weight-bold) var(--step--1)/1.25 var(--font-mono); text-transform: uppercase; font-variant-numeric: var(--numeric-schedule); }
.k-daybar__day.is-active { background: var(--chip-selected-bg); color: var(--chip-selected-fg); border-color: var(--chip-selected-bg); }
.k-daybar__today { font-weight: var(--weight-regular); text-decoration: underline; text-underline-offset: 0.2em; }
.k-daybar__nav { display: flex; gap: var(--space-2); align-items: center; }
.k-daybar__week { display: inline-flex; align-items: center; min-block-size: var(--control-lg); padding-inline: var(--space-3); font-weight: var(--weight-semibold); font-size: var(--step--1); }
.k-daybar__week.is-disabled { color: var(--color-text-muted); text-decoration: none; flex-direction: column; align-items: flex-start; justify-content: center; line-height: 1.2; }
.k-daybar__why { font-weight: var(--weight-regular); }

.k-filters { display: grid; gap: var(--space-3); }
.k-filters__panel { display: flex; flex-wrap: wrap; gap: var(--space-3) var(--space-4); align-items: end; }
.k-field--filter { gap: var(--space-1); }
.k-field--filter label { font-family: var(--font-mono); font-size: var(--step--2); text-transform: uppercase; letter-spacing: var(--tracking-caps); color: var(--color-text-strong-muted); }
.k-field--filter select { min-block-size: var(--chip-h); padding-inline: var(--space-3) var(--space-8); border: var(--border-hairline) solid var(--chip-border); background: var(--chip-bg); color: var(--chip-fg); font: var(--weight-semibold) var(--step--1)/1 var(--font-body); max-inline-size: 16rem; }
.k-field--filter select:not([value=""]):has(option:checked:not([value=""])) { background: var(--chip-selected-bg); color: var(--chip-selected-fg); border-color: var(--chip-selected-bg); }
.k-field--switch { display: flex; align-items: center; gap: var(--space-3); min-block-size: var(--chip-h); font-size: var(--step--1); font-weight: var(--weight-semibold); }
.k-field--switch input { appearance: none; margin: 0; inline-size: var(--space-12); block-size: var(--space-6); border-radius: var(--radius-full); border: var(--border-strong) solid var(--color-control-border); background: transparent; position: relative; cursor: pointer; flex: none; }
.k-field--switch input::after { content: ""; position: absolute; inset-block-start: 2px; inset-inline-start: 2px; inline-size: var(--space-4); block-size: var(--space-4); border-radius: var(--radius-full); background: var(--color-control-border); transition: transform var(--duration-fast) var(--ease-standard); }
.k-field--switch input:checked { background: var(--acid); border-color: var(--acid); }
.k-field--switch input:checked::after { background: var(--ink); transform: translateX(var(--space-6)); }
.k-filters__actions { display: flex; gap: var(--space-2); }
.k-filters__active { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-4); align-items: center; }
.k-chips { display: flex; flex-wrap: wrap; gap: var(--space-2); list-style: none; padding: 0; margin: 0; }
.k-chip { display: inline-flex; align-items: center; gap: var(--space-2); min-block-size: var(--control-sm); padding-inline: var(--space-3); background: var(--tag-bg); color: var(--tag-fg); border: 0; font: var(--weight-semibold) var(--step--1)/1 var(--font-body); text-decoration: none; cursor: pointer; }
.k-filters__status { font-family: var(--font-mono); font-size: var(--step--1); text-transform: uppercase; color: var(--color-text-strong-muted); margin: 0; }
.k-live-status { font-size: var(--step--1); color: var(--warning-text); margin: 0; }
.k-filters__toggle { min-block-size: var(--control-lg); padding-inline: var(--space-4); border: var(--border-hairline) solid var(--chip-border); background: var(--chip-bg); font: var(--weight-semibold) var(--step--1)/1 var(--font-body); color: var(--color-text); cursor: pointer; }
@media (max-width: 1023px) {
	.k-filters__panel.is-collapsible:not([hidden]) { position: fixed; inset: 0; z-index: var(--z-modal); background: var(--color-background); padding: var(--space-6) var(--space-4); overflow-y: auto; flex-direction: column; align-items: stretch; flex-wrap: nowrap; }
	.k-filters__panel.is-collapsible .k-field--filter select { max-inline-size: none; inline-size: 100%; min-block-size: var(--control-lg); }
	.k-filters__panel.is-collapsible .k-filters__actions { margin-block-start: auto; }
	.k-filters__panel.is-collapsible .k-filters__close { inline-size: 100%; }
}

/* day list (< 1200 px): every day stacked, nothing hidden */
.k-week { display: grid; gap: var(--space-8); }
.k-day { display: grid; gap: var(--space-3); scroll-margin-top: 5.5rem; }
.k-day__head { font-family: var(--font-display); font-weight: 400; text-transform: uppercase; font-size: var(--step-2); margin: 0; font-variant-numeric: var(--numeric-schedule); }
.k-day__today, .k-today-word { display: inline-block; margin-inline-start: var(--space-2); padding: 0 var(--space-2); background: var(--acid); color: var(--ink); font: var(--weight-bold) var(--step--1)/1.6 var(--font-mono); text-transform: uppercase; vertical-align: middle; letter-spacing: 0; }
.k-band { display: grid; gap: var(--space-3); }
.k-band__label { margin: var(--space-2) 0 0; font: var(--weight-bold) var(--step--1)/1.4 var(--font-mono); text-transform: uppercase; letter-spacing: var(--tracking-caps); color: var(--sched-band-label); }
.k-empty { color: var(--sched-empty); margin: 0; }
.k-day__nomatch { font-size: var(--step--1); margin: 0; }

@media (min-width: 1200px) {
	.k-schedule { max-inline-size: 90rem; }
	.k-week { grid-template-columns: repeat(7, minmax(var(--sched-col-min), 1fr)); grid-template-rows: auto auto auto auto auto; gap: 0; border: var(--border-hairline) solid var(--color-border); background: var(--color-background); }
	.k-day { grid-row: span 5; display: grid; grid-template-rows: subgrid; gap: 0; border-inline-start: var(--border-hairline) solid var(--sched-col-line); }
	.k-day:first-child { border-inline-start: 0; }
	.k-day__head { position: sticky; top: 0; z-index: var(--z-raised); background: var(--sched-head-bg); padding: var(--space-3); font-size: var(--step-1); border-block-end: var(--border-hairline) solid var(--sched-band-line); }
	.k-day.is-today { background: var(--sched-today-bg); }
	.k-day.is-today .k-day__head { background: var(--sched-today-bg); box-shadow: inset 0 var(--border-accent) 0 var(--sched-today-rule); }
	.k-band { align-content: start; gap: var(--sched-card-gap); padding: var(--space-2); border-block-start: var(--border-hairline) solid var(--sched-band-line); }
	.k-band--rano { border-block-start: 0; }
	.k-band__label { margin: 0; }
	.k-day:not(:first-child) .k-band__label { visibility: hidden; block-size: 0; overflow: hidden; }
	.k-day:first-child .k-band__label { position: relative; }
	.k-empty { text-align: center; padding-block: var(--space-2); }
	.k-day__nomatch { padding: var(--space-2); }
	/* compact card in the 160 px column */
	.k-week .k-cards { gap: var(--sched-card-gap); }
	.k-week .k-card { grid-template-columns: 1fr; padding: var(--sched-card-pad); gap: var(--space-1); border-block-end: var(--border-hairline) solid var(--color-border); }
	.k-week .k-card--st-7, .k-week .k-card--st-10, .k-week .k-card--st-11 { padding-inline-start: calc(var(--sched-card-pad) + var(--space-2)); }
	.k-week .k-card__time { font-size: var(--step--1); }
	.k-week .k-card__name { font-size: var(--step-0); line-height: 1.25; }
	.k-week .k-card__meta { flex-direction: column; font-size: 0.8125rem; }
	.k-week .k-state { font-size: 0.75rem; line-height: 1.3; }
	.k-week .k-card__action { justify-self: stretch; }
	.k-week .k-btn { inline-size: 100%; min-block-size: var(--control-md); font-size: var(--step--1); padding-inline: var(--space-2); white-space: normal; line-height: 1.2; }
	.k-week .k-btn--tertiary { justify-content: flex-start; }
	.k-week .k-card__how { display: none; }
	.k-daybar { position: static; margin-inline: 0; padding-inline: 0; border-block-end: 0; }
}

/* ---------- 7. Module pages ---------- */
.k-crumbs ol { display: flex; flex-wrap: wrap; gap: var(--space-2); list-style: none; padding: 0; margin: 0 0 var(--space-4); font-family: var(--font-mono); font-size: var(--step--1); text-transform: uppercase; }
.k-crumbs li + li::before { content: "›"; margin-inline-end: var(--space-2); color: var(--color-text-muted); }
@media (max-width: 719px) {
	.k-crumbs li { display: none; }
	.k-crumbs li.is-parent { display: block; }
	.k-crumbs li.is-parent::before { content: "‹"; }
}
.k-occ__head { margin-block-end: var(--space-6); }
.k-occ__title { margin-block-end: var(--space-3); }
.k-occ__line { font-size: var(--step-1); color: var(--color-text-strong-muted); max-inline-size: 60ch; }
.k-occ__jump { display: none; }
.k-occ__grid { display: grid; grid-template-columns: 7fr 5fr; gap: var(--space-10); align-items: start; }
.k-signup { background: var(--color-surface-2); border: var(--border-hairline) solid var(--color-border); padding: var(--space-6); }
.k-signup h2 { margin-block: 0 var(--space-3); font-size: var(--step-2); }
.k-signup__device { font-size: var(--step--1); background: var(--color-background); padding: var(--space-2) var(--space-3); }
.k-signup--second { margin-block-start: var(--space-4); }
@media (max-width: 959px) { .k-occ__grid { grid-template-columns: 1fr; } .k-occ__jump { display: block; } }
.k-facts { display: grid; margin: 0; border-block-start: var(--border-hairline) solid var(--color-border); }
.k-facts__row { display: grid; grid-template-columns: minmax(8rem, 12rem) 1fr; gap: var(--space-4); padding-block: var(--space-3); border-block-end: var(--border-hairline) solid var(--color-border); }
.k-facts dt { font-family: var(--font-condensed); font-weight: var(--weight-bold); text-transform: uppercase; letter-spacing: 0.02em; }
.k-facts dd { margin: 0; font-variant-numeric: var(--numeric-schedule); }
@media (max-width: 599px) { .k-facts__row { grid-template-columns: 1fr; gap: var(--space-1); } }
.k-about__row { display: grid; grid-template-columns: 4fr 8fr; gap: var(--space-6); padding-block: var(--space-5); border-block-start: var(--border-hairline) solid var(--color-border); }
.k-about__row h3 { margin: 0; }
@media (max-width: 719px) { .k-about__row { grid-template-columns: 1fr; gap: var(--space-2); } }
.k-person-row { display: flex; gap: var(--space-4); align-items: flex-start; }
.k-person-row .k-figure { flex: 0 0 6rem; margin: 0; }
.k-person-row .k-figure img { inline-size: 6rem; block-size: auto; aspect-ratio: var(--ratio-portrait); object-fit: cover; }
.k-person-row p { margin-block-end: var(--space-2); }
.k-person-row__specs { font-size: var(--step--1); color: var(--color-text-strong-muted); }
.k-booking .k-facts, .k-check .k-facts { margin-block: var(--space-6); max-inline-size: 48rem; }
.k-booking__actions { display: flex; flex-wrap: wrap; gap: var(--space-3) var(--space-6); align-items: center; }
.k-booking__actions > p { flex-basis: 100%; margin: 0; }
.k-confirm { flex-basis: 100%; border: var(--border-strong) solid var(--color-text); padding: var(--space-4) var(--space-5); display: flex; flex-wrap: wrap; gap: var(--space-3) var(--space-4); align-items: center; }
.k-confirm p { flex-basis: 100%; margin: 0; }
.k-hint { font-size: var(--step--1); color: var(--color-text-muted); }
.k-booking__more, .k-my__count, .k-my__who { font-size: var(--step--1); color: var(--color-text-strong-muted); }

.k-plan { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: var(--space-3); }
.k-plan__day h3 { font-size: var(--step-0); border-block-end: var(--border-strong) solid var(--acid); padding-block-end: var(--space-2); }
.k-plan ul { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--space-2); font-size: var(--step--1); }
.k-plan__time { font: var(--weight-bold) var(--step--1)/1.4 var(--font-mono); font-variant-numeric: var(--numeric-schedule); display: block; }
@media (max-width: 959px) { .k-plan { grid-template-columns: 1fr 1fr; } }
@media (max-width: 479px) { .k-plan { grid-template-columns: 1fr; } }

.k-levels { list-style: none; padding: 0; margin: 0; display: grid; }
.k-levels li { display: grid; grid-template-columns: minmax(10rem, 16rem) 1fr; gap: var(--space-4); padding-block: var(--space-3); border-block-end: var(--border-hairline) solid var(--color-border); }
.k-levels h3 { font-size: var(--step-1); margin: 0; }
.k-levels p { margin: 0; }
@media (max-width: 599px) { .k-levels li { grid-template-columns: 1fr; gap: var(--space-1); } }
.k-types { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6) var(--space-8); }
.k-types__item { display: grid; grid-template-columns: auto 1fr; gap: 0 var(--space-3); }
.k-types__item > .k-icon { grid-row: span 3; margin-block-start: 0.25em; color: var(--acid); }
.k-types__item h3 { margin: 0 0 var(--space-1); font-size: var(--step-1); }
.k-types__meta { font-family: var(--font-mono); font-size: var(--step--2); text-transform: uppercase; color: var(--color-text-strong-muted); margin-block-end: var(--space-1); }
@media (max-width: 959px) { .k-types { grid-template-columns: 1fr 1fr; } }
@media (max-width: 599px) { .k-types { grid-template-columns: 1fr; } }
.k-people { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-6); }
.k-person .k-figure { margin: 0 0 var(--space-3); }
.k-person .k-figure img { aspect-ratio: var(--ratio-portrait); object-fit: cover; inline-size: 100%; display: block; }
.k-person__name { margin: 0 0 var(--space-2); font-size: var(--step-1); }
.k-person__name a { color: var(--color-text); }
.k-person__specs { list-style: none; padding: 0; margin: 0 0 var(--space-2); display: flex; flex-wrap: wrap; gap: var(--space-1); }
.k-person__specs li { font-family: var(--font-mono); font-size: var(--step--2); text-transform: uppercase; background: var(--color-surface-2); padding: 0 var(--space-2); }
.k-person__qual { font-size: var(--step--1); color: var(--color-text-strong-muted); }
@media (max-width: 959px) { .k-people { grid-template-columns: 1fr 1fr; } }
.k-rule-rows { list-style: none; padding: 0; margin: 0; }
.k-rule-rows__row { display: grid; grid-template-columns: minmax(10rem, 16rem) 1fr; gap: var(--space-4); padding-block: var(--space-3); border-block-end: var(--border-hairline) solid var(--color-border); }
.k-rule-rows__topic { font-size: var(--step-1); margin: 0; }
.k-rule-rows p { margin: 0; }
@media (max-width: 599px) { .k-rule-rows__row { grid-template-columns: 1fr; gap: var(--space-1); } }
.k-rules-line { font-size: var(--step--1); color: var(--color-text-strong-muted); }

.k-figure { margin: 0; }
.k-figure img { display: block; inline-size: 100%; block-size: auto; object-fit: cover; }

/* ---------- 8. Section patterns (ux-spec §5; catalogue ux-architect section-patterns-a/-b) ---------- */
/* P-A-01:V1 typographic hero */
.kp-a01 { padding-block: var(--space-8) var(--space-6); }
.kp-a01 h1 { max-inline-size: 16ch; }
.kp-a01 p { font-size: var(--step-1); color: var(--color-text-strong-muted); }
/* P-A-02:V1 split hero, text 7 / photo 5 */
.kp-a02 { display: grid; grid-template-columns: 7fr 5fr; gap: var(--space-12); align-items: center; padding-block: var(--space-8) var(--space-12); }
.kp-a02 h1 { margin-block-end: var(--space-4); }
.kp-a02__lead { font-size: var(--step-1); color: var(--color-text-strong-muted); }
.kp-a02__actions { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-block: var(--space-6); align-items: center; }
.kp-a02__actions .k-btn { min-block-size: var(--control-lg); padding-inline: var(--space-6); }
.kp-a02__facts { font-family: var(--font-mono); font-size: var(--step--1); text-transform: uppercase; color: var(--color-text-muted); }
.kp-a02 .k-figure img { aspect-ratio: var(--ratio-hero); }
.kp-a02--32 .k-figure img { aspect-ratio: var(--ratio-class); }
@media (max-width: 959px) { .kp-a02:not(.k-hero) { grid-template-columns: 1fr; gap: var(--space-6); } }
/* P-A-16:V4 list with attributes — uses .k-cards--rows (section 5) */
.kp-a16 .kp-more { margin-block-start: var(--space-4); display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-6); align-items: center; }
/* P-A-17 tables: V1 comparison, V2 price list */
.kp-a17 { overflow-x: auto; }
.kp-a17 table { border-collapse: collapse; inline-size: 100%; font-variant-numeric: var(--numeric-schedule); }
.kp-a17 caption { text-align: start; font-weight: var(--weight-semibold); padding-block-end: var(--space-2); }
.kp-a17 th, .kp-a17 td { padding: var(--space-3); text-align: start; vertical-align: top; border-block-end: var(--border-hairline) solid var(--color-border); }
.kp-a17 thead th { border-block-end: var(--border-strong) solid var(--color-text); font-family: var(--font-condensed); text-transform: uppercase; font-size: var(--step-0); }
.kp-a17--v1 tbody th { position: sticky; inset-inline-start: 0; background: var(--color-background); }
.kp-a17--v2 td:last-child { white-space: nowrap; font-weight: var(--weight-semibold); }
.kp-a17--v2 tbody th { font-weight: var(--weight-regular); }
.k-offer-cards { display: none; list-style: none; padding: 0; margin: 0; gap: var(--space-4); }
.k-offer-card { border: var(--border-hairline) solid var(--color-border); padding: var(--space-5); }
.k-offer-card__name { margin: 0 0 var(--space-2); font-size: var(--step-1); }
.k-offer-card__price { font-size: var(--step-0); margin-block-end: var(--space-3); }
.k-offer-card .k-facts__row { grid-template-columns: 1fr; gap: var(--space-1); }
.k-offer-card p:last-child { margin: var(--space-3) 0 0; }
@media (max-width: 799px) {
	.kp-a17--wide { display: none; }
	.k-offer-cards { display: grid; }
	.kp-a17--stack thead { position: absolute; clip-path: inset(50%); inline-size: 1px; block-size: 1px; overflow: hidden; }
	.kp-a17--stack table, .kp-a17--stack caption, .kp-a17--stack tbody, .kp-a17--stack tr, .kp-a17--stack th, .kp-a17--stack td { display: block; }
	.kp-a17--stack tr { padding-block: var(--space-3); border-block-end: var(--border-hairline) solid var(--color-border); }
	.kp-a17--stack th, .kp-a17--stack td { border: 0; padding: var(--space-1) 0; white-space: normal; }
	.kp-a17--stack tbody th { font-weight: var(--weight-semibold); }
	.kp-a17--stack td[data-label="Cena"]::before { content: "Cena: "; font-weight: var(--weight-regular); color: var(--color-text-strong-muted); }
}
/* P-A-19:V1 alternating rows */
.kp-a19 { display: grid; gap: var(--space-10); }
.kp-a19__row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-8); align-items: center; }
.kp-a19__row:nth-child(even) .k-figure { order: 2; }
@media (max-width: 719px) { .kp-a19__row { grid-template-columns: 1fr; } .kp-a19__row:nth-child(even) .k-figure { order: 0; } }
/* P-A-20 aligned rows — restyled as the concept's classes grid (dark cells, hairline rules) */
.kp-a20 { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--space-6); }
.kp-a20__row { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: var(--space-6); align-items: center; padding-block-end: var(--space-6); border-block-end: var(--border-hairline) solid var(--color-border); }
.kp-a20--v1 .kp-a20__row { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
.kp-a20--v1 .kp-a20__row .k-figure { order: -1; }
.kp-a20__row h3 { margin-block-end: var(--space-1); }
.kp-a20__meta { font-family: var(--font-mono); font-size: var(--step--2); text-transform: uppercase; letter-spacing: var(--tracking-caps); color: var(--color-text-muted); margin-block-end: var(--space-2); }
.kp-a20 .k-figure img { aspect-ratio: var(--ratio-class); }
@media (max-width: 719px) { .kp-a20__row, .kp-a20--v1 .kp-a20__row { grid-template-columns: 1fr; } .kp-a20__row .k-figure { order: -1; } }
.kp-a20--v2 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2px; background: var(--line); border: 0; }
.kp-a20--v2 .kp-a20__row { grid-template-columns: 1fr; align-content: start; gap: 0; background: var(--ink); padding: var(--space-5) var(--space-5) var(--space-6); border: 0; }
.kp-a20--v2 .kp-a20__row > div { order: 1; }
.kp-a20--v2 .kp-a20__row h3 { font-size: var(--step-1); margin-block-end: var(--space-2); }
.kp-a20--v2 .kp-a20__row .k-figure { order: 0; margin-block-end: var(--space-4); }
.kp-a20--v2 .kp-a20__row .k-figure img { aspect-ratio: var(--ratio-class); }
@media (max-width: 719px) { .kp-a20--v2 { grid-template-columns: 1fr; } }
/* P-A-27:V1 heading left 4 / text right 8 */
.kp-a27__row { display: grid; grid-template-columns: 4fr 8fr; gap: var(--space-8); padding-block: var(--space-6); border-block-start: var(--border-hairline) solid var(--color-border); }
.kp-a27__row h2, .kp-a27__row h3 { margin: 0; font-size: var(--step-2); }
@media (max-width: 719px) { .kp-a27__row { grid-template-columns: 1fr; gap: var(--space-3); } }
/* P-A-28:V1 icon grid, V2 checklist */
.kp-a28 { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6); }
.kp-a28 li { display: grid; grid-template-columns: auto 1fr; gap: 0 var(--space-3); }
.kp-a28 li > .k-icon { grid-row: span 2; margin-block-start: 0.2em; color: var(--acid); }
.kp-a28--v2 { grid-template-columns: 1fr; gap: var(--space-2); }
@media (max-width: 719px) { .kp-a28 { grid-template-columns: 1fr; } }
/* P-A-29 steps: V1 horizontal (+V5 CTA at end), V2 vertical */
.kp-a29 ol { list-style: none; counter-reset: kstep; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-6); }
.kp-a29 li { counter-increment: kstep; position: relative; padding-block-start: var(--space-12); font-family: var(--font-condensed); font-weight: var(--weight-semibold); text-transform: uppercase; }
.kp-a29 li p { max-inline-size: none; font-family: var(--font-condensed); font-weight: var(--weight-semibold); text-transform: uppercase; }
.kp-a29 li::before { content: "0" counter(kstep); position: absolute; inset-block-start: -0.15em; inset-inline-start: 0; font-family: var(--font-display); font-weight: 400; font-size: var(--step-3); line-height: 0.8; color: inherit; opacity: 0.55; }
.kp-a29--v2 ol { grid-template-columns: 1fr; gap: var(--space-4); }
.kp-a29--v2 li { padding: 0 0 0 var(--space-16); min-block-size: var(--space-10); }
.kp-a29__cta { margin-block-start: var(--space-8); display: flex; flex-wrap: wrap; gap: var(--space-3) var(--space-6); align-items: center; }
@media (max-width: 959px) { .kp-a29 ol { grid-template-columns: 1fr; } .kp-a29 li { padding: 0 0 0 var(--space-16); min-block-size: var(--space-10); } .kp-a29 li::before { font-size: var(--step-2); } }
/* P-A-30:V1 key → value — .k-facts (section 7) */
/* P-A-33:V1 key-number band — the "prices poster" (concept .prices) */
.kp-a33 { list-style: none; padding: 0; margin: var(--space-10) 0 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border-block-start: var(--border-accent) solid var(--color-text); }
.kp-a33 li { display: grid; gap: var(--space-2); align-content: start; padding: var(--space-6) var(--space-5) var(--space-6) 0; border-inline-end: var(--border-strong) solid var(--color-text); }
.kp-a33 li:first-child { padding-inline-start: 0; }
.kp-a33 li:last-child { border-inline-end: 0; }
/* concept .p .big: number stays the section's ink colour, acid is only the highlighter band behind it */
.kp-a33__n { display: inline-block; font: 400 var(--step-4)/0.9 var(--font-display); letter-spacing: -0.01em; font-variant-numeric: var(--numeric-schedule); background: linear-gradient(transparent 55%, var(--acid) 55%, var(--acid) 92%, transparent 92%); }
.kp-a33__l { font-size: var(--step--1); color: var(--color-text-strong-muted); }
.kp-a33__foot { margin-block-start: var(--space-8); display: flex; flex-wrap: wrap; gap: var(--space-4) var(--space-6); align-items: center; }
@media (max-width: 959px) { .kp-a33 { grid-template-columns: 1fr 1fr; } .kp-a33 li { border-inline-end: var(--border-strong) solid var(--color-text); padding-inline-start: var(--space-5); } .kp-a33 li:nth-child(2n) { border-inline-end: 0; } .kp-a33 li:nth-child(1), .kp-a33 li:nth-child(2) { padding-inline-start: 0; } .kp-a33 li:nth-child(odd) { padding-inline-start: 0; } }
/* P-A-37 notices — .k-notice (section 4); P-A-36 breadcrumbs — .k-crumbs (section 7) */
/* P-A-38:V1 jump links */
.kp-a38 ul { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-5); list-style: none; padding: 0; margin: 0 0 var(--space-8); font-weight: var(--weight-semibold); }
/* P-B-11:V1 people grid — .k-people (section 7) */
/* P-B-13:V1 person split */
.kp-b13 { display: grid; grid-template-columns: 5fr 7fr; gap: var(--space-10); align-items: start; }
.kp-b13 .k-figure img { aspect-ratio: var(--ratio-portrait); }
@media (max-width: 719px) { .kp-b13 { grid-template-columns: 1fr; } }
/* P-B-14:V1 horizontal numbered steps with line */
.kp-b14 ol { list-style: none; counter-reset: kstep; padding: 0; margin: 0; display: grid; grid-auto-flow: row; gap: var(--space-6); }
.kp-b14 li { counter-increment: kstep; position: relative; padding-inline-start: var(--space-12); }
.kp-b14 li::before { content: counter(kstep); position: absolute; inset-inline-start: 0; inset-block-start: 0; inline-size: var(--space-8); block-size: var(--space-8); display: grid; place-items: center; border: var(--border-strong) solid var(--color-text); font: var(--weight-bold) var(--step-0)/1 var(--font-condensed); background: transparent; }
@media (min-width: 768px) {
	.kp-b14 ol { grid-auto-flow: column; grid-auto-columns: 1fr; }
	.kp-b14 li { padding: var(--space-12) var(--space-4) 0 0; }
	.kp-b14 li::after { content: ""; position: absolute; inset-block-start: var(--space-4); inset-inline: var(--space-10) 0; block-size: var(--border-strong); background: var(--color-border-strong); }
	.kp-b14 li:last-child::after { display: none; }
}
/* P-B-15:V1 vertical step list with rail */
.kp-b15 ol { list-style: none; counter-reset: kstep; padding: 0; margin: 0; display: grid; gap: var(--space-6); border-inline-start: var(--border-strong) solid var(--color-border-strong); margin-inline-start: var(--space-4); }
.kp-b15 li { counter-increment: kstep; position: relative; padding-inline-start: var(--space-8); }
.kp-b15 li::before { content: counter(kstep); position: absolute; inset-inline-start: calc(-1 * var(--space-4) - 1px); inset-block-start: 0; inline-size: var(--space-8); block-size: var(--space-8); display: grid; place-items: center; background: var(--acid); color: var(--ink); font: var(--weight-bold) var(--step-0)/1 var(--font-condensed); }
.kp-b15 h3 { margin-block-end: var(--space-1); }
/* P-B-29:V1 two columns of short Q&A */
.kp-b29 { columns: 2 22rem; column-gap: var(--space-10); }
.kp-b29__qa { break-inside: avoid; margin-block-end: var(--space-6); }
.kp-b29__qa h3 { font-size: var(--step-1); margin-block-end: var(--space-2); }
/* P-B-30:V2 CTA band: heading left, buttons right */
.kp-b30 { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--space-6); padding: var(--space-10) var(--space-8); background: var(--color-surface-2); margin-block-start: var(--space-section-sm); }
.kp-b30 h2 { margin: 0; font-size: var(--step-2); }
.kp-b30 p { margin: var(--space-2) 0 0; color: var(--color-text-strong-muted); }
.kp-b30__actions { display: flex; flex-wrap: wrap; gap: var(--space-3); }
/* P-B-33:V1 contact: details 7 / static map 5 */
.kp-b33 { display: grid; grid-template-columns: 7fr 5fr; gap: var(--space-10); align-items: start; }
.kp-b33__actions { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-block: var(--space-4); }
.kp-b33__map { min-inline-size: 0; }
/* static schematic map (X-10: nothing embedded), recoloured for the black surface */
.k-map { margin: 0; }
.k-map__svg { display: block; inline-size: 100%; block-size: auto; aspect-ratio: 4 / 3; border: var(--border-hairline) solid var(--color-border); font-family: var(--font-mono); }
.k-map__land { fill: var(--color-surface-2); }
.k-map__park { fill: #16321a; }
.k-map__blocks rect { fill: var(--neutral-100); stroke: var(--neutral-300); }
.k-map__streets path { fill: none; stroke: var(--ink); stroke-width: 12; }
.k-map__rail { fill: none; stroke: var(--neutral-600); stroke-width: 4; }
.k-map__rail-ties { fill: none; stroke: var(--ink); stroke-width: 2; stroke-dasharray: 3 9; }
.k-map__walk { fill: none; stroke: var(--acid); stroke-width: 3; stroke-dasharray: 6 5; stroke-linecap: round; }
.k-map__station rect { fill: var(--paper); }
.k-map__station text { fill: var(--ink); font-size: 12px; font-weight: 700; }
.k-map__pin path { fill: var(--acid); stroke: var(--ink); stroke-width: 2; }
.k-map__pin circle { fill: var(--ink); }
.k-map__label, .k-map__club { font-size: 12px; fill: var(--paper); paint-order: stroke; stroke: var(--ink); stroke-width: 4px; stroke-linejoin: round; }
.k-map__club { font-size: 15px; font-weight: 700; }
.k-map__label--park { fill: var(--acid); stroke: var(--color-surface-2); }
.k-map__label--walk { fill: var(--acid); font-weight: 700; }
@media (max-width: 959px) { .kp-b33 { grid-template-columns: 1fr; } }
/* P-B-34 short forms — .k-form (section 4) */
/* P-B-38:V2 doormat footer — .k-footer (section 3) */

/* page intros under the template H1 (class, trainer, first-visit pages) */
.kp-a02--intro { padding-block: 0 var(--space-8); }
.kp-a01--intro { padding-block: 0 var(--space-4); }
.kp-a01--intro .kp-a02__lead, .k-main .kp-a02__lead { font-size: var(--step-1); color: var(--color-text-strong-muted); }
.k-person-list { display: grid; gap: var(--space-6); }
.k-example { font-family: var(--font-mono); font-size: var(--step--2); text-transform: uppercase; background: var(--warning-bg); color: var(--warning-text); padding: 0 var(--space-1); white-space: nowrap; }
.kp-a27__row .k-facts { margin-block-end: var(--space-4); }
.kp-b13 .k-person__specs { margin-block-end: var(--space-4); }

/* section rhythm on the home page and pattern pages */
.kp-section { padding-block: var(--space-section-sm); }
.kp-section > h2:first-child { margin-block-start: 0; }
.kp-section--alt { background: var(--color-surface-2); box-shadow: 0 0 0 100vmax var(--color-surface-2); clip-path: inset(0 -100vmax); }
.kp-section--paper, .kp-section--acid { box-shadow: 0 0 0 100vmax currentColor; clip-path: inset(0 -100vmax); }
.kp-section--paper { box-shadow: 0 0 0 100vmax var(--paper); }
.kp-section--acid { box-shadow: 0 0 0 100vmax var(--acid); }
.kp-sub { color: var(--color-text-strong-muted); margin-block-start: calc(-1 * var(--space-2)); }

/* ---------- 9. Home-only poster sections (design/concept.html) ---------- */
.k-kicker { font-family: var(--font-mono); font-size: var(--step--1); text-transform: uppercase; letter-spacing: var(--tracking-caps); color: var(--acid); margin: 0 0 var(--space-3); }
.k-kicker::before { content: "■ "; }

.k-hero { position: relative; min-height: min(92vh, 880px); display: grid; align-items: end; overflow: hidden; isolation: isolate; grid-template-columns: 1fr; gap: 0; padding: 0 !important; }
.k-hero .k-figure { position: absolute; inset: 0; z-index: -2; margin: 0; }
.k-hero .k-figure picture, .k-hero .k-figure img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; }
.k-hero .k-figure figcaption { position: absolute; left: var(--space-page-x); bottom: var(--space-4); margin: 0; background: var(--ink); padding: 2px 8px; }
.k-hero__shade { position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(10, 10, 10, 0.72) 0%, rgba(10, 10, 10, 0.35) 40%, rgba(10, 10, 10, 0.82) 78%, var(--ink) 100%); }
.k-hero__inner { position: relative; padding: clamp(3rem, 5vh, 5.5rem) var(--space-page-x) calc(var(--space-cut) + 5.5rem); display: grid; gap: var(--space-5); }
.k-hero h1 { margin: 0; max-inline-size: 18ch; }
.k-hero__under { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-6) var(--space-12); align-items: end; }
.k-hero .kp-a02__lead { max-inline-size: 46ch; color: var(--paper); font-size: clamp(1.125rem, 1rem + 0.5vw, 1.375rem); }
.k-hero .kp-a02__lead strong { color: var(--acid); font-weight: var(--weight-semibold); }
.k-hero .kp-a02__actions { justify-content: flex-end; margin-block: 0; }
.k-hero .kp-a02__facts { margin-inline-start: var(--space-2); }
.k-tape { position: absolute; left: -6%; right: -6%; bottom: calc(var(--space-cut) + 6px); z-index: 2; transform: rotate(-2.6deg); background: var(--acid); color: var(--ink); font-family: var(--font-condensed); font-weight: var(--weight-bold); text-transform: uppercase; letter-spacing: 0.08em; font-size: clamp(0.9375rem, 0.85rem + 0.4vw, 1.25rem); padding: 10px 0; overflow: hidden; white-space: nowrap; border-block: var(--border-strong) solid var(--ink); margin: 0; }
.k-tape span { display: inline-block; padding-left: 100%; animation: k-tick var(--duration-ticker) linear infinite; animation-delay: -9s; }
@keyframes k-tick { to { transform: translateX(-100%); } }
@media (prefers-reduced-motion: reduce) { .k-tape span { animation: none; padding-left: 0; } }
.k-hero.k-cut-down::after { height: calc(var(--space-cut) + 1px); }

@media (max-width: 899px) {
	.k-hero { min-height: 0; }
	.k-hero__inner { padding-block-start: 3.5rem; padding-block-end: calc(var(--space-cut) + 4.75rem); }
	.k-hero__under { grid-template-columns: 1fr; }
	.k-hero .kp-a02__actions { justify-content: flex-start; }
	.k-tape { font-size: 0.875rem; transform: rotate(-3.5deg); bottom: calc(var(--space-cut) + 8px); }
}

/* "Pierwszy raz" acid block with duotone photo (concept .first) */
.kp-a29.kp-section--acid { padding: 0 !important; }
.kp-a29__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); min-height: 40rem; }
.kp-a29__txt { padding: var(--space-section-sm) var(--space-page-x); align-self: center; }
.kp-a29__txt h2 { max-inline-size: 12ch; }
.kp-a29__txt ol { grid-template-columns: 1fr !important; border-block-start: var(--border-strong) solid var(--ink); margin-block-start: var(--space-8); }
.kp-a29__txt li { counter-increment: kstep; padding: var(--space-4) 0 var(--space-4) var(--space-16); border-block-end: var(--border-strong) solid var(--ink); min-block-size: var(--space-10); }
.kp-a29__txt li::before { inset-block-start: 0.1em; font-size: var(--step-2); opacity: 1; }
.kp-a29__grid .k-figure { position: relative; overflow: hidden; clip-path: polygon(9% 0, 100% 0, 100% 100%, 0 100%); margin: 0; }
.kp-a29__grid .k-figure img { width: 100%; height: 100%; object-fit: cover; object-position: 60% 40%; }
.kp-a29__grid .k-figure figcaption { position: absolute; left: var(--space-4); bottom: var(--space-3); margin: 0; background: var(--acid); color: var(--ink); padding: 2px 8px; }
@media (max-width: 899px) {
	.kp-a29__grid { grid-template-columns: 1fr; min-height: 0; }
	.kp-a29__grid .k-figure { clip-path: polygon(0 8%, 100% 0, 100% 100%, 0 100%); min-height: 18rem; order: -1; }
}

/* --- lead review 2026-09-28 --------------------------------------------------------------- */
/* Hero is full-bleed (concept F1): cancel the page gutter the post-content applies to every child. */
.wp-block-post-content > .k-hero { padding-inline: 0; }
.home .k-main { padding-block-start: 0; }
/* Nav in one line at desktop (concept): no wrapping inside an item. */
@media (min-width: 1024px) {
	.k-nav a { white-space: nowrap; font-size: 0.95rem; }
	.k-nav ul { gap: var(--space-2) var(--space-5); }
	.k-header .k-btn { white-space: nowrap; }
}
/* Anton's capital diacritics (Ń, Ś, Ź, Ż, Ę) rise above cap height; at line-height 1 the acute of
   "GDAŃSKU" sat under the N of the line above and read as belonging to it. */
h1 { line-height: 1.12; }
/* the gutter sits on the post-content wrapper itself (.k-main > *); home sections carry their own */
.home .k-main > .wp-block-post-content { padding-inline: 0; }
