/*
 * Gabinet — "Odetchnij" ("Breathe out"). Component styles.
 * Visual language: design/art-direction.md (redesign 2026-09-28) + design/concept.html (home preview).
 * Lavender colour fields + coral, pills and circles everywhere, Baloo 2 headings / Nunito body,
 * dark periwinkle price band with huge coral numbers, "Boli teraz?" sticker following the scroll.
 * Class names are unchanged from v2 (design/ux-spec.md §5 pattern IDs still apply); only the tokens
 * and shape language below changed, so theme.js selectors and every content file keep working.
 */

/* ================= Tokens (roles from design/art-direction.md §4) ================= */
:root {
	--k-bg: var(--wp--preset--color--background);            /* lawenda 50 */
	--k-surface: var(--wp--preset--color--surface);
	--k-band-neutral: var(--wp--preset--color--band-neutral); /* lawenda 200 */
	--k-band-brand: var(--wp--preset--color--band-brand);     /* pas cen: atrament ciemny */
	--k-band-warm: var(--wp--preset--color--band-warm);       /* pas ulgi: lawenda 50 */
	--k-text: var(--wp--preset--color--ink);
	--k-heading: var(--wp--preset--color--heading);
	--k-muted: var(--wp--preset--color--muted);
	--k-brand: var(--wp--preset--color--brand);               /* barwinek */
	--k-brand-50: var(--wp--preset--color--brand-50);
	--k-brand-200: var(--wp--preset--color--brand-200);
	--k-brand-300: var(--wp--preset--color--brand-300);       /* lawenda 300: kształty miękkie */
	--k-decor: var(--wp--preset--color--decor);               /* koral 500 */
	--k-coral: var(--wp--preset--color--coral);                /* koral 300 */
	--k-coral-500: var(--wp--preset--color--coral-500);
	--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-border: var(--wp--preset--color--border);
	--k-border-strong: var(--wp--preset--color--border-strong);
	--k-row-hover: var(--k-brand-50);

	--k-radius-sm: var(--wp--custom--radius--sm);   /* 16px: chips, small elements */
	--k-radius-md: var(--wp--custom--radius--md);   /* 999px: buttons, fields, nav pills, controls */
	--k-radius-lg: var(--wp--custom--radius--lg);   /* 40px: cards, photos, panels */
	--k-radius-band: var(--wp--custom--radius--band); /* 64px: full-bleed colour bands (40px on phones) */
	--k-radius-full: 9999px;
	--k-control: 3rem;
	--k-shadow-1: var(--wp--custom--shadow--1);
	--k-shadow-2: var(--wp--custom--shadow--2);
	--k-shadow-3: var(--wp--custom--shadow--3);
	--k-fast: 120ms;
	--k-base: 240ms;
	--k-ease: cubic-bezier(0.2, 0, 0, 1);
	--k-nudge: 4px;
	--k-wide: var(--wp--style--global--wide-size, 72rem);
	--k-measure: 46rem;
	--k-side: 18rem;
	--k-gutter: clamp(1rem, 0.5rem + 2.2vw, 2rem);
	--k-section: var(--wp--preset--spacing--90);
	--k-bottombar-h: 0px;
}
@media (max-width: 600px) {
	:root { --k-radius-band: var(--wp--custom--radius--band-mobile); }
}
/* Float (hero collage, pigułki) — 7 s, 10 px, off under reduced motion (art-direction §5). */
@keyframes k-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@media (prefers-reduced-motion: reduce) {
	:root { --k-fast: 0ms; --k-base: 0ms; --k-nudge: 0px; }
}
@media (prefers-reduced-motion: no-preference) {
	html { scroll-behavior: smooth; }
}

/* ================= Base ================= */
*, *::before, *::after { box-sizing: border-box; }
body { -webkit-font-smoothing: antialiased; }
.wp-site-blocks { display: flex; flex-direction: column; min-height: 100vh; }
.wp-site-blocks > main, .wp-site-blocks > .k-main { flex: 1 0 auto; }
h1 { overflow-wrap: normal; hyphens: manual; letter-spacing: -0.015em; }
h2 { letter-spacing: -0.01em; }
:where(h1, h2, h3) { text-wrap: balance; }
p, li, dd { text-wrap: pretty; }
:where(h2, h3, [id]) { scroll-margin-top: 1.5rem; }
img { max-width: 100%; height: auto; }

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--k-brand);
	outline-offset: 2px;
	border-radius: var(--k-radius-sm);
}
a { text-underline-offset: 0.18em; transition: color var(--k-fast) var(--k-ease); }
a:hover { text-decoration-thickness: 2px; }

.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;
}
.k-icon { flex: none; vertical-align: -0.2em; }

.k-draft-banner {
	background: var(--wp--preset--color--info-bg);
	border-bottom: 1px solid var(--k-brand-200);
	color: var(--k-text);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.5;
	padding: 0.75rem 1rem;
	text-align: center;
}

