/* ═══════════════════════════════════════════════════════════════════════
   BÁŇSKÁ STAVEBNÍ MOST spol. s r.o. — vlastní šablona (náhrada za Nicepage)

   Vzhled je převzatý z původního webu, ale **změřený**, ne odhadnutý:
   barvy, velikosti a rozestupy níže pocházejí z `getComputedStyle`
   nad původními stránkami (viz ~/bsmost-build/zmer.py a zmer2.py).

   Rozvržení nedělají absolutně pozicované boxy se zápornými okraji jako
   v Nicepage, ale grid a flex — proto se stránka na úzkém okně chová
   předvídatelně a nepotřebuje jQuery ani nicepage.js.
   ═══════════════════════════════════════════════════════════════════════ */

:root {
  --zelena: #208263;        /* hlavní barva: menu, patička, tlačítka, ikony */
  --zelena-tmava: #19684e;  /* najetí myší */
  --seda-zelena: #4a5d5c;   /* karty „klíčové přednosti“, druhá karta služeb */
  --tmava-modra: #191b33;   /* nadpis v hero kartě, třetí karta služeb */
  --tmava-sekce: #293330;   /* pozadí tmavé sekce (Služby) */
  --text: #111;
  --text-tlumeny: #4a4a4a;
  --bila: #fff;
  --linka: #e5e5e5;
  --sirka: 1140px;          /* obsahový sloupec původního webu */
  --okraj: 20px;            /* boční vzduch na úzkém okně */
  --menu-zlom: 1100px;      /* pod tím se vodorovné menu už nevejde */
}

/* ── základ ─────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }

html {
  font-size: 16px;
  /* Plátno pod stránkou: „gumové“ přejetí za konec neukáže cizí barvu. */
  background: var(--bila);
  scroll-behavior: smooth;
  /* Stránka si drží místo na posuvník, takže se obsah mezi krátkou
     a dlouhou stránkou nepohne o 15 px do strany. */
  scrollbar-gutter: stable;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

body {
  margin: 0;
  font-family: "Open Sans", sans-serif;
  font-size: 1rem;
  line-height: 1.6;
  color: var(--text);
  background: var(--bila);
  /* Patička drží dole i na krátkých stránkách (vada, kterou měl originál). */
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  -webkit-text-size-adjust: 100%;
}

main {
  flex: 1 0 auto;
  display: flex;
  flex-direction: column;
}

/* Poslední sekce dorůstá svým pozadím až k patičce — jinak by mezi jejím
   koncem a patičkou prosvítalo pozadí `body`. */
main > .sek:last-child { flex: 1 0 auto; }

img { max-width: 100%; }

a { color: var(--zelena); }

p { margin: 0; }

/* Adresa je sémantická značka, ne kurzíva — prohlížeč ji jinak sází šikmo. */
address { font-style: normal; }

.obal {
  width: 100%;
  max-width: var(--sirka);
  margin-inline: auto;
  padding-inline: var(--okraj);
}

