/* ==========================================================================
   ceemes. — public design system (portal)
   Markup kontrakt: klasy `cms-*` produkowane przez bloki. Zero frameworka.
   ========================================================================== */

:root {
  --cms-font: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --cms-heading-font: var(--cms-font);
  --cms-fg: #111827;
  --cms-bg: #ffffff;
  --cms-muted: #6b7280;
  --cms-accent: #2563eb;

  --cms-surface: #ffffff;
  --cms-page-bg: #f4f6f9;
  --cms-border: #e5e7eb;
  --cms-header-bg: #0f172a;
  --cms-header-fg: #e5e7eb;
  --cms-radius: 12px;
  --cms-radius-sm: 8px;
  --cms-shadow: 0 1px 2px rgba(15, 23, 42, 0.06), 0 6px 20px rgba(15, 23, 42, 0.06);
  --cms-gap: 20px;
  --cms-container: 1200px;

  --cms-surface-2: #f8fafc;
  --cms-muted-bg: #eef1f5;
  --cms-border-strong: #d1d5db;
  --cms-text-soft: #4b5563;
  --cms-on-accent: #ffffff;
  --cms-dark: #0f172a;
  --cms-on-dark: #e5e7eb;
  --cms-on-dark-muted: #94a3b8;
  --cms-footer-bg: var(--cms-dark);
  --cms-footer-fg: #cbd5e1;
  --cms-accent-soft: color-mix(in srgb, var(--cms-accent) 10%, var(--cms-surface));
  --cms-danger: #dc2626;
  --cms-warn: #b45309;
  --cms-scrim: rgba(2, 6, 23, 0.9);
  --cms-h1: 34px;
  --cms-h2: 22px;
  --cms-h3: 18px;
  --cms-gap-sm: 10px;
  --cms-gap-lg: 32px;
  --cms-shadow-hover: 0 8px 26px rgba(15, 23, 42, 0.12);
  --cms-on-image: #ffffff;
  /* Opcjonalne (wstrzykuje motyw, gdy ustawione — inaczej fallback w miejscu użycia):
     --cms-title (tytuły kart/artykułów), --cms-link (linki), --cms-header-border.
     Lokalne nadpisania w ciemnych sekcjach: --cms-title-c, --cms-link-c. */
}

* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  font-family: var(--cms-font);
  font-size: 16px;
  line-height: 1.6;
  color: var(--cms-fg);
  background: var(--cms-page-bg);
}

h1 { font-size: var(--cms-h1); }
h2 { font-size: var(--cms-h2); }
h3 { font-size: var(--cms-h3); }
h1, h2, h3, h4, h5, h6 {
  font-family: var(--cms-heading-font);
  line-height: 1.2;
  letter-spacing: -0.01em;
}

a { color: var(--cms-link-c, var(--cms-link, var(--cms-accent))); text-decoration: none; }
a:hover { text-decoration: underline; }

img { max-width: 100%; }

hr { border: 0; border-top: 1px solid var(--cms-border); margin: 28px 0; }

blockquote {
  margin: 24px 0;
  padding: 8px 18px;
  border-left: 4px solid var(--cms-accent);
  background: var(--cms-surface-2);
  color: var(--cms-text-soft);
}

pre {
  background: var(--cms-dark);
  color: var(--cms-on-dark);
  border-radius: var(--cms-radius-sm);
  padding: 14px 16px;
  overflow-x: auto;
  font-size: 14px;
}

/* ---------- containers ---------- */
.cms-page {
  max-width: var(--cms-container);
  margin: 0 auto;
  padding: 28px 20px 64px;
}
/* header/footer renderują własny root → zdejmujemy ograniczenie */
.cms-layout .cms-page {
  max-width: none;
  margin: 0;
  padding: 0;
}

/* ---------- sections / layout ---------- */
.cms-section {
  margin: 0 0 28px;
  padding: 0;
}
.cms-section--bg-muted {
  background: var(--cms-muted-bg);
  color: var(--cms-fg);
  border-radius: var(--cms-radius);
  padding: 24px 20px;
}
.cms-section--bg-accent {
  background: var(--cms-accent);
  color: var(--cms-on-accent);
  border-radius: var(--cms-radius);
  padding: 24px 20px;
}
/* Kolorowe tło sekcji: tytuły/linki „luźne” (bez własnej powierzchni) dziedziczą kolor
   sekcji. Karty i widgety (niżej: .cms-article-card, .cms-weather…) przywracają swoje tokeny. */
.cms-section--bg-accent,
.cms-section--bg-dark { --cms-title-c: currentColor; --cms-link-c: currentColor; }
.cms-section--bg-accent .cms-section-header,
.cms-section--bg-dark .cms-section-header--tone-dark { --cms-sh-color: currentColor; }
.cms-section--w-wide,
.cms-section--w-full { max-width: none; }
.cms-section--w-normal { max-width: var(--cms-container); }

/* tylko „gołe” h2 wstawione wprost do sekcji (stary blok Heading) — nie SectionHeader/bloki */
.cms-section > h2,
.cms-section > div > h2,
.cms-section > .cms-section__inner > div > h2 {
  font-size: var(--cms-h2);
  margin: 0 0 14px;
  padding-left: 12px;
  border-left: 4px solid var(--cms-accent);
}
.cms-section h3 { font-size: var(--cms-h3); margin: 0 0 10px; }

.cms-grid { display: grid; gap: var(--cms-gap); }
.cms-grid--cols-auto { grid-template-columns: repeat(auto-fit, minmax(var(--cms-grid-min, 260px), 1fr)); }
.cms-grid--cols-1 { grid-template-columns: 1fr; }
.cms-grid--cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cms-grid--cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cms-grid--cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.cms-columns { display: grid; gap: 28px; }
.cms-columns--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cms-columns--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cms-columns--main-side { grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr); }
.cms-columns--side-main { grid-template-columns: minmax(280px, 1fr) minmax(0, 2fr); }

.cms-stack { display: flex; flex-direction: column; }
.cms-stack--gap-sm { gap: 10px; }
.cms-stack--gap-md { gap: var(--cms-gap); }
.cms-stack--gap-lg { gap: 32px; }

/* ==========================================================================
   Header
   ========================================================================== */
/* Kolory nagłówka wyłącznie z --cms-header-bg / --cms-header-fg; wszystko pochodne
   (hover, pole wyszukiwania, ramki) liczone z currentColor → działa jasny i ciemny. */
.cms-layout--header {
  background: var(--cms-header-bg);
  color: var(--cms-header-fg);
  --cms-link-c: currentColor;
  --cms-title-c: currentColor;
  position: relative;
  z-index: 50;
}
/* ostatnia sekcja nagłówka niesie opcjonalną dolną linię (--cms-header-border) */
.cms-layout--header .cms-page > div > :last-child {
  border-bottom: 1px solid var(--cms-header-border, transparent);
}
/* Sekcje w nagłówku zachowują swoje tło (muted/accent/dark/surface), bez zaokrągleń;
   „brak tła” = tło nagłówka (potrzebne, gdy sekcja jest przyklejona). */
.cms-layout--header .cms-section { margin: 0; border-radius: 0; }
.cms-layout--header .cms-section--bg-none { background: var(--cms-header-bg); }
/* rząd elementów: zwykła sekcja (slot = pierwszy div) i pełna szerokość (__inner > slot) */
.cms-layout--header .cms-section > div:not(.cms-section__inner),
.cms-layout--header .cms-section__inner > div {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
  padding: 12px 0;
}
.cms-layout--header .cms-section > div:not(.cms-section__inner) {
  max-width: var(--cms-container);
  margin: 0 auto;
  padding: 12px 20px;
}
/* Przyklejanie jest opt-in: Section → „Przyklejona do góry”. Wrappery nagłówka znikają
   z drzewa layoutu (display: contents), żeby sekcja kleiła się względem całej strony. */
.cms-layout--header:has(.cms-section--sticky),
.cms-layout--header:has(.cms-section--sticky) > .cms-page,
.cms-layout--header:has(.cms-section--sticky) > .cms-page > div { display: contents; }
.cms-layout--header a:hover { opacity: 0.75; text-decoration: none; }

.cms-logo { display: inline-flex; align-items: center; }
.cms-logo-text { display: inline-flex; align-items: center; gap: 10px; flex: 0 0 auto; }
.cms-logo-text img { max-height: 34px; width: auto; }
.cms-logo-text span {
  font-family: var(--cms-heading-font);
  font-weight: 800;
  font-size: 22px;
  letter-spacing: 0.04em;
  color: inherit;
}

.cms-menu-links { display: flex; flex-wrap: wrap; gap: 16px; }
.cms-menu-links--inline {
  flex: 1 1 auto;
  justify-content: flex-start;
  align-items: center;
}
.cms-menu-links--stack { flex-direction: column; gap: 8px; }
.cms-menu-links a {
  font-size: 15px;
  font-weight: 500;
  padding: 4px 0;
  border-bottom: 2px solid transparent;
  transition: border-color 0.15s ease, color 0.15s ease;
}
.cms-menu-links a:hover { border-bottom-color: var(--cms-accent); }
.cms-menu-links__title { font-weight: 700; margin-right: 6px; }

