/* =====================================================================
   Przychodnia Weterynaryjna „Pod Kasztanami” (DEMO) — components.
   Reads tokens only (assets/css/tokens.css, from design/tokens.css).
   Pattern IDs from design/ux-spec.md are noted next to each block.
   ===================================================================== */

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: var(--space-4); }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
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-body);
	font-variant-numeric: lining-nums;
	text-rendering: optimizeLegibility;
}
h1, h2, h3, h4 {
	font-family: var(--font-heading);
	font-weight: var(--weight-heading);
	color: var(--color-heading);
	letter-spacing: var(--tracking-heading);
	text-wrap: balance;
	margin: 0;
}
h1 { font-size: var(--step-3); line-height: var(--leading-h1); max-inline-size: 11ch; }
h2 { font-size: var(--step-2); line-height: var(--leading-h2); max-inline-size: 20ch; }
h3 { font-size: var(--step-1); line-height: var(--leading-h3); font-weight: var(--weight-heading); }
h4 { font-size: var(--step-0); font-weight: var(--weight-semibold); }
p { margin: 0; }
a { color: var(--color-link); text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
a:hover { color: var(--color-link-hover); text-decoration-thickness: 2px; }
strong, b { font-weight: var(--weight-semibold); }
img { max-inline-size: 100%; block-size: auto; }
:focus-visible { outline: var(--focus-ring-width) solid var(--color-focus-ring); outline-offset: var(--focus-ring-offset); border-radius: 4px; }
::selection { background: var(--brand-200); color: var(--green-900); }
em, i, .pw-hand { font-style: italic; }

/* ---------- Live pulse (the one motion in the system; art-direction.md §5) ---------- */
@keyframes pw-pulse-live { 0% { box-shadow: 0 0 0 0 rgb(126 217 154 / 0.6); } 70% { box-shadow: 0 0 0 10px rgb(126 217 154 / 0); } 100% { box-shadow: 0 0 0 0 rgb(126 217 154 / 0); } }
@keyframes pw-pulse-dark { 0% { box-shadow: 0 0 0 0 rgb(31 77 58 / 0.5); } 70% { box-shadow: 0 0 0 9px rgb(31 77 58 / 0); } 100% { box-shadow: 0 0 0 0 rgb(31 77 58 / 0); } }
@keyframes pw-lift { to { transform: translateY(-2px) rotate(-0.5deg); } }
.screen-reader-text {
	position: absolute !important; inline-size: 1px; block-size: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;
}
.pw-icon { inline-size: var(--icon-md); block-size: var(--icon-md); flex: none; fill: none; stroke: currentColor; stroke-width: var(--icon-stroke); stroke-linecap: round; stroke-linejoin: round; }

/* JS / no-JS switches (B-06 fallback, disclosure fallback) */
.pw-js { display: none !important; }
html.js .pw-js { display: revert !important; }
html.js .pw-nojs { display: none !important; }

.pw-wrap { max-inline-size: calc(var(--container-default) + 2 * var(--space-page-x)); margin-inline: auto; padding-inline: var(--space-page-x); }
.pw-muted { color: var(--color-text-muted); }
.pw-measure { max-inline-size: var(--measure-body); }

/* ---------- B-01 skip link ---------- */
.pw-skip {
	position: absolute; inset-inline-start: var(--space-4); inset-block-start: -10rem; z-index: var(--z-max);
	padding: var(--space-3) var(--space-4); background: var(--color-surface); color: var(--color-link);
	font-weight: var(--weight-semibold); border: var(--border-strong) solid var(--color-focus-ring); border-radius: var(--radius-control);
}
.pw-skip:focus { inset-block-start: var(--space-4); }

/* ---------- Buttons: uneven corners, one accent colour per field (art-direction.md §2,5) ---------- */
.pw-btn, .wp-block-button__link {
	position: relative; isolation: isolate;
	display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2);
	min-block-size: var(--control-md); padding: var(--space-2) var(--space-5);
	border: var(--border-hairline) solid transparent; border-radius: var(--radius-btn);
	font: var(--weight-semibold) var(--step-0)/1 var(--font-body);
	text-decoration: none; cursor: pointer; text-align: center;
	transition: transform var(--duration-instant) var(--ease-standard);
}
.pw-btn:hover, .wp-block-button__link:hover { transform: translateY(-2px) rotate(-0.5deg); }
.pw-btn:active, .wp-block-button__link:active { transform: translateY(0) rotate(0); }
.pw-btn::before, .wp-block-button__link::before {
	content: ""; position: absolute; inset: 0; border-radius: inherit; background: currentColor;
	opacity: 0; z-index: -1; transition: opacity var(--duration-instant) var(--ease-standard);
}
.pw-btn:hover::before, .wp-block-button__link:hover::before { opacity: var(--state-hover); }
.pw-btn:active::before, .wp-block-button__link:active::before { opacity: var(--state-pressed); }
.pw-btn--primary, .wp-block-button__link { background: var(--color-primary); color: var(--color-on-primary); }
.pw-btn--primary:hover, .wp-block-button__link:hover { background: var(--color-primary-hover); color: var(--color-on-primary); }
.pw-btn--primary:hover::before, .wp-block-button__link:hover::before { opacity: 0; }
.pw-btn--primary:active, .wp-block-button__link:active { background: var(--color-primary-active); }
.pw-btn--secondary, .is-style-drugorzedny .wp-block-button__link {
	background: transparent; color: var(--color-link); border-color: var(--color-secondary-border);
	border-width: var(--border-strong);
}
.pw-btn--secondary:hover, .is-style-drugorzedny .wp-block-button__link:hover { background: transparent; color: var(--color-link-hover); border-color: var(--color-link-hover); }
.pw-btn--lg { min-block-size: var(--control-lg); padding-inline: var(--space-6); font-size: 1.05rem; }
.pw-btn--sm { min-block-size: var(--target-min); padding: var(--space-1) var(--space-3); font-size: var(--step--1); }
.pw-btn .pw-icon { inline-size: var(--icon-md); block-size: var(--icon-md); }
.pw-btn[aria-busy="true"] { cursor: progress; }
.pw-actions { display: flex; flex-wrap: wrap; gap: var(--space-3) var(--space-4); align-items: center; }
.pw-link-arrow { font-weight: var(--weight-semibold); }
.pw-link-arrow::after { content: " →"; }
.pw-tel { white-space: nowrap; font-variant-numeric: tabular-nums; }

/* ---------- B-02 status: shape + word (+ live pulse in the header and the hero badge) ---------- */
.pw-status { display: inline-flex; align-items: center; gap: var(--space-2); font-weight: var(--weight-semibold); color: var(--color-text); }
.pw-status__dot { inline-size: var(--status-dot); block-size: var(--status-dot); border-radius: var(--radius-full); flex: none; box-sizing: border-box; }
.pw-status--open .pw-status__dot { background: var(--status-open); }
.pw-status--closing .pw-status__dot { border: var(--border-strong) solid var(--status-closing); background: linear-gradient(90deg, var(--status-closing) 50%, transparent 50%); }
.pw-status--closed .pw-status__dot { border: var(--border-strong) solid var(--status-closed); background: transparent; }
.pw-utility__status .pw-status--open .pw-status__dot { background: var(--live-dot); animation: pw-pulse-live var(--duration-pulse) infinite; }
.pw-utility__status .pw-status--closing .pw-status__dot { border-color: var(--candle); }
.pw-utility__status .pw-status--closed .pw-status__dot { border-color: var(--cream); }
.pw-hero__status .pw-status {
	display: inline-flex; gap: 10px; background: var(--candle); color: var(--ink); font-weight: 800;
	padding: .5em 1.1em; border-radius: var(--radius-badge); font-size: 1.05rem;
}
.pw-hero__status .pw-status__dot { inline-size: 12px; block-size: 12px; }
.pw-hero__status .pw-status--open .pw-status__dot { background: var(--green-900); animation: pw-pulse-dark var(--duration-pulse) infinite; }
.pw-hero__status .pw-status--closing .pw-status__dot { border-color: var(--green-900); }
.pw-hero__status .pw-status--closed .pw-status__dot { border-color: var(--green-900); }

