/* Hallmark · macrostructure: Ecosystem Index · tone: soft · anchor hue: 255 (medical blue) */
/* Verbena – component styles, ported from design/site.css with the same class names.
   Only var(--…) tokens from tokens.css – no raw colors or font stacks here.
   Sections marked "WP" map WordPress block markup onto the mockup components. */

/* ===================== Base ===================== */
*, *::before, *::after { box-sizing: border-box; }
html, body { overflow-x: clip; }
body {
	margin: 0;
	background: var(--color-bg);
	color: var(--color-ink);
	font-family: var(--font-body);
	font-size: var(--text-body);
	line-height: var(--leading-body);
	-webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--color-brand); transition: color var(--duration-fast) var(--ease-standard); }
a:hover { color: var(--color-brand-strong); }
:focus-visible { outline: none; box-shadow: var(--focus-ring); border-radius: var(--radius-sm); }
h1, h2, h3, p, ul, ol, figure { margin: 0; }
ul.reset, ol.reset { list-style: none; padding: 0; }
.visually-hidden,
.screen-reader-text {
	position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.container { max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); }

/* WP: components own their spacing – neutralise block-gap margins inside them. */
.wp-site-blocks > * { margin-block: 0; }
:root :where(.site-main, .site-header, .site-footer) > *,
:root :where(.site-main, .site-header, .site-footer) :where(.is-layout-flow, .is-layout-constrained, .is-layout-flex, .is-layout-grid):where(:not(.entry-content:not(.sections-content), .entry-content:not(.sections-content) *)) > * {
	margin-block-start: 0;
	margin-block-end: 0;
}

/* WP: skip link (server-rendered, see functions.php) */
.skip-link {
	position: absolute; z-index: 100000; top: var(--space-3); left: var(--space-3);
	padding: var(--space-3) var(--space-5);
	border-radius: var(--radius-md);
	background: var(--color-brand); color: var(--color-on-brand);
	font-weight: var(--weight-semibold); text-decoration: none;
	transform: translateY(calc(-100% - var(--space-6)));
	transition: transform var(--duration-base) var(--ease-out);
}
.skip-link:focus { transform: none; color: var(--color-on-brand); }

/* ===================== Shared type ===================== */
.eyebrow {
	margin-bottom: var(--space-4);
	font-size: var(--text-label);
	font-weight: var(--weight-semibold);
	letter-spacing: var(--tracking-label);
	text-transform: uppercase;
	color: var(--color-brand);
}
:root :where(.is-layout-flow, .is-layout-constrained) > .eyebrow { margin-block-end: var(--space-4); }
.section-title {
	font-family: var(--font-display);
	font-weight: var(--weight-regular);
	font-size: var(--text-h2);
	line-height: var(--leading-heading);
	letter-spacing: var(--tracking-heading);
}
.section-title em { font-style: italic; }
.section-head {
	display: flex; flex-wrap: wrap; gap: var(--space-4) var(--space-12);
	align-items: flex-end; justify-content: space-between;
	margin-bottom: var(--space-10);
}
:root :where([class*="section--"]) .section-head { margin-block-end: var(--space-10); }
.section-head__main { max-width: 41.25rem; }
.section-intro { max-width: 25rem; color: var(--color-muted); font-size: 1rem; }

/* ===================== Buttons ===================== */
.btn,
.wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 48px; padding: 0 var(--space-6);
	border-radius: var(--radius-pill);
	font: inherit; font-weight: var(--weight-semibold);
	text-decoration: none; cursor: pointer;
	transition: background-color var(--duration-fast) var(--ease-standard),
	            color var(--duration-fast) var(--ease-standard),
	            border-color var(--duration-fast) var(--ease-standard),
	            transform var(--duration-fast) var(--ease-standard);
}
.wp-block-button__link { background: var(--color-brand); color: var(--color-on-brand); border: 0; }
.wp-block-button__link:hover { background: var(--color-brand-strong); color: var(--color-on-brand); }
.btn:active,
.wp-block-button__link:active { transform: translateY(1px); }
.btn[disabled], .btn[aria-disabled="true"] { opacity: 0.5; cursor: not-allowed; }
.btn--outline,
.wp-block-button.is-style-outline > .wp-block-button__link {
	border: 1.5px solid var(--color-brand); color: var(--color-brand); background: transparent; padding: 0 var(--space-6);
}
.btn--outline:hover,
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--color-brand-tint); color: var(--color-brand-strong); }
.btn--ghost-dark,
.wp-block-button.is-style-ghost-dark > .wp-block-button__link {
	border: 1.5px solid var(--color-on-dark-line); color: var(--color-on-brand); background: transparent;
}
.btn--ghost-dark:hover,
.wp-block-button.is-style-ghost-dark > .wp-block-button__link:hover { border-color: var(--color-mint-on-dark); color: var(--color-on-brand); background: transparent; }

/* ===================== Header ===================== */
.site-header {
	background: color-mix(in oklch, var(--color-surface) 92%, transparent);
	border-bottom: 1px solid var(--color-line);
}
.site-header__inner {
	display: flex; flex-wrap: wrap; gap: var(--space-4) var(--space-8);
	align-items: center; justify-content: space-between;
	padding-block: var(--space-4);
}
.brand { position: relative; display: flex; align-items: center; gap: var(--space-3); color: var(--color-ink); text-decoration: none; }
.brand:hover { color: var(--color-ink); }
.brand__logo { width: 42px; height: 42px; flex: 0 0 auto; }
.brand__text { display: flex; flex-direction: column; line-height: 1.1; }
.brand__name { font-family: var(--font-display); font-size: 1.5625rem; font-weight: var(--weight-semibold); letter-spacing: -0.01em; line-height: 1.1; }
.brand__tag { font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--color-muted); line-height: 1.1; }
/* WP: core/site-title link covers the whole wordmark (logo + tagline). */
.brand__name a { color: inherit; text-decoration: none; }
.brand__name a::after { content: ""; position: absolute; inset: 0; }
.brand__name a:hover { color: inherit; }
.brand:has(a:focus-visible) { box-shadow: var(--focus-ring); border-radius: var(--radius-md); }
.brand__name a:focus-visible { box-shadow: none; }

.main-nav ul { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-7); list-style: none; margin: 0; padding: 0; }
.main-nav a {
	display: inline-flex; align-items: center; min-height: 44px; padding-block: var(--space-1);
	color: var(--color-ink); text-decoration: none; white-space: nowrap;
	font-size: 1rem; font-weight: var(--weight-medium);
}
.main-nav a:hover, .main-nav a[aria-current="page"] { color: var(--color-brand); }

/* WP: core/navigation in the header – overlay on phones. */
.main-nav.wp-block-navigation { gap: var(--space-2) var(--space-7); }
.main-nav .wp-block-navigation__container { gap: var(--space-2) var(--space-7); }
.main-nav .wp-block-navigation__responsive-container-open,
.main-nav .wp-block-navigation__responsive-container-close {
	align-items: center; justify-content: center;
	min-width: 44px; min-height: 44px; padding: var(--space-2);
	border-radius: var(--radius-md); color: var(--color-ink);
}
.main-nav .wp-block-navigation__responsive-container-close { display: inline-flex; }
@media (max-width: 599px) {
	.main-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: inline-flex; }
}
.main-nav .wp-block-navigation__responsive-container-close { top: var(--space-4); right: var(--space-4); }
.main-nav.wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--color-surface); color: var(--color-ink);
	padding: var(--space-6) var(--gutter);
}
.main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: var(--space-16); align-items: flex-start;
}
.main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	gap: var(--space-2); align-items: flex-start;
}
.main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-size: var(--text-lead); padding-block: var(--space-2);
}