/* ================= Buttons (design-system §6: hover ΔL −0.055, active −0.080, no scaling) ================= */
.k-btn, .wp-block-button__link {
	align-items: center;
	border: 1px solid transparent;
	border-radius: var(--k-radius-md);
	display: inline-flex;
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--base);
	font-weight: 700;
	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), transform var(--k-fast) var(--k-ease);
}
.k-btn:hover { transform: translateY(-2px); }
@media (prefers-reduced-motion: reduce) { .k-btn:hover { transform: none; } }
.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-action-hover); border-color: var(--k-action-hover); color: #fff; text-decoration: none; }
.k-btn--primary:active { background: var(--k-action-active); border-color: var(--k-action-active); }
/* Secondary CTA is a white pill with ink text (art-direction §4: "CTA wtórne białe"), not an outline. */
.k-btn--outline, .k-btn--outline:visited { background: var(--k-surface); border-color: var(--k-surface); color: var(--k-heading); }
.k-btn--outline:hover { background: var(--k-band-neutral); border-color: var(--k-band-neutral); color: var(--k-heading); text-decoration: none; }
.k-btn--outline:active { background: var(--k-brand-300); border-color: var(--k-brand-300); }
.k-btn--large { font-size: var(--wp--preset--font-size--medium); min-height: 3.5rem; padding: 0.75rem 1.75rem; }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--k-band-neutral); color: var(--k-heading); }
.k-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 0.75rem; }
.k-phone { align-items: center; color: var(--k-brand); display: inline-flex; font-weight: 700; gap: 0.375rem; text-decoration: none; white-space: nowrap; }
.k-phone:hover span { text-decoration: underline; }
.k-btn--primary.k-phone { color: #fff; }
.k-btn--outline.k-phone { color: var(--k-heading); }

/* ================= Header — P-A-35:V2 (utility row above a static bar); < 1100 px P-A-13:V3 =================
   "Odetchnij": no white bar — the header sits on the page ground, menu items are pills (art-direction §7). */
.k-header { background: var(--k-bg); border-bottom: 0; position: relative; z-index: 20; }
.k-header > .wp-block-group { margin-block: 0; }
.k-utility { background: var(--k-bg); border-bottom: 1px solid var(--k-border); font-size: var(--wp--preset--font-size--small); }
.k-utility__inner {
	align-items: center; display: flex; flex-wrap: wrap; gap: 0.25rem 1.5rem; justify-content: space-between;
	margin-block: 0 !important; min-height: 2.5rem; padding-block: 0.25rem;
}
.k-utility__urgent {
	color: var(--k-text); font-weight: 600; text-decoration: underline;
	text-decoration-color: var(--k-decor); text-decoration-thickness: 2px; text-underline-offset: 0.3em;
}
.k-utility__urgent:hover { color: var(--k-brand); text-decoration-color: currentColor; }
.k-utility__urgent span { display: inline-block; transition: transform var(--k-base) var(--k-ease); }
.k-utility__urgent:hover span { transform: translateX(var(--k-nudge)); }
.k-utility__contact { align-items: center; display: inline-flex; flex-wrap: wrap; gap: 0.25rem 1.25rem; }
.k-utility__hours { color: var(--k-muted); }

.k-masthead__inner { gap: 1.5rem; margin-block: 0 !important; min-height: 4.5rem; }
.k-brand { margin: 0; }
.k-brand a { color: var(--k-heading); display: flex; flex-direction: column; text-decoration: none; white-space: nowrap; position: relative; padding-left: 2.75rem; }
.k-brand a::before {
	background: var(--k-coral); border-radius: 999px; box-shadow: inset 0 0 0 9px var(--k-heading);
	content: ""; height: 34px; left: 0; position: absolute; top: 0.05em; width: 34px;
}
.k-brand__name { font-family: var(--wp--preset--font-family--heading); font-size: var(--wp--preset--font-size--medium); font-weight: 800; line-height: 1.2; letter-spacing: -0.01em; }
.k-brand__role { color: var(--k-muted); font-size: var(--wp--preset--font-size--small); font-weight: 600; }
.k-masthead__actions { align-items: center; display: flex; gap: 0.75rem; margin: 0 0 0 auto; white-space: nowrap; }
.k-masthead__actions .k-btn { min-height: 2.75rem; padding: 0.5rem 1.125rem; }
.k-masthead__actions > .k-phone { display: none; }

.k-nav { flex: 1 1 auto; }
.k-nav .wp-block-navigation__container { gap: 0.15rem 0.75rem; justify-content: center; }
.k-nav .wp-block-navigation-item { white-space: nowrap; }
.k-nav .wp-block-navigation-item__content,
.k-nav .wp-block-navigation-submenu__toggle {
	border-radius: 999px; color: var(--k-text); font-weight: 700; padding: 0.5em 0.7em; text-decoration: none;
	transition: background-color var(--k-fast) var(--k-ease), color var(--k-fast) var(--k-ease);
}
.k-nav .wp-block-navigation-item__content:hover { background: var(--k-surface); color: var(--k-heading); text-decoration: none; }
.k-nav [aria-current="page"] { background: var(--k-surface); color: var(--k-heading); text-decoration: none; }
.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 .wp-block-navigation-submenu__toggle[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-border) !important;
	border-radius: var(--k-radius-sm);
	box-shadow: var(--k-shadow-3);
	min-width: 18rem !important;
	padding: 0.5rem !important;
}
.k-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { border-radius: var(--k-radius-md); padding: 0.625rem 0.75rem !important; }
.k-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--k-row-hover); text-decoration: none; }
.k-nav .wp-block-navigation__responsive-container-open,
.k-nav .wp-block-navigation__responsive-container-close {
	border: 1px solid var(--k-brand); border-radius: var(--k-radius-md); color: var(--k-brand);
	font-weight: 600; min-height: 2.75rem; padding: 0.5rem 0.875rem;
}
.k-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--k-bg) !important;
	padding: 1.5rem 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; }
.k-nav .is-menu-open .wp-block-navigation__submenu-container { border: 0 !important; box-shadow: none; padding: 0 0 0 1rem !important; }
.k-nav .k-nav__urgent .wp-block-navigation-item__content { font-weight: 600; text-decoration: underline; text-decoration-color: var(--k-decor); text-decoration-thickness: 2px; }

@media (min-width: 1100px) {
	.k-nav .k-nav__urgent { display: none; }
	.k-brand__role { display: none; }
}
@media (min-width: 1100px) and (max-width: 1279px) {
	.k-nav .wp-block-navigation__container { gap: 0.25rem 1rem; }
	.k-masthead__inner { gap: 1rem; }
	.k-brand__name { font-size: var(--wp--preset--font-size--base); }
}
/* WordPress switches the navigation to its overlay only below 600 px; this header needs it below 1100 px. */
@media (min-width: 600px) and (max-width: 1099px) {
	.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: 1099px) {
	.k-nav { flex: 0 0 auto; order: 3; }
	.k-masthead__inner { justify-content: flex-start !important; }
	.k-brand { margin-right: auto !important; }
	.k-masthead__actions { margin-left: 0; }
	.k-masthead__inner { gap: 0.75rem; }
}
/* Phones: logo · Zadzwoń · Menu; "Umów wizytę" moves to the bottom bar; utility row keeps only "Boli mnie ząb". */
@media (max-width: 781px) {
	.k-header { position: sticky; top: 0; transition: transform var(--k-base) var(--k-ease); }
	.k-header.is-hidden { transform: translateY(-100%); }
	.k-utility__contact { display: none; }
	.k-utility__inner { min-height: 2.25rem; }
	.k-masthead__inner { min-height: 4rem; gap: 0.5rem; }
	.k-brand__role { display: none; }
	.k-brand__name { font-size: var(--wp--preset--font-size--base); white-space: normal; }
	.k-brand a { white-space: normal; }
	.k-masthead__cta { display: none !important; }
	.k-masthead__actions > .k-phone { display: inline-flex; padding-inline: 0.75rem; }
}

/* ================= Breadcrumbs — P-A-36 (V1 full trail on desktop, V2 parent only on phones) ================= */
.k-breadcrumbs { box-sizing: content-box; margin: 1.25rem 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-size: var(--wp--preset--font-size--small); gap: 0.25rem 0.5rem; list-style: none; margin: 0; padding: 0; }
.k-breadcrumbs li + li::before { color: var(--k-muted); content: "›"; margin-right: 0.5rem; }
.k-breadcrumbs a { display: inline-block; padding-block: 0.375rem; }
@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: "‹"; margin-right: 0.375rem; }
	.k-breadcrumbs a { min-height: 2.75rem; display: inline-flex; align-items: center; }
}
.wp-block-post-content > .wp-block-shortcode:first-child { margin: 0; }

/* ================= Sections and bands ================= */
/* Every section shares the wide left edge; running text keeps a readable measure. */
.wp-block-post-content > .k-section { 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) { max-width: var(--k-wide) !important; }
.k-section > :is(p, ul, ol, dl, .wp-block-heading, .wp-block-shortcode, .wp-block-buttons, .wp-block-group:not(.alignwide), form, .wp-block-html) {
	margin-left: max(0px, calc((100% - var(--k-wide)) / 2)) !important;
	margin-right: auto !important;
	max-width: var(--k-measure) !important;
}
.k-section > :is(.k-rows, .k-kv--links) { max-width: calc(var(--k-wide) * 8 / 12) !important; }
.k-section > :is(.k-steps--row, .k-kv--inline, .k-amounts, .k-facts, .k-qa, .k-team, .wp-block-html:has(.k-kv--inline, .k-amounts)) { max-width: var(--k-wide) !important; }
.k-section > .wp-block-shortcode:has(.k-team, .k-amounts) { max-width: var(--k-wide) !important; }
.k-section h2 { margin-top: 0; margin-bottom: var(--wp--preset--spacing--50); }
.k-section > * + h2 { margin-top: var(--wp--preset--spacing--80); }
.k-section h3 { margin-top: var(--wp--preset--spacing--60); margin-bottom: var(--wp--preset--spacing--20); }
.k-section p { max-width: 66ch; }
.k-band-brand { background: var(--k-band-brand); }
.k-band-neutral { background: var(--k-band-neutral); }
.k-band-warm { background: var(--k-band-warm); }
.k-more { font-weight: 600; }
.k-more a::after { content: " →"; }
.k-source { color: var(--k-muted); font-size: var(--wp--preset--font-size--small); }