/* ---------- Header: green field, utility row + main bar (P-A-35:V2), not sticky ---------- */
.pw-site-header { position: relative; z-index: var(--z-dropdown); }
.pw-header { background: var(--color-background); }
.pw-utility { background: transparent; border-block-end: var(--border-hairline) solid var(--color-border); font-size: var(--step--1); }
.pw-utility__inner { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-1) var(--space-6); min-block-size: var(--control-md); padding-block: var(--space-1); }
.pw-utility__hours { color: var(--color-text-muted); margin-inline-start: var(--space-2); }
.pw-utility__phone { margin-inline-start: auto; }
.pw-utility__phone a { font-weight: var(--weight-semibold); text-decoration-color: rgb(251 244 232 / 0.5); text-underline-offset: 3px; }
.pw-urgent-link { display: inline-flex; align-items: center; gap: var(--space-2); min-block-size: var(--target-min); color: var(--cream); font-weight: var(--weight-semibold); text-decoration: underline; text-decoration-color: rgb(251 244 232 / 0.5); text-underline-offset: 3px; }
.pw-urgent-link:hover { color: #fff; }
.pw-urgent-link .pw-icon { color: var(--candle); }

.pw-mainbar { background: transparent; border-block-end: 0; }
.pw-mainbar__inner { display: flex; align-items: center; gap: var(--space-4); min-block-size: 5rem; padding-block: var(--space-3); }
.pw-logo { display: inline-flex; align-items: center; gap: var(--space-3); color: var(--color-heading); text-decoration: none; margin-inline-end: auto; }
.pw-logo:hover { color: var(--color-heading); }
.pw-logo__mark { color: var(--candle); inline-size: 2.5rem; block-size: 2.5rem; flex: none; }
.pw-logo__text { display: flex; flex-direction: column; line-height: 1.1; }
.pw-logo__kind { white-space: nowrap; font-size: 0.8rem; font-weight: var(--weight-regular); color: var(--color-text-muted); letter-spacing: 0.01em; }
.pw-logo__name { white-space: nowrap; font-family: var(--font-heading); font-size: 1.5rem; font-weight: var(--weight-heading); }

.pw-nav__list { list-style: none; margin: 0; padding: 0; }
.pw-nav__link { color: var(--color-heading); text-decoration: none; font-weight: var(--weight-semibold); border-radius: var(--radius-md); }
.pw-nav__link[aria-current="page"], .pw-subnav a[aria-current="page"] { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.35em; }
@media (min-width: 75rem) { .pw-nav__link:hover { background: rgb(251 244 232 / 0.12); } }
.pw-nav__toggle, .pw-nav__toggle.pw-nav__link { display: none; background: none; border: 0; font: inherit; cursor: pointer; align-items: center; gap: var(--space-1); }
html.js .pw-nav__toggle.pw-nav__link { display: inline-flex; }
@media (max-width: 74.999rem) { html.js .pw-nav__toggle.pw-nav__link { display: flex; } }
html.js .pw-nav__fallback { display: none; }
.pw-nav__chevron { transition: transform var(--duration-short) var(--ease-standard); }
.pw-nav__toggle[aria-expanded="true"] .pw-nav__chevron { transform: rotate(180deg); }
.pw-subnav { list-style: none; margin: 0; padding: 0; display: none; }
.pw-subnav.is-open { display: block; }
.pw-subnav a { display: block; padding: var(--space-2) var(--space-4); color: var(--color-link); text-decoration: none; }
.pw-subnav a:hover { text-decoration: underline; }
.pw-subnav__all a { font-weight: var(--weight-semibold); border-block-start: var(--border-hairline) solid var(--color-border); }
.pw-nav__extra { display: none; }
.pw-menu-toggle { display: none; }

/* Desktop ≥ 1024 px */
@media (min-width: 75rem) {
	.pw-mainbar__call { display: none; }
	.pw-nav__list { display: flex; align-items: center; gap: var(--space-1) var(--space-5); font-size: var(--step--1); }
	.pw-nav__item { position: relative; }
	.pw-nav__link { display: inline-flex; align-items: center; min-block-size: var(--target-min); padding-inline: var(--space-1); white-space: nowrap; }
	.pw-nav__item.is-section > .pw-nav__toggle { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.35em; }
	.pw-nav__item--mobile { display: none; }
	.pw-nav__item--cta .pw-btn { font-size: var(--step--1); white-space: nowrap; }
}
@media (min-width: 75rem) and (max-width: 84.999rem) {
	.pw-nav__list { gap: var(--space-1) var(--space-3); }
	.pw-logo__kind { font-size: 0.8125rem; }
	.pw-subnav.is-open {
		position: absolute; inset-block-start: calc(100% + var(--space-2)); inset-inline-start: calc(-1 * var(--space-4));
		min-inline-size: 22rem; padding-block: var(--space-2); background: var(--color-surface);
		border: var(--border-hairline) solid var(--color-border); border-radius: var(--radius-container); box-shadow: var(--shadow-3);
		font-size: var(--step-0);
	}
}
/* Phone and tablet < 1024 px: combo navigation (N-02, B-04) */
@media (max-width: 74.999rem) {
	.pw-utility__hours, .pw-utility__phone { display: none; }
	.pw-utility__inner { justify-content: space-between; }
	.pw-logo__kind { font-size: 0.8125rem; }
	.pw-mainbar__inner { gap: var(--space-2); min-block-size: 4.25rem; }
	.pw-mainbar__call { padding-inline: var(--space-3); }
	html.js .pw-menu-toggle { display: inline-flex; padding-inline: var(--space-3); }
	.pw-nav__item--desktop { display: none; }
	/* No JS: the menu is simply a list below the bar. */
	.pw-nav { flex-basis: 100%; }
	html:not(.js) .pw-mainbar__inner { flex-wrap: wrap; }
	.pw-logo { min-inline-size: 0; flex: 1 1 auto; }
	.pw-nav__list > li { border-block-end: var(--border-hairline) solid var(--color-border); }
	.pw-nav__link { display: flex; align-items: center; justify-content: space-between; inline-size: 100%; min-block-size: var(--control-md); padding-block: var(--space-2); }
	.pw-nav__item--cta { border: 0 !important; padding-block: var(--space-2) var(--space-4); }
	.pw-nav__item--cta .pw-btn { inline-size: 100%; }
	.pw-subnav a { padding-inline: var(--space-4) 0; min-block-size: var(--target-min); display: flex; align-items: center; }
	html.js .pw-nav {
		display: none; position: absolute; inset-inline: 0; inset-block-start: 100%;
		block-size: calc(100dvh - var(--pw-nav-top, 8rem)); overflow-y: auto; overscroll-behavior: contain;
		padding: var(--space-4) var(--space-page-x) var(--space-12); background: var(--color-background);
		border-block-start: var(--border-hairline) solid var(--color-border); box-shadow: var(--shadow-3);
	}
	html.js .pw-nav.is-open { display: block; animation: pw-panel-in var(--duration-medium) var(--ease-enter); }
	.pw-mainbar { position: relative; }
	.pw-nav__extra { display: block; padding-block-start: var(--space-6); }
	.pw-nav__extra p + p { margin-block-start: var(--space-2); }
	body.pw-menu-open { overflow: hidden; }
}
@keyframes pw-panel-in { from { opacity: 0; transform: translateY(-0.5rem); } to { opacity: 1; transform: none; } }
@media (max-width: 30rem) {
	.pw-logo__mark { display: none; }
	.pw-logo__name { white-space: nowrap; }
	.pw-logo { gap: var(--space-2); }
	.pw-logo__name { font-size: var(--step-0); }
	.pw-logo__kind { font-size: 0.75rem; }
	.pw-mainbar__call, html.js .pw-menu-toggle { padding-inline: var(--space-3); font-size: var(--step--1); }
}

/* ---------- Breadcrumbs (P-A-36:V1, phone V2) ---------- */
.pw-breadcrumbs { max-inline-size: calc(var(--container-default) + 2 * var(--space-page-x)); margin: 0 auto; padding: var(--space-4) var(--space-page-x) 0; font-size: var(--step--1); }
.pw-breadcrumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--space-1) 0; }
.pw-breadcrumbs li + li::before { content: "›"; margin-inline: var(--space-2); color: var(--color-text-muted); }
.pw-breadcrumbs [aria-current] { color: var(--color-text-muted); }
@media (max-width: 47.999rem) {
	.pw-breadcrumbs__home, .pw-breadcrumbs__current { display: none; }
	.pw-breadcrumbs li + li::before { content: none; }
	.pw-breadcrumbs__parent a::before { content: "‹ "; }
}

