/* Rezervace vánočního focení. Prefix vf- aby to nekolidovalo s motivem.
   Fonty a barvy přebíráme z Kadence, ať to vypadá jako zbytek webu. */

/* Hlavička stránky je z motivu Kadence a má světlé pozadí s bílým textem,
   takže je nadpis špatně čitelný. Obarvíme ji hnědou z naší palety — cílíme
   jen na tuhle stránku, zbytku webu se to nedotkne. */
body.page-id-5388 .entry-hero,
body.page-id-5388 .entry-hero-container-inner,
body.page-id-5388 .page-hero-section {
  background: #926757 !important;
}
body.page-id-5388 .entry-hero .entry-title,
body.page-id-5388 .entry-hero .entry-title a,
body.page-id-5388 .entry-hero,
body.page-id-5388 .entry-hero p,
body.page-id-5388 .entry-hero .kadence-breadcrumbs,
body.page-id-5388 .entry-hero .kadence-breadcrumbs a {
  color: #ffffff !important;
}

.vf {
  --vf-hneda: #926757;
  --vf-hneda-sv: #ae8373;
  --vf-tmava: #1A202C;
  --vf-bezova-tm: #c4a898;
  --vf-bezova: #dbc7bb;
  --vf-linka: #e8e2dc;
  --vf-krem: #F9F5F2;
  --vf-text: #4a4441;
  --vf-tichy: #8a827d;
  --vf-pismo: "Poppins", -apple-system, "Segoe UI", sans-serif;
  --vf-serif: "Cormorant SC", Georgia, serif;

  font: 300 16px/1.75 var(--vf-pismo);
  color: var(--vf-text);

  /* Stránka nemá od šablony žádný omezující obal — obsah by se roztáhl na
     celou šířku okna a držel u levého okraje. Napojujeme se proto na šířku
     obsahu, jakou má zbytek webu (Kadence content_width = 1290 px), ať
     rezervace lícují s hlavičkou i patičkou. */
  box-sizing: border-box;
  max-width: 1290px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

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

.vf-sekce { padding: 3rem 1.5rem; margin: 0 -1.5rem; scroll-margin-top: 1rem; }
.vf-sekce.vf-svetla { background: var(--vf-krem); }

.vf-krok {
  font: 500 .72rem/1 var(--vf-pismo);
  letter-spacing: .28em; text-transform: uppercase;
  color: var(--vf-bezova-tm); margin: 0 0 .7rem;
}
.vf-nadpis {
  font: 300 clamp(1.6rem, 3.6vw, 2.1rem)/1.3 var(--vf-serif);
  color: var(--vf-tmava); margin: 0 0 1.6rem; letter-spacing: .02em;
}
.vf-karta { background: #fff; border: 1px solid var(--vf-linka); padding: 2rem; }

/* pás fotek pod nadpisem */
.vf-pas {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 2px;
  background: var(--vf-linka); margin: 0 -1.5rem 0;
}
.vf-pas figure { margin: 0; overflow: hidden; aspect-ratio: 3 / 4; }
.vf-pas img, .vf-pas video { width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .6s ease; }
.vf-pas figure:hover img { transform: scale(1.04); }

/* galerie */
.vf-stred { text-align: center; }
.vf-galerie-sekce { background: var(--vf-krem); }
.vf-galerie { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1.2rem; }
.vf-galerie figure { margin: 0; overflow: hidden; aspect-ratio: 2 / 3; }
.vf-galerie img { width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .6s ease; filter: saturate(.96); }
.vf-galerie figure:hover img { transform: scale(1.05); filter: saturate(1.05); }

/* Dvě scény místo pěti ukázek. Přes celou šířku sekce by z nich byly
   dvoumetrové plachty — proto vlastní šířka. Poměr 2:3, ve kterém jsou
   vyfocené, aby ořez scéně neuřízl kraje. */
.vf-sceny { grid-template-columns: repeat(2, 1fr); max-width: 840px; margin: 0 auto; }
.vf-sceny figure { aspect-ratio: 2 / 3; }

/* balíčky */
.vf-balicky { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.vf-balicek {
  position: relative; text-align: left; background: #fff;
  border: 1px solid var(--vf-linka); padding: 2.2rem 2rem;
  cursor: pointer; font: inherit; color: inherit;
  transition: border-color .18s, box-shadow .18s;
}
.vf-balicek:hover { border-color: var(--vf-bezova); }
.vf-balicek[aria-pressed="true"] { border-color: var(--vf-hneda); box-shadow: inset 0 0 0 1px var(--vf-hneda); }
.vf-balicek[aria-pressed="true"]::before {
  content: "vybráno"; position: absolute; top: 0; right: 0;
  background: var(--vf-hneda); color: #fff;
  font: 500 .62rem/1 var(--vf-pismo); letter-spacing: .18em;
  text-transform: uppercase; padding: .45rem .7rem;
}
.vf-balicek h3 {
  font: 500 1rem/1 var(--vf-pismo); letter-spacing: .22em; text-transform: uppercase;
  color: var(--vf-tmava); margin: 0 0 1.2rem;
}
.vf-cena { font: 300 2.6rem/1 var(--vf-serif); color: var(--vf-hneda); margin-bottom: 1.4rem; }
.vf-cena small { font-size: 1.1rem; margin-left: .2rem; }
.vf-balicek ul { list-style: none; margin: 0; padding: 0; }
.vf-balicek li { position: relative; padding-left: 1.3rem; margin-bottom: .45rem; font-size: .93rem; }
.vf-balicek li::before {
  content: ""; position: absolute; left: 0; top: .62em;
  width: .42rem; height: .42rem; border-radius: 50%; background: var(--vf-bezova);
}
.vf-vybrat {
  display: inline-block; margin-top: 1.5rem;
  font: 600 .72rem/1 var(--vf-pismo); letter-spacing: .16em; text-transform: uppercase;
  color: var(--vf-hneda); border-bottom: 1px solid var(--vf-bezova); padding-bottom: .35rem;
}

/* termíny */
.vf-legenda { display: flex; align-items: center; gap: .4rem; font-size: .88rem;
  color: var(--vf-tichy); margin: -1.2rem 0 1.8rem; }
.vf-legenda .vf-obsazeno { margin-left: 1rem; }
.vf-tecka { width: .6rem; height: .6rem; border-radius: 50%; display: inline-block; }
.vf-tecka.vf-volno { background: var(--vf-hneda); }
.vf-tecka.vf-obsazeno { background: var(--vf-linka); border: 1px solid var(--vf-bezova); }

.vf-mesic {
  font: 300 1.5rem/1 var(--vf-serif); letter-spacing: .06em; color: var(--vf-hneda);
  margin: 2.2rem 0 .9rem; padding-bottom: .5rem; border-bottom: 1px solid var(--vf-bezova);
}
.vf-mesic:first-child { margin-top: 0; }

.vf-den {
  background: #fff; border: 1px solid var(--vf-linka); border-top: none;
  padding: .9rem 1.2rem; display: grid; gap: .5rem 1rem;
  grid-template-columns: 11rem 1fr; align-items: center;
}
.vf-mesic + .vf-den { border-top: 1px solid var(--vf-linka); }
.vf-den.vf-vikend { background: var(--vf-krem); }
.vf-den.vf-vikend h4 { color: var(--vf-hneda); font-weight: 600; }
.vf-den h4 { font: 500 .95rem/1.4 var(--vf-pismo); color: var(--vf-tmava); margin: 0; }
.vf-den h4::first-letter { text-transform: uppercase; }

.vf-sloty { display: grid; grid-template-columns: repeat(auto-fill, minmax(4.6rem, 1fr)); gap: .4rem; }
.vf-slot {
  font: 400 .9rem/1 var(--vf-pismo); padding: .6rem .4rem; text-align: center;
  border: 1px solid var(--vf-linka); background: #fff; color: var(--vf-tmava);
  cursor: pointer; transition: background .15s, color .15s, border-color .15s;
}
.vf-slot:hover:not(:disabled), .vf-slot[aria-pressed="true"] {
  background: var(--vf-hneda); color: #fff; border-color: var(--vf-hneda);
}
.vf-slot:disabled {
  color: var(--vf-bezova); background: var(--vf-krem);
  text-decoration: line-through; cursor: not-allowed;
}
.vf-nacitam { color: var(--vf-tichy); padding: 1.2rem 1.4rem; background: #fff; margin: 0; }

/* formulář */
.vf-souhrn { border-left: 2px solid var(--vf-hneda); background: var(--vf-krem);
  padding: .9rem 1.1rem; margin-bottom: 1.8rem; font-size: .95rem; }
.vf-souhrn strong { font-weight: 600; color: var(--vf-tmava); }

.vf label {
  display: block; margin-bottom: 1.2rem;
  font: 500 .7rem/1.4 var(--vf-pismo); letter-spacing: .18em;
  text-transform: uppercase; color: var(--vf-tichy);
}
.vf-volitelne { text-transform: none; letter-spacing: 0; font-weight: 300; }

.vf input, .vf textarea {
  display: block; width: 100%; margin-top: .5rem; padding: .8rem .9rem;
  font: 300 16px/1.5 var(--vf-pismo); color: var(--vf-tmava);
  background: #fff; border: 1px solid var(--vf-linka); border-radius: 0;
  text-transform: none; letter-spacing: normal;
}
.vf input:focus, .vf textarea:focus { outline: none; border-color: var(--vf-hneda); }
.vf textarea { resize: vertical; }

.vf-radek { display: grid; gap: 0 1.2rem; grid-template-columns: 1fr 1fr; }
.vf-radek.vf-tri { grid-template-columns: 1fr 1fr 2fr; }

/* tlačítka */
.vf-tlacitko {
  display: inline-block; font: 600 .78rem/1 var(--vf-pismo);
  letter-spacing: .16em; text-transform: uppercase;
  padding: 1.05rem 2.1rem; border: 1px solid var(--vf-hneda); border-radius: 0;
  background: var(--vf-hneda); color: #fff; cursor: pointer;
  text-decoration: none; transition: background .18s, color .18s;
}
.vf-tlacitko:hover { background: var(--vf-hneda-sv); border-color: var(--vf-hneda-sv); color: #fff; }
.vf-tlacitko:disabled { opacity: .55; cursor: progress; }
.vf-tlacitko.vf-obrys { background: transparent; color: var(--vf-hneda); }
.vf-tlacitko.vf-obrys:hover { background: var(--vf-hneda); color: #fff; }

/* hlášky a potvrzení */
.vf-chyba { background: #fbf1ef; border-left: 2px solid #b4695b; color: #8a4436;
  padding: .8rem 1rem; margin: 0 0 1.2rem; font-size: .93rem; }
.vf-drobne { font-size: .84rem; color: var(--vf-tichy); }

/* Podmínky pod odesílacím tlačítkem — potřebují od něj odsadit a mezi sebou
   dýchat, jinak splynou v jeden odstavec drobného textu. */
.vf-podminky { margin-top: 1.9rem; padding-top: 1.4rem; border-top: 1px solid var(--vf-linka); }
.vf-podminky .vf-drobne { margin: 0 0 .7rem; line-height: 1.65; }
.vf-podminky .vf-drobne:last-child { margin-bottom: 0; }

/* Potvrzení podmínek. Musí přebít obecné .vf label a .vf input, které jsou
   nastavené pro textová pole — jinak by se zaškrtávátko roztáhlo na celou
   šířku a popisek by byl verzálkami jako názvy polí. */
.vf label.vf-souhlas {
  display: flex; align-items: flex-start; gap: .7rem; cursor: pointer;
  margin: 1.1rem 0 1.5rem; padding: .85rem 1rem;
  background: var(--vf-krem); border: 1px solid var(--vf-linka);
  font: 400 .92rem/1.5 var(--vf-pismo); color: var(--vf-text);
  text-transform: none; letter-spacing: normal;
}
.vf label.vf-souhlas input[type="checkbox"] {
  display: block; flex: 0 0 auto; width: 1.1rem; height: 1.1rem;
  margin: .18rem 0 0; padding: 0; accent-color: var(--vf-hneda); cursor: pointer;
}
.vf label.vf-souhlas:hover { border-color: var(--vf-bezova); }
.vf label.vf-souhlas.vf-chybi { border-color: #b4695b; background: #fbf1ef; color: #8a4436; }

.vf-potvrzeni { text-align: center; border-color: var(--vf-bezova); }
.vf-psane { font: 400 1.6rem/1.3 "WindSong", cursive; color: var(--vf-tmava); margin: 0 0 .3rem; }

.vf-kde, .vf-storno {
  text-align: left; padding: 1.1rem 1.3rem; margin: 1.4rem 0;
}
.vf-kde { background: var(--vf-krem); border-left: 2px solid var(--vf-hneda); }
.vf-kde p { margin: 0 0 .5rem; }
.vf-kde p:last-child { margin: 0; }
.vf-kde-nadpis {
  font: 500 .7rem/1 var(--vf-pismo); letter-spacing: .2em;
  text-transform: uppercase; color: var(--vf-hneda);
}
.vf-storno { background: var(--vf-linka); font-size: .9rem; }
.vf-storno strong { display: block; color: var(--vf-tmava); margin-bottom: .3rem; }
.vf-storno .vf-h { color: var(--vf-hneda); font-weight: 600; }

.vf-platba { border: 1px solid var(--vf-hneda); background: var(--vf-krem);
  padding: 1.6rem; margin: 1.6rem 0; text-align: left; }
.vf-platba-nadpis {
  margin: 0 0 1.1rem; font: 500 .72rem/1 var(--vf-pismo);
  letter-spacing: .2em; text-transform: uppercase; color: var(--vf-hneda);
}
.vf-platba-obsah { display: grid; grid-template-columns: 1fr auto; gap: 1.6rem;
  align-items: start; margin-bottom: 1.2rem; }
.vf-platba-udaje { display: grid; gap: .9rem; align-content: start; }
.vf-platba-udaje > div {
  display: flex; justify-content: space-between; align-items: baseline; gap: 1rem;
  border-bottom: 1px dashed var(--vf-linka); padding-bottom: .6rem;
}
.vf-platba-udaje span {
  font: 400 .78rem/1.4 var(--vf-pismo); letter-spacing: .12em;
  text-transform: uppercase; color: var(--vf-tichy);
}
.vf-platba-udaje strong {
  font: 600 1.15rem/1.3 var(--vf-pismo); letter-spacing: .04em;
  color: var(--vf-tmava); text-align: right;
}
.vf-qr { margin: 0; text-align: center; }
.vf-qr > div { width: 156px; height: 156px; background: #fff; padding: 6px;
  border: 1px solid var(--vf-linka); }
.vf-qr svg { width: 100%; height: 100%; display: block; }
.vf-qr figcaption {
  margin-top: .5rem; max-width: 156px; font: 400 .7rem/1.3 var(--vf-pismo);
  letter-spacing: .08em; text-transform: uppercase; color: var(--vf-tichy);
}

@media (max-width: 680px) {
  .vf-radek, .vf-radek.vf-tri, .vf-den { grid-template-columns: 1fr; }
  .vf-platba-obsah { grid-template-columns: 1fr; justify-items: center; }
  .vf-platba-udaje { width: 100%; }
  .vf { padding: 0 1rem; }
  .vf-sekce { padding: 2.2rem 1rem; margin: 0 -1rem; }
  .vf-pas { grid-template-columns: repeat(2, 1fr); margin: 0 -1rem; }
  /* Na mobilu celé fotky — ořez na 3:4 uřízl kruhu i chaloupce vršek. */
  .vf-pas figure { aspect-ratio: 2 / 3; }
  .vf-sceny { grid-template-columns: 1fr; max-width: 420px; }
}

/* Termín na dnešní den — vidět zůstane, rezervovat se nedá. */
.vf-slot.vf-dnes {
  border-style: dashed;
  color: #9a8f88;
}
.vf-slot.vf-dnes:hover:not(:disabled) {
  background: #f3ede8;
  color: #6f4c40;
}

/* Dialog */
.vf-plachta {
  position: fixed; inset: 0; z-index: 9999;
  background: rgba(26, 32, 44, .55);
  display: flex; align-items: center; justify-content: center;
  padding: 20px;
}
.vf-dialog {
  background: #fff; max-width: 400px; width: 100%;
  padding: 28px 26px 22px; text-align: center;
  border: 1px solid #e8e2dc;
  box-shadow: 0 18px 50px rgba(0, 0, 0, .22);
}
.vf-dialog h3 {
  margin: 0 0 10px; font: 400 21px/1.3 Georgia, serif; color: #1A202C;
}
.vf-dialog p { margin: 0 0 18px; font-size: 15px; line-height: 1.6; color: #4a4441; }
.vf-dialog .vf-tlacitko {
  display: inline-block; text-decoration: none; letter-spacing: 1px;
}
.vf-zavrit {
  display: block; margin: 14px auto 0; padding: 4px 8px;
  background: none; border: 0; cursor: pointer;
  font: 400 13px/1.4 inherit; color: #8a827d; text-decoration: underline;
}
.vf-zavrit:hover { color: #926757; }

/* ---------------------------------------------------------------------------
   Nadpisy: přebití typografie šablony

   Náš list se v hlavičce načítá DŘÍV než Kadence a Elementor, takže při
   stejné specifičnosti vyhrávají oni a z „Říjen" vyroste 56px nadpis.
   Následující pravidla jsou úmyslně adresnější (.vf před selektorem).
   Hodnoty jsou stejné jako výš — kdyby se tam něco měnilo, změň to na
   obou místech.
   --------------------------------------------------------------------------- */
.vf .vf-nadpis { font: 300 clamp(1.6rem, 3.6vw, 2.1rem)/1.3 var(--vf-serif); color: var(--vf-tmava); margin: 0 0 1.6rem; letter-spacing: .02em; }
.vf .vf-balicek h3 { font: 500 1rem/1 var(--vf-pismo); letter-spacing: .22em; text-transform: uppercase; color: var(--vf-tmava); margin: 0 0 1.2rem; }
.vf .vf-mesic { font: 300 1.5rem/1 var(--vf-serif); letter-spacing: .06em; color: var(--vf-hneda); margin: 2.2rem 0 .9rem; padding-bottom: .5rem; border-bottom: 1px solid var(--vf-bezova); }
.vf .vf-den.vf-vikend h4 { color: var(--vf-hneda); font-weight: 600; }
.vf .vf-den h4 { font: 500 .95rem/1.4 var(--vf-pismo); color: var(--vf-tmava); margin: 0; }
.vf .vf-dialog h3 { margin: 0 0 10px; font: 400 21px/1.3 Georgia, serif; color: #1A202C; }