/* ================= Page headers — P-A-01:V1 typographic, P-A-02:V1 split with photo ================= */
.k-hero { padding-top: clamp(2rem, 1.2rem + 3vw, 3.5rem); }
.k-hero h1 { margin-top: 0; max-width: 20ch; }
.k-hero > :is(p, .wp-block-group:not(.alignwide)) { max-width: calc(var(--k-wide) * 8 / 12) !important; }
.k-lead { color: var(--k-text); font-size: var(--wp--preset--font-size--medium); line-height: 1.5; max-width: 40rem !important; }
.k-facts-line { color: var(--k-muted); font-size: var(--wp--preset--font-size--small); }
.k-facts-line strong { color: var(--k-text); }
.k-hero--photo .wp-block-columns { align-items: center; gap: var(--wp--preset--spacing--70); margin: 0; }
.k-hero--photo .wp-block-column > :first-child { margin-top: 0; }
.k-hero--photo .wp-block-column > .wp-block-shortcode { margin: 0; }
@media (max-width: 781px) {
	.k-hero--photo .wp-block-columns { gap: var(--wp--preset--spacing--60); }
}

/* Photo figure (design/images.md §C): one radius, fixed ratio per set, no overlay, caption always. */
.k-figure { margin: 0; }
.k-figure picture { display: block; }
.k-figure img { aspect-ratio: 4 / 5; border-radius: var(--k-radius-lg); display: block; object-fit: cover; width: 100%; }
.k-figure--higienizacja img, .k-figure--dzieci img, .k-figure--pierwsza-wizyta img { aspect-ratio: 1; }
.k-figure--kontakt img { aspect-ratio: 3 / 2; }
.k-figure figcaption { color: var(--k-muted); font-size: var(--wp--preset--font-size--small); margin-top: 0.5rem; }
@media (min-width: 782px) {
	.k-hero--photo .k-figure { margin-left: auto; max-width: 27.5rem; }
}
@media (max-width: 719px) {
	.k-figure--hero img { aspect-ratio: 3 / 2; }
}

/* Urgent strip (S-02): informative, not alarming — white, 4 px brand edge, no red, no orange. */
.k-urgent {
	align-items: center; background: var(--k-surface);
	border: 1px solid var(--k-border); border-left: 4px solid var(--k-brand);
	border-radius: var(--k-radius-sm); display: inline-flex !important; flex-wrap: wrap; gap: 0.25rem 0.75rem;
	margin-top: var(--wp--preset--spacing--60) !important; padding: 0.75rem 1.25rem;
}
.k-urgent a { color: var(--k-brand); font-weight: 600; }

/* ================= Section with side heading — P-A-27:V1 ================= */
.k-split > * { margin-block: 0; }
.k-split__body > :first-child { margin-top: 0; }
.k-split__body > :last-child { margin-bottom: 0; }
.k-split__body { max-width: var(--k-measure); }
@media (min-width: 1100px) {
	.k-split {
		align-items: start;
		column-gap: var(--wp--preset--spacing--70);
		display: grid;
		grid-template-columns: var(--k-side) minmax(0, 1fr);
	}
	.k-split > h2 {
		margin: 0 !important;
		max-height: calc(100vh - 2rem);
		position: sticky;
		top: 1rem;
	}
	.k-split > h2 + * { margin-top: 0 !important; }
}
.k-split > h2 { font-size: var(--wp--preset--font-size--large); }
.k-split + .k-split { margin-top: var(--wp--preset--spacing--80); }
.k-num { color: var(--k-decor); display: block; font-size: var(--wp--preset--font-size--small); font-variant-numeric: tabular-nums; font-weight: 600; letter-spacing: 0.04em; }

/* ================= Page TOC rail — P-A-14:V3 ================= */
.k-toc { font-size: var(--wp--preset--font-size--small); }
.k-toc__title { color: var(--k-muted); font-weight: 600; letter-spacing: 0.06em; margin: 0 0 0.5rem; text-transform: uppercase; }
.k-toc ol { display: grid; gap: 0; list-style: none; margin: 0; padding: 0; }
.k-toc a {
	border-left: 2px solid var(--k-border); color: var(--k-text); display: block;
	padding: 0.5rem 0 0.5rem 0.875rem; text-decoration: none;
	transition: border-color var(--k-fast) var(--k-ease), background-color var(--k-fast) var(--k-ease);
}
.k-toc a:hover { background: var(--k-row-hover); border-left-color: var(--k-decor); color: var(--k-brand); }
.k-toc a[aria-current="true"] { border-left-color: var(--k-brand); color: var(--k-brand); font-weight: 600; }
.k-toc-body > .k-block + .k-block { margin-top: var(--wp--preset--spacing--80); }
.k-toc-body > * { margin-block: 0; }
.k-toc-body .k-block > :first-child { margin-top: 0; }
.k-toc-body .k-block > :last-child { margin-bottom: 0; }
.k-toc-body .k-block > * { max-width: var(--k-measure); }
.k-toc-body .k-block > :is(.k-qa, .wp-block-table, .wp-block-html:has(.k-kv), .k-steps) { max-width: none; }
@media (min-width: 1100px) {
	.k-toc-grid {
		align-items: start; column-gap: var(--wp--preset--spacing--70); display: grid;
		grid-template-columns: var(--k-side) minmax(0, 1fr);
	}
	.k-toc-grid > * { margin: 0 !important; }
	.k-toc-grid > .wp-block-html { align-self: stretch; }
	.k-toc { max-height: calc(100vh - 2rem); overflow: auto; position: sticky; top: 1rem; }
}
@media (max-width: 1099px) {
	.k-toc { background: var(--k-surface); border: 1px solid var(--k-border); border-radius: var(--k-radius-lg); margin-bottom: var(--wp--preset--spacing--70); padding: 1rem 1.25rem; }
	.k-toc ol { column-gap: 1.5rem; grid-template-columns: repeat(auto-fill, minmax(min(9.5rem, 100%), 1fr)); }
	.k-toc a { min-height: 2.75rem; display: flex; align-items: center; }
}

/* ================= Row lists — P-A-16:V1 (situations) ================= */
.k-rows { border-top: 1px solid var(--k-border); counter-reset: none; list-style: none; margin-block: 0; padding: 0; }
.k-rows > li {
	border-bottom: 1px solid var(--k-border); color: var(--k-muted); padding: 1rem 3rem 1rem 1rem; position: relative;
	transition: background-color var(--k-fast) var(--k-ease);
}
.k-rows > li > a:first-child {
	color: var(--k-heading); display: block; font-size: var(--wp--preset--font-size--medium);
	font-weight: 620; line-height: 1.3; margin-bottom: 0.125rem; text-decoration: none;
}
.k-rows > li > a:first-child::after { content: ""; inset: 0; position: absolute; }
.k-rows > li::after {
	color: var(--k-brand); content: "→"; font-size: 1.25rem; position: absolute; right: 1rem; top: 50%;
	transform: translateY(-50%); transition: transform var(--k-base) var(--k-ease);
}
.k-rows > li:hover { background: var(--k-row-hover); }
.k-rows > li:hover::after { transform: translate(var(--k-nudge), -50%); }
.k-rows > li:hover > a:first-child { color: var(--k-brand); }
.k-rows > li:has(> a:focus-visible) { outline: 2px solid var(--k-brand); outline-offset: -2px; }
.k-rows > li > a:focus-visible { outline: none; }