/* ---------- Main rhythm ---------- */
.pw-main { padding-block-end: var(--space-section); }
.pw-main .wp-block-post-content > * + * { margin-block-start: var(--space-section); }
.pw-main .wp-block-post-content > p + p,
.pw-main .wp-block-post-content > p + ul,
.pw-main .wp-block-post-content > h2 + *,
.pw-main .wp-block-post-content > h3 + * { margin-block-start: var(--space-4); }
.pw-main .wp-block-post-content > .pw-hero + .pw-onpage { margin-block-start: var(--space-8); }
.pw-main .wp-block-post-content > p,
.pw-main .wp-block-post-content > ul:not([class*="pw-"]),
.pw-main .wp-block-post-content > ol:not([class*="pw-"]),
.pw-main .wp-block-post-content > .pw-notice--v1,
.pw-main .wp-block-post-content > .pw-notice--v3 { max-inline-size: var(--measure-body); margin-inline: max(0px, (100% - var(--container-default)) / 2) auto !important; }
.pw-section > * + * { margin-block-start: var(--space-6); }
.pw-section > h2 + * { margin-block-start: var(--space-6); }
.pw-band { background: var(--color-band); padding-block: var(--space-section); }
.pw-main .wp-block-post-content > .pw-band + * { margin-block-start: var(--space-section); }
.pw-main .wp-block-post-content > .pw-band:last-child { margin-block-end: calc(-1 * var(--space-section)); }
.pw-eyebrow { font-size: var(--step--1); font-weight: var(--weight-semibold); color: var(--color-text-muted); letter-spacing: 0.04em; text-transform: uppercase; }
.pw-lead { font-size: var(--step-0); max-inline-size: 38em; }
.page--compact .pw-main .wp-block-post-content > * + * { margin-block-start: var(--space-section-compact); }
.page--compact .pw-main { padding-block-end: var(--space-section-compact); }

/* ---------- Heroes: P-A-01:V1 typographic, P-A-02:V1 split 7/5 ---------- */
.pw-hero { padding-block-start: var(--space-12); }
.pw-hero > * + *, .pw-hero__text > * + * { margin-block-start: var(--space-4); }
.pw-hero .pw-actions { margin-block-start: var(--space-6); }
.pw-hero--typo .pw-lead { max-inline-size: var(--measure-body); }
.pw-hero--split { display: grid; gap: var(--space-8); align-items: center; }
.pw-hero--split > .pw-photo { margin: 0; }
.pw-hero__status { font-size: var(--step-0); }
.pw-hero__note { font-size: var(--step--1); }
@media (min-width: 60rem) {
	.pw-hero--split { grid-template-columns: 7fr 5fr; gap: var(--space-12); }
	.pw-hero--split > .pw-photo { margin-block-start: 0; }
}
.pw-hero--split .pw-photo img { aspect-ratio: 3 / 2; }
.pw-hero--split .pw-photo--hero img { aspect-ratio: 4 / 3; }