.cms-search { display: inline-flex; gap: 8px; align-items: center; }
.cms-search__input {
  border: 1px solid var(--cms-border);
  border-radius: var(--cms-radius-sm);
  padding: 8px 12px;
  font: inherit;
  font-size: 14px;
  background: var(--cms-bg);
  color: var(--cms-fg);
}
.cms-layout--header .cms-search__input {
  background: color-mix(in srgb, currentColor 7%, transparent);
  border-color: color-mix(in srgb, currentColor 25%, transparent);
  color: inherit;
  min-width: 170px;
}
.cms-layout--header .cms-search__input::placeholder { color: inherit; opacity: 0.6; }
.cms-search__button {
  border: 0;
  background: var(--cms-accent);
  color: var(--cms-on-accent);
  border-radius: var(--cms-radius-sm);
  padding: 9px 16px;
  font: inherit;
  font-size: 14px;
  cursor: pointer;
}
.cms-search__button:hover { filter: brightness(0.95); }

.cms-a11y { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; }
.cms-a11y__label { color: inherit; opacity: 0.7; margin-right: 2px; }
.cms-a11y button {
  border: 1px solid color-mix(in srgb, currentColor 30%, transparent);
  background: transparent;
  color: inherit;
  border-radius: 6px;
  min-width: 30px;
  padding: 4px 7px;
  font: inherit;
  cursor: pointer;
}
.cms-a11y button[aria-pressed='true'] { background: var(--cms-accent); border-color: var(--cms-accent); color: var(--cms-on-accent); }
.cms-layout--header .cms-push__switch,
.cms-layout--footer .cms-push__switch { color: inherit; }

/* ==========================================================================
   Article cards + lists
   ========================================================================== */
.cms-articles { display: grid; gap: var(--cms-gap); margin: 0; }
.cms-articles--cols-auto { grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); }
.cms-articles--cols-1 { grid-template-columns: 1fr; }
.cms-articles--cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cms-articles--cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cms-articles--cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cms-articles--empty { color: var(--cms-muted); font-size: 14px; }

.cms-article-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  background: var(--cms-surface);
  border: 1px solid var(--cms-border);
  border-radius: var(--cms-radius);
  padding: 14px;
  /* karta ma własną powierzchnię → własne tokeny także w ciemnej/akcentowej sekcji */
  color: var(--cms-fg);
  --cms-title-c: initial;
  --cms-link-c: initial;
  box-shadow: var(--cms-shadow);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.cms-article-card:hover {
  text-decoration: none;
  transform: translateY(-2px);
  box-shadow: var(--cms-shadow-hover);
}
.cms-article-card img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: var(--cms-radius-sm);
  background: var(--cms-muted-bg);
}
.cms-article-card__cat {
  align-self: flex-start;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--cms-accent);
}
.cms-article-card__title { margin: 0; font-size: 17px; font-weight: 700; color: var(--cms-title-c, var(--cms-title, var(--cms-fg))); }
.cms-article-card__lead { margin: 0; color: var(--cms-text-soft); font-size: 14px; }
.cms-article-card__time { font-size: 12px; color: var(--cms-muted); }

/* list = wiersz (thumb z lewej) */
.cms-articles--list .cms-article-card {
  flex-direction: row;
  align-items: stretch;
  gap: 14px;
  padding: 12px;
}
.cms-articles--list .cms-article-card img {
  flex: 0 0 190px;
  width: 190px;
  aspect-ratio: 4 / 3;
  margin: 0;
}
.cms-articles--list .cms-article-card__title { font-size: 16px; }
.cms-articles--list .cms-article-card__lead { -webkit-line-clamp: 2; display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; }
@media (max-width: 560px) {
  .cms-articles--list .cms-article-card { flex-direction: column; }
  .cms-articles--list .cms-article-card img { flex: none; width: 100%; aspect-ratio: 16 / 9; }
}

.cms-category-list { display: flex; flex-wrap: wrap; gap: 12px; }
.cms-category-list a { font-weight: 600; }

/* ---------- article page ---------- */
.cms-article-title { font-size: var(--cms-h1); margin: 0 0 12px; color: var(--cms-title-c, var(--cms-title, var(--cms-fg))); }
.cms-article-sneak { font-size: 19px; color: var(--cms-text-soft); margin: 0 0 18px; }
.cms-article-date { display: block; font-size: 13px; color: var(--cms-muted); margin-bottom: 10px; }
.cms-article-meta { margin: 0 0 22px; }
.cms-article-meta__cat {
  display: inline-block;
  font-size: 11px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--cms-accent); margin-bottom: 8px;
}
.cms-article-meta h1 { font-size: 36px; margin: 0 0 10px; color: var(--cms-title-c, var(--cms-title, var(--cms-fg))); }
.cms-article-meta__lead { font-size: 19px; color: var(--cms-text-soft); margin: 0 0 12px; }
.cms-article-meta__byline { display: flex; gap: 14px; font-size: 13px; color: var(--cms-muted); }
.cms-article-meta__cover { width: 100%; border-radius: var(--cms-radius); margin-top: 14px; }
.cms-article-author { display: flex; align-items: center; gap: 10px; margin: 16px 0; }
.cms-article-author__avatar { width: 40px; height: 40px; border-radius: 999px; object-fit: cover; }
.cms-article-author__name { font-weight: 600; }
.cms-article-author__bio { margin: 2px 0 0; font-size: 13px; color: var(--cms-muted); }
.cms-article-body { font-size: 17px; }
.cms-article-body p { margin: 0 0 16px; }
.cms-article-body img { border-radius: var(--cms-radius-sm); }
.cms-article-title--placeholder,
.cms-article-meta--placeholder,
.cms-article-body--placeholder { color: var(--cms-muted); font-style: italic; }

.cms-image { border-radius: var(--cms-radius-sm); }
/* Publikacja opakowuje obrazy z biblioteki w <picture> (AVIF + WebP srcset).
   `display: contents` = opakowanie nie zmienia układu ani o piksel. */
.cms-picture { display: contents; }
.cms-image--placeholder {
  border: 1px dashed var(--cms-border);
  border-radius: var(--cms-radius-sm);
  padding: 24px;
  text-align: center;
  color: var(--cms-muted);
  background: var(--cms-surface-2);
}

/* ---------- gallery ---------- */
.cms-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.cms-gallery img { aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--cms-radius-sm); width: 100%; }
.cms-lightbox {
  position: fixed; inset: 0; background: var(--cms-scrim);
  display: flex; align-items: center; justify-content: center; z-index: 200; padding: 24px;
}
.cms-lightbox img { max-width: 100%; max-height: 100%; border-radius: var(--cms-radius-sm); }

/* ==========================================================================
   Widgets
   ========================================================================== */
.cms-weather, .cms-podcasts, .cms-classifieds, .cms-live, .cms-newsletter,
.cms-classifieds-form, .cms-chat, .cms-comments, .cms-obituary-list {
  background: var(--cms-surface);
  border: 1px solid var(--cms-border);
  border-radius: var(--cms-radius);
  padding: 18px;
  box-shadow: var(--cms-shadow);
  margin: 0 0 var(--cms-gap);
  color: var(--cms-fg);
  --cms-title-c: initial;
  --cms-link-c: initial;
}
.cms-weather__heading, .cms-classifieds__heading, .cms-live__heading,
.cms-newsletter__heading, .cms-chat__heading, .cms-comments__heading {
  font-size: 16px;
  margin: 0 0 12px;
  padding-left: 10px;
  border-left: 3px solid var(--cms-accent);
}
.cms-articles--empty, .cms-classifieds--empty, .cms-podcasts--empty { color: var(--cms-muted); font-size: 14px; }
.cms-table__muted { color: var(--cms-muted); }

/* weather */
.cms-weather__now { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px; }
.cms-weather__place { font-weight: 600; }
.cms-weather__temp { font-size: 30px; font-weight: 700; }
.cms-weather__desc { color: var(--cms-text-soft); }
.cms-weather__meta { width: 100%; font-size: 12px; color: var(--cms-muted); }
.cms-weather__days { list-style: none; margin: 14px 0 0; padding: 0; display: flex; gap: 10px; flex-wrap: wrap; }
.cms-weather__days li {
  display: flex; flex-direction: column; gap: 2px; font-size: 13px;
  background: var(--cms-surface-2); border: 1px solid var(--cms-border);
  border-radius: var(--cms-radius-sm); padding: 8px 12px; min-width: 104px;
}
.cms-weather__range { font-weight: 700; }
.cms-weather__daydesc { color: var(--cms-muted); font-size: 12px; }
.cms-weather--empty { color: var(--cms-muted); font-size: 14px; }