/* ================= Key–value — P-A-30 (V1 rows, V3 one band) ================= */
.k-kv { margin: 0; }
.k-kv__row { border-bottom: 1px solid var(--k-border); display: grid; gap: 0.25rem 2rem; padding: 1rem 0; position: relative; }
.k-kv__row:first-child { border-top: 1px solid var(--k-border); }
.k-kv dt { color: var(--k-heading); font-weight: 620; }
.k-kv dd { color: var(--k-text); margin: 0; }
@media (min-width: 782px) {
	.k-kv__row { grid-template-columns: minmax(10rem, 1fr) 2fr; }
}
/* Linked rows (U-01 services, T-12 other services): the whole row is one link. */
.k-kv--links .k-kv__row { padding-inline: 1rem 3rem; transition: background-color var(--k-fast) var(--k-ease); }
.k-kv--links dt a { color: var(--k-heading); text-decoration: none; }
.k-kv--links dt a::after { content: ""; inset: 0; position: absolute; }
.k-kv--links dd { color: var(--k-muted); }
.k-kv--links dd .k-price { color: var(--k-text); font-variant-numeric: tabular-nums; font-weight: 600; white-space: nowrap; }
.k-kv--links .k-kv__row::after {
	color: var(--k-brand); content: "→"; font-size: 1.25rem; position: absolute; right: 1rem; top: 50%;
	transform: translateY(-50%); transition: transform var(--k-base) var(--k-ease);
}
.k-kv--links .k-kv__row:hover { background: var(--k-row-hover); }
.k-kv--links .k-kv__row:hover::after { transform: translate(var(--k-nudge), -50%); }
.k-kv--links .k-kv__row:hover dt a { color: var(--k-brand); }
.k-kv--links .k-kv__row:has(a:focus-visible) { outline: 2px solid var(--k-brand); outline-offset: -2px; }
.k-kv--links dt a:focus-visible { outline: none; }
/* V3: a quiet band of facts, label over value. */
.k-kv--inline { display: grid; gap: var(--wp--preset--spacing--60); grid-template-columns: repeat(auto-fit, minmax(min(13rem, 100%), 1fr)); }
.k-kv--inline .k-kv__row { border: 0; display: block; padding: 0; }
.k-kv--inline dt { font-size: var(--wp--preset--font-size--medium); margin-bottom: 0.375rem; }
.k-kv--inline dd { color: var(--k-text); }
.k-kv--inline .k-kv__row::before { background: var(--k-decor); content: ""; display: block; height: 2px; margin-bottom: 1rem; width: 2rem; }

/* ================= Icon facts — P-A-28:V1 (4 columns, white fact frame) and V2 (checklist) ================= */
.k-facts {
	background: var(--k-surface); border: 1px solid var(--k-brand-200); border-radius: var(--k-radius-lg);
	box-shadow: var(--k-shadow-1); display: grid; gap: var(--wp--preset--spacing--60);
	grid-template-columns: repeat(auto-fit, minmax(min(12rem, 100%), 1fr));
	list-style: none; margin-block: 0; padding: var(--wp--preset--spacing--60);
}
.k-facts > li { color: var(--k-text); padding-top: 2.25rem; position: relative; }
.k-facts > li strong { color: var(--k-heading); display: block; font-weight: 620; margin-bottom: 0.125rem; }
.k-facts > li::before {
	background: var(--k-decor); content: ""; height: 24px; left: 0; position: absolute; top: 0; width: 24px;
	-webkit-mask: var(--k-ico, var(--k-ico-info)) center / contain no-repeat; mask: var(--k-ico, var(--k-ico-info)) center / contain no-repeat;
}
@media (max-width: 781px) {
	.k-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: var(--wp--preset--spacing--50); }
}
@media (max-width: 420px) {
	.k-facts { grid-template-columns: 1fr; }
	.k-facts > li { padding: 0 0 0 2.25rem; }
}
.k-check { list-style: none; margin-block: 0; padding: 0; }
.k-check > li { padding: 0.375rem 0 0.375rem 2rem; position: relative; }
.k-check > li::before {
	background: var(--k-brand); content: ""; height: 20px; left: 0; position: absolute; top: 0.6rem; width: 20px;
	-webkit-mask: var(--k-ico-tick) center / contain no-repeat; mask: var(--k-ico-tick) center / contain no-repeat;
}

/* ================= Steps — P-A-29 (V1 horizontal row on home, V2 vertical) ================= */
.k-steps { counter-reset: k-step; display: grid; gap: var(--wp--preset--spacing--50); list-style: none; margin-block: 0; padding: 0; }
.k-steps > li { counter-increment: k-step; padding-left: 3.25rem; position: relative; }
.k-steps > li::before {
	align-items: center; background: var(--k-band-brand); border-radius: var(--k-radius-full);
	color: var(--k-heading); content: counter(k-step); display: flex; font-weight: 620;
	height: 2.25rem; justify-content: center; left: 0; position: absolute; top: -0.2rem; width: 2.25rem;
}
.k-steps > li:not(:last-child)::after { background: var(--k-decor); bottom: calc(-1 * var(--wp--preset--spacing--50) + 0.25rem); content: ""; left: calc(1.125rem - 1px); position: absolute; top: 2.25rem; width: 2px; }
.k-steps > li strong { color: var(--k-heading); }
@media (min-width: 900px) {
	.k-steps--row { gap: var(--wp--preset--spacing--50); grid-template-columns: repeat(5, minmax(0, 1fr)); }
	.k-steps--row > li { padding: 3.25rem 0 0; }
	.k-steps--row > li::before { top: 0; }
	.k-steps--row > li:not(:last-child)::after { bottom: auto; height: 2px; left: 2.75rem; right: calc(-1 * var(--wp--preset--spacing--50) + 0.5rem); top: calc(1.125rem - 1px); width: auto; }
	.k-steps--row > li strong { font-size: var(--wp--preset--font-size--base); }
}

/* ================= Prices — P-A-33:V3 band of amounts; P-B-22:V1 price list ================= */
.k-amounts {
	display: grid; gap: var(--wp--preset--spacing--60) var(--wp--preset--spacing--50);
	grid-template-columns: repeat(auto-fit, minmax(min(11rem, 100%), 1fr));
	list-style: none; margin-block: 0; padding: 0;
}
.k-amounts > li { border-top: 2px solid var(--k-decor); color: var(--k-text); padding-top: 1rem; }
.k-amounts > li > .k-price:first-child {
	color: var(--k-heading); display: block; font-family: var(--wp--preset--font-family--heading); font-size: var(--wp--preset--font-size--x-large);
	font-variant-numeric: tabular-nums; font-weight: 800; letter-spacing: -0.01em; line-height: 1.15; margin-bottom: 0.25rem;
}
.k-amounts > li > .k-price:first-child small { font-size: 0.42em; font-weight: 700; letter-spacing: 0; margin-left: 0.15em; }
@media (max-width: 781px) {
	.k-amounts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.k-amounts > li > .k-price:first-child { font-size: var(--wp--preset--font-size--large); }
}
.k-pricelist { background: var(--k-surface); border: 1px solid var(--k-border); border-radius: var(--k-radius-lg); margin: 0; }
.k-pricelist__row { align-items: baseline; border-bottom: 1px solid var(--k-border); display: flex; flex-wrap: wrap; gap: 0.25rem 1.5rem; justify-content: space-between; padding: 0.875rem 1.25rem; }
.k-pricelist__row:last-child { border-bottom: 0; }
.k-pricelist dt { flex: 1 1 9rem; }
.k-pricelist dd { font-variant-numeric: tabular-nums; font-weight: 600; margin: 0 0 0 auto; text-align: right; white-space: nowrap; }
.k-incl { background: var(--k-surface); border: 1px solid var(--k-brand-200); border-radius: var(--k-radius-md); padding: 0.875rem 1.125rem; }
.k-band-brand .k-incl, .k-band-neutral .k-incl { box-shadow: var(--k-shadow-1); }
.k-section > .wp-block-shortcode:has(.k-pricelist) { max-width: var(--k-measure) !important; }

