/* Kopernik Premium - style komponentow.
   Tokeny kolorow: jasny, ciemny (systemowy lub reczny), wysoki kontrast. */

:root {
	--kp-bg: #f5f8fc;
	--kp-surface: #ffffff;
	--kp-surface-2: #e8f2fb;
	--kp-ink: #13223f;
	--kp-ink-soft: #45546d;
	--kp-line: #d4dfeb;
	--kp-navy: #0b6cbf;
	--kp-navy-2: #0a5aa3;
	--kp-on-navy: #ffffff;
	--kp-blue: #0b96d9;
	--kp-red: #d63a4f;
	--kp-gold: #f6b720;
	--kp-sun: #d63a4f;
	--kp-sun-ink: #b42a40;
	--kp-on-sun: #ffffff;
	--kp-primary: #0b6cbf;
	--kp-on-primary: #ffffff;
	--kp-link: #0a5fa8;
	--kp-focus: #d63a4f;
	--kp-scrim: 6 30 66;
	--kp-shadow: 0 1px 2px rgb(11 60 110 / .06), 0 10px 28px -14px rgb(11 60 110 / .28);
	--kp-shadow-lg: 0 2px 6px rgb(11 60 110 / .06), 0 24px 60px -24px rgb(11 60 110 / .38);
	--kp-r: 14px;
	--kp-r-sm: 10px;
	--kp-scale: 1;
	--kp-ease: cubic-bezier(.16, 1, .3, 1);
	--kp-head-h: 72px;
	--kp-gutter: clamp(1rem, 4vw, 2.5rem);
	color-scheme: light;
}

@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) {
		--kp-bg: #0b1526;
		--kp-surface: #101d33;
		--kp-surface-2: #16263f;
		--kp-ink: #e8eef7;
		--kp-ink-soft: #a9b6ca;
		--kp-line: #26364f;
		--kp-navy: #0d4a8a;
		--kp-navy-2: #12579c;
		--kp-sun: #d63a4f;
		--kp-sun-ink: #ff8a94;
		--kp-primary: #8cc4ff;
		--kp-on-primary: #0b1526;
		--kp-link: #8cc4ff;
		--kp-focus: #ffcc4d;
		--kp-shadow: 0 1px 2px rgb(0 0 0 / .3), 0 12px 30px -16px rgb(0 0 0 / .6);
		--kp-shadow-lg: 0 2px 6px rgb(0 0 0 / .3), 0 24px 60px -24px rgb(0 0 0 / .7);
		color-scheme: dark;
	}
}

:root[data-theme="dark"] {
	--kp-bg: #0b1526;
	--kp-surface: #101d33;
	--kp-surface-2: #16263f;
	--kp-ink: #e8eef7;
	--kp-ink-soft: #a9b6ca;
	--kp-line: #26364f;
	--kp-navy: #0d4a8a;
	--kp-navy-2: #12579c;
	--kp-sun: #d63a4f;
	--kp-sun-ink: #ff8a94;
	--kp-primary: #8cc4ff;
	--kp-on-primary: #0b1526;
	--kp-link: #8cc4ff;
	--kp-focus: #ffcc4d;
	--kp-shadow: 0 1px 2px rgb(0 0 0 / .3), 0 12px 30px -16px rgb(0 0 0 / .6);
	--kp-shadow-lg: 0 2px 6px rgb(0 0 0 / .3), 0 24px 60px -24px rgb(0 0 0 / .7);
	color-scheme: dark;
}

:root[data-contrast="high"] {
	--kp-bg: #ffffff;
	--kp-surface: #ffffff;
	--kp-surface-2: #f1f1f1;
	--kp-ink: #000000;
	--kp-ink-soft: #1a1a1a;
	--kp-line: #000000;
	--kp-navy: #000000;
	--kp-navy-2: #000000;
	--kp-on-navy: #ffff00;
	--kp-sun: #ffff00;
	--kp-sun-ink: #000000;
	--kp-on-sun: #000000;
	--kp-primary: #000000;
	--kp-on-primary: #ffff00;
	--kp-link: #0000c8;
	--kp-focus: #d40000;
	--kp-shadow: none;
	--kp-shadow-lg: none;
	color-scheme: light;
}
:root[data-contrast="high"][data-theme="dark"] {
	--kp-bg: #000000;
	--kp-surface: #000000;
	--kp-surface-2: #111111;
	--kp-ink: #ffff00;
	--kp-ink-soft: #ffff00;
	--kp-line: #ffff00;
	--kp-link: #00ffff;
	--kp-primary: #ffff00;
	--kp-on-primary: #000000;
	color-scheme: dark;
}

/* ---------- Podstawy ---------- */

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }

html {
	font-size: calc(100% * var(--kp-scale));
	scroll-padding-top: calc(var(--kp-head-h) + 1rem);
	-webkit-text-size-adjust: 100%;
}
body {
	background: var(--kp-bg);
	color: var(--kp-ink);
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	overflow-x: clip;
}
@media (max-width: 899px) {
	body { padding-bottom: calc(68px + env(safe-area-inset-bottom)); }
}
img { max-width: 100%; height: auto; }
::selection { background: var(--kp-sun); color: var(--kp-on-sun); }
::placeholder { color: var(--kp-ink-soft); opacity: 1; }
input, textarea { caret-color: var(--kp-sun-ink); }
li, dd, figcaption { text-wrap: pretty; }
html { -webkit-tap-highlight-color: transparent; }
a, button, input, select, textarea, summary, label { touch-action: manipulation; }
:focus-visible {
	outline: 3px solid var(--kp-focus);
	outline-offset: 3px;
	border-radius: 4px;
}
h1, h2, h3, h4 { text-wrap: balance; font-optical-sizing: auto; }
p { text-wrap: pretty; }
a { text-underline-offset: .18em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0);
	white-space: nowrap; border: 0;
}

.kp-wrap {
	width: 100%;
	max-width: calc(1240px + 2 * var(--kp-gutter));
	margin-inline: auto;
	padding-inline: var(--kp-gutter);
	box-sizing: border-box;
}
.kp-section { padding-block: clamp(3.5rem, 8vw, 6.5rem); }
.kp-main { margin-block: 0 !important; }
.wp-site-blocks > * { margin-block-start: 0; }
.kp-site-header, .kp-site-footer { margin: 0 !important; }

.kp-icon { flex: none; display: inline-block; vertical-align: middle; }

.kp-skip {
	position: absolute; left: 1rem; top: -100px; z-index: 200;
	background: var(--kp-sun); color: var(--kp-on-sun);
	padding: .75rem 1.1rem; border-radius: var(--kp-r-sm); font-weight: 700;
}
.kp-skip:focus { top: 1rem; }

/* ---------- Przyciski i linki ---------- */

