/*
 * Radio Szczytno: jedyny arkusz motywu. Mobile-first; progi tylko min-width 480 / 720 / 960 / 1200 (te same w RS.bp).
 * Kolejność wg warstw: tokeny, baza, układ i sceny, komponenty, nagłówek, stopka, pasek odsłuchu, widoki, narzędzia, progi, ruch, druk.
 * Charakter (od alpha11): DNA portalu radiowo-informacyjnego, nie motywu. Newsroomowa paleta (biel, chłodny jasny szary, czarny tekst, cegła z marki,
 * ciemna zieleń jako pas głęboki), proste krawędzie pasów (zero fal i otoczaków), moduły z cienkim obramowaniem i gruba linia nad nagłówkiem modułu,
 * małe promienie, bez cieni, szeryfowe nagłówki + sans (stosy systemowe). Docs: docs/09-DNA-PORTALU.md.
 * Ruch jest wyłącznie ulepszeniem: każda animacja żyje w bloku prefers-reduced-motion: no-preference.
 */

/* ------------------------------------------------------------------ 1. tokeny */
:root {
  color-scheme: light;
  --rs-paper: #ffffff;
  --rs-sand: #f2f4f5;
  --rs-surface: #ffffff;
  --rs-surface-2: #eceff0;
  --rs-ink: #14171a;
  --rs-ink-2: #33393e;
  --rs-muted: #565e64;
  --rs-accent: #b24a32;
  --rs-accent-deep: #8f3826;
  --rs-accent-soft: #f8e8e3;
  --rs-sun: #f0bba8;
  --rs-forest: #1f4a3d;
  --rs-forest-deep: #143329;
  --rs-forest-mid: #3d7762;
  --rs-forest-soft: #e6eeeb;
  --rs-on-dark: #f3efe6;
  --rs-on-dark-2: #dfeae5;
  --rs-on-dark-line: rgba(243, 239, 230, 0.22);
  --rs-on-dark-line-2: rgba(243, 239, 230, 0.45);
  --rs-hill-far: #d3e4da;
  --rs-hill-mid: #a9c9ba;
  --rs-lake: #b6d2c6;
  --rs-lake-line: #d8e9e1;
  --rs-line: rgba(20, 23, 26, 0.14);
  --rs-line-2: rgba(20, 23, 26, 0.3);

  --rs-s-1: 0.25rem;
  --rs-s-2: 0.5rem;
  --rs-s-3: 0.75rem;
  --rs-s-4: 1rem;
  --rs-s-5: 1.5rem;
  --rs-s-6: 2rem;
  --rs-s-7: 3rem;
  --rs-s-8: 4.5rem;

  --rs-fs-0: clamp(1rem, 0.97rem + 0.15vw, 1.0625rem);
  --rs-fs-h3: 1.125rem;
  --rs-fs-h1-article: clamp(1.875rem, 1.3rem + 2.2vw, 2.625rem);
  --rs-fs-h2: clamp(1.5rem, 1.15rem + 1.4vw, 2rem);
  --rs-fs-h2s: clamp(1.3125rem, 1.1rem + 0.8vw, 1.5rem);
  --rs-fs-h1: clamp(2rem, 1.3rem + 2.8vw, 3rem);
  --rs-fs-hero: clamp(2.25rem, 1.2rem + 5vw, 4rem);

  /* kształty portalu: proste krawędzie, małe promienie; nazwy tokenów zostają (--rs-r-pill to teraz zwykły mały promień prostokątnych etykiet i przycisków) */
  --rs-r-pill: 3px;
  --rs-r-md: 3px;
  --rs-r-lg: 4px;
  --rs-r-xl: 6px;
  --rs-leaf: 3px;
  --rs-shadow: none;
  --rs-shadow-lg: 0 10px 26px -14px rgba(20, 23, 26, 0.45);
  --rs-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
  --rs-rule: 3px solid var(--rs-ink);

  --rs-wrap: 1320px;
  --rs-read: 42.5rem;
  --rs-gutter: clamp(1rem, 4vw, 2rem);
  /* siatka: kolumna boczna portalu i odstępy (jedna skala pionowa: między sekcjami i między blokami w sekcji) */
  --rs-aside: 21rem;
  --rs-layout-gap: var(--rs-s-6);
  --rs-gap-section: clamp(2rem, 5vw, 3rem);
  --rs-gap-block: var(--rs-s-5);
  --rs-edge: max(var(--rs-gutter), calc((100% - var(--rs-wrap)) / 2 + var(--rs-gutter)));
  --rs-header-h: 4rem;
  --rs-player-h: 4.5rem;

  --rs-font-ui: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --rs-font-display: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
}

@media (min-width: 1200px) {
  :root { --rs-aside: 23rem; }
}

/* ------------------------------------------------------------------ 2. baza */
*,
*::before,
*::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-padding-top: calc(var(--rs-header-h) + var(--rs-s-4));
  scroll-padding-bottom: calc(var(--rs-player-h) + var(--rs-s-5));
}

body {
  margin: 0;
  background: var(--rs-paper);
  color: var(--rs-ink);
  font-family: var(--rs-font-ui);
  font-size: var(--rs-fs-0);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}

img,
svg,
video { max-width: 100%; height: auto; }

a {
  color: var(--rs-accent-deep);
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.18em;
}
a:hover { color: var(--rs-accent); }

:focus-visible { outline: 3px solid var(--rs-forest); outline-offset: 2px; }
/* na ciemnych pasach (nagłówek, hero, scena TV, stopka) obrys w kolorze słońca: zieleń lasu zlewa się z tłem */
.rs-header__bar :focus-visible,
.rs-scene--stage :focus-visible,
.rs-footer :focus-visible { outline-color: var(--rs-sun); }

h1,
h2,
h3,
h4 {
  font-family: var(--rs-font-display);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.01em;
  margin: 0 0 var(--rs-s-4);
  text-wrap: balance;
}
h1 { font-size: var(--rs-fs-h1); }
h2 { font-size: var(--rs-fs-h2); }
h3 { font-size: var(--rs-fs-h3); }
p { margin: 0 0 var(--rs-s-4); }

.rs-h__lead { color: var(--rs-ink); }
.rs-h__accent { color: var(--rs-accent); }

/* etykieta: małe kapitaliki (jeden wzór dla nadtytułów i podpisów w komponentach) */
.rs-kicker,
.rs-nownext__label,
.rs-today__label,
.rs-tv-next__title,
.rs-sport-card__kicker,
.rs-gate__kind,
.rs-promo__label {
  font-family: var(--rs-font-ui);
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.rs-kicker { margin: 0 0 var(--rs-s-2); color: var(--rs-muted); }
/* logo wybrane w panelu: stała wysokość, szerokość z proporcji (bez zniekształceń), nigdy szersze niż miejsce w nagłówku */
.rs-brand__logo { display: block; width: auto; height: 3.25rem; max-width: min(15rem, 56vw); object-fit: contain; object-position: left center; }
.rs-stuck .rs-brand__logo { height: 2.5rem; }
.rs-footer__name .rs-brand__logo { height: 4.5rem; max-width: min(20rem, 100%); } /* telefon: logo nad tekstem; od 720 px stoi obok tekstu (sekcja „Stopka v3” na końcu pliku) */
.rs-header__inner:has(.rs-brand__logo) { padding-block: 0.25rem; }
@media (min-width: 960px) {
  /* komputer: logo jest głównym znakiem serwisu (64 px), po przewinięciu przyklejony nagłówek się zmniejsza (40 px); wysokość nagłówka idzie za logo */
  :root { --rs-header-h: 8.75rem; }
  .rs-stuck { --rs-header-h: 6.25rem; }
  .rs-brand__logo { height: 5rem; max-width: min(24rem, 42vw); }
  .rs-stuck .rs-brand__logo { height: 3rem; }
  .rs-header__inner:has(.rs-brand__logo) { padding-block: 0.5rem; }
  .rs-stuck .rs-header__inner:has(.rs-brand__logo) { padding-block: 0.25rem; min-height: 3.5rem; }
}
@media (prefers-reduced-motion: no-preference) {
  .rs-brand__logo { transition: height 0.2s var(--rs-ease); }
}

/* ------------------------------------------------------------------ 3. układ i sceny */
.rs-wrap {
  width: 100%;
  max-width: var(--rs-wrap);
  margin-inline: auto;
  padding-inline: var(--rs-gutter);
}
/* kolumna czytania: ta sama LEWA krawędź co szeroki kontener (nie jest centrowana), węższa tylko po prawej (długość linii tekstu) */
.rs-wrap--read {
  max-width: calc(var(--rs-read) + 2 * var(--rs-gutter));
  margin-inline: max(0px, calc((100% - var(--rs-wrap)) / 2)) auto;
}

/* Układ portalu: kolumna główna + kolumna boczna (od 960 px), na telefonie i tablecie boczna spływa pod treść. Wspólna lewa krawędź z nagłówkiem serwisu,
   okruszkami, tytułem i siatkami; prawa krawędź kolumny bocznej = prawa krawędź siatek. Kolumna główna to kolumna czytania (~45 rem). */
.rs-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--rs-gap-block) var(--rs-layout-gap);
  align-items: start;
  padding-block: var(--rs-s-4) var(--rs-gap-section);
}
.rs-layout__main { min-width: 0; }
.rs-layout--solo > .rs-layout__main { max-width: 46rem; }
.rs-layout__aside { display: flex; flex-direction: column; gap: var(--rs-s-5); min-width: 0; }
.rs-scene > .rs-layout { padding-block: 0; }
/* ograniczenie długości linii wewnątrz szerokiego kontenera (bez marginesów i paddingu, w odróżnieniu od .rs-wrap--read) */
.rs-read { max-width: var(--rs-read); }

/* dekoracje (otoczaki, fale) mogą wystawać poza kolumnę: przycinamy je tutaj, żeby nie tworzyły przewijania poziomego */
.rs-main { min-height: 60vh; overflow-x: clip; }
.rs-main:focus { outline: none; }
.rs-main[aria-busy="true"] { opacity: 0.6; transition: opacity 0.15s var(--rs-ease); }

.rs-section__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--rs-s-2) var(--rs-s-4);
  margin-bottom: var(--rs-s-4);
  padding-top: var(--rs-s-2);
  border-top: var(--rs-rule);
}
.rs-section__title { margin: 0; font-size: var(--rs-fs-h2s); }
.rs-section__lead { max-width: var(--rs-read); margin: calc(-1 * var(--rs-s-2)) 0 var(--rs-s-4); color: var(--rs-ink-2); }
/* w nagłówkach modułów tytuł jest jednokolorowy (dwukolorowy zapis marki zostaje w logo): akcent niesie linia i nadtytuł */
.rs-section__title .rs-h__accent,
.rs-acc__title .rs-h__accent,
.rs-blockhead .rs-h__accent,
.rs-pagehead__title .rs-h__accent { color: inherit; }
/* Nagłówek modułu portalu (rs_modhead_html): gruba linia u góry, nadtytuł, tytuł, „Wszystkie” po prawej */
.rs-modhead {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--rs-s-2) var(--rs-s-4);
  margin-bottom: var(--rs-s-4);
  padding-top: var(--rs-s-2);
  border-top: var(--rs-rule);
}
.rs-modhead__text { min-width: 0; }
.rs-modhead__kicker { margin: 0; color: var(--rs-accent-deep); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.12em; line-height: 1.3; text-transform: uppercase; }
.rs-modhead__title { margin: 0; font-size: var(--rs-fs-h2s); line-height: 1.15; }
.rs-modhead__more { flex: none; }
.rs-modhead__more,
.rs-section__more {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-height: 2.75rem;
  color: var(--rs-accent-deep);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-decoration: none;
  text-transform: uppercase;
  white-space: nowrap;
}
.rs-modhead__more::after,
.rs-section__more::after { content: "\2192"; font-size: 1rem; letter-spacing: 0; }
.rs-modhead__more:hover,
.rs-section__more:hover { color: var(--rs-ink); text-decoration: underline; text-underline-offset: 0.25em; }

/* Scena (pas): proste krawędzie, tło białe / bardzo jasny szary / głęboka zieleń (kolory zmieniają się wg kolejności w DOM na stronach z rytmem).
   Bez fal, otoczaków i cieni: pasy rozdziela linia albo zmiana tła. */
.rs-scene {
  --scene-bg: var(--rs-sand);
  position: relative;
  padding-block: clamp(1.25rem, 3vw, 2rem) clamp(1.75rem, 4vw, 2.75rem);
  background: var(--scene-bg);
}
.rs-scene--sand { --scene-bg: var(--rs-sand); }
.rs-scene--mist { --scene-bg: var(--rs-sand); }
.rs-scene--paper { --scene-bg: var(--rs-paper); }
.rs-scene--slim { padding-block: var(--rs-s-3) clamp(1.5rem, 4vw, 2.25rem); }
.rs-home + .rs-footer { margin-top: 0; }

/* cały kafel klika się jednym linkiem (tytułem): odnośnik rozciąga się na najbliższego przodka z position: relative */
.rs-stretch::after { content: ""; position: absolute; inset: 0; }
.rs-stretch:focus-visible { outline: none; }
.rs-stretch:focus-visible::after { outline: 3px solid var(--rs-forest); outline-offset: 2px; border-radius: inherit; }

/* powierzchnia karty = moduł: jasne tło, cienkie obramowanie, mały promień, bez cienia (jedna definicja dla wszystkich kart tego języka) */
.rs-empty-card,
.rs-chan,
.rs-event,
.rs-fact,
.rs-aside__block,
.rs-tl,
.rs-mod {
  border: 1px solid var(--rs-line);
  border-radius: var(--rs-leaf);
  background: var(--rs-surface);
  box-shadow: var(--rs-shadow);
}

/* zakładki (podnawigacja): tekst z podkreśleniem aktywnej pozycji zamiast pigułek; wspólne dla zakładek, skoków do sekcji i nawigacji po dniach */
.rs-tabs a,
.rs-sport-jump a,
.rs-daynav a {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  padding: 0 0.9rem;
  border: 0;
  border-bottom: 3px solid transparent;
  color: var(--rs-ink-2);
  font-size: 0.9375rem;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}
.rs-tabs a:hover,
.rs-sport-jump a:hover,
.rs-daynav a:hover { border-bottom-color: var(--rs-line-2); color: var(--rs-ink); }

/* Nagłówek strony: szeroki kontener (ta sama lewa krawędź co siatki pod nim), lead z ograniczoną długością linii. Portalowo: nadtytuł z kwadratem akcentu, jednokolorowy tytuł,
   cienka linia pod całością; żadnych dekoracji. */
.rs-pagehead {
  position: relative;
  margin-bottom: var(--rs-s-4);
  padding-block: var(--rs-s-4) var(--rs-s-3);
  border-bottom: 1px solid var(--rs-line);
}
.rs-pagehead .rs-kicker { display: flex; align-items: center; gap: 0.5rem; color: var(--rs-accent-deep); }
.rs-pagehead .rs-kicker::before { content: ""; flex: none; width: 0.5rem; height: 0.5rem; background: var(--rs-accent); }
.rs-pagehead__title { margin: 0; }
.rs-pagehead__lead { max-width: var(--rs-read); margin: var(--rs-s-3) 0 0; color: var(--rs-ink-2); font-size: 1.0625rem; }
.rs-page,
.rs-list-wrap,
.rs-notfound { position: relative; isolation: isolate; }

.rs-list-wrap { padding-bottom: var(--rs-gap-section); }
/* sekcje huba jedna pod drugą (np. „Dziś” nad kaflami rodzajów): ten sam odstęp pionowy */

.rs-empty { padding-block: var(--rs-s-5); color: var(--rs-ink-2); }

/* ------------------------------------------------------------------ 4. komponenty */
.rs-icon { width: 1.25rem; height: 1.25rem; flex: none; fill: currentColor; }
.rs-icon--pause { display: none; }
[aria-pressed="true"] > .rs-icon--play { display: none; }
[aria-pressed="true"] > .rs-icon--pause { display: block; }
/* napis przycisku odsłuchu: "włącz" gdy cisza, "zatrzymaj" gdy gra (aria-pressed ustawia player.js) */
.rs-when-on { display: none; }
[aria-pressed="true"] > .rs-when-idle { display: none; }
[aria-pressed="true"] > .rs-when-on { display: inline; }
.rs-btn .rs-eq { display: none; }
.rs-is-playing .rs-btn .rs-eq { display: inline-flex; }

.rs-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  min-height: 2.75rem;
  padding: 0.5rem 1.35rem;
  border: 2px solid transparent;
  border-radius: var(--rs-r-pill);
  font-family: var(--rs-font-ui);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.14s var(--rs-ease), border-color 0.14s var(--rs-ease), color 0.14s var(--rs-ease), transform 0.14s var(--rs-ease);
}
.rs-btn--accent { background: var(--rs-accent); color: #fff; }
.rs-btn--accent:hover { background: var(--rs-accent-deep); color: #fff; }
.rs-btn--ghost { background: transparent; border-color: var(--rs-line-2); color: var(--rs-ink); }
.rs-btn--ghost:hover { border-color: var(--rs-ink); color: var(--rs-ink); }
.rs-btn--lg { min-height: 3.5rem; padding-inline: 1.75rem; font-size: 1.0625rem; }

/* etykieta: jedna wysokość i krój dla chipów, znaczników „Dziś”, „na żywo”, kategorii na dużym materiale, „nowość” w Topce, odliczania w Sporcie i etykiet typu materiału (.rs-tag) */
.rs-chip,
.rs-tag,
.rs-day__badge,
.rs-slot__live,
.rs-nlead__cat,
.rs-sport-badge,
.rs-top-move--new {
  display: inline-block;
  padding: 0.1rem 0.5rem;
  border-radius: var(--rs-r-pill);
  font-size: 0.6875rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.06em;
  text-decoration: none;
  text-transform: uppercase;
}
.rs-chip {
  background: var(--rs-accent-soft);
  color: var(--rs-accent-deep);
}
.rs-chip:hover { background: var(--rs-accent); color: #fff; }
.rs-chip--solid,
.rs-chip--solid:hover { background: var(--rs-accent); color: #fff; }
/* etykieta typu materiału (rs_tag_html): stałe kolory wg rodzaju, ten sam krój w całym serwisie */
.rs-tag { background: var(--rs-surface-2); color: var(--rs-ink-2); }
.rs-tag--notice { background: var(--rs-forest-soft); color: var(--rs-forest-deep); }
.rs-tag--event,
.rs-tag--show { background: var(--rs-accent-soft); color: var(--rs-accent-deep); }
.rs-tag--video { background: var(--rs-ink); color: #fff; }
.rs-tag--sport { background: var(--rs-forest); color: #fff; }
.rs-tag--guide { background: var(--rs-forest-soft); color: var(--rs-forest); }
.rs-tag--top { background: var(--rs-accent); color: #fff; }

/* Korektor: słupki pulsują tylko podczas odsłuchu (klasa rs-is-playing na <html> ustawia player.js). */
.rs-eq {
  display: inline-flex;
  align-items: flex-end;
  gap: 2px;
  flex: none;
  width: 1.125rem;
  height: 1rem;
}
.rs-eq i {
  display: block;
  flex: 1;
  height: 100%;
  border-radius: 2px;
  background: currentColor;
  transform: scaleY(0.28);
  transform-origin: bottom;
}
.rs-eq i:nth-child(2) { transform: scaleY(0.5); }
.rs-eq i:nth-child(3) { transform: scaleY(0.4); }

.rs-card__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  color: var(--rs-muted);
  font-size: 0.8125rem;
}
.rs-card__excerpt { margin: 0; color: var(--rs-ink-2); font-size: 0.9375rem; }
/* tytuł jako odnośnik (karty, wiersze, kafle): jedna definicja dla wszystkich komponentów */
.rs-today__title a,
.rs-event__title a,
.rs-brief__title a,
.rs-fact__title a,
.rs-person-card__name a,
.rs-top-results__title a,
.rs-top-archive__title a,
.rs-chan__name a,
.rs-vline__title a,
.rs-sport-home__club a { color: var(--rs-ink); text-decoration: none; }
.rs-today__title a:hover,
.rs-event__title a:hover,
.rs-brief__title a:hover,
.rs-fact__title a:hover,
.rs-person-card__name a:hover,
.rs-top-results__title a:hover,
.rs-top-archive__title a:hover,
.rs-chan__name a:hover,
.rs-vline__title a:hover,
.rs-sport-home__club a:hover { color: var(--rs-accent-deep); text-decoration: underline; }

.rs-tile {
  display: grid;
  place-content: center;
  gap: 0.25rem;
  width: 100%;
  height: 100%;
  background: var(--rs-forest-soft);
  box-shadow: inset 0 -3px 0 var(--rs-accent);
  color: var(--rs-forest);
  text-align: center;
}
.rs-tile__mark { font-family: var(--rs-font-display); font-size: 2.25rem; font-weight: 700; line-height: 1; letter-spacing: -0.02em; }
.rs-tile__label { font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }

.rs-pagination { margin-top: var(--rs-s-7); }
.rs-pagination ul { display: flex; flex-wrap: wrap; gap: var(--rs-s-2); margin: 0; padding: 0; list-style: none; }
.rs-pagination a,
.rs-pagination span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.75rem;
  min-height: 2.75rem;
  padding: 0 0.9rem;
  border: 1px solid var(--rs-line-2);
  border-radius: var(--rs-r-pill);
  color: var(--rs-ink);
  font-weight: 700;
  text-decoration: none;
}
.rs-pagination a:hover { border-color: var(--rs-ink); }
.rs-pagination .current { border-color: var(--rs-ink); background: var(--rs-ink); color: var(--rs-paper); }

.rs-search { display: flex; flex-wrap: wrap; gap: var(--rs-s-2); margin-top: var(--rs-s-4); max-width: var(--rs-read); }
.rs-search__input {
  flex: 1 1 14rem;
  min-height: 2.75rem;
  padding: 0.5rem 1.2rem;
  border: 2px solid var(--rs-line-2);
  border-radius: var(--rs-r-pill);
  background: var(--rs-surface);
  color: var(--rs-ink);
  font-family: var(--rs-font-ui);
  font-size: 1rem;
}
.rs-search__input:focus-visible { border-color: var(--rs-forest); outline-offset: 0; }
/* pole wyszukiwarki w nagłówku strony wyników i na 404: wyższe, z czarną ramką, przycisk równej wysokości; pod nim podpowiedź, co przeszukujemy */
.rs-pagehead .rs-search { max-width: 42rem; }
.rs-pagehead .rs-search__input { min-height: 3.25rem; border-color: var(--rs-ink); font-size: 1.0625rem; }
.rs-pagehead .rs-search .rs-btn { min-height: 3.25rem; }
.rs-search-hint { margin: var(--rs-s-2) 0 0; color: var(--rs-muted); font-size: 0.875rem; }

.rs-facts { margin: 0 0 var(--rs-s-6); padding: var(--rs-s-2) var(--rs-s-5); border: 1px solid var(--rs-line); border-radius: var(--rs-leaf); background: var(--rs-surface); }
.rs-facts__row { display: grid; gap: 0.25rem; padding-block: var(--rs-s-3); border-bottom: 1px solid var(--rs-line); }
.rs-facts__row:last-child { border-bottom: 0; }
.rs-facts dt { color: var(--rs-muted); font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.rs-facts dd { margin: 0; font-size: 1.0625rem; overflow-wrap: anywhere; }
/* tabliczka danych strony instytucji (Kontakt, Redakcja, Stopka redakcyjna): pola w komórkach rozdzielonych linią, dwie kolumny od 720 px */
.rs-inst { margin-bottom: var(--rs-gap-section); }
.rs-inst .rs-blockhead { margin-bottom: var(--rs-s-3); }
.rs-facts.rs-facts--plate { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1px; margin: 0; padding: 0; overflow: hidden; background: var(--rs-line); }
.rs-facts--plate .rs-facts__row { padding: var(--rs-s-3) var(--rs-s-4); border-bottom: 0; background: var(--rs-surface); }
.rs-facts--plate > :last-child:nth-child(odd) { grid-column: 1 / -1; }

.rs-navnote {
  position: fixed;
  left: 50%;
  bottom: calc(var(--rs-player-h) + var(--rs-s-2));
  z-index: 60;
  max-width: calc(100% - 2 * var(--rs-gutter));
  margin: 0;
  padding: 0.65rem 1.2rem;
  border-radius: var(--rs-r-pill);
  background: var(--rs-ink);
  color: #fff;
  font-size: 0.9375rem;
  transform: translateX(-50%);
}

.rs-skip {
  position: fixed;
  left: var(--rs-s-3);
  top: -6rem;
  z-index: 100;
  padding: 0.6rem 1.1rem;
  border-radius: var(--rs-r-pill);
  background: var(--rs-ink);
  color: #fff;
}
.rs-skip:focus { top: var(--rs-s-3); }

/* ------------------------------------------------------------------ 5. oprawa portalu: pasek narzędziowy, nagłówek dwupoziomowy (marka + nawigacja sekcji), pas tematów */
/* pasek narzędziowy (od 960 px): data i słońce | teraz gra | skróty; na telefonie ukryty (skróty są w menu, a wysokość jest cenna) */
.rs-util { display: none; background: var(--rs-sand); border-bottom: 1px solid var(--rs-line); color: var(--rs-ink-2); font-size: 0.8125rem; }
.rs-util__inner { display: flex; align-items: center; gap: var(--rs-s-4); min-height: 2.25rem; max-width: none; } /* pasek na całą szerokość ekranu */
.rs-util p { margin: 0; }
.rs-util__date { display: flex; flex: none; align-items: center; gap: var(--rs-s-4); font-weight: 600; white-space: nowrap; }
.rs-util__date time { display: inline-block; }
.rs-util__date time::first-letter { text-transform: uppercase; }
.rs-util__sun { display: none; align-items: center; gap: 0.35rem; font-weight: 400; }
.rs-util__icon { display: inline-grid; flex: none; place-items: center; color: var(--rs-accent-deep); }
.rs-util__icon svg { width: 0.9375rem; height: 0.9375rem; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.rs-util__now { display: flex; flex: 1 1 0; align-items: center; justify-content: center; min-width: 0; overflow: hidden; white-space: nowrap; }
.rs-util__now:has(.is-empty) { display: none; }
.rs-util__now .rs-livedot { background: var(--rs-accent); }
.rs-util__label { margin-right: 0.35rem; color: var(--rs-accent-deep); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.rs-util__song { min-width: 0; overflow: hidden; text-overflow: ellipsis; font-weight: 600; }
.rs-util__links { display: flex; flex: none; align-items: center; margin: 0 0 0 auto; padding: 0; list-style: none; }
.rs-util__now:not(:has(.is-empty)) + .rs-util__links { margin-left: 0; }
.rs-util__links li + li { margin-left: var(--rs-s-4); padding-left: var(--rs-s-4); border-left: 1px solid var(--rs-line-2); }
.rs-util__links a { display: inline-flex; align-items: center; min-height: 2.25rem; color: var(--rs-ink-2); font-weight: 600; text-decoration: none; white-space: nowrap; }
.rs-util__links a:hover { color: var(--rs-accent-deep); text-decoration: underline; text-underline-offset: 0.2em; }

.rs-header {
  position: sticky;
  top: 0;
  z-index: 40;
  background: var(--rs-paper);
  border-bottom: 1px solid var(--rs-line-2);
}
.rs-header__inner {
  position: relative;
  display: flex;
  align-items: center;
  gap: var(--rs-s-2);
  min-height: 4rem;
}
.rs-brand {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
  color: var(--rs-ink);
  font-family: var(--rs-font-display);
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  text-decoration: none;
  white-space: nowrap;
}
.rs-brand:hover { color: var(--rs-ink); }
.rs-brand__mark {
  display: grid;
  place-items: center;
  width: 2.25rem;
  height: 2.25rem;
  flex: none;
  border-radius: var(--rs-r-md);
  background: var(--rs-accent);
  color: #fff;
  font-family: var(--rs-font-ui);
  font-size: 0.9375rem;
  font-weight: 800;
  letter-spacing: 0.02em;
}
.rs-brand__word { display: inline-block; line-height: 1.05; }
.rs-brand__place { color: var(--rs-accent-deep); }
.rs-header__actions { display: flex; align-items: center; gap: var(--rs-s-1); margin-left: auto; }
.rs-header__listen { min-height: 2.75rem; min-width: 2.75rem; padding: 0.35rem 0.9rem; }
/* na telefonie sam znak odtwarzania; napis zostaje dla czytników ekranu (reguła .rs-sr-only niżej) */

/* wyszukiwarka w nagłówku (od 960 px): widoczne pole z ikoną (poniżej wyszukiwarka mieszka w menu) */
.rs-hsearch { display: none; align-items: stretch; min-height: 2.75rem; }
.rs-hsearch__input {
  width: 13rem;
  min-width: 0;
  padding: 0 0.85rem;
  border: 1px solid var(--rs-line-2);
  border-right: 0;
  border-radius: var(--rs-r-md) 0 0 var(--rs-r-md);
  background: var(--rs-sand);
  color: var(--rs-ink);
  font-family: var(--rs-font-ui);
  font-size: 0.9375rem;
  transition: width 0.2s var(--rs-ease);
}
.rs-hsearch__input:focus { width: 17rem; background: var(--rs-paper); }
.rs-hsearch__input:focus-visible { outline-offset: 0; }
.rs-hsearch__submit {
  display: grid;
  place-items: center;
  width: 2.75rem;
  border: 1px solid var(--rs-ink);
  border-radius: 0 var(--rs-r-md) var(--rs-r-md) 0;
  background: var(--rs-ink);
  color: #fff;
  cursor: pointer;
}
.rs-hsearch__submit:hover { background: var(--rs-accent-deep); border-color: var(--rs-accent-deep); }
.rs-hsearch__submit svg { width: 1.25rem; height: 1.25rem; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* pas nawigacji sekcji: ciemna listwa; poniżej 960 px to rozwijane menu pod nagłówkiem */
.rs-nav {
  display: none;
  position: absolute;
  inset-inline: 0;
  top: 100%;
  max-height: calc(100vh - 4rem);
  max-height: calc(100dvh - 4rem);
  overflow-y: auto;
  padding: var(--rs-s-2) var(--rs-gutter) var(--rs-s-3);
  background: var(--rs-forest-deep);
  box-shadow: var(--rs-shadow-lg);
}
.rs-nav-open .rs-nav { display: block; }
.rs-nav__list { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.rs-nav__list a {
  display: block;
  padding: 0.8rem 0.25rem;
  border-bottom: 1px solid var(--rs-on-dark-line);
  color: var(--rs-on-dark);
  font-weight: 700;
  text-decoration: none;
}
.rs-nav__list a:hover,
.rs-nav__list a[aria-current] { color: #fff; }
.rs-nav__list a[aria-current="page"] { box-shadow: inset 4px 0 0 var(--rs-sun); padding-left: 0.85rem; }
.rs-nav__search { margin-top: var(--rs-s-3); padding-top: var(--rs-s-1); }
.rs-nav__search .rs-search { margin: 0; max-width: none; }
.rs-shortcuts--menu { margin-top: var(--rs-s-3); padding-top: var(--rs-s-3); border-top: 1px solid var(--rs-on-dark-line); }

.rs-nav-toggle {
  display: inline-grid;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  border: 0;
  border-radius: var(--rs-r-md);
  background: transparent;
  color: var(--rs-ink);
  cursor: pointer;
}
.rs-nav-toggle:hover { background: var(--rs-sand); }
.rs-nav-toggle__bars,
.rs-nav-toggle__bars::before,
.rs-nav-toggle__bars::after {
  display: block;
  width: 1.375rem;
  height: 2px;
  border-radius: 2px;
  background: currentColor;
  transition: transform 0.18s var(--rs-ease), background-color 0.18s var(--rs-ease);
}
.rs-nav-toggle__bars { position: relative; }
.rs-nav-toggle__bars::before,
.rs-nav-toggle__bars::after { content: ""; position: absolute; left: 0; }
.rs-nav-toggle__bars::before { top: -7px; }
.rs-nav-toggle__bars::after { top: 7px; }
.rs-nav-open .rs-nav-toggle__bars { background: transparent; }
.rs-nav-open .rs-nav-toggle__bars::before { transform: translateY(7px) rotate(45deg); }
.rs-nav-open .rs-nav-toggle__bars::after { transform: translateY(-7px) rotate(-45deg); }

/* pas „Tematy” pod nagłówkiem (od 960 px): kategorie i gminy w jednym przewijanym wierszu */
.rs-topics { display: none; background: var(--rs-paper); border-bottom: 1px solid var(--rs-line); }
/* pas na CAŁĄ szerokość ekranu (bez limitu kontenera), jeden wiersz; zawija się do dwóch dopiero, gdy ekran jest za wąski na wszystkie odnośniki */
.rs-topics__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; column-gap: clamp(0.75rem, 1.6vw, 3rem); max-width: none; } /* pas na całą szerokość ekranu, treść ma tyle miejsca, ile potrzebuje, i stoi pośrodku */
.rs-topics__group { display: flex; flex: none; align-items: center; gap: clamp(0.75rem, 1.2vw, 1.25rem); }
.rs-topics__label { flex: none; color: var(--rs-accent-deep); font-family: var(--rs-font-display); font-size: 1.0625rem; font-style: italic; font-weight: 700; line-height: 1; letter-spacing: 0; text-transform: none; }
.rs-topics__list { display: flex; flex: none; flex-wrap: wrap; gap: 0 clamp(0.625rem, 0.9vw, 1.5rem); margin: 0; padding: 0; list-style: none; }
.rs-topics__list a { display: inline-flex; align-items: center; min-height: 2.5rem; padding: 0; color: var(--rs-ink-2); font-size: 0.75rem; font-weight: 600; text-decoration: none; white-space: nowrap; }
.rs-topics__list a:hover { color: var(--rs-accent-deep); text-decoration: underline; text-underline-offset: 0.25em; }

/* bez JavaScriptu odsłuch nie działa: nie pokazujemy martwych przycisków (stopka linkuje do strony stacji) */
.rs-no-js [data-rs-toggle],
.rs-no-js .rs-player { display: none; }
.rs-no-js .rs-footer { padding-bottom: 0; }

/* bez JavaScriptu menu jest po prostu rozwinięte pod nagłówkiem */
.rs-no-js .rs-nav { position: static; display: block; box-shadow: none; }
.rs-no-js .rs-nav__list { grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); }
.rs-no-js .rs-nav-toggle { display: none; }

/* ------------------------------------------------------------------ 6. stopka (na telefonie natywne <details>) */
.rs-footer {
  position: relative;
  margin-top: clamp(2rem, 5vw, 3rem);
  border-top: 4px solid var(--rs-accent);
  padding-bottom: calc(var(--rs-player-h) + env(safe-area-inset-bottom, 0px)); /* miejsce na dolny pasek odsłuchu */
  background: var(--rs-forest-deep);
  color: var(--rs-on-dark);
}
.rs-footer a { color: var(--rs-on-dark); }
.rs-footer a { text-decoration: none; }
.rs-footer a:hover,
.rs-footer a:focus-visible { color: #fff; text-decoration: underline; text-underline-offset: 0.25em; }
.rs-footer__top { display: grid; gap: var(--rs-s-4); padding-block: var(--rs-s-5) var(--rs-s-3); }
.rs-footer__name { display: flex; align-items: center; gap: 0.6rem; margin: 0 0 var(--rs-s-3); font-family: var(--rs-font-display); font-size: 1.5rem; font-weight: 700; letter-spacing: -0.02em; }
.rs-footer .rs-brand__place { color: #f0b3a3; }
.rs-footer__about,
.rs-footer__listen { max-width: 34rem; margin: 0 0 var(--rs-s-3); color: var(--rs-on-dark-2); font-size: 0.9375rem; }
.rs-footer__publisher { max-width: 34rem; margin: 0 0 var(--rs-s-2); font-size: 0.9375rem; line-height: 1.5; }
.rs-footer__publisher strong { color: #fff; }
.rs-footer__mail { display: flex; flex-wrap: wrap; gap: 0 var(--rs-s-4); margin: 0 0 var(--rs-s-2); font-size: 0.9375rem; }
.rs-footer__social { display: flex; flex-wrap: wrap; gap: 0 var(--rs-s-4); margin: 0 0 var(--rs-s-3); padding: 0; list-style: none; font-size: 0.9375rem; }
.rs-footer__social a,
.rs-footer__mail a { display: inline-flex; align-items: center; min-height: 2.75rem; }
.rs-footer__groups { display: grid; grid-template-columns: minmax(0, 1fr); }

.rs-foot-group { border-top: 1px solid var(--rs-on-dark-line); }
.rs-foot-group > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 2.75rem;
  color: #fff;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  list-style: none;
  cursor: pointer;
}
.rs-foot-group > summary::-webkit-details-marker { display: none; }
.rs-foot-group > summary::after { content: "+"; font-size: 1.25rem; font-weight: 400; }
.rs-foot-group[open] > summary::after { content: "\2212"; }
.rs-foot-group ul { margin: 0 0 var(--rs-s-3); padding: 0; list-style: none; }
.rs-foot-group li a { display: inline-flex; align-items: center; min-height: 2.75rem; font-size: 0.9375rem; }

.rs-footer__legal { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0 var(--rs-s-4); border-top: 1px solid var(--rs-on-dark-line); }
.rs-footer__copy { margin: 0; padding-block: var(--rs-s-2); color: var(--rs-on-dark-2); font-size: 0.8125rem; }
.rs-footer__privacy { margin: 0; }
.rs-footer__legal .rs-foot-consent { font-size: 0.8125rem; }

/* ------------------------------------------------------------------ 7. pasek odsłuchu: dolna belka na całą szerokość, treść w kolumnie strony (trwały; pjax go nie podmienia) */
.rs-player {
  position: fixed;
  inset-inline: 0;
  bottom: 0;
  z-index: 50;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  align-items: center;
  gap: var(--rs-s-3);
  min-height: var(--rs-player-h);
  padding: var(--rs-s-2) var(--rs-edge) calc(var(--rs-s-2) + env(safe-area-inset-bottom, 0px));
  border: 0;
  border-top: 1px solid var(--rs-line-2);
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 -10px 28px -16px rgba(0, 0, 0, 0.35);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}
.rs-player[data-state="playing"] { border-top-color: var(--rs-accent); }
.rs-player__toggle {
  position: relative;
  display: grid;
  place-items: center;
  width: 3.25rem;
  height: 3.25rem;
  border: 0;
  border-radius: 50%;
  background: var(--rs-accent);
  color: #fff;
  cursor: pointer;
  transition: background-color 0.14s var(--rs-ease), transform 0.14s var(--rs-ease);
}
.rs-player__toggle:hover { background: var(--rs-accent-deep); }
.rs-player__toggle .rs-icon { width: 1.5rem; height: 1.5rem; }
.rs-player[data-state="loading"] .rs-player__toggle::after {
  content: "";
  position: absolute;
  inset: -4px;
  border: 2px solid var(--rs-accent-soft);
  border-top-color: var(--rs-accent);
  border-radius: 50%;
}

.rs-player__body { display: flex; align-items: center; gap: var(--rs-s-3); min-width: 0; }
.rs-player__text { min-width: 0; }
.rs-player__mark { width: 2.25rem; height: 2.25rem; font-size: 0.9375rem; }
.rs-player__source,
.rs-player__now,
.rs-player__status { margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rs-player__source {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  color: var(--rs-muted);
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.35;
  white-space: normal;
}
.rs-player__now { color: var(--rs-ink); font-size: 0.9375rem; font-weight: 600; }
.rs-player__now.is-empty { display: none; }
.rs-player__status { color: var(--rs-ink-2); font-size: 0.8125rem; }
.rs-player__status:empty { display: none; }
.rs-player[data-state="error"] .rs-player__status,
.rs-player[data-state="offline"] .rs-player__status { color: var(--rs-accent-deep); font-weight: 600; }
.rs-player__eq { display: none; color: var(--rs-accent); }

.rs-player__retry { min-height: 2.75rem; padding: 0.35rem 0.9rem; font-size: 0.875rem; }
.rs-player__recent-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  min-width: 2.75rem;
  min-height: 2.75rem;
  padding: 0 0.6rem;
  border: 0;
  border-radius: var(--rs-r-pill);
  background: none;
  color: var(--rs-accent-deep);
  font-family: var(--rs-font-ui);
  font-size: 0.875rem;
  font-weight: 700;
  cursor: pointer;
}
.rs-player__recent-btn:hover { background: var(--rs-accent-soft); }
/* na wąskich ekranach sam znak strzałki; tekst zostaje dla czytników ekranu (.rs-sr-only niżej) */
.rs-player__recent-btn::after {
  content: "";
  width: 0.5rem;
  height: 0.5rem;
  border-right: 2px solid currentColor;
  border-top: 2px solid currentColor;
  transform: rotate(-45deg);
  transition: transform 0.18s var(--rs-ease);
}
.rs-player__recent-btn[aria-expanded="true"]::after { transform: rotate(135deg); }

.rs-player__recent {
  position: absolute;
  inset-inline: 0;
  bottom: 100%;
  max-height: 50vh;
  overflow-y: auto;
  padding: var(--rs-s-3) var(--rs-edge);
  border: 0;
  border-top: 1px solid var(--rs-line-2);
  border-radius: 0;
  background: var(--rs-surface);
  box-shadow: var(--rs-shadow-lg);
}
.rs-player__recent-list li {
  display: flex;
  justify-content: space-between;
  gap: var(--rs-s-3);
  padding-block: 0.45rem;
  border-bottom: 1px solid var(--rs-line);
  font-size: 0.9375rem;
}
.rs-player__recent-list li:last-child { border-bottom: 0; }
.rs-player__recent-list time { flex: none; color: var(--rs-muted); font-size: 0.8125rem; font-variant-numeric: tabular-nums; }
.rs-player__recent-empty { margin: 0; color: var(--rs-muted); font-size: 0.9375rem; }

/* ------------------------------------------------------------------ 8. widoki */
/* wspólne wzory ciemnej sceny (TV): nadtytuły, akcenty, przyciski */
.rs-scene--stage .rs-kicker { color: var(--rs-on-dark-2); }
.rs-scene--stage .rs-h__lead { color: var(--rs-on-dark); }
.rs-scene--stage .rs-h__accent { color: var(--rs-sun); }
.rs-scene--stage .rs-btn--ghost { border-color: var(--rs-on-dark-line-2); color: var(--rs-on-dark); }
.rs-scene--stage .rs-btn--ghost:hover { border-color: #fff; color: #fff; }

/* kolory panoramy (kształty w parts/panorama.php) */
.rs-pano-sky { fill: var(--rs-accent-soft); }
.rs-pano-halo { fill: var(--rs-sun); opacity: 0.32; }
.rs-pano-sun { fill: var(--rs-sun); }
.rs-pano-cloud { fill: var(--rs-paper); opacity: 0.8; }
.rs-pano-birds { fill: none; stroke: var(--rs-forest-deep); stroke-width: 2; stroke-linecap: round; }
.rs-pano-hill-far { fill: var(--rs-hill-far); }
.rs-pano-hill-mid { fill: var(--rs-hill-mid); }
.rs-pano-back-pines use { fill: var(--rs-forest-mid); }
.rs-pano-spire rect,
.rs-pano-spire path { fill: var(--rs-forest); }
.rs-pano-spire .rs-pano-cross { fill: none; stroke: var(--rs-forest); stroke-width: 3; stroke-linecap: round; }
.rs-pano-spire .rs-pano-win { fill: var(--rs-sun); }
.rs-pano-lake { fill: var(--rs-lake); }
.rs-pano-shore { fill: var(--rs-forest); }
.rs-pano-keep { fill: var(--rs-accent); }
.rs-pano-tower { fill: var(--rs-accent-deep); }
.rs-pano-wall { fill: #a04129; }
.rs-pano-roof { fill: var(--rs-forest-deep); }
.rs-pano-gate { fill: var(--rs-forest-deep); }
.rs-pano-win { fill: var(--rs-paper); }
.rs-pano-reflection { opacity: 0.2; }
.rs-pano-glint { fill: none; stroke: var(--rs-sun); stroke-width: 3; stroke-linecap: round; opacity: 0.85; }
.rs-pano-wave { fill: none; stroke: var(--rs-lake-line); stroke-width: 3; stroke-linecap: round; opacity: 0.85; }
.rs-pano-wave--b { opacity: 0.55; }
.rs-pano-hull { fill: var(--rs-accent-deep); }
.rs-pano-mast { fill: none; stroke: var(--rs-forest-deep); stroke-width: 2.5; stroke-linecap: round; }
.rs-pano-sail { fill: var(--rs-paper); }
.rs-pano-sail--b { fill: var(--rs-accent-soft); }
.rs-pano-pine-a { fill: var(--rs-forest); }
.rs-pano-pine-b { fill: var(--rs-forest-deep); }
.rs-pano-reeds path { fill: none; stroke: var(--rs-forest); stroke-width: 3; stroke-linecap: round; }
.rs-pano-reeds ellipse { fill: var(--rs-accent-deep); }

/* --- data jako kafelek (wydarzenia, terminarz meczów) */
.rs-date { display: inline-grid; flex: none; justify-items: center; width: 3.75rem; padding: 0.5rem 0; border-radius: var(--rs-r-md); background: var(--rs-accent-soft); color: var(--rs-accent-deep); line-height: 1.1; text-align: center; }
.rs-date__day { font-family: var(--rs-font-display); font-size: 1.75rem; font-weight: 700; }
.rs-date__mon { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.rs-date__dow { margin-top: 0.125rem; color: var(--rs-ink-2); font-size: 0.75rem; }
/* wariant „na osi”: bez tła, z kreską po prawej (lista meczów z osią czasu) */
.rs-date--line { width: 3.25rem; padding: 0 var(--rs-s-2) 0 0; border-radius: 0; border-right: 3px solid var(--rs-accent-soft); background: none; color: inherit; }
.rs-date--line .rs-date__day { font-size: 1.5rem; }
.rs-date--line .rs-date__mon { color: var(--rs-accent-deep); }
.rs-date--line .rs-date__dow { color: var(--rs-muted); }

/* --- wydarzenia: karta z kafelkiem daty (bez sztucznych zdjęć), pasek najbliższych na stronie głównej */
.rs-event { position: relative; display: flex; align-items: flex-start; gap: var(--rs-s-4); min-width: 0; padding: var(--rs-s-4); }
.rs-event__body { flex: 1; min-width: 0; }
.rs-event .rs-card__meta { margin-bottom: 0.25rem; }
.rs-event__title { margin: 0; font-size: var(--rs-fs-h3); line-height: 1.25; }
.rs-event__when { margin: 0.25rem 0 0; color: var(--rs-ink-2); font-size: 0.9375rem; }
.rs-event.is-today .rs-date { background: var(--rs-accent); color: #fff; }
.rs-event.is-today .rs-date__dow { color: #fff; }

.rs-empty-card { padding: var(--rs-s-6) var(--rs-s-5); color: var(--rs-ink-2); }
.rs-empty-card p { max-width: 34rem; margin: 0; }
.rs-partners .rs-promo { margin-block: 0; }

/* --- historia: jedna duża opowieść (ciemny kafel) i krótsze obok */
.rs-history__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--rs-s-4); margin-bottom: var(--rs-s-5); }
.rs-story {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--rs-s-3);
  min-width: 0;
  padding: var(--rs-s-5) var(--rs-s-4);
  border-radius: var(--rs-leaf);
  background: var(--rs-forest-deep);
  color: var(--rs-on-dark);
}
.rs-story__meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--rs-s-2); margin: 0; color: var(--rs-on-dark-2); font-size: 0.8125rem; font-weight: 700; }
.rs-story__title { margin: 0; font-size: clamp(1.5rem, 1.1rem + 2vw, 2.75rem); line-height: 1.1; }
.rs-story__title a { color: var(--rs-on-dark); text-decoration: none; }
.rs-story__text { max-width: 40rem; margin: 0; color: var(--rs-on-dark-2); font-size: 1.0625rem; }
.rs-story__cta { margin: 0; padding-top: var(--rs-s-2); color: var(--rs-sun); font-weight: 700; }
.rs-history__list { display: grid; margin: 0; padding: 0; list-style: none; }
.rs-brief { position: relative; padding-block: var(--rs-s-4); border-top: 1px solid var(--rs-line-2); }
.rs-history__list > li:first-child .rs-brief { border-top: 0; padding-top: 0; }
.rs-brief__meta { margin: 0 0 0.125rem; color: var(--rs-forest); font-size: 0.8125rem; font-weight: 700; }
.rs-brief__title { margin: 0; font-size: var(--rs-fs-h3); line-height: 1.25; }
.rs-brief__text { display: -webkit-box; margin: 0.25rem 0 0; overflow: hidden; color: var(--rs-ink-2); font-size: 0.9375rem; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; }

/* --- ciekawostki: telefon = przewijany rząd z widoczną kolejną kartą, od 720 px stała siatka */
.rs-trivia {
  display: flex;
  gap: var(--rs-s-3);
  margin: 0 calc(-1 * var(--rs-gutter));
  padding: 0 var(--rs-gutter) var(--rs-s-2);
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-padding-inline: var(--rs-gutter);
  scroll-snap-type: x mandatory;
  list-style: none;
}
.rs-trivia > li { flex: 0 0 78%; min-width: 0; scroll-snap-align: start; }
.rs-trivia--n1 > li { flex-basis: 100%; }
.rs-fact { position: relative; height: 100%; padding: var(--rs-s-4); }
.rs-fact__meta { margin: 0 0 0.25rem; color: var(--rs-forest); font-size: 0.8125rem; font-weight: 700; }
.rs-fact__title { margin: 0 0 var(--rs-s-2); font-size: var(--rs-fs-h3); line-height: 1.25; }
.rs-fact__text { display: -webkit-box; margin: 0; overflow: hidden; color: var(--rs-ink-2); font-size: 0.9375rem; -webkit-box-orient: vertical; -webkit-line-clamp: 4; line-clamp: 4; }

/* --- "bąbelki": zasady, sposoby współpracy */
.rs-bubbles { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--rs-s-4); margin: 0; padding: 0; list-style: none; }
/* pas odsyłaczy (kafle wezwania jako płaskie pozycje z linią u góry, bez ikon w kółkach): zasady, sposoby współpracy, „Zobacz też” na dole hubów */
.rs-bubble {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding: var(--rs-s-3) 0 var(--rs-s-2);
  border-top: 2px solid var(--rs-ink);
}
.rs-bubble__icon {
  display: inline-grid;
  place-items: center;
  width: 1.5rem;
  height: 1.5rem;
  color: var(--rs-accent-deep);
}
.rs-bubble__title { margin: 0; font-size: 1.0625rem; }
.rs-bubble__body { margin: 0; color: var(--rs-ink-2); font-size: 0.875rem; }
.rs-bubble--link { color: var(--rs-ink); text-decoration: none; }
.rs-bubble--link:hover { color: var(--rs-ink); }
.rs-bubble--link:hover .rs-bubble__title { color: var(--rs-accent-deep); }
.rs-scene .rs-section__head { margin-bottom: var(--rs-s-5); }

/* --- Redakcja: blok wezwania */
.rs-block { margin-bottom: var(--rs-gap-section); }
.rs-block > p { max-width: var(--rs-read); }
.rs-callout {
  margin-bottom: var(--rs-gap-section);
  padding: var(--rs-s-5);
  border: 1px solid var(--rs-line);
  border-left: 4px solid var(--rs-accent);
  border-radius: var(--rs-leaf);
  background: var(--rs-accent-soft);
}
.rs-callout h2 { font-size: var(--rs-fs-h3); }
.rs-callout p { max-width: var(--rs-read); color: var(--rs-ink-2); }
.rs-callout .rs-btn { margin-top: var(--rs-s-2); }
.rs-checklist { margin: 0 0 var(--rs-s-5); padding: 0; list-style: none; }
.rs-checklist li { position: relative; padding: 0.45rem 0 0.45rem 2rem; }
.rs-checklist li::before {
  content: "";
  position: absolute;
  left: 0.2rem;
  top: 0.85rem;
  width: 0.9rem;
  height: 0.5rem;
  border-left: 3px solid var(--rs-forest-mid);
  border-bottom: 3px solid var(--rs-forest-mid);
  transform: rotate(-45deg);
}

/* --- artykuł i treść */
/* nagłówek i zdjęcie leżą w kolumnie głównej układu (.rs-layout__main): zdjęcie ma szerokość kolumny, nie wychodzi poza nią */
.rs-article__header { padding-block: 0 var(--rs-s-4); }
/* gęste metadane materiału w jednym wierszu: etykieta typu (.rs-tag), potem data, kategoria, gmina, źródło rozdzielone kropką środkową */
.rs-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 0.5rem; margin: 0 0 var(--rs-s-3); color: var(--rs-muted); font-size: 0.8125rem; }
.rs-meta__item + .rs-meta__item::before { content: "·"; margin-right: 0.5rem; color: var(--rs-muted); font-weight: 400; }
.rs-meta__link { color: var(--rs-accent-deep); font-weight: 700; text-decoration: none; }
.rs-meta__link:hover { text-decoration: underline; }
.rs-meta__gmina { color: var(--rs-forest); font-weight: 700; }
.rs-article__meta { margin: 0 0 var(--rs-s-4); font-size: 0.875rem; }
.rs-article__title { margin: 0 0 var(--rs-s-4); font-size: var(--rs-fs-h1-article); }
.rs-article__lead { margin: 0; color: var(--rs-ink-2); font-family: var(--rs-font-display); font-size: 1.3125rem; line-height: 1.45; }
.rs-article__media { margin: 0 0 var(--rs-s-5); }
.rs-article__media img { display: block; width: 100%; border-radius: var(--rs-leaf); }
.rs-article__media figcaption { margin-top: var(--rs-s-2); color: var(--rs-muted); font-size: 0.8125rem; }
.rs-article__footer { margin-top: var(--rs-gap-block); padding-top: var(--rs-s-4); border-top: 1px solid var(--rs-line); }
.rs-article__updated { color: var(--rs-muted); font-size: 0.875rem; }

.rs-prose { font-size: 1.0625rem; line-height: 1.75; }
.rs-prose > * + * { margin-top: var(--rs-s-4); }
.rs-prose > :first-child { margin-top: 0; }
.rs-prose h2 { margin-top: var(--rs-s-6); font-size: var(--rs-fs-h2s); }
.rs-prose h3 { margin-top: var(--rs-s-5); }
.rs-prose ul,
.rs-prose ol { padding-left: 1.4rem; }
.rs-prose li + li { margin-top: 0.35rem; }
.rs-prose blockquote { margin-inline: 0; padding: var(--rs-s-2) var(--rs-s-4); border-left: 4px solid var(--rs-accent); border-radius: 0 var(--rs-r-md) var(--rs-r-md) 0; background: var(--rs-accent-soft); color: var(--rs-ink-2); font-family: var(--rs-font-display); font-size: 1.1875rem; }
.rs-prose figure { margin-inline: 0; max-width: 100%; }
.rs-prose figcaption { margin-top: 0.4rem; color: var(--rs-muted); font-size: 0.8125rem; line-height: 1.5; }
.rs-prose img { max-width: 100%; height: auto; border-radius: var(--rs-r-lg); }
.rs-prose figure img { display: block; }
.rs-prose .alignleft { float: left; margin: 0 var(--rs-s-4) var(--rs-s-3) 0; }
.rs-prose .alignright { float: right; margin: 0 0 var(--rs-s-3) var(--rs-s-4); }
.rs-prose .aligncenter { display: block; margin-inline: auto; }
.rs-prose table { display: block; overflow-x: auto; border-collapse: collapse; }
.rs-prose th,
.rs-prose td { padding: 0.5rem 0.75rem; border: 1px solid var(--rs-line-2); text-align: left; vertical-align: top; }
.rs-prose th { background: var(--rs-surface-2); }

.rs-notfound { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--rs-gap-block) var(--rs-layout-gap); align-items: start; padding-block: var(--rs-s-4) var(--rs-gap-block); }
.rs-notfound__latest,
.rs-notfound__go { min-width: 0; }
.rs-notfound__art { overflow: hidden; margin-bottom: var(--rs-gap-section); border-radius: var(--rs-leaf); aspect-ratio: 16 / 5; }
.rs-notfound__art .rs-pano { display: block; width: 100%; height: 100%; }
.rs-shortcuts--page .rs-shortcuts__title { display: none; }
.rs-shortcuts--page .rs-shortcuts__list { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(-1 * var(--rs-gutter)); padding: 0 var(--rs-gutter) var(--rs-s-2); scroll-snap-type: x proximity; scroll-padding-inline: var(--rs-gutter); }
.rs-shortcuts--page .rs-shortcuts__list li { flex: none; scroll-snap-align: start; }
.rs-shortcuts--page .rs-shortcuts__link:hover { color: var(--rs-accent-deep); text-decoration: underline; }

/* --- Przewodnik: hub (Szczytno i powiat), widok rodzaju (Historia/Zabytki/Kultowe miejsca), pojedynczy wpis */
.rs-tabs {
  display: flex;
  flex-wrap: nowrap;
  gap: 0;
  margin: 0 0 var(--rs-s-4);
  overflow-x: auto;
  border-bottom: 1px solid var(--rs-line-2);
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.rs-tabs::-webkit-scrollbar { display: none; }
/* wygląd zakładki (wysokość, krój, podkreślenie) jest wspólny ze skokami do sekcji i dniami: grupa w części „układ i sceny” */
.rs-tabs a { flex: none; margin-bottom: -1px; }
.rs-tabs a[aria-current="page"] { border-bottom-color: var(--rs-accent); color: var(--rs-ink); }

/* kafle w jednym rzędzie kończą się równo: element listy rozciąga się, kafel wypełnia go */
.rs-bubbles > li:not(.rs-bubble) { display: flex; }
.rs-bubbles > li > a { flex: 1; }

.rs-place-card__gmina { color: var(--rs-forest); }

.rs-guide-article__source {
  margin: var(--rs-s-6) 0 0;
  padding: var(--rs-s-4) var(--rs-s-5);
  border-radius: var(--rs-r-lg);
  background: var(--rs-surface-2);
  color: var(--rs-ink-2);
  font-size: 0.875rem;
}
.rs-guide-article__source strong { color: var(--rs-ink); }
.rs-guide-article__source--gap { margin-bottom: var(--rs-s-5); }
.rs-guide-cross { margin-top: var(--rs-s-7); }


/* ------------------------------------------------------------------ 9. narzędzia i stany */
/* listy bez znaczników */
.rs-player__recent-list,
.rs-day__list,
.rs-tline { margin: 0; padding: 0; list-style: none; }
/* tylko dla czytników ekranu: jeden wzór dla klasy .rs-sr-only i elementów, które na wąskim ekranie tracą napis (przyciski odsłuchu i „ostatnio grane”),
   dla stanu „gra” (komunikat tylko w regionie live), pułapki na boty w Topce i nagłówków tabeli cookies (rozkładanej na karty) */
.rs-sr-only,
.rs-header__listen span,
.rs-player__recent-label,
.rs-player[data-state="playing"] .rs-player__status,
.rs-top__hp,
.rs-storage-table thead {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

/* ------------------------------------------------------------------ 10. progi (min-width) */
@media (min-width: 480px) {
  .rs-brand { gap: 0.6rem; font-size: 1.5rem; }
  .rs-brand__mark { width: 2.5rem; height: 2.5rem; font-size: 1rem; }
  .rs-header__inner { gap: var(--rs-s-3); }
  .rs-header__listen span { position: static; width: auto; height: auto; margin: 0; overflow: visible; clip-path: none; }
  .rs-header__listen { padding-inline: 1rem; }
  .rs-player[data-state="playing"] .rs-player__eq { display: inline-flex; }
  .rs-player__source { display: block; font-size: 0.8125rem; white-space: nowrap; }
  .rs-player__recent-label { position: static; width: auto; height: auto; margin: 0; overflow: visible; clip-path: none; }
}

@media (min-width: 720px) {
  .rs-player { gap: var(--rs-s-4); }
  .rs-player__now { font-size: 1rem; }
  .rs-bubbles { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .rs-bubbles > * { grid-column: span 2; }
  .rs-bubbles > :nth-last-child(2):nth-child(3n + 1),
  .rs-bubbles > :last-child:nth-child(3n + 2),
  .rs-bubbles > :only-child { grid-column: span 3; }
  .rs-bubbles > :last-child:nth-child(3n + 1):not(:only-child) { grid-column: 1 / -1; }
  .rs-bubbles:has(> :nth-child(4):last-child) > :nth-child(n) { grid-column: span 3; }
  .rs-nav__list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--rs-s-5); }
  .rs-footer__groups { grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: var(--rs-s-4) var(--rs-s-5); }
  .rs-foot-group { border-top: 0; }
  .rs-foot-group > summary { min-height: 2rem; pointer-events: none; cursor: default; }
  .rs-foot-group > summary::after,
  .rs-foot-group[open] > summary::after { content: none; }
  .rs-facts__row { grid-template-columns: 12rem minmax(0, 1fr); align-items: baseline; }
  .rs-callout { padding: var(--rs-s-7) var(--rs-s-6); }
  .rs-story { justify-content: center; padding: var(--rs-s-6) var(--rs-s-5); }
  .rs-trivia { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-inline: 0; padding: 0; overflow: visible; scroll-snap-type: none; }
  .rs-trivia--n1 { grid-template-columns: minmax(0, 36rem); }
  .rs-trivia--n3 > li:first-child { grid-column: 1 / -1; }
}

@media (min-width: 960px) {
  /* oprawa portalu: pasek narzędziowy, wyszukiwarka w nagłówku, pas nawigacji sekcji jako ciemna listwa, pas tematów */
  :root { --rs-header-h: 6.5rem; }
  .rs-header__inner { min-height: 3.75rem; }
  .rs-util,
  .rs-topics { display: block; }
  .rs-hsearch { display: flex; }
  .rs-nav-toggle,
  .rs-nav__search,
  .rs-shortcuts--menu { display: none; }
  .rs-header__bar { background: var(--rs-forest-deep); }
  .rs-nav {
    display: block;
    position: static;
    max-height: none;
    overflow: visible;
    padding: 0;
    background: transparent;
    box-shadow: none;
  }
  .rs-nav__list { display: flex; grid-template-columns: none; gap: 0; }
  .rs-nav__list a {
    display: flex;
    align-items: center;
    min-height: 2.75rem;
    padding: 0 1rem;
    border-bottom: 0;
    box-shadow: inset 0 -4px 0 transparent;
    font-size: 0.9375rem;
    letter-spacing: 0.01em;
  }
  .rs-nav__list a:hover { background: rgba(255, 255, 255, 0.08); }
  .rs-nav__list a[aria-current] { background: rgba(255, 255, 255, 0.1); box-shadow: inset 0 -4px 0 var(--rs-accent); }
  .rs-nav__list a[aria-current="page"] { padding-left: 1rem; box-shadow: inset 0 -4px 0 var(--rs-sun); }
  .rs-notfound { grid-template-columns: minmax(0, 1fr) minmax(0, 32rem); }
  .rs-history__grid { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: var(--rs-s-6); align-items: stretch; }
  .rs-history__grid--solo { grid-template-columns: minmax(0, 46rem); }
  .rs-history__list { grid-auto-rows: 1fr; }
  .rs-brief { display: flex; flex-direction: column; justify-content: center; }
  .rs-trivia--n3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rs-trivia--n3 > li:first-child { grid-column: auto; }
  .rs-footer__top { grid-template-columns: minmax(0, 1fr) minmax(0, 3fr); }
  .rs-footer__groups { grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); }
  .rs-foot-group li a { min-height: 2rem; }
}

@media (min-width: 1200px) {
  .rs-util__sun { display: inline-flex; }
  .rs-trivia--n4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* niski landscape (telefon poziomo): nagłówek nie jest przyklejony, pasek odsłuchu niższy, więcej miejsca na treść */
@media (max-height: 480px) and (orientation: landscape) {
  :root { --rs-player-h: 3.75rem; }
  .rs-header { position: static; }
  .rs-player { padding-block: var(--rs-s-1); }
  .rs-player__toggle { width: 2.75rem; height: 2.75rem; }
  .rs-player__source { display: block; white-space: nowrap; }
}

/* ------------------------------------------------------------------ 11. ruch (tylko ulepszenie) */
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
  .rs-btn:hover { transform: translateY(-1px); }
  .rs-player[data-state="loading"] .rs-player__toggle::after { animation: rs-spin 1s linear infinite; }
  @keyframes rs-spin { to { transform: rotate(360deg); } }

  /* korektor tylko podczas odsłuchu */
  .rs-is-playing .rs-eq i,
  .rs-is-playing .rs-onair__eq i { animation: rs-eq 0.9s ease-in-out infinite alternate; }
  .rs-is-playing .rs-eq i:nth-child(2n),
  .rs-is-playing .rs-onair__eq i:nth-child(2n) { animation-duration: 0.7s; animation-delay: -0.3s; }
  .rs-is-playing .rs-eq i:nth-child(3n),
  .rs-is-playing .rs-onair__eq i:nth-child(3n) { animation-duration: 1.1s; animation-delay: -0.6s; }
  @keyframes rs-eq { from { transform: scaleY(0.2); } to { transform: scaleY(1); } }

}

/* pojawianie się przy przewijaniu (CSS scroll-driven; bez wsparcia elementy po prostu są widoczne) */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .rs-reveal { animation: rs-rise linear both; animation-timeline: view(); animation-range: entry 4% entry 42%; }
    @keyframes rs-rise { from { opacity: 0; transform: translateY(1.75rem); } to { opacity: 1; transform: none; } }
  }
}

/* przejścia między stronami (View Transitions): treść przenika się, nagłówek i odsłuch zostają na miejscu */
@supports (view-transition-name: none) {
  .rs-header { view-transition-name: rs-header; }
  .rs-player { view-transition-name: rs-player; }
  ::view-transition-old(root) { animation-duration: 0.16s; }
  ::view-transition-new(root) { animation-duration: 0.26s; }
}

/* ------------------------------------------------------------------ 12. druk */
@media print {
  .rs-header,
  .rs-player,
  .rs-footer,
  .rs-navnote,
  .rs-skip,
  .rs-util,
  .rs-topics { display: none; }
  body { background: #fff; }
}

/* atrybut hidden zawsze wygrywa (musi być ostatni: klasy komponentów ustawiają display) */
[hidden] { display: none; }

/* Kalendarz do telefonu (ICS) */
.rs-ics { display: flex; flex-wrap: wrap; align-items: center; gap: var(--rs-s-3); margin: 0 0 var(--rs-s-5); }
.rs-ics__hint { color: var(--rs-ink-2); font-size: .875rem; flex: 1 1 16rem; }

/* === Moduł: Program (ramówka) i Prowadzący === */
/* DNA portalu: pas „Teraz / za chwilę” na jasnym szarym tle, tydzień jako tabela-planer od 960 px (dni w kolumnach, godziny startu w wierszach), poniżej dni jako
   składane panele z grubą linią u góry; prowadzący jako wiersze-wizytówki (kwadratowe zdjęcia, bez otoczaków). */

/* "Teraz / za chwilę": wspólny komponent (strona Program = pas .rs-nowband, strona główna = wnętrze ciemnej karty "Na antenie") */
.rs-nownext { display: grid; gap: var(--rs-s-4); }
.rs-nownext__item { padding-left: var(--rs-s-4); border-left: 4px solid var(--rs-line-2); }
.rs-nownext__item--now { border-left-color: var(--rs-accent); }
.rs-nownext__label {
  display: flex;
  align-items: center;
  gap: var(--rs-s-2);
  margin: 0 0 0.25rem;
  color: var(--rs-muted);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.rs-nownext__dot { flex: none; width: 0.6rem; height: 0.6rem; border-radius: 50%; background: var(--rs-accent); }
.rs-nownext__title { margin: 0; font-family: var(--rs-font-display); font-size: 1.375rem; font-weight: 700; line-height: 1.2; overflow-wrap: anywhere; }
.rs-nownext__title a { color: inherit; text-decoration: none; }
.rs-nownext__title a:hover { text-decoration: underline; }
.rs-nownext__meta { margin: 0.25rem 0 0; color: var(--rs-ink-2); font-size: 0.9375rem; }
.rs-hosts__label { font-weight: 700; }

.rs-nowband { margin-bottom: var(--rs-s-4); border-block: 1px solid var(--rs-line); background: var(--rs-sand); }
.rs-nownext--page { padding-block: var(--rs-s-4); }
.rs-nownext--dock { gap: var(--rs-s-3); padding-block: var(--rs-s-3); }
.rs-nownext--dock .rs-nownext__item { border-left-color: var(--rs-on-dark-line-2); }
.rs-nownext--dock .rs-nownext__item--now { border-left-color: var(--rs-sun); }
.rs-nownext--dock .rs-nownext__label,
.rs-nownext--dock .rs-nownext__meta { color: var(--rs-on-dark-2); }
.rs-nownext--dock .rs-nownext__dot { background: var(--rs-sun); }
.rs-nownext--dock a { color: #fff; }
.rs-nownext--dock .rs-nownext__title { font-size: 1.1875rem; }
.rs-nownext--dock .rs-nownext__hosts { display: none; }

.rs-empty-card__lead { font-family: var(--rs-font-display); font-size: 1.375rem; font-weight: 700; color: var(--rs-ink); }
.rs-empty-card p + p { margin-top: var(--rs-s-3); }

/* nawigacja po dniach (kotwice, bez JS): tylko poniżej 960 px, gdzie tydzień to panele dni */
.rs-daynav { display: flex; margin: 0 0 var(--rs-s-4); overflow-x: auto; border-bottom: 1px solid var(--rs-line-2); scrollbar-width: none; }
.rs-daynav::-webkit-scrollbar { display: none; }
.rs-daynav a { flex: 1 0 auto; justify-content: center; min-width: 2.75rem; margin-bottom: -1px; padding: 0 0.75rem; }
.rs-daynav a.is-today { border-bottom-color: var(--rs-accent); color: var(--rs-accent-deep); }

/* tydzień jako panele dni (telefon i tablet): stos, od 720 px dwie kolumny; dzień = moduł z grubą linią u góry (dziś akcentem) */
.rs-week { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--rs-s-4); }
.rs-day { min-width: 0; }
.rs-day__title { display: flex; flex-wrap: wrap; align-items: center; gap: var(--rs-s-2); margin: 0 0 var(--rs-s-3); font-size: var(--rs-fs-h3); }
.rs-day__badge {
  background: var(--rs-accent-soft);
  color: var(--rs-accent-deep);
  font-family: var(--rs-font-ui);
  text-transform: uppercase;
}
.rs-day__empty { margin: 0; color: var(--rs-muted); font-size: 0.9375rem; }
.rs-day__list { margin: 0; padding: 0; list-style: none; }
.rs-slot {
  display: grid;
  grid-template-columns: 6.25rem minmax(0, 1fr);
  gap: var(--rs-s-3);
  padding: var(--rs-s-3) var(--rs-s-2);
  border-top: 1px solid var(--rs-line);
}
.rs-slot.is-now { border-top-color: transparent; background: var(--rs-accent-soft); }
.rs-slot__time { color: var(--rs-accent-deep); font-size: 0.9375rem; font-variant-numeric: tabular-nums; font-weight: 700; }
.rs-slot__body { display: block; min-width: 0; line-height: 1.35; overflow-wrap: anywhere; }
.rs-slot__title { color: var(--rs-ink); font-weight: 700; text-decoration: none; }
.rs-slot__title:hover { color: var(--rs-accent-deep); text-decoration: underline; }
.rs-slot__live {
  margin-left: var(--rs-s-2);
  background: var(--rs-accent);
  color: #fff;
  text-transform: uppercase;
}
.rs-slot__band,
.rs-slot__hosts { display: block; margin-top: 0.125rem; color: var(--rs-ink-2); font-size: 0.8125rem; }

/* tabela-planer tygodnia (od 960 px): kolumny = dni, wiersze = godziny startu audycji; dzisiejszy dzień wyróżniony w nagłówku i kolumnie, audycje jako odnośniki */
.rs-plan { display: none; }
.rs-plan__table { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: 0.875rem; }
.rs-plan__corner { width: 4.25rem; }
.rs-plan__day {
  padding: 0.6rem 0.5rem 0.5rem;
  border-bottom: 2px solid var(--rs-ink);
  font-family: var(--rs-font-display);
  font-size: 1rem;
  text-align: left;
  vertical-align: bottom;
}
.rs-plan__day.is-today { border-bottom-color: var(--rs-accent); background: var(--rs-accent-soft); color: var(--rs-accent-deep); }
.rs-plan__time {
  padding: 0.6rem 0.5rem 0.6rem 0;
  border-top: 1px solid var(--rs-line);
  color: var(--rs-accent-deep);
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  text-align: left;
  vertical-align: top;
}
.rs-plan__cell { padding: 0.5rem; border-top: 1px solid var(--rs-line); vertical-align: top; }
.rs-plan__cell.is-today { background: var(--rs-accent-soft); }
.rs-plan__list { display: grid; gap: var(--rs-s-2); margin: 0; padding: 0; list-style: none; }
.rs-plan__item { min-width: 0; line-height: 1.3; overflow-wrap: anywhere; }
.rs-plan__item.is-now { padding-left: 0.5rem; border-left: 3px solid var(--rs-accent); }
.rs-plan__show { display: block; color: var(--rs-ink); font-weight: 700; text-decoration: none; }
.rs-plan__show:hover { color: var(--rs-accent-deep); text-decoration: underline; }
.rs-plan__range,
.rs-plan__hosts { display: block; margin-top: 0.125rem; color: var(--rs-ink-2); font-size: 0.8125rem; }

/* prowadzący i redakcja: wiersze-wizytówki (telefon: lista pionowa z „Pokaż więcej”, od 720 px siatka); zdjęcie kwadratowe albo kafel z inicjałami */
.rs-people-block { padding-block: var(--rs-s-2) var(--rs-gap-section); }
.rs-people { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; margin: 0; padding: 0; border-top: 1px solid var(--rs-line); }
.rs-person-card {
  display: grid;
  grid-template-columns: 4rem minmax(0, 1fr);
  gap: var(--rs-s-3);
  align-items: start;
  min-width: 0;
  padding: var(--rs-s-3) 0;
  border-bottom: 1px solid var(--rs-line);
}
.rs-person-card__media { display: block; width: 4rem; aspect-ratio: 1; overflow: hidden; border-radius: var(--rs-r-md); background: var(--rs-surface-2); text-decoration: none; }
.rs-person-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.rs-person-card__media .rs-tile__mark { font-size: 1.5rem; }
.rs-person-card__body { display: flex; flex-direction: column; gap: 0.15rem; min-width: 0; }
.rs-person-card__name { margin: 0; font-size: 1.125rem; }
.rs-person-card__role { margin: 0; color: var(--rs-accent-deep); font-size: 0.8125rem; font-weight: 700; }
.rs-person-card__excerpt {
  display: -webkit-box;
  margin: 0;
  overflow: hidden;
  color: var(--rs-ink-2);
  font-size: 0.9375rem;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
}
.rs-person-card__count { margin: 0.15rem 0 0; color: var(--rs-muted); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }

/* profil osoby i strona audycji */
.rs-person__grid { display: grid; gap: var(--rs-s-5); padding-bottom: var(--rs-s-6); }
.rs-person__photo { width: 100%; max-width: 14rem; margin: 0; overflow: hidden; border-radius: var(--rs-leaf); aspect-ratio: 1; background: var(--rs-surface-2); }
.rs-person__photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.rs-person__text { min-width: 0; max-width: var(--rs-read); }
.rs-person__lead { font-family: var(--rs-font-display); font-size: 1.25rem; line-height: 1.45; }
.rs-person__h { margin: var(--rs-s-6) 0 var(--rs-s-3); padding-top: var(--rs-s-2); border-top: var(--rs-rule); font-size: var(--rs-fs-h2s); }
.rs-person__links { display: flex; flex-wrap: wrap; gap: var(--rs-s-2); margin: 0 0 var(--rs-s-5); padding: 0; list-style: none; }
.rs-person__shows { margin: 0 0 var(--rs-s-5); padding: 0; border-top: 1px solid var(--rs-line); list-style: none; }
.rs-person__shows li { display: flex; flex-wrap: wrap; align-items: center; gap: var(--rs-s-2) var(--rs-s-3); padding-block: 0.4rem; border-bottom: 1px solid var(--rs-line); }
.rs-person__shows a { display: inline-flex; align-items: center; min-height: 2.75rem; color: var(--rs-ink); font-weight: 700; text-decoration: none; }
.rs-person__shows a:hover { color: var(--rs-accent-deep); text-decoration: underline; }
.rs-show__terms { display: grid; gap: 0.25rem; margin: 0; padding: 0; list-style: none; }

@media (min-width: 720px) {
  .rs-nownext--page { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--rs-s-6); }
  .rs-nownext--dock .rs-nownext__hosts { display: block; }
  .rs-week { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--rs-s-5) var(--rs-s-6); }
  .rs-day:last-child { grid-column: 1 / -1; }
  .rs-people { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--rs-s-6); }
  .rs-people--1 { grid-template-columns: minmax(0, 26rem); }
  .rs-person-card { grid-template-columns: 5rem minmax(0, 1fr); gap: var(--rs-s-4); }
  .rs-person-card__media { width: 5rem; }
  .rs-person__grid { grid-template-columns: 11rem minmax(0, 1fr); align-items: start; }
  .rs-person__grid--solo { grid-template-columns: minmax(0, 1fr); }
}

@media (min-width: 960px) {
  .rs-daynav,
  .rs-week { display: none; }
  .rs-plan { display: block; }
  .rs-people { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rs-people--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rs-people--1 { grid-template-columns: minmax(0, 26rem); }
}

/* === Moduł: Zgody i media zewnętrzne === */

/* przycisk „Ustawienia prywatności” w stopce: wygląda jak odnośnik; bez JavaScriptu ukryty (nic by nie zrobił) */
.rs-foot-consent {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  padding: 0;
  border: 0;
  background: none;
  color: var(--rs-on-dark);
  font: inherit;
  text-align: left;
  text-decoration: underline;
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.18em;
  cursor: pointer;
}
.rs-foot-consent:hover { color: #fff; }
.rs-no-js .rs-foot-consent { display: none; }

/* baner: telefon = dolny arkusz nad paskiem odsłuchu (pasek zostaje odsłonięty), komputer = karta w rogu; nie blokuje treści */
.rs-consent {
  position: fixed;
  z-index: 49; /* pod paskiem odsłuchu (50): lista „ostatnio grane” wysuwa się ponad banerem */
  inset-inline: var(--rs-s-2);
  bottom: calc(var(--rs-player-h) + env(safe-area-inset-bottom, 0px));
  display: grid;
  gap: var(--rs-s-3);
  max-height: calc(100vh - var(--rs-player-h) - var(--rs-s-4));
  max-height: calc(100dvh - var(--rs-player-h) - var(--rs-s-4));
  overflow-y: auto;
  padding: var(--rs-s-4);
  border: 1px solid var(--rs-line-2);
  border-radius: var(--rs-r-lg);
  background: var(--rs-surface);
  color: var(--rs-ink);
  box-shadow: var(--rs-shadow-lg);
}
.rs-consent[hidden] { display: none; }
.rs-consent__title { margin: 0 0 var(--rs-s-2); font-family: var(--rs-font-display); font-size: 1.125rem; font-weight: 700; line-height: 1.25; }
.rs-consent__text { margin: 0 0 var(--rs-s-2); color: var(--rs-ink-2); font-size: 0.9375rem; line-height: 1.5; }
.rs-consent__state { margin: 0 0 var(--rs-s-2); color: var(--rs-forest); font-size: 0.875rem; font-weight: 700; }
.rs-consent__policy { margin: 0; font-size: 0.875rem; }
.rs-consent__policy a { display: inline-flex; align-items: center; min-height: 2.75rem; }
.rs-consent__actions { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--rs-s-2); }
/* dwa przyciski są równorzędne: ten sam rozmiar, ta sama waga wizualna */
.rs-btn--consent { border-color: var(--rs-ink); background: transparent; color: var(--rs-ink); line-height: 1.25; text-align: center; white-space: normal; }
.rs-btn--consent:hover { background: var(--rs-ink); color: #fff; }
.rs-consent__close {
  display: none;
  position: absolute;
  top: var(--rs-s-1);
  right: var(--rs-s-1);
  width: 2.75rem;
  height: 2.75rem;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: none;
  color: var(--rs-ink-2);
  cursor: pointer;
}
.rs-consent__close:hover { background: var(--rs-surface-2); color: var(--rs-ink); }
.rs-consent[data-rs-consent-mode="change"] .rs-consent__close { display: grid; }
.rs-consent[data-rs-consent-mode="change"] .rs-consent__body { padding-right: 2.5rem; }
/* dopóki baner jest otwarty, treść strony da się przewinąć ponad nim (fokus nie chowa się pod arkuszem) */
html.rs-consent-open { scroll-padding-bottom: calc(var(--rs-player-h) + 15rem); }
html.rs-consent-open .rs-footer { padding-bottom: calc(var(--rs-player-h) + env(safe-area-inset-bottom, 0px) + 15rem); }

@media (min-width: 480px) {
  .rs-consent { inset-inline: var(--rs-s-3); }
  .rs-consent__actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 720px) {
  .rs-consent {
    inset-inline: auto var(--rs-edge);
    bottom: calc(var(--rs-player-h) + env(safe-area-inset-bottom, 0px) + var(--rs-s-2));
    width: min(26rem, calc(100% - 2 * var(--rs-gutter)));
  }
  html.rs-consent-open { scroll-padding-bottom: calc(var(--rs-player-h) + var(--rs-s-5)); }
  html.rs-consent-open .rs-footer { padding-bottom: calc(var(--rs-player-h) + env(safe-area-inset-bottom, 0px)); }
}
@media (max-height: 480px) and (orientation: landscape) {
  .rs-consent { grid-template-columns: minmax(0, 1fr) minmax(0, 16rem); align-items: center; }
  .rs-consent__actions { grid-template-columns: minmax(0, 1fr); }
  html.rs-consent-open .rs-footer { padding-bottom: calc(var(--rs-player-h) + env(safe-area-inset-bottom, 0px) + 9rem); }
}
@media (prefers-reduced-motion: no-preference) {
  .rs-consent { animation: rs-consent-in 0.28s var(--rs-ease) both; }
  @keyframes rs-consent-in { from { opacity: 0; transform: translateY(1rem); } to { opacity: 1; transform: none; } }
}
@media print { .rs-consent { display: none; } }

/* bramka mediów: kafel typograficzny + przycisk; iframe pojawia się dopiero po kliknięciu (consent.js) */
.rs-gate { margin: 0 0 var(--rs-s-4); }
.rs-gate__stage {
  position: relative;
  display: grid;
  place-items: center;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: var(--rs-r-lg);
  background: var(--rs-forest-deep);
  color: var(--rs-on-dark);
}
.rs-gate__tile {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: var(--rs-s-1);
  padding: var(--rs-s-4);
  background: radial-gradient(circle at 82% 22%, rgba(240, 187, 168, 0.22) 0 18%, transparent 19%), var(--rs-forest-deep);
}
.rs-gate__kind { color: var(--rs-on-dark-2); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.rs-gate__title {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  color: #fff;
  font-family: var(--rs-font-display);
  font-size: clamp(1.0625rem, 0.95rem + 0.6vw, 1.5rem);
  font-weight: 700;
  line-height: 1.2;
}
@media (min-width: 720px) {
  .rs-gate__title { -webkit-line-clamp: 3; line-clamp: 3; }
}
.rs-gate__poster,
.rs-gate__thumb { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
.rs-gate__thumb[hidden] { display: none; }
/* podpis na obrazie: tytuł zostaje widoczny także wtedy, gdy miniatura (po zgodzie) albo plakat zasłania kafel typograficzny */
.rs-gate__caption {
  display: none;
  position: absolute;
  inset: auto 0 0;
  padding: var(--rs-s-6) var(--rs-s-4) var(--rs-s-4);
  background: linear-gradient(to top, rgba(10, 30, 24, 0.92), rgba(10, 30, 24, 0));
  color: #fff;
  font-family: var(--rs-font-display);
  font-size: clamp(1.0625rem, 0.95rem + 0.6vw, 1.5rem);
  font-weight: 700;
  line-height: 1.2;
}
.rs-gate__poster ~ .rs-gate__caption,
.rs-gate__thumb[src]:not([hidden]) ~ .rs-gate__caption { display: block; }
.rs-gate__play { position: relative; z-index: 1; }
.rs-gate__note { margin: var(--rs-s-2) 0 0; color: var(--rs-muted); font-size: 0.8125rem; line-height: 1.45; }
.rs-gate__note-on { display: none; }
.rs-gate.is-armed .rs-gate__note-off { display: none; }
.rs-gate.is-armed .rs-gate__note-on { display: inline; }
.rs-gate__alt { margin: var(--rs-s-1) 0 0; font-size: 0.875rem; }
.rs-gate__alt a { display: inline-flex; align-items: center; min-height: 2.75rem; }
.rs-gate iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.rs-gate[data-rs-gate-loaded="1"] .rs-gate__tile,
.rs-gate[data-rs-gate-loaded="1"] .rs-gate__poster,
.rs-gate[data-rs-gate-loaded="1"] .rs-gate__thumb,
.rs-gate[data-rs-gate-loaded="1"] .rs-gate__stage .rs-gate__caption,
.rs-gate[data-rs-gate-loaded="1"] .rs-gate__play,
.rs-gate[data-rs-gate-loaded="1"] .rs-gate__note,
.rs-gate[data-rs-gate-loaded="1"] .rs-gate__alt { display: none; }

/* tabela pamięci urządzenia na stronie cookies: każdy wpis rejestru jako karta (nagłówki kolumn zostają w kodzie dla czytników ekranu) */
.rs-prose .rs-storage-table { display: block; width: 100%; overflow-x: visible; border: 0; }
.rs-storage-table tbody,
.rs-storage-table tr { display: block; }
.rs-storage-table tr { margin-bottom: var(--rs-s-4); border: 1px solid var(--rs-line-2); border-radius: var(--rs-r-md); background: var(--rs-surface); }
.rs-prose .rs-storage-table th,
.rs-prose .rs-storage-table td { display: block; padding: 0.4rem 0.9rem; border: 0; background: none; font-size: 0.9375rem; overflow-wrap: anywhere; }
.rs-prose .rs-storage-table tbody th { padding-top: 0.75rem; font-weight: 700; }
.rs-storage-table td::before { content: attr(data-label) ": "; color: var(--rs-muted); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
/* od 720 px etykieta pola po lewej, wartość po prawej (kolumna tekstu jest wąska, więc nie robimy 6-kolumnowej tabeli) */
@media (min-width: 720px) {
  .rs-prose .rs-storage-table td { display: grid; grid-template-columns: 10rem minmax(0, 1fr); gap: var(--rs-s-3); align-items: baseline; }
  .rs-storage-table td::before { content: attr(data-label); }
}

/* === Moduł: Reklamy === */

/* zawsze widoczne oznaczenie „Reklama”; reklama to obraz z własnej biblioteki mediów i zwykły odnośnik (zero śledzenia, zero popupów) */
.rs-promo { margin-block: var(--rs-s-6); }
.rs-promo__label {
  display: inline-block;
  margin: 0 0 var(--rs-s-2);
  padding: 0.1rem 0.65rem;
  border: 1px solid var(--rs-line-2);
  border-radius: var(--rs-r-pill);
  color: var(--rs-ink-2);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  line-height: 1.6;
  text-transform: uppercase;
}
.rs-promo__label,
.rs-promo__link { max-width: 46rem; }
.rs-promo__link { display: block; }
.rs-promo__frame { display: block; overflow: hidden; border-radius: var(--rs-r-md); background: var(--rs-surface-2); }
.rs-promo__img { display: block; width: 100%; height: auto; }
/* kontener z proporcją obrazu (najbliższa standardowa): miejsce jest zarezerwowane przed załadowaniem, zero przesunięć układu */
.rs-promo__frame--fixed .rs-promo__img { height: 100%; object-fit: contain; }
.rs-promo__frame--r-1-1,
.rs-promo__frame--r-5-4,
.rs-promo__frame--r-4-3 { max-width: 26rem; }
.rs-promo__frame--r-1-1 { aspect-ratio: 1 / 1; }
.rs-promo__frame--r-5-4 { aspect-ratio: 5 / 4; }
.rs-promo__frame--r-4-3 { aspect-ratio: 4 / 3; }
.rs-promo__frame--r-3-2 { aspect-ratio: 3 / 2; }
.rs-promo__frame--r-16-9 { aspect-ratio: 16 / 9; }
.rs-promo__frame--r-2-1 { aspect-ratio: 2 / 1; }
.rs-promo__frame--r-3-1 { aspect-ratio: 3 / 1; }
.rs-promo__frame--r-4-1 { aspect-ratio: 4 / 1; }
.rs-promo__frame--r-5-1 { aspect-ratio: 5 / 1; }
.rs-promo__frame--r-6-1 { aspect-ratio: 6 / 1; }
.rs-promo__frame--r-8-1 { aspect-ratio: 8 / 1; }
/* pasek boczny: tylko komputer */
.rs-promo--sidebar { display: none; }
/* linia „Partner odsłuchu” */
.rs-promo--line { display: flex; flex-wrap: wrap; align-items: center; gap: var(--rs-s-1) var(--rs-s-2); margin-block: 0 var(--rs-s-3); color: var(--rs-ink-2); font-size: 0.875rem; }
.rs-promo--line .rs-promo__label { margin: 0; }
.rs-promo__name { display: inline-flex; align-items: center; min-height: 2.75rem; font-weight: 700; }
@media (min-width: 960px) {
  .rs-promo--sidebar { display: block; max-width: 19rem; }
}

/* === Moduł: Topka (lista przebojów) === */
/* DNA portalu: głosowanie to moduł z grubą linią u góry (lista utworów jako wiersze), wyniki to lista przebojów: podium w jednym ciemnym pasie (pierwsze miejsce największe),
   pozostałe miejsca wierszami z dużą pozycją, paskiem procentu i ruchem względem poprzedniej edycji; archiwum jako wiersze z datą i zwycięzcą. Kontrakt z assets/top.js
   (atrybuty data-rs-top*, klasy .rs-top-board*, .rs-top__*) bez zmian. */

/* Głosowanie: lista utworów do zaznaczenia (checkboxy), licznik i przycisk przyklejony nad paskiem odsłuchu */
.rs-top-wrap { padding-bottom: var(--rs-s-7); }
.rs-top {
  position: relative;
  padding: var(--rs-s-2) 0 0;
  border-top: var(--rs-rule);
  scroll-margin-top: calc(var(--rs-header-h) + var(--rs-s-4));
}
.rs-top__head { margin-bottom: var(--rs-s-4); }
.rs-top__head .rs-kicker,
.rs-top-results__head .rs-kicker { color: var(--rs-accent-deep); font-size: 0.6875rem; letter-spacing: 0.12em; line-height: 1.3; }
.rs-top__title { margin: 0 0 var(--rs-s-2); font-size: var(--rs-fs-h2); overflow-wrap: anywhere; }
.rs-top__until { margin: 0; color: var(--rs-ink-2); }
.rs-top__left {
  display: inline-flex;
  align-items: center;
  margin: var(--rs-s-3) 0 0;
  padding: 0.3rem 1rem;
  border-radius: var(--rs-r-pill);
  background: var(--rs-accent-soft);
  color: var(--rs-accent-deep);
  font-weight: 700;
}
.rs-top__lead { max-width: var(--rs-read); margin: 0 0 var(--rs-s-4); color: var(--rs-ink-2); }
.rs-top__notice {
  margin: 0 0 var(--rs-s-4);
  padding: var(--rs-s-3) var(--rs-s-4);
  border-left: 4px solid var(--rs-forest);
  border-radius: var(--rs-r-md);
  background: var(--rs-forest-soft);
  color: var(--rs-forest-deep);
  font-weight: 700;
}
.rs-top__notice.is-error { border-left-color: var(--rs-accent); background: var(--rs-accent-soft); color: var(--rs-accent-deep); }

.rs-top__hp label { display: block; width: 1px; height: 1px; overflow: hidden; }
.rs-top__hp input { width: 1px; height: 1px; padding: 0; border: 0; }
.rs-top__fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.rs-top__legend { margin: 0 0 var(--rs-s-3); padding: 0; font-family: var(--rs-font-display); font-size: var(--rs-fs-h3); font-weight: 700; }
.rs-top__list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; margin: 0; padding: 0; border-top: 2px solid var(--rs-ink); list-style: none; }
.rs-top__choice {
  position: relative;
  display: flex;
  align-items: center;
  gap: var(--rs-s-3);
  min-height: 3.5rem;
  padding: 0.5rem var(--rs-s-2);
  border-bottom: 1px solid var(--rs-line);
  cursor: pointer;
}
.rs-top__choice:hover { background: var(--rs-sand); }
.rs-top__check { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.rs-top__box {
  display: grid;
  place-items: center;
  flex: none;
  width: 1.5rem;
  height: 1.5rem;
  border: 2px solid var(--rs-ink-2);
  border-radius: var(--rs-r-md);
  background: var(--rs-surface);
}
.rs-top__check:checked + .rs-top__box { border-color: var(--rs-accent); background: var(--rs-accent); }
.rs-top__check:checked + .rs-top__box::after {
  content: "";
  width: 0.4rem;
  height: 0.75rem;
  margin-top: -0.15rem;
  border: solid #fff;
  border-width: 0 3px 3px 0;
  transform: rotate(45deg);
}
.rs-top__check:focus-visible + .rs-top__box { outline: 3px solid var(--rs-forest); outline-offset: 2px; }
.rs-top__check:disabled ~ .rs-top__song { color: var(--rs-muted); }
.rs-top__check:disabled { cursor: not-allowed; }
.rs-top__song { display: grid; flex: 1; min-width: 0; gap: 0.1rem; line-height: 1.3; }
.rs-top__artist { font-weight: 700; overflow-wrap: anywhere; }
.rs-top__name { color: var(--rs-ink-2); font-size: 0.9375rem; overflow-wrap: anywhere; }
.rs-top__check:checked ~ .rs-top__song .rs-top__artist { color: var(--rs-accent-deep); }
@supports selector(:has(a)) {
  .rs-top__choice:has(.rs-top__check:checked) { background: var(--rs-accent-soft); }
}

.rs-top [hidden] { display: none; }

/* przycisk i licznik zostają w zasięgu kciuka, nad paskiem odsłuchu, dopóki formularz jest na ekranie */
.rs-top__actions {
  position: sticky;
  bottom: calc(var(--rs-player-h) + var(--rs-s-2));
  z-index: 5;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--rs-s-2) var(--rs-s-4);
  margin-top: var(--rs-s-4);
  padding: var(--rs-s-3);
  border: 1px solid var(--rs-line-2);
  border-radius: var(--rs-r-md);
  background: var(--rs-paper);
}
.rs-top__counter { margin: 0; font-weight: 700; }
.rs-top__submit { flex: 1 1 10rem; }
.rs-top__status { min-height: 1.5em; margin: var(--rs-s-3) 0 0; font-weight: 700; }
.rs-top__status.is-error { color: var(--rs-accent-deep); }
.rs-top__note { max-width: var(--rs-read); margin: var(--rs-s-4) 0 0; color: var(--rs-ink-2); font-size: 0.875rem; }
.rs-top__rules { max-width: var(--rs-read); margin-top: var(--rs-s-3); color: var(--rs-ink-2); font-size: 0.9375rem; }
.rs-top__rules summary { min-height: 2.75rem; padding-block: 0.6rem; font-weight: 700; cursor: pointer; }
.rs-top__results { margin-top: var(--rs-s-5); }
.rs-top__results:focus { outline: none; }
.rs-top__results-title { margin: 0 0 var(--rs-s-2); font-size: var(--rs-fs-h3); }
.rs-top__change { margin-top: var(--rs-s-4); }
.rs-top__back { margin: 0 0 var(--rs-s-4); }
.rs-top__more { margin: var(--rs-s-6) 0 0; }
.rs-top-previous { margin-top: var(--rs-s-7); }
.rs-top-previous .rs-section__title { margin-bottom: var(--rs-s-4); }

/* Wiersz listy przebojów (wyniki na żywo po oddaniu głosu i pozostałe miejsca w wynikach końcowych): duża pozycja, utwór, pasek, procent i ruch */
.rs-top-board { display: grid; gap: 0; margin: 0; padding: 0; border-top: 2px solid var(--rs-ink); list-style: none; }
.rs-top-board__row {
  display: grid;
  grid-template-columns: 3rem minmax(0, 1fr);
  grid-template-areas: "rank song" "rank bar" "rank meta";
  column-gap: var(--rs-s-3);
  row-gap: 0.35rem;
  align-items: center;
  padding: var(--rs-s-3) var(--rs-s-1);
  border-bottom: 1px solid var(--rs-line);
}
.rs-top-board__row.is-mine { background: var(--rs-accent-soft); }
.rs-top-board__rank { grid-area: rank; align-self: start; color: var(--rs-ink); font-family: var(--rs-font-display); font-size: 1.75rem; font-weight: 700; line-height: 1.1; text-align: center; }
.rs-top-board__row.is-mine .rs-top-board__rank { color: var(--rs-accent-deep); }
.rs-top-board__song { grid-area: song; display: grid; min-width: 0; line-height: 1.3; }
.rs-top-board__artist { font-weight: 700; overflow-wrap: anywhere; }
.rs-top-board__title { color: var(--rs-ink-2); font-size: 0.9375rem; overflow-wrap: anywhere; }
.rs-top-board__mine { justify-self: start; margin-top: 0.15rem; padding: 0.05rem 0.6rem; border-radius: var(--rs-r-pill); background: var(--rs-accent); color: #fff; font-size: 0.75rem; font-weight: 700; }
.rs-top-board__bar {
  grid-area: bar;
  width: 100%;
  height: 0.5rem;
  border: 0;
  border-radius: 2px;
  background: var(--rs-line);
  overflow: hidden;
  appearance: none;
  -webkit-appearance: none;
}
.rs-top-board__bar::-webkit-progress-bar { background: var(--rs-line); }
.rs-top-board__bar::-webkit-progress-value { border-radius: 2px; background: var(--rs-accent); }
.rs-top-board__bar::-moz-progress-bar { border-radius: 2px; background: var(--rs-accent); }
.rs-top-board__meta { grid-area: meta; display: flex; flex-wrap: wrap; align-items: center; gap: 0.15rem var(--rs-s-3); color: var(--rs-ink-2); font-size: 0.875rem; }
.rs-top-board__pct { color: var(--rs-ink); font-size: 1rem; }

/* Wyniki końcowe: moduł z grubą linią (poza panelem), podium w jednym ciemnym pasie i reszta listy */
.rs-top-results { margin-bottom: var(--rs-s-6); padding-top: var(--rs-s-2); border-top: var(--rs-rule); }
.rs-acc .rs-top-results { padding-top: 0; border-top: 0; }
.rs-top-results__head { margin-bottom: var(--rs-s-4); }
.rs-top-results__title { margin: 0 0 var(--rs-s-2); font-size: var(--rs-fs-h2s); overflow-wrap: anywhere; }
.rs-top-results__summary { margin: 0; color: var(--rs-ink-2); }
.rs-top-podium {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  margin: 0 0 var(--rs-s-5);
  padding: 0;
  border-radius: var(--rs-leaf);
  background: var(--rs-forest-deep);
  color: var(--rs-on-dark);
  overflow: hidden;
  list-style: none;
}
.rs-top-podium__item {
  display: grid;
  grid-template-columns: 3.25rem minmax(0, 1fr);
  align-items: center;
  gap: var(--rs-s-3);
  padding: var(--rs-s-4);
  border-top: 1px solid var(--rs-on-dark-line);
}
.rs-top-podium__item:first-child { border-top: 0; }
.rs-top-podium__rank { color: var(--rs-sun); font-family: var(--rs-font-display); font-size: 2.25rem; font-weight: 700; line-height: 1; text-align: center; }
.rs-top-podium__song { display: grid; min-width: 0; gap: 0.15rem; line-height: 1.3; }
.rs-top-podium__artist { color: #fff; font-family: var(--rs-font-display); font-size: 1.25rem; font-weight: 700; overflow-wrap: anywhere; }
.rs-top-podium__title { color: var(--rs-on-dark-2); overflow-wrap: anywhere; }
.rs-top-podium__bar {
  width: 100%;
  height: 0.5rem;
  margin-top: 0.35rem;
  border: 0;
  border-radius: 2px;
  background: rgba(255, 255, 255, 0.2);
  appearance: none;
  -webkit-appearance: none;
}
.rs-top-podium__bar::-webkit-meter-bar { height: 0.5rem; border: 0; border-radius: 2px; background: rgba(255, 255, 255, 0.2); }
.rs-top-podium__bar::-webkit-meter-optimum-value,
.rs-top-podium__bar::-webkit-meter-suboptimum-value,
.rs-top-podium__bar::-webkit-meter-even-less-good-value { border-radius: 2px; background: var(--rs-sun); }
.rs-top-podium__bar::-moz-meter-bar { border-radius: 2px; background: var(--rs-sun); }
.rs-top-podium__meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.15rem var(--rs-s-3); margin-top: 0.25rem; color: var(--rs-on-dark-2); font-size: 0.875rem; }
.rs-top-podium__meta strong { color: #fff; font-size: 1.125rem; }
.rs-top-podium__item--1 { padding-block: var(--rs-s-5); }
.rs-top-podium__item--1 .rs-top-podium__rank { font-size: 3.5rem; }
.rs-top-podium__item--1 .rs-top-podium__artist { font-size: 1.625rem; }

.rs-top-move { display: inline-flex; align-items: center; gap: 0.3rem; font-size: 0.8125rem; font-weight: 700; }
.rs-top-move--up { color: var(--rs-forest); }
.rs-top-move--down { color: var(--rs-accent-deep); }
.rs-top-move--same { color: var(--rs-muted); }
.rs-top-move--new { padding: 0.15rem 0.7rem; font-size: 0.75rem; background: var(--rs-accent-soft); color: var(--rs-accent-deep); text-transform: uppercase; }
.rs-top-move--up::before,
.rs-top-move--down::before { content: ""; width: 0; height: 0; border-inline: 0.35rem solid transparent; }
.rs-top-move--up::before { border-bottom: 0.55rem solid currentColor; }
.rs-top-move--down::before { border-top: 0.55rem solid currentColor; }
.rs-top-podium .rs-top-move--up { color: #9fd8c0; }
.rs-top-podium .rs-top-move--down { color: var(--rs-sun); }
.rs-top-podium .rs-top-move--same { color: var(--rs-on-dark-2); }
.rs-top-podium .rs-top-move--new { background: rgba(255, 255, 255, 0.16); color: #fff; }

.rs-top-comment { max-width: var(--rs-read); margin-top: var(--rs-s-5); padding: var(--rs-s-2) var(--rs-s-4); border-left: 4px solid var(--rs-accent); color: var(--rs-ink-2); }
.rs-top-comment__title { margin: 0 0 var(--rs-s-2); font-size: var(--rs-fs-h3); }
.rs-top-comment p:last-child { margin-bottom: 0; }

/* Pusta strona Topki i archiwum: wiersze z datą, tytułem edycji i zwycięzcą */
.rs-top-empty { max-width: var(--rs-read); padding: var(--rs-s-3) 0 var(--rs-s-6); border-top: var(--rs-rule); }
.rs-top-empty__title { margin: 0 0 var(--rs-s-3); }
.rs-top-empty__cta { display: flex; flex-wrap: wrap; gap: var(--rs-s-3); }
.rs-top-archive { display: grid; gap: 0; margin: 0; padding: 0; border-top: var(--rs-rule); list-style: none; }
.rs-top-archive__item { display: grid; gap: 0.15rem; padding: var(--rs-s-3) 0; border-bottom: 1px solid var(--rs-line); }
.rs-top-archive__date { margin: 0; color: var(--rs-muted); font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.rs-top-archive__main { min-width: 0; }
.rs-top-archive__title { margin: 0 0 0.15rem; font-size: var(--rs-fs-h3); overflow-wrap: anywhere; }
.rs-top-archive__winner { margin: 0; font-weight: 700; overflow-wrap: anywhere; }
.rs-top-archive__voted { margin: 0; color: var(--rs-ink-2); font-size: 0.875rem; }

/* Strona główna: zaproszenie do głosowania albo podium ostatniej edycji */
.rs-top-home__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--rs-s-5); align-items: center; }
.rs-top-home__text p { max-width: 34rem; color: var(--rs-ink-2); }
.rs-top-home__text .rs-top__left { margin: 0 var(--rs-s-2) var(--rs-s-4) 0; color: var(--rs-accent-deep); }
.rs-top-home__text .rs-btn { align-self: start; }
.rs-top-home__songs,
.rs-top-home__podium { display: grid; gap: var(--rs-s-2); margin: 0; padding: var(--rs-s-5); border-radius: var(--rs-leaf); background: var(--rs-forest-deep); color: var(--rs-on-dark); list-style: none; }
.rs-top-home__songs li { display: grid; gap: 0.05rem; padding-bottom: var(--rs-s-2); border-bottom: 1px solid rgba(255, 255, 255, 0.16); line-height: 1.3; }
.rs-top-home__songs li:last-child { padding-bottom: 0; border-bottom: 0; }
.rs-top-home__artist { font-family: var(--rs-font-display); font-weight: 700; overflow-wrap: anywhere; }
.rs-top-home__name { color: var(--rs-on-dark-2); font-size: 0.9375rem; overflow-wrap: anywhere; }
.rs-top-home__more { color: var(--rs-sun); font-size: 0.875rem; font-weight: 700; }
.rs-top-home__podium li { display: grid; grid-template-columns: 2.75rem minmax(0, 1fr); align-items: center; gap: var(--rs-s-3); }
.rs-top-home__song { display: grid; min-width: 0; line-height: 1.3; }
.rs-top-home__rank { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: var(--rs-r-md); background: var(--rs-accent); color: #fff; font-family: var(--rs-font-display); font-size: 1.25rem; font-weight: 700; }

@media (min-width: 720px) {
  .rs-top__list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--rs-s-6); }
  .rs-top__actions { padding-inline: var(--rs-s-4); }
  .rs-top__submit { flex: 0 0 auto; min-width: 12rem; }
  .rs-top-podium { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rs-top-podium__item--1 { grid-column: 1 / -1; }
  .rs-top-podium__item--3 { border-left: 1px solid var(--rs-on-dark-line); }
  .rs-top-board__row {
    grid-template-columns: 3.5rem minmax(0, 1.3fr) minmax(6rem, 1fr) 10rem;
    grid-template-areas: "rank song bar meta";
    padding-block: var(--rs-s-2);
  }
  .rs-top-board__rank { align-self: center; }
  .rs-top-archive__item { grid-template-columns: 9rem minmax(0, 1fr) auto; column-gap: var(--rs-s-5); align-items: baseline; }
  .rs-top-archive__voted { text-align: right; }
  .rs-top-home__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--rs-s-7); }
}

@media (min-width: 960px) {
  .rs-top-podium { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); grid-template-rows: auto auto; }
  .rs-top-podium__item--1 { grid-column: 1; grid-row: 1 / span 2; align-content: center; }
  .rs-top-podium__item--2,
  .rs-top-podium__item--3 { grid-column: 2; border-left: 1px solid var(--rs-on-dark-line); }
  .rs-top-podium__item--3 { border-top: 1px solid var(--rs-on-dark-line); }
  .rs-top-podium__item--1:only-child { grid-column: 1 / -1; grid-row: auto; }
}

@media (prefers-reduced-motion: no-preference) {
  .rs-top__choice { transition: background-color 0.14s var(--rs-ease); }
}

/* === Moduł: TV (wideo) === */
/* Newsroom wideo pod /tv/ i sekcja na stronie głównej: ciemna scena (najnowszy film + lista), pas rolek, kanały, archiwum z osią czasu.
   Odtwarzacz tylko przez bramkę zgody (.rs-gate), miniatury tylko po zgodzie (img[data-rs-src] bez src = ukryte, widoczny kafel). */


/* --- scena: ciemny pas w kolorze nagłówka i hero */
.rs-scene--stage { --scene-bg: var(--rs-forest-deep); color: var(--rs-on-dark); }
.rs-scene--stage .rs-kicker { color: var(--rs-on-dark-2); }
.rs-scene--stage h2,
.rs-scene--stage h3 { color: var(--rs-on-dark); }
.rs-scene--stage .rs-h__lead { color: var(--rs-on-dark); }
.rs-scene--stage .rs-h__accent { color: var(--rs-sun); }
.rs-scene--stage .rs-section__lead { color: var(--rs-on-dark-2); }
.rs-scene--stage .rs-section__more { border-color: var(--rs-on-dark-line-2); color: var(--rs-on-dark); }
.rs-scene--stage .rs-section__more:hover { border-color: #fff; color: #fff; }
.rs-scene--stage .rs-btn--ghost { border-color: var(--rs-on-dark-line-2); color: var(--rs-on-dark); }
.rs-scene--stage .rs-btn--ghost:hover { border-color: #fff; color: #fff; }
.rs-scene--stage a { color: inherit; }

.rs-tv-stage__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--rs-s-6); align-items: stretch; }
.rs-tv-stage__grid:not(.has-next) { max-width: 62rem; }
.rs-tv-stage__grid.has-next--below .rs-tv-lead { max-width: 62rem; }
.rs-tv-lead { display: grid; gap: var(--rs-s-4); align-content: start; min-width: 0; }
.rs-tv-lead .rs-kicker { margin: 0; }
.rs-tv-lead__body { display: grid; gap: var(--rs-s-2); }
.rs-tv-lead__meta { display: flex; flex-wrap: wrap; gap: 0.25rem 0.75rem; margin: 0; color: var(--rs-on-dark-2); font-size: 0.875rem; }
.rs-tv-lead__topic { color: var(--rs-sun); font-weight: 700; text-decoration: none; }
.rs-tv-lead__topic:hover { text-decoration: underline; }
.rs-tv-lead__title { margin: 0; font-size: var(--rs-fs-h2); }
.rs-tv-lead__title a { text-decoration: none; }
.rs-tv-lead__title a:hover { text-decoration: underline; }
.rs-tv-lead__text { max-width: 40rem; margin: 0; color: var(--rs-on-dark-2); }

.rs-tv-next { display: flex; flex-direction: column; min-width: 0; }
.rs-tv-next__title { margin: 0 0 var(--rs-s-3); font-family: var(--rs-font-ui); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--rs-on-dark-2); }
.rs-tv-next__list { display: grid; flex: 1; margin: 0; padding: 0; list-style: none; }
.rs-tv-next__list > li { display: flex; align-items: center; border-top: 1px solid var(--rs-on-dark-line); }
.rs-tv-next__list > li > .rs-vrow { width: 100%; }

/* etykieta rodzaju (Film / Rolka / Transmisja) w kroju .rs-tag; na ciemnej scenie odwrócona, transmisja w kolorze akcentu */
.rs-tag--live { background: var(--rs-accent); color: #fff; }
.rs-scene--stage .rs-tag--video { background: var(--rs-on-dark); color: var(--rs-forest-deep); }
.rs-scene--stage .rs-tag--live { background: var(--rs-accent); color: #fff; }
.rs-vrow { display: flex; align-items: center; gap: var(--rs-s-3); padding-block: var(--rs-s-3); }
.rs-vrow__media { position: relative; display: block; flex: 0 0 7rem; aspect-ratio: 16 / 10; overflow: hidden; border-radius: var(--rs-r-md); background: var(--rs-forest); }
.rs-vrow__body { min-width: 0; }
.rs-vrow__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 0.6rem; margin: 0 0 0.3rem; color: var(--rs-on-dark-2); font-size: 0.8125rem; }
.rs-vrow__title { margin: 0; font-size: 1.0625rem; line-height: 1.25; }
.rs-vrow__title a { text-decoration: none; }
.rs-vrow__title a:hover { text-decoration: underline; }

.rs-vplay-badge { position: absolute; right: 0.4rem; bottom: 0.4rem; z-index: 1; display: grid; place-items: center; width: 1.75rem; height: 1.75rem; border-radius: var(--rs-r-md); background: rgba(20, 51, 41, 0.88); color: #fff; }
.rs-vplay-badge .rs-vplay { width: 0.9rem; height: 0.9rem; margin-left: 0.1rem; }

/* --- okładka: kafel typograficzny + (po zgodzie) miniatura albo własne zdjęcie redakcji */
.rs-vcover { position: absolute; inset: 0; display: block; container-type: inline-size; }
.rs-vtile {
  display: grid;
  place-content: center;
  gap: 0.25rem;
  width: 100%;
  height: 100%;
  padding: 0.5rem;
  background: var(--rs-forest);
  box-shadow: inset 0 -3px 0 var(--rs-accent);
  color: var(--rs-on-dark);
  text-align: center;
}
.rs-vtile__mark { font-family: var(--rs-font-display); font-size: 1.75rem; font-weight: 700; line-height: 1; letter-spacing: -0.02em; }
.rs-vtile__label {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  color: var(--rs-on-dark-2);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
@supports (container-type: inline-size) {
  .rs-vtile__mark { font-size: clamp(1.25rem, 13cqw, 4rem); }
  .rs-vtile__label { font-size: clamp(0.6875rem, 3.6cqw, 0.9rem); }
}
/* w małych okładkach (miniatura w wierszu) sam znak „TV”: podpis kanału się nie mieści */
@container (max-width: 9rem) {
  .rs-vtile__label { display: none; }
}
.rs-vcover__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.rs-vcover__img:not([src]) { display: none; }

/* --- bramka mediów w widoku TV: wspólna bramka (rs_gate_html, .rs-gate) w wariancie .rs-gate--tv */
.rs-gate--tv { margin-bottom: 0; }
.rs-gate--tv .rs-gate__stage { border-radius: var(--rs-leaf); background: var(--rs-forest); }
.rs-gate--tv .rs-gate__tile { background: var(--rs-forest); box-shadow: inset 0 -4px 0 var(--rs-accent); }
/* obok tytułu jest nagłówek z linkiem, więc kafel pokazuje tylko rodzaj i kanał (bez powtarzania tytułu) */
.rs-gate--tv .rs-gate__title { display: none; }
.rs-gate--tv .rs-gate__kind { font-size: 0.8125rem; }
.rs-gate--tv .rs-gate__kind { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* wąski telefon: przycisk odtwarzania w jednym wierszu, żeby nie zasłaniał podpisu kafla */
.rs-gate--tv .rs-gate__play { gap: 0.4rem; padding-inline: 0.9rem; font-size: 0.875rem; white-space: nowrap; }
/* bez JavaScriptu przycisk odtwarzania nic nie zrobi: zostaje zwykły odnośnik do YouTube pod kaflem */
.rs-no-js .rs-gate--tv .rs-gate__play { display: none; }
.rs-gate--reel { max-width: 22rem; }
.rs-gate--reel .rs-gate__stage { aspect-ratio: 9 / 16; }
.rs-gate--tv .rs-gate__alt { margin-top: var(--rs-s-2); }
.rs-gate--tv .rs-gate__alt a { color: var(--rs-accent-deep); font-weight: 700; }
.rs-scene--stage .rs-gate__note { color: var(--rs-on-dark-2); }
.rs-scene--stage .rs-gate--tv .rs-gate__alt a { color: var(--rs-on-dark); }

/* --- pas rolek: poziomy przewijany rząd (natywny scroll-snap, widoczna kolejna karta) */
.rs-rail {
  margin-inline: calc(-1 * var(--rs-gutter));
  padding: 0 var(--rs-gutter) var(--rs-s-3);
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: x proximity;
  scroll-padding-inline: var(--rs-gutter);
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}
.rs-rail__track { display: grid; grid-auto-flow: column; grid-auto-columns: 9.5rem; gap: var(--rs-s-3); margin: 0; padding: 0; list-style: none; }
.rs-rail__track > li { min-width: 0; scroll-snap-align: start; }
.rs-tv-reels--bare { margin-top: var(--rs-s-7); }

.rs-reel { display: flex; flex-direction: column; gap: 0.5rem; min-width: 0; }
.rs-reel__media { position: relative; display: block; aspect-ratio: 9 / 16; overflow: hidden; border-radius: var(--rs-r-lg); background: var(--rs-forest); }
.rs-reel__title { margin: 0; font-size: 0.9375rem; line-height: 1.3; }
.rs-reel__title a { color: inherit; text-decoration: none; }
.rs-reel__title a:hover { text-decoration: underline; }
.rs-reel__meta { margin: 0; color: var(--rs-muted); font-size: 0.8125rem; }
.rs-scene--stage .rs-reel__meta { color: var(--rs-on-dark-2); }

.rs-reels-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--rs-s-5) var(--rs-s-3); margin: 0 0 var(--rs-s-6); padding: 0; list-style: none; }

/* --- kanały: przewijany rząd na telefonie, od 720 px stała siatka (kolumny wg liczby kart, bez sierot) */
.rs-chans {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: min(82%, 19rem);
  gap: var(--rs-s-4);
  margin: 0 calc(-1 * var(--rs-gutter));
  padding: 0 var(--rs-gutter) var(--rs-s-3);
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: x proximity;
  scroll-padding-inline: var(--rs-gutter);
  list-style: none;
}
.rs-chans > li { scroll-snap-align: start; }
.rs-chan { display: flex; flex-direction: column; gap: 0.5rem; min-width: 0; padding: var(--rs-s-4) var(--rs-s-5) var(--rs-s-5); border-top: 3px solid var(--rs-ink); }
.rs-chan__role { margin: 0; }
.rs-chan__name { margin: 0; font-size: var(--rs-fs-h3); }
.rs-chan__stats { margin: 0; color: var(--rs-ink-2); font-size: 0.875rem; }
.rs-chan__latest { margin: 0; font-size: 0.9375rem; font-weight: 600; }
.rs-chan__latest a { color: var(--rs-ink); }
.rs-chan__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--rs-s-2) var(--rs-s-4); margin: auto 0 0; padding-top: var(--rs-s-3); }
.rs-chan__actions .rs-btn { min-height: 2.75rem; padding-inline: 1rem; font-size: 0.9375rem; }
.rs-chan__yt { font-size: 0.9375rem; font-weight: 700; }

/* --- archiwum: lista z osią czasu (data po lewej, tytuł i źródło po prawej) */
.rs-vline { margin: 0 0 var(--rs-s-6); padding: 0; list-style: none; }
.rs-vline__item { position: relative; margin-left: 0.375rem; padding: 0 0 var(--rs-s-5) var(--rs-s-4); border-left: 2px solid var(--rs-line-2); }
.rs-vline__item::before,
.rs-vline__body::before { content: ""; position: absolute; left: -0.4375rem; top: 0.35rem; width: 0.75rem; height: 0.75rem; border-radius: 0; background: var(--rs-accent); box-shadow: 0 0 0 3px var(--rs-paper); }
.rs-vline__date { display: block; margin-bottom: 0.25rem; color: var(--rs-muted); font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; }
.rs-vline__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 0.6rem; margin: 0 0 0.25rem; color: var(--rs-muted); font-size: 0.8125rem; }
.rs-vline__title { margin: 0; font-size: var(--rs-fs-h3); }
.rs-vline__text { margin: 0.35rem 0 0; color: var(--rs-ink-2); font-size: 0.9375rem; }
.rs-vline__body::before { content: none; }

/* --- widok kanału, strona filmu */
.rs-tv-chanmeta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--rs-s-3) var(--rs-s-4); margin: var(--rs-s-4) 0 0; color: var(--rs-ink-2); }
.rs-tv-single__player { margin-bottom: var(--rs-s-5); }
.rs-tv-single__player.is-reel { max-width: 22rem; }
.rs-tv-single__credit { margin: var(--rs-s-2) 0 0; color: var(--rs-muted); font-size: 0.8125rem; }
.rs-tv-single__source p { margin: 0 0 var(--rs-s-2); }
.rs-tv-single__srctext { color: var(--rs-ink-2); }
.rs-tv-related { margin-top: var(--rs-s-4); }
.rs-tv-related__list { grid-template-columns: minmax(0, 1fr); }

@media (min-width: 480px) {
  .rs-gate--tv .rs-gate__play { gap: 0.6rem; padding-inline: 1.35rem; font-size: 1rem; }
  .rs-vrow__media { flex-basis: 8rem; }
  .rs-rail__track { grid-auto-columns: 10.5rem; }
  .rs-reels-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (min-width: 720px) {
  .rs-rail__track { grid-auto-columns: 12rem; }
  .rs-reels-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--rs-s-6) var(--rs-s-4); }
  .rs-chans { grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-inline: 0; padding-inline: 0; overflow: visible; }
  .rs-chans--n1 { grid-template-columns: minmax(0, 34rem); }
  .rs-vline__item { display: grid; grid-template-columns: 8.5rem minmax(0, 1fr); gap: var(--rs-s-4); margin-left: 0; padding: 0; border-left: 0; }
  .rs-vline__item::before { content: none; }
  .rs-vline__date { margin: 0; padding-top: 0.15rem; text-align: right; }
  .rs-vline__body { position: relative; padding: 0 0 var(--rs-s-5) var(--rs-s-4); border-left: 2px solid var(--rs-line-2); }
  .rs-vline__body::before { content: ""; }
  .rs-tv-related__list,
  .has-next--two .rs-tv-next__list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--rs-s-6); }
  .has-next--one .rs-tv-next__list { max-width: 62rem; }
}

@media (min-width: 960px) {
  .rs-tv-stage__grid.has-next:not(.has-next--below) { grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: var(--rs-s-7); }
  .rs-tv-next__list { grid-auto-rows: 1fr; }
  .rs-reels-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .rs-chans--n3,
  .rs-chans--n5,
  .rs-chans--n6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (min-width: 1200px) {
  .rs-rail__track { grid-auto-columns: 13rem; }
  .rs-reels-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}

@media (prefers-reduced-motion: no-preference) {
  .rs-gate--tv .rs-gate__play:hover { transform: translateY(-1px); }
}

/* === Moduł: SEO i okruszki === */
.rs-crumbs { padding-top: var(--rs-s-1); }
.rs-crumbs__list {
  display: flex;
  align-items: center;
  margin: 0;
  padding: 0;
  overflow-x: auto;
  list-style: none;
  font-size: 0.8125rem;
  line-height: 1.3;
  white-space: nowrap;
  scrollbar-width: none;
}
.rs-crumbs__list::-webkit-scrollbar { display: none; }
.rs-crumbs__item { display: inline-flex; flex: none; align-items: center; min-width: 0; }
.rs-crumbs__item + .rs-crumbs__item::before { content: "/"; flex: none; margin-inline: var(--rs-s-2); color: var(--rs-line-2); }
.rs-crumbs__item a { display: inline-flex; align-items: center; min-height: 2.25rem; color: var(--rs-muted); text-decoration: none; }
.rs-crumbs__item a:hover { color: var(--rs-accent-deep); text-decoration: underline; }
.rs-crumbs__current { display: block; min-width: 0; overflow: hidden; color: var(--rs-ink-2); font-weight: 600; line-height: 2.25rem; text-overflow: ellipsis; }
.rs-crumbs__item:last-child { flex: 0 1 auto; min-width: 6.5rem; }
.rs-crumbs + .rs-page .rs-pagehead { padding-top: var(--rs-s-2); }
.rs-event-status { display: inline-block; margin: 0 0 var(--rs-s-4); padding: var(--rs-s-2) var(--rs-s-4); border-radius: var(--rs-r-pill); background: var(--rs-accent-soft); color: var(--rs-accent-deep); font-weight: 700; }

/* === Moduł: Sport === */
/* DNA portalu: hub Sportu to pulpit (ciemna tablica wyników wszystkich klubów, tabela i terminarz obok siebie, kluby jako wiersze), strona klubu to pas meczów + dwie kolumny
   modułów z grubą linią u góry, mecz ma ciemną tablicę wyniku. Kafle klubów z inicjałami zostają (brak herbów); klasa .rs-sport-panel__title jest czytana też przez stronę główną. */

/* kafel klubu z inicjałami (zamiast herbu: brak praw do znaków graficznych): prostokątny, mały promień */
.rs-crest {
  display: inline-grid;
  place-items: center;
  flex: none;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: var(--rs-r-md);
  background: var(--rs-forest-soft);
  color: var(--rs-forest);
  font-family: var(--rs-font-display);
  font-size: 0.9375rem;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1;
}
.rs-crest--ours { background: var(--rs-accent); color: #fff; }

/* forma i wynik: prostokątne etykiety z literą (kolor nigdy nie jest jedyną informacją) */
.rs-formline { display: flex; flex-wrap: wrap; gap: 0.25rem; margin: 0; padding: 0; list-style: none; }
.rs-pill {
  display: inline-grid;
  place-items: center;
  min-width: 1.75rem;
  height: 1.75rem;
  padding: 0 0.4rem;
  border-radius: var(--rs-r-pill);
  color: #fff;
  font-size: 0.8125rem;
  font-weight: 700;
  line-height: 1;
}
.rs-pill--w { background: var(--rs-forest); }
.rs-pill--r { background: var(--rs-ink-2); }
.rs-pill--p { background: var(--rs-accent-deep); }

.rs-sport-badge {
  margin: 0;
  background: var(--rs-accent-soft);
  color: var(--rs-accent-deep);
}

/* tablica wyniku: dwa wiersze (gospodarze, goście), wynik po prawej */
.rs-scoreboard { display: grid; gap: 0; margin: 0 0 var(--rs-s-3); }
.rs-scoreboard__row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--rs-s-3);
  padding-block: 0.5rem;
  border-bottom: 1px solid var(--rs-line);
}
.rs-scoreboard__row:last-child { border-bottom: 0; }
.rs-scoreboard__name { min-width: 0; overflow-wrap: anywhere; font-family: var(--rs-font-display); font-size: 1.1875rem; font-weight: 600; line-height: 1.25; }
.rs-scoreboard__row.is-ours .rs-scoreboard__name,
.rs-scoreboard__row.is-win .rs-scoreboard__name { font-weight: 800; }
.rs-scoreboard__score { min-width: 1.25ch; font-family: var(--rs-font-display); font-size: 1.75rem; font-weight: 700; font-variant-numeric: tabular-nums; line-height: 1; text-align: right; }
.rs-scoreboard__row.is-win .rs-scoreboard__score { color: var(--rs-accent-deep); }
.rs-scoreboard--sm { margin: 0; }
.rs-scoreboard--sm .rs-scoreboard__row { gap: var(--rs-s-2); padding-block: 0.375rem; }
.rs-scoreboard--sm .rs-crest { width: 1.75rem; height: 1.75rem; font-size: 0.75rem; }
.rs-scoreboard--sm .rs-scoreboard__name { font-size: 1rem; }
.rs-scoreboard--sm .rs-scoreboard__score { font-size: 1.375rem; }
.rs-scoreboard--lg .rs-crest { width: 3rem; height: 3rem; font-size: 1.0625rem; }
.rs-scoreboard--lg .rs-scoreboard__name { font-size: 1.3125rem; }
.rs-scoreboard--xl .rs-crest { width: 3.5rem; height: 3.5rem; font-size: 1.25rem; }
.rs-scoreboard--xl .rs-scoreboard__name { font-size: 1.375rem; }
.rs-scoreboard--xl .rs-scoreboard__score { font-size: 2.75rem; }

/* karty meczu (strona klubu i strona główna): ciemna „następny mecz” i jasna „ostatni wynik”; na stronie klubu leżą złączone w jeden pas (.rs-sport-duo) */
.rs-sport-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: var(--rs-s-5) var(--rs-s-4);
  border-radius: var(--rs-leaf);
}
.rs-sport-card__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--rs-s-2) var(--rs-s-3); margin-bottom: var(--rs-s-2); }
.rs-sport-card__kicker { margin: 0; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.rs-sport-card__when { margin: 0; font-size: 1.0625rem; font-weight: 700; }
.rs-sport-card__time { display: inline-block; margin-left: 0.4rem; }
.rs-sport-card__where,
.rs-sport-card__meta { margin: 0.25rem 0 0; font-size: 0.9375rem; }
.rs-sport-card__label { font-weight: 700; }
.rs-sport-card__form { display: flex; flex-wrap: wrap; align-items: center; gap: var(--rs-s-2) var(--rs-s-3); margin-top: var(--rs-s-3); }
.rs-sport-card__actions { display: flex; flex-wrap: wrap; gap: var(--rs-s-2); margin: var(--rs-s-4) 0 0; }
.rs-sport-card--next { background: var(--rs-forest-deep); color: #fff; }
.rs-sport-card--next .rs-sport-card__kicker,
.rs-sport-card--next .rs-sport-card__where,
.rs-sport-card--next .rs-sport-card__meta { color: var(--rs-on-dark-2); }
.rs-sport-card--next .rs-btn--ghost { border-color: rgba(255, 255, 255, 0.55); color: #fff; }
.rs-sport-card--next .rs-btn--ghost:hover { border-color: #fff; color: #fff; }
.rs-sport-card--last { border: 1px solid var(--rs-line); background: var(--rs-surface); }
.rs-sport-card--last .rs-sport-card__kicker { color: var(--rs-muted); }
.rs-sport-card--last .rs-sport-card__meta { color: var(--rs-ink-2); }
.rs-sport-card--last .rs-sport-card__actions { margin-top: auto; padding-top: var(--rs-s-4); }

/* ciemna tablica wyniku (karta „następny mecz”, tablica wyników huba, nagłówek meczu): jedna definicja kolorów na ciemnym tle */
.rs-sport-card--next .rs-scoreboard__row,
.rs-scorebar .rs-scoreboard__row,
.rs-sport-hero .rs-scoreboard__row { border-bottom-color: var(--rs-on-dark-line); }
.rs-sport-card--next .rs-crest,
.rs-scorebar .rs-crest,
.rs-sport-hero .rs-crest { background: rgba(255, 255, 255, 0.14); color: #fff; }
.rs-sport-card--next .rs-crest--ours,
.rs-scorebar .rs-crest--ours,
.rs-sport-hero .rs-crest--ours { background: var(--rs-sun); color: var(--rs-forest-deep); }
.rs-sport-card--next .rs-sport-badge,
.rs-scorebar .rs-sport-badge,
.rs-sport-hero .rs-sport-badge { background: var(--rs-sun); color: var(--rs-forest-deep); }
.rs-scorebar .rs-scoreboard__row.is-win .rs-scoreboard__score,
.rs-sport-hero .rs-scoreboard__row.is-win .rs-scoreboard__score { color: var(--rs-sun); }
.rs-scorebar .rs-pill,
.rs-sport-hero .rs-pill { color: var(--rs-forest-deep); }
.rs-scorebar .rs-pill--w,
.rs-sport-hero .rs-pill--w { background: var(--rs-forest-soft); }
.rs-scorebar .rs-pill--r,
.rs-sport-hero .rs-pill--r { background: #cfd6d9; }
.rs-scorebar .rs-pill--p,
.rs-sport-hero .rs-pill--p { background: var(--rs-sun); }

/* Tablica wyników huba: jeden ciemny pas, komórki (wynik, następny mecz) wszystkich klubów obok siebie; telefon = przewijany rząd, widać początek następnej komórki */
.rs-scorebar { margin-bottom: var(--rs-gap-section); padding-block: var(--rs-s-4) var(--rs-s-5); background: var(--rs-forest-deep); color: var(--rs-on-dark); }
.rs-scorebar .rs-modhead { margin-bottom: var(--rs-s-3); border-top-color: var(--rs-on-dark-line-2); }
.rs-scorebar .rs-modhead__kicker { color: var(--rs-sun); }
.rs-scorebar .rs-modhead__title { color: #fff; }
.rs-scorebar__list {
  display: flex;
  margin: 0 calc(-1 * var(--rs-gutter));
  padding: 0 var(--rs-gutter);
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-padding-inline: var(--rs-gutter);
  scroll-snap-type: x proximity;
  list-style: none;
}
.rs-scorebar__cell {
  position: relative;
  flex: 0 0 min(82%, 19rem);
  min-width: 0;
  padding: var(--rs-s-2) var(--rs-s-4);
  border-left: 1px solid var(--rs-on-dark-line);
  scroll-snap-align: start;
}
.rs-scorebar__cell:first-child { padding-left: 0; border-left: 0; }
.rs-scorebar__head { display: flex; flex-direction: column; gap: 0.1rem; margin: 0 0 var(--rs-s-2); }
.rs-scorebar__club { color: #fff; font-size: 0.875rem; font-weight: 700; overflow-wrap: anywhere; }
.rs-scorebar__kind { color: var(--rs-on-dark-2); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.rs-scorebar__cell--next .rs-scorebar__kind { color: var(--rs-sun); }
.rs-scorebar__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 0.6rem; margin: var(--rs-s-2) 0 0; color: var(--rs-on-dark-2); font-size: 0.875rem; font-weight: 700; }
.rs-scorebar__time { color: #fff; }
.rs-scorebar__link { display: inline-flex; align-items: center; min-height: 2.75rem; color: var(--rs-on-dark); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-decoration: none; text-transform: uppercase; }
.rs-scorebar__cell:hover .rs-scorebar__link { text-decoration: underline; text-underline-offset: 0.25em; }
.rs-scorebar .rs-stretch:focus-visible::after { outline-color: #fff; }

/* układ sekcji Sportu */
.rs-sport-section { padding-block: 0 var(--rs-gap-block); }
.rs-sport-h { margin: 0 0 var(--rs-s-4); font-size: var(--rs-fs-h2s); }
.rs-sport-h a { color: inherit; text-decoration: none; }
.rs-sport-h a:hover { color: var(--rs-accent-deep); text-decoration: underline; }
.rs-sport-lead { max-width: var(--rs-read); margin: 0 0 var(--rs-s-4); color: var(--rs-ink-2); }
.rs-sport-note { max-width: var(--rs-read); margin: var(--rs-s-3) 0 0; color: var(--rs-muted); font-size: 0.875rem; }
.rs-sport-note--warn { color: var(--rs-accent-deep); font-weight: 700; }
.rs-sport-hint { margin: 0 0 var(--rs-s-4); }
.rs-sport-links { display: flex; flex-wrap: wrap; gap: var(--rs-s-2); margin-block: 0 var(--rs-s-3); }
.rs-sport-source { padding-bottom: var(--rs-s-6); }
.rs-sport-about { padding-bottom: var(--rs-s-4); }
.rs-sport-jump { display: flex; margin: 0 0 var(--rs-s-5); overflow-x: auto; border-bottom: 1px solid var(--rs-line-2); scrollbar-width: none; }
.rs-sport-jump::-webkit-scrollbar { display: none; }
.rs-sport-jump a { flex: none; margin-bottom: -1px; }

.rs-sport-duo { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
.rs-sport-duo > .rs-sport-card--last { border-top: 0; }

/* hub: tabela i terminarz obok siebie; klub: pas statystyk, tabela obok terminarza, wyniki w dwóch kolumnach. Telefon: jeden stos w kolejności tabela, terminarz, wyniki, statystyki */
.rs-sport-cols,
.rs-sport-grid { display: flex; flex-direction: column; }
.rs-sport-section--table { order: 1; }
.rs-sport-section--fixtures { order: 2; }
.rs-sport-section--results { order: 3; }
.rs-sport-section--stats { order: 4; }
.rs-sport-body { min-width: 0; }
.rs-sport-body__form { display: flex; flex-wrap: wrap; align-items: center; gap: var(--rs-s-2) var(--rs-s-3); margin-top: var(--rs-s-3); }

/* nagłówek małego panelu tabeli (używa go też strona główna) */
.rs-sport-panel__title { margin: 0 0 var(--rs-s-3); font-size: var(--rs-fs-h3); }

/* tabele gazetowe: semantyczna <table>, nagłówek z grubą linią, cienkie linie wierszy, nasz klub wyróżniony; na telefonie bez przewijania poziomego (kolumny Z, R, P ukryte) */
.rs-tbl { width: 100%; border-collapse: collapse; font-size: 0.875rem; font-variant-numeric: tabular-nums; }
.rs-tbl abbr { text-decoration: none; }
.rs-tbl__caption { padding: 0 0 var(--rs-s-2); color: var(--rs-muted); font-size: 0.8125rem; font-weight: 700; text-align: left; }
.rs-tbl th,
.rs-tbl td { padding: 0.6rem 0.3rem; border-bottom: 1px solid var(--rs-line); text-align: right; vertical-align: middle; }
.rs-tbl thead th { padding-block: 0.4rem; border-bottom: 2px solid var(--rs-ink); color: var(--rs-ink-2); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.rs-tbl__pos { width: 2rem; font-weight: 700; text-align: center; }
.rs-tbl th.rs-tbl__team,
.rs-tbl td.rs-tbl__team { text-align: left; font-weight: 400; overflow-wrap: anywhere; }
.rs-tbl thead th.rs-tbl__team { font-weight: 700; }
.rs-tbl__num { width: 2.25rem; }
.rs-tbl__goals { width: 3.5rem; }
.rs-tbl__pts { font-weight: 700; }
.rs-tbl__opt { display: none; }
.rs-tbl tbody tr:last-child th,
.rs-tbl tbody tr:last-child td { border-bottom: 0; }
.rs-tbl tr.is-club th,
.rs-tbl tr.is-club td { background: var(--rs-accent-soft); font-weight: 700; }
.rs-tbl tr.is-club td:first-child { box-shadow: inset 4px 0 0 var(--rs-accent); }
.rs-tbl tr.is-total th,
.rs-tbl tr.is-total td { border-top: 2px solid var(--rs-line-2); font-weight: 700; }
.rs-tbl--split { margin-top: var(--rs-s-4); }
.rs-tbl--split th.rs-tbl__team { width: 32%; }
.rs-tbl--split .rs-tbl__num { width: auto; padding-inline: 0.5rem; white-space: nowrap; }

/* terminarz i wyniki jako wiersze: kafel daty po lewej, mecz w środku, godzina albo wynik po prawej */
.rs-tline { margin: 0; padding: 0; list-style: none; }
.rs-tline__item {
  display: grid;
  grid-template-columns: 3.25rem minmax(0, 1fr);
  align-items: start;
  gap: var(--rs-s-1) var(--rs-s-3);
  padding-block: var(--rs-s-3);
  border-top: 1px solid var(--rs-line);
}
.rs-tline__item:first-child { border-top: 0; padding-top: 0; }
.rs-tline__body { min-width: 0; }
.rs-tline__teams { margin: 0; font-weight: 700; overflow-wrap: anywhere; }
.rs-tline__teams a { display: inline-block; padding-block: 0.15rem; color: var(--rs-ink); text-decoration: none; }
.rs-tline__teams a:hover { color: var(--rs-accent-deep); text-decoration: underline; }
.rs-tline__meta { margin: 0.125rem 0 0; color: var(--rs-ink-2); font-size: 0.8125rem; overflow-wrap: anywhere; }
.rs-tline__side { display: flex; flex-wrap: wrap; grid-column: 2; align-items: center; gap: 0.25rem var(--rs-s-3); }
.rs-tline__time { color: var(--rs-accent-deep); font-size: 0.9375rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.rs-tline__score { font-family: var(--rs-font-display); font-size: 1.375rem; font-weight: 700; font-variant-numeric: tabular-nums; line-height: 1; }
.rs-tline__item.is-overdue .rs-tline__time { color: var(--rs-muted); }
.rs-tline__item.is-off .rs-tline__teams a { text-decoration: line-through; }

/* zwarty wiersz gazetowy (huby i strony klubów): data w jednej linii, mecz i drobne metadane, godzina albo wynik po prawej */
.rs-tline--dense .rs-tline__item { grid-template-columns: 4.25rem minmax(0, 1fr); padding-block: 0.5rem; border-top: 0; border-bottom: 1px solid var(--rs-line); break-inside: avoid; }
.rs-tline--dense .rs-tline__item:first-child { padding-top: 0.5rem; }
.rs-tline--dense .rs-date--line { display: flex; align-items: baseline; gap: 0.3rem; width: auto; padding: 0; border: 0; }
.rs-tline--dense .rs-date--line .rs-date__day { font-size: 1.125rem; }
.rs-tline--dense .rs-date--line .rs-date__mon { font-size: 0.75rem; }
.rs-tline--dense .rs-date--line .rs-date__dow { display: none; }
.rs-tline--dense .rs-tline__teams a { padding-block: 0; }
.rs-tline--dense .rs-tline__side { grid-column: 2; }

/* statystyki: pas czterech komórek rozdzielonych cienką linią (bez kafli) */
.rs-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin: 0; border: 1px solid var(--rs-line); border-radius: var(--rs-leaf); background: var(--rs-line); overflow: hidden; }
.rs-stats__tile { padding: var(--rs-s-3) var(--rs-s-4); background: var(--rs-surface); }
.rs-stats__tile dt { color: var(--rs-muted); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.rs-stats__tile dd { margin: 0.25rem 0 0; font-family: var(--rs-font-display); font-size: 1.875rem; font-weight: 700; font-variant-numeric: tabular-nums; line-height: 1.1; }

/* kluby huba jako wiersze: kafel z inicjałami i nazwą, miejsce w tabeli, forma, następny mecz */
.rs-clubrows { margin: 0; padding: 0; border-top: 1px solid var(--rs-line); list-style: none; }
.rs-clubrow {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-areas: "id id" "pos form" "next next";
  align-items: center;
  gap: 0.5rem var(--rs-s-4);
  padding-block: var(--rs-s-3);
  border-bottom: 1px solid var(--rs-line);
}
.rs-clubrow__id { display: flex; grid-area: id; align-items: center; gap: var(--rs-s-3); min-width: 0; }
.rs-clubrow__id .rs-crest { width: 3rem; height: 3rem; font-size: 1.0625rem; }
.rs-clubrow__name { min-width: 0; }
.rs-clubrow__title { margin: 0; font-size: var(--rs-fs-h3); }
.rs-clubrow__title a { display: inline-flex; align-items: center; min-height: 2.75rem; color: var(--rs-ink); text-decoration: none; }
.rs-clubrow__title a:hover { color: var(--rs-accent-deep); text-decoration: underline; }
.rs-clubrow__meta { margin: 0; color: var(--rs-ink-2); font-size: 0.875rem; }
.rs-clubrow__pos { grid-area: pos; margin: 0; font-weight: 700; }
.rs-clubrow__form { display: flex; grid-area: form; flex-wrap: wrap; align-items: center; gap: 0.25rem var(--rs-s-3); }
.rs-clubrow__next { display: grid; grid-area: next; gap: 0.1rem; margin: 0; color: var(--rs-ink-2); font-size: 0.9375rem; }
.rs-clubrow__next a { color: var(--rs-ink); font-weight: 700; text-decoration: none; overflow-wrap: anywhere; }
.rs-clubrow__next a:hover { color: var(--rs-accent-deep); text-decoration: underline; }
.rs-clubrow__label { display: inline-block; margin-right: 0.5rem; color: var(--rs-muted); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.rs-clubrow__next .rs-clubrow__label { display: block; margin: 0; }

/* chip-odnośnik o wysokości celu dotykowego (kolumna boczna: gminy) */
.rs-chip--link { display: inline-flex; align-items: center; min-height: 2.75rem; padding-inline: 1rem; font-size: 0.875rem; }

/* strona meczu: ciemna tablica wyniku, fakty, sąsiednie mecze klubu jako wiersze */
.rs-sport-hero { margin-bottom: var(--rs-s-5); padding: var(--rs-s-4); border-radius: var(--rs-leaf); background: var(--rs-forest-deep); color: var(--rs-on-dark); }
.rs-sport-hero__top { display: flex; flex-wrap: wrap; align-items: center; gap: var(--rs-s-2) var(--rs-s-3); margin: 0 0 var(--rs-s-3); }
.rs-sport-hero__comp { color: var(--rs-on-dark-2); font-size: 0.875rem; font-weight: 700; }
.rs-sport-hero .rs-tag--sport { background: var(--rs-sun); color: var(--rs-forest-deep); }
.rs-sport-hero .rs-scoreboard { margin-bottom: var(--rs-s-4); }
.rs-sport-hero__when { margin: 0 0 var(--rs-s-3); color: #fff; font-size: 1.125rem; font-weight: 700; }
.rs-sport-hero__when span { display: inline-block; margin-left: 0.4rem; color: var(--rs-sun); }
.rs-sport-hero__pill { display: flex; align-items: center; gap: var(--rs-s-2); margin: 0; }
.rs-sport-hero__result { font-weight: 700; }
.rs-sport-pn { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; margin-top: var(--rs-s-6); border-top: var(--rs-rule); }
.rs-sport-pn__link { display: grid; gap: 0.25rem; padding: var(--rs-s-3) 0; border-bottom: 1px solid var(--rs-line); color: var(--rs-ink); font-weight: 700; text-decoration: none; overflow-wrap: anywhere; }
.rs-sport-pn__link:hover { color: var(--rs-accent-deep); }
.rs-sport-pn__link .rs-sport-card__label { color: var(--rs-muted); font-size: 0.6875rem; letter-spacing: 0.1em; text-transform: uppercase; }

/* dolny moduł „Na bieżąco”: wiersze odnośników zamiast kafli */
.rs-linkrows-block { padding-block: var(--rs-s-2) var(--rs-gap-section); }
.rs-linkrows { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; margin: 0; padding: 0; list-style: none; }
.rs-linkrows__link { display: grid; gap: 0.15rem; height: 100%; padding: var(--rs-s-3) 0; border-bottom: 1px solid var(--rs-line); color: var(--rs-ink); text-decoration: none; }
.rs-linkrows__title { font-family: var(--rs-font-display); font-size: 1.125rem; font-weight: 700; }
.rs-linkrows__title::after { content: "\2192"; margin-left: 0.5rem; color: var(--rs-accent-deep); }
.rs-linkrows__body { color: var(--rs-ink-2); font-size: 0.9375rem; }
.rs-linkrows__link:hover .rs-linkrows__title { color: var(--rs-accent-deep); text-decoration: underline; }

@media (min-width: 480px) {
  .rs-sport-card { padding: var(--rs-s-5); }
  .rs-tbl { font-size: 0.9375rem; }
  .rs-tline__item { grid-template-columns: 3.75rem minmax(0, 1fr) auto; }
  .rs-tline__side { display: grid; grid-column: auto; justify-items: end; text-align: right; }
  .rs-tline--dense .rs-tline__item { grid-template-columns: 4.25rem minmax(0, 1fr) auto; align-items: center; }
  .rs-tline--dense .rs-tline__side { grid-column: auto; }
  .rs-sport-hero { padding: var(--rs-s-5); }
}

@media (min-width: 720px) {
  .rs-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .rs-sport-pn { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--rs-s-5); }
  .rs-sport-pn__link--next { text-align: right; }
  .rs-sport-pn > :only-child { grid-column: 1 / -1; text-align: left; }
  .rs-sport-hero { padding: var(--rs-s-6); }
  .rs-tbl__opt { display: table-cell; }
  .rs-tbl__num { width: 2.75rem; }
  .rs-tbl__goals { width: 4rem; }
  .rs-sport-section { padding-bottom: var(--rs-gap-section); }
  .rs-linkrows { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: var(--rs-s-6); }
  .rs-linkrows__link { border-top: 1px solid var(--rs-line); border-bottom: 0; }
  .rs-scorebar__list { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(15rem, 1fr); }
  .rs-scorebar__list--few { grid-auto-columns: minmax(15rem, 24rem); }
}

@media (min-width: 960px) {
  .rs-sport-duo { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); align-items: stretch; }
  .rs-sport-duo > .rs-sport-card--last { border-top: 1px solid var(--rs-line); border-left: 0; }
  .rs-sport-duo--one { grid-template-columns: minmax(0, 40rem); }
  .rs-sport-cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 var(--rs-layout-gap); align-items: start; }
  .rs-sport-cols > :only-child { grid-column: 1 / -1; }
  .rs-sport-grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); grid-template-areas: "stats stats" "table fixtures" "results results"; gap: 0 var(--rs-layout-gap); align-items: start; }
  .rs-sport-grid > .rs-sport-section--stats { grid-area: stats; }
  .rs-sport-grid > .rs-sport-section--table { grid-area: table; }
  .rs-sport-grid > .rs-sport-section--fixtures { grid-area: fixtures; }
  .rs-sport-grid > .rs-sport-section--results { grid-area: results; }
  .rs-sport-section--stats .rs-acc__body { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 var(--rs-layout-gap); align-items: start; }
  .rs-sport-section--stats .rs-tbl--split { margin-top: 0; }
  .rs-sport-section--stats .rs-stats { grid-auto-rows: 1fr; height: 100%; }
  .rs-sport-section--stats .rs-stats__tile { display: flex; flex-direction: column; justify-content: center; }
  .rs-sport-section--stats .rs-sport-note { grid-column: 1 / -1; }
  .rs-sport-section--results .rs-tline { column-count: 2; column-gap: var(--rs-layout-gap); }
  .rs-clubrow {
    grid-template-columns: minmax(0, 1.4fr) 7rem 11rem minmax(0, 1.6fr);
    grid-template-areas: "id pos form next";
    gap: var(--rs-s-4);
    padding-block: var(--rs-s-2);
  }
}

/* === Moduł: Komunikaty ze źródeł (newsroom) === */
.rs-source-wrap { margin-block: var(--rs-s-6) 0; }
.rs-source {
  padding: var(--rs-s-4) var(--rs-s-5);
  border: 1px solid var(--rs-line-2);
  border-left: 0.3125rem solid var(--rs-forest);
  border-radius: var(--rs-r-lg);
  background: var(--rs-surface);
  color: var(--rs-ink-2);
}
.rs-source--own { border-left-color: var(--rs-accent); }
.rs-source__line { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--rs-s-1) var(--rs-s-2); margin: 0; font-size: 0.9375rem; }
.rs-source__label { color: var(--rs-muted); font-weight: 700; }
.rs-source__name { color: var(--rs-ink); overflow-wrap: anywhere; }
.rs-source__meta { display: inline-flex; flex-wrap: nowrap; align-items: baseline; gap: var(--rs-s-2); white-space: nowrap; }
.rs-source__sep { color: var(--rs-muted); }
.rs-source__link {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  color: var(--rs-accent-deep);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
.rs-source__link:hover { color: var(--rs-accent); }
.rs-source__note { margin: var(--rs-s-1) 0 0; color: var(--rs-muted); font-size: 0.8125rem; }
/* kredyt zdjęcia pobranego ze źródła za zgodą: „Zdjęcie: nazwa”, w osobnym wierszu pod ewentualnym podpisem redakcji */
.rs-photo-credit { display: block; }

/* === Strony: Grupa i Stopka redakcyjna === */
.rs-group-list { display: grid; margin: 0; padding: 0; list-style: none; border-top: 2px solid var(--rs-ink); }
.rs-group-list__item { display: grid; gap: 0.35rem; padding-block: var(--rs-s-3); border-bottom: 1px solid var(--rs-line); }
.rs-group-list__head { display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem var(--rs-s-3); }
.rs-group-list__name { font-family: var(--rs-font-display); font-size: 1.25rem; font-weight: 700; }
.rs-group-list__meta { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 0.25rem var(--rs-s-2); color: var(--rs-muted); font-size: 0.8125rem; font-weight: 700; }
.rs-group-list__desc { color: var(--rs-ink-2); }
.rs-imprint__links { display: grid; margin: 0; padding: 0; list-style: none; border-top: 2px solid var(--rs-ink); }
.rs-imprint__links li { border-bottom: 1px solid var(--rs-line); }
.rs-imprint__links a { display: flex; align-items: center; min-height: 2.75rem; font-weight: 700; text-decoration: none; }
.rs-imprint__links a:hover { text-decoration: underline; }
.rs-foot-note { display: block; color: var(--rs-on-dark-2); font-size: 0.8125rem; }
@media (min-width: 720px) {
  .rs-group-list__item { grid-template-columns: minmax(0, 17rem) minmax(0, 1fr); align-items: baseline; gap: var(--rs-s-4); }
  .rs-group-list__head { flex-direction: column; align-items: flex-start; gap: 0.15rem; }
}

/* === Moduł: Serwis informacyjny (wiadomości, gminy, archiwa, wyszukiwarka) === */
/* Strona Wiadomości jako mini serwis: nagłówek z paskiem działów i gmin, „Najważniejsze” (duży materiał + lista), oś czasu „Najnowsze”, blok
   komunikatów, pasy tematyczne (gminy, wydarzenia, sport, TV, historia). Kolejność w DOM = kolejność priorytetu redakcji (telefon czyta ją po kolei),
   na komputerze „Najnowsze” i komunikaty stoją obok. Kolory pasów zmieniają się same wg kolejności, scena TV jest zawsze ciemna. */
.rs-newsroom + .rs-footer { margin-top: 0; }
.rs-newsroom > .rs-scene:nth-of-type(odd) { --scene-bg: var(--rs-sand); }
.rs-newsroom > .rs-scene:nth-of-type(even) { --scene-bg: var(--rs-paper); }
.rs-newsroom > .rs-scene.rs-scene--stage { --scene-bg: var(--rs-forest-deep); }
.rs-newsroom > .rs-scene.rs-scene--slim { --scene-bg: var(--rs-paper); }

/* nagłówek bloku (linia redakcyjna pod tytułem sekcji) */
.rs-blockhead {
  margin: 0 0 var(--rs-s-4);
  padding-top: var(--rs-s-2);
  border-top: var(--rs-rule);
  font-size: 1.25rem;
}
.rs-blockhead__n { color: var(--rs-muted); font-family: var(--rs-font-ui); font-size: 0.875rem; font-weight: 700; }
.rs-scene--stage .rs-blockhead { border-top-color: var(--rs-on-dark-line-2); }

/* nagłówek serwisu: podpis, pasek działów i gmin */
.rs-newshead .rs-pagehead__lead { font-size: 1.0625rem; }
.rs-newshead__stamp { margin: var(--rs-s-3) 0 0; color: var(--rs-muted); font-size: 0.875rem; font-weight: 700; }
.rs-newsnav { display: grid; gap: var(--rs-s-2); margin-top: var(--rs-s-5); }
.rs-newsnav .rs-tabs { margin: 0; }
.rs-newsnav--solo { margin-block: 0 var(--rs-s-4); }
.rs-newsnav__gminy { display: flex; align-items: center; gap: var(--rs-s-3); min-width: 0; }
.rs-newsnav__gminy .rs-tabs { flex: 1; min-width: 0; }
.rs-newsnav__label { flex: none; color: var(--rs-muted); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.rs-tabs__n { margin-left: 0.3rem; color: var(--rs-muted); font-size: 0.8125rem; font-weight: 700; }
.rs-tabs a[aria-current="page"] .rs-tabs__n { color: var(--rs-accent-deep); }
.rs-chip--gmina,
.rs-chip--gmina:hover { background: var(--rs-forest-soft); color: var(--rs-forest-deep); }
.rs-chip--gmina:hover { box-shadow: inset 0 0 0 2px var(--rs-forest-deep); }

/* górna część huba: Najważniejsze | Najnowsze + komunikaty */
.rs-newstop { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--rs-s-6); padding-block: var(--rs-s-2) var(--rs-s-7); }
.rs-newstop--empty { padding-block: var(--rs-s-4) var(--rs-s-7); }
.rs-newstop__main { display: flex; flex-direction: column; min-width: 0; }
.rs-newstop__side { display: flex; flex-direction: column; gap: var(--rs-s-5); min-width: 0; }
.rs-topgrid { display: grid; flex: 1; grid-template-columns: minmax(0, 1fr); gap: var(--rs-s-4); align-content: start; }
.rs-topgrid--solo { max-width: 48rem; }
.rs-toplist { display: grid; grid-template-columns: minmax(0, 1fr); align-content: start; }

/* duży materiał: zdjęcie z tytułem na dole albo kafel tekstowy (bez sztucznych zdjęć) */
.rs-nlead {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  border-radius: var(--rs-leaf);
  background: var(--rs-forest-deep);
  color: var(--rs-on-dark);
}
.rs-nlead__media { display: block; aspect-ratio: 4 / 3; background: var(--rs-forest); }
.rs-nlead__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.rs-nlead--photo .rs-nlead__body { position: absolute; inset-inline: 0; bottom: 0; padding: var(--rs-s-4); background-color: rgba(20, 51, 41, 0.9); }
.rs-nlead--text .rs-nlead__body { display: flex; flex: 1; flex-direction: column; justify-content: center; gap: var(--rs-s-3); padding: var(--rs-s-6) var(--rs-s-5); }
.rs-nlead__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 0.6rem; margin: 0 0 var(--rs-s-2); color: var(--rs-on-dark-2); font-size: 0.8125rem; font-weight: 700; }
.rs-nlead--text .rs-nlead__meta { margin: 0; }
.rs-nlead__cat { background: var(--rs-accent); color: #fff; }
.rs-nlead__title { margin: 0; color: var(--rs-on-dark); font-size: clamp(1.375rem, 1.1rem + 1.4vw, 2rem); line-height: 1.15; }
.rs-nlead--text .rs-nlead__title { font-size: clamp(1.625rem, 1.2rem + 2vw, 2.5rem); }
.rs-nlead__title a { color: var(--rs-on-dark); text-decoration: none; }
.rs-nlead__title a:hover { color: #fff; text-decoration: underline; }
.rs-nlead .rs-stretch:focus-visible::after { outline-color: var(--rs-sun); outline-offset: -0.375rem; }
.rs-nlead__excerpt { max-width: 40rem; margin: 0; color: var(--rs-on-dark-2); font-size: 1.0625rem; }
.rs-nlead__cta { margin: 0; color: var(--rs-sun); font-weight: 700; }

/* wiersz listy: kategoria, gmina i czas nad tytułem (gęsto, bez zdjęć) */
.rs-nrow { position: relative; padding-block: var(--rs-s-4); border-top: 1px solid var(--rs-line-2); }
.rs-nrow__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 0.5rem; margin: 0 0 0.3rem; color: var(--rs-muted); font-size: 0.8125rem; }
/* metadane w jednym wierszu: etykieta typu, potem elementy rozdzielone kropką środkową (data · kategoria · gmina · źródło) */
.rs-nrow__meta > :not(.rs-tag) + :not(.rs-tag)::before { content: "·"; margin-right: 0.5rem; color: var(--rs-muted); font-weight: 400; }
.rs-nrow__cat { position: relative; z-index: 1; color: var(--rs-accent-deep); font-weight: 700; text-decoration: none; }
.rs-nrow__cat:hover { text-decoration: underline; }
.rs-nrow__gmina { color: var(--rs-forest); font-weight: 700; }
.rs-nrow__src { color: var(--rs-ink-2); }
.rs-nrow__title { margin: 0; font-size: 1.1875rem; line-height: 1.25; }
.rs-nrow__title a { color: var(--rs-ink); text-decoration: none; }
.rs-nrow__title a:hover { color: var(--rs-accent-deep); text-decoration: underline; }
.rs-nrow__excerpt { display: -webkit-box; margin: 0.3rem 0 0; overflow: hidden; color: var(--rs-ink-2); font-size: 0.9375rem; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; }
.rs-toplist .rs-nrow:first-child { border-top: 0; }
.rs-tl__list { display: grid; grid-template-columns: minmax(0, 1fr); }

/* karty boczne: oś czasu i komunikaty */
.rs-tl { padding: var(--rs-s-4) var(--rs-s-4) var(--rs-s-5); }
.rs-newstop__side > :last-child { flex: 1; }
.rs-tl__item { position: relative; display: grid; grid-template-columns: 4.75rem minmax(0, 1fr); gap: var(--rs-s-3); padding-block: var(--rs-s-3); border-top: 1px solid var(--rs-line); }
.rs-tl__list > :first-child { border-top: 0; padding-top: 0; }
.rs-tl__time { display: block; padding-right: var(--rs-s-3); border-right: 3px solid var(--rs-accent-soft); color: var(--rs-muted); font-size: 0.75rem; line-height: 1.3; }
.rs-tl__day { display: block; font-weight: 700; letter-spacing: 0.02em; text-transform: uppercase; }
.rs-tl__time strong { display: block; color: var(--rs-ink); font-size: 1rem; }
.rs-tl__title { margin: 0; font-size: 1.0625rem; line-height: 1.25; }
.rs-tl__title a { color: var(--rs-ink); text-decoration: none; }
.rs-tl__title a:hover { color: var(--rs-accent-deep); text-decoration: underline; }
.rs-tl__tags { margin: 0.2rem 0 0; color: var(--rs-muted); font-size: 0.8125rem; }
.rs-newsnotices { padding-bottom: var(--rs-s-7); }
.rs-notices__list { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--rs-s-3); }
.rs-notice { position: relative; padding: var(--rs-s-4); border: 1px solid var(--rs-line); border-left: 4px solid var(--rs-forest); border-radius: var(--rs-leaf); background: var(--rs-surface); }
.rs-notice__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.2rem 0.5rem; margin: 0 0 0.35rem; color: var(--rs-muted); font-size: 0.8125rem; }
.rs-notice__source { color: var(--rs-forest); font-weight: 700; }
.rs-notice__title { margin: 0; font-size: 1.0625rem; line-height: 1.3; }
.rs-notice__title a { color: var(--rs-ink); text-decoration: none; }
.rs-notice__title a:hover { color: var(--rs-accent-deep); text-decoration: underline; }
.rs-notices__more { margin: var(--rs-s-4) 0 0; }

/* Z gmin powiatu: telefon = przewijany rząd z widoczną kolejną kartą, od 720 px stała liczba kolumn (1, 2, 3, 4 albo 6 kart: bez sierot) */
.rs-gcols {
  display: flex;
  gap: var(--rs-s-3);
  margin: 0 calc(-1 * var(--rs-gutter));
  padding: 0 var(--rs-gutter) var(--rs-s-2);
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-padding-inline: var(--rs-gutter);
  scroll-snap-type: x mandatory;
  list-style: none;
}
.rs-gcols > li { flex: 0 0 78%; min-width: 0; scroll-snap-align: start; }
.rs-gcols--n1 > li { flex-basis: 100%; }
.rs-gcard { display: flex; flex-direction: column; height: 100%; padding: var(--rs-s-4) var(--rs-s-4) var(--rs-s-3); border: 1px solid var(--rs-line); border-top: 3px solid var(--rs-ink); border-radius: var(--rs-leaf); background: var(--rs-surface); }
.rs-gcard__name { margin: 0; font-size: 1.375rem; line-height: 1.15; }
.rs-gcard__name a { color: var(--rs-ink); text-decoration: none; }
.rs-gcard__name a:hover { color: var(--rs-accent-deep); text-decoration: underline; }
.rs-gcard__count { margin: 0.15rem 0 var(--rs-s-3); color: var(--rs-forest); font-size: 0.8125rem; font-weight: 700; }
.rs-gcard__list { flex: 1; }
.rs-gbrief { position: relative; padding-block: var(--rs-s-3); border-top: 1px solid var(--rs-line); }
.rs-gbrief__date { display: block; margin-bottom: 0.1rem; color: var(--rs-muted); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; }
.rs-gbrief__title { margin: 0; font-size: 1rem; line-height: 1.3; }
.rs-gbrief__title a { color: var(--rs-ink); text-decoration: none; }
.rs-gbrief__title a:hover { color: var(--rs-accent-deep); text-decoration: underline; }
.rs-gcard__more { margin: var(--rs-s-2) 0 0; }
.rs-gcard__more a { display: inline-flex; align-items: center; min-height: 2.75rem; font-weight: 700; }

/* sport w zwartej wersji: równe kafle (następny mecz, ostatni wynik, miejsce w tabeli) */
.rs-newssport__club { margin: calc(-1 * var(--rs-s-3)) 0 var(--rs-s-4); color: var(--rs-ink-2); font-weight: 700; }
.rs-sportline-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--rs-s-3); }
.rs-sportline { position: relative; display: flex; flex-direction: column; gap: 0.35rem; padding: var(--rs-s-4); border: 1px solid var(--rs-line); border-radius: var(--rs-leaf); background: var(--rs-surface); }
.rs-sportline__label { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; margin: 0; color: var(--rs-accent-deep); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.rs-sportline__teams { margin: 0; font-size: 1.3125rem; line-height: 1.2; }
.rs-sportline__teams a { color: var(--rs-ink); text-decoration: none; }
.rs-sportline__teams a:hover { color: var(--rs-accent-deep); text-decoration: underline; }
.rs-sportline__pos { margin: 0; font-family: var(--rs-font-display); font-size: 1.75rem; font-weight: 700; line-height: 1.15; }
.rs-sportline__meta { margin: 0; color: var(--rs-ink-2); font-size: 0.9375rem; }

/* TV: ciemna scena z trzema materiałami */
.rs-newstv__list { display: grid; grid-template-columns: minmax(0, 1fr); margin: 0; padding: 0; list-style: none; }
.rs-newstv__list > li { border-top: 1px solid var(--rs-on-dark-line); }
.rs-newstv__list > li:first-child { border-top: 0; }
.rs-newstv__list .rs-vrow__meta { margin-bottom: 0.3rem; }

/* historia i ciekawostki: dwie równe karty */
.rs-newshist__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--rs-s-3); margin: 0; padding: 0; list-style: none; }
.rs-newshist__grid > li { min-width: 0; }
.rs-newshist__grid .rs-fact { height: 100%; }
.rs-newsolder .rs-blockhead { margin-top: 0; }

/* lista wiadomości (kategoria, gmina, kolejne strony) i „Powiązane” */
.rs-narchive { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--rs-s-6); padding-bottom: var(--rs-s-7); }
.rs-narchive__main { display: flex; flex-direction: column; gap: var(--rs-s-5); min-width: 0; }
.rs-narchive__side { min-width: 0; }
.rs-nlist__items > .rs-nrow:first-child { border-top: 0; }
.rs-narchive .rs-pagination { margin-top: var(--rs-s-4); }
.rs-related__cols { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--rs-s-5); }
.rs-related__title { margin: 0 0 var(--rs-s-3); color: var(--rs-muted); font-family: var(--rs-font-ui); font-size: 0.8125rem; letter-spacing: 0.1em; text-transform: uppercase; }
.rs-related__events { display: grid; gap: var(--rs-s-3); }
.rs-related__places { margin: 0; padding: 0; list-style: none; }
.rs-related__places > li { display: grid; gap: 0.15rem; padding-block: var(--rs-s-3); border-top: 1px solid var(--rs-line-2); }
.rs-related__places > li:first-child { border-top: 0; padding-top: 0; }
.rs-related__link { color: var(--rs-ink); font-family: var(--rs-font-display); font-size: 1.0625rem; font-weight: 700; line-height: 1.25; text-decoration: none; }
.rs-related__link:hover { color: var(--rs-accent-deep); text-decoration: underline; }
.rs-related__text { color: var(--rs-ink-2); font-size: 0.875rem; }
.rs-related__more { margin: var(--rs-s-3) 0 0; }
.rs-related__more a { display: inline-flex; align-items: center; min-height: 2.75rem; font-weight: 700; }
.rs-related .rs-blockhead { font-size: 1.1875rem; }
.rs-narchive__side .rs-event { border: 1px solid var(--rs-line); border-radius: var(--rs-r-lg); background: var(--rs-paper); box-shadow: none; }

/* „Zobacz też”: pod artykułem (kolumna główna: lista pozycji jedna pod drugą) i w pasku „Z redakcji” na hubach (siatka w pasie) */
.rs-seealso { margin-top: var(--rs-gap-section); }
.rs-seealso__grid,
.rs-seealso__list { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--rs-s-3); }
.rs-seealso__grid { margin-bottom: var(--rs-s-6); }
.rs-seealso__grid .rs-nrow,
.rs-seealso__list .rs-nrow { padding: var(--rs-s-4); border: 1px solid var(--rs-line); border-radius: var(--rs-leaf); background: var(--rs-surface); }
.rs-seealso .rs-related { margin-top: var(--rs-gap-block); }
.rs-seealso .rs-related .rs-blockhead { margin-top: 0; }
.rs-newsstrip .rs-seealso__grid { margin-bottom: 0; }
.rs-gmina-cross { margin: var(--rs-s-4) 0; }
.rs-gmina-link { font-weight: 700; }

/* wyniki wyszukiwania w grupach */
.rs-sgroup { margin-bottom: var(--rs-gap-block); }
.rs-sgroup__more { margin: var(--rs-s-3) 0 0; }

@media (min-width: 480px) {
  .rs-nlead__media { aspect-ratio: 16 / 10; }
}

@media (min-width: 720px) {
  .rs-toplist { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--rs-s-5); }
  .rs-toplist .rs-nrow:nth-child(2) { border-top: 0; }
  .rs-nlead--photo .rs-nlead__body { padding: var(--rs-s-5); }
  .rs-tl__item { grid-template-columns: 5rem minmax(0, 1fr); }
  .rs-tl__list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--rs-s-5); }
  .rs-tl__list > :nth-child(2) { border-top: 0; padding-top: 0; }
  .rs-notices--n1 { grid-template-columns: minmax(0, 36rem); }
  .rs-notices--n2,
  .rs-notices--n3,
  .rs-notices--n4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--rs-s-4); }
  .rs-notices--n3 > :first-child { grid-column: 1 / -1; }
  .rs-gcols { display: grid; margin-inline: 0; padding: 0; overflow: visible; scroll-snap-type: none; }
  .rs-gcols--n1 { grid-template-columns: minmax(0, 28rem); }
  .rs-gcols--n2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rs-gcols--n3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rs-gcols--n4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rs-gcols--n6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rs-sportline-grid--n1 { grid-template-columns: minmax(0, 36rem); }
  .rs-sportline-grid--n2,
  .rs-sportline-grid--n3 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--rs-s-4); }
  .rs-sportline-grid--n3 > :first-child { grid-column: 1 / -1; }
  .rs-newstv--n2 { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--rs-s-6); }
  .rs-newstv--n2 > li:nth-child(2) { border-top: 0; }
  .rs-newshist--n2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--rs-s-4); }
  .rs-newshist--n1 { grid-template-columns: minmax(0, 36rem); }
  .rs-seealso--n2,
  .rs-seealso--n3 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--rs-s-4); }
  .rs-seealso--n3 > :first-child { grid-column: 1 / -1; }
}

@media (min-width: 960px) {
  .rs-newsnav__gminy { align-items: baseline; }
  .rs-newsnav .rs-tabs { flex-wrap: wrap; overflow: visible; }
  .rs-newstop { grid-template-columns: minmax(0, 1fr) var(--rs-aside); align-items: start; gap: var(--rs-layout-gap); }
  .rs-newstop--empty,
  .rs-newstop--solo { grid-template-columns: minmax(0, 1fr); }
  .rs-topgrid { grid-template-rows: auto minmax(0, 1fr); }
  .rs-newstop--solo .rs-topgrid:not(.rs-topgrid--solo) { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); grid-template-rows: none; align-items: stretch; column-gap: var(--rs-s-5); max-width: none; }
  .rs-toplist { grid-template-columns: minmax(0, 1fr); grid-auto-rows: 1fr; }
  .rs-toplist .rs-nrow:nth-child(2) { border-top: 1px solid var(--rs-line-2); }
  .rs-toplist .rs-nrow { display: flex; flex-direction: column; justify-content: center; }
  .rs-tl__list { grid-template-columns: minmax(0, 1fr); }
  .rs-tl__list > :nth-child(2) { border-top: 1px solid var(--rs-line); padding-top: var(--rs-s-3); }
  .rs-notices--n3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rs-notices--n3 > :first-child { grid-column: auto; }
  .rs-nlead__media { aspect-ratio: 16 / 9; }
  .rs-gcols--n3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--rs-s-4); }
  .rs-gcols--n6 { gap: var(--rs-s-4); }
  .rs-sportline-grid--n3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rs-sportline-grid--n3 > :first-child { grid-column: auto; }
  .rs-newstv--n3 { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: var(--rs-s-5); }
  .rs-newstv--n3 > li { border-top: 0; }
  .rs-narchive { grid-template-columns: minmax(0, 1fr) var(--rs-aside); gap: var(--rs-layout-gap); align-items: start; }
  .rs-narchive--solo { grid-template-columns: minmax(0, 56rem); }
  .rs-narchive__side .rs-related { padding: var(--rs-s-4) var(--rs-s-4) var(--rs-s-5); border: 1px solid var(--rs-line); border-radius: var(--rs-leaf); background: var(--rs-surface); }
  .rs-seealso--n3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rs-seealso--n3 > :first-child { grid-column: auto; }
}

@media (min-width: 1200px) {
  .rs-gcols--n4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--rs-s-4); }
  .rs-notices--n4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* === Moduł: Szlak === */
/* Północny Szlak Mazur: pas trasy (przystanki grupy), lista nagłówków na stronie głównej i strona szlaku; komórka „Dzień” w „Dziś w Szczytnie”. */
.rs-route {
  display: grid;
  align-content: start;
  gap: var(--rs-s-4);
  padding: var(--rs-s-4) var(--rs-s-5) var(--rs-s-5);
  border: 1px solid var(--rs-line);
  border-top: 3px solid var(--rs-ink);
  border-radius: var(--rs-leaf);
  background: var(--rs-surface);
}
.rs-route__list { display: grid; margin: 0; padding: 0; list-style: none; }
.rs-route__stop {
  position: relative;
  display: grid;
  grid-template-columns: 1.5rem minmax(0, 1fr);
  gap: var(--rs-s-3);
  padding-bottom: var(--rs-s-4);
}
.rs-route__stop:last-child { padding-bottom: 0; }
/* linia szlaku: pełna kreska od znacznika do znacznika (poziomo od 720 px, patrz niżej) */
.rs-route__stop::before {
  content: "";
  position: absolute;
  top: 1.75rem;
  bottom: 0.25rem;
  left: 0.6875rem;
  border-left: 3px solid var(--rs-forest);
}
.rs-route__stop:last-child::before { display: none; }
.rs-route__dot {
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  width: 1.5rem;
  height: 1.5rem;
  border: 3px solid var(--rs-forest);
  border-radius: 0;
  background: var(--rs-surface);
}
.rs-route__stop--here .rs-route__dot { border-color: var(--rs-accent-deep); background: var(--rs-accent); }
.rs-route__body { min-width: 0; }
.rs-route__name { margin: 0; font-family: var(--rs-font-display); font-size: 1.25rem; font-weight: 700; line-height: 1.25; }
.rs-route__badge {
  display: inline-block;
  margin-left: 0.25rem;
  padding: 0.1rem 0.65rem;
  border-radius: var(--rs-r-pill);
  background: var(--rs-accent);
  color: #fff;
  font-family: var(--rs-font-ui);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.5;
  text-transform: uppercase;
  vertical-align: 0.15em;
}
.rs-route__svc,
.rs-route__chips { display: flex; flex-wrap: wrap; gap: var(--rs-s-2); margin: var(--rs-s-2) 0 0; padding: 0; list-style: none; }
.rs-route__svc a,
.rs-route__own,
.rs-route__chip {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  padding: 0 1rem;
  border: 2px solid var(--rs-line-2);
  border-radius: var(--rs-r-pill);
  color: var(--rs-ink);
  font-size: 0.9375rem;
  font-weight: 700;
  text-decoration: none;
}
.rs-route__own { border-color: transparent; background: var(--rs-accent-soft); color: var(--rs-accent-deep); }
.rs-route__svc a:hover,
.rs-route__chip:hover { border-color: var(--rs-ink); color: var(--rs-ink); }
.rs-route__wide { padding-top: var(--rs-s-4); border-top: 1px solid var(--rs-line-2); }
.rs-route__wide-title { margin: 0; color: var(--rs-muted); font-family: var(--rs-font-ui); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }

/* sekcja na stronie głównej: trasa obok listy nagłówków, obie karty wypełniają wiersz (równe dolne krawędzie) */
.rs-trail__grid { display: grid; gap: var(--rs-s-4); }
.rs-trail__route { display: grid; }
.rs-trail__route > .rs-route { align-content: space-between; }
.rs-trail__news {
  display: flex;
  flex-direction: column;
  padding: var(--rs-s-4) var(--rs-s-5) var(--rs-s-5);
  border: 1px solid var(--rs-line);
  border-top: 3px solid var(--rs-ink);
  border-radius: var(--rs-leaf);
  background: var(--rs-surface);
}
.rs-trail__news-title { margin: 0 0 var(--rs-s-2); font-size: var(--rs-fs-h3); }
.rs-trail__list { display: flex; flex: 1; flex-direction: column; margin: 0; padding: 0; list-style: none; }
.rs-trail__item { position: relative; padding-block: var(--rs-s-3); border-top: 1px solid var(--rs-line); }
.rs-trail__item:first-child { border-top: 0; }
.rs-trail__meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.125rem 0.5rem; margin: 0 0 0.125rem; color: var(--rs-muted); font-size: 0.8125rem; }
.rs-trail__src { color: var(--rs-forest); font-weight: 700; }
.rs-trail__cat::before,
.rs-trail__when::before { content: "\00b7\00a0"; }
.rs-trail__title { margin: 0; font-size: 1.0625rem; line-height: 1.3; }
.rs-trail__title a { color: var(--rs-ink); text-decoration: none; }
.rs-trail__title a:hover { color: var(--rs-accent-deep); text-decoration: underline; text-underline-offset: 0.2em; }

/* strona szlaku: trasa nad układem portalu, w kolumnie głównej „czym jest szlak” i przystanki (nagłówek przystanku = gruba linia + nadtytuł + nazwa), w bocznej „Najnowsze na szlaku” */
.rs-trailpage__about { margin-bottom: var(--rs-gap-block); }
.rs-trailpage__stops > .rs-section__lead { margin-top: 0; }
.rs-trailpage__empty { max-width: var(--rs-read); margin: 0 0 var(--rs-s-5); color: var(--rs-ink-2); }
.rs-stopblock { margin-bottom: var(--rs-gap-block); }
.rs-stopblock__name { margin: 0 0 var(--rs-s-3); font-family: var(--rs-font-display); font-size: 1.5rem; line-height: 1.2; }
.rs-stopblock__lead { max-width: var(--rs-read); margin: calc(-1 * var(--rs-s-2)) 0 var(--rs-s-3); color: var(--rs-ink-2); }
.rs-stopblock__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--rs-s-3); }
.rs-svc {
  display: flex;
  flex-direction: column;
  gap: var(--rs-s-2);
  padding: var(--rs-s-4);
  border: 1px solid var(--rs-line);
  border-radius: var(--rs-leaf);
  background: var(--rs-surface);
}
.rs-svc__head { display: flex; flex-wrap: wrap; align-items: center; gap: var(--rs-s-2) var(--rs-s-3); }
.rs-svc__name { margin: 0; font-size: 1.25rem; line-height: 1.25; }
.rs-svc__name a { color: var(--rs-ink); text-decoration: none; }
.rs-svc__name a:hover { color: var(--rs-accent-deep); text-decoration: underline; text-underline-offset: 0.2em; }
.rs-svc__desc { margin: 0; color: var(--rs-ink-2); }
.rs-svc__list { display: grid; margin: var(--rs-s-2) 0 0; padding: 0; list-style: none; border-top: 2px solid var(--rs-ink); }
.rs-svc__item { display: grid; grid-template-columns: 5.25rem minmax(0, 1fr); align-items: baseline; column-gap: var(--rs-s-3); row-gap: 0.125rem; padding-block: var(--rs-s-3); border-bottom: 1px solid var(--rs-line); }
.rs-svc__when { grid-column: 1; grid-row: 1; color: var(--rs-muted); font-size: 0.8125rem; font-weight: 700; }
.rs-svc__title { grid-column: 2; grid-row: 1; color: var(--rs-ink); font-size: 1.0625rem; line-height: 1.3; text-decoration: none; }
.rs-svc__cat { grid-column: 2; color: var(--rs-muted); font-size: 0.8125rem; }
.rs-svc__title:hover { color: var(--rs-accent-deep); text-decoration: underline; text-underline-offset: 0.2em; }
.rs-svc__none { margin: 0; color: var(--rs-muted); font-size: 0.9375rem; }
.rs-svc__visit { margin: auto 0 0; padding-top: var(--rs-s-2); }
.rs-svc__visit a { display: inline-flex; align-items: center; min-height: 2.75rem; color: var(--rs-accent-deep); font-weight: 700; text-decoration: underline; text-underline-offset: 0.2em; }
.rs-svc__visit a:hover { color: var(--rs-accent); }
.rs-trailpage__updated { margin: var(--rs-s-4) 0 0; color: var(--rs-muted); font-size: 0.875rem; }
/* „Najnowsze na szlaku” w kolumnie bocznej: czas i źródło w jednym wierszu nad tytułem */
.rs-trailfeed__list { margin: 0; padding: 0; list-style: none; }
.rs-trailfeed__item { padding-block: var(--rs-s-3); border-top: 1px solid var(--rs-line); }
.rs-trailfeed__item:first-child { padding-top: 0; border-top: 0; }
.rs-trailfeed__meta { display: flex; flex-wrap: wrap; gap: 0.125rem 0.5rem; margin: 0 0 0.15rem; color: var(--rs-muted); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; }
.rs-trailfeed__src { color: var(--rs-forest); }
.rs-trailfeed__src::before { content: "·"; margin-right: 0.5rem; color: var(--rs-muted); }
.rs-trailfeed__title { margin: 0; font-size: 1rem; line-height: 1.3; }
.rs-trailfeed__title a { color: var(--rs-ink); text-decoration: none; }
.rs-trailfeed__title a:hover { color: var(--rs-accent-deep); text-decoration: underline; }

@media (min-width: 720px) {
  .rs-stopblock__grid--n2,
  .rs-stopblock__grid--n3 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--rs-s-4); }
  .rs-stopblock__grid--n3 > :last-child { grid-column: 1 / -1; }
  .rs-stopblock__grid--n1 { grid-template-columns: minmax(0, 36rem); }
  .rs-acc--stop > .rs-acc__head { align-items: flex-end; margin-bottom: var(--rs-s-3); padding-top: var(--rs-s-2); border-top: 1px solid var(--rs-line-2); }
  .rs-acc--stop .rs-acc__lead { display: block; flex: 1 1 auto; min-width: 0; }
  .rs-acc--stop.rs-acc--rs .rs-acc__kicker { display: block; color: var(--rs-accent-deep); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.12em; line-height: 1.3; text-transform: uppercase; }
  /* trasa poziomo: kropki w rzędzie, linia biegnie od kropki do kropki */
  .rs-trail .rs-route__list,
  .rs-trailpage .rs-route__list { grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: var(--rs-s-4); }
  .rs-trail .rs-route__stop,
  .rs-trailpage .rs-route__stop { grid-template-columns: minmax(0, 1fr); align-content: start; gap: var(--rs-s-2); padding-bottom: 0; }
  .rs-trail .rs-route__stop::before,
  .rs-trailpage .rs-route__stop::before { top: 0.6875rem; right: calc(-1 * var(--rs-s-4) - 0.25rem); bottom: auto; left: 1.75rem; border-top: 3px solid var(--rs-forest); border-left: 0; }
  .rs-trail .rs-route__stop:last-child::before,
  .rs-trailpage .rs-route__stop:last-child::before { display: none; }
}

@media (min-width: 960px) {
  .rs-trail__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--rs-s-5); }
  /* obok listy nagłówków trasa wraca do pionu */
  .rs-trail .rs-route__list { grid-auto-flow: row; grid-auto-columns: auto; gap: 0; }
  .rs-trail .rs-route__stop { grid-template-columns: 1.5rem minmax(0, 1fr); gap: var(--rs-s-3); padding-bottom: var(--rs-s-4); }
  .rs-trail .rs-route__stop:last-child { padding-bottom: 0; }
  .rs-trail .rs-route__stop::before { top: 1.75rem; right: auto; bottom: 0.25rem; left: 0.6875rem; border-top: 0; border-left: 3px solid var(--rs-forest); }
  .rs-trail .rs-route__stop:last-child::before { display: none; }
}

/* === Moduł: Formularze === */

/* Karta formularza: papier na tle sceny, duże cele dotykowe (min. 44 px), czytelne błędy przy polach, bez zasobów zewnętrznych */
.rs-form {
  position: relative;
  margin-block: var(--rs-s-6);
  padding: var(--rs-s-4);
  border: 1px solid var(--rs-line);
  border-top: 3px solid var(--rs-ink);
  border-radius: var(--rs-leaf);
  background: var(--rs-surface);
  scroll-margin-top: calc(var(--rs-header-h) + var(--rs-s-4));
}
.rs-form [hidden] { display: none; }
.rs-form__head { margin-bottom: var(--rs-s-4); }
.rs-form__title { margin: 0 0 var(--rs-s-2); font-size: var(--rs-fs-h2s); overflow-wrap: anywhere; }
.rs-form__lead { max-width: var(--rs-read); margin: 0; color: var(--rs-ink-2); }
.rs-form__notice {
  margin: 0 0 var(--rs-s-4);
  padding: var(--rs-s-3) var(--rs-s-4);
  border-left: 4px solid var(--rs-forest);
  border-radius: var(--rs-r-md);
  background: var(--rs-forest-soft);
  color: var(--rs-forest-deep);
  font-weight: 700;
}
.rs-form__notice.is-error { border-left-color: var(--rs-accent); background: var(--rs-accent-soft); color: var(--rs-accent-deep); }
.rs-form__notice:focus-visible { outline: 3px solid var(--rs-forest); outline-offset: 2px; }
.rs-form__again { margin: 0; }

/* pułapka na automaty: poza ekranem i poza kolejnością tabulatora; człowiek jej nie widzi */
.rs-form__hp label { display: block; width: 1px; height: 1px; overflow: hidden; }
.rs-form__hp input { width: 1px; height: 1px; padding: 0; border: 0; }
.rs-form__hp {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.rs-form__form { display: grid; gap: var(--rs-s-5); }
.rs-form__fields { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--rs-s-4); }
.rs-field { display: grid; align-content: start; gap: var(--rs-s-1); min-width: 0; }
.rs-field__label { font-weight: 700; line-height: 1.35; }
.rs-field__opt { color: var(--rs-muted); font-size: 0.875rem; font-weight: 400; }
.rs-field__control {
  display: block;
  width: 100%;
  min-height: 2.75rem;
  padding: 0.6rem 0.85rem;
  border: 2px solid var(--rs-line-2);
  border-radius: var(--rs-r-md);
  background: var(--rs-paper);
  color: var(--rs-ink);
  font: inherit;
  line-height: 1.4;
}
.rs-field__control:hover { border-color: var(--rs-ink-2); }
.rs-field__control:focus-visible { border-color: var(--rs-forest); outline: 3px solid var(--rs-forest); outline-offset: 1px; }
textarea.rs-field__control { min-height: 8rem; resize: vertical; }
select.rs-field__control { padding-right: 2rem; }
.rs-field.is-invalid .rs-field__control { border-color: var(--rs-accent); background: var(--rs-accent-soft); }
.rs-field__help { margin: 0; color: var(--rs-muted); font-size: 0.875rem; line-height: 1.4; }
.rs-field__count { margin: 0; color: var(--rs-muted); font-size: 0.8125rem; text-align: right; }
.rs-field__error { margin: 0; color: var(--rs-accent-deep); font-size: 0.9375rem; font-weight: 700; }

.rs-form__consent { display: grid; gap: var(--rs-s-2); padding-top: var(--rs-s-4); border-top: 1px solid var(--rs-line); }
.rs-form__clause { color: var(--rs-ink-2); font-size: 0.9375rem; }
.rs-form__clause summary { display: flex; align-items: center; min-height: 2.75rem; cursor: pointer; font-weight: 700; }
.rs-form__clause p { max-width: var(--rs-read); margin: 0 0 var(--rs-s-2); line-height: 1.5; }
.rs-check { position: relative; display: block; min-height: 2.75rem; padding-block: 0.4rem; cursor: pointer; line-height: 1.4; }
.rs-check__input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.rs-check__text { position: relative; display: block; padding-left: 2.25rem; }
.rs-check__text::before { content: ""; position: absolute; top: 0.05rem; left: 0; width: 1.5rem; height: 1.5rem; border: 2px solid var(--rs-ink-2); border-radius: 0.4rem; background: var(--rs-surface); }
.rs-check__input:checked + .rs-check__text::before { border-color: var(--rs-accent); background: var(--rs-accent); }
.rs-check__input:checked + .rs-check__text::after { content: ""; position: absolute; top: 0.2rem; left: 0.5rem; width: 0.4rem; height: 0.75rem; border: solid #fff; border-width: 0 3px 3px 0; transform: rotate(45deg); }
.rs-check__input:focus-visible + .rs-check__text::before { outline: 3px solid var(--rs-forest); outline-offset: 2px; }
.rs-form__consent.is-invalid .rs-check__text { color: var(--rs-accent-deep); font-weight: 700; }

.rs-form__actions { display: grid; }
.rs-form__submit { width: 100%; }
.rs-form__submit:disabled { opacity: 0.6; cursor: progress; }
.rs-form__status { min-height: 1.5rem; margin: 0; color: var(--rs-ink-2); font-weight: 700; }
.rs-form__status.is-error { color: var(--rs-accent-deep); }
.rs-form--compact { padding: var(--rs-s-4); }

/* strony: Kontakt (dwa formularze pod danymi), Wydarzenia (zgłoszenie pod kalendarzem), Pozdrowienia (opis obok formularza) */
.rs-contact__forms { display: grid; gap: var(--rs-s-2); margin-bottom: var(--rs-s-6); }
.rs-greetings__layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--rs-s-5); align-items: start; padding-bottom: var(--rs-s-6); }
.rs-greetings__form .rs-form { margin-block: 0; }
.rs-greetings__how { margin: 0; padding: var(--rs-s-4); border: 1px solid var(--rs-line); border-left: 4px solid var(--rs-forest); border-radius: var(--rs-leaf); background: var(--rs-forest-soft); color: var(--rs-forest-deep); }
.rs-greetings__how-title { margin: 0 0 var(--rs-s-4); font-size: var(--rs-fs-h3); }
.rs-steps { display: grid; gap: var(--rs-s-4); margin: 0; padding: 0; list-style: none; }
.rs-steps__item { display: flex; align-items: flex-start; gap: var(--rs-s-3); }
.rs-steps__num {
  display: grid;
  flex: none;
  place-items: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: var(--rs-r-pill);
  background: var(--rs-forest);
  color: var(--rs-on-dark);
  font-family: var(--rs-font-display);
  font-size: 1.125rem;
  font-weight: 700;
}
.rs-steps__body { min-width: 0; }
.rs-steps__title { margin: 0 0 0.15rem; font-size: 1.0625rem; }
.rs-steps__body p { margin: 0; color: var(--rs-forest-deep); line-height: 1.5; }
.rs-greetings__note { margin: var(--rs-s-4) 0 0; padding-top: var(--rs-s-3); border-top: 1px solid var(--rs-forest-mid); font-size: 0.9375rem; line-height: 1.5; }

@media (min-width: 480px) {
  .rs-form { padding: var(--rs-s-5); }
  .rs-form--compact { padding: var(--rs-s-5); }
}
@media (min-width: 720px) {
  .rs-form__fields { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--rs-s-4); }
  .rs-field { grid-column: 1 / -1; }
  .rs-field--half { grid-column: auto; }
  .rs-form__submit { width: auto; justify-self: start; }
}
@media (min-width: 960px) {
  .rs-greetings__layout { grid-template-columns: minmax(0, 22rem) minmax(0, 1fr); gap: var(--rs-s-6); }
}
@media (min-width: 960px) {
  .rs-trail .rs-route { grid-template-rows: minmax(0, 1fr) auto; }
  .rs-trail .rs-route__list { grid-auto-rows: 1fr; }
}

/* === Stopka: pas „Grupa Z Serca Mazur” (radia | telewizje | portale | o grupie): jedna szerokość, cztery równe kolumny === */
.rs-foot-network { margin-top: var(--rs-s-2); }
.rs-foot-network__body { display: grid; gap: var(--rs-s-2); padding-bottom: var(--rs-s-3); }
.rs-foot-network__label { margin: 0 0 var(--rs-s-1); color: var(--rs-on-dark-2); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.rs-foot-network__set ul { margin: 0; padding: 0; list-style: none; }
.rs-foot-network__set li a { display: inline-flex; align-items: center; min-height: 2.75rem; font-size: 0.9375rem; }
@media (min-width: 720px) {
  .rs-foot-network { border-top: 1px solid var(--rs-on-dark-line); padding-block: var(--rs-s-4) var(--rs-s-2); }
  .rs-foot-network > summary { justify-content: center; min-height: 2rem; margin-bottom: var(--rs-s-3); pointer-events: none; cursor: default; text-align: center; }
  .rs-foot-network > summary::after,
  .rs-foot-network[open] > summary::after { content: none; }
  .rs-foot-network__body { grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 0; padding-bottom: 0; }
  .rs-foot-network__set { display: flex; flex-direction: column; align-items: center; justify-content: center; padding-inline: var(--rs-s-3); text-align: center; }
  .rs-foot-network__set + .rs-foot-network__set { border-left: 1px solid var(--rs-on-dark-line); }
  .rs-foot-network__set li a { min-height: 2rem; }
  .rs-foot-note { display: block; }
}
.rs-form__clause summary { gap: var(--rs-s-2); list-style: none; }
.rs-form__clause summary::-webkit-details-marker { display: none; }
.rs-form__clause summary::before { content: "+"; display: inline-grid; place-items: center; flex: none; width: 1.5rem; height: 1.5rem; border: 2px solid var(--rs-ink-2); border-radius: var(--rs-r-pill); font-size: 1rem; line-height: 1; }
.rs-form__clause[open] summary::before { content: "-"; }

/* === Układ: kolumna boczna portalu (parts/aside.php) === */
/* Bloki to karty tego samego języka (liść, cień): reklama, spis albo „Zobacz też”, „Najnowsze”, wydarzenia, gminy. Na telefonie i tablecie kolumna spływa pod treść. */
.rs-aside__block { min-width: 0; padding: var(--rs-s-4) var(--rs-s-4) var(--rs-s-5); }
.rs-aside__block .rs-blockhead { margin-bottom: var(--rs-s-3); padding: 0 0 var(--rs-s-2); border-top: 0; border-bottom: 2px solid var(--rs-ink); font-size: 1.0625rem; }
.rs-aside__block--cta { background: var(--rs-accent-soft); box-shadow: none; }
.rs-aside__block--cta p { color: var(--rs-ink-2); font-size: 0.9375rem; }
.rs-aside__block--cta p:last-child { margin-bottom: 0; }
.rs-aside__mail { overflow-wrap: anywhere; font-weight: 700; }
.rs-aside__mail a { display: inline-flex; align-items: center; min-height: 2.75rem; }
.rs-aside__list { margin: 0; padding: 0; list-style: none; }
.rs-aside__list li { border-top: 1px solid var(--rs-line); }
.rs-aside__list li:first-child { border-top: 0; }
.rs-aside__list a { display: flex; align-items: center; min-height: 2.75rem; padding-block: 0.4rem; color: var(--rs-ink); font-weight: 700; line-height: 1.3; text-decoration: none; }
.rs-aside__list a:hover { color: var(--rs-accent-deep); text-decoration: underline; }
.rs-aside__events { display: grid; gap: var(--rs-s-3); }
.rs-layout__aside .rs-event { padding: var(--rs-s-3); border: 1px solid var(--rs-line); border-radius: var(--rs-r-lg); background: var(--rs-paper); box-shadow: none; }
.rs-layout__aside .rs-event__title { font-size: 1.0625rem; }
.rs-layout__aside .rs-date { width: 3.25rem; }
.rs-layout__aside .rs-event { gap: var(--rs-s-3); }
.rs-aside__more { margin: var(--rs-s-3) 0 0; font-size: 0.9375rem; font-weight: 700; }
.rs-aside__more a { display: inline-flex; align-items: center; min-height: 2.75rem; }
.rs-aside__chips { display: flex; flex-wrap: wrap; gap: var(--rs-s-2); margin: 0; padding: 0; list-style: none; }
.rs-layout__aside .rs-promo--sidebar { max-width: none; margin-block: 0; }
.rs-layout__aside .rs-promo__label,
.rs-layout__aside .rs-promo__link { max-width: none; }

@media (min-width: 960px) {
  .rs-layout { grid-template-columns: minmax(0, 1fr) var(--rs-aside); }
  .rs-layout--solo { grid-template-columns: minmax(0, 46rem); }
}

/* od 960 px krótsza kolumna układu (główna albo boczna) jest przyklejona w całości i jedzie za dłuższą; zasady i wyjątki: sekcja „układ: krótsza kolumna przyklejona” na końcu pliku (klasa .rs-pair) */

/* === Składane sekcje na telefonie (.rs-acc) i „pokaż więcej” === */
.rs-acc { border-top: 1px solid var(--rs-line-2); }
.rs-acc__head { display: flex; align-items: center; gap: var(--rs-s-3); min-height: 3.25rem; padding-block: var(--rs-s-2); cursor: pointer; list-style: none; }
.rs-acc__head::-webkit-details-marker { display: none; }
.rs-acc__title { margin: 0; flex: 1 1 auto; font-size: var(--rs-fs-h3); line-height: 1.2; }
.rs-acc__meta { color: var(--rs-muted); font-size: 0.875rem; }
.rs-acc__chev { flex: none; width: 0.6rem; height: 0.6rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform 0.15s var(--rs-ease); }
.rs-acc[open] > .rs-acc__head .rs-acc__chev { transform: rotate(-135deg); }
.rs-acc__body { padding-bottom: var(--rs-s-4); }
.rs-more-btn { display: inline-flex; align-items: center; min-height: 2.75rem; margin-top: var(--rs-s-2); padding: 0 var(--rs-s-4); border: 1px solid var(--rs-line-2); border-radius: var(--rs-r-pill); background: transparent; color: var(--rs-ink); font: inherit; font-weight: 700; cursor: pointer; }
@media (min-width: 720px) {
  .rs-acc { border-top: 0; }
  .rs-acc__head { min-height: 0; padding-block: 0; cursor: default; pointer-events: none; }
  .rs-acc__chev { display: none; }
  .rs-acc__body { padding-bottom: 0; }
}

/* === Strona główna: front portalu === */
/* Kolejność: ticker „Teraz w serwisie”, FRONT (pakiet wiadomości + kolumna boczna z „Teraz na antenie”, „Dziś w Szczytnie”, „Najnowsze”), pas skrótów, reklama, pasy modułów
   (wydarzenia | sport, scena TV, szlak | historia, ciekawostki | Topka). Telefon: pakiet wiadomości i „Teraz na antenie” od razu, pasy poniżej to panele jednej harmonijki
   (.rs-acc, grupa „home”); komputer: wszystko rozwinięte, moduły o różnej wadze w dwóch kolumnach. */

/* znacznik LIVE: kropka przed podpisem (jedyny ruch: powolny pierścień tylko podczas odsłuchu) */
.rs-livedot { position: relative; display: inline-block; flex: none; width: 0.5rem; height: 0.5rem; margin-right: 0.5rem; border-radius: 50%; background: var(--rs-accent); }

/* --- ticker „Teraz w serwisie”: pozycje różnych rodzajów z etykietą typu i czasem; telefon = jedna pozycja i „Więcej”, komputer = kolumny z cienką linią */
.rs-strip-band { background: var(--rs-sand); border-bottom: 1px solid var(--rs-line); }
.rs-strip { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: var(--rs-s-3); align-items: center; padding-block: var(--rs-s-2); }
.rs-strip__label { display: flex; grid-column: 1 / -1; align-items: center; margin: 0 0 0.125rem; color: var(--rs-accent-deep); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.12em; line-height: 1.3; text-transform: uppercase; }
.rs-strip__list { display: grid; margin: 0; padding: 0; list-style: none; }
.rs-strip__item:nth-child(n + 2) { display: none; }
.rs-strip__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.125rem 0.5rem; margin: 0 0 0.125rem; color: var(--rs-muted); font-size: 0.75rem; font-variant-numeric: tabular-nums; line-height: 1.4; }
.rs-strip__title { display: -webkit-box; margin: 0; overflow: hidden; font-family: var(--rs-font-display); font-size: 1rem; font-weight: 700; line-height: 1.25; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; }
.rs-strip__title a { color: var(--rs-ink); text-decoration: none; }
.rs-strip__title a:hover { color: var(--rs-accent-deep); text-decoration: underline; text-underline-offset: 0.2em; }
.rs-strip__more { display: inline-flex; align-items: center; min-height: 2.75rem; color: var(--rs-accent-deep); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-decoration: none; text-transform: uppercase; white-space: nowrap; }
.rs-strip__more::after { content: "\2192"; margin-left: 0.35rem; font-size: 1rem; letter-spacing: 0; }

/* --- front: pakiet wiadomości (lead + cztery drugorzędne) i kolumna boczna */
.rs-front { display: grid; gap: var(--rs-s-4); padding-block: var(--rs-s-4) var(--rs-s-3); }
.rs-front__main,
.rs-front__side { min-width: 0; }
.rs-front__side { display: flex; flex-direction: column; gap: var(--rs-s-4); }
.rs-front__lead { margin-bottom: var(--rs-s-3); }
.rs-front__lead .rs-nlead { height: auto; }
.rs-front__top { display: grid; grid-template-columns: minmax(0, 1fr); }
.rs-front__top .rs-nrow:first-child { border-top: 0; }
.rs-front__latest { display: none; }
.rs-front__shortcuts { padding-block: var(--rs-s-3) var(--rs-s-4); }
.rs-front__shortcuts:not(:has(*)) { display: none; }

/* moduł z obramowaniem (Dziś, Najnowsze w kolumnie bocznej) */
.rs-mod { min-width: 0; padding: var(--rs-s-4); }
.rs-mod > .rs-blockhead { margin-bottom: var(--rs-s-3); padding: 0 0 var(--rs-s-2); border-top: 0; border-bottom: 2px solid var(--rs-ink); font-size: 1.0625rem; }

/* „Teraz na antenie”: ciemny moduł z dużym przyciskiem odsłuchu */
.rs-onair { padding: var(--rs-s-4); border-radius: var(--rs-leaf); background: var(--rs-forest-deep); color: var(--rs-on-dark); }
.rs-onair__head { display: flex; align-items: center; margin: 0 0 var(--rs-s-3); color: var(--rs-sun); font-family: var(--rs-font-ui); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.12em; line-height: 1.3; text-transform: uppercase; }
.rs-onair .rs-livedot { background: var(--rs-sun); }
.rs-onair__now-row { display: flex; align-items: center; gap: var(--rs-s-3); min-width: 0; }
.rs-onair__text { min-width: 0; }
.rs-onair__eq { display: flex; align-items: flex-end; gap: 3px; flex: none; width: 1.5rem; height: 1.5rem; color: var(--rs-sun); }
.rs-onair__eq i { display: block; flex: 1; height: 100%; border-radius: 2px; background: currentColor; transform: scaleY(0.25); transform-origin: bottom; }
.rs-onair__eq i:nth-child(2n) { transform: scaleY(0.55); }
.rs-onair__eq i:nth-child(3n) { transform: scaleY(0.4); }
.rs-onair__label { margin: 0 0 0.125rem; color: var(--rs-on-dark-2); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.rs-onair__now { margin: 0; font-family: var(--rs-font-display); font-size: 1.25rem; font-weight: 700; line-height: 1.2; overflow-wrap: anywhere; }
.rs-onair__now.is-empty { display: none; }
.rs-onair__now:not(.is-empty) + .rs-onair__idle { display: none; }
.rs-onair__idle { margin: 0; color: var(--rs-on-dark-2); font-size: 0.875rem; line-height: 1.4; }
.rs-onair__cta { margin: var(--rs-s-3) 0 0; }
.rs-onair__cta .rs-btn { width: 100%; }
.rs-onair .rs-nownext--dock { margin-top: var(--rs-s-3); padding-top: var(--rs-s-3); border-top: 1px solid var(--rs-on-dark-line); gap: var(--rs-s-3); }
.rs-onair .rs-nownext__item { padding-left: var(--rs-s-3); border-left: 3px solid var(--rs-on-dark-line-2); }
.rs-onair .rs-nownext__item--now { border-left-color: var(--rs-sun); }
.rs-onair .rs-nownext__label { color: var(--rs-on-dark-2); font-size: 0.6875rem; letter-spacing: 0.1em; }
.rs-onair .rs-nownext__title { margin: 0; font-size: 1rem; }
.rs-onair .rs-nownext__title a { color: #fff; text-decoration: none; }
.rs-onair .rs-nownext__title a:hover { text-decoration: underline; }
.rs-onair .rs-nownext__meta { margin: 0.125rem 0 0; color: var(--rs-on-dark-2); font-size: 0.875rem; font-variant-numeric: tabular-nums; }
.rs-onair__source { margin: var(--rs-s-3) 0 0; color: var(--rs-on-dark-2); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.rs-onair .rs-promo--line { margin: var(--rs-s-2) 0 0; padding-top: var(--rs-s-2); border-top: 1px solid var(--rs-on-dark-line); color: var(--rs-on-dark-2); font-size: 0.875rem; }
.rs-onair .rs-promo--line .rs-promo__label { border-color: var(--rs-on-dark-line-2); color: var(--rs-on-dark); }
.rs-onair .rs-promo__name { color: #fff; }
.rs-onair :focus-visible { outline-color: var(--rs-sun); }

/* „Dziś w Szczytnie”: gęsta lista pozycji (dzień, wydarzenie, mecz, audycja, ciekawostka) */
.rs-today__grid { margin: 0; padding: 0; list-style: none; }
.rs-today__cell { position: relative; padding-block: var(--rs-s-3); border-top: 1px solid var(--rs-line); }
.rs-today__cell:first-child { padding-top: 0; border-top: 0; }
.rs-today__cell:last-child { padding-bottom: 0; }
.rs-today__label { display: flex; align-items: center; gap: 0.4rem; margin: 0 0 0.125rem; color: var(--rs-accent-deep); }
.rs-today__icon { display: inline-grid; flex: none; place-items: center; width: 1rem; height: 1rem; }
.rs-today__icon svg { width: 1rem; height: 1rem; }
.rs-today__title { margin: 0; font-size: 1.0625rem; line-height: 1.25; }
.rs-today__meta,
.rs-today__text { margin: 0.125rem 0 0; color: var(--rs-ink-2); font-size: 0.875rem; font-variant-numeric: tabular-nums; }

/* pas skrótów: telefon = przewijany rząd, komputer = wiersz komórek w stałej liczbie kolumn */
.rs-shortcuts--band { display: block; }
.rs-shortcuts--band .rs-shortcuts__title { margin-bottom: var(--rs-s-2); }
.rs-shortcuts--band .rs-shortcuts__list { display: flex; flex-wrap: nowrap; margin-inline: calc(-1 * var(--rs-gutter)); padding: 0 var(--rs-gutter) var(--rs-s-1); overflow-x: auto; overscroll-behavior-inline: contain; scroll-padding-inline: var(--rs-gutter); scroll-snap-type: x proximity; }
.rs-shortcuts--band .rs-shortcuts__list > li { flex: none; scroll-snap-align: start; }

/* --- pasy modułów: dwa moduły obok siebie (jeden, gdy drugi nie ma danych), wewnątrz bez własnego kontenera */
.rs-hband:not(:has(> *)) { display: none; }
.rs-hband > .rs-scene { min-width: 0; background: transparent; }
.rs-hband .rs-wrap { padding-inline: 0; }
.rs-hsec { padding-block: 0; }
.rs-hsec > .rs-wrap { padding-block: 0; }
.rs-partners { padding-block: var(--rs-s-3); }
.rs-home > .rs-hsec:last-child { padding-bottom: var(--rs-s-6); }

/* --- nagłówek sekcji i wspólne elementy panelu (.rs-acc--home): telefon = wiersz z tytułem, podsumowaniem i strzałką; komputer = gruba linia, nadtytuł, tytuł */
.rs-acc--home { border-top: 1px solid var(--rs-line-2); }
.rs-acc--home > .rs-acc__head { min-height: 3.5rem; padding-block: var(--rs-s-1); }
.rs-acc--home .rs-acc__lead { flex: 1 1 auto; min-width: 0; }
.rs-acc--home .rs-acc__kicker { display: none; }
.rs-acc--home .rs-acc__title { font-size: 1.1875rem; }
.rs-acc--home .rs-acc__meta { padding: 0.2rem 0.65rem; border-radius: var(--rs-r-pill); background: var(--rs-surface-2); color: var(--rs-ink-2); font-size: 0.8125rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.rs-acc--home > .rs-acc__body { padding-bottom: var(--rs-s-5); }
.rs-scene--stage .rs-acc--home { border-top-color: var(--rs-on-dark-line); }
.rs-scene--stage .rs-acc--home .rs-acc__meta { background: rgba(243, 239, 230, 0.14); color: var(--rs-on-dark); }
.rs-hmore { display: flex; flex-wrap: wrap; align-items: center; gap: 0 var(--rs-s-5); margin: var(--rs-s-3) 0 0; }
.rs-hmore a { display: inline-flex; align-items: center; min-height: 2.75rem; color: var(--rs-accent-deep); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-decoration: none; text-transform: uppercase; }
.rs-hmore a::after { content: "\2192"; margin-left: 0.5rem; font-size: 1rem; letter-spacing: 0; }
.rs-hmore a:hover { color: var(--rs-ink); text-decoration: underline; text-underline-offset: 0.25em; }
.rs-hmore .rs-hmore__alt::after { content: none; }
.rs-hmore .rs-hmore__alt { color: var(--rs-ink-2); }
.rs-scene--stage .rs-hmore a { color: var(--rs-on-dark); }
.rs-scene--stage .rs-hmore a::after { color: var(--rs-sun); }

/* przycisk „Pokaż więcej” (dodaje site.js): atrybut hidden ma wygrać z display komponentu; na ciemnej scenie jasny obrys */
.rs-more-btn[hidden],
[data-rs-more] > [hidden] { display: none; }
.rs-scene--stage .rs-more-btn { border-color: var(--rs-on-dark-line-2); color: var(--rs-on-dark); }

/* --- telefon: drugorzędne elementy sekcji są ukryte (pełna treść na stronie docelowej), listy krótsze, rzędy przewijane */
.rs-events-home .rs-event { padding: var(--rs-s-3) 0; border: 0; border-top: 1px solid var(--rs-line-2); border-radius: 0; background: none; box-shadow: none; }
.rs-events-home .rs-event:nth-child(n + 5) { display: none; }
.rs-events-home__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
.rs-events-home .rs-event .rs-card__meta > :not(.rs-chip--solid) { display: none; }
.rs-events-home .rs-event .rs-card__meta:not(:has(.rs-chip--solid)) { display: none; }
.rs-events-home .rs-date { width: 3.25rem; padding: 0 var(--rs-s-2) 0 0; border-radius: 0; border-right: 3px solid var(--rs-accent-soft); background: none; color: inherit; }
.rs-events-home .rs-date__day { font-size: 1.5rem; }
.rs-events-home .rs-date__mon { color: var(--rs-accent-deep); }
.rs-events-home .rs-date__dow { color: var(--rs-muted); }
.rs-events-home .rs-event.is-today .rs-date { border-right-color: var(--rs-accent); background: none; color: inherit; }
.rs-events-home .rs-event.is-today .rs-date__dow { color: var(--rs-muted); }
.rs-events-home .rs-event__title { font-size: 1.0625rem; }
.rs-tv-stage--home .rs-tv-lead__text,
.rs-tv-stage--home .rs-tv-reels .rs-section__lead { display: none; }
.rs-tv-stage--home .rs-tv-reels .rs-section__head { margin-bottom: var(--rs-s-3); }
.rs-tv-stage--home .rs-tv-lead__title { font-size: 1.375rem; }
.rs-trail .rs-section__lead,
.rs-trail__route,
.rs-history .rs-section__lead,
.rs-history .rs-tabs,
.rs-curiosities .rs-section__lead,
.rs-brief__text { display: none; }
.rs-story__text { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; }
.rs-history__grid { margin-bottom: 0; }

@media (min-width: 480px) {
  .rs-strip__title { font-size: 1.0625rem; }
}

@media (min-width: 720px) {
  .rs-front { padding-block: var(--rs-s-5) var(--rs-s-4); }
  .rs-front__top { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--rs-s-5); }
  .rs-front__top .rs-nrow:nth-child(2) { border-top: 0; }
  .rs-front__top--n1 { grid-template-columns: minmax(0, 1fr); }
  .rs-front__side { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
  .rs-front__side > .rs-front__latest { display: block; grid-column: 1 / -1; }
  .rs-front__shortcuts { padding-block: var(--rs-s-4) var(--rs-s-5); }
  .rs-partners { padding-block: var(--rs-s-4); }
  .rs-home > .rs-hsec:last-child { padding-bottom: clamp(2rem, 4vw, 3rem); }

  .rs-strip { grid-template-columns: 9.5rem minmax(0, 1fr); column-gap: var(--rs-s-4); padding-block: var(--rs-s-3); }
  .rs-strip__label { grid-column: auto; margin: 0; }
  .rs-strip__list { grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); }
  .rs-strip__item:nth-child(n + 2) { display: block; }
  .rs-strip__item { padding-inline: var(--rs-s-4); border-left: 1px solid var(--rs-line-2); }
  .rs-strip__item:first-child { padding-left: 0; border-left: 0; }
  .rs-strip__more { display: none; }

  .rs-shortcuts--band { display: flex; align-items: center; gap: var(--rs-s-4); padding-block: var(--rs-s-2); border-block: 1px solid var(--rs-line-2); }
  .rs-shortcuts--band .rs-shortcuts__title { flex: none; margin: 0; }
  .rs-shortcuts--band .rs-shortcuts__list { flex: 1; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: var(--rs-s-2); margin: 0; padding: 0; overflow: visible; }
  .rs-shortcuts--band .rs-shortcuts__link { width: 100%; justify-content: center; }

  .rs-hband { display: grid; grid-template-columns: minmax(0, 1fr); column-gap: var(--rs-s-6); align-items: start; padding-block: var(--rs-s-2) var(--rs-s-4); }
  .rs-hband:has(> :nth-child(2)) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rs-hband:has(> :nth-child(3)) > :last-child { grid-column: 1 / -1; }
  .rs-hband > .rs-hsec { padding-block: var(--rs-s-2) 0; }

  .rs-acc--home { border-top: 0; }
  .rs-acc--home > .rs-acc__head { display: block; min-height: 0; margin-bottom: var(--rs-s-4); padding: var(--rs-s-2) 0 0; border-top: var(--rs-rule); }
  .rs-acc--home .rs-acc__kicker { display: block; margin: 0; color: var(--rs-accent-deep); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.12em; line-height: 1.3; text-transform: uppercase; }
  .rs-acc--home .rs-acc__title { font-size: var(--rs-fs-h2s); }
  .rs-acc--home .rs-acc__meta { display: none; }
  .rs-acc--home > .rs-acc__body { padding-bottom: 0; }
  .rs-scene--stage .rs-acc--home > .rs-acc__head { border-top-color: var(--rs-on-dark-line-2); }
  .rs-scene--stage .rs-acc--home .rs-acc__kicker { color: var(--rs-sun); }
  .rs-hmore { margin-top: var(--rs-s-4); }

  .rs-events-home .rs-event:nth-child(n + 5) { display: flex; }
  .rs-events-home .rs-event .rs-card__meta > :not(.rs-chip--solid) { display: inline-flex; }
  .rs-events-home .rs-event .rs-card__meta:not(:has(.rs-chip--solid)) { display: flex; }
  .rs-events-home .rs-date { width: 3.75rem; padding-right: var(--rs-s-3); }
  .rs-events-home .rs-date__day { font-size: 1.75rem; }
  .rs-events-home .rs-event__title { font-size: var(--rs-fs-h3); }
  .rs-tv-stage--home .rs-tv-lead__text,
  .rs-tv-stage--home .rs-tv-reels .rs-section__lead { display: block; }
  .rs-tv-stage--home .rs-tv-lead__title { font-size: var(--rs-fs-h2); }
  .rs-trail .rs-section__lead,
  .rs-history .rs-section__lead,
  .rs-curiosities .rs-section__lead { display: block; }
  .rs-trail__route { display: grid; }
  .rs-history .rs-tabs { display: flex; }
  .rs-brief__text { display: -webkit-box; }
  .rs-story__text { display: block; overflow: visible; }
  .rs-history__grid { margin-bottom: var(--rs-s-4); }
  .rs-top-home__text > p:first-child { font-family: var(--rs-font-display); font-size: 1.25rem; line-height: 1.35; }

  /* moduły w kolumnie pasa (obok siebie z innym modułem): wewnętrzne układy jedną kolumną */
  .rs-hband:has(> :nth-child(2)) .rs-history__grid,
  .rs-hband:has(> :nth-child(2)) .rs-top-home__grid,
  .rs-hband:has(> :nth-child(2)) .rs-trivia { grid-template-columns: minmax(0, 1fr); }
  .rs-hband:has(> :nth-child(2)) .rs-trivia--n3 > li:first-child { grid-column: auto; }
  .rs-hband:has(> :nth-child(2)) .rs-story { padding: var(--rs-s-4); }
  .rs-hband:has(> :nth-child(2)) .rs-story__title { font-size: 1.5rem; }
  .rs-hband:has(> :nth-child(2)) .rs-history__list > li:nth-child(n + 3),
  .rs-hband:has(> :nth-child(2)) .rs-brief__text { display: none; }
}

@media (min-width: 960px) {
  .rs-front { grid-template-columns: minmax(0, 1fr) var(--rs-aside); gap: var(--rs-layout-gap); align-items: start; }
  .rs-front__side { display: flex; }
  .rs-front__top { column-gap: var(--rs-s-5); }
  .rs-hband { column-gap: var(--rs-s-6); }
  .rs-hband:has(> :nth-child(3)) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rs-hband:has(> :nth-child(3)) > :last-child { grid-column: auto; }
}

@media (min-width: 1200px) {
  .rs-strip { grid-template-columns: 11rem minmax(0, 1fr); }
}

/* --- front: „Z gmin powiatu” pod pakietem wiadomości (jeden wiersz na gminę: gmina, najnowszy wpis, kiedy); telefon: ukryte */
.rs-front__gminy { display: none; }
.rs-front__gminylist { margin: 0; padding: 0; list-style: none; }
.rs-front__gminyitem { display: grid; grid-template-columns: 9rem minmax(0, 1fr) auto; align-items: baseline; gap: var(--rs-s-3); padding-block: 0.6rem; border-top: 1px solid var(--rs-line); }
.rs-front__gminyitem:first-child { border-top: 0; }
.rs-front__gminyitem .rs-chip { justify-self: start; }
.rs-front__gminytitle { margin: 0; font-size: 1.0625rem; line-height: 1.3; }
.rs-front__gminytitle a { color: var(--rs-ink); text-decoration: none; }
.rs-front__gminytitle a:hover { color: var(--rs-accent-deep); text-decoration: underline; }
.rs-front__gminywhen { color: var(--rs-muted); font-size: 0.8125rem; white-space: nowrap; }
@media (min-width: 720px) {
  .rs-front__gminy { display: block; margin-top: var(--rs-s-5); }
}

/* --- sport na stronie głównej: tablica wyników w skrócie (następny mecz, ostatni wynik z formą, mini-tabela) */
.rs-sport-home__club { margin: 0 0 var(--rs-s-3); font-weight: 700; }
.rs-sport-home__club a { color: var(--rs-ink); text-decoration: none; }
.rs-sport-home__club a:hover { color: var(--rs-accent-deep); text-decoration: underline; }
.rs-sport-home__league { margin-left: 0.5rem; color: var(--rs-muted); font-size: 0.875rem; font-weight: 400; }
.rs-hscore { position: relative; margin-bottom: var(--rs-s-3); padding: var(--rs-s-3) var(--rs-s-4); border: 1px solid var(--rs-line); border-radius: var(--rs-leaf); background: var(--rs-surface); }
.rs-hscore--next { border-color: var(--rs-forest-deep); background: var(--rs-forest-deep); color: var(--rs-on-dark); }
.rs-hscore__label { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin: 0 0 0.25rem; color: var(--rs-accent-deep); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.rs-hscore--next .rs-hscore__label { color: var(--rs-sun); }
.rs-hscore__teams { margin: 0; font-size: 1.1875rem; line-height: 1.25; }
.rs-hscore__teams a { color: var(--rs-ink); text-decoration: none; }
.rs-hscore--next .rs-hscore__teams a { color: #fff; }
.rs-hscore__meta { margin: 0.25rem 0 0; color: var(--rs-ink-2); font-size: 0.875rem; }
.rs-hscore--next .rs-hscore__meta { color: var(--rs-on-dark-2); }
.rs-hscore__form { display: flex; flex-wrap: wrap; align-items: center; gap: var(--rs-s-2); margin-top: var(--rs-s-2); }
.rs-hscore__table { margin-top: var(--rs-s-4); }
.rs-hscore__table .rs-sport-panel__title { margin: 0 0 var(--rs-s-2); font-size: 1rem; }

/* ruch: jedyny pulsujący element to kropka LIVE podczas odsłuchu (spokojny pierścień co 2,4 s) */
@media (prefers-reduced-motion: no-preference) {
  .rs-is-playing .rs-onair__head .rs-livedot::after { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 1px solid var(--rs-sun); animation: rs-livering 2.4s ease-out infinite; }
  @keyframes rs-livering { from { opacity: 0.9; transform: scale(1); } to { opacity: 0; transform: scale(3); } }
}

/* === Mobile: skracanie stron === */
/* Strony poza główną są na telefonie krótsze: sekcje wtórne to składane panele (.rs-acc, jedna otwarta w grupie), długie listy mają „Pokaż więcej”, równorzędne karty
   leżą w przewijanym rzędzie. Zasada: od 720 px układ jest BEZ ZMIAN (panele są zawsze rozwinięte, a nagłówek panelu zachowuje klasy dawnego nagłówka sekcji), dlatego
   wszystko, co dotyczy tylko telefonu, stoi w bloku „not all and (min-width: 720px)” (= poniżej 720 px; próg z listy RS_BREAKPOINTS) i nie wymaga przywracania wartości
   na komputerze. Znacznik --rs oznacza panele z tej sekcji; warianty: --section (pas sceny z nagłówkiem sekcji), --aside (blok kolumny bocznej), --block (nagłówek
   .rs-blockhead w kolumnie treści), --day (dzień programu), --sport (sekcja klubu), --legal (sekcja tekstu wg nagłówka H2). */
.rs-acc__morewrap { margin: var(--rs-s-3) 0 0; }
.rs-acc--rs > .rs-acc__head > .rs-blockhead { flex: 1 1 auto; }

/* sekcje tekstu (--legal): treść panelu układa się jak dawny ciąg elementów .rs-prose, a nagłówek H2 zachowuje marginesy (summary jako blok przepuszcza je jak wcześniej) */
/* :where zachowuje siłę selektora dawnego „.rs-prose > * + *”, więc reguły typu „.rs-prose h3” wygrywają tak jak wcześniej */
:where(.rs-acc--legal) > .rs-acc__body > * { margin-top: var(--rs-s-4); }
.rs-prose > .rs-acc--legal:first-child > .rs-acc__head > h2 { margin-top: 0; }

@media (min-width: 720px) {
  .rs-acc--legal > .rs-acc__head { display: block; }
  .rs-acc--rs > .rs-acc__head .rs-acc__meta { display: none; }
  .rs-acc--section { position: relative; }
  .rs-acc--section > .rs-acc__head { align-items: flex-end; }
  .rs-acc--rs > .rs-acc__head.rs-section__head { padding-top: var(--rs-s-2); }
  .rs-acc--more > .rs-acc__head { min-height: 2.75rem; }
  .rs-acc--section > .rs-acc__body > .rs-acc__morewrap { position: absolute; top: 0; right: 0; margin: 0; }
}

@media not all and (min-width: 720px) {
  .rs-acc--rs > .rs-acc__head { margin-bottom: 0; gap: var(--rs-s-3); border-top: 0; }
  .rs-acc--rs > .rs-acc__head > :is(h2, h3) { flex: 1 1 auto; min-width: 0; margin: 0; padding: 0; border: 0; font-size: 1.1875rem; line-height: 1.2; }
  .rs-acc--rs .rs-acc__meta { flex: none; padding: 0.15rem 0.6rem; border-radius: var(--rs-r-pill); background: var(--rs-surface-2); color: var(--rs-ink-2); font-size: 0.8125rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
  .rs-acc--rs > .rs-acc__body { padding-bottom: var(--rs-s-4); }
  .rs-acc--rs .rs-section__lead { margin-top: 0; margin-bottom: var(--rs-s-4); }
  .rs-scene--stage .rs-acc--rs { border-top-color: var(--rs-on-dark-line); }
  .rs-scene--stage .rs-acc--rs .rs-acc__meta { background: rgba(243, 239, 230, 0.14); color: var(--rs-on-dark); }
  /* pas sceny ze składanym panelem: bez zapasu nad i pod wierszem, bez fali (pasy są cienkimi wierszami) */
  .rs-scene--acc { padding-block: 0; }

  /* kolumna boczna: bloki to zwarte karty-wiersze (spis nagłówków jest zbędny, bo nagłówki tekstu są panelami) */
  .rs-layout__aside { gap: var(--rs-s-2); }
  .rs-acc--aside { padding: 0 var(--rs-s-4); border-top: 0; }
  .rs-acc--aside > .rs-acc__body { padding-bottom: var(--rs-s-4); }
  .rs-aside__toc { display: none; }

  /* tekst dzielony na sekcje: wiersze przylegają do siebie */
  .rs-prose > .rs-acc--legal { margin-top: 0; }
}

/* przewijane rzędy zamiast pionowych stosów: równorzędne kafle „bąbelków” (pas odsyłaczy na dole hubów, sposoby współpracy) - natywny scroll-snap, widać początek następnej karty */
@media not all and (min-width: 720px) {
  .rs-bubbles { display: flex; gap: var(--rs-s-3); margin-inline: calc(-1 * var(--rs-gutter)); padding: 0 var(--rs-gutter) var(--rs-s-2); overflow-x: auto; overscroll-behavior-inline: contain; scroll-padding-inline: var(--rs-gutter); scroll-snap-type: x proximity; }
  .rs-bubbles > li { flex: 0 0 min(78%, 17rem); min-width: 0; scroll-snap-align: start; }
  .rs-guide-cross { margin-top: var(--rs-s-5); }
}

/* pas „Powiadomienia” na hubie wiadomości: bez dolnego zapasu na telefonie */
@media not all and (min-width: 720px) {
  .rs-newsnotices { padding-bottom: var(--rs-s-2); }
}

/* formularz jako panel (parts/form.php, argument acc): nagłówek panelu to tytuł formularza, lead trafia na początek treści (odstępy jak w dawnym <header>) */
.rs-form--acc .rs-form__head { margin-bottom: 0; }
.rs-form--acc .rs-form__lead { margin-bottom: var(--rs-s-4); }
.rs-form--nolead .rs-form__head { margin-bottom: var(--rs-s-2); }
@media not all and (min-width: 720px) {
  .rs-form--acc { margin-block: var(--rs-s-2); padding-block: 0; }
  .rs-form--acc > .rs-acc { border-top: 0; }
  .rs-form--acc .rs-form__head { margin-bottom: 0; }
  .rs-form--acc > .rs-acc > .rs-acc__body { padding-bottom: var(--rs-s-4); }
}

/* dni programu (--day): karta dnia zachowuje górną ramkę (dawne .rs-day miało obramowanie 2 px, a .rs-acc zerowało je od 720 px); na telefonie cienkie wiersze */
.rs-acc.rs-acc--day { border-top: 1px solid var(--rs-line-2); }
.rs-acc.rs-acc--day.is-today { border-top: 3px solid var(--rs-accent); }
@media (min-width: 720px) {
  .rs-acc.rs-acc--day:not(.is-today) { border-top: var(--rs-rule); }
}
@media not all and (min-width: 720px) {
  .rs-week { gap: var(--rs-s-2); }
  .rs-acc--day { padding: 0 var(--rs-s-4); }
  .rs-acc--day > .rs-acc__head { min-height: 3.25rem; }
  .rs-day .rs-slot { padding-inline: 0; }
}

/* sekcje klubu (--sport): telefon = cienkie wiersze bez zapasu nad i pod */
@media not all and (min-width: 720px) {
  .rs-sport-section--acc { padding-block: 0; }
}

/* opis ze źródła materiału (--src): od 720 px nagłówek panelu wygląda jak dawny pogrubiony akapit (H2 dziedziczy krój i rozmiar akapitu) */
@media (min-width: 720px) {
  .rs-acc--src > .rs-acc__head > h2 { margin: 0 0 var(--rs-s-2); font: inherit; letter-spacing: inherit; text-wrap: inherit; }
}

/* fakty (data, miejsce, kanał…): na telefonie etykieta i wartość w jednym wierszu zamiast dwóch */
@media not all and (min-width: 720px) {
  .rs-facts { margin-bottom: var(--rs-s-5); padding-inline: var(--rs-s-4); }
  .rs-facts__row { grid-template-columns: 6.5rem minmax(0, 1fr); align-items: baseline; gap: var(--rs-s-3); padding-block: var(--rs-s-2); }
  .rs-facts dt { font-size: 0.75rem; letter-spacing: 0.04em; overflow-wrap: anywhere; }
  .rs-facts dd { font-size: 1rem; }
}

/* bloki tekstowe strony (--sect): akapit w panelu zachowuje ograniczoną długość linii jak dawny „.rs-block > p”; na telefonie kolumna, w której panele przylegają do siebie */
.rs-block > .rs-acc > .rs-acc__body > p { max-width: var(--rs-read); }
@media not all and (min-width: 720px) {
  .rs-block:has(> .rs-acc--sect) { margin-bottom: 0; }
  .rs-greetings__how { padding-block: 0; }
  .rs-greetings__how > .rs-acc { border-top: 0; }
}

/* pola opcjonalne formularza (site.js dodaje przycisk „Pola dodatkowe”; bez JS wszystko widać): na telefonie zwinięte, pole z błędem zostaje widoczne */
@media not all and (min-width: 720px) {
  .rs-js .rs-form__fields:not(.is-opt-open) > .rs-field--opt:not(.is-invalid) { display: none; }
  .rs-form__optbtn { justify-self: start; margin-top: 0; }
}

/* Szlak: przystanki jako przylegające wiersze */
@media not all and (min-width: 720px) {
  .rs-stopblock { margin-bottom: 0; }
  .rs-stopblock > .rs-acc > .rs-acc__body { padding-bottom: var(--rs-s-4); }
}

/* === DNA portalu: skróty === */
/* Pasek „Skróty” (parts: rs_shortcuts_html): Kalendarz do telefonu, Pozdrowienia, Zgłoś wydarzenie/temat, Północny Szlak. Telefon: przewijany rząd, komputer: wiersz komórek. */
.rs-shortcuts { min-width: 0; }
.rs-shortcuts__title { margin: 0 0 var(--rs-s-2); color: var(--rs-muted); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.rs-shortcuts__list { display: flex; flex-wrap: wrap; gap: var(--rs-s-2); margin: 0; padding: 0; list-style: none; }
.rs-shortcuts__link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 2.75rem;
  padding: 0 var(--rs-s-3);
  border: 1px solid var(--rs-line-2);
  border-radius: var(--rs-r-md);
  background: var(--rs-paper);
  color: var(--rs-ink);
  font-size: 0.875rem;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}
.rs-shortcuts__link:hover { border-color: var(--rs-ink); color: var(--rs-ink); }
.rs-shortcuts__icon { display: inline-grid; flex: none; place-items: center; color: var(--rs-accent-deep); }
.rs-shortcuts__icon svg { width: 1.125rem; height: 1.125rem; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.rs-shortcuts--menu .rs-shortcuts__title { color: var(--rs-on-dark-2); }
.rs-shortcuts--menu .rs-shortcuts__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rs-shortcuts--menu .rs-shortcuts__link { width: 100%; border-color: var(--rs-on-dark-line-2); background: transparent; color: var(--rs-on-dark); white-space: normal; }
.rs-shortcuts--menu .rs-shortcuts__icon { color: var(--rs-sun); }

/* === DNA portalu: hub „Szczytno i powiat” (pulpit) === */
/* Lead „Historia w skrócie” + „Ciekawostka dnia” + lista pozostałych historii, „Gminy powiatu”, przewijane rzędy Zabytki i Kultowe miejsca, oś czasu. Telefon: bloki poza lead to panele
   jednej harmonijki; od 720 px wszystko rozwinięte. Stała liczba kolumn (12 ścieżek) bez sierot. */
.rs-gfront { display: grid; gap: var(--rs-s-4); padding-block: var(--rs-s-2) var(--rs-s-4); }
.rs-glead__main {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--rs-s-3);
  min-width: 0;
  padding: var(--rs-s-5) var(--rs-s-4);
  border-radius: var(--rs-leaf);
  background: var(--rs-forest-deep);
  color: var(--rs-on-dark);
}
.rs-glead__meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--rs-s-2); margin: 0; font-size: 0.8125rem; font-weight: 700; }
.rs-glead__kicker { color: var(--rs-sun); letter-spacing: 0.12em; text-transform: uppercase; font-size: 0.6875rem; }
.rs-glead__gmina { color: var(--rs-on-dark-2); }
.rs-glead__title { margin: 0; font-size: clamp(1.625rem, 1.1rem + 2.2vw, 2.75rem); line-height: 1.1; }
.rs-glead__title a { color: var(--rs-on-dark); text-decoration: none; }
.rs-glead__title a:hover { text-decoration: underline; text-underline-offset: 0.15em; }
.rs-glead__excerpt { max-width: 38rem; margin: 0; color: var(--rs-on-dark-2); font-size: 1.0625rem; }
.rs-glead__cta { margin: auto 0 0; padding-top: var(--rs-s-2); color: var(--rs-sun); font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.rs-glead__cta::after { content: " \2192"; }
.rs-glead__rest { min-width: 0; }
.rs-glead__list { margin: 0; padding: 0; list-style: none; }
.rs-glead__list li { border-top: 1px solid var(--rs-line); }
.rs-glead__list a { display: flex; flex-direction: column; gap: 0.125rem; min-height: 2.75rem; padding-block: 0.6rem; color: var(--rs-ink); text-decoration: none; }
.rs-glead__list a:hover .rs-glead__listtitle { color: var(--rs-accent-deep); text-decoration: underline; }
.rs-glead__listgmina { color: var(--rs-accent-deep); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.rs-glead__listtitle { font-weight: 600; line-height: 1.3; }
.rs-gfact { position: relative; min-width: 0; padding: var(--rs-s-4); border-top: var(--rs-rule); border-radius: 0 0 var(--rs-leaf) var(--rs-leaf); background: var(--rs-accent-soft); }
.rs-gfact__kicker { margin: 0; color: var(--rs-accent-deep); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.rs-gfact__head { margin: 0 0 var(--rs-s-2); font-size: 0.9375rem; }
.rs-gfact__title { margin: 0 0 var(--rs-s-2); font-size: 1.25rem; line-height: 1.2; }
.rs-gfact__title a { color: var(--rs-ink); text-decoration: none; }
.rs-gfact__text { margin: 0 0 var(--rs-s-2); color: var(--rs-ink-2); font-size: 0.9375rem; }
.rs-gfact__meta { margin: 0; color: var(--rs-muted); font-size: 0.8125rem; font-weight: 700; }
.rs-gfact__more { margin: var(--rs-s-2) 0 0; font-size: 0.8125rem; font-weight: 700; }
.rs-gfact__more a { display: inline-flex; align-items: center; min-height: 2.75rem; color: var(--rs-accent-deep); text-decoration: none; }
.rs-gfact__more a:hover { text-decoration: underline; }

.rs-gmgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--rs-s-2); margin: 0; padding: 0; list-style: none; }
.rs-gmgrid > li:last-child:nth-child(odd) { grid-column: 1 / -1; }
.rs-gmgrid > li { display: flex; min-width: 0; }
.rs-gmcard { display: flex; flex: 1; flex-direction: column; gap: var(--rs-s-2); min-width: 0; padding: var(--rs-s-3) var(--rs-s-4) var(--rs-s-4); border: 1px solid var(--rs-line); border-top: 3px solid var(--rs-forest); border-radius: 0 0 var(--rs-leaf) var(--rs-leaf); background: var(--rs-surface); }
.rs-gmcard__name { margin: 0; font-size: 1.1875rem; }
.rs-gmcard__name a { color: var(--rs-ink); text-decoration: none; }
.rs-gmcard__name a:hover { color: var(--rs-accent-deep); text-decoration: underline; }
.rs-gmcard__stat { margin: 0; color: var(--rs-accent-deep); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
/* telefon: karta gminy to nazwa i liczba wpisów (szczegóły są na stronie gminy); od 720 px także ostatnia wiadomość, najbliższe wydarzenie i odnośnik do historii */
.rs-gmcard__facts { display: none; gap: var(--rs-s-2); margin: 0; }
.rs-gmcard__links { display: none; }
.rs-gmcard__facts dt { margin: 0; color: var(--rs-muted); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.rs-gmcard__facts dd { margin: 0; font-size: 0.875rem; line-height: 1.35; }
.rs-gmcard__facts a { color: var(--rs-ink); font-weight: 600; text-decoration: none; }
.rs-gmcard__facts a:hover { color: var(--rs-accent-deep); text-decoration: underline; }
.rs-gmcard__when { color: var(--rs-muted); font-size: 0.8125rem; white-space: nowrap; }
.rs-gmcard__links { margin: auto 0 0; padding-top: var(--rs-s-1); font-size: 0.8125rem; font-weight: 700; }
.rs-gmcard__links a { display: inline-flex; align-items: center; min-height: 2.75rem; color: var(--rs-accent-deep); text-decoration: none; }
.rs-gmcard__links a:hover { text-decoration: underline; }

/* rzędy Zabytki / Kultowe miejsca: przewijane (natywny scroll-snap, widać początek kolejnej karty) */
.rs-hrow { display: flex; gap: var(--rs-s-3); margin: 0 calc(-1 * var(--rs-gutter)); padding: 0 var(--rs-gutter) var(--rs-s-2); overflow-x: auto; overscroll-behavior-inline: contain; scroll-padding-inline: var(--rs-gutter); scroll-snap-type: x proximity; list-style: none; }
.rs-hrow > li { flex: 0 0 min(72%, 15rem); min-width: 0; scroll-snap-align: start; }
.rs-pmini { position: relative; display: flex; flex-direction: column; height: 100%; border: 1px solid var(--rs-line); border-radius: var(--rs-leaf); background: var(--rs-surface); overflow: hidden; }
.rs-pmini__media { aspect-ratio: 16 / 7; }
.rs-pmini__body { display: flex; flex: 1; flex-direction: column; gap: 0.25rem; padding: var(--rs-s-3); }
.rs-pmini__meta { margin: 0; color: var(--rs-accent-deep); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.rs-pmini__title { margin: 0; font-size: 1.0625rem; line-height: 1.25; }
.rs-pmini__title a { color: var(--rs-ink); text-decoration: none; }
.rs-pmini:hover .rs-pmini__title a { color: var(--rs-accent-deep); text-decoration: underline; }

/* oś czasu: telefon = pionowa lista z rokiem po lewej, od 720 px pozioma linia z punktami (przewijana) */
.rs-gtl__list { margin: 0; padding: 0; list-style: none; }
.rs-gtl__item { display: grid; grid-template-columns: 4.25rem minmax(0, 1fr); gap: var(--rs-s-3); padding-block: var(--rs-s-3); border-top: 1px solid var(--rs-line); }
.rs-gtl__year { color: var(--rs-accent-deep); font-family: var(--rs-font-display); font-size: 1.375rem; font-weight: 700; line-height: 1.1; }
.rs-gtl__title { margin: 0; font-size: 1rem; line-height: 1.3; }
.rs-gtl__title a { color: var(--rs-ink); text-decoration: none; }
.rs-gtl__title a:hover { color: var(--rs-accent-deep); text-decoration: underline; }
.rs-gtl__gmina { margin: 0.125rem 0 0; color: var(--rs-muted); font-size: 0.8125rem; }

/* widok rodzaju: wiersze z kafelkiem zamiast siatki kart */
.rs-plist { display: grid; margin: 0; padding: 0; list-style: none; }
.rs-plist > li { border-top: 1px solid var(--rs-line); }
.rs-prow { position: relative; display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); gap: var(--rs-s-3); padding-block: var(--rs-s-3); }
.rs-prow__media { aspect-ratio: 1; overflow: hidden; border-radius: var(--rs-leaf); }
.rs-prow__media .rs-tile__mark { font-size: 1.25rem; }
.rs-prow__media .rs-tile__label { display: none; }
.rs-prow__meta { display: flex; flex-wrap: wrap; gap: 0 var(--rs-s-3); margin: 0 0 0.125rem; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.rs-prow__year { color: var(--rs-accent-deep); }
.rs-prow__title { margin: 0; font-size: var(--rs-fs-h3); line-height: 1.25; }
.rs-prow__title a { color: var(--rs-ink); text-decoration: none; }
.rs-prow:hover .rs-prow__title a { color: var(--rs-accent-deep); text-decoration: underline; }
.rs-prow__excerpt { margin: 0.25rem 0 0; color: var(--rs-ink-2); font-size: 0.9375rem; }

@media (min-width: 720px) {
  .rs-gmgrid { gap: var(--rs-s-3); }
  .rs-gmcard__facts { display: grid; }
  .rs-gmcard__links { display: block; }
  .rs-gfront { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-areas: "main main" "rest fact"; column-gap: var(--rs-s-5); align-items: stretch; }
  .rs-glead__main { grid-area: main; padding: var(--rs-s-6) var(--rs-s-5); }
  .rs-gfact { grid-area: fact; }
  .rs-glead__rest { grid-area: rest; }
  .rs-gfront:not(:has(.rs-gfact)) { grid-template-areas: "main main" "rest rest"; }
  .rs-gfront:not(:has(.rs-glead__rest)) { grid-template-areas: "main main" "fact fact"; }
  .rs-gfront:not(:has(.rs-glead__main)) { grid-template-areas: "rest fact"; }
  .rs-glead__cta { padding-top: var(--rs-s-5); }
  .rs-hrow { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 3 * var(--rs-s-3)) / 4.3); margin-inline: 0; padding-inline: 0; scroll-padding-inline: 0; }
  .rs-hrow--few { grid-auto-columns: calc((100% - 2 * var(--rs-s-3)) / 3); }
  .rs-hrow > li { flex: none; }
  .rs-plist { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--rs-s-6); }
  .rs-gtl__list { display: grid; grid-auto-flow: column; grid-auto-columns: calc(100% / 5); padding-top: 8px; overflow-x: auto; scroll-snap-type: x proximity; }
  .rs-gtl__item { position: relative; display: block; padding: var(--rs-s-3) var(--rs-s-4) 0 0; border-top: 2px solid var(--rs-ink); scroll-snap-align: start; }
  .rs-gtl__item::before { content: ""; position: absolute; top: -8px; left: 0; width: 14px; height: 14px; border: 2px solid var(--rs-ink); border-radius: 50%; background: var(--rs-paper); }
  .rs-gtl__year { display: block; margin-bottom: 0.25rem; font-size: 1.625rem; }
}

@media (min-width: 960px) {
  .rs-gfront { grid-template-columns: minmax(0, 5fr) minmax(0, 3.5fr) minmax(0, 3fr); grid-template-areas: "main rest fact"; }
  .rs-gfront:not(:has(.rs-gfact)) { grid-template-columns: minmax(0, 5fr) minmax(0, 3.5fr); grid-template-areas: "main rest"; }
  .rs-gfront:not(:has(.rs-glead__rest)) { grid-template-columns: minmax(0, 5fr) minmax(0, 3fr); grid-template-areas: "main fact"; }
  .rs-gfront:not(:has(.rs-gfact)):not(:has(.rs-glead__rest)) { grid-template-columns: minmax(0, 1fr); grid-template-areas: "main"; }
  .rs-gfront:not(:has(.rs-glead__main)) { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-areas: "rest fact"; }
  .rs-gmgrid { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--rs-s-4); }
  .rs-gmgrid > li,
  .rs-gmgrid > li:last-child:nth-child(odd) { grid-column: span 3; }
  .rs-gmgrid--n7 > li:nth-child(n + 5) { grid-column: span 4; }
  .rs-gmgrid--n6 > li,
  .rs-gmgrid--n3 > li { grid-column: span 4; }
  .rs-gmgrid--n5 > li:nth-child(-n + 3) { grid-column: span 4; }
  .rs-gmgrid--n5 > li:nth-child(n + 4),
  .rs-gmgrid--n2 > li { grid-column: span 6; }
  .rs-gmgrid--n1 > li { grid-column: 1 / -1; }
  .rs-hrow { grid-auto-columns: calc((100% - 3 * var(--rs-s-4)) / 4.3); gap: var(--rs-s-4); }
  .rs-hrow--few { grid-auto-columns: calc((100% - 2 * var(--rs-s-4)) / 3); }
}

/* === DNA portalu: nadtytuły paneli sekcji === */
/* nadtytuł panelu sekcji (rs_acc_open z $kicker): na telefonie ukryty, od 720 px małe kapitaliki nad tytułem (jak .rs-modhead__kicker) */
.rs-acc--rs .rs-acc__lead { flex: 1 1 auto; min-width: 0; }
.rs-acc--rs .rs-acc__kicker { display: none; }
@media (min-width: 720px) {
  .rs-acc--section .rs-acc__kicker { display: block; margin: 0; color: var(--rs-accent-deep); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.12em; line-height: 1.3; text-transform: uppercase; }
}

/* === DNA portalu: hub Wydarzenia === */
/* Pulpit wydarzeń: pasek tygodnia, filtry, „Dziś”, „Ten weekend”, „Wyróżnione”, lista dniami z osią godzin, „Później”, moduły boczne, pas odnośników. Tylko proste
   krawędzie, cienkie linie i mały promień; jedno wydarzenie = wiersz (.rs-evrow), bez zdjęć. */

/* pasek tygodnia (rs_events_weekbar_html): telefon = przewijany rząd z widocznym początkiem kolejnego dnia, od 720 px siedem równych kolumn */
.rs-weekbar { margin: 0 0 var(--rs-s-4); }
.rs-weekbar__list { display: flex; gap: var(--rs-s-2); margin: 0 calc(-1 * var(--rs-gutter)); padding: 0 var(--rs-gutter) var(--rs-s-1); overflow-x: auto; list-style: none; overscroll-behavior-inline: contain; scroll-padding-inline: var(--rs-gutter); scroll-snap-type: x proximity; scrollbar-width: none; }
.rs-weekbar__list::-webkit-scrollbar { display: none; }
.rs-weekbar__item { flex: 0 0 4.5rem; min-width: 0; scroll-snap-align: start; }
.rs-weekbar__day { position: relative; display: grid; justify-items: center; align-content: start; gap: 0.125rem; height: 100%; min-height: 5.5rem; padding: var(--rs-s-2) 0.25rem; border: 1px solid var(--rs-line); border-top: 3px solid var(--rs-line-2); background: var(--rs-surface); color: var(--rs-ink); line-height: 1.2; text-align: center; text-decoration: none; }
a.rs-weekbar__day:hover { border-color: var(--rs-ink); color: var(--rs-ink); }
.rs-weekbar__dow,
.rs-weekbar__mon { color: var(--rs-muted); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.rs-weekbar__num { font-family: var(--rs-font-display); font-size: 1.625rem; font-weight: 700; line-height: 1.05; }
.rs-weekbar__n { min-width: 1.5rem; margin-top: 0.125rem; padding: 0 0.375rem; border-radius: var(--rs-r-pill); background: var(--rs-accent); color: #fff; font-size: 0.8125rem; font-weight: 700; line-height: 1.5; }
.rs-weekbar__txt { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.rs-weekbar__day.is-today { border-color: var(--rs-accent); background: var(--rs-accent); color: #fff; }
.rs-weekbar__day.is-today .rs-weekbar__dow,
.rs-weekbar__day.is-today .rs-weekbar__mon { color: #fff; }
.rs-weekbar__day.is-today .rs-weekbar__n { background: #fff; color: var(--rs-accent-deep); }
.rs-weekbar__day.is-empty { border-top-color: var(--rs-line); background: var(--rs-sand); color: var(--rs-muted); }
.rs-weekbar__day.is-empty.is-today { border-color: var(--rs-accent); background: var(--rs-accent); color: #fff; }

/* filtry: rodzaje (zakładki) i gminy (zakładki z liczbą) pod paskiem tygodnia */
.rs-evnav { padding-bottom: var(--rs-s-1); }
.rs-evnav .rs-tabs { margin-bottom: var(--rs-s-2); }
.rs-evnav .rs-newsnav--solo { margin-block: 0 var(--rs-s-3); }
.rs-evnav .rs-newsnav__gminy .rs-tabs { border-bottom: 0; }

/* sekcje pulpitu */
.rs-evsec { margin-bottom: var(--rs-s-6); }
.rs-evsec__range { color: var(--rs-muted); font-family: var(--rs-font-ui); font-size: 0.875rem; font-weight: 700; letter-spacing: 0.02em; white-space: nowrap; }
.rs-evsec__note { margin: var(--rs-s-3) 0 0; color: var(--rs-muted); font-size: 0.875rem; }
.rs-evsec > .rs-modhead,
.rs-evsec > .rs-acc__head { margin-bottom: var(--rs-s-2); }

/* wiersz wydarzenia (parts/event-row.php): godzina na osi | tytuł i miejsce | rodzaj i znaczniki (telefon: pod tytułem) */
.rs-evrow { position: relative; display: grid; grid-template-columns: 4.25rem minmax(0, 1fr); grid-template-areas: "time body" "time tags"; column-gap: var(--rs-s-3); align-items: start; min-width: 0; padding: var(--rs-s-3) 0; border-top: 1px solid var(--rs-line); }
.rs-evrow:first-child { border-top: 0; }
.rs-evrow__time { grid-area: time; align-self: stretch; margin: 0; padding-right: var(--rs-s-3); border-right: 3px solid var(--rs-accent-soft); color: var(--rs-ink); font-family: var(--rs-font-display); font-size: 1.1875rem; font-weight: 700; line-height: 1.25; font-variant-numeric: tabular-nums; }
.rs-evrow.is-today .rs-evrow__time { border-right-color: var(--rs-accent); }
.rs-evrow__allday,
.rs-evrow__mon { display: block; color: var(--rs-muted); font-family: var(--rs-font-ui); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.08em; line-height: 1.3; text-transform: uppercase; }
.rs-evrow__day { display: block; }
.rs-evrow__body { grid-area: body; min-width: 0; }
.rs-evrow__title { margin: 0; font-size: 1.0625rem; line-height: 1.25; overflow-wrap: anywhere; }
.rs-evrow__title a { color: var(--rs-ink); text-decoration: none; }
.rs-evrow__title a:hover { color: var(--rs-accent-deep); text-decoration: underline; }
.rs-evrow__meta { margin: 0.125rem 0 0; color: var(--rs-muted); font-size: 0.875rem; }
.rs-evrow__excerpt { margin: var(--rs-s-2) 0 0; color: var(--rs-ink-2); font-size: 0.9375rem; }
.rs-evrow__tags { grid-area: tags; display: flex; flex-wrap: wrap; align-items: center; gap: 0.375rem; margin: 0.25rem 0 0; }
.rs-evrow__kind { color: var(--rs-accent-deep); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.rs-evrow__flag { display: inline-block; padding: 0.1rem 0.5rem; border-radius: var(--rs-r-pill); background: var(--rs-surface-2); color: var(--rs-ink-2); font-size: 0.6875rem; font-weight: 700; line-height: 1.6; letter-spacing: 0.06em; text-transform: uppercase; }
.rs-evrow__flag--featured { background: var(--rs-forest-soft); color: var(--rs-forest-deep); }
.rs-evrow__flag--cancelled { background: var(--rs-accent); color: #fff; }
.rs-evrow--lead { padding-block: var(--rs-s-4); }
.rs-evrow--lead .rs-evrow__time { font-size: 1.5rem; }
.rs-evrow--lead .rs-evrow__title { font-size: clamp(1.3125rem, 1.05rem + 0.9vw, 1.625rem); line-height: 1.2; }
.rs-evrow--lead .rs-evrow__meta { font-size: 0.9375rem; }

/* grupa dnia: nagłówek daty i wiersze (telefon: nagłówek nad wierszami) */
.rs-evday { min-width: 0; padding-top: var(--rs-s-2); border-top: 1px solid var(--rs-line-2); }
.rs-evday + .rs-evday { margin-top: var(--rs-s-4); }
.rs-evday__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 0.375rem; margin: 0 0 var(--rs-s-1); font-size: 1.125rem; line-height: 1.3; }
.rs-evday__dow::after { content: ","; }
.rs-evday__rel { align-self: center; margin-left: var(--rs-s-1); }
.rs-evdays > .rs-evday:first-child { padding-top: 0; border-top: 0; }
.rs-evday__list { min-width: 0; }
.rs-evweekend { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--rs-s-4); }
.rs-evweekend > .rs-evday + .rs-evday { margin-top: 0; }

/* moduły boczne: kalendarz ICS i zgłoszenie wydarzenia */
.rs-aside__text { margin: 0 0 var(--rs-s-3); color: var(--rs-ink-2); font-size: 0.9375rem; }
.rs-aside__action { margin: 0; }
.rs-aside__block--desk { display: none; }
.rs-evform .rs-form { margin: 0; border: 1px solid var(--rs-line); border-radius: var(--rs-leaf); box-shadow: none; }

/* pas odnośników na dole (rs-xlinks): wiersze zamiast kart; telefon: sam tytuł, od 720 px z opisem */
.rs-xlinks { padding-block: var(--rs-s-2) var(--rs-gap-section); }
.rs-xlinks__list { margin: 0; padding: 0; list-style: none; }
.rs-xlink { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 0 var(--rs-s-3); min-height: 2.75rem; padding: var(--rs-s-2) 0; border-top: 1px solid var(--rs-line); color: var(--rs-ink); text-decoration: none; }
.rs-xlink::after { content: "\2192"; color: var(--rs-accent-deep); font-size: 1.125rem; }
.rs-xlink:hover { color: var(--rs-ink); }
.rs-xlink:hover .rs-xlink__title { color: var(--rs-accent-deep); text-decoration: underline; text-underline-offset: 0.2em; }
.rs-xlink__title { font-family: var(--rs-font-display); font-size: 1.0625rem; font-weight: 700; line-height: 1.25; }
.rs-xlink__body { display: none; grid-column: 1; color: var(--rs-ink-2); font-size: 0.9375rem; }

@media (min-width: 480px) {
  .rs-weekbar__item { flex-basis: 5rem; }
}

@media (min-width: 720px) {
  .rs-weekbar__list { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); margin-inline: 0; padding: 0; overflow: visible; }
  .rs-weekbar__item { flex: none; }
  .rs-weekbar__day { grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "num dow" "num mon" "txt txt"; justify-items: start; align-content: center; gap: 0 var(--rs-s-2); min-height: 5.25rem; padding: var(--rs-s-3); text-align: left; }
  .rs-weekbar__num { grid-area: num; font-size: 2.25rem; }
  .rs-weekbar__dow { grid-area: dow; align-self: end; }
  .rs-weekbar__mon { grid-area: mon; align-self: start; }
  .rs-weekbar__n { display: none; }
  .rs-weekbar__txt { position: static; grid-area: txt; width: auto; height: auto; margin: var(--rs-s-2) 0 0; overflow: visible; clip-path: none; font-size: 0.8125rem; font-weight: 700; white-space: normal; }
  .rs-weekbar__day.is-empty .rs-weekbar__txt { font-weight: 400; }
  .rs-evsec { margin-bottom: var(--rs-s-7); }
  .rs-evrow { grid-template-columns: 4.5rem minmax(0, 1fr) auto; grid-template-areas: "time body tags"; padding-block: var(--rs-s-4); }
  .rs-evrow__tags { justify-content: flex-end; max-width: 11rem; margin: 0; }
  .rs-evrow--compact { grid-template-columns: 4rem minmax(0, 1fr); grid-template-areas: "time body" "time tags"; padding-block: var(--rs-s-3); }
  .rs-evrow--compact .rs-evrow__tags { justify-content: flex-start; max-width: none; margin-top: 0.25rem; }
  .rs-evday__head { font-size: 1.25rem; }
  .rs-evweekend--n2 { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--rs-s-6); }
  .rs-xlinks__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--rs-s-6); }
  .rs-xlink { align-content: start; padding-block: var(--rs-s-3); }
  .rs-xlink__body { display: block; }
}

@media (min-width: 960px) {
  .rs-aside__block--desk { display: block; }
  /* lista dniami jak agenda: data w lewej kolumnie, wiersze w prawej (grupy „top” zostają z nagłówkiem nad wierszami) */
  .rs-evday:not(.rs-evday--top) { display: grid; grid-template-columns: 8.5rem minmax(0, 1fr); column-gap: var(--rs-s-4); padding-top: var(--rs-s-3); }
  .rs-evday:not(.rs-evday--top) > .rs-evday__head { display: block; margin: 0; }
  .rs-evday:not(.rs-evday--top) .rs-evday__dow { display: block; color: var(--rs-accent-deep); font-family: var(--rs-font-ui); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
  .rs-evday:not(.rs-evday--top) .rs-evday__dow::after { content: none; }
  .rs-evday:not(.rs-evday--top) .rs-evday__num { display: block; font-size: 2.5rem; line-height: 1.05; }
  .rs-evday:not(.rs-evday--top) .rs-evday__mon { display: block; color: var(--rs-muted); font-family: var(--rs-font-ui); font-size: 0.875rem; }
  .rs-evday:not(.rs-evday--top) .rs-evday__rel { display: inline-block; margin: var(--rs-s-2) 0 0; }
  .rs-evday:not(.rs-evday--top) .rs-evrow:first-child { padding-top: 0; }
  .rs-xlinks__list { grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: var(--rs-s-5); }
  .rs-xlink { border-top: 3px solid var(--rs-ink); }
}

/* === DNA portalu: Sport, Program, Topka === */
/* --- panel modułu (rs_acc_mod_open): od 720 px nagłówek jak rs_modhead_html (gruba linia, nadtytuł, tytuł; „więcej” w prawym górnym rogu), telefon = wiersz panelu z licznikiem */
.rs-acc--mod { position: relative; }
@media (min-width: 720px) {
  .rs-acc--mod > .rs-acc__head { display: flex; align-items: flex-end; margin-bottom: var(--rs-s-4); padding: var(--rs-s-2) 0 0; border-top: var(--rs-rule); }
  .rs-acc--mod .rs-acc__lead { display: block; flex: 1 1 auto; min-width: 0; }
  .rs-acc--mod .rs-acc__kicker { display: block; margin: 0; color: var(--rs-accent-deep); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.12em; line-height: 1.3; text-transform: uppercase; }
  .rs-acc--mod > .rs-acc__body > .rs-acc__morewrap { position: absolute; top: var(--rs-s-2); right: 0; margin: 0; }
}
@media not all and (min-width: 720px) {
  .rs-acc--mod .rs-acc__kicker { display: none; }
  .rs-acc--mod .rs-acc__lead { flex: 1 1 auto; min-width: 0; }
  .rs-acc--mod .rs-modhead__title { font-size: 1.1875rem; line-height: 1.2; }
}

/* === DNA portalu: TV, Szlak, instytucje, wiadomości === */
/* Strony instytucji (Redakcja, Grupa, Stopka redakcyjna, Współpraca, Kontakt): tabliczka danych (.rs-inst), zwarte karty osób, wiersze list, moduły ze stałą grubą linią u góry.
   Wspólny język z resztą serwisu: cienkie obramowanie, proste krawędzie, bez cieni. */
.rs-editorial .rs-person-card { display: grid; grid-template-columns: 5rem minmax(0, 1fr); align-items: stretch; border-top: 3px solid var(--rs-ink); }
.rs-editorial .rs-person-card__media { aspect-ratio: auto; min-height: 5rem; }
.rs-editorial .rs-person-card__media .rs-tile { box-shadow: none; }
.rs-editorial .rs-person-card__media .rs-tile__mark { font-size: 1.75rem; }
.rs-editorial .rs-person-card__body { justify-content: center; gap: 0.2rem; padding: var(--rs-s-3) var(--rs-s-4); }
.rs-editorial .rs-person-card__name { font-size: 1.0625rem; }
.rs-editorial .rs-person-card__excerpt { -webkit-line-clamp: 2; line-clamp: 2; font-size: 0.875rem; }
.rs-editorial .rs-person-card__count { margin: 0; padding: 0; }
.rs-editorial .rs-people-block { padding-block: var(--rs-s-4) var(--rs-gap-block); }

@media (min-width: 720px) {
  .rs-facts.rs-facts--plate { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rs-facts--plate .rs-facts__row { grid-template-columns: minmax(0, 1fr); gap: 0.15rem; }
}

@media (min-width: 960px) {
  .rs-notfound:not(.rs-notfound--solo) { grid-template-columns: minmax(0, 1fr) var(--rs-aside); }
}

@media (min-width: 720px) {
  .rs-notfound__art { aspect-ratio: 5 / 1; }
}

/* 404 na telefonie: krótko (dwie wiadomości bez zajawek, skróty w jednym przewijanym rzędzie, niski baner); od 720 px skróty w kolumnie jako lista wierszy */
@media not all and (min-width: 720px) {
  .rs-notfound .rs-nrow__excerpt { display: none; }
  .rs-notfound .rs-nlist__items > :nth-child(n+3) { display: none; }
  .rs-notfound .rs-modhead__more { display: none; }
  .rs-notfound__go .rs-modhead { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
}
@media (min-width: 720px) {
  .rs-shortcuts--page .rs-shortcuts__list { flex-direction: column; overflow: visible; margin-inline: 0; padding: 0; gap: 0; border-top: 1px solid var(--rs-line); }
  .rs-shortcuts--page .rs-shortcuts__list li { border-bottom: 1px solid var(--rs-line); }
  .rs-shortcuts--page .rs-shortcuts__link { width: 100%; min-height: 3rem; padding: 0; border: 0; background: transparent; }
}

/* strony prawne: nadtytuł „Dokumenty” tylko od 720 px (na telefonie tekst ma zaczynać się wyżej, budżet wysokości) */
@media not all and (min-width: 720px) {
  .rs-kicker--legal { display: none; }
}

/* === Moduł: Oferta === */
/* Strona Współpraca: pakiety Z Serca Mazur, patronat medialny (dwie ścieżki), pas „grupa | zasady oznaczania”, formularze zapytania i patronatu oraz znacznik patronatu
   wydarzeń. Wszystkie kwoty i liczby przychodzą z danych (panel „Oferta i patronaty”), styl z istniejących tokenów i komponentów (.rs-acc--mod, .rs-tabs, .rs-checklist,
   .rs-tag, .rs-btn). Mobile-first: pakiety to przewijany rząd (scroll-snap), sekcje to panele grupy „coop”; od 720 px siatka, od 960 px trzy kolumny. */
.rs-offer__nav { margin-block: var(--rs-s-2) var(--rs-s-3); }
.rs-offer__nav .rs-tabs { margin-bottom: 0; }
.rs-offer__body { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; margin-bottom: var(--rs-s-5); }
.rs-offer__lead { max-width: var(--rs-read); margin: 0 0 var(--rs-s-4); color: var(--rs-ink-2); }
.rs-offer__text { max-width: var(--rs-read); margin: 0; }
.rs-offer__fine { max-width: var(--rs-read); margin: var(--rs-s-3) 0 0; color: var(--rs-muted); font-size: 0.875rem; }
.rs-offer__subhead { margin: 0 0 var(--rs-s-2); font-family: var(--rs-font-ui); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--rs-accent-deep); }
.rs-offer__action { margin: var(--rs-s-5) 0 0; }
.rs-offer__empty { padding: var(--rs-s-4); border: 1px solid var(--rs-line); border-left: 4px solid var(--rs-accent); border-radius: var(--rs-leaf); background: var(--rs-accent-soft); }
.rs-offer__empty-title { margin: 0 0 var(--rs-s-2); font-size: var(--rs-fs-h3); }
.rs-offer__empty p { max-width: var(--rs-read); margin: 0 0 var(--rs-s-3); }
.rs-offer__empty p:last-child { margin-bottom: 0; }

/* pakiety */
.rs-packs { display: flex; gap: var(--rs-s-3); margin: 0 calc(-1 * var(--rs-gutter)); padding: 0 var(--rs-gutter) var(--rs-s-2); overflow-x: auto; overscroll-behavior-inline: contain; scroll-padding-inline: var(--rs-gutter); scroll-snap-type: x proximity; list-style: none; }
.rs-pack { display: flex; flex: 0 0 min(82%, 18.5rem); flex-direction: column; gap: var(--rs-s-2); min-width: 0; padding: var(--rs-s-4); border: 1px solid var(--rs-line); border-top: 3px solid var(--rs-ink); border-radius: var(--rs-leaf); background: var(--rs-surface); scroll-snap-align: start; }
.rs-pack--featured { border-top-color: var(--rs-accent); }
.rs-packs-group + .rs-packs-group { margin-top: var(--rs-s-5); }
.rs-packs-group__title { margin-bottom: var(--rs-s-1); }
.rs-packs-group__lead { max-width: var(--rs-read); margin: 0 0 var(--rs-s-2); color: var(--rs-ink-2); font-size: 0.9375rem; }
.rs-packs-group__legend { margin-bottom: var(--rs-s-3); color: var(--rs-muted); font-size: 0.875rem; }
.rs-pack__head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: var(--rs-s-1) var(--rs-s-2); }
.rs-pack__title { margin: 0; font-size: 1.25rem; line-height: 1.2; overflow-wrap: anywhere; }
.rs-pack__excerpt { margin: 0; color: var(--rs-ink-2); font-size: 0.9375rem; }
.rs-pack__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.1rem 0.4rem; margin: var(--rs-s-2) 0 0; }
.rs-pack__from { color: var(--rs-muted); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.rs-pack__amount { font-family: var(--rs-font-display); font-size: 1.875rem; font-variant-numeric: tabular-nums; line-height: 1.1; }
.rs-pack__amount--text { font-size: 1.125rem; }
.rs-pack__per { color: var(--rs-muted); font-size: 0.875rem; }
.rs-pack__unit { margin: 0; color: var(--rs-forest); font-size: 0.9375rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.rs-pack__ngo { margin: 0; color: var(--rs-forest); font-size: 0.875rem; font-weight: 700; }
.rs-pack__items { margin: var(--rs-s-1) 0 0; }
.rs-pack__items li { padding-block: 0.25rem; padding-left: 1.75rem; font-size: 0.9375rem; }
.rs-pack__items li::before { top: 0.6rem; }
.rs-pack__facts,
.rs-pack__note { margin: 0; color: var(--rs-muted); font-size: 0.8125rem; }
.rs-pack__cta { margin: auto 0 0; padding-top: var(--rs-s-2); }
.rs-pack__cta .rs-btn { width: 100%; }

/* patronat: dwie ścieżki obok siebie, kryteria pod spodem */
.rs-paths { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--rs-s-3); }
.rs-path { display: flex; flex-direction: column; gap: var(--rs-s-2); min-width: 0; padding: var(--rs-s-4); border: 1px solid var(--rs-line); border-top: 3px solid var(--rs-forest-mid); border-radius: var(--rs-leaf); background: var(--rs-surface); }
.rs-path--paid { border-top-color: var(--rs-accent); }
.rs-path__tag { margin: 0; color: var(--rs-forest); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.rs-path--paid .rs-path__tag { color: var(--rs-accent-deep); }
.rs-path__title { margin: 0; font-size: 1.25rem; line-height: 1.2; }
.rs-path__who { margin: 0; color: var(--rs-ink-2); }
.rs-path__list { flex: 1 1 auto; margin: var(--rs-s-1) 0 0; }
.rs-path__list li { padding-block: 0.3rem; }
.rs-path__list li::before { top: 0.65rem; }
.rs-path__price { margin: 0; font-size: 1.0625rem; }
.rs-path__price strong { font-family: var(--rs-font-display); font-size: 1.375rem; }
.rs-path__ngo { display: block; margin-top: 0.15rem; color: var(--rs-forest); font-size: 0.875rem; font-weight: 700; }
.rs-path__price--none { color: var(--rs-ink-2); font-size: 0.9375rem; }
.rs-path__note { margin: 0; color: var(--rs-muted); font-size: 0.875rem; }
.rs-offer__criteria { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--rs-s-4); margin-top: var(--rs-s-5); }
.rs-offer__crit { min-width: 0; }
.rs-offer__crit .rs-checklist { margin-bottom: 0; }
.rs-offer__crit p { max-width: var(--rs-read); margin: 0 0 var(--rs-s-3); }
.rs-offer__crit p:last-child { margin-bottom: 0; }

/* pas „grupa | zasady oznaczania” */
.rs-offer__pair { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
.rs-offer__sites-label { margin: var(--rs-s-3) 0 var(--rs-s-2); color: var(--rs-muted); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.rs-offer__sites { display: flex; flex-wrap: wrap; gap: 0.35rem; margin: 0 0 var(--rs-s-3); padding: 0; list-style: none; }
.rs-offer__sites li { padding: 0.1rem 0.6rem; border: 1px solid var(--rs-line-2); border-radius: var(--rs-r-pill); font-size: 0.8125rem; font-weight: 700; }
.rs-offer__more { margin: 0 0 var(--rs-s-3); }
.rs-offer__contact { margin-top: var(--rs-s-4); padding-top: var(--rs-s-3); border-top: 1px solid var(--rs-line-2); }
.rs-offer__contact p { margin: 0; }
.rs-offer__rules { margin-bottom: 0; }

/* formularze oferty w kolumnie czytania */
.rs-offer__forms > .rs-form { margin-block: 0 var(--rs-s-4); }
.rs-offer__forms > .rs-modhead + .rs-offer__lead { margin-top: calc(-1 * var(--rs-s-1)); }

/* patronat medialny wydarzenia: znacznik na liście i uwaga na stronie wydarzenia */
.rs-evrow__flag--patronage { background: var(--rs-forest); color: #fff; }
.rs-chip--patronage { background: var(--rs-forest); color: #fff; }
.rs-patronage { display: flex; flex-wrap: wrap; align-items: center; gap: var(--rs-s-2); margin: 0 0 var(--rs-s-4); padding: var(--rs-s-3); border-left: 4px solid var(--rs-forest-mid); border-radius: var(--rs-r-md); background: var(--rs-forest-soft); }
.rs-patronage--paid { border-left-color: var(--rs-accent); background: var(--rs-accent-soft); }
.rs-patronage__note { color: var(--rs-ink-2); font-size: 0.9375rem; }

@media (min-width: 720px) {
  .rs-offer__body { gap: var(--rs-gap-section); margin-bottom: var(--rs-gap-section); }
  .rs-packs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--rs-s-4); margin: 0; padding: 0; overflow: visible; scroll-snap-type: none; }
  .rs-pack { flex: none; grid-column: span 2; }
  .rs-packs > :last-child:nth-child(odd):not(:only-child) { grid-column: 1 / -1; }
  .rs-paths { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--rs-s-4); }
  .rs-offer__criteria { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--rs-s-6); }
  .rs-offer__criteria:has(> :only-child) { grid-template-columns: minmax(0, 1fr); }
  .rs-offer__pair { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--rs-s-6) var(--rs-s-5); }
  .rs-offer__forms > .rs-form { margin-block: 0 var(--rs-s-5); }
}

@media (min-width: 960px) {
  .rs-packs:not(.rs-packs--row) { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .rs-packs:not(.rs-packs--row) > .rs-pack { grid-column: span 2; }
  .rs-packs:not(.rs-packs--row) > :last-child:nth-child(odd):not(:only-child) { grid-column: span 2; }
  .rs-packs:not(.rs-packs--row) > :nth-last-child(2):nth-child(3n + 1) { grid-column: span 3; }
  .rs-packs:not(.rs-packs--row) > :last-child:nth-child(3n + 2) { grid-column: span 3; }
  .rs-packs:not(.rs-packs--row) > :last-child:nth-child(3n + 1):not(:only-child) { grid-column: 1 / -1; }
  .rs-packs:not(.rs-packs--row) > .rs-pack:only-child { grid-column: 1 / -1; }
  /* rząd 2-4 kart (emisje radiowe, pakiety kampanii): wszystkie karty w jednym rzędzie, równe wysokości */
  .rs-packs--n2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rs-packs--n3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rs-packs--n4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .rs-packs--row > .rs-pack,
  .rs-packs--row > .rs-pack:last-child:nth-child(n) { grid-column: auto; }
}

/* telefon: sekcje oferty to wiersze panelu (jedna otwarta w grupie „coop”), bez ramek wokół treści pasa „grupa | zasady” */
@media not all and (min-width: 720px) {
  .rs-offer__mod.rs-acc--mod > .rs-acc__body { padding-bottom: var(--rs-s-4); }
  .rs-offer__body { margin-bottom: 0; }
  .rs-offer__forms { padding-top: var(--rs-s-4); }
  .rs-offer__forms > .rs-offer__lead { display: none; }
  .rs-pack { gap: 0.35rem; padding: var(--rs-s-3) var(--rs-s-4); }
  .rs-pack__excerpt { font-size: 0.875rem; }
  .rs-pack__amount { font-size: 1.625rem; }
  .rs-pack__ngo { font-size: 0.8125rem; }
  .rs-pack__items li { padding-block: 0.15rem; }
  .rs-pack__items li::before { top: 0.5rem; }
  .rs-packs-group__lead:not(.rs-packs-group__legend),
  .rs-pack--emission .rs-pack__excerpt { display: none; }
}

/* wydruk oferty (Ctrl+P na stronie Współpraca): tylko pakiety, patronat, grupa i zasady; bez menu, zakładek, przycisków i formularzy; panele rozwinięte */
@media print {
  .rs-offer__nav,
  .rs-offer__forms,
  .rs-offer .rs-btn,
  .rs-cooperation .rs-bubbles,
  .rs-cooperation .rs-layout,
  .rs-cooperation .rs-callout,
  .rs-cooperation .rs-acc__chev { display: none; }
  .rs-offer details.rs-acc::details-content { content-visibility: visible; display: block; }
  .rs-offer .rs-acc__head { pointer-events: none; }
  .rs-packs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.5rem; margin: 0; padding: 0; overflow: visible; }
  .rs-pack { flex: none; grid-column: auto; break-inside: avoid; }
  .rs-path,
  .rs-offer__pair > .rs-acc { break-inside: avoid; }
  .rs-offer__pair { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rs-paths { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rs-offer a { color: inherit; text-decoration: none; }
}

/* === Moduł: Misja i teksty prawne === */

/* „Zauważyłeś błąd? Daj znać” pod artykułem: spokojny, zwinięty wiersz na każdej szerokości; po rozwinięciu zwarty formularz */
.rs-report { margin-top: var(--rs-gap-block); }
.rs-report--link { color: var(--rs-muted); font-size: 0.9375rem; }
.rs-report--link a { color: var(--rs-accent-deep); font-weight: 700; }
.rs-report__box { border-top: 1px solid var(--rs-line); }
.rs-report__sum {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  min-height: 2.75rem;
  cursor: pointer;
  list-style: none;
  color: var(--rs-muted);
  font-size: 0.9375rem;
}
.rs-report__sum::-webkit-details-marker { display: none; }
.rs-report__a { color: var(--rs-accent-deep); font-weight: 700; text-decoration: underline; text-underline-offset: 0.2em; }
.rs-report__sum:hover .rs-report__a { color: var(--rs-accent); }
.rs-report__chev { flex: none; width: 0.5rem; height: 0.5rem; margin-left: 0.15rem; border-right: 2px solid var(--rs-accent-deep); border-bottom: 2px solid var(--rs-accent-deep); transform: rotate(45deg); transition: transform 0.15s var(--rs-ease); }
.rs-report__box[open] .rs-report__chev { transform: rotate(-135deg); }
.rs-report__body { padding-bottom: var(--rs-s-2); }
.rs-report__body .rs-form { margin-block: var(--rs-s-2) 0; }

/* Misja redakcji: pierwsze zdanie jako wstęp, dalszy ciąg w jednym akapicie z szeryfem, potem „Jak piszemy” */
.rs-mission__lead { max-width: 36rem; color: var(--rs-ink); font-family: var(--rs-font-display); font-size: 1.1875rem; line-height: 1.45; }
.rs-mission__statement { max-width: var(--rs-read); padding-left: var(--rs-s-4); border-left: 4px solid var(--rs-accent); }
.rs-mission__statement p { margin: 0; font-family: var(--rs-font-display); font-size: 1.125rem; line-height: 1.65; }
.rs-mission__statement p + p { margin-top: var(--rs-s-3); }
.rs-mission__steps { max-width: var(--rs-read); }
.rs-mission__steps .rs-steps__body p { color: var(--rs-ink-2); }
.rs-mission__actions { display: flex; flex-wrap: wrap; gap: var(--rs-s-3); margin: var(--rs-s-3) 0 0; }
.rs-mission__actions .rs-btn { margin-top: 0; }
.rs-mission-link > p { margin-block: 0 var(--rs-s-3); }

/* Regulamin sprzedaży reklam i patronatów: reguły reklam (znacznik [rs_ads_rules]) i odnośnik na stronie Współpraca */
.rs-legal-rules { margin: 0; padding-left: 1.4rem; }
.rs-legal-rules li + li { margin-top: 0.35rem; }
.rs-legal-link { max-width: var(--rs-read); margin: 0 0 var(--rs-gap-section); color: var(--rs-ink-2); }
.rs-legal-link a { font-weight: 700; }

@media (min-width: 720px) {
  .rs-mission__lead { font-size: 1.3125rem; }
  .rs-mission__statement p { font-size: 1.1875rem; }
}

@media print {
  .rs-report { display: none; }
}

/* === Moduł: Dzwoneczek === */
/* Zapis na powiadomienia e-mail. Przycisk dokowany z boku okna (komputer: pionowa zakładka przy prawej krawędzi w połowie wysokości, telefon: mały znacznik nad paskiem odsłuchu),
   panel otwiera WYŁĄCZNIE kliknięcie (assets/notify.js; zero popupów automatycznych). Baner zgód ma pierwszeństwo: dopóki jest otwarty, dzwoneczek jest ukryty.
   Na telefonie panel to dolny arkusz nad paskiem odsłuchu. Przycisk i panel leżą pod paskiem odsłuchu (50) i banerem zgód (49). */
.rs-bell[hidden],
html.rs-consent-open .rs-bell { display: none; }
/* ustawienie „ukryj na telefonie”: poniżej 720 px dzwoneczka nie ma */
@media not all and (min-width: 720px) {
  .rs-bell[data-rs-bell-mobile="0"] { display: none; }
}
.rs-bell__tab {
  position: fixed;
  right: 0;
  bottom: calc(var(--rs-player-h) + env(safe-area-inset-bottom, 0px) + var(--rs-s-3));
  z-index: 48;
  display: grid;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: var(--rs-r-lg) 0 0 var(--rs-r-lg);
  background: var(--rs-forest-deep);
  color: var(--rs-on-dark);
  text-decoration: none;
  box-shadow: var(--rs-shadow-lg);
  cursor: pointer;
}
.rs-bell__tab:hover { background: var(--rs-forest); color: #fff; }
.rs-bell__icon { width: 1.5rem; height: 1.5rem; fill: var(--rs-sun); }
/* na telefonie sama ikona; napis zostaje dla czytników ekranu */
.rs-bell__label {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
/* otwarty arkusz na telefonie zasłania znacznik, więc znacznik się chowa (wraca po zamknięciu); fokus wraca na niego dopiero po zamknięciu */
.rs-bell.is-open .rs-bell__tab { visibility: hidden; }

.rs-bell__panel {
  position: fixed;
  z-index: 48;
  inset-inline: var(--rs-s-2);
  bottom: calc(var(--rs-player-h) + env(safe-area-inset-bottom, 0px) + var(--rs-s-2));
  max-height: calc(100vh - var(--rs-player-h) - var(--rs-header-h) - var(--rs-s-4));
  max-height: calc(100dvh - var(--rs-player-h) - var(--rs-header-h) - var(--rs-s-4));
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: var(--rs-s-4);
  border: 1px solid var(--rs-line-2);
  border-top: 3px solid var(--rs-ink);
  border-radius: var(--rs-r-lg);
  background: var(--rs-surface);
  color: var(--rs-ink);
  box-shadow: var(--rs-shadow-lg);
}
.rs-bell__panel[hidden] { display: none; }
.rs-bell__close {
  position: absolute;
  top: var(--rs-s-1);
  right: var(--rs-s-1);
  display: grid;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  border: 0;
  border-radius: 50%;
  background: none;
  color: var(--rs-ink-2);
  cursor: pointer;
}
.rs-bell__close:hover { background: var(--rs-surface-2); color: var(--rs-ink); }
.rs-bell__title { margin: 0 2.75rem var(--rs-s-2) 0; font-size: 1.125rem; }
.rs-bell__lead { margin: 0 0 var(--rs-s-2); color: var(--rs-ink-2); font-size: 0.9375rem; line-height: 1.5; }
.rs-bell__note { margin: 0 0 var(--rs-s-3); color: var(--rs-muted); font-size: 0.875rem; line-height: 1.45; }
.rs-bell__more { margin: var(--rs-s-2) 0 0; font-size: 0.875rem; }
.rs-bell__more a { display: inline-flex; align-items: center; min-height: 2.75rem; }
.rs-bell .rs-notify__form { gap: var(--rs-s-3); }
.rs-bell .rs-notify__topics { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--rs-s-3); }
.rs-bell .rs-notify__legend,
.rs-bell .rs-notify__topics .rs-field__error { grid-column: 1 / -1; }
.rs-bell .rs-form__consent { padding-top: var(--rs-s-3); }
.rs-bell .rs-form__submit { width: 100%; }

/* formularz zapisu (panel dzwoneczka i strona Powiadomienia): pola jak w formularzach zgłoszeń, tematy jako pola wyboru */
.rs-notify__form { display: grid; gap: var(--rs-s-4); }
.rs-notify__notice {
  margin: 0 0 var(--rs-s-3);
  padding: var(--rs-s-3) var(--rs-s-4);
  border-left: 4px solid var(--rs-forest);
  border-radius: var(--rs-r-md);
  background: var(--rs-forest-soft);
  color: var(--rs-forest-deep);
  font-weight: 700;
  line-height: 1.45;
}
.rs-notify__notice.is-error { border-left-color: var(--rs-accent); background: var(--rs-accent-soft); color: var(--rs-accent-deep); }
.rs-notify__notice[hidden] { display: none; }
.rs-notify__topics { display: grid; min-width: 0; margin: 0; padding: 0; border: 0; }
.rs-notify__legend { margin: 0 0 var(--rs-s-1); padding: 0; font-weight: 700; line-height: 1.35; }
.rs-notify__topics.is-invalid .rs-check__text { color: var(--rs-accent-deep); }
.rs-notify__one { margin: 0; font-weight: 700; }
.rs-notify .rs-form__status { min-height: 0; }
.rs-notify .rs-form__status:empty { display: none; }

/* strona Powiadomienia: widoki potwierdzenia i wypisania (z linku w wiadomości) oraz wynik; jedna kolumna czytania zamiast układu „opis | formularz” */
.rs-notifypage__layout > .rs-notifypage__action,
.rs-notifypage__layout > .rs-notifypage__result,
.rs-notifypage__layout > .rs-empty { grid-column: 1 / -1; max-width: var(--rs-read); }
.rs-notifypage__action-title { margin: 0 0 var(--rs-s-2); font-size: var(--rs-fs-h2s); }
.rs-notifypage__action-lead { margin: 0 0 var(--rs-s-4); color: var(--rs-ink-2); }
.rs-notifypage__action-form { margin: 0; }
.rs-notifypage__back { margin: 0; }
.rs-notifypage__result .rs-form__notice { margin-bottom: var(--rs-s-4); }

@media (min-width: 720px) {
  .rs-bell__tab {
    top: 50%;
    bottom: auto;
    grid-auto-flow: row;
    align-content: center;
    gap: var(--rs-s-2);
    width: 2.75rem;
    height: auto;
    padding: var(--rs-s-3) 0;
    transform: translateY(-50%);
  }
  .rs-bell__label {
    position: static;
    width: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    clip-path: none;
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    writing-mode: vertical-rl;
  }
  .rs-bell.is-open .rs-bell__tab { visibility: visible; }
  .rs-bell__panel {
    inset-inline: auto 3.75rem;
    top: 50%;
    bottom: auto;
    width: min(24rem, calc(100% - 5rem));
    max-height: calc(100vh - var(--rs-player-h) - var(--rs-header-h) - var(--rs-s-6));
    max-height: calc(100dvh - var(--rs-player-h) - var(--rs-header-h) - var(--rs-s-6));
    padding: var(--rs-s-5);
    transform: translateY(-50%);
  }
  .rs-bell__close { top: var(--rs-s-2); right: var(--rs-s-2); }
}

/* na telefonie, gdy dzwoneczek jest widoczny, stopka dostaje zapas, żeby znacznik nie przykrywał przycisku „Ustawienia prywatności” na końcu strony */
html.rs-has-bell:not(.rs-consent-open) .rs-footer { padding-bottom: calc(var(--rs-player-h) + env(safe-area-inset-bottom, 0px) + 3.5rem); }
@media (min-width: 720px) {
  html.rs-has-bell:not(.rs-consent-open) .rs-footer { padding-bottom: calc(var(--rs-player-h) + env(safe-area-inset-bottom, 0px)); }
}

@media (prefers-reduced-motion: no-preference) {
  .rs-bell__tab { transition: background-color 0.14s var(--rs-ease); }
  .rs-bell__panel { animation: rs-bell-in 0.22s var(--rs-ease) both; }
  @keyframes rs-bell-in { from { opacity: 0; translate: 0 0.75rem; } to { opacity: 1; translate: 0 0; } }
}
@media print { .rs-bell { display: none; } }

/* === Moduł: Usługi === */
/* Strony usług (hub Reklama, Spot radiowy, Reklama wideo, Banery, Patronat medialny, Cennik) i kafelki usług na stronie Współpraca. Karty pozycji to istniejące .rs-pack (moduł Oferta),
   sekcje to panele .rs-acc--mod grupy „svc” (telefon: jedna otwarta), a poniżej tylko to, czego Oferta nie ma: kafle usług, wiersze cennika, kroki, miejsca banerów, FAQ, próbki.
   Wszystkie kwoty i liczby przychodzą z danych (moduł Oferta); styl z istniejących tokenów. Mobile-first: wiersze i listy, siatki dopiero od 720 i 960 px. */
.rs-svc-meta { display: flex; flex-wrap: wrap; gap: 0.35rem 0.5rem; margin: var(--rs-s-3) 0 0; padding: 0; list-style: none; }
.rs-svc-meta__item { padding: 0.15rem 0.6rem; border: 1px solid var(--rs-line-2); border-radius: var(--rs-r-pill); font-size: 0.8125rem; }
.rs-svc-meta__k { margin-right: 0.25rem; color: var(--rs-muted); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.rs-svc-meta__item--net { border-color: var(--rs-forest-mid); color: var(--rs-forest); font-weight: 700; }
.rs-svc-head__nav { margin-top: var(--rs-s-3); }
.rs-svc-head__nav .rs-tabs { margin-bottom: 0; }

.rs-services__body { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; margin-bottom: var(--rs-s-5); }
.rs-services__prose { margin-top: var(--rs-s-4); }
.rs-svc__legend { margin-top: 0; margin-bottom: var(--rs-s-3); }
.rs-svc__subhead { margin-top: var(--rs-s-4); }
.rs-svc__separate { margin-bottom: 0; }
.rs-svc__quote { max-width: var(--rs-read); }
.rs-svc-version { margin: 0 0 var(--rs-s-3); color: var(--rs-muted); font-size: 0.875rem; }
.rs-services--pricelist .rs-tabs { margin-bottom: var(--rs-s-3); }
.rs-svc-print { margin-top: var(--rs-s-3); }

/* kafle usług: telefon lista wierszy (tytuł i cena w jednej linii), od 720 px dwie kolumny, od 960 px siatka 6 kolumn */
.rs-svc-tiles-sec { margin-block: var(--rs-s-4) var(--rs-s-4); }
.rs-svc-tiles { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; margin: 0; padding: 0; border-top: 1px solid var(--rs-line); list-style: none; }
.rs-svc-tile { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; gap: 0 var(--rs-s-3); padding: var(--rs-s-3) 0; border-bottom: 1px solid var(--rs-line); }
.rs-svc-tile__title { grid-column: 1; margin: 0; font-size: 1.125rem; line-height: 1.25; overflow-wrap: anywhere; }
.rs-svc-tile__link { color: inherit; text-decoration: none; }
.rs-svc-tile__link::after { content: ""; position: absolute; inset: 0; }
.rs-svc-tile__price { grid-column: 2; grid-row: 1; margin: 0; color: var(--rs-accent-deep); font-family: var(--rs-font-display); font-size: 1rem; font-weight: 700; white-space: nowrap; }
.rs-svc-tile__text { grid-column: 1 / -1; margin: 0.25rem 0 0; color: var(--rs-ink-2); font-size: 0.9375rem; }
.rs-svc-tile:focus-within { outline: 2px solid var(--rs-accent); outline-offset: 2px; }
.rs-svc-tile__link:focus-visible { outline: none; }

/* kroki zamówienia */
.rs-svc-steps { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--rs-s-3); margin: 0; padding: 0; list-style: none; }
.rs-svc-step { display: flex; align-items: flex-start; gap: var(--rs-s-3); min-width: 0; }
.rs-svc-step__n { display: inline-grid; flex: none; place-items: center; width: 2rem; height: 2rem; border: 2px solid var(--rs-ink); border-radius: var(--rs-r-pill); font-family: var(--rs-font-ui); font-size: 0.9375rem; font-weight: 700; }
.rs-svc-step__body { min-width: 0; padding-top: 0.2rem; }
.rs-svc-step__title { margin: 0 0 0.15rem; font-size: 1.0625rem; line-height: 1.25; }
.rs-svc-step__text { margin: 0; color: var(--rs-ink-2); font-size: 0.9375rem; }

/* wiersze cennika: nazwa i zakres po lewej, cena po prawej (telefon: cena pod nazwą) */
.rs-svc-rows { margin: 0; padding: 0; border-top: 1px solid var(--rs-line); list-style: none; }
.rs-svc-row { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--rs-s-1) var(--rs-s-4); align-items: start; padding: var(--rs-s-3) 0; border-bottom: 1px solid var(--rs-line); }
.rs-svc-row__main { min-width: 0; }
.rs-svc-row__name { margin: 0; font-weight: 700; overflow-wrap: anywhere; }
.rs-svc-row__desc { margin: 0.15rem 0 0; color: var(--rs-ink-2); font-size: 0.875rem; }
.rs-svc-row__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.1rem 0.6rem; }
.rs-svc-row__amount { margin: 0; font-family: var(--rs-font-display); font-size: 1.25rem; font-variant-numeric: tabular-nums; line-height: 1.15; white-space: nowrap; }
.rs-svc-row__from { color: var(--rs-muted); font-family: var(--rs-font-ui); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.rs-svc-row__unit,
.rs-svc-row__ngo { margin: 0; color: var(--rs-muted); font-size: 0.8125rem; }
.rs-svc-row__ngo { color: var(--rs-forest); font-weight: 700; }

/* miejsca banerów (z systemu reklam) */
.rs-svc-places { margin: 0; padding: 0; border-top: 1px solid var(--rs-line); list-style: none; }
.rs-svc-place { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.15rem var(--rs-s-4); padding: var(--rs-s-2) 0; border-bottom: 1px solid var(--rs-line); }
.rs-svc-place__name { font-weight: 700; }
.rs-svc-place__hint { color: var(--rs-ink-2); font-size: 0.9375rem; }

/* FAQ */
.rs-svc-faq { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
.rs-svc-faq__item { padding: var(--rs-s-3) 0; border-top: 1px solid var(--rs-line); }
.rs-svc-faq__q { margin: 0 0 0.25rem; font-size: 1.0625rem; line-height: 1.3; }
.rs-svc-faq__a { max-width: var(--rs-read); margin: 0; color: var(--rs-ink-2); }

/* próbki (własny plik audio albo film za bramką zgody) */
.rs-svc-sample { margin: var(--rs-s-2) 0 0; }
.rs-svc-sample__label { margin: 0 0 0.25rem; color: var(--rs-muted); font-size: 0.8125rem; }
.rs-svc-sample__audio { display: block; width: 100%; max-width: 100%; }
.rs-svc-sample--video .rs-gate { margin: 0; }

/* zapytanie o wycenę */
.rs-svc-ask { padding-top: var(--rs-s-4); }
.rs-svc-ask > .rs-form { margin-block: 0 var(--rs-s-4); }
.rs-svc-ask__mail { margin-top: 0; }

/* telefon: lista wierszy w kafelkach Współpracy bez opisu (opis jest na stronie Reklama), formularz bez wstępu */
@media not all and (min-width: 720px) {
  .rs-svc-tiles-sec--coop .rs-svc-tile__text { display: none; }
  .rs-svc-ask__lead { display: none; }
  .rs-services__body { margin-bottom: 0; }
  .rs-svc__mod.rs-acc--mod > .rs-acc__body { padding-bottom: var(--rs-s-4); }
  .rs-svc-faq__item { padding-block: var(--rs-s-2); }
}

@media not all and (min-width: 480px) {
  .rs-svc-row__price { text-align: left; }
}

@media (min-width: 480px) {
  .rs-svc-row { grid-template-columns: minmax(0, 1fr) auto; }
  .rs-svc-row__price { display: block; max-width: 12rem; text-align: right; }
  .rs-svc-row__unit,
  .rs-svc-row__ngo { margin-top: 0.1rem; }
}

@media (min-width: 720px) {
  .rs-services__body { gap: var(--rs-gap-section); margin-bottom: var(--rs-gap-section); }
  .rs-svc-tiles-sec { margin-block: var(--rs-s-5) var(--rs-s-5); }
  .rs-svc-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--rs-s-4); border-top: 0; }
  .rs-svc-tile { display: flex; flex-direction: column; align-items: flex-start; gap: 0.4rem; padding: var(--rs-s-4); border: 1px solid var(--rs-line); border-top: 3px solid var(--rs-ink); border-radius: var(--rs-leaf); background: var(--rs-surface); }
  .rs-svc-tile--spot,
  .rs-svc-tile--video { border-top-color: var(--rs-accent); }
  .rs-svc-tile__text { margin: 0; }
  .rs-svc-tile__price { font-size: 1.125rem; }
  .rs-svc-tiles > :last-child:nth-child(odd) { grid-column: 1 / -1; }
  .rs-svc-steps { gap: var(--rs-s-4); }
  .rs-svc-steps:not(.rs-svc-steps--plain) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .rs-svc-steps:not(.rs-svc-steps--plain) .rs-svc-step { flex-direction: column; gap: var(--rs-s-2); padding-top: var(--rs-s-3); border-top: 3px solid var(--rs-ink); }
  .rs-svc-steps--plain { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rs-svc-place { grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); align-items: baseline; }
  .rs-svc-ask > .rs-form { margin-block: 0 var(--rs-s-5); }
}

@media (min-width: 960px) {
  .rs-svc-tiles { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .rs-svc-tiles > .rs-svc-tile { grid-column: span 2; }
  .rs-svc-tiles--n3 > :last-child:nth-child(odd),
  .rs-svc-tiles--n5 > :last-child:nth-child(odd) { grid-column: span 2; }
  .rs-svc-tiles--n1 > :last-child:nth-child(odd) { grid-column: 1 / -1; }
  .rs-svc-tiles--n2 > .rs-svc-tile,
  .rs-svc-tiles--n4 > .rs-svc-tile,
  .rs-svc-tiles--n5 > :nth-child(-n + 2) { grid-column: span 3; }
  .rs-svc-tiles--n5 > :nth-child(-n + 2) .rs-svc-tile__title { font-size: 1.5rem; }
  .rs-svc-tiles--n5 > :nth-child(-n + 2) .rs-svc-tile__price { font-size: 1.375rem; }
  .rs-svc-faq { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--rs-s-6); }
}

/* wydruk cennika i stron usług (Ctrl+P): bez nawigacji, formularzy i przycisków; panele rozwinięte; wiersze nie rozrywane */
@media print {
  .rs-services .rs-svc-head__nav,
  .rs-services .rs-tabs,
  .rs-services .rs-svc-ask,
  .rs-services .rs-svc-print,
  .rs-services .rs-btn,
  .rs-services .rs-acc__chev,
  .rs-services .rs-svc-sample,
  .rs-svc-tiles-sec--coop { display: none; }
  .rs-services details.rs-acc::details-content { content-visibility: visible; display: block; }
  .rs-services .rs-acc__head { pointer-events: none; }
  .rs-svc-tile,
  .rs-svc-row,
  .rs-svc-faq__item { break-inside: avoid; }
  .rs-svc-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rs-svc-tiles > .rs-svc-tile { grid-column: auto; }
  .rs-services a { color: inherit; text-decoration: none; }
}

/* === Moduł: Topka (grupa) === */
/* Ruch pozycji jak w RM i RK: ▲/▼ z liczbą miejsc (trójkąty rysowane wyżej), kreska = bez zmian, NOWOŚĆ i POWRÓT jako znaczki. Tygodnie na liście, wypadnięcia, Topka Mazur. */
.rs-top-move--same .rs-top-move__mark { display: inline-block; width: 0.75rem; height: 0.15rem; border-radius: 1px; background: currentColor; }
.rs-top-move--returned { padding: 0.15rem 0.7rem; border: 1px solid currentColor; border-radius: var(--rs-r-pill); color: var(--rs-forest); font-size: 0.75rem; text-transform: uppercase; }
.rs-top-podium .rs-top-move--returned { color: #9fd8c0; }
.rs-top-podium__weeks,
.rs-top-board__weeks { color: var(--rs-muted); font-size: 0.8125rem; font-weight: 400; }
.rs-top-podium__weeks { color: var(--rs-on-dark-2); }
.rs-top__longest { margin: var(--rs-s-4) 0 0; color: var(--rs-ink-2); font-size: 0.9375rem; }
.rs-top-dropped { margin-top: var(--rs-s-5); padding-top: var(--rs-s-3); border-top: 1px solid var(--rs-line); }
.rs-top-dropped__title { margin: 0 0 var(--rs-s-2); font-size: var(--rs-fs-h3); }
.rs-top-dropped__list { display: flex; flex-wrap: wrap; gap: var(--rs-s-1) var(--rs-s-4); margin: 0; padding: 0; list-style: none; color: var(--rs-ink-2); font-size: 0.9375rem; }
.rs-top-dropped__artist { color: var(--rs-ink); font-weight: 700; }

/* Topka Mazur: zapowiedź na stronie Topki i pełna strona wspólnego notowania */
.rs-top-net-teaser { display: grid; gap: var(--rs-s-4); margin-top: var(--rs-s-7); padding-top: var(--rs-s-4); border-top: 2px solid var(--rs-ink); }
.rs-top-net-teaser__title { margin: 0 0 var(--rs-s-2); font-size: var(--rs-fs-h2); }
.rs-top-net-teaser__week { color: var(--rs-muted); font-size: 0.6em; font-weight: 400; }
.rs-top-net-teaser__list { display: grid; align-content: start; gap: var(--rs-s-2); margin: 0; padding: var(--rs-s-4); border-radius: var(--rs-leaf); background: var(--rs-forest-deep); color: var(--rs-on-dark); list-style: none; }
.rs-top-net-teaser__list li { display: grid; grid-template-columns: 2.25rem minmax(0, 1fr); align-items: baseline; gap: var(--rs-s-3); }
.rs-top-net-teaser__rank { color: var(--rs-sun); font-family: var(--rs-font-display); font-size: 1.5rem; font-weight: 700; text-align: center; }
.rs-top-net-teaser__artist { font-weight: 700; }
.rs-top-net-teaser__name { color: var(--rs-on-dark-2); }
.rs-top-net__stations { margin-top: var(--rs-s-6); padding-top: var(--rs-s-3); border-top: 1px solid var(--rs-line); }
.rs-top-net__stations-title { margin: 0 0 var(--rs-s-2); font-size: var(--rs-fs-h3); }
.rs-top-net__stations-list { display: flex; flex-wrap: wrap; gap: var(--rs-s-2) var(--rs-s-5); margin: 0; padding: 0; list-style: none; }
.rs-top-net__stations-meta { color: var(--rs-muted); font-size: 0.875rem; }

@media (min-width: 720px) {
  .rs-top-board__weeks { display: none; }
  .rs-top-net-teaser { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; gap: var(--rs-s-7); }
  .rs-top-net .rs-top-board__row { grid-template-columns: 3.5rem minmax(0, 1.3fr) minmax(6rem, 1fr) 13rem; }
}

/* === Moduł: Rytm redakcji === */
/* Wydarzenia cykliczne: znacznik „Cyklicznie” (lista, karta) i blok „Następne terminy” na stronie wydarzenia. */
.rs-evrow__flag--repeat { background: var(--rs-surface-2); color: var(--rs-ink-2); }
.rs-chip--repeat { background: var(--rs-surface-2); color: var(--rs-ink-2); }
.rs-event-next { margin: 0 0 var(--rs-s-6); padding: var(--rs-s-4) var(--rs-s-5); border: 1px solid var(--rs-line); border-left: 4px solid var(--rs-forest-mid); border-radius: var(--rs-leaf); background: var(--rs-surface); }
.rs-event-next__title { margin: 0 0 var(--rs-s-3); font-size: 1rem; letter-spacing: 0.06em; text-transform: uppercase; }
.rs-event-next__list { display: grid; gap: var(--rs-s-2); margin: 0; padding: 0; list-style: none; }
.rs-event-next__list li { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--rs-s-2) var(--rs-s-3); padding-block: var(--rs-s-2); border-bottom: 1px solid var(--rs-line); }
.rs-event-next__list li:last-child { border-bottom: 0; }
.rs-event-next__time { color: var(--rs-muted); font-size: 0.9375rem; font-variant-numeric: tabular-nums; }
.rs-event-next__note { margin: 0; color: var(--rs-ink-2); }

@media (min-width: 720px) {
  .rs-event-next__list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--rs-s-6); }
}

/* === Stopka v3: niższa, jedna skala typograficzna we wszystkich kolumnach, kompaktowy pas grupy, wiersz prawny z podpisem wdrożenia === */
:root { --rs-credit: #f6cf4a; }
.rs-footer__legal { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; padding-block: var(--rs-s-1); }
.rs-footer__copy { padding-block: var(--rs-s-1); }
.rs-footer__credit { margin: 0; padding-block: var(--rs-s-1); color: var(--rs-on-dark); font-size: 0.8125rem; font-weight: 600; }
.rs-footer .rs-footer__credit a { color: var(--rs-on-dark); font-weight: 700; text-decoration: none; transition: color 0.15s ease; }
/* po najechaniu (i fokusie z klawiatury) odnośnik robi się złoty */
.rs-footer .rs-footer__credit a:hover,
.rs-footer .rs-footer__credit a:focus-visible { color: var(--rs-credit); }
@media (min-width: 720px) {
  .rs-footer__legal { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; }
  .rs-footer__credit { text-align: center; }
  .rs-footer__privacy { text-align: right; }
}
@media (min-width: 960px) {
  /* ta sama skala w kolumnach linków i w pasie grupy: tytuł 12 px kapitalikami, linki 14 px, ten sam rytm pionowy */
  .rs-footer__top { padding-block: var(--rs-s-5) var(--rs-s-3); }
  .rs-footer__groups { gap: 0 var(--rs-s-5); }
  .rs-foot-group > summary,
  .rs-foot-network > summary,
  .rs-foot-network__label { min-height: 1.5rem; margin: 0 0 var(--rs-s-2); color: #fff; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.12em; line-height: 1.2; text-transform: uppercase; }
  .rs-foot-group > summary { align-items: flex-start; min-height: 2.25rem; }
  .rs-foot-group ul { margin: 0; }
  .rs-foot-group li a,
  .rs-foot-network__set li a { min-height: 1.75rem; font-size: 0.875rem; line-height: 1.35; }
  /* pas grupy: niski, cztery równe kolumny po dwa wiersze (opis „katalog…” tylko na telefonie, O grupie w siatce 2 × 2) */
  .rs-foot-network { margin-top: 0; padding-block: var(--rs-s-3) var(--rs-s-2); }
  .rs-foot-network > summary { min-height: 1.5rem; margin-bottom: var(--rs-s-2); }
  .rs-foot-network__body { align-items: stretch; }
  .rs-foot-network__set { justify-content: center; padding-block: 0.125rem; padding-inline: var(--rs-s-4); }
  .rs-foot-network__label { margin-bottom: 0.25rem; }
  .rs-foot-network .rs-foot-note { display: none; }
  .rs-footer__legal { padding-block: 0; }
}
@media (min-width: 1200px) {
  .rs-foot-group > summary { min-height: 1.5rem; }
  /* szeroki ekran: O grupie w siatce 2 × 2, więc cztery kolumny pasa mają po dwa wiersze i tę samą wysokość */
  .rs-foot-network__set { padding-inline: var(--rs-s-3); }
  .rs-foot-network__set--about ul { display: grid; grid-template-columns: repeat(2, auto); column-gap: var(--rs-s-4); justify-content: center; }
  .rs-foot-network__set--about li a { white-space: nowrap; }
}

/* === Stopka: logo obok tekstu, na wysokość całego bloku opisowego === */
@media (min-width: 720px) {
  .rs-footer__brand--logo { display: grid; grid-template-columns: clamp(6rem, calc(var(--rs-logo-ar, 1) * 11rem), 16rem) minmax(0, 1fr); column-gap: var(--rs-s-5); align-items: start; }
  .rs-footer__brand--logo > :not(.rs-footer__name) { grid-column: 2; }
  .rs-footer__brand--logo .rs-footer__name { position: relative; grid-column: 1; grid-row: 1 / span 8; align-self: stretch; margin: 0; }
  .rs-footer__brand--logo .rs-footer__name .rs-brand__logo { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: contain; object-position: left center; }
}
@media (min-width: 960px) {
  .rs-footer__top:has(.rs-footer__brand--logo) { grid-template-columns: minmax(0, 1.7fr) minmax(0, 3fr); }
}

/* === Moduł: Przeróbka komunikatu i blok „W skrócie” (newsroom) === */
.rs-aeo {
  margin-block: 0 var(--rs-s-5);
  padding: var(--rs-s-4) var(--rs-s-5);
  border-left: 0.3125rem solid var(--rs-accent);
  border-radius: var(--rs-r-lg);
  background: var(--rs-accent-soft);
  color: var(--rs-ink);
}
.rs-aeo__title { margin: 0 0 var(--rs-s-1); color: var(--rs-accent-deep); font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.rs-aeo__text { margin: 0; font-size: 1.0625rem; line-height: 1.55; }
/* linia „Na podstawie komunikatu: …” na końcu tekstu złożonego przez redakcję z materiału źródła */
.rs-prose .rs-based-on { margin-block: var(--rs-s-5) 0; color: var(--rs-muted); font-size: 0.9375rem; }
.rs-prose .rs-based-on a { color: var(--rs-accent-deep); font-weight: 700; text-decoration: underline; text-underline-offset: 0.2em; }

/* === Moduł: Zdjęcia miast (Wikimedia Commons) === */
.rs-city-photo { position: relative; margin: 0; }
.rs-city-photo img { display: block; width: 100%; height: auto; }
.rs-city-photo__caption { margin-top: var(--rs-s-2); }
.rs-commons-credit { color: var(--rs-muted); font-size: 0.8125rem; line-height: 1.45; }
.rs-commons-credit a { color: inherit; text-decoration: underline; text-underline-offset: 0.2em; }
.rs-commons-credit a:hover,
.rs-commons-credit a:focus-visible { color: var(--rs-accent-deep); }

/* === Modul: Strony (tresci domyslne, W skrocie, O tym dziale) === */
.rs-aeo-wrap { margin-top: var(--rs-s-5); }
.rs-aeo--page { max-width: var(--rs-read); margin-bottom: 0; }
.rs-about { margin-top: var(--rs-gap-section); }
.rs-about > .rs-aeo-wrap { margin-top: 0; margin-bottom: var(--rs-s-5); }
.rs-term-about { margin-top: var(--rs-gap-section); }
.rs-term-about .rs-aeo { max-width: var(--rs-read); }
.rs-term-about__body { max-width: var(--rs-read); }
.rs-prose .rs-svc-faq { grid-template-columns: minmax(0, 1fr); margin-top: var(--rs-s-3); }

/* === Moduł: Przewodnik po gminach (strona gminy, karty kontaktu, fakty, „Zobacz też”, autolinki) === */
.rs-link-int { color: var(--rs-accent-deep); text-decoration: underline; text-decoration-thickness: 0.08em; text-underline-offset: 0.2em; }
.rs-link-int:hover,
.rs-link-int:focus-visible { color: var(--rs-ink); }

/* galeria zdjęć gminy (Commons): zdjęcie główne i rząd miniatur, stałe proporcje, podpis z licencją pod każdym zdjęciem */
.rs-gmina__gallery { margin-block: var(--rs-s-4) var(--rs-s-5); }
.rs-ggal { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--rs-s-3); }
.rs-ggal .rs-city-photo img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--rs-leaf); }
.rs-ggal .rs-ggal__main { grid-column: 1 / -1; }
.rs-ggal .rs-ggal__main img { aspect-ratio: 16 / 9; }
.rs-ggal--n1 .rs-ggal__main img { aspect-ratio: 16 / 9; }

/* spis treści strony gminy: chipy-odnośniki do sekcji */
.rs-gtoc { margin-block: 0 var(--rs-s-5); }
.rs-gtoc__title { margin: 0 0 var(--rs-s-2); color: var(--rs-muted); font-family: var(--rs-font-ui); font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.rs-gtoc__list { display: flex; flex-wrap: wrap; gap: var(--rs-s-2); margin: 0; padding: 0; list-style: none; }
.rs-gtoc__list a { display: inline-flex; align-items: center; gap: var(--rs-s-2); min-height: 2.75rem; padding: 0 var(--rs-s-3); border: 1px solid var(--rs-line-2); border-radius: var(--rs-r-pill); color: var(--rs-ink); font-size: 0.9375rem; font-weight: 600; text-decoration: none; }
.rs-gtoc__list a:hover,
.rs-gtoc__list a:focus-visible { border-color: var(--rs-accent); color: var(--rs-accent-deep); }

.rs-gsec { margin-block: 0 var(--rs-gap-section); scroll-margin-top: calc(var(--rs-header-h) + var(--rs-s-4)); }
.rs-gsec__lead { margin: 0 0 var(--rs-s-4); color: var(--rs-muted); }

/* karty kontaktu: stała liczba kolumn (1 / 2 / 3), karty jednej wysokości w rzędzie */
.rs-cgrid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--rs-s-3); }
.rs-ccard { display: flex; flex-direction: column; gap: var(--rs-s-2); height: 100%; padding: var(--rs-s-4); border: 1px solid var(--rs-line); border-radius: var(--rs-leaf); background: var(--rs-surface); }
.rs-ccard--tbc { border-left: 0.3125rem solid var(--rs-accent); }
.rs-ccard__title { margin: 0; font-size: var(--rs-fs-h3); line-height: 1.25; }
.rs-ccard__title a { color: var(--rs-ink); text-decoration: none; }
.rs-ccard__title a:hover,
.rs-ccard__title a:focus-visible { color: var(--rs-accent-deep); text-decoration: underline; }
.rs-ccard__badge { align-self: flex-start; margin: 0; padding: 0.125rem var(--rs-s-2); border-radius: var(--rs-r-pill); background: var(--rs-accent-soft); color: var(--rs-accent-deep); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; }
.rs-ccard__text { margin: 0; color: var(--rs-ink-2); font-size: 0.9375rem; }
.rs-ccard__src { margin: auto 0 0; padding-top: var(--rs-s-2); color: var(--rs-muted); font-size: 0.8125rem; line-height: 1.45; }
.rs-ccard__src a { color: inherit; text-decoration: underline; text-underline-offset: 0.2em; }
.rs-ccard__src a:hover,
.rs-ccard__src a:focus-visible { color: var(--rs-accent-deep); }
.rs-src__date { white-space: nowrap; }

/* fakty (adres, telefon, e-mail, strona, godziny, od kiedy) */
.rs-gdl { display: grid; gap: var(--rs-s-2); margin: 0; }
.rs-gdl > div { display: grid; grid-template-columns: 5.25rem minmax(0, 1fr); column-gap: var(--rs-s-3); align-items: baseline; }
.rs-gdl dt { color: var(--rs-muted); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; }
.rs-gdl dd { margin: 0; overflow-wrap: anywhere; font-size: 0.9375rem; line-height: 1.4; }
.rs-gdl a { color: var(--rs-ink); font-weight: 600; text-decoration: underline; text-decoration-color: var(--rs-line-2); text-underline-offset: 0.2em; }
.rs-gdl a:hover,
.rs-gdl a:focus-visible { color: var(--rs-accent-deep); text-decoration-color: currentColor; }

/* blok danych kontaktowych na stronie wpisu */
.rs-gfacts { margin-block: 0 var(--rs-s-5); padding: var(--rs-s-4) var(--rs-s-5); border: 1px solid var(--rs-line); border-radius: var(--rs-r-lg); background: var(--rs-sand); }
.rs-gfacts--tbc { border-left: 0.3125rem solid var(--rs-accent); }
.rs-gfacts .rs-blockhead { margin-top: 0; }
.rs-gfacts__note { margin: 0 0 var(--rs-s-3); color: var(--rs-ink-2); font-size: 0.9375rem; }

/* FAQ strony gminy */
.rs-gfaq__item { padding-block: var(--rs-s-3); border-top: 1px solid var(--rs-line); }
.rs-gfaq__item:first-child { border-top: 0; padding-top: 0; }
.rs-gfaq__q { margin: 0 0 var(--rs-s-1); font-size: 1.0625rem; line-height: 1.3; }
.rs-gfaq__a { margin: 0; color: var(--rs-ink-2); }

/* wiadomości i wydarzenia z gminy */
.rs-gnews { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--rs-s-5); margin-block: 0 var(--rs-gap-section); }
.rs-gnews .rs-blockhead { margin-top: 0; }
.rs-gnews__list { display: grid; gap: var(--rs-s-3); }

/* mapa linków */
.rs-gmap__cols { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--rs-s-4); }
.rs-gmap__title { margin: 0 0 var(--rs-s-2); font-size: 1rem; line-height: 1.3; }
.rs-gmap__title a { color: var(--rs-ink); text-decoration: none; }
.rs-gmap__title a:hover,
.rs-gmap__title a:focus-visible { color: var(--rs-accent-deep); text-decoration: underline; }
.rs-gmap__list { display: grid; gap: var(--rs-s-1); margin: 0; padding: 0; list-style: none; font-size: 0.9375rem; }
.rs-gmap__list a { color: var(--rs-ink-2); text-decoration: none; }
.rs-gmap__list a:hover,
.rs-gmap__list a:focus-visible { color: var(--rs-accent-deep); text-decoration: underline; }
.rs-gmap__others { margin-top: var(--rs-s-5); padding-top: var(--rs-s-4); border-top: 1px solid var(--rs-line); }

/* „Zobacz też” wpisu */
.rs-gsee { margin-block: var(--rs-s-5) 0; }
.rs-gsee__list { display: grid; gap: var(--rs-s-2); margin: 0; padding: 0; list-style: none; }
.rs-gsee__item { display: flex; flex-direction: column; gap: 0.125rem; padding-block: var(--rs-s-2); border-top: 1px solid var(--rs-line); }
.rs-gsee__link { color: var(--rs-ink); font-weight: 700; text-decoration: none; }
.rs-gsee__link:hover,
.rs-gsee__link:focus-visible { color: var(--rs-accent-deep); text-decoration: underline; }
.rs-gsee__meta { color: var(--rs-muted); font-size: 0.8125rem; }

@media (min-width: 480px) {
  .rs-ggal--n3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rs-ggal--n4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rs-ggal--n2 .rs-ggal__main { grid-column: auto; }
  .rs-ggal--n2 .rs-ggal__main img { aspect-ratio: 4 / 3; }
}

@media (min-width: 720px) {
  .rs-cgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--rs-s-4); }
  .rs-gnews { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--rs-s-6); }
  .rs-gmap__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--rs-s-5); }
}

@media (min-width: 960px) {
  .rs-list-wrap .rs-cgrid,
  .rs-layout--solo .rs-cgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rs-ggal .rs-ggal__main img { aspect-ratio: 21 / 9; }
  .rs-ggal--n2 .rs-ggal__main img { aspect-ratio: 4 / 3; }
  .rs-layout--solo .rs-gmap__cols { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (min-width: 720px) {
  .rs-gsec .rs-plist:not(:has(> li:nth-child(2))) { grid-template-columns: minmax(0, 1fr); }
  .rs-gsec .rs-plist:not(:has(> li:nth-child(2))) .rs-prow { max-width: 40rem; }
}

/* Strona gminy bez kolumny bocznej (brak wiadomości, wydarzeń i reklam): treść na całą szerokość, karty w trzech kolumnach, a nie wąska kolumna czytania */
@media (min-width: 960px) {
  .rs-layout--solo.rs-layout--wide { grid-template-columns: minmax(0, 1fr); }
  .rs-layout--solo.rs-layout--wide > .rs-layout__main { max-width: none; }
}

/* === Stopka: najwyżej 5 linków w kolumnie, reszta pod „Więcej”; lepka kolumna marki; para kart wyśrodkowana === */
.rs-foot-more { margin: 0; }
.rs-foot-more > summary { display: inline-flex; align-items: center; min-height: 2.75rem; padding-right: var(--rs-s-2); color: var(--rs-on-dark-2); font-size: 0.875rem; font-weight: 600; cursor: pointer; list-style: none; }
.rs-foot-more > summary::-webkit-details-marker { display: none; }
.rs-foot-more > summary::after { content: "+"; margin-left: 0.4rem; font-size: 1.125rem; font-weight: 400; line-height: 1; }
.rs-foot-more[open] > summary::after { content: "\2212"; }
.rs-foot-more > summary:hover { color: #fff; }
.rs-foot-more ul { margin: 0 0 var(--rs-s-2); padding: 0; list-style: none; }
@media (min-width: 960px) {
  /* „Więcej (N)” zachowuje cel dotykowy 44 px także na komputerze (bramka measure.mjs); wcześniej było tu 1.75rem */
  /* dwie kolumny stopki (marka, linki): krótsza stoi pośrodku wysokości dłuższej (.rs-pair--center), na końcu strony sticky nie miałby dokąd jechać */
  .rs-footer__top { align-items: start; }
  /* dwa elementy w rzędzie siatki kart stoją pośrodku, nie przy lewej krawędzi */
  .rs-layout--solo .rs-cgrid:has(> :nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0, 24rem)); justify-content: center; }
}

/* === Moduł: Planer emisji i prezentacja cen (alpha30) === */
/* Cennik w stylu cennika RM z grupy: duża kwota, „netto”, cena z VAT, cena w stacji ponadregionalnej (nazwa z profilu), oszczędność pakietu i plakietka „Polecany”;
   planer emisji: gotowe plany (karty) i własny plan (stacja, emisji dziennie, dni, tygodnie) z wynikiem na żywo. Telefon najpierw: cele dotykowe min. 44 px, jedna kolumna, wynik w kartach,
   lepki pasek z kwotą i przyciskiem zapytania nad paskiem odsłuchu (tylko przy planerze, znika z jego końcem i przy otwartym banerze zgód); dwie kolumny od 960 px. Bez JS planer jest ukryty. */
.rs-pack__net,
.rs-svc-row__net { color: var(--rs-muted); font-family: var(--rs-font-ui); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.rs-pack__gross,
.rs-pack__prem,
.rs-svc-row__gross,
.rs-svc-row__prem { margin: 0; color: var(--rs-muted); font-size: 0.875rem; font-variant-numeric: tabular-nums; }
.rs-pack__prem,
.rs-svc-row__prem { color: var(--rs-ink-2); font-weight: 700; }
.rs-pack__prem-unit { color: var(--rs-muted); font-weight: 400; }
.rs-pack__saving { display: inline-block; padding: 0 0.4rem; border-radius: var(--rs-r-pill); background: var(--rs-forest-soft); color: var(--rs-forest); font-size: 0.8125rem; font-style: normal; font-weight: 700; }

.rs-planer__lead { margin-bottom: var(--rs-s-4); }
.rs-acc--planer { border-top: 0; }
.rs-acc--planer + .rs-acc--planer { border-top: 1px solid var(--rs-line-2); }
.rs-planer__acctitle { margin: 0; font-family: var(--rs-font-ui); font-size: 1.0625rem; font-weight: 700; }
.rs-planer-presets__lead { margin: 0 0 var(--rs-s-3); }
.rs-planer-presets__list { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--rs-s-3); margin: 0 0 var(--rs-s-5); padding: 0; list-style: none; }
.rs-planer-preset { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "name price" "rhythm gross" "count count"; column-gap: var(--rs-s-3); row-gap: 0.1rem; align-content: start; min-width: 0; padding: var(--rs-s-4); border: 1px solid var(--rs-line); border-top: 3px solid var(--rs-ink); border-radius: var(--rs-leaf); background: var(--rs-surface); }
.rs-planer-preset > * { margin: 0; grid-column: 1 / -1; min-width: 0; }
.rs-planer-preset__name { grid-area: name; font-size: 1.25rem; line-height: 1.2; overflow-wrap: anywhere; }
.rs-planer-preset__rhythm { grid-area: rhythm; color: var(--rs-ink-2); font-size: 0.9375rem; }
.rs-planer-preset__count { grid-area: count; color: var(--rs-muted); font-size: 0.875rem; font-variant-numeric: tabular-nums; }
.rs-planer-preset__price { grid-area: price; text-align: right; }
.rs-planer-preset__amount { font-family: var(--rs-font-display); font-size: 1.5rem; font-variant-numeric: tabular-nums; line-height: 1.1; white-space: nowrap; }
.rs-planer-preset__net { color: var(--rs-muted); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.rs-planer-preset__gross { grid-area: gross; color: var(--rs-muted); font-size: 0.8125rem; font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.rs-planer-preset__other,
.rs-planer-preset__same { color: var(--rs-ink-2); font-size: 0.875rem; font-variant-numeric: tabular-nums; }
.rs-planer-preset__other { font-weight: 700; }
.rs-planer-preset__same { color: var(--rs-muted); }
.rs-planer-preset__desc { margin-top: var(--rs-s-2); color: var(--rs-ink-2); font-size: 0.875rem; }
.rs-planer-preset__actions { display: flex; flex-wrap: wrap; gap: var(--rs-s-2); margin-top: var(--rs-s-3); }
.rs-planer-preset__actions .rs-btn { flex: 1 1 9rem; padding-inline: 0.5rem; font-size: 0.9375rem; }
.rs-planer-preset__actions [hidden] { display: none; }

.rs-planer[hidden] { display: none; }
.rs-planer__nojs { margin-top: 0; }
.rs-planer__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--rs-s-4); }
.rs-planer__ctrl { display: grid; gap: var(--rs-s-4); min-width: 0; }
.rs-planer__fs { min-width: 0; margin: 0; padding: 0; border: 0; }
.rs-planer__legend { display: block; margin: 0 0 var(--rs-s-2); padding: 0; color: var(--rs-muted); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.rs-planer__opts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--rs-s-2); }
/* przełącznik stacji: cała karta jest celem dotykowym (pole radio rozciągnięte na kartę i niewidoczne, znacznik rysuje ::before) */
.rs-planer__opt { position: relative; display: flex; align-items: flex-start; gap: 0.5rem; min-width: 0; min-height: 2.75rem; padding: 0.5rem 0.65rem; border: 1px solid var(--rs-line-2); border-radius: var(--rs-leaf); background: var(--rs-surface); cursor: pointer; }
.rs-planer__opt::before { content: ""; flex: none; width: 1.125rem; height: 1.125rem; margin-top: 0.125rem; border: 2px solid var(--rs-ink-2); border-radius: 50%; background: var(--rs-surface); }
.rs-planer__opt:has(input:checked)::before { border-color: var(--rs-accent); background: radial-gradient(circle, var(--rs-accent) 0 45%, var(--rs-surface) 50%); }
.rs-planer__opt input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.rs-planer__opt:has(input:checked) { border-color: var(--rs-ink); background: var(--rs-accent-soft); box-shadow: inset 0 0 0 1px var(--rs-ink); }
.rs-planer__opt:has(input:focus-visible) { outline: 3px solid var(--rs-forest); outline-offset: 2px; }
.rs-planer__opt-text { display: grid; min-width: 0; gap: 0.05rem; }
.rs-planer__opt-name { font-weight: 700; line-height: 1.25; overflow-wrap: anywhere; }
.rs-planer__opt-sub { color: var(--rs-muted); font-size: 0.75rem; line-height: 1.3; }
.rs-planer__step { display: inline-grid; grid-template-columns: 2.75rem 4.5rem 2.75rem; }
.rs-planer__step button,
.rs-planer__step input { min-width: 0; min-height: 2.75rem; border: 1px solid var(--rs-line-2); background: var(--rs-surface); color: var(--rs-ink); font: inherit; }
.rs-planer__step button { font-size: 1.5rem; line-height: 1; cursor: pointer; }
.rs-planer__step button:first-child { border-radius: var(--rs-leaf) 0 0 var(--rs-leaf); }
.rs-planer__step button:last-child { border-radius: 0 var(--rs-leaf) var(--rs-leaf) 0; }
.rs-planer__step button:hover { background: var(--rs-surface-2); }
.rs-planer__step input { border-inline: 0; font-size: 1.25rem; font-weight: 700; font-variant-numeric: tabular-nums; text-align: center; appearance: textfield; -moz-appearance: textfield; }
.rs-planer__step input::-webkit-inner-spin-button,
.rs-planer__step input::-webkit-outer-spin-button { margin: 0; appearance: none; -webkit-appearance: none; }
.rs-planer__hint { display: inline-block; margin-left: var(--rs-s-2); color: var(--rs-muted); font-size: 0.8125rem; }
.rs-planer__days { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.35rem; }
.rs-planer__quick { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.35rem; margin-top: 0.35rem; }
.rs-planer__chips { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-top: var(--rs-s-2); }
.rs-planer__days button,
.rs-planer__quick button,
.rs-planer__chips button { min-height: 2.75rem; padding: 0.35rem 0.4rem; border: 1px solid var(--rs-line-2); border-radius: var(--rs-leaf); background: var(--rs-surface); color: var(--rs-ink); font: inherit; font-size: 0.9375rem; font-weight: 700; line-height: 1.2; cursor: pointer; }
.rs-planer__chips button { flex: 1 1 2.75rem; padding-inline: 0.2rem; font-size: 0.875rem; }
.rs-planer__quick button,
.rs-planer__chips button { font-weight: 400; }
.rs-planer__days button:hover,
.rs-planer__quick button:hover,
.rs-planer__chips button:hover { border-color: var(--rs-ink); }
.rs-planer__days button[aria-pressed="true"] { border-color: var(--rs-ink); background: var(--rs-ink); color: #fff; }
.rs-planer__quick button[aria-pressed="true"],
.rs-planer__chips button[aria-pressed="true"] { border-color: var(--rs-ink); background: var(--rs-accent-soft); font-weight: 700; box-shadow: inset 0 0 0 1px var(--rs-ink); }
.rs-planer__ctrl button:focus-visible,
.rs-planer__step input:focus-visible { outline: 3px solid var(--rs-forest); outline-offset: 2px; }

.rs-planer__out { min-width: 0; padding: var(--rs-s-4); border: 1px solid var(--rs-line); border-top: 3px solid var(--rs-accent); border-radius: var(--rs-leaf); background: var(--rs-surface); }
.rs-planer__out > * { margin-top: 0; }
.rs-planer__total { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.1rem var(--rs-s-3); margin: 0; }
.rs-planer__total-label { color: var(--rs-muted); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.rs-planer__total-sum { font-family: var(--rs-font-display); font-size: 2.25rem; font-variant-numeric: tabular-nums; line-height: 1.1; }
.rs-planer__sub { margin: 0.2rem 0 0; color: var(--rs-forest); font-size: 0.9375rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.rs-planer__saving { margin: 0.2rem 0 0; color: var(--rs-ink-2); font-size: 0.875rem; }
.rs-planer__sub:empty,
.rs-planer__saving:empty,
.rs-planer__note:empty { display: none; }
.rs-planer__counts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--rs-s-2); margin: var(--rs-s-3) 0; padding: 0; list-style: none; }
.rs-planer__count { display: grid; align-content: center; padding: var(--rs-s-2); border: 1px solid var(--rs-line); border-radius: var(--rs-leaf); background: var(--rs-sand); text-align: center; }
.rs-planer__count strong { font-family: var(--rs-font-display); font-size: 1.5rem; font-variant-numeric: tabular-nums; line-height: 1.1; }
.rs-planer__count span { color: var(--rs-muted); font-size: 0.75rem; line-height: 1.25; }
.rs-planer__lines { margin: 0; padding: 0; border-top: 1px solid var(--rs-line); list-style: none; }
.rs-planer__line { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: var(--rs-s-3); align-items: baseline; padding: 0.6rem 0; border-bottom: 1px solid var(--rs-line); }
.rs-planer__line-name { min-width: 0; font-weight: 700; overflow-wrap: anywhere; }
.rs-planer__line-sum { font-family: var(--rs-font-display); font-size: 1.125rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.rs-planer__line-sub { grid-column: 1 / -1; color: var(--rs-muted); font-size: 0.8125rem; font-variant-numeric: tabular-nums; }
.rs-planer__line--period .rs-planer__line-name { color: var(--rs-ink-2); font-weight: 400; }
.rs-planer__note { margin: var(--rs-s-3) 0 0; padding: var(--rs-s-2) var(--rs-s-3); border-left: 3px solid var(--rs-forest-mid); background: var(--rs-forest-soft); font-size: 0.875rem; }
.rs-planer__fine { margin-top: var(--rs-s-3); }

/* lepki pasek (telefon i tablet): kwota i przycisk zapytania nad paskiem odsłuchu, tylko dopóki trwa planer (pasek jest w jego kontenerze); baner zgód ma pierwszeństwo */
.rs-planer__bar { position: sticky; bottom: calc(var(--rs-player-h) + env(safe-area-inset-bottom, 0px) + var(--rs-s-2)); z-index: 20; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--rs-s-2) var(--rs-s-3); padding: var(--rs-s-2) var(--rs-s-3); border: 1px solid var(--rs-ink); border-radius: var(--rs-leaf); background: var(--rs-surface); box-shadow: var(--rs-shadow-lg); }
html.rs-consent-open .rs-planer__bar { position: static; box-shadow: none; }
.rs-planer__bar-sum { display: grid; margin: 0; }
.rs-planer__bar-label { color: var(--rs-muted); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.1em; line-height: 1.2; text-transform: uppercase; }
.rs-planer__bar-amount { font-family: var(--rs-font-display); font-size: 1.375rem; font-variant-numeric: tabular-nums; line-height: 1.1; }
.rs-planer__ask { flex: 1 1 12rem; padding-inline: 0.9rem; font-size: 0.9375rem; text-align: center; }
.rs-planer__ask[aria-disabled="true"] { opacity: 0.5; pointer-events: none; }

@media (min-width: 480px) {
  .rs-planer__days { grid-template-columns: repeat(7, minmax(0, 1fr)); }
  .rs-planer__counts { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .rs-planer__ask { flex: 0 1 auto; }
}

@media not all and (min-width: 720px) {
  .rs-planer-preset__same,
  .rs-planer-preset__desc { display: none; }
}

@media (min-width: 720px) {
  .rs-svc-row__price { max-width: 18rem; }
  .rs-acc--planer + .rs-acc--planer { border-top: 0; }
  .rs-acc--planer > .rs-acc__head { margin-bottom: var(--rs-s-2); }
  .rs-acc--planer .rs-planer__acctitle { color: var(--rs-accent-deep); font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; }
  .rs-planer-presets__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--rs-s-4); }
  .rs-planer__opts { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .rs-planer__total-sum { font-size: 2.75rem; }
}

@media (min-width: 960px) {
  .rs-planer-presets__list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .rs-planer-preset { display: flex; flex-direction: column; align-items: flex-start; gap: 0.1rem; }
  .rs-planer-preset > * { width: 100%; }
  .rs-planer-preset__name { order: 1; }
  .rs-planer-preset__rhythm { order: 2; }
  .rs-planer-preset__count { order: 3; }
  .rs-planer-preset__price { order: 4; margin-top: var(--rs-s-2); text-align: left; }
  .rs-planer-preset__gross { order: 5; text-align: left; }
  .rs-planer-preset__other { order: 6; margin-top: var(--rs-s-2); }
  .rs-planer-preset__same { order: 7; }
  .rs-planer-preset__desc { order: 8; }
  .rs-planer-preset__actions { order: 9; }
  .rs-planer-preset__amount { font-size: 1.875rem; }
  .rs-planer-preset__actions { margin-top: auto; padding-top: var(--rs-s-3); }
  .rs-planer-preset__actions .rs-btn { flex: 1 1 100%; }
  .rs-planer__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: auto 1fr; column-gap: var(--rs-s-6); align-items: start; }
  .rs-planer__ctrl { grid-row: 1 / span 2; }
  .rs-planer__opts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rs-planer__out { grid-column: 2; grid-row: 1; }
  .rs-planer__bar { position: static; grid-column: 2; grid-row: 2; padding: 0; border: 0; background: transparent; box-shadow: none; justify-content: stretch; }
  .rs-planer__bar-sum { display: none; }
  .rs-planer__ask { flex: 1 1 auto; }
}

@media print { .rs-planer__bar, .rs-planer__ctrl, .rs-planer-preset__actions { display: none; } }

/* === układ: krótsza kolumna przyklejona === */
/* Zasada (zlecenie właściciela): w pasie z kolumnami obok siebie (od 960 px, klasa .rs-pair na kontenerze) KRÓTSZA kolumna, lewa czy prawa, jest przyklejona (sticky)
   i jedzie za dłuższą aż do końca pasa, więc pod nią nie ma dziury. Dłuższa kolumna ma wysokość pasa, więc jej sticky jest bezczynny (nie trzeba wiedzieć z góry,
   która jest krótsza). Kolumnę wyższą od okna przykleja dolną krawędzią skrypt assets/pairs.js (ustawia --rs-pair-top, ujemne albo mniejsze od --rs-stick-top; bez
   skryptu zostaje przyklejenie górą). .rs-pair--equal to równorzędne karty tej samej wagi: rozciągnięte do równej wysokości, bez sticky. .rs-pair--center to dokładnie
   dwa elementy na końcu strony (stopka), gdzie nie ma już dokąd przewijać: krótszy stoi pośrodku wysokości dłuższego. Poniżej 960 px kolumny układają się jedna pod drugą,
   bez zmian. Zwykły overflow-x: clip na .rs-main i body nie tworzy kontenera przewijania, więc nie blokuje sticky (overflow: hidden/auto by blokował). */
:root { --rs-stick-top: calc(var(--rs-header-h) + var(--rs-s-4)); }
@media (min-width: 960px) {
  .rs-pair { align-items: start; }
  .rs-pair:not(.rs-pair--equal, .rs-pair--center) > * { align-self: start; }
  /* sticky tylko dla kolumn, które skrypt (pairs.js) uznał za KRÓTSZE i leżą w ostatnim rzędzie pasa: przyklejona kolumna jedzie w obrębie całego pasa, więc w rzędzie z kolejnymi rzędami pod spodem nachodziłaby na ich treść */
  .rs-pair > [data-rs-pair="short"] { position: sticky; top: var(--rs-pair-top, var(--rs-stick-top)); }
  .rs-pair--equal { align-items: stretch; }
  .rs-pair--center { align-items: center; }
  .rs-planer__grid > .rs-planer__bar { position: static; }
  /* pomiar naturalnego położenia kolumn (skrypt na chwilę wyłącza sticky; bez malowania pomiędzy) */
  .rs-pair[data-rs-measure] > [data-rs-pair="short"] { position: relative; top: 0; }
  /* dokładnie dwa elementy w rzędzie (dwie rolki w pasie rolek) stoją pośrodku, nie przy lewej krawędzi; od 960 px dwa kafle zawsze mieszczą się bez przewijania */
  .rs-rail__track:has(> :nth-child(2):last-child) { justify-content: center; }
}
@media print {
  .rs-pair > [data-rs-pair="short"] { position: static; }
}

/* ------------------------------------------------------------------ obrazy elementów (alpha34): łańcuch obrazu kart i stron
   Zdjęcie wpisu, zdjęcie z Commons (z podpisem), obraz domyślny z panelu albo grafika marki z motywu; kafel .rs-tile zostaje awaryjnie.
   Obraz zawsze wypełnia ramkę karty (object-fit: cover): wysokości kart zostają takie, jak przy kaflu. */
.rs-eimg { position: relative; display: block; width: 100%; height: 100%; overflow: hidden; background: var(--rs-forest); }
.rs-eimg__img { display: block; width: 100%; height: 100%; object-fit: cover; }
.rs-eimg__credit {
  position: absolute;
  inset-inline: 0;
  bottom: 0;
  padding: 0.125rem 0.4rem;
  overflow: hidden;
  background: rgba(20, 23, 26, 0.7);
  color: #fff;
  font-size: 0.6875rem;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.rs-eimg__credit--top { top: 0; bottom: auto; }
.rs-pmini__media { position: relative; overflow: hidden; background: var(--rs-forest); }
.rs-prow__media { background: var(--rs-forest); }
.rs-nlead__media .rs-eimg { height: 100%; }
.rs-nlead__media .rs-eimg__credit { z-index: 1; }
.rs-eimg-figure .rs-eimg__img { height: auto; aspect-ratio: 8 / 5; border-radius: var(--rs-leaf); }
.rs-vtile--img { position: relative; display: block; padding: 0; overflow: hidden; }
.rs-vtile__bg { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
.rs-vtile--img .rs-vtile__label {
  position: absolute;
  left: 0.5rem;
  bottom: 0.5rem;
  z-index: 1;
  display: block;
  max-width: calc(100% - 3.5rem);
  padding: 0.125rem 0.4rem;
  overflow: hidden;
  background: rgba(20, 51, 41, 0.88);
  border-radius: var(--rs-r-md);
  color: var(--rs-on-dark);
  font-size: 0.6875rem;
  letter-spacing: 0.08em;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.rs-ggal--fallback .rs-eimg__img { aspect-ratio: 16 / 9; }
.rs-person-card__media .rs-eimg__img,
.rs-person__photo .rs-eimg__img { aspect-ratio: 1; object-fit: cover; }
