/*
Theme Name:   ZŠ a MŠ Žleby
Theme URI:    https://www.skolazleby.cz/
Description:  Přístupná šablona pro Elementor pro Základní školu a Mateřskou školu Žleby. Splňuje zákon č. 99/2019 Sb., EN 301 549 V2.1.2 a WCAG 2.1 na úrovni AA. Potomek šablony Hello Elementor.
Author:       ZŠ a MŠ Žleby
Template:     hello-elementor
Version:      1.0.0
Text Domain:  zsms-zleby
Requires PHP: 7.4
License:      GPL-2.0-or-later
*/

/* ==========================================================================
   1. Designové tokeny
   Barva zde nese informaci: zelená = základní škola, modrá = mateřská škola,
   okrová = jídelna a provozní informace. Stejná barva se opakuje na horní
   hraně každé stránky dané sekce, aby uživatel poznal, kde v webu je.
   ========================================================================== */

:root {
  /* Základ */
  --zl-paper:        #FBFAF7;
  --zl-paper-2:      #F2EFE8;
  --zl-ink:          #1B2A24;
  --zl-ink-soft:     #4A5B53;
  --zl-line:         #DDD8CE;
  --zl-white:        #FFFFFF;

  /* Sekční barvy (všechny ≥ 4,5:1 na papírovém podkladu i pod bílým textem) */
  --zl-zs:           #1F5B45;   /* základní škola */
  --zl-zs-deep:      #143B2E;
  --zl-zs-wash:      #E7EFEB;

  --zl-ms:           #2E6FA3;   /* mateřská škola */
  --zl-ms-deep:      #1E4C72;
  --zl-ms-wash:      #E6EEF5;

  --zl-info:         #8A5210;   /* informace pro rodiče, jídelna, dokumenty */
  --zl-info-bright:  #C8791A;   /* jen pro plochy a linky, ne pro text */
  --zl-info-wash:    #F5EDE1;

  --zl-alert:        #9B2226;   /* úřední deska, uzavírky, důležité */

  /* Aktivní sekce – přepisuje se na <body> */
  --zl-accent:       var(--zl-zs);
  --zl-accent-deep:  var(--zl-zs-deep);
  --zl-accent-wash:  var(--zl-zs-wash);

  /* Typografie */
  --zl-font-head: "Source Serif 4", "Source Serif Pro", Cambria, Georgia, "Times New Roman", serif;
  --zl-font-body: "Atkinson Hyperlegible Next", "Atkinson Hyperlegible", "Segoe UI", Tahoma, Verdana, sans-serif;

  /* Typová škála – uživatelský přepínač velikosti mění --zl-scale */
  --zl-scale: 1;
  --zl-t-base: calc(1.0625rem * var(--zl-scale));   /* 17 px */
  --zl-t-sm:   calc(0.9375rem * var(--zl-scale));
  --zl-t-lg:   calc(1.25rem   * var(--zl-scale));
  --zl-t-h4:   calc(1.25rem   * var(--zl-scale));
  --zl-t-h3:   calc(1.5rem    * var(--zl-scale));
  --zl-t-h2:   calc(1.9375rem * var(--zl-scale));
  --zl-t-h1:   calc(2.5rem    * var(--zl-scale));

  /* Rozestupy */
  --zl-gap-1: .5rem;
  --zl-gap-2: 1rem;
  --zl-gap-3: 1.5rem;
  --zl-gap-4: 2.5rem;
  --zl-gap-5: 4rem;

  --zl-wrap: 74rem;
  --zl-measure: 68ch;
  --zl-radius: 6px;

  --zl-focus: #0B57D0;
  --zl-tap: 44px;         /* minimální dotyková plocha, WCAG 2.5.5 */
}

