

*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-padding-top: calc(var(--vyska-hlavicky) + var(--s-4));
  accent-color: var(--oliva);
  scrollbar-color: var(--hlina) var(--vapno);
}
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}

body {
  margin: 0;
  background: var(--vapno);
  color: var(--text);
  font-family: var(--font-text);
  font-size: var(--fs-text);
  line-height: 1.6;
  font-kerning: normal;
  -webkit-font-smoothing: antialiased;
}

::selection { background: var(--oliva); color: var(--vapno); }

img, picture, svg { display: block; max-width: 100%; }
picture { height: 100%; }
img { height: auto; }

h1, h2, h3 {
  margin: 0;
  font-family: var(--font-nadpis);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.01em;
  text-wrap: balance;
  color: var(--oliva-tmava);
}
h1 { font-size: var(--fs-h1); line-height: 1.04; }
h2 { font-size: var(--fs-h2); }
h3 { font-size: var(--fs-h3); line-height: 1.2; }

p { margin: 0 0 var(--s-4); text-wrap: pretty; }
p:last-child { margin-bottom: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
dl, dd, figure, blockquote { margin: 0; }

a {
  color: var(--obloha-text);
  text-underline-offset: 0.2em;
  text-decoration-thickness: 1px;
}
a:hover { color: var(--obloha-tmava); text-decoration-thickness: 2px; }

:focus-visible {
  outline: 3px solid var(--obloha-text);
  outline-offset: 3px;
  border-radius: 2px;
}
.tmava :focus-visible, dialog :focus-visible { outline-color: var(--vapno); }
dialog.okno :focus-visible { outline-color: var(--obloha-text); }

.sr-only {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.skip {
  position: absolute; left: var(--s-4); top: -4rem; z-index: 100;
  background: var(--oliva-tmava); color: var(--vapno);
  padding: var(--s-3) var(--s-4); border-radius: var(--radius);
}
.skip:focus { top: var(--s-3); }

.obal {
  width: min(100% - 2rem, var(--obsah));
  margin-inline: auto;
}
@media (min-width: 48em) { .obal { width: min(100% - 4rem, var(--obsah)); } }

.btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 3rem; padding: 0 var(--s-5);
  background: var(--oliva-tmava); color: var(--vapno);
  border: 0; border-radius: var(--radius);
  font: 600 1rem/1 var(--font-text);
  text-decoration: none; cursor: pointer; white-space: nowrap;
  transition: background-color var(--t-rychle) var(--ease), transform var(--t-rychle) var(--ease);
}
.btn:hover { background: var(--oliva); color: var(--vapno); text-decoration: none; }
.btn:active { transform: translateY(1px); }
.btn:focus-visible { outline-offset: 3px; }
.btn--velke { min-height: 3.5rem; padding: 0 var(--s-6); font-size: 1.0625rem; }

.sipka { display: inline-flex; align-items: center; min-height: 2.75rem; }
.sipka::after {
  content: ""; display: inline-block; width: 0.55em; height: 0.55em; margin-left: 0.4em;
  border-top: 2px solid currentColor; border-right: 2px solid currentColor;
  transform: translateY(-0.04em) rotate(45deg);
  transition: transform var(--t-rychle) var(--ease);
}
.sipka:hover::after { transform: translate(0.15em, -0.04em) rotate(45deg); }

.hlavicka {
  position: sticky; top: 0; z-index: 50;
  background: var(--vapno);
  border-bottom: 1px solid var(--cara);
}
.hlavicka__vnitrek {
  display: flex; align-items: center; gap: var(--s-1);
  min-height: var(--vyska-hlavicky);
}
.wordmark {
  display: inline-flex; align-items: center; gap: var(--s-3);
  margin-right: auto;
  font-family: var(--font-nadpis); font-size: 1.3125rem; line-height: 1;
  color: var(--oliva-tmava); text-decoration: none; min-height: 2.75rem; white-space: nowrap;
}
.wordmark:hover { color: var(--oliva-tmava); text-decoration: none; }
.wordmark svg { width: 1.5rem; height: 1.75rem; flex: none; }
.hlavicka .btn { padding: 0 var(--s-4); font-size: 0.9375rem; min-height: 2.75rem; }
@media (min-width: 30em) {
  .wordmark { font-size: 1.5rem; gap: var(--s-3); }
  .wordmark svg { width: 1.75rem; height: 2rem; }
  .hlavicka .btn { padding: 0 var(--s-5); font-size: 1rem; min-height: 3rem; }
}

.menu-mobil { position: relative; }
.menu-mobil > summary {
  list-style: none; cursor: pointer;
  display: inline-flex; align-items: center; gap: var(--s-2);
  min-height: 2.75rem; padding: 0 var(--s-2);
  font-weight: 600; font-size: var(--fs-male); color: var(--oliva-tmava);
  border-radius: var(--radius);
}
.menu-mobil > summary::-webkit-details-marker { display: none; }
.menu-mobil > summary::after {
  content: ""; width: 0.5rem; height: 0.5rem;
  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: translateY(-0.15rem) rotate(45deg);
  transition: transform var(--t-rychle) var(--ease);
}
.menu-mobil[open] > summary::after { transform: translateY(0.1rem) rotate(-135deg); }
.menu-mobil ul {
  position: absolute; right: 0; top: calc(100% + 0.5rem);
  min-width: 14rem; padding: var(--s-2);
  background: var(--papir); border: 1px solid var(--cara); border-radius: var(--radius-velky);
  box-shadow: 0 0.75rem 2rem -0.5rem rgb(47 54 38 / 0.25);
}
.menu-mobil li a {
  display: flex; align-items: center; min-height: 2.75rem; padding: 0 var(--s-4);
  color: var(--text); text-decoration: none; font-weight: 500; border-radius: var(--radius);
}
.menu-mobil li a:hover { background: var(--vapno-stin); color: var(--oliva-tmava); }

.nav-desktop { display: none; }
@media (max-width: 23em) {
  .hlavicka .btn { padding: 0 var(--s-3); font-size: 0.875rem; }
  .wordmark { font-size: 1.125rem; gap: var(--s-2); }
  .menu-mobil > summary { padding: 0 var(--s-1); }
}

@media (min-width: 62em) {
  .menu-mobil { display: none; }
  .nav-desktop { display: flex; gap: var(--s-1); margin-right: var(--s-4); }
  .nav-desktop a {
    display: inline-flex; align-items: center; min-height: 2.75rem; padding: 0 var(--s-3);
    color: var(--text); font-weight: 500; font-size: var(--fs-male); text-decoration: none;
    border-radius: var(--radius);
  }
  .nav-desktop a:hover { color: var(--oliva-tmava); background: var(--vapno-stin); }
}

.hero { padding-top: var(--s-4); }
.hero__foto {
  width: min(100% - 1rem, 75rem);
  margin-inline: auto;
  aspect-ratio: 4 / 3;
  border-radius: var(--radius-velky);
  overflow: hidden;
  background: var(--vapno-stin);
}
.hero__foto img { width: 100%; height: 100%; object-fit: cover; object-position: 42% 55%; }
@media (min-width: 48em) {
  .hero { padding-top: var(--s-5); }
  .hero__foto { aspect-ratio: 11 / 4; width: min(100% - 2rem, 75rem); }
  .hero__foto img { object-position: 50% 58%; }
}
@media (prefers-reduced-motion: no-preference) {
  .hero__foto img { animation: usadit 1400ms var(--ease) both; }
  @keyframes usadit { from { transform: scale(1.06); } to { transform: scale(1); } }
}

.hero__text {
  padding-block: var(--s-7) var(--s-6);
  display: grid; gap: var(--s-5);
}
.hero__text h1 { max-width: 15ch; font-size: clamp(2.5rem, 1.5rem + 3.6vw, 4.25rem); }
.hero__lead { font-size: 1.1875rem; max-width: 34rem; color: var(--text); }
.hero__akce { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-4) var(--s-5); margin-top: var(--s-5); }
@media (min-width: 62em) {
  .hero__text {
    grid-template-columns: minmax(0, 8fr) minmax(0, 5fr);
    align-items: end; column-gap: var(--s-7);
    padding-block: var(--s-6) var(--s-5);
  }
  .hero__text h1 { max-width: 20ch; font-size: clamp(3rem, 1.5rem + 2.4vw, 3.75rem); }
  .hero__akce { margin-top: var(--s-5); }
}