/* ===================== Hero ===================== */
.hero {
	background:
		radial-gradient(1200px 520px at 85% 0%, var(--color-brand-tint-2) 0%, transparent 60%),
		radial-gradient(800px 420px at 0% 100%, var(--color-mint-glow) 0%, transparent 60%),
		var(--color-bg);
}
.hero__inner {
	display: flex; flex-wrap: wrap; gap: var(--space-14); align-items: center;
	padding-block: var(--space-22) var(--space-20);
}
.hero__copy { flex: 1 1 32.5rem; min-width: 0; }
.hero__aside {
	flex: 1 1 26.25rem; min-width: 0;
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4);
}
.pill-badge {
	display: inline-flex; align-items: center; gap: var(--space-3);
	margin-bottom: var(--space-5); padding: 6px 14px 6px 8px;
	border-radius: var(--radius-pill);
	background: var(--color-surface); border: 1px solid var(--color-line);
	font-size: var(--text-label); font-weight: var(--weight-semibold); color: var(--color-brand);
}
.dot,
.pill-badge::before,
.panel-label::before { width: 8px; height: 8px; border-radius: 50%; background: var(--color-mint); flex: 0 0 auto; }
.pill-badge::before,
.panel-label::before { content: ""; }
.dot--brand,
.clinics__extra .panel-label::before { background: var(--color-brand); }
.hero__title {
	margin-bottom: var(--space-6);
	font-family: var(--font-display); font-weight: var(--weight-regular);
	font-size: var(--text-h1); line-height: 1.02; letter-spacing: var(--tracking-display);
}
.hero__title em { font-style: italic; color: var(--color-brand); }
.hero__lead { margin-bottom: var(--space-10); max-width: 36.25rem; font-size: var(--text-lead); color: var(--color-ink-2); }
:root :where(.hero) .pill-badge { margin-block-end: var(--space-5); }
:root :where(.hero) .hero__title { margin-block-end: var(--space-6); }
:root :where(.hero) .hero__lead { margin-block-end: var(--space-10); }

form.search {
	display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: center;
	max-width: 36.25rem; padding: var(--space-2);
	background: var(--color-surface); border: 1px solid var(--color-line);
	border-radius: var(--radius-lg); box-shadow: var(--shadow-float);
}
form.search:focus-within { border-color: var(--color-brand); }
.search__icon { padding-left: var(--space-3); display: flex; color: var(--color-muted); }
.search__input,
form.search .wp-block-search__input {
	flex: 1 1 13.75rem; min-width: 0; min-height: 48px; padding: 0;
	border: 0; outline: none; background: transparent; box-shadow: none;
	font: inherit; font-size: var(--text-body); color: var(--color-ink);
}
.search__input::placeholder,
form.search .wp-block-search__input::placeholder { color: var(--color-muted); opacity: 1; }
.search__button,
form.search .wp-block-search__button {
	min-height: 48px; margin: 0; padding: 0 var(--space-6);
	border: 0; border-radius: var(--radius-md);
	background: var(--color-brand); color: var(--color-on-brand);
	font: inherit; font-weight: var(--weight-semibold); cursor: pointer;
	transition: background-color var(--duration-fast) var(--ease-standard);
}
.search__button:hover,
form.search .wp-block-search__button:hover { background: var(--color-brand-strong); color: var(--color-on-brand); }

/* WP: core/search → form.search. The inside wrapper dissolves so input and button sit
   in the same flex row as the decorative magnifier (drawn with a CSS mask). */
form.search.wp-block-search .wp-block-search__inside-wrapper { display: contents; }
form.search.wp-block-search::before {
	content: ""; flex: 0 0 auto; width: 20px; height: 20px; margin-left: var(--space-3);
	background: var(--color-muted);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.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='currentColor' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E") center / contain no-repeat;
}
form.search .wp-block-search__input:focus-visible { box-shadow: none; }

.popular { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-5); font-size: var(--text-label); color: var(--color-muted); }
:root :where(.hero) .popular { margin-block-start: var(--space-5); }
.popular a { font-weight: var(--weight-semibold); text-decoration: none; }

.ph {
	display: flex; align-items: flex-end; padding: var(--space-5);
	background: linear-gradient(135deg, var(--color-ph-1) 0%, var(--color-ph-2) 55%, var(--color-mint-tint) 100%);
	overflow: hidden;
}
.ph img { width: 100%; height: 100%; object-fit: cover; }
.ph--hero { grid-column: 1 / -1; aspect-ratio: 16 / 9; border-radius: var(--radius-3xl); }
.ph__caption { font-size: 0.8125rem; color: var(--color-ph-ink); background: color-mix(in oklch, var(--color-surface) 80%, transparent); padding: 6px 12px; border-radius: var(--radius-sm); }

/* WP: a photo inside .ph (core/cover, core/image, post featured image) fills the frame;
   with no photo the gradient stays as the placeholder. */
.ph.wp-block-cover { min-height: 0; padding: 0; color: inherit; }
.ph.wp-block-cover .wp-block-cover__inner-container:empty { display: none; }
.ph:has(img) { padding: 0; }
.ph > .wp-block-post-featured-image,
.ph > .wp-block-image { flex: 1 1 auto; align-self: stretch; width: 100%; height: 100%; margin: 0; }
.ph > .wp-block-post-featured-image img,
.ph > .wp-block-image img { width: 100%; height: 100%; object-fit: cover; }

.stat-card { padding: var(--space-5); border-radius: var(--radius-xl); background: var(--color-surface); border: 1px solid var(--color-line); }
.stat-card__value { margin-bottom: 6px; font-family: var(--font-display); font-size: var(--text-stat); line-height: 1; color: var(--color-brand); }
:root :where(.stat-card) .stat-card__value { margin-block-end: 6px; }
.stat-card__label { font-size: var(--text-small); color: var(--color-ink-2); }
.note-card { padding: var(--space-5); border-radius: var(--radius-xl); background: var(--color-navy); color: var(--color-navy-text); font-size: var(--text-small); }
.note-card svg { display: block; color: var(--color-mint-on-dark); margin-bottom: var(--space-3); }