body.zl-sekce-ms   { --zl-accent: var(--zl-ms);   --zl-accent-deep: var(--zl-ms-deep);   --zl-accent-wash: var(--zl-ms-wash); }
body.zl-sekce-info { --zl-accent: var(--zl-info); --zl-accent-deep: #5E370A;             --zl-accent-wash: var(--zl-info-wash); }

/* ==========================================================================
   2. Základ
   ========================================================================== */

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--zl-paper);
  color: var(--zl-ink);
  font-family: var(--zl-font-body);
  font-size: var(--zl-t-base);
  line-height: 1.65;
  text-rendering: optimizeLegibility;
}

/* Barevná hrana sekce – hlavní orientační prvek šablony */
body::before {
  content: "";
  display: block;
  height: 5px;
  background: var(--zl-accent);
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--zl-font-head);
  font-weight: 600;
  line-height: 1.2;
  color: var(--zl-ink);
  margin: 0 0 var(--zl-gap-2);
  letter-spacing: -0.005em;
}

h1 { font-size: var(--zl-t-h1); line-height: 1.12; }
h2 { font-size: var(--zl-t-h2); }
h3 { font-size: var(--zl-t-h3); }
h4 { font-size: var(--zl-t-h4); }

p, li { max-width: var(--zl-measure); }
p { margin: 0 0 var(--zl-gap-2); }

a {
  color: var(--zl-accent-deep);
  text-decoration-thickness: 1px;
  text-underline-offset: .18em;
}
a:hover { text-decoration-thickness: 2px; }

/* Viditelný fokus na všem – WCAG 2.4.7 / 2.4.11 */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--zl-focus);
  outline-offset: 2px;
  border-radius: 3px;
}

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

.zl-wrap {
  width: min(100% - 2.5rem, var(--zl-wrap));
  margin-inline: auto;
}

.zl-sr {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0);
  white-space: nowrap; border: 0;
}

/* ==========================================================================
   3. Přeskočit na obsah + lišta přístupnosti
   ========================================================================== */

.zl-skip {
  position: absolute;
  left: .5rem; top: -100px;
  z-index: 9999;
  background: var(--zl-ink);
  color: var(--zl-white);
  padding: .75rem 1.25rem;
  border-radius: 0 0 var(--zl-radius) var(--zl-radius);
  font-weight: 700;
  text-decoration: none;
}
.zl-skip:focus { top: 0; color: var(--zl-white); }

.zl-a11ybar {
  background: var(--zl-paper-2);
  border-bottom: 1px solid var(--zl-line);
  font-size: var(--zl-t-sm);
}
.zl-a11ybar__in {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--zl-gap-2);
  min-height: var(--zl-tap);
  padding-block: .25rem;
}
.zl-a11ybar__group { display: flex; align-items: center; gap: .35rem; }
.zl-a11ybar__label { color: var(--zl-ink-soft); }

.zl-btn-a11y {
  min-width: var(--zl-tap);
  min-height: 36px;
  padding: .25rem .7rem;
  background: var(--zl-white);
  border: 1px solid var(--zl-line);
  border-radius: var(--zl-radius);
  color: var(--zl-ink);
  font-family: inherit;
  font-size: var(--zl-t-sm);
  cursor: pointer;
}
.zl-btn-a11y:hover { border-color: var(--zl-ink-soft); }
.zl-btn-a11y[aria-pressed="true"] {
  background: var(--zl-ink);
  color: var(--zl-white);
  border-color: var(--zl-ink);
}

/* ==========================================================================
   4. Hlavička a navigace
   ========================================================================== */

.zl-header {
  background: var(--zl-white);
  border-bottom: 1px solid var(--zl-line);
  position: sticky; top: 0; z-index: 500;
}
.zl-header__in {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--zl-gap-3);
  padding-block: .75rem;
}
.zl-brand { display: flex; align-items: center; gap: .85rem; min-width: 0; text-decoration: none; color: var(--zl-ink); }
.zl-brand > svg, .zl-brand > img { flex: none; }
.zl-brand img { height: 56px; width: auto; }
.zl-brand__name { font-family: var(--zl-font-head); font-size: var(--zl-t-lg); font-weight: 600; line-height: 1.15; max-width: 22ch; display: inline-block; }
.zl-brand__sub  { font-size: var(--zl-t-sm); color: var(--zl-ink-soft); }