/* ---------- Home hero: the green field, the wave edge, the blob visual (concept.html, art-direction.md §7) ---------- */
.pw-main--home .pw-hero {
	padding-block: clamp(20px, 3vw, 48px) clamp(120px, 12vw, 180px);
	position: relative; overflow: hidden; margin-block-start: 0;
}
.pw-main--home .pw-hero::after {
	content: ""; position: absolute; inset-inline: 0; inset-block-end: -2px; block-size: clamp(60px, 8vw, 120px);
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 100' preserveAspectRatio='none'%3E%3Cpath d='M0 60 C 240 110, 420 10, 720 50 C 1000 88, 1200 20, 1440 56 L 1440 100 L 0 100 Z' fill='%23FBF4E8'/%3E%3C/svg%3E") bottom / 100% 100% no-repeat;
}
.pw-main--home .pw-hero .pw-hero__text > * + * { margin-block-start: var(--space-4); }
.pw-main--home .pw-hero .pw-eyebrow { color: var(--candle); font-weight: var(--weight-semibold); letter-spacing: .08em; text-transform: uppercase; font-size: var(--step--1); }
.pw-main--home .pw-hero h1 { max-inline-size: 11ch; }
.pw-main--home .pw-hero h1 .pw-hero__subtitle { display: block; font-size: .42em; font-weight: var(--weight-regular); letter-spacing: 0; margin-block-start: .25em; opacity: .9; }
.pw-main--home .pw-hero .pw-lead { max-inline-size: 36ch; opacity: .95; }
.pw-main--home .pw-hero .pw-hero__note { margin-block-start: var(--space-4); }
.pw-main--home .pw-hero .pw-hero__note a { text-decoration-color: var(--candle); text-underline-offset: 4px; }
.pw-main--home .pw-hero--split { grid-template-columns: minmax(0, 1fr); gap: clamp(24px, 4vw, 64px); max-inline-size: 87.5rem; margin-inline: auto; align-items: center; }
@media (min-width: 64rem) { .pw-main--home .pw-hero--split { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }

.pw-hero__visual { position: relative; min-block-size: 460px; }
.pw-hero__visual .pw-photo, .pw-hero__visual .pw-photo img { margin: 0; block-size: 100%; }
.pw-hero__visual .pw-photo figcaption { display: none; }
.pw-hero__blob { position: absolute; overflow: hidden; box-shadow: var(--shadow-4); }
.pw-hero__blob--main { inline-size: 88%; aspect-ratio: 1 / .92; inset-inline-end: 0; inset-block-start: 4%; border-radius: var(--blob-a); }
.pw-hero__blob--cat { inline-size: 36%; aspect-ratio: 1; inset-inline-start: -2%; inset-block-end: -4%; border-radius: var(--blob-b); border: 6px solid var(--green-900); box-shadow: var(--shadow-2); }
.pw-mark { position: absolute; pointer-events: none; }
.pw-mark--leaf-big { inline-size: 40%; inset-inline-start: -14%; inset-block-start: -6%; opacity: .55; color: var(--cream); transform: rotate(-24deg); }
.pw-mark--leaf-sm { inline-size: 22%; inset-inline-end: -4%; inset-block-end: 6%; opacity: .7; color: var(--candle); transform: rotate(32deg); }
.pw-mark--paw-1 { inline-size: 9%; inset-inline-end: 22%; inset-block-start: -2%; opacity: .8; color: var(--candle); transform: rotate(-15deg); }
.pw-mark--paw-2 { inline-size: 7%; inset-inline-end: 12%; inset-block-start: 8%; opacity: .6; color: var(--candle); transform: rotate(-5deg); }
.pw-hero__caption { position: absolute; inset-inline-end: 2%; inset-block-end: -6%; font-size: .85rem; font-style: italic; opacity: .8; margin: 0; }
@media (max-width: 999px) {
	.pw-hero__visual { min-block-size: 0; aspect-ratio: 1 / 1; margin-block-start: 20px; }
}
@media (max-width: 600px) {
	.pw-main--home .pw-hero { padding-block-end: 110px; }
	.pw-main--home .pw-hero h1 { font-size: 2.7rem; }
	.pw-hero__visual { aspect-ratio: 1 / 1.05; }
	.pw-hero__blob--main { inline-size: 92%; inset-block-start: 0; }
	.pw-hero__blob--cat { inline-size: 42%; inset-block-end: 0; inset-inline-start: -4%; }
	.pw-mark--leaf-big { inline-size: 48%; inset-inline-start: -18%; inset-block-start: -8%; }
	.pw-mark--paw-2 { display: none; }
	.pw-hero__caption { inset-block-end: -8%; }
}

/* ---------- Photos (B-22) ---------- */
.pw-photo { margin: 0; }
.pw-photo img { display: block; inline-size: 100%; block-size: auto; object-fit: cover; border-radius: var(--radius-container); background: var(--neutral-200); }
.pw-photo figcaption { margin-block-start: var(--space-2); font-size: var(--step--1); font-style: italic; color: var(--color-text-muted); }

/* ---------- P-A-37 notices: V1 quiet, V2 warning, V3 principle, V4 urgent route ---------- */
.pw-notice { display: block; padding: var(--space-inset-notice); border-radius: var(--radius-container); }
.pw-notice > * + * { margin-block-start: var(--space-3); }
.pw-notice__title { font-weight: var(--weight-semibold); color: var(--color-heading); }
.pw-notice--v1 { padding: var(--space-4) 0 0; border-radius: 0; border-block-start: var(--border-hairline) solid var(--color-border); color: var(--color-text-muted); font-size: var(--step--1); max-inline-size: var(--measure-body); }
.pw-notice--v2 { background: var(--color-surface); border: var(--border-hairline) solid var(--color-border); border-inline-start: var(--border-heavy) solid var(--urgent); border-radius: 0 var(--radius-container) var(--radius-container) 0; }
p.pw-notice--v2, .pw-notice--v2:has(> .pw-icon) { display: flex; gap: var(--space-3); align-items: flex-start; }
.pw-notice--v2 > .pw-icon { color: var(--urgent-text); margin-block-start: 0.2em; }
.wp-block-group.pw-notice--v2 { padding-inline-start: calc(var(--space-inset-notice) + var(--icon-lg) + var(--space-3)); position: relative; }
.wp-block-group.pw-notice--v2::before, .wp-block-group.pw-notice--v3::before {
	content: ""; position: absolute; inset-inline-start: var(--space-inset-notice); inset-block-start: calc(var(--space-inset-notice) + 0.15em);
	inline-size: var(--icon-lg); block-size: var(--icon-lg); background: currentColor;
	-webkit-mask: var(--pw-notice-icon) center / contain no-repeat; mask: var(--pw-notice-icon) center / contain no-repeat;
}
.wp-block-group.pw-notice--v2::before { color: var(--urgent-text); --pw-notice-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 8v4M12 16h.01'/%3E%3C/svg%3E"); }
.pw-notice--v3 { background: var(--info-subtle); border-inline-start: var(--border-heavy) solid var(--brand-800); border-radius: 0 var(--radius-container) var(--radius-container) 0; max-inline-size: var(--measure-body); }
.wp-block-group.pw-notice--v3 { padding-inline-start: calc(var(--space-inset-notice) + var(--icon-lg) + var(--space-3)); position: relative; }
.wp-block-group.pw-notice--v3::before { color: var(--color-link); --pw-notice-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 16v-4M12 8h.01'/%3E%3C/svg%3E"); }

.pw-notice--v4 { background: var(--urgent-subtle); border: var(--border-strong) solid var(--urgent); }
.pw-urgent__label { display: flex; align-items: center; gap: var(--space-2); margin: 0; font: var(--weight-semibold) var(--step--1)/var(--leading-ui) var(--font-body); letter-spacing: 0.04em; text-transform: uppercase; color: var(--urgent-text); }
.pw-urgent__label .pw-icon { inline-size: var(--icon-lg); block-size: var(--icon-lg); color: var(--urgent-text); }
.pw-notice--v4-short .pw-urgent__label::before {
	content: ""; inline-size: var(--icon-lg); block-size: var(--icon-lg); background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z'/%3E%3Cpath d='M3.22 12H9.5l.5-1 2 4.5 2-7 1.5 3.5h5.27'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z'/%3E%3Cpath d='M3.22 12H9.5l.5-1 2 4.5 2-7 1.5 3.5h5.27'/%3E%3C/svg%3E") center / contain no-repeat;
}
/* ---------- Home "Nagły przypadek" heading (concept.html .h2 .circ) ---------- */
.pw-nagly-heading { position: relative; display: inline-block; }
.pw-nagly-heading svg { position: absolute; inset-inline-start: -6%; inset-block-start: -18%; inline-size: 112%; block-size: 140%; pointer-events: none; color: var(--conker); }

.pw-urgent { padding: var(--space-6) var(--space-6) var(--space-8); border-radius: var(--radius-container); max-inline-size: 42rem; }
/* Beats core's ".is-layout-constrained > :where(...)" auto-margin (it uses !important; this needs higher specificity, not just source order). */
section.pw-urgent { margin-inline: 0 !important; }
.pw-urgent > * + * { margin-block-start: var(--space-3); }
.pw-urgent__title { font-size: var(--step-2); max-inline-size: 36ch; }
.pw-urgent__variant > * + * { margin-block-start: var(--space-4); }
.pw-urgent__variant p { max-inline-size: var(--measure-body); }
.pw-urgent__when { font-size: var(--step-1); }
.pw-urgent .pw-btn--primary .pw-icon { color: currentColor; }
.pw-urgent__more { margin-block-start: var(--space-6) !important; }
.pw-urgent__more .pw-btn { white-space: normal; text-align: center; line-height: 1.2; }
/* Open / closing: moss card, like a note left on the counter. Closed: white card with the dashed clinics list. */
.pw-urgent[data-pw-stan="open"], .pw-urgent[data-pw-stan="closing"] { background: var(--moss-100); }
.pw-urgent[data-pw-stan="open"] .pw-urgent__title, .pw-urgent[data-pw-stan="closing"] .pw-urgent__title { display: flex; align-items: center; gap: 12px; }
.pw-urgent[data-pw-stan="open"] .pw-urgent__title::before, .pw-urgent[data-pw-stan="closing"] .pw-urgent__title::before {
	content: ""; inline-size: 14px; block-size: 14px; border-radius: 50%; background: var(--green-900); flex: none;
	animation: pw-pulse-dark var(--duration-pulse) infinite;
}
.pw-urgent[data-pw-stan="closed"] { background: #fff; border: var(--border-strong) solid var(--cream-200); }
.pw-urgent__label { color: var(--urgent-text); }
/* Variant visibility: with JS exactly one; without JS open + closed one below the other (B-06). */
html:not(.js) .pw-urgent__variant[data-pw-variant="closing"] { display: none; }
html:not(.js) .pw-urgent__variant + .pw-urgent__variant { border-block-start: var(--border-hairline) solid var(--urgent-300); padding-block-start: var(--space-6); margin-block-start: var(--space-6); }
html.js .pw-urgent[data-pw-stan="open"] .pw-urgent__variant:not([data-pw-variant="open"]),
html.js .pw-urgent[data-pw-stan="closing"] .pw-urgent__variant:not([data-pw-variant="closing"]),
html.js .pw-urgent[data-pw-stan="closed"] .pw-urgent__variant:not([data-pw-variant="closed"]) { display: none; }
.pw-prefooter { margin-block: var(--space-section) 0; }
.pw-main + .pw-site-footer .pw-prefooter { margin-block-start: 0; }

/* Places "table" inside V4, styled like the concept's dashed clinics list at every width */
.pw-places-table { inline-size: 100%; border-collapse: collapse; background: transparent; font-size: var(--step--1); margin-block-start: var(--space-2); }
.pw-places-table thead { position: absolute; clip-path: inset(50%); inline-size: 1px; block-size: 1px; overflow: hidden; }
.pw-places-table, .pw-places-table tbody, .pw-places-table tr, .pw-places-table th, .pw-places-table td { display: block; }
.pw-places-table tr { padding-block: var(--space-4); border-block-start: var(--border-strong) dashed var(--cream-200); }
.pw-places-table tr:first-child { border-block-start: 0; }
.pw-places-table tbody th, .pw-places-table td { text-align: start; vertical-align: top; padding: 0; border: 0; }
.pw-places-table tbody th { font-weight: var(--weight-semibold); color: var(--color-heading); font-size: 1.15rem; }
.pw-places-table__note { display: block; font-weight: var(--weight-regular); font-size: var(--step--1); font-style: italic; color: var(--conker); margin-block-start: var(--space-1); }
.pw-places-table td { margin-block-start: var(--space-2); }
.pw-places-table td:last-child { font-weight: 800; font-size: 1.15rem; }
.pw-places-table td .pw-route { font-size: var(--step--1); font-weight: var(--weight-regular); margin-inline-end: var(--space-4); }
.pw-route { display: inline-flex; align-items: center; gap: var(--space-1); min-block-size: 1.5rem; }
.pw-route .pw-icon { inline-size: var(--icon-sm); block-size: var(--icon-sm); }
.pw-checked { font-size: var(--step--1); font-style: italic; color: var(--color-text-muted); }

/* Full list of places (NP-05, P-A-16:V4) */
.pw-places { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-4); }
.pw-place { display: grid; gap: var(--space-3) var(--space-8); padding: var(--space-6); background: var(--color-surface); border: var(--border-hairline) solid var(--color-border); border-radius: var(--radius-container); }
.pw-place__name { font-size: var(--step-1); }
.pw-place__actions { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-3); }
.pw-place__facts { display: grid; gap: var(--space-2) var(--space-6); margin: 0; font-size: var(--step--1); }
.pw-place__facts div { display: grid; grid-template-columns: 7.5rem 1fr; gap: var(--space-3); }
.pw-place__facts dt { color: var(--color-text-muted); }
.pw-place__facts dd { margin: 0; }
@media (min-width: 60rem) {
	.pw-place { grid-template-columns: 1fr 1.4fr; grid-template-areas: "name facts" "actions facts"; align-items: start; }
	.pw-place__name { grid-area: name; }
	.pw-place__actions { grid-area: actions; }
	.pw-place__facts { grid-area: facts; }
}
@media (max-width: 47.999rem) {
	.pw-place__actions .pw-btn { flex: 1 1 10rem; }
	.pw-place__facts div { grid-template-columns: 1fr; gap: 0; }
}
.pw-places__source { font-size: var(--step--1); color: var(--color-text-muted); max-inline-size: var(--measure-body); }

/* ---------- P-A-16:V1 text rows (services): a drawn leaf as the bullet (art-direction.md §7) ---------- */
.pw-rows { list-style: none; margin: 0; padding: 0; display: grid; border-block-start: var(--border-hairline) solid var(--color-border); }
.pw-rows > li { position: relative; padding: var(--space-4) 0 var(--space-4) calc(var(--icon-lg) + var(--space-3)); border-block-end: var(--border-hairline) solid var(--color-border); color: var(--color-text-muted); }
.pw-rows > li::before {
	content: ""; position: absolute; inset-inline-start: 0; inset-block-start: 1.1em; inline-size: var(--icon-lg); block-size: var(--icon-lg);
	background: var(--conker);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cg fill='none' stroke='black' stroke-width='8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M100 118 C 95 100, 84 74, 86 48 C 88 30, 95 20, 100 14 C 105 20, 112 30, 114 48 C 116 74, 105 100, 100 118 Z'/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cg fill='none' stroke='black' stroke-width='8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M100 118 C 95 100, 84 74, 86 48 C 88 30, 95 20, 100 14 C 105 20, 112 30, 114 48 C 116 74, 105 100, 100 118 Z'/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat;
}
.pw-rows > li > a:first-child, .pw-rows > li > strong:first-child { display: block; font-family: var(--font-heading); font-size: var(--step-1); font-weight: var(--weight-heading); color: var(--color-link); margin-block-end: var(--space-1); }
.pw-rows > li > a:first-child { text-decoration: underline; text-decoration-thickness: 1px; }
@media (min-width: 48rem) { .pw-rows--2col { grid-template-columns: 1fr 1fr; column-gap: var(--space-12); } }

/* ---------- P-B-14 horizontal numbered steps (V1 line; V3 dated) ---------- */
.pw-steps-h { list-style: none; margin: 0; padding: 0; counter-reset: pw-step; display: grid; gap: var(--space-6); }
.pw-steps-h > li { counter-increment: pw-step; position: relative; padding-inline-start: calc(var(--control-md) + var(--space-4)); }
.pw-steps-h > li::before {
	content: counter(pw-step); position: absolute; inset-inline-start: 0; inset-block-start: 0;
	display: grid; place-items: center; inline-size: var(--control-md); block-size: var(--control-md);
	border-radius: var(--radius-full); background: var(--color-surface); border: var(--border-strong) solid var(--brand-800);
	font: var(--weight-semibold) var(--step-1)/1 var(--font-heading); color: var(--color-heading);
}
.pw-steps-h > li::after { content: ""; position: absolute; inset-inline-start: calc(var(--control-md) / 2 - 1px); inset-block: calc(var(--control-md) + var(--space-1)) calc(-1 * var(--space-6) + var(--space-1)); border-inline-start: var(--border-strong) solid var(--brand-300); }
.pw-steps-h > li:last-child::after { content: none; }
.pw-steps-h > li > strong:first-child { display: block; font-family: var(--font-heading); font-size: var(--step-1); color: var(--color-heading); margin-block-end: var(--space-1); }
.pw-steps-h--dated > li > strong:first-child { font-family: var(--font-body); font-size: var(--step--1); letter-spacing: 0.04em; text-transform: uppercase; color: var(--color-link); }
@media (min-width: 48rem) {
	.pw-steps-h { grid-auto-flow: column; grid-auto-columns: 1fr; gap: var(--space-8); }
	.pw-steps-h > li { padding-inline-start: 0; padding-block-start: calc(var(--control-md) + var(--space-4)); }
	.pw-steps-h > li::after { inset-block: calc(var(--control-md) / 2 - 1px) auto; inset-inline: calc(var(--control-md) + var(--space-2)) calc(-1 * var(--space-8) + var(--space-2)); border-inline-start: 0; border-block-start: var(--border-strong) solid var(--brand-300); }
}

/* ---------- P-A-29:V2 vertical steps ---------- */
.pw-steps { list-style: none; margin: 0; padding: 0; counter-reset: pw-vstep; display: grid; gap: var(--space-5); }
.pw-steps > li { counter-increment: pw-vstep; position: relative; padding-inline-start: calc(2.25rem + var(--space-4)); min-block-size: 2.25rem; }
.pw-steps > li::before { content: counter(pw-vstep); position: absolute; inset-inline-start: 0; inset-block-start: 0; display: grid; place-items: center; inline-size: 2.25rem; block-size: 2.25rem; border-radius: var(--radius-full); background: var(--brand-800); color: var(--color-surface); font-weight: var(--weight-semibold); font-size: var(--step--1); }
.pw-steps > li > strong:first-child { display: block; color: var(--color-heading); }

/* ---------- P-A-30 definition lists: V1 rows, V3 facts band ---------- */
.pw-dl { margin: 0; }
.pw-dl > div { display: grid; gap: var(--space-1) var(--space-6); }
.pw-dl dt { font-weight: var(--weight-semibold); color: var(--color-heading); }
.pw-dl dd { margin: 0; }
.pw-dl--rows > div { padding-block: var(--space-4); border-block-end: var(--border-hairline) solid var(--color-border); }
.pw-dl--rows > div:first-child { border-block-start: var(--border-hairline) solid var(--color-border); }
@media (min-width: 48rem) { .pw-dl--rows > div { grid-template-columns: minmax(10rem, 1fr) 2fr; } }
.pw-dl--stacked > div + div { margin-block-start: var(--space-3); }
.pw-dl--stacked dt { font-size: var(--step--1); }
.pw-facts { margin: 0; display: grid; gap: 0; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); background: var(--color-surface); border: var(--border-hairline) solid var(--color-border); border-radius: var(--radius-container); }
.pw-facts > div { padding: var(--space-5) var(--space-6); border-block-end: var(--border-hairline) solid var(--color-border); }
.pw-facts dt { font-size: var(--step--1); font-weight: var(--weight-semibold); color: var(--color-text-muted); letter-spacing: 0.02em; }
.pw-facts dd { margin: var(--space-1) 0 0; }
@media (min-width: 48rem) { .pw-facts > div { border-block-end: 0; border-inline-end: var(--border-hairline) solid var(--color-border); } .pw-facts > div:last-child { border-inline-end: 0; } }

/* ---------- P-A-28: V1 features / FAQ, V2 checklist ---------- */
.pw-features { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-6) var(--space-12); }
@media (min-width: 48rem) { .pw-features { grid-template-columns: 1fr 1fr; } }
.pw-features > li { display: grid; grid-template-columns: auto 1fr; gap: var(--space-4); align-items: start; }
.pw-features__icon { display: grid; place-items: center; inline-size: 2.5rem; block-size: 2.5rem; border-radius: var(--radius-full); background: var(--brand-50); color: var(--brand-800); }
.pw-features__title { font-size: var(--step-0); margin-block-end: var(--space-1); }
.pw-faq { display: grid; gap: var(--space-6) var(--space-12); }
@media (min-width: 48rem) { .pw-faq { grid-template-columns: 1fr 1fr; } }
.pw-faq__item { padding-block-start: var(--space-6); border-block-start: var(--border-strong) dashed var(--cream-200); }
.pw-faq__item > * + * { margin-block-start: var(--space-2); }
.pw-faq__item h3 { font-size: var(--step-0); }
.pw-checklist { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-3); max-inline-size: var(--measure-body); }
.pw-checklist > li { position: relative; padding-inline-start: calc(var(--icon-lg) + var(--space-3)); }
.pw-checklist > li::before {
	content: ""; position: absolute; inset-inline-start: 0; inset-block-start: 0.2em; inline-size: var(--icon-lg); block-size: var(--icon-lg);
	background: var(--success-text);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / contain no-repeat;
}
.pw-checklists { display: grid; gap: var(--space-8); }
@media (min-width: 48rem) { .pw-checklists { grid-template-columns: 1fr 1fr; } }

