/* KS – Korandův sbor – přepisy Olivero
   ============================================================
   Pořadí sekcí kopíruje tok page.html.twig.   (index čerstvý 22. 6. 2026)

   0. GOOGLE FONTS + :root proměnné
   1. ZÁKLADNÍ NASTAVENÍ  (body, typografie, .page-wrapper)
   2. HEADER
      2a. Obal hlavičky             (.site-header)
      2b. Branding                  (.site-branding, logo, název, slogan)
      2c. Dvouřádková hlavička      (.ks-header-branding, .ks-header-nav)
      2d. Sekundární menu – obecné  (lupa, účet – napravo)
      2e. Mobilní secondary nav     (.ks-mobile-secondary)
      2f. Hamburger a mobile-buttons (.mobile-nav-button, .mobile-buttons)
      2g. body:not – base overrides (barvy textu v nav)
      2h. Vyhledávací formulář      (.block-search-wide__wrapper)
   3. NAV – DESKTOP    (min-width: 75rem)
   4. NAV – MOBIL      (max-width: 31.25rem)
   5. MAIN             (.layout-main-wrapper, teasery)
   6. FOOTER           (patička, přihlášení na malém mobilu, sociální + copyright)
   7. SIDEBAR          (.sidebar-grid, .sidebar-menu, bloky)
      7a. Olivero .menu--sidebar — font Inter, odsazení
   8. POLISH – 20. 5. 2026  (v3: po analýze view-source)
      8a. BODY a obecný text – 16 px, řádkování
      8b. .text-content – override Olivero
      8c. Ostatní místa s p (sidebar, teasery)
      8d. NADPISY – nic nepřebíjíme
      8e. Olivero submenu indikátory – schovat na desktopu
      8f. SEZNAMY – padding & odstupy
      8g. Obsahové tabulky — .provoz (rozvrh shromáždění)
   9. GALERIE          (grid pro CT gallery, field_galerie)
  10. PDF KARTY        (.pdf-card, .pdf-grid — 7. 6. 2026, media--document.html.twig)
      10a. PDF karta   (.pdf-card)
      10b. Mřížka PDF karet (.pdf-grid — generační stránky)
  11. TEASERY & KATEGORIE  (7. 6. 2026)
      11a. Teasery: obrázky hranaté, bez Oliverova kruhového ořezu
      11b. Kategorie: mřížka teaserů 3 / 2 / 1
      11c. Rozcestník /kontakty — mřížka karet 3 / 2 / 1
      11d. Rozcestník /kontakty — CTA blok provozních zpráv
  12. KS-HERO — úvodní banner kategorií (vkládá se do popisu termu)
      12d. Generační stránky Sborových listů  (8. 6. 2026)
      12e. Rozcestníkové panely — společný vzhled block displejů
      12e-mobile. Úzký viewport: „více" pod nadpis
      12e-rss.    RSS ikona na Sborových listech — schovat
  13. KARTA VÝPISU — společný vzor (Galerie + rozcestníkové panely)  (verze 22. 6. 2026)
      13a. Mřížka — prahy 1780/1150, align-items: stretch
      13b. Karta — vyplní výšku buňky, --ks-karta-foto-h
      13c. Náhled — jednotná výška, object-fit: cover
      13c-ph. Karta bez fotky → placeholder (ovečka, contain)
      13d. Textová část — text nahoru, perex flex:1, line-clamp
      13e. Přístupnost — viditelný fokus na odkazu náhledu
      13f. Hudba a koncerty — skrýt VÝPIS, ne hero
  14. SKRYTÍ ARCHIVNÍ BRÁNY 4022 Z MENU  (14. 6. 2026)
  15. PRO RODINU — rozcestník  (21. 6. 2026)
  16. LIDÉ — rozcestník        (21. 6. 2026)
  17. SENIOŘI — rozcestník     (21. 6. 2026)

   Breakpointy (shodné s Olivero):
     malý mobil  < 31.25rem  (≈ 500 px)
     tablet      ≥ 42.5rem   (≈ 680 px)
     desktop     ≥ 75rem     (≈ 1200 px) ← přepínač mobile / desktop nav
   Mřížky PDF/kategorií/karet používají vlastní zlomy 1780 / 1150 / 860 / 540 px.
   ============================================================ */

/* 0. GOOGLE FONTS */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,600;0,700;1,400&family=Lora:ital,wght@0,400;0,600;0,700;1,400&family=Montserrat:wght@400;500;600;700&display=swap');

:root {
  /* Barvy — beze změny */
  --ks-blue-dark:  #001954;
  --ks-blue:       #005b9a;
  --ks-blue-mid:   #3c8cc2;
  --ks-blue-light: #97c5e9;
  --ks-warm-dark:  #635e5a;
  --ks-warm:       #8a857a;
  --ks-warm-light: #f0e1d3;
  --ks-text:       #222222;
  --ks-muted:      #635e5a;
  --ks-border:     #d1dce8;
  --ks-bg:         #f6f9fc;
  --ks-white:      #ffffff;

  /* Font rodiny */
  --ks-font-heading: 'metropolis', 'Montserrat', sans-serif;
  --ks-font-body:    'Lora', Georgia, serif;
  --ks-font-heritage:'Cormorant Garamond', 'Lora', serif;

  /* Škála písma (podlaha 13 px) */
  --ks-fs-xs:   0.8125rem;  /* 13 px */
  --ks-fs-sm:   0.875rem;   /* 14 px */
  --ks-fs-base: 1rem;       /* 16 px */
  --ks-fs-md:   1.125rem;   /* 18 px */
  --ks-fs-lg:   1.25rem;    /* 20 px */
  --ks-fs-xl:   1.5rem;     /* 24 px */
  --ks-fs-2xl:  2.25rem;       /* 32 px */
  --ks-fs-3xl:  clamp(2.25rem, 3vw, 3rem);     /* 40 px */
  --ks-fs-4xl:  5rem;        /*80 px */
  --ks-fs-hero: 2.8rem;     /* ~45 px */

  /* Odsazení */
  --ks-sp-1: 0.5rem;
  --ks-sp-2: 0.75rem;
  --ks-sp-3: 1rem;
  --ks-sp-4: 1.5rem;
  --ks-sp-5: 2.5rem;
  --ks-sp-6: 4rem;

  /* Rádiusy a výška ovládacích prvků */
  --ks-radius:    4px;
  --ks-radius-lg: 8px;
  --ks-control-h: 2.75rem;

  /* Hero téma (změna barvy = jeden řádek) */
  --ks-hero-bg:     var(--ks-warm-light);
  --ks-hero-fg:     var(--ks-blue-dark);
  --ks-hero-perex:  var(--ks-warm-dark);
  --ks-hero-accent: var(--ks-blue);

  /* Karty — ponecháno */
  --card-w:    320px;
  --card-h:    160px;
  --max-width: 100vw;

  /*sticky branding*/
  --ks-vyska-brandingu: 104px;
}

/* ============================================================
   1. ZÁKLADNÍ NASTAVENÍ
   ============================================================ */

body {
  font-family: var(--ks-font-body);
  color: var(--ks-text);
}

/* PO */
h1, h2, h3, h4, h5, h6,
.node__title,
.views-field-title a {
  font-family: var(--ks-font-heading);
  font-weight: 700;
  line-height: 1.25;
}

h1 {
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--ks-blue-dark);
  font-size: var(--ks-fs-4xl);
    text-shadow:
    12px 10px 10px rgba(0, 25, 84, .10),
     2px 10px 16px rgba(0, 25, 84, .14);
}

.path-historie-sboru h2 {
  margin-block: 0;
}

.page-wrapper {
  width: 100vw;
  max-width: 100vw;
}

@media (max-width: 43.75rem) {
  .region--content {
    margin: 5vw;
  }
}  

/* ============================================================
   2. HEADER
   Koresponduje s: header#header.site-header (page.html.twig)

   Struktura:
     header.site-header.ks-header-branding
       └─ .container
            └─ #block-ks-site-branding.site-branding
     div.ks-header-nav
       └─ .ks-header-nav__container
            ├─ .mobile-buttons
            │    ├─ button.mobile-nav-button  (hamburger)
            │    └─ .ks-mobile-secondary      (lupa + účet)
            └─ #header-nav
                 ├─ .region--primary-menu
                 └─ .region--secondary-menu
   ============================================================ */

/* ----------------------------------------------------------
   2a. Obal hlavičky
   ---------------------------------------------------------- */

.site-header {
  border-bottom: 1px;
  overflow: visible !important;
}

.social-bar {
  display: none !important;
}

/* ----------------------------------------------------------
   2b. Branding
   #block-ks-site-branding → .site-branding
   Název  = wordmark (VERZÁLKY, font přes --ks-font-heading)
   Slogan = podtitul (běžné písmo, menší, NE verzálky)
   ---------------------------------------------------------- */

.site-branding {
  align-items: center;
  gap: 1rem;
  background-image: none;
  margin-inline: auto;
  padding-inline-start: 6vw;
  min-height: auto;
  background: linear-gradient(to bottom, var(--ks-blue) 0%, var(--ks-blue-mid)  100%) !important;
}

/* Logo */
.site-branding__logo img {
  max-height: 80px;
  width: auto;
}

/* Název webu — VERZÁLKOVÝ wordmark */
.site-branding__name a {
  color: var(--ks-white) !important;
  font-family: var(--ks-font-heading);
  font-weight: 700;
  text-transform: uppercase;            /* ← KORANDŮV SBOR, na všech šířkách */
  letter-spacing: 0.04em;               /* ← verzálky chtějí vzduch */
  text-decoration: none;
  font-size: clamp(1rem, 2.2vw, 2.1rem);
  line-height: 1.1;
  text-shadow: 0 2px 4px rgba(0, 31, 102, 0.5);
  transition: text-shadow 2s;
}

.site-branding__name a:hover {
  text-decoration: none;
  text-shadow: 0 2px 12px rgba(255, 255, 255, 0.6);
}

/* Slogan — podtitul, menší a lehčí, BEZ verzálek */
.site-branding__slogan {
  color: var(--ks-white) !important;
  font-family: var(--ks-font-heading);
  font-weight: 400;
  font-size: clamp(0.72rem, 1.1vw, 0.95rem);
  line-height: 1.3;
  letter-spacing: 0.01em;
  text-shadow: 0 2px 4px rgba(0, 31, 102, 0.5);
}

/* ----------------------------------------------------------
   2c. Dvouřádková hlavička
   Řádek 1 (ks-header-branding): branding, scrolluje se pryč
   Řádek 2 (ks-header-nav): navigace, sticky
   ---------------------------------------------------------- */

/* Řádek 1 – branding */
.ks-header-branding {
  min-height: auto;
}

.ks-header-branding .container {
  padding: 0rem;
}

/* Řádek 2 – nav sticky */
.ks-header-nav {
  background: linear-gradient(to bottom,     var(--ks-blue-mid)  0%,     color-mix(in srgb, var(--ks-blue-dark) 85%, transparent) 50%,     var(--ks-blue-mid)  100%) !important;
  border-bottom: 0px;
  margin-block-start: unset;
  padding: 0.5rem 0;
}

.ks-header-nav__container {
  display: flex;
  align-items: center;
  padding: 0 4% 10px;
  min-height: 60px;
  max-width: 88vw;
  margin-inline: auto;
}

/* ----------------------------------------------------------
   2c-bis. Sticky hlavička (desktop)
   Celý #header je sticky, zaparkovaný o výšku brandingu nad
   hranou → branding vyjede pryč, .ks-header-nav dosedne na 0.
   Vázáno na desktop nav (Olivero: :not(.is-always-mobile-nav)),
   na mobilu zůstává původní chování (hamburger, fixed).
   ---------------------------------------------------------- */
body:not(.is-always-mobile-nav) #header.site-header {
  position: sticky;
  top: calc(-1 * var(--ks-vyska-brandingu));
  z-index: 500;
}

/* ----------------------------------------------------------
   2d. Sekundární menu – obecné (lupa, účet) – napravo
   ---------------------------------------------------------- */

.region--secondary-menu {
  align-items: center;
  margin-left: auto;
  margin-block-start: 0px;
  margin-block-end: 0px;
  height: 50px;
}

/* Schovat narrow search na desktopu */
@media (min-width: 75rem) {
  #block-ks-search-form-narrow {
    display: none;
  }
}

/* Schovat wide search na mobilu (pozor: breakpoint je px, záměrně zachován) */
@media (max-width: 74.99px) {
  #block-ks-search-form-wide {
    display: block;
  }
  .region--secondary-menu {
    display: none;
  }
}

/* ----------------------------------------------------------
   2e. Mobilní secondary nav (.ks-mobile-secondary)
   Lupa + účet vedle hambáče
   ---------------------------------------------------------- */

.secondary-nav__menu-item {
  &:not(:last-child) {
    margin-inline-end: 0.1rem;
  }
}

.ks-mobile-secondary {
  display: flex;
  align-items: center;
  height: 50px;
}

/* Ikony v secondary menu – bílé na mobilu */
.ks-mobile-secondary .block-search-wide__button,
.ks-mobile-secondary .secondary-nav__menu-link {
  display: block;
  color: var(--ks-white) !important;
  padding: .4rem .6rem;
  font-size: var(--ks-fs-sm);
}

/* Na desktopu: ks-mobile-secondary a region napravo */
@media (min-width: 75rem) {
  .ks-mobile-secondary {
    margin-left: auto;
  }
  .ks-mobile-secondary .region--secondary-menu {
    margin-left: 0;
    height: 50px;
  }
}

/* ----------------------------------------------------------
   2f. Hamburger a mobile-buttons
   ---------------------------------------------------------- */

.mobile-nav-button {
  color: var(--ks-white);
  border-color: rgba(255,255,255,.5);
}

.mobile-nav-button__label {
  color: var(--ks-white);
}

.mobile-nav-button__icon::before,
.mobile-nav-button__icon::after,
.mobile-nav-button__icon span,
.mobile-nav-button__icon {
  background-color: var(--ks-white) !important;
}

.mobile-buttons {
  display: flex;
  align-items: center;
  gap: 2rem;
  font-family: var(--ks-font-heading);
}

/* ----------------------------------------------------------
   2g. body:not – base overrides (barvy textu v nav)
   Platí pro všechny breakpointy pokud není .is-always-mobile-nav.
   Selektory zachovány přesně jak byly — liší se hodnotami
   (var(--ks-white) vs var(--ks-white) !important v sekci 3).
   ---------------------------------------------------------- */