.zl-nav ul { list-style: none; display: flex; gap: .25rem; margin: 0; padding: 0; }
.zl-nav > ul, .zl-nav > .zl-nav__list { flex-wrap: wrap; }
.zl-nav li { max-width: none; position: relative; }
.zl-nav a, .zl-nav button {
  display: flex; align-items: center; gap: .4rem;
  min-height: var(--zl-tap);
  padding: .4rem .8rem;
  color: var(--zl-ink);
  background: none; border: 0;
  font: inherit;
  text-decoration: none;
  border-radius: var(--zl-radius);
  cursor: pointer;
}
.zl-nav a:hover, .zl-nav button:hover { background: var(--zl-accent-wash); }
.zl-nav > ul > li > a { white-space: nowrap; }
.zl-nav > ul > li { display: flex; align-items: center; }
@media (min-width: 980px) and (max-width: 1180px) {
  .zl-nav a, .zl-nav button { padding-inline: .5rem; font-size: var(--zl-t-sm); }
  .zl-brand__name { font-size: var(--zl-t-base); }
}
.zl-nav [aria-current="page"] { box-shadow: inset 0 -3px 0 var(--zl-accent); font-weight: 700; }

.zl-nav ul.zl-nav__sub {
  display: none;
  position: absolute; left: 0; top: 100%;
  min-width: 17rem;
  background: var(--zl-white);
  border: 1px solid var(--zl-line);
  border-top: 3px solid var(--zl-accent);
  border-radius: 0 0 var(--zl-radius) var(--zl-radius);
  box-shadow: 0 12px 28px rgba(27,42,36,.14);
  padding: .4rem;
  flex-direction: column;
  z-index: 600;
}
.zl-nav__sub a { padding: .55rem .7rem; }
.zl-nav li:hover > ul.zl-nav__sub,
.zl-nav li:focus-within > ul.zl-nav__sub,
.zl-nav [aria-expanded="true"] + ul.zl-nav__sub { display: flex; }

.zl-burger { display: none; }

@media (max-width: 979px) {
  .zl-burger {
    display: flex; align-items: center; gap: .5rem; flex: none;
    min-height: var(--zl-tap); min-width: var(--zl-tap);
    padding: .5rem .9rem;
    background: var(--zl-accent); color: var(--zl-white);
    border: 0; border-radius: var(--zl-radius);
    font: inherit; font-weight: 700; cursor: pointer;
  }
  .zl-nav {
    display: none;
    position: absolute; left: 0; right: 0; top: 100%;
    background: var(--zl-white);
    border-bottom: 1px solid var(--zl-line);
    max-height: 78vh; overflow-y: auto;
    padding: var(--zl-gap-2) 1.25rem var(--zl-gap-4);
  }
  .zl-nav.is-open { display: block; }
  .zl-nav ul { flex-direction: column; gap: 0; }
  .zl-nav > ul > li { border-bottom: 1px solid var(--zl-line); }
  .zl-nav ul.zl-nav__sub {
    position: static; display: none; box-shadow: none;
    border: 0; border-left: 3px solid var(--zl-accent);
    margin: 0 0 .5rem .8rem; min-width: 0;
  }
  .zl-nav [aria-expanded="true"] + ul.zl-nav__sub { display: block; }
  .zl-header { position: static; }
}

.zl-nav__sipka {
  min-width: 2rem; min-height: 2rem;
  padding: 0 .35rem;
  background: none; border: 0;
  color: var(--zl-ink-soft);
  font: inherit; font-size: .85em;
  cursor: pointer;
  border-radius: var(--zl-radius);
}
.zl-nav__sipka:hover { background: var(--zl-accent-wash); color: var(--zl-ink); }
.zl-nav > ul > li { display: flex; align-items: center; }
@media (max-width: 979px) {
  .zl-nav > ul > li { justify-content: space-between; flex-wrap: wrap; }
  .zl-nav > ul > li > a { flex: 1; }
  .zl-nav ul.zl-nav__sub { flex-basis: 100%; }
  .zl-nav__sipka { min-width: var(--zl-tap); min-height: var(--zl-tap); }
}