/* ---------- P-A-17 tables; P-B-20:V2 age timeline ---------- */
.pw-table { margin: 0; overflow-x: auto; }
.pw-table table { inline-size: 100%; border-collapse: collapse; background: var(--color-surface); font-size: var(--step--1); border: var(--border-hairline) solid var(--color-border); }
.pw-table th, .pw-table td { text-align: start; vertical-align: top; padding: var(--space-3) var(--space-4); border: 0; border-block-end: var(--border-hairline) solid var(--color-border); }
.pw-table thead th { font-weight: var(--weight-semibold); color: var(--color-heading); background: var(--color-surface-2); border-block-end: var(--border-strong) solid var(--color-border-strong); }
.pw-table figcaption { margin-block-start: var(--space-2); font-size: var(--step--1); color: var(--color-text-muted); text-align: start; }
.pw-table--timeline tbody td:first-child { font-weight: var(--weight-semibold); color: var(--color-link); white-space: nowrap; font-variant-numeric: tabular-nums; }
@media (max-width: 47.999rem) {
	.pw-table thead { position: absolute; clip-path: inset(50%); inline-size: 1px; block-size: 1px; overflow: hidden; }
	.pw-table table, .pw-table tbody, .pw-table tr, .pw-table td { display: block; }
	.pw-table tr { padding: var(--space-3) var(--space-4); border-block-end: var(--border-hairline) solid var(--color-border); }
	.pw-table td { padding: var(--space-1) 0; border: 0; }
	.pw-table td:first-child { font-weight: var(--weight-semibold); color: var(--color-heading); }
}