/* podcasts */
.cms-podcasts--grid { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); display: grid; gap: var(--cms-gap); }
.cms-podcast-card { display: flex; gap: 14px; }
.cms-podcast-card > img { width: 96px; height: 96px; object-fit: cover; border-radius: var(--cms-radius-sm); }
.cms-podcast-card__body { min-width: 0; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.cms-podcast-card__body h3 { margin: 0; font-size: 16px; }
.cms-podcast-card__body p { margin: 0; color: var(--cms-muted); font-size: 14px; }
.cms-podcast-card audio, .cms-podcast-player audio { width: 100%; }
.cms-podcast-card__ep { font-size: 11px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: var(--cms-accent); }
.cms-podcast-card__time { font-size: 12px; color: var(--cms-muted); }
.cms-podcast-player { display: flex; gap: 14px; align-items: center; }
.cms-podcast-player img { width: 80px; height: 80px; border-radius: var(--cms-radius-sm); object-fit: cover; }
.cms-podcast-player__body { display: flex; flex-direction: column; gap: 8px; flex: 1; min-width: 0; }

/* classifieds */
.cms-classifieds__grid { display: grid; gap: 14px; }
.cms-classifieds__grid--auto { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
.cms-classifieds__grid--1 { grid-template-columns: 1fr; }
.cms-classifieds__grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cms-classifieds__grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cms-classified-card { border: 1px solid var(--cms-border); border-radius: var(--cms-radius-sm); padding: 14px; display: flex; flex-direction: column; gap: 8px; }
.cms-classified-card header { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; }
.cms-classified-card h4 { margin: 0; font-size: 15px; }
.cms-classified-card p { margin: 0; color: var(--cms-text-soft); font-size: 14px; white-space: pre-line; }
.cms-classified-card footer { display: flex; gap: 10px; flex-wrap: wrap; font-size: 12px; color: var(--cms-muted); }
.cms-classified-card__price { font-weight: 700; color: var(--cms-fg); white-space: nowrap; }
.cms-classified-card__tag { background: var(--cms-accent-soft); color: var(--cms-accent); border-radius: 999px; padding: 1px 8px; }
.cms-classifieds-form form { display: grid; gap: 10px; }
.cms-classifieds-form input, .cms-classifieds-form textarea, .cms-classifieds-form select {
  border: 1px solid var(--cms-border-strong); border-radius: var(--cms-radius-sm);
  padding: 9px 11px; font: inherit; font-size: 15px; width: 100%;
}
.cms-classifieds-form textarea { min-height: 110px; resize: vertical; }
.cms-classifieds-form button {
  border: 0; background: var(--cms-accent); color: var(--cms-on-accent); border-radius: var(--cms-radius-sm);
  padding: 11px 16px; font: inherit; cursor: pointer; justify-self: start;
}
.cms-classifieds-form__promote { font-size: 13px; color: var(--cms-muted); display: flex; align-items: center; gap: 8px; }
.cms-classifieds-form__status { font-size: 13px; color: var(--cms-muted); margin: 10px 0 0; }

/* live */
.cms-live__heading { display: flex; align-items: center; gap: 8px; border: 0; padding: 0; }
.cms-live__dot { width: 9px; height: 9px; border-radius: 999px; background: var(--cms-danger); box-shadow: 0 0 0 4px rgba(220, 38, 38, 0.15); display: inline-block; }
.cms-live__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.cms-live__item { border-left: 2px solid var(--cms-border); padding-left: 12px; display: flex; flex-direction: column; gap: 3px; }
.cms-live__item--pinned { border-left-color: var(--cms-accent); }
.cms-live__time { font-size: 12px; color: var(--cms-muted); }
.cms-live__title { font-size: 14px; }
.cms-live__body { font-size: 15px; white-space: pre-line; }
.cms-live__empty { color: var(--cms-muted); font-size: 14px; margin: 0; }

/* newsletter */
.cms-newsletter__desc { margin: 0 0 12px; color: var(--cms-text-soft); font-size: 14px; }
.cms-newsletter form { display: flex; gap: 8px; flex-wrap: wrap; }
.cms-newsletter input {
  border: 1px solid var(--cms-border-strong); border-radius: var(--cms-radius-sm);
  padding: 9px 11px; font: inherit; font-size: 15px; min-width: 180px; flex: 1 1 180px;
}
.cms-newsletter button {
  border: 0; background: var(--cms-accent); color: var(--cms-on-accent); border-radius: var(--cms-radius-sm);
  padding: 10px 18px; font: inherit; cursor: pointer;
}
.cms-newsletter__status { margin: 10px 0 0; font-size: 13px; color: var(--cms-muted); }

/* AI: listen / video / chat */
.cms-listen, .cms-video { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 16px 0; }
.cms-listen button, .cms-video button {
  border: 1px solid var(--cms-accent); background: transparent; color: var(--cms-accent);
  border-radius: var(--cms-radius-sm); padding: 9px 14px; font: inherit; font-size: 14px; cursor: pointer;
}
.cms-listen audio { height: 34px; }
.cms-listen__status, .cms-video__status { font-size: 13px; color: var(--cms-muted); }
.cms-chat__log { display: flex; flex-direction: column; gap: 8px; max-height: 320px; overflow-y: auto; margin-bottom: 12px; }
.cms-chat__msg { padding: 8px 12px; border-radius: 10px; font-size: 14px; max-width: 80%; }
.cms-chat__msg--user { align-self: flex-end; background: var(--cms-accent); color: var(--cms-on-accent); }
.cms-chat__msg--bot { align-self: flex-start; background: var(--cms-muted-bg); }
.cms-chat form { display: flex; gap: 8px; }
.cms-chat input { flex: 1; border: 1px solid var(--cms-border-strong); border-radius: var(--cms-radius-sm); padding: 9px 11px; font: inherit; }
.cms-chat button { border: 0; background: var(--cms-accent); color: var(--cms-on-accent); border-radius: var(--cms-radius-sm); padding: 10px 16px; font: inherit; cursor: pointer; }

/* push */
.cms-push { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 16px 0; }
.cms-push__btn {
  border: 1px solid var(--cms-accent); background: transparent; color: var(--cms-accent);
  border-radius: var(--cms-radius-sm); padding: 9px 14px; font: inherit; font-size: 14px; cursor: pointer;
}
.cms-push--on .cms-push__btn { background: var(--cms-accent); color: var(--cms-on-accent); }
/* przełącznik (nowy markup); .cms-push__btn zostaje dla stron opublikowanych wcześniej */
.cms-push__switch {
  display: inline-flex; align-items: center; gap: 10px;
  border: 0; background: transparent; padding: 4px 0; color: var(--cms-fg);
  font: inherit; font-size: 15px; cursor: pointer;
}
.cms-push__switch:disabled { cursor: default; opacity: 0.6; }
.cms-push__switch:focus-visible { outline: 2px solid var(--cms-accent); outline-offset: 3px; border-radius: 999px; }
.cms-push__track {
  position: relative; flex: 0 0 auto; width: 40px; height: 22px; border-radius: 999px;
  background: var(--cms-border-strong); transition: background 0.15s ease;
}
.cms-push__track::after {
  content: ''; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 999px;
  background: var(--cms-surface); box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25); transition: transform 0.15s ease;
}
.cms-push__switch[aria-checked='true'] .cms-push__track { background: var(--cms-accent); }
.cms-push__switch[aria-checked='true'] .cms-push__track::after { transform: translateX(18px); }
.cms-push__hint, .cms-push__status { font-size: 13px; color: var(--cms-muted); }

/* ads */
.cms-ad {
  display: flex; align-items: center; justify-content: center;
  min-height: 90px; margin: 20px 0;
  border: 1px dashed var(--cms-border-strong); border-radius: var(--cms-radius);
  color: var(--cms-muted); font-size: 14px;
  background: repeating-linear-gradient(45deg, var(--cms-surface-2), var(--cms-surface-2) 10px, var(--cms-muted-bg) 10px, var(--cms-muted-bg) 20px);
}
.cms-ad--image, .cms-ad--html, .cms-ad--house, .cms-ad--external { border: 0; background: none; min-height: 0; padding: 0; }
.cms-ad--image img { max-width: 100%; height: auto; border-radius: var(--cms-radius); display: block; }
.cms-ad--billboard { min-height: 120px; }

/* ==========================================================================
   Engagement
   ========================================================================== */
.cms-likes { display: flex; align-items: center; gap: 12px; margin: 22px 0; padding: 12px 16px; border: 1px solid var(--cms-border); border-radius: var(--cms-radius); background: var(--cms-surface); }
.cms-likes__label { color: var(--cms-muted); }
.cms-likes button { font: inherit; cursor: pointer; border: 1px solid var(--cms-border-strong); background: var(--cms-surface); border-radius: var(--cms-radius-sm); padding: 7px 13px; }
.cms-likes--voted button { background: var(--cms-accent-soft); border-color: var(--cms-accent); color: var(--cms-accent); }

.cms-reactions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 22px 0; }
.cms-reactions__heading { color: var(--cms-muted); font-size: 14px; margin-right: 4px; }
.cms-reactions__btn {
  display: inline-flex; align-items: center; gap: 6px;
  border: 1px solid var(--cms-border-strong); background: var(--cms-surface); border-radius: 999px;
  padding: 6px 13px; font: inherit; font-size: 16px; cursor: pointer;
}
.cms-reactions__btn:hover { border-color: var(--cms-accent); }
.cms-reactions__btn--active, .cms-reactions__btn[aria-pressed='true'] { border-color: var(--cms-accent); background: var(--cms-accent-soft); }
.cms-reactions__btn:disabled { cursor: default; }
.cms-reactions__count { font-size: 13px; color: var(--cms-muted); }