@media (max-width: 700px) {
  .zl-header__in { gap: .6rem; }
  .zl-brand__name { font-size: var(--zl-t-base); max-width: 14ch; }
  .zl-brand__sub { display: none; }
  .zl-brand > svg { width: 40px; height: 40px; }
  .zl-burger { padding: .5rem .7rem; }
  .zl-a11ybar { font-size: .875rem; }
  .zl-a11ybar__in { gap: .6rem; }
  .zl-a11ybar__label { flex-basis: 100%; }
}

/* ==========================================================================
   5. Titulní strana
   Hero není fotokolotoč, ale to, co rodič potřebuje v 7 ráno:
   dnešní oběd a nejbližší akce.
   ========================================================================== */

.zl-hero { padding: var(--zl-gap-5) 0 var(--zl-gap-4); }
.zl-hero__lead {
  font-family: var(--zl-font-head);
  font-size: clamp(1.75rem, 4.5vw, 2.75rem);
  line-height: 1.15;
  max-width: 20ch;
  margin: 0 0 var(--zl-gap-2);
}
.zl-hero__note { font-size: var(--zl-t-lg); color: var(--zl-ink-soft); max-width: 46ch; }

.zl-dnes {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr));
  gap: 1px;
  background: var(--zl-line);
  border: 1px solid var(--zl-line);
  border-radius: var(--zl-radius);
  overflow: hidden;
  margin-top: var(--zl-gap-4);
}
.zl-dnes__panel { background: var(--zl-white); padding: var(--zl-gap-3); }
.zl-dnes__kdy {
  font-size: var(--zl-t-sm);
  font-weight: 700;
  color: var(--zl-info);
  margin: 0 0 .35rem;
}
.zl-dnes__co { font-family: var(--zl-font-head); font-size: var(--zl-t-h4); margin: 0 0 .5rem; }
.zl-dnes__detail { margin: 0; color: var(--zl-ink-soft); font-size: var(--zl-t-sm); }

/* Tři vstupy do sekcí */
.zl-vstupy {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
  gap: var(--zl-gap-2);
  padding-bottom: var(--zl-gap-5);
  list-style: none; margin: 0; padding-inline: 0;
}
.zl-vstupy li { max-width: none; }
.zl-vstup {
  display: block;
  height: 100%;
  padding: var(--zl-gap-3);
  background: var(--zl-white);
  border: 1px solid var(--zl-line);
  border-top: 5px solid var(--zl-c, var(--zl-zs));
  border-radius: 0 0 var(--zl-radius) var(--zl-radius);
  text-decoration: none;
  color: var(--zl-ink);
}
.zl-vstup:hover { border-color: var(--zl-c, var(--zl-zs)); background: var(--zl-w, var(--zl-zs-wash)); }
.zl-vstup h2 { font-size: var(--zl-t-h3); margin: 0 0 .4rem; color: var(--zl-c, var(--zl-zs)); }
.zl-vstup p { margin: 0; color: var(--zl-ink-soft); font-size: var(--zl-t-sm); }
.zl-vstup--zs   { --zl-c: var(--zl-zs);   --zl-w: var(--zl-zs-wash); }
.zl-vstup--ms   { --zl-c: var(--zl-ms);   --zl-w: var(--zl-ms-wash); }
.zl-vstup--info { --zl-c: var(--zl-info); --zl-w: var(--zl-info-wash); }

/* ==========================================================================
   6. Aktuality – datovaný seznam, ne mřížka karet.
   Na mobilu se čte plynule, ve čtečce jde o jeden logický seznam.
   ========================================================================== */

.zl-sekce { padding-block: var(--zl-gap-5); }
.zl-sekce--alt { background: var(--zl-paper-2); border-block: 1px solid var(--zl-line); }
.zl-sekce__hlava {
  display: flex; flex-wrap: wrap; align-items: baseline;
  justify-content: space-between; gap: var(--zl-gap-2);
  margin-bottom: var(--zl-gap-3);
}
.zl-sekce__hlava h2 { margin: 0; }