body:not(.is-always-mobile-nav) {
  @media (min-width: 75rem) {
    & .primary-nav__menu-link-inner {
      font-family: var(--ks-font-heading);
    }
    & .header-nav {
      height: stretch;
    }
  }

  & .primary-nav__menu-link {
    color: var(--ks-white);
  }

  & .block-search-wide__button {
    color: var(--ks-white);
  }

  & .secondary-nav__menu-link {
    color: var(--ks-white) !important;
  }

  & .mobile-buttons {
    @media (min-width: 31.25rem) {
      margin-block-start: 1px;
    }
  }
}

/* ----------------------------------------------------------
   2h. Vyhledávací formulář (wide verze)
   Sloučeno ze dvou oddělených .block-search-wide__wrapper bloků
   (form a input[type="search"] – totéž místo, stejný selektor)
   ---------------------------------------------------------- */

.block-search-wide__wrapper {
  & form {
    display: flex;
    grid-column: 1 / 14;
    height: 80px;
    align-items:center;
  }
  & input[type="search"] {
    height: 80px;
    padding-inline-start: 6vw;
  }
}

body:not(.is-always-mobile-nav) {
  .block-search-wide__wrapper {
    height: 80px;
  }
}

.block-search-wide__wrapper {
  max-width: stretch;
  }

/* ============================================================
   3. NAV – DESKTOP (min-width: 75rem)
   Záložkový styl + dropdown.
   Aktivuje se jen bez třídy .is-always-mobile-nav.
   ============================================================ */

/* Na tabletu a mobilu: mobile-buttons přes celou šířku */
@media (max-width: 74.99rem) {
  .mobile-buttons {
    width: 100%;
    justify-content: space-between;
  }
}

@media (min-width: 75rem) {
  /* Schováme jen tlačítko, wrapper zůstane – drží secondary menu */
  .mobile-nav-button {
    display: none !important;
  }

  .mobile-buttons {
    display: flex !important;
    align-items: center;
    flex-shrink: 0;
    order: 3;
  }

  .ks-mobile-secondary {
    display: flex;
    align-items: center;
  }

  /* Nav vodorovně – hlavní menu vlevo, sekundární vpravo */
  .header-nav {
    display: flex !important;
    flex-wrap: wrap;
    align-items: stretch;
    position: static !important;
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
    /*height: auto !important;*/
    overflow: visible !important;
    max-height: none !important;
    opacity: 1 !important;
    transform: none !important;
  }

  /* Sekundární menu – vpravo, vždy viditelné */
  .region--secondary-menu {
    display: flex !important;
    align-items: center;
    gap: .5rem;
  }

  /* Lupa */
  .block-search-wide__button {
    color: var(--ks-white) !important;
    background: transparent;
    border: none;
    height: 64px;
  }

  /* Účet, odhlásit */
  .secondary-nav__menu-link {
    color: var(--ks-white) !important;
    font-family: var(--ks-font-heading);
    font-size: var(--ks-fs-sm);
    padding: .5rem .75rem;
    white-space: nowrap;
  }

  .secondary-nav__menu-link:hover {
    color: rgba(255,255,255,.75) !important;
  }

  /* Oddělovač lupa | účet */
  .secondary-nav {
    display: flex;
    align-items: center;
    border-left: 1px solid rgba(255,255,255,.3);
    padding-left: .5rem;
    margin-left: .5rem;
  }

  /* Hlavní menu – záložky */
  .menu--main {
    display: flex !important;
    flex-direction: row !important;
    align-items: center;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .menu--main > .menu__item {
    position: relative;
    display: flex;
    align-items: stretch;
  }

  /* Záložka */
  .menu--main > .menu__item > a {
    display: flex;
    align-items: center;
    padding: .7rem 1.1rem;
    color: var(--ks-white) !important;
    font-family: var(--ks-font-heading);
    font-size: var(--ks-fs-sm);
    font-weight: 500;
    text-decoration: none;
    border-bottom: 3px solid transparent;
    white-space: nowrap;
    transition: background .15s, border-color .15s;
    height: 100%;
    box-sizing: border-box;
  }

  .menu--main > .menu__item > a:hover,
  .menu--main > .menu__item > a:focus {
    background: rgba(255,255,255,.12);
    border-bottom-color: var(--ks-white);
  }

  .menu--main > .menu__item--active-trail > a,
  .menu--main > .menu__item > a.is-active {
    background: rgba(255,255,255,.18);
    border-bottom-color: var(--ks-white);
    font-weight: 600;
  }

  /* Dropdown */
  .menu--main > .menu__item > .menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 210px;
    background: var(--ks-blue-dark);
    box-shadow: 0 4px 12px rgba(0,0,0,.25);
    z-index: 200;
    padding: .4rem 0;
    list-style: none;
    margin: 0;
  }

  .menu--main > .menu__item:hover > .menu,
  .menu--main > .menu__item:focus-within > .menu {
    display: block;
  }

  .menu--main > .menu__item > .menu a {
    display: block;
    padding: .5rem 1.2rem;
    color: var(--ks-white) !important;
    font-family: var(--ks-font-heading);
    font-size: var(--ks-fs-sm);
    text-decoration: none;
    white-space: nowrap;
  }

  .menu--main > .menu__item > .menu a:hover {
    background: rgba(255,255,255,.1);
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu--level-1 {
    flex-wrap: wrap;
    row-gap: 0px;
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu-item--level-1 {
    max-width: none;
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu-item--level-1:not(:last-child) {
    margin-inline-end: var(--sp);
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu-link-inner {
    padding-block: 4px;
  }

/*body:not(.is-always-mobile-nav) #header-nav {
    flex: 0 0 80%;
  }*/

  body:not(.is-always-mobile-nav) .mobile-buttons {
    flex: 0 0 20%;
    justify-content: flex-end;
  }
}


/* ============================================================
   4. NAV – MOBIL (max-width: 74.99rem)
   Hamburger accordion pod lištou.
   Mechanika: Olivero JS přepíná aria-expanded na .mobile-nav-button
   (hlavní menu) a na .primary-nav__button-toggle (podmenu).
   CSS reaguje přes :has() — nezávisí na Olivero interních třídách.
   ============================================================ */

@media (max-width: 74.99rem) {

  /* Kontejner zalamuje → menu spadne pod řádek s hamburgerem */
  .ks-header-nav__container {
    flex-wrap: wrap;
  }

  /* Menu panel: ve výchozím stavu skrytý */
  #header-nav {
    display: none;
    width: 100%;
    background: var(--ks-blue-dark);
    border-top: 1px solid rgba(255,255,255,.2);
    margin-top: .75rem;
  }

  /* Otevřený, když hamburger hlásí aria-expanded="true" */
  .ks-header-nav__container:has(.mobile-nav-button[aria-expanded="true"]) #header-nav {
    display: block;
  }

  /* Hlavní seznam – vertikálně */
  #header-nav .primary-nav__menu--level-1 {
    display: block;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  /* Položky 1. úrovně */
  #header-nav .primary-nav__menu-item--level-1 {
    position: relative;
    border-bottom: 1px solid rgba(255,255,255,.08);
    max-width: none;
  }

  /* Odkazy */
  #header-nav .primary-nav__menu-link {
    display: block;
    color: var(--ks-white) !important;
    padding: .5rem .8rem;
    font-family: var(--ks-font-heading);
    font-size: var(--ks-fs-lg);
    text-decoration: none;
  }

  #header-nav .primary-nav__menu-link:hover {
    background: rgba(255,255,255,.1);
  }

  /* Tlačítko rozbalení podmenu – vpravo */
  #header-nav .primary-nav__button-toggle {
    position: absolute;
    top: 0;
    inset-inline-end: 0;
    height: 100%;
    width: 3.4rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: none;
    border-inline-start: 1px solid rgba(255,255,255,.12);
    color: var(--ks-white);
    cursor: pointer;
  }

  #header-nav .primary-nav__button-toggle .icon--menu-toggle::before,
  #header-nav .primary-nav__button-toggle .icon--menu-toggle::after {
    background-color: var(--ks-white);
  }

  /* Podmenu (2. úroveň): skryté → rozbalí přes aria-expanded */
  #header-nav .primary-nav__menu--level-2 {
    display: none;
    margin: 0;
    padding: 0;
    list-style: none;
    background: rgba(0,0,0,.22);
  }

  #header-nav .primary-nav__menu-item--has-children:has(.primary-nav__button-toggle[aria-expanded="true"]) > .primary-nav__menu--level-2 {
    display: block;
  }

  /* Odsazení odkazů 2. úrovně */
  #header-nav .primary-nav__menu-link--level-2 {
    padding-inline-start: 2.4rem;
    font-size: var(--ks-fs-md);
  }

  /* Narrow search uvnitř drawer skrýt (wide je ve secondary) */
  #header-nav #block-ks-search-form-narrow {
    display: none;
  }

/* ============================================================
 * KS — SEARCH LUPA NA MOBILU (v7 — jen POZICE + layout)
 * ============================================================
 * Nahrazuje v6 blok ve stejném místě sekce 4.
 * Barvy pole / tlačítka / ✕ řeší globální branding blok
 * (ks-search-branding-global). Tady jen pozice a rozložení.
 * Necháno: #header-nav #block-ks-search-form-narrow { display: none; }
 * ============================================================ */

  /* Zrušit contextual position:relative → kotvit na nav lištu */
  #block-ks-search-form-wide {
    position: static !important;
  }

  /* WRAPPER aktivní → strip přes celou šířku hned POD nav řádkem */
  #block-ks-search-form-wide .block-search-wide__wrapper.is-active {
    position: absolute;
    inset-block-start: 100%;
    inset-inline: 0;
    inline-size: auto !important;
    block-size: auto;
    min-block-size: 64px;
    overflow: visible;
    z-index: 600;
    display: flex;
    align-items: center;
    background: var(--ks-blue-dark);   /* brand strip pod nav */
    padding-inline: 4%;
    box-shadow: 0 4px 10px rgba(0,0,0,.3);
  }

  /* Container / grid / form vyplní strip */
  #block-ks-search-form-wide .block-search-wide__wrapper.is-active .block-search-wide__container,
  #block-ks-search-form-wide .block-search-wide__wrapper.is-active .block-search-wide__grid {
    inline-size: 100%;
    max-inline-size: 100%;
  }

  #block-ks-search-form-wide .block-search-wide__wrapper.is-active form.search-form {
    display: flex;
    align-items: center;
    gap: .5rem;
    inline-size: 100%;
    margin: 0;
  }

  /* Input roste přes celou šířku */
  #block-ks-search-form-wide .block-search-wide__wrapper.is-active .form-item {
    flex: 1;
    min-width: 0;
    margin: 0;
  }
  #block-ks-search-form-wide .block-search-wide__wrapper.is-active input[type="search"] {
    inline-size: 100%;
    box-sizing: border-box;
  }

  /* Submit drží vpravo */
  #block-ks-search-form-wide .block-search-wide__wrapper.is-active .form-actions {
    margin: 0;
    flex-shrink: 0;
  }

/* ============================================================
 * HOTOVO — dále pokračuje stávající blok --- ZAVÍRACÍ ✕ ---
 * ============================================================ */

  /* Dekorativní „mrkvička" (caret) v mobilu pryč */
  #header-nav .primary-nav__menu-🥕 {
    display: none;
  }

  /* --- ZAVÍRACÍ ✕ ------------------------------------------------
     Otevřený hamburger se ODPOUTÁ z Oliverovy lišty (position: fixed)
     a přišpendlí se do pravého horního rohu. Nezávislé na tom, kam
     Olivero posadí .mobile-buttons. Klik = nativní Oliverovo zavření. */
  .mobile-nav-button[aria-expanded="true"] {
    position: fixed;
    top: .6rem;
    inset-inline-end: .6rem;
    z-index: 1001;
    width: 2.75rem;
    height: 2.75rem;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--ks-blue-dark);
    border: 1px solid rgba(255,255,255,.25);
    border-radius: var(--ks-radius);
    cursor: pointer;
  }

  /* Skrýt text „Menu" i Oliverovu ☰ ikonu v otevřeném stavu */
  .mobile-nav-button[aria-expanded="true"] .mobile-nav-button__label,
  .mobile-nav-button[aria-expanded="true"] .mobile-nav-button__icon {
    display: none !important;
  }

  /* Vlastní ✕ glyf (na tlačítku, ne na ikoně → bez kolize s Olivero) */
  .mobile-nav-button[aria-expanded="true"]::before {
    content: "✕";
    font-size: var(--ks-fs-xl);
    font-weight: 700;
    line-height: 1;
    color: var(--ks-white);
  }
}

/* ------------------------------------------------------------
   Velmi úzký mobil (telefon, max-width: 31.25rem)
   ------------------------------------------------------------ */
@media (max-width: 31.25rem) {

  /* Skrýt přihlašovací odkazy; lupa zůstává */
  .secondary-nav {
    display: none;
  }

  /* Otevřené menu přes CELOU šířku displeje – žádný vodorovný přetok */
  #header-nav.is-active {
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* ============================================================
 * KS — SEARCH WIDE: BRANDING v3 (globální, oba breakpointy)
 * ============================================================
 * NAHRAZUJE v2 blok na stejném top-level místě (MIMO @media).
 *
 * Změny proti v2:
 *  - Neutralizace Oliverova border-inline-start:var(--content-left)
 *    na wrapperu (to dělalo šedou čáru / odsazení).
 *  - Wrapper sjednocen na brand navy globálně → černý box vpravo zmizí.
 *  - Submit dostal pevnou šířku i výšku (konec "uzounkého" slivru).
 * ============================================================ */

/* WRAPPER — brand navy strip, bez Oliverova obřího levého borderu */
#block-ks-search-form-wide .block-search-wide__wrapper {
  background: var(--ks-blue-dark);
  border-inline-start: 0;
  inset-inline: 0;
  padding-inline: 4%;
  box-shadow: 0 4px 10px rgba(0, 0, 0, .3);
}

/* Vnitřní obaly bez vlastního pozadí */
#block-ks-search-form-wide .block-search-wide__container,
#block-ks-search-form-wide .block-search-wide__grid {
  background: transparent;
}

/* Vstupní pole — čisté bílé, tmavý text */
#block-ks-search-form-wide input[type="search"] {
  background: var(--ks-white);
  color: var(--ks-text);
  border: 1px solid var(--ks-border);
  border-radius: 6px;
  padding: .6rem .9rem;
  font-size: var(--ks-fs-base);
  block-size: 2.75rem;
  box-sizing: border-box;
}
#block-ks-search-form-wide input[type="search"]::placeholder {
  color: var(--ks-muted);
}
#block-ks-search-form-wide input[type="search"]:focus {
  outline: 2px solid var(--ks-blue-mid);
  outline-offset: 1px;
  border-color: var(--ks-blue-mid);
}

