/* Vila Zapomenutý ráj – návrh webu (Webla)
   Paleta z fotek vily: Les nad vilou (večerní plochy), Šambrána (akce), Krajka a Len (denní plochy), Pískovec, Inkoust.
   Titulky: Spectral 300, text: Ysabeau Office. Jediný motiv: světelný řetěz ze zahrady vily (úvod a svatby). */
:root {
  --les: #25302a;
  --les-tmava: #1d2621;
  --krajka: #f6f2ea;
  --len: #ece6da;
  --krajka-85: rgb(246 242 234 / 0.86);
  --krajka-60: rgb(246 242 234 / 0.64);
  --krajka-20: rgb(246 242 234 / 0.2);
  --krajka-10: rgb(246 242 234 / 0.1);
  --sambrana: #d27470;
  --sambrana-hover: #db8480;
  --sambrana-stisk: #be605c;
  --sambrana-svetla: #f2d3cf;
  --piskovec: #c4ae82;
  --inkoust: #1b201c;
  --sedozelena: #4b544e;
  --inkoust-15: rgb(27 32 28 / 0.15);
  --inkoust-08: rgb(27 32 28 / 0.07);

  --titulky: "Spectral", "Iowan Old Style", serif;
  --text: "Ysabeau Office", "Gill Sans", sans-serif;

  --okraj: 16px;
  --sirka: 1240px;
  --levy: max(var(--okraj), calc((100% - var(--sirka)) / 2));
  --lista-v: 44px;
  --hlavicka-v: 60px;
  --spodni-v: 64px;
  --r: 14px;
  --r-velky: 22px;
  --mezera-sekce: 64px;
  --krivka: cubic-bezier(0.22, 1, 0.36, 1);
}

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-bottom: 88px; }
html[data-pohyb="vyp"] { scroll-behavior: auto; }
body {
  margin: 0; background: var(--les); color: var(--krajka);
  font-family: var(--text); font-size: 1.0625rem; line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  padding-bottom: calc(var(--spodni-v) + env(safe-area-inset-bottom));
}
img { display: block; max-width: 100%; height: auto; }
picture { display: block; }
a { color: inherit; }
p { margin: 0; }
figure { margin: 0; }
:focus-visible { outline: 2px solid var(--sambrana); outline-offset: 3px; }
.preskocit { position: absolute; left: 8px; top: -60px; z-index: 60; padding: 10px 14px; background: var(--krajka); color: var(--inkoust); border-radius: 8px; }
.preskocit:focus { top: 8px; }
.skryte { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skryte input { font-size: 16px; }

/* ---------- lišta návrhu ---------- */
.lista {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  min-height: var(--lista-v); padding: 0 var(--levy);
  background: var(--les-tmava); border-bottom: 1px solid var(--krajka-10);
  font-size: 0.8125rem; line-height: 1.25; color: var(--krajka-85);
}
.lista__kdo { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lista__kdo b { font-weight: 600; color: var(--krajka); }
.lista__kdo span { color: var(--krajka-60); }
.lista__prepinace { display: flex; gap: 4px; flex: none; }
.prepinac { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 6px 0 8px; border: 0; background: none; color: inherit; font: inherit; cursor: pointer; }
.prepinac__jezdec { position: relative; width: 30px; height: 16px; border-radius: 999px; background: var(--krajka-20); transition: background-color 0.25s ease; }
.prepinac__jezdec::after { content: ""; position: absolute; top: 2px; left: 2px; width: 12px; height: 12px; border-radius: 50%; background: var(--krajka); transition: transform 0.25s var(--krivka); }
.prepinac[aria-pressed="true"] .prepinac__jezdec { background: var(--sambrana); }
.prepinac[aria-pressed="true"] .prepinac__jezdec::after { transform: translateX(14px); background: var(--inkoust); }
@media (max-width: 599px) { .lista__kdo span { display: none; } }

/* ---------- poznámky a panel (bez zapnutí neviditelné, i bez JS) ---------- */
.pozn, .potrebuji { display: none; }
html.poznamky-zapnute .pozn { display: inline; }
html.poznamky-zapnute .potrebuji { display: block; }
.pozn {
  position: relative; margin-left: 0.3em; padding: 0.05em 0.45em; border-radius: 4px;
  background: var(--piskovec); color: var(--inkoust);
  font: 600 0.6875rem/1.5 var(--text); letter-spacing: 0.02em; vertical-align: 0.15em;
  white-space: nowrap; cursor: help;
}
.pozn__text {
  position: absolute; left: 0; top: calc(100% + 6px); z-index: 30; display: none;
  width: min(19rem, 78vw); padding: 10px 12px; border-radius: 10px;
  background: var(--inkoust); color: var(--krajka);
  font: 400 0.8125rem/1.45 var(--text); letter-spacing: 0; white-space: normal; text-align: left;
  box-shadow: 0 12px 30px rgb(0 0 0 / 0.25);
}
.pozn:hover .pozn__text, .pozn:focus .pozn__text, .pozn.je-otevrena .pozn__text { display: block; }
.potrebuji { background: var(--krajka); color: var(--inkoust); border-bottom: 1px solid var(--inkoust-15); }
.potrebuji__vnitrek { padding: 20px var(--levy) 22px; }
.potrebuji h2 { margin: 0 0 4px; font: 300 1.625rem/1.15 var(--titulky); }
.potrebuji__uvod { color: var(--sedozelena); font-size: 0.9375rem; margin-bottom: 10px; }
.potrebuji ol { margin: 0; padding-left: 1.3rem; font-size: 0.9375rem; max-width: 70rem; }
.potrebuji li + li { margin-top: 5px; }
.potrebuji a { text-decoration-color: var(--sambrana); text-underline-offset: 3px; }

/* ---------- hlavička ---------- */
.hlavicka {
  position: relative; z-index: 35;
  display: flex; align-items: center; gap: 16px;
  min-height: var(--hlavicka-v); padding: 0 var(--levy); background: var(--les);
}
.znak { display: grid; align-content: center; min-height: 44px; text-decoration: none; line-height: 1.1; margin-right: auto; }
.znak__jmeno { font: 300 1.4375rem/1.05 var(--titulky); letter-spacing: -0.005em; }
.znak__pod { font-size: 0.75rem; color: var(--piskovec); margin-top: 3px; }
.menu { display: none; }
.menu a { text-decoration: none; color: var(--krajka-85); padding: 10px 2px; transition: color 0.2s ease; }
.menu a:hover { color: var(--krajka); }
.menu-tlacitko {
  min-height: 44px; min-width: 44px; padding: 0 16px; border: 1px solid var(--krajka-20); border-radius: 999px;
  background: none; color: var(--krajka); font: 600 0.9375rem var(--text); cursor: pointer;
}
.hlavicka .hlavicka__poptat { display: none; }
.hlavicka.je-otevrena .menu {
  display: grid; position: absolute; left: 0; right: 0; top: 100%;
  padding: 6px var(--okraj) 16px; background: var(--les-tmava);
}
.hlavicka.je-otevrena .menu a { min-height: 48px; display: flex; align-items: center; font-size: 1.0625rem; border-bottom: 1px solid var(--krajka-10); }

/* ---------- tlačítka a odkazy ---------- */
.tlacitko {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 48px; padding: 0 24px; border: 0; border-radius: 999px;
  background: var(--sambrana); color: var(--inkoust); cursor: pointer;
  font: 600 1rem/1.1 var(--text); text-decoration: none; white-space: nowrap;
  transition: background-color 0.2s ease, transform 0.2s var(--krivka);
}
.tlacitko:hover { background: var(--sambrana-hover); }
.tlacitko:active { background: var(--sambrana-stisk); transform: translateY(1px); }
.tlacitko--male { min-height: 44px; padding: 0 18px; font-size: 0.9375rem; }
.tlacitko--velke { min-height: 56px; padding: 0 32px; font-size: 1.0625rem; }
.tlacitko--obrys { background: none; color: inherit; box-shadow: inset 0 0 0 1.5px currentColor; }
.tlacitko--obrys:hover { background: var(--krajka-10); }
.odkaz-sipka { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; text-decoration: underline; text-decoration-color: var(--sambrana); text-decoration-thickness: 2px; text-underline-offset: 5px; }
.kulate { width: 44px; height: 44px; border: 0; border-radius: 50%; background: #fff; box-shadow: inset 0 0 0 1px var(--inkoust-15); color: var(--inkoust); font: 400 1.5rem/1 var(--text); cursor: pointer; }
.kulate[aria-disabled="true"] { opacity: 0.35; cursor: default; }

/* ---------- společné prvky sekcí ---------- */
.nadtitulek { font-size: 0.9375rem; color: var(--piskovec); margin-bottom: 10px; }
.titulek-sekce {
  margin: 0; font: 300 clamp(2rem, 1.35rem + 2.5vw, 3.375rem)/1.07 var(--titulky);
  letter-spacing: -0.012em; text-wrap: balance; max-width: 17em;
}
.citat blockquote { margin: 0; }
.citat blockquote p { font: 300 1.3125rem/1.4 var(--titulky); text-wrap: pretty; }
.citat figcaption { margin-top: 10px; font-size: 0.875rem; color: var(--krajka-60); }
.citat--maly blockquote p { font-size: 1.125rem; }

/* ---------- motiv: světelný řetěz ze zahrady vily ---------- */
.retez { display: block; width: min(100%, 320px); height: auto; overflow: visible; margin: 0 0 18px -2px; }
.retez__drat, .retez line { fill: none; stroke: var(--piskovec); stroke-width: 1.25px; vector-effect: non-scaling-stroke; }
.retez circle { r: 7px; fill: var(--krajka); stroke: var(--krajka); stroke-width: 1.25px; vector-effect: non-scaling-stroke; }
html.js .retez:not(.je-rozsviceno) circle { fill: transparent; stroke: var(--piskovec); }
html.js[data-pohyb="zap"] .retez circle { transition: fill 0.2s ease, stroke 0.2s ease; }
.retez circle:nth-of-type(2) { transition-delay: 0.05s; }
.retez circle:nth-of-type(3) { transition-delay: 0.1s; }
.retez circle:nth-of-type(4) { transition-delay: 0.15s; }
.retez circle:nth-of-type(5) { transition-delay: 0.2s; }
.retez circle:nth-of-type(6) { transition-delay: 0.25s; }
.retez circle:nth-of-type(7) { transition-delay: 0.3s; }

/* ---------- úvod ---------- */
.uvod { display: flex; flex-direction: column; background: var(--les); }
.uvod__foto { order: -1; }
.uvod__foto img { width: 100%; height: clamp(230px, 40svh, 380px); object-fit: cover; object-position: var(--pozice, 50% 50%); }
.uvod__text { padding: 18px var(--okraj) 28px; }
.retez--uvod { width: min(56%, 230px); margin-bottom: 10px; }
.uvod__misto { margin: 0 0 8px; font-size: 0.9375rem; line-height: 1.35; color: var(--piskovec); }
.uvod__titulek { margin: 0; font: 300 clamp(2.125rem, 1.2rem + 4.2vw, 5rem)/1.04 var(--titulky); letter-spacing: -0.018em; text-wrap: balance; }
.uvod__perex { margin-top: 12px; color: var(--krajka-85); max-width: 33rem; }
.uvod__akce { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; margin-top: 18px; }
.uvod__hodnoceni { display: inline-flex; align-items: center; gap: 4px; min-height: 44px; font-size: 0.9375rem; color: var(--krajka-60); text-decoration: none; }
.uvod__znamka { font: 300 1.5rem/1 var(--titulky); color: var(--krajka); margin-right: 2px; }

/* ---------- Kolik hostů bude spát? ---------- */
.hoste { background: var(--len); color: var(--inkoust); }
.hoste__vnitrek { padding: 26px var(--levy); display: grid; gap: 14px; }
.hoste__titulek { margin: 0; font: 300 1.75rem/1.1 var(--titulky); letter-spacing: -0.01em; }
.hoste__pod { margin-top: 4px; color: var(--sedozelena); font-size: 0.9375rem; }
.hoste__volby { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; }
.hoste__volby button {
  min-height: 48px; border: 0; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--inkoust-15);
  background: #fff; color: var(--inkoust); cursor: pointer;
  font: 300 1.375rem/1 var(--titulky); font-variant-numeric: lining-nums;
  transition: background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}
.hoste__volby button:hover { box-shadow: inset 0 0 0 1px var(--inkoust); }
.hoste__volby button[aria-checked="true"] { background: var(--les); color: var(--krajka); box-shadow: none; }
/* telefon: sloupcový graf, jméno vlevo, délka podle lůžek */
.hoste__pruh { display: grid; gap: 5px; }
.hoste__pruh span { display: grid; grid-template-columns: 8.75rem 1fr; align-items: center; gap: 8px; min-width: 0; }
.hoste__pruh span i { grid-row: 1; grid-column: 1; font-style: normal; font-size: 0.875rem; color: var(--sedozelena); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hoste__pruh span b {
  grid-row: 1; grid-column: 2; justify-self: start; display: grid; place-items: center;
  width: max(2.25rem, calc(var(--m) / 35 * 100%)); height: 24px; border-radius: 5px;
  background: var(--inkoust-08); color: var(--sedozelena); font: 600 0.8125rem/1 var(--text); font-variant-numeric: tabular-nums;
  transition: background-color 0.35s ease, color 0.35s ease;
}
.hoste__pruh span.je-vybrany i { color: var(--inkoust); font-weight: 600; }
.hoste__pruh span.je-vybrany b { background: var(--sambrana); color: var(--inkoust); }
.hoste__vysledek { display: grid; gap: 2px; }
.hoste__vysledek p { font-size: 1rem; line-height: 1.5; color: var(--sedozelena); }
.hoste__vysledek b { color: var(--inkoust); font-weight: 600; }

/* ---------- vila (den) ---------- */
.vila { background: var(--krajka); color: var(--inkoust); padding: var(--mezera-sekce) var(--levy); }
.vila .nadtitulek, .domy .nadtitulek, .recenze .nadtitulek, .okoli .nadtitulek { color: var(--sedozelena); }
.vila__hlava { display: grid; gap: 24px; }
.vila__perex { margin-top: 16px; color: var(--sedozelena); max-width: 36rem; }
.vila__dum img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: var(--pozice, 50% 50%); border-radius: var(--r); }
.vila__dum figcaption, .svatby__denni figcaption { margin-top: 8px; font-size: 0.875rem; color: var(--sedozelena); }
.spani { margin-top: 36px; padding: 22px 20px 24px; border-radius: var(--r-velky); background: var(--len); display: grid; gap: 22px; }
.spani__soucet { display: flex; align-items: center; gap: 14px; max-width: 26rem; line-height: 1.4; color: var(--sedozelena); }
.spani__cislo { flex: none; font: 300 3.5rem/0.9 var(--titulky); color: var(--inkoust); font-variant-numeric: lining-nums; }
.spani__patra { display: grid; gap: 18px; }
.spani__patro h3 { margin: 0 0 8px; font: 300 1.375rem/1.2 var(--titulky); }
.spani__patro ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.spani__patro li { display: grid; grid-template-columns: 2.25rem 1fr; align-items: baseline; gap: 6px; line-height: 1.4; }
.spani__patro li b { font: 300 1.625rem/1 var(--titulky); color: var(--inkoust); font-variant-numeric: lining-nums; }
.spani__patro li span { color: var(--sedozelena); font-size: 0.9875rem; }
.mozaika {
  display: grid; grid-auto-flow: column; grid-auto-columns: min(78vw, 320px); gap: 14px;
  margin: 32px calc(-1 * var(--okraj)) 0; padding: 0 var(--okraj) 8px; overflow-x: auto;
  overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding: 0 var(--okraj); scrollbar-width: thin;
}
.dlazdice { scroll-snap-align: start; display: grid; grid-template-rows: auto auto; align-content: start; }
.dlazdice img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: var(--pozice, 50% 50%); border-radius: var(--r); }
.dlazdice figcaption { margin-top: 8px; font-size: 0.9375rem; line-height: 1.4; color: var(--sedozelena); }
.dlazdice figcaption b { color: var(--inkoust); font-weight: 600; }
.rada-ovladani { display: flex; align-items: center; justify-content: center; gap: 18px; margin-top: 6px; font-size: 0.9375rem; color: var(--sedozelena); font-variant-numeric: tabular-nums; }
/* text karty, která jen vykukuje zpoza okraje, je skrytý (žádné useknuté kousky slov) */
.mozaika > * figcaption, .domy__rada > * .dum__text { transition: opacity 0.25s ease; }
@media (max-width: 899px) { .mozaika > .je-vedle figcaption { opacity: 0; } }
@media (max-width: 699px) { .domy__rada > .je-vedle .dum__text { opacity: 0; } }
.citat--vila { margin-top: 40px; max-width: 40rem; }
.citat--vila blockquote p { font-size: clamp(1.375rem, 1.1rem + 1vw, 1.875rem); line-height: 1.34; }
.vila .citat figcaption, .domy .citat figcaption, .recenze .citat figcaption, .okoli .citat figcaption { color: var(--sedozelena); }

/* ---------- svatby (večer) ---------- */
.svatby { background: var(--les-tmava); padding: 0 0 var(--mezera-sekce); display: grid; }
.svatby__foto img { width: 100%; height: clamp(260px, 44svh, 360px); object-fit: cover; object-position: var(--pozice, 50% 50%); }
.svatby__text { padding: 30px var(--okraj) 0; }
.retez--svatby { width: min(70%, 300px); }
.svatby__text > p:not(.nadtitulek) { margin-top: 16px; color: var(--krajka-85); max-width: 36rem; }
.fakta { margin: 26px 0 0; display: grid; gap: 18px; max-width: 36rem; }
.fakta div { display: grid; grid-template-columns: 7.5rem 1fr; gap: 14px; align-items: baseline; }
.fakta dt { font: 300 1.5rem/1.1 var(--titulky); color: var(--krajka); font-variant-numeric: lining-nums; }
.fakta dd { margin: 0; color: var(--krajka-85); font-size: 1rem; line-height: 1.5; }
.svatby__dalsi { font-size: 1rem; }
.svatby__dalsi b { color: var(--krajka); font-weight: 600; }
.svatby__text .tlacitko { margin-top: 24px; }
.svatby__denni { margin-top: 22px; max-width: 36rem; }
.svatby__denni img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: var(--pozice, 50% 50%); border-radius: var(--r); }
.svatby__denni figcaption { color: var(--krajka-60); }
.citat--svatby { padding: 32px var(--okraj) 0; max-width: 46rem; }