.zl-filtr { display: flex; flex-wrap: wrap; gap: .4rem; list-style: none; margin: 0 0 var(--zl-gap-3); padding: 0; }
.zl-filtr li { max-width: none; }
.zl-filtr a {
  display: inline-flex; align-items: center;
  min-height: 38px; padding: .3rem .9rem;
  border: 1px solid var(--zl-line); border-radius: 999px;
  background: var(--zl-white); color: var(--zl-ink);
  text-decoration: none; font-size: var(--zl-t-sm);
}
.zl-filtr a[aria-current="true"] { background: var(--zl-ink); color: var(--zl-white); border-color: var(--zl-ink); }

.zl-zpravy { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--zl-line); }
.zl-zpravy li { max-width: none; border-bottom: 1px solid var(--zl-line); }
.zl-zprava {
  display: grid;
  grid-template-columns: 7.5rem 1fr;
  gap: var(--zl-gap-3);
  align-items: start;
  padding: var(--zl-gap-3) 0;
}
.zl-zprava__datum {
  font-size: var(--zl-t-sm);
  color: var(--zl-ink-soft);
  font-variant-numeric: tabular-nums;
  padding-top: .2rem;
}
.zl-zprava__stitek {
  display: inline-block;
  margin-top: .35rem;
  padding: .1rem .55rem;
  border-radius: 3px;
  font-size: .8125rem;
  font-weight: 700;
  background: var(--zl-zs-wash); color: var(--zl-zs);
}
.zl-zprava__stitek--ms   { background: var(--zl-ms-wash);   color: var(--zl-ms-deep); }
.zl-zprava__stitek--info { background: var(--zl-info-wash); color: var(--zl-info); }
.zl-zprava__stitek--uredni { background: #F6E5E5; color: var(--zl-alert); }
.zl-zprava h3 { font-size: var(--zl-t-h4); margin: 0 0 .35rem; }
.zl-zprava h3 a { color: var(--zl-ink); text-decoration: none; }
.zl-zprava h3 a:hover { text-decoration: underline; text-decoration-thickness: 2px; }
.zl-zprava p { margin: 0; color: var(--zl-ink-soft); font-size: var(--zl-t-sm); }

@media (max-width: 640px) {
  .zl-zprava { grid-template-columns: 1fr; gap: .4rem; }
}

/* ==========================================================================
   7. Fotogalerie
   ========================================================================== */

.zl-galerie {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
  gap: var(--zl-gap-2);
  list-style: none; margin: 0; padding: 0;
}
.zl-galerie li { max-width: none; }
.zl-album { display: block; text-decoration: none; color: var(--zl-ink); }
.zl-album img {
  width: 100%; aspect-ratio: 4 / 3; object-fit: cover;
  border-radius: var(--zl-radius);
  background: var(--zl-paper-2);
  display: block;
}
.zl-album__nazev { display: block; font-family: var(--zl-font-head); font-size: var(--zl-t-lg); margin: .6rem 0 .1rem; }
.zl-album__meta { display: block; font-size: var(--zl-t-sm); color: var(--zl-ink-soft); }
.zl-album:hover .zl-album__nazev { text-decoration: underline; text-decoration-thickness: 2px; }

/* Mřížka fotek v albu – každý náhled je odkaz na plnou velikost */
.zl-fotky { display: grid; grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); gap: .5rem; list-style: none; margin: 0; padding: 0; }
.zl-fotky li { max-width: none; }
.zl-fotky a { display: block; }
.zl-fotky img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 4px; display: block; }

/* ==========================================================================
   8. Obsahové stránky
   ========================================================================== */

.zl-page { padding-block: var(--zl-gap-4) var(--zl-gap-5); }
.zl-drobky { font-size: var(--zl-t-sm); color: var(--zl-ink-soft); margin-bottom: var(--zl-gap-2); }
.zl-drobky ol { list-style: none; display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; padding: 0; }
.zl-drobky li { max-width: none; }
.zl-drobky li + li::before { content: "/"; margin-right: .4rem; color: var(--zl-line); }