/* ===================== Poradnie ===================== */
.section--clinics { padding-block: var(--space-24) var(--space-10); }
.clinics { display: flex; flex-wrap: wrap; gap: var(--space-5); }
.panel { border-radius: var(--radius-2xl); padding: var(--space-8); }
.clinics__list { flex: 3 1 35rem; min-width: 0; background: var(--color-surface); border: 1px solid var(--color-line); }
.clinics__extra { flex: 2 1 21.25rem; min-width: 0; background: var(--color-brand-tint); display: flex; flex-direction: column; gap: var(--space-5); }
.panel-label {
	display: flex; align-items: center; gap: var(--space-3); margin-bottom: var(--space-5);
	font-family: var(--font-body);
	font-size: var(--text-label); font-weight: var(--weight-bold); line-height: var(--leading-body);
	letter-spacing: 0.06em; text-transform: uppercase; color: var(--color-mint-strong);
}
:root :where(.clinics__list) .panel-label { margin-block-end: var(--space-5); }
.clinics__extra .panel-label { color: var(--color-brand-strong); margin-bottom: 0; }
.link-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(13.75rem, 1fr)); column-gap: var(--space-7); list-style: none; padding: 0; }
.link-list a {
	display: flex; justify-content: space-between; align-items: center;
	min-height: 52px; border-bottom: 1px solid var(--color-line-soft);
	color: var(--color-ink); text-decoration: none; font-weight: var(--weight-semibold);
}
.link-list a::after { content: "→"; color: var(--color-brand); transition: transform var(--duration-base) var(--ease-out); }
.link-list a:hover { color: var(--color-brand); }
.link-list a:hover::after { transform: translateX(4px); }
.pill-list { display: flex; flex-wrap: wrap; gap: var(--space-2); list-style: none; padding: 0; }
.pill-list li {
	padding: 10px var(--space-4); border-radius: var(--radius-pill);
	background: var(--color-surface); color: var(--color-brand-strong);
	font-weight: var(--weight-semibold); font-size: var(--text-small);
}
.clinics__poz {
	margin-top: auto; padding-top: var(--space-5);
	border-top: 1px solid var(--color-brand-tint-3);
	display: flex; gap: var(--space-4); align-items: flex-start;
	font-size: var(--text-small); color: var(--color-brand-ink);
}
:root :where(.clinics__extra) > .clinics__poz { margin-block-start: auto; }
.clinics__poz svg { flex: 0 0 auto; color: var(--color-brand); }

/* ===================== Diagnostyka ===================== */
.section--diag { padding-block: var(--space-14) var(--space-10); }
.diag {
	display: flex; flex-wrap: wrap; gap: var(--space-12); align-items: center;
	padding: var(--space-6); border-radius: 1.875rem;
	background: var(--color-surface); border: 1px solid var(--color-line);
}
.diag__media { flex: 1 1 25rem; min-width: 0; aspect-ratio: 5 / 4; border-radius: var(--radius-xl);
	background: linear-gradient(135deg, var(--color-mint-tint) 0%, var(--color-brand-tint-2) 100%); }
.diag__media .ph__caption { color: var(--color-mint-ink); }
.diag__body { flex: 1 1 28.75rem; min-width: 0; padding: var(--space-4) var(--space-4) var(--space-4) 0; }
.diag__title { margin-bottom: var(--space-5); font-family: var(--font-display); font-weight: var(--weight-regular);
	font-size: clamp(2rem, 3.4vw, 2.75rem); line-height: var(--leading-heading); letter-spacing: var(--tracking-heading); }
.diag__lead { margin-bottom: var(--space-7); color: var(--color-ink-2); }
:root :where(.diag__body) .diag__title { margin-block-end: var(--space-5); }
:root :where(.diag__body) .diag__lead { margin-block-end: var(--space-7); }
.checklist { display: grid; grid-template-columns: repeat(auto-fit, minmax(13.125rem, 1fr)); gap: var(--space-4) var(--space-7); list-style: none; padding: 0; }
.checklist li { display: flex; gap: var(--space-3); align-items: baseline; }
.checklist li::before { content: "✓"; color: var(--color-mint); font-weight: var(--weight-heavy); }
.checklist strong { display: block; }
.checklist span { color: var(--color-muted); font-size: var(--text-small); }
/* WP: list items hold "<strong>Name</strong><br>detail" – same look without nested spans. */
.checklist li { position: relative; display: block; padding-left: 1.6em; color: var(--color-muted); font-size: var(--text-small); line-height: calc(var(--text-body) * var(--leading-body)); }
.checklist li::before { position: absolute; left: 0; top: 0; font-size: var(--text-body); }
.checklist li br { display: none; }

/* ===================== Tematy ===================== */
.section--topics { padding-block: var(--space-24) var(--space-22); }
.topic-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(16.875rem, 1fr)); gap: var(--space-4); list-style: none; padding: 0; }
.topic {
	position: relative;
	display: flex; align-items: center; gap: var(--space-4);
	padding: var(--space-5) var(--space-6); border-radius: var(--radius-lg);
	background: var(--color-surface); border: 1px solid var(--color-line);
	color: var(--color-ink); text-decoration: none;
	transition: border-color var(--duration-fast) var(--ease-standard), transform var(--duration-base) var(--ease-out);
}
.topic:hover { border-color: var(--color-brand); color: var(--color-ink); transform: translateY(-2px); }
.topic__icon { flex: 0 0 auto; width: 52px; height: 52px; border-radius: 16px; background: var(--color-brand-tint); color: var(--color-brand); display: flex; align-items: center; justify-content: center; }
.topic__text { display: flex; flex-direction: column; line-height: 1.35; }
.topic__name { font-size: var(--text-h4); font-weight: var(--weight-bold); }
.topic__desc { font-size: var(--text-label); color: var(--color-muted); }
/* WP: the name link stretches over the whole tile. */
.topic__name a { color: inherit; text-decoration: none; }
.topic__name a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.topic:has(a:focus-visible) { box-shadow: var(--focus-ring); }
.topic__name a:focus-visible { box-shadow: none; }

/* ===================== Przewodnik po badaniach (dark) ===================== */
.section--dark { background: var(--color-navy); color: var(--color-navy-text); padding-block: var(--space-24); }
.section--dark .eyebrow { color: var(--color-mint-on-dark); }
.section--dark .section-title { color: var(--color-on-brand); }
.section--dark :focus-visible { box-shadow: 0 0 0 3px var(--color-navy), 0 0 0 5px var(--color-mint-on-dark); }
.guide-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(16.875rem, 1fr)); gap: var(--space-4); list-style: none; padding: 0; }
.guide-card {
	position: relative;
	display: flex; flex-direction: column; gap: var(--space-3); height: 100%;
	padding: var(--space-7); border-radius: var(--radius-xl);
	background: var(--color-navy-2); border: 1px solid var(--color-navy-line);
	color: var(--color-navy-text); text-decoration: none;
	transition: border-color var(--duration-fast) var(--ease-standard);
}
.guide-card:hover { border-color: var(--color-mint-on-dark); color: var(--color-navy-text); }
.guide-card__title { font-family: var(--font-display); font-size: 1.875rem; line-height: 1; color: var(--color-on-brand); }
.guide-card__more { margin-top: auto; font-size: var(--text-small); font-weight: var(--weight-semibold); color: var(--color-mint-on-dark); }
:root :where(.guide-card) > .guide-card__more { margin-block-start: auto; }
/* WP: the title link stretches over the whole card. */
.guide-card__title a { color: inherit; text-decoration: none; }
.guide-card__title a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.guide-card:has(a:focus-visible) { box-shadow: 0 0 0 3px var(--color-navy), 0 0 0 5px var(--color-mint-on-dark); }
.guide-card__title a:focus-visible { box-shadow: none; }