/* Submit — pevné brand modré tlačítko (konec slivru) */
#block-ks-search-form-wide .form-actions {
  flex: 0 0 auto;
  margin: 0 1rem;
}
#block-ks-search-form-wide .search-form__submit {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  inline-size: auto;
  min-inline-size: 3.4rem;
  block-size: 3.4rem;                 /* = výška inputu */
  padding: 0 .9rem;
  background: var(--ks-blue) !important;
  border: 1px solid var(--ks-white) !important;
  border-radius: 6px;
  color: var(--ks-white);
  cursor: pointer;
  transition: background .15s ease;
}
#block-ks-search-form-wide .search-form__submit:hover {
  background: var(--ks-blue-mid) !important;
  border-color: var(--ks-blue-mid) !important;
}

/* Lupa v submit — VLASTNÍ bílá maska (nezávislá na Olivero) */
#block-ks-search-form-wide .search-form__submit .icon--search {
  display: block;
  inset-block-start: auto;
  inset-inline-end: auto;
  background: var(--ks-white);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 23'%3E%3Cpath d='M21.7,21.3l-4.4-4.4C19,15.1,20,12.7,20,10c0-5.5-4.5-10-10-10S0,4.5,0,10s4.5,10,10,10c2.1,0,4.1-0.7,5.8-1.8l4.5,4.5c0.4,0.4,1,0.4,1.4,0S22.1,21.7,21.7,21.3z M10,18c-4.4,0-8-3.6-8-8s3.6-8,8-8s8,3.6,8,8S14.4,18,10,18z'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 23'%3E%3Cpath d='M21.7,21.3l-4.4-4.4C19,15.1,20,12.7,20,10c0-5.5-4.5-10-10-10S0,4.5,0,10s4.5,10,10,10c2.1,0,4.1-0.7,5.8-1.8l4.5,4.5c0.4,0.4,1,0.4,1.4,0S22.1,21.7,21.7,21.3z M10,18c-4.4,0-8-3.6-8-8s3.6-8,8-8s8,3.6,8,8S14.4,18,10,18z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Toggle (lupa / ✕) — base transparent, bílá lupa */
#block-ks-search-form-wide .block-search-wide__button {
  background: transparent;
  color: var(--ks-white);
}
#block-ks-search-form-wide .block-search-wide__button svg path {
  fill: var(--ks-white);
}

/* Expandovaný ✕ — branded navy box */
#block-ks-search-form-wide .block-search-wide__button[aria-expanded="true"] {
  background: var(--ks-blue-dark);
  border-radius: 6px;
  height: var(--sp3);
}
#block-ks-search-form-wide .block-search-wide__button-close::before,
#block-ks-search-form-wide .block-search-wide__button-close::after {
  background-color: var(--ks-white);
}

/* ============================================================
   5. MAIN – obsah stránek
   Koresponduje s: #main-wrapper → .layout-main-wrapper
   ============================================================ */

.layout-main-wrapper {
  padding-top: 0rem;
  padding-bottom: 2rem;
}

/* Teaser (výpis článků) */
.node--view-mode-teaser {
  border-bottom: 1px solid var(--ks-border);
  padding-bottom: 1.5rem;
  margin-bottom: 1.5rem;
}

.node--view-mode-teaser .node__title {
  font-size: var(--ks-fs-xl);
  margin-bottom: .4rem;
}

.node--view-mode-teaser .node__title a {
  color: var(--ks-blue-dark);
  text-decoration: none;
}

.node--view-mode-teaser .node__title a:hover {
  text-decoration: underline;
}

.node__meta,
.node__submitted {
  font-size: var(--ks-fs-xs);
  color: var(--ks-muted);
  margin-bottom: .5rem;
}


/* ============================================================
   6. FOOTER
   ============================================================ */

.site-footer {
  background:
    radial-gradient(ellipse at 50% 45%, rgba(26,111,168) 10%, transparent 90%),
    linear-gradient(to bottom, var(--ks-blue-mid) 0%, var(--ks-blue) 50%, var(--ks-blue-dark) 150%) !important;
  color: rgba(255,255,255,.75);
  padding: 36px 6vw 24px;
  margin-top: 2.5rem;
  border-inline-start: 0 !important;
  /*-webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 5%);
  mask-image: linear-gradient(to bottom, transparent 0%, black 5%);*/
  font-family: var(--ks-font-heading);
  font-size: var(--ks-fs-xs);
}

body:not(.is-always-mobile-nav) .site-footer {
  border-inline-start: none !important;
}

.site-footer__inner.container {
  max-width: 100% !important;
  padding-inline: 0 !important;
}

.site-footer__inner {
  padding-block: 0 !important;
}

.site-footer a {
  color: rgba(255,255,255,.85);
}

.site-footer a:hover {
  color: var(--ks-white);
}

/* Sloupce */
.footer-cols {
  display: grid;
  grid-template-columns: 5fr 4fr 3fr;
  gap: 32px;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(255,255,255,.12);
  margin-bottom: 2rem;
}

@media (max-width: 42.5rem) {
  .footer-cols { grid-template-columns: 1fr; gap: 20px; }
}

.footer-col h4 {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--ks-white);
  margin-bottom: 12px;
}

.footer-col p,
.footer-col a {
  color: var(--ks-white);
  line-height: 1.9;
  text-decoration: none;
  display: block;
  font-size: var(--ks-fs-xs);
}

.footer-col a:hover { color: var(--ks-white); text-decoration: underline;}

/* Pill tlačítka */
.footer-pills {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  margin-bottom: 28px;
}

.footer-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 22px;
  border: 1.5px solid rgba(255,255,255,.5);
  border-radius: 30px;
  color: var(--ks-white);
  text-decoration: none;
  font-size: var(--ks-fs-sm);
  font-weight: 500;
  transition: background .15s;
}

.footer-pill:hover { background: rgba(255,255,255,.1);}
.footer-pill svg { flex-shrink: 0; }

/* Copyright */
.footer-bottom {
  border-top: 1px solid rgba(255,255,255,.12);
  padding-top: 16px;
  font-size: var(--ks-fs-xs);
  color: var(--ks-white);
  text-align: center;
}

/* Přihlášení na mobilu */
.ks-footer-login {
  display: none;
  text-align: center;
  padding: .75rem 0 .25rem;
  border-top: 1px solid rgba(255,255,255,.15);
  margin-top: 1rem;
}

.ks-footer-login a {
  display: inline-block;
  color: rgba(255,255,255,.75);
  font-family: var(--ks-font-heading);
  font-size: var(--ks-fs-sm);
  text-decoration: none;
  padding: .4rem 1rem;
  border: 1px solid rgba(255,255,255,.3);
  border-radius: 2rem;
  transition: background .15s, border-color .15s;
}

.ks-footer-login a:hover {
  background: rgba(255,255,255,.12);
  border-color: rgba(255,255,255,.6);
  color: var(--ks-white);
}

@media (max-width: 31.25rem) {
  .ks-footer-login { display: block; }
}

/* ---------------------------------------------------------
   Rychlé odkazy — menu 'footer' ve sloupci patičky (model B)
   Blok system_menu_block:footer vykresluje <ul class="menu">;
   srovnáme jeho vzhled s původními natvrdo psanými odkazy.
   Vložit za pravidlo `.footer-col a:hover { color: var(--ks-white); }`
--------------------------------------------------------- */
.footer-col--links .block { margin: 0; }
 
.footer-col--links .menu {
  list-style: none;
  margin: 0;
  padding: 0;
}
 
.footer-col--links .menu li { margin: 0; }
 
.footer-col--links .menu a {
  display: block;
  color: var(--ks-white);
  line-height: 1.9;
  text-decoration: none;
  font-size: var(--ks-fs-xs);
}
 
.footer-col--links .menu a:hover { color: var(--ks-white); }

/* Umlčení Olivero region-gridu ve sloupci odkazů — menu má téct jako prostý blok */
.footer-col--links .region--footer-top,
.footer-col--links .region--footer_top__inner {
  display: block;
}
.footer-col--links .region--footer-top > *,
.footer-col--links .layout--pass--content-medium > * {
  grid-column: auto;
}

.layout--content-medium, .layout--pass--content-medium > * {
    @media (min-width: 62.5rem) {
        grid-column: 1 / 13;
    }
}

.layout--content-medium, .layout--pass--content-medium > * {
    @media (min-width: 43.75rem) {
        grid-column: 1 / 14;
    }
}

/* ============================================================
   7. SIDEBAR
   ============================================================ */

.main-content__container {
  padding-inline: 0 !important;
  max-width: none !important;
  padding-top: 0;
}

.main-content {
  width: 100% !important;
}

@media (min-width: 43.75rem) {
  .sidebar-grid {
    display: grid !important;
    grid-template-columns: 22% 1fr !important;
    grid-template-areas: none !important;
    gap: 0 6vw !important;
    align-items: start;
    padding-left: 6vw !important;
    padding-right: 6vw !important;
    padding-top: 4rem;
    box-sizing: border-box;
    background: linear-gradient(to bottom, var(--ks-blue-mid) 1%, transparent 30vh) !important;
  }

  .sidebar-grid > main {
    grid-column: unset !important;
    min-width: 0;
  }

  .sidebar-grid > .region--sidebar {
    grid-column: unset !important;
    grid-row: 1 !important;
    order: -1;
    position: sticky;
    top: 7rem;
    align-self: start;
    /* Vyšší sidebar než okno: omez výšku na viewport + vnitřní posuv,
       ať je vždy vidět začátek i konec bez rolování stránky do krajností. */
    max-height: calc(100vh - 7rem - 1.5rem) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    scrollbar-width: thin;
    scrollbar-color: var(--ks-white) transparent;
  }
}

  .sidebar-grid > .region--sidebar::-webkit-scrollbar { width: 8px; }
  .sidebar-grid > .region--sidebar::-webkit-scrollbar-thumb {
    background: var(--ks-blue-dark); border-radius: var(--ks-radius);
  }

/* Blok – obal */
.region--sidebar .block {
  background: var(--ks-white);
  border: 1px solid var(--ks-border);
  border-radius: var(--ks-radius-lg);
  overflow: hidden;
  margin-bottom: 1.25rem;
}

/* Nadpis bloku */
.region--sidebar .block__title {
  display: block !important;
  background: var(--ks-blue-light) !important;
  color: var(--ks-blue-dark) !important;
  font-family: var(--ks-font-heading) !important;
  font-size: var(--ks-fs-md) !important;
  font-weight: 700 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  padding: 16px !important;
  margin: 0 !important;
  border-radius: 0 !important;
}

.region--sidebar .block__title a {
  text-decoration: none !important;
  box-shadow: none !important;
}
.region--sidebar .block__title a:hover,
.region--sidebar .block__title a:focus-visible {
  text-decoration: underline !important;
}

/* Obsah bloku – nuluj padding */
.region--sidebar .block__content {
  padding: 0 !important;
}

/* Schovat "Body" field label */
.region--sidebar .field__label {
  display: none !important;
}

/* Všechny odkazy v sidebaru – zruš Olivero box-shadow linku */
.region--sidebar .block__content a {
  box-shadow: none !important;
  text-decoration: none !important;
}

/* Sidebar – seznam odkazů */
.sidebar-menu {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  background: var(--ks-warm-light);
}

.sidebar-menu li {
  margin: 0 !important;
  padding: 0 !important;
  border-bottom: 1px solid rgba(99,94,90,0.12);
}

.sidebar-menu li:last-child {
  border-bottom: none;
}

.sidebar-menu li a {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 8px 16px !important;
  font-family: var(--ks-font-heading) !important;
  font-size: var(--ks-fs-base) !important;
  color: var(--ks-warm-dark) !important;
  transition: background .12s !important;
  box-shadow: none !important;
  border-bottom: none !important;
  text-decoration: none !important;
}

.sidebar-menu li a:hover {
  background: var(--ks-warm) !important;
  color: var(--ks-white) !important;
  box-shadow: none !important;
}

.sidebar-menu li.active a {
  background: var(--ks-warm-dark) !important;
  color: var(--ks-white) !important;
  box-shadow: none !important;
  font-weight: 700 !important;
  border-left: 3px solid #3d3a37 !important;
  padding-left: 13px !important;
}

/* Tečka před odkazem */
.dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--ks-warm);
  flex-shrink: 0;
}

.sidebar-menu li.active a .dot {
  background: rgba(255,255,255,0.7);
}

.menu--sidebar {
    & .menu__link {
        position: relative;
        display: block;
        padding-block: var(--sp0-75);
        padding-inline-start: 0;
        padding-inline-end: 0;
        font-family: var(--ks-font-body);
        font-size: var(--ks-fs-md);
    }
}

/* Sidebar – nadpis uvnitř bloku (sidebar-block-title) */
.sidebar-block-title {
  background: var(--ks-blue-dark);
  color: var(--ks-white);
  font-family: var(--ks-font-heading);
  font-size: var(--ks-fs-base);
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 10px 16px;
}

/* Sidebar – info blok (Příští setkání) */
.sidebar-info {
  padding: 16px;
  font-size: var(--ks-fs-base);
  line-height: 1.6;
  color: var(--ks-muted);
  background: var(--ks-warm-light);
}

.sidebar-info strong {
  display: block;
  font-family: var(--ks-font-heading);
  font-size: var(--ks-fs-base);
  font-weight: 700;
  color: var(--ks-blue-dark);
  text-transform: uppercase;
  letter-spacing: .06em;
  margin-bottom: 4px;
}

/* ------------------------------------------------------------
   7a. Olivero .menu--sidebar — font Inter, odsazení
   ------------------------------------------------------------ */

.menu--sidebar .menu__link {
  font-family: var(--ks-font-heading) !important;
  font-size: var(--ks-fs-lg);
}

/* 7b. SIDEBAR VLEVO — grid layout (desktop: 280px + 1fr) */
.sidebar-grid {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: var(--ks-sp-5);
}
.sidebar-grid > .site-main       { order: 2; grid-template-columns: 100%;}
.sidebar-grid > .region--sidebar { order: 1; }

@media (max-width: 48rem) {
  .sidebar-grid {
    grid-template-columns: 1fr;
  }
  .sidebar-grid > .site-main { order: 1; }
}

/* ============================================================
   8. POLISH – 20. 5. 2026  (v3: po analýze view-source)
   ============================================================
   Cíle:
   - Tělo článku 16 px (.text-content přebíjí Olivero 18 px).
   - Schování Olivero submenu šipek na desktopu.
   - Drobnosti rytmu.

   Olivero typografickou hierarchii h1–h6 NEpřebíjíme – ta
   řeší base.css přes proměnné --sp.
   ============================================================ */