/* ================= FAQ — P-B-29 (visible answers in two columns) and P-A-16:V1 (grouped list) ================= */
.k-qa { column-gap: var(--wp--preset--spacing--70); }
@media (min-width: 900px) { .k-qa { columns: 2; } }
.k-qa > .k-qa__item { break-inside: avoid; margin: 0 0 var(--wp--preset--spacing--60); }
.k-qa h3, .k-qa-list h3 { font-size: var(--wp--preset--font-size--base); font-weight: 650; line-height: 1.35; margin: 0 0 0.375rem !important; }
.k-qa p, .k-qa-list p { margin: 0; }
.k-qa-list > .k-qa__item { border-bottom: 1px solid var(--k-border); margin: 0; padding: 1rem 0; }
.k-qa-list > .k-qa__item:first-child { border-top: 1px solid var(--k-border); }
.k-qa__item:target, .k-qa__item:has(:target) { background: var(--k-row-hover); box-shadow: 0 0 0 0.75rem var(--k-row-hover); }

/* ================= Comparison table — P-A-17:V1 ================= */
.k-compare { margin-block: 0; overflow-x: auto; }
.k-compare table { background: var(--k-surface); border-collapse: separate; border-spacing: 0; border: 1px solid var(--k-border); border-radius: var(--k-radius-lg); min-width: 34rem; width: 100%; }
.k-compare th, .k-compare td { border: 0; border-bottom: 1px solid var(--k-border); padding: 0.75rem 1rem; text-align: left; vertical-align: top; }
.k-compare tr:last-child > * { border-bottom: 0; }
.k-compare thead th { background: var(--k-band-brand); color: var(--k-heading); font-weight: 620; }
.k-compare thead th:first-child { border-top-left-radius: var(--k-radius-lg); }
.k-compare thead th:last-child { border-top-right-radius: var(--k-radius-lg); }
.k-compare tbody th, .k-compare tbody td:first-child { color: var(--k-heading); font-weight: 600; }
.k-compare figcaption { color: var(--k-muted); font-size: var(--wp--preset--font-size--small); }

/* ================= Notices — P-A-37 (V1 inset, V4 urgent route: calm, icon + word, not red) ================= */
.k-notice {
	background: var(--k-surface); border: 1px solid var(--k-border); border-left: 4px solid var(--k-brand);
	border-radius: var(--k-radius-sm); color: var(--k-text); padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--60);
}
.k-notice > :first-child { margin-top: 0; }
.k-notice > :last-child { margin-bottom: 0; }
.k-notice h2 { font-size: var(--wp--preset--font-size--large); }
.k-notice--route { background: var(--wp--preset--color--info-bg); border-color: var(--k-brand-200); border-left-color: var(--wp--preset--color--info); padding-left: calc(var(--wp--preset--spacing--60) + 2.25rem); position: relative; }
.k-notice--route::before {
	background: var(--wp--preset--color--info); content: ""; height: 24px; left: var(--wp--preset--spacing--50); position: absolute; top: calc(var(--wp--preset--spacing--50) + 0.2rem); width: 24px;
	-webkit-mask: var(--k-ico-ksiezyc) center / contain no-repeat; mask: var(--k-ico-ksiezyc) center / contain no-repeat;
}
.k-notice__kicker { color: var(--wp--preset--color--info); font-size: var(--wp--preset--font-size--small); font-weight: 650; letter-spacing: 0.06em; margin-bottom: 0.25rem !important; text-transform: uppercase; }
.k-notice--route .k-notice__kicker + h2 { margin-top: 0; }
.k-notice__emergency { border-top: 1px solid var(--k-brand-200); padding-top: 1rem; }

/* ================= People — P-B-11:V1 cards (home), P-B-13:V1 profiles ================= */
.k-team { display: grid; gap: var(--wp--preset--spacing--60); }
.k-team--cards { grid-template-columns: repeat(auto-fit, minmax(min(15rem, 100%), 1fr)); }
.k-team--profiles { gap: var(--wp--preset--spacing--80); }
.k-person { color: var(--k-text); }
.k-person__text > * { margin: 0 0 0.375rem; }
.k-person__name { color: var(--k-heading); font-size: var(--wp--preset--font-size--medium); margin-top: 0 !important; }
.k-person__spec { font-weight: 600; }
.k-person__npwz, .k-person__days { color: var(--k-muted); font-size: var(--wp--preset--font-size--small); }
.k-person__days strong { color: var(--k-text); }
.k-person--karta {
	background: var(--k-surface); border: 1px solid var(--k-border); border-radius: var(--k-radius-lg);
	box-shadow: var(--k-shadow-1); display: flex; flex-direction: column; gap: 1rem; padding: 1rem 1rem 1.25rem; position: relative;
	transition: box-shadow var(--k-fast) var(--k-ease);
}
.k-person--karta:hover { box-shadow: var(--k-shadow-2); }
.k-person--karta .k-person__name a { color: var(--k-heading); text-decoration: none; }
.k-person--karta .k-person__name a::after { content: ""; inset: 0; position: absolute; }
.k-person--karta:hover .k-person__name a { color: var(--k-brand); text-decoration: underline; }
.k-person--karta:has(a:focus-visible) { outline: 2px solid var(--k-brand); outline-offset: 2px; }
.k-person--karta .k-person__name a:focus-visible { outline: none; }
.k-person--karta .k-person__npwz a { position: relative; z-index: 1; }
.k-person--karta .k-figure img { border-radius: var(--k-radius-md); }
.k-person--sylwetka, .k-person--pelny { display: grid; gap: var(--wp--preset--spacing--50) var(--wp--preset--spacing--70); }
@media (min-width: 720px) {
	.k-person--sylwetka, .k-person--pelny { align-items: start; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); }
	.k-person--sylwetka .k-figure { max-width: 16rem; }
	.k-person--pelny .k-figure { max-width: 22rem; }
}
@media (max-width: 719px) {
	.k-person--sylwetka .k-figure, .k-person--pelny .k-figure { max-width: 16rem; }
}
.k-person--pelny .k-person__name { font-size: var(--wp--preset--font-size--x-large); margin-bottom: 0.5rem !important; }
.k-person--pelny .k-person__text > * { margin-bottom: 0.625rem; }

/* ================= Contact ================= */
.k-address { font-style: normal; }
.k-access { color: var(--k-muted); padding-left: 1.25rem; }
.k-directions { font-weight: 600; }
.k-directions::after { content: " ↗"; }
.k-map { aspect-ratio: 16 / 9; border-radius: var(--k-radius-lg); 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-radius: var(--k-radius-md); bottom: 1rem; color: var(--k-text); font-size: var(--wp--preset--font-size--small); left: 1rem; padding: 0.5rem 0.75rem; position: absolute; }
.k-map__cta { background: var(--k-brand); border-radius: var(--k-radius-md); color: #fff; font-size: var(--wp--preset--font-size--small); font-weight: 600; padding: 0.5rem 0.75rem; position: absolute; right: 1rem; top: 1rem; }
.k-map:hover .k-map__cta { background: var(--k-text); }
.k-contact-card { background: var(--k-surface); border: 1px solid var(--k-border); border-radius: var(--k-radius-lg); box-shadow: var(--k-shadow-1); padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--60); }
.k-contact-card > :first-child { margin-top: 0; }
.k-contact-card > :last-child { margin-bottom: 0; }
.k-columns { gap: var(--wp--preset--spacing--70) !important; }
.k-columns > .wp-block-column > :first-child { margin-top: 0; }
.k-copy { background: none; border: 1px solid var(--k-border-strong); border-radius: var(--k-radius-sm); color: var(--k-brand); cursor: pointer; font: inherit; font-size: var(--wp--preset--font-size--small); margin-left: 0.5rem; min-height: 2.25rem; padding: 0.25rem 0.625rem; }
.k-copy:hover { background: var(--k-brand-50); }
.k-copy-status { color: var(--wp--preset--color--success); font-size: var(--wp--preset--font-size--small); margin-left: 0.5rem; }
.k-final-cta .wp-block-columns { gap: var(--wp--preset--spacing--70); margin: 0; }
.k-final-cta h2 { margin-bottom: var(--wp--preset--spacing--40); }