.zl-layout { display: grid; grid-template-columns: minmax(0, 1fr) 18rem; gap: var(--zl-gap-5); align-items: start; }
@media (max-width: 979px) { .zl-layout { grid-template-columns: 1fr; gap: var(--zl-gap-4); } }

.zl-obsah h2 { margin-top: var(--zl-gap-4); }
.zl-obsah h3 { margin-top: var(--zl-gap-3); }
.zl-obsah ul, .zl-obsah ol { padding-left: 1.35rem; }
.zl-obsah li { margin-bottom: .35rem; }
.zl-obsah table { width: 100%; border-collapse: collapse; margin-block: var(--zl-gap-3); font-size: var(--zl-t-sm); }
.zl-obsah caption { text-align: left; font-weight: 700; padding-bottom: .5rem; }
.zl-obsah th, .zl-obsah td { border: 1px solid var(--zl-line); padding: .6rem .75rem; text-align: left; vertical-align: top; }
.zl-obsah thead th { background: var(--zl-accent-wash); }
.zl-tabulka-scroll { overflow-x: auto; }

.zl-postranni { border-left: 3px solid var(--zl-accent); padding-left: var(--zl-gap-3); }
.zl-postranni h2 { font-size: var(--zl-t-h4); }
.zl-postranni ul { list-style: none; margin: 0 0 var(--zl-gap-3); padding: 0; }
.zl-postranni li { max-width: none; border-bottom: 1px solid var(--zl-line); }
.zl-postranni a { display: block; min-height: var(--zl-tap); padding: .6rem 0; color: var(--zl-ink); text-decoration: none; }
.zl-postranni a:hover { text-decoration: underline; }
.zl-postranni [aria-current="page"] { font-weight: 700; color: var(--zl-accent-deep); }

/* Soubory ke stažení – typ a velikost patří do textu odkazu (WCAG 2.4.4) */
.zl-soubory { list-style: none; margin: 0; padding: 0; }
.zl-soubory li { max-width: none; border-bottom: 1px solid var(--zl-line); }
.zl-soubor {
  display: flex; align-items: center; gap: .75rem;
  min-height: var(--zl-tap); padding: .75rem 0;
  color: var(--zl-ink); text-decoration: none;
}
.zl-soubor:hover .zl-soubor__nazev { text-decoration: underline; text-decoration-thickness: 2px; }
.zl-soubor__typ {
  flex: none;
  padding: .15rem .5rem;
  border-radius: 3px;
  background: var(--zl-info-wash); color: var(--zl-info);
  font-size: .75rem; font-weight: 700;
}
.zl-soubor__meta { color: var(--zl-ink-soft); font-size: var(--zl-t-sm); }

/* Kontaktní karty */
.zl-kontakty { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: var(--zl-gap-2); list-style: none; margin: 0; padding: 0; }
.zl-kontakty li { max-width: none; }
.zl-kontakt { background: var(--zl-white); border: 1px solid var(--zl-line); border-top: 4px solid var(--zl-c, var(--zl-zs)); border-radius: 0 0 var(--zl-radius) var(--zl-radius); padding: var(--zl-gap-3); height: 100%; }
.zl-kontakt h3 { font-size: var(--zl-t-lg); margin: 0 0 .5rem; }
.zl-kontakt p { font-size: var(--zl-t-sm); margin: 0 0 .5rem; }
.zl-kontakt a { min-height: var(--zl-tap); display: inline-flex; align-items: center; }

/* Tlačítka */
.zl-btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: var(--zl-tap); padding: .6rem 1.4rem;
  background: var(--zl-accent); color: var(--zl-white);
  border: 2px solid var(--zl-accent); border-radius: var(--zl-radius);
  font-weight: 700; text-decoration: none; cursor: pointer;
}
.zl-btn:hover { background: var(--zl-accent-deep); border-color: var(--zl-accent-deep); color: var(--zl-white); }
.zl-btn--druhotne { background: transparent; color: var(--zl-accent-deep); }
.zl-btn--druhotne:hover { background: var(--zl-accent-wash); color: var(--zl-accent-deep); }