/* ===================== FAQ ===================== */
.section--faq { padding-block: var(--space-24); }
.faq-layout { display: flex; flex-wrap: wrap; gap: var(--space-14); }
.faq-layout__head { flex: 1 1 22.5rem; min-width: 0; }
.faq-layout__head .section-title { margin-bottom: var(--space-5); }
:root :where(.faq-layout__head) .section-title { margin-block-end: var(--space-5); }
.faq-layout__head p:last-child { color: var(--color-ink-2); }
.faq { flex: 2 1 35rem; min-width: 0; display: flex; flex-direction: column; gap: var(--space-3); }
.faq__item { background: var(--color-surface); border: 1px solid var(--color-line); border-radius: var(--radius-lg); padding: var(--space-5) var(--space-6); }
.faq__item summary { font-size: var(--text-h4); font-weight: var(--weight-bold); cursor: pointer; }
.faq__item p { margin-top: var(--space-3); color: var(--color-ink-2); }
/* WP: core/details → .faq__item; the summary row is the ≥ 44px tap target. */
.faq__item.wp-block-details { padding-block: 0; }
.faq__item summary { padding-block: var(--space-5); border-radius: var(--radius-sm); }
.faq__item[open] summary { padding-block-end: 0; }
:root :where(.faq__item) > p { margin-block-start: var(--space-3); }
.faq__item > :last-child:not(summary) { padding-block-end: var(--space-5); }

/* ===================== Artykuły ===================== */
.section--posts { background: var(--color-surface); border-top: 1px solid var(--color-line); padding-block: var(--space-24) var(--space-26); }
.posts { display: flex; flex-wrap: wrap; gap: var(--space-6); }
.post-featured { flex: 3 1 35rem; min-width: 0; display: flex; flex-direction: column; border-radius: var(--radius-2xl); overflow: hidden; background: var(--color-bg); border: 1px solid var(--color-line); }
.post-featured__media { aspect-ratio: 2 / 1; }
.post-featured__body { padding: var(--space-8) var(--space-8) var(--space-8); display: flex; flex-direction: column; gap: var(--space-3); }
.post-featured__title { font-family: var(--font-display); font-weight: var(--weight-medium); font-size: var(--text-h3-display); line-height: 1.2; letter-spacing: normal; }
.post-featured__title a, .post-compact__title a { color: var(--color-ink); text-decoration: none; }
.post-featured__title a:hover, .post-compact__title a:hover { color: var(--color-brand); }
.post-featured__excerpt { color: var(--color-ink-2); max-width: 38.75rem; }
.post-featured__more { font-weight: var(--weight-semibold); }
.post-meta { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: center; font-size: var(--text-label); color: var(--color-muted); }
.tag { padding: 4px 10px; border-radius: var(--radius-sm); background: var(--color-brand-tint); color: var(--color-brand-strong); font-weight: var(--weight-bold); text-decoration: none; }
.post-list { flex: 2 1 23.75rem; min-width: 0; display: flex; flex-direction: column; gap: var(--space-4); list-style: none; padding: 0; }
.post-compact { display: flex; gap: var(--space-5); align-items: stretch; padding: var(--space-4); border-radius: var(--radius-xl); background: var(--color-bg); border: 1px solid var(--color-line); }
.post-compact__thumb { flex: 0 0 112px; min-height: 112px; border-radius: 16px; background: var(--color-brand-tint-2); overflow: hidden; }
.post-compact__thumb--mint { background: var(--color-mint-tint-2); }
.post-compact__thumb img { width: 100%; height: 100%; object-fit: cover; }
.post-compact__body { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.post-compact__cat { font-size: 0.8125rem; font-weight: var(--weight-bold); color: var(--color-brand); text-decoration: none; }
.post-compact__title { font-size: var(--text-h4); line-height: var(--leading-snug); font-weight: var(--weight-bold); }
.post-compact__time { font-size: var(--text-label); color: var(--color-muted); }

/* WP: two core/query loops inside .posts (1 featured + 3 compact). */
.posts > .wp-block-query { min-width: 0; display: flex; flex-direction: column; }
.posts > .wp-block-query:first-child { flex: 3 1 35rem; }
.posts > .wp-block-query:last-child { flex: 2 1 23.75rem; }
.posts > .wp-block-query:first-child > .wp-block-post-template,
.posts > .wp-block-query:first-child > .wp-block-post-template > li { flex: 1 1 auto; display: flex; flex-direction: column; }
.posts > .wp-block-query:first-child .post-featured { flex: 1 1 auto; }
.post-list > li:nth-child(2) .post-compact__thumb { background: var(--color-mint-tint-2); }
/* WP: core/post-terms wrapper carries .tag / .post-compact__cat; the link inherits. */
.tag { display: inline-flex; line-height: var(--leading-body); }
.tag a, .post-compact__cat a { color: inherit; text-decoration: none; }
.tag a:hover, .post-compact__cat a:hover { color: var(--color-brand); }
.post-compact__cat a:hover { color: var(--color-brand-strong); }
.post-featured__title a, .post-compact__title a { display: inline; }
.post-featured__excerpt .wp-block-post-excerpt__excerpt { margin: 0; }
.post-featured__more.wp-block-read-more { text-decoration: underline; }
.post-compact__thumb .wp-block-post-featured-image { height: 100%; margin: 0; }
.post-featured__media > .wp-block-post-featured-image { aspect-ratio: inherit; }

/* ===================== Footer ===================== */
.site-footer { background: var(--color-footer); color: var(--color-footer-text); font-size: var(--text-small); }
.site-footer__inner { display: flex; flex-wrap: wrap; gap: var(--space-10) var(--space-16); padding-block: var(--space-16) var(--space-7); }
.site-footer__about { flex: 2 1 20rem; min-width: 0; }
.site-footer__name { margin-bottom: 10px; font-family: var(--font-display); font-size: 1.75rem; color: var(--color-on-brand); }
:root :where(.site-footer__about) .site-footer__name { margin-block-end: 10px; }
.site-footer__about p:last-child { max-width: 23.75rem; }
.site-footer__col { flex: 1 1 11.25rem; min-width: 0; }
.footer-label { margin-bottom: var(--space-2); font-size: 0.8125rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--color-mint-on-dark); }
:root :where(.site-footer__col) .footer-label { margin-block-end: var(--space-2); }
.site-footer__col ul { list-style: none; padding: 0; display: flex; flex-direction: column; gap: var(--space-2); }
.site-footer a { color: var(--color-navy-text); text-decoration: none; }
.site-footer a:hover { color: var(--color-on-brand); text-decoration: underline; }
.site-footer__bottom { padding-block: var(--space-5) var(--space-8); border-top: 1px solid var(--color-footer-line); font-size: var(--text-label); }
.site-footer :focus-visible { box-shadow: 0 0 0 3px var(--color-footer), 0 0 0 5px var(--color-mint-on-dark); }
/* WP: footer columns are core/navigation (vertical, no overlay). */
.site-footer__col .wp-block-navigation__container { flex-direction: column; align-items: flex-start; gap: var(--space-2); }
.site-footer__col .wp-block-navigation { gap: var(--space-2); }
.site-footer__col .wp-block-navigation-item__content { display: inline-block; padding: 0; line-height: var(--leading-body); }
.site-footer__col .wp-block-navigation-item { line-height: var(--leading-body); }