/* ================= Form — P-B-34:V2 ================= */
.k-form { background: var(--k-surface); border: 1px solid var(--k-border); border-radius: var(--k-radius-lg); display: grid; gap: var(--wp--preset--spacing--50); max-width: 38rem; padding: var(--wp--preset--spacing--60); }
.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: var(--k-radius-md);
	color: var(--k-text); 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-brand); outline: 2px solid var(--k-brand); outline-offset: 0; }
.k-field [aria-invalid="true"] { border: 2px solid var(--wp--preset--color--error); }
.k-field__error { align-items: center; color: var(--wp--preset--color--error); display: flex; font-weight: 600; gap: 0.375rem; margin: 0; }
.k-field__error::before { content: "✕"; }
.k-error-summary { background: var(--wp--preset--color--error-bg); border: 2px solid var(--wp--preset--color--error); border-radius: var(--k-radius-sm); 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: var(--wp--preset--color--success-bg); border: 2px solid var(--wp--preset--color--success); border-radius: var(--k-radius-lg); padding: 1.25rem 1.5rem; }
.k-form-success__title { align-items: center; color: var(--wp--preset--color--success); display: flex; font-size: var(--wp--preset--font-size--large); font-weight: 620; gap: 0.5rem; margin-top: 0; }
.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; }
.k-choice { border: 0; margin: 0; padding: 0; }
.k-choice legend { font-weight: 600; margin-bottom: 0.375rem; padding: 0; }
.k-choice__options { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.k-choice__option { align-items: center; border: 1px solid var(--k-border-strong); border-radius: var(--k-radius-full); cursor: pointer; display: inline-flex; font-weight: 400 !important; gap: 0.5rem; min-height: 2.75rem; padding: 0.25rem 1rem; transition: background-color var(--k-fast) var(--k-ease); }
.k-choice__option:hover { background: var(--k-brand-50); }
.k-choice__option:has(input:checked) { background: var(--k-band-brand); border-color: var(--k-brand); }
.k-choice__option input { accent-color: var(--k-brand); height: 1.125rem; margin: 0; width: 1.125rem; }
.k-pain-hint:empty { display: none; }
.k-pain-hint { color: var(--k-text); }
@media (max-width: 781px) {
	.k-form { padding: var(--wp--preset--spacing--50); }
	.k-form [data-k-submit] { justify-self: stretch; }
}

/* ================= Footer — P-B-38:V2 ================= */
.k-footer { background: var(--k-text); color: var(--k-bg); font-size: var(--wp--preset--font-size--small); padding-block: var(--wp--preset--spacing--80); }
.k-footer a, .k-footer .k-phone { color: var(--k-brand-300); }
.k-footer a:hover { color: #fff; }
.k-footer :where(a, button):focus-visible { outline-color: var(--k-bg); }
.k-footer__title { color: #fff; font-size: var(--wp--preset--font-size--medium); font-weight: 620; 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(--wp--preset--color--inverse-muted); }
@media (min-width: 900px) { .k-footer__links--cols { column-gap: 1.5rem; columns: 2; } }

/* ================= Bottom action bar — phones only (P-A-13:V3, B-12) ================= */
.k-bottombar { display: none !important; }
@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-border); bottom: 0; box-shadow: var(--k-shadow-3);
		display: flex !important; 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-base) var(--k-ease); z-index: 25;
	}
	.k-bottombar > * { flex: 1; }
	.k-bottombar .k-btn { padding-inline: 0.75rem; text-align: center; }
	.k-bottombar.is-hidden { transform: translateY(110%); }
	body.k-no-bottombar { padding-bottom: 0; }
	body.k-no-bottombar .k-bottombar { display: none !important; }
}

/* ================= Columns ================= */
@media (min-width: 782px) {
	.wp-block-columns { gap: var(--wp--preset--spacing--60); }
}

/* ================= Line icons (design-system §6: one linear set, 1.75 px, no teeth, drills or syringes) ================= */
:root {
	--k-ico-info: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='1.75'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Ccircle%20cx='12'%20cy='12'%20r='9'/%3E%3Cpath%20d='M12%2011v6M12%207.5v.5'/%3E%3C/svg%3E");
	--k-ico-cena: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='1.75'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M3%2012.5V4h8.5L21%2013.5%2013.5%2021z'/%3E%3Ccircle%20cx='7.5'%20cy='8'%20r='1.5'/%3E%3C/svg%3E");
	--k-ico-czas: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='1.75'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Ccircle%20cx='12'%20cy='12'%20r='9'/%3E%3Cpath%20d='M12%207v5l3.5%202'/%3E%3C/svg%3E");
	--k-ico-spokoj: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='1.75'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Ccircle%20cx='12'%20cy='12'%20r='9'/%3E%3Cpath%20d='m8%2012.5%202.8%202.8L16.5%209'/%3E%3C/svg%3E");
	--k-ico-kalendarz: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='1.75'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Crect%20x='3.5'%20y='5'%20width='17'%20height='15.5'%20rx='2'/%3E%3Cpath%20d='M3.5%2010h17M8%203v4M16%203v4'/%3E%3C/svg%3E");
	--k-ico-wiadomosc: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='1.75'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M4%205h16v11H9.5L5%2020v-4H4z'/%3E%3C/svg%3E");
	--k-ico-rodzic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='1.75'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Ccircle%20cx='9'%20cy='8'%20r='3'/%3E%3Ccircle%20cx='17'%20cy='10'%20r='2.2'/%3E%3Cpath%20d='M3.5%2020c0-3.2%202.5-5.3%205.5-5.3s5.5%202.1%205.5%205.3M15%2020c0-2.3%201.4-3.8%203-3.8s2.5%201.5%202.5%203.8'/%3E%3C/svg%3E");
	--k-ico-telefon: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='1.75'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M5%204h4l2%205-2.5%201.5a11%2011%200%200%200%205%205L15%2013l5%202v4a2%202%200%200%201-2%202A16%2016%200%200%201%203%206a2%202%200%200%201%202-2'/%3E%3C/svg%3E");
	--k-ico-ksiezyc: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='1.75'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M20%2014.5A8.5%208.5%200%201%201%209.5%204a6.8%206.8%200%200%200%2010.5%2010.5z'/%3E%3C/svg%3E");
	--k-ico-dom: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='1.75'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M4%2011%2012%204l8%207v9H4z'/%3E%3Cpath%20d='M10%2020v-5h4v5'/%3E%3C/svg%3E");
	--k-ico-tick: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.25'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='m5%2012.5%204.5%204.5L19%207.5'/%3E%3C/svg%3E");
}
.k-ico-info { --k-ico: var(--k-ico-info); }
.k-ico-cena { --k-ico: var(--k-ico-cena); }
.k-ico-czas { --k-ico: var(--k-ico-czas); }
.k-ico-spokoj { --k-ico: var(--k-ico-spokoj); }
.k-ico-kalendarz { --k-ico: var(--k-ico-kalendarz); }
.k-ico-wiadomosc { --k-ico: var(--k-ico-wiadomosc); }
.k-ico-rodzic { --k-ico: var(--k-ico-rodzic); }
.k-ico-telefon { --k-ico: var(--k-ico-telefon); }
.k-ico-ksiezyc { --k-ico: var(--k-ico-ksiezyc); }
.k-ico-dom { --k-ico: var(--k-ico-dom); }
.k-amounts__sub { color: var(--k-muted); display: block; font-size: var(--wp--preset--font-size--small); margin-top: 0.25rem; }
.k-amounts__sub .k-price { color: var(--k-text); font-variant-numeric: tabular-nums; white-space: nowrap; }