.kp-btn,
.wp-element-button,
.wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center; gap: .55rem;
	min-height: 48px;
	padding: .8rem 1.35rem;
	border-radius: var(--kp-r-sm);
	border: 2px solid transparent;
	font-family: var(--wp--preset--font-family--body);
	font-weight: 700; font-size: 1rem; line-height: 1.2;
	text-decoration: none; white-space: nowrap;
	cursor: pointer;
	transition: transform .25s var(--kp-ease), background-color .2s, box-shadow .25s, color .2s, border-color .2s;
}
.kp-btn:active, .wp-element-button:active { transform: translateY(1px) scale(.985); }
.kp-btn--lg { min-height: 56px; padding-inline: 1.6rem; font-size: 1.0625rem; }
.kp-btn--sm { min-height: 40px; padding: .5rem .9rem; font-size: .9375rem; }
.kp-btn--sun { background: var(--kp-sun); color: var(--kp-on-sun); }
.kp-btn--sun:hover { background: color-mix(in srgb, var(--kp-sun) 86%, #000); box-shadow: 0 10px 24px -12px rgb(214 58 79 / .6); }
.kp-btn--navy, .wp-element-button, .wp-block-button__link { background: var(--kp-primary); color: var(--kp-on-primary); }
.kp-btn--navy:hover, .wp-block-button__link:hover { background: color-mix(in srgb, var(--kp-primary) 86%, var(--kp-sun)); color: var(--kp-on-primary); }
.kp-btn--ghost, .is-style-outline .wp-block-button__link { background: transparent; color: var(--kp-ink); border-color: var(--kp-line); }
.kp-btn--ghost:hover, .is-style-outline .wp-block-button__link:hover { border-color: var(--kp-ink); background: var(--kp-surface); color: var(--kp-ink); }
.kp-btn--glass {
	color: #fff;
	background: rgb(255 255 255 / .12);
	border-color: rgb(255 255 255 / .55);
	-webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
}
.kp-btn--glass:hover { background: rgb(255 255 255 / .22); border-color: #fff; }

.kp-link-arrow {
	display: inline-flex; align-items: center; gap: .4rem;
	font-weight: 700; color: var(--kp-ink); text-decoration: none;
}
.kp-link-arrow .kp-icon { transition: transform .3s var(--kp-ease); color: var(--kp-sun-ink); }
.kp-link-arrow:hover { text-decoration: underline; }
.kp-link-arrow:hover .kp-icon { transform: translateX(4px); }
.kp-link-plain {
	display: inline-flex; align-items: center; gap: .4rem;
	color: var(--kp-ink-soft); font-weight: 600; font-size: .9375rem;
	background: none; border: 0; padding: 0; cursor: pointer; font-family: inherit;
	text-decoration: underline; text-decoration-color: var(--kp-line);
}
.kp-link-plain:hover { color: var(--kp-ink); text-decoration-color: currentColor; }

.kp-icon-btn {
	display: inline-grid; place-items: center;
	width: 44px; height: 44px;
	border-radius: var(--kp-r-sm);
	border: 0; background: transparent; color: var(--kp-ink);
	cursor: pointer;
	transition: background-color .2s, color .2s;
}
.kp-icon-btn:hover { background: var(--kp-surface-2); }
.kp-icon-btn--line { border: 1.5px solid var(--kp-line); }

.kp-head {
	display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between;
	gap: .75rem 2rem;
	margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
}
.kp-head h2 { margin: 0; font-size: var(--wp--preset--font-size--xx-large); }

/* ---------- Komunikat i pasek narzedzi ---------- */

.kp-notice {
	background: linear-gradient(90deg, #fde9ec 0%, #fff3df 55%, #e6f3fc 100%);
	color: var(--kp-ink); font-size: .9375rem; border-bottom: 1px solid #f5d3d9;
}
.kp-notice .kp-icon { color: var(--kp-red); }
.kp-notice a { color: var(--kp-sun-ink) !important; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .kp-notice { background: linear-gradient(90deg, #3a1a26, #2f2618 55%, #102a44); border-color: #4a2531; } }
:root[data-theme="dark"] .kp-notice { background: linear-gradient(90deg, #3a1a26, #2f2618 55%, #102a44); border-color: #4a2531; }
:root[data-contrast="high"] .kp-notice { background: var(--kp-surface); }
@media (max-width: 599px) { .kp-notice { font-size: .8125rem; line-height: 1.4; } }
.kp-notice__inner { display: flex; align-items: center; gap: .75rem; padding-block: .55rem; }
.kp-notice p { margin: 0; flex: 1; }
.kp-notice a { color: inherit; font-weight: 700; }
.kp-notice__close { background: none; border: 0; color: inherit; cursor: pointer; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 8px; }
.kp-notice__close:hover { background: rgb(0 0 0 / .08); }

.kp-utility {
	background: var(--kp-navy); color: var(--kp-on-navy);
	font-size: .875rem;
	display: none;
}
@media (min-width: 900px) { .kp-utility { display: block; } }
.kp-utility__inner { display: flex; justify-content: space-between; gap: 1.5rem; min-height: 38px; align-items: center; }
.kp-utility ul { display: flex; gap: 1.5rem; list-style: none; margin: 0; padding: 0; align-items: center; }
.kp-utility li { display: inline-flex; align-items: center; gap: .4rem; }
.kp-utility a { color: inherit; text-decoration: none; display: inline-flex; align-items: center; gap: .4rem; }
.kp-utility a:hover { text-decoration: underline; }
.kp-utility .kp-icon { opacity: .8; }
.kp-bip { font-weight: 700; }
@media (max-width: 1199px) { .kp-hide-md { display: none !important; } }

/* ---------- Naglowek ---------- */

.kp-header {
	position: sticky; top: 0; z-index: 50;
	background: color-mix(in srgb, var(--kp-bg) 88%, transparent);
	-webkit-backdrop-filter: saturate(160%) blur(14px); backdrop-filter: saturate(160%) blur(14px);
	border-bottom: 1px solid transparent;
	transition: border-color .3s, box-shadow .3s;
}
.admin-bar .kp-header { top: var(--wp-admin--admin-bar--height, 0px); }
.kp-header.is-stuck { border-bottom-color: var(--kp-line); box-shadow: 0 8px 24px -20px rgb(11 60 110 / .5); }
.kp-header__inner { display: flex; align-items: center; gap: 1.25rem; min-height: var(--kp-head-h); }

.kp-logo { display: inline-flex; align-items: center; gap: .7rem; text-decoration: none; color: var(--kp-ink); margin-right: auto; min-width: 0; flex: 0 1 auto; }
.kp-logo__text { display: grid; line-height: 1.1; min-width: 0; }
.kp-logo__top { font-size: .75rem; font-weight: 600; color: var(--kp-ink-soft); letter-spacing: .01em; }
.kp-logo__name { font-family: var(--wp--preset--font-family--display); font-weight: 750; font-size: 1.125rem; letter-spacing: -.01em; }
.kp-logo__city { font-size: .8125rem; color: var(--kp-ink-soft); }
.kp-mark { flex: none; }
.kp-mark__planet { transform-origin: 24px 24px; }
@media (prefers-reduced-motion: no-preference) {
	.kp-logo:hover .kp-mark__planet { animation: kp-spin 2.4s var(--kp-ease); }
}

.kp-nav { display: none; }
@media (min-width: 1100px) { .kp-nav { display: block; } }
.kp-nav__list { display: flex; gap: .15rem; list-style: none; margin: 0; padding: 0; }
.kp-nav__link {
	display: inline-flex; align-items: center; gap: .25rem;
	height: 44px; padding: 0 .8rem;
	border: 0; background: none; border-radius: var(--kp-r-sm);
	font: 600 1rem/1 var(--wp--preset--font-family--body);
	color: var(--kp-ink); text-decoration: none; cursor: pointer;
	position: relative;
}
.kp-nav__link:hover, .kp-nav__toggle[aria-expanded="true"] { background: var(--kp-surface-2); }
.kp-nav__link[aria-current="page"]::after {
	content: ""; position: absolute; left: .8rem; right: .8rem; bottom: 4px; height: 3px; border-radius: 3px; background: var(--kp-sun);
}
.kp-nav__toggle .kp-icon { transition: transform .25s var(--kp-ease); }
.kp-nav__toggle[aria-expanded="true"] .kp-icon { transform: rotate(180deg); }

.kp-mega {
	position: absolute; left: 0; right: 0; top: 100%;
	background: var(--kp-surface);
	border-block: 1px solid var(--kp-line);
	box-shadow: var(--kp-shadow-lg);
}
.kp-mega:not([hidden]) { animation: kp-drop .35s var(--kp-ease); }
.kp-mega__inner { display: grid; grid-template-columns: minmax(220px, 300px) 1fr; gap: 3rem; padding-block: 2rem 2.25rem; }
.kp-mega__intro { border-right: 1px solid var(--kp-line); padding-right: 2rem; }
.kp-mega__title { font-family: var(--wp--preset--font-family--display); font-size: 1.75rem; font-weight: 750; margin: 0 0 .5rem; letter-spacing: -.02em; }
.kp-mega__intro p { color: var(--kp-ink-soft); margin: 0 0 1.25rem; }
.kp-mega__links { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: .35rem 1.5rem; }
.kp-mega__links a { display: grid; gap: .15rem; padding: .75rem .9rem; border-radius: var(--kp-r-sm); text-decoration: none; color: var(--kp-ink); }
.kp-mega__links a:hover { background: var(--kp-surface-2); }
.kp-mega__links a[aria-current="page"] .kp-mega__label { text-decoration: underline; text-decoration-color: var(--kp-sun); text-decoration-thickness: 3px; }
.kp-mega__label { font-weight: 700; }
.kp-mega__desc { font-size: .875rem; color: var(--kp-ink-soft); line-height: 1.4; }

.kp-header__actions { display: flex; align-items: center; gap: .2rem; flex: none; }
.kp-header__cta { margin-left: .5rem; display: none; }
@media (min-width: 640px) { .kp-header__cta { display: inline-flex; } }
.kp-burger { display: inline-grid; }
@media (min-width: 1100px) { .kp-burger { display: none; } }
.kp-theme-btn__sun { display: none; }
:root[data-theme="dark"] .kp-theme-btn__sun { display: inline; }
:root[data-theme="dark"] .kp-theme-btn__moon { display: none; }
@media (prefers-color-scheme: dark) {
	:root:not([data-theme]) .kp-theme-btn__sun { display: inline; }
	:root:not([data-theme]) .kp-theme-btn__moon { display: none; }
}
@media (max-width: 420px) {
	.kp-header__actions [data-theme-toggle] { display: none; }
	.kp-header__inner { gap: .5rem; }
	.kp-logo__top, .kp-logo__city { font-size: .6875rem; }
	.kp-logo__name { font-size: 1rem; }
}


/* Naglowek podstron: elementy o ograniczonej szerokosci wyrownane do lewej krawedzi kolumny */
.kp-pagehead > :is(.kp-pagehead__title, .kp-pagehead__lead, .kp-crumbs, .kp-article__meta, .kp-event-meta, p) {
	margin-left: max(0px, calc((100% - 1240px) / 2)) !important;
	margin-right: auto !important;
}
.kp-pagehead > .kp-event-meta { max-width: 860px; }

/* Naglowek kompaktowy, gdy menu sie nie miesci (np. przy powiekszonym tekscie) */
.kp-nav__link { white-space: nowrap; }
.kp-header.is-compact .kp-nav { display: none; }
.kp-header.is-compact .kp-burger { display: inline-grid; }
.kp-mark circle:first-child { stroke: var(--kp-line); stroke-width: 1; }

/* Menu mobilne */
.kp-mobile {
	position: fixed; inset: var(--kp-head-h) 0 0; z-index: 45;
	background: var(--kp-bg);
	overflow: hidden;
}
.kp-mobile:not([hidden]) { animation: kp-fade .25s ease; }
.kp-mobile__scroll { height: 100%; overflow-y: auto; padding: 1rem var(--kp-gutter) calc(6rem + env(safe-area-inset-bottom)); overscroll-behavior: contain; }
.kp-mobile__top, .kp-mobile__group summary {
	display: flex; justify-content: space-between; align-items: center;
	padding: 1rem .25rem; border-bottom: 1px solid var(--kp-line);
	font: 700 1.25rem/1.2 var(--wp--preset--font-family--display);
	color: var(--kp-ink); text-decoration: none; list-style: none; cursor: pointer;
}
.kp-mobile__group summary::-webkit-details-marker { display: none; }
.kp-mobile__group[open] summary .kp-icon { transform: rotate(180deg); }
.kp-mobile__group ul { list-style: none; margin: 0; padding: .5rem 0 1rem; }
.kp-mobile__group a { display: block; padding: .7rem .5rem; color: var(--kp-ink); text-decoration: none; font-size: 1.0625rem; border-radius: 8px; }
.kp-mobile__group a:hover { background: var(--kp-surface-2); }
.kp-mobile__extra { display: grid; gap: .75rem; margin-top: 1.5rem; }
.kp-mobile__small { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; list-style: none; padding: 0; margin: .5rem 0 0; }
.kp-mobile__small a { color: var(--kp-ink-soft); }
body.kp-menu-open { overflow: hidden; }

/* Panel dostepnosci */
.kp-a11y {
	position: absolute; right: var(--kp-gutter); top: calc(100% + .5rem);
	max-height: calc(100dvh - var(--kp-head-h) - 6rem); overflow-y: auto; overscroll-behavior: contain;
	width: min(360px, calc(100vw - 2rem));
	background: var(--kp-surface); color: var(--kp-ink);
	border: 1px solid var(--kp-line); border-radius: var(--kp-r);
	box-shadow: var(--kp-shadow-lg);
	padding: 1.1rem 1.25rem 1.25rem;
	display: grid; gap: 1rem;
}
.kp-a11y:not([hidden]) { animation: kp-drop .3s var(--kp-ease); }
.kp-a11y__head { display: flex; justify-content: space-between; align-items: center; }
.kp-a11y__title { margin: 0; font: 750 1.25rem/1 var(--wp--preset--font-family--display); }
.kp-a11y__group { border: 0; padding: 0; margin: 0; }
.kp-a11y__group legend { font-weight: 700; margin-bottom: .45rem; font-size: .9375rem; }
.kp-seg { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; border: 1.5px solid var(--kp-line); border-radius: var(--kp-r-sm); overflow: hidden; }
.kp-seg button { min-height: 44px; border: 0; background: transparent; color: var(--kp-ink); font: 600 .9375rem var(--wp--preset--font-family--body); cursor: pointer; }
.kp-seg button + button { border-left: 1.5px solid var(--kp-line); }
.kp-seg button[aria-pressed="true"] { background: var(--kp-primary); color: var(--kp-on-primary); }
.kp-a11y__switches { display: grid; gap: .35rem; }
.kp-switch { display: flex; align-items: center; gap: .75rem; min-height: 44px; cursor: pointer; font-weight: 600; }
.kp-switch input {
	appearance: none; -webkit-appearance: none; margin: 0;
	width: 44px; height: 26px; flex: none;
	border-radius: 26px; background: var(--kp-line); position: relative; cursor: pointer;
	transition: background-color .2s;
}
.kp-switch input::after {
	content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%;
	background: var(--kp-surface); box-shadow: 0 1px 3px rgb(0 0 0 / .25);
	transition: transform .25s var(--kp-ease);
}
.kp-switch input:checked { background: var(--kp-primary); }
.kp-switch input:checked::after { transform: translateX(18px); }

/* Preferencje */
:root[data-links="1"] a { text-decoration: underline !important; text-decoration-thickness: 2px !important; }
:root[data-spacing="1"] body { letter-spacing: .05em; word-spacing: .16em; line-height: 1.9; }
:root[data-spacing="1"] p { margin-bottom: 1.4em; }
:root[data-motion="off"] *, :root[data-motion="off"] *::before, :root[data-motion="off"] *::after {
	animation: none !important; transition: none !important; scroll-behavior: auto !important;
}
:root[data-contrast="high"] .kp-hero__media::after { background: rgb(0 0 0 / .78) !important; }
:root[data-contrast="high"] .kp-card, :root[data-contrast="high"] .kp-today__card a { border: 2px solid var(--kp-line) !important; }
:root[data-contrast="high"] .kp-today__card--accent a { background: var(--kp-surface); color: var(--kp-ink); }
:root[data-contrast="high"] .kp-hero__hl::before { background: #000; }
:root[data-contrast="high"] .kp-hero__video { display: none; }

/* Sekcje strony glownej stykaja sie bez odstepu blokow */
.kp-main--home .wp-block-post-content > section { margin-block-start: 0; }

/* ---------- Hero ---------- */

.kp-hero {
	position: relative; isolation: isolate;
	min-height: clamp(580px, calc(100dvh - 250px), 880px);
	display: flex; align-items: flex-end;
	color: #fff;
	overflow: hidden;
	background: #2b1c14;
}
.kp-hero__media { position: absolute; inset: -4% 0 0; z-index: -1; will-change: transform; }
.kp-hero__media img, .kp-hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%; display: block; }
.kp-hero__video { object-position: 50% 50%; }
.kp-hero__video { opacity: 0; transition: opacity 1.8s ease; }
.kp-hero__video.is-playing { opacity: 1; }
.kp-hero__media::after {
	content: ""; position: absolute; inset: 0;
	/* zdjecie w naturalnych kolorach, tylko cieply cien u dolu pod napisem */
	background: linear-gradient(0deg, rgb(28 14 8 / .8) 0%, rgb(28 14 8 / .38) 34%, rgb(28 14 8 / 0) 60%);
}
@media (prefers-reduced-motion: no-preference) {
	.kp-hero__media img { animation: kp-kenburns 18s var(--kp-ease) both; }
}

.kp-hero__content { position: relative; padding-block: 5rem clamp(8.5rem, 12vw, 10rem); display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1.5rem 2.5rem; }
.kp-hero__text { min-width: 0; }
.kp-hero__title {
	margin: 0 0 1.25rem;
	color: #fff;
	font-size: clamp(3rem, 7vw, 6rem);
	line-height: 1; letter-spacing: -.04em; font-weight: 780;
	max-width: 20ch;
	text-shadow: 0 2px 4px rgb(0 0 0 / .2), 0 4px 30px rgb(0 0 0 / .35);
}
.kp-hero__line { display: block; }
.kp-hero__word { display: inline-block; overflow: hidden; vertical-align: top; padding: .14em .03em .12em; margin: -.14em -.03em -.12em; }
.kp-hero__word > span { display: inline-block; }
.kp-hero__hl { position: relative; display: inline-block; isolation: isolate; margin-left: .16em; padding-inline: .08em; }
.kp-hero__hl::before {
	content: ""; position: absolute; inset: .06em -.12em .02em; z-index: -1;
	background: var(--kp-red); border-radius: 8px; transform: rotate(-2deg);
}
@media (prefers-reduced-motion: no-preference) {
	.kp-hero__hl::before { transform-origin: left center; animation: kp-hl .8s .55s var(--kp-ease) both; }
}
@keyframes kp-hl { from { transform: rotate(-2deg) scaleX(0); } to { transform: rotate(-2deg) scaleX(1); } }
.kp-hero__lead { font-size: clamp(1.125rem, 1.6vw, 1.375rem); max-width: 38ch; margin: 0; color: #fff; font-weight: 500; text-shadow: 0 1px 2px rgb(0 0 0 / .45), 0 2px 16px rgb(0 0 0 / .4); }
.kp-hero__ctas { display: flex; flex-wrap: wrap; gap: .75rem; }
@media (prefers-reduced-motion: no-preference) {
	.kp-hero__word > span { animation: kp-word 1.1s var(--kp-ease) both; animation-delay: calc(.15s + var(--i) * 85ms); }
	.kp-hero__lead, .kp-hero__ctas { animation: kp-rise 1s var(--kp-ease) both; }
	.kp-hero__lead { animation-delay: .7s; }
	.kp-hero__ctas { animation-delay: .85s; }
}
@media (max-width: 599px) {
	.kp-hero { min-height: 0; }
	.kp-hero__content { padding-block: 12rem 8.25rem; }
	.kp-hero__ctas { width: 100%; }
	.kp-hero__ctas .kp-btn { flex: 1 1 0; min-width: max-content; padding-inline: 1rem; }
	.kp-hero__media img { object-position: 28% 35%; }
	.kp-hero__media::after { background: linear-gradient(0deg, rgb(28 14 8 / .85) 0%, rgb(28 14 8 / .5) 45%, rgb(28 14 8 / 0) 75%); }
	.kp-hero__video { object-position: 28% 50%; }
}

/* Dzis w szkole: jedna karta, cztery kolumny */
.kp-today { position: relative; z-index: 2; margin-top: -5rem; }
.kp-today__grid {
	list-style: none; margin: 0; padding: 0;
	display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
	background: var(--kp-surface); border-radius: 20px;
	box-shadow: 0 2px 6px rgb(11 60 110 / .08), 0 40px 80px -30px rgb(11 60 110 / .45);
}
.kp-today__value, .kp-card__title, .kp-agenda__name { overflow-wrap: break-word; hyphens: auto; }
.kp-today__card { position: relative; min-width: 0; }
.kp-today__card + .kp-today__card::before { content: ""; position: absolute; left: 0; top: 1.75rem; bottom: 1.75rem; width: 1px; background: var(--kp-line); }
.kp-today__card a {
	--c: var(--kp-navy);
	height: 100%; box-sizing: border-box;
	display: flex; flex-direction: column; gap: .5rem;
	padding: 1.6rem 1.75rem 1.75rem;
	color: var(--kp-ink); text-decoration: none; border-radius: inherit;
	transition: background-color .25s;
}
.kp-today__card:first-child a { border-radius: 20px 0 0 20px; }
.kp-today__card--bells a { --c: var(--kp-blue); }
.kp-today__card--menu a { --c: var(--kp-red); }
.kp-today__card--event a { --c: var(--kp-gold); }
.kp-today__badge {
	width: 2.25rem; height: 2.25rem; border-radius: 10px; margin-bottom: .35rem;
	display: grid; place-items: center; background: var(--c); color: #fff;
	transition: transform .35s var(--kp-ease);
}
.kp-today__card--event .kp-today__badge { color: #13223f; }
.kp-today__label { font-size: .875rem; font-weight: 700; color: var(--kp-ink-soft); }
.kp-today__value { font: 780 clamp(1.375rem, 2.1vw, 1.875rem)/1.08 var(--wp--preset--font-family--display); letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.kp-today__sub { font-size: .9375rem; line-height: 1.4; color: var(--kp-ink-soft); }
.kp-today__bar { margin-top: auto; height: 5px; border-radius: 5px; background: var(--kp-surface-2); overflow: hidden; }
.kp-today__bar span { display: block; height: 100%; width: var(--p, 0%); background: var(--kp-blue); border-radius: inherit; transition: width .8s var(--kp-ease); }
.kp-today__card--accent a { background: var(--kp-navy); color: var(--kp-on-navy); border-radius: 0 20px 20px 0; }
.kp-today__card--accent .kp-today__badge { background: var(--kp-red); }
.kp-today__card--accent .kp-today__label, .kp-today__card--accent .kp-today__sub { color: #fff; }
.kp-today__go { position: absolute; right: 1.5rem; top: 1.6rem; transition: transform .35s var(--kp-ease); }
@media (hover: hover) {
	.kp-today__card:not(.kp-today__card--accent) a:hover { background: color-mix(in srgb, var(--c) 9%, var(--kp-surface)); }
	.kp-today__card a:hover .kp-today__badge { transform: translateY(-3px) rotate(-6deg); }
	.kp-today__card--accent a:hover { background: var(--kp-navy-2); }
	.kp-today__card a:hover .kp-today__go { transform: translate(3px, -3px); }
}
@media (prefers-reduced-motion: no-preference) {
	.kp-today__grid { animation: kp-rise .9s 1s var(--kp-ease) both; }
}
@media (max-width: 899px) {
	.kp-today__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.kp-today__card:nth-child(3)::before { display: none; }
	.kp-today__card:nth-child(n+3) { border-top: 1px solid var(--kp-line); }
	.kp-today__card:first-child a { border-radius: 20px 0 0 0; }
	.kp-today__card--accent a { border-radius: 0 0 20px 0; }
}
@media (max-width: 599px) {
	.kp-today { margin-top: -3.5rem; }
	.kp-today__card a { padding: 1.1rem 1rem 1.2rem; }
	.kp-today__value { font-size: 1.1875rem; }
	.kp-today__sub { font-size: .875rem; }
	.kp-today__go { display: none; }
}
@media (max-width: 359px) {
	.kp-today__grid { grid-template-columns: minmax(0, 1fr); }
	.kp-today__card + .kp-today__card::before { display: none; }
	.kp-today__card + .kp-today__card { border-top: 1px solid var(--kp-line); }
	.kp-today__card a, .kp-today__card:first-child a, .kp-today__card--accent a { border-radius: 0; }
}

/* ---------- Karty aktualnosci ---------- */

.kp-card { height: 100%; }
.kp-card__link {
	display: flex; flex-direction: column; height: 100%;
	background: var(--kp-surface); color: var(--kp-ink);
	border: 1px solid var(--kp-line); border-radius: var(--kp-r);
	overflow: hidden; text-decoration: none;
	transition: transform .35s var(--kp-ease), box-shadow .35s, border-color .3s;
}
@media (hover: hover) { .kp-card__link:hover { transform: translateY(-4px); box-shadow: var(--kp-shadow-lg); border-color: transparent; } }
.kp-card__media { aspect-ratio: 3 / 2; overflow: hidden; background: var(--kp-surface-2); }
.kp-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .8s var(--kp-ease); }
@media (hover: hover) { .kp-card__link:hover .kp-card__media img { transform: scale(1.04); } }
.kp-card__body { padding: 1.15rem 1.25rem 1.4rem; display: grid; gap: .45rem; align-content: start; }
.kp-card__meta { display: flex; flex-wrap: wrap; gap: .3rem .9rem; margin: 0; font-size: .875rem; color: var(--kp-ink-soft); }
.kp-card__cat { font-weight: 700; color: var(--kp-sun-ink); }
.kp-card__title { margin: 0; font-size: 1.25rem; line-height: 1.25; letter-spacing: -.01em; }
.kp-card__link:hover .kp-card__title { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .15em; }
.kp-card__excerpt { margin: 0; color: var(--kp-ink-soft); font-size: .9688rem; line-height: 1.55; }

.kp-card--lead .kp-card__media { aspect-ratio: 16 / 10; }
@media (min-width: 1000px) {
	.kp-card--lead .kp-card__media { flex: 1 1 auto; aspect-ratio: auto; min-height: 300px; }
	.kp-card--lead .kp-card__body { flex: none; }
}
.kp-card--lead .kp-card__title { font-size: var(--wp--preset--font-size--x-large); }
.kp-card--lead .kp-card__body { padding: 1.5rem 1.6rem 1.8rem; }

.kp-card--row .kp-card__link { flex-direction: row; align-items: stretch; }
.kp-card--row .kp-card__media { width: 38%; flex: none; aspect-ratio: auto; min-height: 120px; }
.kp-card--row .kp-card__body { padding: .9rem 1rem 1rem; }
.kp-card--row .kp-card__title { font-size: 1.0625rem; }
.kp-card--row .kp-card__excerpt { display: none; }

.kp-card--mini .kp-card__title { font-size: 1.0625rem; }

/* Strona glowna: aktualnosci + agenda */
.kp-home-news { padding-top: clamp(4rem, 8vw, 6rem); }
.kp-home-news__grid { display: grid; gap: 1.25rem; }
.kp-home-news__grid > *, .kp-patron__inner > *, .kp-recruit__inner > *, .kp-news-sub__inner > *, .kp-footer__grid > * { min-width: 0; }
@media (min-width: 1000px) {
	.kp-home-news__grid {
		grid-template-columns: 1.15fr .9fr .95fr;
		grid-template-areas: "lead list agenda";
		align-items: stretch;
	}
	.kp-home-news__lead { grid-area: lead; }
	.kp-home-news__list { grid-area: list; }
	.kp-agenda { grid-area: agenda; }
}
@media (min-width: 700px) and (max-width: 999px) {
	.kp-home-news__grid { grid-template-columns: 1fr 1fr; grid-template-areas: "lead lead" "list agenda"; }
	.kp-home-news__lead { grid-area: lead; }
	.kp-home-news__list { grid-area: list; }
	.kp-agenda { grid-area: agenda; }
}
.kp-home-news__list { display: grid; gap: 1rem; grid-auto-rows: 1fr; }
@media (min-width: 1000px) {
	.kp-home-news__list .kp-card--row .kp-card__link { flex-direction: column; }
	.kp-home-news__list .kp-card--row .kp-card__media { width: 100%; min-height: 0; aspect-ratio: 16 / 7; }
}

.kp-agenda {
	background: var(--kp-surface-2);
	border-radius: var(--kp-r);
	padding: 1.4rem 1.4rem 1.2rem;
	display: flex; flex-direction: column;
}
.kp-agenda__title { display: flex; align-items: center; gap: .55rem; margin: 0 0 1rem; font-size: 1.375rem; }
.kp-agenda__title .kp-icon { color: var(--kp-sun-ink); }
.kp-agenda__list { list-style: none; margin: 0; padding: 0; display: grid; gap: .25rem; }
.kp-agenda__list a {
	display: flex; gap: .95rem; align-items: center;
	padding: .6rem .5rem; margin-inline: -.5rem;
	border-radius: var(--kp-r-sm);
	color: var(--kp-ink); text-decoration: none;
}
.kp-agenda__list a:hover { background: var(--kp-surface); }
.kp-agenda__list a:hover .kp-agenda__name { text-decoration: underline; }
.kp-datebox {
	flex: none; width: 54px; height: 58px;
	display: grid; place-content: center; text-align: center;
	background: var(--kp-surface); border: 1px solid var(--kp-line); border-radius: var(--kp-r-sm);
	line-height: 1;
}
.kp-datebox__d { font: 750 1.375rem/1 var(--wp--preset--font-family--display); }
.kp-datebox__m { font-size: .75rem; font-weight: 700; color: var(--kp-sun-ink); margin-top: .2rem; }
.kp-agenda__body { display: grid; gap: .15rem; }
.kp-agenda__name { font-weight: 700; line-height: 1.3; }
.kp-agenda__meta { font-size: .875rem; color: var(--kp-ink-soft); }
.kp-agenda__foot { margin-top: auto; padding-top: 1rem; display: flex; flex-wrap: wrap; gap: .75rem 1.25rem; justify-content: space-between; align-items: center; }

/* ---------- Patron (nocne niebo) ---------- */

.kp-patron {
	position: relative; isolation: isolate; overflow: hidden;
	background: radial-gradient(90% 85% at 25% 45%, #2a8fe3 0%, #0b6cbf 48%, #0a4f95 100%);
	color: var(--kp-on-navy);
	padding-block: clamp(4.5rem, 10vw, 8rem);
}
.kp-patron__stars { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; pointer-events: none; }
.kp-patron__inner { display: grid; gap: 3.5rem; align-items: center; }
@media (min-width: 900px) { .kp-patron__inner { grid-template-columns: 1fr 1fr; gap: 4.5rem; } }
.kp-patron h2 { color: #fff; font-size: var(--wp--preset--font-size--huge); margin: 0 0 1.25rem; letter-spacing: -.03em; max-width: 17ch; }
.kp-patron p { font-size: 1.1875rem; max-width: 52ch; color: #fff; }
.kp-patron__quote { margin: 2rem 0; padding: 0 0 0 1.25rem; border-left: 3px solid var(--kp-gold); }
.kp-patron__quote p { font-family: var(--wp--preset--font-family--display); font-size: 1.5rem; line-height: 1.3; color: #fff; margin: 0 0 .5rem; font-weight: 600; letter-spacing: -.01em; }
.kp-patron__quote footer { font-size: .9375rem; color: #fff; }

.kp-patron__visual { position: relative; margin: 0 auto; width: min(560px, 100%); aspect-ratio: 1; display: grid; place-items: center; }
.kp-patron__portrait {
	position: relative; z-index: 1; width: 56%; aspect-ratio: 1; border-radius: 50%; overflow: hidden;
	box-shadow: 0 0 0 5px #f6b720, 0 0 50px 8px rgb(246 183 32 / .5), 0 0 140px 40px rgb(246 183 32 / .2);
}
.kp-patron__portrait img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (prefers-reduced-motion: no-preference) { .kp-patron__portrait { animation: kp-glow 5s ease-in-out infinite alternate; } }
.kp-patron__credit { position: absolute; left: 0; bottom: 0; max-width: 46%; font-size: .8125rem; line-height: 1.35; color: #fff; }
.kp-patron__mural {
	position: absolute; z-index: 2; right: -1%; bottom: 3%; width: 40%;
	display: grid; gap: .45rem; padding: .45rem .45rem .65rem;
	background: #fff; color: #13223f; border-radius: 12px; text-decoration: none;
	font-size: .8125rem; font-weight: 700; line-height: 1.3;
	box-shadow: 0 20px 40px -16px rgb(0 0 0 / .7);
	transform: rotate(4deg); transition: transform .45s var(--kp-ease);
}
.kp-patron__mural img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 8px; display: block; }
.kp-patron__mural span { padding-inline: .2rem; }
@media (hover: hover) { .kp-patron__mural:hover { transform: rotate(0) scale(1.04); } }
.kp-patron__facts { list-style: none; margin: 2rem 0; padding: 0; position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.kp-patron__facts::before { content: ""; position: absolute; left: 0; right: 0; top: 5px; height: 1px; background: rgb(255 255 255 / .25); }
.kp-patron__facts li { position: relative; padding-top: 1.35rem; display: grid; gap: .2rem; }
.kp-patron__facts li::before { content: ""; position: absolute; top: 0; left: 0; width: 11px; height: 11px; border-radius: 50%; background: var(--kp-gold); box-shadow: 0 0 12px rgb(246 183 32 / .8); }
.kp-patron__facts strong { font: 750 1.75rem/1 var(--wp--preset--font-family--display); color: var(--kp-gold); letter-spacing: -.02em; }
.kp-patron__facts span { font-size: .9375rem; line-height: 1.4; color: #fff; }
@media (max-width: 479px) {
	.kp-patron__facts { grid-template-columns: minmax(0, 1fr); }
	.kp-patron__facts::before { left: 5px; right: auto; top: 0; bottom: 0; width: 1px; height: auto; }
	.kp-patron__facts li { padding: 0 0 0 1.75rem; }
	.kp-patron__credit { max-width: 52%; bottom: -.5rem; }
	.kp-patron__mural { width: 42%; bottom: 0; }
}

.kp-orbit { position: relative; width: min(460px, 82vw); aspect-ratio: 1; margin-inline: auto; }
.kp-orbit__sun {
	position: absolute; inset: 41%; border-radius: 50%;
	background: radial-gradient(circle at 35% 35%, #ffe3a0, var(--kp-gold) 55%, #d99400);
	box-shadow: 0 0 60px 12px rgb(246 183 32 / .35);
}
.kp-orbit__ring { position: absolute; border-radius: 50%; border: 1px solid rgb(255 255 255 / .22); }
.kp-orbit__ring--1 { inset: 28%; }
.kp-orbit__ring--2 { inset: 13%; border-color: #fff; }
.kp-orbit__ring--3 { inset: 0; border-style: dashed; border-color: #fff; }
.kp-orbit__planet { position: absolute; top: -6px; left: calc(50% - 6px); width: 12px; height: 12px; border-radius: 50%; background: #c9d6ee; }
.kp-orbit__planet--earth { width: 18px; height: 18px; top: -9px; left: calc(50% - 9px); background: radial-gradient(circle at 35% 35%, #9fd2ff, #2f6fd6 60%, #1d4fa5); }
.kp-orbit__ring--3 .kp-orbit__planet { width: 8px; height: 8px; top: -4px; left: calc(50% - 4px); background: #e9b98a; }
@media (prefers-reduced-motion: no-preference) {
	.kp-orbit__ring--1 { animation: kp-spin 14s linear infinite; }
	.kp-orbit__ring--2 { animation: kp-spin 26s linear infinite; }
	.kp-orbit__ring--3 { animation: kp-spin 48s linear infinite reverse; }
}
.kp-orbit.is-paused .kp-orbit__ring { animation-play-state: paused; }
.kp-orbit--small { width: 180px; margin-bottom: 1.5rem; }
.kp-orbit--portrait { position: absolute; inset: 0; width: 100%; margin: 0; }
.kp-orbit--portrait .kp-orbit__ring--1 { inset: 14%; border-color: rgb(246 183 32 / .45); }
.kp-orbit--portrait .kp-orbit__ring--2 { inset: 6%; }
.kp-orbit--portrait .kp-orbit__ring--3 { inset: -2%; }
.kp-404 .kp-orbit__ring { border-color: var(--kp-line); }
.kp-404 .kp-orbit__planet { background: var(--kp-ink-soft); }

/* ---------- Bento ---------- */

.kp-bento { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: 1fr; grid-auto-rows: 300px; }
@media (min-width: 640px) {
	.kp-bento { grid-template-columns: 1fr 1fr; grid-auto-rows: 300px; }
	.kp-bento__tile--wide { grid-column: span 2; }
}
@media (min-width: 1000px) {
	.kp-bento {
		grid-template-columns: repeat(4, 1fr);
		grid-template-rows: 320px 320px;
		grid-template-areas: "a a b c" "d e e c";
	}
	.kp-bento__tile:nth-child(1) { grid-area: a; }
	.kp-bento__tile:nth-child(2) { grid-area: c; }
	.kp-bento__tile:nth-child(3) { grid-area: b; }
	.kp-bento__tile:nth-child(4) { grid-area: d; }
	.kp-bento__tile:nth-child(5) { grid-area: e; }
	.kp-bento__tile--wide { grid-column: auto; }
}
.kp-bento__tile a {
	display: flex; flex-direction: column; height: 100%;
	border-radius: var(--kp-r); overflow: hidden;
	color: var(--kp-ink); text-decoration: none;
	background: var(--kp-surface); border: 1px solid var(--kp-line);
	box-shadow: var(--kp-shadow);
	transition: transform .35s var(--kp-ease), box-shadow .35s;
}
.kp-bento__tile img { flex: 1 1 0; min-height: 0; width: 100%; object-fit: cover; display: block; transition: transform 1s var(--kp-ease); }
@media (hover: hover) {
	.kp-bento__tile a:hover { transform: translateY(-4px); box-shadow: var(--kp-shadow-lg); }
	.kp-bento__tile a:hover img { transform: scale(1.04); }
	.kp-bento__tile a:hover strong { color: var(--kp-link); }
}
.kp-bento__text { position: relative; z-index: 1; flex: none; display: grid; gap: .2rem; padding: .9rem 1.15rem 1.05rem; background: var(--kp-surface); }
.kp-bento__text strong { font: 750 1.25rem/1.2 var(--wp--preset--font-family--display); letter-spacing: -.015em; transition: color .2s; }
.kp-bento__text span { font-size: .9375rem; line-height: 1.45; color: var(--kp-ink-soft); max-width: 52ch; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
@media (min-width: 1000px) {
	.kp-bento__tile:nth-child(3) .kp-bento__text span, .kp-bento__tile:nth-child(4) .kp-bento__text span { font-size: .875rem; }
}

/* ---------- Rekrutacja (pasek) ---------- */

.kp-recruit { background: var(--kp-surface-2); }
.kp-recruit__inner { display: grid; gap: 2.5rem; align-items: center; }
@media (min-width: 900px) { .kp-recruit__inner { grid-template-columns: 1.1fr 1fr; gap: 4rem; } }
.kp-recruit__media img { border-radius: var(--kp-r); width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; box-shadow: var(--kp-shadow-lg); }
.kp-recruit h2 { margin: 0 0 1rem; font-size: var(--wp--preset--font-size--xx-large); }
.kp-recruit p { color: var(--kp-ink-soft); font-size: 1.125rem; }
.kp-mini-dates { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; margin: 1.75rem 0 2rem; }
.kp-mini-dates div { border-top: 3px solid var(--kp-sun); padding-top: .65rem; }
.kp-mini-dates dt { font: 750 1.375rem/1.1 var(--wp--preset--font-family--display); }
.kp-mini-dates dd { margin: .25rem 0 0; font-size: .9375rem; color: var(--kp-ink-soft); }
@media (max-width: 479px) { .kp-mini-dates { grid-template-columns: 1fr; } }

/* ---------- Galeria: karuzela albumow ---------- */

.kp-gallery {
	overflow: hidden; position: relative; isolation: isolate;
	background: radial-gradient(70% 90% at 100% 0%, #36b1ec 0%, transparent 60%), var(--kp-navy);
	color: #fff;
}
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .kp-gallery { background: var(--kp-navy); } }
:root[data-theme="dark"] .kp-gallery { background: var(--kp-navy); }
.kp-gallery h2, .kp-gallery .kp-gallery__lead, .kp-gallery .kp-link-arrow { color: #fff; }
.kp-gallery .kp-link-arrow .kp-icon { color: var(--kp-gold); }
.kp-gallery__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem 2rem; margin-bottom: 1.5rem; }
.kp-gallery__head h2 { margin: 0 0 .35rem; }
.kp-gallery__lead { margin: 0; color: var(--kp-ink-soft); }
.kp-gallery__nav { display: flex; align-items: center; gap: .6rem; }
.kp-gallery__nav .kp-link-arrow { margin-left: .75rem; }
.kp-gallery__btn {
	width: 52px; height: 52px; border-radius: 50%; display: inline-grid; place-items: center; cursor: pointer;
	background: #fff; color: #13223f; border: 0;
	box-shadow: 0 8px 20px -10px rgb(0 0 0 / .35);
	transition: background-color .2s, transform .25s var(--kp-ease), opacity .2s, border-color .2s;
}
@media (hover: hover) { .kp-gallery__btn:not(:disabled):hover { background: var(--kp-gold); border-color: var(--kp-gold); color: #13223f; } }
.kp-gallery__btn:not(:disabled):active { transform: scale(.94); }
.kp-gallery__btn:disabled { opacity: .45; cursor: default; box-shadow: none; }
.kp-gallery__track {
	display: grid; grid-auto-flow: column; grid-auto-columns: min(76vw, 330px); gap: 1.5rem;
	overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain;
	padding: 1.25rem var(--kp-gutter) 2rem;
	padding-inline-start: max(var(--kp-gutter), calc((100vw - 1240px) / 2));
	scroll-padding-inline: max(var(--kp-gutter), calc((100vw - 1240px) / 2));
	scrollbar-width: none;
}
.kp-gallery__track::-webkit-scrollbar { display: none; }
.kp-gallery__track.is-dragging { scroll-snap-type: none; cursor: grabbing; }
.kp-gallery__track.is-dragging a { pointer-events: none; }
@media (hover: hover) and (pointer: fine) { .kp-gallery__track { cursor: grab; } }
.kp-gallery__item {
	scroll-snap-align: start; display: grid; align-content: start; gap: .2rem;
	padding: .6rem .6rem 1rem; border-radius: 14px;
	background: var(--kp-surface); color: var(--kp-ink); text-decoration: none;
	box-shadow: 0 2px 4px rgb(11 60 110 / .08), 0 18px 36px -18px rgb(11 60 110 / .45);
	transform: rotate(var(--t, 0deg));
	transition: transform .5s var(--kp-ease), box-shadow .5s;
}
@media (hover: hover) { .kp-gallery__item:hover { transform: rotate(0) translateY(-6px); box-shadow: 0 4px 8px rgb(11 60 110 / .1), 0 28px 50px -20px rgb(11 60 110 / .55); } }
.kp-gallery__photo { position: relative; display: block; margin-bottom: .55rem; }
.kp-gallery__photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 9px; display: block; -webkit-user-drag: none; user-select: none; }
.kp-gallery__count {
	position: absolute; left: .55rem; top: .55rem; display: inline-flex; align-items: center; gap: .3rem;
	padding: .3rem .55rem; border-radius: 8px; background: var(--kp-gold); color: #13223f;
	font-size: .8125rem; font-weight: 700;
}
.kp-gallery__title { padding-inline: .3rem; font-weight: 700; font-size: 1.0625rem; line-height: 1.3; }
.kp-gallery__item:hover .kp-gallery__title { text-decoration: underline; }
.kp-gallery__meta { padding-inline: .3rem; font-size: .875rem; color: var(--kp-ink-soft); }
.kp-gallery__progress { height: 5px; border-radius: 5px; background: rgb(255 255 255 / .25); overflow: hidden; }
.kp-gallery__progress span { display: block; height: 100%; width: var(--w, 25%); margin-left: var(--x, 0%); border-radius: inherit; background: var(--kp-gold); transition: margin-left .15s linear, width .2s; }
@media (max-width: 599px) {
	.kp-gallery__nav .kp-gallery__btn { display: none; }
	.kp-gallery__nav .kp-link-arrow { margin-left: 0; }
}
:root[data-contrast="high"] .kp-gallery { background: var(--kp-bg); }
:root[data-contrast="high"] .kp-gallery__item, :root[data-contrast="high"] .kp-patron__mural { transform: none; border: 2px solid var(--kp-line); }

/* ---------- Osiagniecia ---------- */

.kp-awards { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); }
.kp-award {
	position: relative;
	background: var(--kp-surface); border: 1px solid var(--kp-line); border-radius: var(--kp-r);
	padding: 1.35rem 1.35rem 1.4rem;
	display: grid; gap: .4rem; align-content: start;
}
.kp-award__level .kp-icon { color: var(--kp-sun-ink); }
.kp-award__level { display: flex; align-items: center; gap: .4rem; font-size: .875rem; font-weight: 700; color: var(--kp-sun-ink); margin-bottom: .2rem; }
.kp-award__title { margin: 0; font-size: 1.25rem; line-height: 1.25; }
.kp-award__contest { margin: 0; color: var(--kp-ink-soft); font-size: .9688rem; }
.kp-award__who { margin: .35rem 0 0; font-weight: 600; font-size: .9375rem; }
.kp-awards-home .kp-awards { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
@media (max-width: 699px) {
	.kp-awards-home .kp-awards { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 82%; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: .75rem; margin-inline: calc(var(--kp-gutter) * -1); padding-inline: var(--kp-gutter); scroll-padding-inline: var(--kp-gutter); }
	.kp-awards-home .kp-award { scroll-snap-align: start; }
}

/* ---------- Powiadomienia ---------- */

.kp-news-sub { background: var(--kp-surface-2); }
.kp-news-sub__inner { display: grid; gap: 2rem; align-items: center; }
@media (min-width: 960px) { .kp-news-sub__inner { grid-template-columns: .9fr 1.1fr; gap: 4rem; } }
.kp-news-sub h2 { margin: 0 0 .75rem; font-size: var(--wp--preset--font-size--xx-large); }
.kp-news-sub__text p { color: var(--kp-ink-soft); font-size: 1.125rem; margin: 0; }
.kp-news-sub__form { background: var(--kp-surface); border: 1px solid var(--kp-line); border-radius: var(--kp-r); padding: 1.5rem; display: grid; gap: 1rem; }
.kp-news-sub__topics { border: 0; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: .35rem 1rem; }
.kp-news-sub__topics legend { font-weight: 700; margin-bottom: .5rem; }
.kp-news-sub__topics label { display: flex; align-items: center; gap: .55rem; min-height: 40px; cursor: pointer; }
.kp-news-sub__row { display: flex; gap: .6rem; flex-wrap: wrap; }
.kp-news-sub__row input { flex: 1 1 220px; }

/* ---------- Formularze ---------- */

.kp-form { display: grid; gap: 1.1rem; }
.kp-form__row { display: grid; gap: 1.1rem; }
@media (min-width: 640px) { .kp-form__row { grid-template-columns: 1fr 1fr; } }
.kp-field { display: grid; gap: .45rem; }
.kp-field label { font-weight: 700; }
.kp-field__help, .kp-form__note { font-size: .875rem; color: var(--kp-ink-soft); margin: 0; }
.kp-field__err { font-size: .875rem; color: #b42318; margin: 0; font-weight: 600; }
:root[data-theme="dark"] .kp-field__err { color: #ff9b8f; }
.kp-field--check { grid-template-columns: auto 1fr; align-items: start; column-gap: .7rem; }
.kp-field--check input { width: 22px; height: 22px; margin-top: .15rem; accent-color: var(--kp-primary); }
.kp-field--check .kp-field__err { grid-column: 1 / -1; }
.kp-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.kp-form input[type="text"], .kp-form input[type="email"], .kp-form select, .kp-form textarea,
.kp-news-sub input[type="email"], .kp-inline-search input, .kp-tt__bar select {
	width: 100%; box-sizing: border-box;
	min-height: 50px; padding: .75rem .95rem;
	font: inherit; color: var(--kp-ink);
	background: var(--kp-bg);
	border: 1.5px solid color-mix(in srgb, var(--kp-ink-soft) 55%, var(--kp-line));
	border-radius: var(--kp-r-sm);
	transition: border-color .2s, box-shadow .2s;
}
.kp-form textarea { min-height: 150px; resize: vertical; }
.kp-form :is(input, select, textarea):focus, .kp-news-sub input:focus, .kp-inline-search input:focus, .kp-tt__bar select:focus {
	outline: none; border-color: var(--kp-primary); box-shadow: 0 0 0 4px color-mix(in srgb, var(--kp-sun) 45%, transparent);
}
.kp-form .is-invalid { border-color: #b42318 !important; }
input[type="checkbox"] { accent-color: var(--kp-primary); width: 20px; height: 20px; }
.kp-alert { display: flex; gap: .75rem; align-items: flex-start; padding: 1rem 1.15rem; border-radius: var(--kp-r-sm); margin-bottom: 1rem; font-weight: 600; }
.kp-alert p { margin: 0; }
.kp-alert--ok { background: color-mix(in srgb, #1f9d55 14%, var(--kp-surface)); border: 1px solid color-mix(in srgb, #1f9d55 45%, transparent); }
.kp-alert--err { background: color-mix(in srgb, #b42318 12%, var(--kp-surface)); border: 1px solid color-mix(in srgb, #b42318 45%, transparent); }
.kp-inline-search { display: flex; gap: .6rem; max-width: 640px; margin: 0 0 1.5rem; }

/* ---------- Stopka ---------- */

.kp-footer { background: var(--kp-navy); color: var(--kp-on-navy); padding-block: clamp(3.5rem, 7vw, 5.5rem) 2rem; }
.kp-footer a { color: inherit; }
.kp-footer .kp-logo { color: #fff; margin: 0; }
.kp-footer .kp-logo__top, .kp-footer .kp-logo__city { color: #fff; }
.kp-footer .kp-mark circle:first-child { fill: #1d3463; }
.kp-footer__grid { display: grid; gap: 2.5rem; grid-template-columns: 1fr; }
@media (min-width: 700px) { .kp-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1100px) { .kp-footer__grid { grid-template-columns: 1.4fr 1.2fr repeat(3, 1fr); } }
.kp-footer__motto { margin: 1.25rem 0 1rem; font-size: 1.0625rem; max-width: 34ch; color: #fff; }
.kp-footer__motto span { font-size: .875rem; color: #fff; }
.kp-footer__social { display: flex; gap: .5rem; list-style: none; padding: 0; margin: 0; }
.kp-footer__social a { display: grid; place-items: center; width: 44px; height: 44px; border-radius: var(--kp-r-sm); border: 1px solid rgb(255 255 255 / .25); }
.kp-footer__social a:hover { background: rgb(255 255 255 / .08); }
.kp-footer__h { font: 700 1.0625rem/1.2 var(--wp--preset--font-family--display); color: #fff; margin: 0 0 1rem; letter-spacing: 0; }
.kp-footer__col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.kp-footer__col a { text-decoration: none; color: #fff; }
.kp-footer__col a:hover { color: #fff; text-decoration: underline; }
.kp-footer address { font-style: normal; margin-bottom: 1rem; color: #fff; }
.kp-footer__col p { color: #fff; }
.kp-footer__small { font-size: .875rem; color: #fff !important; }
.kp-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem 2rem; margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid rgb(255 255 255 / .16); font-size: .875rem; color: #fff; }
.kp-footer__bottom p { margin: 0; }
.kp-footer__bottom ul { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; list-style: none; margin: 0; padding: 0; }
:root[data-contrast="high"] .kp-footer { color: #ffff00; background: #000; }
:root[data-contrast="high"] .kp-footer * { color: #ffff00 !important; }

/* Dolny pasek mobilny */
.kp-dock {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 40;
	display: grid; grid-template-columns: repeat(5, minmax(0, 1fr));
	background: color-mix(in srgb, var(--kp-surface) 94%, transparent);
	-webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
	border-top: 1px solid var(--kp-line);
	padding-bottom: env(safe-area-inset-bottom);
}
@media (min-width: 900px) { .kp-dock { display: none; } }
.kp-dock a {
	display: grid; justify-items: center; gap: .15rem;
	padding: .55rem .25rem .5rem; min-height: 60px; box-sizing: border-box;
	color: var(--kp-ink); text-decoration: none; font-size: min(.75rem, 3.4vw); font-weight: 700;
	text-align: center; overflow-wrap: anywhere; line-height: 1.2;
}
.kp-dock a:active { background: var(--kp-surface-2); }
.kp-dock .kp-icon { color: var(--kp-navy-2); }
:root[data-theme="dark"] .kp-dock .kp-icon { color: var(--kp-sun); }
@media (prefers-color-scheme: dark) { :root:not([data-theme]) .kp-dock .kp-icon { color: var(--kp-sun); } }

/* ---------- Wyszukiwarka ---------- */

.kp-search {
	width: min(720px, calc(100vw - 2rem)); max-height: 80dvh;
	margin: 8vh auto auto; padding: 0;
	border: 1px solid var(--kp-line); border-radius: var(--kp-r);
	background: var(--kp-surface); color: var(--kp-ink);
	box-shadow: var(--kp-shadow-lg);
}
.kp-search::backdrop { background: rgb(10 18 34 / .55); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.kp-search[open] { animation: kp-drop .3s var(--kp-ease); }
.kp-search__form { display: flex; align-items: center; gap: .6rem; padding: .6rem .6rem .6rem 1.1rem; border-bottom: 1px solid var(--kp-line); }
.kp-search__form input { flex: 1; border: 0; background: transparent; font: 600 1.25rem var(--wp--preset--font-family--body); color: var(--kp-ink); min-height: 52px; outline: none; }
.kp-search__body { padding: 1rem 1.1rem 1.25rem; overflow-y: auto; overscroll-behavior: contain; }
.kp-search__hint { margin: 0 0 .5rem; font-size: .875rem; color: var(--kp-ink-soft); font-weight: 700; }
.kp-search__results { list-style: none; margin: 0; padding: 0; display: grid; gap: .15rem; }
.kp-search__results a { display: flex; justify-content: space-between; gap: 1rem; align-items: center; padding: .75rem .8rem; border-radius: var(--kp-r-sm); color: var(--kp-ink); text-decoration: none; font-weight: 600; }
.kp-search__results a:hover, .kp-search__results a:focus { background: var(--kp-surface-2); }
.kp-search__results small { color: var(--kp-ink-soft); font-weight: 500; }

/* ---------- Lightbox ---------- */

.kp-lightbox {
	width: 100vw; height: 100dvh; max-width: none; max-height: none;
	margin: 0; padding: 0; border: 0;
	background: rgb(6 10 20 / .96); color: #fff;
}
.kp-lightbox::backdrop { background: rgb(6 10 20 / .9); }
.kp-lightbox { overscroll-behavior: contain; touch-action: pan-y; }
.kp-lightbox__figure img { transition: transform .35s var(--kp-ease), opacity .25s; }
.kp-lightbox.is-dragging .kp-lightbox__figure img { transition: none; }
.kp-lightbox[open] { display: grid; place-items: center; animation: kp-fade .25s ease; }
.kp-lightbox__figure { margin: 0; display: grid; gap: .75rem; justify-items: center; padding: 4rem 1rem; }
.kp-lightbox__figure img { max-width: min(1400px, 92vw); max-height: 78dvh; object-fit: contain; border-radius: 8px; }
.kp-lightbox__figure figcaption { font-size: .9375rem; color: rgb(255 255 255 / .85); text-align: center; max-width: 70ch; }
.kp-lightbox__btn { position: absolute; display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; border: 1px solid rgb(255 255 255 / .3); background: rgb(255 255 255 / .08); color: #fff; cursor: pointer; }
.kp-lightbox__btn:hover { background: rgb(255 255 255 / .2); }
.kp-lightbox__close { top: 1rem; right: 1rem; }
.kp-lightbox__prev { left: 1rem; top: 50%; translate: 0 -50%; }
.kp-lightbox__next { right: 1rem; top: 50%; translate: 0 -50%; }
.kp-lightbox__count { position: absolute; top: 1.4rem; left: 1.4rem; margin: 0; font-weight: 700; }
@media (max-width: 640px) { .kp-lightbox__prev, .kp-lightbox__next { top: auto; bottom: 1.25rem; translate: none; } }

/* ---------- Naglowek podstron i tresc ---------- */

.kp-pagehead { padding-block: clamp(2rem, 5vw, 3.5rem) clamp(1.5rem, 3vw, 2.5rem); }
.kp-pagehead__title { margin: .5rem 0 .75rem !important; font-size: var(--wp--preset--font-size--huge) !important; letter-spacing: -.035em !important; max-width: 20ch; }
.kp-pagehead__lead, .kp-pagehead__lead p { font-size: clamp(1.125rem, 1.6vw, 1.3125rem); color: var(--kp-ink-soft); max-width: 60ch; margin: 0; }
.kp-pagehead--article .kp-pagehead__title { max-width: 24ch; font-size: clamp(2rem, 4.5vw, 3.25rem) !important; }
.kp-crumbs ol { display: flex; flex-wrap: wrap; gap: .25rem; list-style: none; margin: 0; padding: 0; font-size: .875rem; color: var(--kp-ink-soft); }
.kp-crumbs li + li::before { content: "/"; margin-right: .25rem; opacity: .6; }
.kp-crumbs a { color: var(--kp-ink-soft); }
.kp-crumbs a:hover { color: var(--kp-ink); }
.kp-crumbs [aria-current] { color: var(--kp-ink); font-weight: 600; }
.kp-article__meta { gap: .4rem 1rem; font-size: .9375rem; color: var(--kp-ink-soft); margin-top: 1.25rem !important; }
.kp-article__meta a { font-weight: 700; color: var(--kp-sun-ink); text-decoration: none; }
.kp-article__nav { padding-block: 2rem 4rem; }

/* Wpis: tresc w szerokosci naglowka strony, "Przeczytaj tez" w kolumnie obok (desktop) albo pod trescia */
.kp-article__layout {
	width: 100%;
	max-width: calc(1240px + 2 * var(--kp-gutter));
	margin-inline: auto;
	padding: 0 var(--kp-gutter) clamp(3rem, 7vw, 5.5rem);
	box-sizing: border-box;
	display: grid;
	gap: clamp(2.5rem, 5vw, 4rem);
}
.kp-article__layout > * { margin-block: 0 !important; }
.kp-article__main { min-width: 0; }
.kp-article__main > * + * { margin-block-start: 0; }
.kp-article .kp-content { padding-bottom: 0; }
/* Pasek okruszkow oddziela menu od naglowka wpisu */
.kp-crumbbar { background: var(--kp-surface-2); border-bottom: 1px solid var(--kp-line); padding-block: .85rem; }
.kp-crumbbar > .kp-crumbs { margin-left: max(0px, calc((100% - 1240px) / 2)) !important; margin-right: auto !important; }
.kp-crumbbar .kp-crumbs ol { font-size: .875rem; }
.kp-pagehead--article .kp-pagehead__title { margin-top: 0 !important; }
.kp-pagehead--article .kp-article__meta { margin-top: 0 !important; }
/* Lead pod zdjeciem, pogrubiony */
.kp-article__lead { margin: 0 0 1.75rem !important; }
.kp-article__lead p { margin: 0; font-size: clamp(1.1875rem, 1.6vw, 1.3125rem); line-height: 1.6; font-weight: 700; color: var(--kp-ink); max-width: none; }
.kp-article .kp-prose > p:first-child { font-size: inherit; }
/* Zdjecie wyroznione w calosci, bez kadrowania; pionowe ograniczone wysokoscia ekranu */
.kp-article__hero { margin: 0 0 clamp(2rem, 4vw, 2.75rem) !important; border-radius: var(--kp-r); overflow: hidden; background: var(--kp-surface-2); }
.kp-article__hero img { display: block; width: 100%; height: auto !important; max-height: min(85vh, 900px); object-fit: contain; }
.kp-article .kp-postnav { margin-top: 2.5rem; }
.kp-article__aside .kp-related__h { margin: 0 0 1.25rem; }
/* Przeczytaj tez: pierwszy wpis ze zdjeciem nad tytulem, kolejne z miniatura obok */
.kp-related { display: grid; gap: 1.25rem; grid-template-columns: 1fr; list-style: none; margin: 0; padding: 0; }
.kp-related__item a { display: grid; grid-template-columns: 132px minmax(0, 1fr); gap: 1rem; align-items: center; color: var(--kp-ink); text-decoration: none; }
.kp-related__media { display: block; aspect-ratio: 4 / 3; border-radius: 14px; overflow: hidden; background: var(--kp-surface-2); }
.kp-related__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s var(--kp-ease); }
.kp-related__body { display: grid; gap: .3rem; min-width: 0; }
.kp-related__body time { font-size: .8125rem; font-weight: 600; color: var(--kp-sun-ink); }
.kp-related__title { font: 700 1.0625rem/1.3 var(--wp--preset--font-family--display); letter-spacing: -.01em; text-wrap: pretty; }
.kp-related__item--lead a { grid-template-columns: 1fr; gap: .8rem; }
.kp-related__item--lead .kp-related__media { aspect-ratio: 16 / 10; border-radius: var(--kp-r); }
.kp-related__item--lead .kp-related__title { font-size: 1.3125rem; line-height: 1.25; }
.kp-related__item + .kp-related__item { padding-top: 1.25rem; border-top: 1px solid var(--kp-line); }
.kp-related__item a:hover .kp-related__title { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .15em; }
@media (hover: hover) { .kp-related__item a:hover img { transform: scale(1.05); } }
@media (min-width: 600px) and (max-width: 1023px) {
	.kp-related { grid-template-columns: 1fr 1fr; column-gap: 2rem; }
	.kp-related__item--lead { grid-column: 1 / -1; }
	.kp-related__item--lead a { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 1.5rem; }
}
@media (max-width: 399px) { .kp-related__item a { grid-template-columns: 104px minmax(0, 1fr); } }
@media (min-width: 1024px) {
	.kp-article__layout { grid-template-columns: minmax(0, 1fr) 360px; align-items: start; }
	.kp-article__aside .kp-related__h { font-size: 1.375rem; }
}

/* Udostepnianie */
.kp-share { margin-top: clamp(2.5rem, 5vw, 3.25rem); display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; }
.kp-share__h { margin: 0; font-weight: 700; font-size: 1rem; }
.kp-share__list { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; margin: 0; padding: 0; }
.kp-share__btn {
	display: inline-flex; align-items: center; gap: .45rem;
	min-height: 44px; padding: .5rem .95rem;
	border: 1px solid var(--kp-line); border-radius: 12px;
	background: var(--kp-surface); color: var(--kp-ink);
	font: inherit; font-size: .9375rem; font-weight: 600; text-decoration: none; cursor: pointer;
	transition: border-color .2s, background-color .2s, color .2s;
}
.kp-share__btn .kp-icon { color: var(--kp-primary); flex: none; }
.kp-share__btn:hover { border-color: var(--kp-primary); background: var(--kp-surface-2); }
.kp-share__btn.is-done { border-color: var(--kp-primary); color: var(--kp-primary); }
@media (max-width: 599px) {
	.kp-share__list li:not(.kp-share__native) .kp-share__btn > span:not(.kp-icon) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	.kp-share__list li:not(.kp-share__native) .kp-share__btn { padding: .5rem; width: 44px; justify-content: center; }
}

.kp-content { padding-bottom: clamp(3rem, 7vw, 5.5rem); overflow-wrap: break-word; }
.kp-content a { overflow-wrap: anywhere; }
@media (max-width: 479px) { .kp-btn, .wp-block-button__link { white-space: normal; text-align: center; } }
.kp-content > * + * { margin-block-start: 1.5rem; }
.kp-content > h2 { margin-block-start: clamp(2.5rem, 5vw, 3.75rem); }
.kp-content > h2:first-child { margin-top: 0; }
.kp-content h3 { margin-block-start: 2rem; }
.kp-prose { font-size: 1.125rem; }
.kp-prose p, .kp-prose li { line-height: 1.75; }
.kp-prose > p:first-child { font-size: 1.25rem; }
.kp-content figure.wp-block-image img { border-radius: var(--kp-r); }
.kp-content figcaption { font-size: .875rem; color: var(--kp-ink-soft); text-align: left; }
.kp-content table { border-collapse: collapse; width: 100%; font-size: .9688rem; }
.kp-content th, .kp-content td { padding: .75rem .9rem; border-bottom: 1px solid var(--kp-line); text-align: left; vertical-align: top; }
.kp-content thead th { background: var(--kp-surface-2); font-weight: 700; border-bottom: 0; }
.kp-content .wp-block-table { overflow-x: auto; }
.kp-content .wp-block-table figcaption { margin-top: .5rem; }
.kp-content ul:not([class]) li::marker, .kp-content ol:not([class]) li::marker { color: var(--kp-sun-ink); font-weight: 700; }

/* Czytelna dlugosc linii na stronach tekstowych (wyrownanie do lewej krawedzi kolumny 1240px) */
.kp-content:not(.kp-prose) > :is(p, ul.wp-block-list, ol.wp-block-list, ul:not([class]), ol:not([class]), h2, h3, h4, .wp-block-details, .wp-block-quote, .kp-prose, .kp-callout) {
	max-width: 60ch !important;
	margin-left: max(0px, calc((100% - 1240px) / 2)) !important;
	margin-right: auto !important;
}
.kp-content:not(.kp-prose) > :is(.wp-block-details, .kp-callout) { max-width: 860px !important; }
.kp-split p, .kp-panel p { max-width: 60ch; }
.kp-prose h2 { margin: 2.75rem 0 .75rem; }
.kp-prose h3 { margin: 2rem 0 .5rem; }
.kp-prose > :first-child { margin-top: 0; }

/* Galerie: rowna siatka zamiast rozciagania ostatniego wiersza */
.kp-content .wp-block-gallery.has-nested-images {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(min(46%, 260px), 1fr));
	gap: .75rem !important;
}
.kp-content .wp-block-gallery.has-nested-images figure.wp-block-image { width: auto !important; margin: 0 !important; }
.kp-content .wp-block-gallery.has-nested-images figure.wp-block-image img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; height: 100%; border-radius: 10px; }
.kp-card__body:only-child { padding-top: 1.4rem; }

/* Bloki pomocnicze w tresci stron */
.kp-callout {
	display: grid; grid-template-columns: auto 1fr; gap: 1rem;
	background: color-mix(in srgb, var(--kp-sun) 12%, var(--kp-surface));
	border: 1px solid color-mix(in srgb, var(--kp-sun) 40%, var(--kp-line));
	border-radius: var(--kp-r);
	padding: 1.15rem 1.35rem;
}
.kp-callout > * { margin: 0 !important; }
.kp-callout .kp-icon { color: var(--kp-sun-ink); margin-top: .1rem; }
.kp-panel { background: var(--kp-surface); border: 1px solid var(--kp-line); border-radius: var(--kp-r); padding: clamp(1.25rem, 3vw, 2rem); }
.kp-panel > :first-child { margin-top: 0; }
.kp-panel > :last-child { margin-bottom: 0; }
.kp-split { display: grid; gap: clamp(1.5rem, 4vw, 3.5rem); align-items: start; }
@media (min-width: 900px) { .kp-split { grid-template-columns: 1fr 1fr; } .kp-split--wide-left { grid-template-columns: 1.4fr 1fr; } }
.kp-split > * { margin: 0 !important; min-width: 0; }
.kp-facts { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); margin: 0; }
.kp-facts > div { background: var(--kp-surface); border: 1px solid var(--kp-line); border-radius: var(--kp-r); padding: 1.1rem 1.2rem; }
.kp-facts dt { font-size: .875rem; color: var(--kp-ink-soft); font-weight: 700; }
.kp-facts dd { margin: .3rem 0 0; font-weight: 700; font-size: 1.0625rem; }
.kp-quicklinks { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); }
.kp-quicklinks a {
	display: flex; gap: .9rem; align-items: center;
	padding: 1rem 1.1rem; height: 100%; box-sizing: border-box;
	background: var(--kp-surface); border: 1px solid var(--kp-line); border-radius: var(--kp-r);
	color: var(--kp-ink); text-decoration: none; font-weight: 700;
	transition: transform .3s var(--kp-ease), box-shadow .3s;
}
@media (hover: hover) { .kp-quicklinks a:hover { transform: translateY(-2px); box-shadow: var(--kp-shadow); } }
.kp-quicklinks .kp-icon { color: var(--kp-sun-ink); width: 26px; height: 26px; }
.kp-quicklinks small { display: block; font-weight: 500; color: var(--kp-ink-soft); font-size: .875rem; }
.kp-song { font-family: var(--wp--preset--font-family--display); font-size: 1.25rem; line-height: 1.5; white-space: pre-line; }

/* Cytat */
.kp-content .wp-block-quote { border-left: 4px solid var(--kp-sun); padding: .25rem 0 .25rem 1.25rem; margin-block: 2rem; }
.kp-content .wp-block-quote p { font: 600 clamp(1.25rem, 2vw, 1.5rem)/1.35 var(--wp--preset--font-family--display); letter-spacing: -.01em; margin: 0 0 .5rem; }
.kp-content .wp-block-quote cite { font-style: normal; font-size: .9375rem; color: var(--kp-ink-soft); }

/* Details / FAQ */
.wp-block-details, .kp-details {
	border: 1px solid var(--kp-line); border-radius: var(--kp-r-sm);
	background: var(--kp-surface);
	padding: 0;
	margin-block-start: .6rem !important;
}
.wp-block-details summary, .kp-details summary {
	list-style: none; cursor: pointer;
	display: flex; justify-content: space-between; gap: 1rem; align-items: center;
	padding: 1.05rem 1.2rem; font-weight: 700; font-size: 1.0625rem;
}
.wp-block-details summary::-webkit-details-marker, .kp-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after, .kp-details summary::after {
	content: ""; flex: none; width: 12px; height: 12px;
	border-right: 2.5px solid var(--kp-sun-ink); border-bottom: 2.5px solid var(--kp-sun-ink);
	transform: rotate(45deg) translateY(-3px); transition: transform .3s var(--kp-ease);
}
.wp-block-details[open] summary::after, .kp-details[open] summary::after { transform: rotate(225deg) translateY(-3px); }
.wp-block-details > :not(summary), .kp-details > :not(summary) { margin: 0 1.2rem 1.1rem; color: var(--kp-ink-soft); }

/* ---------- Filtry (zakladki) ---------- */

.kp-filter {
	display: flex; gap: .25rem; overflow-x: auto;
	border-bottom: 1.5px solid var(--kp-line);
	margin-bottom: 1.75rem;
	scrollbar-width: none;
}
.kp-filter::-webkit-scrollbar { display: none; }
.kp-filter a, .kp-filter button {
	flex: none; display: inline-flex; align-items: center; gap: .4rem;
	padding: .8rem 1rem; margin-bottom: -1.5px;
	border: 0; border-bottom: 3px solid transparent; background: none;
	font: 600 1rem var(--wp--preset--font-family--body); color: var(--kp-ink-soft);
	text-decoration: none; cursor: pointer; white-space: nowrap;
}
.kp-filter a:hover, .kp-filter button:hover { color: var(--kp-ink); }
.kp-filter [aria-pressed="true"], .kp-filter [aria-current] { color: var(--kp-ink); border-bottom-color: var(--kp-sun); font-weight: 750; }
.kp-filter span { font-size: .8125rem; color: var(--kp-ink-soft); font-weight: 600; }

.kp-news__grid { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); }
.kp-news__grid .kp-card[hidden] { display: none; }
.kp-news__more { text-align: center; margin-top: 2rem; }
.kp-pagination ul { display: flex; flex-wrap: wrap; gap: .4rem; justify-content: center; list-style: none; padding: 0; margin: 2.5rem 0 0; }
.kp-pagination a, .kp-pagination span { display: grid; place-items: center; min-width: 44px; height: 44px; padding: 0 .75rem; border-radius: var(--kp-r-sm); border: 1px solid var(--kp-line); color: var(--kp-ink); text-decoration: none; font-weight: 700; }
.kp-pagination .current { background: var(--kp-primary); color: var(--kp-on-primary); border-color: var(--kp-primary); }
.kp-loop__count { color: var(--kp-ink-soft); }
.kp-empty, .kp-empty-state { color: var(--kp-ink-soft); }
.kp-empty-state { text-align: center; padding: 3rem 1rem; border: 1.5px dashed var(--kp-line); border-radius: var(--kp-r); }
.kp-empty-state .kp-icon { color: var(--kp-sun-ink); }
.kp-empty-state h2 { font-size: 1.5rem; margin: .75rem 0 .5rem; }

/* Nawigacja wpisu */
.kp-postnav { display: grid; gap: 1rem; border-top: 1px solid var(--kp-line); padding-top: 2rem; }
@media (min-width: 700px) { .kp-postnav { grid-template-columns: 1fr 1fr; } }
.kp-postnav__item { display: grid; gap: .3rem; padding: 1rem 1.15rem; border: 1px solid var(--kp-line); border-radius: var(--kp-r); text-decoration: none; color: var(--kp-ink); }
.kp-postnav__item span { display: inline-flex; align-items: center; gap: .35rem; font-size: .875rem; color: var(--kp-ink-soft); font-weight: 700; }
.kp-postnav__item--next { text-align: right; justify-items: end; }
.kp-postnav__item:hover strong { text-decoration: underline; }
.kp-related__h { font-size: 1.5rem; }

/* ---------- Kalendarz ---------- */

.kp-cal__bar { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-bottom: 1.25rem; }
.kp-cal__title { margin: 0 .5rem; font-size: var(--wp--preset--font-size--x-large); min-width: 9ch; text-align: center; }
.kp-cal__ics { margin-left: auto; }
.kp-cal__grid { border: 1px solid var(--kp-line); border-radius: var(--kp-r); overflow: hidden; background: var(--kp-surface); }
.kp-cal__row--head { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); background: var(--kp-surface-2); }
.kp-cal__row--head span { padding: .6rem .2rem; font-weight: 700; font-size: .875rem; text-align: center; white-space: nowrap; overflow: hidden; }
@media (max-width: 400px) { .kp-cal__row--head span { font-size: .75rem; } .kp-cal__num { font-size: .875rem; } }
.kp-cal__row--head abbr { text-decoration: none; }
.kp-cal__cells { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.kp-cal__cell { min-height: 116px; padding: .45rem .45rem .6rem; border-top: 1px solid var(--kp-line); border-left: 1px solid var(--kp-line); display: grid; align-content: start; gap: .3rem; min-width: 0; }
.kp-cal__cell:nth-child(7n + 1) { border-left: 0; }
.kp-cal__cell.is-weekend { background: color-mix(in srgb, var(--kp-surface-2) 55%, var(--kp-surface)); }
.kp-cal__cell.is-empty { background: transparent; }
.kp-cal__num { font-weight: 700; font-size: .9375rem; width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; }
.kp-cal__cell.is-today .kp-cal__num { background: var(--kp-sun); color: var(--kp-on-sun); }
.kp-cal__event {
	display: block; font-size: .8125rem; line-height: 1.3; font-weight: 600;
	padding: .35rem .55rem; border-radius: 6px;
	background: color-mix(in srgb, var(--kp-sun) 22%, var(--kp-surface));
	color: var(--kp-ink); text-decoration: none;
	overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
}
.kp-cal__event:hover { text-decoration: underline; }
.kp-cal__dot { display: none; }
.kp-cal__listhead { margin: 2.5rem 0 1rem; font-size: 1.5rem; }
.kp-cal .kp-agenda__list { max-width: 760px; }
@media (max-width: 759px) {
	.kp-cal__cell { min-height: 52px; padding: .3rem; justify-items: center; }
	.kp-cal__event { display: none; }
	.kp-cal__dot { display: block; width: 8px; height: 8px; border-radius: 50%; background: var(--kp-sun-ink); }
	.kp-cal__ics { margin-left: 0; width: 100%; }
}

/* Szczegoly wydarzenia */
.kp-event-meta { display: grid; gap: .75rem; margin: 1.5rem 0; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.kp-event-meta div { background: var(--kp-surface); border: 1px solid var(--kp-line); border-radius: var(--kp-r-sm); padding: .9rem 1rem; }
.kp-event-meta dt { display: flex; align-items: center; gap: .4rem; font-size: .875rem; font-weight: 700; color: var(--kp-ink-soft); }
.kp-event-meta dt .kp-icon { color: var(--kp-sun-ink); }
.kp-event-meta dd { margin: .3rem 0 0; font-weight: 700; }

/* ---------- Kadra ---------- */

.kp-staff__group { margin-bottom: 2.5rem; }
.kp-staff__group[hidden] { display: none; }
.kp-staff__h { font-size: 1.5rem !important; margin: 0 0 1rem !important; }
.kp-staff__grid { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 290px), 1fr)); }
.kp-person { display: flex; gap: 1rem; align-items: flex-start; padding: 1.05rem 1.1rem; background: var(--kp-surface); border: 1px solid var(--kp-line); border-radius: var(--kp-r); }
.kp-person__avatar {
	flex: none; width: 56px; height: 56px; border-radius: 50%;
	display: grid; place-items: center; overflow: hidden;
	background: var(--kp-navy); color: var(--kp-on-navy);
	box-shadow: inset 0 0 0 2px var(--kp-sun);
	font: 750 1.125rem/1 var(--wp--preset--font-family--display); letter-spacing: .02em;
}
.kp-person__avatar img { width: 100%; height: 100%; object-fit: cover; }
.kp-person__body { display: grid; gap: .15rem; }
.kp-person__name { font-weight: 750; font-size: 1.0625rem; }
.kp-person__role { font-weight: 700; color: var(--kp-sun-ink); font-size: .9375rem; }
.kp-person__subjects { color: var(--kp-ink-soft); font-size: .9375rem; }
.kp-person__note { display: inline-flex; gap: .3rem; align-items: center; font-size: .8125rem; color: var(--kp-ink-soft); margin-top: .25rem; }

/* ---------- Dzwonki ---------- */

.kp-bells { background: var(--kp-surface); border: 1px solid var(--kp-line); border-radius: var(--kp-r); padding: 1.25rem; }
.kp-bells__now { display: flex; align-items: center; gap: .6rem; margin: 0 0 1rem; padding: .85rem 1rem; border-radius: var(--kp-r-sm); background: var(--kp-navy); color: var(--kp-on-navy); font-weight: 700; }
.kp-bells__now::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--kp-sun); flex: none; box-shadow: 0 0 0 4px rgb(246 183 32 / .25); }
.kp-bells__list { list-style: none; margin: 0; padding: 0; display: grid; gap: .1rem; }
.kp-bells__list li { display: grid; grid-template-columns: 2.25rem auto 1fr; gap: .75rem; align-items: center; padding: .55rem .6rem; border-radius: var(--kp-r-sm); }
.kp-bells__list li.is-now { background: color-mix(in srgb, var(--kp-sun) 22%, var(--kp-surface)); }
.kp-bells__n { width: 2rem; height: 2rem; border-radius: 50%; display: grid; place-items: center; font-weight: 750; background: var(--kp-surface-2); }
.kp-bells__list li.is-now .kp-bells__n { background: var(--kp-sun); color: var(--kp-on-sun); }
.kp-bells__time { font-weight: 700; font-variant-numeric: tabular-nums; }
.kp-bells__break { font-size: .8125rem; color: var(--kp-ink-soft); justify-self: end; }

/* ---------- Plan lekcji ---------- */

.kp-tt__bar { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; margin-bottom: 1.25rem; }
.kp-tt__bar label { font-weight: 700; }
.kp-tt__bar select { width: auto; min-width: 140px; font-weight: 700; }
.js .kp-tt__panel:not(.is-active) { display: none; }
.kp-tt__panel + .kp-tt__panel { margin-top: 2rem; }
.kp-tt__scroll { overflow-x: auto; border: 1px solid var(--kp-line); border-radius: var(--kp-r); background: var(--kp-surface); }
.kp-tt__table { border-collapse: collapse; width: 100%; min-width: 720px; font-size: .9375rem; }
.kp-tt__table th, .kp-tt__table td { padding: .7rem .8rem; border-bottom: 1px solid var(--kp-line); border-left: 1px solid var(--kp-line); text-align: left; }
.kp-tt__table thead th { background: var(--kp-surface-2); font-weight: 750; border-bottom: 0; }
.kp-tt__table tbody th { position: sticky; left: 0; background: var(--kp-surface); border-left: 0; white-space: nowrap; }
.kp-tt__n { font-weight: 750; margin-right: .5rem; }
.kp-tt__t { font-size: .8125rem; color: var(--kp-ink-soft); font-variant-numeric: tabular-nums; }
.kp-tt__table td { font-weight: 600; }
.kp-tt__table td.is-free { background: color-mix(in srgb, var(--kp-surface-2) 60%, var(--kp-surface)); }
.kp-tt__table .is-today { background: color-mix(in srgb, var(--kp-sun) 14%, var(--kp-surface)); }
.kp-tt__table thead .is-today { background: var(--kp-sun); color: var(--kp-on-sun); }
.kp-tt__table tbody tr:last-child > * { border-bottom: 0; }

.kp-tt__days { display: none; }
@media (max-width: 699px) {
	.js .kp-tt__days { display: grid; grid-template-columns: repeat(5, 1fr); gap: .35rem; margin-bottom: 1rem; }
	.kp-tt__days button { min-height: 44px; border: 1.5px solid var(--kp-line); border-radius: var(--kp-r-sm); background: var(--kp-surface); color: var(--kp-ink); font: 700 1rem var(--wp--preset--font-family--body); cursor: pointer; }
	.kp-tt__days button[aria-pressed="true"] { background: var(--kp-primary); color: var(--kp-on-primary); border-color: var(--kp-primary); }
	.js .kp-tt .kp-tt__table { min-width: 0; }
	.js .kp-tt[data-day="1"] [data-day]:not([data-day="1"]),
	.js .kp-tt[data-day="2"] [data-day]:not([data-day="2"]),
	.js .kp-tt[data-day="3"] [data-day]:not([data-day="3"]),
	.js .kp-tt[data-day="4"] [data-day]:not([data-day="4"]),
	.js .kp-tt[data-day="5"] [data-day]:not([data-day="5"]) { display: none; }
	.js .kp-tt .kp-tt__days [data-tt-day] { display: block; }
	.kp-tt__table tbody th { width: 1%; }
}

/* ---------- Jadlospis ---------- */

.kp-menu__week { display: flex; align-items: center; gap: .5rem; margin: 0 0 1rem; color: var(--kp-ink-soft); }
.kp-menu__week .kp-icon { color: var(--kp-sun-ink); }
.kp-tabs { display: flex; overflow-x: auto; border-bottom: 1.5px solid var(--kp-line); margin-bottom: 1.5rem; scrollbar-width: none; }
.kp-tabs button { flex: 1 0 auto; padding: .85rem 1rem; border: 0; border-bottom: 3px solid transparent; margin-bottom: -1.5px; background: none; font: 600 1rem var(--wp--preset--font-family--body); color: var(--kp-ink-soft); cursor: pointer; }
.kp-tabs button[aria-selected="true"] { color: var(--kp-ink); border-bottom-color: var(--kp-sun); font-weight: 750; }
.kp-menu__list { display: grid; gap: .75rem; margin: 0; }
@media (min-width: 760px) { .kp-menu__list { grid-template-columns: repeat(3, 1fr); } }
.kp-menu__list div { background: var(--kp-surface); border: 1px solid var(--kp-line); border-radius: var(--kp-r); padding: 1.25rem 1.3rem; }
.kp-menu__list dt { font-size: .875rem; font-weight: 700; color: var(--kp-sun-ink); }
.kp-menu__list dd { margin: .4rem 0 0; font: 650 1.25rem/1.3 var(--wp--preset--font-family--display); letter-spacing: -.01em; }
.kp-menu__alg { margin: 1rem 0 0; font-size: .9375rem; color: var(--kp-ink-soft); }
.kp-menu__legend { margin-top: 1.5rem !important; }
.kp-menu__alglist { columns: 2 220px; font-size: .9375rem; }

/* ---------- Galeria ---------- */

.kp-albums { list-style: none; margin: 0; padding: 0; display: grid; gap: 2rem 1.25rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.kp-album a { display: grid; gap: .35rem; text-decoration: none; color: var(--kp-ink); }
.kp-album__stack { position: relative; display: block; margin: 10px 10px 1rem 0; }
.kp-album__stack::before, .kp-album__stack::after {
	content: ""; position: absolute; inset: 0; border-radius: var(--kp-r);
	background: var(--kp-surface-2); border: 1px solid var(--kp-line);
	transition: transform .5s var(--kp-ease);
}
.kp-album__stack::before { transform: translate(10px, -10px); }
.kp-album__stack::after { transform: translate(5px, -5px); background: var(--kp-surface); }
.kp-album__stack img { position: relative; z-index: 1; display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--kp-r); transition: transform .5s var(--kp-ease); }
@media (hover: hover) { .kp-album a:hover .kp-album__stack img { transform: translate(-4px, 4px); } }
@media (hover: hover) { .kp-album a:hover .kp-album__stack::before { transform: translate(14px, -14px); } }
.kp-album__title { font: 700 1.25rem/1.25 var(--wp--preset--font-family--display); }
.kp-album a:hover .kp-album__title { text-decoration: underline; }
.kp-album__meta { display: inline-flex; gap: .4rem; align-items: center; font-size: .875rem; color: var(--kp-ink-soft); }

.kp-album-page .wp-block-gallery { gap: .75rem !important; }
.kp-album-page .wp-block-gallery .wp-block-image img { border-radius: 10px; cursor: zoom-in; transition: transform .5s var(--kp-ease), filter .3s; }
.kp-album-page .wp-block-gallery .wp-block-image a:hover img { transform: scale(1.02); filter: brightness(1.05); }

/* ---------- Os czasu ---------- */

.kp-timeline { list-style: none; margin: 0; padding: 0; position: relative; display: grid; gap: 2rem; }
.kp-timeline::before { content: ""; position: absolute; top: .5rem; bottom: .5rem; left: 11px; width: 2px; background: linear-gradient(var(--kp-sun), var(--kp-line) 30%, var(--kp-line) 70%, var(--kp-sun)); }
.kp-timeline__item { position: relative; padding-left: 3rem; }
.kp-timeline__item::before { content: ""; position: absolute; left: 4px; top: .45rem; width: 16px; height: 16px; border-radius: 50%; background: var(--kp-bg); border: 3px solid var(--kp-sun); box-sizing: border-box; }
.kp-timeline__year { display: block; font: 780 clamp(1.75rem, 3.5vw, 2.5rem)/1 var(--wp--preset--font-family--display); letter-spacing: -.03em; color: var(--kp-sun-ink); margin-bottom: .6rem; }
.kp-timeline__card { background: var(--kp-surface); border: 1px solid var(--kp-line); border-radius: var(--kp-r); padding: 1.25rem 1.35rem; display: grid; gap: .5rem; }
.kp-timeline__card h3 { margin: 0 !important; font-size: 1.375rem; }
.kp-timeline__card p { margin: 0; color: var(--kp-ink-soft); }
.kp-timeline__img img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--kp-r-sm); margin-top: .5rem; }
@media (min-width: 900px) {
	.kp-timeline { gap: 1.75rem; }
	.kp-timeline::before { left: calc(150px + 1.75rem); }
	.kp-timeline__item { display: grid; grid-template-columns: 150px 1fr; column-gap: 3.5rem; padding-left: 0; align-items: start; }
	.kp-timeline__item::before { left: calc(150px + 1.75rem - 7px); top: .55rem; }
	.kp-timeline__year { text-align: right; margin: .15rem 0 0; }
	.kp-timeline__item.has-img .kp-timeline__card { grid-template-columns: 1fr 300px; grid-template-areas: "h img" "p img"; column-gap: 1.75rem; align-items: start; }
	.kp-timeline__item.has-img .kp-timeline__card h3 { grid-area: h; }
	.kp-timeline__item.has-img .kp-timeline__card p { grid-area: p; }
	.kp-timeline__item.has-img .kp-timeline__img { grid-area: img; }
	.kp-timeline__img img { margin-top: 0; aspect-ratio: 3 / 2; }
	.kp-timeline__card { max-width: 900px; }
}

/* ---------- Wirtualny spacer ---------- */

.kp-walk { position: relative; }
.kp-walk__track { display: grid; grid-auto-flow: column; grid-auto-columns: min(88%, 860px); gap: 1rem; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 1rem; scrollbar-width: thin; }
.kp-walk__stop { margin: 0; scroll-snap-align: start; position: relative; border-radius: var(--kp-r); overflow: hidden; background: var(--kp-navy); }
.kp-walk__stop img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.kp-walk__stop figcaption {
	position: absolute; left: 0; right: 0; bottom: 0;
	padding: 3rem 1.4rem 1.25rem; color: #fff;
	background: linear-gradient(0deg, rgb(var(--kp-scrim) / .92), rgb(var(--kp-scrim) / 0));
	display: grid; gap: .25rem; font-size: .9688rem;
}
.kp-walk__stop strong { font: 750 1.375rem/1.15 var(--wp--preset--font-family--display); }
.kp-walk__step { font-size: .8125rem; font-weight: 700; color: var(--kp-sun); }
.kp-walk__nav { display: flex; gap: .5rem; justify-content: flex-end; margin-top: .5rem; }
@media (max-width: 640px) {
	.kp-walk__stop figcaption { position: static; background: var(--kp-navy); padding: 1rem; }
}

/* ---------- Kroki rekrutacji ---------- */

.kp-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; counter-reset: step; }
@media (min-width: 760px) { .kp-steps { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .kp-steps { grid-template-columns: repeat(4, 1fr); } }
.kp-step { position: relative; background: var(--kp-surface); border: 1px solid var(--kp-line); border-radius: var(--kp-r); padding: 1.35rem 1.35rem 1.25rem; display: grid; gap: .5rem; align-content: start; }
.kp-step { counter-increment: step; }
.kp-step::before { content: counter(step); font: 780 2.25rem/1 var(--wp--preset--font-family--display); letter-spacing: -.03em; color: var(--kp-sun-ink); font-variant-numeric: tabular-nums; }
.kp-step__title { margin: 0 !important; font-size: 1.25rem; }
.kp-step p { margin: 0; color: var(--kp-ink-soft); font-size: .9688rem; }
.kp-step__date { display: flex; gap: .4rem; align-items: center; margin-top: auto !important; padding-top: .6rem; border-top: 1px dashed var(--kp-line); font-weight: 700; color: var(--kp-ink) !important; }
.kp-step__date .kp-icon { color: var(--kp-sun-ink); }
@media (min-width: 1100px) {
	.kp-step:not(:last-child)::after {
		content: ""; position: absolute; top: 2.45rem; right: -1rem; width: 1rem; height: 2px; background: var(--kp-line);
	}
}

/* ---------- Dokumenty ---------- */

.kp-docs { display: grid; gap: 2rem; }
.kp-docs__h { font-size: 1.375rem !important; margin: 0 0 .75rem !important; }
.kp-docs ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.kp-docs a { display: flex; align-items: center; gap: 1rem; padding: .9rem 1.1rem; background: var(--kp-surface); border: 1px solid var(--kp-line); border-radius: var(--kp-r-sm); color: var(--kp-ink); text-decoration: none; }
.kp-docs a:hover { border-color: var(--kp-ink-soft); }
.kp-docs a:hover .kp-docs__name { text-decoration: underline; }
.kp-docs__icon { color: var(--kp-sun-ink); }
.kp-docs__body { display: grid; flex: 1; }
.kp-docs__name { font-weight: 700; }
.kp-docs__meta { font-size: .875rem; color: var(--kp-ink-soft); }

/* ---------- Mapa ---------- */

.kp-map { border-radius: var(--kp-r); overflow: hidden; border: 1px solid var(--kp-line); background: var(--kp-surface-2); min-height: 340px; display: grid; }
.kp-map iframe { width: 100%; height: 100%; min-height: 380px; border: 0; display: block; }
.kp-map__consent { display: grid; justify-items: center; align-content: center; gap: .9rem; padding: 2rem; text-align: center; }
.kp-map__consent .kp-icon { color: var(--kp-sun-ink); }
.kp-map__consent p { margin: 0; max-width: 42ch; color: var(--kp-ink-soft); }

.kp-eu { margin: 0; background: #fff; border-radius: var(--kp-r); padding: .5rem 1rem; border: 1px solid var(--kp-line); }
.kp-eu img { display: block; width: 100%; height: auto; }

/* ---------- 404 ---------- */
.kp-404__inner { text-align: center; padding-block: clamp(3rem, 8vw, 6rem); display: grid; justify-items: center; }
.kp-404 h1 { font-size: var(--wp--preset--font-size--huge); margin: 0 0 1rem; }
.kp-404 p { color: var(--kp-ink-soft); max-width: 48ch; }
.kp-404 .kp-inline-search { width: 100%; }

/* ---------- Animacje wejscia ---------- */

@media (prefers-reduced-motion: no-preference) {
	.kp-io .kp-reveal {
		opacity: 0; transform: translateY(22px);
		transition: opacity .8s var(--kp-ease), transform .8s var(--kp-ease);
		transition-delay: calc(var(--d, 0) * 80ms);
	}
	.kp-io .kp-reveal.is-in { opacity: 1; transform: none; }
	@view-transition { navigation: auto; }
}
:root[data-motion="off"] .kp-reveal { opacity: 1 !important; transform: none !important; }

@keyframes kp-spin { to { transform: rotate(360deg); } }
@keyframes kp-fade { from { opacity: 0; } }
@keyframes kp-drop { from { opacity: 0; transform: translateY(-8px); } }
@keyframes kp-rise { from { opacity: 0; transform: translateY(26px); } }
@keyframes kp-kenburns { from { transform: scale(1.1); } to { transform: scale(1); } }
@keyframes kp-word { from { transform: translateY(105%) rotate(5deg); opacity: 0; } }
@keyframes kp-pulse { 0% { box-shadow: 0 0 0 0 rgb(94 224 143 / .7); } 70%, 100% { box-shadow: 0 0 0 12px rgb(94 224 143 / 0); } }
@keyframes kp-glow { from { box-shadow: 0 0 0 5px #f6b720, 0 0 40px 6px rgb(246 183 32 / .4), 0 0 110px 30px rgb(246 183 32 / .15); } to { box-shadow: 0 0 0 5px #f6b720, 0 0 70px 14px rgb(246 183 32 / .6), 0 0 170px 50px rgb(246 183 32 / .25); } }

/* ---------- Druk ---------- */
@media print {
	.kp-utility, .kp-header, .kp-footer, .kp-dock, .kp-notice, .kp-tt__bar button, .kp-filter { display: none !important; }
	.js .kp-tt__panel:not(.is-active) { display: none !important; }
	body { background: #fff; color: #000; padding: 0; }
}

/* Nacisk: natychmiastowa informacja zwrotna na dotyk */
.kp-icon-btn:active, .kp-dock a:active, .kp-filter :is(a, button):active, .kp-tabs button:active, .kp-seg button:active { transform: scale(.96); }
.kp-card__link:active, .kp-today__card a:active, .kp-quicklinks a:active, .kp-bento__tile a:active, .kp-gallery__item:active, .kp-docs a:active, .kp-agenda__list a:active { transform: scale(.985); transition-duration: .1s; }

/* Ograniczona przezroczystosc: pelne tla zamiast rozmycia */
@media (prefers-reduced-transparency: reduce) {
	.kp-header, .kp-dock { background: var(--kp-bg); -webkit-backdrop-filter: none; backdrop-filter: none; }
	.kp-btn--glass { background: rgb(12 22 44 / .85); -webkit-backdrop-filter: none; backdrop-filter: none; }
	.kp-search::backdrop { -webkit-backdrop-filter: none; backdrop-filter: none; background: rgb(10 18 34 / .8); }
}

/* Systemowe zwiekszenie kontrastu */
@media (prefers-contrast: more) {
	:root:not([data-contrast]) { --kp-ink-soft: var(--kp-ink); --kp-line: color-mix(in srgb, var(--kp-ink) 55%, transparent); }
	.kp-hero__media::after { background: rgb(var(--kp-scrim) / .78); }
}
