/* ==========================================================================
   OPEVNĚNÍ ŠANCE — site.css
   Redesign homepage. Vrstveno nad Bootstrap 5.3.8 (grid / offcanvas / utility).

   Obsah:
     1. Design tokeny
     2. Base & typografie
     3. Layout
     4. Horní informační lišta
     5. Hlavní navigace
     6. Offcanvas (hamburger menu)
     7. Hero banner + 9 rychlých voleb
     8. Trvalé odkazy (promo strip)
     9. Partneři a financování
    10. Patička = dolní vodorovná nabídka
    11. Přístupnost & pohyb
   ========================================================================== */

/* ---------------------------------------------------------- 1. TOKENY --- */
:root {
  /* Barvy odvozené z loga NCOŠ (#59AE46 zelená, #FABA36 / #FED52F žlutá)
     a z fotografie z dronu (les, tráva, kámen, zemina). */
  --c-green-900: #12301a;
  --c-green-800: #1a4425;
  --c-green-700: #276231;   /* text-safe zelená na bílé */
  --c-green-600: #36833a;
  --c-green-500: #59ae46;   /* zelená z loga */
  --c-green-200: #c6dfbc;
  --c-green-100: #e7f1e2;
  --c-green-050: #f2f7ef;

  --c-amber-500: #faba36;   /* žlutá z loga */
  --c-amber-400: #fed52f;
  --c-amber-800: #7d5104;   /* text-safe žlutá na bílé */

  --c-ink:       #1c2419;
  --c-body:      #39442f;
  --c-muted:     #5b6655;
  --c-line:      #dcd8cb;
  --c-line-soft: #ebe8de;
  --c-surface:   #ffffff;
  --c-stone-100: #f4f2ea;
  --c-stone-050: #faf9f4;

  --c-focus-ring: #fed52f;

  /* Typografie */
  --f-sans:  "Manrope", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --f-serif: "Source Serif 4", Georgia, "Times New Roman", serif;
  --t-h1:   clamp(2.15rem, 1.25rem + 3.6vw, 4.25rem);
  --t-h2:   clamp(1.55rem, 1.15rem + 1.5vw, 2.35rem);
  --t-h3:   clamp(1.15rem, 1rem + .5vw, 1.4rem);
  --t-h4:   1.0625rem;
  --t-lead: clamp(1.05rem, .95rem + .6vw, 1.45rem);
  --t-sm:   .875rem;
  --t-xs:   .8125rem;

  /* Prostor */
  --gutter:     clamp(1rem, .4rem + 2vw, 2.5rem);
  --container:  1360px;

  /* Tvar a stín */
  --r-sm: 6px;
  --r-md: 12px;
  --sh-1: 0 2px 6px rgba(18, 48, 26, .06), 0 8px 24px rgba(18, 48, 26, .07);
  --sh-2: 0 6px 14px rgba(18, 48, 26, .10), 0 20px 48px rgba(18, 48, 26, .16);
  --sh-3: 0 10px 22px rgba(10, 30, 16, .18), 0 30px 64px rgba(10, 30, 16, .28);

  /* Pohyb */
  --e: cubic-bezier(.22, .61, .36, 1);
  --d-fast: 180ms;
  --d-mid:  240ms;
  --d-slow: 300ms;

  /* Přemapování Bootstrapu na náš systém */
  --bs-body-font-family: var(--f-sans);
  --bs-body-color: var(--c-body);
  --bs-body-bg: var(--c-surface);
  --bs-link-color-rgb: 39, 98, 49;
  --bs-link-hover-color-rgb: 18, 48, 26;
  --bs-border-color: var(--c-line);
  --bs-emphasis-color: var(--c-ink);
}