/* ================= "Odetchnij" — home collage, sticker, chips, price band, fear dots, team circles =========
   design/art-direction.md §5–§7; class names below are new (added only where the concept adds shape),
   nothing here removes or renames an existing class that theme.js or content relies on. */

/* Page bands: hero and end-of-page bands get the big 64/40 px corner (art-direction §5, §7). */
.k-hero { background: var(--k-band-neutral); border-radius: 0 0 var(--k-radius-band) var(--k-radius-band); overflow: hidden; padding-bottom: clamp(2.5rem, 4vw, 5rem); }
.k-hero--photo { background: var(--k-band-neutral); }
.k-final-cta { border-radius: var(--k-radius-band) var(--k-radius-band) 0 0; }

/* Home H1: the district/eyebrow stays in the H1 for SEO, as a small first line; the approved headline
   ("Plan leczenia i cenę znasz przed zabiegiem.") wraps to two lines via the accent span. */
.k-hero h1:has(.k-hero__kicker) { max-width: none; }
.k-hero__kicker {
	color: var(--k-muted); display: flex; align-items: center; font-family: var(--wp--preset--font-family--body);
	font-size: 1rem; font-weight: 700; gap: 0.6em; margin-bottom: 0.5em;
}
.k-hero__kicker::before { background: var(--k-coral); border-radius: 999px; content: ""; height: 14px; width: 14px; }
.k-hero__accent { color: var(--k-brand); display: block; }

/* Hero collage (home only): cut-out photos on coral/lilac/white shapes — design/concept.html .collage. */
.k-collage { height: min(640px, 60vw); min-height: 420px; position: relative; }
.k-collage__shape { border-radius: 999px; position: absolute; }
.k-collage__shape--coral { animation: k-float 7s ease-in-out infinite; aspect-ratio: 1; background: var(--k-coral); bottom: 6%; right: 4%; width: 62%; }
.k-collage__shape--lilac { background: var(--k-brand-300); bottom: 2%; height: 78%; left: 6%; width: 26%; }
.k-collage__shape--white {
	animation: k-float 7s ease-in-out infinite; animation-delay: -3s; aspect-ratio: 1; background: var(--k-surface);
	display: grid; left: 0; place-items: center; text-align: center; top: 2%; width: 27%;
}
.k-collage__shape--white span {
	color: var(--k-heading); font-family: var(--wp--preset--font-family--heading); font-size: clamp(0.7rem, 1.05vw, 0.95rem);
	font-weight: 800; hyphens: auto; line-height: 1.1; padding: 10%; transform: rotate(-8deg);
}
.k-collage__shape--white small { color: var(--k-muted); display: block; font-family: var(--wp--preset--font-family--body); font-size: 0.7em; font-weight: 600; margin-top: 0.35em; }
.k-collage__person { bottom: 0; filter: drop-shadow(0 18px 24px rgba(39, 35, 90, 0.22)); position: absolute; }
.k-collage__person--a { height: 98%; right: 16%; }
.k-collage__person--b { height: 72%; left: 1%; bottom: 4%; }
.k-collage__caption { bottom: -0.4rem; color: var(--k-muted); font-size: 0.8rem; font-weight: 600; left: 2%; position: absolute; }
@media (prefers-reduced-motion: reduce) {
	.k-collage__shape--coral, .k-collage__shape--white { animation: none; }
}
@media (max-width: 1000px) {
	.k-collage { height: min(520px, 110vw); margin-top: 1rem; }
}
@media (max-width: 600px) {
	.k-collage { height: 105vw; min-height: 0; }
	.k-collage__shape--coral { bottom: 0; right: 0; width: 74%; }
	.k-collage__shape--lilac { bottom: 6%; height: 70%; left: 0; width: 30%; }
	.k-collage__shape--white { left: 2%; top: 0; width: 36%; }
	.k-collage__person--a { height: 92%; right: 10%; }
	.k-collage__person--b { display: none; }
	.k-collage__caption { bottom: -0.25rem; left: 0; }
}

/* Sticker (signature element): fixed, follows the scroll, on every page (footer template part). */
.k-sticker {
	aspect-ratio: 1; background: var(--k-coral); border-radius: 999px; bottom: clamp(12px, 2vw, 36px);
	box-shadow: 0 18px 40px rgba(39, 35, 90, 0.28); color: var(--k-heading); display: grid; font-family: var(--wp--preset--font-family--heading);
	font-weight: 800; line-height: 1; place-items: center; position: fixed; right: clamp(12px, 2vw, 36px);
	text-align: center; text-decoration: none; transform: rotate(-8deg); transition: transform var(--k-base) var(--k-ease); width: clamp(112px, 11vw, 168px); z-index: 30;
}
.k-sticker::before { border: 2px dashed rgba(39, 35, 90, 0.45); border-radius: 999px; content: ""; inset: 7px; position: absolute; }
.k-sticker:hover, .k-sticker:focus-visible { transform: rotate(0deg) scale(1.05); }
.k-sticker b { display: block; font-size: clamp(1.05rem, 1.6vw, 1.5rem); position: relative; }
.k-sticker span { display: block; font-family: var(--wp--preset--font-family--body); font-size: 0.72rem; font-weight: 700; padding: 0 1.1em; position: relative; }
@media (prefers-reduced-motion: reduce) { .k-sticker { transition: none; } }
@media (max-width: 781px) { .k-sticker { bottom: calc(var(--k-bottombar-h) + 12px); } }