/* Pro čtečky, ne pro oko (přeskočení na obsah, skryté nadpisy). */
.jen-pro-ctecky {
  position: absolute;
  width: 1px; height: 1px;
  margin: -1px; padding: 0; border: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.preskocit:focus {
  position: fixed;
  top: 8px; left: 8px;
  z-index: 100;
  width: auto; height: auto;
  margin: 0; padding: 10px 16px;
  clip-path: none;
  background: var(--zelena);
  color: var(--bila);
  border-radius: 6px;
}

:focus-visible {
  outline: 3px solid var(--zelena);
  outline-offset: 2px;
}

/* ── hlavička ───────────────────────────────────────────────────────── */
.hlavicka {
  background: var(--bila);
  border-bottom: 1px solid var(--linka);
  padding-block: 5px;       /* 5 + logo 62 + 5 = 72 px jako v originálu */
}

.hlavicka__obal {
  display: flex;
  align-items: center;
  gap: 24px;
}

.znacka { display: inline-flex; flex: 0 0 auto; }

.znacka__obr {
  display: block;
  width: 148px;             /* změřeno na originálu: 148 × 62 */
  height: auto;
}

/* ── menu ───────────────────────────────────────────────────────────── */
.menu { margin-left: auto; }

.menu__seznam {
  display: flex;
  align-items: center;
  gap: 15px;                /* změřeno: u-spacing-15 */
  margin: 0;
  padding: 0;
  list-style: none;
}

.menu__polozka { position: relative; }

.menu__odkaz {
  display: block;
  padding: 10px 0;
  border-bottom: 2px solid transparent;
  font-size: .75rem;        /* 12 px */
  font-weight: 700;
  line-height: 1;
  color: var(--zelena);
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
}

.menu__odkaz:hover,
.menu__odkaz:focus-visible { border-bottom-color: var(--zelena); }

/* Stránka, na které klient právě je. Originál to řešil až skriptem podle
   adresy — tady je to zapsané rovnou v HTML, takže to platí i bez JS. */
.menu__odkaz[aria-current="page"] { border-bottom-color: var(--zelena); }

/* Rozbalovací podmenu (DOKUMENTY) */
.menu__polozka--pod > .menu__odkaz::after {
  content: "";
  display: inline-block;
  width: 6px; height: 6px;
  margin-left: 7px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
}

.menu__pod {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 30;
  display: block;
  min-width: 190px;
  margin: 0;
  padding: 8px 0;
  list-style: none;
  background: var(--zelena);
  box-shadow: 0 8px 24px rgba(0, 0, 0, .25);
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
  transition: opacity .15s, transform .15s, visibility .15s;
}

.menu__polozka--pod:hover > .menu__pod,
.menu__polozka--pod:focus-within > .menu__pod,
.menu__polozka--pod[data-otevreno="1"] > .menu__pod {
  opacity: 1;
  visibility: visible;
  transform: none;
}

.menu__pod .menu__odkaz {
  padding: 8px 20px;
  border: 0;
  color: var(--bila);
}

.menu__pod .menu__odkaz:hover,
.menu__pod .menu__odkaz:focus-visible { background: var(--zelena-tmava); }

/* Odkaz na Facebook */
.socialni {
  display: inline-flex;
  flex: 0 0 auto;
  color: var(--zelena);
}

.socialni svg { display: block; width: 26px; height: 26px; fill: currentColor; }

.socialni:hover { color: var(--zelena-tmava); }

/* Hamburger — pod --menu-zlom */
.hamburger {
  display: none;
  margin-left: auto;
  padding: 10px;
  border: 0;
  background: none;
  color: var(--zelena);
  cursor: pointer;
}

.hamburger__pruh {
  display: block;
  width: 26px; height: 3px;
  margin: 5px 0;
  background: currentColor;
  transition: transform .2s, opacity .2s;
}

.hamburger[aria-expanded="true"] .hamburger__pruh:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.hamburger[aria-expanded="true"] .hamburger__pruh:nth-child(2) { opacity: 0; }
.hamburger[aria-expanded="true"] .hamburger__pruh:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

@media (max-width: 1100px) {
  .hlavicka__obal { position: relative; flex-wrap: wrap; }

  .hamburger { display: block; order: 3; }
  .socialni { order: 2; margin-left: auto; }

  .menu {
    position: absolute;
    top: 100%;
    left: 0; right: 0;
    z-index: 40;
    display: none;
    margin: 5px 0 0;
    padding: 8px 0;
    background: var(--bila);
    box-shadow: 0 12px 24px rgba(0, 0, 0, .18);
  }

  .menu[data-otevreno="1"] { display: block; }

  .menu__seznam {
    display: block;
    padding-inline: var(--okraj);
  }

  .menu__odkaz {
    padding: 13px 0;
    font-size: .875rem;
    border-bottom: 1px solid var(--linka);
  }

  .menu__odkaz[aria-current="page"] { border-bottom-color: var(--zelena); }

  .menu__pod {
    position: static;
    min-width: 0;
    padding: 0 0 8px 20px;
    background: none;
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    transform: none;
    display: none;
  }

  .menu__pod .menu__odkaz { color: var(--zelena); }
  .menu__pod .menu__odkaz:hover { background: none; }

  .menu__polozka--pod[data-otevreno="1"] > .menu__pod { display: block; }

  /* Na dotyk se podmenu otevírá klepnutím na položku, ne najetím. */
  .menu__polozka--pod:hover > .menu__pod { display: none; }
  .menu__polozka--pod[data-otevreno="1"]:hover > .menu__pod { display: block; }
}

/* ── společné prvky sekcí ───────────────────────────────────────────── */
.sek { position: relative; }

.sek--bila { background: var(--bila); padding-block: 60px; }
.sek--tmava { background: var(--tmava-sekce); color: var(--bila); padding-block: 70px; }

.nadpis {
  margin: 0 0 36px;
  font-family: Oswald, sans-serif;
  font-weight: 700;
  /* originál: 60 px na H1, na úzkém okně méně */
  font-size: clamp(1.875rem, 5vw, 3.75rem);
  line-height: 1.15;
  color: var(--text);
  text-transform: uppercase;
  text-wrap: balance;
}

.sek--tmava .nadpis { color: var(--bila); }

.nadpis--stred { text-align: center; }

.podnadpis {
  margin: 48px 0 20px;
  font-family: Oswald, sans-serif;
  font-weight: 700;
  font-size: 1.5rem;        /* 24 px */
  line-height: 1.3;
  color: var(--text);
}

.sek--tmava .podnadpis { color: var(--bila); }

/* Zelený odkaz na tmavém pozadí je nečitelný — na tmavé sekci se prosvětlí. */
.sek--tmava a { color: #9fe3c9; }

.text {
  margin: 0 0 20px;
  font-size: 1.125rem;
  line-height: 1.8;
}

.text:last-child { margin-bottom: 0; }

.seznam {
  margin: 0 0 20px;
  padding-left: 22px;
  font-size: 1.125rem;
  line-height: 1.8;
}

.seznam li { margin-bottom: 6px; }

/* ── hero (úvodní stránka) ──────────────────────────────────────────── */
.hero {
  display: flex;
  align-items: center;
  min-height: 620px;
  padding-block: 60px;
  background: var(--tmava-sekce) center / cover no-repeat;
}

.hero__karta {
  max-width: 511px;         /* změřeno na originálu */
  padding: 34px 30px;
  border-radius: 50px;      /* změřeno: u-radius-50 */
  background: rgba(255, 255, 255, .95);
  box-shadow: 5px 5px 20px 0 rgba(0, 0, 0, .15);
}

.hero__nadpis {
  margin: 0 0 24px;
  font-family: Oswald, sans-serif;
  font-weight: 700;
  font-size: clamp(1.375rem, 3vw, 1.875rem);   /* originál 30 px */
  line-height: 1.15;
  color: var(--tmava-modra);
}

.hero__text {
  margin: 0;
  font-size: 1.125rem;
  font-style: italic;
  font-weight: 500;
  line-height: 1.7;
  color: var(--text-tlumeny);
  text-align: justify;
}

.hero__podpis {
  display: block;
  margin-top: 22px;
  font-style: normal;
  font-weight: 600;
}

@media (max-width: 575px) {
  .hero { min-height: 0; padding-block: 40px; }
  .hero__karta { padding: 26px 20px; border-radius: 30px; }
  .hero__text { text-align: left; }
}

/* ── představení firmy (fotka vedle textu) ──────────────────────────── */
.medailon__obal {
  display: grid;
  grid-template-columns: 304px minmax(0, 1fr);
  gap: 40px;
  align-items: center;
}

.medailon__foto {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 20px;
}

@media (max-width: 860px) {
  .medailon__obal { grid-template-columns: 1fr; gap: 26px; }
  .medailon__foto { max-width: 320px; margin-inline: auto; }
}

/* ── karty „klíčové přednosti“ ──────────────────────────────────────── */
.prednosti {
  padding-block: 80px;
  background: var(--tmava-sekce) center / cover no-repeat;
}

.prednosti .nadpis {
  color: var(--bila);
  letter-spacing: 2px;
  text-shadow: 2px 2px 8px rgba(0, 0, 0, .4);
  font-size: clamp(1.75rem, 4vw, 3rem);
}

.prednosti__mrizka {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;                /* změřeno: --gap: 20px */
}

.prednost {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 30px 20px;
  border-radius: 50px;
  background: var(--bila);
  box-shadow: 5px 5px 20px 0 rgba(0, 0, 0, .2);
  text-align: center;
  transition: background-color .4s, color .4s;
}

/* Kruhová ikona — v originálu `u-icon-circle u-palette-1-base`. */
.prednost__ikona {
  display: grid;
  place-items: center;
  width: 140px; height: 140px;
  border-radius: 50%;
  background: var(--zelena);
  transition: background-color .4s;
}

.prednost__ikona img {
  width: 48px; height: 48px;
  /* Ikony jsou tmavé PNG — na zeleném kolečku musí být bílé. */
  filter: brightness(0) invert(1);
}

.prednost__nazev {
  margin: 30px 0 0;
  font-family: Oswald, sans-serif;
  font-weight: 400;
  font-size: 1.5rem;        /* 24 px */
  line-height: 1.25;
  letter-spacing: 1px;
  text-transform: uppercase;
  /* ⚠️ Originál sázel tenhle nadpis BÍLE na BÍLOU kartu, takže na webu
     nebyl vidět vůbec (ověřeno `getComputedStyle`). Tady je čitelný. */
  color: var(--tmava-modra);
}

.prednost__popis {
  margin: 22px 0 0;
  font-size: 1.125rem;
  line-height: 1.6;
  color: var(--text-tlumeny);
}

.prednost:hover,
.prednost:focus-within {
  background: var(--seda-zelena);
  color: var(--bila);
}

.prednost:hover .prednost__nazev,
.prednost:hover .prednost__popis,
.prednost:focus-within .prednost__nazev,
.prednost:focus-within .prednost__popis { color: var(--bila); }

.prednost:hover .prednost__ikona,
.prednost:focus-within .prednost__ikona { background: var(--tmava-sekce); }

@media (max-width: 991px) {
  .prednosti__mrizka { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 575px) {
  .prednosti { padding-block: 50px; }
  .prednosti__mrizka { grid-template-columns: 1fr; }
  .prednost { border-radius: 30px; }
  .prednost__ikona { width: 110px; height: 110px; }
  .prednost__ikona img { width: 40px; height: 40px; }
}

/* ── barevné karty služeb ───────────────────────────────────────────── */
.sluzby__obal {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 40px;
  align-items: stretch;
}

/* Oba sloupce jsou vysoké stejně jako ten delší (fotka + odstavec pod ní),
   aby pod pilulkami nezůstávala prázdná díra — volné místo se rozdělí do
   mezer mezi ně. */
.sluzby__obal > div {
  display: flex;
  flex-direction: column;
}

.sluzby__karty {
  display: flex;
  flex-direction: column;
  flex: 1;
  justify-content: space-between;
  gap: 26px;
  margin-top: 20px;
  list-style: none;
  padding: 0;
}

.sluzba {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 117px;        /* změřeno: 378 × 117 */
  padding: 22px 26px;
  border-radius: 20px;
  color: var(--bila);
  font-size: 1.125rem;
  line-height: 1.5;
  text-align: center;
}

.sluzba--1 { background: var(--zelena); }
.sluzba--2 { background: var(--seda-zelena); }
.sluzba--3 { background: var(--tmava-modra); }

.sluzby__foto {
  display: block;
  width: 100%;
  /* Originál sázel fotku malou (≈295 px). Přes celou šířku sloupce je
     přes 1000 px vysoká a levý sloupec vedle ní zůstával z poloviny
     prázdný — proto pevný poměr stran a ořez zespodu, kde je jen podlaha.
     Poměr se drží i na užších displejích, aby mezery mezi pilulkami
     nerostly. */
  aspect-ratio: 3 / 4;
  max-height: 640px;
  height: auto;
  object-fit: cover;
  object-position: 50% 12%;
  border-radius: 20px;
}

.sluzby__doplnek { margin-top: 30px; }

@media (max-width: 860px) {
  .sluzby__obal { grid-template-columns: 1fr; gap: 30px; }
  /* Pod sebou už nic nevyrovnáváme — fotka může být celá. */
  .sluzby__foto { aspect-ratio: auto; max-height: none; object-fit: fill; }
}

/* ── galerie fotografií ─────────────────────────────────────────────── */
.galerie {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 20px;
  margin: 40px 0 0;
  padding: 0;
  list-style: none;
}

.galerie img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 12px;
}

/* ── dokumenty ke stažení (certifikáty, oprávnění, politika) ────────── */
.dokumenty {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 40px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.dokument {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 24px;
  border: 1px solid var(--linka);
  border-radius: 12px;
  background: var(--bila);
}

.dokument__nahled {
  display: block;
  width: 100%;
  height: auto;
  border: 1px solid var(--linka);
  border-radius: 6px;
}

/* Sken sázený přes celou šířku obsahu (Politika ISŘ) se nikdy nezvětšuje
   nad své rozlišení — roztažený na 1100 px měl kostrbaté, rozmazané
   písmo. Nativních 788 px kreslí text ostře 1:1. */
.dokument__nahled--stranka {
  max-width: 788px;
  margin-inline: auto;
}

.dokument__nazev {
  margin: 0;
  font-family: Oswald, sans-serif;
  font-weight: 700;
  font-size: 1.25rem;
  line-height: 1.3;
}

.dokument__popis {
  margin: 0;
  font-size: 1rem;
  color: var(--text-tlumeny);
}

.dokument__akce { margin-top: auto; }

/* ── tlačítko ───────────────────────────────────────────────────────── */
.tlacitko {
  display: inline-block;
  padding: 10px 30px;       /* změřeno na tlačítku „Povolit cookies“ */
  border: 0;
  border-radius: 13px;
  background: var(--zelena);
  color: var(--bila);
  font-family: "Open Sans", sans-serif;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
}

.tlacitko:hover,
.tlacitko:focus-visible { background: var(--zelena-tmava); }

.tlacitko--vedlejsi {
  background: transparent;
  border: 2px solid var(--zelena);
  color: var(--zelena);
  padding: 8px 28px;
}

.tlacitko--vedlejsi:hover,
.tlacitko--vedlejsi:focus-visible { background: var(--zelena); color: var(--bila); }

/* ── reference (roky a zakázky) ─────────────────────────────────────── */
.rok {
  margin: 0 0 12px;
  padding-top: 34px;
  font-family: Oswald, sans-serif;
  font-weight: 700;
  font-size: 2rem;
  line-height: 1.2;
  color: var(--zelena);
}

.zakazky {
  margin: 0;
  padding-left: 22px;
  font-size: 1.0625rem;
  line-height: 1.7;
}

.zakazky li { margin-bottom: 10px; }

/* ── kariéra ────────────────────────────────────────────────────────── */
.pozice {
  margin-bottom: 40px;
  padding: 30px;
  border: 1px solid var(--linka);
  border-left: 6px solid var(--zelena);
  border-radius: 12px;
  background: var(--bila);
}

.pozice__nazev {
  margin: 0 0 6px;
  font-family: Oswald, sans-serif;
  font-weight: 700;
  font-size: 1.75rem;
  line-height: 1.2;
  color: var(--tmava-modra);
}

.pozice__lokalita {
  margin: 0 0 22px;
  color: var(--text-tlumeny);
}

.pozice h3 {
  margin: 26px 0 10px;
  font-family: Oswald, sans-serif;
  font-weight: 700;
  font-size: 1.25rem;
  color: var(--zelena);
}

.pozice ul {
  margin: 0;
  padding-left: 22px;
  line-height: 1.7;
}

.pozice__zaver {
  margin-top: 26px;
  padding-top: 20px;
  border-top: 1px solid var(--linka);
}

@media (max-width: 575px) {
  .pozice { padding: 22px 18px; }
}

/* ── pomáháme (poděkování) ──────────────────────────────────────────── */
.podekovani {
  margin-bottom: 46px;
  padding-bottom: 46px;
  border-bottom: 1px solid var(--linka);
}

.podekovani:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }

.podekovani__nazev {
  margin: 0 0 18px;
  font-family: Oswald, sans-serif;
  font-weight: 700;
  font-size: 1.375rem;
  line-height: 1.3;
  color: var(--zelena);
}

.podekovani__obrazky {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 20px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.podekovani__obrazky img {
  display: block;
  width: 100%;
  /* Strop na vlastní rozlišení skenu sází build (inline max-width) —
     menší sken se pak vycentruje místo aby se roztáhl a rozmazal. */
  margin-inline: auto;
  height: auto;
  border: 1px solid var(--linka);
  border-radius: 8px;
}

/* ── kontakty ───────────────────────────────────────────────────────── */
.kontakt__hlava {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 40px;
  align-items: start;
}

.udaje {
  width: 100%;
  margin: 24px 0;
  border-collapse: collapse;
  font-size: 1.0625rem;
}

.udaje th,
.udaje td {
  padding: 6px 0;
  text-align: left;
  vertical-align: top;
}

.udaje th {
  width: 42%;
  padding-right: 16px;
  font-weight: 700;
  white-space: nowrap;
}

.mapa-ram {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: 12px;
  background: #eee;
}

.mapa-ram iframe {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  border: 0;
}

@media (max-width: 860px) {
  .kontakt__hlava { grid-template-columns: 1fr; }
}

.oddeleni {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 40px;
  margin-top: 50px;
}

/* Nadpisy oddělení sdílejí řádek mřížky, takže zelené linky pod nimi leží
   ve stejné výšce i vedle dvouřádkového nadpisu (Středisko 04). Bez
   subgridu si každá sekce měřila výšku sama a linky se rozjížděly. */
.oddeleni > section {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 2;
  row-gap: 0;
}

/* Nadpis se drží u spodku svého řádku, aby linka seděla na účaří
   sousedních nadpisů, ne nad nimi. */
.oddeleni__nazev { align-self: end; }

.oddeleni__nazev {
  margin: 0 0 20px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--zelena);
  font-family: Oswald, sans-serif;
  font-weight: 700;
  font-size: 1.375rem;
  line-height: 1.3;
  text-transform: uppercase;
}

.lide {
  display: flex;
  flex-direction: column;
  gap: 22px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.osoba__jmeno {
  margin: 0;
  font-weight: 700;
  font-size: 1.0625rem;
}

.osoba__funkce {
  margin: 0 0 6px;
  color: var(--text-tlumeny);
  font-size: .9375rem;
}

.osoba__spojeni {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 20px;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 1rem;
}

.osoba__spojeni a { text-decoration: none; }
.osoba__spojeni a:hover { text-decoration: underline; }

/* ── pás s mapou a adresou (spodek stránek) ─────────────────────────── */
.pas-kontakt {
  padding-block: 44px;
  background: #f4f6f5;
  border-top: 1px solid var(--linka);
}

.pas-kontakt__obal {
  display: grid;
  grid-template-columns: 200px minmax(0, 1fr);
  gap: 40px;
  align-items: center;
}

.pas-kontakt__logo { display: block; width: 100%; height: auto; }

.pas-kontakt__nazev {
  margin: 0 0 10px;
  font-family: Oswald, sans-serif;
  font-weight: 700;
  font-size: 1.5rem;
  line-height: 1.3;
}

.pas-kontakt p { margin-bottom: 4px; }

.pas-kontakt address { font-style: normal; }

.pas-kontakt a { text-decoration: none; }
.pas-kontakt a:hover { text-decoration: underline; }

@media (max-width: 700px) {
  .pas-kontakt__obal { grid-template-columns: 1fr; gap: 20px; }
  .pas-kontakt__logo { max-width: 170px; }
}

/* ── patička ────────────────────────────────────────────────────────── */
.paticka {
  padding-block: 40px 26px;
  background: var(--zelena);
  color: var(--bila);
  font-size: .9375rem;
  line-height: 1.7;
}

.paticka a { color: var(--bila); }

.paticka__mrizka {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 30px 40px;
}

.paticka__nadpis {
  margin: 0 0 12px;
  font-family: Oswald, sans-serif;
  font-weight: 700;
  font-size: 1.0625rem;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.paticka__seznam {
  margin: 0;
  padding: 0;
  list-style: none;
}

.paticka__seznam li { margin-bottom: 4px; }

.paticka address { font-style: normal; }

.paticka__spodek {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 20px;
  align-items: center;
  justify-content: space-between;
  margin-top: 30px;
  padding-top: 18px;
  border-top: 1px solid rgba(255, 255, 255, .3);
  font-size: .875rem;
}

.paticka__odkazy {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 18px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.paticka__tlacitko {
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  text-decoration: underline;
  cursor: pointer;
}

/* ── tlačítko „nahoru“ ──────────────────────────────────────────────── */
.nahoru {
  position: fixed;
  right: 20px; bottom: 20px;
  z-index: 50;
  display: grid;
  place-items: center;
  width: 52px; height: 52px;
  padding: 14px;
  border: 0;
  border-radius: 50%;
  background: var(--zelena);
  color: var(--bila);
  opacity: 0;
  visibility: hidden;
  cursor: pointer;
  transition: opacity .2s, visibility .2s;
}

.nahoru[data-videt="1"] { opacity: .85; visibility: visible; }
.nahoru:hover { opacity: 1; }

.nahoru svg { width: 100%; height: 100%; fill: currentColor; }

/* ── lišta souhlasu s cookies ───────────────────────────────────────── */
.ck-bar {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 2147483000;
  display: none;
  padding: 20px var(--okraj);
  background: #333;
  color: var(--bila);
  box-shadow: 0 -6px 24px rgba(0, 0, 0, .3);
}

.ck-bar.ck-zobrazit { display: block; }

.ck-obal {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 30px;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  max-width: var(--sirka);
  margin-inline: auto;
}

.ck-text { flex: 1 1 420px; }

.ck-nadpis {
  margin: 0 0 6px;
  font-family: Oswald, sans-serif;
  font-weight: 700;
  font-size: 1.125rem;
  line-height: 1.3;
}

.ck-popis { margin: 0; font-size: .9375rem; line-height: 1.6; }

.ck-popis a { color: #9fe3c9; }

.ck-tlacitka {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.ck-btn {
  padding: 10px 26px;
  border: 2px solid var(--zelena);
  border-radius: 13px;
  background: var(--zelena);
  color: var(--bila);
  font: 700 1rem/1.5 "Open Sans", sans-serif;
  cursor: pointer;
}

.ck-btn:hover { background: var(--zelena-tmava); border-color: var(--zelena-tmava); }

.ck-btn-vedlejsi {
  background: transparent;
  border-color: rgba(255, 255, 255, .6);
}

.ck-btn-vedlejsi:hover { background: rgba(255, 255, 255, .12); border-color: var(--bila); }

/* Zástupce za zablokovanou mapu */
.ck-zastupce {
  display: grid;
  place-content: center;
  gap: 14px;
  height: 100%;
  padding: 26px;
  border: 1px dashed #bbb;
  border-radius: 12px;
  background: #f4f6f5;
  text-align: center;
}

.ck-zastupce p { margin: 0; font-size: .9375rem; color: var(--text-tlumeny); }

.ck-zastupce .ck-btn { justify-self: center; }

.ck-zastupce-adresa { font-weight: 700; color: var(--text) !important; }

/* Plovoucí tlačítko pro změnu volby */
.ck-znovu {
  position: fixed;
  left: 20px; bottom: 20px;
  z-index: 50;
  display: none;
  width: 44px; height: 44px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--bila);
  box-shadow: 0 3px 12px rgba(0, 0, 0, .25);
  font-size: 1.25rem;
  line-height: 44px;
  cursor: pointer;
}

.ck-znovu.ck-zobrazit { display: block; }

@media (max-width: 575px) {
  .ck-tlacitka { width: 100%; }
  .ck-btn { flex: 1 1 auto; }
}

/* ── právní text (zásady ochrany osobních údajů) ────────────────────── */
.pravni { max-width: 820px; }

.pravni h2 {
  margin: 42px 0 12px;
  font-family: Oswald, sans-serif;
  font-weight: 700;
  font-size: 1.5rem;
  line-height: 1.3;
  color: var(--tmava-modra);
}

.pravni h3 {
  margin: 26px 0 8px;
  font-family: Oswald, sans-serif;
  font-weight: 700;
  font-size: 1.1875rem;
  line-height: 1.3;
}

.pravni p, .pravni li { font-size: 1.0625rem; line-height: 1.75; }
.pravni p { margin: 0 0 14px; }
.pravni ul { margin: 0 0 14px; padding-left: 22px; }
.pravni li { margin-bottom: 6px; }

/* ── tisk ───────────────────────────────────────────────────────────── */
@media print {
  .hlavicka, .nahoru, .ck-bar, .ck-znovu, .pas-kontakt, .mapa-ram { display: none; }
  body { background: #fff; color: #000; }
  .sek--tmava { background: #fff; color: #000; }
  .sek--tmava .nadpis, .sek--tmava .podnadpis { color: #000; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: .8em; }
}

/* ── lightbox fotogalerie (zvětšení fotky + procházení) ─────────────── */
/* Ovládá site.js — overlay se staví až při prvním otevření. Fotky
   v galerii jsou klikatelné (JS jim dává tabindex + role="button"). */
.galerie img { cursor: zoom-in; }

.lupa {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(12, 18, 16, .94);
  padding: 24px;
}
.lupa[hidden] { display: none; }

.lupa__ram {
  margin: 0;
  max-width: min(1400px, 100%);
  text-align: center;
}

.lupa__obr {
  display: block;
  margin: 0 auto;
  max-width: 100%;
  /* Místo dole si drží popisek s počítadlem. */
  max-height: calc(100vh - 140px);
  width: auto;
  height: auto;
  border-radius: 8px;
  box-shadow: 0 12px 48px rgba(0, 0, 0, .6);
}

.lupa__popis {
  margin-top: 14px;
  color: #fff;
  font-size: .9375rem;
  line-height: 1.4;
}

.lupa__pocitadlo {
  display: block;
  margin-top: 4px;
  color: rgba(255, 255, 255, .55);
  font-size: .8125rem;
  letter-spacing: .06em;
}

/* Tlačítka: zavřít v rohu, šipky na bocích. Stejný kruhový tvar. */
.lupa__tl {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, .14);
  color: #fff;
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
  transition: background .15s;
}
.lupa__tl:hover, .lupa__tl:focus-visible { background: var(--zelena); }
.lupa__tl:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }

.lupa__zavrit { top: 16px; right: 16px; }
.lupa__pred   { left: 16px;  top: 50%; transform: translateY(-50%); }
.lupa__dalsi  { right: 16px; top: 50%; transform: translateY(-50%); }

@media (max-width: 640px) {
  .lupa { padding: 12px; }
  .lupa__obr { max-height: calc(100vh - 170px); }
  /* Šipky dolů pod fotku, aby ji na úzkém displeji nepřekrývaly. */
  .lupa__pred, .lupa__dalsi {
    top: auto;
    bottom: 16px;
    transform: none;
  }
  .lupa__pred { left: 24px; }
  .lupa__dalsi { right: 24px; }
}

@media (prefers-reduced-motion: reduce) {
  .lupa__tl { transition: none; }
}

/* ── kariéra: rozbalovací inzeráty (akordeon) ───────────────────────── */
/* Skládá site.js za běhu: nadpis dostane tlačítko, obsah se zabalí do
   .pozice__telo. Bez JS zůstávají inzeráty rozbalené jako dřív.        */
.pozice--akordeon { margin-bottom: 20px; }

.pozice__prepinac {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
  font: inherit;
  color: inherit;
  text-align: left;
}
.pozice__prepinac:hover { color: var(--zelena); }
.pozice__prepinac:focus-visible {
  outline: 2px solid var(--zelena);
  outline-offset: 4px;
}

/* Šipka ▾ — otočením ukazuje stav. */
.pozice__prepinac::after {
  content: "";
  flex: none;
  width: 11px;
  height: 11px;
  margin-right: 5px;
  border-right: 3px solid var(--zelena);
  border-bottom: 3px solid var(--zelena);
  transform: rotate(45deg);
  transition: transform .25s;
}
.pozice--otevrena .pozice__prepinac::after {
  transform: rotate(225deg) translate(-3px, -3px);
}

.pozice--akordeon .pozice__nazev { margin: 0; }

/* Plynulé rozbalení přes grid 0fr → 1fr (bez měření výšky v JS). */
.pozice__telo {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows .3s ease;
}
.pozice--otevrena .pozice__telo { grid-template-rows: 1fr; }

.pozice__telo > div {
  overflow: hidden;
  min-height: 0;
  /* Sbalený obsah nesmí být vidět ani dosažitelný tabulátorem;
     visibility čeká, až doběhne zarolování. */
  visibility: hidden;
  transition: visibility 0s linear .3s;
}
.pozice--otevrena .pozice__telo > div {
  visibility: visible;
  transition: none;
}

@media (prefers-reduced-motion: reduce) {
  .pozice__prepinac::after, .pozice__telo, .pozice__telo > div { transition: none; }
}

/* ── statická mapa sídla (Kontakt) ──────────────────────────────────── */
/* Obrázek z OSM dlaždic leží u nás → mapa je vidět hned, bez souhlasu.
   Celá plocha je odkaz do Map Google (nová karta).                     */
.mapa-odkaz {
  position: absolute;
  inset: 0;
  display: block;
}

.mapa-ram img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.mapa-stitek {
  position: absolute;
  left: 12px;
  bottom: 12px;
  padding: 7px 14px;
  border-radius: 8px;
  background: var(--zelena);
  color: #fff;
  font-size: .875rem;
  font-weight: 700;
  box-shadow: 0 2px 10px rgba(0, 0, 0, .25);
  transition: background .15s;
}
.mapa-odkaz:hover .mapa-stitek,
.mapa-odkaz:focus-visible .mapa-stitek { background: var(--zelena-tmava); }
.mapa-odkaz:focus-visible { outline: 2px solid var(--zelena); outline-offset: 2px; }

@media (prefers-reduced-motion: reduce) {
  .mapa-stitek { transition: none; }
}

/* Dovětek názvu firmy v patičce — na vlastním řádku a malými písmeny
   (přebíjí uppercase nadpisu), přesně podle oficiálního zápisu firmy. */
.paticka__dovetek { text-transform: none; }

/* Bankovní spojení v patičce je od zápisu v rejstříku oddělené prázdným
   řádkem (globální reset p { margin: 0 } by je slepil dohromady). */
.paticka__banka { margin-top: 1.2em; }