.fakta {
  display: grid; grid-template-columns: 1fr 1fr;
  border-top: 1px solid var(--hlina);
}
.fakta li {
  padding: var(--s-4) var(--s-3) var(--s-4) 0;
  font-weight: 600; color: var(--oliva-tmava); line-height: 1.3;
}
.fakta li:nth-child(n+3) { border-top: 1px solid var(--cara); }
@media (min-width: 48em) {
  .fakta { grid-template-columns: repeat(4, 1fr); }
  .fakta li, .fakta li:nth-child(n+3) { border-top: 0; padding-block: var(--s-5); }
  .fakta li + li { padding-left: var(--s-5); border-left: 1px solid var(--cara); }
}

.sekce { padding-block: var(--sekce); }
.sekce--stin { background: var(--vapno-stin); }
.sekce--tmava { background: var(--oliva-tmava); color: var(--oliva-lehka); }
.sekce--tmava h2, .sekce--tmava h3 { color: var(--vapno); }
.sekce--tmava a { color: var(--vapno); }
.sekce--tmava a:hover { color: #fff; }

.sekce__uvod { max-width: var(--uzky); margin-bottom: var(--s-7); }
.sekce__uvod h2 { margin-bottom: var(--s-4); }
.sekce__uvod p { color: var(--text-tlumeny); font-size: 1.125rem; }
.sekce--tmava .sekce__uvod p { color: var(--oliva-lehka); }

.misto { display: grid; gap: var(--s-7); align-items: center; }
.misto__foto { border-radius: var(--radius-velky); overflow: hidden; aspect-ratio: 4 / 3; }
.misto__foto img { width: 100%; height: 100%; object-fit: cover; object-position: 55% 50%; }
.misto h2 { margin-bottom: var(--s-5); }
.misto p { max-width: 36rem; }
.misto__seznam { margin-top: var(--s-5); display: grid; gap: var(--s-2); }
@media (min-width: 62em) {
  .misto { grid-template-columns: 1fr 1fr; gap: var(--s-9); }
  .misto__foto { aspect-ratio: 5 / 6; order: 2; }
}

.oblouk-seznam li {
  position: relative; padding-left: 1.5rem;
}
.oblouk-seznam li::before {
  content: ""; position: absolute; left: 0.1rem; top: 0.42em;
  width: 0.6rem; height: 0.8rem; background: var(--oliva);
  border-radius: 0.3rem 0.3rem 0.08rem 0.08rem;
}
.tmava .oblouk-seznam li::before, .sekce--tmava .oblouk-seznam li::before { background: var(--oliva-lehka); }

.apartmany { display: grid; gap: var(--s-9); }
.apartman { display: grid; gap: var(--s-6); }
.apartman__galerie { display: grid; gap: var(--s-2); align-content: start; }
.apartman__hlavni, .nahled {
  display: block; position: relative; overflow: hidden; border-radius: var(--radius-velky);
  background: var(--vapno-stin); cursor: zoom-in;
}
.apartman__hlavni { aspect-ratio: 16 / 10; }
.apartman__hlavni img, .nahled img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform var(--t-pomale) var(--ease);
}
.apartman__hlavni:hover img, .nahled:hover img { transform: scale(1.03); }
.apartman__nahledy { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s-2); }
.nahled { aspect-ratio: 4 / 3; border-radius: var(--radius); }