/* ---------- P-A-21:V1 two panels (left wider) ---------- */
.pw-panels { display: grid; gap: var(--space-6); }
@media (min-width: 60rem) { .pw-panels { grid-template-columns: 7fr 5fr; align-items: stretch; } }
.pw-panel { padding: var(--space-6); background: var(--color-surface); border: var(--border-hairline) solid var(--color-border); border-radius: var(--radius-container); }
.pw-panel > * + * { margin-block-start: var(--space-3); }
.pw-panel .pw-photo { margin: calc(-1 * var(--space-6)) calc(-1 * var(--space-6)) var(--space-6); }
.pw-panel .pw-photo img { border-radius: var(--radius-container) var(--radius-container) 0 0; aspect-ratio: 3 / 2; }
.pw-panel .pw-photo figcaption { display: none; }
@media (min-width: 60rem) {
	.pw-panel--main { display: grid; grid-template-columns: 1fr 1fr; column-gap: var(--space-6); align-content: start; }
	.pw-panel--main > .pw-photo { grid-row: 1 / span 4; position: relative; min-block-size: 18rem; margin: calc(-1 * var(--space-6)) 0 calc(-1 * var(--space-6)) calc(-1 * var(--space-6)); }
	.pw-panel--main > .pw-photo picture { position: absolute; inset: 0; }
	.pw-panel--main > .pw-photo img { block-size: 100%; border-radius: var(--radius-container) 0 0 var(--radius-container); aspect-ratio: auto; }
	.pw-panel--main > :not(.pw-photo) { grid-column: 2; }
}

/* ---------- Split 7/5 (P-A-30:V1 + photo) ---------- */
.pw-split { display: grid; gap: var(--space-8); align-items: start; }
.pw-split__main > * + * { margin-block-start: var(--space-6); }
@media (min-width: 60rem) { .pw-split { grid-template-columns: 7fr 5fr; gap: var(--space-12); } .pw-split > .pw-photo { position: relative; top: var(--space-16); } }

/* ---------- P-A-19:V1 alternating rows ---------- */
.pw-zigzag { display: grid; gap: var(--space-12); }
.pw-zigzag__row { display: grid; gap: var(--space-6); align-items: center; }
.pw-zigzag__text > * + * { margin-block-start: var(--space-3); }
@media (min-width: 60rem) {
	.pw-zigzag__row { grid-template-columns: 1fr 1fr; gap: var(--space-12); }
	.pw-zigzag__row:nth-child(even) > .pw-photo { order: -1; }
}

/* ---------- P-A-27:V1 section rows (heading 4/12 + text 8/12) ---------- */
.pw-section-row { display: grid; gap: var(--space-4); padding-block-start: var(--space-6); border-block-start: var(--border-hairline) solid var(--color-border); }
.pw-section-row__body > * + * { margin-block-start: var(--space-4); }
.pw-section-row__body p { max-inline-size: var(--measure-body); }
@media (min-width: 60rem) { .pw-section-row { grid-template-columns: 4fr 8fr; gap: var(--space-12); } .pw-section-row > h2 { font-size: var(--step-1); } }
.pw-main .wp-block-post-content > .pw-section-row + .pw-section-row { margin-block-start: var(--space-12); }

/* ---------- P-A-38:V1 on this page ---------- */
.pw-onpage { padding-block: var(--space-4); border-block: var(--border-hairline) solid var(--color-border); }
.pw-onpage__title { font-size: var(--step--1); font-weight: var(--weight-semibold); color: var(--color-text-muted); margin-block-end: var(--space-2); }
.pw-onpage ul, .pw-onpage ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-6); }
.pw-onpage a { display: inline-flex; min-block-size: var(--target-min); align-items: center; }
[id] { scroll-margin-top: var(--space-6); }

/* ---------- P-A-14:V3 + P-A-27:V4 side TOC (farewell) ---------- */
.pw-toc-layout { display: grid; gap: var(--space-8); }
.pw-toc { padding: var(--space-5); border: var(--border-hairline) solid var(--color-border); border-radius: var(--radius-container); background: var(--color-surface); }
.pw-toc ol { margin: 0; padding-inline-start: var(--space-5); display: grid; gap: var(--space-1); }
.pw-toc a { display: inline-block; padding-block: var(--space-1); }
.pw-toc a[aria-current="true"] { font-weight: var(--weight-semibold); color: var(--color-heading); text-decoration-thickness: 2px; }
.pw-toc-layout__content > * + * { margin-block-start: var(--space-section); }
.pw-quiet-section > * + * { margin-block-start: var(--space-4); }
.pw-quiet-section p, .pw-quiet-section li { max-inline-size: var(--measure-body); }
@media (min-width: 75rem) {
	.pw-toc-layout { grid-template-columns: 17rem 1fr; gap: var(--space-16); align-items: start; }
	.pw-toc { position: sticky; top: var(--space-6); max-block-size: calc(100vh - var(--space-12)); overflow: auto; }
}

/* ---------- P-B-11 team ---------- */
.pw-team { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-gap-cards); }
.pw-team--cards { grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); }
.pw-team--full { grid-template-columns: repeat(auto-fill, minmax(19rem, 1fr)); }
.pw-person { display: flex; flex-direction: column; background: transparent; border: 0; border-radius: 0; overflow: visible; }
.pw-person .pw-photo img { aspect-ratio: 4 / 5; border-radius: var(--blob-a); box-shadow: var(--shadow-3); }
.pw-person:nth-child(3n+2) .pw-photo img { border-radius: var(--blob-b); }
.pw-person:nth-child(3n+3) .pw-photo img { border-radius: var(--blob-c); }
.pw-person .pw-photo figcaption { padding: var(--space-2) 0 0; margin: 0; }
.pw-person__initials { display: grid; place-items: center; aspect-ratio: 4 / 5; background: var(--brand-50); color: var(--brand-800); font: var(--weight-heading) var(--step-5)/1 var(--font-heading); border-radius: var(--blob-a); }
.pw-person__body { padding: var(--space-4) var(--space-2) 0; }
.pw-person__body > * + * { margin-block-start: var(--space-2); }
.pw-person__name { font-size: var(--step-1); overflow-wrap: anywhere; }
.pw-person__role { color: var(--color-text-muted); font-size: var(--step--1); margin-block-start: var(--space-1) !important; }
.pw-person__private { font-size: var(--step--1); color: var(--color-text-muted); }
.pw-team-group + .pw-team-group { margin-block-start: var(--space-section); }
.pw-team-group > h2 { margin-block-end: var(--space-6); }

