/* Rezervácia — dopĺňa hlavný štýl webu, nemení ho.
   Prefix .rz- odlišuje verejnú stránku od skúšobnej /rsystem/ (.rs-). */

.rz-hlava { margin-bottom: 2.5rem; }

.rz-oznam {
  padding: .875rem 1rem;
  border-left: 3px solid var(--accent);
  background: var(--cream);
  font-size: .9375rem;
  margin-bottom: 2rem;
}
.rz-oznam--chyba { border-left-color: #b3261e; background: #fdeceb; color: #7a1c16; }

/* ---------- Zvolený druh (ponuka je schovaná) ---------- */
.rz-zvolene { margin-bottom: 2.5rem; }
.rz-zvolene[hidden] { display: none; }

.rz-zvolene__popis {
  font-size: .75rem;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--muted);
  margin-bottom: 1rem;
}

.rz-zvolene__pruh {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  padding: 1.25rem 1.5rem;
  border: 1px solid var(--accent);
  background: var(--cream);
}
.rz-zvolene__ikona { width: 26px; height: 26px; color: var(--accent); flex: none; }
.rz-zvolene__nazov { font-family: var(--font-serif); font-size: 1.375rem; }

.rz-spat {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  margin-left: auto;
  font-size: .75rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--muted);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  padding-bottom: .125rem;
  transition: color .2s ease, border-color .2s ease;
}
.rz-spat:hover, .rz-spat:focus-visible { color: var(--dark); border-bottom-color: var(--accent); }
.rz-spat .icon { width: 14px; height: 14px; }

/* ---------- Výber druhu rezervácie ---------- */
.rz-druhy {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
  border: 0;
  padding: 0;
  margin: 0 0 2.5rem;
}
.rz-druhy[hidden] { display: none; }
@media (min-width: 560px) { .rz-druhy { grid-template-columns: 1fr 1fr; } }
@media (min-width: 900px) { .rz-druhy { grid-template-columns: repeat(4, 1fr); } }

.rz-druhy__legenda {
  /* Legenda je v grid kontajneri bežná položka a zabrala by bunku — nech radšej
     preklenie celý riadok. `float` sa na grid položkách ignoruje. */
  grid-column: 1 / -1;
  font-size: .75rem;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--muted);
  padding: 0;
  margin-bottom: 1rem;
}

.rz-druh {
  display: grid;
  gap: .375rem;
  justify-items: start;
  align-content: start;
  padding: 1.5rem 1.25rem;
  border: 1px solid var(--cream-dark);
  background: #fff;
  cursor: pointer;
  transition: border-color .2s ease, background .2s ease;
}
.rz-druh:hover { border-color: var(--accent); }
.rz-druh.je-vybrany { border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); background: var(--cream); }

/* Prepínač zostáva v strome kvôli klávesnici a čítačkám, len ho nevidno. */
.rz-druh input {
  position: absolute;
  width: 1px; height: 1px;
  opacity: 0;
  pointer-events: none;
}
.rz-druh:focus-within { outline: 2px solid var(--accent); outline-offset: 2px; }

.rz-druh__ikona { width: 28px; height: 28px; color: var(--accent); margin-bottom: .5rem; }
.rz-druh__nazov { font-family: var(--font-serif); font-size: 1.125rem; }
.rz-druh__popis { font-size: .8125rem; color: var(--muted); line-height: 1.5; }

/* ---------- Formuláre ---------- */
.rz-form, .rz-udaje { display: grid; gap: 1.25rem; max-width: 46rem; }
/* Vlastný display by prebil UA pravidlo [hidden]. */
.rz-form[hidden], .rz-udaje[hidden] { display: none; }

.rz-mriezka { display: grid; gap: 1.25rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .rz-mriezka { grid-template-columns: 1fr 1fr; } }
@media (min-width: 640px) { .rz-mriezka--3 { grid-template-columns: 1fr 1fr 1fr; } }

.rz-form label, .rz-udaje label, .rz-hladanie label { display: block; }
.rz-form > label > span,
.rz-udaje > label > span,
.rz-mriezka > label > span,
.rz-hladanie label > span {
  display: block;
  font-size: .75rem;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--muted);
  margin-bottom: .5rem;
}
.rz-form em, .rz-udaje em { font-style: normal; color: var(--accent); }