.vice-fotek { margin-top: var(--s-1); }
.vice-fotek > summary {
  list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: var(--s-2);
  min-height: 2.75rem; font-weight: 600; font-size: var(--fs-male); color: var(--obloha-text);
  text-decoration: underline; text-underline-offset: 0.25em; text-decoration-thickness: 1px;
}
.vice-fotek > summary::-webkit-details-marker { display: none; }
.vice-fotek > summary:hover { color: var(--obloha-tmava); }
.vice-fotek > summary::after {
  content: ""; width: 0.45rem; height: 0.45rem;
  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: translateY(-0.12rem) rotate(45deg);
  transition: transform var(--t-rychle) var(--ease);
}
.vice-fotek[open] > summary::after { transform: translateY(0.08rem) rotate(-135deg); }
.vice-fotek__mrizka { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s-2); margin-top: var(--s-2); }

.apartman__text h3 { margin-bottom: var(--s-2); }
.apartman__kapacita { color: var(--hlina-text); font-weight: 600; margin-bottom: var(--s-4); }
.apartman__text > p { max-width: 36rem; }

.zazitek {
  margin-block: var(--s-5);
  padding: var(--s-5);
  background: var(--vapno-stin);
  border-radius: var(--radius-velky);
}
.sekce--stin .zazitek { background: var(--papir); }
.zazitek h4 {
  margin: 0 0 var(--s-3);
  font: 700 1rem/1.3 var(--font-text); color: var(--oliva-tmava);
}
.zazitek ul { display: grid; gap: var(--s-2); }

