/*
  ZÁKLAD – reset, přístupnost a funkční minimum. Žádný design.
  Vzhled webu (barvy, písma, tlačítka, rozložení) patří do css/styl.css,
  který se načítá po tomto souboru a může cokoli přepsat.
  Proměnné níže si styl.css nastaví podle sebe.
*/
:root {
  --barva-text: #1a1a1a;
  --barva-pozadi: #fff;
  --barva-akcent: #1a1a1a;
  --barva-na-akcentu: #fff;
  --barva-chyba: #b3261e;
  --pismo: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --mezera: 1rem;
  --obsah-max: 70rem;
  --zavolat-vyska: 3.5rem;
}

/* --- reset --- */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  min-height: 100vh;
  font-family: var(--pismo);
  line-height: 1.6;
  color: var(--barva-text);
  background: var(--barva-pozadi);
  -webkit-font-smoothing: antialiased;
}
img, picture, svg, video { display: block; max-width: 100%; height: auto; }
input, button, textarea, select { font: inherit; color: inherit; }
button { cursor: pointer; }
p, li, h1, h2, h3, h4, blockquote, figcaption { overflow-wrap: break-word; }
h1, h2, h3 { line-height: 1.15; text-wrap: balance; overflow-wrap: anywhere; hyphens: auto; }
p { text-wrap: pretty; }
a { color: inherit; text-underline-offset: 0.15em; }
[hidden] { display: none !important; }
section[id], [id] { scroll-margin-top: 5rem; }

/* --- přístupnost --- */
:focus-visible { outline: 3px solid var(--barva-akcent); outline-offset: 3px; }
.preskocit {
  position: absolute; left: var(--mezera); top: -10rem; z-index: 100;
  padding: 0.75rem 1rem; background: var(--barva-pozadi); color: var(--barva-text);
}
.preskocit:focus { top: var(--mezera); }
.pro-ctecky {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
}

/* --- mobilní menu (funkce; vzhled v styl.css) --- */
.menu-tlacitko { display: none; }
@media (max-width: 47.99rem) {
  .js .menu-tlacitko { display: inline-flex; align-items: center; min-height: 2.75rem; }
  .js .menu:not(.otevreno) { display: none; }
}

/* --- lišta Zavolat: na mobilu vždy dole, na počítači skrytá --- */
.zavolat {
  position: fixed; inset: auto 0 0 0; z-index: 50;
  display: flex; align-items: center; justify-content: center;
  min-height: var(--zavolat-vyska);
  padding-bottom: env(safe-area-inset-bottom);
  background: var(--barva-akcent); color: var(--barva-na-akcentu);
  font-weight: 700; text-decoration: none;
}
@media (max-width: 47.99rem) {
  body { padding-bottom: calc(var(--zavolat-vyska) + env(safe-area-inset-bottom)); }
}
@media (min-width: 48rem) {
  .zavolat { display: none; }
}

/* --- formulář (funkce; vzhled v styl.css) --- */
.formular .pole { display: grid; gap: 0.25rem; margin-bottom: var(--mezera); }
.formular input, .formular textarea { width: 100%; min-height: 2.75rem; padding: 0.5rem 0.75rem; }
.formular [aria-invalid="true"] { border-color: var(--barva-chyba); outline-color: var(--barva-chyba); }
.pole-chyba { color: var(--barva-chyba); font-size: 0.9em; }
.formular-past { position: absolute; left: -100vw; width: 1px; height: 1px; overflow: hidden; }
.formular-hlaska { margin-top: var(--mezera); font-weight: 700; }

/* --- obecné --- */
.tlacitko { display: inline-flex; align-items: center; justify-content: center; min-height: 2.75rem; padding: 0.5rem 1.25rem; }
.mapa img { width: 100%; }
