:root {
  /* Barvy */
  --web-color-green: #74a84a;
  --web-color-green-dark: #2c541d;
  --web-color-heading: #000000;
  --web-color-text: #585858;
  --web-color-light: #f6f8f5;
  --web-color-white: #ffffff;
  --web-color-border: #d5ddcf;
  /* Tlačítko: #74a84a s bílým textem má kontrast 2,8 : 1, proto je ztmavené
     jen tak, aby bílý text dosáhl 4,5 : 1 (4,54 : 1). */
  --web-color-button: #598139;
  --web-color-button-hover: var(--web-color-green-dark);
  --web-color-focus: var(--web-color-green-dark);
  /* Ztmavení obrázku: barva (RGB) a průhlednost 0,3 až 0,8 (třídy web-darken-N). */
  --web-overlay-rgb: 82 104 64;
  /* Písma */
  --web-font-heading: "Alegreya", Georgia, "Times New Roman", serif;
  --web-font-text: "Alegreya Sans", "Segoe UI", Helvetica, Arial, sans-serif;
  --web-weight-heading: 500;
  --web-weight-text: 400;
  --web-weight-strong: 700;
  /* Velikosti */
  --web-font-size-base: 17px;
  --web-line-height: 1.6;
  --web-size-h1: 3rem;
  --web-size-h2: 2.25rem;
  --web-size-h3: 1.6rem;
  --web-size-lead: 1.25rem;
  --web-size-brand: 1.6rem;
  --web-max-width: 72rem;
  --web-header-height: 5rem;
  --web-radius: 0.25rem;
}
@font-face {
  font-family: "Alegreya";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/alegreya-latin-500-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: "Alegreya";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/alegreya-latin-ext-500-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: "Alegreya Sans";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/alegreya-sans-latin-400-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: "Alegreya Sans";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/alegreya-sans-latin-ext-400-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: "Alegreya Sans";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/alegreya-sans-latin-400-italic.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: "Alegreya Sans";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/alegreya-sans-latin-ext-400-italic.woff2") format("woff2");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: "Alegreya Sans";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/alegreya-sans-latin-700-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: "Alegreya Sans";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/alegreya-sans-latin-ext-700-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
*, *::before, *::after { box-sizing: border-box; }
html { font-size: var(--web-font-size-base); -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: var(--web-font-text); font-weight: var(--web-weight-text); line-height: var(--web-line-height); color: var(--web-color-text); background: var(--web-color-white); overflow-wrap: break-word; }
img { max-width: 100%; height: auto; }
h1, h2, h3 { margin: 0 0 0.75rem; font-family: var(--web-font-heading); font-weight: var(--web-weight-heading); line-height: 1.2; color: var(--web-color-heading); }
h1 { font-size: var(--web-size-h1); }
h2 { font-size: var(--web-size-h2); }
h3 { font-size: var(--web-size-h3); }
p { margin: 0 0 1rem; }
strong { font-weight: var(--web-weight-strong); }
a { color: var(--web-color-green-dark); text-underline-offset: 0.15em; }
a:hover { color: var(--web-color-heading); }
a:focus-visible, button:focus-visible { outline: 3px solid var(--web-color-focus); outline-offset: 2px; }
@media (max-width: 47.99rem) {
  :root { --web-size-h1: 2.25rem; --web-size-h2: 1.8rem; --web-size-h3: 1.4rem; --web-size-brand: 1.3rem; }
}

.web-skip-link { position: absolute; left: -9999px; top: 0; z-index: 100; padding: 0.6rem 1rem; background: var(--web-color-white); color: var(--web-color-heading); font-weight: var(--web-weight-strong); }
.web-skip-link:focus { left: 1rem; top: 1rem; }
.web-preview-banner { margin: 0; padding: 0.5rem 1rem; background: var(--web-color-light); color: var(--web-color-heading); border-bottom: 1px solid var(--web-color-border); text-align: center; }

.web-header { position: relative; z-index: 20; background: var(--web-color-white); border-bottom: 1px solid var(--web-color-border); }
.web-header-inner { max-width: var(--web-max-width); min-height: var(--web-header-height); margin: 0 auto; padding: 0.75rem 1rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.web-brand { display: flex; align-items: center; gap: 0.75rem; font-family: var(--web-font-heading); font-weight: var(--web-weight-heading); font-size: var(--web-size-brand); line-height: 1.2; color: var(--web-color-heading); text-decoration: none; }
.web-brand-logo { display: block; width: auto; height: 3rem; }

.web-menu { position: relative; }
.web-menu ul { list-style: none; margin: 0; padding: 0; }
.web-menu > ul { display: flex; flex-wrap: wrap; gap: 0 1.75rem; }
.web-menu a { display: block; padding: 0.5rem 0; color: var(--web-color-heading); text-decoration: none; }
.web-menu a:hover, .web-menu a[aria-current="page"] { color: var(--web-color-green-dark); text-decoration: underline; text-decoration-color: var(--web-color-green); text-decoration-thickness: 2px; }
.web-menu > ul > li:has(> .web-submenu) > a::after { content: ""; display: inline-block; margin-left: 0.45em; padding: 2.5px; border: solid currentColor; border-width: 0 2px 2px 0; transform: translateY(-3px) rotate(45deg); }
/* Podmenu nikdy nevyjede z okna. Základ (prohlížeč bez anchor positioning):
   kontejner je .web-menu, podmenu stojí pod svou položkou (statická poloha,
   top/left auto) a šířka se smrskne na místo do pravého okraje menu. */
.web-submenu { display: none; position: absolute; top: auto; left: auto; right: auto; width: auto; max-width: min(24rem, calc(100vw - 2rem)); overflow-wrap: anywhere; z-index: 30; padding: 0.5rem 0; background: var(--web-color-white); border: 1px solid var(--web-color-border); border-radius: var(--web-radius); box-shadow: 0 0.5rem 1.5rem rgb(0 0 0 / 0.12); }
.web-submenu a { padding: 0.5rem 1rem; }
.web-submenu a:hover { background: var(--web-color-light); }
.web-menu li:hover > .web-submenu, .web-menu li:focus-within > .web-submenu { display: block; }
/* S anchor positioning: kontejner je záhlaví (šířka okna), podmenu se kotví
   k položce zarovnané vlevo s ní, a když by vpravo vyjelo ze záhlaví,
   překlopí se zarovnané s pravým okrajem položky. Záhlaví je nízké, proto
   bottom: -100vh — místo pod ním se při volbě strany počítá jako volné
   (jinak by přetékaly obě strany a překlopení by se nepoužilo). */
@supports (anchor-scope: --web-menu-item) and (position-try-fallbacks: flip-inline) {
  .web-menu { position: static; }
  .web-menu > ul > li { anchor-name: --web-menu-item; anchor-scope: --web-menu-item; }
  .web-submenu { position-anchor: --web-menu-item; top: anchor(bottom); bottom: -100vh; left: anchor(left); right: auto; width: max-content; height: max-content; min-width: 14rem; position-try-fallbacks: flip-inline; }
}

.web-menu-toggle { display: none; align-items: center; gap: 0.65rem; padding: 0.4rem 0.85rem; font: inherit; color: var(--web-color-heading); background: var(--web-color-white); border: 1px solid var(--web-color-border); border-radius: var(--web-radius); cursor: pointer; }
.web-menu-toggle-bars, .web-menu-toggle-bars::before, .web-menu-toggle-bars::after { display: block; width: 1.25rem; height: 2px; background: currentColor; }
.web-menu-toggle-bars { position: relative; }
.web-menu-toggle-bars::before, .web-menu-toggle-bars::after { content: ""; position: absolute; left: 0; }
.web-menu-toggle-bars::before { top: -6px; }
.web-menu-toggle-bars::after { top: 6px; }
.web-menu-open .web-menu-toggle-bars { background: transparent; }
.web-menu-open .web-menu-toggle-bars::before { top: 0; transform: rotate(45deg); }
.web-menu-open .web-menu-toggle-bars::after { top: 0; transform: rotate(-45deg); }

@media (max-width: 47.99rem) {
  .web-header-inner { flex-wrap: wrap; }
  .web-menu { flex-basis: 100%; }
  .web-menu > ul { flex-direction: column; }
  .web-menu a { padding: 0.65rem 0; }
  .web-menu > ul > li:has(> .web-submenu) > a::after { display: none; }
  .web-submenu { display: block; position: static; width: auto; min-width: 0; max-width: none; padding: 0 0 0 1rem; border: 0; border-radius: 0; box-shadow: none; }
  .web-submenu a { padding: 0.65rem 0; }
  .web-submenu a:hover { background: none; }
  .web-js .web-menu-toggle { display: inline-flex; }
  .web-js .web-menu { display: none; }
  .web-js .web-menu-open .web-menu { display: block; }
}

/* Úvodní stránka začíná sekcí s obrázkem: záhlaví je průhledné přes něj. */
.web-header-overlay .web-header { height: 0; border-bottom: 0; background: transparent; }
.web-header-overlay .web-header-inner { position: absolute; top: 0; left: 0; right: 0; }
.web-header-overlay .web-brand, .web-header-overlay .web-menu > ul > li > a { color: var(--web-color-white); text-shadow: 0 1px 4px rgb(0 0 0 / 0.6); }
.web-header-overlay .web-menu > ul > li > a:hover, .web-header-overlay .web-menu > ul > li > a[aria-current="page"] { color: var(--web-color-white); text-decoration-color: var(--web-color-white); }
.web-header-overlay .web-header a:focus-visible, .web-header-overlay .web-header button:focus-visible { outline-color: var(--web-color-white); }
.web-header-overlay .web-menu-toggle { color: var(--web-color-white); background: transparent; border-color: var(--web-color-white); }
.web-header-overlay .web-submenu a { text-shadow: none; }
.web-header-overlay .web-submenu a:focus-visible { outline-color: var(--web-color-focus); }
@media (max-width: 47.99rem) {
  .web-header-overlay .web-header.web-menu-open .web-header-inner { background: var(--web-color-white); }
  .web-header-overlay .web-header.web-menu-open .web-brand, .web-header-overlay .web-header.web-menu-open .web-menu > ul > li > a { color: var(--web-color-heading); text-shadow: none; }
  .web-header-overlay .web-header.web-menu-open .web-menu a:hover, .web-header-overlay .web-header.web-menu-open .web-menu a[aria-current="page"] { color: var(--web-color-green-dark); text-decoration-color: var(--web-color-green); }
  .web-header-overlay .web-header.web-menu-open .web-menu-toggle { color: var(--web-color-heading); background: var(--web-color-white); border-color: var(--web-color-border); }
  .web-header-overlay .web-header.web-menu-open a:focus-visible, .web-header-overlay .web-header.web-menu-open button:focus-visible { outline-color: var(--web-color-focus); }
}

.web-main { display: block; padding-bottom: 2rem; }
.web-main > .web-block:not(.web-section) { max-width: var(--web-max-width); margin: 0 auto; padding: 1rem 1rem 0; }
.web-main > .web-block:not(.web-section):first-child { padding-top: 2.5rem; }
.web-block { margin: 0 0 1.5rem; }
.web-text > :first-child { margin-top: 0; }
.web-text > :last-child { margin-bottom: 0; }
.web-text ul, .web-text ol { margin: 0 0 1rem; padding-left: 1.5rem; }
.web-text blockquote { margin: 0 0 1rem; padding: 0.75rem 1.25rem; background: var(--web-color-light); border-left: 4px solid var(--web-color-green); }
.web-heading-subtitle { margin: 0; font-size: var(--web-size-lead); color: var(--web-color-text); }

.web-section { position: relative; display: grid; gap: 2rem; margin: 0; padding: 3rem max(1rem, calc((100% - var(--web-max-width)) / 2)); }
.web-column { min-width: 0; }
.web-column .web-section { padding: 1rem 0; }
.web-column > :last-child { margin-bottom: 0; }
@media (min-width: 48rem) {
  .web-columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .web-columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .web-columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* Sekce s obrázkem na pozadí: <img class="web-section-bg"> pod obsahem, ztmavení přes ::before (bez inline stylu). */
.web-section-image { overflow: hidden; isolation: isolate; }
.web-section-bg-picture { position: absolute; inset: 0; z-index: -2; display: block; }
.web-section-bg { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.web-section-bg-picture .web-section-bg { z-index: auto; }
.web-section-image::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgb(var(--web-overlay-rgb) / var(--web-overlay-alpha, 0)); }
.web-section-dim, .web-section-dim h1, .web-section-dim h2, .web-section-dim h3, .web-section-dim .web-heading-subtitle { color: var(--web-color-white); }
.web-section-dim a, .web-section-dim a:hover { color: var(--web-color-white); }
.web-section-dim blockquote { background: transparent; border-left-color: var(--web-color-white); }
.web-section-dim a:focus-visible { outline-color: var(--web-color-white); }
.web-header-overlay .web-main > .web-section-image:first-child { padding-top: calc(var(--web-header-height) + 3rem); }
.web-darken-1 { --web-overlay-alpha: 0.3; }
.web-darken-2 { --web-overlay-alpha: 0.3; }
.web-darken-3 { --web-overlay-alpha: 0.3; }
.web-darken-4 { --web-overlay-alpha: 0.4; }
.web-darken-5 { --web-overlay-alpha: 0.5; }
.web-darken-6 { --web-overlay-alpha: 0.6; }
.web-darken-7 { --web-overlay-alpha: 0.7; }
.web-darken-8 { --web-overlay-alpha: 0.8; }
.web-darken-9 { --web-overlay-alpha: 0.8; }

/* Barevné pozadí sekce: třídy web-bg-rrggbb-N (pozadí, barva textu s kontrastem 4,5 : 1) jsou ve generovaném stylopisu barev. */
.web-section-color { isolation: isolate; }

/* Tlačítko a odkaz „tlačítkem" (bloky tlačítek a výzvy k akci). */
.web-button { display: inline-block; padding: 0.6rem 1.5rem; font-weight: var(--web-weight-strong); color: var(--web-color-white); text-decoration: none; background: var(--web-color-button); border-radius: var(--web-radius); }
.web-button:hover { color: var(--web-color-white); background: var(--web-color-button-hover); }
.web-section-dim a.web-button { color: var(--web-color-white); }
[hidden] { display: none !important; }

/* Obrázek (blok image) a info box. */
.web-image { margin-left: 0; margin-right: 0; }
.web-image picture, .web-image img, .web-infobox-media picture, .web-infobox-media img { display: block; max-width: 100%; height: auto; }
.web-image figcaption { margin-top: 0.5rem; font-size: 0.9rem; }
.web-infobox { text-align: center; }
.web-infobox-media { margin: 0 auto 1rem; }
.web-infobox-media img { margin: 0 auto; border-radius: var(--web-radius); }
.web-icon { display: inline-flex; flex: none; width: 2.5rem; height: 2.5rem; color: var(--web-color-button); }
.web-icon svg { width: 100%; height: 100%; }
.web-infobox .web-infobox-icon { display: flex; width: 3.5rem; height: 3.5rem; }
.web-section-dim .web-icon, .web-section-color .web-icon { color: currentColor; }
.web-infobox h3 { margin-bottom: 0.5rem; }
.web-infobox-button { margin: 1rem 0 0; }

/* Výzva k akci, tlačítka. */
.web-cta { text-align: center; padding-top: 1.5rem; padding-bottom: 1.5rem; border-top: 4px solid var(--web-color-green); }
.web-cta-button { margin: 1.25rem 0 0; }
.web-buttons { display: flex; flex-wrap: wrap; gap: 0.75rem; }

/* Tabulka: široká se posouvá uvnitř obálky, stránka vodorovný posuvník nemá. */
.web-table-scroll { max-width: 100%; overflow-x: auto; }
.web-table table { width: 100%; border-collapse: collapse; }
.web-table th, .web-table td { padding: 0.6rem 0.75rem; text-align: left; vertical-align: top; border-bottom: 1px solid var(--web-color-border); }
.web-table th { font-weight: var(--web-weight-strong); }

/* Seznam s ikonami, soubory. */
.web-icon-list ul, .web-files ul { list-style: none; margin: 0; padding: 0; }
.web-icon-list li { display: flex; align-items: center; gap: 0.75rem; padding: 0.4rem 0; }
.web-icon-list .web-icon { width: 1.75rem; height: 1.75rem; }
.web-files li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.25rem 0.75rem; padding: 0.5rem 0; border-bottom: 1px solid var(--web-color-border); }
.web-file-meta { font-size: 0.9rem; }

/* Mapa: adresa a odkaz hned, vložená mapa až po kliknutí (skript menu.js). */
.web-map-address { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; }
.web-map-address .web-icon { width: 1.75rem; height: 1.75rem; }
.web-map-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1.25rem; }
.web-map-button { font: inherit; font-weight: var(--web-weight-strong); border: 0; cursor: pointer; }
.web-map-iframe { display: block; width: 100%; height: 22rem; border: 0; }
.web-map-frame:not(:empty) { margin-top: 1rem; }

.web-footer { margin-top: 2rem; color: var(--web-color-white); background: var(--web-color-green-dark); }
.web-footer-inner { max-width: var(--web-max-width); margin: 0 auto; padding: 2rem 1rem; }
.web-footer-inner p { margin: 0 0 0.5rem; }
.web-footer a { color: var(--web-color-white); }
.web-footer a:focus-visible { outline-color: var(--web-color-white); }