.cms-candle { display: flex; align-items: center; gap: 12px; margin: 20px 0; padding: 14px 16px; background: var(--cms-surface); border: 1px solid var(--cms-border); border-radius: var(--cms-radius); }
.cms-candle button { font: inherit; cursor: pointer; border: 1px solid var(--cms-border-strong); background: var(--cms-surface); border-radius: var(--cms-radius-sm); padding: 8px 14px; }
.cms-candle--lit button { background: var(--cms-accent-soft); border-color: var(--cms-accent); }
.cms-candle__count { font-weight: 700; }

.cms-save__btn { border: 1px solid var(--cms-accent); background: transparent; color: var(--cms-accent); border-radius: var(--cms-radius-sm); padding: 9px 15px; font: inherit; font-size: 14px; cursor: pointer; }
.cms-save--saved .cms-save__btn, .cms-save__btn[aria-pressed='true'] { background: var(--cms-accent); color: var(--cms-on-accent); }
.cms-saved__heading { font-size: 16px; margin: 0 0 10px; }
.cms-saved__list { list-style: none; margin: 0 0 10px; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.cms-saved__list li { display: flex; gap: 8px; align-items: baseline; }
.cms-saved__list button { border: 0; background: transparent; color: var(--cms-muted); cursor: pointer; }
.cms-saved__empty { color: var(--cms-muted); font-size: 14px; }
.cms-saved__clear { border: 1px solid var(--cms-border-strong); background: transparent; border-radius: var(--cms-radius-sm); padding: 6px 12px; font: inherit; font-size: 13px; cursor: pointer; }

.cms-share { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 22px 0; font-size: 14px; }
.cms-share__heading { color: var(--cms-muted); }
.cms-share a, .cms-share__copy {
  border: 1px solid var(--cms-border-strong); background: var(--cms-surface); color: inherit; border-radius: 999px;
  padding: 6px 13px; text-decoration: none; font: inherit; font-size: 13px; cursor: pointer;
}
.cms-share a:hover { border-color: var(--cms-accent); text-decoration: none; }
.cms-share--compact .cms-share__heading { display: none; }

/* comments */
.cms-comments__empty { color: var(--cms-muted); font-size: 14px; }
.cms-comment { border-top: 1px solid var(--cms-border); padding: 12px 0; }
.cms-comment:first-child { border-top: 0; }
.cms-comment__head { display: flex; gap: 10px; align-items: baseline; font-size: 14px; }
.cms-comment__head time { margin-left: auto; color: var(--cms-muted); font-size: 12px; }
.cms-comment p { margin: 6px 0 0; white-space: pre-line; }
.cms-comment--mine { background: var(--cms-surface-2); border-radius: var(--cms-radius-sm); padding: 12px; }
.cms-comments__badge { color: var(--cms-warn); font-style: normal; font-size: 12px; }
.cms-comments form { display: grid; gap: 10px; margin-top: 16px; }
.cms-comments input, .cms-comments textarea {
  border: 1px solid var(--cms-border-strong); border-radius: var(--cms-radius-sm); padding: 9px 11px; font: inherit; font-size: 15px; width: 100%;
}
.cms-comments textarea { min-height: 100px; resize: vertical; }
.cms-comments form button {
  border: 0; background: var(--cms-accent); color: var(--cms-on-accent); border-radius: var(--cms-radius-sm);
  padding: 10px 18px; font: inherit; cursor: pointer; justify-self: start;
}
.cms-comments__status { font-size: 13px; color: var(--cms-muted); margin: 8px 0 0; }
.cms-comments__hp { display: none !important; }
/* nick z localStorage: pole zablokowane + „Zmień nick” (odblokowanie bez czyszczenia storage) */
.cms-comments form .cms-comments__nick-change {
  justify-self: start; border: 0; background: none; color: var(--cms-accent);
  padding: 0; font: inherit; font-size: 13px; text-decoration: underline; cursor: pointer;
}
/* wątki odpowiedzi */
.cms-comment__actions { margin-top: 4px; }
.cms-comment__reply {
  border: 0; background: none; padding: 0; color: var(--cms-accent);
  font: inherit; font-size: 13px; font-weight: 600; cursor: pointer;
}
.cms-comment__reply:hover { text-decoration: underline; }
.cms-comment__to { color: var(--cms-muted); font-size: 12px; }
.cms-comment__replies { margin: 6px 0 0 10px; border-left: 2px solid var(--cms-border); padding-left: 12px; }
.cms-comment--reply { padding: 8px 0 0; }
.cms-comment__reply-form { display: grid; gap: 8px; margin: 8px 0 4px; }
.cms-comment__reply-form textarea { min-height: 70px; }
.cms-comment__reply-to, .cms-comment__reply-status { font-size: 12px; color: var(--cms-muted); margin: 0; }
.cms-comment__reply-actions { display: flex; gap: 8px; }
.cms-comments form .cms-comment__reply-cancel {
  background: none; border: 1px solid var(--cms-border-strong); color: inherit;
}

/* obituaries */
.cms-obituary-meta { text-align: center; margin-bottom: 20px; }
.cms-obituary-meta img { width: 140px; height: 140px; object-fit: cover; border-radius: 999px; margin: 0 auto 12px; display: block; }
.cms-obituary-meta h1 { margin: 0 0 6px; }
.cms-obituary-meta__dates { color: var(--cms-muted); margin: 0; }
.cms-obituary-body { font-size: 17px; }
.cms-obituary-body p { margin: 0 0 14px; }
.cms-obituary-body__notice { font-weight: 600; }
.cms-obituary-body__funeral { color: var(--cms-text-soft); }
.cms-obituary-placeholder { color: var(--cms-muted); font-style: italic; }
.cms-obituary-list { display: grid; gap: 14px; }
.cms-obituary-list--cols-auto { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.cms-obituary-list--cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cms-obituary-list--cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cms-obituary-list--cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cms-obituary-card { display: flex; flex-direction: column; gap: 6px; align-items: center; text-align: center; color: inherit; padding: 12px; }
.cms-obituary-card:hover { text-decoration: none; }
.cms-obituary-card img { width: 96px; height: 96px; border-radius: 999px; object-fit: cover; }
.cms-obituary-card h3 { margin: 0; font-size: 16px; }
.cms-obituary-card__candles { font-size: 13px; color: var(--cms-muted); }

/* namedays / A/B */
.cms-namedays { font-size: 14px; color: var(--cms-muted); margin: 12px 0; }
.cms-namedays__label { color: var(--cms-fg); }
.cms-ab__variant[data-ab-variant='b'] { display: none; }
.cms-ab[data-ab-chosen='b'] .cms-ab__variant[data-ab-variant='a'] { display: none; }
.cms-ab[data-ab-chosen='b'] .cms-ab__variant[data-ab-variant='b'] { display: block; }

/* ==========================================================================
   Footer
   ========================================================================== */
.cms-layout--footer {
  background: var(--cms-footer-bg);
  color: var(--cms-footer-fg);
  --cms-link-c: currentColor;
  --cms-title-c: currentColor;
  margin-top: 40px;
}
/* sekcje stopki są przezroczyste — kolory stopki z motywu (footerBg/footerFg) */
.cms-layout--footer .cms-section { margin: 0; background: transparent; padding: 0; color: inherit; }
.cms-layout--footer .cms-section > div {
  max-width: var(--cms-container);
  margin: 0 auto;
  padding: 36px 20px 28px;
}
.cms-layout--footer a:hover { opacity: 0.75; }
.cms-footer-links__title { font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; margin: 0 0 10px; color: inherit; opacity: 0.7; }
.cms-footer-links ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 7px; }
.cms-footer-note { font-size: 13px; color: inherit; opacity: 0.7; margin: 22px 0 0; padding-top: 16px; border-top: 1px solid color-mix(in srgb, currentColor 18%, transparent); }

/* ==========================================================================
   Accessibility (contrast) + utilities
   ========================================================================== */
:root[data-cms-a11y='contrast'] {
  --cms-fg: #000000;
  --cms-bg: #ffffff;
  --cms-muted: #1f2937;
  --cms-accent: #0000cc;
  --cms-page-bg: #ffffff;
  --cms-border: #000000;
}
:root[data-cms-a11y='contrast'] body { background: var(--cms-surface); color: var(--cms-dark); }
:root[data-cms-a11y='contrast'] a { text-decoration: underline; }
:root[data-cms-a11y='contrast'] .cms-article-card,
:root[data-cms-a11y='contrast'] .cms-weather,
:root[data-cms-a11y='contrast'] .cms-podcasts,
:root[data-cms-a11y='contrast'] .cms-classifieds,
:root[data-cms-a11y='contrast'] .cms-live,
:root[data-cms-a11y='contrast'] .cms-newsletter { border-color: var(--cms-dark); box-shadow: none; }

.cms-tags__chip { display: inline-block; background: var(--cms-accent-soft); color: var(--cms-accent); border-radius: 999px; padding: 3px 10px; font-size: 12px; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1000px) {
  .cms-columns--2, .cms-columns--3, .cms-columns--equal,
  .cms-columns--main-side, .cms-columns--side-main { grid-template-columns: 1fr; }
  .cms-grid--cols-3, .cms-grid--cols-4,
  .cms-articles--cols-3, .cms-articles--cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .cms-page { padding: 20px 14px 48px; }
  .cms-layout--header .cms-section > div:not(.cms-section__inner) { padding: 10px 14px; }
  .cms-layout--header .cms-section__inner { padding: 0 14px; }
  .cms-layout--header .cms-section > div:not(.cms-section__inner),
  .cms-layout--header .cms-section__inner > div { gap: 12px; }
  .cms-menu-links--inline { gap: 12px; order: 3; flex-basis: 100%; overflow-x: auto; flex-wrap: nowrap; }
  .cms-menu-links--inline a { white-space: nowrap; }
  .cms-search { flex: 1 1 auto; }
  .cms-search__input { min-width: 0; width: 100%; }
  .cms-grid--cols-3, .cms-grid--cols-4, .cms-grid--cols-2,
  .cms-articles--cols-2, .cms-articles--cols-3, .cms-articles--cols-4 { grid-template-columns: 1fr; }
  .cms-article-title { font-size: 26px; }
  .cms-article-meta h1 { font-size: 28px; }
}

/* ==========================================================================
   Poprawki: siatki list + sidebar
   ========================================================================== */

/* sidebar: lista jako małe karty (miniaturka + tytuł) */
.cms-columns--main-side .cms-columns__col:nth-child(2) .cms-articles--list .cms-article-card,
.cms-columns--side-main .cms-columns__col:nth-child(1) .cms-articles--list .cms-article-card {
  flex-direction: row;
  align-items: center;
  gap: 10px;
  padding: 10px;
}
.cms-columns--main-side .cms-columns__col:nth-child(2) .cms-articles--list .cms-article-card img,
.cms-columns--side-main .cms-columns__col:nth-child(1) .cms-articles--list .cms-article-card img {
  flex: 0 0 84px;
  width: 84px;
  aspect-ratio: 1 / 1;
}
.cms-columns--main-side .cms-columns__col:nth-child(2) .cms-articles--list .cms-article-card__lead,
.cms-columns--side-main .cms-columns__col:nth-child(1) .cms-articles--list .cms-article-card__lead { display: none; }
.cms-columns--main-side .cms-columns__col:nth-child(2) .cms-articles--list .cms-article-card__title,
.cms-columns--side-main .cms-columns__col:nth-child(1) .cms-articles--list .cms-article-card__title { font-size: 14px; }

/* sekcje działów: nagłówek + siatka kart */
.cms-section > div > .cms-articles:first-child { margin-top: 4px; }

/* ==========================================================================
   Fixy: stopka 3 kolumny + mobile header + brak poziomego przewijania
   ========================================================================== */
html, body { max-width: 100%; overflow-x: hidden; }
/* clip nie tworzy kontenera przewijania → position: sticky (Section „przyklejona”) działa */
@supports (overflow: clip) { html, body { overflow-x: clip; } }

/* proporcja "equal" nie może nadpisywać liczby kolumn */
.cms-columns--2.cms-columns--equal { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cms-columns--3.cms-columns--equal,
.cms-columns--2.cms-columns--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

@media (max-width: 640px) {
  .cms-layout--header .cms-section > div:not(.cms-section__inner),
  .cms-layout--header .cms-section__inner > div { row-gap: 8px; }
  .cms-logo-text { order: 1; }
  .cms-a11y { order: 2; margin-left: auto; }
  .cms-layout--header .cms-push { order: 2; }
  .cms-search { order: 3; flex: 1 1 100%; }
  .cms-search__input { width: auto; flex: 1 1 auto; min-width: 0; }
  .cms-menu-links--inline {
    order: 4;
    flex-basis: 100%;
    max-width: 100%;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .cms-menu-links--inline::-webkit-scrollbar { display: none; }
  .cms-columns--equal,
  .cms-columns--2.cms-columns--equal,
  .cms-columns--3 { grid-template-columns: 1fr; }
}

/* ==========================================================================
   Anti-overflow (grid/flex min-content) + mobile search
   ========================================================================== */
.cms-columns, .cms-articles, .cms-grid, .cms-stack { min-width: 0; }
.cms-columns__col, .cms-article-card, .cms-section { min-width: 0; }
.cms-article-card__title, .cms-article-card__lead,
.cms-article-title, .cms-article-meta h1 { overflow-wrap: anywhere; }

@media (max-width: 640px) {
  .cms-layout--header .cms-search__input { min-width: 0; flex: 1 1 auto; }
  .cms-search { gap: 6px; }
  .cms-search__button { flex: 0 0 auto; padding: 9px 12px; }
}

/* ==========================================================================
   Przywrócone klasy (parzystość ze starym arkuszem / bloki rzadziej używane)
   ========================================================================== */
.cms-podcasts--list { display: block; }
.cms-grid--gap-sm { gap: 10px; }
.cms-grid--gap-md { gap: var(--cms-gap); }
.cms-grid--gap-lg { gap: 32px; }
.cms-category-list--stack { flex-direction: column; gap: 8px; }
.cms-comments-cell { max-width: 420px; }
.cms-obituary-body__family { font-style: italic; }

.cms-shorts__heading { font-size: 18px; margin: 0 0 12px; }
.cms-shorts__rail { display: flex; gap: 14px; overflow-x: auto; padding-bottom: 8px; scroll-snap-type: x mandatory; }
.cms-short { flex: 0 0 200px; scroll-snap-align: start; }
.cms-short__link { display: block; }
.cms-shorts__media { width: 100%; aspect-ratio: 9 / 16; object-fit: cover; border-radius: var(--cms-radius); background: var(--cms-dark); display: block; }
.cms-short__title { font-size: 13px; margin: 8px 0 0; }

/* ==========================================================================
   Layout v2: Section + Grid 12 kolumn
   ========================================================================== */
.cms-section--bg-surface {
  background: var(--cms-surface);
  color: var(--cms-fg);
  border: 1px solid var(--cms-border);
  border-radius: var(--cms-radius);
  padding: 20px;
}
.cms-section--bg-dark {
  background: var(--cms-dark);
  color: var(--cms-on-dark);
  border-radius: var(--cms-radius);
  padding: 24px 20px;
}
/* „luźne” elementy w ciemnej sekcji (listy bez tła, lead/hero, nagłówek sekcji) */
.cms-section--bg-dark :is(.cms-articles__list, .cms-article-card--lead, .cms-article-card--hero, .cms-section-header, .cms-articles--card-plain, .cms-articles--card-minimal) {
  --cms-muted: var(--cms-on-dark-muted);
  --cms-text-soft: var(--cms-on-dark-muted);
  --cms-border: color-mix(in srgb, currentColor 18%, transparent);
}
.cms-section--py-0 { padding-top: 0; padding-bottom: 0; }
.cms-section--py-sm { padding-top: 12px; padding-bottom: 12px; }
.cms-section--py-md { padding-top: 24px; padding-bottom: 24px; }
.cms-section--py-lg { padding-top: 48px; padding-bottom: 48px; }
.cms-section--sticky { position: sticky; top: 0; z-index: 40; }
.cms-section--bleed {
  width: 100vw;
  max-width: none;
  margin-left: calc(50% - 50vw);
  border-radius: 0;
  border-left: 0;
  border-right: 0;
  padding-left: 0;
  padding-right: 0;
}
.cms-section--bleed > .cms-section__inner {
  max-width: var(--cms-container);
  margin: 0 auto;
  padding: 0 20px;
}

.cms-grid--gap-sm { gap: var(--cms-gap-sm); }
.cms-grid--gap-md { gap: var(--cms-gap); }
.cms-grid--gap-lg { gap: var(--cms-gap-lg); }
.cms-grid__col { min-width: 0; display: flex; flex-direction: column; gap: var(--cms-gap); }
.cms-grid--preset-12 { grid-template-columns: minmax(0, 1fr); }
.cms-grid--preset-8-4 { grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); }
.cms-grid--preset-9-3 { grid-template-columns: minmax(0, 9fr) minmax(0, 3fr); }
.cms-grid--preset-6-6 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cms-grid--preset-4-4-4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cms-grid--preset-3-6-3 { grid-template-columns: minmax(0, 3fr) minmax(0, 6fr) minmax(0, 3fr); }
.cms-grid--preset-3-3-3-3 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 900px) {
  .cms-grid--stack-md[class*='cms-grid--preset-'] { grid-template-columns: minmax(0, 1fr); }
  .cms-grid--stack-sm.cms-grid--preset-3-3-3-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .cms-grid--stack-sm[class*='cms-grid--preset-'] { grid-template-columns: minmax(0, 1fr); }
}

.cms-menu-links a[aria-current='page'] { border-bottom-color: var(--cms-accent); font-weight: 700; }
.cms-partial--placeholder {
  border: 1px dashed var(--cms-border-strong);
  padding: 12px;
  color: var(--cms-muted);
  font-size: 14px;
}

/* ==========================================================================
   SectionHeader
   ========================================================================== */
.cms-section-header {
  --cms-sh-color: var(--cms-accent);
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 14px;
}
.cms-section-header--tone-dark { --cms-sh-color: var(--cms-fg); }
.cms-section-header--tone-muted { --cms-sh-color: var(--cms-muted); }
.cms-section-header__title {
  margin: 0;
  font-size: var(--cms-h2);
  text-transform: uppercase;
  letter-spacing: 0.02em;
}
.cms-section-header__more {
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
  color: var(--cms-sh-color);
}
.cms-section-header--bar .cms-section-header__title {
  padding-left: 12px;
  border-left: 5px solid var(--cms-sh-color);
}
.cms-section-header--underline {
  border-bottom: 2px solid var(--cms-sh-color);
  padding-bottom: 6px;
}
.cms-section-header--underline .cms-section-header__title { color: var(--cms-sh-color); }
.cms-section-header--pill .cms-section-header__title {
  background: var(--cms-sh-color);
  color: var(--cms-on-accent);
  border-radius: 999px;
  padding: 3px 16px;
  font-size: var(--cms-h3);
}
.cms-section-header--filled {
  background: var(--cms-sh-color);
  padding: 8px 14px;
  border-radius: var(--cms-radius-sm);
}
.cms-section-header--filled .cms-section-header__title,
.cms-section-header--filled .cms-section-header__more { color: var(--cms-on-accent); }
.cms-section-header--filled .cms-section-header__title { font-size: var(--cms-h3); }
.cms-articles-wrap { min-width: 0; }

/* ==========================================================================
   ArticleList v2: warianty
   ========================================================================== */
.cms-articles--ratio-4-3 { --cms-ratio: 4 / 3; }
.cms-articles--ratio-1-1 { --cms-ratio: 1 / 1; }
.cms-articles--ratio-16-9 { --cms-ratio: 16 / 9; }
.cms-articles img { aspect-ratio: var(--cms-ratio, 16 / 9); }
.cms-articles__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0; }
.cms-articles__list > li { border-top: 1px solid var(--cms-border); }
.cms-articles__list > li:first-child { border-top: 0; }
.cms-articles__list .cms-article-card {
  color: inherit;
  --cms-title-c: inherit;
  --cms-link-c: inherit;
  background: transparent;
  border: 0;
  box-shadow: none;
  border-radius: 0;
  padding: 10px 0;
}
.cms-articles__list .cms-article-card:hover { transform: none; box-shadow: none; }
.cms-articles__list .cms-article-card:hover .cms-article-card__title { color: var(--cms-accent); }