/* ---------- další domy (den) ---------- */
.domy { background: var(--krajka); color: var(--inkoust); padding: var(--mezera-sekce) 0; }
.domy__hlava { padding: 0 var(--levy); }
.domy__perex { margin-top: 14px; color: var(--sedozelena); max-width: 40rem; }
.domy__skupina { margin-top: 30px; }
.trio { margin: 0 var(--okraj); padding: 20px 20px 22px; border-radius: var(--r-velky); background: var(--len); }
.trio__titulek { margin: 0; font: 300 1.5rem/1.15 var(--titulky); }
.trio__text { margin-top: 8px; color: var(--sedozelena); }
.trio__text b { color: var(--inkoust); }
.trio .citat { margin-top: 14px; }
.domy__rada {
  display: grid; align-items: stretch; grid-auto-flow: column; grid-auto-columns: min(82vw, 340px); gap: 14px;
  margin-top: 18px; padding: 4px var(--okraj) 10px; overflow-x: auto; overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory; scroll-padding: 0 var(--okraj); scrollbar-width: none;
}
.domy__rada::-webkit-scrollbar { display: none; }
.dum { scroll-snap-align: start; display: flex; flex-direction: column; border-radius: var(--r-velky); background: #fff; overflow: hidden; position: relative; }
.dum__foto img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: var(--pozice, 50% 50%); }
.dum__text { display: flex; flex-direction: column; gap: 6px; padding: 16px 18px 18px; flex: 1; }
.dum__kde { font-size: 0.875rem; color: var(--sedozelena); }
.dum__jmeno { margin: 0; font: 300 1.5rem/1.15 var(--titulky); }
.dum__mist { font-size: 0.9375rem; color: var(--sedozelena); }
.dum__mist b { font: 300 1.5rem/1 var(--titulky); color: var(--inkoust); margin-right: 2px; }
.dum__popis { font-size: 0.9875rem; line-height: 1.5; }
.dum__cena { margin-top: auto; padding-top: 8px; font-weight: 600; }
.dum__poptat { align-self: flex-start; display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; text-decoration: underline; text-decoration-color: var(--sambrana); text-decoration-thickness: 2px; text-underline-offset: 5px; }
.dum::after { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 6px; background: var(--sambrana); transform: scaleY(0); transform-origin: top; transition: transform 0.35s var(--krivka); }
.dum.je-ve-vyberu::after { transform: scaleY(1); }
.domy__ovladani { display: flex; align-items: center; justify-content: center; gap: 18px; margin-top: 6px; font-size: 0.9375rem; color: var(--sedozelena); font-variant-numeric: tabular-nums; }