/* ---------- Home "Jakie zwierzęta leczymy" (H-06, concept.html .zw): species in blobs on green-800 ---------- */
.pw-species { list-style: none; margin: var(--space-12) 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(18px, 3vw, 40px); align-items: end; }
.pw-species > li { position: relative; }
.pw-species .pw-photo, .pw-species .pw-photo img { margin: 0; aspect-ratio: 1; border-radius: var(--blob-a); }
.pw-species > li:nth-child(2) .pw-photo img { border-radius: var(--blob-c); transform: translateY(-24px); }
.pw-species > li:nth-child(3) .pw-photo img { border-radius: var(--blob-b); }
.pw-species .pw-photo figcaption { display: none; }
.pw-species h3 { font-size: clamp(1.5rem, 2.4vw, 2.2rem); margin-block-start: var(--space-4); }
.pw-species p { opacity: .9; font-size: 1.02rem; margin-block-start: var(--space-2); }
.pw-species .pw-mark { inline-size: 56px; inset-inline-end: 6%; inset-block-start: -10px; opacity: .9; color: var(--candle); transform: rotate(18deg); }
.pw-species-no { margin-block-start: var(--space-10); display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--space-4); align-items: start; max-inline-size: 64ch; border-block-start: 1px dashed rgb(251 244 232 / 0.35); padding-block-start: var(--space-6); }
.pw-species-no .pw-mark { position: static; inline-size: 56px; block-size: 56px; color: var(--candle); transform: rotate(-20deg); }
.pw-species-no a { text-decoration-color: var(--candle); text-underline-offset: 4px; }
@media (max-width: 47.999rem) {
	.pw-species { grid-template-columns: 1fr 1fr; gap: 16px; }
	.pw-species > li:nth-child(2) .pw-photo img { transform: none; }
	.pw-species > li:nth-child(3) { grid-column: 1 / -1; max-inline-size: 60%; }
	.pw-species-no { grid-template-columns: 1fr; }
}