.vybaveni { display: grid; gap: var(--s-1) var(--s-5); font-size: var(--fs-male); color: var(--text-tlumeny); }
@media (min-width: 30em) { .vybaveni { grid-template-columns: 1fr 1fr; } }

.spolecne {
  margin-top: var(--s-8);
  padding-top: var(--s-6);
  border-top: 1px solid var(--hlina);
  display: grid; gap: var(--s-5);
}
.spolecne h3 { font-size: 1.375rem; }
.spolecne ul { display: grid; gap: var(--s-2) var(--s-6); }
@media (min-width: 40em) { .spolecne ul { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 62em) {
  .spolecne { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); }
  .spolecne ul { grid-template-columns: repeat(3, 1fr); }
}

@media (min-width: 62em) {
  .apartman { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--s-8); align-items: start; }
  .apartman:nth-child(even) { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
  .apartman:nth-child(even) .apartman__galerie { order: 2; }
}

.sklipek { display: grid; gap: var(--s-7); }
.sklipek__text { max-width: 36rem; }
.sklipek__text h2 { margin-bottom: var(--s-5); }
.sklipek__text p { color: var(--oliva-lehka); }
.sklipek__text ul { margin-top: var(--s-5); display: grid; gap: var(--s-2); color: var(--vapno); }
.sklipek__poznamka {
  margin-top: var(--s-5); padding-top: var(--s-4);
  border-top: 1px solid rgb(205 211 189 / 0.35);
  font-size: var(--fs-male);
}
.sklipek__foto { display: grid; gap: var(--s-3); grid-template-columns: 1fr 1fr; }
.sklipek__foto figure { position: relative; margin: 0; }
.sklipek__foto a {
  display: block; overflow: hidden; border-radius: var(--radius-velky); cursor: zoom-in;
  background: var(--oliva);
}
.sklipek__foto img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--t-pomale) var(--ease); }
.sklipek__foto a:hover img { transform: scale(1.03); }
.sklipek__foto figcaption { padding-top: var(--s-2); font-size: var(--fs-male); color: var(--oliva-lehka); }
.sklipek__foto .velka { grid-column: 1 / -1; }
.sklipek__foto .velka a { aspect-ratio: 16 / 9; }
.sklipek__foto figure:not(.velka) a { aspect-ratio: 4 / 3; }
@media (min-width: 62em) {
  .sklipek { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--s-9); align-items: start; }
  .sklipek__text { position: sticky; top: calc(var(--vyska-hlavicky) + var(--s-6)); }
}