/* ---------- poptávka (večer, nástroj na světlé kartě) ---------- */
.poptavka { background: var(--les); padding: var(--mezera-sekce) 0; }
.poptavka__hlava { padding: 0 var(--levy); }
.poptavka__perex { margin-top: 14px; color: var(--krajka-85); max-width: 42rem; }
.formular {
  margin: 28px var(--okraj) 0; padding: 22px var(--okraj) 26px;
  background: var(--krajka); color: var(--inkoust); border-radius: var(--r-velky);
  display: grid; gap: 22px;
}
.vyber-domu { border: 0; margin: 0; padding: 0; min-width: 0; }
.vyber-domu legend, .pole > span { font-weight: 600; font-size: 0.9375rem; margin-bottom: 8px; padding: 0; }
.vyber-domu__volby { display: flex; flex-wrap: wrap; gap: 8px; }
.volba-domu { position: relative; }
.volba-domu input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.volba-domu span {
  display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 14px; border-radius: 999px;
  background: #fff; box-shadow: inset 0 0 0 1px var(--inkoust-15); font-size: 0.9375rem; color: var(--sedozelena);
  transition: background-color 0.2s ease, color 0.2s ease;
}
.volba-domu b { color: var(--inkoust); font-weight: 600; }
.volba-domu input:checked + span { background: var(--les); color: var(--krajka-85); box-shadow: none; }
.volba-domu input:checked + span b { color: var(--krajka); }
.volba-domu input:focus-visible + span { outline: 2px solid var(--sambrana); outline-offset: 2px; }
.kalendar__lista { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; }
.kalendar__pokyn { font-size: 0.9375rem; color: var(--sedozelena); }
.kalendar__pokyn b { color: var(--inkoust); }
.kalendar__sipky { display: flex; gap: 6px; flex: none; }
.kalendar__sipka { width: 44px; height: 44px; border: 0; border-radius: 50%; background: #fff; box-shadow: inset 0 0 0 1px var(--inkoust-15); color: var(--inkoust); font: 400 1.5rem/1 var(--text); cursor: pointer; }
.kalendar__sipka[aria-disabled="true"] { opacity: 0.35; cursor: default; }
.kalendar__mesice { display: grid; gap: 24px; margin-top: 10px; touch-action: pan-y; }
.mesic__nazev { margin: 0 0 8px; font: 300 1.375rem/1.2 var(--titulky); }
.mesic__dny { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.mesic__hlava { text-align: center; font-size: 0.75rem; color: var(--sedozelena); padding-bottom: 4px; }
.den {
  position: relative; min-height: 44px; border: 0; border-radius: 10px; background: #fff; color: var(--inkoust);
  font: 500 0.9375rem/1 var(--text); font-variant-numeric: tabular-nums; cursor: pointer; padding: 0;
  transition: background-color 0.15s ease, color 0.15s ease;
}
@media (hover: hover) { .den:hover:not(:disabled):not(.je-obsazeno) { box-shadow: inset 0 0 0 1.5px var(--inkoust); } }
.den.je-leto::after { content: ""; position: absolute; left: 50%; bottom: 6px; width: 14px; height: 2px; margin-left: -7px; border-radius: 2px; background: var(--piskovec); }
.den.je-obsazeno { background: transparent; color: rgb(27 32 28 / 0.38); text-decoration: line-through; text-decoration-color: rgb(27 32 28 / 0.38); cursor: not-allowed; }
.den.je-minule { background: transparent; color: rgb(27 32 28 / 0.28); cursor: default; }
.den.je-v-rozsahu { background: var(--sambrana-svetla); }
.den.je-prijezd, .den.je-odjezd { background: var(--sambrana); color: var(--inkoust); font-weight: 700; }
.den.je-prazdny { visibility: hidden; }
.kalendar__legenda { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 14px 0 0; padding: 0; list-style: none; font-size: 0.8125rem; color: var(--sedozelena); }
.kalendar__legenda li { display: inline-flex; align-items: center; gap: 6px; }
.vzor { width: 16px; height: 16px; border-radius: 4px; background: #fff; box-shadow: inset 0 0 0 1px var(--inkoust-15); }
.vzor--obsazeno { background: transparent; box-shadow: none; position: relative; }
.vzor--obsazeno::after { content: ""; position: absolute; left: 1px; right: 1px; top: 7px; height: 1.5px; background: rgb(27 32 28 / 0.45); }
.vzor--vybrano { background: var(--sambrana); box-shadow: none; }
.vzor--leto { background: none; box-shadow: none; position: relative; }
.vzor--leto::after { content: ""; position: absolute; left: 1px; right: 1px; bottom: 3px; height: 2px; border-radius: 2px; background: var(--piskovec); }
.kalendar__bez-js { margin-top: 8px; color: var(--sedozelena); }
.souhrn { padding: 18px 18px 20px; border-radius: var(--r); background: #fff; }
.souhrn__prazdny { color: var(--sedozelena); font-size: 0.9375rem; }
.souhrn__termin { font: 300 1.375rem/1.25 var(--titulky); }
.souhrn__radky { margin: 12px 0 0; padding: 0; list-style: none; display: grid; gap: 6px; font-size: 0.9375rem; }
.souhrn__radky li { display: flex; justify-content: space-between; gap: 12px; }
.souhrn__radky li span:last-child { font-variant-numeric: tabular-nums; white-space: nowrap; font-weight: 600; }
.souhrn__soucet { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--inkoust-15); }
.souhrn__soucet b { font: 300 1.75rem/1 var(--titulky); font-variant-numeric: lining-nums; white-space: nowrap; }
.souhrn__pozn { margin-top: 10px; font-size: 0.8125rem; color: var(--sedozelena); }
.souhrn__varovani { margin-top: 10px; padding: 10px 12px; border-radius: 10px; background: var(--sambrana-svetla); font-size: 0.875rem; }
.pole-mrizka { display: grid; gap: 14px; }
.pole { display: grid; }
.pole input, .pole select, .pole textarea {
  width: 100%; min-height: 48px; padding: 10px 14px; border: 0; border-radius: 12px;
  background: #fff; box-shadow: inset 0 0 0 1px var(--inkoust-15); color: var(--inkoust); font: 400 1rem/1.4 var(--text);
}
.pole textarea { resize: vertical; min-height: 110px; }
.pole input:focus, .pole select:focus, .pole textarea:focus { outline: 2px solid var(--sambrana); outline-offset: 1px; }
.pole i { font-style: normal; font-weight: 400; color: var(--sedozelena); }
.pole--zaskrt { display: flex; align-items: center; gap: 10px; min-height: 44px; font-size: 0.9375rem; }
.pole--zaskrt input { width: 22px; height: 22px; min-height: 0; accent-color: var(--les); box-shadow: none; flex: none; }
.pole--zaskrt span { margin: 0; font-weight: 400; }
.formular__odeslat { display: grid; gap: 10px; justify-items: start; }
.formular__pozn { font-size: 0.875rem; color: var(--sedozelena); }
.formular__hotovo, .formular__chyba { padding: 18px 20px; border-radius: var(--r); background: #fff; }
.formular__hotovo h3, .formular__chyba h3 { margin: 0 0 6px; font: 300 1.5rem/1.2 var(--titulky); }
.formular__chyba { background: var(--sambrana-svetla); }
.cenik { margin: 0; }
.cenik summary { display: inline-flex; align-items: center; min-height: 44px; cursor: pointer; font-weight: 600; color: var(--inkoust); text-decoration: underline; text-decoration-color: var(--sambrana); text-decoration-thickness: 2px; text-underline-offset: 5px; }
.cenik__obal { margin-top: 12px; overflow-x: auto; border-radius: var(--r); background: #fff; color: var(--inkoust); }
.cenik table { width: 100%; min-width: 640px; border-collapse: collapse; font-size: 0.9375rem; }
.cenik caption { text-align: left; padding: 14px 16px 6px; font-size: 0.875rem; color: var(--sedozelena); }
.cenik th, .cenik td { padding: 10px 16px; text-align: left; vertical-align: top; font-variant-numeric: tabular-nums; }
.cenik tbody tr:nth-child(odd) { background: rgb(27 32 28 / 0.035); }
.cenik thead th, .cenik tbody th { font-weight: 600; }
.cenik small { display: block; font-weight: 400; color: var(--sedozelena); font-size: 0.8125rem; }
.cenik__pozn { padding: 10px 16px 16px; font-size: 0.875rem; color: var(--sedozelena); }
/* večer u vily: skutečná fotka mezi kalendářem a recenzemi */
.vecer { margin-top: 44px; }
.vecer img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: var(--pozice, 50% 50%); }
.vecer figcaption { margin-top: 10px; padding: 0 var(--okraj); font-size: 0.875rem; color: var(--krajka-60); }

/* ---------- recenze (den) ---------- */
.recenze { background: var(--krajka); color: var(--inkoust); padding: var(--mezera-sekce) var(--levy); }
.recenze__obsah { display: grid; gap: 26px; margin-top: 28px; }
.recenze__hlavni blockquote { margin: 0; }
.recenze__hlavni blockquote p { font: 300 clamp(1.625rem, 1.2rem + 1.6vw, 2.5rem)/1.28 var(--titulky); max-width: 26em; text-indent: -0.42em; }
.recenze__hlavni figcaption { margin-top: 12px; font-size: 0.9375rem; color: var(--sedozelena); }
.recenze__skore { padding: 20px 20px 18px; border-radius: var(--r-velky); background: var(--len); }
.recenze__souhrn { display: flex; align-items: center; gap: 12px; color: var(--sedozelena); font-size: 0.9375rem; line-height: 1.4; }
.recenze__souhrn a { color: var(--inkoust); text-underline-offset: 3px; }
.recenze__znamka { font: 300 3rem/1 var(--titulky); color: var(--inkoust); }
.recenze__domy { margin: 14px 0 0; padding: 0; list-style: none; display: grid; gap: 6px; font-size: 0.9375rem; }
.recenze__domy li { display: grid; grid-template-columns: 1fr auto 6.5rem; gap: 10px; align-items: baseline; }
.recenze__domy b { font-weight: 600; font-variant-numeric: tabular-nums; }
.recenze__domy i { font-style: normal; color: var(--sedozelena); font-size: 0.875rem; }
.recenze__dalsi { display: grid; gap: 24px; margin-top: 30px; }
.recenze__dalsi .citat blockquote p { font-size: 1.1875rem; }

/* ---------- okolí (den) ---------- */
.okoli { background: var(--len); color: var(--inkoust); padding: var(--mezera-sekce) var(--levy); }
.okoli__hlava { display: grid; gap: 24px; }
.okoli__perex { margin-top: 14px; color: var(--sedozelena); max-width: 38rem; }
.okoli__foto img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; object-position: var(--pozice, 50% 50%); border-radius: var(--r); }
.okoli__foto figcaption { margin-top: 8px; font-size: 0.875rem; color: var(--sedozelena); }
.okoli__skupiny { display: grid; gap: 30px; margin-top: 34px; align-items: start; }
.okoli__skupina h3 { margin: 0 0 12px; font: 300 1.5rem/1.2 var(--titulky); }
.mista { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.mista li {
  display: grid; grid-template-columns: 4.75rem 1fr; column-gap: 12px; align-items: baseline;
  padding: 12px 16px 11px; border-radius: 14px; background: #fff;
}
.mista b { grid-column: 1; grid-row: 1 / span 2; align-self: baseline; font: 300 1.875rem/1 var(--titulky); color: var(--inkoust); font-variant-numeric: lining-nums; white-space: nowrap; }
.mista b i { margin-left: 4px; font: 600 0.8125rem/1 var(--text); font-style: normal; color: var(--sedozelena); }
.mista span { grid-column: 2; grid-row: 1; font-size: 1rem; line-height: 1.35; }
.mista small { grid-column: 2; grid-row: 2; font-size: 0.8125rem; color: var(--sedozelena); }
.okoli .citat { margin-top: 14px; }

/* ---------- časté otázky (den) ---------- */
.otazky { background: var(--krajka); color: var(--inkoust); padding: var(--mezera-sekce) var(--levy); }
.otazky__seznam { margin-top: 24px; display: grid; gap: 10px; align-items: start; }
.otazky details { border-radius: 16px; background: var(--len); }
.otazky summary {
  display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 56px; padding: 12px 16px 12px 20px;
  cursor: pointer; list-style: none; font-weight: 600; font-size: 1.0625rem;
}
.otazky summary::-webkit-details-marker { display: none; }
.otazky summary::after { content: "+"; flex: none; width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; background: #fff; font: 400 1.25rem/1 var(--text); transition: transform 0.25s var(--krivka); }
.otazky details[open] summary::after { transform: rotate(45deg); }
.otazky details p { padding: 0 20px 18px; color: var(--sedozelena); max-width: 44rem; }

/* ---------- kontakt a mapa (večer) ---------- */
.kontakt { background: var(--les-tmava); padding: var(--mezera-sekce) var(--levy); display: grid; gap: 30px; }
.kontakt__text > p:not(.nadtitulek) { margin-top: 14px; color: var(--krajka-85); max-width: 34rem; }
.kontakt__akce { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.kontakt__domy { margin: 24px 0 0; padding: 0; list-style: none; max-width: 34rem; display: grid; gap: 2px; }
.kontakt__domy li { display: flex; flex-wrap: wrap; align-items: center; gap: 0 14px; }
.kontakt__domy li span { flex: 1 1 auto; color: var(--krajka-85); font-size: 0.9375rem; margin-right: auto; }
.kontakt__domy a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; font-size: 0.9375rem; text-underline-offset: 4px; text-decoration-color: var(--sambrana); }
.mapa { position: relative; border-radius: var(--r-velky); overflow: hidden; background: var(--krajka); aspect-ratio: 1000 / 755; color: var(--inkoust); }
.mapa__odkaz { position: absolute; inset: 0; display: block; }
.mapa__obr { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.mapa__bod { position: absolute; display: flex; align-items: center; gap: 5px; transform: translate(-6px, -50%); pointer-events: none; font-size: 0.75rem; font-weight: 700; white-space: nowrap; text-shadow: 0 0 3px var(--krajka), 0 0 3px var(--krajka), 0 0 2px var(--krajka); }
.mapa__bod::before { content: ""; flex: none; width: 12px; height: 12px; border-radius: 50%; background: var(--sambrana); box-shadow: 0 0 0 2px var(--krajka); }
.mapa__bod--vlevo { flex-direction: row-reverse; transform: translate(calc(-100% + 6px), -50%); }
.mapa__bod--nahore { transform: translate(calc(-100% + 6px), -85%); }
.mapa__misto { position: absolute; display: flex; align-items: center; gap: 4px; transform: translate(-4px, -50%); pointer-events: none; font-size: 0.6875rem; color: var(--sedozelena); white-space: nowrap; text-shadow: 0 0 3px var(--krajka), 0 0 3px var(--krajka); }
.mapa__misto::before { content: ""; flex: none; width: 7px; height: 7px; border-radius: 50%; box-shadow: inset 0 0 0 1.5px var(--inkoust); background: var(--krajka); }
.mapa__trasa { position: absolute; transform: translate(-50%, -50%); pointer-events: none; padding: 1px 7px; border-radius: 5px; background: var(--les); color: var(--krajka); font-size: 0.6875rem; font-weight: 600; white-space: nowrap; }
.mapa__zdroj { position: absolute; right: 8px; top: 6px; z-index: 2; pointer-events: none; padding: 1px 6px; border-radius: 4px; background: rgb(246 242 234 / 0.85); color: var(--sedozelena); font-size: 0.6875rem; line-height: 1.4; }
/* telefon: vila a TRIO (500 m) jedna tečka, minuty tras jsou u domů */
.mapa__jen-telefon { display: none; }
@media (max-width: 699px) {
  .mapa__bod--trio, .mapa__trasa { display: none; }
  .mapa__jen-telefon { display: inline; }
}

/* ---------- patička ---------- */
.paticka { background: var(--les-tmava); border-top: 1px solid var(--krajka-10); }
.paticka__vnitrek { padding: 28px var(--levy) 32px; display: grid; gap: 6px; font-size: 0.9375rem; color: var(--krajka-60); }
.paticka__jmeno { font: 300 1.375rem/1.2 var(--titulky); color: var(--krajka); }

/* ---------- spodní lišta (telefon) ---------- */
.spodni-lista {
  position: fixed; inset: auto 0 0 0; z-index: 40;
  display: grid; grid-template-columns: 1fr 1.6fr; gap: 10px;
  padding: 8px var(--okraj) calc(8px + env(safe-area-inset-bottom));
  background: var(--les-tmava); border-top: 1px solid var(--krajka-10);
}
.spodni-lista__volat { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; border-radius: 999px; box-shadow: inset 0 0 0 1.5px var(--krajka-60); font-weight: 600; text-decoration: none; }
.spodni-lista .tlacitko { width: 100%; }
html.js .spodni-lista { transform: translateY(110%); visibility: hidden; }
html.js .spodni-lista.je-videt { transform: none; visibility: visible; }
html.lista-pohyb .spodni-lista { transition: transform 0.35s var(--krivka), visibility 0s linear 0.35s; }
html.lista-pohyb .spodni-lista.je-videt { transition: transform 0.35s var(--krivka), visibility 0s; }

/* ---------- telefon ---------- */
@media (max-width: 699px) {
  .dum__popis { font-size: 0.9375rem; }
  .mista { grid-template-columns: 1fr 1fr; gap: 8px; }
  .mista li { display: flex; flex-wrap: wrap; align-items: baseline; align-content: start; gap: 2px 4px; padding: 10px 12px 11px; }
  .mista li:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .mista b { font-size: 1.5rem; }
  .mista span { flex: 1 1 100%; font-size: 0.9375rem; line-height: 1.3; }
  .mista small { flex: 1 1 100%; }
  .okoli__skupiny { gap: 24px; margin-top: 26px; }
  .recenze__dalsi .citat:nth-child(2) { display: none; }
  .recenze__hlavni blockquote p { text-indent: 0; }
}
/* telefon na šířku: text vedle fotky, ať je výzva nad ohybem */
@media (orientation: landscape) and (max-height: 520px) and (max-width: 899px) {
  .uvod { display: grid; grid-template-columns: minmax(0, 1fr) 40%; }
  .uvod__foto { order: 0; position: relative; }
  .uvod__foto picture { position: absolute; inset: 0; }
  .uvod__foto img { height: 100%; }
  .uvod__text { padding: 12px var(--okraj) 16px; }
  .retez--uvod { display: none; }
  .uvod__misto { font-size: 0.875rem; margin-bottom: 4px; }
  .uvod__titulek { font-size: 1.875rem; }
  .uvod__perex { margin-top: 6px; font-size: 0.9375rem; line-height: 1.45; }
  .uvod__akce { margin-top: 10px; }
}

/* ---------- tablet ---------- */
@media (min-width: 700px) {
  :root { --okraj: 32px; --mezera-sekce: 84px; }
  .hoste__pruh { display: flex; gap: 3px; }
  .hoste__pruh span { flex: var(--m) 1 0; display: grid; grid-template-columns: none; place-items: center; align-content: center; gap: 1px; height: 52px; border-radius: 8px; background: rgb(27 32 28 / 0.07); transition: background-color 0.35s ease; }
  .hoste__pruh span b { grid-row: 1; grid-column: 1; justify-self: center; width: auto; height: auto; background: none !important; font-size: 0.9375rem; color: var(--sedozelena); }
  .hoste__pruh span i { grid-row: 2; grid-column: 1; justify-self: center; font-size: 0.75rem; max-width: 100%; padding: 0 4px; text-align: center; }
  .hoste__pruh span.je-vybrany { background: var(--sambrana); }
  .hoste__pruh span.je-vybrany b, .hoste__pruh span.je-vybrany i { color: var(--inkoust); }
  .spani__patra { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
  .recenze__dalsi { grid-template-columns: 1fr 1fr; gap: 36px; }
  .recenze__dalsi .citat:nth-child(2) { display: block; }
  .okoli__skupiny { grid-template-columns: 1fr 1fr; }
  .pole-mrizka { grid-template-columns: 1fr 1fr; gap: 16px 18px; }
  .pole--siroke, .pole--zaskrt { grid-column: 1 / -1; }
  .kalendar__mesice { grid-template-columns: 1fr 1fr; gap: 28px; }
  .domy__rada { grid-auto-flow: row; grid-template-columns: repeat(2, 1fr); grid-auto-columns: auto; overflow: visible; scroll-snap-type: none; padding: 0 var(--okraj); }
  .domy__ovladani { display: none !important; }
  .formular { padding: 30px 32px 34px; }
  .otazky__seznam { grid-template-columns: 1fr 1fr; gap: 12px 16px; }
}

/* ---------- PC ---------- */
@media (min-width: 900px) {
  :root { --okraj: clamp(32px, 4.4vw, 72px); --hlavicka-v: 84px; --mezera-sekce: clamp(96px, 9vw, 136px); }
  body { font-size: 1.125rem; padding-bottom: 0; }
  .spodni-lista { display: none; }
  .menu-tlacitko { display: none; }
  .hlavicka { position: sticky; top: 0; }
  .menu { display: flex; gap: clamp(14px, 1.6vw, 28px); font-size: 0.9375rem; }
  .hlavicka .hlavicka__poptat { display: inline-flex; margin-left: 6px; }
  .znak__jmeno { font-size: 1.75rem; }
  .znak__pod { font-size: 0.8125rem; }
  html { scroll-padding-top: calc(var(--hlavicka-v) + 8px); }

  /* úvod: fotka na tři pětiny šířky, přesah k pravému okraji */
  .uvod {
    display: grid; grid-template-columns: var(--levy) minmax(0, 1.75fr) minmax(0, 3fr);
    min-height: clamp(540px, calc(100svh - var(--lista-v) - var(--hlavicka-v) - 128px), 780px);
  }
  .uvod__text { grid-column: 2; display: flex; flex-direction: column; justify-content: center; padding: 40px clamp(28px, 3.5vw, 56px) 48px 0; }
  .retez--uvod { width: min(100%, 300px); margin-bottom: 18px; }
  .uvod__misto { font-size: 1rem; margin-bottom: 14px; }
  .uvod__titulek { font-size: clamp(2.75rem, 1rem + 3.1vw, 4.25rem); }
  .uvod__perex { margin-top: 22px; font-size: 1.1875rem; line-height: 1.55; }
  .uvod__akce { margin-top: 30px; gap: 14px 24px; }
  .uvod__akce .tlacitko { min-height: 56px; padding: 0 32px; font-size: 1.0625rem; }
  .uvod__foto { grid-column: 3; order: 0; position: relative; }
  .uvod__foto picture { position: absolute; inset: 0; }
  .uvod__foto img { height: 100%; object-position: var(--pozice-pc, var(--pozice, 50% 50%)); }

  .hoste__vnitrek {
    padding: 30px var(--levy) 34px;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); column-gap: clamp(32px, 5vw, 80px); row-gap: 18px; align-items: center;
  }
  .hoste__titulek { font-size: 2.25rem; }
  .hoste__volby { gap: 8px; }
  .hoste__volby button { min-height: 52px; font-size: 1.5rem; }
  .hoste__pruh { grid-column: 1 / -1; }
  .hoste__vysledek { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center; gap: 24px; }
  .hoste__vysledek p { font-size: 1.0625rem; }

  /* vila: celý dům velký přes celou šířku obsahu */
  .vila__hlava { gap: 44px; }
  .vila__dum img { aspect-ratio: 2 / 1; object-position: var(--pozice-pc, var(--pozice, 50% 50%)); border-radius: var(--r-velky); }
  .vila__dum figcaption { margin-top: 10px; }
  .rada-ovladani { display: none !important; }
  .spani { margin-top: 56px; grid-template-columns: minmax(0, 0.8fr) minmax(0, 2.2fr); align-items: center; gap: 36px; padding: 30px 34px; }
  .spani__cislo { font-size: 4.5rem; }
  .mozaika {
    grid-auto-flow: row; grid-template-columns: repeat(6, minmax(0, 1fr)); grid-auto-columns: auto; grid-auto-rows: 250px;
    grid-template-areas: "a a a a b b" "a a a a c c" "d d e e f f" "g g g h h h";
    gap: 26px 20px; margin: 56px 0 0; padding: 0; overflow: visible; scroll-snap-type: none;
  }
  .dlazdice { grid-template-rows: minmax(0, 1fr) auto; min-height: 0; }
  .dlazdice picture { min-height: 0; height: 100%; }
  .dlazdice img { aspect-ratio: auto; height: 100%; min-height: 0; }
  .dlazdice--a { grid-area: a; } .dlazdice--b { grid-area: b; } .dlazdice--c { grid-area: c; } .dlazdice--d { grid-area: d; }
  .dlazdice--e { grid-area: e; } .dlazdice--f { grid-area: f; } .dlazdice--g { grid-area: g; } .dlazdice--h { grid-area: h; }
  .citat--vila { margin: 72px auto 0; text-align: center; }

  /* svatby: fotka stojí, text jede */
  .svatby {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr);
    grid-template-areas: "foto text" "foto citat";
    grid-template-rows: auto 1fr;
    column-gap: clamp(36px, 5vw, 96px); padding: var(--mezera-sekce) var(--levy) var(--mezera-sekce) 0;
  }
  .svatby__foto { grid-area: foto; position: relative; }
  .svatby__foto picture { position: sticky; top: var(--hlavicka-v); height: min(calc(100svh - var(--hlavicka-v)), 980px); }
  .svatby__foto img { height: 100%; border-radius: 0 var(--r-velky) var(--r-velky) 0; }
  .svatby__text { grid-area: text; padding: 0; }
  .retez--svatby { width: min(100%, 320px); margin-bottom: 22px; }
  .svatby__denni { margin-top: 28px; }
  .svatby__denni img { aspect-ratio: 3 / 2; }
  .citat--svatby { grid-area: citat; padding: 40px 0 0; }

  /* domy: titulek a text nad sebou vlevo, nabídka TRIA jako karta vpravo, pod nimi řada domů */
  .domy { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); column-gap: clamp(32px, 5vw, 88px); align-items: end; padding: var(--mezera-sekce) var(--levy); }
  .domy__hlava { padding: 0; }
  .domy__perex { margin-top: 20px; }
  .domy__skupina { display: contents; }
  .trio { grid-column: 2; grid-row: 1; margin: 0; padding: 28px 30px 26px; }
  .trio .citat { margin-top: 16px; }
  .domy__rada { grid-column: 1 / -1; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 20px; padding: 0; margin-top: 48px; }
  /* poptávka: titulek na střed nad nástrojem */
  .poptavka__hlava { text-align: center; }
  .poptavka__hlava .titulek-sekce { margin-inline: auto; }
  .poptavka__perex { margin: 18px auto 0; max-width: 44rem; }
  .domy__rada .dum { grid-column: span 2; }
  .domy__rada .dum--siroky { grid-column: span 3; flex-direction: row; }
  .dum--siroky .dum__foto { width: 44%; flex: none; }
  .dum--siroky .dum__foto picture, .dum--siroky .dum__foto img { height: 100%; }
  .dum--siroky .dum__foto img { aspect-ratio: auto; }

  .formular {
    padding: 36px 40px 40px; margin: 36px var(--levy) 0;
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); column-gap: 44px; row-gap: 26px;
    grid-template-areas: "domy domy" "kal souhrn" "kal pole" "cenik odeslat" "hotovo hotovo" "chyba chyba";
  }
  .vyber-domu { grid-area: domy; }
  .kalendar { grid-area: kal; align-self: start; }
  .souhrn { grid-area: souhrn; }
  .pole-mrizka { grid-area: pole; align-self: start; }
  .formular__odeslat { grid-area: odeslat; align-self: start; justify-items: stretch; }
  .formular__odeslat .tlacitko { width: 100%; }
  .formular__hotovo { grid-area: hotovo; }
  .formular__chyba { grid-area: chyba; }
  .formular .cenik { grid-area: cenik; align-self: start; min-width: 0; }
  .vecer { margin: 72px var(--levy) 0; }
  .vecer img { aspect-ratio: 21 / 10; border-radius: var(--r-velky); object-position: var(--pozice-pc, var(--pozice, 50% 50%)); }
  .vecer figcaption { padding: 0; }
  .formular > input[type="hidden"], .formular > .skryte { position: absolute; }

  .recenze__obsah { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: clamp(28px, 4vw, 72px); align-items: center; margin-top: 40px; }
  .recenze__dalsi { margin-top: 56px; gap: clamp(28px, 4vw, 72px); }

  .okoli__hlava { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: clamp(32px, 5vw, 80px); align-items: center; }
  .okoli__skupiny { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px 28px; margin-top: 48px; }
  .okoli__skupina:first-child { grid-column: 1 / -1; }
  .okoli__skupina:first-child .mista { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .okoli__skupina:nth-child(2) .mista { grid-template-columns: 1fr 1fr; }

  .otazky__seznam { gap: 12px 20px; margin-top: 32px; }

  .kontakt { grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: clamp(32px, 5vw, 80px); align-items: center; }
  .paticka__vnitrek { grid-template-columns: auto 1fr auto; align-items: baseline; gap: 24px; }
  .mapa__bod { font-size: 0.875rem; }
  .mapa__bod::before { width: 14px; height: 14px; }
  .mapa__misto { font-size: 0.8125rem; }
  .mapa__trasa { font-size: 0.8125rem; padding: 2px 8px; }
}

/* ---------- pohyb (jen prolnutí a krátký posun, do 0,5 s) ---------- */
html.js[data-pohyb="zap"] .uvod__text > :not(.retez) { opacity: 0; transform: translateY(12px); }
html.js[data-pohyb="zap"] .uvod__foto img { transform: scale(1.025); }
html.js[data-pohyb="zap"].nacteno .uvod__text > :not(.retez) { opacity: 1; transform: none; transition: opacity 0.45s ease, transform 0.5s var(--krivka); }
html.js[data-pohyb="zap"].nacteno .uvod__text > :nth-child(3) { transition-delay: 0.06s; }
html.js[data-pohyb="zap"].nacteno .uvod__text > :nth-child(4) { transition-delay: 0.12s; }
html.js[data-pohyb="zap"].nacteno .uvod__text > :nth-child(5) { transition-delay: 0.18s; }
html.js[data-pohyb="zap"].nacteno .uvod__foto img { transform: none; transition: transform 0.5s var(--krivka); }
html.js.odhalovani[data-pohyb="zap"] [data-odhal]:not(.je-odhaleno) { opacity: 0; transform: translateY(14px); }
html.js.odhalovani[data-pohyb="zap"] [data-odhal] { transition: opacity 0.45s ease, transform 0.5s var(--krivka); }
html[data-pohyb="vyp"] *, html[data-pohyb="vyp"] *::before, html[data-pohyb="vyp"] *::after { transition: none !important; animation: none !important; }