/* ------------------------------------------------------------
   8a. BODY a obecný text – 16 px, líné řádkování
   ------------------------------------------------------------ */

body {
  font-size: var(--ks-fs-base);                    /* 16 px */
  line-height: 1.7;
}

/* Drobečková navigace – mírně menší */
.breadcrumb {
  font-size: var(--ks-fs-sm);
}

.breadcrumb__content {
    padding-block-start: 0;
}

.breadcrumb__list {
    padding-block: 0;
}

/* Odkazy v hlavním obsahu – uspořené podtržení */
.layout-main-wrapper a {
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
  color: var(--ks-blue-dark);
}

/* Breadcrumb + hero — celá šířka, přebít Olivero content-medium */
.main-content__container > .region--breadcrumb,
.main-content__container > .ks-hero-region {
  grid-column: 1 / -1;
}

/* Breadcrumb i hero — vypnout vnitřní grid, obsah od levého okraje */
.region.region--breadcrumb,
.region.region--hero {
  display: block;
  padding-left: 6vw;
  padding-top: .5rem;
}

/* Boční odsazení hero oblasti — zarovnání zleva (1 hodnota pro vše) */
:root {
  --ks-hero-inset: 6vw;
}

/* Breadcrumb — béžový pás, UŽŠÍ (margin = pás se odsadí i s pozadím) */
.region.region--breadcrumb {
  /* margin-inline: var(--ks-hero-inset); */
  background: var(--ks-blue-mid) !important;
  /* padding-block: var(--ks-sp-2); */
  /* border-radius: var(--ks-radius, 6px); */
}

.breadcrumb {
    &::after {
      background: none !important;
    }
}

/* Hero (H1 + banner) — stejné boční odsazení */
.ks-hero-region {
  margin-inline: var(--ks-hero-inset);
  padding: var(--ks-sp-6);
  background-image: 
    linear-gradient(rgba(255, 255, 255, .75), rgba(240, 225, 211, .95)), 
    var(--ks-hero-bg-image, none);
  background-size: cover;
  background-position: center;
  border-radius: var(--ks-radius-lg);
}

.region--hero {
    & > *:last-child {
        margin-block-end: 4rem;
    }
}

#block-ks-breadcrumbs {
  margin-block-end: 0rem;
}

/* ── Hero uvnitř obsahového sloupce (vpravo od sidebaru) ──
   Full-width režim dával hero boční 6vw margin a vnitřní 4vw
   padding, aby se „opřel" o okraje stránky. Ve sloupci má
   lícovat s obsahem → obojí nulujeme. Vyšší specificita
   přebíjí základ výše, není třeba !important. */
.main-content__container main .ks-hero-region { 
  margin-inline: 0px;
  margin-bottom: 4rem;
}
.main-content__container main .region.region--hero { padding-left: 0; }

/* ------------------------------------------------------------
   8b. .text-content – override Olivero
   ============================================================
   Olivero defaultně:
     - .text-content { color: var(--color-text-neutral-medium); }
     - desktop ≥ 43.75rem: font-size: var(--ks-fs-md) (18 px), line-height: var(--sp2);
     - p uvnitř: margin-block: var(--sp);  ( = 18 px mobile / 36 px desktop )

   Naše vůle:
     - 16 px na všech breakpointech (Janina volba).
     - barva var(--ks-text) místo Olivero šedi.
     - rytmus odstavců přiměřený 16 px textu.
   ------------------------------------------------------------ */

.text-content,
.cke_editable {
  font-size: 1.2rem;                    /* 16 px */
  line-height: 1.7;
  color: var(--ks-text);
}

@media (min-width: 43.75rem) {
  .text-content,
  .cke_editable {
    font-size: var(--ks-fs-base);                  /* explicitně přebít Olivero 1.125rem */
    line-height: 1.7;
  }
}

.text-content p,
.cke_editable p {
  font-size: 1.3rem;
  line-height: 1.7;
  margin-block: 0 1rem;
}

.text-content p:last-child,
.cke_editable p:last-child {
  margin-block-end: 0;
}


/* ------------------------------------------------------------
   8c. Ostatní místa s p (sidebar, teasery)
   ------------------------------------------------------------ */

.region--sidebar p {
  font-size: var(--ks-fs-base);
  line-height: 1.7;
}

.layout-main-wrapper li {
  font-size: var(--ks-fs-base);
  line-height: 1.7;
}


/* ------------------------------------------------------------
   8d. NADPISY – nic nepřebíjíme
   ============================================================
   Velikosti h1–h6 přebíráme z Olivero base.css. Olivero používá
   modular scale přes --sp* proměnné. Naše sekce 1 v style.css
   už řeší font-family (Inter) a line-height (1.25).
   ------------------------------------------------------------ */


/* ------------------------------------------------------------
   8e. OLIVERO SUBMENU INDIKÁTORY – schovat na desktopu
   ------------------------------------------------------------ */

@media (min-width: 75rem) {
  .primary-nav__button-toggle,
  button.primary-nav__menu-link--button-toggle,
  .menu__link-indicator,
  .menu__link__expand-indicator,
  .submenu-toggle {
    display: none !important;
  }

  /* Šipky přes ::after, pokud by je Olivero tak řešil */
  .menu--main > .menu__item--expanded > a::after,
  .primary-nav__menu-link::after {
    display: none !important;
    content: none !important;
  }
}


/* ------------------------------------------------------------
   8f. SEZNAMY – padding & odstupy
   ------------------------------------------------------------ */

.text-content ul,
.text-content ol,
.layout-main-wrapper ul,
.layout-main-wrapper ol {
/*  padding-inline-start: 0rem;*/
  margin-block: .5rem .1rem;
}

.text-content li,
.layout-main-wrapper li {
  margin-block: .25rem;
}

/* ============================================================
   PRIMARY MENU — Olivero override
   Snížení výšky lišty a kompaktnější rozestupy.
   Cílí na Olivero třídy; přebijí default 36px padding.
   ============================================================ */
@media (min-width: 75rem) {
  
  /* Snížení vertikálního paddingu link inner z 36 px na 12 px */
  .primary-nav__menu-link-inner {
    padding-block: 4px;
  }

  /* Menší mezera mezi top-level položkami (z 36 na 18 px) */
  .primary-nav__menu-item--level-1:not(:last-child) {
    margin-inline-end: var(--sp);
  }

  /* Volitelně: povolit širší položky, ať se nezalomí kvůli 
     pevnému max-width 12.5rem */
  .primary-nav__menu-item--level-1 {
    max-width: none;
  }
}

/* ------------------------------------------------------------
   8g. OBSAHOVÉ TABULKY — .provoz (rozvrh pravidelných shromáždění)
   Cíleno přímo na .provoz (třída je na <table>, žádný wrapper).
   ------------------------------------------------------------ */