/* lead + lista */
.cms-articles--variant-lead-list { display: flex; flex-direction: column; gap: 12px; }
.cms-article-card--lead,
.cms-article-card--hero {
  color: inherit;
  --cms-title-c: inherit;
  --cms-link-c: inherit;
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
  gap: 10px;
}
.cms-article-card--lead:hover,
.cms-article-card--hero:hover { transform: none; box-shadow: none; }
.cms-article-card--lead img,
.cms-article-card--hero img { border-radius: var(--cms-radius-sm); }
.cms-article-card--lead .cms-article-card__title { font-size: var(--cms-h3); line-height: 1.25; }
.cms-article-card--hero .cms-article-card__title { font-size: calc(var(--cms-h1) * 0.95); line-height: 1.15; }
.cms-article-card--hero .cms-article-card__lead { font-size: 16px; }

/* wiersz: miniatura + tytuł */
.cms-article-card--row { flex-direction: row; align-items: flex-start; gap: 12px; }
.cms-article-card--row img { flex: 0 0 96px; width: 96px; aspect-ratio: var(--cms-ratio, 4 / 3); border-radius: var(--cms-radius-sm); }
.cms-article-card__body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.cms-article-card--row .cms-article-card__title { font-size: 15px; line-height: 1.3; }

/* sam tytuł (+ data) */
.cms-article-card--title { flex-direction: row; align-items: baseline; justify-content: space-between; gap: 12px; }
.cms-article-card--title .cms-article-card__title { font-size: 15px; font-weight: 600; }
.cms-article-card--title .cms-article-card__time { white-space: nowrap; }