/* ==========================================================================
   9. Patička
   ========================================================================== */

.zl-footer { background: var(--zl-ink); color: #E8EDEA; padding-block: var(--zl-gap-4); margin-top: var(--zl-gap-5); }
.zl-footer a { color: #FFFFFF; }
.zl-footer h2 { color: var(--zl-white); font-size: var(--zl-t-h4); }
.zl-footer__mrizka { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: var(--zl-gap-3); }
.zl-footer ul { list-style: none; margin: 0; padding: 0; }
.zl-footer li { max-width: none; }
.zl-footer li a { display: inline-flex; align-items: center; min-height: 38px; }
.zl-footer__spodek { border-top: 1px solid rgba(255,255,255,.22); margin-top: var(--zl-gap-3); padding-top: var(--zl-gap-2); font-size: var(--zl-t-sm); display: flex; flex-wrap: wrap; gap: var(--zl-gap-2); justify-content: space-between; }

/* ==========================================================================
   10. Uživatelské režimy přístupnosti
   ========================================================================== */

/* Vysoký kontrast – přepínač v liště nahoře */
body.zl-kontrast {
  --zl-paper: #000000;
  --zl-paper-2: #000000;
  --zl-white: #000000;
  --zl-ink: #FFFFFF;
  --zl-ink-soft: #F2F2F2;
  --zl-line: #FFFFFF;
  --zl-zs: #FFE566; --zl-zs-deep: #FFE566; --zl-zs-wash: #000000;
  --zl-ms: #7FD4FF; --zl-ms-deep: #7FD4FF; --zl-ms-wash: #000000;
  --zl-info: #FFC24D; --zl-info-wash: #000000;
  --zl-focus: #FFFFFF;
}
body.zl-kontrast img:not(.zl-kontrast-keep) { filter: grayscale(1) contrast(1.15); }
body.zl-kontrast .zl-btn { background: #FFE566; color: #000; border-color: #FFE566; }
body.zl-kontrast .zl-footer { background: #000; border-top: 1px solid #fff; }

/* Zvýraznění odkazů */
body.zl-odkazy a { text-decoration: underline; text-decoration-thickness: 2px; background: #FFF3B0; color: #2A1A00; }
body.zl-kontrast.zl-odkazy a { background: #FFE566; color: #000; }

/* Systémové nastavení uživatele */
@media (prefers-contrast: more) {
  :root { --zl-line: #8C877C; --zl-ink-soft: #303C36; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}
@media (forced-colors: active) {
  .zl-vstup, .zl-kontakt, .zl-dnes { border: 1px solid CanvasText; }
  .zl-btn { border: 2px solid ButtonText; }
}

/* ==========================================================================
   11. Elementor – sjednocení widgetů s designem
   ========================================================================== */

.elementor-widget-heading .elementor-heading-title { font-family: var(--zl-font-head); }
.elementor-widget-text-editor { max-width: var(--zl-measure); }
.elementor-button {
  min-height: var(--zl-tap);
  border-radius: var(--zl-radius);
  font-family: var(--zl-font-body);
  font-weight: 700;
}
.elementor-widget-image img { border-radius: var(--zl-radius); }
.elementor-widget-container :focus-visible { outline: 3px solid var(--zl-focus); outline-offset: 2px; }
.elementor-accordion .elementor-tab-title { min-height: var(--zl-tap); }
.elementor-section.zl-pas-sekce { border-top: 5px solid var(--zl-accent); }

/* ==========================================================================
   12. Tisk
   ========================================================================== */

@media print {
  .zl-a11ybar, .zl-header, .zl-footer, .zl-filtr, .zl-postranni, .zl-skip { display: none !important; }
  body { background: #fff; color: #000; font-size: 11pt; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 9pt; word-break: break-all; }
  .zl-layout { display: block; }
}