.rz-form input:not([type=checkbox]),
.rz-form select,
.rz-form textarea,
.rz-udaje input,
.rz-udaje textarea,
.rz-hladanie input {
  width: 100%;
  background: #fff;
  border: 1px solid var(--cream-dark);
  padding: .75rem 1rem;
  font: inherit;
  border-radius: 0;
}
.rz-form input:focus-visible,
.rz-form select:focus-visible,
.rz-form textarea:focus-visible,
.rz-udaje input:focus-visible,
.rz-udaje textarea:focus-visible,
.rz-hladanie input:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.rz-skupina { border: 0; padding: 0; margin: 0; }
.rz-skupina legend {
  font-size: .75rem;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--muted);
  padding: 0;
  margin-bottom: .75rem;
}
.rz-zaskrty { display: grid; gap: .75rem; grid-template-columns: 1fr; }
@media (min-width: 560px) { .rz-zaskrty { grid-template-columns: 1fr 1fr; } }

.rz-zaskrt { display: flex; align-items: center; gap: .625rem; cursor: pointer; }
.rz-zaskrt span { font-size: .9375rem; }

/* Súhlas so storno podmienkami je dlhší text — zaškrtávacie pole má zostať
   pri prvom riadku, nie uprostred odseku. */
.rz-suhlas { align-items: flex-start; }
.rz-suhlas input { margin-top: .1875rem; flex: none; }
.rz-suhlas span { line-height: 1.6; }
.rz-suhlas a { color: var(--accent); text-underline-offset: .2em; }

.rz-pasca { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.rz-drobne { font-size: .8125rem; color: var(--muted); margin-top: -.5rem; }

.rz-stav {
  padding: .875rem 1rem;
  border-left: 3px solid var(--accent);
  background: var(--cream);
  font-size: .875rem;
}
.rz-stav--chyba { border-left-color: #b3261e; background: #fdeceb; color: #7a1c16; }

/* ---------- Ubytovanie: hľadanie a ponuka ---------- */
.rz-podnadpis { font-family: var(--font-serif); font-size: 1.5rem; margin-bottom: 1rem; }

.rz-hladanie {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
  align-items: end;
  padding: 1.5rem;
  background: var(--cream);
  margin-bottom: 2rem;
}
@media (min-width: 720px) { .rz-hladanie { grid-template-columns: 1fr 1fr .7fr .7fr auto; } }
.rz-hladanie input { border-color: transparent; }

.rz-typy { display: grid; gap: 1rem; margin-bottom: 2.5rem; }
.rz-typ {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
  align-items: center;
  border: 1px solid var(--cream-dark);
  padding: 1.25rem;
}
@media (min-width: 720px) { .rz-typ { grid-template-columns: 1fr auto auto; } }
.rz-typ h3 { font-family: var(--font-serif); font-size: 1.25rem; margin-bottom: .25rem; }
.rz-typ p { color: var(--muted); font-size: .875rem; }
.rz-typ__zvysok { font-size: .75rem; color: var(--accent); margin-top: .375rem; }
.rz-typ__cena { font-family: var(--font-serif); font-size: 1.5rem; white-space: nowrap; }
.rz-typ--plny { opacity: .55; }
.rz-typ--plny .rz-typ__cena { font-size: .875rem; font-family: var(--font-sans); }
.rz-typ--vybrany { border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }

.rz-suhrn { background: var(--cream); padding: 1.25rem; font-size: .9375rem; }
.rz-suhrn dl { display: grid; grid-template-columns: 1fr auto; gap: .5rem 1rem; margin: 0; }
.rz-suhrn dt { color: var(--muted); }
.rz-suhrn dd { margin: 0; text-align: right; }
.rz-suhrn .rz-spolu {
  border-top: 1px solid var(--cream-dark);
  padding-top: .625rem;
  margin-top: .25rem;
  font-weight: 600;
}

/* Druh, ktorý ešte neponúkame — nedá sa zvoliť, len je vidieť, že príde. */
.rz-druh--coskoro {
  cursor: default;
  opacity: .5;
  background: var(--cream);
}
.rz-druh--coskoro:hover { border-color: var(--cream-dark); }
.rz-druh--coskoro .rz-druh__popis {
  font-size: .6875rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--accent);
}