/* ---------- Rotated "note" cards — home "Jak pracujemy" + "Koszt" (concept.html .note) ---------- */
.pw-notes { list-style: none; margin: var(--space-10) 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6); }
.pw-note { background: #fff; border-radius: var(--radius-container-2); padding: 26px 26px 26px 30px; position: relative; box-shadow: var(--shadow-2); }
.pw-note:nth-child(2) { transform: rotate(.6deg); }
.pw-note:nth-child(3) { transform: rotate(-.5deg); }
.pw-note .pw-mark { inline-size: 34px; block-size: 34px; position: absolute; inset-inline-end: 18px; inset-block-start: -14px; color: var(--conker); }
.pw-note h3 { font-size: 1.35rem; margin-block-end: var(--space-2); }
.pw-note p { font-size: 1rem; margin: 0; }
.pw-notes-more { list-style: none; margin: var(--space-6) 0 0; padding: var(--space-6) 0 0; border-block-start: 1px dashed var(--cream-200); display: grid; gap: var(--space-3); max-inline-size: var(--measure-body); }
.pw-notes-more li { padding-inline-start: calc(var(--icon-lg) + var(--space-3)); position: relative; }
.pw-notes-more strong { display: block; color: var(--color-heading); }
@media (max-width: 47.999rem) { .pw-notes { grid-template-columns: 1fr; } }

/* ---------- P-B-31:V2 inline CTA box ---------- */
.pw-cta-box { padding: var(--space-8); background: var(--color-surface); border: var(--border-hairline) solid var(--color-border); border-radius: var(--radius-container); }
.pw-cta-box > * + * { margin-block-start: var(--space-4); }
.pw-cta-box p { max-inline-size: var(--measure-body); }

/* ---------- P-B-33 contact / location ---------- */
.pw-location { display: grid; gap: var(--space-8); align-items: start; }
@media (min-width: 60rem) { .pw-location { grid-template-columns: 7fr 5fr; gap: var(--space-12); } }
.pw-contact > * + * { margin-block-start: var(--space-6); }
.pw-contact__address { font-style: normal; font-size: var(--step-0); }
.pw-map { margin: 0; }
.pw-map img { display: block; inline-size: 100%; block-size: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--blob-c); border: var(--border-hairline) solid var(--color-border); }
.pw-map figcaption { margin-block-start: var(--space-2); font-size: var(--step--1); color: var(--color-text-muted); }
/* Home "Godziny i dojazd" band, on the closing green field (concept.html .end) */
.pw-field-green .pw-dl dt, .pw-field-green .pw-dl dd { color: var(--color-text); }
.pw-field-green .pw-dl dt { color: var(--candle); font-weight: var(--weight-semibold); }
.pw-field-green .pw-dl--rows > div { border-block-end-color: var(--color-border); }
.pw-field-green .pw-dl--rows > div:first-child { border-block-start-color: var(--color-border); }
.pw-field-green .pw-contact__address strong { color: #fff; }
.pw-hours { list-style: none; margin: 0; padding: 0; max-inline-size: 30rem; border-block-start: var(--border-hairline) solid var(--color-border); font-variant-numeric: tabular-nums; }
.pw-hours__row { display: flex; justify-content: space-between; gap: var(--space-4); padding: var(--space-3) var(--space-2); border-block-end: var(--border-hairline) solid var(--color-border); }
.pw-hours__today { display: none; }
.pw-hours__row.is-today { background: var(--info-subtle); font-weight: var(--weight-semibold); box-shadow: inset var(--border-heavy) 0 0 var(--brand-800); }
.pw-hours__row.is-today .pw-hours__today { display: inline; font-weight: var(--weight-regular); color: var(--color-text-muted); }
.pw-hours__exceptions-title { margin-block-start: var(--space-6); font-weight: var(--weight-semibold); }
.pw-hours--exceptions { margin-block-start: var(--space-2); }
.pw-hours__note { color: var(--color-text-muted); }
.pw-hours__note-phone { margin-block-start: var(--space-4); font-size: var(--step--1); color: var(--color-text-muted); }

/* ---------- Appointment page (P-B-33:V4 + P-B-34:V2 + P-A-29:V2) ---------- */
.pw-appointment { display: grid; gap: var(--space-12); align-items: start; }
.pw-appointment__main > * + * { margin-block-start: var(--space-8); }
.pw-appointment__aside > * + * { margin-block-start: var(--space-6); }
@media (min-width: 60rem) { .pw-appointment { grid-template-columns: 7fr 5fr; } .pw-appointment__aside { position: sticky; top: var(--space-6); } }
.pw-phone-box { padding: var(--space-6); background: var(--color-surface); border: var(--border-hairline) solid var(--color-border); border-radius: var(--radius-container); }
.pw-phone-box > * + * { margin-block-start: var(--space-4); }
.pw-phone-box h2 { font-size: var(--step-1); }
@media (max-width: 47.999rem) { .pw-phone-box .pw-btn { inline-size: 100%; } }

/* ---------- Form (B-11…B-19) ---------- */
.pw-form { max-inline-size: var(--container-form); display: grid; gap: var(--space-stack-field); }
.pw-field { display: grid; gap: var(--space-stack-label); margin: 0; min-inline-size: 0; }
fieldset.pw-field { border: 0; padding: 0; }
.pw-field > label, .pw-field legend { font-weight: var(--weight-semibold); color: var(--color-heading); font-size: var(--step-0); padding: 0; }
.pw-field legend { margin-block-end: var(--space-2); }
.pw-field__req, .pw-field__opt { font-weight: var(--weight-regular); color: var(--color-text-muted); font-size: var(--step--1); }
.pw-field__hint { font-size: var(--step--1); color: var(--color-text-muted); max-inline-size: var(--measure-body); }
.pw-field input[type="text"], .pw-field input[type="tel"], .pw-field input[type="email"], .pw-field textarea {
	inline-size: 100%; min-block-size: var(--control-md); padding: var(--space-2) var(--space-3);
	font: var(--weight-regular) max(16px, var(--step-0))/var(--leading-ui) var(--font-body); color: var(--color-text);
	background: var(--color-surface); border: var(--border-hairline) solid var(--color-border-strong); border-radius: var(--radius-control);
}
.pw-field textarea { min-block-size: 7.5rem; resize: vertical; }
.pw-field input:focus-visible, .pw-field textarea:focus-visible { outline: var(--focus-ring-width) solid var(--color-focus-ring); outline-offset: var(--focus-ring-offset); }
.pw-field [aria-invalid="true"] { border: var(--border-strong) solid var(--error); }
.pw-field__error { display: flex; gap: var(--space-2); align-items: flex-start; color: var(--error-text); font-weight: var(--weight-semibold); font-size: var(--step--1); }
.pw-field__error[hidden] { display: none; }
.pw-field__error .pw-icon { inline-size: var(--icon-sm); block-size: var(--icon-sm); margin-block-start: 0.2em; }
.pw-field__counter { font-size: var(--step--1); color: var(--color-text-muted); }
.pw-choice__options { display: grid; gap: var(--space-2); }
.pw-choice__options--grid { grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); }
.pw-choice__options--inline { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.pw-choice__option { display: flex; align-items: center; gap: var(--space-3); min-block-size: var(--control-md); padding: var(--space-2) var(--space-4); background: var(--color-surface); border: var(--border-hairline) solid var(--color-border); border-radius: var(--radius-control); cursor: pointer; line-height: var(--leading-ui); }
.pw-choice__option:hover { border-color: var(--color-border-strong); }
.pw-choice__option:has(input:checked) { border-color: var(--brand-800); background: var(--info-subtle); }
.pw-choice__option:has(input:focus-visible) { outline: var(--focus-ring-width) solid var(--color-focus-ring); outline-offset: var(--focus-ring-offset); }
.pw-choice__option input { appearance: none; flex: none; inline-size: 1.5rem; block-size: 1.5rem; margin: 0; border: var(--border-hairline) solid var(--color-border-strong); background: var(--color-surface); display: grid; place-items: center; }
.pw-choice__option input:focus-visible { outline: none; }
.pw-choice__option input[type="radio"] { border-radius: var(--radius-full); }
.pw-choice__option input[type="radio"]:checked { border: var(--border-strong) solid var(--brand-800); }
.pw-choice__option input[type="radio"]:checked::after { content: ""; inline-size: 0.75rem; block-size: 0.75rem; border-radius: var(--radius-full); background: var(--brand-800); }
.pw-choice__option input[type="checkbox"] { border-radius: var(--radius-sm); }
.pw-choice__option input[type="checkbox"]:checked { background: var(--brand-800); border-color: var(--brand-800); }
.pw-choice__option input[type="checkbox"]:checked::after { content: ""; inline-size: 0.9rem; block-size: 0.9rem; background: var(--color-surface); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / contain no-repeat; }
fieldset[data-pw-field]:has(.pw-field__error:not([hidden])) .pw-choice__option { border-color: var(--error); }
.pw-health-hint:empty { display: none; }
.pw-health-hint .pw-notice { margin-block-start: var(--space-3); font-size: var(--step--1); }
.pw-error-summary { padding: var(--space-5) var(--space-6); background: var(--error-subtle); border-inline-start: var(--border-heavy) solid var(--error); border-radius: 0 var(--radius-container) var(--radius-container) 0; }
.pw-error-summary[hidden] { display: none; }
.pw-error-summary__title { display: flex; align-items: center; gap: var(--space-2); font-weight: var(--weight-semibold); color: var(--error-text); }
.pw-error-summary ul { margin: var(--space-2) 0 0; padding-inline-start: var(--space-6); }
.pw-error-summary a { color: var(--error-text); font-weight: var(--weight-semibold); }
.pw-hp { position: absolute; inset-inline-start: -9999px; inline-size: 1px; block-size: 1px; overflow: hidden; }
.pw-form__clause { font-size: var(--step--1); color: var(--color-text-muted); max-inline-size: var(--measure-body); }
@media (max-width: 47.999rem) { .pw-form__submit .pw-btn { inline-size: 100%; } }
.pw-confirm > * + * { margin-block-start: var(--space-5); }
.pw-confirm__lead { display: flex; gap: var(--space-3); align-items: flex-start; font-size: var(--step-0); padding: var(--space-5) var(--space-6); background: var(--success-subtle); border-inline-start: var(--border-heavy) solid var(--success); border-radius: 0 var(--radius-container) var(--radius-container) 0; max-inline-size: var(--measure-body); }
.pw-confirm__lead .pw-icon { color: var(--success-text); inline-size: var(--icon-lg); block-size: var(--icon-lg); stroke-width: 2.25; margin-block-start: 0.15em; }
.pw-confirm p { max-inline-size: var(--measure-body); }

/* ---------- Footer (P-B-39:V1) ---------- */
.pw-site-footer { margin-block-start: var(--space-section); }
.pw-footer { padding-block: var(--space-12) var(--space-8); background: var(--color-surface-2); border-block-start: var(--border-hairline) solid var(--color-border); font-size: var(--step--1); }
.pw-footer__map { display: grid; gap: var(--space-8); grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); }
.pw-footer__heading { font-family: var(--font-body); font-size: var(--step--1); font-weight: var(--weight-semibold); letter-spacing: 0.04em; text-transform: uppercase; color: var(--color-text-muted); margin-block-end: var(--space-3); }
.pw-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-1); }
.pw-footer ul a { display: inline-block; padding-block: var(--space-1); }
.pw-footer__data { display: grid; gap: var(--space-4) var(--space-8); margin-block-start: var(--space-12); padding-block-start: var(--space-8); border-block-start: var(--border-hairline) solid var(--color-border); }
@media (min-width: 48rem) { .pw-footer__data { grid-template-columns: 1fr 1fr; } .pw-footer__legal { grid-column: 1 / -1; } }
.pw-footer__data p + p { margin-block-start: var(--space-1); }
.pw-footer__name { font-family: var(--font-heading); font-size: var(--step-1); color: var(--color-heading); }
.pw-footer__legal { color: var(--color-text-muted); max-inline-size: 90ch; }

/* ---------- Farewell page variant [3.10] (.page--quiet): no bands, wider spacing, narrow text ---------- */
.page--quiet .pw-main .wp-block-post-content > * + * { margin-block-start: var(--space-section-quiet); }
.page--quiet .pw-main .wp-block-post-content > .pw-hero + * { margin-block-start: var(--space-12); }
.page--quiet .pw-band { background: var(--color-background); }
.page--quiet .pw-notice--v4 { margin-block-start: var(--space-section-quiet); }
.page--quiet .pw-prefooter { margin-block-start: var(--space-section-quiet); }

/* ---------- Editor preview niceties ---------- */
.editor-styles-wrapper .pw-js { display: revert !important; }

/* ---------- Print (B-21): content only, URL and date at the bottom ---------- */
@media print {
	.pw-site-header, .pw-site-footer, .pw-breadcrumbs, .pw-onpage, .pw-toc, .pw-print-action, .pw-actions, .pw-cta-box, .pw-urgent { display: none !important; }
	body { background: #fff; color: #000; font-size: 12pt; }
	a { color: #000; }
	.pw-band { background: none; padding: 0; }
	.pw-table table, .pw-table th, .pw-table td { border: 1px solid #000; }
	.pw-toc-layout { display: block; }
	body::after { content: attr(data-pw-print-footer); display: block; margin-top: 2em; font-size: 10pt; }
}

/* --- lead review 2026-09-28 --------------------------------------------------------------- */
/* Hero green field runs edge to edge (concept); the content column inside lines up with the header. */
.pw-main .wp-block-post-content > .pw-hero {
	max-width: none !important;
	margin-inline: calc(-1 * var(--wp--style--root--padding-left, 40px)) calc(-1 * var(--wp--style--root--padding-right, 40px)) !important;
	padding-inline: max(var(--wp--style--root--padding-left, 40px), calc((100vw - 1200px) / 2));
}
/* the decorative leaf in the logo is a mark beside the name, never over it */
.pw-logo__mark { position: static; }