.okoli { display: grid; gap: var(--s-7); }
.pruhy {
  border-radius: var(--radius-velky); overflow: hidden;
}
.pruh { background: var(--bg); color: var(--fg); }
.pruh > summary {
  display: flex; align-items: center; justify-content: space-between; gap: var(--s-4);
  min-height: 3.5rem; padding: var(--s-2) var(--s-5);
  font-weight: 600; font-size: 1.0625rem; cursor: pointer; list-style: none;
}
.pruh > summary::-webkit-details-marker { display: none; }
.pruh > summary::after {
  content: ""; flex: none; width: 0.9rem; height: 0.9rem;
  background:
    linear-gradient(currentColor, currentColor) center / 100% 2px no-repeat,
    linear-gradient(currentColor, currentColor) center / 2px 100% no-repeat;
  transition: transform var(--t-stredni) var(--ease);
}
.pruh[open] > summary::after { transform: rotate(45deg); }
.pruh__obsah { padding: var(--s-2) var(--s-5) var(--s-5); max-width: 40rem; }
.pruh__obsah p { margin-bottom: var(--s-3); }
.pruh__vzdalenost { font-weight: 700; }
.pruh a { color: inherit; }
.pruh a:hover { color: inherit; }
.pruh :focus-visible { outline-color: currentColor; outline-offset: -3px; }
.pruh > summary:focus-visible { border-radius: 0; }
.pruh[open] .pruh__obsah { animation: otevrit var(--t-stredni) var(--ease) both; }
@keyframes otevrit { from { opacity: 0; transform: translateY(-0.4rem); } to { opacity: 1; transform: none; } }
.pruh--1 { --bg: var(--bar-1); --fg: var(--text); }
.pruh--2 { --bg: var(--bar-2); --fg: var(--text); }
.pruh--3 { --bg: var(--bar-3); --fg: var(--text); }
.pruh--4 { --bg: var(--bar-4); --fg: #131c2e; }
.pruh--5 { --bg: var(--bar-5); --fg: #fff; }
.pruh--6 { --bg: var(--bar-6); --fg: #fff; }
.pruh--7 { --bg: var(--bar-7); --fg: #fff; }
.okoli .sekce__uvod, .cenik .sekce__uvod, .faq .sekce__uvod { margin-bottom: 0; }
.cenik > div > .sekce__uvod { margin-bottom: var(--s-5); }

@media (min-width: 62em) {
  .okoli { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: var(--s-9); align-items: start; }
  .okoli .sekce__uvod { margin-bottom: 0; }
}

.hodnoceni {
  display: grid; gap: var(--s-5); margin-bottom: var(--s-7);
  padding-bottom: var(--s-6); border-bottom: 1px solid var(--hlina);
}
.hodnoceni__radek { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--s-2) var(--s-4); }
.hodnoceni__cislo { font-family: var(--font-nadpis); font-size: var(--fs-h1); line-height: 1; color: var(--oliva-tmava); }
.hodnoceni__cislo small { font-size: 1.75rem; color: var(--text-tlumeny); }
.hodnoceni__popis { font-size: 1.125rem; max-width: 22rem; }
.hodnoceni__popis strong { display: block; color: var(--oliva-tmava); }
.dilci { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--s-3) var(--s-5); font-size: var(--fs-male); }
.dilci div { display: flex; justify-content: space-between; gap: var(--s-3); padding-bottom: var(--s-2); border-bottom: 1px solid var(--cara); }
.dilci dt { color: var(--text-tlumeny); }
.dilci dd { font-weight: 700; font-variant-numeric: tabular-nums; color: var(--oliva-tmava); }
@media (min-width: 62em) {
  .hodnoceni { grid-template-columns: auto 1fr; align-items: end; column-gap: var(--s-9); }
  .dilci { grid-template-columns: repeat(3, 1fr); }
}

.citaty { display: grid; gap: var(--s-4); align-items: start; }
.citat {
  display: flex; flex-direction: column; gap: var(--s-4);
  padding: var(--s-5); background: var(--papir); border-radius: var(--radius-velky);
}
.citat blockquote p { font-size: 1.0625rem; line-height: 1.55; color: var(--text); }
.citat figcaption { font-size: var(--fs-male); color: var(--text-tlumeny); }
.citat figcaption strong { color: var(--oliva-tmava); font-weight: 700; }
@media (min-width: 40em) { .citaty { grid-template-columns: 1fr 1fr; } }
@media (min-width: 75em) { .citaty { grid-template-columns: repeat(4, 1fr); } }
.recenze-dalsi { margin-top: var(--s-6); display: flex; flex-wrap: wrap; gap: var(--s-3) var(--s-6); font-size: var(--fs-male); }

.cenik { display: grid; gap: var(--s-7); }
.cenik table { width: 100%; border-collapse: collapse; }
.cenik caption { text-align: left; padding-bottom: var(--s-4); font-weight: 600; color: var(--text-tlumeny); }
.cenik th, .cenik td { padding: var(--s-4) 0; vertical-align: top; border-top: 1px solid var(--cara); text-align: left; }
.cenik tbody tr:last-child th, .cenik tbody tr:last-child td { border-bottom: 1px solid var(--cara); }
.cenik th { font-weight: 600; padding-right: var(--s-4); color: var(--oliva-tmava); }
.cenik th small { display: block; margin-top: var(--s-1); font-weight: 400; font-size: var(--fs-male); color: var(--text-tlumeny); }
.cenik td { text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; white-space: nowrap; }
.cenik td small { display: block; font-weight: 400; font-size: var(--fs-male); color: var(--text-tlumeny); }
.cenik__bokem { max-width: 28rem; }
.cenik__bokem p { color: var(--text-tlumeny); }
.cenik__poznamka {
  margin-top: var(--s-5); padding: var(--s-5); background: var(--vapno-stin); border-radius: var(--radius-velky);
  font-size: var(--fs-male);
}
@media (min-width: 62em) {
  .cenik { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: var(--s-9); align-items: start; }
  .cenik .sekce__uvod { margin-bottom: 0; }
}

.faq { display: grid; gap: var(--s-7); }
.otazka { border-bottom: 1px solid var(--hlina); }
.otazka:first-child { border-top: 1px solid var(--hlina); }
.otazka > summary {
  display: flex; align-items: center; justify-content: space-between; gap: var(--s-4);
  min-height: 3.5rem; padding: var(--s-3) 0;
  font-weight: 600; font-size: 1.0625rem; color: var(--oliva-tmava); cursor: pointer; list-style: none;
}
.otazka > summary::-webkit-details-marker { display: none; }
.otazka > summary::after {
  content: ""; flex: none; width: 0.9rem; height: 0.9rem; color: var(--oliva);
  background:
    linear-gradient(currentColor, currentColor) center / 100% 2px no-repeat,
    linear-gradient(currentColor, currentColor) center / 2px 100% no-repeat;
  transition: transform var(--t-stredni) var(--ease);
}
.otazka[open] > summary::after { transform: rotate(45deg); }
.otazka__odpoved { padding: 0 0 var(--s-5); max-width: 38rem; color: var(--text); }
.otazka__odpoved p { margin-bottom: var(--s-3); }
.otazka[open] .otazka__odpoved { animation: otevrit var(--t-stredni) var(--ease) both; }
@media (min-width: 62em) {
  .faq { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: var(--s-9); align-items: start; }
  .faq .sekce__uvod { margin-bottom: 0; }
}

.kontakt { display: grid; gap: var(--s-8); }
.kontakt h2 { margin-bottom: var(--s-5); }
.kontakt address { font-style: normal; font-size: 1.1875rem; color: var(--vapno); margin-bottom: var(--s-5); line-height: 1.5; }
.kontakt__gps { font-size: var(--fs-male); margin-bottom: var(--s-6); }
.kanaly { display: grid; gap: var(--s-2); }
.kanaly a {
  display: flex; align-items: center; justify-content: space-between; gap: var(--s-4);
  min-height: 3.75rem; padding: var(--s-3) var(--s-5);
  border: 1px solid rgb(205 211 189 / 0.45); border-radius: var(--radius-velky);
  color: var(--vapno); text-decoration: none; font-weight: 600;
  transition: background-color var(--t-rychle) var(--ease), border-color var(--t-rychle) var(--ease);
}
.kanaly a:hover { background: rgb(243 244 238 / 0.08); border-color: var(--vapno); color: #fff; }
.kanaly a small { display: block; font-weight: 400; font-size: var(--fs-male); color: var(--oliva-lehka); }
.kanaly a::after {
  content: ""; flex: none; width: 0.6rem; height: 0.6rem;
  border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg);
}
.kontakt__odkazy { margin-top: var(--s-5); display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-5); font-size: var(--fs-male); }
.kontakt__odkazy a { display: inline-flex; align-items: center; min-height: 2.75rem; }

.kontakt > * { min-width: 0; }
.mapa {
  position: relative; aspect-ratio: 4 / 3;
  border-radius: var(--radius-velky); overflow: hidden;
  background: var(--oliva); display: grid; place-items: center; text-align: center;
  padding: var(--s-5);
}
.mapa iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.mapa__obal { display: grid; gap: var(--s-4); justify-items: center; max-width: 22rem; }
.mapa__obal[hidden] { display: none; }
.mapa__obal svg { width: 2.5rem; height: 3rem; color: var(--oliva-lehka); }
.mapa__adresa { font-family: var(--font-nadpis); font-size: 1.375rem; line-height: 1.25; color: var(--vapno); }
.mapa__obal p { margin: 0; font-size: var(--fs-male); color: var(--oliva-lehka); }
.mapa .btn { background: var(--vapno); color: var(--oliva-tmava); }
.mapa .btn:hover { background: #fff; color: var(--oliva-tmava); }
.mapa .btn--js { display: none; }
.js .mapa .btn--js { display: inline-flex; }
.js .mapa .mapa__bez-js { display: none; }
.mapa .js-poznamka { display: none; }
.js .mapa .js-poznamka { display: block; }
@media (min-width: 62em) {
  .kontakt { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: var(--s-9); align-items: stretch; }
  .mapa { aspect-ratio: auto; min-height: 22rem; align-self: start; }
}

.paticka {
  margin-top: var(--s-9); padding-top: var(--s-5);
  border-top: 1px solid rgb(205 211 189 / 0.3);
  font-size: var(--fs-male); color: var(--oliva-lehka);
  display: grid; gap: var(--s-2);
}
.paticka strong { color: var(--vapno); font-weight: 600; }

dialog { padding: 0; border: 0; color: var(--text); }
dialog::backdrop { background: rgb(33 38 26 / 0.7); }

.okno {
  width: min(100% - 2rem, 30rem); margin: auto;
  background: var(--vapno); border-radius: var(--radius-velky);
  padding: var(--s-6);
  box-shadow: 0 1.5rem 3rem -1rem rgb(0 0 0 / 0.4);
}
.okno h2 { font-size: 1.75rem; margin-bottom: var(--s-2); }
.okno > p { color: var(--text-tlumeny); margin-bottom: var(--s-5); }
.okno__zavrit {
  position: absolute; top: var(--s-3); right: var(--s-3);
  width: 2.75rem; height: 2.75rem; display: grid; place-items: center;
  background: transparent; border: 0; border-radius: 50%; cursor: pointer; color: var(--oliva-tmava);
}
.okno__zavrit:hover { background: var(--vapno-stin); }
.okno__zavrit svg { width: 1.1rem; height: 1.1rem; }
.okno .kanaly a {
  color: var(--oliva-tmava); border-color: var(--cara); background: var(--papir);
}
.okno .kanaly a:hover { background: var(--vapno-stin); border-color: var(--oliva); color: var(--oliva-tmava); }
.okno .kanaly a small { color: var(--text-tlumeny); }
@media (prefers-reduced-motion: no-preference) {
  dialog[open] { animation: okno-vstup var(--t-stredni) var(--ease) both; }
  dialog[open]::backdrop { animation: zavoj var(--t-stredni) var(--ease) both; }
  @keyframes okno-vstup { from { opacity: 0; transform: translateY(0.75rem); } to { opacity: 1; transform: none; } }
  @keyframes zavoj { from { opacity: 0; } to { opacity: 1; } }
}

.lightbox {
  width: 100%; max-width: none; height: 100%; max-height: none; margin: 0;
  background: transparent; color: var(--vapno);
}
.lightbox::backdrop { background: rgb(21 25 16 / 0.92); }
.lightbox__obal { height: 100vh; height: 100dvh; display: grid; grid-template-rows: 1fr auto; padding: var(--s-4); gap: var(--s-3); }
.lightbox__obraz { min-height: 0; display: grid; place-items: center; }
.lightbox__obraz img { max-width: 100%; max-height: calc(100vh - 6.5rem); max-height: calc(100dvh - 6.5rem); width: auto; height: auto; object-fit: contain; border-radius: var(--radius); }
.lightbox__pata { display: flex; align-items: center; justify-content: space-between; gap: var(--s-4); font-size: var(--fs-male); }
.lightbox__pata p { margin: 0; max-width: 40rem; }
.lightbox__ovladani { display: flex; gap: var(--s-2); }
.lb-btn {
  width: 2.75rem; height: 2.75rem; display: grid; place-items: center;
  background: rgb(243 244 238 / 0.12); color: var(--vapno); border: 0; border-radius: 50%; cursor: pointer;
  transition: background-color var(--t-rychle) var(--ease);
}
.lb-btn:hover { background: rgb(243 244 238 / 0.25); }
.lb-btn svg { width: 1.1rem; height: 1.1rem; }
.lightbox :focus-visible { outline-color: var(--vapno); }
.lightbox__zavrit { position: absolute; top: var(--s-3); right: var(--s-3); }

.btn--okraj {
  background: transparent; color: var(--oliva-tmava);
  border: 2px solid var(--oliva-tmava);
}
.btn--okraj:hover { background: var(--vapno-stin); color: var(--oliva-tmava); }
.btn--okraj { gap: var(--s-2); }
.btn--okraj svg { width: 1.125rem; height: 1.125rem; flex: none; }
.hero__akce .btn--velke { padding: 0 var(--s-5); }
@media (max-width: 29.99em) {
  .hero__akce .btn { width: 100%; }
}
.nav-desktop a[aria-current="location"] {
  color: var(--oliva-tmava);
  text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.4em;
}
.menu-mobil li a[aria-current="location"] { background: var(--vapno-stin); color: var(--oliva-tmava); font-weight: 700; }

.uctenka-obal {
  max-width: 31rem;
  filter: drop-shadow(0 1px 0 rgb(47 54 38 / 0.12)) drop-shadow(0 0.875rem 0.75rem rgb(47 54 38 / 0.14));
}
.uctenka {
  background: var(--papir);
  padding: var(--s-5) var(--s-5) var(--s-7);
  -webkit-mask: conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) 50% / 1.125rem 100%;
          mask: conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) 50% / 1.125rem 100%;
}
.cenik .uctenka caption {
  text-align: center; padding: 0 0 var(--s-4); margin-bottom: var(--s-2);
  border-bottom: 2px dashed var(--hlina);
  font-family: var(--font-nadpis); font-size: 1.375rem; color: var(--oliva-tmava);
}
.cenik .uctenka th, .cenik .uctenka td {
  border-top: 0; border-bottom: 2px dotted rgb(138 128 111 / 0.65);
  padding: var(--s-3) 0;
}
.cenik .uctenka tbody tr:last-child th, .cenik .uctenka tbody tr:last-child td { border-bottom: 0; }
.uctenka__dno {
  margin-top: var(--s-2); padding-top: var(--s-4);
  border-top: 2px dashed var(--hlina);
  text-align: center; font-weight: 700; color: var(--oliva-tmava);
}