/* Lokální písma – žádná externí závislost */
@font-face {
  font-family: "Manrope"; font-style: normal; font-weight: 400 800; font-display: swap;
  src: url("../fonts/manrope-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
                 U+1E00-1E9F, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Manrope"; font-style: normal; font-weight: 400 800; font-display: swap;
  src: url("../fonts/manrope-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+2000-206F, U+20AC, U+2122, U+2212;
}
@font-face {
  font-family: "Source Serif 4"; font-style: normal; font-weight: 400 800; font-display: swap;
  src: url("../fonts/sourceserif4-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
                 U+1E00-1E9F, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Source Serif 4"; font-style: normal; font-weight: 400 800; font-display: swap;
  src: url("../fonts/sourceserif4-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+2000-206F, U+20AC, U+2122, U+2212;
}

/* ------------------------------------------------- 2. BASE & TYPOGRAFIE --- */
body {
  font-family: var(--f-sans);
  color: var(--c-body);
  background: var(--c-surface);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3 {
  font-family: var(--f-serif);
  color: var(--c-ink);
  font-weight: 700;
  line-height: 1.16;
  letter-spacing: -.012em;
  margin: 0 0 .5em;
  text-wrap: balance;
}
h1 { font-size: var(--t-h1); line-height: 1.04; letter-spacing: -.024em; }
h2 { font-size: var(--t-h2); }
h3 { font-size: var(--t-h3); }
h4 {
  font-family: var(--f-sans); font-size: var(--t-h4); font-weight: 800;
  color: var(--c-ink); margin: 0 0 .5em;
}
p { margin: 0 0 1rem; max-width: 68ch; }

a { color: var(--c-green-700); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--c-green-800); }


/* ------------------------------------------------------------ 3. LAYOUT --- */
.shell {
  width: min(var(--container), 100% - (2 * var(--gutter)));
  margin-inline: auto;
}

/* -------------------------------------------- 4. HORNÍ INFORMAČNÍ LIŠTA --- */
/* Lišta i navigace se lepí společně (požadavek klienta): jeden sticky obal,
   takže lišta zůstává vždy nad navigací a nic mezi nimi „neposkočí“.
   z-index 40 je nad obsahem, ale pod offcanvasem Bootstrapu (1040/1045). */
.stickyhead {
  position: sticky; top: 0; z-index: 40;
  transition: box-shadow var(--d-mid) var(--e);
}
.stickyhead.is-stuck { box-shadow: 0 6px 22px rgba(18, 48, 26, .14); }

.topbar {
  background: var(--c-green-900);
  color: #dfe9d9;
  font-size: var(--t-xs);
}
.topbar__inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; min-height: 44px; flex-wrap: wrap;
}
.topbar__group { display: flex; align-items: center; gap: .25rem; flex-wrap: wrap; }

.lang {
  display: inline-flex; align-items: center; gap: .4rem;
  padding: .5rem .55rem; min-height: 34px;
  font-weight: 700; letter-spacing: .04em; color: #cfe0c6;
  border-radius: var(--r-sm); text-decoration: none;
  transition: background-color var(--d-fast) var(--e), color var(--d-fast) var(--e);
}
.lang svg { width: 20px; height: 14px; display: block; border-radius: 2px; box-shadow: 0 0 0 1px rgba(255, 255, 255, .35); }
.lang:hover { background: rgba(255, 255, 255, .14); color: #fff; }
.lang[aria-current="true"] { background: var(--c-green-500); color: var(--c-green-900); }

.topbar__sep { width: 1px; height: 20px; background: rgba(255, 255, 255, .2); margin-inline: .5rem; }

.searchbox { display: flex; align-items: center; }
.searchbox__field {
  height: 34px; width: 190px; max-width: 44vw;
  border: 1px solid rgba(255, 255, 255, .3); border-right: 0;
  border-radius: var(--r-sm) 0 0 var(--r-sm);
  background: rgba(255, 255, 255, .1); color: #fff;
  font: inherit; padding: 0 .65rem;
}
.searchbox__field::placeholder { color: rgba(255, 255, 255, .68); }
.searchbox__field:focus { outline: 0; background: #fff; color: var(--c-ink); border-color: var(--c-amber-400); }
.searchbox__btn {
  height: 34px; min-width: 38px;
  border: 1px solid rgba(255, 255, 255, .3); border-radius: 0 var(--r-sm) var(--r-sm) 0;
  background: rgba(255, 255, 255, .16); color: #fff; cursor: pointer;
  transition: background-color var(--d-fast) var(--e), color var(--d-fast) var(--e);
}
.searchbox__btn:hover { background: var(--c-green-500); border-color: var(--c-green-500); color: var(--c-green-900); }

.topbar__link {
  display: inline-flex; align-items: center; gap: .45rem;
  min-height: 34px; padding: .5rem .6rem;
  color: #dfe9d9; text-decoration: none; border-radius: var(--r-sm); white-space: nowrap;
  transition: background-color var(--d-fast) var(--e), color var(--d-fast) var(--e);
}
.topbar__link:hover { background: rgba(255, 255, 255, .14); color: #fff; }
.topbar__link i { font-size: 1rem; color: var(--c-green-200); }
.topbar__link:hover i { color: var(--c-amber-400); }

@media (max-width: 991px) { .topbar__inner { min-height: 40px; } }
/* Na úzkém displeji zůstane jen ikona; text je dál přístupný čtečkám jako název odkazu. */
@media (max-width: 767px) {
  .topbar__link .t-label {
    position: absolute; width: 1px; height: 1px; overflow: hidden;
    clip-path: inset(50%); white-space: nowrap;
  }
  .topbar__link { padding-inline: .5rem; min-width: 40px; justify-content: center; }
}
@media (max-width: 575px) {
  .searchbox, .topbar__sep { display: none; }
  /* vše se musí vejít na jeden řádek i na 360 px */
  .topbar__inner { gap: .25rem; flex-wrap: nowrap; }
  .lang { padding: .5rem .3rem; gap: .3rem; }
  .lang svg { width: 18px; height: 12px; }
  .topbar__link { padding-inline: .4rem; }
}

/* --------------------------------------------------- 5. HLAVNÍ NAVIGACE --- */
.masthead {
  background: rgba(255, 255, 255, .97);
  border-bottom: 1px solid var(--c-line-soft);
}
.stickyhead.is-stuck .masthead { backdrop-filter: blur(10px); }
.masthead__inner {
  display: flex; align-items: center;
  gap: clamp(.75rem, .2rem + 1.4vw, 2rem);
  min-height: 104px;
}
.brand { display: inline-flex; align-items: center; flex: 0 0 auto; padding: .25rem 0; }
/* Logo „Historické opevnění Šance“ (poměr 1,85 : 1) – dominantní prvek hlavičky.
   Až 96 px na desktopu (navigace 104 px), 60 px na mobilu (navigace 68 px). */
.brand img { display: block; width: auto; height: clamp(60px, 2.6rem + 3.4vw, 96px); }

.mainnav { margin-left: auto; }
.mainnav__list {
  display: flex; align-items: center;
  gap: clamp(.25rem, -.25rem + 1.2vw, 1.15rem);
  list-style: none; margin: 0; padding: 0;
}
.mainnav__link {
  position: relative; display: flex; align-items: center;
  min-height: 48px; padding: .5rem .35rem;
  font-size: 1rem; font-weight: 700; color: var(--c-ink);
  text-transform: uppercase; letter-spacing: .02em;
  text-decoration: none; white-space: nowrap;
  transition: color var(--d-fast) var(--e);
}
.mainnav__link::after {
  content: ""; position: absolute; left: .35rem; right: .35rem; bottom: 14px;
  height: 2px; background: var(--c-green-500);
  transform: scaleX(0); transform-origin: left center;
  transition: transform var(--d-mid) var(--e);
}
.mainnav__link:hover, .mainnav__link:focus-visible { color: var(--c-green-700); }
.mainnav__link:hover::after, .mainnav__link:focus-visible::after { transform: scaleX(1); }
/* "page" = aktuální stránka, "true" = sekce, ve které aktuální podstránka leží */
.mainnav__link[aria-current] { color: var(--c-green-700); }
.mainnav__link[aria-current]::after { transform: scaleX(1); background: var(--c-amber-500); }

.masthead__tools { display: flex; align-items: center; gap: .5rem; flex: 0 0 auto; }
.iconbtn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 48px; height: 48px;
  border: 1px solid var(--c-line); border-radius: var(--r-sm);
  background: var(--c-surface); color: var(--c-green-800);
  font-size: 1.35rem; line-height: 1; cursor: pointer; text-decoration: none;
  transition: background-color var(--d-fast) var(--e), color var(--d-fast) var(--e),
              border-color var(--d-fast) var(--e), transform var(--d-fast) var(--e);
}
.iconbtn:hover { background: var(--c-green-050); border-color: var(--c-green-500); color: var(--c-green-900); transform: translateY(-1px); }
.iconbtn--menu { background: var(--c-green-800); border-color: var(--c-green-800); color: #fff; }
.iconbtn--menu:hover { background: var(--c-green-900); border-color: var(--c-green-900); color: #fff; }

/* Logo „i“ (dodaný soubor logo-TIC.jpg, bílé i na zeleném) – poslední prvek
   vpravo, stejně velké jako tlačítko menu. */
.ticlink {
  display: block; flex: 0 0 auto; width: 48px; height: 48px; border-radius: 3px;
  transition: transform var(--d-fast) var(--e), box-shadow var(--d-fast) var(--e);
}
.ticlink img { display: block; width: 100%; height: 100%; object-fit: contain; border-radius: inherit; }
.ticlink:hover { transform: translateY(-1px); box-shadow: 0 0 0 3px var(--c-green-100), 0 6px 14px rgba(0, 146, 65, .3); }

/* Verzálková navigace je širší (918 px), proto se do hamburgeru sklopí
   dřív než dříve – pod 1300 px by kolidovala s logem a ovládacími prvky. */
@media (max-width: 1299px) { .mainnav { display: none; } .masthead__tools { margin-left: auto; } }
@media (max-width: 575px) { .masthead__inner { min-height: 68px; gap: .5rem; } }
/* Polské menu je delší (1164 px místo 946 px): vodorovná navigace se vejde až od 1680 px, jinak hamburger. */
@media (min-width: 1300px) and (max-width: 1679.98px) {
  html[lang^="pl"] .mainnav { display: none; }
  html[lang^="pl"] .masthead__tools { margin-left: auto; }
  html[lang^="pl"] .sitemenu__list--main { display: block; }
}

/* ----------------------------------------------------------- 6. MENU --- */
.sitemenu { width: min(430px, 92vw); background: var(--c-surface); }
.sitemenu__head {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: 1.25rem var(--gutter); border-bottom: 1px solid var(--c-line-soft);
}
.sitemenu__title { font-family: var(--f-serif); font-size: 1.4rem; font-weight: 700; color: var(--c-ink); margin: 0; }
.sitemenu__body { padding: .5rem var(--gutter) 2rem; overflow-y: auto; }
.sitemenu__list { list-style: none; margin: 0; padding: 0; }
.sitemenu__link {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  min-height: 56px; padding: .85rem .25rem;
  border-bottom: 1px solid var(--c-line-soft);
  font-weight: 700; color: var(--c-ink); text-decoration: none;
  transition: color var(--d-fast) var(--e), padding-left var(--d-fast) var(--e);
}
.sitemenu__link i { color: var(--c-green-500); font-size: 1.1rem; transition: transform var(--d-fast) var(--e); }
.sitemenu__link:hover, .sitemenu__link:focus-visible { color: var(--c-green-700); padding-left: .6rem; }
.sitemenu__link:hover i { transform: translateX(3px); }
.sitemenu__link[aria-current] { color: var(--c-green-700); }
/* Hlavní menu v hamburgeru – jen tam, kde je vodorovná navigace skrytá (< 1300 px) */
.sitemenu__list--main { margin-bottom: 1.25rem; }
@media (min-width: 1300px) { .sitemenu__list--main { display: none; } }
.sitemenu__foot {
  margin-top: 1.75rem; padding-top: 1.25rem;
  border-top: 1px solid var(--c-line-soft);
  font-size: var(--t-sm); color: var(--c-muted);
}
.sitemenu__foot a { font-weight: 700; }

/* --------------------- 7. HERO BANNER + 9 RYCHLÝCH VOLEB (pod fotkou) --- */
/* Fotografii z dronu nic nepřekrývá – devět voleb leží až pod bannerem.
   Banner je proto výrazně nižší než dřív. */
.hero { position: relative; isolation: isolate; background: var(--c-green-900); overflow: hidden; }
.hero__media { position: absolute; inset: 0; z-index: 0; }
.hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: var(--pos, 50% 58%); display: block; }
.hero__scrim {
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background:
    linear-gradient(102deg, rgba(8, 24, 12, .80) 0%, rgba(8, 24, 12, .52) 32%,
                            rgba(8, 24, 12, .12) 62%, rgba(8, 24, 12, 0) 82%),
    linear-gradient(0deg,   rgba(8, 24, 12, .42) 0%, rgba(8, 24, 12, 0) 45%);
}
.hero__inner {
  position: relative; z-index: 2;
  min-height: clamp(380px, 33vw, 600px);
  display: flex; flex-direction: column; justify-content: center;
  padding-block: clamp(2.25rem, 1.25rem + 2.4vw, 3.5rem);
  color: #fff;
}
.hero h1 { color: #fff; text-shadow: 0 2px 26px rgba(4, 16, 8, .55); margin: 0 0 .35em; max-width: 20ch; }
.hero__accent { display: block; color: var(--c-amber-400); }
.hero__sub {
  font-size: var(--t-lead); font-weight: 500; color: rgba(255, 255, 255, .95);
  text-shadow: 0 2px 16px rgba(4, 16, 8, .65); margin: 0; max-width: 40ch;
  text-wrap: balance;           /* dva vyrovnané řádky místo osamoceného slova */
}
@media (max-width: 767.98px) {
  .hero__media img { object-position: var(--pos-m, 50% 52%); }
  .hero__scrim {
    background:
      linear-gradient(180deg, rgba(8, 24, 12, .72) 0%, rgba(8, 24, 12, .40) 45%, rgba(8, 24, 12, .55) 100%);
  }
  .hero__inner { min-height: 320px; }
}

/* ---- devět rychlých voleb ---- */
.quickzone { background: var(--c-surface); padding-block: clamp(1.5rem, .75rem + 2.4vw, 3rem); }
.quick {
  list-style: none; margin: 0; padding: 0;
  display: grid;
  gap: clamp(.65rem, .3rem + .9vw, 1.1rem);
  grid-auto-rows: 1fr;          /* všechny dlaždice mají shodnou výšku */
}
/* 3 x 3 podle vzoru visitfm.cz. Pořadí v DOM je po řádcích, takže pořadí
   tabulátoru odpovídá vizuálnímu pořadí; sloupce pak odpovídají zadání
   (1. sloupec = šance, 2. = návštěvnické centrum, 3. = akce). */
@media (min-width: 768px) {
  .quick { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767.98px) {
  .quick { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .quick > li { grid-column: span 2; }
  .quick > li:nth-child(9) { grid-column: 2 / span 2; }
}

.qt { display: flex; }
.qt__link {
  display: flex; flex-direction: column; width: 100%;
  background: var(--c-green-900);
  border-radius: var(--r-md);
  box-shadow: var(--sh-1);
  overflow: hidden;
  color: var(--c-ink); text-decoration: none;
  transition: transform var(--d-mid) var(--e), box-shadow var(--d-mid) var(--e);
}
.qt__media { display: block; position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: var(--c-green-100); }
.qt__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform var(--d-slow) var(--e); }
.qt__body { display: flex; align-items: flex-end; flex: 1 1 auto; }
.qt__label {
  font-family: var(--f-sans); font-weight: 800;
  text-transform: uppercase; letter-spacing: .055em;
  line-height: 1.25; hyphens: auto;
}
.qt__link:hover, .qt__link:focus-visible { transform: translateY(-4px); box-shadow: var(--sh-2); }
.qt__link:hover .qt__media img, .qt__link:focus-visible .qt__media img { transform: scale(1.06); }

/* Od 768 px leží popisek PŘÍMO NA FOTOGRAFII (vzor visitfm.cz), bez piktogramu. */
@media (min-width: 768px) {
  .qt__link { position: relative; }
  .qt__body {
    position: absolute; inset: auto 0 0 0;
    padding: 2.75rem 1.15rem 1.1rem;
    background: linear-gradient(0deg,
      rgba(7, 21, 11, .92) 0%, rgba(7, 21, 11, .78) 42%,
      rgba(7, 21, 11, .32) 76%, rgba(7, 21, 11, 0) 100%);
  }
  .qt__label { color: #fff; font-size: clamp(.9rem, .72rem + .42vw, 1.15rem); text-shadow: 0 1px 10px rgba(0, 0, 0, .55); }

  /* Dlaždice s logem místo fotografie: popisek je stejný jako u ostatních,
     jen logo se středí do plochy nad ním, ne do celé dlaždice. */
  .qt--logo .qt__media { padding-bottom: 3.5rem; }
}
.qt--logo .qt__media { background: #fff; }
.qt--logo .qt__media::after { content: none; }

/* Pod 768 px je dlaždice úzká – popisek proto leží pod fotografií. */
@media (max-width: 767.98px) {
  .qt__link { background: var(--c-surface); border: 1px solid var(--c-line); }
  .qt__media::after {
    content: ""; position: absolute; inset: 0;
    background: linear-gradient(0deg, rgba(9, 25, 13, .28), rgba(9, 25, 13, 0) 60%);
  }
  .qt__body { padding: .7rem .75rem .85rem; border-top: 3px solid var(--c-green-500); }
  .qt__label { color: var(--c-ink); font-size: .8125rem; }
}

/* ------------------------------------------- 8. TRVALÉ ODKAZY (promo) --- */
/* Znovupoužitelná komponenta – vkládá se i na podstránky. */
.promostrip { background: var(--c-stone-050); border-bottom: 1px solid var(--c-line-soft); }
.promostrip__grid {
  display: grid; gap: clamp(.75rem, .4rem + 1vw, 1.25rem);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  padding-block: clamp(1.5rem, 1rem + 1.6vw, 2.5rem);
}
.promo {
  display: flex; align-items: center; gap: 1rem;
  padding: 1.15rem 1.25rem;
  background: var(--c-surface);
  border: 1px solid var(--c-line); border-left: 4px solid var(--c-green-500);
  border-radius: var(--r-sm); box-shadow: var(--sh-1);
  color: var(--c-ink); text-decoration: none;
  transition: transform var(--d-mid) var(--e), box-shadow var(--d-mid) var(--e), color var(--d-mid) var(--e);
}
.promo:nth-child(2) { border-left-color: var(--c-amber-500); }
.promo:nth-child(3) { border-left-color: var(--c-green-700); }
.promo > i { font-size: 1.75rem; color: var(--c-green-700); flex: 0 0 auto; }
.promo__title { display: block; font-weight: 800; line-height: 1.3; }
.promo__go { margin-left: auto; font-size: 1.1rem; color: var(--c-green-600); transition: transform var(--d-fast) var(--e); }
.promo:hover, .promo:focus-visible { transform: translateY(-3px); box-shadow: var(--sh-2); color: var(--c-green-800); }
.promo:hover .promo__go { transform: translateX(4px); }
@media (max-width: 991.98px) { .promostrip__grid { grid-template-columns: 1fr; } }
/* ------------------------------------------------------ 9. PARTNEŘI --- */
/* Světlá část patičky pod kontaktem. Podklad je čistě bílý a loga zůstávají
   barevná – požadavek na uznání publicity dotačního programu. */
.partners {
  background: var(--c-surface);
  padding-block: clamp(2.5rem, 1.5rem + 3vw, 4.5rem);
}
.partners__title {
  font-size: var(--t-xs); font-family: var(--f-sans); font-weight: 800;
  letter-spacing: .14em; text-transform: uppercase; color: var(--c-green-700);
  text-align: center; margin: 0 0 clamp(1.25rem, .75rem + 1.5vw, 2rem);
}
.partners__row {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
  gap: clamp(1rem, .5rem + 2vw, 2.75rem);
}
.partner {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 64px; padding: .5rem .75rem; border-radius: var(--r-sm);
  transition: transform var(--d-mid) var(--e);
}
/* Dodaná loga mají velmi různé poměry stran – sjednotíme je optickým boxem,
   ne pouhou výškou, aby široké logotypy nedominovaly řadě. */
.partner img {
  display: block;
  width: auto; height: auto;
  max-height: clamp(40px, 2.1rem + 1.4vw, 58px);
  max-width: clamp(110px, 7rem + 4vw, 175px);
}
.partner:hover, .partner:focus-visible { transform: translateY(-2px); }
.funding {
  max-width: 62rem; margin: clamp(1.5rem, 1rem + 2vw, 2.25rem) auto 0;
  padding-top: 1.35rem; border-top: 1px solid var(--c-line);
  text-align: center; font-size: var(--t-sm); color: var(--c-muted);
}
.funding p { margin: 0 auto; max-width: none; text-wrap: balance; }

/* ---------------- 10. PATIČKA: kontakt + otevírací doba → partneři → lišta --- */
/* Patička má tři části v pořadí DOM i na stránce: tmavý pás s kontaktem
   a otevírací dobou, světlí partneři (sekce 9) a světlá spodní lišta.
   Tmavá plocha je jediná, takže nevznikají dvě soupeřící patičky.
   Jediný světlý prvek v tmavém pásu je deska s otevírací dobou. */
.contactzone {
  background: var(--c-green-900);
  color: #c8d8c0;
  padding-block: clamp(2.5rem, 1.5rem + 3vw, 4.25rem);
  border-top: 3px solid var(--c-green-500);
}
/* Kontakt je úzký a vysoký, otevírací doba široká: sloupce 1 : 2 a čtyři
   období ve dvou sloupcích dávají oběma částem stejnou výšku – vedle kontaktu
   ani pod ním nezbývá prázdná plocha. */
.sitefoot__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  gap: clamp(2rem, 1rem + 3vw, 4rem);
  align-items: stretch;
}
.contactzone a { color: #dcebd5; }
.contactzone a:hover, .contactzone a:focus-visible { color: var(--c-amber-400); }

/* ---- 1. sloupec: kontakt + logo ----
   Základní písmo 1.0625rem (stejné jako v desce s otevírací dobou),
   řádkování kompaktní, ale cíle odkazů stále ≥ 40 px. */
.fcontact__logo {
  display: block; width: auto; max-width: 100%;
  height: clamp(100px, 4rem + 3vw, 132px); margin-bottom: 1.25rem;
}

.fcontact__heading {
  font-family: var(--f-sans); font-size: var(--t-xs); font-weight: 800;
  letter-spacing: .14em; text-transform: uppercase; color: #9fb795;
  margin: 0 0 .4rem;
}
.fcontact__address {
  font-style: normal; font-size: 1.0625rem; line-height: 1.45;
  color: #cfe0c6; margin: 0;
}
.fcontact__address strong {
  display: block; font-size: 1.1875rem; font-weight: 700; line-height: 1.3;
  color: #fff; margin-bottom: .25rem;
}

.fcontact__list { list-style: none; margin: .75rem 0 0; padding: 0; }
.fcontact__list a {
  display: flex; align-items: center; gap: .75rem;
  min-height: 40px;
  font-size: 1.0625rem; font-weight: 700; color: #fff; text-decoration: none;
  transition: color var(--d-fast) var(--e);
}
.fcontact__list i { flex: 0 0 1.25rem; font-size: 1rem; color: var(--c-green-500); transition: color var(--d-fast) var(--e); }
.fcontact__list span { border-bottom: 1px solid transparent; transition: border-color var(--d-fast) var(--e); }
.fcontact__list a:hover, .fcontact__list a:focus-visible { color: var(--c-amber-400); }
.fcontact__list a:hover i, .fcontact__list a:focus-visible i { color: var(--c-amber-400); }
.fcontact__list a:hover span, .fcontact__list a:focus-visible span { border-bottom-color: currentColor; }

.fcontact__social { display: flex; gap: .5rem; margin-top: 1.1rem; }
.fcontact__social a {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border-radius: 50%;
  background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .18);
  color: #dcebd5; font-size: 1.05rem; text-decoration: none;
  transition: background-color var(--d-fast) var(--e), color var(--d-fast) var(--e),
              border-color var(--d-fast) var(--e), transform var(--d-fast) var(--e);
}
.fcontact__social a:hover, .fcontact__social a:focus-visible {
  background: var(--c-green-500); border-color: var(--c-green-500);
  color: var(--c-green-900); transform: translateY(-2px);
}

/* ---- 2. sloupec: otevírací doba na světlé desce ---- */
.fhours { display: flex; }
.fhours__panel {
  flex: 1 1 auto; display: flex; flex-direction: column;
  background: var(--c-surface);
  border-radius: var(--r-md);
  border-top: 3px solid var(--c-amber-500);
  box-shadow: 0 14px 38px rgba(0, 0, 0, .3);
  padding: clamp(1.25rem, .9rem + 1.2vw, 1.9rem);
}
.fhours__title {
  display: flex; align-items: center; gap: .6rem;
  font-size: 1.3rem; color: var(--c-ink); margin: 0 0 .5rem;
  padding-bottom: .7rem; border-bottom: 1px solid var(--c-line-soft);
}
.fhours__title i { font-size: 1.15rem; color: var(--c-green-700); }

/* sezónní časová osa – písmo stejné jako v kontaktu, řádky těsnější */
.season__list { list-style: none; margin: 0 0 1rem; padding: 0; }
.season__item { padding: .6rem 0; }
.season__item + .season__item { border-top: 1px dashed var(--c-line-soft); }
/* Na široké desce 2 × 2: jaro | léto, listopad | zima. */
@media (min-width: 768px) {
  .season__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(1.5rem, .5rem + 2vw, 2.75rem); }
  .season__item:nth-child(2) { border-top: 0; }
}

.season__period {
  font-family: var(--f-sans); font-size: 1.0625rem; font-weight: 800;
  color: var(--c-green-800); margin: 0 0 .2rem;
}
.season__times { margin: 0; font-size: 1.0625rem; line-height: 1.45; }
.season__times > div {
  display: flex; align-items: baseline; justify-content: space-between; gap: .4rem .75rem;
  flex-wrap: wrap; padding: .1rem 0;
}
.season__times dt { font-weight: 500; color: var(--c-body); }
.season__times dd {
  margin: 0; font-weight: 700; color: var(--c-ink);
  font-variant-numeric: tabular-nums; white-space: nowrap;   /* interval se nezalomí */
}
.season__times .is-closed { color: var(--c-muted); font-weight: 700; }
/* Prosinec–březen: období vlevo, „zavřeno“ vpravo na jednom řádku */
.season__item--off .season__period { margin: 0; font-weight: 800; color: var(--c-muted); }
/* Vedle kontaktu má deska stejnou výšku jako kontakt; přebývající místo se
   rozdělí mezi řádky období, ne do prázdné plochy nad poznámkou. */
@media (min-width: 1200px) { .season__list { flex: 1 1 auto; align-content: space-around; } }

/* Poznámka o volném přístupu – pozitivní informace, ne zavírací stav */
.season__free {
  display: flex; align-items: center; gap: .65rem;
  margin: auto 0 0; max-width: none;
  padding: .7rem 1rem; border-radius: var(--r-sm);
  background: var(--c-green-050); border-left: 4px solid var(--c-green-500);
  font-size: 1.0625rem; font-weight: 700; line-height: 1.4; color: var(--c-green-800);
}
.season__free i { flex: 0 0 auto; font-size: 1.2rem; color: var(--c-green-700); }

/* ---- spodní lišta – poslední řádek stránky ----
   Světlá jako partneři nad ní; obsah zarovnaný s .shell bez vnořeného obalu. */
.sitefoot__bar {
  padding-block: .9rem;
  padding-inline: max(var(--gutter), (100% - var(--container)) / 2);
  background: var(--c-stone-100);
  border-top: 1px solid var(--c-line-soft);
  display: flex; flex-wrap: wrap; gap: .25rem 1.5rem;
  align-items: center; justify-content: space-between;
  font-size: var(--t-xs); color: var(--c-muted);
}
.sitefoot__bar nav { display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; }
.sitefoot__bar a, .sitefoot__link { min-height: 44px; display: inline-flex; align-items: center; color: var(--c-green-700); }
.sitefoot__bar a:hover, .sitefoot__bar a:focus-visible, .sitefoot__link:hover, .sitefoot__link:focus-visible { color: var(--c-green-900); }
.sitefoot__link { background: none; border: 0; padding: 0; font: inherit; cursor: pointer; text-decoration: underline; text-underline-offset: .2em; }

@media (max-width: 1199.98px) {
  .sitefoot__grid { grid-template-columns: 1fr; }
}
/* Tablet: kontakt přes celou šířku – adresa vlevo, spojení vpravo. */
@media (min-width: 768px) and (max-width: 1199.98px) {
  .fcontact { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 2rem; align-content: start; }
  .fcontact > * { grid-column: 1; }
  .fcontact__list { grid-column: 2; grid-row: 1 / span 4; align-self: center; margin-top: 0; }
}

/* -------------------------------------------- 11. PŘÍSTUPNOST & POHYB --- */
.skiplink {
  position: fixed; left: 1rem; top: -100px; z-index: 1100;
  background: #fff; color: var(--c-green-900);
  padding: .8rem 1.2rem; font-weight: 800; border-radius: var(--r-sm);
  box-shadow: var(--sh-2); text-decoration: none;
  transition: top var(--d-fast) var(--e);
}
.skiplink:focus { top: 1rem; }

:where(a, button, input, [tabindex]):focus-visible {
  outline: 3px solid var(--c-focus-ring);
  outline-offset: 2px;
  box-shadow: 0 0 0 6px rgba(18, 48, 26, .55);
  border-radius: var(--r-sm);
}
.hero :where(a, button):focus-visible { box-shadow: 0 0 0 6px rgba(255, 255, 255, .75); }

/* Kotvy ani prvek s fokusem nesmí zůstat pod sticky hlavičkou
   (lišta + navigace: desktop ≈ 149 px, mobil ≈ 109 px). */
html { scroll-padding-top: 164px; }
@media (max-width: 575px) { html { scroll-padding-top: 124px; } }

.toast-stub {
  position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 1090;
  max-width: min(26rem, calc(100vw - 2.5rem));
  background: var(--c-green-900); color: #fff;
  padding: .9rem 1.15rem; border-radius: var(--r-sm); box-shadow: var(--sh-3);
  font-size: var(--t-sm);
  opacity: 0; transform: translateY(12px); pointer-events: none;
  transition: opacity var(--d-mid) var(--e), transform var(--d-mid) var(--e);
}
.toast-stub.is-visible { opacity: 1; transform: none; }
@media (max-width: 575.98px) { .toast-stub { left: 1rem; right: 1rem; } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
}
@media (prefers-contrast: more) {
  .qt__link { background: #fff; border-color: var(--c-green-800); }
  .hero__scrim { background: linear-gradient(180deg, rgba(9, 25, 13, .88), rgba(9, 25, 13, .6)); }
}

/* Joomla – obsah komponenty na podstránkách (do návrhu podstránek jen odsazení) */
.pagebody { padding-block: clamp(2rem, 1.5rem + 2vw, 3.5rem); min-height: 40vh; }

/* Tlačítka komponent Joomly na podstránkách (např. výsledky hledání) v barvách webu */
.pagebody .btn-primary {
  --bs-btn-bg: var(--c-green-800); --bs-btn-border-color: var(--c-green-800);
  --bs-btn-hover-bg: var(--c-green-900); --bs-btn-hover-border-color: var(--c-green-900);
  --bs-btn-active-bg: var(--c-green-900); --bs-btn-active-border-color: var(--c-green-900);
}

/* Blog kategorie jako dlaždice (html/com_content/category/blog.php) – stejné jako rychlé volby. */
.quick--blog { margin-block: 1.5rem 0; }
/* Dlaždice bez fotografie: logo webu na bílém, celé (ne oříznuté) */
.quick--blog .qt--logo .qt__media img { object-fit: contain; padding: 1.25rem; }
@media (max-width: 767.98px) {
  .quick--blog > li:last-child:nth-child(odd) { grid-column: 2 / span 2; }  /* lichá dlaždice na střed */
}

/* ---- Souhlas s cookies (vanilla-cookieconsent) v barvách webu ---- */
#cc-main {
  --cc-font-family: var(--f-sans);
  --cc-bg: #fff;
  --cc-primary-color: var(--c-ink);
  --cc-secondary-color: var(--c-muted);
  --cc-link-color: var(--c-green-700);
  --cc-modal-border-radius: var(--r-md);
  --cc-btn-border-radius: 10px;
  --cc-btn-primary-bg: var(--c-green-800);
  --cc-btn-primary-border-color: var(--c-green-800);
  --cc-btn-primary-color: #fff;
  --cc-btn-primary-hover-bg: var(--c-green-900);
  --cc-btn-primary-hover-border-color: var(--c-green-900);
  --cc-btn-primary-hover-color: #fff;
  --cc-btn-secondary-bg: var(--c-green-050);
  --cc-btn-secondary-border-color: var(--c-green-200);
  --cc-btn-secondary-color: var(--c-green-900);
  --cc-btn-secondary-hover-bg: var(--c-green-100);
  --cc-btn-secondary-hover-border-color: var(--c-green-500);
  --cc-btn-secondary-hover-color: var(--c-green-900);
  --cc-toggle-on-bg: var(--c-green-700);
  --cc-separator-border-color: var(--c-line-soft);
  --cc-footer-bg: var(--c-stone-100);
  --cc-footer-border-color: var(--c-line-soft);
  --cc-cookie-category-block-bg: var(--c-green-050);
  --cc-cookie-category-block-border: var(--c-green-100);
  --cc-cookie-category-block-hover-bg: var(--c-green-100);
  --cc-cookie-category-block-hover-border: var(--c-green-200);
  --cc-overlay-bg: rgba(18, 48, 26, .55);
}
#cc-main .cm__title, #cc-main .pm__title { font-family: var(--f-serif); font-weight: 700; }

/* ---- Prezentační stránka s externím obsahem (html/com_content/article/default.php, js/embed.js) ---- */
.extpage__intro { max-width: 62ch; margin-bottom: 1.5rem; }
.extpage__actions { display: flex; flex-wrap: wrap; gap: .75rem 1rem; }
.btn-site {
  display: inline-flex; align-items: center; justify-content: center; gap: .6rem;
  min-height: 48px; padding: .65rem 1.4rem;
  border: 2px solid var(--c-green-800); border-radius: 10px;
  font: inherit; font-weight: 800; line-height: 1.2; text-decoration: none; cursor: pointer;
  transition: background var(--d-fast) var(--e), color var(--d-fast) var(--e), border-color var(--d-fast) var(--e);
}
.btn-site--primary { background: var(--c-green-800); color: #fff; }
.btn-site--primary:hover, .btn-site--primary:focus-visible { background: var(--c-green-900); border-color: var(--c-green-900); color: #fff; }
.btn-site--secondary { background: #fff; color: var(--c-green-800); }
.btn-site--secondary:hover, .btn-site--secondary:focus-visible { background: var(--c-green-050); color: var(--c-green-900); }
@media (max-width: 575.98px) { .btn-site { width: 100%; } }   /* tlačítka na celou šířku, nic nepřeteče */

.extpage__frame {
  position: relative; margin-top: 1.5rem; width: 100%; max-width: 100%;
  min-height: 20rem; aspect-ratio: 16 / 10; max-height: 85vh;
  border: 1px solid var(--c-line); border-radius: var(--r-md); overflow: hidden;
  background: var(--c-green-050);
}
.extpage__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }
.extpage__placeholder {
  position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: .75rem; padding: 1.5rem; text-align: center; color: var(--c-muted);
}
.extpage__placeholder[hidden] { display: none; }
.extpage__placeholder i { font-size: 2.75rem; color: var(--c-green-600); }
.extpage__placeholder p { margin: 0; max-width: 46ch; }
@media (max-width: 767.98px) { .extpage__frame { aspect-ratio: auto; height: 75vh; min-height: 22rem; } }

/* ---- Obsahové stránky (html/com_content/article/default.php): čitelný text, karty, značka partnera ---- */
.article__header { margin-bottom: 1.75rem; }
.article__eyebrow {
  display: inline-block; margin-bottom: .6rem;
  font-size: var(--t-xs); font-weight: 800; letter-spacing: .14em; text-transform: uppercase;
  color: var(--c-green-700); text-decoration: none;
}
.article__eyebrow:hover, .article__eyebrow:focus-visible { color: var(--c-green-900); }
.article h1 { font-size: clamp(2rem, 1.3rem + 2.6vw, 3.25rem); margin: 0; }   /* menší než H1 homepage */
.article__body { max-width: 72ch; font-size: 1.0625rem; line-height: 1.7; }
.article--cards .article__body { max-width: 60rem; }
.article__body h2 { font-size: var(--t-h3); margin: 2.25rem 0 .75rem; }
.article__body h3 { font-size: var(--t-h4); margin: 1.75rem 0 .5rem; }
.article__body > :first-child { margin-top: 0; }
.article__body ul, .article__body ol { padding-left: 1.4rem; }
.article__body li + li { margin-top: .35rem; }
.article__figure { margin: 0 0 1.75rem; max-width: 72ch; }
.textcard { border-color: var(--c-line); border-radius: var(--r-md); box-shadow: var(--sh-1); }
.textcard .card-body { padding: clamp(1.25rem, 1rem + 1.2vw, 2rem); }
.textcard h2 { margin-top: 0; }
.textcard .card-body > :last-child { margin-bottom: 0; }
.brandblock {
  display: flex; justify-content: center; margin: 0 0 1.75rem; padding: clamp(1.5rem, 1rem + 2vw, 2.5rem);
  max-width: 72ch; background: #fff; border: 1px solid var(--c-line); border-radius: var(--r-md); box-shadow: var(--sh-1);
}
.brandblock img { max-width: min(100%, 420px); max-height: 110px; width: auto; height: auto; object-fit: contain; }
.promo--link { min-width: 0; }
.promo--link .promo__title { overflow-wrap: anywhere; }
.promo__meta { display: block; margin-top: .15rem; font-size: var(--t-xs); font-weight: 600; color: var(--c-muted); }
.partners__row--page { justify-content: flex-start; margin-block: 1.5rem 2rem; }

/* Hledané slovo se nezvýrazňuje (Joomla ho jinak značí žlutě) */
mark, .mark, .highlight, .highlight-term { background: none; color: inherit; padding: 0; }

/* Nadpis stránky (článek, rozcestník, výsledky hledání) menší než nadpis úvodní stránky; štítek nad ním je odkaz zpět na sekci */
.pagebody h1, .article h1 { font-size: clamp(1.6rem, 1.25rem + 1.2vw, 2.25rem); line-height: 1.2; }
.article__eyebrow { font-size: var(--t-sm); letter-spacing: .08em; text-decoration: underline; text-underline-offset: .25em; }
.article__eyebrow::before { content: "\2039\00a0"; font-weight: 800; }

/* Text z editoru nikdy nesmí vytlačit stránku do šířky (dlouhá slova, adresy, obrázky, tabulky) */
.article__body, .extpage__intro { overflow-wrap: anywhere; }
.article__body img, .extpage__intro img { max-width: 100%; height: auto; }
.article__body .table-responsive { margin-block: 1.25rem; }

/* ---- Banner jako karusel (více fotek se střídá); ovládací prvky leží nad textem a vrstvou ztmavení ---- */
.hero .carousel, .hero .carousel-inner, .hero .carousel-item, .hero picture { height: 100%; display: block; }
.hero .carousel-item { transition-duration: .9s; }
.hero__ctrl { position: absolute; inset: 0; z-index: 3; pointer-events: none; }
.hero__ctrl > button { pointer-events: auto; }
.hero__ctrl .carousel-control-prev, .hero__ctrl .carousel-control-next { width: 6%; min-width: 48px; opacity: .85; }
.hero__ctrl .carousel-control-prev-icon, .hero__ctrl .carousel-control-next-icon { filter: drop-shadow(0 0 5px rgba(0, 0, 0, .7)); }
.hero__ctrl .carousel-indicators { margin-bottom: .6rem; pointer-events: none; }
.hero__ctrl .carousel-indicators [data-bs-target] { pointer-events: auto; width: 28px; height: 6px; border-radius: 3px; border: 0; box-shadow: 0 0 4px rgba(0, 0, 0, .5); }
.hero__ctrl .carousel-control-prev, .hero__ctrl .carousel-control-next { align-items: flex-end; padding-bottom: .9rem; }   /* šipky dole u indikátorů, ne přes text */
span.partner:hover { transform: none; }   /* logo bez odkazu se nezvedá */

/* Řada log v článku: na celou šířku stránky (text zůstává v čitelném sloupci), loga mají kolem sebe volný prostor */
.article__body { max-width: none; }
.article__body > * { max-width: 72ch; }
.article--cards .article__body > * { max-width: 60rem; }
.article__body > .partners__row { max-width: none; }
.partners__row--page { justify-content: flex-start; gap: 1.5rem 2rem; margin-block: 1.75rem 2.25rem; }
.partners__row--page .partner { padding: 1rem 1.25rem; min-height: 88px; }
.partners__row--page .partner img { max-height: 58px; max-width: 170px; }
@media (max-width: 575.98px) {   /* telefon: loga menší, aby se vešla aspoň dvě vedle sebe */
  .partners__row--page { gap: .75rem 1rem; }
  .partners__row--page .partner { padding: .6rem .75rem; min-height: 64px; }
  .partners__row--page .partner img { max-height: 44px; max-width: 118px; }
}

/* Obsah článků přes celou šířku kontejneru (dřív zúžený na ~70 znaků, text působil useknutě) */
.pagebody p, .article__body, .article__body > *, .article--cards .article__body, .article__figure, .brandblock,
.extpage__intro { max-width: none; }
.article__body { overflow-wrap: break-word; }