/* ===================== Breadcrumbs (posts, archives, pages) ===================== */
.breadcrumbs { font-size: var(--text-label); color: var(--color-muted); }
.breadcrumbs ol { display: flex; flex-wrap: wrap; gap: var(--space-1) var(--space-2); margin: 0; padding: 0; list-style: none; }
.breadcrumbs li { display: inline-flex; align-items: center; gap: var(--space-2); }
.breadcrumbs li + li::before { content: "/"; color: var(--color-line); }
.breadcrumbs a { color: var(--color-muted); text-decoration: none; font-weight: var(--weight-semibold); }
.breadcrumbs a:hover { color: var(--color-brand); }
.breadcrumbs [aria-current="page"] { color: var(--color-ink-2); }

/* ===================== Inner pages (single, page, archive, search, 404) ===================== */
.page-head { padding-block: var(--space-16) var(--space-10); }
.page-head .breadcrumbs { margin-bottom: var(--space-8); }
:root :where(.page-head) .breadcrumbs { margin-block-end: var(--space-8); }
.page-head__title {
	font-family: var(--font-display); font-weight: var(--weight-regular);
	font-size: var(--text-h1); line-height: 1.02; letter-spacing: var(--tracking-display);
}
:root :where(.page-head) .page-head__title { margin-block-end: var(--space-5); }
.page-head__lead { max-width: 41.25rem; font-size: var(--text-lead); color: var(--color-ink-2); }
.page-head__lead p { margin: 0; }
.page-head form.search { margin-top: var(--space-8); }
:root :where(.page-head) form.search { margin-block-start: var(--space-8); }

.section--listing { padding-block: 0 var(--space-24); }

/* Single post */
.single-head { padding-block: var(--space-14) var(--space-10); }
.single-head__inner { max-width: var(--measure); margin-inline: auto; }
.single-head .breadcrumbs { margin-bottom: var(--space-8); }
:root :where(.single-head__inner) .breadcrumbs { margin-block-end: var(--space-8); }
:root :where(.single-head__inner) .post-meta { margin-block-end: var(--space-5); }
.single-head__title {
	font-family: var(--font-display); font-weight: var(--weight-regular);
	font-size: clamp(2.25rem, 4.6vw, 3.5rem); line-height: 1.08; letter-spacing: var(--tracking-display);
}
:root :where(.single-head__inner) .single-head__title { margin-block-end: var(--space-5); }
.single-lead { font-size: var(--text-lead); color: var(--color-ink-2); }
.single-lead .wp-block-post-excerpt__excerpt { margin: 0; }
.single-media { max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); }
.single-media .wp-block-post-featured-image { margin: 0; border-radius: var(--radius-2xl); overflow: hidden; }
.single-media .wp-block-post-featured-image img { width: 100%; border-radius: var(--radius-2xl); }

.entry-content:not(.sections-content) {
	max-width: calc(var(--measure) + 2 * var(--gutter)); margin-inline: auto; padding: var(--space-12) var(--gutter) 0;
	font-size: clamp(1.0625rem, 1rem + 0.25vw, 1.125rem); line-height: 1.7; color: var(--color-ink-2);
}
.entry-content:not(.sections-content) > * { max-width: var(--measure); margin-inline: auto; }
.entry-content:not(.sections-content) > * + * { margin-block-start: 1.25em; }
.entry-content:not(.sections-content) h2 { margin-block-start: 1.8em; font-size: clamp(1.75rem, 3vw, 2.25rem); color: var(--color-ink); }
.entry-content:not(.sections-content) h3 { margin-block-start: 1.6em; color: var(--color-ink); }
.entry-content:not(.sections-content) h4 { color: var(--color-ink); }
.entry-content:not(.sections-content) strong { color: var(--color-ink); }
.entry-content:not(.sections-content) ul, .entry-content:not(.sections-content) ol { padding-left: 1.4em; }
.entry-content:not(.sections-content) li + li { margin-top: var(--space-2); }
.entry-content:not(.sections-content) li::marker { color: var(--color-brand); }
.entry-content:not(.sections-content) img { border-radius: var(--radius-lg); }
.entry-content:not(.sections-content) figcaption { margin-top: var(--space-2); font-size: var(--text-small); color: var(--color-muted); }
.entry-content:not(.sections-content) blockquote { margin-inline: 0; padding-left: var(--space-6); border-left: 3px solid var(--color-mint); color: var(--color-ink); }
.entry-content:not(.sections-content) table { width: 100%; border-collapse: collapse; font-size: var(--text-small); }
.entry-content:not(.sections-content) th, .entry-content:not(.sections-content) td { padding: var(--space-3); border-bottom: 1px solid var(--color-line); text-align: left; }
.entry-content:not(.sections-content) .alignwide { max-width: var(--container); }
.entry-content:not(.sections-content) .alignfull { max-width: none; }

.notice-box {
	max-width: var(--measure); margin-inline: auto;
	display: flex; gap: var(--space-4); align-items: flex-start;
	padding: var(--space-5) var(--space-6); border-radius: var(--radius-lg);
	background: var(--color-brand-tint); color: var(--color-brand-ink); font-size: var(--text-small);
}
.notice-box svg { flex: 0 0 auto; color: var(--color-brand); }
.notice-wrap { padding: var(--space-12) var(--gutter) 0; }

.section--related { margin-top: var(--space-20); padding-block: var(--space-20) var(--space-24); background: var(--color-surface); border-top: 1px solid var(--color-line); }
.post-related { display: grid; grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr)); gap: var(--space-4); list-style: none; padding: 0; }
.post-related > li { display: flex; }
.post-related .post-compact { flex: 1 1 auto; }

/* Archive / blog / search grid: first card large, then three columns. */
.post-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(18.75rem, 1fr)); gap: var(--space-6); list-style: none; padding: 0; }
.post-grid > li { display: flex; min-width: 0; }
.post-grid .post-featured { flex: 1 1 auto; }
.post-grid .post-featured__media { aspect-ratio: 16 / 10; }
.post-grid .post-featured__body { padding: var(--space-6); }
.post-grid .post-featured__title { font-size: 1.5rem; }
body:not(.paged) .post-grid > li:first-child { grid-column: 1 / -1; }
body:not(.paged) .post-grid > li:first-child .post-featured__title { font-size: var(--text-h3-display); }
@media (min-width: 52rem) {
	body:not(.paged) .post-grid > li:first-child .post-featured { flex-direction: row; }
	body:not(.paged) .post-grid > li:first-child .post-featured__media { flex: 1 1 55%; aspect-ratio: auto; min-height: 22rem; }
	body:not(.paged) .post-grid > li:first-child .post-featured__body { flex: 1 1 45%; padding: var(--space-10); justify-content: center; }
}

.pagination { margin-top: var(--space-12); gap: var(--space-2); font-weight: var(--weight-semibold); }
:root :where(.section--listing) .pagination { margin-block-start: var(--space-12); }
.pagination a, .pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 44px; min-height: 44px; padding: 0 var(--space-3);
	border-radius: var(--radius-md); text-decoration: none;
}
.pagination a:hover { background: var(--color-brand-tint); }
.pagination .page-numbers.current { background: var(--color-brand); color: var(--color-on-brand); }