/* numerowana */
.cms-articles--variant-numbered { counter-reset: cms-num; }
.cms-articles--variant-numbered > li { counter-increment: cms-num; position: relative; padding-left: 40px; }
.cms-articles--variant-numbered > li::before {
  content: counter(cms-num);
  position: absolute;
  left: 0;
  top: 8px;
  font-family: var(--cms-heading-font);
  font-size: 26px;
  font-weight: 800;
  line-height: 1;
  color: var(--cms-accent);
}
.cms-articles--variant-numbered .cms-article-card--title { flex-direction: column; align-items: flex-start; gap: 2px; }

/* overlay: tytuł na zdjęciu */
.cms-articles--variant-overlay { grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); }
.cms-articles--variant-overlay.cms-articles--cols-1 { grid-template-columns: 1fr; }
.cms-articles--variant-overlay.cms-articles--cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cms-articles--variant-overlay.cms-articles--cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cms-articles--variant-overlay.cms-articles--cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cms-article-card--overlay {
  position: relative;
  display: block;
  padding: 0;
  overflow: hidden;
  min-height: 180px;
  background: var(--cms-dark);
  color: var(--cms-on-image);
}
.cms-article-card--overlay img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
.cms-article-card--overlay .cms-article-card__overlay {
  position: absolute;
  inset: auto 0 0 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 40px 14px 12px;
  background: linear-gradient(to top, var(--cms-scrim), transparent);
}
.cms-article-card--overlay .cms-article-card__title { font-size: 17px; color: var(--cms-on-image); }
.cms-article-card--overlay .cms-article-card__cat,
.cms-article-card--overlay .cms-article-card__time { color: var(--cms-on-dark); }

/* === block common fields === */
/* Wspólne pola bloków (src/engine/block-common.tsx): wrapper bez własnego boxu
   (nie psuje grid/flex rodzica), widoczność desktop/mobile (768px). */
.cms-b { display: contents; }
@media (max-width: 767.98px) {
  .cms-only-desktop { display: none !important; }
}
@media (min-width: 768px) {
  .cms-only-mobile { display: none !important; }
}
/* edytor: blok ukryty w bieżącym widoku jest przygaszony, ale klikalny */
@media (max-width: 767.98px) {
  [data-cms-visibility='desktop'] { opacity: 0.4; outline: 1px dashed var(--cms-border-strong); }
}
@media (min-width: 768px) {
  [data-cms-visibility='mobile'] { opacity: 0.4; outline: 1px dashed var(--cms-border-strong); }
}

/* Button */
a.cms-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-weight: 600;
  line-height: 1.2;
  border: 2px solid transparent;
  border-radius: var(--cms-radius-sm);
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
a.cms-button:hover { text-decoration: none; }
a.cms-button:focus-visible { outline: 2px solid var(--cms-accent); outline-offset: 2px; }
.cms-button__icon { flex: 0 0 auto; }
a.cms-button--sm { font-size: 13px; padding: 6px 12px; }
a.cms-button--md { font-size: 15px; padding: 9px 18px; }
a.cms-button--lg { font-size: 17px; padding: 13px 26px; }
a.cms-button--icon-only.cms-button--sm { padding: 6px; }
a.cms-button--icon-only.cms-button--md { padding: 9px; }
a.cms-button--icon-only.cms-button--lg { padding: 13px; }
a.cms-button.cms-button--primary,
a.cms-button.cms-button--primary:hover { background: var(--cms-accent); color: var(--cms-on-accent); }
a.cms-button.cms-button--primary:hover { background: color-mix(in srgb, var(--cms-accent) 85%, var(--cms-dark)); }
a.cms-button.cms-button--secondary,
a.cms-button.cms-button--secondary:hover { background: var(--cms-muted-bg); color: var(--cms-fg); }
a.cms-button.cms-button--secondary:hover { border-color: var(--cms-border-strong); }
a.cms-button.cms-button--dark,
a.cms-button.cms-button--dark:hover { background: var(--cms-dark); color: var(--cms-on-dark); }
a.cms-button.cms-button--dark:hover { background: color-mix(in srgb, var(--cms-dark) 85%, var(--cms-on-dark)); }
a.cms-button.cms-button--outline,
a.cms-button.cms-button--outline:hover { background: transparent; color: inherit; border-color: currentColor; }
a.cms-button.cms-button--outline:hover { background: color-mix(in srgb, currentColor 10%, transparent); }
a.cms-button.cms-button--ghost,
a.cms-button.cms-button--ghost:hover { background: transparent; color: inherit; }
a.cms-button.cms-button--ghost:hover { background: color-mix(in srgb, currentColor 10%, transparent); }

/* Wyrównanie bloków (Button, Logo, LogoText) — działa w rodzicu block i flex */
a.cms-button.cms-button--align-left, .cms-logo--align-left, .cms-logo-text--align-left { display: flex; width: fit-content; margin-right: auto; }
a.cms-button.cms-button--align-center, .cms-logo--align-center, .cms-logo-text--align-center { display: flex; width: fit-content; margin-left: auto; margin-right: auto; }
a.cms-button.cms-button--align-right, .cms-logo--align-right, .cms-logo-text--align-right { display: flex; width: fit-content; margin-left: auto; }
a.cms-button.cms-button--align-stretch { display: flex; width: 100%; }

