/**
 * KrásneSlovensko.eu — Hlavné štýly
 * Písmo: Source Serif 4 (nadpisy) + Source Sans 3 (text), samostatne hostené
 */

/* CSS Variables & Base */
:root {
  /*
   * Škála veľkostí písma.
   *
   * Pred jej zavedením bolo v súbore 101 rôznych hodnôt `font-size`, z toho
   * 58 pevných v `rem` — a medzi 0,62 a 0,85 rem sa ich tlačilo deväť, teda
   * rozdiely pod pol pixela, ktoré nikto nevidí a každý musí udržiavať.
   * Tieto štyri stupne ich nahrádzajú. Pre nové pravidlá platí: **siahaj po
   * tokene, nie po vlastnom čísle.**
   *
   * Nadpisy majú vlastné `clamp()` — tie sú premenlivé podľa šírky displeja
   * a do pevnej škály nepatria.
   */
  --ks-t-2xs: 0.74rem;  /* 11,8 px — štítky verzálkami („VEDELI STE“) */
  --ks-t-xs: 0.82rem;   /* 13,1 px — popisky, meta údaje pod názvom */
  --ks-t-s: 0.88rem;    /* 14,1 px — drobný text v rozhraní, tlačidlá */
  --ks-t-sm: 0.95rem;   /* 15,2 px — text v kartách a bublinách */
  --ks-t-md: 1.08rem;   /* 17,3 px — súvislé čítanie, text článku */

  /*
   * Písma. Nadpisy serifom, text bezserifovkou — obe z rodiny Adobe Source,
   * takže si sadnú proporciami aj rytmom, a obe majú poctivo kreslenú
   * slovenčinu vrátane ď ť ľ, kde mäkčeň patrí vedľa písmena, nie nad neho.
   *
   * **Škála je o 5–6 % vyššia než pri Manrope** a nie je to svojvôľa:
   * Source Sans má nižšiu strednú výšku, takže pri rovnakom `rem` pôsobí
   * menší. Bez tohto dorovnania by výmena písma text opticky zdrobnila.
   */
  --ks-font-text: 'Source Sans 3', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --ks-font-nadpis: 'Source Serif 4', Georgia, 'Times New Roman', serif;

  --ks-red: #d0021b;
  --ks-blue: #1a5fa8;
  --ks-bluedk: #0d3460;
  --ks-bluelt: #e8f2fc;
  --ks-border: #dde4ee;
  /*
   * Jednotný tvar kariet. Na detaile objektu sa pomiešali tri polomery —
   * `.sbox` mal 10 px, `.place-page .sbox` 14 px a `.place-card` 16 px — takže
   * bočný panel vyzeral, akoby ho skladal zakaždým niekto iný. Nové karty
   * majú siahať po týchto premenných, nie po vlastných hodnotách.
   */
  --ks-card-radius: 16px;
  --ks-card-shadow: 0 4px 14px rgba(13, 52, 96, 0.05);
  --ks-text: #111827;
  --ks-mid: #374151;
  --ks-soft: #6b7280;
  --ks-yellow: #f59e0b;
  --grad-blue: linear-gradient(135deg, #0d3460, #1a5fa8);
  --grad-red: linear-gradient(135deg, #a80014, #e8001e);
  /* Farby kategórií — každá jedinečná; používajte var(--cat-*) na celom webe */
  --cat-hrady: #1a3f6f;
  --cat-jaskyne: #4a2580;
  --cat-priroda: #15803d;
  --cat-turistika: #ea580c;
  --cat-mesta: #475569;
  --cat-ine: #57534e;
  --cat-kostoliky: #7c4b1e;
  --cat-jazera: #0284c7;
  --cat-kastiele: #6b21a8;
  --cat-kupaliska: #0d9488;
  --cat-kupele: #be185d;
  --cat-ludova: #a16207;
  --cat-lyzovanie: #0369a1;
  --cat-muzea: #78350f;
  --cat-pamiatky: #b91c1c;
  --cat-parky: #4d7c0f;
  --cat-plesa: #0e7490;
  --cat-vodopady: #2563eb;
  --cat-zaujimavosti: #c026d3;
  --cat-rozhliadne: #059669;
  /* Špeciálne značky (nie hlavná taxonómia) */
  --cat-unesco: #6d28d9;
}

body {
  font-family: var(--ks-font-text);
  color: var(--ks-text);
}
a {
  text-decoration: none;
  color: inherit;
}

/* Layout */
.ks-container {
  max-width: 1380px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

/* TOPBAR */
.ks-topbar {
  background: linear-gradient(180deg, #08172c 0%, #12355c 100%);
  font-size: var(--ks-t-xs);
  font-weight: 600;
  color: rgba(255, 255, 255, 0.58);
  letter-spacing: 0.01em;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.ks-topbar .ks-container {
  padding-left: clamp(1.25rem, 4vw, 2.25rem);
  padding-right: clamp(1.25rem, 4vw, 2.25rem);
}
.ks-topbar-inner {
  min-height: 2.625rem;
  padding: 0.45rem 0;
}
.ks-topbar-cluster {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: clamp(0.85rem, 2.2vw, 1.65rem);
}
.ks-topbar a {
  color: rgba(255, 255, 255, 0.58);
  transition: color 0.18s ease;
}
.ks-topbar a:hover {
  color: #fff;
}

/* ============================================================================
   TOPBAR — meniny, sviatok a podujatia
   Nahradili dátum (zapekal sa do ISR keše, takže po polnoci klamal) a odkaz
   „Mapa", ktorý duplikoval tlačidlo *Interaktívna mapa* o pár pixelov nižšie.
   Návrat: zmazať blok po značku „koniec topbaru".
   ========================================================================= */
/* Meno je to jediné, čo z pásika niekto naozaj číta — smie byť jasnejšie než
   okolie. 0,92 bielej na #12355c dáva ~11 : 1, bohato nad AA. */
.ks-topbar-meno {
  color: rgba(255, 255, 255, 0.92);
  font-weight: 700;
}
/* Sviatok je --ks-yellow: na #12355c má 5,8 : 1, teda AA aj pri tomto
   drobnom písme. Nikdy ho nemeň na svetlejšie zlato bez prepočtu. */
.ks-topbar-sviatok {
  color: var(--ks-yellow);
  font-weight: 700;
}
.ks-topbar-podujatia {
  text-underline-offset: 0.2em;
}
.ks-topbar-podujatia:hover {
  text-decoration: underline;
}
/* ══ koniec topbaru ══════════════════════════════════════════════════════ */

/* HEADER */
.ks-header {
  background: #fff;
  border-bottom: 1px solid var(--ks-border);
  box-shadow: 0 4px 24px rgba(13, 52, 96, 0.04);
}
.ks-header-inner {
  padding-left: clamp(1.25rem, 4vw, 2.25rem);
  padding-right: clamp(1.25rem, 4vw, 2.25rem);
}
.ks-header-row {
  gap: clamp(0.65rem, 1.5vw, 1.35rem);
  padding: 1.15rem 0 1.25rem;
}
@media (min-width: 768px) {
  .ks-header-row {
    gap: clamp(0.85rem, 2vw, 1.5rem);
    padding: 1.35rem 0 1.45rem;
  }
}
.ks-search-header {
  max-width: clamp(320px, 38vw, 460px);
}
@media (min-width: 768px) and (max-width: 991.98px) {
  .ks-header-row .ks-search-header {
    display: flex !important;
    max-width: none;
    flex: 1 1 auto;
    min-width: 0;
    margin-left: 0.45rem;
    margin-right: 0.45rem;
  }
}
.ks-header-actions {
  gap: 0.65rem;
}
@media (min-width: 1200px) {
  .ks-header-actions {
    gap: 0.85rem;
  }
}
.ks-logo {
  font-size: clamp(1.58rem, 2.5vw, 1.82rem);
  font-weight: 800;
  color: var(--ks-bluedk);
  letter-spacing: -0.032em;
  white-space: nowrap;
  line-height: 1;
}
.ks-logo span {
  color: var(--ks-red);
}
.ks-logo-brand {
  display: inline-flex;
  align-items: center;
  gap: clamp(0.5rem, 1.15vw, 0.95rem);
  line-height: 1;
  text-decoration: none !important;
}
.ks-logo-mark {
  display: block;
  height: clamp(42px, 5.1vw, 56px);
  width: auto;
  flex-shrink: 0;
  border-radius: 50%;
}
.ks-logo-wordmark {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.12em;
}
.ks-logo-wordmark__line1,
.ks-logo-wordmark__line2 {
  line-height: 0.92;
  white-space: nowrap;
}
.ks-logo-brand .ks-logo-wordmark__line1 {
  font-family: var(--ks-font-text);
  font-weight: 800;
  font-size: clamp(1.35rem, 2.6vw, 1.75rem);
  letter-spacing: -0.03em;
  color: #0c4b8c;
}
.ks-logo-brand .ks-logo-wordmark__line2 {
  font-family: var(--ks-font-text);
  font-weight: 800;
  font-size: clamp(0.72rem, 1.25vw, 0.92rem);
  letter-spacing: 0.02em;
  text-transform: none;
  color: #e02636;
}
.ks-logo-brand--compact {
  gap: 0.5rem;
}
.ks-logo-brand--compact .ks-logo-mark {
  height: 36px;
}
.ks-logo-brand--compact .ks-logo-wordmark__line1 {
  font-size: clamp(1.15rem, 3.2vw, 1.4rem);
}
.ks-logo-brand--compact .ks-logo-wordmark__line2 {
  font-size: 0.72rem;
}
.ks-logo-brand--inverse .ks-logo-wordmark__line1 {
  color: #ffffff;
}
.ks-logo-brand--inverse .ks-logo-wordmark__line2 {
  color: #ffb4b8;
}
.ks-search-wrap {
  background: #fff;
  border: 1px solid var(--ks-border);
  border-radius: 999px;
  overflow: hidden;
  display: flex;
  align-items: stretch;
  padding: 0.2rem 0.2rem 0.2rem 0.15rem;
  transition: border-color 0.22s ease, box-shadow 0.22s ease, background 0.22s ease;
}
.ks-search-wrap:focus-within {
  background: #fff;
  border-color: #c5d4e8;
  box-shadow: 0 6px 18px rgba(13, 52, 96, 0.08);
}
.ks-search-wrap input {
  border: none;
  outline: none;
  background: transparent;
  padding: 0.55rem 0.95rem;
  font-family: var(--ks-font-text);
  font-size: var(--ks-t-sm);
  color: #1c1917;
  flex: 1;
  min-width: 0;
}
.ks-search-wrap button {
  background: var(--grad-red);
  color: #fff;
  border: none;
  border-radius: 999px;
  padding: 0 1.05rem;
  cursor: pointer;
  font-size: var(--ks-t-sm);
  box-shadow: 0 3px 10px rgba(166, 8, 24, 0.22);
}
.btn-ks-out {
  border: 1.5px solid rgba(26, 95, 168, 0.32);
  color: #1a5fa8;
  background: rgba(255, 255, 255, 0.4);
  padding: 0.58rem 1.15rem;
  border-radius: 999px;
  font-size: var(--ks-t-s);
  font-weight: 700;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 0.48rem;
  transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}
.btn-ks-out:hover {
  background: #1a5fa8;
  color: #fff;
  border-color: #1a5fa8;
}
.btn-ks-red {
  background: var(--grad-red);
  color: #fff;
  border: none;
  padding: 0.62rem 1.2rem;
  border-radius: 10px;
  font-size: var(--ks-t-s);
  font-weight: 700;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 0.48rem;
  box-shadow: 0 4px 14px rgba(208, 2, 27, 0.22);
  transition: opacity 0.18s ease, box-shadow 0.18s ease;
}
.btn-ks-red:hover {
  opacity: 0.94;
  color: #fff;
  box-shadow: 0 6px 20px rgba(208, 2, 27, 0.28);
}

/* MAINNAV */
#mobNav .offcanvas-header {
  background: linear-gradient(180deg, #08172c 0%, #12355c 100%) !important;
}
#mobNav .offcanvas-body {
  background: #fff;
}
.ks-mainnav {
  background: #fff;
  border-bottom: 1px solid var(--ks-border);
  position: sticky;
  top: 0;
  z-index: 100;
  box-shadow: 0 8px 30px rgba(13, 52, 96, 0.04);
}
.ks-mainnav .ks-container {
  padding-left: clamp(1.25rem, 4vw, 2.25rem);
  padding-right: clamp(1.25rem, 4vw, 2.25rem);
}
.ks-nav-scroll {
  overflow-x: auto;
  display: flex;
  align-items: stretch;
  -ms-overflow-style: none;
  scrollbar-width: none;
}
.ks-nav-scroll::-webkit-scrollbar {
  display: none;
}
.ks-nav-link {
  display: flex;
  align-items: center;
  gap: 0.48rem;
  padding: 0 1.1rem;
  min-height: 3.35rem;
  font-size: var(--ks-t-sm);
  font-weight: 700;
  color: #57534e;
  border-bottom: 3px solid transparent;
  white-space: nowrap;
  cursor: pointer;
  transition: color 0.18s ease, border-color 0.18s ease, background 0.18s ease;
  flex-shrink: 0;
}
.ks-nav-link:hover {
  color: #16532c;
  border-color: #2d9a55;
  background: rgba(45, 154, 85, 0.06);
}
.ks-nav-link.active {
  color: var(--ks-red);
  border-color: var(--ks-red);
  background: rgba(208, 2, 27, 0.04);
}

/* BANDS */
.band-white { background: #fff; }
.band-grey { background: #f2f5fa; }
.band-blue { background: #eaf2fc; }
.band-mint { background: #edf7f2; }
.band-lavender { background: #f3f0fc; }
.band-warm { background: #fdf7f0; }

/* SEC HEAD */
.sec-eye {
  font-size: var(--ks-t-2xs);
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ks-red);
  display: flex;
  align-items: center;
  gap: 0.38rem;
}
.sec-eye::before {
  content: '';
  display: inline-block;
  width: 15px;
  height: 2px;
  background: var(--grad-red);
  border-radius: 2px;
}
.sec-h {
  font-size: 1.55rem;
  font-weight: 800;
  color: var(--ks-text);
  letter-spacing: -0.03em;
  line-height: 1.1;
}
/*
 * Nadpis nad mapou bol predtým `div`, takže nemal predvolený odstup nadpisu.
 * Po zmene na `h2` (aby sa sekcia dala nájsť prechodom po nadpisoch) by ho
 * prehliadač pridal a riadok s počtom miest vedľa by sa rozišiel.
 * `SectionHeading` sa toto netýka — ten `h2` vykresľoval odjakživa.
 */
.map-sec-h {
  margin: 0;
}
.btn-all {
  display: inline-flex;
  align-items: center;
  gap: 0.38rem;
  font-size: var(--ks-t-xs);
  font-weight: 700;
  color: var(--ks-blue);
  padding: 0.4rem 0.85rem;
  border: 1.5px solid var(--ks-blue);
  border-radius: 20px;
  transition: all 0.18s;
  white-space: nowrap;
}
.btn-all:hover {
  background: var(--ks-blue);
  color: #fff;
}

/* First screen: search 75% + kraje 25% under site chrome */
.home-intro {
  --ks-site-chrome: 7.35rem;

  /*
   * Koľko hory visia POD čiarou hrebeňa: `.sec-ridge--hero svg` má
   * `height: 6.4rem` a `top: -3.55rem`, teda 6,4 − 3,55 = 2,85rem.
   * O toľko musí pás krajov aspoň začať nižšie, inak karty vojdú do siluety.
   * Keď sa zmení geometria hrebeňa, prepočítaj aj toto.
   */
  --ks-ridge-overhang: 2.85rem;

  display: flex;
  flex-direction: column;
  min-height: calc(100vh - var(--ks-site-chrome));
  min-height: calc(100dvh - var(--ks-site-chrome));
}
@media (min-width: 768px) {
  .home-intro {
    --ks-site-chrome: 11.1rem;
  }
}
.home-intro .discover-band {
  flex: 3 1 0;
  min-height: 0;
}
.home-intro .sec-ridge--hero {
  z-index: 9;
}
/*
 * Odsadenie zhora musí prekročiť presah hôr, inak karty sedia priamo na siluete.
 * Nestačí, že sú nad ňou vo vrstvách (`z-index: 10` nižšie) — vtedy síce nie sú
 * odrezané, ale medzi nimi a horami nie je vzduch a pás vyzerá zlepený.
 * Predtým tu bolo 1,5rem oproti presahu 2,85rem, teda karty zachádzali
 * 1,35rem do hôr.
 */
.home-intro .home-kraje-band,
.home-intro #home-kraje-grid {
  flex: 1 0 auto;
  min-height: 0;
  padding-top: calc(var(--ks-ridge-overhang) + 0.9rem);
  padding-bottom: 1.6rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  overflow: visible;
}
@media (min-width: 1100px) {
  .home-intro .home-kraje-band,
  .home-intro #home-kraje-grid {
    padding-top: calc(var(--ks-ridge-overhang) + 1.35rem);
    padding-bottom: 2.35rem;
  }
}
.home-intro #home-kraje-grid .ks-container,
.home-intro .home-kraje-band .ks-container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex: 1 1 auto;
  min-height: 0;
  padding-top: 0;
  padding-bottom: 0;
}
.home-intro #home-kraje-grid .home-air-hd,
.home-intro .home-kraje-band .home-air-hd {
  margin-bottom: 0.4rem !important;
  padding-bottom: 0 !important;
}
.home-intro #home-kraje-grid .sec-h,
.home-intro .home-kraje-band .sec-h {
  font-size: clamp(1.05rem, 2vw, 1.28rem);
}
.home-intro .kraje-home-row {
  margin: 0;
}
.home-intro .kraje-home-card {
  padding: 0.5rem 0.35rem 0.42rem;
  gap: 0.2rem;
}
.home-intro .kraje-home-card__icon {
  font-size: clamp(1.15rem, 2vw, 1.45rem);
}
.home-intro .kraje-home-card__num {
  font-size: clamp(1.1rem, 2vw, 1.4rem);
}
.home-intro .kraje-home-card__name {
  font-size: clamp(0.78rem, 1.3vw, 0.92rem);
}
.home-intro .kraje-home-card__kraj {
  font-size: clamp(0.68rem, 1.1vw, 0.78rem);
}
.home-intro:has(.discover-chat.is-open) {
  min-height: calc(100dvh - var(--ks-site-chrome));
}
.home-intro:has(.discover-chat.is-open) .discover-band {
  flex: 1 1 auto;
}

.sec-ridge {
  position: relative;
  z-index: 8;
  height: 0;
  flex: none;
  overflow: visible;
  pointer-events: none;
}
.sec-ridge svg {
  position: absolute;
  left: 0;
  width: 100%;
  display: block;
}
.sec-ridge--hero svg {
  top: -3.55rem;
  height: 6.4rem;
}
.sec-ridge--sm svg {
  top: -1.35rem;
  height: 2.25rem;
}
.sec-ridge--green .sec-ridge__back { fill: #0a3d24; }
.sec-ridge--green .sec-ridge__mid { fill: #0b301c; }
.sec-ridge--green .sec-ridge__front { fill: #0c2618; }
.sec-ridge--green .sec-ridge__snow { fill: rgba(255, 255, 255, 0.38); }
.sec-ridge--blue .sec-ridge__back { fill: #071a32; }
.sec-ridge--blue .sec-ridge__mid { fill: #0a2240; }
.sec-ridge--blue .sec-ridge__front { fill: #050f22; }
.sec-ridge--blue .sec-ridge__snow { fill: rgba(255, 255, 255, 0.28); }
.sec-ridge--white .sec-ridge__back { fill: #e6eef5; }
.sec-ridge--white .sec-ridge__mid { fill: #f3f6fa; }
.sec-ridge--white .sec-ridge__front { fill: #fff; }
.sec-ridge--white .sec-ridge__snow { fill: rgba(186, 230, 253, 0.45); }
.sec-ridge--grey .sec-ridge__back { fill: #dfe6f0; }
.sec-ridge--grey .sec-ridge__mid { fill: #e8eef5; }
.sec-ridge--grey .sec-ridge__front { fill: #f2f5fa; }
.sec-ridge--grey .sec-ridge__snow { fill: rgba(255, 255, 255, 0.55); }
.sec-ridge--navy .sec-ridge__back { fill: #0c2748; }
.sec-ridge--navy .sec-ridge__mid { fill: #081830; }
.sec-ridge--navy .sec-ridge__front { fill: #061018; }
.sec-ridge--navy .sec-ridge__snow { fill: rgba(255, 255, 255, 0.32); }
.sec-ridge__mark {
  position: absolute;
  left: 50%;
  top: 0;
  transform: translate(-50%, -42%);
  width: 2.55rem;
  height: 2.55rem;
  border-radius: 50%;
  background: linear-gradient(160deg, #fff 0%, #ecfdf3 100%);
  color: #166534;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.05rem;
  text-decoration: none;
  pointer-events: auto;
  cursor: pointer;
  box-shadow:
    0 0 0 3px #16487a,
    0 0 0 6px rgba(45, 154, 85, 0.55),
    0 10px 24px rgba(6, 24, 16, 0.35);
}
.sec-ridge__mark:hover,
.sec-ridge__mark:focus-visible {
  color: #14532d;
}
.sec-ridge__mark i {
  animation: ridge-nudge 1.7s ease-in-out infinite;
}
@keyframes ridge-nudge {
  0%, 100% { transform: translateY(-1px); }
  50% { transform: translateY(3px); }
}
@media (prefers-reduced-motion: reduce) {
  .sec-ridge__mark i {
    animation: none;
  }
}

/* DISCOVER SEARCH — full remaining viewport under site chrome */
.discover-band {
  --ks-site-chrome: 7.35rem;
  position: relative;
  z-index: 3;
  isolation: isolate;
  overflow: hidden;
  background:
    radial-gradient(ellipse 110% 48% at 72% 112%, rgba(255, 255, 255, 0.42), transparent 54%),
    linear-gradient(
      180deg,
      #08172c 0%,
      #12355c 26%,
      #1a5fa8 54%,
      #5aa6d8 78%,
      #b7e3f8 100%
    );
  padding: 0;
  display: flex;
  align-items: center;
  min-height: calc(100vh - var(--ks-site-chrome));
  min-height: calc(100dvh - var(--ks-site-chrome));
}
.discover-band::before {
  content: '';
  position: absolute;
  left: -50%;
  width: 200%;
  top: 4%;
  height: 42%;
  pointer-events: none;
  z-index: 0;
  background-repeat: repeat-x;
  background-position: 0 40%;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1100 200'%3E%3Cg fill='%23ffffff'%3E%3Cellipse cx='180' cy='110' rx='80' ry='30'/%3E%3Cellipse cx='128' cy='100' rx='46' ry='24'/%3E%3Cellipse cx='228' cy='96' rx='52' ry='26'/%3E%3Cellipse cx='178' cy='84' rx='34' ry='18'/%3E%3Cellipse cx='720' cy='70' rx='92' ry='32'/%3E%3Cellipse cx='662' cy='62' rx='50' ry='24'/%3E%3Cellipse cx='782' cy='56' rx='58' ry='28'/%3E%3C/g%3E%3C/svg%3E");
  background-size: 920px 168px;
  opacity: 0.16;
  filter: blur(6px);
  animation: sky-scroll-a 70s linear infinite;
}
@keyframes sky-scroll-a {
  from { transform: translateX(0); }
  to { transform: translateX(-920px); }
}
.discover-band::after {
  content: '';
  position: absolute;
  z-index: 0;
  pointer-events: none;
  width: min(18rem, 42vw);
  height: min(18rem, 42vw);
  right: 5%;
  bottom: -18%;
  border-radius: 50%;
  background: radial-gradient(
    circle at 50% 50%,
    #fffce6 0%,
    #ffe566 14%,
    #ffc14d 30%,
    rgba(255, 168, 48, 0.55) 46%,
    rgba(255, 130, 36, 0.2) 62%,
    transparent 74%
  );
  opacity: 0;
  transform: translate(12%, 22%) scale(0.82);
  animation: sky-sun 90s ease-out 5s forwards;
}
@keyframes sky-sun {
  0% {
    opacity: 0;
    transform: translate(12%, 22%) scale(0.82);
  }
  7% {
    opacity: 1;
    transform: translate(6%, 10%) scale(0.9);
  }
  100% {
    opacity: 1;
    transform: translate(-38%, -72%) scale(1);
  }
}
@media (prefers-reduced-motion: reduce) {
  .discover-band::before,
  .discover-band::after {
    animation: none;
  }
  .discover-band::after {
    opacity: 0.7;
    transform: translate(-18%, -40%) scale(1);
  }
}
@media (min-width: 768px) {
  .discover-band {
    --ks-site-chrome: 11.1rem;
  }
}
.discover-inner {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: clamp(1.5rem, 4vh, 3rem) clamp(1.25rem, 4vw, 2.25rem) clamp(1.75rem, 4vh, 2.75rem);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.discover-head {
  margin-bottom: clamp(1.35rem, 3.2vh, 2.1rem);
  max-width: 42rem;
}
.discover-band .sec-eye {
  display: none;
}
.discover-title {
  font-size: clamp(2.05rem, 5.2vw, 3.55rem);
  font-weight: 800;
  color: #fff;
  margin: 0;
  letter-spacing: -0.04em;
  line-height: 1.08;
  text-shadow: 0 2px 18px rgba(8, 23, 44, 0.28);
}
.discover-lead {
  margin: 0.95rem 0 0;
  max-width: 38rem;
  font-size: clamp(0.98rem, 1.55vw, 1.12rem);
  font-weight: 500;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.72);
}
.discover-form {
  background: #fff;
  border: 0;
  border-radius: 14px;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.28);
  padding: 0.85rem;
}
.discover-chat {
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.3);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.discover-chat.is-open .discover-thread {
  min-height: 12rem;
}
.discover-thread {
  padding: 1rem 1.05rem 0.35rem;
  max-height: min(58vh, 34rem);
  overflow-y: auto;
  background: linear-gradient(180deg, #f4f7fb 0%, #eef3f8 100%);

  /* Firefox. Farby musia sedieť s ::-webkit-scrollbar nižšie. */
  scrollbar-width: thin;
  scrollbar-color: rgba(13, 52, 96, 0.55) transparent;
}

/*
 * Scrollbar vlákna vyhľadávača.
 *
 * Skrývať sa nesmie — na rozdiel od `.ks-nav-scroll` a `.ps-thumbs`, čo sú
 * vodorovné karusely s vlastnou šípkou, je tu zvislý chat a scrollbar je jediné,
 * čo prezradí, že nad okrajom je ďalšia odpoveď.
 *
 * Trik s priehľadným rámom: dráha má 12 px (pohodlné na chytenie myšou aj
 * prstom), ale palec vyzerá na 6 px. `background-clip: padding-box` spôsobí, že
 * sa farba nekreslí pod rám, takže cezeň presvitá pozadie vlákna.
 *
 * Priehľadnosť je zámerne až 0,55 — menej vyzerá krajšie, ale palec je prvok
 * rozhrania a WCAG 1.4.11 chce 3 : 1. Na gradiente `#f4f7fb → #eef3f8` vychádza
 * 3,23 : 1 a 3,20 : 1. Svetlejšie už nie, prepočítané.
 */
.discover-thread::-webkit-scrollbar {
  width: 12px;
}
.discover-thread::-webkit-scrollbar-track {
  background: transparent;
}
.discover-thread::-webkit-scrollbar-thumb {
  background-color: rgba(13, 52, 96, 0.55);
  border-radius: 999px;
  border: 3px solid transparent;
  background-clip: padding-box;
}
.discover-thread::-webkit-scrollbar-thumb:hover {
  background-color: rgba(13, 52, 96, 0.72);
}
.discover-thread::-webkit-scrollbar-thumb:active {
  background-color: rgba(13, 52, 96, 0.85);
}
/* Roh medzi zvislou a vodorovnou dráhou — inak ostane biely štvorček. */
.discover-thread::-webkit-scrollbar-corner {
  background: transparent;
}

/*
 * Na dotykových zariadeniach kreslí scrollbar systém a zmizne sám. Vlastná
 * 12 px dráha by tam len ukrojila z textu, ktorého je na mobile aj tak málo
 * (pozri blok „Viac miesta pre text na mobile“).
 */
@media (hover: none) {
  .discover-thread::-webkit-scrollbar {
    width: 8px;
  }
  .discover-thread::-webkit-scrollbar-thumb {
    border-width: 2px;
  }
}
.discover-composer {
  border-radius: 0;
  box-shadow: none;
  border-top: 1px solid var(--ks-border);
}
.ks-chat-empty {
  text-align: center;
  padding: 1.35rem 0.6rem 1.15rem;
}
.ks-chat-empty-icon {
  width: 3.1rem;
  height: 3.1rem;
  margin: 0 auto 0.7rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--grad-red);
  color: #fff;
  font-size: 1.2rem;
  box-shadow: 0 8px 20px rgba(208, 2, 27, 0.28);
}
.ks-chat-empty p {
  margin: 0 auto 0.95rem;
  max-width: 28rem;
  font-size: var(--ks-t-sm);
  font-weight: 600;
  color: var(--ks-mid);
  line-height: 1.5;
}
.ks-chat-empty .discover-follow {
  justify-content: center;
  margin-top: 0;
}
.ks-chat-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
  font-size: var(--ks-t-xs);
  font-weight: 700;
  color: var(--ks-soft);
}
.ks-chat-reset {
  border: 0;
  background: transparent;
  color: var(--ks-blue);
  font: inherit;
  font-weight: 800;
  cursor: pointer;
  padding: 0;
}
.ks-chat-reset:hover { color: var(--ks-bluedk); text-decoration: underline; }
.ks-chat-turn {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  margin-bottom: 0.95rem;
}
.ks-chat-row {
  display: flex;
  align-items: flex-end;
  gap: 0.5rem;
}
.ks-chat-row--user { justify-content: flex-end; }
.ks-chat-row--bot { justify-content: flex-start; }
.ks-chat-avatar {
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: var(--grad-red);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.78rem;
  box-shadow: 0 4px 10px rgba(208, 2, 27, 0.25);
}
.ks-chat-bubble {
  max-width: min(92%, 38rem);
  padding: 0.72rem 0.95rem;
  font-size: var(--ks-t-sm);
  /* Text odpovede je súvislé čítanie, nie štítok — 600 ho robilo zbytočne
     hlučným. Dôraz v bubline nesie farba pozadia, nie hrúbka písma. */
  font-weight: 500;
  line-height: 1.5;
}
.ks-chat-bubble p { margin: 0; }
.ks-chat-bubble--user {
  background: var(--ks-bluedk);
  color: #fff;
  border-radius: 16px 16px 4px 16px;
  box-shadow: 0 8px 18px rgba(13, 52, 96, 0.22);
}
.ks-chat-bubble--bot {
  background: #fff;
  color: var(--ks-text);
  border: 1px solid var(--ks-border);
  border-radius: 16px 16px 16px 4px;
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.06);
}
.ks-chat-bubble--typing {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  color: var(--ks-soft);
  font-size: var(--ks-t-s);
}
.ks-chat-muted { color: rgba(255, 255, 255, 0.62); font-style: italic; font-weight: 600; }
.ks-chat-bubble--bot .ks-chat-muted { color: var(--ks-soft); }
.ks-chat-filters {
  margin-top: 0.4rem !important;
  font-size: var(--ks-t-xs);
  font-weight: 700;
  color: rgba(255, 255, 255, 0.62);
}
.ks-chat-answer {
  color: var(--ks-bluedk);
  white-space: pre-wrap;
}
.ks-chat-dots {
  display: inline-flex;
  gap: 0.22rem;
}
.ks-chat-dots i {
  width: 0.38rem;
  height: 0.38rem;
  border-radius: 50%;
  background: var(--ks-blue);
  display: block;
  animation: ks-chat-bounce 1s ease-in-out infinite;
}
.ks-chat-dots i:nth-child(2) { animation-delay: 0.15s; }
.ks-chat-dots i:nth-child(3) { animation-delay: 0.3s; }
@keyframes ks-chat-bounce {
  0%, 80%, 100% { transform: translateY(0); opacity: 0.45; }
  40% { transform: translateY(-4px); opacity: 1; }
}
.ks-chat-hits { margin-top: 0.7rem; }
.ks-chat-hits-h {
  font-size: var(--ks-t-2xs);
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ks-red);
  margin-bottom: 0.4rem;
  display: flex;
  align-items: center;
  gap: 0.4rem;
}
.ks-chat-hits-h span {
  font-size: var(--ks-t-2xs);
  letter-spacing: 0;
  text-transform: none;
  color: var(--ks-blue);
  background: var(--ks-bluelt);
  border-radius: 999px;
  padding: 0.08rem 0.48rem;
  font-weight: 800;
}
.ks-chat-hits ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.28rem;
}
.ks-chat-hit {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.32rem 0.4rem;
  border-radius: 10px;
  color: inherit;
  transition: background 0.15s ease;
}
.ks-chat-hit.is-pick {
  background: #fff8ef;
  border: 1px solid #f0ddc4;
}
.ks-chat-pick {
  display: block;
  font-size: var(--ks-t-2xs);
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: #c43c32;
  margin-bottom: 0.06rem;
}
.ks-chat-hit-img {
  width: 3.2rem;
  height: 2.4rem;
  flex-shrink: 0;
  border-radius: 7px;
  overflow: hidden;
  background: #e2e8f0;
}
.ks-chat-hit-img img,
.ks-chat-hit img {
  width: 3.2rem !important;
  height: 2.4rem !important;
  object-fit: cover;
  border-radius: 7px;
  flex-shrink: 0;
  background: #e2e8f0;
}
.ks-chat-hit > span:not(.ks-chat-hit-img):not(.ks-chat-hit-date) {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.08rem;
}
.ks-chat-hit strong {
  font-size: 0.84rem;
  font-weight: 800;
  color: var(--ks-bluedk);
  line-height: 1.25;
}
.ks-chat-hit em {
  font-style: normal;
  font-size: var(--ks-t-xs);
  font-weight: 600;
  color: var(--ks-soft);
}
.ks-chat-hit-date {
  width: 2.55rem;
  height: 2.4rem;
  flex-shrink: 0;
  border-radius: 7px;
  background: var(--ks-bluelt);
  color: var(--ks-blue);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  line-height: 1;
  gap: 0.12rem;
}
.ks-chat-hit-date strong { font-size: 0.95rem; color: var(--ks-bluedk); }
.ks-chat-hit-date em {
  font-size: 0.58rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.ks-chat-more {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 0.75rem;
  padding-top: 0.65rem;
  border-top: 1px solid var(--ks-border);
}
.ks-chat-follow { margin: 0 0 0.85rem; padding-left: 2.5rem; }
.discover-input-row {
  display: flex;
  align-items: stretch;
  background: #f1f5f9;
  border: 1.5px solid var(--ks-border);
  border-radius: 12px;
  overflow: hidden;
  transition: border-color 0.22s ease, box-shadow 0.22s ease, background 0.22s ease;
}
.discover-input-row:focus-within {
  background: #fff;
  border-color: rgba(208, 2, 27, 0.45);
  box-shadow: 0 0 0 4px rgba(208, 2, 27, 0.12);
}
.discover-input-icon {
  color: var(--ks-red);
  flex-shrink: 0;
  width: 2.85rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.05rem;
}
.discover-input-row input {
  flex: 1;
  border: 0;
  outline: 0;
  background: transparent;
  font-family: var(--ks-font-text);
  font-size: 1.02rem;
  font-weight: 600;
  color: var(--ks-text);
  min-width: 0;
  padding: 0.92rem 0.45rem 0.92rem 0;
}
.discover-input-wrap {
  position: relative;
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: stretch;
}
.discover-input-wrap input {
  width: 100%;
  position: relative;
  z-index: 1;
}
.discover-typehint {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: flex;
  align-items: center;
  padding: 0.92rem 0.45rem 0.92rem 0;
  font-family: var(--ks-font-text);
  font-size: 1.02rem;
  font-weight: 600;
  color: #94a3b8;
  pointer-events: none;
  white-space: nowrap;
  overflow: hidden;
}
.discover-caret {
  display: inline-block;
  width: 1.5px;
  height: 1.08em;
  margin-left: 2px;
  flex-shrink: 0;
  background: #64748b;
  animation: discover-caret-blink 1.05s steps(1, end) infinite;
}
@keyframes discover-caret-blink {
  0%, 49% { opacity: 1; }
  50%, 100% { opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .discover-caret {
    animation: none;
  }
}
.discover-submit {
  flex-shrink: 0;
  border: 0;
  background: var(--grad-red);
  color: #fff;
  font-family: var(--ks-font-text);
  font-weight: 800;
  font-size: var(--ks-t-sm);
  padding: 0 1.35rem;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  box-shadow: 0 4px 14px rgba(208, 2, 27, 0.28);
  transition: opacity 0.18s ease, box-shadow 0.18s ease;
}
.discover-submit:hover {
  opacity: 0.94;
  color: #fff;
  box-shadow: 0 6px 20px rgba(208, 2, 27, 0.34);
}
.discover-submit:disabled {
  opacity: 0.7;
  cursor: wait;
  box-shadow: none;
}
.discover-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 0.75rem;
}
.discover-filters {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
  gap: 0.55rem;
  margin-top: 0.75rem;
  padding-top: 0.7rem;
  border-top: 1px solid var(--ks-border);
}
.discover-filters label {
  display: flex;
  flex-direction: column;
  gap: 0.22rem;
  font-size: var(--ks-t-2xs);
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ks-soft);
}
.discover-filters select,
.discover-filters input[type='date'] {
  border: 1px solid var(--ks-border);
  border-radius: 10px;
  padding: 0.48rem 0.62rem;
  font-family: var(--ks-font-text);
  font-size: var(--ks-t-s);
  font-weight: 700;
  color: var(--ks-text);
  background: #f8fafc;
}
.discover-panel {
  margin-top: 0.8rem;
  background: #fff;
  border: 1px solid var(--ks-border);
  border-radius: 12px;
  padding: 1rem 1.05rem 1.1rem;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.22);
}
.discover-answer {
  font-size: var(--ks-t-sm);
  font-weight: 600;
  color: var(--ks-bluedk);
  line-height: 1.55;
  margin: 0 0 0.85rem;
}
.discover-loading,
.discover-empty,
.discover-error {
  font-size: var(--ks-t-sm);
  font-weight: 600;
  color: var(--ks-mid);
  margin: 0 0 0.55rem;
}
.discover-error { color: #b42318; }
.discover-block { margin-top: 0.55rem; }
.discover-block-h {
  font-size: var(--ks-t-2xs);
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ks-red);
  margin-bottom: 0.55rem;
  display: flex;
  align-items: center;
  gap: 0.4rem;
}
.discover-block-h span {
  font-size: var(--ks-t-2xs);
  letter-spacing: 0;
  text-transform: none;
  color: var(--ks-blue);
  background: var(--ks-bluelt);
  border-radius: 999px;
  padding: 0.08rem 0.48rem;
  font-weight: 800;
}
.discover-events {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.discover-follow {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 0.85rem;
}
.discover-more {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 0.9rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--ks-border);
}
.discover-src {
  font-size: var(--ks-t-2xs);
  font-weight: 700;
  color: var(--ks-soft);
}
.discover-band .discover-form {
  background: transparent;
  box-shadow: none;
  padding: 0;
}
.discover-band .discover-chat {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.discover-band .discover-thread {
  background: transparent;
  padding: 0.85rem 0.95rem 0.2rem;
}
.discover-band .discover-composer {
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}
.discover-band .discover-chat.is-landing .discover-composer {
  border-top: 0;
}
.discover-band .discover-starters {
  margin-top: 0.95rem;
  padding: 0 0.15rem 0.2rem;
}
.discover-band:has(.discover-chat.is-open) {
  align-items: stretch;
  padding: 1.25rem 0 1.5rem;
}
.discover-band:has(.discover-chat.is-open) .discover-inner {
  justify-content: flex-start;
}
.discover-band .discover-chat.is-open {
  flex: 1 1 auto;
  min-height: 0;
}
.discover-band .discover-chat.is-open .discover-thread {
  flex: 1 1 auto;
  max-height: min(52vh, 34rem);
}
.discover-band .ks-chat-empty {
  padding: 0.55rem 0.35rem 0.85rem;
}
.discover-band .ks-chat-empty-icon {
  display: none;
}
.discover-band .ks-chat-empty p {
  color: rgba(255, 255, 255, 0.62);
  font-weight: 500;
  margin-bottom: 0.75rem;
}
.discover-band .ks-chat-toolbar {
  color: rgba(255, 255, 255, 0.45);
}
.discover-band .ks-chat-reset {
  color: rgba(255, 255, 255, 0.82);
}
.discover-band .discover-input-row {
  background: rgba(255, 248, 239, 0.92);
  border: 1px solid rgba(255, 255, 255, 0.7);
  border-radius: 999px;
  padding: 0.28rem 0.28rem 0.28rem 0.2rem;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.95),
    0 8px 24px rgba(28, 18, 8, 0.14);
  overflow: hidden;
}
@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .discover-band .discover-input-row {
    background: rgba(255, 250, 244, 0.78);
    backdrop-filter: blur(16px) saturate(1.15);
    -webkit-backdrop-filter: blur(16px) saturate(1.15);
  }
}
.discover-band .discover-input-row:focus-within {
  background: rgba(255, 253, 249, 0.96);
  border-color: rgba(255, 255, 255, 0.88);
  box-shadow:
    inset 0 1px 0 #fff,
    0 10px 28px rgba(28, 18, 8, 0.16);
}
@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .discover-band .discover-input-row:focus-within {
    background: rgba(255, 252, 248, 0.88);
  }
}
.discover-band .discover-input-icon {
  color: #c2410c;
}
.discover-band .discover-input-row input {
  color: #1c1917;
  font-weight: 600;
}
.discover-band .discover-typehint {
  color: #78716c;
}
.discover-band .discover-caret {
  background: #a8a29e;
}
.discover-band .discover-submit {
  border-radius: 999px;
  box-shadow: 0 4px 14px rgba(166, 8, 24, 0.28);
}
.discover-band .discover-filters select,
.discover-band .discover-filters input[type='date'] {
  background: #fff;
  border-color: rgba(255, 255, 255, 0.55);
  color: var(--ks-text);
}
.discover-band .discover-chip,
.discover-band .map-btn.discover-chip {
  background: transparent;
  border-color: rgba(255, 255, 255, 0.22);
  color: rgba(255, 255, 255, 0.78);
}
.discover-band .map-btn.discover-chip:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.4);
  color: #fff;
}
.discover-band .map-btn.discover-chip.active {
  background: rgba(255, 255, 255, 0.18);
  color: #fff;
  border-color: rgba(255, 255, 255, 0.32);
}
.discover-band .discover-filters {
  border-top-color: rgba(255, 255, 255, 0.12);
}
.discover-band .discover-filters label {
  color: rgba(255, 255, 255, 0.45);
}
.discover-band .discover-filters select option {
  color: var(--ks-text);
  background: #fff;
}
.home-air {
  padding-top: 3.35rem;
  padding-bottom: 3.35rem;
}
.home-air-hd,
.home-air .border-bottom,
#home-kraje-grid .border-bottom,
.band-grey.py-5 .border-bottom,
.band-blue.py-5 .border-bottom {
  border-bottom: 0 !important;
  padding-bottom: 0.2rem !important;
  margin-bottom: 1.4rem !important;
}
#home-kraje-grid,
.band-grey.py-5,
.band-blue.py-5,
.band-mint.py-5 {
  padding-top: 3.35rem;
  padding-bottom: 3.35rem;
}
@media (max-width: 575.98px) {
  .discover-submit span { display: none; }
  .discover-submit { padding: 0 1.05rem; }
  .discover-title { font-size: clamp(1.85rem, 8.5vw, 2.35rem); }
  .ks-chat-follow { padding-left: 0; }
  .ks-chat-bubble { max-width: 100%; }
  .ks-chat-more { flex-direction: column; align-items: flex-start; }
}

/* FEATURED PLACES (under homepage search) */
.home-feat {
  background: #fff;
  padding: 2.6rem 0 2.85rem;
  scroll-margin-top: 0.75rem;
}
@media (min-width: 768px) {
  .home-feat {
    scroll-margin-top: 4.2rem;
  }
}
.home-feat-inner {
  padding-left: clamp(1.25rem, 4vw, 2.25rem);
  padding-right: clamp(1.25rem, 4vw, 2.25rem);
}
.home-feat-bento {
  display: grid;
  gap: 0.85rem;
}
.home-feat-bento--1 {
  grid-template-columns: 1fr;
  height: clamp(280px, 42vw, 420px);
}
.home-feat-bento--2 {
  grid-template-columns: 1fr 1fr;
  height: clamp(260px, 38vw, 400px);
}
.home-feat-bento--3 {
  grid-template-columns: 1.4fr 1fr;
  grid-template-rows: 1fr 1fr;
  height: clamp(340px, 44vw, 480px);
}
.home-feat-bento--3 .home-feat-card.is-lead {
  grid-row: 1 / 3;
}
.home-feat-bento--many {
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}
.home-feat-bento--many .home-feat-card {
  height: 250px;
}
.home-feat-card {
  position: relative;
  display: block;
  height: 100%;
  min-height: 160px;
  border-radius: 18px;
  overflow: hidden;
  color: #fff;
  text-decoration: none;
  background: #12263f;
  box-shadow: 0 14px 34px rgba(13, 52, 96, 0.12);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.home-feat-card:hover {
  color: #fff;
  transform: translateY(-3px);
  box-shadow: 0 18px 40px rgba(13, 52, 96, 0.18);
}
.home-feat-img {
  object-fit: cover;
  object-position: center;
}
.home-feat-fallback {
  position: absolute;
  inset: 0;
  background: linear-gradient(160deg, #12355c, #1a5fa8);
}
.home-feat-ov {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    180deg,
    rgba(8, 18, 36, 0.05) 0%,
    rgba(8, 18, 36, 0.18) 46%,
    rgba(8, 18, 36, 0.82) 100%
  );
}
.home-feat-copy {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 1.2rem 1.25rem 1.25rem;
  color: #fff;
}
.home-feat-copy .s-cat {
  margin-bottom: 0.45rem;
}
.home-feat-title {
  display: block;
  font-size: clamp(1.05rem, 1.8vw, 1.7rem);
  font-weight: 800;
  line-height: 1.18;
  letter-spacing: -0.03em;
  max-width: 36rem;
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.28);
}
.home-feat-card.is-lead .home-feat-title {
  font-size: clamp(1.35rem, 2.3vw, 2.05rem);
}
.home-feat-card:not(.is-lead) .home-feat-title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.home-feat-meta {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: 0.45rem;
  font-size: var(--ks-t-s);
  font-weight: 600;
  color: rgba(255, 255, 255, 0.8);
}
.home-feat-meta--date {
  margin-top: 0.28rem;
  font-size: var(--ks-t-xs);
  color: rgba(255, 255, 255, 0.72);
}
.home-feat-when {
  position: absolute;
  top: 0.9rem;
  left: 0.9rem;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 3.15rem;
  padding: 0.42rem 0.55rem 0.48rem;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.94);
  color: #12355c;
  box-shadow: 0 8px 22px rgba(8, 18, 36, 0.18);
  line-height: 1;
}
.home-feat-when-d {
  font-size: 1.2rem;
  font-weight: 800;
  letter-spacing: -0.03em;
}
.home-feat-when-m {
  margin-top: 0.18rem;
  font-size: var(--ks-t-2xs);
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #1a5fa8;
}
.home-feat-fallback--events {
  background: linear-gradient(160deg, #0f3a5c, #1a6f9c 55%, #2a8f7a);
}
.home-feat-card.is-lead .home-feat-when {
  min-width: 3.45rem;
  padding: 0.5rem 0.62rem 0.55rem;
}
.home-feat-card.is-lead .home-feat-when-d {
  font-size: 1.38rem;
}
.s-cat {
  display: inline-flex;
  align-items: center;
  gap: 0.32rem;
  font-size: var(--ks-t-2xs);
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.26rem 0.8rem;
  border-radius: 20px;
  color: #fff;
  margin-bottom: 0.7rem;
}
.s-title {
  font-size: clamp(1.3rem, 2.2vw, 2.1rem);
  font-weight: 800;
  color: #fff;
  line-height: 1.18;
  margin-bottom: 0.6rem;
  letter-spacing: -0.02em;
  max-width: 560px;
}
.s-meta {
  display: flex;
  gap: 1rem;
  font-size: var(--ks-t-xs);
  color: rgba(255, 255, 255, 0.65);
  font-weight: 600;
  flex-wrap: wrap;
}

/* KRAJE */
.kraje-sec .kraje-sec-eye {
  font-size: var(--ks-t-s);
  letter-spacing: 0.14em;
}
.kraje-sec .kraje-sec-h {
  font-size: clamp(1.85rem, 4.2vw, 2.55rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.12;
}
.regions-strip {
  display: flex;
  gap: 1px;
  background: var(--ks-border);
  border-radius: 10px;
  overflow: hidden;
}
.rgn-card {
  flex: 1;
  background: #fff;
  padding: 1.35rem 0.75rem;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.38rem;
  transition: background 0.15s;
  min-width: 0;
}
.rgn-card:hover {
  background: var(--ks-bluelt);
}
.rgn-icon {
  font-size: 2.35rem;
  line-height: 1;
  color: var(--ks-blue);
  transition: color 0.2s, transform 0.2s;
}
.rgn-card:hover .rgn-icon {
  color: var(--ks-red);
  transform: scale(1.08);
}
.rgn-name {
  font-size: 0.95rem;
  font-weight: 800;
  color: var(--ks-text);
  line-height: 1.2;
}
.rgn-count {
  font-size: var(--ks-t-xs);
  font-weight: 600;
  color: var(--ks-soft);
}

/* CATEGORY */
.cat-card {
  --cat-color: var(--ks-blue);
  position: relative;
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  gap: 0.45rem;
  width: 100%;
  height: 10.15rem;
  min-height: 10.15rem;
  max-height: 10.15rem;
  box-sizing: border-box;
  padding: 0 0 0 1.2rem;
  border-radius: 18px;
  background: var(--cat-color);
  color: #fff;
  overflow: hidden;
  text-decoration: none;
  border: 0;
  box-shadow: 0 8px 22px color-mix(in srgb, var(--cat-color) 28%, transparent);
  transition: transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease;
}
.cat-card:hover {
  color: #fff;
  transform: translateY(-2px);
  filter: brightness(1.04);
  box-shadow: 0 14px 28px color-mix(in srgb, var(--cat-color) 38%, transparent);
}
.cat-card__copy {
  position: relative;
  z-index: 2;
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 0.42rem;
  padding: 1.05rem 0.35rem 1.05rem 0;
}
.cat-card__icon {
  font-size: 3.15rem;
  line-height: 1;
  color: #fff;
}
.cat-card__name {
  font-size: 1.08rem;
  font-weight: 800;
  color: #fff;
  line-height: 1.22;
  letter-spacing: -0.02em;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  max-height: 2.44em;
}
.cat-card__media {
  position: relative;
  flex: 0 0 10.15rem;
  width: 10.15rem;
  height: 10.15rem;
  aspect-ratio: 1 / 1;
  margin-right: -1.45rem;
  margin-left: 0;
}
.cat-card__media::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 2;
  border-radius: 50%;
  background: radial-gradient(
    circle at 50% 50%,
    transparent 36%,
    color-mix(in srgb, var(--cat-color) 35%, transparent) 58%,
    var(--cat-color) 78%
  );
  pointer-events: none;
}
.cat-card__photo,
.cat-card__media img,
.cat-card__media span {
  width: 100% !important;
  height: 100% !important;
  border-radius: 50%;
  object-fit: cover;
  display: block;
  -webkit-mask-image: radial-gradient(circle at 50% 50%, #000 46%, transparent 76%);
  mask-image: radial-gradient(circle at 50% 50%, #000 46%, transparent 76%);
}
.row:has(.cat-card) {
  align-items: stretch;
}
.row:has(.cat-card) > [class*='col'] {
  display: flex;
}
.row:has(.cat-card) .cat-card {
  width: 100%;
}
.cat-img {
  position: relative;
  height: 140px;
  overflow: hidden;
}
.cat-img img,
.cat-img span img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.cat-badge {
  position: absolute;
  top: 0.55rem;
  left: 0.55rem;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: var(--ks-t-xs);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.28);
}
.cat-ov {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 0.6rem 0.8rem 0.7rem;
  background: color-mix(in srgb, var(--cat-tint, var(--ks-mid)) 78%, transparent);
}

/* Kategória ako akcent textu na kartách článkov (nastavte --cat-accent na karte) */
.art-cat,
.rel-cat,
.mpp-cat {
  color: var(--cat-accent, var(--ks-blue));
}
.art-card:hover .art-title {
  color: var(--cat-accent, var(--ks-blue));
}
.art-card-feat:hover .art-title {
  color: var(--cat-accent, var(--ks-blue));
}
.rel-card:hover .rel-title {
  color: var(--cat-accent, var(--ks-blue));
}
.cat-nm {
  font-size: var(--ks-t-sm);
  font-weight: 800;
  color: #fff;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.55);
  line-height: 1.2;
}

/* EVENTS */
.ev-card {
  background: #fff;
  padding: 0.92rem 1.05rem;
  display: grid;
  grid-template-columns: 50px minmax(0, 1fr) auto;
  gap: 0.85rem;
  align-items: center;
  cursor: pointer;
  transition: background 0.15s;
  border-bottom: 1px solid var(--ks-border);
  text-decoration: none;
  color: inherit;
  width: 100%;
  min-width: 0;
}
.ev-card:last-child {
  border-bottom: none;
}
.ev-card:hover {
  background: var(--ks-bluelt);
}
.ev-date {
  background: var(--grad-blue);
  color: #fff;
  border-radius: 8px;
  padding: 0.45rem 0.32rem;
  text-align: center;
}
.ev-main {
  min-width: 0;
}
.ev-dd {
  font-size: 1.3rem;
  font-weight: 800;
  line-height: 1;
}
.ev-mm {
  font-size: 0.52rem;
  font-weight: 700;
  text-transform: uppercase;
  opacity: 0.8;
}
.ev-type {
  font-size: 0.58rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--ks-blue);
  margin-bottom: 0.15rem;
  display: flex;
  align-items: center;
  gap: 0.28rem;
}
.ev-name {
  font-size: var(--ks-t-s);
  font-weight: 700;
  color: var(--ks-text);
  line-height: 1.28;
}
.ev-card:hover .ev-name {
  color: var(--ks-blue);
}
.ev-place {
  font-size: var(--ks-t-2xs);
  color: var(--ks-soft);
  font-weight: 600;
  margin-top: 0.12rem;
  display: flex;
  align-items: center;
  gap: 0.22rem;
}
.ev-badge {
  font-size: 0.56rem;
  font-weight: 700;
  padding: 0.18rem 0.5rem;
  border-radius: 20px;
  white-space: nowrap;
  align-self: center;
}
.eb-free { background: #dcfce7; color: #15803d; }
.eb-paid { background: #fee2e2; color: #b91c1c; }
.eb-sport { background: var(--ks-bluelt); color: var(--ks-blue); }

/* REV BOX */
.rev-box {
  background: #fff;
  border-radius: 9px;
  border: 1px solid var(--ks-border);
  overflow: hidden;
}
.rev-hd {
  background: var(--grad-blue);
  padding: 0.65rem 0.9rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
}
.rev-hd-name {
  font-size: var(--ks-t-s);
  font-weight: 800;
  color: #fff;
  display: flex;
  align-items: center;
  gap: 0.42rem;
}
.rev-hd-all {
  font-size: 0.6rem;
  color: rgba(255, 255, 255, 0.7);
  display: flex;
  align-items: center;
  gap: 0.22rem;
}
.rev-item {
  display: flex;
  gap: 0.6rem;
  padding: 0.52rem 0.82rem;
  border-bottom: 1px solid var(--ks-border);
  cursor: pointer;
  transition: background 0.12s;
  align-items: flex-start;
}
.rev-item:last-child {
  border-bottom: none;
}
.rev-item:hover {
  background: var(--ks-bluelt);
}
.rev-dt {
  background: var(--grad-blue);
  color: #fff;
  border-radius: 6px;
  padding: 0.25rem 0.3rem;
  text-align: center;
  min-width: 30px;
  flex-shrink: 0;
}
.rev-dd {
  font-size: var(--ks-t-s);
  font-weight: 800;
  line-height: 1;
}
.rev-mm {
  font-size: 0.46rem;
  font-weight: 700;
  text-transform: uppercase;
  opacity: 0.8;
}
.rev-name {
  font-size: 0.73rem;
  font-weight: 700;
  color: var(--ks-text);
  line-height: 1.28;
}
.rev-place {
  font-size: 0.6rem;
  color: var(--ks-soft);
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 0.2rem;
  margin-top: 0.06rem;
}

/* MAP */
.map-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.35rem 0.82rem;
  border-radius: 20px;
  border: 1.5px solid var(--ks-border);
  background: #fff;
  font-size: var(--ks-t-xs);
  font-weight: 700;
  color: var(--ks-mid);
  cursor: pointer;
  font-family: var(--ks-font-text);
  transition: all 0.15s;
}
.map-btn:hover {
  border-color: var(--ks-blue);
  color: var(--ks-blue);
}
.map-btn.active {
  background: var(--grad-blue);
  color: #fff;
  border-color: transparent;
}
.map-heading-meta {
  font-size: var(--ks-t-xs);
  font-weight: 700;
  color: var(--ks-soft);
  letter-spacing: 0.01em;
  padding-bottom: 0.15rem;
}
.map-shell {
  position: relative;
}
.map-filter {
  position: absolute;
  top: 0.85rem;
  left: 0.85rem;
  z-index: 1100;
  width: min(18.5rem, calc(100% - 1.7rem));
}
.map-filter-btn {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.55rem 0.7rem 0.55rem 0.75rem;
  border-radius: 10px;
  border: 1px solid rgba(13, 52, 96, 0.12);
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 6px 22px rgba(13, 52, 96, 0.14);
  font-family: var(--ks-font-text);
  font-size: var(--ks-t-s);
  font-weight: 800;
  color: var(--ks-bluedk);
  cursor: pointer;
  text-align: left;
}
.map-filter-btn:hover,
.map-filter-btn[aria-expanded='true'] {
  border-color: color-mix(in srgb, var(--ks-blue) 45%, var(--ks-border));
}
.map-filter-btn.is-filtered {
  border-color: color-mix(in srgb, var(--ks-blue) 55%, transparent);
  background: #fff;
}
.map-filter-btn > i:first-child {
  color: var(--ks-blue);
  width: 1rem;
  text-align: center;
  flex-shrink: 0;
}
.map-filter-btn-label {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.map-filter-btn-count {
  flex-shrink: 0;
  font-size: var(--ks-t-2xs);
  font-weight: 800;
  color: var(--ks-blue);
  background: var(--ks-bluelt);
  border-radius: 999px;
  padding: 0.12rem 0.45rem;
  line-height: 1.3;
}
.map-filter-caret {
  font-size: 0.62rem;
  color: var(--ks-soft);
  transition: transform 0.15s ease;
  flex-shrink: 0;
}
.map-filter-caret.open {
  transform: rotate(180deg);
}
.map-filter-panel {
  margin-top: 0.4rem;
  background: #fff;
  border-radius: 10px;
  border: 1px solid rgba(13, 52, 96, 0.1);
  box-shadow: 0 10px 28px rgba(13, 52, 96, 0.16);
  overflow: hidden;
}
.map-filter-search {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.55rem 0.7rem;
  border-bottom: 1px solid var(--ks-border);
  color: var(--ks-soft);
}
.map-filter-search input {
  border: 0;
  outline: 0;
  width: 100%;
  font-family: inherit;
  font-size: var(--ks-t-xs);
  font-weight: 600;
  color: var(--ks-text);
  background: transparent;
}
.map-filter-list {
  max-height: min(16.5rem, 42vh);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 0.25rem 0;
}
.map-filter-item {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.48rem 0.75rem;
  border: 0;
  background: transparent;
  font-family: var(--ks-font-text);
  font-size: var(--ks-t-xs);
  font-weight: 700;
  color: var(--ks-mid);
  cursor: pointer;
  text-align: left;
}
.map-filter-item:hover {
  background: var(--ks-bluelt);
  color: var(--ks-bluedk);
}
.map-filter-item.active {
  background: var(--ks-bluelt);
  color: var(--ks-blue);
}
.map-filter-dot {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  background: var(--ks-blue);
  flex-shrink: 0;
}
.map-filter-item > i {
  width: 0.95rem;
  text-align: center;
  font-size: 0.72rem;
  color: inherit;
  opacity: 0.85;
  flex-shrink: 0;
}
.map-filter-item-label {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.map-filter-item-count {
  font-size: var(--ks-t-2xs);
  font-weight: 800;
  color: var(--ks-soft);
  flex-shrink: 0;
}
.map-filter-item.active .map-filter-item-count {
  color: var(--ks-blue);
}
.map-filter-empty {
  padding: 0.7rem 0.85rem;
  font-size: var(--ks-t-xs);
  font-weight: 600;
  color: var(--ks-soft);
}
.ks-cluster-wrap {
  background: none !important;
  border: none !important;
}
.ks-cluster {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-family: var(--ks-font-text);
  font-weight: 800;
  background: var(--ks-cluster-color, var(--ks-blue));
  box-shadow: 0 0 0 3px #fff, 0 4px 14px rgba(13, 52, 96, 0.32);
  line-height: 1;
}
.ks-cluster--sm { font-size: var(--ks-t-xs); }
.ks-cluster--md { font-size: var(--ks-t-sm); }
.ks-cluster--lg { font-size: 0.95rem; }
.leaflet-cluster-spider-leg {
  stroke: var(--ks-blue);
  stroke-opacity: 0.4;
}
.leaflet-bottom.leaflet-right {
  z-index: 500;
}
@media (max-width: 575.98px) {
  .map-filter {
    width: min(16.5rem, calc(100% - 1.4rem));
    top: 0.65rem;
    left: 0.65rem;
  }
  .map-filter-list {
    max-height: min(11rem, 36vh);
  }
}
.map-box {
  border-radius: 11px;
  overflow: hidden;
  border: 1px solid var(--ks-border);
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.1);
  height: 480px;
  position: relative;
}

/* Kategória hero — mapa na celú šírku */
.kategoria-hero {
  position: relative;
}
.kategoria-hero-map {
  width: 100%;
  height: 420px;
  border-radius: 0;
  border: none;
  box-shadow: none;
}
@media (max-width: 767.98px) {
  .kategoria-hero-map { height: 320px; }
}
@media (max-width: 575.98px) {
  .kategoria-hero-map { height: 260px; }
}
#sk-map {
  width: 100%;
  height: 100%;
}
.mpp {
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 258px;
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.16);
  overflow: hidden;
  z-index: 1200;
  display: none;
}
.mpp-img {
  width: 100%;
  height: 145px;
  object-fit: cover;
  display: block;
}
.mpp-body {
  padding: 0.85rem 0.95rem 1rem;
}
.mpp-cat {
  font-size: 0.58rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--ks-blue);
  margin-bottom: 0.25rem;
  display: flex;
  align-items: center;
  gap: 0.28rem;
}
.mpp-name {
  font-size: var(--ks-t-sm);
  font-weight: 800;
  color: var(--ks-text);
  margin-bottom: 0.28rem;
}
.mpp-loc {
  font-size: var(--ks-t-2xs);
  color: var(--ks-soft);
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 0.25rem;
  margin-bottom: 0.65rem;
}
.mpp-close {
  position: absolute;
  top: 0.48rem;
  right: 0.55rem;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.08);
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--ks-t-xs);
  color: var(--ks-mid);
  z-index: 2;
}
.mpp-btn {
  width: 100%;
  padding: 0.54rem;
  background: var(--grad-blue);
  color: #fff;
  border: none;
  border-radius: 7px;
  font-family: var(--ks-font-text);
  font-size: var(--ks-t-xs);
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
}

/* UBYTOVANIE */
.ubyt-card {
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid var(--ks-border);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
  transition: transform 0.2s, box-shadow 0.2s;
}
.ubyt-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.11);
}
.ubyt-img {
  position: relative;
  overflow: hidden;
}
.ubyt-img img {
  width: 100%;
  height: 165px;
  object-fit: cover;
  display: block;
  transition: transform 0.4s;
}
.ubyt-card:hover .ubyt-img img {
  transform: scale(1.06);
}
.ubyt-bge {
  position: absolute;
  top: 8px;
  left: 8px;
  background: var(--grad-blue);
  color: #fff;
  font-size: 0.58rem;
  font-weight: 700;
  padding: 0.22rem 0.6rem;
  border-radius: 20px;
  display: flex;
  align-items: center;
  gap: 0.25rem;
}
.ubyt-body {
  padding: 0.95rem 1.05rem 1.1rem;
}
.ubyt-type {
  font-size: 0.6rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--ks-blue);
  margin-bottom: 0.22rem;
  display: flex;
  align-items: center;
  gap: 0.28rem;
}
.ubyt-name {
  font-size: var(--ks-t-sm);
  font-weight: 700;
  color: var(--ks-text);
  margin-bottom: 0.22rem;
}
.ubyt-card:hover .ubyt-name {
  color: var(--ks-blue);
}
.ubyt-loc {
  font-size: var(--ks-t-2xs);
  color: var(--ks-soft);
  font-weight: 600;
  margin-bottom: 0.75rem;
  display: flex;
  align-items: center;
  gap: 0.28rem;
}
.ubyt-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 0.65rem;
  border-top: 1px solid var(--ks-border);
}
.ubyt-price {
  font-size: var(--ks-t-sm);
  font-weight: 800;
  color: var(--ks-text);
}
.ubyt-price small {
  font-size: var(--ks-t-2xs);
  font-weight: 500;
  color: var(--ks-soft);
}
.stars {
  color: var(--ks-yellow);
  font-size: var(--ks-t-2xs);
}

/* SBOX */
.sbox {
  background: #fff;
  border-radius: 10px;
  border: 1px solid var(--ks-border);
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}
/* Pozri poznámku pri `.place-card-hd` — `margin: 0` drží vzhľad po zmene na h2. */
.sbox-hd {
  margin: 0;
  padding: 0.78rem 1.05rem;
  font-size: var(--ks-t-2xs);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #fff;
  display: flex;
  align-items: center;
  gap: 0.45rem;
}
.sbox-hd.blue { background: var(--grad-blue); }
.sbox-hd.red { background: var(--grad-red); }
.sbox-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.sbox-list li {
  border-bottom: 1px solid var(--ks-border);
}
.sbox-list li:last-child {
  border-bottom: none;
}
.sbox-list a {
  display: flex;
  align-items: center;
  gap: 0.78rem;
  padding: 0.7rem 1.05rem;
  transition: background 0.15s;
}
.sbox-list a:hover {
  background: var(--ks-bluelt);
}
.sbox-list img {
  width: 58px;
  height: 42px;
  object-fit: cover;
  border-radius: 5px;
  flex-shrink: 0;
}
.sbox-list .s-cat {
  font-size: 0.57rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--ks-blue);
  margin-bottom: 0.12rem;
}
.sbox-list .s-title {
  font-size: var(--ks-t-s);
  font-weight: 600;
  color: var(--ks-text);
  line-height: 1.26;
}
.sbox-list a:hover .s-title {
  color: var(--ks-blue);
}

/* FOOTER */
.ks-footer {
  position: relative;
  isolation: isolate;
  background:
    radial-gradient(ellipse 90% 55% at 8% 0%, rgba(56, 189, 248, 0.1), transparent 52%),
    radial-gradient(ellipse 70% 45% at 96% 100%, rgba(26, 95, 168, 0.22), transparent 58%),
    linear-gradient(180deg, #061018 0%, #08172c 46%, #12355c 100%);
  color: #fff;
  margin-top: 0.4rem;
}
.ft-shell {
  padding-left: clamp(1.25rem, 4vw, 2.25rem);
  padding-right: clamp(1.25rem, 4vw, 2.25rem);
  padding-top: 1.15rem;
}
.ft-grid {
  display: grid;
  /* Minimum v `rem` rastie spolu s veľkosťou písma — pri zväčšení textu na
     200 % si štyri stĺpce vypýtali 1 556 px a pätička pretiekla von z okna
     (WCAG 1.4.4). `minmax(0, …)` drží rovnaké pomery, ale nechá ich zmenšiť. */
  grid-template-columns: minmax(0, 1.45fr) repeat(3, minmax(0, 1fr));
  gap: 2rem 1.75rem;
  padding: 0.4rem 0 2.35rem;
}
.ft-brand-logo {
  margin-bottom: 0.85rem;
}
.ft-brand-logo .ks-logo-mark {
  height: clamp(40px, 4.6vw, 52px);
}
.ft-desc {
  font-size: var(--ks-t-sm);
  color: rgba(255, 255, 255, 0.58);
  line-height: 1.65;
  max-width: 22rem;
  margin: 0 0 1.15rem;
}
.ft-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  border: 1.5px solid rgba(255, 255, 255, 0.28);
  color: #fff;
  background: rgba(255, 255, 255, 0.06);
  padding: 0.55rem 1.1rem;
  border-radius: 999px;
  font-size: var(--ks-t-s);
  font-weight: 700;
  text-decoration: none;
  transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}
.ft-cta:hover {
  background: #1a5fa8;
  border-color: #1a5fa8;
  color: #fff;
}
.ft-col h2 {
  font-size: var(--ks-t-2xs);
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(186, 230, 253, 0.72);
  margin: 0.35rem 0 0.95rem;
  padding-bottom: 0.55rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.ft-col ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.ft-list-split {
  columns: 2;
  column-gap: 1.15rem;
}
.ft-col li {
  margin-bottom: 0.42rem;
  break-inside: avoid;
}
.ft-col a {
  font-size: 0.84rem;
  color: rgba(255, 255, 255, 0.62);
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  text-decoration: none;
  transition: color 0.15s ease;
}
.ft-col a i {
  font-size: 0.7rem;
  width: 0.9rem;
  text-align: center;
  opacity: 0.7;
  color: #7dd3fc;
}
.ft-col a:hover {
  color: #fff;
}
.ft-bottom {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 0.65rem 1.25rem;
  padding: 1.05rem 0 1.2rem;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  font-size: var(--ks-t-xs);
  color: rgba(255, 255, 255, 0.42);
}
.ft-legal {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.55rem;
}
.ft-legal a {
  color: rgba(255, 255, 255, 0.5);
  text-decoration: none;
  font-weight: 600;
}
.ft-legal a:hover {
  color: #fff;
}

/* INFO PAGES */
.info-page {
  background: #fff;
  padding: 2.6rem 0 3.4rem;
}
.info-page-inner {
  padding-left: clamp(1.25rem, 4vw, 2.25rem);
  padding-right: clamp(1.25rem, 4vw, 2.25rem);
  max-width: 48rem;
}
.info-prose {
  font-size: 1.02rem;
  line-height: 1.7;
  color: #374151;
}
.info-prose p {
  margin: 0 0 1.05rem;
}
.info-prose h2 {
  font-size: 1.12rem;
  font-weight: 800;
  color: #0d3460;
  letter-spacing: -0.02em;
  margin: 1.7rem 0 0.55rem;
}
.info-prose a {
  color: #1a5fa8;
  font-weight: 700;
  text-decoration: none;
}
.info-prose a:hover {
  text-decoration: underline;
}
.info-mail {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  border-radius: 999px;
  background: #e8f2fc;
  color: #0d3460 !important;
  padding: 0.62rem 1.15rem;
  font-weight: 800 !important;
}
.info-mail:hover {
  background: #d5e8f8;
  text-decoration: none !important;
}

@media (max-width: 1099.98px) {
  .ft-grid {
    grid-template-columns: 1fr 1fr 1fr;
  }
  .ft-brand {
    grid-column: 1 / -1;
  }
  .ft-list-split {
    columns: 1;
  }
}
@media (max-width: 767.98px) {
  .ft-grid {
    grid-template-columns: 1fr 1fr;
    gap: 1.6rem 1.2rem;
  }
  .ft-brand {
    grid-column: 1 / -1;
  }
}
@media (max-width: 575.98px) {
  .ft-grid {
    grid-template-columns: 1fr;
  }
  .ft-bottom {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* Responsive */
@media (max-width: 991.98px) {
  .home-feat-card.is-lead .home-feat-title {
    font-size: clamp(1.2rem, 3.2vw, 1.7rem);
  }
  .ks-nav-link {
    padding: 0 0.72rem;
    font-size: var(--ks-t-s);
    gap: 0.34rem;
  }
  .cat-card {
    height: 8.4rem;
    min-height: 8.4rem;
    max-height: 8.4rem;
    padding-left: 1rem;
  }
  .cat-card__icon {
    font-size: 2.15rem;
  }
  .cat-card__name {
    font-size: var(--ks-t-sm);
    -webkit-line-clamp: 3;
    max-height: 3.7em;
  }
  .cat-card__media {
    flex-basis: 6.4rem;
    width: 6.4rem;
    height: 6.4rem;
    margin-right: -0.85rem;
  }
}
@media (max-width: 767.98px) {
  .home-feat-bento--2,
  .home-feat-bento--3 {
    grid-template-columns: 1fr;
    grid-template-rows: none;
    height: auto;
  }
  .home-feat-bento--3 .home-feat-card.is-lead {
    grid-row: auto;
  }
  .home-feat-card {
    height: 230px;
    min-height: 230px;
  }
  .home-feat-copy {
    padding: 1.05rem 1.1rem 1.15rem;
  }
  .home-feat-when {
    top: 0.75rem;
    left: 0.75rem;
    min-width: 2.9rem;
    padding: 0.36rem 0.48rem 0.4rem;
  }
  .home-feat-when-d {
    font-size: 1.08rem;
  }
  .s-title {
    font-size: 1.18rem;
  }
  .s-meta {
    display: none;
  }
  .regions-strip {
    flex-wrap: wrap;
  }
  .rgn-card {
    flex: 1 1 calc(25% - 1px);
    min-width: calc(25% - 1px);
  }
  .map-box {
    height: 340px;
  }
}
@media (max-width: 575.98px) {
  .ks-topbar {
    display: none;
  }
  .home-feat {
    padding-top: 2rem;
    padding-bottom: 2.15rem;
  }
  .home-feat-title {
    font-size: 1.12rem;
  }
  .cat-card {
    height: 8.45rem;
    min-height: 8.45rem;
    max-height: 8.45rem;
    padding: 0.72rem 0.65rem 0.72rem 0.85rem;
  }
  .cat-card__copy {
    padding-right: 2.45rem;
    gap: 0.22rem;
  }
  .cat-card__icon {
    font-size: 1.38rem;
  }
  .cat-card__name {
    font-size: var(--ks-t-xs);
    -webkit-line-clamp: 3;
    max-height: 4.05em;
    line-height: 1.22;
    overflow-wrap: break-word;
    hyphens: auto;
  }
  .cat-card__media {
    position: absolute;
    right: -0.2rem;
    bottom: -0.35rem;
    flex: none;
    flex-basis: auto;
    width: 3.85rem;
    height: 3.85rem;
    margin: 0;
    opacity: 0.92;
    pointer-events: none;
  }
  .s-title {
    font-size: 1rem;
  }
  .rgn-card {
    flex: 1 1 calc(50% - 1px);
    min-width: calc(50% - 1px);
  }
  .rgn-name {
    font-size: var(--ks-t-s);
  }
  .rgn-count {
    font-size: var(--ks-t-2xs);
  }
  .rgn-icon {
    font-size: 1.85rem;
  }
  .kraje-sec .kraje-sec-h {
    font-size: 1.45rem;
  }
  .map-box {
    height: 270px;
  }
  .mpp {
    width: calc(100% - 1rem);
    left: 0.5rem;
    right: 0.5rem;
  }
}

/* REGION HERO (kraj page) */
.region-hero {
  position: relative;
  height: 500px;
  overflow: hidden;
  background: #000;
}
.region-hero--kraj {
  height: clamp(430px, 36vw, 520px);
  min-height: 420px;
}
.region-hero--kraj .region-hero-body {
  padding: 0 0 2.6rem;
  background: linear-gradient(to top, rgba(5, 15, 50, 0.9) 0%, rgba(5, 15, 50, 0.4) 45%, transparent 72%);
}
.kategoria-accent .region-hero--kraj .region-hero-body {
  background: linear-gradient(
    to top,
    color-mix(in srgb, var(--kategoria-accent) 55%, #020617) 0%,
    color-mix(in srgb, var(--kategoria-accent) 31%, transparent) 16%,
    transparent 40%
  );
}
.region-hero img,
.region-hero .region-hero-img,
.region-hero span img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.55;
}
@keyframes ks-kategoria-hero-pan-v {
  0% {
    object-position: center 100%;
  }
  100% {
    object-position: center 0%;
  }
}
.kategoria-accent .region-hero--kraj > img {
  animation: ks-kategoria-hero-pan-v 60s ease-in-out infinite alternate;
}
@media (prefers-reduced-motion: reduce) {
  .kategoria-accent .region-hero--kraj > img {
    animation: none;
  }
}
/* Hero článku (slider v kategoria-accent — rovnaký vizuál ako kategória) */
.region-hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.region-hero--article .region-hero-body {
  z-index: 2;
  pointer-events: none;
}
.region-hero--article .region-hero-body .ks-container {
  pointer-events: auto;
}
.photo-slider--hero {
  height: 100%;
  border-radius: 0;
}
.photo-slider--hero .ps-wrap {
  height: 100%;
}
.photo-slider--hero .ps-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.55;
}
.photo-slider--hero-single .ps-counter,
.photo-slider--hero-single .ps-arrows {
  display: none;
}
.kategoria-accent .region-hero--article .region-hero-bg .ps-slide.active img {
  animation: ks-kategoria-hero-pan-v 60s ease-in-out infinite alternate;
}
@media (prefers-reduced-motion: reduce) {
  .kategoria-accent .region-hero--article .region-hero-bg .ps-slide.active img {
    animation: none;
  }
}
.region-hero-thumb-strip {
  padding-top: 1.05rem;
  padding-bottom: 1.05rem;
  background: #fff;
  border-top: 1px solid var(--ks-border);
  border-bottom: 0;
}
.place-gallery-strip-inner {
  padding-left: clamp(1.25rem, 4vw, 2.25rem);
  padding-right: clamp(1.25rem, 4vw, 2.25rem);
}
.region-hero-thumb-strip .ps-thumb {
  width: 5.6rem;
  height: 4rem;
  border-radius: 10px;
  border-color: var(--ks-border);
  padding: 0;
  background: #f2f5fa;
}
.region-hero-thumb-strip .ps-thumb:hover,
.region-hero-thumb-strip .ps-thumb:focus-visible {
  border-color: var(--ks-blue);
}
.region-hero-thumb-strip .ps-thumb img {
  opacity: 1;
}
.rh-article-meta {
  font-size: var(--ks-t-s);
  color: rgba(255, 255, 255, 0.72);
  margin: -0.35rem 0 1rem;
  display: flex;
  align-items: center;
  gap: 0.4rem;
}
.region-hero-body {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 0 0 2.5rem;
  background: linear-gradient(to top, rgba(5, 15, 50, 0.85) 0%, transparent 60%);
}
.region-hero-body .ks-container {
  width: 100%;
}
.rh-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.38rem;
  background: rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(4px);
  border: 1px solid rgba(255, 255, 255, 0.25);
  color: #fff;
  font-size: var(--ks-t-2xs);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  padding: 0.28rem 0.85rem;
  border-radius: 20px;
  margin-bottom: 0.9rem;
}
.rh-title {
  font-size: clamp(1.8rem, 4vw, 3rem);
  font-weight: 800;
  color: #fff;
  line-height: 1.1;
  letter-spacing: -0.03em;
  margin-bottom: 0.6rem;
}
.rh-desc {
  font-size: var(--ks-t-sm);
  color: rgba(255, 255, 255, 0.75);
  max-width: 520px;
  line-height: 1.6;
  margin-bottom: 1.2rem;
}
.region-hero--kraj .rh-title {
  margin-bottom: 0;
}
.region-hero--kraj .rh-desc {
  margin-top: 2.35rem;
  font-size: clamp(1.02rem, 2.15vw, 1.22rem);
  color: rgba(255, 255, 255, 0.84);
  max-width: 50rem;
  line-height: 1.68;
  margin-bottom: 1.15rem;
}
.kategoria-accent .region-hero--kraj .rh-desc {
  margin-top: 1.65rem;
}
.btn-rh-white {
  background: rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(4px);
  color: #fff;
  border: 1.5px solid rgba(255, 255, 255, 0.4);
  padding: 0.55rem 1.2rem;
  border-radius: 8px;
  font-size: var(--ks-t-s);
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  transition: all 0.2s;
}
.btn-rh-white:hover {
  background: #fff;
  color: var(--ks-bluedk);
}
.btn-rh-red {
  background: var(--grad-red);
  color: #fff;
  border: none;
  padding: 0.55rem 1.2rem;
  border-radius: 8px;
  font-size: var(--ks-t-s);
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  box-shadow: 0 2px 10px rgba(208, 2, 27, 0.35);
  transition: opacity 0.15s;
}
.btn-rh-red:hover {
  opacity: 0.9;
}

/* PLACE DETAIL */
.place-page {
  background: #fff;
}
.place-page .btn-rh-white,
.place-page .btn-rh-red {
  border-radius: 999px;
  padding: 0.55rem 1.15rem;
}
.place-body {
  background: #fff;
  padding-bottom: 3.2rem;
}
.place-body-inner {
  padding: 1.2rem clamp(1.25rem, 4vw, 2.25rem) 0;
}
.place-card {
  background: #fff;
  border: 1px solid var(--ks-border);
  border-radius: var(--ks-card-radius);
  padding: 1.2rem 1.25rem 1.3rem;
  box-shadow: 0 4px 14px rgba(13, 52, 96, 0.05);
  overflow: hidden;
}
/*
 * Hlavičky kariet a bočných boxov sú `h2` — sú to skutočné nadpisy sekcií
 * a bez nich sa detail objektu nedal prechádzať nadpismi (čítačka skočila
 * z názvu objektu rovno do pätičky).
 *
 * Značka sa zmenila, vzhľad nie: `margin-top: 0` ruší predvolený odstup,
 * ktorý prehliadač nadpisom pridáva, a veľkosť aj váhu písma si tieto triedy
 * beztak určujú samy.
 */
.place-card-hd {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  font-size: var(--ks-t-xs);
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ks-soft);
  margin-top: 0;
  margin-bottom: 0.95rem;
}
.place-card-hd i {
  color: var(--ks-blue);
}
.place-page .sbox-hd,
.place-page .sbox-hd.blue,
.place-page .sbox-hd.yellow,
.place-page .place-card-hd,
.place-page .clanok-infobar-card__title {
  background: linear-gradient(
    135deg,
    color-mix(in srgb, var(--kategoria-accent) 92%, #041018) 0%,
    color-mix(in srgb, var(--kategoria-accent) 52%, #1a5fa8) 100%
  );
  color: #fff;
  display: flex;
  align-items: center;
  gap: 0.45rem;
  font-size: var(--ks-t-2xs);
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.place-page .place-card-hd,
.place-page .place-card-hd i,
.place-page .clanok-infobar-card__title .fa-circle-info,
.place-page .sbox-hd i {
  color: #fff;
}
.place-page .clanok-infobar-card__title {
  border-radius: 10px;
  padding: 0.78rem 1.05rem;
  margin-bottom: 1rem;
}
.place-page .clanok-hero-infobar {
  background: #fff;
  padding: 1.15rem 0 0.35rem;
}
.place-page .clanok-hero-infobar .info-cell {
  background: #fff;
  border: 1px solid var(--ks-border);
  box-shadow: 0 4px 14px rgba(13, 52, 96, 0.05);
}
.place-page .clanok-zakladne-kde-row--under-slider > .col-lg-4 .sbox.clanok-hero-map-sbox {
  background: #fff;
  border: 1px solid var(--ks-border);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow: 0 4px 14px rgba(13, 52, 96, 0.05);
}
.ps-slide img.is-zoomable {
  cursor: zoom-in;
}

.place-lb {
  position: fixed;
  inset: 0;
  z-index: 4000;
  background: rgba(6, 16, 28, 0.92);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 3.4rem 1.2rem 6.4rem;
}
.place-lb-stage {
  margin: 0;
  max-width: min(1180px, 100%);
  max-height: 100%;
  text-align: center;
}
.place-lb-stage img {
  max-width: 100%;
  max-height: calc(100dvh - 10.5rem);
  object-fit: contain;
  border-radius: 12px;
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.35);
}
.place-lb-stage figcaption {
  margin-top: 0.7rem;
  color: rgba(255, 255, 255, 0.78);
  font-size: var(--ks-t-sm);
  font-weight: 600;
}
.place-lb-close,
.place-lb-nav {
  position: absolute;
  border: 0;
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  width: 2.6rem;
  height: 2.6rem;
  border-radius: 999px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.place-lb-close {
  top: 1rem;
  right: 1rem;
}
.place-lb-nav.is-prev {
  left: 0.85rem;
  top: 50%;
  transform: translateY(-50%);
}
.place-lb-nav.is-next {
  right: 0.85rem;
  top: 50%;
  transform: translateY(-50%);
}
.place-lb-close:hover,
.place-lb-nav:hover {
  background: #1a5fa8;
}
.place-lb-counter {
  position: absolute;
  top: 1.15rem;
  left: 1.15rem;
  color: rgba(255, 255, 255, 0.7);
  font-size: var(--ks-t-s);
  font-weight: 700;
}
.place-lb-thumbs {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  gap: 0.45rem;
  justify-content: center;
  overflow-x: auto;
  padding: 0.85rem 1rem 1.05rem;
}
.place-lb-thumb {
  flex: none;
  width: 4.4rem;
  height: 3.15rem;
  padding: 0;
  border: 2px solid transparent;
  border-radius: 8px;
  overflow: hidden;
  background: #0b1a2c;
  cursor: pointer;
}
.place-lb-thumb.is-active,
.place-lb-thumb:hover {
  border-color: #fff;
}
.place-lb-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Úvodka — Kraje Slovenska (celošírkový zelený pás ako Vedeli ste) */
#home-kraje-grid,
.home-kraje-band {
  position: relative;
  overflow: visible;
  background: linear-gradient(148deg, #0c2618 0%, #16532c 30%, #1e7a42 62%, #2d9a55 100%);
  color: #fff;
}
#home-kraje-grid::before,
.home-kraje-band::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 95% 70% at 10% 18%, rgba(255, 255, 255, 0.12), transparent 55%),
    radial-gradient(ellipse 65% 45% at 92% 82%, rgba(134, 239, 172, 0.2), transparent 50%);
  pointer-events: none;
}
#home-kraje-grid .ks-container,
.home-kraje-band .ks-container {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1380px;
  padding-left: clamp(1.25rem, 4vw, 2.25rem);
  padding-right: clamp(1.25rem, 4vw, 2.25rem);
}
#home-kraje-grid .sec-eye,
.home-kraje-band .sec-eye {
  color: rgba(187, 247, 208, 0.98) !important;
}
#home-kraje-grid .sec-eye::before,
.home-kraje-band .sec-eye::before {
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.9), rgba(134, 239, 172, 0.7)) !important;
}
#home-kraje-grid .sec-h,
.home-kraje-band .sec-h {
  color: #fff !important;
}
.kraje-home-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem;
  align-items: stretch;
  width: 100%;
  overflow: visible;
  padding: 0.45rem 0.1rem;
  margin: 0;
}
@media (min-width: 576px) {
  .kraje-home-row {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.65rem;
    padding: 0.5rem 0.15rem;
  }
}
@media (min-width: 1100px) {
  .kraje-home-row {
    grid-template-columns: repeat(8, minmax(0, 1fr));
    gap: 0.75rem;
    padding: 0.55rem 0.2rem;
  }
}
.kraje-home-card {
  min-width: 0;
  max-width: none;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  text-align: center;
  gap: 0.38rem;
  padding: 0.95rem 0.5rem 0.8rem;
  background: #fff;
  border: 1px solid var(--ks-border);
  border-radius: 14px;
  box-shadow:
    0 0 0 2px rgba(4, 22, 12, 0.45),
    0 3px 6px rgba(2, 10, 6, 0.62),
    0 8px 18px rgba(3, 16, 8, 0.5);
  color: var(--ks-text);
  text-decoration: none;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, color 0.18s ease;
}
.kraje-home-card:hover {
  color: #167a42;
  border-color: color-mix(in srgb, #1e7a42 42%, var(--ks-border));
  box-shadow:
    0 0 0 2px rgba(4, 22, 12, 0.55),
    0 6px 10px rgba(2, 10, 6, 0.7),
    0 12px 24px rgba(3, 16, 8, 0.55);
}
.kraje-home-card:focus-visible {
  outline: 2px solid var(--ks-blue);
  outline-offset: 2px;
}
.kraje-home-card__icon {
  font-size: clamp(1.55rem, 2.8vw, 1.95rem);
  line-height: 1;
  color: #1e7a42;
  transition: color 0.18s ease;
}
.kraje-home-card:hover .kraje-home-card__icon {
  color: #16532c;
}
.kraje-home-card__num {
  font-size: clamp(1.45rem, 2.6vw, 1.85rem);
  font-weight: 800;
  color: #134d2c;
  line-height: 1;
  letter-spacing: -0.03em;
}
.kraje-home-card__num--zero {
  color: var(--ks-soft);
}
.kraje-home-card__label {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.08rem;
  line-height: 1.2;
}
.kraje-home-card__name {
  font-size: clamp(0.92rem, 1.55vw, 1.08rem);
  font-weight: 800;
  color: var(--ks-mid);
  letter-spacing: -0.02em;
  overflow-wrap: anywhere;
  hyphens: auto;
}
.kraje-home-card__kraj {
  display: block;
  font-size: clamp(0.8rem, 1.3vw, 0.92rem);
  font-weight: 700;
  color: var(--ks-soft);
  letter-spacing: 0.03em;
  text-transform: lowercase;
}
@media (max-width: 575.98px) {
  .home-intro .kraje-home-card {
    padding: 0.42rem 0.28rem 0.38rem;
  }
}

/* Úvodka — Vedeli ste? (slider z fun_fact + kruhová fotka objektu) */
.home-dyk-band {
  position: relative;
  overflow: hidden;
  background: linear-gradient(148deg, #050f22 0%, #0b2646 30%, #124878 62%, #1760a8 100%);
  color: #fff;
}
.home-dyk-band::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 95% 70% at 10% 18%, rgba(255, 255, 255, 0.1), transparent 55%),
    radial-gradient(ellipse 65% 45% at 92% 82%, rgba(56, 189, 248, 0.14), transparent 50%);
  pointer-events: none;
}
.home-dyk-band .ks-container {
  position: relative;
  z-index: 1;
}
.home-dyk-band__hd-border {
  border-color: rgba(255, 255, 255, 0.26) !important;
}
.home-dyk-band__eye {
  color: rgba(186, 230, 253, 0.98) !important;
}
.home-dyk-band__eye::before {
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.88), rgba(125, 211, 252, 0.65)) !important;
}
.home-dyk-band__title {
  color: #fff !important;
}
.home-dyk-slider-shell {
  max-width: 54rem;
  margin: 0 auto;
}
.home-dyk-slider {
  border-radius: 16px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.98);
  border: 1px solid rgba(255, 255, 255, 0.42) !important;
  box-shadow:
    0 18px 52px rgba(3, 12, 28, 0.55),
    inset 0 1px 0 rgba(255, 255, 255, 0.65);
  backdrop-filter: blur(10px);
}
.home-dyk-viewport {
  position: relative;
  min-height: 8.75rem;
}
.home-dyk-slide {
  display: none;
  padding: 1.4rem 1.45rem 1rem;
}
.home-dyk-slide.active {
  display: block;
  animation: home-dyk-fade 0.45s ease;
}
@keyframes home-dyk-fade {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.home-dyk-slide-inner {
  display: flex;
  align-items: flex-start;
  gap: 1.2rem;
}
.home-dyk-thumb-wrap {
  flex-shrink: 0;
  text-decoration: none;
  border-radius: 50%;
}
.home-dyk-thumb-wrap:focus-visible {
  outline: 3px solid rgba(56, 189, 248, 0.85);
  outline-offset: 4px;
}
.home-dyk-thumb {
  display: block;
  width: 104px;
  height: 104px;
  border-radius: 50%;
  object-fit: cover;
  border: 4px solid #fff;
  box-shadow:
    0 8px 26px rgba(13, 52, 96, 0.28),
    0 0 0 1px rgba(13, 52, 96, 0.07);
}
.home-dyk-thumb--empty {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 104px;
  height: 104px;
  border-radius: 50%;
  border: 4px solid #fff;
  box-shadow:
    0 8px 26px rgba(13, 52, 96, 0.28),
    0 0 0 1px rgba(13, 52, 96, 0.07);
  background: linear-gradient(145deg, var(--ks-blue), var(--ks-bluedk));
  color: rgba(255, 255, 255, 0.94);
  font-size: 2rem;
}
.home-dyk-main {
  flex: 1;
  min-width: 0;
  padding-top: 0.12rem;
}
.home-dyk-object-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.75rem;
  margin-bottom: 0.6rem;
}
.home-dyk-object-name {
  font-size: 1.06rem;
  font-weight: 800;
  color: var(--ks-bluedk);
  text-decoration: none;
  letter-spacing: -0.025em;
  line-height: 1.22;
}
.home-dyk-object-name:hover {
  color: var(--ks-red);
}
.home-dyk-pill {
  font-size: var(--ks-t-2xs);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 0.24rem 0.58rem;
  border-radius: 999px;
  background: rgba(26, 95, 168, 0.09);
  color: var(--dyk-pill, var(--ks-blue));
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
@supports (background: color-mix(in srgb, #000 50%, #fff)) {
  .home-dyk-pill {
    background: color-mix(in srgb, var(--dyk-pill, var(--ks-blue)) 17%, #fff);
  }
}
.home-dyk-fact {
  font-size: clamp(0.92rem, 1.45vw, 1.06rem);
  line-height: 1.58;
  color: var(--ks-text);
  margin: 0;
  font-weight: 600;
  letter-spacing: -0.015em;
}
.home-dyk-toolbar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.7rem;
  padding: 0.7rem 1rem 1.1rem;
  background: linear-gradient(180deg, #f5f8fc, #fff);
  border-top: 1px solid rgba(13, 52, 96, 0.08);
}
.home-dyk-arr {
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 50%;
  border: 1.5px solid rgba(26, 95, 168, 0.22);
  background: #fff;
  color: var(--ks-bluedk);
  font-size: var(--ks-t-s);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 12px rgba(13, 52, 96, 0.08);
  transition: background 0.18s, border-color 0.18s, color 0.18s;
}
.home-dyk-arr:hover {
  background: var(--ks-blue);
  border-color: var(--ks-blue);
  color: #fff;
}
.home-dyk-dots {
  display: flex;
  align-items: center;
  gap: 0.38rem;
}
.home-dyk-dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  border: 0;
  padding: 0;
  margin: 0;
  cursor: pointer;
  background: rgba(26, 95, 168, 0.28);
  transition: width 0.2s ease, background 0.2s ease;
  appearance: none;
  -webkit-appearance: none;
}
.home-dyk-dot.is-on,
.home-dyk-dot.active {
  width: 1.45rem;
  background: var(--ks-blue);
}
.home-dyk-sdot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  border: none;
  padding: 0;
  cursor: pointer;
  background: rgba(26, 95, 168, 0.28);
  transition: transform 0.2s, background 0.2s;
}
.home-dyk-sdot.active {
  background: var(--ks-blue);
  transform: scale(1.35);
}
.home-dyk-count {
  font-size: var(--ks-t-xs);
  font-weight: 800;
  letter-spacing: 0.04em;
  color: var(--ks-soft);
  min-width: 2.4rem;
  text-align: center;
}
@media (max-width: 575.98px) {
  .home-dyk-slide {
    padding: 1.15rem 1.15rem 0.85rem;
  }
  .home-dyk-slide-inner {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  .home-dyk-object-line {
    justify-content: center;
  }
  .home-dyk-main {
    padding-top: 0;
  }
  .home-dyk-fact {
    text-align: center;
  }
  .home-dyk-toolbar {
    padding-bottom: 0.9rem;
  }
}

/* STATS BAND */
.stats-band {
  background: var(--grad-blue);
}
.kategoria-accent .rh-badge {
  background: color-mix(in srgb, var(--kategoria-accent) 50%, rgba(255, 255, 255, 0.1));
  border-color: color-mix(in srgb, var(--kategoria-accent) 38%, rgba(255, 255, 255, 0.4));
  color: #fff;
}
.kategoria-accent .stats-band {
  background: linear-gradient(
    135deg,
    color-mix(in srgb, var(--kategoria-accent) 76%, #071a30),
    color-mix(in srgb, var(--kategoria-accent) 48%, #143d6e)
  );
}
.stat-item {
  padding: 1.4rem 1rem;
  text-align: center;
}
.stat-num {
  font-size: 2rem;
  font-weight: 800;
  color: #fff;
  line-height: 1;
  margin-bottom: 0.22rem;
}
.stat-num--zero {
  color: rgba(255, 255, 255, 0.42);
}
.stat-label {
  font-size: var(--ks-t-2xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(255, 255, 255, 0.55);
}
.stat-icon {
  font-size: 1.1rem;
  color: rgba(255, 255, 255, 0.55);
  margin-bottom: 0.5rem;
}
.stat-kraj-cell {
  transition: background 0.18s ease;
}
.stat-kraj-cell:hover {
  background: rgba(255, 255, 255, 0.07);
  color: #fff;
}
.stat-kraj-cell:focus-visible {
  outline: 2px solid rgba(255, 255, 255, 0.45);
  outline-offset: -2px;
}



/*
 * Článok na detaile objektu.
 *
 * Bol zabalený v `.place-card` — teda v orámovanej karte s tieňom, a k jej
 * odsadeniu sa ešte pripočítalo odsadenie `.art-body`, takže text mal
 * dvojitý okraj. Hlavný obsah stránky pritom nie je widget: nemá dôvod
 * vyzerať ako bočný box a súťažiť s nimi o pozornosť.
 *
 * Teraz stojí priamo na bielej, bez rámu, a je väčší než ostatné texty —
 * doteraz bol s 0,92 rem menší než zaujímavosť „Vedeli ste“ vedľa, čo bolo
 * naopak.
 */
.place-article {
  background: none;
  border: 0;
  box-shadow: none;
  padding: 0;
}
/*
 * Hlavička „Článok“ po zrušení karty.
 *
 * `.place-page .place-card-hd` jej dáva odsadenie `!important` a spodnú linku —
 * oboje bolo počítané na kartu, ktorá ju obopínala. Bez karty bol nadpis
 * odsadený inak než text pod ním a linka s horským motívom visela vo vzduchu.
 */
.place-article .place-card-hd {
  padding: 0 0 0.55rem !important;
  margin: 0 0 1rem;
  border-bottom: 0;
}
/* Horský motív patril na linku hlavičky karty — tu nemá na čom stáť. */
.place-article .place-card-hd::before,
.place-article .place-card-hd::after {
  content: none;
}
/* `.art-body` odsadzuje karty v zoznamoch — tu by to bol druhý okraj. */
.place-article .art-body {
  padding: 0;
  font-size: clamp(1rem, 0.96rem + 0.28vw, 1.1rem);
  line-height: 1.8;
  /*
   * Bez obmedzenia šírky — text vypĺňa celý stĺpec.
   *
   * Predtým tu bolo `max-width: 72ch` kvôli pravidlu, že riadok nad ~75
   * znakov sa ťažko sleduje. Lenže stĺpec článku je širší, takže textu
   * zostávalo vpravo ~240 px prázdneho miesta — a keďže karta „Vedeli ste“
   * aj ostatné prvky nad ním idú cez celú šírku, vyzeralo to ako chyba
   * rozloženia, nie ako zámer.
   *
   * Ak sa riadky ukážu ako pridlhé, správna oprava je zúžiť **celý stĺpec**
   * (`.col-lg-8` v `page.tsx`), nie iba text v ňom.
   */
}
/*
 * Prvý odstavec ako perex — tmavší a o kúsok väčší. Klasický novinový postup,
 * ktorý dá článku začiatok bez toho, aby sme pridávali ďalší prvok.
 */
.place-article .ks-article-body > p:first-child,
.place-article .ks-article-body > div:first-child {
  font-size: 1.1em;
  line-height: 1.7;
  color: var(--ks-text);
}
.place-article .art-body > p:last-child,
.place-article .ks-article-body > p:last-child {
  margin-bottom: 0;
}

/*
 * Zóna „Kam ďalej“ — všetko, čo posiela návštevníka preč.
 *
 * Predtým to boli tri samostatné karty za sebou (Mapa okolia, tip podľa
 * počasia, V okolí) vnútri článkového stĺpca, takže chvost stránky bol
 * rozsypaný a nič nehovorilo, že článok sa skončil.
 *
 * Teraz je to **pás cez celú šírku** za dvojstĺpcovou časťou, oddelený
 * horským predelom — rovnaký jazyk ako kapitoly na úvodke. Odtieň `band-grey`
 * (#f2f5fa) sedí s prednou vrstvou predelu `sec-ridge--grey`, takže hory
 * na páse naozaj stoja a nevisia nad hranou.
 */
.kam-dalej-band {
  padding: 1.75rem 0 2.5rem;
}
/* SectionHeading s `airy` nemá spodný odstup — na páse ho potrebuje. */
.kam-dalej .home-air-hd {
  margin-bottom: 1.15rem;
}
/* Mapa a karty stoja na sivom páse, takže potrebujú biely podklad. */
.kam-dalej__mapa {
  margin-bottom: 1.25rem;
  background: #fff;
}
/*
 * Na celej šírke by tri karty v rade boli neúmerne veľké — a keďže vyše
 * štyri pätiny objektov nemajú vlastnú fotku, zväčšovali by sa hlavne
 * zástupné obrázky kategórií. Od veľkých displejov preto štyri v rade.
 */
@media (min-width: 1200px) {
  .kam-dalej .row.row-cols-md-3 > * {
    flex: 0 0 auto;
    width: 25%;
  }
}
@media (max-width: 575.98px) {
  .kam-dalej-band {
    padding: 1.25rem 0 1.75rem;
  }
}


/*
 * Modál „Kde to je“ — mapa s pinom objektu a odkazy na navigáciu.
 *
 * Preberá plášť z `.ks-mapmodal` (bočný panel sprava, rozostrené pozadie),
 * mení len obsah: namiesto karty miesta je tu mapa cez celú šírku panela
 * a pod ňou navigácia. Dva rôzne plášte na jednej stránke by boli mätúce.
 */
.ks-kdeje__card {
  padding: 0;
}
.ks-kdeje__name {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  padding: 1.1rem 3.2rem 0.9rem 1.25rem;
  font-size: 1.05rem;
  font-weight: 800;
  line-height: 1.3;
  color: var(--ks-text);
  border-bottom: 1px solid var(--ks-border);
}
.ks-kdeje__name i {
  color: var(--ks-blue);
  font-size: 0.95rem;
}
/* Mapa dostane zvyšok panela; navigácia sedí pod ňou na spodnej hrane. */
.ks-kdeje__mapa {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}
/* Základný obal má pevných 200 px — v paneli má mapa vyplniť zvyšok výšky. */
.ks-kdeje__mapa .sidebar-place-map-wrap {
  flex: 1 1 auto;
  height: auto;
  min-height: 220px;
  border-radius: 0;
}
.ks-kdeje__mapa .map-links {
  border-top: 1px solid var(--ks-border);
}


/*
 * Mapy nesmú preliezť ponad lepkavú navigáciu.
 *
 * Leaflet si vrstvy číslu je sám — dlaždice 200–700, ovládacie prvky až 1000 —
 * kým `.ks-mainnav` má `z-index: 100`. Pri rolovaní tak mapa prekryla hlavičku.
 *
 * `isolation: isolate` spraví z obalu vlastný kontext vrstvenia, takže sa
 * Leafletové čísla počítajú len vnútri neho a von sa nedostanú. Je to
 * bezpečnejšie než dvíhať hlavičku nad 1000 — modál (`z-index: 3000`) tým
 * zostáva nedotknutý.
 */
.sidebar-place-map-wrap,
.art-map-box,
.map-shell,
.explore-map-wrap,
.ks-sub-map {
  isolation: isolate;
}

/*
 * Odkazy na navigáciu pod malou mapou objektu.
 *
 * Boli to holé bootstrapovské `btn-outline-secondary` pod „Mapou okolia“ —
 * sivé, rovnako dôležité a pri mape s viacerými bodmi nebolo jasné, ku ktorému
 * sa navigácia vzťahuje. Teraz sedia pod mapou s vlastným pinom a majú
 * hierarchiu: navigovať je to, čo človek naozaj chce, zvyšok sú alternatívy.
 *
 * Lepia sa priamo na spodnú hranu mapy, preto hore bez polomeru a bez
 * vlastného rámu — kartu uzatvára `.sbox`, ktorý ich obopína.
 */
.map-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  padding: 0.6rem;
  background: #fff;
  border-top: 1px solid var(--ks-border);
}
.map-links__btn {
  flex: 1 1 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  min-height: 2.4rem;
  padding: 0.45rem 0.7rem;
  border: 1px solid var(--ks-border);
  border-radius: 10px;
  background: #fff;
  color: var(--ks-bluedk);
  font-size: var(--ks-t-xs);
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  transition: border-color 0.16s ease, background 0.16s ease, color 0.16s ease;
}
.map-links__btn i {
  font-size: 0.9rem;
  opacity: 0.75;
}
.map-links__btn:hover,
.map-links__btn:focus-visible {
  border-color: var(--ks-blue);
  color: var(--ks-blue);
  background: var(--ks-bluelt);
}
/* Navigovať je hlavná akcia — dostane celú šírku a plnú farbu. */
.map-links__btn--hlavny {
  flex: 1 1 100%;
  border-color: transparent;
  background: var(--grad-blue, var(--ks-blue));
  color: #fff;
}
.map-links__btn--hlavny i {
  opacity: 1;
}
.map-links__btn--hlavny:hover,
.map-links__btn--hlavny:focus-visible {
  border-color: transparent;
  background: var(--ks-bluedk);
  color: #fff;
}

/*
 * Tip podľa počasia pod detailom objektu — „dnes prší, skús radšej toto“.
 *
 * Vedome nenápadnejší než karta „Vedeli ste“: je to rada, nie obsah stránky.
 * Farba nesie význam (modrá = dážď, zelená = pekne), preto ju nesprevádza len
 * odtieň, ale aj ikona počasia a text — farba sama informáciu niesť nesmie.
 */
.pw-tip {
  /*
   * Pruh na hornej hrane zóny „Kam ďalej“, nie karta v rade.
   *
   * Rada podľa počasia je iného druhu než objekty pod ňou — je podmienená
   * a časová. Keby bola ďalšou kartou, splynula by s ponukou; keby bola
   * tichým riadkom, prehliadne sa. Preto pás cez celú šírku.
   *
   * Zámerne to nie je „breaking news“: na vzorke miest vychádza zlé počasie
   * asi v dvoch z piatich prípadov a poplašný pás, ktorý svieti tak často,
   * si po treťom objekte nikto nevšimne. Samotné varovanie „dnes prší“ má
   * bočný panel s počasím — sem patrí len alternatíva.
   */
  margin: 0 0 1rem;
  padding: 0.85rem 1rem 0.8rem;
  border-radius: calc(var(--ks-card-radius) - 4px);
  border: 0;
  border-left: 4px solid transparent;
}
.pw-tip--dazd {
  border-left-color: var(--ks-blue);
  background: linear-gradient(90deg, #eaf2fa 0%, #f6fafd 70%);
}
.pw-tip--pekne {
  border-left-color: #2d9a55;
  background: linear-gradient(90deg, #e9f7ee 0%, #f5fbf7 70%);
}
.pw-tip__head {
  margin: 0 0 0.7rem;
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--ks-text);
  text-wrap: pretty;
}
.pw-tip__head i {
  margin-right: 0.45rem;
}
.pw-tip--dazd .pw-tip__head i {
  color: var(--ks-blue);
}
.pw-tip--pekne .pw-tip__head i {
  color: #217a42;
}
.pw-tip__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.pw-tip__list a {
  display: inline-flex;
  align-items: baseline;
  gap: 0.45rem;
  padding: 0.42rem 0.75rem;
  border: 1px solid var(--ks-border);
  border-radius: 999px;
  background: #fff;
  text-decoration: none;
  color: var(--ks-text);
  transition: border-color 0.16s ease, box-shadow 0.16s ease;
}
.pw-tip__list a:hover,
.pw-tip__list a:focus-visible {
  border-color: var(--ks-blue);
  box-shadow: 0 4px 12px rgba(13, 52, 96, 0.08);
}
.pw-tip__list strong {
  font-size: var(--ks-t-sm);
  font-weight: 700;
}
.pw-tip__list em {
  font-style: normal;
  font-size: var(--ks-t-xs);
  color: var(--ks-soft);
}
.pw-tip__list span {
  font-size: var(--ks-t-xs);
  font-weight: 700;
  color: var(--ks-blue);
  white-space: nowrap;
}
.pw-tip__note {
  margin: 0.7rem 0 0;
  font-size: var(--ks-t-2xs);
  color: var(--ks-soft);
}
@media (max-width: 575.98px) {
  .pw-tip {
    padding: 0.85rem 0.9rem 0.75rem;
  }
  .pw-tip__list a {
    width: 100%;
  }
}

/* ARTICLE CARDS */
.art-card {
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid var(--ks-border);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
  transition: transform 0.2s, box-shadow 0.2s;
  /* Karty v mriežke musia byť v rámci riadku rovnako vysoké. Stĺpec `.col`
     sa naťahuje sám, ale odkaz vnútri bol `display: block`, takže si držal
     výšku obsahu — riadok potom vyzeral rozstrapkane. */
  display: flex;
  flex-direction: column;
  height: 100%;
  color: var(--ks-text);
}
/* Text vyplní zvyšok karty, takže krátky popis nechá prázdne miesto dole
   namiesto toho, aby kartu skrátil. */
.art-card > .art-body {
  flex: 1 1 auto;
}
.art-card img,
.art-card span img {
  flex: 0 0 auto;
}
.art-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.11);
}
.art-card img,
.art-card span img {
  width: 100%;
  height: 180px;
  object-fit: cover;
  transition: transform 0.4s;
  display: block;
}
.art-card:hover img,
.art-card:hover span img {
  transform: scale(1.06);
}
.art-body {
  padding: 1rem 1.1rem 1.15rem;
}
.art-cat {
  font-size: 0.6rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--ks-blue);
  margin-bottom: 0.3rem;
  display: flex;
  align-items: center;
  gap: 0.28rem;
}
.art-title {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--ks-text);
  line-height: 1.32;
  margin-bottom: 0.4rem;
}
.art-card:hover .art-title {
  color: var(--ks-blue);
}
.art-meta {
  font-size: var(--ks-t-2xs);
  color: var(--ks-soft);
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 0.55rem;
  flex-wrap: wrap;
}
.art-card-feat {
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid var(--ks-border);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
  transition: transform 0.2s, box-shadow 0.2s;
  display: block;
  color: var(--ks-text);
}
.art-card-feat:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.11);
}
.art-card-feat img {
  width: 100%;
  height: 240px;
  object-fit: cover;
  transition: transform 0.4s;
  display: block;
}
.art-card-feat:hover img {
  transform: scale(1.05);
}
.art-card-feat .art-body {
  padding: 1.1rem 1.2rem 1.3rem;
}
.art-card-feat .art-title {
  font-size: 1.1rem;
}

/* FILTER TABS */
.filter-tabs {
  display: flex;
  gap: 0.4rem;
  flex-wrap: wrap;
}
.ftab {
  background: #fff;
  border: 1.5px solid var(--ks-border);
  padding: 0.38rem 0.85rem;
  border-radius: 20px;
  font-size: var(--ks-t-xs);
  font-weight: 700;
  color: var(--ks-mid);
  cursor: pointer;
  font-family: var(--ks-font-text);
  transition: all 0.15s;
}
.ftab:hover {
  border-color: var(--ks-blue);
  color: var(--ks-blue);
}
.ftab.active {
  background: var(--grad-blue);
  color: #fff;
  border-color: transparent;
}

/* OKRESY LIST */
.okresy-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.okresy-list li {
  border-bottom: 1px solid var(--ks-border);
}
.okresy-list li:last-child {
  border-bottom: none;
}
.okresy-list a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.62rem 1rem;
  font-size: var(--ks-t-s);
  font-weight: 600;
  color: var(--ks-text);
  transition: background 0.15s;
}
.okresy-list a:hover {
  background: var(--ks-bluelt);
  color: var(--ks-blue);
}
.okresy-count {
  font-size: var(--ks-t-xs);
  font-weight: 700;
  color: var(--ks-soft);
}

#ke-map {
  width: 100%;
  height: 100%;
}

/* PHOTO SLIDER (clanok) */
.photo-slider {
  position: relative;
  background: #000;
  border-radius: 12px;
  overflow: hidden;
}
.ps-wrap {
  position: relative;
  height: 440px;
}
.ps-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.6s;
  pointer-events: none;
}
.ps-slide.active {
  opacity: 1;
  pointer-events: auto;
}
.ps-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ps-counter {
  position: absolute;
  top: 0.8rem;
  right: 0.9rem;
  background: rgba(0, 0, 0, 0.5);
  color: #fff;
  font-size: var(--ks-t-xs);
  font-weight: 700;
  padding: 0.25rem 0.65rem;
  border-radius: 20px;
  z-index: 5;
}
.ps-arrows {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 100%;
  display: flex;
  justify-content: space-between;
  padding: 0 0.75rem;
  z-index: 5;
  pointer-events: none;
}
.ps-arr {
  pointer-events: auto;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.18);
  border: none;
  color: #fff;
  font-size: var(--ks-t-sm);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s;
}
.ps-arr:hover {
  background: rgba(255, 255, 255, 0.35);
}
.ps-dots {
  position: absolute;
  bottom: 0.8rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 0.45rem;
  z-index: 5;
}
.psdot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.38);
  border: none;
  cursor: pointer;
  padding: 0;
  transition: all 0.2s;
}
.psdot.active {
  background: #fff;
  transform: scale(1.4);
}
.ps-thumbs {
  display: flex;
  gap: 0.5rem;
  padding: 0.6rem 0;
  overflow-x: auto;
  -ms-overflow-style: none;
  scrollbar-width: none;
}
.ps-thumbs::-webkit-scrollbar {
  display: none;
}
.ps-thumb {
  width: 72px;
  height: 52px;
  border-radius: 6px;
  overflow: hidden;
  border: 2px solid transparent;
  cursor: pointer;
  flex-shrink: 0;
  transition: border-color 0.2s;
}
.ps-thumb.active {
  border-color: var(--ks-blue);
}
.ps-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ARTICLE PAGE */
.art-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.32rem;
  font-size: var(--ks-t-2xs);
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.26rem 0.7rem;
  border-radius: 20px;
  color: #fff;
}
.art-h1 {
  font-size: clamp(1.5rem, 3vw, 2.1rem);
  font-weight: 800;
  color: var(--ks-text);
  letter-spacing: -0.025em;
  line-height: 1.15;
}
.art-meta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  font-size: var(--ks-t-xs);
  color: var(--ks-soft);
  font-weight: 600;
  align-items: center;
}
.art-meta-row i {
  font-size: 0.72rem;
  margin-right: 0.2rem;
}
.rating-val {
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--ks-text);
}
.stars-row {
  color: var(--ks-yellow);
  font-size: var(--ks-t-s);
}

/* INFO GRID */
.info-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: var(--ks-border);
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid var(--ks-border);
}
.info-cell {
  background: #fff;
  padding: 0.82rem 1rem;
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
}
.info-icon {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: var(--ks-bluelt);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ks-blue);
  font-size: 0.82rem;
  flex-shrink: 0;
  margin-top: 0.1rem;
}
.info-label {
  font-size: 0.6rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ks-soft);
  margin-bottom: 0.18rem;
}
.info-val {
  font-size: var(--ks-t-s);
  font-weight: 700;
  color: var(--ks-text);
  line-height: 1.3;
}

/* ARTICLE BODY */
.art-body {
  font-size: var(--ks-t-sm);
  line-height: 1.85;
  color: var(--ks-mid);
}
.art-body h2 {
  font-size: 1.2rem;
  font-weight: 800;
  color: var(--ks-text);
  margin: 1.8rem 0 0.8rem;
  letter-spacing: -0.02em;
}
.art-body h3 {
  font-size: 1rem;
  font-weight: 800;
  color: var(--ks-text);
  margin: 1.4rem 0 0.6rem;
}
.art-body p {
  margin-bottom: 1rem;
}
.place-updated-meta {
  margin: 1.35rem 0 0;
  padding-top: 0.85rem;
  border-top: 1px solid rgba(15, 40, 80, 0.08);
  font-size: var(--ks-t-xs);
  line-height: 1.4;
  color: #5f6b7a;
  letter-spacing: 0.01em;
}
.place-updated-meta time {
  font-variant-numeric: tabular-nums;
}
.art-highlight {
  background: var(--ks-bluelt);
  border-left: 3px solid var(--ks-blue);
  border-radius: 0 8px 8px 0;
  padding: 0.9rem 1.1rem;
  margin: 1.2rem 0;
  font-size: var(--ks-t-sm);
  color: var(--ks-bluedk);
  font-weight: 600;
}
.art-warning {
  background: #fffbeb;
  border-left: 3px solid var(--ks-yellow);
  border-radius: 0 8px 8px 0;
  padding: 0.9rem 1.1rem;
  margin: 1.2rem 0;
  font-size: var(--ks-t-sm);
  color: #92400e;
  font-weight: 600;
}
.art-warning i,
.art-highlight i {
  margin-right: 0.4rem;
}

/* TRAILS TABLE */
.trails-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--ks-t-s);
}
.trails-table th {
  background: var(--grad-blue);
  color: #fff;
  padding: 0.55rem 0.8rem;
  font-size: var(--ks-t-2xs);
  font-weight: 700;
  text-align: left;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.trails-table td {
  padding: 0.6rem 0.8rem;
  border-bottom: 1px solid var(--ks-border);
  vertical-align: middle;
}
.trails-table tr:last-child td {
  border-bottom: none;
}
.trails-table tr:hover td {
  background: var(--ks-bluelt);
}
.diff-easy {
  background: #dcfce7;
  color: #15803d;
  font-size: var(--ks-t-2xs);
  font-weight: 700;
  padding: 0.18rem 0.55rem;
  border-radius: 20px;
  white-space: nowrap;
}
.diff-med {
  background: #fef9c3;
  color: #854d0e;
  font-size: var(--ks-t-2xs);
  font-weight: 700;
  padding: 0.18rem 0.55rem;
  border-radius: 20px;
  white-space: nowrap;
}
.diff-hard {
  background: #fee2e2;
  color: #b91c1c;
  font-size: var(--ks-t-2xs);
  font-weight: 700;
  padding: 0.18rem 0.55rem;
  border-radius: 20px;
  white-space: nowrap;
}

/* Článok — panel pod hlavným hero sliderom (v tom istom pásme ako kategoria-accent) */
.clanok-hero-infobar {
  padding: 1rem 0 1.25rem;
  background: linear-gradient(
    to bottom,
    color-mix(in srgb, var(--kategoria-accent) 62%, #071a30),
    color-mix(in srgb, var(--kategoria-accent) 42%, #0f172a)
  );
}
.clanok-hero-infobar__inner {
  /*
   * Rovnaké bočné odsadenie ako `.place-body-inner`. S pevnými 1,25 rem
   * prečnievala mapa v „Základných informáciách“ na širokom displeji o 16 px
   * doprava oproti počasiu a ostatným boxom pod ňou.
   */
  padding-left: clamp(1.25rem, 4vw, 2.25rem);
  padding-right: clamp(1.25rem, 4vw, 2.25rem);
}

/* Článok — základné informácie + Kde to je (Bootstrap row ako pri kraji/sekcii podujatí) */
.clanok-zakladne-kde-row > .col-lg-8 > .clanok-infobar-card {
  box-shadow: none;
}
/* Vonkajší blok „Základné informácie“ bez pozadia; bunky majú gradient do bielej */
.clanok-zakladne-kde-row--under-slider > .col-lg-8 > .clanok-infobar-card {
  background: transparent !important;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow: none !important;
  border: none !important;
}
.clanok-infobar-card__title {
  font-size: var(--ks-t-s);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(255, 255, 255, 0.78);
}
.clanok-infobar-card__title .fa-circle-info {
  color: color-mix(in srgb, var(--kategoria-accent) 72%, #ffffff);
}
.clanok-hero-infobar .info-grid {
  gap: 0.55rem;
  background: transparent;
  border: none;
  border-radius: 0;
  overflow: visible;
}
.clanok-hero-infobar .info-cell {
  background: linear-gradient(
    165deg,
    rgba(255, 255, 255, 0.38) 0%,
    rgba(255, 255, 255, 0.9) 48%,
    #ffffff 100%
  );
  border-radius: 10px;
  box-shadow: 0 8px 26px rgba(3, 12, 28, 0.22);
}
.clanok-hero-infobar .info-label {
  color: var(--ks-soft);
}
.clanok-hero-infobar .info-val {
  color: var(--ks-text);
}
.clanok-hero-infobar .info-icon {
  background: color-mix(in srgb, var(--kategoria-accent) 14%, #ffffff);
  color: var(--kategoria-accent);
}
.clanok-zakladne-kde-row > .col-lg-4 .sbox {
  box-shadow: 0 4px 22px rgba(13, 52, 96, 0.065);
}
.clanok-zakladne-kde-row--under-slider > .col-lg-4 .sbox.clanok-hero-map-sbox {
  border: none;
  background: color-mix(in srgb, var(--ks-blue) 26%, rgba(15, 35, 70, 0.42));
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 14px 42px rgba(3, 12, 28, 0.38);
  min-height: 0;
}
.clanok-zakladne-kde-row--under-slider .clanok-kde-under-slider {
  min-height: 100%;
}
.clanok-zakladne-kde-row--under-slider .sidebar-place-map-wrap.clanok-hero-map-wrap {
  flex: 1 1 auto;
  min-height: 200px;
  height: auto;
  display: flex;
  flex-direction: column;
}
.clanok-zakladne-kde-row--under-slider .clanok-hero-map-wrap #sidebar-place-map {
  flex: 1 1 auto;
  width: 100%;
  min-height: 200px;
  height: 100%;
}
.clanok-zakladne-kde-row--under-slider .clanok-hero-map-empty {
  min-height: 200px;
}
.clanok-kde-under-slider {
  position: static;
}

/* ARTICLE MAP */
.sidebar-place-map-wrap {
  border-radius: 10px;
  overflow: hidden;
  height: 200px;
  min-height: 200px;
}
.sidebar-place-map-wrap.is-wide {
  height: 280px;
  min-height: 280px;
}
.sidebar-place-map-wrap > div {
  width: 100%;
  height: 100%;
  min-height: inherit;
}
.sidebar-place-map-wrap.clanok-hero-map-wrap > div {
  height: 220px;
  min-height: 220px;
}
.sidebar-place-map-wrap.is-wide > div {
  height: 280px;
  min-height: 280px;
}
#sidebar-place-map {
  width: 100%;
  height: 200px;
  min-height: 200px;
}

.art-map-box {
  /* vnorené v karte — o šírku odsadenia menší polomer */
  border-radius: calc(var(--ks-card-radius) - 6px);
  overflow: hidden;
  border: 1px solid var(--ks-border);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
  height: 280px;
}
#art-map {
  width: 100%;
  height: 100%;
}

/* FAQ */
.faq-item {
  border: 1px solid var(--ks-border);
  border-radius: 9px;
  overflow: hidden;
  margin-bottom: 0.5rem;
  background: #fff;
}
.faq-q {
  padding: 0.88rem 1.1rem;
  font-size: var(--ks-t-sm);
  font-weight: 700;
  color: var(--ks-text);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  transition: background 0.15s;
}
.faq-q:hover {
  background: var(--ks-bluelt);
}
.faq-q.open {
  background: var(--ks-bluelt);
  color: var(--ks-blue);
  border-bottom: 1px solid var(--ks-border);
}
.faq-icon {
  font-size: 0.72rem;
  color: var(--ks-soft);
  transition: transform 0.25s;
  flex-shrink: 0;
}
.faq-q.open .faq-icon {
  transform: rotate(180deg);
  color: var(--ks-blue);
}
.faq-a {
  display: none;
  padding: 0.9rem 1.1rem;
  font-size: var(--ks-t-s);
  color: var(--ks-mid);
  line-height: 1.75;
  background: #fff;
}
.faq-a.open {
  display: block;
}

/* TAGS */
.tag {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  padding: 0.3rem 0.75rem;
  border-radius: 20px;
  border: 1.5px solid var(--ks-border);
  font-size: var(--ks-t-xs);
  font-weight: 700;
  color: var(--ks-mid);
  transition: all 0.15s;
  cursor: pointer;
}
.tag:hover {
  border-color: var(--ks-blue);
  color: var(--ks-blue);
  background: var(--ks-bluelt);
}

/* RELATED CARDS */
.rel-card {
  background: #fff;
  border-radius: 9px;
  overflow: hidden;
  border: 1px solid var(--ks-border);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
  transition: transform 0.2s, box-shadow 0.2s;
  display: block;
  color: var(--ks-text);
}
.rel-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.1);
}
.rel-card img {
  width: 100%;
  height: 145px;
  object-fit: cover;
  transition: transform 0.35s;
  display: block;
}
.rel-card:hover img {
  transform: scale(1.05);
}
.rel-body {
  padding: 0.85rem 0.95rem 1rem;
}
.rel-cat {
  font-size: 0.58rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--ks-blue);
  margin-bottom: 0.22rem;
}
.rel-title {
  font-size: var(--ks-t-sm);
  font-weight: 700;
  color: var(--ks-text);
  line-height: 1.3;
}
.rel-card:hover .rel-title {
  color: var(--ks-blue);
}

/* SIDEBAR EXTRA */
.sbox-hd.yellow {
  background: linear-gradient(135deg, #c97d00, #f59e0b);
}

/* SHARE BUTTONS */
.share-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.38rem;
  padding: 0.55rem;
  border-radius: 8px;
  font-size: var(--ks-t-xs);
  font-weight: 700;
  border: none;
  cursor: pointer;
  transition: all 0.15s;
  font-family: var(--ks-font-text);
}
.share-fb {
  background: #1877f2;
  color: #fff;
}
.share-fb:hover {
  background: #1465d8;
}
.share-x {
  background: #000;
  color: #fff;
}
.share-x:hover {
  background: #333;
}
.share-copy {
  background: var(--ks-bluelt);
  color: var(--ks-blue);
  border: 1.5px solid var(--ks-border);
}
.share-copy:hover {
  background: var(--ks-blue);
  color: #fff;
  border-color: transparent;
}
.share-save {
  background: #fff;
  color: var(--ks-red);
  border: 1.5px solid var(--ks-border);
}
.share-save:hover {
  background: var(--ks-red);
  color: #fff;
  border-color: transparent;
}

/* RATING */
.rating-big {
  font-size: 2.8rem;
  font-weight: 800;
  color: var(--ks-text);
  line-height: 1;
}
.rating-stars {
  font-size: 1.1rem;
  color: var(--ks-yellow);
  margin: 0.18rem 0;
}
.rating-bar-label {
  font-size: var(--ks-t-xs);
  font-weight: 600;
  color: var(--ks-soft);
  min-width: 14px;
}
.rating-bar-track {
  flex: 1;
  height: 5px;
  background: #e5e7eb;
  border-radius: 3px;
  overflow: hidden;
}
.rating-bar-fill {
  height: 100%;
  border-radius: 3px;
  background: var(--ks-yellow);
  transition: width 0.5s;
}
.rating-bar-val {
  font-size: var(--ks-t-2xs);
  font-weight: 700;
  color: var(--ks-mid);
  min-width: 22px;
  text-align: right;
}

/* PRACTICAL */
.pract-item {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  padding: 0.6rem 0;
  border-bottom: 1px solid var(--ks-border);
  font-size: var(--ks-t-s);
}
.pract-item:last-child {
  border-bottom: none;
}
.pract-icon {
  width: 28px;
  height: 28px;
  border-radius: 7px;
  background: var(--ks-bluelt);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ks-blue);
  font-size: 0.75rem;
  flex-shrink: 0;
}
.pract-label {
  font-size: 0.6rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--ks-soft);
  margin-bottom: 0.12rem;
}
.pract-val {
  font-size: var(--ks-t-s);
  font-weight: 700;
  color: var(--ks-text);
}

/* ATTR SPEC (špecifikácie objektu) */
.attr-spec-box .attr-spec-group {
  margin-bottom: 1rem;
}
.attr-spec-box .attr-spec-group:last-child {
  margin-bottom: 0;
}
.attr-spec-group-name {
  font-size: var(--ks-t-2xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ks-soft);
  margin-bottom: 0.5rem;
  padding-bottom: 0.25rem;
  border-bottom: 1px solid var(--ks-border);
}
.attr-spec-item {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.55rem 0;
  border-bottom: 1px solid rgba(221, 228, 238, 0.6);
  font-size: var(--ks-t-s);
}
.attr-spec-item:last-child {
  border-bottom: none;
}
.attr-spec-label {
  font-size: var(--ks-t-2xs);
  font-weight: 600;
  color: var(--ks-soft);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.attr-spec-note {
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
  opacity: 0.85;
}
.attr-spec-val {
  font-size: var(--ks-t-sm);
  font-weight: 600;
  color: var(--ks-text);
  line-height: 1.35;
}

/* HTML atribúty: blokové značky (h1–h6, p…) musia byť v div.ks-attr-html, nie v span */
.ks-attr-html {
  font-weight: 400;
}
.pract-val.ks-attr-html,
.info-val.ks-attr-html {
  font-weight: 400;
}
.attr-spec-val.ks-attr-html {
  font-weight: 400;
}
.ks-attr-html h1 {
  font-size: 1.2rem;
  font-weight: 800;
  color: var(--ks-text);
  margin: 0.55rem 0 0.35rem;
  line-height: 1.25;
  letter-spacing: -0.02em;
}
.ks-attr-html h2 {
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--ks-text);
  margin: 0.5rem 0 0.3rem;
  line-height: 1.28;
  letter-spacing: -0.02em;
}
.ks-attr-html h3 {
  font-size: 1.02rem;
  font-weight: 800;
  color: var(--ks-text);
  margin: 0.45rem 0 0.28rem;
  line-height: 1.3;
}
.ks-attr-html h4 {
  font-size: 0.98rem;
  font-weight: 700;
  color: var(--ks-text);
  margin: 0.4rem 0 0.25rem;
  line-height: 1.32;
}
.ks-attr-html h5 {
  font-size: 0.94rem;
  font-weight: 700;
  color: var(--ks-text);
  margin: 0.35rem 0 0.22rem;
}
.ks-attr-html h6 {
  font-size: var(--ks-t-sm);
  font-weight: 700;
  color: var(--ks-soft);
  margin: 0.35rem 0 0.2rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.ks-attr-html p {
  margin: 0.2rem 0;
  font-weight: 400;
}
.ks-attr-html p:first-child {
  margin-top: 0;
}
.ks-attr-html p:last-child {
  margin-bottom: 0;
}
.info-val.ks-attr-html {
  font-weight: 600;
}
.info-val.ks-attr-html strong,
.info-val.ks-attr-html b {
  font-weight: 800;
}
.ks-attr-html ul,
.ks-attr-html ol {
  margin: 0.35rem 0;
  padding-left: 1.15rem;
}
.ks-attr-html li {
  margin: 0.15rem 0;
}
.ks-attr-html a {
  color: var(--ks-blue);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 0.12em;
}

/* VEDELI STE, ŽE (popis) */
/*
 * Zaujímavosť — „Vedeli ste“.
 *
 * Tmavá karta v modrej identite portálu. Článok je na bielej, takže tmavý blok
 * je jediné, čo sa v texte nedá prehliadnuť — a o to tu ide, je to ťahák stránky.
 *
 * Farba kategórie je **len na prúžku hore**, nikdy pod písmom: zadáva ju
 * redakcia a väčšina odtieňov by biely text nedotiahla na 4,5 : 1. Na navy
 * pozadí má biela 13 : 1, takže je to bezpečné pri každej kategórii.
 */
.vedeli-ste-box {
  position: relative;
  overflow: hidden;
  margin: 0 0 1.75rem;
  padding: 1.5rem 1.6rem 1.55rem;
  border-radius: var(--ks-card-radius);
  background:
    radial-gradient(ellipse 80% 120% at 88% 8%, rgba(255, 255, 255, 0.09), transparent 60%),
    linear-gradient(145deg, #0d3460 0%, #0a2647 55%, #071c35 100%);
  box-shadow: 0 14px 34px -18px rgba(13, 52, 96, 0.55);
}
/* Prúžok hore nesie farbu kategórie — jediné miesto, kde sa použije. */
.vedeli-ste-box::before {
  content: '';
  position: absolute;
  inset: 0 0 auto 0;
  height: 3px;
  background: linear-gradient(
    90deg,
    var(--kategoria-accent, var(--ks-blue)) 0%,
    color-mix(in srgb, var(--kategoria-accent, #1a5fa8) 35%, transparent) 70%,
    transparent 100%
  );
}
/*
 * Hrebeň hôr ako vodoznak pri spodnej hrane — rovnaká reč ako predely na
 * úvodke a vinetky na hlavičkách kariet. Maskou, nie glyfom z Font Awesome:
 * nezávisí to na verzii ikon a nerozbije sa to pri ich výmene.
 */
.vedeli-ste-box::after {
  content: '';
  position: absolute;
  right: 0;
  bottom: 0;
  width: 230px;
  height: 46px;
  background: linear-gradient(
    270deg,
    rgba(255, 255, 255, 0.11) 0%,
    rgba(255, 255, 255, 0.05) 55%,
    transparent 100%
  );
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 150 16' preserveAspectRatio='none'%3E%3Cpath d='M0 16 L14 9 L28 14 L46 7 L62 13 L80 8 L96 15 L118 11 L150 16 Z M34 16 L36.2 9.5 L38.4 16 Z M70 16 L72.4 8.6 L74.8 16 Z M104 16 L106 10.5 L108 16 Z' fill='%23000'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 150 16' preserveAspectRatio='none'%3E%3Cpath d='M0 16 L14 9 L28 14 L46 7 L62 13 L80 8 L96 15 L118 11 L150 16 Z M34 16 L36.2 9.5 L38.4 16 Z M70 16 L72.4 8.6 L74.8 16 Z M104 16 L106 10.5 L108 16 Z' fill='%23000'/%3E%3C/svg%3E");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 230px 46px;
  mask-size: 230px 46px;
  pointer-events: none;
}
.vedeli-ste-header {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0 0 0.7rem;
  padding: 0.28rem 0.7rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.1);
  font-size: var(--ks-t-2xs);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  /* Neutrálna biela, nie akcent — na navy by tmavá kategória zanikla. */
  color: rgba(255, 255, 255, 0.92);
}
.vedeli-ste-header i {
  font-size: 0.85rem;
}
.vedeli-ste-text {
  position: relative;
  margin: 0;
  font-size: clamp(1.08rem, 1.02rem + 0.5vw, 1.3rem);
  line-height: 1.62;
  font-weight: 450;
  color: #fff;
  text-wrap: pretty;
}
@media (max-width: 575.98px) {
  .vedeli-ste-box {
    padding: 1.25rem 1.2rem 1.3rem;
  }
  .vedeli-ste-box::after {
    width: 170px;
    height: 34px;
    -webkit-mask-size: 170px 34px;
    mask-size: 170px 34px;
  }
}

/* WEATHER */
.weather-day {
  text-align: center;
  flex: 1;
}
.wd-name {
  font-size: 0.6rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--ks-soft);
}
.wd-icon {
  font-size: 1.4rem;
  color: var(--ks-yellow);
  margin: 0.25rem 0;
}
.wd-temp {
  font-size: var(--ks-t-sm);
  font-weight: 800;
  color: var(--ks-text);
}
.wd-low {
  font-size: var(--ks-t-xs);
  color: var(--ks-soft);
}

/* NEARBY */
.nearby-item {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.6rem 0;
  border-bottom: 1px solid var(--ks-border);
  cursor: pointer;
  transition: background 0.12s;
}
.nearby-item:last-child {
  border-bottom: none;
}
.nearby-item:hover {
  background: var(--ks-bluelt);
  margin: 0 -0.6rem;
  padding: 0.6rem 0.6rem;
  border-radius: 6px;
}
.nearby-img {
  width: 46px;
  height: 34px;
  border-radius: 5px;
  overflow: hidden;
  flex-shrink: 0;
}
.nearby-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.nearby-name {
  font-size: var(--ks-t-s);
  font-weight: 700;
  color: var(--ks-text);
  line-height: 1.28;
}
.nearby-item:hover .nearby-name {
  color: var(--ks-blue);
}
.nearby-dist {
  font-size: var(--ks-t-2xs);
  color: var(--ks-soft);
  font-weight: 600;
}

@media (max-width: 767.98px) {
  .region-hero {
    height: 380px;
  }
  .region-hero--kraj {
    height: clamp(350px, 54vw, 420px);
    min-height: 348px;
  }
  .region-hero-body {
    padding-bottom: 1.75rem;
  }
  .region-hero--kraj .region-hero-body {
    padding-bottom: 1.85rem;
  }
  .rh-title {
    font-size: 1.8rem;
  }
  .rh-desc {
    display: none;
  }
  .region-hero--kraj .rh-desc {
    display: block;
    margin-top: 1.55rem;
    font-size: 0.98rem;
    line-height: 1.62;
  }
  .kategoria-accent .region-hero--kraj .rh-desc {
    margin-top: 1.15rem;
  }
  .stat-num {
    font-size: 1.5rem;
  }
  .map-box {
    height: 320px;
  }
  .ps-wrap {
    height: 300px;
  }
  .photo-slider--hero .ps-wrap {
    height: 100%;
  }
  .ps-thumbs {
    display: none;
  }
  .region-hero-thumb-strip .ps-thumbs {
    display: flex;
  }
  .info-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 575.98px) {
  .region-hero {
    height: 330px;
  }
  .region-hero--kraj {
    height: clamp(320px, 58vw, 380px);
    min-height: 318px;
  }
  .rh-title {
    font-size: 1.4rem;
  }
  .btn-rh-white,
  .btn-rh-red {
    padding: 0.48rem 0.85rem;
    font-size: var(--ks-t-xs);
  }
  .stats-band .row > div {
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  }
  .map-box {
    height: 260px;
  }
  .mpp {
    width: calc(100% - 1rem);
    left: 0.5rem;
    right: 0.5rem;
  }
  .ps-wrap {
    height: 240px;
  }
  .photo-slider--hero .ps-wrap {
    height: 100%;
  }
  .art-h1 {
    font-size: 1.4rem;
  }
}

/* —— PAGE PRELOADER (walking hiker) —— */
.ks-preloader {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f3f6fa;
  transition: opacity 0.45s ease, visibility 0.45s;
  overflow: hidden;
}
.ks-preloader.ks-preloader--hide {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.ks-preloader__stage {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.ks-preloader__hiker {
  display: block;
  width: clamp(7.25rem, 20vw, 9.5rem);
  height: auto;
  overflow: visible;
  filter: drop-shadow(0 10px 18px rgba(13, 52, 96, 0.12));
}
.ks-preloader__bob {
  transform-box: fill-box;
  transform-origin: center bottom;
  animation: ks-hiker-bob 1.35s ease-in-out infinite;
}
.ks-preloader__body {
  transform-box: fill-box;
  transform-origin: center bottom;
  animation: ks-hiker-sway 1.35s ease-in-out infinite;
}
.ks-preloader__pack {
  transform-box: fill-box;
  transform-origin: right center;
  animation: ks-hiker-pack 1.35s ease-in-out infinite;
}
.ks-preloader__arm {
  transform-box: fill-box;
  transform-origin: top center;
}
.ks-preloader__arm--front {
  animation: ks-hiker-arm-f 1.35s ease-in-out infinite;
}
.ks-preloader__arm--back {
  animation: ks-hiker-arm-b 1.35s ease-in-out infinite;
}
.ks-preloader__leg {
  transform-box: fill-box;
  transform-origin: top center;
}
.ks-preloader__leg--front {
  animation: ks-hiker-leg-f 1.35s ease-in-out infinite;
}
.ks-preloader__leg--back {
  animation: ks-hiker-leg-b 1.35s ease-in-out infinite;
}
@keyframes ks-hiker-bob {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-4px);
  }
}
@keyframes ks-hiker-sway {
  0%,
  100% {
    transform: rotate(-2.5deg);
  }
  50% {
    transform: rotate(2.5deg);
  }
}
@keyframes ks-hiker-pack {
  0%,
  100% {
    transform: rotate(-4deg);
  }
  50% {
    transform: rotate(3deg);
  }
}
@keyframes ks-hiker-arm-f {
  0%,
  100% {
    transform: rotate(20deg);
  }
  50% {
    transform: rotate(-24deg);
  }
}
@keyframes ks-hiker-arm-b {
  0%,
  100% {
    transform: rotate(-18deg);
  }
  50% {
    transform: rotate(22deg);
  }
}
@keyframes ks-hiker-leg-f {
  0%,
  100% {
    transform: rotate(-24deg);
  }
  50% {
    transform: rotate(20deg);
  }
}
@keyframes ks-hiker-leg-b {
  0%,
  100% {
    transform: rotate(20deg);
  }
  50% {
    transform: rotate(-24deg);
  }
}
.ks-preloader__ground {
  position: relative;
  width: 8.5rem;
  height: 2.1rem;
  margin-top: -0.35rem;
  overflow: hidden;
  mask-image: linear-gradient(90deg, transparent, #000 14%, #000 78%, transparent);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 14%, #000 78%, transparent);
}
.ks-preloader__tracks {
  display: flex;
  align-items: flex-end;
  gap: 0.55rem;
  width: max-content;
  padding: 0.15rem 0;
  animation: ks-hiker-tracks 2.7s linear infinite;
}
.ks-preloader__print {
  display: flex;
  color: rgba(13, 52, 96, 0.28);
  flex-shrink: 0;
  line-height: 0;
}
.ks-preloader__print--l {
  transform: translateY(0.35rem) rotate(-18deg);
}
.ks-preloader__print--r {
  transform: translateY(-0.15rem) rotate(18deg) scaleX(-1);
  color: rgba(13, 52, 96, 0.22);
}
@keyframes ks-hiker-tracks {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
@media (prefers-reduced-motion: reduce) {
  .ks-preloader__bob,
  .ks-preloader__body,
  .ks-preloader__pack,
  .ks-preloader__arm--front,
  .ks-preloader__arm--back,
  .ks-preloader__leg--front,
  .ks-preloader__leg--back,
  .ks-preloader__tracks {
    animation: none !important;
  }
}

/* Kalendár podujatí */
.ks-cal-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.85rem;
}
.ks-cal-modes {
  display: inline-flex;
  padding: 0.18rem;
  border-radius: 999px;
  background: #fff;
  border: 1px solid var(--ks-border);
  gap: 0.12rem;
}
.ks-cal-mode,
.ks-cal-navbtn,
.ks-cal-today,
.ks-cal-chip,
.ks-cal-mday,
.ks-cal-type,
.ks-cal-picked button {
  appearance: none;
  -webkit-appearance: none;
  font-family: inherit;
}
.ks-cal-mode {
  border: 0;
  background: transparent;
  color: var(--ks-soft);
  font-weight: 800;
  font-size: var(--ks-t-xs);
  padding: 0.38rem 0.85rem;
  border-radius: 999px;
  line-height: 1.2;
}
.ks-cal-mode.is-active {
  background: var(--ks-blue);
  color: #fff;
}
.ks-cal-nav {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  min-width: 0;
}
.ks-cal-navbtn {
  width: 34px;
  height: 34px;
  border-radius: 9px;
  border: 1px solid var(--ks-border);
  background: #fff;
  color: var(--ks-text);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  line-height: 1;
}
.ks-cal-navbtn:hover,
.ks-cal-today:hover {
  background: #fff;
  color: var(--ks-blue);
  border-color: var(--ks-blue);
}
.ks-cal-label {
  min-width: 0;
  text-align: center;
  font-weight: 800;
  font-size: var(--ks-t-sm);
  text-transform: capitalize;
  padding: 0 0.35rem;
}
.ks-cal-today {
  margin-left: 0.2rem;
  border: 1px solid var(--ks-border);
  background: #fff;
  border-radius: 999px;
  padding: 0.32rem 0.75rem;
  font-size: var(--ks-t-xs);
  font-weight: 800;
  color: var(--ks-blue);
  line-height: 1.2;
}
.ks-cal-week {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.45rem;
  margin-bottom: 0.95rem;
}
.ks-cal-chip {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.12rem;
  padding: 0.55rem 0.2rem 0.5rem;
  border: 1px solid var(--ks-border);
  border-radius: 12px;
  background: #fff;
  color: var(--ks-text);
  min-width: 0;
  line-height: 1.1;
}
.ks-cal-chip-dow {
  font-size: var(--ks-t-2xs);
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ks-soft);
}
.ks-cal-chip-num {
  font-size: 1.15rem;
  font-weight: 800;
}
.ks-cal-chip-meta {
  font-size: var(--ks-t-2xs);
  font-weight: 700;
  color: var(--ks-soft);
}
.ks-cal-chip.has-events .ks-cal-chip-meta {
  color: var(--ks-blue);
}
.ks-cal-chip.is-today {
  box-shadow: inset 0 0 0 2px var(--ks-blue);
}
.ks-cal-chip.is-picked,
.ks-cal-chip:hover {
  background: var(--ks-blue);
  border-color: var(--ks-blue);
  color: #fff;
}
.ks-cal-chip.is-picked .ks-cal-chip-dow,
.ks-cal-chip.is-picked .ks-cal-chip-meta,
.ks-cal-chip:hover .ks-cal-chip-dow,
.ks-cal-chip:hover .ks-cal-chip-meta {
  color: rgba(255, 255, 255, 0.82);
}
.ks-cal-month {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.28rem;
  margin-bottom: 0.95rem;
  padding: 0.75rem;
  background: #fff;
  border: 1px solid var(--ks-border);
  border-radius: 12px;
}
.ks-cal-dow {
  text-align: center;
  font-size: var(--ks-t-2xs);
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ks-soft);
  padding: 0.15rem 0 0.25rem;
}
.ks-cal-mday {
  position: relative;
  height: 38px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  font-weight: 800;
  color: var(--ks-text);
  font-size: var(--ks-t-s);
  padding: 0;
  line-height: 1;
}
.ks-cal-mday.is-out {
  color: #c5ced8;
}
.ks-cal-mday.has-events {
  background: color-mix(in srgb, var(--ks-blue) 12%, #fff);
}
.ks-cal-mday.is-today {
  box-shadow: inset 0 0 0 2px var(--ks-blue);
  color: var(--ks-blue);
}
.ks-cal-mday.is-picked,
.ks-cal-mday:hover {
  background: var(--ks-blue);
  color: #fff;
}
.ks-cal-mdot {
  position: absolute;
  left: 50%;
  bottom: 5px;
  width: 4px;
  height: 4px;
  margin-left: -2px;
  border-radius: 50%;
  background: currentColor;
}
.ev-list-box {
  background: #fff;
  border-radius: 10px;
  border: 1px solid var(--ks-border);
  overflow: hidden;
}
.ks-cal-picked {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.7rem 1rem;
  font-size: var(--ks-t-xs);
  font-weight: 800;
  color: var(--ks-blue);
  border-bottom: 1px solid var(--ks-border);
  background: #f8fbff;
}
.ks-cal-picked button {
  border: 0;
  background: transparent;
  color: var(--ks-soft);
  font-weight: 700;
  font-size: var(--ks-t-xs);
  padding: 0;
}
.ks-cal-empty {
  padding: 2.2rem 1.2rem;
  text-align: center;
  color: var(--ks-soft);
}
.ks-cal-empty i {
  display: block;
  font-size: 1.5rem;
  color: var(--ks-blue);
  margin-bottom: 0.55rem;
}
.ks-cal-empty p {
  margin-bottom: 0.75rem;
}
.ks-cal-type {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.7rem 1.05rem;
  border: 0;
  background: transparent;
  color: var(--ks-text);
  font-size: var(--ks-t-s);
  font-weight: 700;
  text-align: left;
}
.ks-cal-type:hover,
.ks-cal-type.is-active {
  background: var(--ks-bluelt);
  color: var(--ks-blue);
}
.ks-cal-type strong {
  font-size: var(--ks-t-xs);
  color: var(--ks-soft);
}
.event-hero {
  background: var(--ks-bluelt);
  padding: 1.6rem 0 1.8rem;
}
.event-meta-grid {
  display: grid;
  gap: 0.75rem;
}
.event-meta-item {
  background: #fff;
  border: 1px solid var(--ks-border);
  border-radius: 12px;
  padding: 0.85rem 1rem;
}
.event-meta-item span {
  display: block;
  font-size: var(--ks-t-2xs);
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--ks-soft);
  margin-bottom: 0.2rem;
}
@media (max-width: 700px) {
  .ks-cal-week {
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 0.28rem;
  }
  .ks-cal-chip {
    padding: 0.42rem 0.08rem 0.38rem;
    border-radius: 9px;
  }
  .ks-cal-chip-num {
    font-size: 0.95rem;
  }
  .ks-cal-chip-meta {
    display: none;
  }
  .ev-card {
    grid-template-columns: 46px minmax(0, 1fr);
    grid-template-areas:
      'date main'
      'date badge';
  }
  .ev-date { grid-area: date; }
  .ev-main { grid-area: main; }
  .ev-badge { grid-area: badge; justify-self: start; margin-top: 0.15rem; }
}

/* EXPLORE MAP (/mapa) — Airbnb-style split */
body:has(.explore-page) {
  overflow: hidden;
}
body:has(.explore-page) .ks-footer {
  display: none;
}
body:has(.explore-page) main {
  padding: 0;
}
.explore-page {
  --ks-site-chrome: 7.35rem;
  display: flex;
  flex-direction: column;
  height: calc(100vh - var(--ks-site-chrome));
  height: calc(100dvh - var(--ks-site-chrome));
  background: #fff;
  min-height: 0;
}
@media (min-width: 768px) {
  .explore-page {
    --ks-site-chrome: 11.1rem;
  }
}
.explore-bar {
  flex: none;
  z-index: 6;
  background: #fff;
  border-bottom: 1px solid var(--ks-border);
  padding: 0.85rem clamp(1.1rem, 3vw, 1.75rem) 0.95rem;
}
.explore-bar-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 0.7rem;
}
.explore-title {
  font-size: 1.28rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  color: #1c1917;
  margin: 0;
}
.explore-count {
  margin: 0;
  font-size: var(--ks-t-s);
  font-weight: 600;
  color: #78716c;
}
.explore-bar-filters {
  display: grid;
  grid-template-columns: minmax(16rem, 2.4fr) repeat(3, minmax(9.5rem, 1fr)) auto;
  gap: 0.65rem 0.9rem;
  align-items: end;
  width: 100%;
}
.explore-search {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  background: #fff;
  border: 1px solid var(--ks-border);
  border-radius: 999px;
  padding: 0.28rem 0.35rem 0.28rem 0.95rem;
  color: #78716c;
  min-width: 0;
  width: 100%;
}
.explore-search input {
  border: 0;
  outline: 0;
  flex: 1;
  min-width: 0;
  background: transparent;
  font-family: var(--ks-font-text);
  font-size: var(--ks-t-sm);
  font-weight: 600;
  color: #1c1917;
}
.explore-search-btn {
  flex: none;
  border: 0;
  border-radius: 999px;
  background: #c43c32;
  color: #fff;
  font-family: var(--ks-font-text);
  font-size: var(--ks-t-xs);
  font-weight: 800;
  letter-spacing: 0.02em;
  padding: 0.42rem 0.95rem;
  cursor: pointer;
}
.explore-search-btn:hover {
  background: #a8322a;
}
.explore-field {
  display: flex;
  flex-direction: column;
  gap: 0.22rem;
  font-size: var(--ks-t-2xs);
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #78716c;
  min-width: 0;
  width: 100%;
}
.explore-field select {
  border: 1px solid var(--ks-border);
  border-radius: 999px;
  background: #fff;
  padding: 0.48rem 0.85rem;
  font-size: var(--ks-t-sm);
  font-weight: 600;
  color: #1c1917;
  text-transform: none;
  letter-spacing: 0;
  width: 100%;
}
.explore-toggles {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem 0.95rem;
  padding: 0 0.1rem 0.4rem;
}
.explore-check {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0;
  font-size: var(--ks-t-s);
  font-weight: 700;
  color: #44403c;
  white-space: nowrap;
  cursor: pointer;
}
.explore-check input {
  accent-color: #1a5fa8;
}
@media (max-width: 1199.98px) {
  .explore-bar-filters {
    grid-template-columns: minmax(14rem, 1.6fr) repeat(3, minmax(8.5rem, 1fr));
  }
  .explore-toggles {
    grid-column: 1 / -1;
    padding-bottom: 0;
  }
}
.explore-split {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
}
.explore-list {
  flex: 0 0 min(42%, 34rem);
  min-width: 0;
  overflow: auto;
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--ks-border);
}
.explore-cards {
  padding: 0.9rem 1.15rem 1.6rem;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
.explore-empty {
  margin: 1.5rem 0.2rem;
  color: #78716c;
  font-weight: 600;
  font-size: var(--ks-t-sm);
  line-height: 1.5;
}
.explore-card {
  display: grid;
  grid-template-columns: 9.4rem minmax(0, 1fr);
  gap: 0.85rem;
  padding: 0.55rem;
  border-radius: 16px;
  background: #fff;
  border: 1px solid var(--ks-border);
  transition: box-shadow 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}
.explore-card:hover,
.explore-card.is-active {
  border-color: #c5d4e8;
  box-shadow: 0 10px 24px rgba(13, 52, 96, 0.08);
  transform: translateY(-1px);
}
.explore-card-media {
  display: block;
  height: 7.4rem;
  border-radius: 12px;
  overflow: hidden;
  background: #efe6d8;
}
.explore-card-media img,
.explore-card-ph {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.explore-card-ph {
  background: linear-gradient(145deg, #e8dcc8, #d7c4a8);
}
.explore-card-body {
  min-width: 0;
  padding: 0.15rem 0.2rem 0.1rem 0;
}
.explore-card-cat {
  font-size: var(--ks-t-2xs);
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 0.22rem;
}
.explore-card-title {
  display: block;
  font-size: 1rem;
  font-weight: 800;
  color: #1c1917;
  letter-spacing: -0.02em;
  line-height: 1.25;
  text-decoration: none;
}
.explore-card-title:hover {
  color: #1a5fa8;
}
.explore-card-meta {
  margin-top: 0.28rem;
  font-size: var(--ks-t-xs);
  font-weight: 600;
  color: #78716c;
}
.explore-card-desc {
  margin: 0.35rem 0 0;
  font-size: var(--ks-t-xs);
  line-height: 1.4;
  color: #57534e;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.explore-map-wrap {
  flex: 1 1 auto;
  min-width: 0;
  position: relative;
  background: #dce8f2;
}
.explore-map {
  position: absolute;
  inset: 0;
}
.explore-search-area {
  position: absolute;
  top: 1rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 500;
  border: 0;
  border-radius: 999px;
  background: #fff;
  color: #1c1917;
  font-weight: 800;
  font-size: 0.84rem;
  padding: 0.55rem 1.05rem;
  box-shadow: 0 8px 24px rgba(28, 18, 8, 0.18);
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  cursor: pointer;
}
.explore-map-busy {
  position: absolute;
  top: 1rem;
  right: 1rem;
  z-index: 500;
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid var(--ks-border);
  border-radius: 999px;
  padding: 0.35rem 0.75rem;
  font-size: var(--ks-t-xs);
  font-weight: 700;
  color: #57534e;
}
.explore-pin {
  background: none !important;
  border: none !important;
}
@media (max-width: 991.98px) {
  .explore-bar-filters {
    grid-template-columns: 1fr 1fr;
  }
  .explore-search,
  .explore-toggles {
    grid-column: 1 / -1;
  }
  .explore-split {
    flex-direction: column;
  }
  .explore-map-wrap {
    flex: none;
    height: min(42vh, 20rem);
  }
  .explore-list {
    flex: 1 1 auto;
    min-height: 0;
    border-right: 0;
    border-top: 1px solid var(--ks-border);
  }
  .explore-card {
    grid-template-columns: 6.6rem minmax(0, 1fr);
    gap: 0.7rem;
  }
  .explore-card-media {
    height: 5.6rem;
  }
}
@media (max-width: 575.98px) {
  .explore-bar {
    padding: 0.55rem 0.95rem 0.6rem;
  }
  .explore-bar-head {
    margin-bottom: 0.4rem;
    gap: 0.35rem;
  }
  .explore-title {
    font-size: 1.08rem;
  }
  .explore-count {
    font-size: var(--ks-t-xs);
  }
  .explore-bar-filters {
    gap: 0.4rem 0.55rem;
  }
  .explore-search {
    padding: 0.2rem 0.28rem 0.2rem 0.75rem;
  }
  .explore-field select {
    padding: 0.4rem 0.7rem;
  }
  .explore-toggles {
    gap: 0.35rem 0.7rem;
    padding: 0;
  }
  .explore-check {
    font-size: var(--ks-t-xs);
  }
  .explore-map-wrap {
    height: min(28vh, 13.5rem);
  }
}

/* ============================================================================
   HLAVIČKY SEKCIÍ NA DETAILE OBJEKTU — moderný variant
   Nahrádza plné tmavé pruhy cez celú kartu. Namiesto nich: názov v tmavom
   texte, ikona v jemnom farebnom štvorčeku a vlasová linka s krátkym
   akcentovým úsekom v farbe kategórie.
   Návrat na pôvodný vzhľad: zmazať tento blok (od tohto komentára po koniec
   súboru), alebo obnoviť zálohu z data/backup-css/.
   ========================================================================= */

.place-page .sbox-hd,
.place-page .sbox-hd.blue,
.place-page .sbox-hd.red,
.place-page .sbox-hd.yellow,
.place-page .place-card-hd,
.place-page .clanok-infobar-card__title {
  position: relative;
  background: none;
  color: #0f2744;
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  text-transform: none;
  border-radius: 0;
}

/* Karty v hlavnom stĺpci majú vlastný padding — hlavičku vrátime do toku. */
.place-page .place-card-hd,

/* Bočný panel: hlavička je súčasťou boxu, potrebuje vlastné odsadenie. */
.place-page .sbox-hd,
.place-page .sbox-hd.blue,
.place-page .sbox-hd.red,
.place-page .sbox-hd.yellow {
  margin: 0 1.05rem;
  padding: 1rem 0 1rem;
}

.place-page .clanok-infobar-card__title {
  margin: 0 0 0.9rem;
  padding: 0 0 1rem;
}

/* Malý horský motív vľavo pod názvom — dva hrebene a tri smreky, rovnaká reč
   ako predely na úvodke. Zámerne sa neopakuje: je to vinetka, nie ozdobný pás. */
.place-page .sbox-hd::before,
.place-page .place-card-hd::before,
.place-page .clanok-infobar-card__title::before,
.place-page .sbox-hd::after,
.place-page .place-card-hd::after,
.place-page .clanok-infobar-card__title::after {
  content: '';
  position: absolute;
  right: 0;
  bottom: 0;
  pointer-events: none;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: right bottom;
  mask-position: right bottom;
}

/* zadný hrebeň — bledší a vyšší */
.place-page .sbox-hd::before,
.place-page .place-card-hd::before,
.place-page .clanok-infobar-card__title::before {
  width: 170px;
  height: 16px;
  background: linear-gradient(
    270deg,
    color-mix(in srgb, var(--kategoria-accent, #1a5fa8) 26%, transparent) 0%,
    color-mix(in srgb, var(--kategoria-accent, #1a5fa8) 10%, transparent) 60%,
    transparent 100%
  );
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 170 16' preserveAspectRatio='xMaxYMax meet'%3E%3Cpath d='M0 16 L20 5 L38 12 L58 2 L78 11 L96 6 L114 14 L134 9 L152 15 L170 16 Z' fill='%23000'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 170 16' preserveAspectRatio='xMaxYMax meet'%3E%3Cpath d='M0 16 L20 5 L38 12 L58 2 L78 11 L96 6 L114 14 L134 9 L152 15 L170 16 Z' fill='%23000'/%3E%3C/svg%3E");
  -webkit-mask-size: 170px 16px;
  mask-size: 170px 16px;
}

/* predný hrebeň so smrekmi */
.place-page .sbox-hd::after,
.place-page .place-card-hd::after,
.place-page .clanok-infobar-card__title::after {
  width: 150px;
  height: 16px;
  background: linear-gradient(
    270deg,
    color-mix(in srgb, var(--kategoria-accent, #1a5fa8) 78%, transparent) 0%,
    color-mix(in srgb, var(--kategoria-accent, #1a5fa8) 34%, transparent) 55%,
    transparent 100%
  );
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 150 16' preserveAspectRatio='xMaxYMax meet'%3E%3Cpath d='M0 16 L14 9 L28 14 L46 7 L62 13 L80 8 L96 15 L118 11 L150 16 Z M34 16 L36.2 9.5 L38.4 16 Z M70 16 L72.4 8.6 L74.8 16 Z M104 16 L106 10.5 L108 16 Z' fill='%23000'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 150 16' preserveAspectRatio='xMaxYMax meet'%3E%3Cpath d='M0 16 L14 9 L28 14 L46 7 L62 13 L80 8 L96 15 L118 11 L150 16 Z M34 16 L36.2 9.5 L38.4 16 Z M70 16 L72.4 8.6 L74.8 16 Z M104 16 L106 10.5 L108 16 Z' fill='%23000'/%3E%3C/svg%3E");
  -webkit-mask-size: 150px 16px;
  mask-size: 150px 16px;
}

/* Vlasová linka drží štruktúru cez celú šírku, hory na nej „stoja“. */
.place-page .sbox-hd,
.place-page .sbox-hd.blue,
.place-page .sbox-hd.red,
.place-page .sbox-hd.yellow,
.place-page .place-card-hd,
.place-page .clanok-infobar-card__title {
  border-bottom: 1px solid var(--ks-border);
}

/* Ikona ako jemný farebný štvorček namiesto bieleho glyfu na tmavom páse. */
.place-page .sbox-hd i,
.place-page .place-card-hd i,
.place-page .clanok-infobar-card__title .fa-circle-info {
  flex: 0 0 auto;
  width: 1.85rem;
  height: 1.85rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  font-size: 0.82rem;
  color: var(--kategoria-accent, #1a5fa8);
  background: color-mix(in srgb, var(--kategoria-accent, #1a5fa8) 12%, #ffffff);
  margin: 0;
}

/* Zaujímavosť ostáva jantárová — kategóriová farba by tam pôsobila cudzo. */

/* Karty: zjednotený rádius a mäkší tieň, nech ladia s novými hlavičkami. */
.place-page .sbox {
  border-radius: var(--ks-card-radius);
  box-shadow: var(--ks-card-shadow);
}

@media (max-width: 575.98px) {
  .place-page .sbox-hd,
  .place-page .place-card-hd,
    .place-page .clanok-infobar-card__title {
    font-size: var(--ks-t-sm);
  }
}

/* ============================================================================
   VYHĽADÁVAČ — karta priameho zásahu
   Zobrazí sa, keď dopyt jednoznačne mieri na jeden objekt. Ostatné výsledky
   pod ňou sú už len súvisiace tipy.
   ========================================================================= */
.ks-chat-direct {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  margin: 0.85rem 0 0.4rem;
  padding: 0.7rem 0.85rem;
  border-radius: 14px;
  border: 1px solid color-mix(in srgb, var(--ks-blue) 28%, #dde4ee);
  background: linear-gradient(135deg, #f7fbff 0%, #eef5fd 100%);
  box-shadow: 0 4px 14px rgba(13, 52, 96, 0.07);
  text-decoration: none;
  color: inherit;
  transition: box-shadow 0.18s, transform 0.18s, border-color 0.18s;
}
.ks-chat-direct:hover {
  border-color: var(--ks-blue);
  box-shadow: 0 8px 22px rgba(13, 52, 96, 0.13);
  transform: translateY(-1px);
}
.ks-chat-direct-img {
  flex: 0 0 auto;
  width: 104px;
  height: 78px;
  border-radius: 10px;
  overflow: hidden;
  background: #e6eef5;
}
.ks-chat-direct-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ks-chat-direct-body {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}
.ks-chat-direct-eyebrow {
  font-size: var(--ks-t-2xs);
  font-weight: 800;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--ks-blue);
}
.ks-chat-direct-body strong {
  font-size: 1.02rem;
  font-weight: 700;
  line-height: 1.25;
  color: #0f2744;
}
.ks-chat-direct-body em {
  font-style: normal;
  font-size: var(--ks-t-s);
  color: var(--ks-soft, #64748b);
}
.ks-chat-direct-go {
  flex: 0 0 auto;
  width: 2.1rem;
  height: 2.1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--ks-blue);
  color: #fff;
  font-size: var(--ks-t-s);
}
@media (max-width: 575.98px) {
  .ks-chat-direct-img {
    width: 76px;
    height: 60px;
  }
  .ks-chat-direct-body strong {
    font-size: 0.95rem;
  }
}

/* ============================================================================
   RESPONZÍVNA TYPOGRAFIA DROBNÝCH POPISIEK
   Audit (13 stránok × 6 šírok od 320 do 1280 px) ukázal, že všetky drobné
   popisky mali pevnú veľkosť — na 320px telefóne rovnakú ako na 1280px monitore,
   a časť pod 10 px. Tu sa im nastavuje spodná hranica ~11 px a plynulý rast.
   Návrat: zmazať tento blok, alebo obnoviť zálohu z data/backup-css/.
   ========================================================================= */

/* dátumová dlaždica podujatia — mesiac mal 8,3 px */
.ev-mm {
  font-size: clamp(0.66rem, 0.6rem + 0.25vw, 0.74rem);
}
/* štítok vstupného (zadarmo / platené) — 9 px */
.ev-badge {
  font-size: clamp(0.68rem, 0.62rem + 0.25vw, 0.75rem);
}
/* typ podujatia — 9,3 px */
.ev-type,
.ev-type.mb-2 {
  font-size: clamp(0.7rem, 0.64rem + 0.25vw, 0.77rem);
}
/* kategória na karte článku a popiska atribútu — 9,6 px */
.art-cat,
.info-label {
  font-size: clamp(0.7rem, 0.64rem + 0.25vw, 0.78rem);
}
/* drobné pilulky na úvodke — 9,9 px */
.home-dyk-pill,
.home-feat-when-m,
.s-cat {
  font-size: clamp(0.7rem, 0.65rem + 0.22vw, 0.78rem);
}
/* nadradený popisok sekcie — 10,4 px */
.sec-eye {
  font-size: clamp(0.72rem, 0.66rem + 0.25vw, 0.8rem);
}
/* ostatné popisky tesne pod hranicou čitateľnosti */
.rh-badge,
.map-filter-btn-count,
.ev-place,
.explore-card-cat,
.stat-label,
.attr-spec-label {
  font-size: clamp(0.72rem, 0.67rem + 0.22vw, 0.8rem);
}
/* nadpisy stĺpcov v pätičke boli 10,9 px */
.site-footer h2,
footer h2 {
  font-size: clamp(0.74rem, 0.68rem + 0.25vw, 0.82rem);
}

/* Dlhé názvy bez medzier nesmú vytiecť z karty (na 320–414 px orezávalo). */
.art-title,
.ev-name,
.ks-chat-hit strong,
.place-card-hd,
.sbox-hd {
  overflow-wrap: anywhere;
}

/* Dorovnanie posledných popisiek, ktoré predchádzajúci blok netrafil
   (sú mimo .place-page alebo majú vlastný špecifickejší selektor). */
.ev-mm {
  font-size: clamp(0.7rem, 0.64rem + 0.25vw, 0.78rem);
}
.ev-badge {
  font-size: clamp(0.7rem, 0.64rem + 0.25vw, 0.78rem);
}
.sbox-hd,
.sbox-hd.blue,
.sbox-hd.red,
.sbox-hd.yellow {
  font-size: clamp(0.72rem, 0.66rem + 0.25vw, 0.8rem);
}
.ft-col h2 {
  font-size: clamp(0.74rem, 0.68rem + 0.25vw, 0.82rem);
}
.discover-filters label {
  font-size: clamp(0.72rem, 0.66rem + 0.25vw, 0.8rem);
}
.home-intro .kraje-home-card__kraj {
  font-size: clamp(0.72rem, 0.66rem + 0.28vw, 0.8rem);
}

/* MEDZERY — karty mali padding napevno 20 px od 320 až po 1280 px.
   Na mobile ostáva rovnaký, na širších displejoch karta dýcha. */
.place-card {
  padding: clamp(1.2rem, 1.05rem + 0.55vw, 1.7rem) clamp(1.25rem, 1.1rem + 0.55vw, 1.75rem)
    clamp(1.3rem, 1.15rem + 0.55vw, 1.8rem);
}
.place-page .place-card-hd,
.place-page .sbox .p-3 {
  padding: clamp(1rem, 0.9rem + 0.45vw, 1.4rem) !important;
}

/* Posledné dve popisky pod hranicou: „Termín“ na detaile podujatia (9,9 px)
   a „Kraj“ vo filtri mapy (10,4 px). */
.event-meta-item > span {
  font-size: clamp(0.72rem, 0.66rem + 0.25vw, 0.8rem);
}
.explore-field > span {
  font-size: clamp(0.72rem, 0.66rem + 0.25vw, 0.8rem);
}

/* ============================================================================
   HERO NA ÚVODKE — nadpis sa nesmie schovať pod hlavičku
   .discover-band má overflow:hidden a mal min-height:0, takže sa vo flex stĺpci
   mohol zmenšiť pod výšku vlastného obsahu. Obsah je centrovaný, takže sa
   odrezal vrch — nadpis zmizol pod navigáciou (typicky na notebooku ~860 px
   a po rozbalení filtrov). Necháme ho zmenšovať sa, ale nie pod obsah.
   ========================================================================= */
.home-intro .discover-band {
  flex: 3 1 auto;
  min-height: min-content;
}

/* ============================================================================
   ÚVODKA — karty krajov musia byť nad horským predelom
   .sec-ridge--hero má z-index 9 a jeho SVG presahuje pod pätu predelu (~50 px).
   Na užších displejoch tým prekrývalo vrch prvého radu kariet — odrezané ikony
   aj horné rohy. Dekorácia nikdy nesmie prekryť obsah.
   ========================================================================= */
/* Poradie vrstiev musí byť: pozadie pásu → hory → karty.
   Pozor na stacking context: .ks-container má z-index 1, takže z-index nastavený
   na samotnom riadku sa počíta len vnútri neho. Dvíhať treba práve ten kontajner —
   pozadie pásu tak zostane pod horami a karty nad nimi. */
.home-intro .home-kraje-band > .ks-container,
.home-intro #home-kraje-grid > .ks-container {
  position: relative;
  z-index: 10;
}

/* ============================================================================
   DETAIL OBJEKTU — prechod od fotogalérie k obsahu
   Galéria ostáva na bielej. Prechod je až POD ňou: obsahová časť začína jemným
   chladným pásom, ktorý sa nadol vytráca do bielej, takže Základné informácie
   a mapa nezačínajú ostrým zlomom.
   ========================================================================= */
.place-page .clanok-hero-infobar {
  /* Nábeh z bielej, aby pás pod galériou nezačínal viditeľnou hranou. */
  background:
    linear-gradient(180deg, #fff 0%, #e9eff7 26%, #f2f6fb 62%, #fff 100%) no-repeat top
      / 100% 118px,
    #fff;
  padding-top: 1.9rem;
}

/* ============================================================================
   POČASIE NA DETAILE OBJEKTU
   ========================================================================= */
.pw-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.pw-day {
  display: grid;
  grid-template-columns: 4rem 1.9rem minmax(0, 1fr) 4.1rem;
  align-items: center;
  gap: 0.45rem;
  /* Odsadenie dovnútra riadku, nie na zozname — zvýraznený deň tak môže mať
     pozadie po celej šírke karty a pritom lícovať s ostatnými riadkami. */
  padding: 0.52rem 0.55rem;
  margin: 0 -0.55rem;
  border-radius: 10px;
  font-size: var(--ks-t-sm);
  line-height: 1.3;
}
/* Deliaca linka ako pseudo-prvok, aby ju pozadie zvýrazneného dňa neprerezávalo. */
.pw-day + .pw-day {
  box-shadow: inset 0 1px 0 var(--ks-border);
}
.pw-when {
  font-weight: 700;
  color: var(--ks-text);
  white-space: nowrap;
}
.pw-icon {
  text-align: center;
  font-size: 1.02rem;
  color: #64748b;
}
.pw-desc {
  /* Widget má teplý podklad (#fcf3e9), na ktorom mal --ks-soft len 4,41. */
  color: #5f6b7a;
  min-width: 0;
}
.pw-desc em {
  font-style: normal;
  color: #b45309;
  white-space: nowrap;
}
.pw-temp {
  white-space: nowrap;
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.pw-temp strong {
  font-weight: 800;
  color: var(--ks-text);
}
.pw-temp em {
  font-style: normal;
  margin-left: 0.28rem;
  /* Nočná teplota je plnohodnotný údaj, nie dekorácia — #94a3b8 mal na bielej
     pomer 2,56 a na teplom podklade widgetu 2,33 (WCAG 2.1 AA žiada 4,5). */
  color: #5f6b7a;
}

/* Farba ikony podľa počasia — čitateľnejšie než jednotný odtieň. */
.pw-icon .fa-sun {
  color: #e0a10a;
}
.pw-icon .fa-cloud-sun,
.pw-icon .fa-cloud-sun-rain {
  color: #7c9bb8;
}
.pw-icon .fa-cloud {
  color: #94a3b8;
}
.pw-icon .fa-cloud-rain,
.pw-icon .fa-cloud-showers-heavy,
.pw-icon .fa-cloud-bolt {
  color: #3f7cb8;
}
.pw-icon .fa-snowflake {
  color: #7dd3fc;
}
.pw-icon .fa-smog {
  color: #a8b3c0;
}

/* Deň, ktorý sa na výlet von nehodí — celý riadok, nie blednúci pruh. */
.pw-day.is-bad {
  background: rgba(217, 119, 6, 0.09);
}
/* Linka nad zvýrazneným dňom by ležala na jeho podklade — tú vynecháme.
   Linka pod ním (teda nad ďalším riadkom) ostáva, aby rytmus nechýbal. */
.pw-day.is-bad {
  box-shadow: none;
}
.pw-day.is-bad .pw-icon i {
  color: #c2410c;
}
.pw-day.is-bad .pw-when {
  color: #7c2d12;
}

.pw-note {
  margin: 0.75rem 0 0;
  padding: 0.55rem 0.7rem;
  border-radius: 10px;
  background: rgba(217, 119, 6, 0.1);
  color: #7c2d12;
  font-size: var(--ks-t-s);
  line-height: 1.4;
}
.pw-note i {
  margin-right: 0.35rem;
}
.pw-src {
  margin: 0.65rem 0 0;
  font-size: var(--ks-t-xs);
  color: #5f6b7a;
}

/* Hláška pri odmietnutej alebo nedostupnej polohe („Čo je pri mne“). */
.nearme-hint {
  display: inline-block;
  margin-left: 0.5rem;
  font-size: var(--ks-t-xs);
  color: #b45309;
}

/* Atribúcia počasia — povinná podľa CC BY 4.0, ale má byť nenápadná. */
.pw-src a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.pw-src a:hover {
  color: var(--ks-blue);
}


/* ══ Nočná obloha na úvodke ══════════════════════════════════════════════════
   Zapína sa triedou .sky-night na .discover-band (komponent SkyScene podľa
   miestneho času návštevníka, 20:00–6:00). Hviezdy sú zapečené SVG s pevným
   rozmiestnením, Mesiac kreslí SkyScene podľa skutočnej fázy.
   Návrat: zmazať tento blok po značku „koniec nočnej oblohy".
   ═════════════════════════════════════════════════════════════════════════ */
.discover-band {
  transition: background 1.2s ease;
}
.discover-band.sky-night {
  background:
    radial-gradient(ellipse 120% 55% at 50% 118%, rgba(86, 128, 190, 0.28), transparent 60%),
    linear-gradient(180deg, #030713 0%, #070f24 24%, #0d1b3a 52%, #16305c 78%, #29527f 100%);
}
/* Slnko a oblaky patria dňu. Animácia sky-sun má fill-mode forwards, takže
   samotné opacity:0 by neprebila — treba jej vypnúť aj animáciu. */
.discover-band.sky-night::after {
  animation: none;
  opacity: 0;
  transition: opacity 1.2s ease;
}
.discover-band.sky-night::before {
  opacity: 0.07;
  filter: blur(9px);
}

.ks-sky {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}
.ks-sky-stars {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 78%;
  background-repeat: repeat;
  /* Hviezdy nesmú svietiť cez hory na obzore. */
  -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 62%, transparent 100%);
  mask-image: linear-gradient(180deg, #000 0%, #000 62%, transparent 100%);
}
.ks-sky-stars--far {
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%201000%20520%27%3E%3Cg%20fill%3D%27%23ffffff%27%3E%3Ccircle%20cx%3D%27882.0%27%20cy%3D%27131.8%27%20r%3D%270.69%27%20opacity%3D%270.66%27%2F%3E%3Ccircle%20cx%3D%27716.5%27%20cy%3D%27294.8%27%20r%3D%271.05%27%20opacity%3D%270.39%27%2F%3E%3Ccircle%20cx%3D%27187.3%27%20cy%3D%2767.2%27%20r%3D%270.98%27%20opacity%3D%270.71%27%2F%3E%3Ccircle%20cx%3D%27364.6%27%20cy%3D%2747.9%27%20r%3D%271.01%27%20opacity%3D%270.46%27%2F%3E%3Ccircle%20cx%3D%27141.3%27%20cy%3D%27143.1%27%20r%3D%270.72%27%20opacity%3D%270.55%27%2F%3E%3Ccircle%20cx%3D%27789.5%27%20cy%3D%27349.9%27%20r%3D%271.11%27%20opacity%3D%270.63%27%2F%3E%3Ccircle%20cx%3D%27566.9%27%20cy%3D%2788.2%27%20r%3D%270.95%27%20opacity%3D%270.62%27%2F%3E%3Ccircle%20cx%3D%27977.7%27%20cy%3D%274.2%27%20r%3D%270.81%27%20opacity%3D%270.65%27%2F%3E%3Ccircle%20cx%3D%27258.8%27%20cy%3D%27514.1%27%20r%3D%270.72%27%20opacity%3D%270.56%27%2F%3E%3Ccircle%20cx%3D%27502.7%27%20cy%3D%27174.0%27%20r%3D%271.12%27%20opacity%3D%270.56%27%2F%3E%3Ccircle%20cx%3D%27677.1%27%20cy%3D%27315.5%27%20r%3D%271.09%27%20opacity%3D%270.75%27%2F%3E%3Ccircle%20cx%3D%27809.2%27%20cy%3D%27347.9%27%20r%3D%270.62%27%20opacity%3D%270.72%27%2F%3E%3Ccircle%20cx%3D%27777.6%27%20cy%3D%27395.6%27%20r%3D%270.88%27%20opacity%3D%270.61%27%2F%3E%3Ccircle%20cx%3D%27231.2%27%20cy%3D%27428.6%27%20r%3D%270.73%27%20opacity%3D%270.75%27%2F%3E%3Ccircle%20cx%3D%27687.5%27%20cy%3D%27233.0%27%20r%3D%271.07%27%20opacity%3D%270.79%27%2F%3E%3Ccircle%20cx%3D%27327.1%27%20cy%3D%27117.0%27%20r%3D%270.68%27%20opacity%3D%270.68%27%2F%3E%3Ccircle%20cx%3D%27696.0%27%20cy%3D%27146.9%27%20r%3D%270.62%27%20opacity%3D%270.46%27%2F%3E%3Ccircle%20cx%3D%27333.9%27%20cy%3D%27328.7%27%20r%3D%270.9%27%20opacity%3D%270.72%27%2F%3E%3Ccircle%20cx%3D%27462.7%27%20cy%3D%27460.4%27%20r%3D%271.12%27%20opacity%3D%270.42%27%2F%3E%3Ccircle%20cx%3D%2758.8%27%20cy%3D%27266.8%27%20r%3D%270.89%27%20opacity%3D%270.77%27%2F%3E%3Ccircle%20cx%3D%27529.0%27%20cy%3D%27461.1%27%20r%3D%270.62%27%20opacity%3D%270.52%27%2F%3E%3Ccircle%20cx%3D%27724.0%27%20cy%3D%27192.0%27%20r%3D%270.72%27%20opacity%3D%270.76%27%2F%3E%3Ccircle%20cx%3D%27483.4%27%20cy%3D%2756.4%27%20r%3D%270.73%27%20opacity%3D%270.62%27%2F%3E%3Ccircle%20cx%3D%27352.2%27%20cy%3D%27442.5%27%20r%3D%270.67%27%20opacity%3D%270.63%27%2F%3E%3Ccircle%20cx%3D%27662.5%27%20cy%3D%27433.3%27%20r%3D%270.83%27%20opacity%3D%270.68%27%2F%3E%3Ccircle%20cx%3D%27381.9%27%20cy%3D%2795.7%27%20r%3D%270.63%27%20opacity%3D%270.35%27%2F%3E%3Ccircle%20cx%3D%27424.5%27%20cy%3D%2745.6%27%20r%3D%270.76%27%20opacity%3D%270.71%27%2F%3E%3Ccircle%20cx%3D%27163.1%27%20cy%3D%27176.8%27%20r%3D%271.08%27%20opacity%3D%270.42%27%2F%3E%3Ccircle%20cx%3D%27106.7%27%20cy%3D%27144.9%27%20r%3D%270.8%27%20opacity%3D%270.73%27%2F%3E%3Ccircle%20cx%3D%27831.0%27%20cy%3D%27501.9%27%20r%3D%270.64%27%20opacity%3D%270.75%27%2F%3E%3Ccircle%20cx%3D%27826.1%27%20cy%3D%27155.6%27%20r%3D%271.13%27%20opacity%3D%270.4%27%2F%3E%3Ccircle%20cx%3D%27883.2%27%20cy%3D%271.3%27%20r%3D%270.73%27%20opacity%3D%270.72%27%2F%3E%3Ccircle%20cx%3D%27776.6%27%20cy%3D%27220.1%27%20r%3D%271.05%27%20opacity%3D%270.6%27%2F%3E%3Ccircle%20cx%3D%279.7%27%20cy%3D%27371.3%27%20r%3D%270.83%27%20opacity%3D%270.54%27%2F%3E%3Ccircle%20cx%3D%27660.6%27%20cy%3D%27470.0%27%20r%3D%270.96%27%20opacity%3D%270.46%27%2F%3E%3Ccircle%20cx%3D%27137.5%27%20cy%3D%27498.2%27%20r%3D%271.14%27%20opacity%3D%270.5%27%2F%3E%3Ccircle%20cx%3D%27906.4%27%20cy%3D%27423.6%27%20r%3D%270.64%27%20opacity%3D%270.71%27%2F%3E%3Ccircle%20cx%3D%27564.6%27%20cy%3D%27387.5%27%20r%3D%271.01%27%20opacity%3D%270.79%27%2F%3E%3Ccircle%20cx%3D%27148.0%27%20cy%3D%2776.2%27%20r%3D%270.85%27%20opacity%3D%270.68%27%2F%3E%3Ccircle%20cx%3D%27409.0%27%20cy%3D%27281.5%27%20r%3D%270.97%27%20opacity%3D%270.37%27%2F%3E%3Ccircle%20cx%3D%27265.0%27%20cy%3D%27171.1%27%20r%3D%270.96%27%20opacity%3D%270.62%27%2F%3E%3Ccircle%20cx%3D%27316.7%27%20cy%3D%27290.5%27%20r%3D%271.0%27%20opacity%3D%270.65%27%2F%3E%3Ccircle%20cx%3D%27909.0%27%20cy%3D%27306.9%27%20r%3D%270.81%27%20opacity%3D%270.77%27%2F%3E%3Ccircle%20cx%3D%2757.4%27%20cy%3D%27481.3%27%20r%3D%270.95%27%20opacity%3D%270.54%27%2F%3E%3Ccircle%20cx%3D%27790.5%27%20cy%3D%2785.7%27%20r%3D%271.09%27%20opacity%3D%270.47%27%2F%3E%3Ccircle%20cx%3D%27229.1%27%20cy%3D%27464.8%27%20r%3D%270.84%27%20opacity%3D%270.52%27%2F%3E%3Ccircle%20cx%3D%27795.8%27%20cy%3D%27343.1%27%20r%3D%270.8%27%20opacity%3D%270.78%27%2F%3E%3Ccircle%20cx%3D%27672.6%27%20cy%3D%27304.1%27%20r%3D%270.84%27%20opacity%3D%270.47%27%2F%3E%3Ccircle%20cx%3D%27910.5%27%20cy%3D%27431.7%27%20r%3D%270.78%27%20opacity%3D%270.47%27%2F%3E%3Ccircle%20cx%3D%27288.6%27%20cy%3D%27386.5%27%20r%3D%270.89%27%20opacity%3D%270.66%27%2F%3E%3Ccircle%20cx%3D%27506.0%27%20cy%3D%2759.3%27%20r%3D%270.98%27%20opacity%3D%270.47%27%2F%3E%3Ccircle%20cx%3D%27963.1%27%20cy%3D%2768.0%27%20r%3D%271.08%27%20opacity%3D%270.5%27%2F%3E%3Ccircle%20cx%3D%277.3%27%20cy%3D%2719.4%27%20r%3D%270.7%27%20opacity%3D%270.57%27%2F%3E%3Ccircle%20cx%3D%27886.5%27%20cy%3D%27359.6%27%20r%3D%271.08%27%20opacity%3D%270.45%27%2F%3E%3Ccircle%20cx%3D%27952.2%27%20cy%3D%2745.4%27%20r%3D%270.78%27%20opacity%3D%270.8%27%2F%3E%3Ccircle%20cx%3D%27352.3%27%20cy%3D%27334.7%27%20r%3D%270.84%27%20opacity%3D%270.38%27%2F%3E%3Ccircle%20cx%3D%27256.7%27%20cy%3D%27421.6%27%20r%3D%270.74%27%20opacity%3D%270.54%27%2F%3E%3Ccircle%20cx%3D%27377.8%27%20cy%3D%27353.8%27%20r%3D%271.02%27%20opacity%3D%270.37%27%2F%3E%3Ccircle%20cx%3D%27398.8%27%20cy%3D%27144.5%27%20r%3D%271.14%27%20opacity%3D%270.66%27%2F%3E%3Ccircle%20cx%3D%27975.0%27%20cy%3D%27226.7%27%20r%3D%270.69%27%20opacity%3D%270.58%27%2F%3E%3Ccircle%20cx%3D%27869.6%27%20cy%3D%27431.0%27%20r%3D%271.01%27%20opacity%3D%270.43%27%2F%3E%3Ccircle%20cx%3D%2724.2%27%20cy%3D%27498.6%27%20r%3D%270.66%27%20opacity%3D%270.57%27%2F%3E%3Ccircle%20cx%3D%27290.8%27%20cy%3D%27274.1%27%20r%3D%270.95%27%20opacity%3D%270.59%27%2F%3E%3Ccircle%20cx%3D%27706.5%27%20cy%3D%27195.3%27%20r%3D%271.04%27%20opacity%3D%270.43%27%2F%3E%3Ccircle%20cx%3D%27729.1%27%20cy%3D%27133.8%27%20r%3D%270.65%27%20opacity%3D%270.41%27%2F%3E%3Ccircle%20cx%3D%27389.7%27%20cy%3D%27262.7%27%20r%3D%270.67%27%20opacity%3D%270.6%27%2F%3E%3Ccircle%20cx%3D%27456.5%27%20cy%3D%27513.0%27%20r%3D%270.64%27%20opacity%3D%270.73%27%2F%3E%3Ccircle%20cx%3D%27478.0%27%20cy%3D%27396.1%27%20r%3D%271.15%27%20opacity%3D%270.47%27%2F%3E%3Ccircle%20cx%3D%27600.8%27%20cy%3D%27403.6%27%20r%3D%270.95%27%20opacity%3D%270.42%27%2F%3E%3Ccircle%20cx%3D%27888.1%27%20cy%3D%27137.4%27%20r%3D%270.79%27%20opacity%3D%270.52%27%2F%3E%3Ccircle%20cx%3D%27161.5%27%20cy%3D%27488.6%27%20r%3D%270.87%27%20opacity%3D%270.37%27%2F%3E%3Ccircle%20cx%3D%27784.0%27%20cy%3D%27371.7%27%20r%3D%270.69%27%20opacity%3D%270.62%27%2F%3E%3Ccircle%20cx%3D%276.5%27%20cy%3D%2712.0%27%20r%3D%270.91%27%20opacity%3D%270.75%27%2F%3E%3Ccircle%20cx%3D%27971.2%27%20cy%3D%2756.1%27%20r%3D%270.65%27%20opacity%3D%270.4%27%2F%3E%3Ccircle%20cx%3D%27629.1%27%20cy%3D%2775.8%27%20r%3D%270.8%27%20opacity%3D%270.67%27%2F%3E%3Ccircle%20cx%3D%27147.4%27%20cy%3D%2778.2%27%20r%3D%270.74%27%20opacity%3D%270.8%27%2F%3E%3Ccircle%20cx%3D%27104.4%27%20cy%3D%27428.6%27%20r%3D%270.83%27%20opacity%3D%270.79%27%2F%3E%3Ccircle%20cx%3D%27852.9%27%20cy%3D%27518.6%27%20r%3D%270.78%27%20opacity%3D%270.73%27%2F%3E%3Ccircle%20cx%3D%27484.7%27%20cy%3D%27130.7%27%20r%3D%271.08%27%20opacity%3D%270.6%27%2F%3E%3Ccircle%20cx%3D%27665.7%27%20cy%3D%27105.1%27%20r%3D%270.95%27%20opacity%3D%270.36%27%2F%3E%3Ccircle%20cx%3D%27622.1%27%20cy%3D%27388.9%27%20r%3D%270.7%27%20opacity%3D%270.64%27%2F%3E%3Ccircle%20cx%3D%27989.7%27%20cy%3D%272.3%27%20r%3D%270.88%27%20opacity%3D%270.47%27%2F%3E%3Ccircle%20cx%3D%27587.8%27%20cy%3D%27302.1%27%20r%3D%270.67%27%20opacity%3D%270.64%27%2F%3E%3Ccircle%20cx%3D%2758.1%27%20cy%3D%27504.0%27%20r%3D%270.78%27%20opacity%3D%270.61%27%2F%3E%3Ccircle%20cx%3D%27711.6%27%20cy%3D%27416.4%27%20r%3D%271.11%27%20opacity%3D%270.37%27%2F%3E%3Ccircle%20cx%3D%27429.3%27%20cy%3D%27339.9%27%20r%3D%270.81%27%20opacity%3D%270.55%27%2F%3E%3Ccircle%20cx%3D%27286.8%27%20cy%3D%27276.0%27%20r%3D%270.68%27%20opacity%3D%270.36%27%2F%3E%3Ccircle%20cx%3D%27177.1%27%20cy%3D%2717.0%27%20r%3D%270.64%27%20opacity%3D%270.6%27%2F%3E%3Ccircle%20cx%3D%27989.4%27%20cy%3D%27256.1%27%20r%3D%270.94%27%20opacity%3D%270.39%27%2F%3E%3Ccircle%20cx%3D%27491.3%27%20cy%3D%27151.3%27%20r%3D%270.94%27%20opacity%3D%270.55%27%2F%3E%3Ccircle%20cx%3D%27901.2%27%20cy%3D%2789.5%27%20r%3D%271.03%27%20opacity%3D%270.62%27%2F%3E%3Ccircle%20cx%3D%27843.8%27%20cy%3D%27466.6%27%20r%3D%270.92%27%20opacity%3D%270.5%27%2F%3E%3Ccircle%20cx%3D%27562.8%27%20cy%3D%27275.6%27%20r%3D%270.85%27%20opacity%3D%270.37%27%2F%3E%3Ccircle%20cx%3D%27245.4%27%20cy%3D%27135.7%27%20r%3D%270.86%27%20opacity%3D%270.56%27%2F%3E%3Ccircle%20cx%3D%27852.0%27%20cy%3D%27320.8%27%20r%3D%270.72%27%20opacity%3D%270.74%27%2F%3E%3Ccircle%20cx%3D%27550.4%27%20cy%3D%27345.2%27%20r%3D%270.76%27%20opacity%3D%270.75%27%2F%3E%3Ccircle%20cx%3D%27439.3%27%20cy%3D%27305.9%27%20r%3D%270.8%27%20opacity%3D%270.59%27%2F%3E%3Ccircle%20cx%3D%27253.6%27%20cy%3D%27312.1%27%20r%3D%271.0%27%20opacity%3D%270.41%27%2F%3E%3Ccircle%20cx%3D%27899.0%27%20cy%3D%2757.9%27%20r%3D%271.13%27%20opacity%3D%270.45%27%2F%3E%3Ccircle%20cx%3D%27609.1%27%20cy%3D%27281.6%27%20r%3D%270.67%27%20opacity%3D%270.38%27%2F%3E%3Ccircle%20cx%3D%27991.3%27%20cy%3D%27284.1%27%20r%3D%270.65%27%20opacity%3D%270.59%27%2F%3E%3Ccircle%20cx%3D%27619.6%27%20cy%3D%27203.8%27%20r%3D%270.75%27%20opacity%3D%270.68%27%2F%3E%3Ccircle%20cx%3D%27772.8%27%20cy%3D%27141.8%27%20r%3D%271.02%27%20opacity%3D%270.62%27%2F%3E%3Ccircle%20cx%3D%27714.5%27%20cy%3D%27481.6%27%20r%3D%271.0%27%20opacity%3D%270.49%27%2F%3E%3Ccircle%20cx%3D%27615.7%27%20cy%3D%27156.6%27%20r%3D%270.83%27%20opacity%3D%270.35%27%2F%3E%3Ccircle%20cx%3D%27470.0%27%20cy%3D%27469.3%27%20r%3D%271.03%27%20opacity%3D%270.5%27%2F%3E%3Ccircle%20cx%3D%27840.1%27%20cy%3D%27474.9%27%20r%3D%270.88%27%20opacity%3D%270.66%27%2F%3E%3Ccircle%20cx%3D%27382.1%27%20cy%3D%27484.6%27%20r%3D%270.79%27%20opacity%3D%270.62%27%2F%3E%3Ccircle%20cx%3D%27605.8%27%20cy%3D%27351.5%27%20r%3D%270.98%27%20opacity%3D%270.52%27%2F%3E%3Ccircle%20cx%3D%27621.7%27%20cy%3D%27482.9%27%20r%3D%271.13%27%20opacity%3D%270.57%27%2F%3E%3Ccircle%20cx%3D%27132.1%27%20cy%3D%2760.1%27%20r%3D%270.86%27%20opacity%3D%270.6%27%2F%3E%3Ccircle%20cx%3D%27981.9%27%20cy%3D%27285.9%27%20r%3D%271.1%27%20opacity%3D%270.72%27%2F%3E%3Ccircle%20cx%3D%27113.8%27%20cy%3D%27209.2%27%20r%3D%270.69%27%20opacity%3D%270.56%27%2F%3E%3Ccircle%20cx%3D%27683.7%27%20cy%3D%2786.4%27%20r%3D%271.09%27%20opacity%3D%270.6%27%2F%3E%3Ccircle%20cx%3D%27607.6%27%20cy%3D%27234.1%27%20r%3D%270.66%27%20opacity%3D%270.56%27%2F%3E%3Ccircle%20cx%3D%27826.1%27%20cy%3D%27123.1%27%20r%3D%270.92%27%20opacity%3D%270.42%27%2F%3E%3Ccircle%20cx%3D%27833.2%27%20cy%3D%27273.1%27%20r%3D%270.69%27%20opacity%3D%270.6%27%2F%3E%3Ccircle%20cx%3D%27620.1%27%20cy%3D%27430.7%27%20r%3D%270.8%27%20opacity%3D%270.57%27%2F%3E%3Ccircle%20cx%3D%27136.8%27%20cy%3D%27351.6%27%20r%3D%270.69%27%20opacity%3D%270.35%27%2F%3E%3Ccircle%20cx%3D%27424.4%27%20cy%3D%27366.1%27%20r%3D%271.07%27%20opacity%3D%270.69%27%2F%3E%3Ccircle%20cx%3D%27286.7%27%20cy%3D%27138.6%27%20r%3D%270.86%27%20opacity%3D%270.64%27%2F%3E%3Ccircle%20cx%3D%27158.7%27%20cy%3D%27408.2%27%20r%3D%270.79%27%20opacity%3D%270.5%27%2F%3E%3Ccircle%20cx%3D%27214.1%27%20cy%3D%2778.9%27%20r%3D%270.62%27%20opacity%3D%270.7%27%2F%3E%3Ccircle%20cx%3D%27875.8%27%20cy%3D%27166.3%27%20r%3D%270.97%27%20opacity%3D%270.42%27%2F%3E%3Ccircle%20cx%3D%27986.3%27%20cy%3D%27479.6%27%20r%3D%271.15%27%20opacity%3D%270.44%27%2F%3E%3Ccircle%20cx%3D%27558.9%27%20cy%3D%27383.0%27%20r%3D%270.88%27%20opacity%3D%270.72%27%2F%3E%3Ccircle%20cx%3D%27591.7%27%20cy%3D%27213.4%27%20r%3D%270.88%27%20opacity%3D%270.68%27%2F%3E%3Ccircle%20cx%3D%27528.3%27%20cy%3D%27111.9%27%20r%3D%270.8%27%20opacity%3D%270.75%27%2F%3E%3Ccircle%20cx%3D%27360.7%27%20cy%3D%2768.8%27%20r%3D%270.98%27%20opacity%3D%270.68%27%2F%3E%3Ccircle%20cx%3D%27298.8%27%20cy%3D%2734.6%27%20r%3D%271.07%27%20opacity%3D%270.72%27%2F%3E%3Ccircle%20cx%3D%27902.4%27%20cy%3D%2773.4%27%20r%3D%271.11%27%20opacity%3D%270.51%27%2F%3E%3Ccircle%20cx%3D%27105.7%27%20cy%3D%27366.1%27%20r%3D%270.9%27%20opacity%3D%270.39%27%2F%3E%3Ccircle%20cx%3D%27492.4%27%20cy%3D%27183.0%27%20r%3D%270.89%27%20opacity%3D%270.43%27%2F%3E%3Ccircle%20cx%3D%27140.4%27%20cy%3D%27224.6%27%20r%3D%270.64%27%20opacity%3D%270.38%27%2F%3E%3Ccircle%20cx%3D%27433.4%27%20cy%3D%27334.6%27%20r%3D%270.88%27%20opacity%3D%270.67%27%2F%3E%3Ccircle%20cx%3D%27283.6%27%20cy%3D%27343.2%27%20r%3D%270.85%27%20opacity%3D%270.57%27%2F%3E%3Ccircle%20cx%3D%27573.5%27%20cy%3D%27316.4%27%20r%3D%270.96%27%20opacity%3D%270.54%27%2F%3E%3Ccircle%20cx%3D%27201.0%27%20cy%3D%27162.4%27%20r%3D%270.93%27%20opacity%3D%270.62%27%2F%3E%3Ccircle%20cx%3D%27649.8%27%20cy%3D%27484.0%27%20r%3D%271.15%27%20opacity%3D%270.58%27%2F%3E%3Ccircle%20cx%3D%27565.0%27%20cy%3D%27399.7%27%20r%3D%270.98%27%20opacity%3D%270.37%27%2F%3E%3Ccircle%20cx%3D%27135.6%27%20cy%3D%27203.1%27%20r%3D%270.79%27%20opacity%3D%270.56%27%2F%3E%3Ccircle%20cx%3D%27762.1%27%20cy%3D%2718.7%27%20r%3D%270.76%27%20opacity%3D%270.78%27%2F%3E%3Ccircle%20cx%3D%27769.3%27%20cy%3D%27355.6%27%20r%3D%270.99%27%20opacity%3D%270.46%27%2F%3E%3Ccircle%20cx%3D%27482.8%27%20cy%3D%27107.2%27%20r%3D%270.83%27%20opacity%3D%270.62%27%2F%3E%3Ccircle%20cx%3D%27835.3%27%20cy%3D%2740.5%27%20r%3D%270.84%27%20opacity%3D%270.64%27%2F%3E%3Ccircle%20cx%3D%27364.0%27%20cy%3D%27352.0%27%20r%3D%271.13%27%20opacity%3D%270.56%27%2F%3E%3Ccircle%20cx%3D%27462.2%27%20cy%3D%2743.2%27%20r%3D%270.68%27%20opacity%3D%270.75%27%2F%3E%3Ccircle%20cx%3D%27928.5%27%20cy%3D%27320.2%27%20r%3D%270.7%27%20opacity%3D%270.45%27%2F%3E%3Ccircle%20cx%3D%2793.4%27%20cy%3D%27194.8%27%20r%3D%271.05%27%20opacity%3D%270.55%27%2F%3E%3Ccircle%20cx%3D%27204.2%27%20cy%3D%2716.2%27%20r%3D%270.61%27%20opacity%3D%270.67%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  background-size: 1000px 520px;
  opacity: 0.72;
  animation: ks-twinkle-a 7s ease-in-out infinite;
}
.ks-sky-stars--near {
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%201000%20520%27%3E%3Cg%20fill%3D%27%23ffffff%27%3E%3Ccircle%20cx%3D%27822.5%27%20cy%3D%27221.1%27%20r%3D%271.27%27%20opacity%3D%270.87%27%2F%3E%3Ccircle%20cx%3D%2754.1%27%20cy%3D%27132.4%27%20r%3D%271.25%27%20opacity%3D%270.8%27%2F%3E%3Ccircle%20cx%3D%27399.0%27%20cy%3D%27347.5%27%20r%3D%271.66%27%20opacity%3D%270.98%27%2F%3E%3Ccircle%20cx%3D%27374.8%27%20cy%3D%27383.2%27%20r%3D%271.59%27%20opacity%3D%270.71%27%2F%3E%3Ccircle%20cx%3D%27371.6%27%20cy%3D%2738.4%27%20r%3D%272.09%27%20opacity%3D%270.89%27%2F%3E%3Ccircle%20cx%3D%27931.0%27%20cy%3D%27219.6%27%20r%3D%271.75%27%20opacity%3D%270.63%27%2F%3E%3Ccircle%20cx%3D%27665.6%27%20cy%3D%27258.0%27%20r%3D%271.32%27%20opacity%3D%270.82%27%2F%3E%3Ccircle%20cx%3D%27618.6%27%20cy%3D%27200.3%27%20r%3D%271.24%27%20opacity%3D%270.83%27%2F%3E%3Ccircle%20cx%3D%2796.5%27%20cy%3D%27378.2%27%20r%3D%271.3%27%20opacity%3D%270.92%27%2F%3E%3Ccircle%20cx%3D%27775.7%27%20cy%3D%2786.0%27%20r%3D%271.73%27%20opacity%3D%270.83%27%2F%3E%3Ccircle%20cx%3D%27211.2%27%20cy%3D%27230.3%27%20r%3D%271.62%27%20opacity%3D%270.73%27%2F%3E%3Ccircle%20cx%3D%2720.0%27%20cy%3D%27266.9%27%20r%3D%271.79%27%20opacity%3D%270.84%27%2F%3E%3Ccircle%20cx%3D%27146.4%27%20cy%3D%27380.9%27%20r%3D%271.78%27%20opacity%3D%270.77%27%2F%3E%3Ccircle%20cx%3D%27196.2%27%20cy%3D%2723.9%27%20r%3D%271.8%27%20opacity%3D%270.97%27%2F%3E%3Ccircle%20cx%3D%27400.5%27%20cy%3D%27207.7%27%20r%3D%271.72%27%20opacity%3D%270.89%27%2F%3E%3Ccircle%20cx%3D%27527.7%27%20cy%3D%27309.9%27%20r%3D%271.79%27%20opacity%3D%270.88%27%2F%3E%3Ccircle%20cx%3D%27589.8%27%20cy%3D%27388.5%27%20r%3D%271.34%27%20opacity%3D%270.7%27%2F%3E%3Ccircle%20cx%3D%27989.0%27%20cy%3D%27146.8%27%20r%3D%271.85%27%20opacity%3D%270.66%27%2F%3E%3Ccircle%20cx%3D%2754.1%27%20cy%3D%27439.2%27%20r%3D%272.07%27%20opacity%3D%270.69%27%2F%3E%3Ccircle%20cx%3D%27333.5%27%20cy%3D%27228.5%27%20r%3D%271.98%27%20opacity%3D%270.66%27%2F%3E%3Ccircle%20cx%3D%2781.8%27%20cy%3D%27253.4%27%20r%3D%271.86%27%20opacity%3D%270.71%27%2F%3E%3Ccircle%20cx%3D%27971.7%27%20cy%3D%27456.1%27%20r%3D%271.95%27%20opacity%3D%270.86%27%2F%3E%3Ccircle%20cx%3D%27462.0%27%20cy%3D%27151.1%27%20r%3D%271.77%27%20opacity%3D%270.78%27%2F%3E%3Ccircle%20cx%3D%276.4%27%20cy%3D%27292.1%27%20r%3D%271.64%27%20opacity%3D%270.73%27%2F%3E%3Ccircle%20cx%3D%27130.2%27%20cy%3D%27387.3%27%20r%3D%271.79%27%20opacity%3D%270.62%27%2F%3E%3Ccircle%20cx%3D%27725.5%27%20cy%3D%27186.6%27%20r%3D%271.28%27%20opacity%3D%270.92%27%2F%3E%3Ccircle%20cx%3D%27518.2%27%20cy%3D%2722.9%27%20r%3D%271.77%27%20opacity%3D%270.71%27%2F%3E%3Ccircle%20cx%3D%27969.9%27%20cy%3D%2775.4%27%20r%3D%272.02%27%20opacity%3D%270.83%27%2F%3E%3Ccircle%20cx%3D%2748.3%27%20cy%3D%27359.8%27%20r%3D%271.46%27%20opacity%3D%270.61%27%2F%3E%3Ccircle%20cx%3D%27191.8%27%20cy%3D%27481.6%27%20r%3D%272.05%27%20opacity%3D%270.68%27%2F%3E%3Ccircle%20cx%3D%27844.6%27%20cy%3D%271.0%27%20r%3D%271.93%27%20opacity%3D%270.91%27%2F%3E%3Ccircle%20cx%3D%27196.2%27%20cy%3D%2772.5%27%20r%3D%271.69%27%20opacity%3D%270.94%27%2F%3E%3Ccircle%20cx%3D%27730.1%27%20cy%3D%27399.8%27%20r%3D%272.05%27%20opacity%3D%270.66%27%2F%3E%3Ccircle%20cx%3D%27877.9%27%20cy%3D%27178.7%27%20r%3D%271.51%27%20opacity%3D%270.71%27%2F%3E%3Ccircle%20cx%3D%27762.1%27%20cy%3D%2734.7%27%20r%3D%271.42%27%20opacity%3D%270.67%27%2F%3E%3Ccircle%20cx%3D%27331.7%27%20cy%3D%27228.4%27%20r%3D%272.03%27%20opacity%3D%270.62%27%2F%3E%3Ccircle%20cx%3D%27921.3%27%20cy%3D%27143.8%27%20r%3D%271.4%27%20opacity%3D%270.97%27%2F%3E%3Ccircle%20cx%3D%27926.8%27%20cy%3D%27139.5%27%20r%3D%271.61%27%20opacity%3D%270.83%27%2F%3E%3Ccircle%20cx%3D%27509.0%27%20cy%3D%2760.9%27%20r%3D%271.35%27%20opacity%3D%270.94%27%2F%3E%3Ccircle%20cx%3D%27391.9%27%20cy%3D%27183.5%27%20r%3D%272.05%27%20opacity%3D%270.61%27%2F%3E%3Ccircle%20cx%3D%2748.7%27%20cy%3D%27455.9%27%20r%3D%272.02%27%20opacity%3D%270.65%27%2F%3E%3Ccircle%20cx%3D%27623.3%27%20cy%3D%27136.7%27%20r%3D%271.31%27%20opacity%3D%270.72%27%2F%3E%3Ccircle%20cx%3D%27652.4%27%20cy%3D%2785.7%27%20r%3D%271.92%27%20opacity%3D%270.93%27%2F%3E%3Ccircle%20cx%3D%27958.6%27%20cy%3D%27509.8%27%20r%3D%271.7%27%20opacity%3D%270.99%27%2F%3E%3Ccircle%20cx%3D%27787.0%27%20cy%3D%27410.0%27%20r%3D%272.03%27%20opacity%3D%270.98%27%2F%3E%3Ccircle%20cx%3D%27701.1%27%20cy%3D%27246.9%27%20r%3D%271.94%27%20opacity%3D%270.62%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  background-size: 760px 430px;
  opacity: 0.9;
  animation: ks-twinkle-b 11s ease-in-out infinite;
}
@keyframes ks-twinkle-a {
  0%, 100% { opacity: 0.72; }
  50% { opacity: 0.46; }
}
@keyframes ks-twinkle-b {
  0%, 100% { opacity: 0.9; }
  40% { opacity: 0.62; }
}

.ks-sky-moon {
  position: absolute;
  width: clamp(3.6rem, 8vw, 6.4rem);
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
  /* Poloha sa prepočíta raz za minútu; plynulý posun medzi krokmi dorobí prechod. */
  transition: left 60s linear, top 60s linear;
  animation: ks-moon-float 14s ease-in-out infinite;
  filter: drop-shadow(0 0 18px rgba(190, 214, 255, 0.35));
}
.ks-sky-moon svg {
  width: 100%;
  height: 100%;
  overflow: visible;
}
@keyframes ks-moon-float {
  0%, 100% { transform: translate(-50%, -50%); }
  50% { transform: translate(-50%, calc(-50% - 0.42rem)); }
}

@media (prefers-reduced-motion: reduce) {
  .discover-band,
  .ks-sky-stars,
  .ks-sky-moon {
    transition: none;
    animation: none;
  }
}
/* ══ koniec nočnej oblohy ══════════════════════════════════════════════════ */


/* ══ Sviatočné témy pozadia ══════════════════════════════════════════════════
   Plánujú sa v admine (Animácie). Trieda sky-theme-* je na .discover-band,
   samotné vrstvy vykresľuje komponent SkyScene.
   Návrat: zmazať tento blok po značku „koniec sviatočných tém".
   ═════════════════════════════════════════════════════════════════════════ */
.ks-theme {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}

/* ── Vianoce ─────────────────────────────────────────────────────────────── */
.discover-band.sky-theme-vianoce {
  background:
    radial-gradient(ellipse 120% 50% at 50% 116%, rgba(255, 214, 160, 0.22), transparent 62%),
    linear-gradient(180deg, #0a1730 0%, #12294c 30%, #22456f 62%, #3d6b93 84%, #7ba3c4 100%);
}
.ks-snow {
  position: absolute;
  inset: -10% 0 0;
  background-repeat: repeat;
  will-change: transform;
}
.ks-snow--a {
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20600%20600%27%3E%3Cg%20fill%3D%27%23fff%27%3E%3Ccircle%20cx%3D%27348.7%27%20cy%3D%27116.9%27%20r%3D%273.55%27%20opacity%3D%270.96%27%2F%3E%3Ccircle%20cx%3D%27280.3%27%20cy%3D%27398.1%27%20r%3D%272.5%27%20opacity%3D%270.61%27%2F%3E%3Ccircle%20cx%3D%27173.1%27%20cy%3D%27415.5%27%20r%3D%272.5%27%20opacity%3D%270.99%27%2F%3E%3Ccircle%20cx%3D%2742.2%27%20cy%3D%27116.0%27%20r%3D%272.32%27%20opacity%3D%270.88%27%2F%3E%3Ccircle%20cx%3D%27219.9%27%20cy%3D%27283.0%27%20r%3D%272.66%27%20opacity%3D%270.82%27%2F%3E%3Ccircle%20cx%3D%27242.3%27%20cy%3D%27125.0%27%20r%3D%272.8%27%20opacity%3D%270.65%27%2F%3E%3Ccircle%20cx%3D%2766.5%27%20cy%3D%27494.0%27%20r%3D%273.15%27%20opacity%3D%270.83%27%2F%3E%3Ccircle%20cx%3D%27529.5%27%20cy%3D%27236.8%27%20r%3D%272.73%27%20opacity%3D%270.71%27%2F%3E%3Ccircle%20cx%3D%27242.7%27%20cy%3D%27401.4%27%20r%3D%272.21%27%20opacity%3D%270.73%27%2F%3E%3Ccircle%20cx%3D%27321.1%27%20cy%3D%27207.3%27%20r%3D%272.23%27%20opacity%3D%270.85%27%2F%3E%3Ccircle%20cx%3D%275.7%27%20cy%3D%27338.6%27%20r%3D%272.41%27%20opacity%3D%270.52%27%2F%3E%3Ccircle%20cx%3D%27108.5%27%20cy%3D%2739.4%27%20r%3D%272.41%27%20opacity%3D%270.84%27%2F%3E%3Ccircle%20cx%3D%27437.0%27%20cy%3D%27217.7%27%20r%3D%273.11%27%20opacity%3D%270.74%27%2F%3E%3Ccircle%20cx%3D%27299.1%27%20cy%3D%27525.5%27%20r%3D%272.64%27%20opacity%3D%270.93%27%2F%3E%3Ccircle%20cx%3D%27414.6%27%20cy%3D%27410.1%27%20r%3D%272.21%27%20opacity%3D%270.54%27%2F%3E%3Ccircle%20cx%3D%2719.2%27%20cy%3D%27207.5%27%20r%3D%273.52%27%20opacity%3D%270.94%27%2F%3E%3Ccircle%20cx%3D%27503.1%27%20cy%3D%2771.3%27%20r%3D%273.19%27%20opacity%3D%270.89%27%2F%3E%3Ccircle%20cx%3D%27485.6%27%20cy%3D%27475.3%27%20r%3D%272.4%27%20opacity%3D%270.59%27%2F%3E%3Ccircle%20cx%3D%27475.5%27%20cy%3D%27442.9%27%20r%3D%273.45%27%20opacity%3D%270.72%27%2F%3E%3Ccircle%20cx%3D%27533.7%27%20cy%3D%2783.6%27%20r%3D%273.54%27%20opacity%3D%270.94%27%2F%3E%3Ccircle%20cx%3D%27202.5%27%20cy%3D%2740.5%27%20r%3D%272.97%27%20opacity%3D%270.84%27%2F%3E%3Ccircle%20cx%3D%27210.2%27%20cy%3D%2734.5%27%20r%3D%272.59%27%20opacity%3D%270.91%27%2F%3E%3Ccircle%20cx%3D%2754.4%27%20cy%3D%27562.4%27%20r%3D%272.55%27%20opacity%3D%270.6%27%2F%3E%3Ccircle%20cx%3D%2767.3%27%20cy%3D%27588.6%27%20r%3D%273.46%27%20opacity%3D%270.66%27%2F%3E%3Ccircle%20cx%3D%2757.4%27%20cy%3D%27392.0%27%20r%3D%273.44%27%20opacity%3D%270.51%27%2F%3E%3Ccircle%20cx%3D%27379.8%27%20cy%3D%27514.0%27%20r%3D%272.84%27%20opacity%3D%270.78%27%2F%3E%3Ccircle%20cx%3D%27482.6%27%20cy%3D%27143.1%27%20r%3D%272.58%27%20opacity%3D%270.83%27%2F%3E%3Ccircle%20cx%3D%27331.4%27%20cy%3D%27321.2%27%20r%3D%272.67%27%20opacity%3D%270.97%27%2F%3E%3Ccircle%20cx%3D%27172.9%27%20cy%3D%27407.3%27%20r%3D%273.45%27%20opacity%3D%270.7%27%2F%3E%3Ccircle%20cx%3D%2732.6%27%20cy%3D%27132.2%27%20r%3D%272.29%27%20opacity%3D%270.57%27%2F%3E%3Ccircle%20cx%3D%2772.3%27%20cy%3D%27205.5%27%20r%3D%272.72%27%20opacity%3D%270.72%27%2F%3E%3Ccircle%20cx%3D%27399.1%27%20cy%3D%27406.0%27%20r%3D%273.16%27%20opacity%3D%270.68%27%2F%3E%3Ccircle%20cx%3D%27397.7%27%20cy%3D%27329.9%27%20r%3D%272.38%27%20opacity%3D%270.77%27%2F%3E%3Ccircle%20cx%3D%27191.0%27%20cy%3D%27405.5%27%20r%3D%273.23%27%20opacity%3D%270.62%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  background-size: 600px 600px;
  opacity: 0.85;
  animation: ks-snowfall 15s linear infinite;
}
.ks-snow--b {
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20600%20600%27%3E%3Cg%20fill%3D%27%23fff%27%3E%3Ccircle%20cx%3D%27458.3%27%20cy%3D%27386.9%27%20r%3D%271.87%27%20opacity%3D%270.6%27%2F%3E%3Ccircle%20cx%3D%27406.0%27%20cy%3D%27581.6%27%20r%3D%271.88%27%20opacity%3D%270.93%27%2F%3E%3Ccircle%20cx%3D%2721.6%27%20cy%3D%27316.7%27%20r%3D%271.68%27%20opacity%3D%270.75%27%2F%3E%3Ccircle%20cx%3D%27366.8%27%20cy%3D%27513.5%27%20r%3D%271.97%27%20opacity%3D%270.93%27%2F%3E%3Ccircle%20cx%3D%27196.1%27%20cy%3D%2777.0%27%20r%3D%271.92%27%20opacity%3D%270.86%27%2F%3E%3Ccircle%20cx%3D%27424.8%27%20cy%3D%2722.0%27%20r%3D%271.72%27%20opacity%3D%270.63%27%2F%3E%3Ccircle%20cx%3D%27282.9%27%20cy%3D%27517.0%27%20r%3D%271.74%27%20opacity%3D%270.52%27%2F%3E%3Ccircle%20cx%3D%27538.8%27%20cy%3D%27521.5%27%20r%3D%272.19%27%20opacity%3D%270.52%27%2F%3E%3Ccircle%20cx%3D%27156.4%27%20cy%3D%27106.1%27%20r%3D%272.32%27%20opacity%3D%270.56%27%2F%3E%3Ccircle%20cx%3D%2776.5%27%20cy%3D%27132.4%27%20r%3D%272.21%27%20opacity%3D%270.6%27%2F%3E%3Ccircle%20cx%3D%27590.0%27%20cy%3D%27184.9%27%20r%3D%272.09%27%20opacity%3D%270.6%27%2F%3E%3Ccircle%20cx%3D%27175.2%27%20cy%3D%27519.2%27%20r%3D%272.4%27%20opacity%3D%270.62%27%2F%3E%3Ccircle%20cx%3D%27209.7%27%20cy%3D%2734.4%27%20r%3D%271.68%27%20opacity%3D%270.69%27%2F%3E%3Ccircle%20cx%3D%27312.7%27%20cy%3D%27343.7%27%20r%3D%271.81%27%20opacity%3D%270.58%27%2F%3E%3Ccircle%20cx%3D%27333.4%27%20cy%3D%27209.3%27%20r%3D%271.81%27%20opacity%3D%270.99%27%2F%3E%3Ccircle%20cx%3D%27352.4%27%20cy%3D%279.1%27%20r%3D%272.36%27%20opacity%3D%270.98%27%2F%3E%3Ccircle%20cx%3D%27234.0%27%20cy%3D%27587.8%27%20r%3D%271.59%27%20opacity%3D%270.96%27%2F%3E%3Ccircle%20cx%3D%27101.3%27%20cy%3D%27518.4%27%20r%3D%272.11%27%20opacity%3D%270.98%27%2F%3E%3Ccircle%20cx%3D%27181.4%27%20cy%3D%27392.4%27%20r%3D%272.35%27%20opacity%3D%270.56%27%2F%3E%3Ccircle%20cx%3D%27111.1%27%20cy%3D%27334.2%27%20r%3D%271.62%27%20opacity%3D%270.53%27%2F%3E%3Ccircle%20cx%3D%279.3%27%20cy%3D%27208.2%27%20r%3D%272.08%27%20opacity%3D%270.73%27%2F%3E%3Ccircle%20cx%3D%27362.5%27%20cy%3D%2715.8%27%20r%3D%271.59%27%20opacity%3D%270.78%27%2F%3E%3Ccircle%20cx%3D%2794.1%27%20cy%3D%277.7%27%20r%3D%271.56%27%20opacity%3D%270.83%27%2F%3E%3Ccircle%20cx%3D%27576.0%27%20cy%3D%27297.8%27%20r%3D%271.51%27%20opacity%3D%270.6%27%2F%3E%3Ccircle%20cx%3D%27408.8%27%20cy%3D%27475.6%27%20r%3D%271.69%27%20opacity%3D%270.73%27%2F%3E%3Ccircle%20cx%3D%2721.8%27%20cy%3D%27324.1%27%20r%3D%272.18%27%20opacity%3D%270.75%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  background-size: 460px 460px;
  opacity: 0.6;
  animation: ks-snowfall 24s linear infinite;
}
.ks-snow--c {
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20600%20600%27%3E%3Cg%20fill%3D%27%23fff%27%3E%3Ccircle%20cx%3D%2719.0%27%20cy%3D%27581.3%27%20r%3D%271.14%27%20opacity%3D%271.0%27%2F%3E%3Ccircle%20cx%3D%27568.0%27%20cy%3D%27155.2%27%20r%3D%271.36%27%20opacity%3D%270.7%27%2F%3E%3Ccircle%20cx%3D%27245.8%27%20cy%3D%27473.8%27%20r%3D%271.58%27%20opacity%3D%270.63%27%2F%3E%3Ccircle%20cx%3D%27326.3%27%20cy%3D%27411.6%27%20r%3D%271.42%27%20opacity%3D%270.56%27%2F%3E%3Ccircle%20cx%3D%27234.7%27%20cy%3D%27295.7%27%20r%3D%271.65%27%20opacity%3D%270.91%27%2F%3E%3Ccircle%20cx%3D%27404.9%27%20cy%3D%27168.1%27%20r%3D%271.66%27%20opacity%3D%270.61%27%2F%3E%3Ccircle%20cx%3D%27202.7%27%20cy%3D%2794.2%27%20r%3D%271.41%27%20opacity%3D%270.9%27%2F%3E%3Ccircle%20cx%3D%27421.1%27%20cy%3D%27496.3%27%20r%3D%271.49%27%20opacity%3D%270.83%27%2F%3E%3Ccircle%20cx%3D%27150.9%27%20cy%3D%27575.1%27%20r%3D%271.69%27%20opacity%3D%270.87%27%2F%3E%3Ccircle%20cx%3D%27598.2%27%20cy%3D%27530.1%27%20r%3D%271.61%27%20opacity%3D%270.88%27%2F%3E%3Ccircle%20cx%3D%27487.1%27%20cy%3D%27414.6%27%20r%3D%271.09%27%20opacity%3D%270.92%27%2F%3E%3Ccircle%20cx%3D%27211.5%27%20cy%3D%27386.2%27%20r%3D%271.63%27%20opacity%3D%270.75%27%2F%3E%3Ccircle%20cx%3D%27162.3%27%20cy%3D%27332.0%27%20r%3D%271.61%27%20opacity%3D%270.92%27%2F%3E%3Ccircle%20cx%3D%27596.3%27%20cy%3D%27544.7%27%20r%3D%271.56%27%20opacity%3D%270.74%27%2F%3E%3Ccircle%20cx%3D%27109.6%27%20cy%3D%27559.7%27%20r%3D%271.03%27%20opacity%3D%270.97%27%2F%3E%3Ccircle%20cx%3D%27383.6%27%20cy%3D%27141.6%27%20r%3D%271.12%27%20opacity%3D%270.86%27%2F%3E%3Ccircle%20cx%3D%2743.4%27%20cy%3D%27258.6%27%20r%3D%271.07%27%20opacity%3D%270.57%27%2F%3E%3Ccircle%20cx%3D%27150.9%27%20cy%3D%27391.6%27%20r%3D%271.02%27%20opacity%3D%270.93%27%2F%3E%3Ccircle%20cx%3D%27378.1%27%20cy%3D%27155.0%27%20r%3D%271.5%27%20opacity%3D%270.53%27%2F%3E%3Ccircle%20cx%3D%27152.0%27%20cy%3D%27302.3%27%20r%3D%271.6%27%20opacity%3D%270.84%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  background-size: 320px 320px;
  opacity: 0.4;
  animation: ks-snowfall 38s linear infinite;
}
@keyframes ks-snowfall {
  from { transform: translate3d(0, -12%, 0); }
  to { transform: translate3d(-6%, 100%, 0); }
}
/* Teplé svetlo od obzoru — akoby v dedine pod horami svietili okná. */
.ks-warmglow {
  position: absolute;
  left: 0;
  right: 0;
  bottom: -6%;
  height: 38%;
  background: radial-gradient(ellipse 70% 100% at 50% 100%, rgba(255, 196, 120, 0.34), transparent 70%);
  animation: ks-glow-pulse 9s ease-in-out infinite;
}
@keyframes ks-glow-pulse {
  0%, 100% { opacity: 0.75; }
  50% { opacity: 1; }
}

/* ── Silvester ───────────────────────────────────────────────────────────── */
.discover-band.sky-theme-silvester {
  background:
    radial-gradient(ellipse 120% 55% at 50% 118%, rgba(120, 90, 190, 0.28), transparent 60%),
    linear-gradient(180deg, #05030f 0%, #0c0a24 26%, #171040 54%, #2a1c5c 78%, #46337e 100%);
}
.ks-firework {
  position: absolute;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  opacity: 0;
  /* Lúče ohňostroja: osem bodov okolo stredu cez box-shadow. */
  animation: ks-burst 6s ease-out infinite;
}
.ks-firework--1 { left: 18%; top: 26%; color: #ffd45e; animation-delay: 0s; }
.ks-firework--2 { left: 72%; top: 18%; color: #7ee8ff; animation-delay: 1.3s; }
.ks-firework--3 { left: 45%; top: 34%; color: #ff8fd0; animation-delay: 2.5s; }
.ks-firework--4 { left: 86%; top: 40%; color: #b6ff8f; animation-delay: 3.6s; }
.ks-firework--5 { left: 32%; top: 14%; color: #ffb36b; animation-delay: 4.7s; }
@keyframes ks-burst {
  0% {
    opacity: 0;
    box-shadow: 0 0 0 currentColor;
    transform: scale(0.2);
  }
  8% { opacity: 1; }
  45% {
    opacity: 0.9;
    transform: scale(1);
    box-shadow:
      0 -46px 0 -1px currentColor, 33px -33px 0 -1px currentColor,
      46px 0 0 -1px currentColor, 33px 33px 0 -1px currentColor,
      0 46px 0 -1px currentColor, -33px 33px 0 -1px currentColor,
      -46px 0 0 -1px currentColor, -33px -33px 0 -1px currentColor;
  }
  75% {
    opacity: 0;
    transform: scale(1.25);
    box-shadow:
      0 -72px 0 -4px currentColor, 51px -51px 0 -4px currentColor,
      72px 0 0 -4px currentColor, 51px 51px 0 -4px currentColor,
      0 72px 0 -4px currentColor, -51px 51px 0 -4px currentColor,
      -72px 0 0 -4px currentColor, -51px -51px 0 -4px currentColor;
  }
  100% { opacity: 0; transform: scale(1.25); }
}

/* ── Konfety a futbal ────────────────────────────────────────────────────── */
.ks-confetti {
  position: absolute;
  top: -8%;
  width: 9px;
  height: 14px;
  border-radius: 2px;
  animation: ks-confetti-fall 9s linear infinite;
}
.ks-theme--konfety .ks-confetti:nth-child(3n) { background: #ee1c25; }
.ks-theme--konfety .ks-confetti:nth-child(3n+1) { background: #ffffff; }
.ks-theme--konfety .ks-confetti:nth-child(3n+2) { background: #0b4ea2; }
.ks-theme--futbal .ks-confetti:nth-child(odd) { background: #ffffff; }
.ks-theme--futbal .ks-confetti:nth-child(even) { background: #0b4ea2; }
@keyframes ks-confetti-fall {
  0% { transform: translate3d(0, -10vh, 0) rotate(0deg); opacity: 0; }
  10% { opacity: 1; }
  90% { opacity: 1; }
  100% { transform: translate3d(-8vw, 105vh, 0) rotate(760deg); opacity: 0; }
}
.discover-band.sky-theme-futbal {
  background:
    radial-gradient(ellipse 120% 50% at 50% 116%, rgba(150, 220, 170, 0.22), transparent 62%),
    linear-gradient(180deg, #061524 0%, #0c2a41 30%, #12456a 62%, #2a739a 84%, #74b6c9 100%);
}
/* Štadiónové reflektory: dva svetelné kužele od obzoru. */
.ks-floodlights::before,
.ks-floodlights::after {
  content: '';
  position: absolute;
  bottom: -4%;
  width: 34%;
  height: 86%;
  background: linear-gradient(to top, rgba(255, 255, 235, 0.26), transparent 78%);
  filter: blur(10px);
  animation: ks-flood 7s ease-in-out infinite alternate;
}
.ks-floodlights::before { left: 6%; transform: skewX(11deg); }
.ks-floodlights::after { right: 6%; transform: skewX(-11deg); animation-delay: 2s; }
@keyframes ks-flood {
  from { opacity: 0.55; }
  to { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .ks-snow,
  .ks-confetti,
  .ks-firework,
  .ks-warmglow,
  .ks-floodlights::before,
  .ks-floodlights::after {
    animation: none;
  }
  .ks-firework { opacity: 0.85; }
}
/* ══ koniec sviatočných tém ════════════════════════════════════════════════ */


/* ══ Ďalšie sviatočné témy ═══════════════════════════════════════════════════
   Voľby, maratón, hokej, olympijské medaily, veselá a smutná udalosť.
   Návrat: zmazať blok po značku „koniec ďalších tém".
   ═════════════════════════════════════════════════════════════════════════ */

/* ── Voľby ───────────────────────────────────────────────────────────────── */
.discover-band.sky-theme-volby {
  background:
    radial-gradient(ellipse 120% 50% at 50% 116%, rgba(255, 255, 255, 0.2), transparent 62%),
    linear-gradient(180deg, #0e2038 0%, #17375e 30%, #24568a 60%, #4b83b4 82%, #9dc4dd 100%);
}
/* Tri stuhy v štátnych farbách — pokojné, žiadne konfety.
   Voľby nie sú oslava jednej strany. */
.ks-ribbon {
  position: absolute;
  left: -20%;
  width: 140%;
  height: 8%;
  filter: blur(22px);
  opacity: 0.5;
  animation: ks-ribbon-drift 26s ease-in-out infinite alternate;
}
.ks-ribbon--w { top: 20%; background: rgba(255, 255, 255, 0.8); animation-delay: 0s; }
.ks-ribbon--b { top: 30%; background: rgba(60, 120, 210, 0.75); animation-delay: 3s; }
.ks-ribbon--r { top: 40%; background: rgba(220, 60, 70, 0.7); animation-delay: 6s; }
@keyframes ks-ribbon-drift {
  from { transform: translate3d(-3%, 0, 0) skewY(-1.2deg); }
  to { transform: translate3d(3%, 2%, 0) skewY(1.2deg); }
}

/* ── Maratón mieru ───────────────────────────────────────────────────────── */
.discover-band.sky-theme-maraton {
  background:
    radial-gradient(ellipse 110% 48% at 62% 112%, rgba(255, 220, 160, 0.4), transparent 58%),
    linear-gradient(180deg, #2b2140 0%, #5a3a52 26%, #995a52 54%, #d08b58 78%, #f0c48a 100%);
}
.ks-leaves {
  position: absolute;
  inset: -10% 0 0;
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20600%20600%27%3E%3Cg%20fill%3D%27%2523d98b3a%27%3E%3Cellipse%20cx%3D%27194.3%27%20cy%3D%27372.0%27%20rx%3D%277.3%27%20ry%3D%273.3%27%20opacity%3D%270.55%27%20transform%3D%27rotate%28354.0%20194.3%20372.0%29%27%2F%3E%3Cellipse%20cx%3D%27599.4%27%20cy%3D%27158.0%27%20rx%3D%274.8%27%20ry%3D%272.2%27%20opacity%3D%270.64%27%20transform%3D%27rotate%2820.0%20599.4%20158.0%29%27%2F%3E%3Cellipse%20cx%3D%2714.5%27%20cy%3D%27415.0%27%20rx%3D%277.0%27%20ry%3D%273.2%27%20opacity%3D%270.71%27%20transform%3D%27rotate%28294.0%2014.5%20415.0%29%27%2F%3E%3Cellipse%20cx%3D%27209.6%27%20cy%3D%27100.1%27%20rx%3D%276.6%27%20ry%3D%273.0%27%20opacity%3D%270.71%27%20transform%3D%27rotate%2811.0%20209.6%20100.1%29%27%2F%3E%3Cellipse%20cx%3D%27113.9%27%20cy%3D%2789.2%27%20rx%3D%277.8%27%20ry%3D%273.5%27%20opacity%3D%270.95%27%20transform%3D%27rotate%28157.0%20113.9%2089.2%29%27%2F%3E%3Cellipse%20cx%3D%27588.2%27%20cy%3D%27398.4%27%20rx%3D%275.0%27%20ry%3D%272.3%27%20opacity%3D%270.66%27%20transform%3D%27rotate%2853.0%20588.2%20398.4%29%27%2F%3E%3Cellipse%20cx%3D%27442.0%27%20cy%3D%27307.1%27%20rx%3D%275.4%27%20ry%3D%272.5%27%20opacity%3D%270.68%27%20transform%3D%27rotate%286.0%20442.0%20307.1%29%27%2F%3E%3Cellipse%20cx%3D%27235.6%27%20cy%3D%2741.6%27%20rx%3D%275.7%27%20ry%3D%272.6%27%20opacity%3D%270.66%27%20transform%3D%27rotate%28106.0%20235.6%2041.6%29%27%2F%3E%3Cellipse%20cx%3D%27296.3%27%20cy%3D%27339.4%27%20rx%3D%274.4%27%20ry%3D%272.0%27%20opacity%3D%270.93%27%20transform%3D%27rotate%28106.0%20296.3%20339.4%29%27%2F%3E%3Cellipse%20cx%3D%27181.9%27%20cy%3D%27129.6%27%20rx%3D%275.3%27%20ry%3D%272.4%27%20opacity%3D%270.81%27%20transform%3D%27rotate%28171.0%20181.9%20129.6%29%27%2F%3E%3Cellipse%20cx%3D%2756.9%27%20cy%3D%27450.6%27%20rx%3D%276.8%27%20ry%3D%273.1%27%20opacity%3D%270.83%27%20transform%3D%27rotate%28224.0%2056.9%20450.6%29%27%2F%3E%3Cellipse%20cx%3D%27512.9%27%20cy%3D%2721.0%27%20rx%3D%276.8%27%20ry%3D%273.1%27%20opacity%3D%270.63%27%20transform%3D%27rotate%28170.0%20512.9%2021.0%29%27%2F%3E%3Cellipse%20cx%3D%27302.5%27%20cy%3D%27303.1%27%20rx%3D%277.5%27%20ry%3D%273.4%27%20opacity%3D%270.69%27%20transform%3D%27rotate%2888.0%20302.5%20303.1%29%27%2F%3E%3Cellipse%20cx%3D%27589.7%27%20cy%3D%27299.8%27%20rx%3D%276.4%27%20ry%3D%272.9%27%20opacity%3D%270.76%27%20transform%3D%27rotate%2846.0%20589.7%20299.8%29%27%2F%3E%3Cellipse%20cx%3D%27127.1%27%20cy%3D%27375.3%27%20rx%3D%277.5%27%20ry%3D%273.4%27%20opacity%3D%270.68%27%20transform%3D%27rotate%28168.0%20127.1%20375.3%29%27%2F%3E%3Cellipse%20cx%3D%27187.1%27%20cy%3D%27320.9%27%20rx%3D%277.5%27%20ry%3D%273.4%27%20opacity%3D%270.69%27%20transform%3D%27rotate%28175.0%20187.1%20320.9%29%27%2F%3E%3Cellipse%20cx%3D%27295.5%27%20cy%3D%27578.8%27%20rx%3D%276.6%27%20ry%3D%273.0%27%20opacity%3D%270.73%27%20transform%3D%27rotate%28163.0%20295.5%20578.8%29%27%2F%3E%3Cellipse%20cx%3D%27300.7%27%20cy%3D%27403.2%27%20rx%3D%275.7%27%20ry%3D%272.6%27%20opacity%3D%270.68%27%20transform%3D%27rotate%285.0%20300.7%20403.2%29%27%2F%3E%3Cellipse%20cx%3D%2738.6%27%20cy%3D%27148.9%27%20rx%3D%277.6%27%20ry%3D%273.5%27%20opacity%3D%270.82%27%20transform%3D%27rotate%28249.0%2038.6%20148.9%29%27%2F%3E%3Cellipse%20cx%3D%27407.1%27%20cy%3D%27333.2%27%20rx%3D%275.2%27%20ry%3D%272.4%27%20opacity%3D%270.7%27%20transform%3D%27rotate%28172.0%20407.1%20333.2%29%27%2F%3E%3Cellipse%20cx%3D%2761.5%27%20cy%3D%27320.9%27%20rx%3D%277.0%27%20ry%3D%273.2%27%20opacity%3D%270.83%27%20transform%3D%27rotate%28111.0%2061.5%20320.9%29%27%2F%3E%3Cellipse%20cx%3D%27318.0%27%20cy%3D%27185.6%27%20rx%3D%275.1%27%20ry%3D%272.3%27%20opacity%3D%270.93%27%20transform%3D%27rotate%288.0%20318.0%20185.6%29%27%2F%3E%3Cellipse%20cx%3D%27192.6%27%20cy%3D%27403.7%27%20rx%3D%274.4%27%20ry%3D%272.0%27%20opacity%3D%270.66%27%20transform%3D%27rotate%28354.0%20192.6%20403.7%29%27%2F%3E%3Cellipse%20cx%3D%27270.0%27%20cy%3D%27281.8%27%20rx%3D%274.6%27%20ry%3D%272.1%27%20opacity%3D%270.88%27%20transform%3D%27rotate%2892.0%20270.0%20281.8%29%27%2F%3E%3Cellipse%20cx%3D%27446.5%27%20cy%3D%27472.3%27%20rx%3D%275.6%27%20ry%3D%272.5%27%20opacity%3D%270.81%27%20transform%3D%27rotate%28325.0%20446.5%20472.3%29%27%2F%3E%3Cellipse%20cx%3D%27269.5%27%20cy%3D%27299.2%27%20rx%3D%274.2%27%20ry%3D%271.9%27%20opacity%3D%270.61%27%20transform%3D%27rotate%28298.0%20269.5%20299.2%29%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  background-size: 600px 600px;
  background-repeat: repeat;
  opacity: 0.75;
  animation: ks-leaffall 22s linear infinite;
}
@keyframes ks-leaffall {
  from { transform: translate3d(0, -12%, 0) rotate(0deg); }
  to { transform: translate3d(-9%, 100%, 0) rotate(6deg); }
}
/* Vtáky: dve krídla z orámovania, v malom sa čítajú ako letiaci vták. */
.ks-bird {
  position: absolute;
  width: 16px;
  height: 8px;
  border-top: 2px solid rgba(40, 30, 50, 0.55);
  border-radius: 60% 60% 0 0 / 100% 100% 0 0;
  animation: ks-bird-glide 26s linear infinite, ks-bird-flap 1.6s ease-in-out infinite;
}
.ks-bird--1 { top: 22%; animation-delay: 0s, 0s; }
.ks-bird--2 { top: 28%; transform: scale(0.8); animation-delay: 4s, 0.3s; }
.ks-bird--3 { top: 18%; transform: scale(1.15); animation-delay: 9s, 0.6s; }
.ks-bird--4 { top: 33%; transform: scale(0.7); animation-delay: 14s, 0.2s; }
.ks-bird--5 { top: 25%; animation-delay: 19s, 0.8s; }
@keyframes ks-bird-glide {
  from { left: -6%; }
  to { left: 106%; }
}
@keyframes ks-bird-flap {
  0%, 100% { height: 8px; }
  50% { height: 4px; }
}

/* ── Hokej ───────────────────────────────────────────────────────────────── */
.discover-band.sky-theme-hokej {
  background:
    radial-gradient(ellipse 120% 52% at 50% 114%, rgba(210, 245, 255, 0.4), transparent 60%),
    linear-gradient(180deg, #041a2c 0%, #063049 28%, #0a5077 56%, #2b87ad 80%, #9fd8e8 100%);
}
.ks-ice {
  position: absolute;
  inset: -10% 0 0;
  background-repeat: repeat;
}
.ks-ice--a {
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20600%20600%27%3E%3Cg%20fill%3D%27%2523eaf6ff%27%3E%3Crect%20x%3D%2744.1%27%20y%3D%27356.6%27%20width%3D%272.6%27%20height%3D%276.2%27%20rx%3D%271.3%27%20opacity%3D%271.0%27%20transform%3D%27rotate%28124.0%2044.1%20356.6%29%27%2F%3E%3Crect%20x%3D%27224.6%27%20y%3D%27443.8%27%20width%3D%273.4%27%20height%3D%278.2%27%20rx%3D%271.7%27%20opacity%3D%270.86%27%20transform%3D%27rotate%28216.0%20224.6%20443.8%29%27%2F%3E%3Crect%20x%3D%27421.7%27%20y%3D%27205.7%27%20width%3D%272.8%27%20height%3D%276.7%27%20rx%3D%271.4%27%20opacity%3D%270.72%27%20transform%3D%27rotate%28228.0%20421.7%20205.7%29%27%2F%3E%3Crect%20x%3D%27133.2%27%20y%3D%27485.4%27%20width%3D%271.8%27%20height%3D%274.3%27%20rx%3D%270.9%27%20opacity%3D%270.75%27%20transform%3D%27rotate%28278.0%20133.2%20485.4%29%27%2F%3E%3Crect%20x%3D%27190.6%27%20y%3D%2710.7%27%20width%3D%272.2%27%20height%3D%275.3%27%20rx%3D%271.1%27%20opacity%3D%270.74%27%20transform%3D%27rotate%2891.0%20190.6%2010.7%29%27%2F%3E%3Crect%20x%3D%27132.4%27%20y%3D%27511.0%27%20width%3D%272.5%27%20height%3D%276.0%27%20rx%3D%271.2%27%20opacity%3D%270.84%27%20transform%3D%27rotate%28126.0%20132.4%20511.0%29%27%2F%3E%3Crect%20x%3D%27110.9%27%20y%3D%27565.4%27%20width%3D%271.9%27%20height%3D%274.6%27%20rx%3D%270.9%27%20opacity%3D%270.96%27%20transform%3D%27rotate%28206.0%20110.9%20565.4%29%27%2F%3E%3Crect%20x%3D%27571.9%27%20y%3D%27130.0%27%20width%3D%272.3%27%20height%3D%275.5%27%20rx%3D%271.1%27%20opacity%3D%270.57%27%20transform%3D%27rotate%28151.0%20571.9%20130.0%29%27%2F%3E%3Crect%20x%3D%27510.1%27%20y%3D%2787.9%27%20width%3D%271.7%27%20height%3D%274.1%27%20rx%3D%270.8%27%20opacity%3D%270.58%27%20transform%3D%27rotate%28159.0%20510.1%2087.9%29%27%2F%3E%3Crect%20x%3D%27397.8%27%20y%3D%27292.8%27%20width%3D%272.0%27%20height%3D%274.8%27%20rx%3D%271.0%27%20opacity%3D%270.94%27%20transform%3D%27rotate%28337.0%20397.8%20292.8%29%27%2F%3E%3Crect%20x%3D%27472.1%27%20y%3D%27299.6%27%20width%3D%272.4%27%20height%3D%275.8%27%20rx%3D%271.2%27%20opacity%3D%270.98%27%20transform%3D%27rotate%2829.0%20472.1%20299.6%29%27%2F%3E%3Crect%20x%3D%27588.2%27%20y%3D%2733.5%27%20width%3D%272.3%27%20height%3D%275.5%27%20rx%3D%271.1%27%20opacity%3D%270.69%27%20transform%3D%27rotate%28111.0%20588.2%2033.5%29%27%2F%3E%3Crect%20x%3D%27595.6%27%20y%3D%27114.6%27%20width%3D%273.2%27%20height%3D%277.7%27%20rx%3D%271.6%27%20opacity%3D%270.92%27%20transform%3D%27rotate%2896.0%20595.6%20114.6%29%27%2F%3E%3Crect%20x%3D%2788.1%27%20y%3D%2760.3%27%20width%3D%272.8%27%20height%3D%276.7%27%20rx%3D%271.4%27%20opacity%3D%270.99%27%20transform%3D%27rotate%285.0%2088.1%2060.3%29%27%2F%3E%3Crect%20x%3D%27122.3%27%20y%3D%27347.2%27%20width%3D%272.8%27%20height%3D%276.7%27%20rx%3D%271.4%27%20opacity%3D%270.69%27%20transform%3D%27rotate%28225.0%20122.3%20347.2%29%27%2F%3E%3Crect%20x%3D%27449.9%27%20y%3D%2773.0%27%20width%3D%272.7%27%20height%3D%276.5%27%20rx%3D%271.4%27%20opacity%3D%270.92%27%20transform%3D%27rotate%2886.0%20449.9%2073.0%29%27%2F%3E%3Crect%20x%3D%27485.7%27%20y%3D%27463.1%27%20width%3D%271.9%27%20height%3D%274.6%27%20rx%3D%270.9%27%20opacity%3D%270.79%27%20transform%3D%27rotate%28179.0%20485.7%20463.1%29%27%2F%3E%3Crect%20x%3D%27527.6%27%20y%3D%27356.8%27%20width%3D%272.9%27%20height%3D%277.0%27%20rx%3D%271.4%27%20opacity%3D%270.9%27%20transform%3D%27rotate%28348.0%20527.6%20356.8%29%27%2F%3E%3Crect%20x%3D%27180.1%27%20y%3D%27288.3%27%20width%3D%273.1%27%20height%3D%277.4%27%20rx%3D%271.6%27%20opacity%3D%270.63%27%20transform%3D%27rotate%28100.0%20180.1%20288.3%29%27%2F%3E%3Crect%20x%3D%27401.0%27%20y%3D%27100.2%27%20width%3D%273.1%27%20height%3D%277.4%27%20rx%3D%271.6%27%20opacity%3D%270.78%27%20transform%3D%27rotate%28147.0%20401.0%20100.2%29%27%2F%3E%3Crect%20x%3D%27499.0%27%20y%3D%27211.8%27%20width%3D%272.6%27%20height%3D%276.2%27%20rx%3D%271.3%27%20opacity%3D%270.59%27%20transform%3D%27rotate%2868.0%20499.0%20211.8%29%27%2F%3E%3Crect%20x%3D%27218.5%27%20y%3D%2721.1%27%20width%3D%272.2%27%20height%3D%275.3%27%20rx%3D%271.1%27%20opacity%3D%270.89%27%20transform%3D%27rotate%28221.0%20218.5%2021.1%29%27%2F%3E%3Crect%20x%3D%2718.2%27%20y%3D%27212.7%27%20width%3D%271.8%27%20height%3D%274.3%27%20rx%3D%270.9%27%20opacity%3D%270.81%27%20transform%3D%27rotate%2823.0%2018.2%20212.7%29%27%2F%3E%3Crect%20x%3D%2724.7%27%20y%3D%2718.8%27%20width%3D%272.7%27%20height%3D%276.5%27%20rx%3D%271.4%27%20opacity%3D%270.83%27%20transform%3D%27rotate%28257.0%2024.7%2018.8%29%27%2F%3E%3Crect%20x%3D%27191.1%27%20y%3D%27212.7%27%20width%3D%272.6%27%20height%3D%276.2%27%20rx%3D%271.3%27%20opacity%3D%270.56%27%20transform%3D%27rotate%28290.0%20191.1%20212.7%29%27%2F%3E%3Crect%20x%3D%27113.9%27%20y%3D%2768.6%27%20width%3D%272.9%27%20height%3D%277.0%27%20rx%3D%271.4%27%20opacity%3D%270.67%27%20transform%3D%27rotate%28138.0%20113.9%2068.6%29%27%2F%3E%3Crect%20x%3D%2743.4%27%20y%3D%27466.9%27%20width%3D%272.7%27%20height%3D%276.5%27%20rx%3D%271.4%27%20opacity%3D%270.66%27%20transform%3D%27rotate%2855.0%2043.4%20466.9%29%27%2F%3E%3Crect%20x%3D%2788.8%27%20y%3D%27592.2%27%20width%3D%272.6%27%20height%3D%276.2%27%20rx%3D%271.3%27%20opacity%3D%270.86%27%20transform%3D%27rotate%28264.0%2088.8%20592.2%29%27%2F%3E%3Crect%20x%3D%27526.9%27%20y%3D%27512.0%27%20width%3D%272.8%27%20height%3D%276.7%27%20rx%3D%271.4%27%20opacity%3D%270.8%27%20transform%3D%27rotate%2851.0%20526.9%20512.0%29%27%2F%3E%3Crect%20x%3D%27596.6%27%20y%3D%27146.6%27%20width%3D%273.1%27%20height%3D%277.4%27%20rx%3D%271.6%27%20opacity%3D%270.86%27%20transform%3D%27rotate%2840.0%20596.6%20146.6%29%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  background-size: 600px 600px;
  opacity: 0.8;
  animation: ks-icefall 9s linear infinite;
}
.ks-ice--b {
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20460%20460%27%3E%3Cg%20fill%3D%27%2523c9e6ff%27%3E%3Crect%20x%3D%27128.7%27%20y%3D%27231.0%27%20width%3D%272.7%27%20height%3D%276.5%27%20rx%3D%271.4%27%20opacity%3D%270.8%27%20transform%3D%27rotate%28166.0%20128.7%20231.0%29%27%2F%3E%3Crect%20x%3D%27224.1%27%20y%3D%27238.2%27%20width%3D%272.1%27%20height%3D%275.0%27%20rx%3D%271.1%27%20opacity%3D%270.64%27%20transform%3D%27rotate%2840.0%20224.1%20238.2%29%27%2F%3E%3Crect%20x%3D%27358.7%27%20y%3D%2711.7%27%20width%3D%272.6%27%20height%3D%276.2%27%20rx%3D%271.3%27%20opacity%3D%270.71%27%20transform%3D%27rotate%28152.0%20358.7%2011.7%29%27%2F%3E%3Crect%20x%3D%27199.4%27%20y%3D%27393.5%27%20width%3D%272.0%27%20height%3D%274.8%27%20rx%3D%271.0%27%20opacity%3D%270.97%27%20transform%3D%27rotate%28205.0%20199.4%20393.5%29%27%2F%3E%3Crect%20x%3D%27402.5%27%20y%3D%27393.6%27%20width%3D%273.2%27%20height%3D%277.7%27%20rx%3D%271.6%27%20opacity%3D%270.76%27%20transform%3D%27rotate%28287.0%20402.5%20393.6%29%27%2F%3E%3Crect%20x%3D%27437.4%27%20y%3D%27105.3%27%20width%3D%272.1%27%20height%3D%275.0%27%20rx%3D%271.1%27%20opacity%3D%270.65%27%20transform%3D%27rotate%28289.0%20437.4%20105.3%29%27%2F%3E%3Crect%20x%3D%27126.2%27%20y%3D%2722.5%27%20width%3D%271.9%27%20height%3D%274.6%27%20rx%3D%270.9%27%20opacity%3D%270.89%27%20transform%3D%27rotate%2885.0%20126.2%2022.5%29%27%2F%3E%3Crect%20x%3D%27282.2%27%20y%3D%2738.8%27%20width%3D%273.3%27%20height%3D%277.9%27%20rx%3D%271.6%27%20opacity%3D%270.9%27%20transform%3D%27rotate%2829.0%20282.2%2038.8%29%27%2F%3E%3Crect%20x%3D%2760.7%27%20y%3D%2765.6%27%20width%3D%272.5%27%20height%3D%276.0%27%20rx%3D%271.2%27%20opacity%3D%270.76%27%20transform%3D%27rotate%28276.0%2060.7%2065.6%29%27%2F%3E%3Crect%20x%3D%27326.0%27%20y%3D%27111.2%27%20width%3D%272.3%27%20height%3D%275.5%27%20rx%3D%271.1%27%20opacity%3D%270.94%27%20transform%3D%27rotate%2873.0%20326.0%20111.2%29%27%2F%3E%3Crect%20x%3D%27369.5%27%20y%3D%27180.7%27%20width%3D%271.8%27%20height%3D%274.3%27%20rx%3D%270.9%27%20opacity%3D%270.58%27%20transform%3D%27rotate%28259.0%20369.5%20180.7%29%27%2F%3E%3Crect%20x%3D%27188.8%27%20y%3D%27157.9%27%20width%3D%273.3%27%20height%3D%277.9%27%20rx%3D%271.6%27%20opacity%3D%270.77%27%20transform%3D%27rotate%2849.0%20188.8%20157.9%29%27%2F%3E%3Crect%20x%3D%27373.8%27%20y%3D%27252.2%27%20width%3D%272.1%27%20height%3D%275.0%27%20rx%3D%271.1%27%20opacity%3D%270.69%27%20transform%3D%27rotate%28139.0%20373.8%20252.2%29%27%2F%3E%3Crect%20x%3D%27187.5%27%20y%3D%27224.7%27%20width%3D%273.3%27%20height%3D%277.9%27%20rx%3D%271.6%27%20opacity%3D%270.89%27%20transform%3D%27rotate%2834.0%20187.5%20224.7%29%27%2F%3E%3Crect%20x%3D%27412.8%27%20y%3D%27246.1%27%20width%3D%272.0%27%20height%3D%274.8%27%20rx%3D%271.0%27%20opacity%3D%270.8%27%20transform%3D%27rotate%2833.0%20412.8%20246.1%29%27%2F%3E%3Crect%20x%3D%2720.7%27%20y%3D%2750.3%27%20width%3D%272.9%27%20height%3D%277.0%27%20rx%3D%271.4%27%20opacity%3D%270.88%27%20transform%3D%27rotate%2871.0%2020.7%2050.3%29%27%2F%3E%3Crect%20x%3D%27358.1%27%20y%3D%27191.0%27%20width%3D%272.7%27%20height%3D%276.5%27%20rx%3D%271.4%27%20opacity%3D%270.86%27%20transform%3D%27rotate%28213.0%20358.1%20191.0%29%27%2F%3E%3Crect%20x%3D%27271.7%27%20y%3D%27296.1%27%20width%3D%272.0%27%20height%3D%274.8%27%20rx%3D%271.0%27%20opacity%3D%270.62%27%20transform%3D%27rotate%28358.0%20271.7%20296.1%29%27%2F%3E%3Crect%20x%3D%2761.6%27%20y%3D%27109.7%27%20width%3D%273.4%27%20height%3D%278.2%27%20rx%3D%271.7%27%20opacity%3D%270.92%27%20transform%3D%27rotate%28352.0%2061.6%20109.7%29%27%2F%3E%3Crect%20x%3D%2762.0%27%20y%3D%27176.5%27%20width%3D%272.3%27%20height%3D%275.5%27%20rx%3D%271.1%27%20opacity%3D%270.89%27%20transform%3D%27rotate%2840.0%2062.0%20176.5%29%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  background-size: 460px 460px;
  opacity: 0.5;
  animation: ks-icefall 15s linear infinite;
}
@keyframes ks-icefall {
  from { transform: translate3d(0, -12%, 0); }
  to { transform: translate3d(-14%, 100%, 0); }
}
.ks-rinkglow {
  position: absolute;
  left: 0;
  right: 0;
  bottom: -8%;
  height: 42%;
  background: radial-gradient(ellipse 80% 100% at 50% 100%, rgba(190, 240, 255, 0.35), transparent 72%);
  animation: ks-glow-pulse 6s ease-in-out infinite;
}

/* ── Olympijské medaily ──────────────────────────────────────────────────── */
.ks-theme--medal { --ks-medal: #ffd76a; --ks-medal-soft: rgba(255, 215, 106, 0.34); }
.ks-theme--olympiada-striebro { --ks-medal: #dbe4ee; --ks-medal-soft: rgba(219, 228, 238, 0.34); }
.ks-theme--olympiada-bronz { --ks-medal: #d9915a; --ks-medal-soft: rgba(217, 145, 90, 0.32); }
.discover-band.sky-theme-olympiada-zlato,
.discover-band.sky-theme-olympiada-striebro,
.discover-band.sky-theme-olympiada-bronz {
  background:
    radial-gradient(ellipse 120% 55% at 50% 118%, rgba(120, 96, 40, 0.3), transparent 62%),
    linear-gradient(180deg, #060812 0%, #0d1226 26%, #16203f 54%, #24325c 78%, #3b4c7e 100%);
}
.ks-medalglow {
  position: absolute;
  left: 0;
  right: 0;
  bottom: -10%;
  height: 55%;
  background: radial-gradient(ellipse 70% 100% at 50% 100%, var(--ks-medal-soft), transparent 72%);
  animation: ks-glow-pulse 7s ease-in-out infinite;
}
/* Iskry stúpajú od obzoru — opak padajúcich konfiet. */
.ks-spark {
  position: absolute;
  bottom: -4%;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--ks-medal);
  box-shadow: 0 0 10px var(--ks-medal);
  animation: ks-spark-rise 8s ease-out infinite;
}
@keyframes ks-spark-rise {
  0% { transform: translate3d(0, 0, 0) scale(0.5); opacity: 0; }
  12% { opacity: 1; }
  100% { transform: translate3d(3vw, -78vh, 0) scale(1.1); opacity: 0; }
}

/* ── Veselá udalosť ──────────────────────────────────────────────────────── */
.discover-band.sky-theme-vesela {
  background:
    radial-gradient(ellipse 110% 50% at 52% 112%, rgba(255, 240, 190, 0.42), transparent 58%),
    linear-gradient(180deg, #123a6b 0%, #1d68a8 28%, #3f9bcd 58%, #86cfe4 82%, #cdf0f6 100%);
}
.ks-theme--vesela .ks-confetti:nth-child(5n) { background: #ff5d73; }
.ks-theme--vesela .ks-confetti:nth-child(5n+1) { background: #ffd166; }
.ks-theme--vesela .ks-confetti:nth-child(5n+2) { background: #06d6a0; }
.ks-theme--vesela .ks-confetti:nth-child(5n+3) { background: #7b8cff; }
.ks-theme--vesela .ks-confetti:nth-child(5n+4) { background: #ffffff; }
.ks-balloon {
  position: absolute;
  bottom: -14%;
  width: 26px;
  height: 32px;
  border-radius: 50% 50% 48% 48%;
  opacity: 0.9;
  animation: ks-balloon-rise 17s linear infinite;
}
.ks-balloon:nth-of-type(3n) { background: #ff5d73; }
.ks-balloon:nth-of-type(3n+1) { background: #ffd166; }
.ks-balloon:nth-of-type(3n+2) { background: #7b8cff; }
/* Šnúrka pod balónom. */
.ks-balloon::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 100%;
  width: 1px;
  height: 18px;
  background: rgba(255, 255, 255, 0.5);
}
@keyframes ks-balloon-rise {
  0% { transform: translate3d(0, 0, 0); opacity: 0; }
  10% { opacity: 0.9; }
  90% { opacity: 0.9; }
  100% { transform: translate3d(4vw, -125vh, 0); opacity: 0; }
}

/* ── Smutná udalosť ──────────────────────────────────────────────────────── */
.discover-band.sky-theme-smutna {
  background:
    radial-gradient(ellipse 120% 50% at 50% 116%, rgba(255, 214, 160, 0.14), transparent 60%),
    linear-gradient(180deg, #14181f 0%, #202730 30%, #2f3944 58%, #46525f 80%, #6b7885 100%);
}
/* Oblaky aj slnko stlmíme — nič nemá pôsobiť veselo. */
.discover-band.sky-theme-smutna::after { animation: none; opacity: 0; }
.discover-band.sky-theme-smutna::before { opacity: 0.05; }
.ks-rain {
  position: absolute;
  inset: -10% 0 0;
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20600%20600%27%3E%3Cg%20fill%3D%27%2523c8d4e2%27%3E%3Crect%20x%3D%27515.8%27%20y%3D%27309.2%27%20width%3D%271.4%27%20height%3D%2715.4%27%20rx%3D%27.7%27%20opacity%3D%270.29%27%2F%3E%3Crect%20x%3D%27185.5%27%20y%3D%27525.2%27%20width%3D%271.4%27%20height%3D%2725.2%27%20rx%3D%27.7%27%20opacity%3D%270.36%27%2F%3E%3Crect%20x%3D%27265.0%27%20y%3D%27274.0%27%20width%3D%271.4%27%20height%3D%2725.1%27%20rx%3D%27.7%27%20opacity%3D%270.38%27%2F%3E%3Crect%20x%3D%27188.0%27%20y%3D%27301.6%27%20width%3D%271.4%27%20height%3D%2714.0%27%20rx%3D%27.7%27%20opacity%3D%270.4%27%2F%3E%3Crect%20x%3D%2776.3%27%20y%3D%27493.5%27%20width%3D%271.4%27%20height%3D%2719.3%27%20rx%3D%27.7%27%20opacity%3D%270.54%27%2F%3E%3Crect%20x%3D%27252.0%27%20y%3D%27161.5%27%20width%3D%271.4%27%20height%3D%2725.9%27%20rx%3D%27.7%27%20opacity%3D%270.51%27%2F%3E%3Crect%20x%3D%270.0%27%20y%3D%27589.5%27%20width%3D%271.4%27%20height%3D%2724.3%27%20rx%3D%27.7%27%20opacity%3D%270.53%27%2F%3E%3Crect%20x%3D%27340.1%27%20y%3D%27441.8%27%20width%3D%271.4%27%20height%3D%2722.6%27%20rx%3D%27.7%27%20opacity%3D%270.35%27%2F%3E%3Crect%20x%3D%2712.3%27%20y%3D%27414.2%27%20width%3D%271.4%27%20height%3D%2725.5%27%20rx%3D%27.7%27%20opacity%3D%270.28%27%2F%3E%3Crect%20x%3D%27415.7%27%20y%3D%27296.6%27%20width%3D%271.4%27%20height%3D%2718.8%27%20rx%3D%27.7%27%20opacity%3D%270.46%27%2F%3E%3Crect%20x%3D%27359.2%27%20y%3D%27468.0%27%20width%3D%271.4%27%20height%3D%2719.2%27%20rx%3D%27.7%27%20opacity%3D%270.39%27%2F%3E%3Crect%20x%3D%27374.2%27%20y%3D%27136.9%27%20width%3D%271.4%27%20height%3D%2725.0%27%20rx%3D%27.7%27%20opacity%3D%270.27%27%2F%3E%3Crect%20x%3D%27502.7%27%20y%3D%2775.8%27%20width%3D%271.4%27%20height%3D%2715.9%27%20rx%3D%27.7%27%20opacity%3D%270.55%27%2F%3E%3Crect%20x%3D%27396.2%27%20y%3D%27172.7%27%20width%3D%271.4%27%20height%3D%2722.3%27%20rx%3D%27.7%27%20opacity%3D%270.34%27%2F%3E%3Crect%20x%3D%27431.0%27%20y%3D%27191.7%27%20width%3D%271.4%27%20height%3D%2718.5%27%20rx%3D%27.7%27%20opacity%3D%270.28%27%2F%3E%3Crect%20x%3D%27340.4%27%20y%3D%27104.1%27%20width%3D%271.4%27%20height%3D%2720.4%27%20rx%3D%27.7%27%20opacity%3D%270.37%27%2F%3E%3Crect%20x%3D%27429.9%27%20y%3D%27136.6%27%20width%3D%271.4%27%20height%3D%2722.8%27%20rx%3D%27.7%27%20opacity%3D%270.28%27%2F%3E%3Crect%20x%3D%27529.7%27%20y%3D%2773.0%27%20width%3D%271.4%27%20height%3D%2719.8%27%20rx%3D%27.7%27%20opacity%3D%270.29%27%2F%3E%3Crect%20x%3D%27502.4%27%20y%3D%27173.4%27%20width%3D%271.4%27%20height%3D%2715.7%27%20rx%3D%27.7%27%20opacity%3D%270.46%27%2F%3E%3Crect%20x%3D%27487.9%27%20y%3D%27373.3%27%20width%3D%271.4%27%20height%3D%2721.5%27%20rx%3D%27.7%27%20opacity%3D%270.45%27%2F%3E%3Crect%20x%3D%27549.7%27%20y%3D%27178.4%27%20width%3D%271.4%27%20height%3D%2715.0%27%20rx%3D%27.7%27%20opacity%3D%270.54%27%2F%3E%3Crect%20x%3D%27409.9%27%20y%3D%27421.4%27%20width%3D%271.4%27%20height%3D%2724.4%27%20rx%3D%27.7%27%20opacity%3D%270.31%27%2F%3E%3Crect%20x%3D%27394.0%27%20y%3D%27294.4%27%20width%3D%271.4%27%20height%3D%2725.8%27%20rx%3D%27.7%27%20opacity%3D%270.45%27%2F%3E%3Crect%20x%3D%27340.8%27%20y%3D%27530.0%27%20width%3D%271.4%27%20height%3D%2722.8%27%20rx%3D%27.7%27%20opacity%3D%270.4%27%2F%3E%3Crect%20x%3D%27449.8%27%20y%3D%27152.3%27%20width%3D%271.4%27%20height%3D%2720.7%27%20rx%3D%27.7%27%20opacity%3D%270.38%27%2F%3E%3Crect%20x%3D%27346.3%27%20y%3D%27494.2%27%20width%3D%271.4%27%20height%3D%2725.2%27%20rx%3D%27.7%27%20opacity%3D%270.49%27%2F%3E%3Crect%20x%3D%27407.6%27%20y%3D%27532.0%27%20width%3D%271.4%27%20height%3D%2722.9%27%20rx%3D%27.7%27%20opacity%3D%270.37%27%2F%3E%3Crect%20x%3D%27357.1%27%20y%3D%2771.9%27%20width%3D%271.4%27%20height%3D%2715.9%27%20rx%3D%27.7%27%20opacity%3D%270.43%27%2F%3E%3Crect%20x%3D%27102.9%27%20y%3D%2760.5%27%20width%3D%271.4%27%20height%3D%2717.0%27%20rx%3D%27.7%27%20opacity%3D%270.49%27%2F%3E%3Crect%20x%3D%27587.4%27%20y%3D%2793.7%27%20width%3D%271.4%27%20height%3D%2714.4%27%20rx%3D%27.7%27%20opacity%3D%270.31%27%2F%3E%3Crect%20x%3D%27371.8%27%20y%3D%2748.9%27%20width%3D%271.4%27%20height%3D%2716.5%27%20rx%3D%27.7%27%20opacity%3D%270.51%27%2F%3E%3Crect%20x%3D%27455.5%27%20y%3D%278.6%27%20width%3D%271.4%27%20height%3D%2724.0%27%20rx%3D%27.7%27%20opacity%3D%270.28%27%2F%3E%3Crect%20x%3D%27228.6%27%20y%3D%27403.7%27%20width%3D%271.4%27%20height%3D%2725.1%27%20rx%3D%27.7%27%20opacity%3D%270.53%27%2F%3E%3Crect%20x%3D%27170.9%27%20y%3D%27196.0%27%20width%3D%271.4%27%20height%3D%2722.8%27%20rx%3D%27.7%27%20opacity%3D%270.33%27%2F%3E%3Crect%20x%3D%27213.6%27%20y%3D%27114.0%27%20width%3D%271.4%27%20height%3D%2716.2%27%20rx%3D%27.7%27%20opacity%3D%270.5%27%2F%3E%3Crect%20x%3D%27492.8%27%20y%3D%27323.8%27%20width%3D%271.4%27%20height%3D%2724.2%27%20rx%3D%27.7%27%20opacity%3D%270.38%27%2F%3E%3Crect%20x%3D%27435.9%27%20y%3D%27262.9%27%20width%3D%271.4%27%20height%3D%2725.3%27%20rx%3D%27.7%27%20opacity%3D%270.46%27%2F%3E%3Crect%20x%3D%27452.6%27%20y%3D%27359.1%27%20width%3D%271.4%27%20height%3D%2719.5%27%20rx%3D%27.7%27%20opacity%3D%270.26%27%2F%3E%3Crect%20x%3D%27416.0%27%20y%3D%27287.3%27%20width%3D%271.4%27%20height%3D%2718.9%27%20rx%3D%27.7%27%20opacity%3D%270.53%27%2F%3E%3Crect%20x%3D%27113.7%27%20y%3D%27558.4%27%20width%3D%271.4%27%20height%3D%2722.3%27%20rx%3D%27.7%27%20opacity%3D%270.36%27%2F%3E%3Crect%20x%3D%27545.5%27%20y%3D%27545.0%27%20width%3D%271.4%27%20height%3D%2721.9%27%20rx%3D%27.7%27%20opacity%3D%270.36%27%2F%3E%3Crect%20x%3D%27393.0%27%20y%3D%2726.9%27%20width%3D%271.4%27%20height%3D%2719.1%27%20rx%3D%27.7%27%20opacity%3D%270.44%27%2F%3E%3Crect%20x%3D%27529.7%27%20y%3D%27299.0%27%20width%3D%271.4%27%20height%3D%2721.4%27%20rx%3D%27.7%27%20opacity%3D%270.5%27%2F%3E%3Crect%20x%3D%27364.4%27%20y%3D%2734.3%27%20width%3D%271.4%27%20height%3D%2718.3%27%20rx%3D%27.7%27%20opacity%3D%270.31%27%2F%3E%3Crect%20x%3D%27129.1%27%20y%3D%27123.9%27%20width%3D%271.4%27%20height%3D%2717.9%27%20rx%3D%27.7%27%20opacity%3D%270.25%27%2F%3E%3Crect%20x%3D%27584.2%27%20y%3D%27420.4%27%20width%3D%271.4%27%20height%3D%2723.9%27%20rx%3D%27.7%27%20opacity%3D%270.46%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  background-size: 600px 600px;
  background-repeat: repeat;
  opacity: 0.5;
  animation: ks-rainfall 3.4s linear infinite;
}
@keyframes ks-rainfall {
  from { transform: translate3d(0, -12%, 0); }
  to { transform: translate3d(-3%, 100%, 0); }
}
/* Jedna svieca na obzore — jediný teplý bod v celej scéne. */
.ks-candle {
  position: absolute;
  left: 50%;
  bottom: 4%;
  width: 12rem;
  height: 12rem;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 62%, rgba(255, 206, 130, 0.5) 0%, rgba(255, 170, 90, 0.22) 26%, transparent 62%);
  animation: ks-candle-flicker 5.5s ease-in-out infinite;
}
@keyframes ks-candle-flicker {
  0%, 100% { opacity: 0.85; transform: translateX(-50%) scale(1); }
  40% { opacity: 1; transform: translateX(-50%) scale(1.05); }
  70% { opacity: 0.78; transform: translateX(-50%) scale(0.98); }
}

@media (prefers-reduced-motion: reduce) {
  .ks-ribbon, .ks-leaves, .ks-bird, .ks-ice, .ks-rinkglow,
  .ks-medalglow, .ks-spark, .ks-balloon, .ks-rain, .ks-candle {
    animation: none;
  }
  .ks-spark, .ks-balloon { opacity: 0.7; }
}
/* ══ koniec ďalších tém ════════════════════════════════════════════════════ */


/* ══ Opravy po vizuálnej kontrole tém ════════════════════════════════════════
   1. Slnko patrí len k predvolenej oblohe a ku konfetám. Pri téme, ktorá si
      nesie vlastné pozadie, pôsobilo ako cudzia oranžová škvrna — najviac
      pri hokeji a medailách.
   2. Stuhy, lístie, vtáky, ľad a iskry boli na snímkach sotva viditeľné.
   ═════════════════════════════════════════════════════════════════════════ */
.discover-band.sky-theme-vianoce::after,
.discover-band.sky-theme-silvester::after,
.discover-band.sky-theme-futbal::after,
.discover-band.sky-theme-volby::after,
.discover-band.sky-theme-maraton::after,
.discover-band.sky-theme-hokej::after,
.discover-band.sky-theme-vesela::after,
.discover-band.sky-theme-olympiada-zlato::after,
.discover-band.sky-theme-olympiada-striebro::after,
.discover-band.sky-theme-olympiada-bronz::after {
  animation: none;
  opacity: 0;
}

/* Voľby: stuhy musia byť vidieť, nie tušiť. */
.ks-ribbon {
  height: 11%;
  filter: blur(14px);
  opacity: 0.8;
}
.ks-ribbon--w { background: rgba(255, 255, 255, 0.95); }
.ks-ribbon--b { background: rgba(52, 116, 214, 0.95); }
.ks-ribbon--r { background: rgba(226, 54, 66, 0.9); }

/* Maratón: výraznejšie lístie a tmavšie, väčšie vtáky. */
.ks-leaves {
  opacity: 1;
  background-size: 420px 420px;
}
.ks-bird {
  width: 24px;
  height: 11px;
  border-top-width: 3px;
  border-top-color: rgba(28, 20, 34, 0.8);
}

/* Hokej: ľad je biely na tmavomodrom — nech je to vidieť. */
.ks-ice--a { opacity: 1; background-size: 420px 420px; }
.ks-ice--b { opacity: 0.75; background-size: 320px 320px; }
.ks-rinkglow { opacity: 0.9; }

/* Medaily: väčšie a jasnejšie iskry, aby bolo poznať kov aj na tmavom. */
.ks-spark {
  width: 8px;
  height: 8px;
  box-shadow: 0 0 16px var(--ks-medal), 0 0 34px var(--ks-medal-soft);
}
.ks-medalglow { opacity: 1; }
/* Striebro je chladné, bronz teplý — inak sa od seba na obrazovke nelíšili. */
.discover-band.sky-theme-olympiada-striebro {
  background:
    radial-gradient(ellipse 120% 55% at 50% 118%, rgba(150, 170, 200, 0.34), transparent 62%),
    linear-gradient(180deg, #070a12 0%, #101728 26%, #1d2a42 54%, #2f4160 78%, #4d6484 100%);
}
.discover-band.sky-theme-olympiada-bronz {
  background:
    radial-gradient(ellipse 120% 55% at 50% 118%, rgba(170, 110, 60, 0.34), transparent 62%),
    linear-gradient(180deg, #100806 0%, #1e1310 26%, #33211a 54%, #4d342a 78%, #75513c 100%);
}

/* Smutná: dážď má byť čitateľný, ale nie dramatický. */
.ks-rain { opacity: 0.75; }
/* ══ koniec opráv tém ══════════════════════════════════════════════════════ */

/* Voľby — stuhy preč spod nadpisu.
   Nadpis je vľavo hore a biela stuha pod ním zrážala kontrast textu tak,
   že sa dal ťažko prečítať. Posúvame ich doprava a mierne nadol. */
.ks-ribbon {
  left: 34%;
  width: 90%;
  height: 9%;
  opacity: 0.72;
  transform-origin: left center;
}
.ks-ribbon--w { top: 30%; }
.ks-ribbon--b { top: 40%; }
.ks-ribbon--r { top: 50%; }
@keyframes ks-ribbon-drift {
  from { transform: translate3d(-2%, 0, 0) rotate(-3deg); }
  to { transform: translate3d(2%, 2%, 0) rotate(-6deg); }
}

/* Voľby — stuhy až za koniec nadpisu.
   Nadpis má max-width 42rem a pri 1100 px končí na ~49 % šírky, takže
   stuhy začínajú na 55 % a text sa s nimi už nikde nestretne. */
.ks-ribbon {
  left: 55%;
  width: 70%;
}
.ks-ribbon--w { top: 26%; opacity: 0.62; }
.ks-ribbon--b { top: 36%; }
.ks-ribbon--r { top: 46%; }


/* ══ Sviatky a výročia ═══════════════════════════════════════════════════════
   Valentín, fašiangy, Veľká noc, prvý jarný deň, Deň Zeme, SNP, Dušičky.
   Návrat: zmazať blok po značku „koniec sviatkov a výročí".
   ═════════════════════════════════════════════════════════════════════════ */

/* ── Valentín ────────────────────────────────────────────────────────────── */
.discover-band.sky-theme-valentin {
  background:
    radial-gradient(ellipse 110% 50% at 50% 114%, rgba(255, 200, 220, 0.45), transparent 60%),
    linear-gradient(180deg, #3a1030 0%, #6b1f4a 26%, #a83f68 54%, #dd7f9c 78%, #ffd3e0 100%);
}
.discover-band.sky-theme-valentin::after { animation: none; opacity: 0; }
/* Srdiečka stúpajú, nepadajú — pôsobí to ľahšie. */
.ks-hearts {
  position: absolute;
  inset: 0 0 -12%;
  background-repeat: repeat;
}
.ks-hearts--a {
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20600%20600%27%3E%3Cpath%20d%3D%27M0%2C3%20C0%2C-1%20-5%2C-1%20-5%2C3%20C-5%2C7%200%2C10%200%2C13%20C0%2C10%205%2C7%205%2C3%20C5%2C-1%200%2C-1%200%2C3%20Z%27%20fill%3D%27%2523ffffff%27%20opacity%3D%270.89%27%20transform%3D%27translate%28271.4%20335.9%29%20scale%281.05%29%20rotate%28-2%29%27%2F%3E%3Cpath%20d%3D%27M0%2C3%20C0%2C-1%20-5%2C-1%20-5%2C3%20C-5%2C7%200%2C10%200%2C13%20C0%2C10%205%2C7%205%2C3%20C5%2C-1%200%2C-1%200%2C3%20Z%27%20fill%3D%27%2523ff7d9c%27%20opacity%3D%270.59%27%20transform%3D%27translate%28113.9%20482.3%29%20scale%280.79%29%20rotate%287%29%27%2F%3E%3Cpath%20d%3D%27M0%2C3%20C0%2C-1%20-5%2C-1%20-5%2C3%20C-5%2C7%200%2C10%200%2C13%20C0%2C10%205%2C7%205%2C3%20C5%2C-1%200%2C-1%200%2C3%20Z%27%20fill%3D%27%2523ff7d9c%27%20opacity%3D%270.79%27%20transform%3D%27translate%28182.0%2054.4%29%20scale%280.99%29%20rotate%2812%29%27%2F%3E%3Cpath%20d%3D%27M0%2C3%20C0%2C-1%20-5%2C-1%20-5%2C3%20C-5%2C7%200%2C10%200%2C13%20C0%2C10%205%2C7%205%2C3%20C5%2C-1%200%2C-1%200%2C3%20Z%27%20fill%3D%27%2523ffffff%27%20opacity%3D%270.56%27%20transform%3D%27translate%28237.7%20271.8%29%20scale%280.94%29%20rotate%289%29%27%2F%3E%3Cpath%20d%3D%27M0%2C3%20C0%2C-1%20-5%2C-1%20-5%2C3%20C-5%2C7%200%2C10%200%2C13%20C0%2C10%205%2C7%205%2C3%20C5%2C-1%200%2C-1%200%2C3%20Z%27%20fill%3D%27%2523ff7d9c%27%20opacity%3D%270.86%27%20transform%3D%27translate%28317.0%2035.7%29%20scale%280.61%29%20rotate%28-15%29%27%2F%3E%3Cpath%20d%3D%27M0%2C3%20C0%2C-1%20-5%2C-1%20-5%2C3%20C-5%2C7%200%2C10%200%2C13%20C0%2C10%205%2C7%205%2C3%20C5%2C-1%200%2C-1%200%2C3%20Z%27%20fill%3D%27%2523ffb3c6%27%20opacity%3D%270.75%27%20transform%3D%27translate%28195.8%20354.6%29%20scale%280.62%29%20rotate%28-16%29%27%2F%3E%3Cpath%20d%3D%27M0%2C3%20C0%2C-1%20-5%2C-1%20-5%2C3%20C-5%2C7%200%2C10%200%2C13%20C0%2C10%205%2C7%205%2C3%20C5%2C-1%200%2C-1%200%2C3%20Z%27%20fill%3D%27%2523ff7d9c%27%20opacity%3D%270.83%27%20transform%3D%27translate%28397.5%20274.4%29%20scale%280.67%29%20rotate%2830%29%27%2F%3E%3Cpath%20d%3D%27M0%2C3%20C0%2C-1%20-5%2C-1%20-5%2C3%20C-5%2C7%200%2C10%200%2C13%20C0%2C10%205%2C7%205%2C3%20C5%2C-1%200%2C-1%200%2C3%20Z%27%20fill%3D%27%2523ff7d9c%27%20opacity%3D%270.71%27%20transform%3D%27translate%28189.2%20137.8%29%20scale%280.67%29%20rotate%28-26%29%27%2F%3E%3Cpath%20d%3D%27M0%2C3%20C0%2C-1%20-5%2C-1%20-5%2C3%20C-5%2C7%200%2C10%200%2C13%20C0%2C10%205%2C7%205%2C3%20C5%2C-1%200%2C-1%200%2C3%20Z%27%20fill%3D%27%2523ff7d9c%27%20opacity%3D%270.64%27%20transform%3D%27translate%28508.0%20231.9%29%20scale%281.07%29%20rotate%2821%29%27%2F%3E%3Cpath%20d%3D%27M0%2C3%20C0%2C-1%20-5%2C-1%20-5%2C3%20C-5%2C7%200%2C10%200%2C13%20C0%2C10%205%2C7%205%2C3%20C5%2C-1%200%2C-1%200%2C3%20Z%27%20fill%3D%27%2523ffb3c6%27%20opacity%3D%270.58%27%20transform%3D%27translate%28556.2%2031.4%29%20scale%280.73%29%20rotate%2813%29%27%2F%3E%3Cpath%20d%3D%27M0%2C3%20C0%2C-1%20-5%2C-1%20-5%2C3%20C-5%2C7%200%2C10%200%2C13%20C0%2C10%205%2C7%205%2C3%20C5%2C-1%200%2C-1%200%2C3%20Z%27%20fill%3D%27%2523ffb3c6%27%20opacity%3D%270.56%27%20transform%3D%27translate%28377.7%20467.1%29%20scale%280.66%29%20rotate%28-25%29%27%2F%3E%3Cpath%20d%3D%27M0%2C3%20C0%2C-1%20-5%2C-1%20-5%2C3%20C-5%2C7%200%2C10%200%2C13%20C0%2C10%205%2C7%205%2C3%20C5%2C-1%200%2C-1%200%2C3%20Z%27%20fill%3D%27%2523ff7d9c%27%20opacity%3D%270.57%27%20transform%3D%27translate%28246.0%20553.7%29%20scale%280.58%29%20rotate%2812%29%27%2F%3E%3Cpath%20d%3D%27M0%2C3%20C0%2C-1%20-5%2C-1%20-5%2C3%20C-5%2C7%200%2C10%200%2C13%20C0%2C10%205%2C7%205%2C3%20C5%2C-1%200%2C-1%200%2C3%20Z%27%20fill%3D%27%2523ff7d9c%27%20opacity%3D%270.94%27%20transform%3D%27translate%28478.2%20106.6%29%20scale%280.84%29%20rotate%28-3%29%27%2F%3E%3Cpath%20d%3D%27M0%2C3%20C0%2C-1%20-5%2C-1%20-5%2C3%20C-5%2C7%200%2C10%200%2C13%20C0%2C10%205%2C7%205%2C3%20C5%2C-1%200%2C-1%200%2C3%20Z%27%20fill%3D%27%2523ff7d9c%27%20opacity%3D%270.55%27%20transform%3D%27translate%28461.7%20251.5%29%20scale%280.73%29%20rotate%28-6%29%27%2F%3E%3Cpath%20d%3D%27M0%2C3%20C0%2C-1%20-5%2C-1%20-5%2C3%20C-5%2C7%200%2C10%200%2C13%20C0%2C10%205%2C7%205%2C3%20C5%2C-1%200%2C-1%200%2C3%20Z%27%20fill%3D%27%2523ff7d9c%27%20opacity%3D%270.63%27%20transform%3D%27translate%28518.6%20584.9%29%20scale%280.86%29%20rotate%2830%29%27%2F%3E%3Cpath%20d%3D%27M0%2C3%20C0%2C-1%20-5%2C-1%20-5%2C3%20C-5%2C7%200%2C10%200%2C13%20C0%2C10%205%2C7%205%2C3%20C5%2C-1%200%2C-1%200%2C3%20Z%27%20fill%3D%27%2523ff7d9c%27%20opacity%3D%270.64%27%20transform%3D%27translate%28236.6%20512.6%29%20scale%280.89%29%20rotate%28-24%29%27%2F%3E%3Cpath%20d%3D%27M0%2C3%20C0%2C-1%20-5%2C-1%20-5%2C3%20C-5%2C7%200%2C10%200%2C13%20C0%2C10%205%2C7%205%2C3%20C5%2C-1%200%2C-1%200%2C3%20Z%27%20fill%3D%27%2523ff7d9c%27%20opacity%3D%270.58%27%20transform%3D%27translate%28155.0%20463.6%29%20scale%280.7%29%20rotate%28-12%29%27%2F%3E%3Cpath%20d%3D%27M0%2C3%20C0%2C-1%20-5%2C-1%20-5%2C3%20C-5%2C7%200%2C10%200%2C13%20C0%2C10%205%2C7%205%2C3%20C5%2C-1%200%2C-1%200%2C3%20Z%27%20fill%3D%27%2523ffffff%27%20opacity%3D%270.73%27%20transform%3D%27translate%28125.2%20382.0%29%20scale%280.51%29%20rotate%28-8%29%27%2F%3E%3Cpath%20d%3D%27M0%2C3%20C0%2C-1%20-5%2C-1%20-5%2C3%20C-5%2C7%200%2C10%200%2C13%20C0%2C10%205%2C7%205%2C3%20C5%2C-1%200%2C-1%200%2C3%20Z%27%20fill%3D%27%2523ff7d9c%27%20opacity%3D%270.8%27%20transform%3D%27translate%28575.5%20290.2%29%20scale%280.84%29%20rotate%2822%29%27%2F%3E%3Cpath%20d%3D%27M0%2C3%20C0%2C-1%20-5%2C-1%20-5%2C3%20C-5%2C7%200%2C10%200%2C13%20C0%2C10%205%2C7%205%2C3%20C5%2C-1%200%2C-1%200%2C3%20Z%27%20fill%3D%27%2523ff7d9c%27%20opacity%3D%270.85%27%20transform%3D%27translate%28186.5%20137.0%29%20scale%280.87%29%20rotate%2814%29%27%2F%3E%3Cpath%20d%3D%27M0%2C3%20C0%2C-1%20-5%2C-1%20-5%2C3%20C-5%2C7%200%2C10%200%2C13%20C0%2C10%205%2C7%205%2C3%20C5%2C-1%200%2C-1%200%2C3%20Z%27%20fill%3D%27%2523ffffff%27%20opacity%3D%270.58%27%20transform%3D%27translate%28564.2%20118.0%29%20scale%281.07%29%20rotate%2823%29%27%2F%3E%3Cpath%20d%3D%27M0%2C3%20C0%2C-1%20-5%2C-1%20-5%2C3%20C-5%2C7%200%2C10%200%2C13%20C0%2C10%205%2C7%205%2C3%20C5%2C-1%200%2C-1%200%2C3%20Z%27%20fill%3D%27%2523ffffff%27%20opacity%3D%270.83%27%20transform%3D%27translate%2828.4%2065.4%29%20scale%280.81%29%20rotate%28-15%29%27%2F%3E%3C%2Fsvg%3E");
  background-size: 600px 600px;
  opacity: 0.9;
  animation: ks-rise-slow 20s linear infinite;
}
.ks-hearts--b {
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20440%20440%27%3E%3Cpath%20d%3D%27M0%2C3%20C0%2C-1%20-5%2C-1%20-5%2C3%20C-5%2C7%200%2C10%200%2C13%20C0%2C10%205%2C7%205%2C3%20C5%2C-1%200%2C-1%200%2C3%20Z%27%20fill%3D%27%2523ff5c85%27%20opacity%3D%270.95%27%20transform%3D%27translate%28284.7%20394.5%29%20scale%280.9%29%20rotate%28-21%29%27%2F%3E%3Cpath%20d%3D%27M0%2C3%20C0%2C-1%20-5%2C-1%20-5%2C3%20C-5%2C7%200%2C10%200%2C13%20C0%2C10%205%2C7%205%2C3%20C5%2C-1%200%2C-1%200%2C3%20Z%27%20fill%3D%27%2523ff5c85%27%20opacity%3D%270.77%27%20transform%3D%27translate%28289.5%20386.0%29%20scale%280.78%29%20rotate%2822%29%27%2F%3E%3Cpath%20d%3D%27M0%2C3%20C0%2C-1%20-5%2C-1%20-5%2C3%20C-5%2C7%200%2C10%200%2C13%20C0%2C10%205%2C7%205%2C3%20C5%2C-1%200%2C-1%200%2C3%20Z%27%20fill%3D%27%2523ff5c85%27%20opacity%3D%270.57%27%20transform%3D%27translate%28396.8%2087.2%29%20scale%280.76%29%20rotate%28-20%29%27%2F%3E%3Cpath%20d%3D%27M0%2C3%20C0%2C-1%20-5%2C-1%20-5%2C3%20C-5%2C7%200%2C10%200%2C13%20C0%2C10%205%2C7%205%2C3%20C5%2C-1%200%2C-1%200%2C3%20Z%27%20fill%3D%27%2523ffd0dc%27%20opacity%3D%270.87%27%20transform%3D%27translate%28491.3%2044.8%29%20scale%280.91%29%20rotate%28-10%29%27%2F%3E%3Cpath%20d%3D%27M0%2C3%20C0%2C-1%20-5%2C-1%20-5%2C3%20C-5%2C7%200%2C10%200%2C13%20C0%2C10%205%2C7%205%2C3%20C5%2C-1%200%2C-1%200%2C3%20Z%27%20fill%3D%27%2523ff5c85%27%20opacity%3D%270.59%27%20transform%3D%27translate%2852.4%20551.3%29%20scale%280.99%29%20rotate%2810%29%27%2F%3E%3Cpath%20d%3D%27M0%2C3%20C0%2C-1%20-5%2C-1%20-5%2C3%20C-5%2C7%200%2C10%200%2C13%20C0%2C10%205%2C7%205%2C3%20C5%2C-1%200%2C-1%200%2C3%20Z%27%20fill%3D%27%2523ff5c85%27%20opacity%3D%270.77%27%20transform%3D%27translate%28592.3%20568.0%29%20scale%280.57%29%20rotate%28-5%29%27%2F%3E%3Cpath%20d%3D%27M0%2C3%20C0%2C-1%20-5%2C-1%20-5%2C3%20C-5%2C7%200%2C10%200%2C13%20C0%2C10%205%2C7%205%2C3%20C5%2C-1%200%2C-1%200%2C3%20Z%27%20fill%3D%27%2523ff5c85%27%20opacity%3D%270.75%27%20transform%3D%27translate%28529.2%20334.9%29%20scale%281.09%29%20rotate%2823%29%27%2F%3E%3Cpath%20d%3D%27M0%2C3%20C0%2C-1%20-5%2C-1%20-5%2C3%20C-5%2C7%200%2C10%200%2C13%20C0%2C10%205%2C7%205%2C3%20C5%2C-1%200%2C-1%200%2C3%20Z%27%20fill%3D%27%2523ffd0dc%27%20opacity%3D%270.77%27%20transform%3D%27translate%2850.2%20364.5%29%20scale%280.9%29%20rotate%28-2%29%27%2F%3E%3Cpath%20d%3D%27M0%2C3%20C0%2C-1%20-5%2C-1%20-5%2C3%20C-5%2C7%200%2C10%200%2C13%20C0%2C10%205%2C7%205%2C3%20C5%2C-1%200%2C-1%200%2C3%20Z%27%20fill%3D%27%2523ffd0dc%27%20opacity%3D%270.69%27%20transform%3D%27translate%28384.4%2049.6%29%20scale%280.62%29%20rotate%2817%29%27%2F%3E%3Cpath%20d%3D%27M0%2C3%20C0%2C-1%20-5%2C-1%20-5%2C3%20C-5%2C7%200%2C10%200%2C13%20C0%2C10%205%2C7%205%2C3%20C5%2C-1%200%2C-1%200%2C3%20Z%27%20fill%3D%27%2523ff5c85%27%20opacity%3D%270.68%27%20transform%3D%27translate%28217.9%20414.1%29%20scale%280.9%29%20rotate%28-23%29%27%2F%3E%3Cpath%20d%3D%27M0%2C3%20C0%2C-1%20-5%2C-1%20-5%2C3%20C-5%2C7%200%2C10%200%2C13%20C0%2C10%205%2C7%205%2C3%20C5%2C-1%200%2C-1%200%2C3%20Z%27%20fill%3D%27%2523ffd0dc%27%20opacity%3D%270.88%27%20transform%3D%27translate%28222.8%20343.9%29%20scale%280.96%29%20rotate%28-19%29%27%2F%3E%3Cpath%20d%3D%27M0%2C3%20C0%2C-1%20-5%2C-1%20-5%2C3%20C-5%2C7%200%2C10%200%2C13%20C0%2C10%205%2C7%205%2C3%20C5%2C-1%200%2C-1%200%2C3%20Z%27%20fill%3D%27%2523ffd0dc%27%20opacity%3D%270.63%27%20transform%3D%27translate%28258.1%20311.4%29%20scale%280.63%29%20rotate%28-4%29%27%2F%3E%3Cpath%20d%3D%27M0%2C3%20C0%2C-1%20-5%2C-1%20-5%2C3%20C-5%2C7%200%2C10%200%2C13%20C0%2C10%205%2C7%205%2C3%20C5%2C-1%200%2C-1%200%2C3%20Z%27%20fill%3D%27%2523ffd0dc%27%20opacity%3D%270.56%27%20transform%3D%27translate%28364.4%20452.0%29%20scale%280.63%29%20rotate%28-25%29%27%2F%3E%3Cpath%20d%3D%27M0%2C3%20C0%2C-1%20-5%2C-1%20-5%2C3%20C-5%2C7%200%2C10%200%2C13%20C0%2C10%205%2C7%205%2C3%20C5%2C-1%200%2C-1%200%2C3%20Z%27%20fill%3D%27%2523ffd0dc%27%20opacity%3D%270.7%27%20transform%3D%27translate%28165.9%20206.5%29%20scale%280.88%29%20rotate%28-27%29%27%2F%3E%3C%2Fsvg%3E");
  background-size: 440px 440px;
  opacity: 0.6;
  animation: ks-rise-slow 31s linear infinite;
}
@keyframes ks-rise-slow {
  from { transform: translate3d(0, 12%, 0); }
  to { transform: translate3d(4%, -100%, 0); }
}

/* ── Fašiangy ────────────────────────────────────────────────────────────── */
.discover-band.sky-theme-fasiangy {
  background:
    radial-gradient(ellipse 110% 50% at 50% 112%, rgba(255, 226, 150, 0.42), transparent 58%),
    linear-gradient(180deg, #2a1240 0%, #4d1f63 26%, #8a3a6d 54%, #cf6f63 78%, #f6c073 100%);
}
.discover-band.sky-theme-fasiangy::after { animation: none; opacity: 0; }
.ks-theme--fasiangy .ks-confetti:nth-child(4n) { background: #ffd166; }
.ks-theme--fasiangy .ks-confetti:nth-child(4n+1) { background: #9b5de5; }
.ks-theme--fasiangy .ks-confetti:nth-child(4n+2) { background: #00bbf9; }
.ks-theme--fasiangy .ks-confetti:nth-child(4n+3) { background: #f15bb5; }
/* Serpentíny — dlhé stuhy, ktoré sa vlnia. */
.ks-streamer {
  position: absolute;
  top: -6%;
  width: 7px;
  height: 46%;
  border-radius: 6px;
  opacity: 0.75;
  animation: ks-streamer-sway 11s ease-in-out infinite alternate;
}
.ks-streamer--1 { left: 14%; background: linear-gradient(#ffd166, transparent); animation-delay: 0s; }
.ks-streamer--2 { left: 38%; background: linear-gradient(#f15bb5, transparent); animation-delay: 1.6s; }
.ks-streamer--3 { left: 63%; background: linear-gradient(#00bbf9, transparent); animation-delay: 3.2s; }
.ks-streamer--4 { left: 86%; background: linear-gradient(#9b5de5, transparent); animation-delay: 4.8s; }
@keyframes ks-streamer-sway {
  from { transform: rotate(-7deg) translateY(-2%); }
  to { transform: rotate(7deg) translateY(2%); }
}

/* ── Veľká noc ───────────────────────────────────────────────────────────── */
.discover-band.sky-theme-velkanoc {
  background:
    radial-gradient(ellipse 110% 48% at 55% 112%, rgba(255, 248, 205, 0.5), transparent 58%),
    linear-gradient(180deg, #35547f 0%, #5b86b8 26%, #93bcd8 54%, #cfe4d6 78%, #f6f2cf 100%);
}
.ks-eggs {
  position: absolute;
  inset: -10% 0 0;
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20600%20600%27%3E%3Cellipse%20cx%3D%27155.4%27%20cy%3D%27411.2%27%20rx%3D%276.3%27%20ry%3D%278.7%27%20fill%3D%27%25238ad4c1%27%20opacity%3D%270.9%27%20transform%3D%27rotate%2817%20155.4%20411.2%29%27%2F%3E%3Cellipse%20cx%3D%27399.7%27%20cy%3D%27521.5%27%20rx%3D%276.2%27%20ry%3D%278.6%27%20fill%3D%27%2523ffd166%27%20opacity%3D%270.86%27%20transform%3D%27rotate%28-16%20399.7%20521.5%29%27%2F%3E%3Cellipse%20cx%3D%27128.3%27%20cy%3D%27176.8%27%20rx%3D%275.5%27%20ry%3D%277.7%27%20fill%3D%27%2523ffffff%27%20opacity%3D%271.0%27%20transform%3D%27rotate%2817%20128.3%20176.8%29%27%2F%3E%3Cellipse%20cx%3D%27595.8%27%20cy%3D%27500.6%27%20rx%3D%274.5%27%20ry%3D%276.3%27%20fill%3D%27%2523f4978e%27%20opacity%3D%270.95%27%20transform%3D%27rotate%2815%20595.8%20500.6%29%27%2F%3E%3Cellipse%20cx%3D%27446.9%27%20cy%3D%27569.6%27%20rx%3D%276.6%27%20ry%3D%279.2%27%20fill%3D%27%25238ad4c1%27%20opacity%3D%270.85%27%20transform%3D%27rotate%28-12%20446.9%20569.6%29%27%2F%3E%3Cellipse%20cx%3D%27453.0%27%20cy%3D%27338.5%27%20rx%3D%275.5%27%20ry%3D%277.7%27%20fill%3D%27%2523a5b8f3%27%20opacity%3D%270.89%27%20transform%3D%27rotate%28-7%20453.0%20338.5%29%27%2F%3E%3Cellipse%20cx%3D%27393.2%27%20cy%3D%27207.6%27%20rx%3D%276.0%27%20ry%3D%278.4%27%20fill%3D%27%2523f4978e%27%20opacity%3D%270.91%27%20transform%3D%27rotate%287%20393.2%20207.6%29%27%2F%3E%3Cellipse%20cx%3D%27332.5%27%20cy%3D%27449.0%27%20rx%3D%274.7%27%20ry%3D%276.5%27%20fill%3D%27%2523a5b8f3%27%20opacity%3D%270.86%27%20transform%3D%27rotate%289%20332.5%20449.0%29%27%2F%3E%3Cellipse%20cx%3D%27176.0%27%20cy%3D%27107.6%27%20rx%3D%275.3%27%20ry%3D%277.4%27%20fill%3D%27%2523f4978e%27%20opacity%3D%270.88%27%20transform%3D%27rotate%28-6%20176.0%20107.6%29%27%2F%3E%3Cellipse%20cx%3D%27237.5%27%20cy%3D%2778.5%27%20rx%3D%275.8%27%20ry%3D%278.0%27%20fill%3D%27%25238ad4c1%27%20opacity%3D%270.97%27%20transform%3D%27rotate%28-13%20237.5%2078.5%29%27%2F%3E%3Cellipse%20cx%3D%27420.9%27%20cy%3D%2778.7%27%20rx%3D%275.5%27%20ry%3D%277.7%27%20fill%3D%27%2523a5b8f3%27%20opacity%3D%270.82%27%20transform%3D%27rotate%286%20420.9%2078.7%29%27%2F%3E%3Cellipse%20cx%3D%27431.3%27%20cy%3D%27559.8%27%20rx%3D%274.5%27%20ry%3D%276.2%27%20fill%3D%27%2523a5b8f3%27%20opacity%3D%270.89%27%20transform%3D%27rotate%28-18%20431.3%20559.8%29%27%2F%3E%3Cellipse%20cx%3D%2795.9%27%20cy%3D%27248.1%27%20rx%3D%276.8%27%20ry%3D%279.5%27%20fill%3D%27%2523f4978e%27%20opacity%3D%270.76%27%20transform%3D%27rotate%2819%2095.9%20248.1%29%27%2F%3E%3Cellipse%20cx%3D%27512.2%27%20cy%3D%27224.9%27%20rx%3D%276.4%27%20ry%3D%278.9%27%20fill%3D%27%2523ffffff%27%20opacity%3D%270.77%27%20transform%3D%27rotate%28-18%20512.2%20224.9%29%27%2F%3E%3Cellipse%20cx%3D%27297.8%27%20cy%3D%27516.9%27%20rx%3D%274.5%27%20ry%3D%276.2%27%20fill%3D%27%2523ffd166%27%20opacity%3D%270.81%27%20transform%3D%27rotate%2810%20297.8%20516.9%29%27%2F%3E%3Cellipse%20cx%3D%27436.6%27%20cy%3D%27204.8%27%20rx%3D%275.2%27%20ry%3D%277.2%27%20fill%3D%27%2523ffffff%27%20opacity%3D%270.73%27%20transform%3D%27rotate%28-17%20436.6%20204.8%29%27%2F%3E%3Cellipse%20cx%3D%27135.3%27%20cy%3D%2741.5%27%20rx%3D%276.2%27%20ry%3D%278.6%27%20fill%3D%27%2523ffffff%27%20opacity%3D%270.91%27%20transform%3D%27rotate%283%20135.3%2041.5%29%27%2F%3E%3Cellipse%20cx%3D%27582.7%27%20cy%3D%27495.2%27%20rx%3D%276.2%27%20ry%3D%278.6%27%20fill%3D%27%25238ad4c1%27%20opacity%3D%271.0%27%20transform%3D%27rotate%281%20582.7%20495.2%29%27%2F%3E%3C%2Fsvg%3E");
  background-size: 520px 520px;
  background-repeat: repeat;
  opacity: 0.9;
  animation: ks-fall-gentle 26s linear infinite;
}
@keyframes ks-fall-gentle {
  from { transform: translate3d(0, -12%, 0) rotate(0deg); }
  to { transform: translate3d(-5%, 100%, 0) rotate(4deg); }
}

/* ── Prvý jarný deň ──────────────────────────────────────────────────────── */
.discover-band.sky-theme-jar {
  background:
    radial-gradient(ellipse 110% 48% at 62% 112%, rgba(255, 245, 200, 0.5), transparent 58%),
    linear-gradient(180deg, #123a63 0%, #2f77ad 26%, #6db6d6 54%, #b6e3d5 80%, #eaf7c9 100%);
}
.ks-petals {
  position: absolute;
  inset: -10% 0 0;
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20600%20600%27%3E%3Cellipse%20cx%3D%2764.1%27%20cy%3D%27421.6%27%20rx%3D%275.5%27%20ry%3D%272.3%27%20fill%3D%27%2523ffffff%27%20opacity%3D%270.89%27%20transform%3D%27rotate%28339%2064.1%20421.6%29%27%2F%3E%3Cellipse%20cx%3D%27174.6%27%20cy%3D%2743.6%27%20rx%3D%274.8%27%20ry%3D%272.0%27%20fill%3D%27%2523ffffff%27%20opacity%3D%270.76%27%20transform%3D%27rotate%28168%20174.6%2043.6%29%27%2F%3E%3Cellipse%20cx%3D%27545.4%27%20cy%3D%27158.1%27%20rx%3D%276.1%27%20ry%3D%272.5%27%20fill%3D%27%2523ffffff%27%20opacity%3D%270.74%27%20transform%3D%27rotate%28114%20545.4%20158.1%29%27%2F%3E%3Cellipse%20cx%3D%27379.6%27%20cy%3D%27309.8%27%20rx%3D%274.0%27%20ry%3D%271.7%27%20fill%3D%27%2523ffffff%27%20opacity%3D%270.67%27%20transform%3D%27rotate%28240%20379.6%20309.8%29%27%2F%3E%3Cellipse%20cx%3D%27391.0%27%20cy%3D%2773.8%27%20rx%3D%274.5%27%20ry%3D%271.9%27%20fill%3D%27%2523ffd9e6%27%20opacity%3D%270.94%27%20transform%3D%27rotate%2830%20391.0%2073.8%29%27%2F%3E%3Cellipse%20cx%3D%27229.1%27%20cy%3D%27350.0%27%20rx%3D%276.3%27%20ry%3D%272.6%27%20fill%3D%27%2523ffd9e6%27%20opacity%3D%270.95%27%20transform%3D%27rotate%28323%20229.1%20350.0%29%27%2F%3E%3Cellipse%20cx%3D%27412.1%27%20cy%3D%2766.9%27%20rx%3D%275.3%27%20ry%3D%272.2%27%20fill%3D%27%2523ffd9e6%27%20opacity%3D%270.95%27%20transform%3D%27rotate%28228%20412.1%2066.9%29%27%2F%3E%3Cellipse%20cx%3D%27448.2%27%20cy%3D%27292.0%27%20rx%3D%275.5%27%20ry%3D%272.3%27%20fill%3D%27%2523ffe9b8%27%20opacity%3D%270.69%27%20transform%3D%27rotate%2897%20448.2%20292.0%29%27%2F%3E%3Cellipse%20cx%3D%27478.9%27%20cy%3D%27300.3%27%20rx%3D%273.8%27%20ry%3D%271.6%27%20fill%3D%27%2523ffd9e6%27%20opacity%3D%270.71%27%20transform%3D%27rotate%28295%20478.9%20300.3%29%27%2F%3E%3Cellipse%20cx%3D%2771.0%27%20cy%3D%2797.0%27%20rx%3D%274.7%27%20ry%3D%272.0%27%20fill%3D%27%2523ffe9b8%27%20opacity%3D%270.64%27%20transform%3D%27rotate%28247%2071.0%2097.0%29%27%2F%3E%3Cellipse%20cx%3D%27288.3%27%20cy%3D%27411.2%27%20rx%3D%275.1%27%20ry%3D%272.1%27%20fill%3D%27%2523ffffff%27%20opacity%3D%270.78%27%20transform%3D%27rotate%28164%20288.3%20411.2%29%27%2F%3E%3Cellipse%20cx%3D%27250.6%27%20cy%3D%27496.0%27%20rx%3D%274.3%27%20ry%3D%271.8%27%20fill%3D%27%2523ffffff%27%20opacity%3D%270.95%27%20transform%3D%27rotate%28142%20250.6%20496.0%29%27%2F%3E%3Cellipse%20cx%3D%27563.4%27%20cy%3D%2739.9%27%20rx%3D%273.9%27%20ry%3D%271.6%27%20fill%3D%27%2523ffe9b8%27%20opacity%3D%270.78%27%20transform%3D%27rotate%28253%20563.4%2039.9%29%27%2F%3E%3Cellipse%20cx%3D%27495.2%27%20cy%3D%27243.4%27%20rx%3D%276.5%27%20ry%3D%272.7%27%20fill%3D%27%2523ffe9b8%27%20opacity%3D%270.83%27%20transform%3D%27rotate%287%20495.2%20243.4%29%27%2F%3E%3Cellipse%20cx%3D%27563.5%27%20cy%3D%27158.1%27%20rx%3D%274.4%27%20ry%3D%271.8%27%20fill%3D%27%2523ffe9b8%27%20opacity%3D%270.82%27%20transform%3D%27rotate%2868%20563.5%20158.1%29%27%2F%3E%3Cellipse%20cx%3D%27478.6%27%20cy%3D%2757.2%27%20rx%3D%273.8%27%20ry%3D%271.6%27%20fill%3D%27%2523ffd9e6%27%20opacity%3D%270.99%27%20transform%3D%27rotate%2869%20478.6%2057.2%29%27%2F%3E%3Cellipse%20cx%3D%27351.6%27%20cy%3D%27169.6%27%20rx%3D%276.3%27%20ry%3D%272.6%27%20fill%3D%27%2523ffffff%27%20opacity%3D%270.65%27%20transform%3D%27rotate%28129%20351.6%20169.6%29%27%2F%3E%3Cellipse%20cx%3D%27573.9%27%20cy%3D%27465.0%27%20rx%3D%273.5%27%20ry%3D%271.5%27%20fill%3D%27%2523ffe9b8%27%20opacity%3D%270.71%27%20transform%3D%27rotate%2890%20573.9%20465.0%29%27%2F%3E%3Cellipse%20cx%3D%27149.2%27%20cy%3D%27362.4%27%20rx%3D%276.3%27%20ry%3D%272.6%27%20fill%3D%27%2523ffffff%27%20opacity%3D%270.61%27%20transform%3D%27rotate%28105%20149.2%20362.4%29%27%2F%3E%3Cellipse%20cx%3D%27553.0%27%20cy%3D%27444.8%27%20rx%3D%275.9%27%20ry%3D%272.5%27%20fill%3D%27%2523ffe9b8%27%20opacity%3D%270.94%27%20transform%3D%27rotate%2857%20553.0%20444.8%29%27%2F%3E%3Cellipse%20cx%3D%27219.9%27%20cy%3D%27230.5%27%20rx%3D%276.4%27%20ry%3D%272.7%27%20fill%3D%27%2523ffffff%27%20opacity%3D%270.8%27%20transform%3D%27rotate%28197%20219.9%20230.5%29%27%2F%3E%3Cellipse%20cx%3D%27571.4%27%20cy%3D%2718.9%27%20rx%3D%275.4%27%20ry%3D%272.3%27%20fill%3D%27%2523ffffff%27%20opacity%3D%270.64%27%20transform%3D%27rotate%28155%20571.4%2018.9%29%27%2F%3E%3Cellipse%20cx%3D%27484.3%27%20cy%3D%2777.9%27%20rx%3D%273.7%27%20ry%3D%271.5%27%20fill%3D%27%2523ffd9e6%27%20opacity%3D%270.7%27%20transform%3D%27rotate%28334%20484.3%2077.9%29%27%2F%3E%3Cellipse%20cx%3D%27268.4%27%20cy%3D%27326.8%27%20rx%3D%274.6%27%20ry%3D%271.9%27%20fill%3D%27%2523ffffff%27%20opacity%3D%270.88%27%20transform%3D%27rotate%28283%20268.4%20326.8%29%27%2F%3E%3Cellipse%20cx%3D%27324.8%27%20cy%3D%27251.2%27%20rx%3D%274.8%27%20ry%3D%272.0%27%20fill%3D%27%2523ffe9b8%27%20opacity%3D%270.67%27%20transform%3D%27rotate%2832%20324.8%20251.2%29%27%2F%3E%3Cellipse%20cx%3D%2710.3%27%20cy%3D%27544.9%27%20rx%3D%276.4%27%20ry%3D%272.7%27%20fill%3D%27%2523ffffff%27%20opacity%3D%271.0%27%20transform%3D%27rotate%28310%2010.3%20544.9%29%27%2F%3E%3Cellipse%20cx%3D%27357.3%27%20cy%3D%27494.0%27%20rx%3D%275.6%27%20ry%3D%272.3%27%20fill%3D%27%2523ffffff%27%20opacity%3D%270.71%27%20transform%3D%27rotate%28208%20357.3%20494.0%29%27%2F%3E%3Cellipse%20cx%3D%27281.9%27%20cy%3D%27560.0%27%20rx%3D%276.1%27%20ry%3D%272.5%27%20fill%3D%27%2523ffe9b8%27%20opacity%3D%270.86%27%20transform%3D%27rotate%2822%20281.9%20560.0%29%27%2F%3E%3Cellipse%20cx%3D%27388.8%27%20cy%3D%27493.9%27%20rx%3D%276.3%27%20ry%3D%272.6%27%20fill%3D%27%2523ffd9e6%27%20opacity%3D%270.95%27%20transform%3D%27rotate%2825%20388.8%20493.9%29%27%2F%3E%3Cellipse%20cx%3D%27497.3%27%20cy%3D%27558.7%27%20rx%3D%273.7%27%20ry%3D%271.5%27%20fill%3D%27%2523ffffff%27%20opacity%3D%270.62%27%20transform%3D%27rotate%28286%20497.3%20558.7%29%27%2F%3E%3C%2Fsvg%3E");
  background-size: 560px 560px;
  background-repeat: repeat;
  opacity: 0.85;
  animation: ks-fall-gentle 19s linear infinite;
}
.ks-petals--fast {
  background-size: 400px 400px;
  opacity: 0.6;
  animation-duration: 12s;
}

/* ── Deň Zeme ────────────────────────────────────────────────────────────── */
.discover-band.sky-theme-den-zeme {
  background:
    radial-gradient(ellipse 110% 50% at 50% 114%, rgba(190, 240, 180, 0.45), transparent 60%),
    linear-gradient(180deg, #08331f 0%, #10553a 26%, #2b8560 54%, #6fb98a 78%, #c8e9bd 100%);
}
.discover-band.sky-theme-den-zeme::after { animation: none; opacity: 0; }
/* Lístie tu neopadáva, len sa vznáša — Deň Zeme nie je jeseň. */
.ks-greenleaves {
  position: absolute;
  inset: -8% 0 -8%;
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20600%20600%27%3E%3Cellipse%20cx%3D%27579.1%27%20cy%3D%277.0%27%20rx%3D%277.9%27%20ry%3D%273.6%27%20fill%3D%27%25237bbf6a%27%20opacity%3D%270.61%27%20transform%3D%27rotate%2857%20579.1%207.0%29%27%2F%3E%3Cellipse%20cx%3D%27527.7%27%20cy%3D%27408.8%27%20rx%3D%278.4%27%20ry%3D%273.8%27%20fill%3D%27%25237bbf6a%27%20opacity%3D%270.65%27%20transform%3D%27rotate%28360%20527.7%20408.8%29%27%2F%3E%3Cellipse%20cx%3D%27279.8%27%20cy%3D%27213.4%27%20rx%3D%276.6%27%20ry%3D%273.0%27%20fill%3D%27%25237bbf6a%27%20opacity%3D%270.95%27%20transform%3D%27rotate%28124%20279.8%20213.4%29%27%2F%3E%3Cellipse%20cx%3D%27478.6%27%20cy%3D%27134.0%27%20rx%3D%278.7%27%20ry%3D%274.0%27%20fill%3D%27%25237bbf6a%27%20opacity%3D%270.83%27%20transform%3D%27rotate%28184%20478.6%20134.0%29%27%2F%3E%3Cellipse%20cx%3D%27504.4%27%20cy%3D%27293.8%27%20rx%3D%276.8%27%20ry%3D%273.1%27%20fill%3D%27%2523a8d98f%27%20opacity%3D%270.83%27%20transform%3D%27rotate%28288%20504.4%20293.8%29%27%2F%3E%3Cellipse%20cx%3D%27558.1%27%20cy%3D%27387.3%27%20rx%3D%276.6%27%20ry%3D%273.0%27%20fill%3D%27%25237bbf6a%27%20opacity%3D%270.8%27%20transform%3D%27rotate%28311%20558.1%20387.3%29%27%2F%3E%3Cellipse%20cx%3D%27567.0%27%20cy%3D%2711.3%27%20rx%3D%275.6%27%20ry%3D%272.5%27%20fill%3D%27%25235ea36b%27%20opacity%3D%270.94%27%20transform%3D%27rotate%2862%20567.0%2011.3%29%27%2F%3E%3Cellipse%20cx%3D%2710.4%27%20cy%3D%27318.0%27%20rx%3D%275.6%27%20ry%3D%272.5%27%20fill%3D%27%25237bbf6a%27%20opacity%3D%270.76%27%20transform%3D%27rotate%28308%2010.4%20318.0%29%27%2F%3E%3Cellipse%20cx%3D%2744.2%27%20cy%3D%27435.3%27%20rx%3D%278.7%27%20ry%3D%274.0%27%20fill%3D%27%25235ea36b%27%20opacity%3D%270.69%27%20transform%3D%27rotate%28106%2044.2%20435.3%29%27%2F%3E%3Cellipse%20cx%3D%27326.2%27%20cy%3D%27300.0%27%20rx%3D%275.3%27%20ry%3D%272.4%27%20fill%3D%27%25237bbf6a%27%20opacity%3D%270.93%27%20transform%3D%27rotate%28112%20326.2%20300.0%29%27%2F%3E%3Cellipse%20cx%3D%27191.0%27%20cy%3D%27542.9%27%20rx%3D%276.3%27%20ry%3D%272.9%27%20fill%3D%27%25237bbf6a%27%20opacity%3D%270.9%27%20transform%3D%27rotate%28159%20191.0%20542.9%29%27%2F%3E%3Cellipse%20cx%3D%27502.6%27%20cy%3D%27163.5%27%20rx%3D%275.6%27%20ry%3D%272.5%27%20fill%3D%27%2523a8d98f%27%20opacity%3D%270.75%27%20transform%3D%27rotate%28244%20502.6%20163.5%29%27%2F%3E%3Cellipse%20cx%3D%27504.0%27%20cy%3D%27556.8%27%20rx%3D%278.0%27%20ry%3D%273.6%27%20fill%3D%27%25237bbf6a%27%20opacity%3D%270.78%27%20transform%3D%27rotate%28103%20504.0%20556.8%29%27%2F%3E%3Cellipse%20cx%3D%2735.6%27%20cy%3D%27153.0%27%20rx%3D%278.3%27%20ry%3D%273.8%27%20fill%3D%27%2523a8d98f%27%20opacity%3D%270.62%27%20transform%3D%27rotate%28203%2035.6%20153.0%29%27%2F%3E%3Cellipse%20cx%3D%2737.0%27%20cy%3D%27506.2%27%20rx%3D%277.3%27%20ry%3D%273.3%27%20fill%3D%27%25235ea36b%27%20opacity%3D%270.78%27%20transform%3D%27rotate%28166%2037.0%20506.2%29%27%2F%3E%3Cellipse%20cx%3D%27432.5%27%20cy%3D%27407.0%27%20rx%3D%277.4%27%20ry%3D%273.4%27%20fill%3D%27%25235ea36b%27%20opacity%3D%270.93%27%20transform%3D%27rotate%2820%20432.5%20407.0%29%27%2F%3E%3Cellipse%20cx%3D%27260.2%27%20cy%3D%2733.6%27%20rx%3D%278.7%27%20ry%3D%274.0%27%20fill%3D%27%2523a8d98f%27%20opacity%3D%270.72%27%20transform%3D%27rotate%28109%20260.2%2033.6%29%27%2F%3E%3Cellipse%20cx%3D%27493.0%27%20cy%3D%27480.4%27%20rx%3D%278.6%27%20ry%3D%273.9%27%20fill%3D%27%25237bbf6a%27%20opacity%3D%270.96%27%20transform%3D%27rotate%28321%20493.0%20480.4%29%27%2F%3E%3Cellipse%20cx%3D%27548.8%27%20cy%3D%27369.9%27%20rx%3D%278.6%27%20ry%3D%273.9%27%20fill%3D%27%2523a8d98f%27%20opacity%3D%270.7%27%20transform%3D%27rotate%281%20548.8%20369.9%29%27%2F%3E%3Cellipse%20cx%3D%27591.8%27%20cy%3D%27198.6%27%20rx%3D%278.7%27%20ry%3D%274.0%27%20fill%3D%27%2523a8d98f%27%20opacity%3D%270.8%27%20transform%3D%27rotate%28246%20591.8%20198.6%29%27%2F%3E%3Cellipse%20cx%3D%271.5%27%20cy%3D%27213.2%27%20rx%3D%275.9%27%20ry%3D%272.7%27%20fill%3D%27%25237bbf6a%27%20opacity%3D%270.86%27%20transform%3D%27rotate%28333%201.5%20213.2%29%27%2F%3E%3Cellipse%20cx%3D%27303.3%27%20cy%3D%27567.7%27%20rx%3D%278.9%27%20ry%3D%274.0%27%20fill%3D%27%2523a8d98f%27%20opacity%3D%270.73%27%20transform%3D%27rotate%28261%20303.3%20567.7%29%27%2F%3E%3Cellipse%20cx%3D%27536.4%27%20cy%3D%2777.3%27%20rx%3D%275.4%27%20ry%3D%272.5%27%20fill%3D%27%25235ea36b%27%20opacity%3D%270.85%27%20transform%3D%27rotate%28124%20536.4%2077.3%29%27%2F%3E%3Cellipse%20cx%3D%27370.5%27%20cy%3D%27343.2%27%20rx%3D%275.5%27%20ry%3D%272.5%27%20fill%3D%27%25235ea36b%27%20opacity%3D%270.6%27%20transform%3D%27rotate%28334%20370.5%20343.2%29%27%2F%3E%3C%2Fsvg%3E");
  background-size: 520px 520px;
  background-repeat: repeat;
  opacity: 0.8;
  animation: ks-float-around 34s ease-in-out infinite alternate;
}
@keyframes ks-float-around {
  from { transform: translate3d(-3%, 2%, 0) rotate(-2deg); }
  to { transform: translate3d(3%, -2%, 0) rotate(2deg); }
}

/* ── SNP a Dušičky ───────────────────────────────────────────────────────── */
.discover-band.sky-theme-snp {
  background:
    radial-gradient(ellipse 110% 46% at 50% 112%, rgba(255, 150, 60, 0.4), transparent 58%),
    linear-gradient(180deg, #05070f 0%, #0d1220 26%, #1d2033 54%, #3b3040 78%, #6b4438 100%);
}
.discover-band.sky-theme-dusicky {
  background:
    radial-gradient(ellipse 120% 40% at 50% 114%, rgba(255, 180, 100, 0.32), transparent 58%),
    linear-gradient(180deg, #05070d 0%, #0b0f1a 28%, #151c2b 56%, #26303f 80%, #3f4a56 100%);
}
.ks-flame {
  position: absolute;
  bottom: 4%;
  width: 2.6rem;
  height: 4.4rem;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 68%, rgba(255, 226, 150, 0.95) 0%, rgba(255, 160, 60, 0.55) 30%, rgba(255, 110, 30, 0.16) 55%, transparent 74%);
  animation: ks-candle-flicker 4.5s ease-in-out infinite;
}
/* Vatra SNP je jedna, ale veľká. */
.ks-theme--snp .ks-flame {
  width: 16rem;
  height: 10rem;
  bottom: 0;
}
.ks-ember {
  position: absolute;
  bottom: 6%;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #ffb457;
  box-shadow: 0 0 9px #ff9a3c;
  animation: ks-ember-rise 11s ease-out infinite;
}
@keyframes ks-ember-rise {
  0% { transform: translate3d(0, 0, 0) scale(0.6); opacity: 0; }
  15% { opacity: 0.95; }
  100% { transform: translate3d(4vw, -62vh, 0) scale(0.9); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .ks-hearts, .ks-streamer, .ks-eggs, .ks-petals, .ks-greenleaves,
  .ks-flame, .ks-ember {
    animation: none;
  }
  .ks-ember { opacity: 0.7; }
}
/* ══ koniec sviatkov a výročí ══════════════════════════════════════════════ */

/* ══ Popiska témy ════════════════════════════════════════════════════════════
   Bez nej je animácia len ozdoba, ktorú návštevník nevie zaradiť —
   sneženie povie „zima", nie „Vianoce". Preto sa téma predstaví aj slovom.
   Návrat: zmazať blok po značku „koniec popisky témy".
   ═════════════════════════════════════════════════════════════════════════ */
.ks-sky-caption {
  position: absolute;
  z-index: 2;
  top: clamp(1rem, 3vh, 2rem);
  right: clamp(1rem, 4vw, 2.5rem);
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  max-width: min(22rem, 60vw);
  padding: 0.5rem 1rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  background: rgba(10, 20, 38, 0.45);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  color: #fff;
  font-size: clamp(0.82rem, 1.5vw, 0.95rem);
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1.3;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.45);
  animation: ks-caption-in 0.9s ease-out both;
}
.ks-sky-caption i {
  font-size: 1.05em;
  opacity: 0.9;
}
@keyframes ks-caption-in {
  from { opacity: 0; transform: translateY(-0.4rem); }
  to { opacity: 1; transform: none; }
}
/* Na mobile je hore tesno — popiska ide pod nadpis, aby nezavadzala. */
@media (max-width: 640px) {
  .ks-sky-caption {
    position: static;
    margin: 0 0 0.9rem;
    max-width: 100%;
  }
}
@media (prefers-reduced-motion: reduce) {
  .ks-sky-caption { animation: none; }
}
/* ══ koniec popisky témy ═══════════════════════════════════════════════════ */

/* ══ Stránkovanie zoznamov ═══════════════════════════════════════════════════
   Kraj a kategória už nevykresľujú celú databázu naraz.
   Návrat: zmazať blok po značku „koniec stránkovania".
   ═════════════════════════════════════════════════════════════════════════ */
.ks-pager {
  margin-top: 1.75rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
}
.ks-pager-info {
  margin: 0;
  font-size: var(--ks-t-s);
  color: #6b7280;
}
.ks-pager-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.35rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.ks-pager-num,
.ks-pager-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  min-width: 2.4rem;
  height: 2.4rem;
  padding: 0 0.75rem;
  justify-content: center;
  border-radius: 0.7rem;
  border: 1px solid #e2e8f0;
  background: #fff;
  color: #334155;
  font-size: var(--ks-t-sm);
  font-weight: 600;
  text-decoration: none;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.ks-pager-num:hover,
.ks-pager-btn:hover {
  background: #f1f5f9;
  border-color: #cbd5e1;
  color: #0f172a;
}
.ks-pager-num.is-current {
  background: var(--ks-blue, #0b4ea2);
  border-color: var(--ks-blue, #0b4ea2);
  color: #fff;
  cursor: default;
}
/* Neaktívne „Späť"/„Ďalej" ostáva viditeľné, aby ovládanie nepreskakovalo. */
.ks-pager-btn.is-off {
  opacity: 0.45;
  cursor: default;
}
.ks-pager-gap {
  padding: 0 0.2rem;
  color: #94a3b8;
}
@media (max-width: 480px) {
  .ks-pager-num,
  .ks-pager-btn {
    min-width: 2.1rem;
    height: 2.1rem;
    padding: 0 0.55rem;
    font-size: var(--ks-t-s);
  }
}
/* ══ koniec stránkovania ═══════════════════════════════════════════════════ */

/* ══ Lišta so súhlasom s cookies ═════════════════════════════════════════════
   Obe možnosti majú rovnakú váhu — odmietnutie schované za menším či bledším
   tlačidlom by znamenalo, že súhlas nie je slobodný.
   Návrat: zmazať blok po značku „koniec lišty súhlasu".
   ═════════════════════════════════════════════════════════════════════════ */
.ks-consent {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1080;
  background: rgba(10, 20, 38, 0.97);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border-top: 1px solid rgba(255, 255, 255, 0.16);
  color: #e8eef7;
  box-shadow: 0 -10px 34px rgba(0, 0, 0, 0.35);
  animation: ks-consent-in 0.35s ease-out both;
}
@keyframes ks-consent-in {
  from { transform: translateY(100%); }
  to { transform: none; }
}
.ks-consent-inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 1rem 1.25rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 1.5rem;
}
.ks-consent-text {
  flex: 1 1 22rem;
  min-width: 0;
}
.ks-consent-text strong {
  display: block;
  font-size: 0.98rem;
  margin-bottom: 0.2rem;
}
.ks-consent-text p {
  margin: 0;
  font-size: var(--ks-t-sm);
  line-height: 1.5;
  color: #c3d0e2;
}
.ks-consent-text a {
  color: #8fc9ff;
  text-decoration: underline;
}
.ks-consent-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  flex: 0 0 auto;
}
.ks-consent-btn {
  border-radius: 0.75rem;
  padding: 0.62rem 1.15rem;
  font-size: var(--ks-t-sm);
  font-weight: 700;
  border: 1px solid transparent;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.ks-consent-btn--primary {
  background: #e11d2e;
  color: #fff;
}
.ks-consent-btn--primary:hover { background: #c4162a; }
.ks-consent-btn--ghost {
  background: transparent;
  border-color: rgba(255, 255, 255, 0.4);
  color: #e8eef7;
}
.ks-consent-btn--ghost:hover { background: rgba(255, 255, 255, 0.12); }

/* Odkaz na zmenu rozhodnutia v pätičke — vyzerá ako ostatné právne odkazy. */
.ft-consent-reset {
  background: none;
  border: 0;
  padding: 0;
  font: inherit;
  color: inherit;
  text-decoration: underline;
  cursor: pointer;
}
@media (max-width: 560px) {
  .ks-consent-actions { width: 100%; }
  .ks-consent-btn { flex: 1 1 auto; }
}
@media (prefers-reduced-motion: reduce) {
  .ks-consent { animation: none; }
}
/* ══ koniec lišty súhlasu ══════════════════════════════════════════════════ */

/* Tabuľka v právnych textoch (prehľad cookies). */
.ks-legal-table {
  width: 100%;
  border-collapse: collapse;
  margin: 1rem 0 1.25rem;
  font-size: var(--ks-t-sm);
}
.ks-legal-table th,
.ks-legal-table td {
  border: 1px solid #e2e8f0;
  padding: 0.55rem 0.7rem;
  text-align: left;
  vertical-align: top;
}
.ks-legal-table th {
  background: #f8fafc;
  font-weight: 700;
}
.ks-legal-table code {
  font-size: 0.86em;
  background: #f1f5f9;
  padding: 0.1rem 0.3rem;
  border-radius: 0.3rem;
}
@media (max-width: 640px) {
  .ks-legal-table { font-size: var(--ks-t-s); }
  .ks-legal-table th, .ks-legal-table td { padding: 0.4rem 0.45rem; }
}

/* ══ Efekty pri scrollovaní a hoveri ═════════════════════════════════════════
   Všetko cez transform a opacity — tie prehliadač skladá na grafickej karte
   a neprekresľuje kvôli nim rozloženie stránky.
   Návrat: zmazať blok po značku „koniec efektov".
   ═════════════════════════════════════════════════════════════════════════ */

/* ── 1. Postupné odkrývanie pri scrollovaní ──────────────────────────────────
   Skrývame LEN keď je na <html> trieda ks-reveal-on, ktorú nastaví skript.
   Bez JavaScriptu sa teda nič neschová a obsah je vždy vidieť. */
.ks-reveal-on [data-reveal] {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.55s ease-out, transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}
.ks-reveal-on [data-reveal].is-revealed {
  opacity: 1;
  transform: none;
  will-change: auto;
}
/* Karty v mriežke sa odkrývajú s malým odstupom — pôsobí to ako vlna,
   nie ako naraz preblikajúca stránka. Viac než ~6 by už zdržovalo. */
.ks-reveal-on [data-reveal]:nth-child(2) { transition-delay: 0.05s; }
.ks-reveal-on [data-reveal]:nth-child(3) { transition-delay: 0.10s; }
.ks-reveal-on [data-reveal]:nth-child(4) { transition-delay: 0.15s; }
.ks-reveal-on [data-reveal]:nth-child(5) { transition-delay: 0.20s; }
.ks-reveal-on [data-reveal]:nth-child(n + 6) { transition-delay: 0.25s; }

/* ── 2. Tlačidlo „späť hore" ─────────────────────────────────────────────── */
.ks-to-top {
  position: fixed;
  right: clamp(0.9rem, 2vw, 1.6rem);
  bottom: clamp(0.9rem, 2vw, 1.6rem);
  z-index: 1040;
  width: 2.9rem;
  height: 2.9rem;
  border: 0;
  border-radius: 50%;
  background: var(--ks-blue, #0b4ea2);
  color: #fff;
  font-size: 1rem;
  cursor: pointer;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.28);
  animation: ks-totop-in 0.28s ease-out both;
  transition: transform 0.18s ease, background 0.18s ease;
}
.ks-to-top:hover {
  transform: translateY(-3px);
  background: var(--ks-red, #e11d2e);
}
.ks-to-top:active { transform: translateY(-1px); }
@keyframes ks-totop-in {
  from { opacity: 0; transform: translateY(10px) scale(0.9); }
  to { opacity: 1; transform: none; }
}

/* ── 3. Hlavička po odscrollovaní ────────────────────────────────────────────
   Len tieň a jemné stiahnutie — meniť výšku by posúvalo obsah pod ňou. */
.ks-header {
  transition: box-shadow 0.25s ease, padding 0.25s ease;
}
.ks-scrolled .ks-header {
  box-shadow: 0 6px 22px rgba(10, 25, 50, 0.14);
}

/* ── 4. Podčiarknutie odkazov v navigácii ────────────────────────────────────
   Vyrastá zo stredu, nepribúda ako blik. */
.ks-nav-link {
  position: relative;
}
.ks-nav-link::after {
  content: '';
  position: absolute;
  left: 50%;
  right: 50%;
  bottom: 0.25rem;
  height: 2px;
  border-radius: 2px;
  background: var(--ks-red, #e11d2e);
  transition: left 0.22s ease, right 0.22s ease;
}
.ks-nav-link:hover::after,
.ks-nav-link:focus-visible::after {
  left: 0.7rem;
  right: 0.7rem;
}
.ks-nav-link.active::after {
  left: 0.7rem;
  right: 0.7rem;
}
/* Podčiarknutie kreslí výhradne ::after. Položka má ešte pôvodný `border-bottom`,
   ktorý sa pri hoveri farbil nazeleno — spolu s čiarou to dávalo dve linky pod
   sebou. Okraj necháme priehľadný (drží výšku, nech nič neposkakuje) a farbu
   prevezme čiara: zelená pri prejdení myšou, červená na otvorenej sekcii. */
.ks-nav-link::after {
  background: #2d9a55;
}
.ks-nav-link.active::after {
  background: var(--ks-red, #e11d2e);
}
.ks-nav-link:hover,
.ks-nav-link:focus-visible,
.ks-nav-link.active {
  border-bottom-color: transparent;
}

/* ── 5. Stlačenie tlačidiel ──────────────────────────────────────────────────
   Drobná spätná väzba, že klik naozaj prešiel. */
.btn-ks-red:active,
.btn-ks-out:active,
.btn-all:active,
.discover-submit:active {
  transform: translateY(1px) scale(0.99);
}

/* ── 6. Obrázok v karte objektu ──────────────────────────────────────────────
   Zoom karta už mala; pridávame jemné presvetlenie, nech to nie je len posun. */
.art-card img,
.art-card span img {
  transition: transform 0.4s, filter 0.4s;
}
.art-card:hover img,
.art-card:hover span img {
  filter: saturate(1.08) brightness(1.03);
}

@media (prefers-reduced-motion: reduce) {
  .ks-reveal-on [data-reveal] {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .ks-to-top,
  .ks-nav-link::after,
  .art-card img,
  .art-card span img {
    animation: none;
    transition: none;
  }
}
/* ══ koniec efektov ════════════════════════════════════════════════════════ */

/* ============================================================================
   Návrhy od návštevníkov — tlačidlo v hlavičke a formulár na /pridat
   ========================================================================= */

/* --- červené tlačidlo v hlavičke --------------------------------------- */
.btn-ks-add {
  display: inline-flex;
  align-items: center;
  gap: 0.48rem;
  padding: 0.6rem 1.2rem;
  border-radius: 999px;
  border: 0;
  background: linear-gradient(135deg, var(--ks-red) 0%, #ae0117 100%);
  color: #fff;
  font-size: var(--ks-t-s);
  font-weight: 800;
  white-space: nowrap;
  text-decoration: none;
  box-shadow: 0 6px 16px -6px rgba(208, 2, 27, 0.55);
  transition: transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease;
}
.btn-ks-add:hover,
.btn-ks-add:focus-visible {
  color: #fff;
  filter: brightness(1.06);
  transform: translateY(-1px);
  box-shadow: 0 10px 22px -8px rgba(208, 2, 27, 0.65);
}
.btn-ks-add:active {
  transform: translateY(0);
}
.ks-mobnav-add {
  color: var(--ks-red) !important;
}

/* --- stránka a úvodný odstavec ------------------------------------------ */
.ks-sub-lead {
  max-width: 62ch;
  margin: 0 auto 2.2rem;
  text-align: center;
  color: #4b5563;
  font-size: 1.02rem;
  line-height: 1.7;
}
.ks-sub {
  max-width: 860px;
  margin: 0 auto;
}

/* --- krok ---------------------------------------------------------------- */
.ks-sub-step {
  background: #fff;
  border: 1px solid var(--ks-border);
  border-radius: 20px;
  padding: 1.6rem 1.5rem;
  margin-bottom: 1.1rem;
  box-shadow: 0 10px 30px -22px rgba(13, 52, 96, 0.45);
  animation: ksSubIn 0.35s ease both;
}
@keyframes ksSubIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .ks-sub-step {
    animation: none;
  }
}
.ks-sub-step__head {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  margin-bottom: 1.15rem;
}
.ks-sub-step__num {
  flex: 0 0 auto;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  background: var(--ks-bluelt);
  color: var(--ks-blue);
  font-weight: 800;
  font-size: var(--ks-t-sm);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.ks-sub-step__title {
  margin: 0;
  font-size: 1.12rem;
  font-weight: 800;
  color: var(--ks-bluedk);
}
.ks-sub-step__hint {
  margin: 0.25rem 0 0;
  font-size: 0.84rem;
  color: #6b7280;
  line-height: 1.55;
}

/* --- veľké karty (typ, sekcia) ------------------------------------------ */
.ks-sub-cards {
  display: grid;
  gap: 0.7rem;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}
.ks-sub-cards--two {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}
.ks-sub-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.35rem;
  padding: 1.1rem 1.15rem;
  border: 1.5px solid var(--ks-border);
  border-radius: 16px;
  background: #fff;
  text-align: left;
  cursor: pointer;
  transition: border-color 0.18s ease, background 0.18s ease, transform 0.18s ease;
}
.ks-sub-card:hover {
  border-color: rgba(26, 95, 168, 0.45);
  transform: translateY(-2px);
}
.ks-sub-card.is-active {
  border-color: var(--ks-blue);
  background: var(--ks-bluelt);
}
.ks-sub-card i {
  font-size: 1.3rem;
  color: var(--ks-blue);
}
.ks-sub-card strong {
  font-size: 0.98rem;
  color: var(--ks-bluedk);
}
.ks-sub-card span {
  font-size: var(--ks-t-s);
  color: #6b7280;
  line-height: 1.5;
}
.ks-sub-card--sm {
  padding: 0.85rem 0.9rem;
  gap: 0.3rem;
}
.ks-sub-card--sm strong {
  font-size: 0.87rem;
}

/* --- chipy (kategórie, typy podujatí) ----------------------------------- */
.ks-sub-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-top: 1rem;
}
.ks-sub-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.48rem 0.95rem;
  border: 1.5px solid var(--ks-border);
  border-radius: 999px;
  background: #fff;
  font-size: 0.83rem;
  font-weight: 600;
  color: #374151;
  cursor: pointer;
  transition: border-color 0.16s ease, background 0.16s ease, color 0.16s ease;
}
.ks-sub-chip:hover {
  border-color: rgba(26, 95, 168, 0.45);
}
.ks-sub-chip.is-active {
  border-color: var(--ks-blue);
  background: var(--ks-blue);
  color: #fff;
}
.ks-sub-chip i {
  font-size: 0.85em;
}

/* --- polia --------------------------------------------------------------- */
.ks-sub-grid {
  display: grid;
  gap: 0.9rem;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}
.ks-sub-field {
  display: block;
  min-width: 0;
}
.ks-sub-field--wide {
  grid-column: 1 / -1;
}

/* Mapa na doladenie polohy vo formulári návrhu */
.ks-sub-map {
  border: 1px solid var(--ks-border);
  border-radius: 12px;
  overflow: hidden;
  background: #eef3f8;
}
.ks-sub-map__canvas {
  /* Nižšia ako 260 px sa nedá rozumne trafiť prstom; vyššia než pol výšky
     okna by na mobile vytlačila polia so súradnicami mimo obrazovku. */
  height: clamp(260px, 42vh, 420px);
  width: 100%;
}
.ks-sub-map__hint {
  margin: 0;
  padding: 0.6rem 0.85rem;
  font-size: var(--ks-t-s);
  line-height: 1.45;
  color: var(--ks-soft);
  background: #fff;
  border-top: 1px solid var(--ks-border);
}
.ks-sub-map__hint i {
  color: var(--ks-blue);
  margin-right: 0.35rem;
}
/* Leaflet si inak sadne nad rozbalenú ponuku obcí aj nad lištu cookies. */
.ks-sub-map .leaflet-pane,
.ks-sub-map .leaflet-control {
  z-index: 1;
}
.ks-sub-field > span {
  display: block;
  margin-bottom: 0.35rem;
  font-size: var(--ks-t-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #6b7280;
}
.ks-sub-field > span b {
  color: var(--ks-red);
}
.ks-sub-field input,
.ks-sub-field select,
.ks-sub-field textarea {
  width: 100%;
  border: 1.5px solid var(--ks-border);
  border-radius: 12px;
  padding: 0.65rem 0.85rem;
  font-size: var(--ks-t-sm);
  color: var(--ks-text);
  background: #fff;
  transition: border-color 0.16s ease, box-shadow 0.16s ease;
}
.ks-sub-field textarea {
  resize: vertical;
  line-height: 1.6;
}
.ks-sub-field input:focus,
.ks-sub-field select:focus,
.ks-sub-field textarea:focus {
  outline: none;
  border-color: var(--ks-blue);
  box-shadow: 0 0 0 3px rgba(26, 95, 168, 0.14);
}
.ks-sub-count {
  display: block;
  margin-top: 0.25rem;
  text-align: right;
  font-size: var(--ks-t-xs);
  color: #9ca3af;
}
.ks-sub-note {
  margin: 0.5rem 0 0;
  font-size: var(--ks-t-xs);
  color: #6b7280;
  line-height: 1.55;
}
.ks-sub-note--center {
  text-align: center;
}
.ks-sub .ks-sub-field + .ks-sub-field,
.ks-sub-step__body > .ks-sub-field + .ks-sub-field {
  margin-top: 0.9rem;
}

/* --- skupiny vlastností -------------------------------------------------- */
.ks-sub-group {
  border: 1px solid var(--ks-border);
  border-radius: 14px;
  overflow: hidden;
  margin-bottom: 0.55rem;
}
.ks-sub-group__head {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  width: 100%;
  padding: 0.8rem 1rem;
  background: #f8fafc;
  border: 0;
  font-size: var(--ks-t-sm);
  font-weight: 700;
  color: var(--ks-bluedk);
  cursor: pointer;
  text-align: left;
}
.ks-sub-group__head:hover {
  background: #f1f5f9;
}
.ks-sub-group__head > i:first-child {
  color: var(--ks-blue);
}
.ks-sub-group__badge {
  font-style: normal;
  font-size: var(--ks-t-xs);
  font-weight: 800;
  color: #fff;
  background: var(--ks-blue);
  border-radius: 999px;
  padding: 0.1rem 0.45rem;
}
.ks-sub-group__body {
  padding: 1rem;
  border-top: 1px solid var(--ks-border);
}

/* --- fotky --------------------------------------------------------------- */
.ks-sub-drop {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  padding: 1.8rem 1rem;
  border: 2px dashed var(--ks-border);
  border-radius: 16px;
  background: #fbfdff;
  cursor: pointer;
  transition: border-color 0.18s ease, background 0.18s ease;
}
.ks-sub-drop:hover {
  border-color: var(--ks-blue);
  background: var(--ks-bluelt);
}
.ks-sub-drop input {
  display: none;
}
.ks-sub-drop i {
  font-size: 1.6rem;
  color: var(--ks-blue);
}
.ks-sub-drop strong {
  font-size: 0.95rem;
  color: var(--ks-bluedk);
}
.ks-sub-drop span {
  font-size: var(--ks-t-s);
  color: #6b7280;
}
.ks-sub-thumbs {
  display: grid;
  gap: 0.6rem;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  margin-top: 0.9rem;
}
.ks-sub-thumb {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid var(--ks-border);
  aspect-ratio: 4 / 3;
}
.ks-sub-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ks-sub-thumb button {
  position: absolute;
  top: 0.3rem;
  right: 0.3rem;
  width: 1.6rem;
  height: 1.6rem;
  border: 0;
  border-radius: 999px;
  background: rgba(17, 24, 39, 0.72);
  color: #fff;
  font-size: var(--ks-t-xs);
  cursor: pointer;
}
.ks-sub-thumb button:hover {
  background: var(--ks-red);
}

/* --- súhlasy, chyby, odoslanie ------------------------------------------ */
.ks-sub-check {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  margin-top: 1rem;
  font-size: var(--ks-t-s);
  line-height: 1.6;
  color: #374151;
}
.ks-sub-check input {
  margin-top: 0.2rem;
  width: 1.05rem;
  height: 1.05rem;
  flex: 0 0 auto;
  accent-color: var(--ks-blue);
}
.ks-sub-error {
  margin: 1rem 0 0;
  padding: 0.75rem 1rem;
  border: 1px solid #fecaca;
  border-radius: 12px;
  background: #fef2f2;
  color: #991b1b;
  font-size: 0.87rem;
}
.ks-sub-submit {
  width: 100%;
  margin-top: 1.1rem;
  justify-content: center;
  padding-top: 0.85rem;
  padding-bottom: 0.85rem;
  font-size: 0.95rem;
}
.ks-sub-submit:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

/* Pasca na roboty — musí zostať v DOM a byť nedostupná pre človeka. */
.ks-sub-trap {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* --- poďakovanie --------------------------------------------------------- */
.ks-sub-done {
  max-width: 620px;
  margin: 0 auto;
  text-align: center;
  padding: 2.6rem 1.5rem;
  border: 1px solid var(--ks-border);
  border-radius: 20px;
  background: #fff;
}
.ks-sub-done > i {
  font-size: 2.6rem;
  color: #16a34a;
}
.ks-sub-done h2 {
  margin: 0.9rem 0 0.5rem;
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--ks-bluedk);
}
.ks-sub-done p {
  color: #4b5563;
  line-height: 1.7;
}
.ks-sub-done__actions {
  display: flex;
  justify-content: center;
  gap: 0.6rem;
  flex-wrap: wrap;
  margin-top: 1.4rem;
}

/* ============================================================================
   Logo — vodorovná značka (srdce s horami + nápis v jednom obrázku)
   Tmavé pozadia dostanú vykrojenú svetlú verziu `logo-ks-h-light`.
   Pôvodné `.ks-logo-brand` triedy zostávajú v CSS kvôli návratu späť.
   ========================================================================= */
.ks-logo-full {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  line-height: 1;
  text-decoration: none !important;
}
.ks-logo-full picture {
  display: block;
  line-height: 0;
}
.ks-logo-full .ks-logo-img {
  display: block;
  height: clamp(46px, 5vw, 62px);
  width: auto;
}
.ks-logo-full--compact .ks-logo-img {
  height: 38px;
}
.ft-brand-logo .ks-logo-img {
  height: clamp(44px, 4.8vw, 58px);
}

/* ============================================================================
   Časté otázky na detaile objektu
   Otázky vyberá redakcia v admine políčkom „Do FAQ“ pri atribúte.
   ========================================================================= */
.ks-faq-list {
  margin: 0;
}
.ks-faq-item {
  padding: 0.95rem 0;
  border-bottom: 1px solid var(--ks-border);
}
.ks-faq-item:first-child {
  padding-top: 0;
}
.ks-faq-item:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}
.ks-faq-q {
  display: flex;
  align-items: baseline;
  gap: 0.55rem;
  margin: 0 0 0.3rem;
  font-weight: 700;
  font-size: 1rem;
  color: var(--ks-bluedk);
  line-height: 1.45;
}
.ks-faq-q::before {
  content: '\f059';
  font-family: 'Font Awesome 6 Free';
  font-weight: 400;
  font-size: 0.86em;
  color: var(--ks-blue);
  flex-shrink: 0;
}
.ks-faq-a {
  margin: 0 0 0 1.45rem;
  color: #374151;
  line-height: 1.65;
}
.ks-faq-a a {
  color: var(--ks-blue);
}
@media (max-width: 575.98px) {
  .ks-faq-q {
    font-size: 0.95rem;
  }
  .ks-faq-a {
    margin-left: 0;
  }
}

/* --- napovedanie obce a hlásenie o polohe vo formulári návrhu ------------ */
.ks-sub-autocomplete {
  position: relative;
}
.ks-sub-autocomplete input:disabled {
  background: #f8fafc;
  color: #9ca3af;
  cursor: not-allowed;
}
.ks-sub-options {
  position: absolute;
  z-index: 30;
  left: 0;
  right: 0;
  top: calc(100% + 0.25rem);
  margin: 0;
  padding: 0.25rem;
  list-style: none;
  max-height: 15rem;
  overflow-y: auto;
  background: #fff;
  border: 1px solid var(--ks-border);
  border-radius: 12px;
  box-shadow: 0 14px 34px -14px rgba(13, 52, 96, 0.35);
}
.ks-sub-options button {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  width: 100%;
  padding: 0.5rem 0.65rem;
  border: 0;
  border-radius: 8px;
  background: none;
  text-align: left;
  font-size: var(--ks-t-sm);
  color: var(--ks-text);
  cursor: pointer;
}
.ks-sub-options button:hover,
.ks-sub-options button:focus-visible {
  background: var(--ks-bluelt);
}
.ks-sub-options em {
  font-style: normal;
  font-size: var(--ks-t-xs);
  color: #9ca3af;
}
.ks-sub-ok {
  display: block;
  margin-top: 0.3rem;
  font-size: var(--ks-t-xs);
  color: #15803d;
}
.ks-sub-geo {
  margin-top: 0.45rem;
  padding: 0.5rem 0.7rem;
  border-radius: 10px;
}
.ks-sub-geo--hladam {
  background: #f1f5f9;
  color: #475569;
}
.ks-sub-geo--hotovo {
  background: #ecfdf5;
  color: #15803d;
}
.ks-sub-geo--chyba {
  background: #fef2f2;
  color: #991b1b;
}

/* ============================================================================
   Detail bodu z mapy — bočný panel
   Nahradil bublinu prilepenú k značke a panel v rohu mapy: oboje na malej
   mape preskakovalo a prekrývalo ostatné body.
   Panel sa vysunie sprava a mapa zostane naľavo vidieť. Na mobile zaberá celú
   obrazovku — na úzkom displeji by z mapy aj tak nič nezostalo.
   Návrat: zmazať blok po značku „koniec bočného panela".
   ========================================================================= */
.ks-mapmodal {
  position: fixed;
  inset: 0;
  z-index: 3000;
  display: flex;
  align-items: stretch;
  justify-content: flex-end;
  background: rgba(9, 24, 45, 0.5);
  /* Rozostrenie pozadia — obsah webu zostane tušiť, ale neťahá pozornosť. */
  backdrop-filter: blur(7px) saturate(0.9);
  -webkit-backdrop-filter: blur(7px) saturate(0.9);
  animation: ksMapBackdropIn 0.2s ease-out both;
}
@keyframes ksMapBackdropIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

.ks-mapmodal__card {
  position: relative;
  display: flex;
  flex-direction: column;
  width: clamp(340px, 33vw, 460px);
  height: 100%;
  background: #fff;
  border-radius: 20px 0 0 20px;
  box-shadow: -26px 0 70px -22px rgba(5, 18, 36, 0.55);
  overflow: hidden;
  animation: ksMapPanelIn 0.28s cubic-bezier(0.22, 1, 0.36, 1) both;
}
@keyframes ksMapPanelIn {
  from { transform: translateX(100%); }
  to { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .ks-mapmodal,
  .ks-mapmodal__card {
    animation: none;
  }
}

.ks-mapmodal__close {
  position: absolute;
  top: 0.7rem;
  right: 0.7rem;
  z-index: 2;
  width: 2.2rem;
  height: 2.2rem;
  border: 0;
  border-radius: 999px;
  background: rgba(12, 25, 45, 0.55);
  color: #fff;
  font-size: var(--ks-t-sm);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.16s ease;
}
.ks-mapmodal__close:hover,
.ks-mapmodal__close:focus-visible {
  background: rgba(12, 25, 45, 0.82);
}

.ks-mapmodal__img {
  flex: 0 0 auto;
  width: 100%;
  height: clamp(190px, 26vh, 260px);
  object-fit: cover;
  display: block;
}

/* Text rastie, tlačidlá sa držia dole — panel je vysoký a inak by plávali
   hneď pod popisom s prázdnotou pod nimi. */
.ks-mapmodal__body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  padding: 1.3rem 1.4rem 1.4rem;
}
.ks-mapmodal__cat {
  font-size: var(--ks-t-2xs);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin-bottom: 0.35rem;
}
.ks-mapmodal__name {
  margin: 0 0 0.35rem;
  font-size: 1.28rem;
  font-weight: 800;
  line-height: 1.3;
  color: var(--ks-bluedk);
}
.ks-mapmodal__loc {
  margin: 0 0 0.8rem;
  font-size: var(--ks-t-s);
  font-weight: 600;
  color: #6b7280;
  display: flex;
  align-items: center;
  gap: 0.35rem;
}
.ks-mapmodal__desc {
  margin: 0 0 1.4rem;
  font-size: var(--ks-t-sm);
  line-height: 1.7;
  color: #374151;
}
.ks-mapmodal__actions {
  margin-top: auto;
  padding-top: 0.4rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}
.ks-mapmodal__go {
  flex: 1 1 auto;
  justify-content: center;
}

/* Na mobile celá obrazovka — z mapy by vedľa panela nezostalo nič užitočné. */
@media (max-width: 767.98px) {
  .ks-mapmodal__card {
    width: 100%;
    height: 100%;
    border-radius: 0;
    box-shadow: none;
  }
  .ks-mapmodal__img {
    height: clamp(200px, 34vh, 320px);
  }
}
/* ══ koniec bočného panela ═══════════════════════════════════════════════ */

/* ============================================================================
   Interaktívna mapa na mobile — zoznam a mapa sa striedajú
   Predtým bolo na obrazovke oboje naraz a filter navyše: z 780 px okna zabral
   filter 261, mapa 216 a na zoznam zostalo 186 — necelá jedna a pol karty zo
   šesťdesiatich. Filter sa teraz rozbaľuje a medzi zoznamom a mapou sa
   prepína plávajúcim tlačidlom.
   Návrat: zmazať blok po značku „koniec mobilnej mapy".
   ========================================================================= */

/* Na širokej obrazovke tieto ovládače nepatria — tam je miesta dosť. */
.explore-filters-toggle,
.explore-view-switch {
  display: none;
}

@media (max-width: 767.98px) {
  .explore-bar-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.7rem;
  }
  .explore-bar-head__text {
    min-width: 0;
  }

  .explore-filters-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    flex: 0 0 auto;
    padding: 0.45rem 0.85rem;
    border: 1.5px solid var(--ks-border);
    border-radius: 999px;
    background: #fff;
    font-size: var(--ks-t-xs);
    font-weight: 700;
    color: #374151;
    cursor: pointer;
  }
  .explore-filters-toggle[aria-expanded='true'] {
    border-color: var(--ks-blue);
    color: var(--ks-blue);
  }
  .explore-filters-toggle em {
    font-style: normal;
    font-size: var(--ks-t-2xs);
    font-weight: 800;
    color: #fff;
    background: var(--ks-red);
    border-radius: 999px;
    padding: 0.05rem 0.38rem;
  }

  /* Vyhľadávanie ostáva vždy; výbery a prepínače až po rozbalení. */
  .explore-bar-filters .explore-field,
  .explore-bar-filters .explore-toggles {
    display: none;
  }
  .explore-bar-filters.is-open .explore-field {
    /* Pôvodná hodnota — `block` by rozbil stĺpcové usporiadanie popisu a výberu. */
    display: flex;
  }
  .explore-bar-filters.is-open .explore-toggles {
    display: flex;
  }

  /* Zoznam a mapa sa striedajú. Obe vrstvy sú na sebe a majú plný rozmer —
     skrývame ich viditeľnosťou, nie `display: none`. Leaflet totiž počíta
     veľkosť pri vzniku a v skrytom kontajneri by vznikol nulový, takže by
     namiesto mapy zostal prúžok dlaždíc a prázdny výrez. */
  .explore-split {
    position: relative;
  }
  .explore-list,
  .explore-map-wrap {
    position: absolute;
    inset: 0;
    flex: none;
    height: auto;
    min-height: 0;
  }
  .explore-page.is-list .explore-map-wrap,
  .explore-page.is-map .explore-list {
    visibility: hidden;
    pointer-events: none;
  }
  .explore-page.is-list .explore-list,
  .explore-page.is-map .explore-map-wrap {
    visibility: visible;
    pointer-events: auto;
  }
  /* Aby posledná karta nezostala pod plávajúcim tlačidlom. */
  .explore-page.is-list .explore-cards {
    padding-bottom: 4.5rem;
  }

  .explore-view-switch {
    position: fixed;
    left: 50%;
    bottom: 1.1rem;
    transform: translateX(-50%);
    z-index: 900;
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.7rem 1.35rem;
    border: 0;
    border-radius: 999px;
    background: var(--ks-bluedk);
    color: #fff;
    font-size: var(--ks-t-s);
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 10px 26px -8px rgba(9, 24, 45, 0.6);
  }
  .explore-view-switch:active {
    transform: translateX(-50%) translateY(1px);
  }
}
/* ══ koniec mobilnej mapy ════════════════════════════════════════════════ */

/* ============================================================================
   „Tu sa nachádzam" v hlavičke
   Hlavná navigácia svoju aktívnu položku už mala (.ks-nav-link.active), chýbalo
   to v mobilnom menu a na tlačidlách Mapa / Pridať miesto.
   Návrat: zmazať blok po značku „koniec zvýraznenia".
   ========================================================================= */
.ks-mobnav-link {
  position: relative;
  color: var(--ks-text);
}
.ks-mobnav-link.is-active {
  background: var(--ks-bluelt);
  color: var(--ks-bluedk);
}
/* Farebný prúžok pri okraji — na dotykovom displeji sa číta rýchlejšie
   než samotné podfarbenie. */
.ks-mobnav-link.is-active::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background: var(--ks-red);
}
.ks-mobnav-add {
  color: var(--ks-red) !important;
}

.btn-ks-out.is-current {
  border-color: var(--ks-blue);
  background: var(--ks-bluelt);
  color: var(--ks-bluedk);
}
.btn-ks-add.is-current {
  box-shadow: 0 0 0 3px rgba(208, 2, 27, 0.25);
}
/* ══ koniec zvýraznenia ══════════════════════════════════════════════════ */

/* ============================================================================
   Prístupnosť (WCAG 2.1 AA)
   Doplnené po meraní axe-core, podrobnosti v docs/WCAG.md.
   Návrat: zmazať blok po značku „koniec prístupnosti".
   ========================================================================= */

/* ── 2.4.1 Preskočenie blokov ────────────────────────────────────────────────
   Odkaz je v poradí prvý, ale vidno ho až pri prechode klávesnicou. */
.ks-skip-link {
  position: fixed;
  top: 0.6rem;
  left: 0.6rem;
  z-index: 4000;
  padding: 0.7rem 1.15rem;
  border-radius: 10px;
  background: var(--ks-bluedk);
  color: #fff;
  font-weight: 800;
  font-size: var(--ks-t-sm);
  text-decoration: none;
  box-shadow: 0 10px 26px -10px rgba(9, 24, 45, 0.7);
  /* Mimo obrazovky, nie `display: none` — inak by ho klávesnica nenašla. */
  transform: translateY(-160%);
  transition: transform 0.16s ease-out;
}
.ks-skip-link:focus {
  transform: none;
  color: #fff;
}
main:focus {
  outline: none;
}

/* ── 2.4.7 Viditeľný fokus ───────────────────────────────────────────────────
   Predvolený obrys prehliadača je tenký a na farebných plochách zaniká.
   Platí len pre `:focus-visible`, takže pri kliknutí myšou nič nepribudne. */
:focus-visible {
  outline: 3px solid var(--ks-blue);
  outline-offset: 2px;
  border-radius: 3px;
}
/* Na tmavých plochách by modrá zanikla. */
.ks-footer :focus-visible,
.offcanvas-header :focus-visible,
.ks-topbar :focus-visible,
.ks-mapmodal :focus-visible,
.explore-view-switch:focus-visible {
  outline-color: #fff;
}
/* Vyhľadávacie pole malo `outline: none` a zmena farby rámika bola takmer
   neviditeľná — fokus tak nebolo kde spoznať. */
.ks-search-wrap:focus-within {
  outline: 3px solid var(--ks-blue);
  outline-offset: 2px;
}

/* ── 1.4.3 Kontrast na farbách kategórií ─────────────────────────────────────
   Farbu textu počíta `frontend/lib/contrast.ts` a posiela ju ako `--cat-ink`.
   Tu sa už len použije; `#fff` zostáva ako záloha pre staré vykreslenia. */
.cat-card__name,
.cat-card__icon {
  color: var(--cat-ink, #fff);
}
/* Bootstrapová ružová pre `code` mala na svetlosivom podklade pomer 4,11.
   V právnych textoch sú v `code` názvy cookies, teda podstatný údaj. */
code {
  color: #a61e5d;
}

/* ══ koniec prístupnosti ═════════════════════════════════════════════════ */

/* ============================================================================
   Viac miesta pre text na mobile
   Na 390 px obrazovke sa odsadenia sčítavali: .ks-container 20 + .place-card 20
   + .art-body 17,6 na každej strane, k tomu ul ešte 32 zľava. Na text odstavca
   tak zostalo 273 px (70 % šírky) a na položku zoznamu len 241 px (62 %).
   Návrat: zmazať blok po značku „koniec šírky na mobile".
   ========================================================================= */
@media (max-width: 767.98px) {
  .ks-container {
    padding: 0 1rem;
  }
  .place-card {
    padding: 1.1rem 1rem 1.2rem;
  }
  .art-body {
    padding: 0.9rem 1rem 1rem;
  }
}
@media (max-width: 575.98px) {
  .ks-container {
    padding: 0 0.85rem;
  }
  .place-card {
    padding: 1rem 0.85rem 1.1rem;
  }
  .art-body {
    padding: 0.85rem 0.85rem 0.95rem;
  }
  /* Bootstrap dáva zoznamom 2rem zľava. Na mobile je to tretina riadku len
     kvôli odrážke — 1,25rem stačí, aby odrážka zostala vidieť. */
  .art-body ul,
  .art-body ol,
  .ks-article-body ul,
  .ks-article-body ol,
  .info-prose ul,
  .info-prose ol {
    padding-left: 1.25rem;
  }
  .art-body li,
  .ks-article-body li,
  .info-prose li {
    /* Riadky v zozname boli natlačené; keď je ich text širší, znesú viac vzduchu. */
    margin-bottom: 0.45rem;
  }
}
/* ══ koniec šírky na mobile ══════════════════════════════════════════════ */

/* ============================================================================
   ÚVODKA — obsah vyhľadávača nesmie končiť pod horským predelom
   `.sec-ridge--hero svg` má `top: -3.55rem`, čiže hory vystupujú 57 px nad
   hranicu pásu. Na úzkom displeji sa ponuky otázok zalomili do dvoch radov
   a spodný zmizol za horami — namerané 57 px prekryvu pri 360 px šírky
   (na 1280 px to boli 3 px). Preto pásu pridávame spodnú rezervu.
   Návrat: zmazať blok po značku „koniec hero rezervy".
   ========================================================================= */
/* Pozor: na širokej obrazovke je pás vysoký na celý výrez a rozdelený flexom,
   takže odsadenie mu uberie priestor a obsah sa posunie **nižšie** — prekryv
   z 3 px narástol na 13. Preto rezerva platí len na úzkych displejoch, kde sa
   ponuky zalamujú do dvoch radov a pás rastie s obsahom. */
@media (max-width: 767.98px) {
  .home-intro .discover-inner {
    /* Plná výška predelu (3,55rem) plus trochu vzduchu. */
    padding-bottom: 4.25rem;
  }
}

/* Nápoveda v poli je písaná animácia s `white-space: nowrap`, takže sa neláme.
   Na úzkom displeji používa komponent kratšie vety (PLACEHOLDERS_MOBIL); toto
   je poistka, aby sa ani dlhé slovo nedostalo spod poľa až na tlačidlo. */
.discover-input-wrap {
  overflow: hidden;
}
.discover-input-row input {
  text-overflow: ellipsis;
}
@media (max-width: 575.98px) {
  .discover-input-row input,
  .discover-typehint {
    font-size: 0.95rem;
  }
}
/* Poistka pre šírky, kde sa ponuky zalomia a pás je ešte viazaný na výšku
   výrezu (typicky ~1024 px): obsah sa dvíha nad predel. Rovnaký princíp je
   nižšie použitý pri kartách krajov — dekorácia nikdy nesmie prekryť obsah.
   `.sec-ridge--hero` má z-index 9. */
.home-intro .discover-band > .discover-inner {
  position: relative;
  z-index: 10;
}

/* ══ koniec hero rezervy ═════════════════════════════════════════════════ */

/* ============================================================================
   MOBIL — pevná hlavička, vzduch nad nadpisom, médiá cez celú šírku (18. 9.)

   1. Do 768 px nebola hlavička pri rolovaní nikde. Jediný `position: sticky`
      mala `.ks-mainnav`, a tá je `d-none d-md-block` — na mobile teda vôbec
      neexistuje. Návštevník sa po odrolovaní nemal ako vrátiť do menu.
   2. Nadpis úvodky začínal tesne pod hlavičkou; s pevnou hlavičkou by sa oň
      obtieral pri každom rolovaní.
   3. Obrázky a mapy dostávali len to, čo zostalo po odsadeniach kontajnera
      (na 390 px displeji ~32 px na každej strane). Text odsadenie potrebuje,
      obrázok a mapa nie — tie majú byť od kraja po kraj.

   Návrat: zmazať blok po značku „koniec mobilných úprav“.
   ========================================================================= */
@media (max-width: 767.98px) {
  /* ── 1. Pevná hlavička ─────────────────────────────────────────────── */
  .ks-header {
    position: sticky;
    top: 0;
    /* Rovnaká hladina ako `.ks-mainnav` na desktope. Modály (3000) aj
       offcanvas menu (1045) zostávajú nad ňou. */
    z-index: 100;
  }
  /* Keď zaberá miesto natrvalo, znesie o niečo nižší profil. Pôvodných
     46 px logo + 2,4rem odsadenia bolo 75 px, teda desatina výšky displeja;
     takto zaberá 63 px. */
  .ks-header-row {
    padding: 0.7rem 0 0.75rem;
  }
  .ks-header .ks-logo-full .ks-logo-img {
    height: 40px;
  }
  /* Kotvy (#clanok-obsah, #mapa-okolia) by inak skončili pod hlavičkou. */
  html {
    scroll-padding-top: 4.5rem;
  }

  /* ── 2. Vzduch nad nadpisom úvodky ─────────────────────────────────── */
  .home-intro .discover-inner {
    padding-top: 3.25rem;
  }

  /* ── 3. Médiá cez celú šírku ───────────────────────────────────────── */
  /* `clip`, nie `hidden`: `hidden` by z <body> spravilo rolovací kontajner
     a `position: sticky` v hlavičke by prestalo držať. */
  body {
    overflow-x: clip;
  }
  /* Trik funguje v ľubovoľnej hĺbke vnorenia — na rozdiel od záporných
     margínov nemusí poznať súčet odsadení nad sebou. */
  .map-shell,
  .art-map-box,
  .region-hero-thumb-strip .ps-thumbs,
  .place-article .ks-article-body > figure,
  .place-article .ks-article-body > p > img:only-child {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    border-radius: 0;
  }
  /* Rám a polomer patria karte v odsadení, nie páse cez celú šírku. */
  .map-shell .map-box,
  .art-map-box {
    border-radius: 0;
    border-left: 0;
    border-right: 0;
  }
  /* Obrázok vo figure sa roztiahne na šírku vybraného rámca; samotný obrázok
     v odstavci už 100vw dostal vyššie a druhá šírka by ho stiahla späť. */
  .place-article .ks-article-body > figure img {
    width: 100%;
    height: auto;
    border-radius: 0;
  }
  .place-article .ks-article-body > p > img:only-child {
    height: auto;
  }
  /* Pás náhľadov má ísť od kraja po kraj, ale prvý a posledný náhľad
     nesmú sedieť na hrane displeja. */
  .region-hero-thumb-strip .ps-thumbs {
    padding-left: 1rem;
    padding-right: 1rem;
  }
}
@media (max-width: 575.98px) {
  .region-hero-thumb-strip .ps-thumbs {
    padding-left: 0.85rem;
    padding-right: 0.85rem;
  }
}
/* ══ koniec mobilných úprav ══════════════════════════════════════════════ */

/* ============================================================================
   ČLÁNOK BEZ NADPISU — iniciála namiesto hlavičky (18. 9.)

   Nadpis „Článok“ s ikonou je preč; v `page.tsx` zostal `visually-hidden`, aby
   v obsahu stránky nechýbal nadpis druhej úrovne pre čítačku. Text sa teraz
   začína iniciálou — väčšie a hrubšie prvé písmeno s medzerou vľavo.

   **Farba iniciály sa nesmie brať priamo z kategórie.** Farby zadáva redakcia
   a na bielej takmer žiadna nespĺňa ani 3 : 1 (jasná žltá vyjde okolo 1,6).
   Preto sa 55 % kategórie mieša s tmavomodrou — aj z najsvetlejšej farby tak
   vyjde tón nad 4,5 : 1 a kategória zostane rozoznateľná.

   Návrat: zmazať blok po značku „koniec iniciály“.
   ========================================================================= */
.place-page .place-article .place-card-hd {
  /* Poistka, keby sa `visually-hidden` z Bootstrapu raz nenačítalo — nadpis
     nesmie zostať vykreslený v pôvodnej podobe uprostred článku. */
  margin: 0;
  padding: 0 !important;
  border-bottom: 0;
}
.place-page .place-article .place-card-hd::before,
.place-page .place-article .place-card-hd::after {
  content: none;
}

/*
 * Knižná iniciála — musí sadnúť presne na dva riadky.
 *
 * Plávajúce `::first-letter` vytvorí rámček vysoký `font-size × line-height`.
 * Odstavec perexu má riadkovanie 1,7, takže dva riadky sú 3,4em. Z toho
 * vychádza `4em × 0,85 = 3,4em` — písmeno teda začína pri hornej hrane prvého
 * riadku a stojí na účiari druhého, presne ako v knihe. Predtým to bolo 2,95em,
 * čiže necelé dva riadky, a druhý riadok sa o písmeno obtieral iba čiastočne.
 *
 * Pomer sa nesmie rozbiť ani na mobile — iniciála v knihe je vždy dva riadky
 * bez ohľadu na veľkosť strany, preto tu nie je žiadna mobilná výnimka.
 * Ak sa niekedy zmení `line-height` perexu, musí sa prepočítať aj toto.
 */
/*
 * Dvojznaky: `Ch` je v slovenčine jedno písmeno, ale `::first-letter` vezme
 * vždy len jeden znak — z „Chyťte“ vzniklo veľké C a osirelé malé h vedľa.
 * Tam, kde `lib/iniciala.ts` zabalil dvojznak do `.ks-iniciala`, sa
 * `::first-letter` vypína a kreslí sa ten span. Týka sa to aj `Dz` a `Dž`.
 */
.place-article .ks-article-body > p:first-child:not(:has(.ks-iniciala))::first-letter,
.place-article .ks-article-body > div:first-child:not(:has(.ks-iniciala))::first-letter,
.place-article .ks-article-body > p:first-child .ks-iniciala,
.place-article .ks-article-body > div:first-child .ks-iniciala {
  float: left;
  font-size: 4em;
  line-height: 0.85;
  font-weight: 800;
  /* Vpravo odstup od textu, vľavo žiadaná medzera od okraja stĺpca. */
  margin: 0 0.14em 0 0.1em;
  color: color-mix(in srgb, var(--kategoria-accent, #1a5fa8) 55%, #0b2038);
}
/* Dve písmená vedľa seba potrebujú o kúsok tesnejšie prestrkanie, inak
   sa dvojznak roztiahne cez tretinu riadku. */
.place-article .ks-article-body .ks-iniciala {
  letter-spacing: -0.04em;
}

/*
 * Odstup „Vedeli ste“ od článku.
 *
 * Kým nad článkom stála hlavička „Článok“, oddeľovala ich jej vlastné
 * odsadenie. Hlavička je teraz `visually-hidden`, teda mimo toku, a zostalo
 * len 1,75rem — na tmavú kartu pri svetlom texte primálo.
 */
.place-page .vedeli-ste-box {
  margin-bottom: clamp(2.4rem, 2rem + 1.4vw, 3.25rem);
}
/* ══ koniec iniciály ═════════════════════════════════════════════════════ */

/* ============================================================================
   MOJE ČLÁNKY — stránka autora návrhu (18. 9.)
   Autor nemá účet; na stránku sa dostane jednorazovým odkazom. Vzhľad je
   zámerne pokojnejší než zvyšok portálu — je to pracovná plocha, nie výklad.
   Návrat: zmazať blok po značku „koniec mojich článkov“.
   ========================================================================= */
.autor-page {
  background: #f7f9fc;
  min-height: 60vh;
  padding: clamp(1.75rem, 1.2rem + 2vw, 3.25rem) 0 clamp(2.5rem, 2rem + 2vw, 4rem);
}
.autor-page__inner {
  max-width: 54rem;
}

.autor-hd {
  margin-bottom: clamp(1.5rem, 1.2rem + 1vw, 2.25rem);
}
.autor-hd__eye {
  margin: 0 0 0.35rem;
  font-size: var(--ks-t-xs);
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ks-blue);
}
.autor-hd__h {
  margin: 0 0 0.6rem;
  font-size: clamp(1.5rem, 1.25rem + 1.2vw, 2.15rem);
  font-weight: 800;
  letter-spacing: -0.025em;
  color: #0f2744;
}
.autor-hd__p {
  margin: 0;
  max-width: 44rem;
  color: var(--ks-soft);
  line-height: 1.65;
}

.autor-vyzva {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  margin: 0 0 1.5rem;
  padding: 0.85rem 1.1rem;
  border-radius: var(--ks-card-radius);
  /* Jantárová na bielej má 4,6 : 1 — čitateľné aj pri drobnom písme. */
  background: #fff8e8;
  border: 1px solid #f3dcae;
  color: #7a4d06;
  font-weight: 600;
}

.autor-sekcia {
  margin-bottom: clamp(1.75rem, 1.4rem + 1.2vw, 2.75rem);
}
.autor-sekcia__h {
  margin: 0 0 0.9rem;
  font-size: 1.05rem;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: #0f2744;
}
.autor-prazdne {
  margin: 0;
  color: var(--ks-soft);
}

.autor-zoznam {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.85rem;
}
.autor-karta {
  background: #fff;
  border: 1px solid var(--ks-border);
  border-radius: var(--ks-card-radius);
  box-shadow: var(--ks-card-shadow);
  padding: clamp(1rem, 0.9rem + 0.45vw, 1.35rem);
}
.autor-karta__hd {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
}
.autor-karta__nazov {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 800;
  color: #0f2744;
  overflow-wrap: anywhere;
}
.autor-znacka {
  margin-left: 0.5rem;
  padding: 0.1rem 0.45rem;
  border-radius: 999px;
  background: #eef3fa;
  color: var(--ks-blue);
  font-size: var(--ks-t-2xs);
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  vertical-align: middle;
}
.autor-karta__meta {
  margin: 0.35rem 0 0;
  font-size: var(--ks-t-s);
  color: var(--ks-soft);
}
.autor-karta__akcie {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin-top: 0.9rem;
}
.autor-karta__caka {
  font-size: var(--ks-t-s);
  font-weight: 600;
  color: #7a4d06;
}

/* Stavy. Všetky dvojice sú počítané na bielej a držia aspoň 4,5 : 1 —
   farebný štítok s drobným písmom je presne to miesto, kde sa kontrast
   najčastejšie stratí. */
.autor-stav {
  flex: 0 0 auto;
  padding: 0.2rem 0.6rem;
  border-radius: 999px;
  font-size: var(--ks-t-xs);
  font-weight: 800;
  letter-spacing: 0.04em;
  white-space: nowrap;
}
.autor-stav.is-caka {
  background: #eef3fa;
  color: #1a4e88;
}
.autor-stav.is-doplnit {
  background: #fff3da;
  color: #7a4d06;
}
.autor-stav.is-hotovo {
  background: #e7f6ed;
  color: #1c6b3c;
}
.autor-stav.is-zamietnute {
  background: #f4f5f7;
  color: #5b6472;
}

.autor-pripomienky {
  margin-top: 0.9rem;
  padding-top: 0.85rem;
  border-top: 1px solid var(--ks-border);
}
.autor-pripomienky__h {
  margin: 0 0 0.5rem;
  font-size: var(--ks-t-xs);
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ks-soft);
}
.autor-pripomienka {
  margin: 0 0 0.6rem;
  padding: 0.7rem 0.9rem;
  border-left: 3px solid var(--ks-yellow, #e8a33d);
  border-radius: 0 10px 10px 0;
  background: #fbfbfd;
}
.autor-pripomienka p {
  margin: 0;
  white-space: pre-line;
  line-height: 1.6;
}
.autor-pripomienka footer {
  margin-top: 0.35rem;
  font-size: var(--ks-t-xs);
  color: var(--ks-soft);
}

.autor-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.5rem 1.05rem;
  border: 0;
  border-radius: 999px;
  background: var(--ks-blue);
  color: #fff;
  font-size: var(--ks-t-sm);
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  transition: opacity 0.18s ease;
}
.autor-btn:hover {
  opacity: 0.92;
  color: #fff;
}
.autor-btn[disabled] {
  opacity: 0.55;
  cursor: default;
}
.autor-btn--tichy {
  background: #fff;
  border: 1px solid var(--ks-border);
  color: #0f2744;
}
.autor-btn--tichy:hover {
  background: #f4f7fb;
  color: #0f2744;
}

/* Úprava článku — plnoplošná vrstva, nie modál v modáli. Formulár s textom
   článku potrebuje výšku a na mobile by sa do okienka nezmestil. */
.autor-uprava {
  position: fixed;
  inset: 0;
  z-index: 3000;
  overflow-y: auto;
  background: rgba(8, 23, 44, 0.55);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
  padding: clamp(1rem, 0.7rem + 1.5vw, 2.5rem) 1rem;
}
.autor-uprava__form,
.autor-uprava__ok {
  max-width: 44rem;
  margin: 0 auto;
  background: #fff;
  border-radius: var(--ks-card-radius);
  padding: clamp(1.25rem, 1rem + 1vw, 2rem);
  box-shadow: 0 24px 60px -20px rgba(9, 24, 45, 0.5);
}
.autor-uprava__h {
  margin: 0 0 0.5rem;
  font-size: 1.35rem;
  font-weight: 800;
  color: #0f2744;
}
.autor-uprava__p {
  margin: 0 0 1.25rem;
  color: var(--ks-soft);
  line-height: 1.6;
}
.autor-uprava__ok h2 {
  margin: 0 0 0.6rem;
  font-size: 1.3rem;
  font-weight: 800;
  color: #1c6b3c;
}
.autor-uprava__ok p {
  margin: 0 0 1.25rem;
  color: var(--ks-soft);
  line-height: 1.65;
}
.autor-uprava__akcie {
  display: flex;
  justify-content: flex-end;
  gap: 0.6rem;
  margin-top: 1.25rem;
  flex-wrap: wrap;
}

.autor-pole {
  display: block;
  margin-bottom: 1rem;
}
.autor-pole > span {
  display: block;
  margin-bottom: 0.35rem;
  font-size: var(--ks-t-s);
  font-weight: 700;
  color: #0f2744;
}
.autor-pole input,
.autor-pole textarea {
  width: 100%;
  padding: 0.6rem 0.8rem;
  border: 1px solid var(--ks-border);
  border-radius: 12px;
  font: inherit;
  color: var(--ks-text);
  background: #fff;
  resize: vertical;
}
.autor-pole input:focus,
.autor-pole textarea:focus {
  outline: 3px solid var(--ks-blue);
  outline-offset: 1px;
  border-color: var(--ks-blue);
}

.autor-chybahlaska {
  margin: 0;
  padding: 0.7rem 0.95rem;
  border-radius: 12px;
  background: #fdecec;
  border: 1px solid #f3c4c4;
  color: #8a1f1f;
  font-weight: 600;
}

.autor-chyba {
  max-width: 34rem;
  background: #fff;
  border: 1px solid var(--ks-border);
  border-radius: var(--ks-card-radius);
  box-shadow: var(--ks-card-shadow);
  padding: clamp(1.5rem, 1.2rem + 1vw, 2.25rem);
}
.autor-chyba__h {
  margin: 0 0 0.75rem;
  font-size: 1.5rem;
  font-weight: 800;
  color: #0f2744;
}
.autor-chyba__p {
  margin: 0 0 1rem;
  color: var(--ks-soft);
  line-height: 1.65;
}
/* ══ koniec mojich článkov ═══════════════════════════════════════════════ */

/* ============================================================================
   VYHĽADÁVAČ NA ÚVODKE — rozdelenie na dva stĺpce (24. 9.)

   Kým nepadne prvá otázka, je vyhľadávač jeden stĺpec cez celú šírku.
   Po odoslaní sa javisko roztiahne na dve polovice: vľavo rozhovor a vstupné
   pole, vpravo navrhované objekty. Výsledky boli predtým vnútri bubliny
   odpovede, kde súťažili o šírku s textom a pri ďalšej otázke sa odrolovali.

   Návrat: zmazať blok po značku „koniec dvoch stĺpcov“ a v `DiscoverSearch.tsx`
   vrátiť zálohu z `data/backup-views/`.
   ========================================================================= */
.discover-stage {
  display: grid;
  /* Druhý stĺpec je zbalený na nulu, nie skrytý — inak sa nedá animovať. */
  grid-template-columns: minmax(0, 1fr) minmax(0, 0fr);
  gap: 0;
  align-items: stretch;
  min-height: 0;
  /* Animuje sa mriežka, nie šírka stĺpcov: obsah si tak drží vlastné
     rozmery a počas prechodu sa nepreteká a nelámu sa v ňom riadky. */
  transition:
    grid-template-columns 0.65s cubic-bezier(0.22, 1, 0.36, 1),
    gap 0.65s cubic-bezier(0.22, 1, 0.36, 1);
}
.discover-stage.is-split {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(1rem, 2.5vw, 2.25rem);
}
.discover-stage > .discover-chat {
  min-width: 0;
  min-height: 0;
}
/*
 * `.discover-chat` bol priamym flex potomkom `.discover-inner` a pravidlo
 * `.discover-band .discover-chat.is-open { flex: 1 1 auto }` mu dávalo výšku
 * celého pásu. Po vložení do mriežky ten flex už neplatí — roztiahnuť sa musí
 * javisko. Bez toho má pravý panel nulovú výšku a `height: 100%` v ňom nemá
 * z čoho počítať.
 */
.discover-band:has(.discover-chat.is-open) .discover-stage {
  flex: 1 1 auto;
  min-height: 0;
}

/* ── pravý stĺpec ──────────────────────────────────────────────────────── */
.discover-navrhy {
  min-width: 0;
  min-height: 0;
  /* Kým je stĺpec zbalený, obsah sa nesmie vyliať do ľavej polovice. */
  overflow: hidden;
  opacity: 0;
  transition: opacity 0.45s ease 0.2s;
}
.discover-stage.is-split .discover-navrhy {
  opacity: 1;
}
/*
 * Panel je **biela karta, rovnaká ako rozhovor vedľa**, a je to nutnosť, nie
 * vkus: položky výsledkov (`.ks-chat-hit`, `.ks-chat-hits-h`, `.ks-chat-pick`)
 * majú farby počítané na biely podklad — tmavomodrý názov, sivý popis, červený
 * nadpis skupiny. Na priesvitnom podklade nad modrým pásom z nich nezostalo nič
 * čitateľné. Kto sem bude pridávať ďalší obsah, musí rátať s bielym pozadím.
 */
.discover-navrhy__in {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  padding: 0.9rem 1rem 1rem;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.3);
}
.discover-navrhy__hd {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.6rem;
  margin-bottom: 0.6rem;
}
.discover-navrhy__eye {
  font-size: var(--ks-t-2xs);
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ks-soft);
}
.discover-navrhy__load {
  font-size: var(--ks-t-xs);
  font-weight: 600;
  color: var(--ks-blue);
  animation: navrhy-puls 1.4s ease-in-out infinite;
}
.discover-navrhy__prazdne {
  margin: 0;
  color: var(--ks-soft);
  font-size: var(--ks-t-sm);
  line-height: 1.55;
}
.discover-navrhy__zoznam {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: rgba(13, 52, 96, 0.25) transparent;
  padding-right: 0.25rem;
}
.discover-navrhy__zoznam::-webkit-scrollbar {
  width: 8px;
}
.discover-navrhy__zoznam::-webkit-scrollbar-thumb {
  background: rgba(13, 52, 96, 0.25);
  border-radius: 999px;
}
/* Hlavička skupiny („Objekty 10“) sa pri rolovaní prilepí hore, aby bolo
   vidieť, v ktorej skupine sa človek nachádza. */
.discover-navrhy__zoznam .ks-chat-hits-h {
  position: sticky;
  top: 0;
  z-index: 1;
  background: #fff;
  padding-block: 0.3rem;
}

/* ── nábeh položiek ────────────────────────────────────────────────────── */
/* Každá položka príde s malým oneskorením podľa poradia, takže zoznam sa
   „posype“ zhora nadol namiesto toho, aby naskočil naraz. Strop na 12 —
   pri dlhšom zozname by posledné čakali priveľa. */
.discover-navrhy__item {
  animation: navrhy-prichod 0.55s cubic-bezier(0.22, 1, 0.36, 1) backwards;
  animation-delay: calc(min(var(--i, 0), 12) * 55ms);
}
@keyframes navrhy-prichod {
  from {
    opacity: 0;
    transform: translateY(10px) scale(0.985);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes navrhy-puls {
  0%, 100% { opacity: 0.45; }
  50% { opacity: 1; }
}

/* ── úzke displeje ─────────────────────────────────────────────────────── */
/* Dve polovice majú zmysel od šírky, kde sa do nich zmestí veta aj karta.
   Nižšie idú pod seba — panel pod vstupné pole, nech je odpoveď hneď vidieť. */
@media (max-width: 991.98px) {
  .discover-stage,
  .discover-stage.is-split {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
  }
  .discover-stage.is-split {
    row-gap: 1rem;
  }
  .discover-navrhy {
    /* Na výšku sa animuje z nuly — `grid-template-rows` by tu robil to isté
       čo stĺpce hore, ale jeden zbalený riadok stačí zvládnuť maximálnou
       výškou, lebo obsah je rolovateľný. */
    max-height: 0;
    transition: max-height 0.65s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.45s ease 0.2s;
  }
  .discover-stage.is-split .discover-navrhy {
    max-height: 60vh;
  }
}

@media (prefers-reduced-motion: reduce) {
  .discover-stage,
  .discover-navrhy,
  .discover-navrhy__item,
  .discover-navrhy__load {
    transition: none;
    animation: none;
  }
}
/* ══ koniec dvoch stĺpcov ════════════════════════════════════════════════ */

/* ============================================================================
   VYHĽADÁVAČ — nábeh bublín rozhovoru (24. 9.)

   Panel návrhov vpravo už nabieha animovane, ale text v ľavom stĺpci
   naskakoval skokom. Bublina otázky prichádza sprava (je pri pravom okraji),
   bublina odpovede zľava spolu s avatarom — z tej strany, kde stoja.

   Prehráva sa **raz, pri vzniku uzla**. Staršie otázky ostávajú v DOM
   nedotknuté, takže sa pri ďalšej otázke neprehrávajú znova; bublina odpovede
   sa animuje, lebo pri dopísaní odpovede vystrieda bublinu „Hľadám…“ a vzniká
   nanovo.

   Návrat: zmazať blok po značku „koniec nábehu bublín“.
   ========================================================================= */
.ks-chat-row--user .ks-chat-bubble {
  animation: bublina-sprava 0.5s cubic-bezier(0.22, 1, 0.36, 1) backwards;
}
.ks-chat-row--bot {
  animation: bublina-zlava 0.55s cubic-bezier(0.22, 1, 0.36, 1) backwards;
}
/* Odpoveď necháme chvíľu vydýchnuť po tom, ako zmizne „Hľadám…“ — bez toho
   sa nová bublina objaví v tej istej stotine sekundy a splynie s ňou. */
.ks-chat-row--bot .ks-chat-bubble:not(.ks-chat-bubble--typing) {
  animation: bublina-obsah 0.5s ease backwards 0.08s;
}
/* Ponuky ďalších otázok patria k odpovedi, tak prídu tesne po nej. */
.ks-chat-follow .discover-chip {
  animation: bublina-obsah 0.45s ease backwards 0.22s;
}

@keyframes bublina-sprava {
  from {
    opacity: 0;
    transform: translate(14px, 8px) scale(0.97);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes bublina-zlava {
  from {
    opacity: 0;
    transform: translate(-14px, 8px) scale(0.97);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes bublina-obsah {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ks-chat-row--user .ks-chat-bubble,
  .ks-chat-row--bot,
  .ks-chat-row--bot .ks-chat-bubble:not(.ks-chat-bubble--typing),
  .ks-chat-follow .discover-chip {
    animation: none;
  }
}
/* ══ koniec nábehu bublín ════════════════════════════════════════════════ */


/* ============================================================================
   PÍSMO NADPISOV (24. 9.)

   Nadpisy serifom, všetko ostatné bezserifovkou. Serif vedie oko po riadku
   a dáva portálu charakter sprievodcu; na rozhranie a drobné štítky sa
   nehodí, tam zostáva Source Sans.

   Ktoré prvky sú nadpis, sa nedá odvodiť z názvu triedy — portál má nadpisy
   pod `.rh-title`, `.art-h1`, `.sec-h` aj `.place-card-hd`. Preto zoznam.
   **Popisky verzálkami sem nepatria** (`.sec-eye`, `.ks-chat-hits-h`,
   `.discover-navrhy__eye`) — tie sú štítok, nie nadpis.

   Návrat: zmazať blok po značku „koniec písma nadpisov“.
   ========================================================================= */
h1,
h2,
h3,
.discover-title,
.rh-title,
.art-h1,
.sec-h,
.s-title,
.autor-hd__h,
.place-article .place-card-hd,
.clanok-infobar-card__title,
.sbox-hd,
.place-card-hd,
.vedeli-ste-text,
.ks-chat-direct-body strong,
.discover-navrhy__zoznam .ks-chat-hit strong {
  font-family: var(--ks-font-nadpis);
}

/* Serif má inú kresbu než Manrope: pri tesnom prestrkaní sa písmená zlievajú,
   lebo majú pätky. Zápornú hodnotu preto zmierňujeme. */
.discover-title,
.rh-title,
.art-h1,
.sec-h {
  letter-spacing: -0.015em;
}

/* Text článku je hlavný dôvod celej výmeny — dostáva plnú veľkosť škály. */
.place-article .art-body {
  font-size: var(--ks-t-md);
}
/* ══ koniec písma nadpisov ═══════════════════════════════════════════════ */

/* ============================================================================
   DRUHÁ KATEGÓRIA — odznak v hero (24. 9.)

   Objekt môže patriť do dvoch kategórií: Dóm sv. Alžbety je pamiatka aj
   vyhliadková veža. Prvý odznak zostáva len popisom, druhý je **odkaz** —
   je to najprirodzenejšia cesta k „ďalším takým“.

   Návrat: zmazať blok po značku „koniec druhej kategórie“.
   ========================================================================= */
.rh-badges {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem;
  margin-bottom: 0.15rem;
}

/* Odkaz sa musí dať rozoznať od štítku aj bez farby — podčiarknutie by
   v hero pôsobilo ťažko, tak nesie šípku a reaguje na ukazovateľ. */
a.rh-badge--druha {
  text-decoration: none;
  transition: background 0.18s ease, border-color 0.18s ease;
}
a.rh-badge--druha::after {
  content: '\f061'; /* fa-arrow-right */
  font-family: 'Font Awesome 6 Free';
  font-weight: 900;
  font-size: 0.72em;
  opacity: 0.65;
  margin-left: 0.1rem;
  transition: transform 0.18s ease;
}
a.rh-badge--druha:hover,
a.rh-badge--druha:focus-visible {
  background: rgba(255, 255, 255, 0.26);
  border-color: rgba(255, 255, 255, 0.45);
  color: #fff;
}
a.rh-badge--druha:hover::after,
a.rh-badge--druha:focus-visible::after {
  transform: translateX(2px);
}

@media (prefers-reduced-motion: reduce) {
  a.rh-badge--druha,
  a.rh-badge--druha::after {
    transition: none;
  }
}
/* ══ koniec druhej kategórie ═════════════════════════════════════════════ */

/* ============================================================================
   EDITOR TEXTU V PORTÁLI AUTORA (24. 9.)

   Autor nemá písať HTML ručne — pole s `<p>` značkami bolo pre neho nečitateľné.
   Formátovanie je zámerne skromné: tučné, kurzíva, podčiarknutie a dva zoznamy.
   Viac značiek server aj tak zahodí (`ArticleHtmlSanitizer`).

   Návrat: zmazať blok po značku „koniec editora“.
   ========================================================================= */
.ks-rte {
  border: 1px solid var(--ks-border);
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
}
.ks-rte:focus-within {
  outline: 3px solid var(--ks-blue);
  outline-offset: 1px;
  border-color: var(--ks-blue);
}

.ks-rte__panel {
  display: flex;
  flex-wrap: wrap;
  gap: 0.15rem;
  padding: 0.35rem;
  border-bottom: 1px solid var(--ks-border);
  background: #f7f9fc;
}

.ks-rte__btn {
  width: 2.1rem;
  height: 2.1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--ks-soft);
  font-size: 0.85rem;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}
.ks-rte__btn:hover {
  background: #e7eef8;
  color: var(--ks-bluedk);
}
/* Zapnutý rez musí byť rozoznateľný aj bez farby — preto aj tučné písmo. */
.ks-rte__btn.is-on {
  background: var(--ks-bluedk);
  color: #fff;
}
.ks-rte__btn:focus-visible {
  outline: 2px solid var(--ks-blue);
  outline-offset: 1px;
}

.ks-rte__plocha {
  min-height: 16rem;
  max-height: 60vh;
  overflow-y: auto;
  padding: 0.75rem 0.9rem;
  font: inherit;
  line-height: 1.7;
  color: var(--ks-text);
}
.ks-rte__plocha:focus {
  outline: none;
}
.ks-rte__plocha p {
  margin: 0 0 0.75rem;
}
.ks-rte__plocha p:last-child {
  margin-bottom: 0;
}
.ks-rte__plocha ul,
.ks-rte__plocha ol {
  margin: 0 0 0.75rem;
  padding-left: 1.4rem;
}

.autor-pole__pozn {
  display: block;
  margin-top: 0.35rem;
  font-size: var(--ks-t-xs);
  font-weight: 500;
  color: var(--ks-soft);
}

@media (prefers-reduced-motion: reduce) {
  .ks-rte__btn {
    transition: none;
  }
}
/* ══ koniec editora ══════════════════════════════════════════════════════ */

/* ══ KONTAKTY OBJEKTU ════════════════════════════════════════════════════
   Blok pod počasím v bočnom paneli. Rovnaká reč ako skupiny atribútov
   (`.sbox`), ale výraznejšia: kontakt je to, kvôli čomu návštevník na
   stránku často prišiel, a nesmie zapadnúť medzi „Typ vstupného“ a
   „Bezbariérovosť“.

   Výraznejší je troma vecami a nie farbou navyše — paleta zostáva
   kategórii: silnejším rámom, jemne tónovanou hlavičkou a jediným plným
   tlačidlom v celom paneli.

   Návrat: zmazať blok po značku „koniec kontaktov“. */

/* Tmavé navy pozadie zo „Vedeli ste“ — rovnaká reč, rovnaký dôvod: kontakt
   je vec, kvôli ktorej návštevník často prišiel, a v stĺpci bielych kariet by
   zapadol. Farba kategórie je **len na prúžku hore**, nikdy pod písmom —
   zadáva ju redakcia a väčšina odtieňov by biely text na 4,5 : 1 nedotiahla.
   Na navy má biela 13 : 1. */
.sbox--kontakt {
  position: relative;
  overflow: hidden;
  border: 0;
  background:
    radial-gradient(ellipse 80% 120% at 88% 8%, rgba(255, 255, 255, 0.09), transparent 60%),
    linear-gradient(145deg, #0d3460 0%, #0a2647 55%, #071c35 100%);
  box-shadow: 0 14px 34px -18px rgba(13, 52, 96, 0.55);
}

/* Prúžok hore nesie farbu kategórie — jediné miesto, kde sa v boxe použije. */
.sbox--kontakt::before {
  content: '';
  position: absolute;
  inset: 0 0 auto 0;
  z-index: 1;
  height: 3px;
  background: linear-gradient(
    90deg,
    var(--kategoria-accent, var(--ks-blue)) 0%,
    color-mix(in srgb, var(--kategoria-accent, #1a5fa8) 35%, transparent) 70%,
    transparent 100%
  );
}

/* Hrebeň hôr pri spodnej hrane, rovnaký vodoznak ako v „Vedeli ste“. */
.sbox--kontakt::after {
  content: '';
  position: absolute;
  right: 0;
  bottom: 0;
  width: 230px;
  height: 46px;
  pointer-events: none;
  background: linear-gradient(
    270deg,
    rgba(255, 255, 255, 0.11) 0%,
    rgba(255, 255, 255, 0.05) 55%,
    transparent 100%
  );
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 150 16' preserveAspectRatio='none'%3E%3Cpath d='M0 16 L14 9 L28 14 L46 7 L62 13 L80 8 L96 15 L118 11 L150 16 Z M34 16 L36.2 9.5 L38.4 16 Z M70 16 L72.4 8.6 L74.8 16 Z M104 16 L106 10.5 L108 16 Z' fill='%23000'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 150 16' preserveAspectRatio='none'%3E%3Cpath d='M0 16 L14 9 L28 14 L46 7 L62 13 L80 8 L96 15 L118 11 L150 16 Z M34 16 L36.2 9.5 L38.4 16 Z M70 16 L72.4 8.6 L74.8 16 Z M104 16 L106 10.5 L108 16 Z' fill='%23000'/%3E%3C/svg%3E");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 230px 46px;
  mask-size: 230px 46px;
}

/* Hlavička je na navy pozadí pilulka ako v „Vedeli ste“, nie pás s linkou.
   Tri triedy prebíjajú `.place-page .sbox-hd`, ktorý stavia svetlú verziu
   aj s vlastným hrebeňom hôr a ikonou v dlaždici. */
.place-page .sbox--kontakt .sbox-hd {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin: 1.3rem 1.05rem 0.55rem;
  padding: 0.28rem 0.7rem;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.1);
  letter-spacing: 0.12em;
  color: rgba(255, 255, 255, 0.92);
}
/* Hrebeň patrí boxu, nie hlavičke — inak by na pilulke visel druhýkrát. */
.place-page .sbox--kontakt .sbox-hd::before,
.place-page .sbox--kontakt .sbox-hd::after {
  content: none;
}
/* Ikona je na navy obyčajný glyf; svetlá dlaždica by na tmavom pozadí svietila. */
.place-page .sbox--kontakt .sbox-hd i {
  width: auto;
  height: auto;
  display: inline;
  background: none;
  font-size: 0.85rem;
  color: inherit;
}

.kontakt-zoznam {
  position: relative;
  z-index: 1;
  padding: 0 1.05rem 0.9rem;
}

.kontakt-riadok {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  min-height: 2.9rem;
  padding: 0.5rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}
.kontakt-riadok:last-child {
  border-bottom: 0;
}

.kontakt-nazov {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  flex: 0 0 auto;
  font-size: var(--ks-t-xs);
  font-weight: 700;
  color: rgba(255, 255, 255, 0.72);
}

.kontakt-ikona {
  width: 1.15rem;
  text-align: center;
  color: rgba(255, 255, 255, 0.55);
}

/* Biela na navy, nie akcent: tmavé kategórie by na tomto pozadí zanikli
   a pri svetlých by čierny text nemal kontrast. Biela má 13 : 1 vždy. */
.kontakt-btn {
  flex: 0 0 auto;
  border: 0;
  border-radius: 999px;
  padding: 0.34rem 0.95rem;
  font-family: inherit;
  font-size: var(--ks-t-2xs);
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  cursor: pointer;
  color: #0a2647;
  background: #fff;
  transition: background 0.18s ease, transform 0.18s ease;
}
.kontakt-btn:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.86);
  transform: translateY(-1px);
}
.kontakt-btn:disabled {
  cursor: progress;
  opacity: 0.7;
}

.kontakt-hodnota {
  min-width: 0;
  text-align: right;
  font-size: var(--ks-t-s);
  font-weight: 600;
  color: #fff;
  overflow-wrap: anywhere;
  /* Odhalenie musí byť vidieť — inak to vyzerá, že sa nič nestalo. */
  animation: kontakt-odhal 0.45s ease both;
}
.kontakt-hodnota a {
  color: #fff;
  text-decoration: none;
  border-bottom: 1px solid rgba(255, 255, 255, 0.45);
}
.kontakt-hodnota a:hover {
  border-bottom-color: #fff;
}

@keyframes kontakt-odhal {
  from {
    opacity: 0;
    transform: translateX(0.6rem);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

/* Adresa býva dlhá — na úzkom paneli sa nemá tlačiť vedľa popisky. */
@media (max-width: 400px) {
  .kontakt-riadok {
    flex-wrap: wrap;
    row-gap: 0.3rem;
  }
  .kontakt-hodnota {
    flex: 1 0 100%;
    text-align: left;
  }
}

@media (prefers-reduced-motion: reduce) {
  .kontakt-btn,
  .kontakt-hodnota {
    transition: none;
    animation: none;
  }
}
/* ══ koniec kontaktov ════════════════════════════════════════════════════ */

/* ══ SPRÁVCA OBJEKTU ═════════════════════════════════════════════════════
   Pásik na konci bočného panela („Ste správca tohto objektu?“) a okno,
   ktoré sa po kliknutí otvorí.

   Pásik je jediná plná farebná plocha v celom stĺpci — pod atribútmi už nič
   nenasleduje, takže nemá s čím súťažiť a nemusí kričať tvarom.

   Návrat: zmazať blok po značku „koniec správcu“. */

/* Navy, nie farba kategórie.
   `--kategoria-accent-text` je akcent **stmavený pre čitateľnosť na bielej** —
   nie text na akcente. Ako farba písma na tom istom akcente dal zelený objekt
   tmavozelenú na zelenej. Platí tu preto to isté pravidlo ako pri „Vedeli ste“
   a pri kontaktoch: farba kategórie len v prúžku, text vždy biely na navy
   (13 : 1 pri každej kategórii). */
.spravca-pasik {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  gap: 0.8rem;
  width: 100%;
  margin-bottom: 1rem;
  padding: 0.95rem 1.05rem;
  border: 0;
  border-radius: 10px;
  text-align: left;
  cursor: pointer;
  color: #fff;
  background:
    radial-gradient(ellipse 80% 120% at 88% 8%, rgba(255, 255, 255, 0.09), transparent 60%),
    linear-gradient(145deg, #0d3460 0%, #0a2647 55%, #071c35 100%);
  box-shadow: 0 14px 34px -18px rgba(13, 52, 96, 0.55);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.spravca-pasik::before {
  content: '';
  position: absolute;
  inset: 0 0 auto 0;
  height: 3px;
  background: linear-gradient(
    90deg,
    var(--kategoria-accent, var(--ks-blue)) 0%,
    color-mix(in srgb, var(--kategoria-accent, #1a5fa8) 35%, transparent) 70%,
    transparent 100%
  );
}
.spravca-pasik:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 40px -18px rgba(13, 52, 96, 0.7);
}

.spravca-pasik__ikona {
  flex: 0 0 auto;
  width: 2.1rem;
  height: 2.1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  font-size: 0.95rem;
  background: rgba(255, 255, 255, 0.18);
}

.spravca-pasik__text {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  line-height: 1.3;
}
.spravca-pasik__text strong {
  font-size: var(--ks-t-s);
  font-weight: 800;
}
.spravca-pasik__text span {
  font-size: var(--ks-t-xs);
  opacity: 0.85;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.spravca-pasik__sip {
  flex: 0 0 auto;
  opacity: 0.7;
  transition: transform 0.18s ease;
}
.spravca-pasik:hover .spravca-pasik__sip {
  transform: translateX(3px);
}

/* ── okno ──────────────────────────────────────────────────────────────── */

.spravca-prekrytie {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}

/* Podklad je tlačidlo, nie div — kliknutie mimo okna má zatvárať aj
   z klávesnice a čítačka ho nemá hlásiť ako text. */
.spravca-pozadie {
  position: absolute;
  inset: 0;
  border: 0;
  padding: 0;
  cursor: pointer;
  background: rgba(11, 32, 56, 0.55);
  backdrop-filter: blur(3px);
  animation: spravca-vstup-pozadie 0.25s ease both;
}

.spravca-okno {
  position: relative;
  width: min(30rem, 100%);
  max-height: calc(100vh - 2rem);
  overflow-y: auto;
  padding: 1.6rem 1.6rem 1.4rem;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 24px 60px rgba(11, 32, 56, 0.35);
  animation: spravca-vstup-okno 0.3s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.spravca-zavri {
  position: absolute;
  top: 0.65rem;
  right: 0.65rem;
  width: 2.1rem;
  height: 2.1rem;
  border: 0;
  border-radius: 50%;
  cursor: pointer;
  color: var(--ks-soft);
  background: transparent;
  transition: background 0.15s ease;
}
.spravca-zavri:hover {
  background: #eef2f7;
}

.spravca-h {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 800;
  font-family: var(--ks-font-nadpis);
}

.spravca-objekt {
  margin: 0.15rem 0 1rem;
  font-size: var(--ks-t-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--kategoria-accent, #1a5fa8);
}

.spravca-popis {
  margin: 0 0 1.1rem;
  font-size: var(--ks-t-s);
  line-height: 1.55;
  color: var(--ks-soft);
}

.spravca-label {
  display: block;
  margin-bottom: 0.35rem;
  font-size: var(--ks-t-xs);
  font-weight: 700;
}

.spravca-input {
  width: 100%;
  margin-bottom: 0.9rem;
  padding: 0.6rem 0.8rem;
  border: 1px solid var(--ks-border);
  border-radius: 8px;
  font-family: inherit;
  font-size: var(--ks-t-s);
  background: #fff;
}
.spravca-input:focus {
  outline: 2px solid color-mix(in srgb, var(--kategoria-accent, #1a5fa8) 55%, transparent);
  outline-offset: 1px;
  border-color: var(--kategoria-accent, #1a5fa8);
}
.spravca-input:disabled {
  color: var(--ks-soft);
  background: #f6f8fb;
}
.spravca-textarea {
  resize: vertical;
  line-height: 1.5;
}

/* Návnada na automaty — z obrazovky preč, ale pre prehliadač vyplniteľná.
   `display: none` by ju automatom prezradilo. */
.spravca-honeypot {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.spravca-chyba {
  margin: 0 0 0.9rem;
  padding: 0.55rem 0.75rem;
  border-radius: 8px;
  font-size: var(--ks-t-xs);
  font-weight: 600;
  color: #8a1c1c;
  background: #fdeaea;
}

.spravca-btn {
  width: 100%;
  padding: 0.7rem 1rem;
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  font-family: inherit;
  font-size: var(--ks-t-s);
  font-weight: 800;
  /* Tá istá dvojica ako na pásiku — navy a biela, nie akcent na akcente. */
  color: #fff;
  background: #0a2647;
  transition: background 0.18s ease;
}
.spravca-btn:hover:not(:disabled) {
  background: #0d3460;
}
.spravca-btn:disabled {
  cursor: progress;
  opacity: 0.75;
}

.spravca-pozn {
  margin: 0.8rem 0 0;
  font-size: var(--ks-t-2xs);
  color: var(--ks-soft);
}

.spravca-hotovo {
  text-align: center;
}
.spravca-hotovo__ikona {
  display: block;
  margin-bottom: 0.7rem;
  font-size: 2.4rem;
  color: #1f9254;
}
.spravca-hotovo p {
  margin: 0 0 1.2rem;
  font-size: var(--ks-t-s);
  line-height: 1.55;
}

@keyframes spravca-vstup-pozadie {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes spravca-vstup-okno {
  from {
    opacity: 0;
    transform: translateY(1.2rem) scale(0.97);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .spravca-pasik,
  .spravca-pasik__sip,
  .spravca-pozadie,
  .spravca-okno,
  .spravca-btn {
    transition: none;
    animation: none;
  }
}
/* ══ koniec správcu ══════════════════════════════════════════════════════ */

/* ══ SOCIÁLNE SIETE ══════════════════════════════════════════════════════
   Odkazy na profily portálu v pätičke, v topbare a na stránke Kontakt.

   Zámerne **odkazy, nie vložené widgety**: Facebook Page Plugin ani
   Instagram embed sa sem nedostanú, lebo by načítali skript z cudzej
   domény a poslali IP návštevníka Mete ešte pred súhlasom s cookies —
   to isté, prečo si portál hostuje písma aj ikony sám.

   Značkové farby sú len na prejdenie myšou. V pokoji je ikona neutrálna:
   dve sýte škvrny v pätičke plnej odkazov ťahajú oko na miesto, ktoré
   nie je hlavná cesta.

   Návrat: zmazať blok po značku „koniec sociálnych sietí“. */

.ks-social {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.ks-social__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  text-decoration: none;
  transition: background 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

/* ── pätička ───────────────────────────────────────────────────────────── */

.ft-social {
  margin-top: 1.5rem;
}

.ft-social__h {
  margin: 0 0 0.6rem;
  font-size: var(--ks-t-2xs);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: rgba(255, 255, 255, 0.55);
}

.ks-social--footer .ks-social__link {
  width: 2.45rem;
  height: 2.45rem;
  border-radius: 10px;
  font-size: 1rem;
  color: rgba(255, 255, 255, 0.85);
  background: rgba(255, 255, 255, 0.1);
}
.ks-social--footer .ks-social__link:hover {
  transform: translateY(-2px);
  color: #fff;
}

/* ── topbar ────────────────────────────────────────────────────────────── */

.ks-social--topbar {
  gap: 0.15rem;
  margin-left: 0.35rem;
}
.ks-social--topbar .ks-social__link {
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 6px;
  font-size: 0.82rem;
  color: inherit;
  opacity: 0.75;
}
.ks-social--topbar .ks-social__link:hover {
  opacity: 1;
  background: rgba(255, 255, 255, 0.12);
}

/* ── stránka Kontakt ───────────────────────────────────────────────────── */

.ks-social--inline {
  gap: 0.6rem;
  margin: 0 0 1.5rem;
}
.ks-social--inline .ks-social__link {
  padding: 0.55rem 1.05rem;
  border: 1px solid var(--ks-border);
  border-radius: 999px;
  font-size: var(--ks-t-s);
  font-weight: 700;
  color: var(--ks-text);
  background: #fff;
}
.ks-social--inline .ks-social__link i {
  font-size: 1.05rem;
}
.ks-social--inline .ks-social__link:hover {
  transform: translateY(-1px);
  color: #fff;
}

/* Značkové farby až pri prejdení myšou — v pokoji nech pätička nekričí.
   Instagram má namiesto loga prechod, ktorý používa sám. */
.ks-social__link--facebook:hover {
  background: #1877f2;
  color: #fff;
}
.ks-social__link--instagram:hover {
  background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fd5949 45%, #d6249f 60%, #285aeb 90%);
  color: #fff;
}
.ks-social--inline .ks-social__link:hover {
  border-color: transparent;
}

@media (prefers-reduced-motion: reduce) {
  .ks-social__link {
    transition: none;
  }
  .ks-social__link:hover {
    transform: none;
  }
}
/* ══ koniec sociálnych sietí ═════════════════════════════════════════════ */

/* ══ ZDIEĽANIE ČLÁNKU ════════════════════════════════════════════════════
   Pás pod textom článku. Odkazy, nie oficiálne tlačidlá sietí — tie by
   načítali SDK z `connect.facebook.net` a odovzdali Mete IP **každého**
   návštevníka článku, aj toho, ktorý nič zdieľať nechce.

   Značkové farby až pri prejdení myšou, rovnako ako pri profiloch
   v pätičke: pás má byť ponuka, nie svetelná tabuľa pod článkom.

   Návrat: zmazať blok po značku „koniec zdieľania“. */

.zdielaj {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.6rem 1rem;
  margin-top: 1.75rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--ks-border);
}

.zdielaj__popis {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-size: var(--ks-t-s);
  font-weight: 700;
  color: var(--ks-soft);
}

.zdielaj__tlacidla {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.zdielaj__btn {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.42rem 0.9rem;
  border: 1px solid var(--ks-border);
  border-radius: 999px;
  cursor: pointer;
  font-family: inherit;
  font-size: var(--ks-t-xs);
  font-weight: 700;
  text-decoration: none;
  color: var(--ks-text);
  background: #fff;
  transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease,
    transform 0.18s ease;
}
.zdielaj__btn:hover {
  transform: translateY(-1px);
  border-color: transparent;
  color: #fff;
}

.zdielaj__btn--facebook:hover { background: #1877f2; }
.zdielaj__btn--whatsapp:hover { background: #25d366; }
.zdielaj__btn--email:hover    { background: #5b6472; }
.zdielaj__btn--kopia:hover    { background: var(--kategoria-accent, #1a5fa8); }

/* Systémová ponuka je hlavná cesta na mobile — jediná plná plocha v páse. */
.zdielaj__btn--system {
  border-color: transparent;
  color: #fff;
  background: #0a2647;
}
.zdielaj__btn--system:hover {
  background: #0d3460;
}

/*
 * Na úzkom displeji je systémová ponuka po ruke a obsahuje Messenger aj
 * WhatsApp, takže jednotlivé siete sú tam navyše. Skrývajú sa **len keď
 * systémová ponuka naozaj je** — inak by na mobilnom prehliadači bez nej
 * nezostalo nič.
 */
@media (max-width: 575.98px) {
  .zdielaj__tlacidla:has(.zdielaj__btn--system) .zdielaj__btn--facebook,
  .zdielaj__tlacidla:has(.zdielaj__btn--system) .zdielaj__btn--whatsapp,
  .zdielaj__tlacidla:has(.zdielaj__btn--system) .zdielaj__btn--email {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .zdielaj__btn {
    transition: none;
  }
  .zdielaj__btn:hover {
    transform: none;
  }
}
/* ══ koniec zdieľania ════════════════════════════════════════════════════ */