.empty-state { max-width: 41.25rem; color: var(--color-ink-2); }

/* ===================== Motion safety ===================== */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
	.topic:hover { transform: none; }
}

/* ===================== Small screens ===================== */
@media (max-width: 40rem) {
	.hero__inner { padding-block: var(--space-14) var(--space-12); }
	.panel { padding: var(--space-6); }
	.post-featured__body { padding: var(--space-6); }
	.post-compact__thumb { flex-basis: 84px; min-height: 84px; }
	.diag__body { padding: 0; }
	.page-head { padding-block: var(--space-10) var(--space-8); }
	.single-head { padding-block: var(--space-10) var(--space-8); }
}

/* 404 */
.page-head__actions { gap: var(--space-3); }
:root :where(.page-head) .page-head__actions { margin-block-start: var(--space-6); }

/* Tap targets ≥ 44px for small text links without changing the mockup layout. */
.popular a,
.tag a,
.post-compact__cat a { position: relative; }
.popular a::after,
.tag a::after,
.post-compact__cat a::after { content: ""; position: absolute; inset: -0.75rem 0; }

/* ===================== Subpages (o-nas, poz, specjalistyka, diagnostyka, dla-pacjenta) ===================== */
.entry-content:not(.sections-content) .page-lead { font-size: var(--text-lead); line-height: 1.6; color: var(--color-ink-2); }
.entry-content:not(.sections-content) .page-lead strong { color: var(--color-ink); }
.entry-content:not(.sections-content) .link-list,
.entry-content:not(.sections-content) .pill-list,
.entry-content:not(.sections-content) .checklist { padding-left: 0; }
.entry-content:not(.sections-content) .link-list li + li,
.entry-content:not(.sections-content) .pill-list li + li,
.entry-content:not(.sections-content) .checklist li + li { margin-top: 0; }
.entry-content:not(.sections-content) .checklist { row-gap: var(--space-5); }
.entry-content:not(.sections-content) .checklist li { font-size: var(--text-body); line-height: var(--leading-body); }
.entry-content:not(.sections-content) .checklist strong { color: var(--color-ink); }
.entry-content:not(.sections-content) .checklist a { color: var(--color-brand); }
.entry-content:not(.sections-content) .pill-list a { color: inherit; }
.entry-content:not(.sections-content) .faq { display: flex; flex-direction: column; gap: var(--space-3); }
.entry-content:not(.sections-content) .faq > * + * { margin-block-start: 0; }
.entry-content:not(.sections-content) .faq__item summary { color: var(--color-ink); }
.entry-content:not(.sections-content) .faq__item p { margin-top: var(--space-3); }

/* Clinic names whose page is not published yet are shown without a link (functions.php). */
.link-list__text {
	display: flex; align-items: center; min-height: 52px;
	border-bottom: 1px solid var(--color-line-soft);
	color: var(--color-ink); font-weight: var(--weight-semibold);
}

/* Footer bottom line: copyright + site credit */
.site-footer__bottom { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-8); justify-content: space-between; }
.site-footer__credit a { text-decoration: underline; text-decoration-color: var(--color-footer-line); }

/* ===================== Subpages built from sections (template page-sections) ===================== */
.page-hero {
	background:
		radial-gradient(1000px 420px at 90% 0%, var(--color-brand-tint-2) 0%, transparent 60%),
		radial-gradient(700px 360px at 0% 100%, var(--color-mint-glow) 0%, transparent 60%),
		var(--color-bg);
	border-bottom: 1px solid var(--color-line);
}
.page-hero__inner { padding-block: var(--space-10) var(--space-16); }
.page-hero .breadcrumbs { margin-bottom: var(--space-10); }
:root :where(.page-hero__inner) .breadcrumbs { margin-block-end: var(--space-10); }
:root :where(.page-hero__inner) .pill-badge { margin-block-end: var(--space-5); }
.page-hero__title {
	max-width: 52rem;
	font-family: var(--font-display); font-weight: var(--weight-regular);
	font-size: clamp(2.5rem, 5vw, 4rem); line-height: 1.04; letter-spacing: var(--tracking-display);
}
:root :where(.page-hero__inner) .page-hero__title { margin-block-end: var(--space-5); }
.page-hero__lead { max-width: 40rem; font-size: var(--text-lead); line-height: 1.55; color: var(--color-ink-2); }
.page-hero__lead .wp-block-post-excerpt__excerpt { margin: 0; }

.section--sub { padding-block: var(--space-16) 0; }
.sections-content > :last-child:not(.section--dark):not(.section--faq) { padding-block-end: var(--space-20); }
.sections-content > .section--dark { margin-block-start: var(--space-20); }
.sections-content > .section--faq:first-child { padding-block-start: var(--space-16); }
.section--sub .section-head { margin-bottom: var(--space-8); }
.section--sub .clinics__list .checklist { row-gap: var(--space-5); }
.section--sub .clinics__list .checklist li { font-size: var(--text-body); color: var(--color-ink-2); }
.section--sub .checklist a { color: var(--color-brand); }
.section--sub .pill-list a { color: inherit; text-decoration: none; border-bottom: 1px solid var(--color-brand-tint-3); }
.section--sub .pill-list a:hover { color: var(--color-brand); }
.section--sub .clinics__poz a { color: var(--color-brand-strong); }
.section--sub .diag__body p:not([class]) { color: var(--color-ink-2); }
:root :where(.section--sub .diag__body) > p:not([class]) { margin-block-start: var(--space-4); }

/* Feature cards (O nas) */
.feature-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr)); gap: var(--space-5); }
.feature-card {
	padding: var(--space-8); border-radius: var(--radius-2xl);
	background: var(--color-surface); border: 1px solid var(--color-line);
	color: var(--color-ink-2);
}
.feature-card__icon {
	display: flex; align-items: center; justify-content: center;
	width: 56px; height: 56px; border-radius: 16px;
	background: var(--color-brand-tint); color: var(--color-brand);
}
.feature-card__title { margin-top: var(--space-6); margin-bottom: var(--space-3); color: var(--color-ink); }
:root :where(.feature-card) > .feature-card__title { margin-block: var(--space-6) var(--space-3); }

/* "Zobacz też" – tiles of the other subpages */
.section--more { padding-block: var(--space-20) var(--space-24); background: var(--color-surface); border-top: 1px solid var(--color-line); }
.section--more .topic { background: var(--color-bg); }

/* Photo placeholders: verbena motif from the logo until real photos arrive. */
.ph { position: relative; }
.ph:not(:has(img))::after {
	content: ""; position: absolute; inset: 0; margin: auto;
	width: min(38%, 11rem); aspect-ratio: 1;
	background: color-mix(in oklch, var(--color-surface) 75%, transparent);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M20 34V18'/%3E%3Ccircle cx='20' cy='11.5' r='4' fill='currentColor' stroke='none'/%3E%3Ccircle cx='12.5' cy='16' r='3.4' fill='currentColor' stroke='none'/%3E%3Ccircle cx='27.5' cy='16' r='3.4' fill='currentColor' stroke='none'/%3E%3Cpath d='M20 27c-3.6 0-6.6-1.9-7.8-4.8'/%3E%3Cpath d='M20 30c3.2 0 5.8-1.6 6.9-4.2'/%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 40 40' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M20 34V18'/%3E%3Ccircle cx='20' cy='11.5' r='4' fill='currentColor' stroke='none'/%3E%3Ccircle cx='12.5' cy='16' r='3.4' fill='currentColor' stroke='none'/%3E%3Ccircle cx='27.5' cy='16' r='3.4' fill='currentColor' stroke='none'/%3E%3Cpath d='M20 27c-3.6 0-6.6-1.9-7.8-4.8'/%3E%3Cpath d='M20 30c3.2 0 5.8-1.6 6.9-4.2'/%3E%3C/svg%3E") center / contain no-repeat;
	pointer-events: none;
}
.post-compact__thumb:not(:has(img)) { position: relative; }