/* "Z czym przychodzisz?" — chips cloud instead of a plain row list (home only, art-direction §7). */
.k-section:has(#z-czym-przychodzisz) .k-rows {
	border-top: 0; display: flex; flex-wrap: wrap; gap: 14px; list-style: none;
}
.k-section:has(#z-czym-przychodzisz) .k-rows > li {
	background: var(--k-surface); border: 0; border-radius: 999px; color: var(--k-muted); flex: 1 1 20rem;
	padding: 22px 30px; position: relative; transition: transform var(--k-fast) var(--k-ease);
}
.k-section:has(#z-czym-przychodzisz) .k-rows > li:hover { background: var(--k-surface); transform: translateY(-3px) rotate(-0.6deg); }
.k-section:has(#z-czym-przychodzisz) .k-rows > li::after { content: none; }
/* The base theme uses a:first-child::after as an invisible full-row click target (content:"";inset:0;
   position:absolute) — move that to ::before so ::after is free to show the visible arrow, and keep the
   link itself as the positioning context (it must NOT fall back to the section, or the empty overlay
   stretches to cover the whole section and "→" renders once at the section's own top-left corner). */
.k-section:has(#z-czym-przychodzisz) .k-rows > li > a:first-child {
	align-items: center; color: var(--k-heading); display: flex; font-size: 1.3rem; gap: 0.5em; margin-bottom: 0.25rem; position: relative;
}
.k-section:has(#z-czym-przychodzisz) .k-rows > li > a:first-child::before { content: ""; inset: 0; position: absolute; }
.k-section:has(#z-czym-przychodzisz) .k-rows > li > a:first-child::after { color: var(--k-brand); content: "→"; font-family: var(--wp--preset--font-family--body); font-size: 0.8em; font-weight: 700; position: static; }
.k-section:has(#z-czym-przychodzisz) .k-rows > li:nth-child(1) { background: var(--k-coral); }
.k-section:has(#z-czym-przychodzisz) .k-rows > li:nth-child(1) a::after { color: var(--k-heading); }
.k-section:has(#z-czym-przychodzisz) .k-rows > li:nth-child(3),
.k-section:has(#z-czym-przychodzisz) .k-rows > li:nth-child(6) { background: var(--k-brand-300); }

/* "Ile to kosztuje" and every service page's price section: dark ink/periwinkle band, huge coral numbers. */
.k-band-brand:has(.k-amounts) {
	--k-heading: var(--k-coral);
	--k-text: #fff;
	--k-muted: var(--k-brand-300);
	--k-decor: rgba(243, 241, 252, 0.35);
	background: var(--wp--preset--color--ink);
	border-radius: var(--k-radius-band);
	color: #fff;
}
.k-band-brand:has(.k-amounts) .wp-block-heading { color: #fff; }
.k-band-brand:has(.k-amounts) .k-amounts > li > .k-price:first-child { font-size: var(--wp--preset--font-size--price); letter-spacing: -0.02em; line-height: 0.95; }
.k-band-brand:has(.k-amounts) .k-more a { color: var(--k-coral); }
.k-band-brand:has(.k-amounts) .k-source { color: var(--k-brand-300); }
.k-band-brand:has(.k-amounts) .k-source b, .k-band-brand:has(.k-amounts) .k-source strong { color: #fff; }
.k-band-brand.k-final-cta { background: var(--k-band-neutral); color: var(--k-text); }
.k-band-brand.k-final-cta .k-contact-card { background: var(--k-surface); }

/* "Boisz się dentysty? To częste." — reassurance facts become rotated colour circles (art-direction §7). */
.k-band-warm { background: var(--k-band-warm); }
.k-band-warm .k-kv--inline { gap: 18px; }
.k-band-warm .k-kv--inline .k-kv__row {
	aspect-ratio: 1; align-content: center; background: var(--k-surface); border-radius: 999px;
	display: grid; grid-template-columns: minmax(0, 1fr); overflow: hidden; padding: 19%; text-align: center;
}
.k-band-warm .k-kv--inline .k-kv__row::before { display: none; }
.k-band-warm .k-kv--inline .k-kv__row:nth-child(2) { background: var(--k-brand-300); transform: rotate(3deg); }
.k-band-warm .k-kv--inline .k-kv__row:nth-child(3) { background: var(--k-coral); transform: rotate(-3deg); }
.k-band-warm .k-kv--inline .k-kv__row:nth-child(4) { background: var(--k-band-neutral); }
.k-band-warm .k-kv--inline dt { font-size: clamp(1rem, 1.3vw, 1.25rem); margin-bottom: 0.35em; max-width: 100%; }
.k-band-warm .k-kv--inline dd { color: var(--k-muted); font-size: 0.82rem; max-width: 100%; }
.k-band-warm .k-kv--inline .k-kv__row:nth-child(3) dd { color: var(--k-heading); }
@media (max-width: 600px) {
	.k-band-warm .k-kv--inline .k-kv__row { transform: none !important; }
}
/* Round photo reused in the fear section: same treatment as concept .roundphoto. */
.k-band-warm .k-figure { margin: 0 auto; max-width: 26rem; }
.k-band-warm .k-figure img { aspect-ratio: 1; border-radius: 999px; }

/* "Kto leczy" — team cards: portraits in a colour ring (coral / lilac 300 / lilac 200), same as the cut-out
   treatment planned in art-direction §7 (Table row "Kto leczy"), applied to the real team photos. */
.k-team--cards .k-person--karta { background: none; border: 0; box-shadow: none; padding: 0; text-align: center; }
.k-team--cards .k-figure { margin: 0 auto 0.5rem; max-width: 14rem; }
.k-team--cards .k-figure img { aspect-ratio: 1; border-radius: 999px; }
.k-team--cards .k-person:nth-child(1) .k-figure img { box-shadow: 0 0 0 12px var(--k-coral); }
.k-team--cards .k-person:nth-child(2) .k-figure img { box-shadow: 0 0 0 12px var(--k-brand-300); }
.k-team--cards .k-person:nth-child(3) .k-figure img { box-shadow: 0 0 0 12px var(--k-band-neutral); }
.k-team--cards .k-person__name a::after { content: none; }
.k-team--cards { gap: var(--wp--preset--spacing--70) var(--wp--preset--spacing--60); }
@media (max-width: 600px) {
	.k-team--cards .k-figure { max-width: 10rem; }
	.k-team--cards .k-person:nth-child(n) .k-figure img { box-shadow: 0 0 0 8px var(--ring, var(--k-coral)); }
}

/* ================= Page-specific additions ================= */
/* /boli-mnie-zab/ P-02 + P-03 — P-A-28:V1, two columns with icon in one white fact frame. */
.k-factframe {
	background: var(--k-surface); border: 1px solid var(--k-brand-200); border-radius: var(--k-radius-lg);
	box-shadow: var(--k-shadow-1); gap: var(--wp--preset--spacing--70) !important; margin: 0; padding: var(--wp--preset--spacing--60);
}
.k-factframe h2 { font-size: var(--wp--preset--font-size--large); margin-top: 0; }
:is(h2, h3)[class*="k-ico-"]::before {
	background: var(--k-decor); content: ""; display: block; height: 24px; margin-bottom: 0.75rem; width: 24px;
	-webkit-mask: var(--k-ico) center / contain no-repeat; mask: var(--k-ico) center / contain no-repeat;
}
.k-big-price { color: var(--k-heading); font-size: var(--wp--preset--font-size--x-large); font-variant-numeric: tabular-nums; line-height: 1.2; margin-block: 0 0.5rem; }
.k-big-price strong { font-weight: 620; }
.k-hero--urgent .k-btn--large { font-size: var(--wp--preset--font-size--large); min-height: 4rem; }
.k-notice__data { font-weight: 600; }
@media (max-width: 781px) {
	.k-factframe { padding: var(--wp--preset--spacing--50); }
}
/* Contact page — P-B-33:V4 and V1. */
.k-columns .k-map { margin-top: var(--wp--preset--spacing--50); }
.k-columns .k-urgent { margin-top: var(--wp--preset--spacing--50) !important; }
.k-contact-card .k-actions { margin-bottom: var(--wp--preset--spacing--40); }
.k-section > .wp-block-shortcode:has(.k-map) { max-width: var(--k-measure) !important; }
/* Bands inside the TOC column (Ortodoncja, Cennik) become rounded panels. */
.k-toc-body .k-block[class*="k-band"] { border-radius: var(--k-radius-lg); padding: var(--wp--preset--spacing--60); }
@media (max-width: 781px) { .k-toc-body .k-block[class*="k-band"] { margin-inline: calc(-1 * var(--wp--preset--spacing--40)); padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40); } }
.k-compare figcaption, .wp-block-table.k-compare figcaption { text-align: left; }

/* the kicker sits inside the H1 (SEO) — do not inherit the display tracking */
.k-hero__kicker { letter-spacing: 0; }