.pravitko-blok { display: grid; gap: var(--s-7); margin-top: var(--s-9); align-items: center; }
.cedule {
  position: relative; justify-self: start; max-width: 22rem;
  padding: var(--s-6) var(--s-6);
  background: var(--oliva-tmava); color: var(--vapno);
  border-radius: var(--radius-velky);
  transform: rotate(-1.2deg);
}
.cedule::before {
  content: ""; position: absolute; inset: 0.5rem;
  border: 2px solid var(--vapno); border-radius: var(--radius);
  pointer-events: none;
}
.cedule__nadpis { margin: 0 0 var(--s-2); font-family: var(--font-nadpis); font-size: 1.75rem; line-height: 1.1; color: var(--vapno); }
.cedule__text { margin: 0; font-size: var(--fs-male); color: var(--oliva-lehka); }
.pravitko h3 { font-size: 1.375rem; margin-bottom: var(--s-1); }
.pravitko__pozn { margin-bottom: var(--s-5); font-size: var(--fs-male); color: var(--text-tlumeny); }
.pravitko__osa { position: relative; height: 1.25rem; font-size: 0.8125rem; color: var(--text-tlumeny); font-variant-numeric: tabular-nums; }
.pravitko__osa span { position: absolute; top: 0; white-space: nowrap; transform: translateX(-50%); }
.pravitko__osa span:nth-child(1) { left: 0; transform: none; }
.pravitko__osa span:nth-child(2) { left: 25%; }
.pravitko__osa span:nth-child(3) { left: 50%; }
.pravitko__osa span:nth-child(4) { left: 75%; }
.pravitko__osa span:nth-child(5) { left: 100%; transform: translateX(-100%); }
.pravitko__seznam li {
  display: grid; grid-template-columns: 1fr auto; align-items: baseline; column-gap: var(--s-4);
  padding-top: var(--s-3);
}
.pravitko__misto { font-weight: 600; color: var(--oliva-tmava); }
.pravitko__km { font-variant-numeric: tabular-nums; font-weight: 600; color: var(--text-tlumeny); }
.pravitko__tyc {
  grid-column: 1 / -1; position: relative; height: 1rem; margin-top: var(--s-1);
  border-right: 1px solid var(--hlina);
  background:
    linear-gradient(var(--hlina), var(--hlina)) bottom / 100% 1px no-repeat,
    repeating-linear-gradient(90deg, var(--hlina) 0 1px, transparent 1px 25%) bottom / 100% 0.5rem no-repeat;
}
.pravitko__tyc::before {
  content: ""; position: absolute; left: 0; bottom: 0; height: 0.375rem;
  width: calc(var(--km) / 20 * 100%); background: var(--oliva);
}
.pravitko__tyc::after {
  content: ""; position: absolute; bottom: 0; left: calc(var(--km) / 20 * 100%); transform: translateX(-100%);
  width: 0.75rem; height: 1rem; background: var(--oliva); border-radius: 0.375rem 0.375rem 0 0;
}
@media (min-width: 62em) {
  .pravitko-blok { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: var(--s-9); align-items: start; }
  .cedule { margin-top: var(--s-4); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}

@media print {
  .hlavicka, .mapa, dialog { display: none; }
}