@media (max-width: 40rem) {
	.page-hero__inner { padding-block: var(--space-8) var(--space-12); }
	.page-hero .breadcrumbs { margin-bottom: var(--space-6); }
	.section--sub { padding-block-start: var(--space-12); }
	.feature-card { padding: var(--space-6); }
}

/* Subpage section variants (1.2) */
.feature-grid--3 { grid-template-columns: repeat(auto-fit, minmax(17.5rem, 1fr)); }
.feature-grid--compact { grid-template-columns: repeat(auto-fit, minmax(19rem, 1fr)); gap: var(--space-4); }
.feature-card p + p { margin-top: var(--space-3); }
:root :where(.feature-card) > p + p { margin-block-start: var(--space-3); }
.feature-card--compact { padding: var(--space-6); border-radius: var(--radius-xl); }
.feature-card--compact .feature-card__icon { width: 48px; height: 48px; border-radius: 14px; }
.feature-card--compact .feature-card__icon svg { width: 24px; height: 24px; }
.feature-card--compact .feature-card__title { margin-top: var(--space-4); font-size: var(--text-h4); }
:root :where(.feature-card--compact) > .feature-card__title { margin-block: var(--space-4) var(--space-2); }
.feature-card--compact p { font-size: var(--text-small); }
.feature-card a { color: var(--color-brand); }
.diag--reverse .diag__body { padding: var(--space-4) 0 var(--space-4) var(--space-4); }
.section--sub .faq-layout { padding-block: var(--space-4) 0; }
@media (max-width: 40rem) {
	.diag--reverse { flex-direction: column-reverse; }
	.diag--reverse .diag__body { padding: 0; }
}
.feature-grid--compact { grid-template-columns: repeat(auto-fit, minmax(min(100%, 30rem), 1fr)); }
.feature-card--compact { display: grid; grid-template-columns: auto 1fr; column-gap: var(--space-5); align-items: start; }
.feature-card--compact .feature-card__icon { grid-row: 1 / span 2; }
.feature-card--compact .feature-card__title,
:root :where(.feature-card--compact) > .feature-card__title { margin: 0 0 var(--space-2); }
.feature-card--compact { grid-template-rows: auto 1fr; }
.feature-grid--3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); }

/* ===================== Search: live suggestions ===================== */
.wp-block-search.has-suggest { position: relative; }
.search-suggest {
	position: absolute; z-index: 50; top: calc(100% + var(--space-2)); left: 0; right: 0;
	max-height: min(70vh, 32rem); overflow-y: auto;
	margin: 0; padding: var(--space-2); list-style: none;
	background: var(--color-surface); border: 1px solid var(--color-line);
	border-radius: var(--radius-lg); box-shadow: var(--shadow-float);
	text-align: left;
}
.search-suggest[hidden] { display: none; }
.search-suggest__item {
	display: grid; grid-template-columns: 1fr auto; gap: 2px var(--space-3);
	padding: var(--space-3) var(--space-4); border-radius: var(--radius-md);
	color: var(--color-ink); cursor: pointer;
	transition: background-color var(--duration-fast) var(--ease-standard);
}
.search-suggest__item:hover,
.search-suggest__item[aria-selected="true"] { background: var(--color-brand-tint); }
.search-suggest__item[aria-selected="true"] { box-shadow: inset 3px 0 0 var(--color-brand); }
.search-suggest__title { grid-column: 1; grid-row: 1; font-weight: var(--weight-bold); line-height: var(--leading-snug); }
.search-suggest__type {
	grid-column: 2; grid-row: 1; align-self: start;
	padding: 2px 8px; border-radius: var(--radius-sm);
	background: var(--color-bg); color: var(--color-muted);
	font-size: 0.75rem; font-weight: var(--weight-semibold); white-space: nowrap;
}
.search-suggest__snippet { grid-column: 1 / -1; font-size: var(--text-small); line-height: 1.5; color: var(--color-ink-2); }
.search-suggest mark,
.search-result mark { background: var(--color-mint-tint); color: inherit; border-radius: 3px; padding: 0 1px; }
.search-suggest__all {
	display: block; margin-top: var(--space-1); border-top: 1px solid var(--color-line-soft); border-radius: 0 0 var(--radius-md) var(--radius-md);
	color: var(--color-brand); font-weight: var(--weight-semibold); font-size: var(--text-small);
}
.search-suggest__all.is-empty { color: var(--color-muted); font-weight: var(--weight-regular); cursor: default; }
.search-suggest__all.is-empty:hover { background: transparent; }
.wp-block-search.is-loading::after {
	content: ""; position: absolute; right: 7.5rem; top: 50%; width: 16px; height: 16px; margin-top: -8px;
	border: 2px solid var(--color-line); border-top-color: var(--color-brand); border-radius: 50%;
	animation: verbena-spin 0.7s linear infinite;
}
@keyframes verbena-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .wp-block-search.is-loading::after { animation: none; } }

/* ===================== Search: results page ===================== */
.page-hero form.search { margin-top: var(--space-8); }
:root :where(.page-hero__inner) form.search { margin-block-start: var(--space-8); }
.section--results { padding-block: var(--space-12) var(--space-24); }
.search-list { display: flex; flex-direction: column; gap: var(--space-4); max-width: 52rem; list-style: none; padding: 0; }
.search-result {
	display: flex; flex-direction: column; gap: var(--space-2);
	padding: var(--space-6) var(--space-7); border-radius: var(--radius-xl);
	background: var(--color-surface); border: 1px solid var(--color-line);
	transition: border-color var(--duration-fast) var(--ease-standard);
}
.search-result:hover { border-color: var(--color-brand); }
.search-result .post-meta:empty { display: none; }
li.type-page .search-result .post-meta::before {
	content: "Strona"; padding: 4px 10px; border-radius: var(--radius-sm);
	background: var(--color-bg); color: var(--color-muted); font-weight: var(--weight-bold);
}
li.type-page .search-result .post-meta { display: flex; }
.search-result__title { font-family: var(--font-display); font-weight: var(--weight-medium); font-size: 1.625rem; line-height: 1.2; letter-spacing: normal; }
.search-result__title a { color: var(--color-ink); text-decoration: none; }
.search-result__title a:hover { color: var(--color-brand); }
.search-result__excerpt { color: var(--color-ink-2); }
.search-result__excerpt .wp-block-post-excerpt__excerpt { margin: 0; }
.empty-state-box {
	max-width: 52rem; padding: var(--space-8); border-radius: var(--radius-2xl);
	background: var(--color-surface); border: 1px solid var(--color-line); color: var(--color-ink-2);
}
.empty-state-box__title { margin-bottom: var(--space-3); font-size: var(--text-h3-display); }
:root :where(.empty-state-box) > .empty-state-box__title { margin-block-end: var(--space-3); }
:root :where(.empty-state-box) > .pill-list { margin-block-start: var(--space-5); }
.empty-state-box .pill-list li { background: var(--color-brand-tint); }
.empty-state-box .pill-list a { color: inherit; text-decoration: none; }