/* MenuLinks: wyrównanie i odstęp */
.cms-menu-links--inline.cms-menu-links--align-left { justify-content: flex-start; }
.cms-menu-links--inline.cms-menu-links--align-center { justify-content: center; }
.cms-menu-links--inline.cms-menu-links--align-right { justify-content: flex-end; }
.cms-menu-links--stack.cms-menu-links--align-left { align-items: flex-start; }
.cms-menu-links--stack.cms-menu-links--align-center { align-items: center; text-align: center; }
.cms-menu-links--stack.cms-menu-links--align-right { align-items: flex-end; text-align: right; }
.cms-menu-links.cms-menu-links--gap-sm { gap: 8px; }
.cms-menu-links.cms-menu-links--gap-md { gap: 16px; }
.cms-menu-links.cms-menu-links--gap-lg { gap: 28px; }

/* Section: własne kolory (zmienne inline; karty mają własne tokeny powierzchni) */
.cms-section.cms-section--bg-custom { background: var(--cms-section-bg); }
.cms-section--bg-custom.cms-section--bg-none:not(.cms-section--bleed) {
  padding-left: 20px;
  padding-right: 20px;
  border-radius: var(--cms-radius);
}
.cms-section.cms-section--fg-custom { color: var(--cms-section-fg); }
/* własny kolor tekstu dociera do „luźnych” tytułów/linków (karty bez tła, listy, nagłówki);
   karty z własną powierzchnią (boxed, widgety) nadal resetują tokeny → czytelne. */
.cms-section--fg-custom { --cms-title-c: currentColor; --cms-link-c: currentColor; }
.cms-section--fg-custom .cms-section-header { --cms-sh-color: currentColor; }
.cms-section--fg-custom :is(.cms-articles__list, .cms-articles--card-plain, .cms-articles--card-minimal, .cms-section-header),
.cms-section--bg-accent :is(.cms-articles--card-plain, .cms-articles--card-minimal) {
  --cms-muted: color-mix(in srgb, currentColor 72%, transparent);
  --cms-text-soft: color-mix(in srgb, currentColor 85%, transparent);
  --cms-border: color-mix(in srgb, currentColor 22%, transparent);
}

/* SectionHeader: topline (cienka linia nad, mały tytuł wersalikami) + wyrównanie */
.cms-section-header--topline {
  border-top: 1px solid color-mix(in srgb, currentColor 30%, transparent);
  padding-top: 8px;
  align-items: center;
}
.cms-section-header--topline .cms-section-header__title {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: color-mix(in srgb, currentColor 70%, transparent);
}
/* topline = linia + wersaliki; o wielkości decyduje poziom: H1 zostaje tytułem strony */
.cms-section-header--topline h1.cms-section-header__title {
  font-size: var(--cms-h1);
  letter-spacing: 0.01em;
  line-height: 1.15;
  color: inherit;
}
.cms-section-header--topline.cms-section-header--tone-accent { border-top-color: var(--cms-accent); }
.cms-section-header--topline.cms-section-header--tone-dark { border-top-color: var(--cms-fg); }
.cms-section-header--topline .cms-section-header__more { font-size: 12px; font-weight: 500; color: inherit; opacity: 0.75; }
.cms-section-header--align-center { justify-content: center; text-align: center; }
.cms-section-header--align-right { justify-content: flex-end; text-align: right; }
.cms-section-header--align-center .cms-section-header__more,
.cms-section-header--align-right .cms-section-header__more { margin-left: 12px; }

/* === content blocks === */
h1.cms-section-header__title { font-size: var(--cms-h1); }