.provoz {
  width: 100%;
  border-collapse: collapse;
  margin-block: 1rem 1.5rem;
  font-size: var(--ks-fs-base);
  line-height: 1.5;
  border-radius: var(--ks-radius);
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0, 25, 84, .08);
}
.provoz thead th {
  background: var(--ks-blue-dark);
  color: #fff;
  font-family: var(--ks-font-heading);
  font-weight: 600;
  text-align: start;
  padding: .5rem .75rem;
}
.provoz tbody th,
.provoz tbody td {
  padding: .5rem .75rem;
  border-bottom: 1px solid var(--ks-border);
  vertical-align: top;
}
.provoz tbody th[scope="row"] {
  text-align: start;
  font-weight: 700;
  color: var(--ks-blue-dark);
}
.provoz .provoz-cas {
  text-align: end;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.provoz tbody tr:nth-child(even) {
  background: var(--ks-blue-light);
}
.provoz tbody tr:last-child th,
.provoz tbody tr:last-child td {
  border-bottom: none;
}
@media (max-width: 34rem) {
  .provoz { display: block; overflow-x: auto; }
}

/* ============================================================
   9. GALERIE — grid pro CT gallery (field_galerie)
   ============================================================
   DOM (skutečný, ne předpokládaný):

   <div class="field field--name-field-galerie
               field--type-entity-reference
               field--label-hidden
               field__items">          ← JEDEN element, všechny třídy
     <div class="field__item">         ← položka galerie
       <div class="media media--type-image media--view-mode-gallery-thumbnail">
         <div class="field field--name-field-media-image
                     field--type-image
                     field--label-hidden
                     field__item">     ← VNITŘNÍ field__item!
           <a class="colorbox">
             <img width="300" height="300">

   Pozn.: třída .field__item je použitá dvakrát ve dvou úrovních
   — vnější (přímý child grid kontejneru) a vnitřní (obal img).
   Selektory musí být ostré, aby zacílily na ten správný.
   ============================================================ */

/* Grid kontejner — .field--name-field-galerie A .field__items jsou
   na stejném elementu, nepouživat ">" mezi nimi! */
body .field--name-field-galerie.field__items {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-block: 1.5rem;
  padding: 0;
  list-style: none;
}

@media (max-width: 75rem) {
  body .field--name-field-galerie.field__items {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 31.25rem) {
  body .field--name-field-galerie.field__items {
    grid-template-columns: 1fr;
    gap: 8px;
  }
}

/* Položka galerie — DIRECT child grid kontejneru (vnější field__item) */
body .field--name-field-galerie.field__items > .field__item {
  margin: 0 !important;
  padding: 0;
  overflow: hidden;
  border-radius: var(--ks-radius);
  background: var(--ks-bg);
  width: 100%;
  aspect-ratio: 1 / 1;
}

/* Media kontextové obaly — všechno uvnitř field__item */
body .field--name-field-galerie.field__items > .field__item .media,
body .field--name-field-galerie.field__items > .field__item .field--name-field-media-image {
  display: block !important;
  width: 100%;
  height: 100%;
  margin: 0 !important;
  padding: 0;
}

/* Odkaz s lightboxem */
body .field--name-field-galerie.field__items a.colorbox {
  display: block !important;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

/* Obrázek — přebije inline width="300" height="300" atributy */
body .field--name-field-galerie.field__items img {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover;
  display: block;
  transition: transform 0.25s ease, filter 0.25s ease;
}

body .field--name-field-galerie.field__items > .field__item:hover img {
  transform: scale(1.04);
  filter: brightness(1.05);
}

body .field--name-field-galerie.field__items a:focus-visible {
  outline: 2px solid var(--ks-blue);
  outline-offset: 2px;
}

/* ============================================================
   10. PDF KARTY — přidáno 7. 6. 2026 (pan Drupal)
   ============================================================
   Rámec dokumentů s viditelnou obálkou první strany PDF.
   Vykresluje šablona media--document.html.twig (theme ks);
   obálky generuje pdftoppm → field_pdf_nahled na Media document.
   ============================================================ */

/* ----------------------------------------------------------
   10a. PDF KARTA (.pdf-card)
   ---------------------------------------------------------- */

/* Karta v textu nodu: samostatný blok, rozumná šířka. */
.pdf-card-wrap {
  margin: 1.5em 0;
}

.pdf-card {
  display: inline-block;
  width: min(260px, 100%);
  text-decoration: none;
  color: inherit;
}

/* Obálka — poměr A4 na výšku, jemný stín, zdvih na hover. */
.pdf-card .pdf-thumb {
  position: relative;
  display: block;
  background: var(--ks-white);
  border: 1px solid var(--ks-border);
  border-radius: 3px;
  box-shadow: 0 2px 6px rgba(0, 25, 84, .10);
  overflow: hidden;
  transition: transform .18s ease, box-shadow .18s ease;
}
.pdf-card .pdf-thumb img {
  display: block;
  width: 100%;
  height: auto;
}
.pdf-card:hover .pdf-thumb,
.pdf-card:focus-visible .pdf-thumb {
  transform: translateY(-4px);
  box-shadow: 0 10px 24px rgba(0, 25, 84, .18);
}
.pdf-card:focus-visible {
  outline: 2px solid var(--ks-blue);
  outline-offset: 4px;
}

.pdf-card .pdf-badge {
  position: absolute;
  top: 8px;
  right: 8px;
  font-family: var(--ks-font-heading);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .04em;
  background: var(--ks-blue);
  color: #fff;
  padding: 2px 7px;
  border-radius: 3px;
}

.pdf-card .pdf-title {
  display: block;
  margin-top: 10px;
  font-family: var(--ks-font-heading);
  font-size: var(--ks-fs-sm);
  font-weight: 600;
  line-height: 1.35;
  color: var(--ks-blue-dark);
}
.pdf-card:hover .pdf-title { color: var(--ks-blue); }

.pdf-card .pdf-meta {
  display: block;
  font-family: var(--ks-font-heading);
  font-size: var(--ks-fs-xs);
  color: var(--ks-muted);
}

/* ----------------------------------------------------------
   10b. MŘÍŽKA PDF KARET (.pdf-grid) — pro generační stránky:
   3 / 2 / 1 sloupce, první karta = hero (modifikátor --hero)
   ---------------------------------------------------------- */
.pdf-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}
.pdf-grid .pdf-card {
  width: 100%;
}
/* Nejmladší list vpluje na hero pozici sám. */
.pdf-grid--hero > :first-child {
  grid-column: span 2;
  grid-row: span 2;
}
@media (max-width: 860px) {
  .pdf-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 540px) {
  .pdf-grid { grid-template-columns: 1fr; }
  .pdf-grid--hero > :first-child { grid-column: auto; grid-row: auto; }
}

/* ============================================================
   11. TEASERY & KATEGORIE — přidáno 7. 6. 2026 (pan Drupal)
   ============================================================ */

/* ----------------------------------------------------------
   11a. TEASERY: obrázky hranaté, bez Oliverova kruhového ořezu
   (viník: olivero teaser.css:54 — width/height --sp3-5,
   object-fit: cover, border-radius: 50 %)
   ---------------------------------------------------------- */
.teaser__image img {
  width: auto;
  height: auto;
  max-height: 200px;
  object-fit: contain;
  border-radius: 3px;
  box-shadow: 0 1px 4px rgba(0, 25, 84, .12);
}

/* Teaser: obálka NAD textem, ne vedle něj */
.teaser__top {
  display: block;
}
.teaser__image {
  margin-bottom: 12px;
}
.teaser__image .field__item {
  display: inline-block;
}

/* 11a-fix: Olivero pozicuje .teaser__image absolutně — vracíme do toku,
   jinak obálka překrývá titulek a utíká z mřížky. */
.node--view-mode-teaser {
  position: relative;
  overflow: visible;
}
.teaser__top,
.teaser__image {
  position: static !important;
  inset: auto !important;
  inset-block-start: auto !important;
  inset-inline-start: auto !important;
  transform: none !important;
  float: none !important;
}
.teaser__image {
  width: auto !important;
  max-width: 100%;
  margin: 0 0 12px !important;
  padding: 0 !important;
}
.teaser__image img {
  max-width: 100%;
}
/* Olivero někdy rezervuje místo pro obrázek odsazením textu — zrušit */
.node--view-mode-teaser .teaser__content,
.node--view-mode-teaser .node__content {
  padding-inline-start: 0 !important;
  margin-inline-start: 0 !important;
}

/* ----------------------------------------------------------
   11b. KATEGORIE: mřížka teaserů 3 / 2 / 1 podle breakpointů
   ----------------------------------------------------------
   POZOR: cíleno na VÝPIS TERMU (.view-taxonomy-term), ne na každý
   .view-content na term stránce — jinak tahle mřížka zabalí i blokové
   panely (rozcestník Hudby) do jedné buňky a zúží je.
 
   AKTUALIZACE 21. 6. 2026: přidáno :not(.ks-karty).
   Od chvíle, kdy výchozí výpis termu používá kartu (.ks-karty) s vlastním
   Views gridem, by tohle teaserové pravidlo udělalo z .view-content mřížku
   o jednom dítěti a kartový grid vmáčklo do jednoho sloupce (srážka #10).
   Proto se 11b uplatní JEN na ne-kartové výpisy; kartovou mřížku 3/2/1
   řeší sekce 13a sama.
*/
.path-taxonomy .view-taxonomy-term:not(.ks-karty) .view-content {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px 28px;
  align-items: start;
}
.path-taxonomy .view-taxonomy-term:not(.ks-karty) .view-content .views-row {
  margin: 0;
  padding: 0;
  border: 0;
}
.path-taxonomy .view-taxonomy-term:not(.ks-karty) .node--view-mode-teaser {
  margin: 0;
}
 
/* Volitelné hero: nejnovější kus přes dva sloupce.
.path-taxonomy .view-taxonomy-term:not(.ks-karty) .view-content > :first-child {
  grid-column: span 2;
}
*/
 
@media (max-width: 1780px) {
  .path-taxonomy .view-taxonomy-term:not(.ks-karty) .view-content { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 1150px) {
  .path-taxonomy .view-taxonomy-term:not(.ks-karty) .view-content { grid-template-columns: 1fr; }
  .path-taxonomy .view-taxonomy-term:not(.ks-karty) .view-content > :first-child { grid-column: auto; }
}

/* ----------------------------------------------------------
   11c. ROZCESTNÍK /kontakty — mřížka karet 3 / 2 / 1
   Cílí jen na teasery (hlavní výpis), NE na plnou kartu
   v attachmentu nahoře (.attachment-before).
   ---------------------------------------------------------- */
.path-kontakty .view-kontakty-rozcestnik > .view-content {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px 28px;
  align-items: start;
}
.path-kontakty .view-kontakty-rozcestnik > .view-content .views-row {
  margin: 0;
  padding: 0;
  border: 0;
}
.path-kontakty .view-kontakty-rozcestnik .node--view-mode-teaser {
  margin: 0;
}
/* Plná karta nahoře (attachment) zůstává přes celou šířku */
.path-kontakty .attachment-before .view-content {
  display: block;
}

@media (max-width: 1780px) {
  .path-kontakty .view-kontakty-rozcestnik > .view-content {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 1150px) {
  .path-kontakty .view-kontakty-rozcestnik > .view-content {
    grid-template-columns: 1fr;
  }
}

/* ----------------------------------------------------------
   11d. ROZCESTNÍK /kontakty — CTA blok provozních zpráv (footer)
   ---------------------------------------------------------- */
.path-kontakty .ks-provozni-cta {
  margin-top: 40px;
  padding: 28px 32px;
  background: var(--ks-warm-light);
  border-left: 4px solid var(--ks-blue);
  border-radius: var(--ks-radius);
}
.path-kontakty .ks-provozni-cta h2 {
  margin: 0 0 8px;
  color: var(--ks-blue-dark);
  font-size: var(--ks-fs-lg);
}
.path-kontakty .ks-provozni-cta p {
  margin: 0 0 16px;
  color: var(--ks-text);
  max-width: 60ch;
}
.path-kontakty .ks-provozni-odkaz {
  display: inline-block;
  padding: 10px 22px;
  background: var(--ks-blue);
  color: #fff;
  text-decoration: none;
  border-radius: var(--ks-radius);
  font-weight: 600;
  transition: background 0.2s;
}
.path-kontakty .ks-provozni-odkaz:hover,
.path-kontakty .ks-provozni-odkaz:focus-visible {
  background: var(--ks-blue-dark);
}

/* ============================================================
   12. KS-HERO — úvodní banner kategorií (vkládá se do popisu
   termu jako <div class="ks-hero">) · 7. 6. 2026
   ============================================================ */
.ks-hero {
  background: var(--ks-warm-light);
  color: var(--ks-blue-dark);
  font-family: var(--ks-font-heading);
  width: 100%;
  border-radius: var(--ks-radius-lg);
  padding: 1.5rem 2vw 2.5rem 2vw;
  margin: 0 0 36px;
  font-size: var(--ks-fs-lg);
  line-height: 1.7;
  box-shadow:
    10px 1px 16px rgba(0, 25, 84, .10),
    1px 10px 16px rgba(0, 25, 84, .10);
}
.ks-hero p { color: var(--ks-blue-dark); }
.ks-hero p:last-child { margin-bottom: 0; }
.ks-hero a {
  color: var(--ks-blue-dark);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.ks-hero a:hover { color: var(--ks-text); }
.ks-hero h2, .ks-hero h3 {
  color: var(--ks-blue-dark);
  margin-top: 0;
}

/* ============================================================
   12-uvod. HERO NA TITULCE — obrázek na pozadí (12. 7. 2026)
   ============================================================
   Recykluje .ks-hero (sekce 12). Modifikátor --uvod přidává
   obrázek na pozadí + béžový overlay (čitelnost tmavého textu).
   Scoped na .path-frontpage → trefí jen hero v těle nodu 5676. */
body.path-frontpage .ks-hero--uvod {
  background-image:
    linear-gradient(rgba(240, 225, 211, .70), rgba(240, 225, 211, .90)),
    url('/sites/default/files/default_images/2024-03-01-aradecor_0.jpg');
  background-size: cover;
  background-position: center;
  padding-block: var(--ks-sp-6);
}
.ks-hero--uvod .ks-hero__label {
  font-family: var(--ks-font-heading);
  font-size: var(--ks-fs-sm);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ks-blue);
  margin: 0 0 var(--ks-sp-1);
}
.ks-hero--uvod h2 {
  font-size: var(--ks-fs-2xl);
  margin: 0 0 var(--ks-sp-2);
}
.ks-hero--uvod .ks-hero__akce { margin-top: var(--ks-sp-3); }
.ks-hero--uvod .ks-hero__btn {
  display: inline-block;
  margin-right: 1.2rem;
  padding: .6rem 1.2rem;
  border-radius: var(--ks-radius);
  background: var(--ks-blue);
  color: var(--ks-white);
  text-decoration: none;
  font-family: var(--ks-font-heading);
}
.ks-hero--uvod .ks-hero__btn:hover { background: var(--ks-white); }
.ks-hero--uvod .ks-sec-hero__btn {
  display: inline-block;
  margin-right: 1.2rem;
  padding: .6rem 1.2rem;
  border-radius: var(--ks-radius);
  background: var(--ks-white);
  color: var(--ks-blue);
  text-decoration: none;
  font-family: var(--ks-font-heading);
 }

/* ============================================================
   MIKROEFEKT — hover na .ks-hero
   Pozadí warm-light → bílá, stín se zvedne, jemně naběhne modrý
   rámeček. Vše animovatelné → plynulé, bez cuknutí.
   ============================================================ */
.ks-hero {
  border: 1px solid transparent;     /* místo pro rámeček → žádný skok */
  transition:
    background-color .35s ease,
    box-shadow       .35s ease,
    border-color     .35s ease;      /* ← aby rámeček naběhl jemně */
}
.ks-hero:hover {
  background-color: var(--ks-white);
  border-color: var(--ks-border);      /* jen barva — šířka už je z báze */
  box-shadow:
    0 1px 3px rgba(0, 25, 84, .10),
    0 1px 3px rgba(0, 25, 84, .10);
}

/* Ohleduplnost k pohybu — viz níže */
@media (prefers-reduced-motion: reduce) {
  .ks-hero { transition: none; }
}

/* Popis termu skryt z View — renderuje se v hero regionu */
.view-id-taxonomy_term .view-header {
  display: block;
}

/* 12b. Perex/hero kategorií — popis termu jako lead, PŘES CELOU ŠÍŘKU obsahu.
   Frontpage (dlaždice v popisu termu Úvod) a plné ks-hero bannery vynecháváme. */
body:not(.path-frontpage) .view-header .field--name-description:not(:has(.ks-hero)) {
  font-family: var(--ks-font-body);
  font-style: italic;
  font-size: var(--ks-fs-lg);
  line-height: 1.7;
  color: var(--ks-warm-dark);
  border-left: 4px solid var(--ks-blue);
  padding: 4px 0 4px 18px;
  margin: 0 0 32px;
  max-width: none;   /* bylo 62ch — hero teď přes celou šířku obsahu */
}

/* ============================================================
   12d. GENERAČNÍ STRÁNKY SBOROVÝCH LISTŮ — přidáno 8. 6. 2026
   ============================================================
   View `sborove_listy_generace`, displaye s CSS třídou .ks-gen-grid.
   Karty (.views-row) = obálka (A4, styl pdf_karta 520×738) + titulek
   (jako nadpis) + perex. Mřížka 3/2/1 dle Janiných prahů 1780/1150 px
   (zohledňují sidebar — reagují na šířku viewportu, ne obsahu).
   ============================================================ */

/* ----------------------------------------------------------
   12d-1. MŘÍŽKA — .view-content je přímý kontejner karet
   ---------------------------------------------------------- */
.ks-gen-grid .view-content {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px 28px;
  margin-block: var(--sp2, 1.5rem);
}

/* Tablet / užší desktop: 2 sloupce */
@media (max-width: 1780px) {
  .ks-gen-grid .view-content {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Mobil / úzký obsah: 1 sloupec */
@media (max-width: 1150px) {
  .ks-gen-grid .view-content {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}

/* ----------------------------------------------------------
   12d-2. KARTA (.views-row) — sloupec: obálka → titulek → perex
   ---------------------------------------------------------- */
.ks-gen-grid .views-row {
  display: flex;
  flex-direction: column;
}

/* ----------------------------------------------------------
   12d-3. OBÁLKA — A4 náhled, jemný stín, zdvih na hover
   ---------------------------------------------------------- */
.ks-gen-grid .views-field-field-image .field-content {
  display: block;
}
.ks-gen-grid .views-field-field-image a {
  display: block;
  border: 1px solid var(--ks-border, #d1dce8);
  border-radius: 3px;
  overflow: hidden;
  box-shadow: 0 2px 6px rgba(0, 25, 84, .10);
  transition: transform .18s ease, box-shadow .18s ease;
}
.ks-gen-grid .views-field-field-image img {
  display: block;
  width: 100%;
  height: auto;
}
.ks-gen-grid .views-row:hover .views-field-field-image a {
  transform: translateY(-4px);
  box-shadow: 0 10px 24px rgba(0, 25, 84, .18);
}

/* ----------------------------------------------------------
   12d-4. TITULEK — jako nadpis (Inter 700), ne pouhý odkaz
   ---------------------------------------------------------- */
.ks-gen-grid .views-field-title {
  margin-top: 14px;
}
.ks-gen-grid .views-field-title a {
  font-family: var(--ks-font-heading);
  font-weight: 700;
  font-size: var(--ks-fs-lg);
  line-height: 1.25;
  color: var(--ks-blue-dark, #001954);
  text-decoration: none;
}
.ks-gen-grid .views-field-title a:hover,
.ks-gen-grid .views-field-title a:focus-visible {
  color: var(--ks-blue, #1a6fa8);
  text-decoration: underline;
}

/* ----------------------------------------------------------
   12d-5. PEREX — menší, tlumený, čitelný odstup
   ---------------------------------------------------------- */
.ks-gen-grid .views-field-body {
  margin-top: 6px;
}
.ks-gen-grid .views-field-body .field-content p {
  margin: 0;
  font-size: var(--ks-fs-base);
  line-height: 1.5;
  color: var(--ks-muted, #635e5a);
}

/* ----------------------------------------------------------
   12d-6. PAGER — odstup nad stránkováním
   ---------------------------------------------------------- */
.ks-gen-grid .pager {
  margin-top: var(--sp3, 2.5rem);
}

/* ============================================================
   12e. ROZCESTNÍKOVÉ PANELY — společný vzhled block displejů
        SBOROVÉ LISTY · HUDBA A KONCERTY · (budoucí rozcestníky)
        Povýšeno 20. 6. 2026 — Netflix fasáda, krok 1: nadpisy panelů
   ============================================================
   Původně (8. 6.) vázáno jen na wrapper Sborových listů. Nyní jedna
   šablona pro VŠECHNY rozcestníkové bloky, ať se „malé nadpisíčky"
   neslévají a panely vypadají všude stejně. Společný hák — tři cesty
   k témuž vzhledu:

     • [class*="block-views-blocksborove-listy-generace"]  — Sborové listy
     • [class*="block-views-blockhudba-rozcestnik"]        — Hudba a koncerty
     • .ks-rozcestnik   — BUDOUCNOST: u nového rozcestníku (Archiv,
                          Galerie, BaK) stačí vepsat tuto třídu do pole
                          „CSS třída" block displeje ve Views a panel se
                          ostyluje sám, bez zásahu do tohoto CSS. Pak lze
                          enumerace výše postupně vyřadit.

   Míří na BLOCK displeje (rozcestník). PAGE stránky
   (/sborove-listy/…, /hudba-koncerty/varhany …) tyto wrappery NEmají,
   takže karty na nich si řeší vlastní sekce a tohle se jich nedotkne.

   Tři úpravy panelu:
     1) Nadpis sekce sjednotit s vizuálem článkových h2.
     2) Odkaz „Zobrazit všechny →" ukotvit vedle nadpisu (vpravo).
     +) Pager (šipka na 2. stránku) v rozcestníku schovat.
        TODO: čistěji vypnout přímo ve View (Stránkovač → bez pageru).
   ============================================================ */

/* Společná kotva každého panelu.
   position: relative drží absolutně ukotvený odkaz „více". */
[class*="block-views-blocksborove-listy-generace"],
[class*="block-views-blockhudba-rozcestnik"],
.ks-rozcestnik {
  position: relative;
  margin-bottom: 2.5rem;
  /*margin-top: 2.5rem;*/
}

/* ----------------------------------------------------------
   12e-1. NADPIS PANELU — jako článkové h2 (Inter 700, blue-dark)
   ---------------------------------------------------------- */
/* 12e-1. NADPIS PANELU — jednotny pro VSECHNY rozcestniky pres :has().
   .block__title visi na OBALU bloku, ks-rozcestnik na vnitrnim .view.
   Sborove listy nesou vlastni mrizku ks-gen-grid → druhy, wrapperovy hacek. */
.block:has(.ks-rozcestnik) .block__title,
[class*="block-views-blocksborove-listy-generace"] .block__title {
  font-family: var(--ks-font-heading);
  font-weight: 700;
  font-size: var(--ks-fs-3xl);
  line-height: 1.25;
  color: var(--ks-blue-dark);
  margin: 0 0 18px;
  padding-right: 9rem;
}

/* ----------------------------------------------------------
   12e-1-heritage. Cormorant v panelech Hudba/Historie sedí
   v řádkovém boxu níž (jiné účaří) než pilulka „více".
   Srovnáme horní hranu nadpisu k pilulce.
   ---------------------------------------------------------- */
/* 12e-1-heritage. V sekcich Hudba/Historie zustava Cormorant a nadpis
   panelu se ucarim posadi k pilulce "Zobrazit vse". */
.ks-sekce-hudba    .block:has(.ks-rozcestnik) .block__title,
.ks-sekce-historie .block:has(.ks-rozcestnik) .block__title {
  font-family: var(--ks-font-heritage);
  margin-top: -0.28em;
  line-height: 1.1;
}

/* ----------------------------------------------------------
   12e-3. „ZOBRAZIT VŠECHNY →" — vycentrovaný v horním pásu panelu
   Sedí NAD kartami (ne přes ně) → konec souboje modré-na-modrém.
   Vlastní podklad = čitelný i kdyby pás někdy ztmavl.
   ---------------------------------------------------------- */
[class*="block-views-blocksborove-listy-generace"] .more-link,
[class*="block-views-blockhudba-rozcestnik"] .more-link,
.ks-rozcestnik .more-link {
  position: absolute;
  top: -3.6rem;
  left: 0;
  right: 0;
  margin: 0;
  text-align: right;
  z-index: 2;
  padding-top: 0;        /* ← jediné číslo na ladění výšky */
  pointer-events: none;
}
[class*="block-views-blocksborove-listy-generace"] .more-link a,
[class*="block-views-blockhudba-rozcestnik"] .more-link a,
.ks-rozcestnik .more-link a {
  display: inline-block;
  pointer-events: auto;
  font-family: var(--ks-font-heading);
  font-size: var(--ks-fs-base);
  font-weight: 600;
  color: var(--ks-blue-dark);
  text-decoration: none;
  white-space: nowrap;
  background: var(--ks-bg);
  padding: .25rem .7rem;
  border-radius: var(--ks-radius);
  box-shadow: 0 1px 3px rgb(0 0 0 / 8%);
}
[class*="block-views-blocksborove-listy-generace"] .more-link a:hover,
[class*="block-views-blocksborove-listy-generace"] .more-link a:focus-visible,
[class*="block-views-blockhudba-rozcestnik"] .more-link a:hover,
[class*="block-views-blockhudba-rozcestnik"] .more-link a:focus-visible,
.ks-rozcestnik .more-link a:hover,
.ks-rozcestnik .more-link a:focus-visible {
  color: #fff;
  background: var(--ks-blue);
  text-decoration: none;
}

/* ----------------------------------------------------------
   12e-+. PAGER v rozcestníku — schovat (dočasně, CSS)
   Na PAGE stránkách pager zůstává (jiný wrapper).
   ---------------------------------------------------------- */
[class*="block-views-blocksborove-listy-generace"] .pager,
[class*="block-views-blockhudba-rozcestnik"] .pager,
.ks-rozcestnik .pager {
  display: none;
}

/* ----------------------------------------------------------
   12e-mobile. Úzký viewport: „více" pod nadpis (ať se nemačká)
   ---------------------------------------------------------- */
@media (max-width: 540px) {
  .block:has(.ks-rozcestnik) .block__title,
  [class*="block-views-blocksborove-listy-generace"] .block__title {
    padding-right: 0;
  }
  [class*="block-views-blocksborove-listy-generace"] .more-link,
  [class*="block-views-blockhudba-rozcestnik"] .more-link,
  .ks-rozcestnik .more-link {
    position: static;
    text-align: left;
    padding-top: 0;
    margin-top: 12px;
  }
}

/* ----------------------------------------------------------
   12e-rss. RSS ikona na stránce SBOROVÝCH LISTŮ — schovat.
   Jen tam, kde běží SL rozcestníkový blok. (Hudba má RSS řešené
   zvlášť v sekci 13f přes .view-taxonomy-term .feed-icons.)
   RSS pro SL nadále dostupné přes /taxonomy/term/3953/feed.
   ---------------------------------------------------------- */
.region--content:has([class*="block-views-blocksborove-listy-generace"]) .feed-icons {
  display: none;
}

/* Kontaktní řady — sloupce vedle sebe, pod 1150px do jednoho sloupce */
.ks-kontakt-rada {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
    align-items: flex-start;
    margin-bottom: 2rem;
}
.ks-kontakt-rada > * {
    flex: 1 1 350px;
    min-width: 0;
}
.ks-kontakt-rada .ks-mapa iframe {
    width: 100%;
    border: 0;
    display: block;
}
@media (max-width: 1150px) {
    .ks-kontakt-rada {
        flex-direction: column;
    }
}

/* ============================================================
   13. KARTA VÝPISU — blok 13a–13d  (VERZE 22. 6. 2026: zarovnání na výšku)
   ============================================================
   NÁVOD: ve web/themes/custom/ks/css/style.css nahraďte STÁVAJÍCÍ
   řádky 1846–1974 (sekce 13a, 13b, 13c, 13c-ph, 13d) tímto blokem.
   Sekce 13e (fokus) a 13f (Hudba) ZŮSTÁVAJÍ beze změny — nesahat.

   Co se mění oproti staré verzi:
     • mřížka:  align-items end → stretch  (karty v řádku stejně vysoké)
     • karta:   height 100%                 (vyplní stretchnutou buňku)
     • náhled:  height auto → pevná výška + object-fit cover (fotky stejné)
     • perex:   flex 1                       (text nahoře, spodní mezera na dně)
     • titulek: padding-top 14 → 16 px       (= spodní mezera, ne větší)
     • text:    line-clamp (titulek 2 ř., perex 3 ř.) — konzistentní výška
   Výšku náhledu řídí proměnná --ks-karta-foto-h (jedno místo, 13b).
   ============================================================ */

/* ----------------------------------------------------------
   13a. MŘÍŽKA — přebíjí výchozí Views grid, prahy 1780/1150
   ZMĚNA: align-items end → stretch. Karty v řádku teď drží
   STEJNOU VÝŠKU (nejvyšší určuje řádek), místo aby se „uzemnily"
   dolů každá s vlastní výškou.
   ---------------------------------------------------------- */
:is(.view-galerie-listing, .ks-karty) .views-view-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--ks-sp-5) var(--ks-sp-5);
  /* margin-block: var(--sp2, 1.5rem); */
  align-items: stretch;              /* bylo: end */
}
:is(.view-galerie-listing, .ks-karty) .views-view-grid__row {
  display: contents;
}
@media (max-width: 1780px) {
  :is(.view-galerie-listing, .ks-karty) .views-view-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 1150px) {
  :is(.view-galerie-listing, .ks-karty) .views-view-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }
}
:is(.view-galerie-listing, .ks-karty) .views-view-grid__item {
  margin: 0;
  padding: 0;
  height: 100%;                      /* buňka vyplní řádek → karta má do čeho růst */
}

/* ----------------------------------------------------------
   13b. KARTA (.views-view-grid__item-inner) — vyplní výšku buňky
   ZMĚNA: height 100% → karta zaplní celou (stretchnutou) buňku,
   takže sousední karty skončí na stejné dolní hraně.
   --ks-karta-foto-h = JEDNOTNÁ výška náhledu (fotka i ovečka).
   ---------------------------------------------------------- */
:is(.view-galerie-listing, .ks-karty) .views-view-grid__item-inner {
  --ks-karta-foto-h: 440px;          /* JEDNO místo pro výšku náhledu */
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--ks-white, #fff);
  border: 1px solid var(--ks-border, #d1dce8);
  border-radius: var(--ks-radius-lg);
  overflow: hidden;
  box-shadow:     
    10px 1px 16px rgba(0, 25, 84, .10),
    1px 10px 16px rgba(0, 25, 84, .10);
  transition: transform .18s ease, box-shadow .18s ease;
}
:is(.view-galerie-listing, .ks-karty) .views-view-grid__item:hover .views-view-grid__item-inner {
  transform: translateY(-4px);
  box-shadow:
    0 1px 3px rgba(0, 25, 84, .10),
    0 1px 3px rgba(0, 25, 84, .10);
}

/* ----------------------------------------------------------
   13c. NÁHLED — JEDNOTNÁ výška, fotka ořezem na střed (cover)
   ZMĚNA: height auto → pevná výška (--ks-karta-foto-h) + object-fit
   cover. Všechny fotky teď stejně vysoké, ořezané na střed. Ovečka
   drží STEJNOU výšku (13c-ph), ale zůstává contain (neořezává se).
   ---------------------------------------------------------- */
:is(.view-galerie-listing, .ks-karty) :is(.views-field-field-galerie, .views-field-field-image),
:is(.view-galerie-listing, .ks-karty) :is(.views-field-field-galerie, .views-field-field-image) .field-content,
:is(.view-galerie-listing, .ks-karty) :is(.views-field-field-galerie, .views-field-field-image) .media {
  margin: 0;
  display: block;
}
:is(.view-galerie-listing, .ks-karty) :is(.views-field-field-galerie, .views-field-field-image) a,
:is(.view-galerie-listing, .ks-karty) :is(.views-field-field-galerie, .views-field-field-image) .field--name-field-media-image {
  display: block;
  margin: 0;
}
/* 13c. Náhled — pevná výška + cover JEN pro články (field_image).
   Galerii (field_galerie = media + colorbox) řeší sekce 9, nesaháme. */
.ks-karty .views-field-field-image img {
  display: block;
  width: 100%;
  height: var(--ks-karta-foto-h, 250px);
  object-fit: cover;
  transition: transform .25s ease, filter .25s ease;
}
.ks-karty .views-view-grid__item:hover .views-field-field-image img {
  transform: scale(1.04);
  filter: brightness(1.04);
}

/* 13c-gal. Náhled v listingu /galerie — média + colorbox.
   Jiná cesta než sekce 9 (ta řeší galerii UVNITŘ nodu), tady
   roztáhneme thumbnail na šířku karty a sjednotíme výšku. */
.view-galerie-listing .views-field-field-galerie,
.view-galerie-listing .views-field-field-galerie .field-content,
.view-galerie-listing .views-field-field-galerie .media,
.view-galerie-listing .views-field-field-galerie .field--name-field-media-image,
.view-galerie-listing .views-field-field-galerie a.colorbox {
  display: block;
  width: 100%;
  margin: 0;
}
.view-galerie-listing .views-field-field-galerie img {
  display: block;
  width: 100%;
  height: var(--ks-karta-foto-h, 250px);
  max-width: none;
  object-fit: cover;
  transition: transform .25s ease, filter .25s ease;
}
.view-galerie-listing .views-view-grid__item:hover .views-field-field-galerie img {
  transform: scale(1.04);
  filter: brightness(1.04);
}

/* 13c-ph. Karta BEZ fotky → placeholder pruh STEJNÉ výšky jako foto.
   Ovečka zůstává contain (neořezává se), jen drží výšku slotu. */
:is(.view-galerie-listing, .ks-karty) .views-view-grid__item-inner:not(:has(img))::before {
  content: "";
  display: block;
  height: var(--ks-karta-foto-h, 250px);    /* bylo: 150px napevno */
  background:
    var(--ks-blue-light)
    url("/sites/default/files/migrations/documents/2024-03-01-aradecor.jpg")
    center / cover no-repeat;
  border-bottom: 1px solid var(--ks-border);
}

/* ----------------------------------------------------------
   13d. TEXTOVÁ ČÁST — text připnutý nahoru, perex vyplní zbytek
   ZMĚNA:
     • titulek padding-top 14 → 16 px (mezera pod fotkou = spodní mezera)
     • perex flex 1 → roztáhne se na zbytek výšky; text zůstává NAHOŘE,
       spodní mezera (16 px) drží VŽDY na dně karty
     • line-clamp: titulek 2 řádky, perex 3 řádky → text konzistentně
       vysoký, dlouhé texty neroztáhnou řádek mřížky
   ---------------------------------------------------------- */
:is(.view-galerie-listing, .ks-karty) .views-field-title,
:is(.view-galerie-listing, .ks-karty) .views-field-field-datum-udalosti,
:is(.view-galerie-listing, .ks-karty) .views-field-body {
  padding-inline: 16px;
}
:is(.view-galerie-listing, .ks-karty) .views-field-title {
  padding: 24px 16px 16px 16px;                 /* bylo: 14px — mezera pod fotkou = spodní mezera */
}
:is(.view-galerie-listing, .ks-karty) .views-field-title h3 {
  margin: 0;
  font-size: var(--ks-fs-xl);
  line-height: 1;
  display: -webkit-box;              /* titulek max 2 řádky */
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  line-clamp: 2;   
  overflow: hidden;
}
:is(.view-galerie-listing, .ks-karty) .views-field-title a {
  color: var(--ks-blue-dark, #001954);
  font-weight: 700;
  text-decoration: none;
}
:is(.view-galerie-listing, .ks-karty) .views-field-title a:hover {
  color: var(--ks-blue, #1a6fa8);
  text-decoration: underline;
}
:is(.view-galerie-listing, .ks-karty) .views-field-field-datum-udalosti {
  padding-top: 4px;
  font-size: var(--ks-fs-xs);
  color: var(--ks-muted, #635e5a);
}
:is(.view-galerie-listing, .ks-karty) .views-field-field-datum-udalosti time {
  font-style: normal;
}
:is(.view-galerie-listing, .ks-karty) .views-field-body {
  flex: 1;                           /* perex vyplní zbytek → spodní mezera drží na dně */
  padding-top: 0px;
  padding-bottom: 16px;
  font-size: var(--ks-fs-sm);
  line-height: 1.55;
  color: var(--ks-text, #222);
}
:is(.view-galerie-listing, .ks-karty) .views-field-body .field-content {
  display: -webkit-box;              /* perex max 3 řádky */
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  line-clamp: 3;
  overflow: hidden;
}

/* ----------------------------------------------------------
   13e. PŘÍSTUPNOST — viditelný fokus na odkazu náhledu
   ---------------------------------------------------------- */
:is(.view-galerie-listing, .ks-karty) :is(.views-field-field-galerie, .views-field-field-image) a:focus-visible {
  outline: 2px solid var(--ks-blue, #1a6fa8);
  outline-offset: 2px;
}

/* ============================================================
   VZOR B — společné: prázdný taxonomy listing (bez karet)
   ⚠️ SCOPE JEN na rozcestníkové stránky! #block-ks-content nese
   i TĚLO nodů (článek/stránka/galerie/osoba). Bez scope skryje
   obsah každé node stránky (regrese z 26. 6.).
   Při novém rozcestníku přidat jeho block hook do :has() seznamu
   — nebo prostě dát block displeji CSS třídu ks-rozcestnik.
   ============================================================ */
body:not(.path-frontpage) .region--content:has(
  [class*="block-views-blockhudba-rozcestnik"],
  [class*="block-views-blockpro-rodinu-rozcestnik"],
  [class*="block-views-blocklide-rozcestnik"],
  [class*="block-views-blockseniori-rozcestnik"],
  [class*="block-views-blocksborove-listy-generace"],
  .ks-rozcestnik
) #block-ks-content:not(:has(.view-content)) {
  display: none;
}

/* ============================================================
   13f. HUDBA A KONCERTY — rozcestník: skrýt VÝPIS, ne hero
   ============================================================
   Schováme výchozí výpis termu (zamíchaných 44 nodů) a jeho pager,
   ALE necháme hlavičku View, kde žije hero (popis termu). Jen tam,
   kde běží rozcestníkový blok.
   ============================================================ */
.region--content:has([class*="block-views-blockhudba-rozcestnik"]) .view-taxonomy-term .view-content,
.region--content:has([class*="block-views-blockhudba-rozcestnik"]) .view-taxonomy-term .pager,
.region--content:has([class*="block-views-blockhudba-rozcestnik"]) .view-taxonomy-term .feed-icons {
  display: none;
}

/* ============================================================
   14. SKRYTÍ ARCHIVNÍ BRÁNY 4022 Z MENU — 14. 6. 2026
   ============================================================
   /10-archivacni zůstává přístupná přímou URL (Pavel) + noindex (hook).
   Z hlavní navigace ji jen vizuálně schováme (i s její archivní větví).
   Záměrně NEpřes hook — ať nerozbijeme rozcestník potomků na té stránce.
   ============================================================ */
.primary-nav__menu-item:has(a[href="/10-archivacni"]) {
  display: none !important;
}

/* ----------------------------------------------------------
   13f-margin. Potlačený výchozí výpis termu se smrskne na 0 px,
   ale drží margin (oranžový pruh nad panely). Vynulovat.
   ---------------------------------------------------------- */
.region--content:has([class*="block-views-blockhudba-rozcestnik"]) #block-ks-content {
  margin-block: 0;
}

/* ============================================================
   15. PRO RODINU — rozcestník (21. 6. 2026)
   ============================================================
   Stejný vzor jako Hudba (13f) a Sborové listy (12e), jen hák
   na wrapper block-views-blockpro-rodinu-rozcestnik-*.
   Karty (.ks-karty) řeší sdílená sekce 13 — sem patří jen
   nadpisy panelů + skrytí výchozího výpisu termu 3960.
   ============================================================ */
 
/* Společná kotva panelů */
[class*="block-views-blockpro-rodinu-rozcestnik"] {
  position: relative;
  margin-bottom: 2.5rem;
}
 
 
/* ------------------------------------------------------------
   Skrýt výchozí výpis termu 3960 (zamíchané nody) + pager + RSS,
   ALE necháme .view-header, kde žije hero (popis termu).
   Jen tam, kde běží rozcestníkový blok Pro rodinu.
   ------------------------------------------------------------ */
.region--content:has([class*="block-views-blockpro-rodinu-rozcestnik"]) .view-taxonomy-term .view-content,
.region--content:has([class*="block-views-blockpro-rodinu-rozcestnik"]) .view-taxonomy-term .pager,
.region--content:has([class*="block-views-blockpro-rodinu-rozcestnik"]) .view-taxonomy-term .feed-icons {
  display: none;
}

/* ============================================================
   16. LIDÉ — rozcestník (21. 6. 2026)
   ============================================================
   Stejný vzor jako Pro rodinu (15), Hudba (13f) a Sborové listy
   (12e). Hák na wrapper block-views-blocklide-rozcestnik-*.
   Karty (.ks-karty) řeší sdílená sekce 13 — sem patří jen
   nadpisy panelů + (preventivně) skrytí výchozího výpisu termu
   3773. Term 3773 má 0 přímých nodů, takže skrytí je pojistka:
   kdyby někdy stray node přibyl, nezamíchá se do rozcestníku;
   hero z popisu termu (.view-header) zůstává viditelný.

   Pozn.: NEvázáno na .ks-rozcestnik (z 12e) — ta třída sedí na
   vnitřním .view, kdežto .block__title je na obalu bloku, takže
   by ji selektor minul. Proto hák přes block-views-block… wrapper.
   ============================================================ */

/* Společná kotva panelů */
[class*="block-views-blocklide-rozcestnik"] {
  position: relative;
  margin-bottom: 2.5rem;
}


/* ------------------------------------------------------------
   Skrýt výchozí výpis termu 3773 (preventivně) + pager + RSS,
   ALE necháme .view-header, kde žije hero (popis termu).
   Jen tam, kde běží rozcestníkový blok Lidé.
   ------------------------------------------------------------ */
.region--content:has([class*="block-views-blocklide-rozcestnik"]) .view-taxonomy-term .view-content,
.region--content:has([class*="block-views-blocklide-rozcestnik"]) .view-taxonomy-term .pager,
.region--content:has([class*="block-views-blocklide-rozcestnik"]) .view-taxonomy-term .feed-icons {
  display: none;
}

/* ============================================================
   17.BOHOSLUŽBY A KÁZÁNÍ — rozcestník (30. 6. 2026)
   ============================================================
   Vzor jako Hudba (13f) / Pro rodinu (15) / Lidé (16). Panely mají
   třídu ks-rozcestnik (na vnitřním .view) → karty, „více", pager
   i kotvu (position/margin) dědí ze sekce 12e. Sem patří jen:
     1) NADPIS panelu — .block__title je na OBALU bloku, mimo dosah
        .ks-rozcestnik, proto hák na BaK wrapper.
     2) 13g — OBECNÝ hide výchozího výpisu termu přes :has(.ks-rozcestnik).
        Reusable pro každý budoucí rozcestník s touto třídou
        (Archiv, Naše kořeny). Hero (.view-header) zůstává.
   ============================================================ */

/* 1) Nadpis panelu BaK — jako článkové h2 (shodně s Hudbou: 3xl) */
[class*="block-views-blockbohosluzby-rozcestnik"] .block__title,
[class*="block-views-blockfotoarchiv-rozcestnik"] .block__title {
  font-family: var(--ks-font-heading);
  font-weight: 700;
  font-size: var(--ks-fs-3xl);
  line-height: 1.25;
  color: var(--ks-blue-dark);
  margin: 0 0 18px;
  padding-right: 9rem;   /* místo vpravo pro „více", ať nenaráží */
}

/* 2) 13g — OBECNÝ hide výchozího výpisu termu na rozcestníku.
   Klíčeno na .ks-rozcestnik (vnitřní .view panelu). Mizí jen výpis
   nodů + pager + RSS; hero (.view-header) i panely zůstávají. */
.region--content:has(.ks-rozcestnik) .view-taxonomy-term .view-content,
.region--content:has(.ks-rozcestnik) .view-taxonomy-term .pager,
.region--content:has(.ks-rozcestnik) .view-taxonomy-term .feed-icons {
  display: none;
}

/* Potlačený výpis termu: vynulovat margin (jinak oranžový pruh nad panely) */
.region--content:has(.ks-rozcestnik) #block-ks-content {
  margin-block: 0;
}

/* ============================================================
   18. SENIOŘI — rozcestník (21. 6. 2026)
   ============================================================
   Stejný vzor jako Lidé (16) a Pro rodinu (15). Hák na wrapper
   block-views-blockseniori-rozcestnik-*. Karty řeší sdílená
   sekce 13 — sem patří jen nadpisy panelů + skrytí výchozího
   výpisu termu 3961 (po vyčištění indexu už prázdný; držíme
   pojistku + zůstává hero z popisu termu).
   ============================================================ */

/* Společná kotva panelů */
[class*="block-views-blockseniori-rozcestnik"] {
  position: relative;
  margin-bottom: 2.5rem;
}


/* ------------------------------------------------------------
   Skrýt výchozí výpis termu 3961 (pojistka) + pager + RSS,
   hero (.view-header) ponecháme.
   ------------------------------------------------------------ */
.region--content:has([class*="block-views-blockseniori-rozcestnik"]) .view-taxonomy-term .view-content,
.region--content:has([class*="block-views-blockseniori-rozcestnik"]) .view-taxonomy-term .pager,
.region--content:has([class*="block-views-blockseniori-rozcestnik"]) .view-taxonomy-term .feed-icons {
  display: none;
}

/* ============================================================
   19. NAŠE KOŘENY — rozcestník (30. 6. 2026)
   ============================================================
   Stejný vzor jako BaK (16) / Hudba (13f) / Lidé. Hák na wrapper
   block-views-blocknase-koreny-rozcestnik-*. Karty řeší sdílená
   sekce 13 (.ks-karty); výchozí výpis termu 3963 hasí obecné 13g
   přes .ks-rozcestnik. Sem patří jen kotva panelu + nadpis.
   Font dědí heritage (Cormorant small-caps) ze .ks-sekce-historie
   — záměrně, ať ladí s hero „NAŠE KOŘENY".
   ============================================================ */

/* Společná kotva panelů */
[class*="block-views-blocknase-koreny-rozcestnik"] {
  position: relative;
  margin-bottom: 2.5rem;
}


/* ============================================================
   20. KS-KB-HERO — roční přehled v Kronice bohoslužeb
   (attachment_hero displeje View kronika_bohosluzeb; pole body
   = tabulka bohoslužeb daného roku) · 1. 7. 2026
   ============================================================ */

/* Kontejner dědí vzhled ze sekce 12 (.ks-hero, viz krok 1a výše).
   Tady jen to, co .ks-hero neřeší: tabulka. */

.ks-kb-hero {
  padding-bottom: 2rem;   /* pod tabulkou netřeba tolik vzduchu jako pod textem (báze 4rem) */
}

.ks-kb-hero:empty {
  display: none;          /* pojistka pro roky bez přehledu, např. 2026 */
}

.ks-kb-hero table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--ks-font-body);
  font-size: var(--ks-fs-sm);
  margin-top: 0.5rem;
  display: block;          /* + overflow-x níže = vodorovný scroll na mobilu */
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.ks-kb-hero th,
.ks-kb-hero td {
  padding: 8px 14px;
  text-align: left;
  border-bottom: 1px solid var(--ks-border);
}

.ks-kb-hero th {
  background: var(--ks-blue-light);
  color: var(--ks-blue-dark);
  font-family: var(--ks-font-heading);
  font-weight: 700;
  font-size: var(--ks-fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  white-space: nowrap;
}

.ks-kb-hero tbody tr:nth-child(even) {
  background: rgba(225, 237, 250, .35);  /* zebra, odvozeno z --ks-blue-light */
}

.ks-kb-hero tbody tr:hover {
  background: var(--ks-blue-light);
}

/* ============================================================
   21. HERITAGE FONT — Historie sboru + Hudba a koncerty
   Spínač: body.ks-sekce-historie / .ks-sekce-hudba (ks_preprocess_html).
   Razítko jede podle aliasu → platí i pro podstránky a uzly v sekci.
   ============================================================ */

/* 18a · Nadpisy obsahu (h1–h3) — small-caps treatment */
.ks-sekce-historie .layout-main-wrapper :is(h1, h2, h3),
.ks-sekce-hudba    .layout-main-wrapper :is(h1, h2, h3) {
  font-family: var(--ks-font-heritage);
  font-variant: small-caps;
  letter-spacing: 0.015em;
  margin-block: 0;
}

/* 18b · Hero titul */
.ks-sekce-historie .ks-hero,
.ks-sekce-hudba    .ks-hero {
  font-family: var(--ks-font-body);
  font-weight: 600;
  /* chceš i small-caps jako u nadpisů? odkomentuj: */
  /* font-variant: small-caps; letter-spacing: 0.015em; */
}

/* 18c · Titulky karet (Netflix panely + galerie) — jen v sekcích */
.ks-sekce-historie :is(.view-galerie-listing, .ks-karty) .views-field-title a,
.ks-sekce-hudba    :is(.view-galerie-listing, .ks-karty) .views-field-title a {
  font-family: var(--ks-font-heritage);
}

/* 18d · Sidebar — JEN titulky bloků (ne odkazy, ne drobný text).
   .block__title nese v základu !important (ř. ~1174), proto i tady. */
.ks-sekce-historie .region--sidebar .block__title,
.ks-sekce-hudba    .region--sidebar .block__title {
  font-family: var(--ks-font-heritage) !important;
}
.ks-sekce-historie .sidebar-block-title,
.ks-sekce-hudba    .sidebar-block-title {
  font-family: var(--ks-font-heritage);
}

/* ============================================================
   22. KB ROZCESTNÍK — panel „Roky" · 1. 7. 2026
       (rev. 6. 7. 2026 — dlaždice z ID na substring)
   Potlačit výchozí výpis termu 3930 (12 přehledů), hero (popis
   termu, .view-header) necháme. Stejný vzor jako Kořeny/Senioři/
   Lidé/Pro rodinu.

   ZMĚNA 6. 7. 2026: barva dlaždic byla klíčovaná na #block-ks-kb-roky
   (ID jediného bloku) → teaser Archivu (blok ks_archiv_kb) ji nezdědil.
   Nově stejný vzor jako Kronika (sekce 24): [class*="…rozcestnik"].
   Chytne OBA bloky View kronika_bohosluzeb_rozcestnik:
     • ks_kb_roky   (podstránka /…/kronika-bohosluzeb)
     • ks_archiv_kb (teaser v lobby /historie-sboru/archiv)
   ============================================================ */

[class*="block-views-blockkronika-bohosluzeb-rozcestnik"] {
  position: relative;
  margin-bottom: 2.5rem;
}


.region--content:has([class*="block-views-blockkronika-bohosluzeb-rozcestnik"]) .view-taxonomy-term .view-content,
.region--content:has([class*="block-views-blockkronika-bohosluzeb-rozcestnik"]) .view-taxonomy-term .pager,
.region--content:has([class*="block-views-blockkronika-bohosluzeb-rozcestnik"]) .view-taxonomy-term .feed-icons {
  display: none;
}

/* Potlačený výpis se smrskne na 0 px, ale drží margin (stejná
   pojistka jako u Hudby) — vynulovat. */
.region--content:has([class*="block-views-blockkronika-bohosluzeb-rozcestnik"]) #block-ks-content {
  margin-block: 0;
}

/* Dlaždice roku — dřív #block-ks-kb-roky (ID), nyní substring (viz hlavička). */
[class*="block-views-blockkronika-bohosluzeb-rozcestnik"] .views-view-grid__item-inner a {
  display: block;
  width: 100%;
  box-sizing: border-box;
  background: var(--ks-blue-light);
  border-radius: var(--ks-radius-lg);
  padding: 1.1rem 0.5rem;
  text-align: center;
  font-family: var(--ks-font-heading);
  font-weight: 700;
  font-size: var(--ks-fs-lg);
  color: var(--ks-blue-dark);
  text-decoration: none;
  transition: background-color .2s ease, color .2s ease, transform .2s ease;
}

[class*="block-views-blockkronika-bohosluzeb-rozcestnik"] .views-view-grid__item-inner a:hover {
  background: var(--ks-blue);
  color: var(--ks-white);
  transform: translateY(-2px);
}

/* ============================================================
   23. ŽIVOT SBORU — rozcestník (2. 7. 2026)
   ============================================================
   Pět panelů (Biblické hodiny, Senioři, Pro rodinu, Mládež, Děti).
   Karty, „více" a skrytí výchozího výpisu řeší generická .ks-rozcestnik
   (13 + 13g). Sem patří jen nadpis panelu — .block__title sedí na obalu
   bloku, mimo dosah té třídy (lekce z Lidí/BaK/Naše kořeny).
   ============================================================ */
[class*="block-views-blockzivot-sboru-rozcestnik"] {
  position: relative;
  margin-bottom: 2.5rem;
}

/* ============================================================
   24. KRONIKA (HISTORIE) — rozcestník „Roky" · 6. 7. 2026
   Dvojče KB rozcestníku (sekce 22), ale NODOVÉ: pilulky jsou
   uzly „Rok XXXX" (kat. 3964), ne štítky. Vzhled identický.
   Potlačí výchozí výpis termu 3964 (staré karty), popis termu
   (.view-header = hero) necháme.
   ============================================================ */
[class*="block-views-blockkronika-rozcestnik"] {
  position: relative;
  margin-bottom: 2.5rem;
}
[class*="block-views-blockkronika-rozcestnik"] .block__title {
  font-family: var(--ks-font-heading);
  font-weight: 700;
  font-size: var(--ks-fs-xl);
  line-height: 1.25;
  color: var(--ks-blue-dark);
  margin: 0 0 18px;
}
.region--content:has([class*="block-views-blockkronika-rozcestnik"]) .view-taxonomy-term .view-content,
.region--content:has([class*="block-views-blockkronika-rozcestnik"]) .view-taxonomy-term .pager,
.region--content:has([class*="block-views-blockkronika-rozcestnik"]) .view-taxonomy-term .feed-icons {
  display: none;
}
.region--content:has([class*="block-views-blockkronika-rozcestnik"]) #block-ks-content {
  margin-block: 0;
}
/* Pilulky roků — stejné modré dlaždice jako KB (sekce 22) */
[class*="block-views-blockkronika-rozcestnik"] .views-view-grid__item-inner a {
  display: block;
  width: 100%;
  box-sizing: border-box;
  background: var(--ks-blue-light);
  border-radius: var(--ks-radius-lg);
  padding: 1.1rem 0.5rem;
  text-align: center;
  font-family: var(--ks-font-heading);
  font-weight: 700;
  font-size: var(--ks-fs-lg);
  color: var(--ks-blue-dark);
  text-decoration: none;
  transition: background-color .2s ease, color .2s ease, transform .2s ease;
}
[class*="block-views-blockkronika-rozcestnik"] .views-view-grid__item-inner a:hover {
  background: var(--ks-blue);
  color: var(--ks-white);
  transform: translateY(-2px);
}

/* ============================================================
   13x. TITULKA — SLIDY (vodorovné posuvné řady, "Netflix")
        Etapa 2a: čistá CSS mechanika (scroll-snap).
        Šipky ‹ › přijdou v etapě 2b (progressive enhancement, JS).
        Přidáno 12. 7. 2026.
   ============================================================
   CO DĚLÁ: překlápí zděděnou statickou mřížku
   .ks-karty .views-view-grid (grid 3/2/1 sl.) na VODOROVNÝ
   flex-track s odsazováním na začátek karty (scroll-snap).

   SCOPE: pouze body.path-frontpage → trefí 7 řad na "/" a NIKDE
   jinde. Hudba, Sborové listy, Historie… žijí na vlastních
   stránkách a zůstávají statickými mřížkami. Append-only —
   nemění žádný stávající řádek, žádná změna configu, žádný cex.

   STICKY: overflow-x sedí HLUBOKO v obsahu, není předkem #header
   ani sidebaru → sticky hlavička (2c-bis) ani sticky sidebar tím
   netrpí (viz vsuvka sticky 2026-07-10).

   LADICÍ ŠROUB: --ks-slide-featured (šířka první karty).
   ============================================================ */

/* Jeden zdroj pravdy pro tuto sekci. Vázáno na .ks-karty na titulce. */
body.path-frontpage .ks-karty {
  /* První (nejnovější) karta = +5 %. Mockup měl ~+67 % (1.55*1.08) —
     držím Vaše zadání, dolaďte okem. 1.0 = featured vypnuto. */
  --ks-slide-featured: 1.05;
}

/* --- TRACK: z gridu na vodorovný scroll ---
   !important + vyšší specificita přebíjí "display:grid !important"
   ze sekce 13a i mobilní "grid-template-columns:1fr". */
body.path-frontpage .ks-karty .views-view-grid {
  display: flex !important;
  flex-wrap: nowrap;
  gap: var(--ks-sp-5, 1.25rem);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: 2px;
  /* Vertikální vzduch: nahoře pro hover-lift karty (translateY -4px),
     dole pro stín + scrollbar. */
  padding: 6px 2px 12px;
  align-items: flex-start;            /* karty stejně vysoké napříč trackem */
  /* Slabý scrollbar = signál "dá se posouvat" (dokud nejsou šipky 2b). */
  scrollbar-width: inherit;
  scrollbar-color: var(--ks-blue-mid, #d1dce8) transparent;
}
body.path-frontpage .ks-karty .views-view-grid::-webkit-scrollbar {
  height: 8px;
}
body.path-frontpage .ks-karty .views-view-grid::-webkit-scrollbar-thumb {
  background: var(--ks-border, #d1dce8);
  border-radius: var(--ks-radius);
}
body.path-frontpage .ks-karty .views-view-grid::-webkit-scrollbar-track {
  background: transparent;
}

/* --- KARTA: pevná šířka, chytá se na začátek --- */
body.path-frontpage .ks-karty .views-view-grid__item {
  flex: 0 0 var(--card-w, 240px);
  scroll-snap-align: start;
  height: auto;                    /* výšku řeší align-items:stretch, ne 100% */
}

/* --- FEATURED = úplně první karta (nejnovější, řadíme DESC) ---
   Škáluje ŠÍŘKU i výšku náhledu stejným šroubem --ks-slide-featured.
   Odolné vůči názvu obalu (__row / __column / přímé dítě gridu). */
body.path-frontpage .ks-karty .views-view-grid > :first-child > .views-view-grid__item:first-child,
body.path-frontpage .ks-karty .views-view-grid > .views-view-grid__item:first-child {
  flex-basis: calc(var(--card-w, 240px) * var(--ks-slide-featured));
  scroll-snap-align: start;
}
/* Vyšší náhled jen u featured → celá karta je vyšší, ne jen širší. */
body.path-frontpage .ks-karty .views-view-grid > :first-child > .views-view-grid__item:first-child .views-field-field-image img,
body.path-frontpage .ks-karty .views-view-grid > .views-view-grid__item:first-child .views-field-field-image img {
  height: calc(var(--ks-karta-foto-h, 300px) * var(--ks-slide-featured));
  background: var(--ks-warm-light);
}

/* --- MOBIL: užší karty, ať se na track vejde víc než jedna --- */
@media (max-width: 640px) {
  body.path-frontpage .ks-karty {
    --card-w: 200px;
  }
}

/* ============================================================
   13y. SIDEBARY — MENU BLOKY (sjednocený vzhled)
        Revidováno 12. 7. 2026.
        A) Společný vzhled pro VŠECHNY sidebar menu-bloky.
        B) Specialita titulky (Domů jako nadpis, sbalené podmenu + šipky).
        Krabice + modrý nadpis dědí ze sekce 7.
        NAHRAĎ TÍMTO celou předchozí sekci 13y.
        (Můžeš smazat svůj dodatečný .menu--sidebar ::after snippet
         na konci souboru — je zapracovaný níže.)
   ============================================================ */

/* ---------- A) SDÍLENÝ VZHLED — všechny sidebar menu-bloky ---------- */

/* Wrapper + kontejnery: svisle, reset (kvůli .primary-nav na titulce). */
.region--sidebar nav.primary-nav {
  display: block !important;
  position: static !important;
}
.region--sidebar .menu--sidebar {
  display: block !important;
  position: static !important;
  flex-direction: column !important;
  width: auto !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

/* Olivero dekorace na odkazech (šipka/podtržení) pryč. */
.region--sidebar .menu--sidebar .menu__link::after {
  display: none !important;
  content: none !important;
}

/* Pozadí seznamů: 1. úroveň béžová, 2. úroveň bílá. */
.region--sidebar .menu--sidebar.menu--level-1 { background: var(--ks-warm-light) !important; }
.region--sidebar .menu--sidebar.menu--level-2 { background: var(--ks-white) !important; }

/* Položky 1. úrovně: kotva pro šipku + oddělovací linka. */
.region--sidebar .menu--sidebar .menu__item--level-1 {
  position: relative !important;
  margin: 0 !important;
  padding: 0 !important;
  border-bottom: 1px solid rgba(99,94,90,0.12) !important;
}
.region--sidebar .menu--sidebar .menu__item--level-1:last-child { border-bottom: none !important; }

/* Odkazy 1. úrovně. */
.region--sidebar .menu--sidebar .menu__link--level-1 {
  display: block !important;
  padding: 10px 16px !important;
  font-family: var(--ks-font-heading) !important;
  font-size: var(--ks-fs-base) !important;
  font-weight: 400 !important;
  color: var(--ks-warm-dark) !important;
  text-decoration: none !important;
  box-shadow: none !important;
  transition: background .12s !important;
}
.region--sidebar .menu--sidebar .menu__link--level-1:hover,
.region--sidebar .menu--sidebar .menu__link--level-1:focus-visible {
  background: var(--ks-warm) !important;
  color: var(--ks-white) !important;
}

/* Odkazy 2. úrovně: odsazené, lehčí, menší. */
.region--sidebar .menu--sidebar .menu__item--level-2 {
  border-top: 1px solid rgba(99,94,90,0.10) !important;
}
.region--sidebar .menu--sidebar .menu__link--level-2 {
  display: block !important;
  padding: 8px 16px 8px 32px !important;
  font-family: var(--ks-font-heading) !important;
  font-size: var(--ks-fs-sm, .92rem) !important;
  font-weight: 400 !important;
  color: var(--ks-warm-dark) !important;
  text-decoration: none !important;
  box-shadow: none !important;
}
.region--sidebar .menu--sidebar .menu__link--level-2:hover,
.region--sidebar .menu--sidebar .menu__link--level-2:focus-visible {
  background: var(--ks-warm) !important;
  color: var(--ks-white) !important;
}

/* Aktivní odkaz (kde je) — jemné zvýraznění. */
.region--sidebar .menu--sidebar .menu__link.is-active {
  background: var(--ks-warm-dark) !important;
  color: var(--ks-white) !important;
  font-weight: 700 !important;
}

/* ---------- B) TITULKA — specialita (Domů jako nadpis, sbalené podmenu) ---------- */

/* "Navigace" (h2) pryč — nadpisem se stane 1. položka "Domů". */
#block-titulka-sidebar-navigace > .block__title { display: none !important; }

/* 1. položka (Domů) = nadpis ve stylu .block__title ostatních sidebarů. */
#block-titulka-sidebar-navigace .menu--level-1 > .menu__item--level-1:first-child {
  border-bottom: none !important;
}
#block-titulka-sidebar-navigace .menu--level-1 > .menu__item--level-1:first-child > .menu__link {
  padding: 16px !important;
  background: var(--ks-blue-light) !important;
  color: var(--ks-blue-dark) !important;
  font-weight: 700 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}
#block-titulka-sidebar-navigace .menu--level-1 > .menu__item--level-1:first-child > .menu__link:hover,
#block-titulka-sidebar-navigace .menu--level-1 > .menu__item--level-1:first-child > .menu__link:focus-visible {
  text-decoration: underline !important;
  background: var(--ks-blue-light) !important;
  color: var(--ks-blue-dark) !important;
}

/* Sbalené podmenu (JEN titulka): 2. úroveň skrytá, .is-open rozbalí. */
#block-titulka-sidebar-navigace .menu--level-2 { display: none !important; }
#block-titulka-sidebar-navigace .menu__item.is-open > .menu--level-2 { display: block !important; }

/* Místo pro šipku u položek s podmenu. */
#block-titulka-sidebar-navigace .menu__item--has-children > .menu__link--level-1 {
  padding-right: 44px !important;
}

/* Šipka (vkládá JS ks/titulka-nav). */
#block-titulka-sidebar-navigace .ks-nav-toggle {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  width: 44px !important;
  height: 44px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  background: transparent !important;
  cursor: pointer !important;
}
#block-titulka-sidebar-navigace .ks-nav-toggle::before {
  content: "" !important;
  width: 8px !important;
  height: 8px !important;
  margin-top: -3px !important;
  border-right: 2px solid var(--ks-warm-dark) !important;
  border-bottom: 2px solid var(--ks-warm-dark) !important;
  transform: rotate(45deg) !important;
  transition: transform .15s ease !important;
}
#block-titulka-sidebar-navigace .menu__item.is-open > .ks-nav-toggle::before {
  margin-top: 3px !important;
  transform: rotate(-135deg) !important;
}