/* ===================== Mobile polish (1.3.3) ===================== */
/* Cards with the image on the right: keep the row/wrap layout, only reorder
   (column-reverse turned flex-basis into a height and pushed the text off-screen). */
@media (max-width: 40rem) {
	.diag--reverse { flex-direction: row; }
	.diag--reverse .diag__media { order: -1; }
}

/* Single post: no empty gap when there is no featured image. */
.single-media:not(:has(img)) { display: none; }

/* Breadcrumbs wrap as text, the separator stays with the next item. */
.breadcrumbs ol { display: block; }
.breadcrumbs li { display: inline; }
.breadcrumbs li + li::before { margin-inline: var(--space-2); }

@media (max-width: 40rem) {
	/* Search: field and button in one row. */
	form.search { flex-wrap: nowrap; gap: var(--space-2); padding: 6px; }
	form.search .wp-block-search__input { flex: 1 1 0; min-width: 0; font-size: 1rem; text-overflow: ellipsis; }
	form.search .wp-block-search__button { flex: 0 0 auto; padding: 0 var(--space-4); }
	form.search.wp-block-search::before { margin-left: var(--space-2); }
	.wp-block-search.is-loading::after { right: 6rem; }

	/* Badge on one line. */
	.pill-badge { font-size: 0.75rem; gap: var(--space-2); padding: 5px 12px 5px 8px; }

	/* Calmer vertical rhythm. */
	.section--clinics { padding-block: var(--space-16) var(--space-8); }
	.section--diag { padding-block: var(--space-10) var(--space-8); }
	.section--topics,
	.section--dark,
	.section--faq { padding-block: var(--space-16); }
	.section--posts { padding-block: var(--space-16) var(--space-20); }
	.section--more { padding-block: var(--space-14) var(--space-16); }
	.section--results { padding-block: var(--space-8) var(--space-16); }
	.section-head { margin-bottom: var(--space-6); }
	:root :where([class*="section--"]) .section-head { margin-block-end: var(--space-6); }
	.sections-content > .section--dark { margin-block-start: var(--space-14); }
	.sections-content > :last-child:not(.section--dark):not(.section--faq) { padding-block-end: var(--space-14); }
	.hero__inner { gap: var(--space-10); }
	.faq-layout { gap: var(--space-8); }
	.diag { gap: var(--space-6); padding: var(--space-4); }

	/* Clinic cards: icon above the title. */
	.feature-card--compact { display: block; }
	:root :where(.feature-card--compact) > .feature-card__title,
	.feature-card--compact .feature-card__title { margin: var(--space-4) 0 var(--space-2); }

	/* Single post head. */
	.entry-content:not(.sections-content) { padding-top: var(--space-6); }
	.notice-wrap { padding-top: var(--space-8); }
	.section--related { margin-top: var(--space-14); padding-block: var(--space-14) var(--space-16); }
}

/* Grids never ask for more than the available width (320px phones). */
.feature-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); }
.feature-grid--3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); }
.feature-grid--compact { grid-template-columns: repeat(auto-fit, minmax(min(100%, 30rem), 1fr)); }
.topic-grid,
.guide-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 16.875rem), 1fr)); }
.post-related { grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); }
.post-grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 18.75rem), 1fr)); }
.link-list { grid-template-columns: repeat(auto-fit, minmax(min(100%, 13.75rem), 1fr)); }
.checklist { grid-template-columns: repeat(auto-fit, minmax(min(100%, 13.125rem), 1fr)); }
.breadcrumbs li + li::before { color: var(--color-muted); opacity: 0.55; }

/* ===================== Mobile menu (1.3.4) ===================== */
/* Clear "Menu" button: three lines, outline and a visible label. */
.main-nav .wp-block-navigation__responsive-container-open {
	gap: var(--space-2); min-height: 44px; padding: 0 var(--space-4) 0 var(--space-3);
	border: 1px solid var(--color-line); border-radius: var(--radius-pill);
	background: var(--color-surface); color: var(--color-ink);
	font-family: var(--font-body); font-size: var(--text-small); font-weight: var(--weight-semibold);
	transition: border-color var(--duration-fast) var(--ease-standard), background-color var(--duration-fast) var(--ease-standard);
}
.main-nav .wp-block-navigation__responsive-container-open::after { content: "Menu"; }
.main-nav .wp-block-navigation__responsive-container-open:hover { border-color: var(--color-brand); background: var(--color-brand-tint); }
.main-nav .wp-block-navigation__responsive-container-open svg { width: 22px; height: 22px; }

/* Overlay menu also on large phones and tablets (WordPress switches only below 600px). */
@media (min-width: 600px) and (max-width: 62.4375rem) {
	.main-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: inline-flex; }
	.main-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
	.main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { display: inline-flex; }
}

/* Opened menu: full-width rows with dividers, big tap targets. */
.main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: var(--space-20); }
.main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { width: 100%; gap: 0; }
.main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { width: 100%; border-bottom: 1px solid var(--color-line-soft); }
.main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	display: flex; align-items: center; justify-content: space-between; width: 100%;
	min-height: 60px; padding-block: var(--space-3);
	font-size: var(--text-lead); font-weight: var(--weight-semibold);
}
.main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content::after { content: "→"; color: var(--color-brand); }
.main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content[aria-current="page"] { color: var(--color-brand); }
.main-nav .wp-block-navigation__responsive-container-close {
	border: 1px solid var(--color-line); border-radius: var(--radius-pill); background: var(--color-surface);
}

/* ===================== Back to top (1.4) ===================== */
.to-top {
	position: fixed; z-index: 90; right: var(--space-5); bottom: var(--space-5);
	display: none; align-items: center; justify-content: center;
	width: 48px; height: 48px; border-radius: 50%;
	background: var(--color-brand); color: var(--color-on-brand);
	box-shadow: var(--shadow-float), 0 4px 12px color-mix(in oklch, var(--color-brand-strong) 25%, transparent);
	text-decoration: none;
	opacity: 0; transform: translateY(12px); visibility: hidden;
	transition: opacity var(--duration-base) var(--ease-out), transform var(--duration-base) var(--ease-out), visibility var(--duration-base), background-color var(--duration-fast) var(--ease-standard);
}
.has-to-top .to-top { display: inline-flex; }
.to-top.is-visible { opacity: 1; transform: none; visibility: visible; }
.to-top:hover { background: var(--color-brand-strong); color: var(--color-on-brand); }
.to-top:focus-visible { box-shadow: var(--focus-ring); border-radius: 50%; }
@media (max-width: 40rem) { .to-top { right: var(--space-4); bottom: var(--space-4); width: 44px; height: 44px; } }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