/* ArticleList: kolory ticker / pilne */
.cms-articles--tone-accent { --cms-tk-bg: var(--cms-accent); --cms-tk-fg: var(--cms-on-accent); }
.cms-articles--tone-red { --cms-tk-bg: var(--cms-danger); --cms-tk-fg: var(--cms-on-image); }
.cms-articles--tone-yellow { --cms-tk-bg: var(--cms-yellow, #ffd400); --cms-tk-fg: var(--cms-dark); }
.cms-articles--tone-dark { --cms-tk-bg: var(--cms-dark); --cms-tk-fg: var(--cms-on-dark); }

/* ticker: jedna linia, przewijanie CSS, pauza na hover */
.cms-ticker {
  display: flex; align-items: stretch; overflow: hidden;
  background: var(--cms-tk-bg); color: var(--cms-tk-fg);
  border-radius: var(--cms-radius-sm); font-size: 14px; font-weight: 600; line-height: 1.2;
}
.cms-ticker__label {
  flex: none; display: flex; align-items: center; padding: 8px 14px;
  background: color-mix(in srgb, var(--cms-tk-fg) 16%, var(--cms-tk-bg));
  color: inherit; text-transform: uppercase; letter-spacing: 0.04em; font-weight: 800;
}
.cms-ticker__viewport { flex: 1; min-width: 0; overflow: hidden; }
.cms-ticker__track {
  display: flex; width: max-content; margin: 0; padding: 0; list-style: none;
  animation: cms-ticker var(--cms-ticker-duration, 40s) linear infinite;
}
.cms-ticker:hover .cms-ticker__track,
.cms-ticker:focus-within .cms-ticker__track { animation-play-state: paused; }
.cms-ticker__item { display: flex; align-items: center; white-space: nowrap; padding: 8px 0; }
.cms-ticker__item::before { content: '•'; margin: 0 14px; opacity: 0.7; }
.cms-ticker__item a { color: inherit; }
.cms-ticker__item a:hover { text-decoration: underline; }
@keyframes cms-ticker { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
  .cms-ticker__viewport { overflow-x: auto; }
  .cms-ticker__track { animation: none; }
  .cms-ticker__item[aria-hidden] { display: none; }
}

/* breaking: ramka z tytułem i „dzióbkiem” nad zdjęciem */
.cms-articles--variant-breaking { display: grid; gap: var(--cms-gap); grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.cms-articles--variant-breaking.cms-articles--cols-1 { grid-template-columns: 1fr; }
.cms-articles--variant-breaking.cms-articles--cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cms-articles--variant-breaking.cms-articles--cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cms-articles--variant-breaking.cms-articles--cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cms-article-card--breaking { display: flex; flex-direction: column; padding: 0; background: none; box-shadow: none; color: inherit; }
.cms-article-card--breaking .cms-article-card__box {
  position: relative; z-index: 1; display: flex; flex-direction: column; gap: 4px;
  padding: 12px 16px; background: var(--cms-tk-bg); color: var(--cms-tk-fg);
}
.cms-article-card--breaking .cms-article-card__box::after {
  content: ''; position: absolute; left: 24px; bottom: -11px;
  border: 12px solid transparent; border-bottom: 0; border-top-color: var(--cms-tk-bg);
}
.cms-article-card--breaking .cms-article-card__title { margin: 0; font-size: 20px; line-height: 1.2; color: inherit; }
.cms-article-card--breaking .cms-article-card__cat,
.cms-article-card--breaking .cms-article-card__time { color: inherit; opacity: 0.85; font-size: 12px; }
.cms-article-card--breaking .cms-article-card__media img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 0; }
.cms-articles--ratio-4-3 .cms-article-card--breaking .cms-article-card__media img { aspect-ratio: 4 / 3; }
.cms-articles--ratio-1-1 .cms-article-card--breaking .cms-article-card__media img { aspect-ratio: 1; }

/* overlay: wielkość tytułu */
.cms-articles--title-sm .cms-article-card--overlay .cms-article-card__title { font-size: 15px; }
.cms-articles--title-md .cms-article-card--overlay .cms-article-card__title { font-size: 19px; }
.cms-articles--title-lg .cms-article-card--overlay .cms-article-card__title { font-size: 24px; line-height: 1.2; }
.cms-articles--title-xl .cms-article-card--overlay .cms-article-card__title { font-size: clamp(24px, 3.2vw, 34px); line-height: 1.15; }

/* ArticleDate / Meta: czas czytania; ArticleCover; ArticleLead */
.cms-article-dateline { display: inline-flex; flex-wrap: wrap; gap: 6px 14px; align-items: baseline; vertical-align: middle; line-height: 1.3; }
/* data + czas czytania + licznik komentarzy w jednym rzędzie: wspólna oś (środek) */
.cms-article-dateline .cms-article-date { margin-bottom: 0; }
.cms-article-dateline + .cms-comments-count,
.cms-article-date + .cms-comments-count { margin-left: 14px; }
.cms-article-reading { color: var(--cms-muted); font-size: 13px; }
.cms-article-cover { margin: 0 0 18px; }
.cms-article-cover img { display: block; width: 100%; height: auto; border-radius: var(--cms-radius); }
.cms-article-cover--ratio-16-9 img { aspect-ratio: 16 / 9; object-fit: cover; }
.cms-article-cover--ratio-4-3 img { aspect-ratio: 4 / 3; object-fit: cover; }
.cms-article-cover__caption { margin-top: 6px; font-size: 12px; color: var(--cms-muted); }
.cms-article-lead { font-size: 19px; font-weight: 600; color: var(--cms-text-soft); margin: 0 0 16px; }

/* CommentsCount */
.cms-comments-count { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; line-height: 1.3; font-weight: 600; color: var(--cms-accent); vertical-align: middle; }
.cms-comments-count:hover { text-decoration: underline; }
.cms-comments-count--button {
  padding: 6px 14px; border: 1px solid var(--cms-border-strong); border-radius: 999px;
  background: var(--cms-surface); color: var(--cms-fg);
}
.cms-comments-count--button:hover { border-color: var(--cms-accent); color: var(--cms-accent); text-decoration: none; }
.cms-comments { scroll-margin-top: 80px; }

/* AdSlot: etykieta */
.cms-ad-wrap { margin: 20px 0; }
.cms-ad-wrap > .cms-ad { margin: 0; }
.cms-ad__label { display: block; margin-bottom: 4px; font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--cms-muted); text-align: center; }

/* Weather: ikony + pasek */
.cms-weather__icon { flex: none; color: var(--cms-muted); }
.cms-weather__icon--sun { color: var(--cms-warn); }
.cms-weather__icon--rain, .cms-weather__icon--storm { color: var(--cms-accent); }
.cms-weather__now .cms-weather__icon { align-self: center; width: 40px; height: 40px; }
.cms-weather__days li .cms-weather__icon { width: 28px; height: 28px; }
.cms-weather--strip .cms-weather__place { display: block; font-weight: 700; margin-bottom: 8px; }
/* pasek = zawsze jeden rząd (komórki się zwężają, w ostateczności przewijanie poziome) */
.cms-weather--strip .cms-weather__days {
  margin: 0; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(64px, 1fr);
  gap: 8px; overflow-x: auto; scrollbar-width: thin;
}
.cms-weather--strip .cms-weather__days li { min-width: 0; padding: 8px 6px; }
@media (max-width: 560px) {
  .cms-weather--strip .cms-weather__days { gap: 6px; }
  .cms-weather--strip .cms-weather__daydesc { display: none; }
  .cms-weather--strip .cms-weather__range { font-size: 12px; white-space: nowrap; }
}
.cms-weather--strip .cms-weather__days li { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 4px; }
.cms-weather--strip .cms-weather__day { font-size: 12px; color: var(--cms-muted); text-transform: capitalize; }

/* LiveFeed: zdjęcie wpisu */
.cms-live__img { display: block; max-width: min(100%, 640px); max-height: 420px; object-fit: cover; height: auto; margin-top: 6px; border-radius: var(--cms-radius-sm); }

/* content blocks: mobile */
@media (max-width: 640px) {
  .cms-articles--variant-breaking[class*='cms-articles--cols-'],
  .cms-articles--variant-overlay.cms-articles--cols-2,
  .cms-articles--variant-overlay.cms-articles--cols-3,
  .cms-articles--variant-overlay.cms-articles--cols-4 { grid-template-columns: 1fr; }
  .cms-articles--title-lg .cms-article-card--overlay .cms-article-card__title { font-size: 20px; }
  .cms-articles--title-xl .cms-article-card--overlay .cms-article-card__title { font-size: 24px; }
  .cms-article-card--breaking .cms-article-card__title { font-size: 18px; }
}

/* ==========================================================================
   Card style (ArticleList → „Styl kart”): plain / minimal — bez własnej powierzchni
   ========================================================================== */
.cms-articles--card-plain .cms-article-card,
.cms-articles--card-minimal .cms-article-card {
  background: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
  color: inherit;
  --cms-title-c: inherit;
  --cms-link-c: inherit;
}
.cms-articles--card-plain .cms-article-card:hover,
.cms-articles--card-minimal .cms-article-card:hover { transform: none; box-shadow: none; }
.cms-articles--card-plain .cms-article-card:hover .cms-article-card__title,
.cms-articles--card-minimal .cms-article-card:hover .cms-article-card__title { text-decoration: underline; }
.cms-articles--card-minimal .cms-article-card {
  padding-bottom: 12px;
  border-bottom: 1px solid var(--cms-border);
}
.cms-articles--card-minimal .cms-article-card img { border-radius: 0; }
.cms-articles--card-minimal .cms-article-card__title { font-size: 16px; }
.cms-articles--list.cms-articles--card-plain .cms-article-card,
.cms-articles--list.cms-articles--card-minimal .cms-article-card { padding: 0; }
.cms-articles--list.cms-articles--card-minimal .cms-article-card { padding-bottom: 12px; }

/* ==========================================================================
   Pionowy rytm slotów (Section / Grid / Columns / Stack / root strony).
   Puck owija zawartość slotu w <div> → gap kolumny go nie widzi. Odstęp = margines
   między rodzeństwem (zwija się z marginesami bloków); nagłówek sekcji trzyma
   swój mniejszy odstęp. Nagłówek/stopka (.cms-layout) mają własne rzędy — bez zmian.
   ========================================================================== */
.cms-slot { min-width: 0; }
.cms-stack > .cms-slot { display: flex; flex-direction: column; gap: inherit; }
:is(.cms-slot, .cms-page > div):not(.cms-layout *, .cms-stack > *) > * + * {
  margin-top: var(--cms-slot-gap, var(--cms-gap));
}
:is(.cms-slot, .cms-page > div):not(.cms-layout *, .cms-stack > *) > .cms-section-header + * { margin-top: 0; }
@media (min-width: 768px) {
  :is(.cms-slot, .cms-page > div):not(.cms-layout *) > .cms-only-mobile:first-child + * { margin-top: 0; }
}
@media (max-width: 767.98px) {
  :is(.cms-slot, .cms-page > div):not(.cms-layout *) > .cms-only-desktop:first-child + * { margin-top: 0; }
}

/* Wyniki wyszukiwania (blok SearchResults + wyspa `search`) */
.cms-search-results { margin: 24px 0; }
.cms-search-results__heading { margin: 0 0 12px; }
.cms-search-results__hint { color: var(--cms-muted); font-size: 14px; margin: 10px 0; }
.cms-search-results__status { color: var(--cms-muted); }
.cms-search-results__items { list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 14px; }
.cms-search-results__items a { display: grid; gap: 4px; text-decoration: none; }
.cms-search-results__title { font-weight: 600; color: var(--cms-title, var(--cms-fg)); }
.cms-search-results__items a:hover .cms-search-results__title { color: var(--cms-accent); }
.cms-search-results__excerpt { color: var(--cms-muted); font-size: 14px; }
.cms-search-results__excerpt mark { background: var(--cms-accent-soft); color: inherit; padding: 0 2px; }

/* Paginacja frontów działów (E5c): strony /dzial/strona/N/ generowane przy publish. */
.cms-pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin: calc(var(--cms-gap) * 1.5) 0 0;
  font-size: 14px;
}
.cms-pagination a,
.cms-pagination__current {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  height: 34px;
  padding: 0 10px;
  border: 1px solid var(--cms-border);
  border-radius: var(--cms-radius-sm);
  color: var(--cms-fg);
  text-decoration: none;
  background: var(--cms-surface);
}
.cms-pagination a:hover {
  border-color: var(--cms-accent);
  color: var(--cms-accent);
}
.cms-pagination__current {
  background: var(--cms-accent);
  border-color: var(--cms-accent);
  color: var(--cms-on-accent);
  font-weight: 600;
}
.cms-pagination__prev,
.cms-pagination__next {
  padding: 0 14px;
}
.cms-pagination__archive {
  color: var(--cms-muted);
  font-size: 13px;
}

/* Pasek zgód (plugin consent, E6): wyspa — bez JS w ogóle się nie pokazuje
   (ma `hidden`), a decyzję czytelnika przenosi `cms.consent` → Consent Mode v2. */
.cms-consent {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 60;
  padding: 14px var(--cms-gap);
  background: var(--cms-surface);
  border-top: 1px solid var(--cms-border);
  box-shadow: 0 -10px 30px rgba(15, 23, 42, 0.12);
}
.cms-consent[hidden] {
  display: none;
}
/* W kanwie Pucka pasek jest podglądem w miejscu bloku, nie nakładką na ekran. */
.cms-consent--preview {
  position: static;
  box-shadow: none;
  border: 1px dashed var(--cms-border-strong);
  border-radius: var(--cms-radius-sm);
}
.cms-consent__inner {
  max-width: var(--cms-container);
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--cms-gap-sm) var(--cms-gap);
}
.cms-consent__text {
  flex: 1 1 320px;
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
  color: var(--cms-text-soft);
}
.cms-consent__link {
  color: var(--cms-accent);
}
.cms-consent__panel {
  flex: 1 0 100%;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--cms-gap-sm) var(--cms-gap);
  padding-top: var(--cms-gap-sm);
  border-top: 1px dashed var(--cms-border);
}
.cms-consent__panel[hidden] {
  display: none;
}
.cms-consent__option {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: var(--cms-fg);
  cursor: pointer;
}
.cms-consent__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--cms-gap-sm);
  margin-left: auto;
}
.cms-consent__btn {
  min-height: 38px;
  padding: 0 14px;
  border: 1px solid var(--cms-border-strong);
  border-radius: var(--cms-radius-sm);
  background: var(--cms-surface);
  color: var(--cms-fg);
  font: inherit;
  font-size: 14px;
  cursor: pointer;
}
.cms-consent__btn:hover {
  border-color: var(--cms-accent);
  color: var(--cms-accent);
}
.cms-consent__btn--primary {
  background: var(--cms-accent);
  border-color: var(--cms-accent);
  color: var(--cms-on-accent);
}
.cms-consent__btn--primary:hover,
.cms-consent__btn--primary:focus-visible {
  color: var(--cms-on-accent);
  filter: brightness(1.06);
}
.cms-consent__btn--save {
  align-self: flex-start;
}
