/*
 * Kroczki – moduły strony placówki. Style komponentów (nagłówek, stopka, moduły).
 * Kolory, kroje i promienie bierzemy z tokenów --k-* ustawianych przez motyw (assets/css/vN.css).
 * Wartości poniżej to tylko zapas, gdy motyw ich nie poda.
 */
:where(:root) {
	--k-bg: #fff;
	--k-surface: #eef1f4;
	--k-ink: #1f2328;
	--k-text: #2b3036;
	--k-muted: #5b636d;
	--k-primary: #a63f26;
	--k-primary-dark: #7f2f1b;
	--k-tint: #f6e9e4;
	--k-accent: #2f4757;
	--k-accent-ink: #fff;
	--k-cta: var(--k-primary);
	--k-cta-ink: #fff;
	--k-line: #d9dee4;
	--k-alert: #b42318;
	--k-alert-tint: #fdf0ee;
	--k-radius: 6px;
	--k-radius-lg: 10px;
	--k-head: Georgia, serif;
	--k-body: system-ui, sans-serif;
	--k-head-weight: 700;
	--k-wrap: 1200px;
	--k-gap: clamp(1rem, 3vw, 2rem);
}

/* ---------- Podstawy ---------- */
html.krc-large { font-size: 112.5%; }
.krc-wrap { width: 100%; max-width: var(--k-wrap); margin-inline: auto; padding-inline: clamp(1rem, 4vw, 2rem); box-sizing: border-box; }
/* Numer telefonu nigdy nie łamie się na dwie linie. */
.krc-tel { white-space: nowrap; }
.krc-icon { width: 1.25em; height: 1.25em; flex: none; vertical-align: -0.2em; }
.krc-muted { color: var(--k-muted); }
.krc-skip { position: absolute; left: 1rem; top: -100px; z-index: 1000; background: var(--k-ink); color: #fff; padding: 0.75rem 1rem; border-radius: var(--k-radius); }
.krc-skip:focus { top: 1rem; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.krc-dot { width: 0.6rem; height: 0.6rem; border-radius: 50%; background: var(--k-muted); display: inline-block; flex: none; }
.is-open .krc-dot, .krc-miejsca .krc-dot { background: #1a7f4b; box-shadow: 0 0 0 3px rgb(26 127 75 / 0.18); }
.krc-badge { display: inline-flex; align-items: center; gap: 0.3rem; font-size: 0.875rem; font-weight: 600; color: var(--k-primary-dark); background: var(--k-tint); padding: 0.15rem 0.5rem; border-radius: 4px; }
.krc-badge .krc-icon { width: 0.95rem; height: 0.95rem; }
.krc-badge--muted { color: var(--k-muted); background: var(--k-surface); }
.krc-note { display: flex; gap: 0.6rem; align-items: flex-start; font-size: 0.9375rem; color: var(--k-text); background: var(--k-surface); padding: 0.75rem 1rem; border-radius: var(--k-radius); margin: 1rem 0; }
.krc-note .krc-icon { color: var(--k-primary); margin-top: 0.1rem; }
.krc-arrow { font-weight: 600; text-decoration: none; display: inline-flex; gap: 0.4rem; align-items: center; }
.krc-arrow::after { content: "→"; transition: transform 0.15s; }
@media (hover: hover) { .krc-arrow:hover::after { transform: translateX(3px); } }
.krc-more { margin-top: 1rem; }
.krc-back a { text-decoration: none; font-weight: 600; }

.krc-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; min-height: 2.75rem; padding: 0.6rem 1.15rem; border-radius: var(--k-radius); font-weight: 600; font-size: 1rem; line-height: 1.2; text-decoration: none; border: 2px solid transparent; cursor: pointer; box-sizing: border-box; font-family: inherit; }
.krc-btn--cta { background: var(--k-cta); color: var(--k-cta-ink); }
@media (hover: hover) { .krc-btn--cta:hover { filter: brightness(0.94); color: var(--k-cta-ink); } }
.krc-btn--line { border-color: currentColor; color: var(--k-ink); background: transparent; }
@media (hover: hover) { .krc-btn--line:hover { background: var(--k-surface); } }
.krc-btn .krc-icon { width: 1.1rem; height: 1.1rem; }
:where(.krc-header, .krc-menu, .krc-form, .krc-zone, .krc-login) :focus-visible { outline: 3px solid var(--k-primary); outline-offset: 2px; }

/* ---------- Pasek demo i pilny komunikat ---------- */
/* Oba paski w jednej linii (ok. 44 px), żeby na telefonie treść zaczynała się wysoko. Cele dotyku 44 px. */
.krc-demo { background: var(--k-ink); color: #fff; font-size: 0.875rem; }
.krc-demo__inner { max-width: var(--k-wrap); margin: 0 auto; padding: 0 clamp(1rem, 4vw, 2rem); min-height: 2.75rem; display: flex; flex-wrap: wrap; gap: 0 1.25rem; align-items: center; justify-content: space-between; }
.krc-demo p { margin: 0; }
.krc-demo__nav { display: flex; gap: 0.25rem; align-items: center; flex-wrap: wrap; }
.krc-demo__nav a { position: relative; z-index: 0; color: #fff; text-decoration: none; padding: 0 0.6rem; min-height: 2.75rem; min-width: 2.25rem; display: inline-flex; align-items: center; justify-content: center; -webkit-tap-highlight-color: transparent; }
.krc-demo__nav a::before { content: ""; position: absolute; inset: 0.375rem 0; z-index: -1; border: 1px solid rgb(255 255 255 / 0.25); border-radius: 4px; transition: background-color 0.1s ease-out; }
.krc-demo__nav a[aria-current] { color: var(--k-ink); font-weight: 700; }
.krc-demo__nav a[aria-current]::before { background: #fff; border-color: #fff; }
.krc-demo__nav a:not([aria-current]):active::before { background: rgb(255 255 255 / 0.2); }
.krc-demo__back { color: #fff; font-weight: 600; display: inline-flex; gap: 0.35rem; align-items: center; min-height: 2.75rem; }
.krc-demo__short { display: none; }
.krc-demo__name { margin-left: 0.3rem; }
@media (max-width: 1099px) { .krc-demo__note { display: none; } }
@media (max-width: 699px) {
	.krc-demo__more, .krc-demo__name { display: none; }
	.krc-demo__short { display: inline; }
	.krc-demo__inner { flex-wrap: nowrap; gap: 0.5rem; }
	.krc-demo__nav { flex-wrap: nowrap; gap: 0.125rem; }
}
@media (max-width: 359px) {
	.krc-demo p { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}
.krc-alertbar { background: var(--k-alert-tint); color: var(--k-ink); border-bottom: 1px solid rgb(180 35 24 / 0.25); }
.krc-alertbar__row { display: flex; gap: 0.6rem; align-items: center; min-height: 2.75rem; }
.krc-alertbar .krc-icon { color: var(--k-alert); }
.krc-alertbar p { margin: 0; display: flex; gap: 0.5rem; align-items: center; min-width: 0; flex: 1; }
.krc-alertbar strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.krc-alertbar a { flex: none; display: inline-flex; align-items: center; min-height: 2.75rem; }
@media (max-width: 699px) { .krc-alertbar { font-size: 0.9375rem; } }

/* ---------- Nagłówek ---------- */
.krc-header { background: var(--k-bg); border-bottom: 1px solid var(--k-line); position: relative; z-index: 20; }
.krc-header__util { background: var(--k-surface); font-size: 0.9375rem; }
.krc-header__urow { display: flex; justify-content: space-between; align-items: center; gap: 1rem; min-height: 2.75rem; flex-wrap: wrap; }
.krc-header__info { display: flex; gap: 1.25rem; align-items: center; margin: 0; flex-wrap: wrap; }
.krc-header__info .krc-status { margin: 0; }
.krc-header__tel { display: inline-flex; gap: 0.4rem; align-items: center; }
.krc-header__tel a { color: inherit; font-weight: 600; display: inline-flex; align-items: center; min-height: 2.75rem; }
.krc-header__tools { display: flex; gap: 1rem; align-items: center; }
.krc-header__row { display: flex; align-items: center; gap: 1.5rem; min-height: 5rem; }
.krc-brand { display: inline-flex; align-items: center; gap: 0.75rem; text-decoration: none; color: var(--k-ink); min-width: 0; }
.krc-brand__mark { color: var(--k-primary); display: inline-flex; }
.krc-brand__mark svg { width: 2.75rem; height: 2.75rem; }
.krc-brand__logo { width: 3rem; height: 3rem; object-fit: contain; }
.krc-brand__text { display: flex; flex-direction: column; line-height: 1.15; min-width: 0; }
.krc-brand__name { font-family: var(--k-head); font-weight: var(--k-head-weight); font-size: 1.1875rem; }
.krc-brand__sub { font-size: 0.875rem; color: var(--k-muted); margin-top: 0.2rem; }
.krc-nav { margin-left: auto; display: none; }
.krc-nav__list { list-style: none; margin: 0; padding: 0; display: flex; gap: 0.25rem; }
.krc-nav__list a { white-space: nowrap; display: inline-flex; align-items: center; min-height: 2.75rem; padding: 0 0.7rem; color: var(--k-ink); text-decoration: none; font-weight: 500; border-radius: var(--k-radius); }
@media (hover: hover) { .krc-nav__list a:hover { background: var(--k-surface); } }
.krc-nav__list a[aria-current] { color: var(--k-primary); box-shadow: inset 0 -3px 0 var(--k-primary); border-radius: 0; }
.krc-header__actions { display: flex; gap: 0.75rem; align-items: center; margin-left: auto; }
.krc-parentlink { display: inline-flex; gap: 0.4rem; align-items: center; color: var(--k-ink); font-weight: 600; text-decoration: none; min-height: 2.75rem; }
.krc-parentlink .krc-icon { color: var(--k-primary); }
.krc-header__actions .krc-parentlink, .krc-header__actions .krc-switch { display: none; }
.krc-menubtn { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.1rem; min-width: 3rem; min-height: 3rem; background: none; border: 0; color: var(--k-ink); font: inherit; font-size: 0.875rem; font-weight: 600; cursor: pointer; padding: 0.25rem; border-radius: var(--k-radius); }
.krc-menubtn .krc-icon { width: 1.5rem; height: 1.5rem; }
@media (min-width: 1180px) {
	.krc-nav { display: block; }
	.krc-brand__name { white-space: nowrap; }
	.krc-header--v1 .krc-header__row, .krc-header--v3 .krc-header__row, .krc-header--v4 .krc-header__row { flex-wrap: wrap; row-gap: 0; }
	.krc-header--v1 .krc-nav, .krc-header--v3 .krc-nav, .krc-header--v4 .krc-nav { order: 3; flex-basis: 100%; margin-left: 0; border-top: 1px solid var(--k-line); }
	.krc-header--v1 .krc-nav__list, .krc-header--v3 .krc-nav__list, .krc-header--v4 .krc-nav__list { margin-left: -0.7rem; }
	.krc-header--v1 .krc-header__actions, .krc-header--v3 .krc-header__actions, .krc-header--v4 .krc-header__actions { margin-left: auto; }
	.krc-header__actions { margin-left: 0; }
	.krc-menubtn { display: none; }
	.krc-header__actions .krc-parentlink, .krc-header__actions .krc-switch { display: inline-flex; }
}
@media (max-width: 479px) {
	.krc-header__row { gap: 0.5rem; min-height: 4.25rem; }
	.krc-brand__mark svg { width: 2.35rem; height: 2.35rem; }
	.krc-brand__name { font-size: 1.0625rem; }
	.krc-brand__sub { display: none; }
	.krc-header__actions .krc-btn--cta { padding-inline: 0.8rem; }
	.krc-header__util .krc-header__tools { display: none; }
}

.krc-switch { display: inline-flex; align-items: center; gap: 0.5rem; background: none; border: 0; padding: 0.25rem 0; color: var(--k-ink); font: inherit; font-size: 0.9375rem; font-weight: 500; cursor: pointer; min-height: 2.75rem; }
.krc-switch__track { width: 2.5rem; height: 1.4rem; border-radius: 1rem; background: var(--k-line); position: relative; transition: background 0.15s; }
.krc-switch__track span { position: absolute; top: 0.2rem; left: 0.2rem; width: 1rem; height: 1rem; border-radius: 50%; background: #fff; transition: transform 0.15s; box-shadow: 0 1px 2px rgb(0 0 0 / 0.25); }
.krc-switch[aria-checked="true"] .krc-switch__track { background: var(--k-primary); }
.krc-switch[aria-checked="true"] .krc-switch__track span { transform: translateX(1.1rem); }
.krc-switch--wide { width: 100%; justify-content: space-between; }

.krc-menu { position: fixed; inset: 0; background: var(--k-bg); z-index: 100; overflow-y: auto; opacity: 1; translate: 0; transition: opacity 0.2s ease-out, translate 0.2s ease-out, display 0.2s allow-discrete; }
/* Wejście i wyjście tą samą drogą: lekko z góry, od przycisku Menu w nagłówku. */
@starting-style { .krc-menu { opacity: 0; translate: 0 -8px; } }
.krc-menu[hidden] { display: none; opacity: 0; translate: 0 -8px; }
.krc-menu-open { overflow: hidden; }
.krc-menu__inner { padding: 1rem clamp(1rem, 4vw, 2rem) 2rem; max-width: 40rem; margin: 0 auto; }
.krc-menu__top { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 1rem; }
.krc-menu__close { display: inline-flex; gap: 0.35rem; align-items: center; min-height: 2.75rem; background: var(--k-surface); border: 0; border-radius: var(--k-radius); padding: 0 0.9rem; font: inherit; font-weight: 600; color: var(--k-ink); cursor: pointer; }
.krc-menu__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--k-line); }
.krc-menu__list a { display: flex; justify-content: space-between; align-items: center; min-height: 3.25rem; color: var(--k-ink); text-decoration: none; font-size: 1.125rem; font-weight: 600; border-bottom: 1px solid var(--k-line); }
.krc-menu__list a[aria-current] { color: var(--k-primary); }
.krc-menu__actions { display: grid; gap: 0.75rem; margin: 1.5rem 0 1rem; }
.krc-menu__row { border-top: 1px solid var(--k-line); padding-top: 0.5rem; }
.krc-menu__tel { display: flex; gap: 0.5rem; align-items: center; font-size: 1.125rem; font-weight: 600; }

.krc-bottombar { display: none; }
@media (max-width: 699px) {
	.krc-bottombar { display: grid; grid-template-columns: 1fr 1fr; position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; background: var(--k-bg); border-top: 1px solid var(--k-line); box-shadow: 0 -4px 16px rgb(0 0 0 / 0.06); }
	.krc-bottombar a { display: flex; align-items: center; justify-content: center; gap: 0.5rem; min-height: 3.5rem; font-weight: 700; text-decoration: none; color: var(--k-ink); }
	.krc-bottombar a.is-cta { background: var(--k-cta); color: var(--k-cta-ink); }
	.krc-has-bottombar { padding-bottom: calc(3.5rem + env(safe-area-inset-bottom)); }
	/* Materiał: półprzezroczysty pasek, treść przewija się pod nim. */
	.krc-bottombar { background: rgb(255 255 255 / 0.84); -webkit-backdrop-filter: blur(16px) saturate(1.6); backdrop-filter: blur(16px) saturate(1.6); padding-bottom: env(safe-area-inset-bottom); }
}

/* ---------- Stopka ---------- */
.krc-footer { background: var(--k-ink); color: rgb(255 255 255 / 0.86); padding: 3rem 0 1.5rem; font-size: 0.9375rem; }
.krc-footer a { color: #fff; }
.krc-footer__cols { display: grid; gap: 2rem; }
@media (min-width: 800px) { .krc-footer__cols { grid-template-columns: 1.3fr 1fr 1fr; } }
.krc-footer p { margin: 0.25rem 0; }
.krc-brand--footer { color: #fff; margin-bottom: 0.75rem; }
.krc-brand--footer .krc-brand__mark { color: #fff; }
.krc-brand--footer .krc-brand__mark text { fill: var(--k-ink); }
.krc-brand--footer .krc-brand__sub { color: rgb(255 255 255 / 0.7); }
.krc-footer__h { color: #fff; font-size: 1rem; margin: 0 0 0.75rem; font-family: var(--k-body); }
.krc-footer__links { list-style: none; margin: 0; padding: 0; }
.krc-footer__links li { margin: 0; }
.krc-footer__links a { display: inline-flex; min-height: 2.75rem; align-items: center; text-decoration: none; }
@media (hover: hover) { .krc-footer__links a:hover { text-decoration: underline; } }
.krc-footer__bottom { border-top: 1px solid rgb(255 255 255 / 0.18); margin-top: 2rem; padding-top: 1rem; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.5rem 2rem; font-size: 0.875rem; color: rgb(255 255 255 / 0.7); }

/* ---------- Karta placówki, wolne miejsca, stan ---------- */
.krc-karta { margin: 0; display: grid; border-top: 1px solid var(--k-line); }
.krc-karta__row { display: grid; grid-template-columns: minmax(7rem, 11rem) 1fr; gap: 1rem; padding: 0.8rem 0; border-bottom: 1px solid var(--k-line); }
.krc-karta dt { font-weight: 600; color: var(--k-muted); font-size: 0.9375rem; }
.krc-karta dd { margin: 0; color: var(--k-ink); }
.krc-karta dd a { margin-left: 0.35rem; font-size: 0.9375rem; }
@media (max-width: 479px) { .krc-karta__row { grid-template-columns: 1fr; gap: 0.15rem; } }
@media (min-width: 900px) {
	.krc-karta--kolumny { grid-template-columns: 1fr 1fr; column-gap: 3rem; border-top: 0; }
	.krc-karta--kolumny .krc-karta__row:nth-child(-n+2) { border-top: 1px solid var(--k-line); }
}
.krc-miejsca { display: flex; gap: 0.6rem; align-items: baseline; margin: 0; }
.krc-miejsca .krc-dot { transform: translateY(-0.1rem); }
.krc-miejsca__data { color: var(--k-muted); font-size: 0.875rem; white-space: nowrap; }
.krc-status { display: inline-flex; gap: 0.5rem; align-items: center; margin: 0; font-weight: 500; }

/* ---------- Aktualności ---------- */
.krc-news { display: grid; gap: 1.5rem; }
.krc-news--karty { grid-template-columns: 1fr; }
@media (min-width: 640px) { .krc-news--karty { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .krc-news--karty { grid-template-columns: repeat(3, 1fr); } }
.krc-news--karty .krc-news__item:not(.has-img) { border-top: 3px solid var(--k-primary); padding-top: 0.75rem; }
.krc-news__item { display: flex; flex-direction: column; gap: 0.75rem; }
.krc-news__img { margin: 0; aspect-ratio: 3 / 2; overflow: hidden; border-radius: var(--k-radius); background: var(--k-surface); }
.krc-news__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.krc-news__img.is-placeholder { display: grid; place-items: center; background: var(--k-tint); color: var(--k-primary); }
.krc-news__img.is-placeholder .krc-icon { width: 3.5rem; height: 3.5rem; }
.krc-news__meta { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; margin: 0; font-size: 0.875rem; color: var(--k-muted); }
.krc-news__until { font-size: 0.875rem; }
.krc-news__title { font-size: 1.1875rem; line-height: 1.3; margin: 0.25rem 0 0; font-family: var(--k-head); }
.krc-news__title a { color: var(--k-ink); text-decoration: none; }
@media (hover: hover) { .krc-news__title a:hover { text-decoration: underline; text-decoration-color: var(--k-primary); } }
.krc-news__excerpt { margin: 0.4rem 0 0; color: var(--k-text); }
.krc-news--wiersze { gap: 0; border-top: 1px solid var(--k-line); }
.krc-news--wiersze .krc-news__item { padding: 1rem 0; border-bottom: 1px solid var(--k-line); }
.krc-news--pelna { gap: 0; border-top: 1px solid var(--k-line); }
.krc-news--pelna .krc-news__item { padding: 1.5rem 0; border-bottom: 1px solid var(--k-line); }
@media (min-width: 700px) {
	.krc-news--pelna .krc-news__item.has-img, .krc-news--wiersze .krc-news__item.has-img { display: grid; grid-template-columns: 14rem 1fr; gap: 1.5rem; align-items: start; }
}
.krc-pager { display: flex; justify-content: space-between; margin-top: 1.5rem; }
.krc-pager a { font-weight: 600; }
.krc-archive { margin-top: 2rem; border: 1px solid var(--k-line); border-radius: var(--k-radius); padding: 0 1rem; }
.krc-archive summary { cursor: pointer; font-weight: 600; min-height: 2.75rem; display: flex; align-items: center; }
.krc-archive[open] { padding-bottom: 1rem; }
.krc-single-meta { color: var(--k-muted); display: flex; gap: 0.4rem; flex-wrap: wrap; align-items: center; }

/* ---------- Jadłospis ---------- */
.krc-week__range { display: flex; gap: 0.5rem; align-items: center; font-weight: 600; color: var(--k-muted); margin: 0 0 1rem; }
.krc-week__days { display: grid; gap: 1rem; }
@media (min-width: 1000px) { .krc-week__days { grid-template-columns: repeat(5, 1fr); } }
@media (min-width: 640px) and (max-width: 999px) { .krc-week__days { grid-template-columns: 1fr 1fr; } }
.krc-day { border: 1px solid var(--k-line); border-radius: var(--k-radius); padding: 1rem; background: var(--k-bg); }
.krc-day.is-today { border-color: var(--k-primary); box-shadow: inset 0 4px 0 var(--k-primary); }
.krc-day__name { font-size: 1.0625rem; margin: 0 0 0.75rem; display: flex; gap: 0.5rem; align-items: baseline; flex-wrap: wrap; font-family: var(--k-head); }
.krc-day__name span { color: var(--k-muted); font-weight: 400; font-size: 0.875rem; font-family: var(--k-body); }
.krc-day__today { font-size: 0.875rem; font-family: var(--k-body); color: #fff; background: var(--k-primary); padding: 0.1rem 0.45rem; border-radius: 4px; }
.krc-day__meals { margin: 0; display: grid; gap: 0.6rem; }
.krc-day__meals dt { font-size: 0.875rem; font-weight: 700; color: var(--k-muted); }
.krc-day__meals dd { margin: 0.1rem 0 0; font-size: 0.9375rem; line-height: 1.45; }
.krc-alerg { color: var(--k-muted); font-size: 0.875rem; white-space: nowrap; }
.krc-legend { margin-top: 1rem; font-size: 0.9375rem; }
.krc-legend summary { cursor: pointer; font-weight: 600; min-height: 2.75rem; display: flex; align-items: center; }
.krc-legend ul { columns: 2 14rem; padding-left: 1.1rem; }
.krc-today-menu { background: var(--k-bg); border-radius: var(--k-radius); }
.krc-today-menu__h { display: flex; gap: 0.5rem; align-items: center; font-weight: 700; margin: 0 0 0.75rem; }
.krc-today-menu__h .krc-icon { color: var(--k-primary); }
.krc-today-menu dl { margin: 0; display: grid; gap: 0.5rem; }
.krc-today-menu dt { font-size: 0.875rem; color: var(--k-muted); font-weight: 600; }
.krc-today-menu dd { margin: 0; }

/* ---------- Dokumenty ---------- */
.krc-docgroup { font-size: 1.25rem; margin: 2rem 0 0.75rem; scroll-margin-top: 1rem; }
.krc-doclist { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--k-line); }
.krc-doc { display: flex; gap: 0.75rem; align-items: flex-start; padding: 0.85rem 0; border-bottom: 1px solid var(--k-line); }
.krc-doc__ic { color: var(--k-primary); margin-top: 0.15rem; }
.krc-doc.is-locked .krc-doc__ic { color: var(--k-muted); }
.krc-doc__body { display: flex; flex-direction: column; gap: 0.15rem; }
.krc-doc__title { font-weight: 600; color: var(--k-ink); }
.krc-doc__meta { font-size: 0.875rem; color: var(--k-muted); }
.krc-doccats { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.75rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); }
.krc-doccats a { display: flex; gap: 0.75rem; align-items: center; padding: 1rem; border: 1px solid var(--k-line); border-radius: var(--k-radius); text-decoration: none; color: var(--k-ink); background: var(--k-bg); min-height: 4rem; }
@media (hover: hover) { .krc-doccats a:hover { border-color: var(--k-primary); } }
.krc-doccats .krc-icon { color: var(--k-primary); }
.krc-doccats span span { display: block; color: var(--k-muted); font-size: 0.875rem; }

/* ---------- Kadra ---------- */
.krc-team { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); }
.krc-team__img { margin: 0 0 0.85rem; aspect-ratio: 4 / 5; overflow: hidden; border-radius: var(--k-radius); background: var(--k-surface); }
.krc-team__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.krc-team__name { font-size: 1.125rem; margin: 0; font-family: var(--k-head); }
.krc-team__role { margin: 0.2rem 0 0; color: var(--k-primary-dark); font-weight: 600; font-size: 0.9375rem; }
.krc-team__qual { margin: 0.4rem 0 0; color: var(--k-muted); font-size: 0.9375rem; }
.krc-team__bio { margin: 0.5rem 0 0; font-size: 0.9375rem; }

/* ---------- Plan dnia, grupy, tabele, opinie, wydarzenia ---------- */
.krc-plan { list-style: none; margin: 0; padding: 0; border-left: 2px solid var(--k-line); }
.krc-plan li { display: grid; grid-template-columns: 8.5rem 1fr; gap: 1rem; padding: 0.6rem 0 0.6rem 1.25rem; position: relative; }
.krc-plan li::before { content: ""; position: absolute; left: -0.4rem; top: 1.05rem; width: 0.7rem; height: 0.7rem; border-radius: 50%; background: var(--k-bg); border: 2px solid var(--k-primary); }
.krc-plan__time { font-weight: 700; color: var(--k-ink); font-variant-numeric: tabular-nums; }
@media (max-width: 479px) { .krc-plan li { grid-template-columns: 1fr; gap: 0.1rem; } }
.krc-groups { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .krc-groups { grid-template-columns: repeat(2, 1fr); } }
.krc-groups li { border: 1px solid var(--k-line); border-radius: var(--k-radius); padding: 1.1rem; }
.krc-groups h3 { margin: 0; font-size: 1.125rem; }
.krc-groups__facts { margin: 0.25rem 0 0.5rem; color: var(--k-primary-dark); font-weight: 600; font-size: 0.9375rem; }
.krc-groups p:last-child { margin-bottom: 0; }
.krc-table-wrap { overflow-x: auto; }
.krc-table { width: 100%; border-collapse: collapse; font-size: 0.9375rem; }
.krc-table th { text-align: left; font-size: 0.875rem; color: var(--k-muted); font-weight: 700; padding: 0.6rem 0.75rem; border-bottom: 2px solid var(--k-line); }
.krc-table td { padding: 0.85rem 0.75rem; border-bottom: 1px solid var(--k-line); vertical-align: top; }
.krc-table td:first-child, .krc-table th:first-child { padding-left: 0; }
.krc-table__sub { display: block; color: var(--k-muted); font-size: 0.875rem; margin-top: 0.2rem; }
.krc-num { white-space: nowrap; font-weight: 600; font-variant-numeric: tabular-nums; }
.krc-quotes { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr)); }
.krc-quote { margin: 0; padding: 1.25rem; border-radius: var(--k-radius); background: var(--k-surface); }
.krc-quote blockquote { margin: 0; padding: 0; border: 0; }
.krc-quote blockquote p { margin: 0; font-size: 1.0625rem; line-height: 1.55; }
.krc-quote figcaption { margin-top: 0.75rem; color: var(--k-muted); font-size: 0.9375rem; font-weight: 600; }
.krc-events { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
.krc-events li { display: grid; grid-template-columns: 6rem 1fr; gap: 1rem; align-items: start; }
.krc-events__date { margin: 0; text-align: center; border: 2px solid var(--k-primary); border-radius: var(--k-radius); padding: 0.4rem 0.2rem; line-height: 1.1; }
.krc-events__d { display: block; font-size: 1.5rem; font-weight: 700; color: var(--k-ink); font-family: var(--k-head); }
.krc-events__m { display: block; font-size: 0.875rem; color: var(--k-text); }
.krc-events h3 { margin: 0; font-size: 1.125rem; }
.krc-events__when { margin: 0.15rem 0 0.35rem; color: var(--k-muted); font-size: 0.9375rem; }
.krc-events p { margin-top: 0; }

/* ---------- Opłaty i kalkulator ---------- */
.krc-fees { display: grid; gap: 2rem; }
@media (min-width: 960px) { .krc-fees { grid-template-columns: 1.15fr 1fr; align-items: start; } }
.krc-calc { border: 2px solid var(--k-primary); border-radius: var(--k-radius-lg); padding: 1.25rem; background: var(--k-bg); }
.krc-calc__h { margin: 0; font-size: 1.25rem; }
.krc-calc__lead { color: var(--k-muted); margin: 0.25rem 0 1rem; }
.krc-calc fieldset { border: 0; margin: 0; padding: 0; display: grid; gap: 0.75rem; }
.krc-check { display: flex; gap: 0.7rem; align-items: flex-start; cursor: pointer; }
.krc-check input { width: 1.35rem; height: 1.35rem; margin: 0.1rem 0 0; flex: none; accent-color: var(--k-primary); }
.krc-check__desc { display: block; font-size: 0.875rem; color: var(--k-muted); margin-top: 0.15rem; }
.krc-calc__out { margin: 1.25rem 0 0; padding-top: 1rem; border-top: 1px solid var(--k-line); font-size: 1.0625rem; }
.krc-calc__out strong { font-size: 1.75rem; color: var(--k-ink); display: block; font-family: var(--k-head); }
.krc-calc__note { color: var(--k-muted); font-size: 0.9375rem; margin: 0.5rem 0 0; }

/* ---------- Skróty, dziś, galeria zamknięta ---------- */
.krc-tiles { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.75rem; grid-template-columns: 1fr; }
@media (min-width: 520px) { .krc-tiles { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 960px) { .krc-tiles { grid-template-columns: repeat(3, 1fr); } }
.krc-tiles a { display: grid; grid-template-columns: auto 1fr; gap: 0.15rem 0.85rem; align-items: center; padding: 1rem 1.1rem; border-radius: var(--k-radius); background: var(--k-bg); border: 1px solid var(--k-line); text-decoration: none; color: var(--k-ink); min-height: 4.5rem; }
@media (hover: hover) { .krc-tiles a:hover { border-color: var(--k-primary); } }
.krc-tiles__ic { grid-row: span 2; color: var(--k-primary); width: 1.6rem; height: 1.6rem; }
.krc-tiles__t { font-weight: 700; }
.krc-tiles__d { font-size: 0.875rem; color: var(--k-muted); }
.krc-today { display: grid; gap: 1rem; }
.krc-today__tel { display: flex; gap: 0.5rem; align-items: center; margin: 0; }
.krc-locked { border: 1px dashed var(--k-line); border-radius: var(--k-radius-lg); padding: 1.25rem; background: var(--k-bg); }
.krc-locked__h { display: flex; gap: 0.5rem; align-items: center; font-weight: 700; margin: 0 0 0.75rem; }
.krc-locked__h .krc-icon { color: var(--k-primary); }
.krc-locked__list { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; gap: 0.5rem; }
.krc-locked__list li { display: grid; grid-template-columns: auto 1fr; gap: 0 0.6rem; align-items: center; }
.krc-locked__list .krc-icon { grid-row: span 2; color: var(--k-muted); }
.krc-locked__list .krc-muted { font-size: 0.875rem; }
.krc-locked__more { margin: 0; }

/* ---------- Kontakt, SOM, telefony pomocowe ---------- */
.krc-contact { display: grid; gap: 2rem; }
@media (min-width: 900px) { .krc-contact { grid-template-columns: 1fr 1fr; } }
.krc-contact__row { display: flex; gap: 0.75rem; align-items: flex-start; margin: 0 0 1rem; }
.krc-contact__row > .krc-icon { color: var(--k-primary); margin-top: 0.2rem; }
.krc-bigtel { font-size: 1.375rem; font-weight: 700; color: var(--k-ink); text-decoration: none; }
.krc-contact__label { margin: 0 0 0.35rem; font-weight: 700; }
.krc-hours { margin: 0 0 0.5rem; display: grid; gap: 0.25rem; }
.krc-hours div { display: flex; gap: 1rem; }
.krc-hours dt { min-width: 10rem; }
.krc-hours dd { margin: 0; font-weight: 600; }
.krc-contact__reg { margin: 0; background: var(--k-surface); border-radius: var(--k-radius); padding: 1.25rem; display: grid; gap: 0.75rem; align-self: start; }
.krc-contact__reg dt { font-size: 0.875rem; color: var(--k-muted); font-weight: 600; }
.krc-contact__reg dd { margin: 0.1rem 0 0; }
.krc-som { display: grid; gap: 1.5rem; }
@media (min-width: 900px) { .krc-som { grid-template-columns: 1fr 1fr; } .krc-som__docs { grid-column: 1 / -1; } }
.krc-som__person { background: var(--k-surface); border-radius: var(--k-radius-lg); padding: 1.25rem; }
.krc-som__person p { margin: 0.2rem 0; }
.krc-som__label { display: flex; gap: 0.5rem; align-items: center; color: var(--k-muted); font-weight: 600; font-size: 0.9375rem; }
.krc-som__label .krc-icon { color: var(--k-primary); }
.krc-som__name { font-size: 1.375rem; font-weight: 700; color: var(--k-ink); font-family: var(--k-head); }
.krc-som__dates { margin: 0; display: grid; gap: 0; border-top: 1px solid var(--k-line); align-self: start; }
.krc-som__dates div { display: flex; justify-content: space-between; gap: 1rem; padding: 0.75rem 0; border-bottom: 1px solid var(--k-line); }
.krc-som__dates dt { color: var(--k-muted); }
.krc-som__dates dd { margin: 0; font-weight: 700; text-align: right; }
.krc-help { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr)); }
.krc-help li { border: 1px solid var(--k-line); border-radius: var(--k-radius); padding: 1rem; }
.krc-help p { margin: 0; }
.krc-help__name { font-weight: 600; }
.krc-help__num { margin: 0.25rem 0 !important; }
.krc-help__desc { color: var(--k-muted); font-size: 0.9375rem; }

/* ---------- Formularze ---------- */
.krc-steps { margin: 0 0 2rem; padding-left: 1.4rem; display: grid; gap: 0.5rem; }
.krc-steps li::marker { font-weight: 700; color: var(--k-primary); }
.krc-form { max-width: 46rem; }
.krc-form__grid { display: grid; gap: 0 1.25rem; }
@media (min-width: 640px) { .krc-form__grid { grid-template-columns: 1fr 1fr; } .krc-field--full { grid-column: 1 / -1; } }
.krc-field { margin: 0 0 1.1rem; display: flex; flex-direction: column; gap: 0.35rem; }
.krc-field label { font-weight: 600; color: var(--k-ink); }
.krc-field input:not([type="checkbox"]), .krc-field select, .krc-field textarea { font: inherit; font-size: 1rem; padding: 0.7rem 0.8rem; min-height: 2.9rem; border: 1.5px solid #8a929c; border-radius: var(--k-radius); background: #fff; color: var(--k-ink); box-sizing: border-box; width: 100%; }
.krc-field [aria-invalid="true"] { border-color: var(--k-alert); box-shadow: 0 0 0 2px rgb(180 35 24 / 0.2); }
.krc-field__hint, .krc-optional { color: var(--k-muted); font-size: 0.875rem; font-weight: 400; }
.krc-field--check label { display: flex; gap: 0.6rem; align-items: flex-start; font-weight: 400; }
.krc-field--check input { width: 1.35rem; height: 1.35rem; margin: 0.1rem 0 0; flex: none; accent-color: var(--k-primary); }
.krc-form__submit { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; }
.krc-form__msg { display: flex; gap: 0.6rem; align-items: flex-start; padding: 0.85rem 1rem; border-radius: var(--k-radius); margin: 0 0 1.25rem; }
.krc-form__msg.is-ok { background: #e7f5ec; color: #12512f; }
.krc-form__msg.is-info { background: var(--k-surface); color: var(--k-ink); }
.krc-form__msg.is-error { background: var(--k-alert-tint); color: #7a160e; }
.krc-hp { position: absolute; left: -9999px; }

/* ---------- Strefa rodzica i galeria ---------- */
.krc-login { max-width: 32rem; }
.krc-demo-login { display: flex; gap: 0.6rem; align-items: flex-start; background: var(--k-tint); color: var(--k-ink); padding: 0.85rem 1rem; border-radius: var(--k-radius); }
.krc-zone__hello { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; align-items: center; background: var(--k-surface); border-radius: var(--k-radius); padding: 1rem 1.25rem; }
.krc-zone__hello p { margin: 0; }
.krc-zone__sec { margin-top: 2.5rem; }
.krc-albums { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr)); }
.krc-albums a { display: flex; flex-direction: column; gap: 0.35rem; text-decoration: none; color: var(--k-ink); }
.krc-albums__img { aspect-ratio: 3 / 2; border-radius: var(--k-radius); overflow: hidden; background: var(--k-surface); display: block; }
.krc-albums__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.krc-albums__t { font-weight: 700; font-size: 1.0625rem; }
.krc-albums__m { color: var(--k-muted); font-size: 0.875rem; }
.krc-photos { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; gap: 0.75rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 14rem), 1fr)); }
.krc-photos a { display: block; aspect-ratio: 3 / 2; overflow: hidden; border-radius: var(--k-radius); }
.krc-photos img { width: 100%; height: 100%; object-fit: cover; display: block; -webkit-user-drag: none; user-select: none; }
/* Podgląd zdjęć: pasek przewijany palcem (scroll-snap). Przeglądarka daje śledzenie palca 1:1, pęd,
   dobicie do zdjęcia i sprężynowanie na końcu listy; ruch można przerwać w każdej chwili. */
.krc-lightbox { border: 0; padding: 0; background: #111; color: #fff; width: min(96vw, 1200px); max-width: none; max-height: 94vh; overflow: hidden; border-radius: var(--k-radius); transform-origin: var(--krc-ox, 50%) var(--krc-oy, 50%); }
.krc-lightbox[open] { display: flex; flex-direction: column; animation: krc-lb-in 0.22s ease-out; }
.krc-lightbox.is-closing { animation: krc-lb-out 0.18s ease-in forwards; }
.krc-lightbox::backdrop { background: rgb(0 0 0 / 0.8); }
.krc-lightbox[open]::backdrop { animation: krc-fade-in 0.22s ease-out; }
.krc-lightbox.is-closing::backdrop { animation: krc-fade-out 0.18s ease-in forwards; }
@keyframes krc-lb-in { from { opacity: 0; transform: scale(0.6); } }
@keyframes krc-lb-out { to { opacity: 0; transform: scale(0.6); } }
@keyframes krc-fade-in { from { opacity: 0; } }
@keyframes krc-fade-out { to { opacity: 0; } }
.krc-lightbox__track { list-style: none; margin: 0; padding: 0; display: flex; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none; flex: 1; min-height: 0; }
.krc-lightbox__track::-webkit-scrollbar { display: none; }
/* Wyższa szczegółowość niż style list w treści strony (.kp-prose ul, li + li), które dodawały wcięcie i odstęp. */
.krc-lightbox ul.krc-lightbox__track { padding: 0; margin: 0; }
/* Pasek przewijany jest osiągalny klawiszem Tab (Chrome); ramka fokusu w środku, bo okno przycina krawędzie.
   Po otwarciu fokus trafia na „Zamknij” (autofocus), a nie na pasek. */
.krc-lightbox__track:focus-visible { outline: 2px solid #fff; outline-offset: -4px; }
.krc-lightbox .krc-lightbox__track > li { margin: 0; }
/* Wysokość z góry: puste (jeszcze ładujące się) slajdy o zerowej wysokości nie poszerzają paska i nie dałoby się otworzyć n-tego zdjęcia. */
.krc-lightbox__track li { flex: 0 0 100%; min-height: min(56vh, 32rem); scroll-snap-align: center; scroll-snap-stop: always; display: grid; place-items: center; }
.krc-lightbox__track img { display: block; width: 100%; height: auto; max-height: calc(94vh - 4.5rem); object-fit: contain; -webkit-user-drag: none; user-select: none; }
.krc-lightbox__bar { display: flex; gap: 0.5rem; justify-content: center; align-items: center; padding: 0.75rem; color: #fff; flex-wrap: wrap; }
.krc-lightbox__bar button { display: inline-flex; gap: 0.35rem; align-items: center; min-height: 2.75rem; padding: 0 1rem; border: 1px solid rgb(255 255 255 / 0.4); border-radius: var(--k-radius); background: none; color: #fff; font: inherit; cursor: pointer; }
.krc-lightbox__bar button:disabled { opacity: 0.35; cursor: default; }
.krc-lightbox__bar [data-krc-lb-count] { min-width: 4rem; text-align: center; font-variant-numeric: tabular-nums; }

/* ---------- Formularz: błąd przy polu ---------- */
.krc-field__err { color: #9a1b10; font-size: 0.875rem; font-weight: 600; }
.krc-field__err:empty { display: none; }

/* ---------- Aktualności: cała karta klikalna ---------- */
.krc-news--karty .krc-news__item { position: relative; }
.krc-news--karty .krc-news__title a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }

/* ---------- Reakcja na dotknięcie i kliknięcie ----------
   Informacja zwrotna od razu przy naciśnięciu (nie po puszczeniu). Własny stan :active zastępuje
   szary prostokąt Safari; w kr-core.js jest pusty nasłuch touchstart, bez którego iOS nie włącza :active. */
:where(.krc-btn, .krc-tiles a, .krc-doccats a, .krc-albums a, .krc-photos a, .krc-menubtn, .krc-menu__close, .krc-menu__list a, .krc-nav__list a, .krc-bottombar a, .krc-lightbox__bar button, .krc-news--karty .krc-news__item, .krc-footer__links a, .krc-switch, .krc-parentlink, .krc-archive summary, .krc-legend summary) { -webkit-tap-highlight-color: transparent; }
:where(.krc-btn, .krc-tiles a, .krc-doccats a, .krc-albums a, .krc-photos a, .krc-menubtn, .krc-menu__close, .krc-lightbox__bar button, .krc-news--karty .krc-news__item) { transition: transform 0.1s ease-out, background-color 0.1s ease-out, filter 0.1s ease-out; }
:where(.krc-btn--line, .krc-tiles a, .krc-doccats a, .krc-albums a, .krc-photos a, .krc-menubtn, .krc-menu__close, .krc-lightbox__bar button:not(:disabled)):active { transform: scale(0.97); }
.krc-news--karty .krc-news__item:has(.krc-news__title a:active) { transform: scale(0.98); }
.krc-btn--cta:active { filter: brightness(0.92); }
:where(.krc-menu__list a, .krc-nav__list a, .krc-bottombar a:not(.is-cta), .krc-parentlink, .krc-archive summary, .krc-legend summary):active { background-color: var(--k-tint); }
.krc-bottombar a.is-cta:active { filter: brightness(0.92); }
:where(.krc-footer__links a):active { opacity: 0.7; }

/* ---------- Ustawienia systemu: mniej ruchu, mniej przezroczystości, większy kontrast ---------- */
@media (prefers-reduced-motion: reduce) {
	/* Bez przesunięć i skalowania: zostają zmiany koloru i krótkie przenikania. */
	:where(.krc-btn, .krc-tiles a, .krc-doccats a, .krc-albums a, .krc-photos a, .krc-menubtn, .krc-menu__close, .krc-lightbox__bar button, .krc-news--karty .krc-news__item) { transition-property: opacity, color, background-color, border-color, filter; }
	:where(.krc-btn, .krc-tiles a, .krc-doccats a, .krc-albums a, .krc-photos a, .krc-menubtn, .krc-menu__close, .krc-lightbox__bar button, .krc-news--karty .krc-news__item):active { transform: none; }
	.krc-news--karty .krc-news__item:has(.krc-news__title a:active) { transform: none; }
	.krc-menu, .krc-menu[hidden] { translate: none; }
	@starting-style { .krc-menu { translate: none; } }
	.krc-lightbox[open] { animation-name: krc-fade-in; }
	.krc-lightbox.is-closing { animation-name: krc-fade-out; }
	.krc-switch__track, .krc-switch__track span { transition: none; }
}
@media (prefers-reduced-transparency: reduce) {
	.krc-bottombar { background: var(--k-bg); -webkit-backdrop-filter: none; backdrop-filter: none; }
}
@media (prefers-contrast: more) {
	.krc-bottombar { background: var(--k-bg); -webkit-backdrop-filter: none; backdrop-filter: none; border-top: 2px solid var(--k-ink); }
	.krc-alertbar { border-bottom: 2px solid var(--k-alert); }
}
