@charset "UTF-8";

/*
Theme Name: Bouda Zvonařka
Author: Michal Hančil
Author URI: https://michalhancil.cz/
Description: Šablona na míru pro Boudu Zvonařka — roubená horská bouda v Krkonoších. Pro úpravy či asistenci se obraťte na Michala Hančila, autora šablony.
Version: 2.0
Requires PHP: 8
*/

:root {
  /* Text — Inter (bezpatkový, výborně čitelný v dlouhých pasážích) */
  --font-sans-serif: 'Inter', system-ui, sans-serif;
  /* Nadpisy a akcenty — Fraunces (patkový, teplý, lehce rustikální) */
  --font-serif: 'Fraunces', Georgia, serif;
  --font-head: 'Fraunces', Georgia, serif;

  /* Paleta — DŘEVO + TEPLÉ TÓNY: hnědá/krémová základ, tlumená rezavá a medová
     akcent, zelená jen jako drobný doplněk. */
  --cream: #f3efe4;        /* hlavní pozadí — teplá krémová */
  --beige: #e8e0cf;        /* tónované sekce — přírodní béžová */
  --paper: #faf6ec;        /* světlé plochy (formulářový panel) */
  --ink: #211b12;          /* téměř černá teplá hnědá — hlavní text */
  --ink-soft: #5d5442;     /* tlumený doplňkový text */
  --dark: #1b150e;         /* tmavě hnědočerná kontrastní sekce */
  --dark-2: #2a2216;       /* barva tmavého dřeva */
  /* Hlavní akcent = tlumená rezavá / medová */
  --ochre: #b06a2c;        /* medová / světlejší rezavá — kickery, čísla, linky */
  --ochre-deep: #9c5a22;   /* tlumená rezavá — výplň primárních tlačítek */
  --ochre-dark: #7d461a;   /* hover primárních tlačítek */
  /* Zelená = jen drobný doplňkový akcent (štítky, dekorace) */
  --green: #4a6b3f;        /* tlumená lesní zelená — drobný akcent */
  --honey: #eba84c;        /* medová — drobné teplé akcenty (linky na tmavém, hvězdy) */
  /* Stavové barvy formulářů — tlumené, aby ladily s teplou paletou */
  --success: #4a6b3f;      /* úspěch — shodná s lesní zelenou */
  --success-soft: #5c8150; /* světlejší zelená (hlášky u polí na tmavém) */
  --error: #a33a2a;        /* chyba — tlumená cihlová červená */
  --error-soft: #d97b68;   /* světlejší červená (text na tmavém pozadí) */
  --line: rgba(33, 27, 18, 0.15);          /* jemné dělicí čáry na světlé */
  --line-strong: rgba(33, 27, 18, 0.28);   /* výraznější linka (nadpisy sekcí) */
  --line-light: rgba(243, 239, 228, 0.16); /* jemné dělicí čáry na tmavé */
  --cream-text: #f3efe4;   /* text na tmavých plochách */
  --cream-muted: #a99f8b;  /* tlumený text na tmavých plochách */
  --white: #fff;           /* čistá bílá (světlá tlačítka, focus vstupů) */
  --cream-soft: #ece4d4;   /* jemný krémový text (hero podnadpisy) */
  --footer-text: #d9d2c2;  /* text v patičce */
  --footer-bar: #141109;   /* spodní lišta patičky */
  --footer-muted: #8d8474; /* tlumený text spodní lišty */
  --muted-2: #8a8272;      /* drobné popisky (logo, poznámky) */
  --muted-3: #7d7565;      /* patičkové drobnosti */
  --dark-3: #33291c;       /* hluboká tmavě hnědá — spodní panel kontaktů */
  --input-white: #fdfbf6;  /* téměř bílé pozadí formulářových polí */
  --input-border: #cfc4b0; /* teplý šedohnědý okraj polí */
  --input-bg: #ece6da;     /* pozadí formulářových vstupů */
  --input-bg-hover: #e7e0d2;
  --input-bg-alt: #efeae0; /* alternativní pozadí (zebra tabulky) */
  --input-placeholder: #a49a86;
  --topbar-link: #e6ded0;  /* odkazy v horní liště */
  --accordion-hover: #ddd4c1;
  --langswitch-sep: #5c5344;

  --link-color: var(--ochre-deep);
  --link-decoration: underline;
  --link-hover-color: var(--ink);
  --nav-link-hover-color: var(--ochre-deep);
  --nav-link-font-size: 0.95rem;
  --nav-link-font-weight: 600;
  --navbar-nav-link-padding-x: 0.9rem;
  --navbar-bg: var(--cream);
  --navbar-floating-bg: var(--cream);
  --navbar-floating-shadow: 0 6px 24px rgba(26, 22, 17, 0.08);
  --navbar-toggler-color: var(--ink);
  --dropdown-min-width:auto;
  --dropdown-link-active-bg: var(--ochre-deep);
  --dropdown-link-active-color: var(--cream-text);
  --spinner-width:3rem;
  --spinner-height:3rem;
  --spinner-border-color: var(--ochre-deep);

  /* Systémové (sdílené) prvky šablony — dřív zapsané natvrdo */
  --focus-ring: rgba(156, 90, 34, 0.18);  /* prstenec kolem vstupu při fokusu */
  --slider-dot: var(--line-strong);       /* neaktivní tečka slideru */
  --slider-dot-active: var(--ink);        /* aktivní tečka slideru */
  --slider-arrow-bg: rgba(33, 27, 18, 0.4);
  --slider-arrow-bg-hover: rgba(33, 27, 18, 0.7);
  --slider-arrow-color: var(--cream-text);
  --overlay-bg: rgba(27, 21, 14, 0.55);   /* překryv modalu a lightboxu */
  --card-bg: var(--paper);                /* pozadí plovoucích karet a dropdownů */
  --card-shadow: 0 2px 16px rgba(27, 21, 14, 0.08);
  --card-shadow-hover: 0 6px 24px rgba(27, 21, 14, 0.14);
  --dropdown-shadow: 0 4px 16px rgba(27, 21, 14, 0.1);
  --dropdown-divider: var(--line);
  --dropdown-hover-bg: var(--beige);
  --star-color: var(--honey);             /* hvězdy hodnocení */
  --text-muted: var(--ink-soft);
  --text-muted-2: var(--muted-2);
  --tooltip-bg: var(--dark-2);
  --tooltip-color: var(--cream-text);
  --photo-scrim: 20 18 14;   /* podklad pretisku nad fotkou (RGB slozky) */
  --hero-scrim: 20 15 9;     /* podklad pretisku v hero (RGB slozky) */
}

.logo h1 {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

a:focus,
a:active,
button,
input[type="reset"]::-moz-focus-inner,
input[type="button"]::-moz-focus-inner,
input[type="submit"]::-moz-focus-inner,
select::-moz-focus-inner,
input[type="file"]>input[type="button"]::-moz-focus-inner,
/* Ruší se jen výchozí prstenec při kliknutí myší (:focus).
   Klávesový fokus (:focus-visible) zůstává a řeší ho pravidlo níž. */
button:focus:not(:focus-visible),
button:active,
.btn:focus:not(:focus-visible),
.btn:active:focus:not(:focus-visible),
.btn.active:focus:not(:focus-visible),
.btn.focus:not(:focus-visible),
.btn.focus:active:not(:focus-visible),
.btn.active.focus:not(:focus-visible) {
  outline: none;
}

/* Jednotný viditelný fokus pro klávesnici napříč šablonou.
   Textová pole, výběry a zaškrtávátka jsou vyjmuté: obrys kolem vstupu
   působí hrubě, fokus u nich řeší zesílený okraj a prstenec (viz .bz-input). */
a:focus-visible,
button:focus-visible,
.btn:focus-visible,
input[type="submit"]:focus-visible,
input[type="button"]:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--ochre-deep);
  outline-offset: 2px;
  border-radius: 2px;
}

/* Vstupy, výběry a textové plochy: bez obrysu, fokus nese okraj a prstenec. */
input:not([type="submit"]):not([type="button"]):focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: none;
  border-color: var(--ochre-dark);
  box-shadow: 0 0 0 3px var(--focus-ring);
}

/* Na tmavém pozadí musí být prstenec světlý, jinak splyne */
.bz-section--dark a:focus-visible,
.bz-section--dark button:focus-visible,
.bz-sec--dark a:focus-visible,
.bz-sec--dark button:focus-visible,
.bz-footer a:focus-visible,
.bz-footer button:focus-visible,
.bz-topbar a:focus-visible,
.bz-lightbox button:focus-visible {
  outline-color: var(--honey);
}

/* CF7 si kreslí vlastní prstenec, sjednocujeme ho s naším */
.wpcf7-form-control:focus:not(:focus-visible),
.wpcf7-form-control-wrap:focus:not(:focus-visible) {
  outline: none;
  box-shadow: none;
}

#rank-math-analytics-stats-wrapper,
.fancybox-caption-wrap {
  display: none !important;
}

.cmplz-cookiebanner-container {
  height: 0;
}

#cmplz-document,
.editor-styles-wrapper .cmplz-unlinked-mode,
#cmplz-document p,
.editor-styles-wrapper .cmplz-unlinked-mode p,
#cmplz-document li,
.editor-styles-wrapper .cmplz-unlinked-mode li,
#cmplz-document td,
.editor-styles-wrapper .cmplz-unlinked-mode td {
  max-width: unset !important;
  font-size: unset !important;
}

#cmplz-document a,
.editor-styles-wrapper .cmplz-unlinked-mode a {
  text-decoration: none !important;
  color: inherit;
}

.loader-animation {
  position: fixed;
  top: 0;
  left: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  background: white;
  z-index: 1031;
  animation: hide 0.5s ease-in-out 1s forwards;
}

.loader-animation .animation-hide {
  animation: hide 0.5s ease-in-out 0.5s forwards;
}

.loader-animation .spinner-border {
  border-color: var(--spinner-border-color);
  border-right-color: transparent;
}

@keyframes hide {
  to {
    opacity: 0;
    visibility: hidden;
  }
}

.dropdown-menu {
  border-radius: 0;
  border: none;
}

.dropdown:hover .dropdown-menu {
  display: block;
}

.current-menu-item:not(.menu-item-type-custom) a {
  border-bottom: 2px solid black;
}

.hs-slider {
  position: relative;
  overflow: hidden;
}

.hs-track {
  display: flex;
  will-change: transform;
  /* pan-y: svislý posun stránky zůstává prohlížeči, vodorovný tah dostane slider */
  touch-action: pan-y;
  user-select: none;
  cursor: grab;
}

.hs-track.hs-dragging {
  cursor: grabbing;
}

.hs-slide {
  flex-shrink: 0;
}

.hs-slide img {
  -webkit-user-drag: none;
}

.hs-dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 12px;
}

.hs-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: none;
  background: var(--slider-dot);
  cursor: pointer;
  padding: 0;
  transition: background 0.2s ease-in-out;
}

.hs-dot.active {
  background: var(--slider-dot-active);
}

.hs-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: var(--slider-arrow-bg);
  color: var(--slider-arrow-color);
  border: none;
  font-size: 2rem;
  line-height: 1;
  padding: 8px 14px;
  cursor: pointer;
  z-index: 10;
  transition: background 0.2s ease-in-out;
}

.hs-arrow:hover {
  background: var(--slider-arrow-bg-hover);
}

.hs-arrow-prev {
  left: 0;
}

.hs-arrow-next {
  right: 0;
}

[data-motion] {
  opacity: 0;
  transition: opacity 0.5s ease-in-out, transform 0.5s ease-in-out;
}

[data-motion="fade-up"] {
  transform: translateY(30px);
}

[data-motion="fade-down"] {
  transform: translateY(-30px);
}

[data-motion="fade-left"] {
  transform: translateX(30px);
}

[data-motion="fade-right"] {
  transform: translateX(-30px);
}

[data-motion="zoom-in"] {
  transform: scale(0.9);
}

[data-motion].motion-animate {
  opacity: 1;
  transform: none;
}

body {
  font-family: var(--font-sans-serif);
}

a {
  color: var(--link-color);
  text-decoration: var(--link-decoration);
}

a:hover {
  color: var(--link-hover-color);
}

.nav-link:hover {
  color: var(--nav-link-hover-color);
}

.container {
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 12px;
  padding-left: 12px;
}

@media (min-width: 576px) {
  .container {
    max-width: 540px;
  }
}

@media (min-width: 768px) {
  .container {
    max-width: 720px;
  }
}

@media (min-width: 992px) {
  .container {
    max-width: 960px;
  }
}

@media (min-width: 1200px) {
  .container {
    max-width: 1140px;
  }
}

@media (min-width: 1400px) {
  .container {
    max-width: 1320px;
  }
}

.navbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  padding: 0.5rem 1rem;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1030;
  background: var(--navbar-bg, transparent);
  transition: background 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
}

.navbar.navbar-floating {
  background: var(--navbar-floating-bg, var(--cream));
  box-shadow: var(--navbar-floating-shadow, var(--dropdown-shadow));
}

.navbar>.container {
  display: flex;
  flex-wrap: inherit;
  align-items: center;
  justify-content: space-between;
}

.navbar-toggler {
  padding: 0.5rem;
  background: transparent;
  border: none;
  cursor: pointer;
  line-height: 1;
}

.navbar-toggler-icon {
  display: inline-flex;
  flex-direction: column;
  justify-content: space-between;
  width: 1.65rem;
  height: 18px;
  vertical-align: middle;
}

.navbar-toggler-icon span {
  display: block;
  width: 100%;
  height: 2px;
  background: var(--navbar-toggler-color, var(--ink));
  border-radius: 2px;
  transition: transform 0.35s ease-in-out, opacity 0.25s ease-in-out;
  transform-origin: center;
}

.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon span:nth-child(1) {
  transform: translateY(8px) rotate(45deg);
}

.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon span:nth-child(2) {
  opacity: 0;
  transform: scaleX(0);
}

.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon span:nth-child(3) {
  transform: translateY(-8px) rotate(-45deg);
}

.collapse:not(.show) {
  display: none;
}

.navbar-collapse {
  flex-basis: 100%;
  flex-grow: 1;
  align-items: center;
  display: block !important;
  overflow: hidden;
  height: 0;
  transition: height 0.35s ease-in-out;
}

.navbar-collapse.show {
  height: auto;
}

.navbar-nav {
  display: flex;
  flex-direction: column;
  padding-left: 0;
  margin: 0;
  list-style: none;
}

.nav-link {
  display: block;
  padding: 0.5rem var(--navbar-nav-link-padding-x, 1rem);
  font-size: var(--nav-link-font-size, 1rem);
  font-weight: var(--nav-link-font-weight, 400);
  text-decoration: none;
  transition: color 0.15s ease-in-out;
}

@media (max-width: 991px) {
  .navbar-collapse .dropdown-menu {
    position: static;
    background: transparent;
    box-shadow: none;
    padding: 0 0 0.25rem 1rem;
    display: block !important;
    overflow: hidden;
    height: 0;
    transition: height 0.3s ease-in-out;
  }

  .navbar-collapse .dropdown-menu.show {
    height: auto;
  }
}

@media (min-width: 992px) {
  .navbar-expand-lg .navbar-toggler {
    display: none;
  }

  .navbar-expand-lg .navbar-collapse {
    display: flex !important;
    flex-basis: auto;
    height: auto !important;
    overflow: visible;
    transition: none;
  }

  .navbar-expand-lg .navbar-nav {
    flex-direction: row;
    margin-left: auto;
  }
}

.dropdown {
  position: relative;
}

.dropdown-menu {
  position: absolute;
  top: 100%;
  z-index: 1000;
  display: none;
  min-width: var(--dropdown-min-width, 10rem);
  padding: 0.375rem 0;
  background: var(--card-bg);
  list-style: none;
  margin: 0;
  overflow: hidden;
  box-shadow: var(--dropdown-shadow);
  border-radius: 4px;
}

.dropdown-menu.show {
  display: block;
}

.dropdown-menu-end {
  right: 0;
  left: auto;
}

.dropdown-item {
  display: block;
  width: 100%;
  padding: 0.5rem 1.25rem;
  white-space: nowrap;
  text-decoration: none;
  background: transparent;
  border: 0;
  cursor: pointer;
  color: inherit;
}

.dropdown-item:hover {
  background-color: var(--dropdown-link-active-bg, var(--dropdown-hover-bg));
  color: var(--dropdown-link-active-color, inherit);
}

.dropdown-divider {
  height: 0;
  margin: 0.5rem 0;
  border-top: 1px solid var(--dropdown-divider);
}

.spinner-border {
  display: inline-block;
  width: var(--spinner-width, 2rem);
  height: var(--spinner-height, 2rem);
  border: 0.25em solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: spinner-border 0.75s linear infinite;
}

@keyframes spinner-border {
  to {
    transform: rotate(360deg);
  }
}

/* ============================================================
   REVIEWS SECTION
============================================================ */
.reviews-section {
  padding: 5rem 0;
}

.reviews-title {
  text-align: center;
  margin-bottom: 2.5rem;
  font-size: 2rem;
}

.reviews-slider .hs-slide {
  box-sizing: border-box;
}

.review-card {
  background: var(--card-bg);
  border-radius: 8px;
  box-shadow: var(--card-shadow);
  padding: 1.75rem;
  cursor: pointer;
  transition: box-shadow 0.25s ease-in-out, transform 0.25s ease-in-out;
  height: 100%;
  box-sizing: border-box;
}

.review-card:hover {
  box-shadow: var(--card-shadow-hover);
  transform: translateY(-3px);
}

.review-stars {
  color: var(--star-color);
  font-size: 1.1rem;
  margin-bottom: 0.75rem;
  letter-spacing: 2px;
}

.review-text {
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--text-muted);
  margin-bottom: 1.25rem;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.review-author {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.review-author strong {
  display: block;
  font-size: 0.95rem;
}

.review-author span {
  font-size: 0.8rem;
  color: var(--text-muted-2);
}

.review-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--tooltip-bg);
  color: var(--tooltip-color);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 600;
  flex-shrink: 0;
}

/* ============================================================
   MODAL
============================================================ */
.modal-overlay {
  position: fixed;
  inset: 0;
  background: var(--overlay-bg);
  z-index: 9000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.25s ease-in-out, visibility 0.25s ease-in-out;
}

.modal-overlay.modal-open {
  opacity: 1;
  visibility: visible;
}

.modal-box {
  background: var(--card-bg);
  border-radius: 10px;
  padding: 2.5rem;
  max-width: 540px;
  width: 100%;
  position: relative;
  transform: translateY(16px);
  transition: transform 0.25s ease-in-out;
}

.modal-overlay.modal-open .modal-box {
  transform: translateY(0);
}

.modal-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  background: none;
  border: none;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  color: var(--text-muted-2);
  padding: 0.25rem 0.5rem;
}

.modal-close:hover {
  color: var(--ink);
}

.modal-stars {
  font-size: 1.25rem;
}

.modal-text {
  font-size: 1rem;
  line-height: 1.7;
  color: var(--text-muted);
  margin: 1rem 0 1.5rem;
}

/* Modal — fullscreen varianta
   Použití: přidej třídu .modal-fullscreen na .modal-overlay */
.modal-overlay.modal-fullscreen {
  padding: 0;
}

.modal-overlay.modal-fullscreen .modal-box {
  max-width: 100%;
  width: 100%;
  height: 100%;
  border-radius: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  transform: translateY(100%);
}

/* ============================================================
   BOUDA ZVONAŘKA — design vrstva
   Teplá horská bouda: krémová / béžová / tmavě hnědá + okrová akcent.
   Řídí se souborem RADY.md — hranatější tvary, jemné dělicí čáry,
   větší fotografie, střídmé kartičky, klidnější rytmus.
============================================================ */
body {
  background: var(--cream);
  color: var(--ink);
  font-family: var(--font-sans-serif);
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  line-height: 1.6;
}
/* Fraunces: optické velikosti pro plynulé nadpisy */
.bz-h1, .bz-h2, .bz-h3,
.bz-hero2__title, .bz-chapter__title, .bz-stay__t,
.bz-rentband__title, .bz-aud__t, .bz-cta2__title, .bz-perk__t { font-optical-sizing: auto; }

.bz ::selection { background: var(--ochre-deep); color: var(--cream-text); }

/* --- Šířkový rámec --- */
.bz-wrap { max-width: 1440px; margin: 0 auto; padding-left: 48px; padding-right: 48px; }
.bz-wrap--wide { max-width: 1440px; }

/* --- Rytmus sekcí --- */
.bz-section { padding: 96px 0; }
.bz-section--tight { padding: 64px 0; }
.bz-section--dark { background: var(--dark); color: var(--cream-text); }
.bz-section--beige { background: var(--beige); }
.bz-section--ochre { background: var(--ochre-deep); color: var(--cream-text); }

/* --- Typografie --- */
.bz-kicker {
  display: block;
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ochre-deep);
  font-weight: 800;
  margin: 0 0 16px;
}
.bz-section--dark .bz-kicker,
.bz-section--ochre .bz-kicker { color: var(--cream-text); }

.bz-h1 {
  margin: 0;
  font-family: var(--font-head);
  font-weight: 600;
  font-size: clamp(46px, 6vw, 82px);
  line-height: 1.0;
  letter-spacing: -0.01em;
  text-transform: none;
  text-wrap: balance;
}
/* Podnadpisy — Fraunces v normálním zápisu, klidnější tučnost */
.bz-h2 {
  margin: 0 0 24px;
  font-family: var(--font-head);
  font-weight: 600;
  font-size: clamp(32px, 3.6vw, 48px);
  line-height: 1.08;
  letter-spacing: -0.005em;
  text-transform: none;
}
.bz-h3 {
  margin: 0 0 12px;
  font-family: var(--font-head);
  font-weight: 600;
  font-size: clamp(22px, 2.08vw, 27px);
  line-height: 1.2;
}
.bz-lead { font-size: clamp(17px, 1.54vw, 20px); line-height: 1.7; color: var(--ink-soft); }
.bz-p { font-size: clamp(16px, 1.35vw, 17.5px); line-height: 1.8; color: var(--ink); margin: 0 0 18px; max-width: 62ch; }
.bz-section--dark .bz-p,
.bz-sec--dark .bz-p { color: var(--cream-muted); }
.bz-quote {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: clamp(19px, 1.8vw, 23px);
  line-height: 1.55;
  color: var(--honey);
  margin: 0;
  max-width: 52ch;
}

/* --- Tlačítka: tmavá okrová výplň + světlý text (RADY.md bod 1) --- */
.bz-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-sans-serif);
  font-weight: 800;
  font-size: 15px;
  letter-spacing: 0.03em;
  padding: 15px 28px;
  border: none;
  border-radius: 2px;
  cursor: pointer;
  text-decoration: none;
  overflow: hidden;
  isolation: isolate;
  transition: color 0.25s ease, box-shadow 0.25s ease, transform 0.12s ease;
}
/* Hover efekt: barevná vlna vyjede zdola nahoru + šipka poskočí */
.bz-btn::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  transform: translateY(101%);
  transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1);
}
.bz-btn:hover::before { transform: translateY(0); }
.bz-btn:active { transform: translateY(1px); }
/* Šipka na konci textu se při hoveru posune */
.bz-btn__arrow { display: inline-block; transition: transform 0.25s ease; }
.bz-btn:hover .bz-btn__arrow { transform: translateX(4px); }

.bz-btn--primary { background: var(--ochre-deep); color: var(--cream-text); }
.bz-btn--primary::before { background: var(--ink); }
.bz-btn--primary:hover { color: var(--cream-text); }

/* Sekundární: průhledné / tmavé pozadí, světlý text, jemný rámeček */
.bz-btn--ghost {
  background: transparent;
  color: var(--cream-text);
  box-shadow: inset 0 0 0 1.5px var(--line-light);
}
.bz-btn--ghost::before { background: var(--cream-text); }
.bz-btn--ghost:hover { color: var(--ink); box-shadow: inset 0 0 0 1.5px var(--cream-text); }

.bz-btn--dark { background: var(--ink); color: var(--cream-text); }
.bz-btn--dark::before { background: var(--ochre-deep); }
.bz-btn--dark:hover { color: var(--cream-text); }
/* Na okrové sekci by okrová vlna splynula s pozadím — projede krémovou */
.bz-section--ochre .bz-btn--dark::before { background: var(--cream-text); }
.bz-section--ochre .bz-btn--dark:hover { color: var(--ink); }

.bz-btn--light { background: var(--cream-text); color: var(--ink); }
.bz-btn--light::before { background: var(--ochre-deep); }
.bz-btn--light:hover { color: var(--cream-text); }

/* Footer tlačítko — na tmavém pozadí musí vyniknout: medová výplň → světlá při hoveru */
.bz-btn--footer { background: var(--honey); color: var(--ink); }
.bz-btn--footer::before { background: var(--cream-text); }
.bz-btn--footer:hover { color: var(--ink); }

/* Medové tlačítko — teplý akcent (hero sekundární, CTA) */
.bz-btn--honey { background: var(--honey); color: var(--ink); }
.bz-btn--honey::before { background: var(--ochre-deep); }
.bz-btn--honey:hover { color: var(--cream-text); }

.bz-btn--block { width: 100%; justify-content: center; text-transform: uppercase; }

/* Textový odkaz se šipkou — pro obsahové odkazy (RADY.md bod 1) */
.bz-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 800;
  font-size: 13.5px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ochre-deep);
  text-decoration: none;
  transition: gap 0.2s ease-in-out, color 0.2s ease-in-out;
}
.bz-link:hover { gap: 12px; color: var(--ink); }
.bz-section--dark .bz-link,
.bz-sec--dark .bz-link { color: var(--cream-text); }
.bz-section--dark .bz-link:hover,
.bz-sec--dark .bz-link:hover { color: var(--ochre); }
/* Světlá varianta odkazu — pro tmavé fotografie (hero) */
.bz-link--light { color: var(--cream-text); }
.bz-link--light:hover { color: var(--ochre); }
/* Bílá varianta odkazu */
.bz-link--white { color: var(--white); }
.bz-link--white:hover { color: var(--honey); }

/* --- HERO --- */
.bz-hero {
  position: relative;
  min-height: 84vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}
.bz-hero--sub { min-height: 64vh; }
.bz-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
/* Jemný, lokální překryv jen dole (RADY.md bod 4) */
.bz-hero__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgb(var(--photo-scrim) / 0.15) 0%, rgb(var(--photo-scrim) / 0.05) 40%, rgb(var(--photo-scrim) / 0.82) 100%);
}
.bz-hero__inner { position: relative; width: 100%; padding-top: 120px; padding-bottom: 64px; }
/* Nadpis na podstránkách — menší než hero na domovské stránce */
.bz-hero__title { color: var(--cream-text); max-width: 15ch; font-size: clamp(34px, 4.8vw, 62px); }
.bz-hero__sub { color: var(--cream-soft); font-size: clamp(16px, 1.5vw, 21px); line-height: 1.55; max-width: 60ch; margin: 22px 0 30px; }
.bz-hero__actions { display: flex; gap: 14px; flex-wrap: wrap; }

/* Kicker jako decentní štítek (ne badge s tmavým textem) */
.bz-tag {
  display: inline-block;
  font-weight: 800;
  font-size: 11.5px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--cream-text);
  padding: 7px 0 8px;
  border-top: 2px solid var(--ochre);
  margin-bottom: 18px;
}

/* --- Fakta: otevřený prostor + jemné dělicí čáry (RADY.md bod 4) --- */
.bz-facts {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}
.bz-fact { padding: 40px 8px 40px 32px; border-left: 1px solid var(--line-light); }
.bz-fact:first-child { padding-left: 0; border-left: none; }
.bz-fact__n { font-weight: 900; font-size: clamp(30px, 3vw, 42px); color: var(--ochre); line-height: 1; }
.bz-fact__l { font-size: 12.5px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--cream-muted); margin-top: 10px; }

/* --- Editoriální rozložení (obraz + text) --- */
.bz-split {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 64px;
  align-items: center;
}
.bz-split--reverse { grid-template-columns: 0.95fr 1.05fr; }
.bz-split--reverse .bz-split__media { order: -1; }
.bz-split__media img { width: 100%; height: 560px; object-fit: cover; display: block; }
.bz-split--offset .bz-split__media img { height: 620px; margin-top: -40px; }

/* Fotografie — jemné nadzvednutí při hoveru (posun nahoru, bez stínu) */
.bz-photo { transition: transform 0.35s ease; }
.bz-photo:hover { transform: translateY(-10px); }

/* Jemné zaoblení rohů u všech fotografií (2px) */
.bz-ed__media img,
.bz-chapter__media img,
.bz-stay__media,
.bz-stay__media img,
.bz-rentband__media,
.bz-rentband__media img,
.bz-split__media img,
.bz-offer__media,
.bz-offer__media img { border-radius: 2px; }

/* --- Editoriální trojice (Pro koho) — bez masivních boxů (RADY.md bod 7) --- */
.bz-editorial {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
}
.bz-editorial__item { padding: 8px 40px; border-left: 1px solid var(--line); }
.bz-editorial__item:first-child { padding-left: 0; border-left: none; }
.bz-editorial__no { font-weight: 800; font-size: 14px; color: var(--ochre-deep); margin-bottom: 12px; opacity: 0.75; }
.bz-editorial__item h3 { margin: 0 0 10px; font-weight: 800; font-size: clamp(19px, 1.69vw, 22px); }
.bz-editorial__item p { margin: 0; font-size: 15px; line-height: 1.65; color: var(--ink-soft); }

/* --- Sezóny (Zima/Léto) — dvě symetrické fotografie stejné výšky --- */
.bz-seasons { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: start; }
.bz-season__media { position: relative; }
.bz-season__media img { width: 100%; height: 380px; object-fit: cover; display: block; }
.bz-season__label {
  display: inline-block;
  font-weight: 800;
  font-size: 12.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink);
  border-bottom: 2px solid var(--ochre);
  padding-bottom: 4px;
  margin: 22px 0 14px;
}
.bz-season--winter .bz-season__label { border-color: var(--honey); }
.bz-list { margin: 18px 0 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 12px; }
.bz-list li { display: flex; gap: 12px; font-size: 15px; line-height: 1.5; color: var(--ink); }
.bz-list li::before { content: "—"; color: var(--ochre-deep); font-weight: 900; flex-shrink: 0; }
.bz-section--dark .bz-list li,
.bz-sec--dark .bz-list li { color: var(--cream-muted); }

/* --- Nabídka / ubytování — fotografické, minimum rámečků (RADY.md bod 9) --- */
.bz-offers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.bz-offers--duo { grid-template-columns: repeat(2, 1fr); gap: 40px; }
.bz-offer { text-decoration: none; color: var(--ink); display: flex; flex-direction: column; }
.bz-offer__media { overflow: hidden; margin-bottom: 20px; }
.bz-offer__media img { width: 100%; height: 300px; object-fit: cover; display: block; transition: transform 0.5s ease-in-out; }
/* Ve dvojici jsou fotky větší */
.bz-offers--duo .bz-offer__media img { height: 420px; }
.bz-offer:hover .bz-offer__media img { transform: scale(1.04); }
.bz-offer h3 { margin: 0 0 8px; font-weight: 800; font-size: clamp(20px, 1.85vw, 24px); }
.bz-offer p { margin: 0 0 14px; font-size: 15px; line-height: 1.6; color: var(--ink-soft); }
.bz-offer .bz-link { margin-top: auto; }

/* --- Půjčovna: vodorovný pruh (foto + text) --- */
.bz-strip {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 0;
  margin-top: 40px;
  background: var(--paper);
  text-decoration: none;
  color: var(--ink);
  overflow: hidden;
}
.bz-strip__media { overflow: hidden; }
.bz-strip__media img { width: 100%; height: 100%; min-height: 300px; object-fit: cover; display: block; transition: transform 0.5s ease-in-out; }
.bz-strip:hover .bz-strip__media img { transform: scale(1.04); }
.bz-strip__body { padding: 44px 48px; display: flex; flex-direction: column; justify-content: center; }
.bz-strip__title { margin: 0 0 12px; font-weight: 800; font-size: clamp(22px, 2.4vw, 30px); line-height: 1.1; }
.bz-strip__text { margin: 0 0 18px; font-size: 15.5px; line-height: 1.65; color: var(--ink-soft); max-width: 52ch; }

/* --- Služby / vybavení — čistý seznam, ne mřížka karet (RADY.md bod 10) --- */
.bz-features {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0 48px;
}
.bz-feature {
  padding: 22px 0;
  border-top: 1px solid var(--line);
  display: block;
}
.bz-feature h3 { margin: 0 0 5px; font-weight: 800; font-size: clamp(16px, 1.31vw, 17px); }
.bz-feature p { margin: 0; font-size: 14.5px; line-height: 1.55; color: var(--ink-soft); }
.bz-section--dark .bz-feature,
.bz-sec--dark .bz-feature { border-color: var(--line-light); }
.bz-section--dark .bz-feature h3,
.bz-sec--dark .bz-feature h3 { color: var(--cream-text); }
.bz-section--dark .bz-feature p,
.bz-sec--dark .bz-feature p { color: var(--cream-muted); }

/* Varianta s vektorovými ikonami */
.bz-features--icons .bz-feature { display: flex; gap: 16px; align-items: flex-start; padding: 26px 0; }
.bz-feature__ico {
  flex-shrink: 0;
  width: 46px;
  height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ochre-deep);
  background: color-mix(in srgb, var(--ochre) 9%, transparent);
  border-radius: 2px;
  transition: background 0.25s ease, color 0.25s ease;
}
.bz-feature:hover .bz-feature__ico { background: var(--ochre-deep); color: var(--cream-text); }
.bz-feature__body { padding-top: 2px; }
.bz-ico { display: block; }

/* --- Recenze — tenké oddělovače, prostor citacím (RADY.md bod 11) --- */
.bz-reviews-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 20px;
  margin-bottom: 8px;
}
.bz-rating { text-align: right; }
.bz-rating__n { font-weight: 900; font-size: clamp(34px, 3.5vw, 46px); color: var(--ochre); line-height: 1; }
.bz-rating__l { font-size: 12.5px; letter-spacing: 0.04em; color: var(--cream-muted); margin-top: 6px; }
.bz-quotes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin-top: 40px; }
.bz-quote-item { padding: 0 36px; border-left: 1px solid var(--line-light); }
.bz-quote-item:first-child { padding-left: 0; border-left: none; }
.bz-quote-item__stars { color: var(--ochre); letter-spacing: 3px; font-size: 14px; margin-bottom: 16px; }
.bz-quote-item__text {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 18px;
  line-height: 1.6;
  color: var(--cream-soft);
  margin: 0 0 18px;
}
.bz-quote-item__name { font-weight: 800; font-size: 14px; color: var(--cream-text); }
.bz-quote-item__meta { font-size: 12px; color: var(--cream-muted); margin-top: 3px; }

/* --- Závěrečná výzva (CTA) --- */
.bz-cta { display: flex; justify-content: space-between; align-items: center; gap: 32px; flex-wrap: wrap; }
.bz-cta__title { margin: 0 0 10px; font-weight: 900; font-size: clamp(28px, 4vw, 46px); text-transform: uppercase; line-height: 1; }
.bz-cta__text { margin: 0; font-size: clamp(15.5px, 1.31vw, 17px); max-width: 50ch; }
.bz-cta__actions { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; }
.bz-cta__phone { font-weight: 900; font-size: clamp(19px, 1.69vw, 22px); color: var(--ink); text-decoration: none; white-space: nowrap; }
.bz-cta__phone:hover { color: var(--cream-text); }

/* --- Vnitřní stránky: tabulky, formuláře, akordeon --- */
.bz-table-wrap { overflow-x: auto; border-radius: 2px; }
.bz-table { width: 100%; border-collapse: collapse; min-width: 560px; font-size: 15px; border-radius: 2px; overflow: hidden; }
.bz-table thead th {
  background: var(--dark);
  color: var(--cream-text);
  text-align: center;
  padding: 16px 14px;
  font-weight: 800;
  font-size: 13px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.bz-table thead th:first-child { text-align: left; padding-left: 20px; }
.bz-table tbody td { padding: 15px 14px; text-align: center; }
.bz-table tbody td:first-child { text-align: left; padding-left: 20px; }
.bz-table tbody tr:nth-child(odd) { background: var(--paper); }
.bz-table tbody tr:nth-child(even) { background: var(--input-bg-alt); }
.bz-table tbody td span { display: block; font-size: 12.5px; color: var(--ink-soft); margin-top: 2px; }

/* Ceník se dvěma obdobími — pod hlavičkou období je druhý řádek dospělí/děti.
   Bez linek a rámečků, řádky odděluje jen střídavý odstín pozadí. */
/* Sloučené buňky (colspan/rowspan) nutí prohlížeč započítat plnou šířku
   tabulky do scrollWidth stránky, i když ji wrapper odroluje sám — na mobilu
   pak jde odscrollovat celá stránka. contain drží přetečení uvnitř wrapperu. */
.bz-table-wrap:has(.bz-table--cenik) { contain: paint; }
.bz-table--cenik { min-width: 640px; border: 0; }
.bz-table--cenik th,
.bz-table--cenik td { border: 0; }
.bz-table--cenik thead tr:first-child th { padding-bottom: 6px; }
.bz-table--cenik thead tr:last-child th { padding-top: 0; }
.bz-table__podhlavicka {
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.04em;
  padding-bottom: 14px;
  opacity: 0.78;
  text-transform: none;
}
.bz-table__prazdno { color: var(--text-muted-2); font-size: 13px; }
.bz-vizualne-skryto {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

/* Poznámky pod ceníkem (minimální délka pobytu, příplatky) */
.bz-cenik-pozn {
  list-style: none;
  margin: 16px 0 0;
  padding: 0;
  display: grid;
  gap: 7px;
  font-size: 14px;
  line-height: 1.55;
  color: var(--ink-soft);
  max-width: 70ch;
}
.bz-cenik-pozn li { position: relative; padding-left: 16px; }
.bz-cenik-pozn li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.62em;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--ochre);
}

.bz-form { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 20px; align-items: end; }
.bz-field { display: flex; flex-direction: column; }
.bz-field--full { grid-column: 1 / -1; }
.bz-field > span {
  display: block;
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--ink-soft);
  margin-bottom: 8px;
}
.bz-input {
  width: 100%;
  padding: 13px 14px;
  font-size: 15px;
  line-height: 1.3;
  font-family: var(--font-sans-serif);
  border: 1px solid transparent;
  border-radius: 2px;
  background-color: var(--input-bg);
  color: var(--ink);
  /* background-color, ne background — zkratka by animovala i background-position
     a šipka u selectu by při hoveru ujížděla do strany */
  transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}
.bz-input::placeholder { color: var(--input-placeholder); }
/* background-color, ne background — zkratka by u selectu smazala šipku (background-image) */
.bz-input:hover { background-color: var(--input-bg-hover); }
.bz-input:focus { background-color: var(--white); border-color: var(--ochre-deep); box-shadow: 0 0 0 2px var(--focus-ring); }
/* Fokus vstupů řeší silnější barevný okraj a prstenec, ne obrys —
   outline kolem zaobleného pole vypadá hrubě. Klávesový fokus je znát
   ze zesíleného okraje a širšího prstence, takže náhrada výrazem nechybí. */
.bz-input:focus-visible {
  outline: none;
  border-color: var(--ochre-dark);
  box-shadow: 0 0 0 3px var(--focus-ring);
}
select.bz-input { appearance: none; -webkit-appearance: none; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%235d5442' stroke-width='1.8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center; padding-right: 38px;
}
textarea.bz-input { min-height: 96px; line-height: 1.5; }
.bz-check { display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--ink); cursor: pointer; margin-top: 2px; }
.bz-check input { width: 18px; height: 18px; accent-color: var(--ochre-deep); flex-shrink: 0; }

.bz-panel { background: var(--paper); color: var(--ink); padding: 44px; border-radius: 2px; }

/* Rezervační split — širší formulářový panel vpravo, více prostoru */
.bz-split--form { grid-template-columns: 0.8fr 1.2fr; gap: 48px; }

/* ============================================================
   STRÁNKA REZERVACE — formulář dle typu (?typ=)
============================================================ */
.bz-resw__tabs { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 28px; }
.bz-resw__tab {
  font-weight: 700; font-size: 14px; letter-spacing: 0.02em;
  padding: 11px 22px; border-radius: 2px; text-decoration: none;
  color: var(--cream-muted); background: rgba(243, 239, 228, 0.08);
  transition: background 0.2s ease, color 0.2s ease;
}
.bz-resw__tab:hover { background: rgba(243, 239, 228, 0.16); color: var(--cream-text); }
.bz-resw__tab.is-active { background: var(--honey); color: var(--ink); }

/* Formulář využije celou šířku obsahu — dřív ho brzdil max-width 1040px */
.bz-resw { display: grid; grid-template-columns: 0.42fr 1fr; gap: 56px; align-items: start; }
.bz-resw__aside { position: sticky; top: 96px; }
.bz-resw__aside h2 { margin-bottom: 10px; }
.bz-resw__panel { align-self: start; }
.bz-resw__note { margin: 20px 0 0; font-size: 13.5px; line-height: 1.5; color: var(--ink-soft); font-style: italic; }
/* Kontakt v postranním sloupci — ikona + text na jednom řádku */



/* Přepínání formulářů bez znovunačtení — jemné prolnutí */
.bz-resw__form[hidden], .bz-resw__head[hidden] { display: none; }
.bz-resw__form.is-shown { animation: bz-res-fade 0.28s ease both; }
@keyframes bz-res-fade {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .bz-resw__form.is-shown { animation: none; }
}

/* Sdílená závěrečná výzva (CTA) — vlevo text, vpravo tlačítko + telefon.
   Vše ve svém sloupci zarovnané doleva. Používá se přes parts/cta.php. */
.bz-cta2 { background: var(--dark); color: var(--cream-text); }
/* Jen tam, kde je CTA poslední sekcí před patičkou (Aktivity), jinak by
   obě tmavé plochy splynuly v jednu. Ostatní stránky mají za CTA další obsah. */
.bz-cta2:last-of-type { background: var(--dark-2); }
.bz-cta2__inner { display: grid; grid-template-columns: 1.3fr auto; gap: 48px; align-items: center; }
.bz-cta2__lead { min-width: 0; }
.bz-cta2__title { margin: 0 0 12px; font-family: var(--font-head); font-weight: 600; font-size: clamp(30px, 4vw, 48px); line-height: 1.06; }
.bz-cta2__text { margin: 0; font-size: clamp(16px, 1.38vw, 18px); line-height: 1.6; color: var(--cream-muted); max-width: 52ch; }
.bz-cta2__actions { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; }
.bz-cta2__phone { display: flex; flex-direction: column; gap: 6px; }
.bz-cta2__phone-label {
  font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase;
  font-weight: 700; color: var(--honey);
}
/* Telefon — druhý, měkčí způsob kontaktu vedle tlačítka */
.bz-cta2__phone-link {
  align-self: flex-start;
  color: var(--cream-text); text-decoration: none;
  font-weight: 800; font-size: 22px; letter-spacing: 0.01em;
  transition: color 0.2s ease;
}
.bz-cta2__phone-link:hover { color: var(--honey); }
@media (max-width: 767px) {
  .bz-cta2__inner { grid-template-columns: 1fr; gap: 28px; }
}

/* Sjednocené zaoblení barevných panelů a pruhů (2px jako fotky/tlačítka) */
.bz-rules, .bz-priceband, .bz-cform, .bz-map, .bz-rentband, .bz-parking { border-radius: 2px; }

/* --- Roubenka: tmavý panel pravidel --- */
.bz-rules { background: var(--dark); color: var(--cream-text); padding: 40px; }
.bz-rules__title { margin: 0 0 20px; font-weight: 800; font-size: 15px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--honey); }
.bz-rules .bz-list li { color: var(--cream-muted); }
.bz-rules .bz-list li::before { color: var(--honey); }

/* --- Ceník roubenky: tmavý pruh s cenami --- */
.bz-priceband { background: var(--dark); color: var(--cream-text); padding: 40px; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 24px; }
.bz-priceband__label { font-weight: 900; font-size: clamp(21px, 2.00vw, 26px); text-transform: uppercase; }
.bz-priceband__sub { font-size: 14px; color: var(--cream-muted); margin-top: 6px; }
.bz-priceband__cols { display: flex; gap: 40px; flex-wrap: wrap; }
.bz-priceband__col { text-align: center; }
.bz-priceband__period { font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--cream-muted); margin-bottom: 8px; }
.bz-priceband__price { font-weight: 900; font-size: clamp(24px, 2.31vw, 30px); color: var(--ochre); }

/* --- Kontakt: formulářový panel + parkovací blok --- */
.bz-cform { background: var(--dark); color: var(--cream-text); padding: 40px; }
.bz-cform__ok { background: var(--dark-2); padding: 36px; text-align: center; }
.bz-cform__rows { display: flex; flex-direction: column; gap: 20px; }
.bz-cform__pair { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.bz-cform .bz-field > span { color: var(--cream-muted); }
.bz-cform__title { color: var(--cream-text); font-size: clamp(22px, 2.6vw, 32px); margin-bottom: 10px; }
/* Perex nad formulářem — .bz-p má tmavý text pro světlé sekce,
   na tmavém panelu by splynul s pozadím */
.bz-cform__perex {
  margin: 0 0 22px;
  font-size: 15px; line-height: 1.6;
  color: var(--cream-muted);
}
.bz-cform__perex a { color: var(--honey); text-decoration: none; font-weight: 700; }
.bz-cform__perex a:hover { color: var(--cream-text); }
/* Formulář přes celou šířku — text vlevo, pole vpravo, ať není rozvláčný */
.bz-cform__intro { max-width: 46ch; }
@media (min-width: 992px) {
  .bz-cform { display: grid; grid-template-columns: 0.7fr 1.3fr; gap: 56px; align-items: start; padding: 48px; }
  .bz-cform__intro { margin: 0; }
  .bz-cform__perex { margin-bottom: 0; }
}
.bz-cform > .bz-p { margin-bottom: 24px; }
.bz-cform__ok .bz-ok__mark { color: var(--ochre); }
.bz-cform__ok h3 { color: var(--cream-text); }
/* Mapa+formulář split — nižší gap, zarovnané na výšku */
.bz-split--map { gap: 24px; align-items: stretch; }
.bz-parking { padding: 48px; display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 48px; align-items: start; }
.bz-parking__head { align-self: center; }
.bz-parking__ico {
  display: inline-flex; align-items: center; justify-content: center;
  width: 52px; height: 52px; margin-bottom: 18px;
  color: var(--cream-text); background: rgba(243, 239, 228, 0.14); border-radius: 2px;
}
.bz-parking__ico .bz-ico { width: 30px; height: 30px; }
.bz-parking__title { margin: 0; font-size: clamp(24px, 3vw, 38px); text-transform: uppercase; }
.bz-parking__lead { margin: 10px 0 0; font-size: 16px; line-height: 1.5; color: color-mix(in srgb, var(--cream-text) 80%, transparent); }
/* Dvě informace pod sebou, oddělené jemnou linkou */
.bz-parking__items { display: flex; flex-direction: column; gap: 22px; }
.bz-parking__item { padding-top: 22px; border-top: 1px solid var(--line-light); }
.bz-parking__item:first-child { padding-top: 0; border-top: none; }
.bz-parking__item-title {
  margin: 0 0 8px; font-family: var(--font-head); font-weight: 600;
  font-size: clamp(17px, 1.46vw, 19px); line-height: 1.25; color: var(--cream-text);
}
.bz-parking__text { margin: 0; font-size: 15.5px; line-height: 1.65; color: color-mix(in srgb, var(--cream-text) 86%, transparent); }
.bz-parking .bz-p { color: var(--cream-text); max-width: none; }
@media (max-width: 767px) {
  .bz-cform__pair { grid-template-columns: 1fr; }
  .bz-parking { grid-template-columns: 1fr; gap: 20px; }
}

/* ============================================================
   CONTACT FORM 7 — napojení na vzhled šablony
   CF7 obaluje pole do <span>, ta musí být blokové, jinak se
   vstupy v .bz-field zúží. Hlášky sladěné s tmavým panelem.
============================================================ */
/* Světlý panel rezervace — stejná pravidla jako tmavý .bz-cform */
.bz-resw__panel .wpcf7-form-control-wrap { display: block; }
.bz-resw__panel .wpcf7-form-control-wrap .bz-input { width: 100%; box-sizing: border-box; }
.bz-resw__panel .screen-reader-response { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); }
.bz-resw__panel .wpcf7-not-valid-tip {
  display: block; margin-top: 7px;
  font-size: 11.5px; font-weight: 600; text-transform: none; color: var(--error);
}
.bz-resw__panel .wpcf7-form-control.wpcf7-not-valid {
  border-color: var(--error); box-shadow: inset 3px 0 0 var(--error);
}
/* Hláška leží uvnitř gridu .bz-form, který má align-items: end — bez
   align-self by se pruh smrštil na výšku textu a padding by se nepropsal. */
.bz-resw__panel form .wpcf7-response-output {
  grid-column: 1 / -1;
  align-self: stretch;
  box-sizing: border-box;
  margin: 18px 0 0; padding: 15px 18px; border: 0; border-radius: 2px;
  font-size: 14.5px; font-weight: 600; line-height: 1.55;
  color: var(--cream-text); background: var(--dark-2);
}
/* Dokud formulář nic nehlásí, pruh se nesmí zobrazovat */
.bz-resw__panel form.init .wpcf7-response-output,
.bz-resw__panel form.submitting .wpcf7-response-output,
.bz-resw__panel form.resetting .wpcf7-response-output { display: none; }
/* Checkbox u rezervace — popisek normálním písmem, ne verzálkami */
.bz-resw__panel .bz-check,
.bz-resw__panel .bz-check .wpcf7-list-item-label {
  font-size: 14.5px; font-weight: 400; letter-spacing: 0; text-transform: none;
  color: var(--ink);
}
.bz-resw__panel .bz-check .wpcf7-list-item { margin: 0; }
.bz-resw__panel .bz-check .wpcf7-form-control-wrap { display: inline-flex; }
.bz-resw__panel form.wpcf7-form.sent .wpcf7-response-output { border: 0; background: var(--success); }
.bz-resw__panel form.wpcf7-form.invalid .wpcf7-response-output,
.bz-resw__panel form.wpcf7-form.unaccepted .wpcf7-response-output,
.bz-resw__panel form.wpcf7-form.failed .wpcf7-response-output,
.bz-resw__panel form.wpcf7-form.spam .wpcf7-response-output,
.bz-resw__panel form.wpcf7-form.aborted .wpcf7-response-output { border: 0; background: var(--error); }
/* CF7 vkládá skrytá pole a spinner — nesmí rozbít grid .bz-form */
.bz-resw__panel .hidden-fields-container { display: none; }
/* Spinner CF7 se nezobrazuje — stav odesílání nese tlačítko samo. */
.bz-resw__panel .wpcf7-spinner { display: none; }

.bz-cform .wpcf7-form-control-wrap { display: block; }
/* CF7 dává vstupům size="40"; bez border-box by padding a rámeček
   šířku ještě zvětšily a pole by přetékalo z panelu */
.bz-cform .wpcf7-form-control-wrap .bz-input { width: 100%; box-sizing: border-box; }
/* CF7 vkládá <p> obaly, když se formulář edituje ve vizuálním režimu */
.bz-cform .wpcf7-form > p { margin: 0; }
.bz-cform .screen-reader-response { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); }

/* Chybová hláška u konkrétního pole — drobná poznámka pod vstupem */
.bz-cform .wpcf7-not-valid-tip {
  display: block;
  margin-top: 7px;
  font-size: 11.5px; font-weight: 600; letter-spacing: 0.01em;
  /* CF7 hláška dědí velikost i transform z .bz-field > span (verzálky) */
  text-transform: none;
  color: var(--error-soft);
}
/* Chybné pole: červený rámeček + pruh vlevo.
   Světlé pozadí vstupu zůstává, jinak by pole splynulo s tmavým panelem. */
.bz-cform .wpcf7-form-control.wpcf7-not-valid {
  border-color: var(--error);
  box-shadow: inset 3px 0 0 var(--error);
}
.bz-cform .wpcf7-form-control.wpcf7-not-valid:focus {
  border-color: var(--error);
  box-shadow: inset 3px 0 0 var(--error), 0 0 0 2px rgba(163, 58, 42, 0.28);
}

/* Souhrnná hláška pod tlačítkem — plná barevná výplň, bez rámečku:
   zelená = odesláno, červená = chyba */
/* CF7 vkládá vlastní inline styl s rámečkem — přebíjíme ho */
.bz-cform form .wpcf7-response-output {
  margin: 18px 0 0; padding: 15px 18px;
  border: 0; border-radius: 2px;
  font-size: 14.5px; font-weight: 600; line-height: 1.55;
  color: var(--cream-text); background: var(--dark-2);
}
.bz-cform form.wpcf7-form.sent .wpcf7-response-output {
  border: 0; background: var(--success); color: var(--cream-text);
}
.bz-cform form.wpcf7-form.invalid .wpcf7-response-output,
.bz-cform form.wpcf7-form.unaccepted .wpcf7-response-output,
.bz-cform form.wpcf7-form.failed .wpcf7-response-output,
.bz-cform form.wpcf7-form.spam .wpcf7-response-output,
.bz-cform form.wpcf7-form.aborted .wpcf7-response-output {
  border: 0; background: var(--error); color: var(--cream-text);
}

/* Odesílací tlačítko + spinner */
.bz-cform .wpcf7-submit { width: 100%; justify-content: center; }

/* CF7 renderuje tlačítko jako <input>, kde prohlížeč nevykreslí ::before —
   vlna z .bz-btn tu nefunguje, nahrazuje ji přechod pozadí + nadzvednutí. */
input.wpcf7-submit.bz-btn {
  transition: background-color 0.3s ease, color 0.3s ease,
              transform 0.18s ease, box-shadow 0.3s ease;
}
input.wpcf7-submit.bz-btn--primary:hover {
  background-color: var(--ink);
  color: var(--cream-text);
  transform: translateY(-2px);
  box-shadow: 0 6px 18px color-mix(in srgb, var(--ink) 22%, transparent);
}
input.wpcf7-submit.bz-btn:active { transform: translateY(0); box-shadow: none; }
input.wpcf7-submit.bz-btn:focus-visible {
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--ochre-deep) 35%, transparent);
}
/* během odesílání tlačítko ztlumíme, ať je jasné, že se pracuje */
.wpcf7-form.submitting input.wpcf7-submit.bz-btn { opacity: 0.75; transform: none; }

@media (prefers-reduced-motion: reduce) {
  input.wpcf7-submit.bz-btn--primary:hover { transform: none; }
}
.bz-cform .wpcf7-spinner { display: none; }

/* --- Aktivity: vzdálenost, meta štítky výletů, řádky restaurací --- */
.bz-dist { font-weight: 800; font-size: 14px; color: var(--ochre-deep); margin: 2px 0 8px; }
.bz-trip__meta { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
.bz-trip__tag { font-weight: 800; font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-soft); }
.bz-trip__tag--level { color: var(--ochre-deep); }
.bz-eat { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; }
.bz-eat__dist { flex-shrink: 0; font-weight: 800; font-size: 13px; color: var(--ochre-deep); white-space: nowrap; }
.bz-note { margin: 28px 0 0; font-size: 13px; color: var(--muted-2); font-style: italic; }

/* Kategorie u položky vybavení (Co si u nás půjčíte) */
.bz-feature__cat { font-size: 12.5px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ochre); margin: 2px 0 6px; font-weight: 700; }

/* Ceníkové poznámky (dvousloupcová sekce pod tabulkou) */
.bz-notes { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; margin-top: 40px; }
@media (max-width: 767px) { .bz-notes { grid-template-columns: 1fr; gap: 24px; } }
/* Poznámka nad ceníkovou tabulkou i texty pod ní jdou přes celou šířku
   sloupce — jinak by nelícovaly s tabulkou. */
.bz-notes .bz-p,
.bz-p:has(+ .bz-table-wrap) { max-width: none; }

/* Popis pod nadpisem v tmavé hlavičce (Galerie, Kontakt) */
.bz-head-sub { color: var(--cream-muted); max-width: 60ch; }

.bz-accordion__btn {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: var(--beige);
  border: none;
  padding: 24px 28px;
  cursor: pointer;
  font-family: var(--font-sans-serif);
  text-align: left;
  transition: background 0.2s ease-in-out;
}
.bz-accordion__btn:hover { background: var(--accordion-hover); }
/* Nadpis obaluje tlačítko (kvůli sémantice), vlastní odsazení nepřidává */
.bz-accordion__nadpis { margin: 0; font-weight: 800; font-size: clamp(16.5px, 1.46vw, 19px); }
.bz-accordion__btn > span:first-child { font-weight: 800; }
.bz-accordion__sign { font-weight: 900; font-size: 26px; color: var(--ochre-deep); line-height: 1; }
.bz-accordion__panel { display: none; padding: 28px; background: var(--paper); }
.bz-accordion.is-open .bz-accordion__panel { display: block; }

/* --- Galerie --- */
.bz-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
/* display:grid na položce by přebil [hidden], skrytí musí vyhrát */
.bz-gallery[hidden],
.bz-gallery__item[hidden] { display: none; }

/* Prázdný stav (galerie bez fotek) a hláška u nedostupného formuláře */
.bz-prazdny-stav,
.bz-form-chyba {
  margin: 0;
  padding: 28px;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 2px;
  color: var(--ink-soft);
  font-size: 15.5px;
  line-height: 1.6;
  text-align: center;
}
.bz-prazdny-stav[hidden] { display: none; }
.bz-gallery__item { border: none; padding: 0; margin: 0; cursor: pointer; background: var(--beige); overflow: hidden; aspect-ratio: 4/3; display: block; }
/* Zvětšení při najetí. scale3d + backface-visibility drobí obraz v samostatné vrstvě
   na GPU, jinak prohlížeč přepočítává rastr a fotka při přechodu cukne o pixel. */
.bz-gallery__item img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform 0.4s ease-in-out;
  transform: scale3d(1, 1, 1);
  backface-visibility: hidden;
  will-change: transform;
}
.bz-gallery__item:hover img { transform: scale3d(1.05, 1.05, 1); }
.bz-filters { display: flex; gap: 10px; flex-wrap: wrap; }
.bz-filter {
  border: none;
  cursor: pointer;
  font-family: var(--font-sans-serif);
  font-weight: 800;
  font-size: 13px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 11px 18px;
  background: var(--dark-2);
  color: var(--cream-muted);
  transition: background 0.2s ease-in-out, color 0.2s ease-in-out;
}
.bz-filter.is-active { background: var(--ochre-deep); color: var(--cream-text); }

/* Lightbox musí překrýt i sticky menu (z-index 1030) a loader (1031) */
.bz-lightbox {
  position: fixed; inset: 0; z-index: 1100;
  background: color-mix(in srgb, var(--dark) 95%, transparent);
  display: flex; align-items: center; justify-content: center; padding: 40px;
  /* zavřený stav — držíme ve flexu, aby šel plynule animovat */
  opacity: 0;
  visibility: hidden;
  backdrop-filter: blur(0px);
  transition: opacity 0.3s ease, visibility 0.3s ease, backdrop-filter 0.3s ease;
}
.bz-lightbox.is-open { opacity: 1; visibility: visible; backdrop-filter: blur(4px); }

/* Fotka se při otevření jemně přiblíží a vyjede zdola */
.bz-lightbox img {
  max-width: 90%; max-height: 82vh; object-fit: contain;
  opacity: 0;
  transform: scale(0.94) translateY(12px);
  transition: opacity 0.35s ease 0.05s, transform 0.35s cubic-bezier(0.2, 0.8, 0.3, 1) 0.05s;
}
.bz-lightbox.is-open img { opacity: 1; transform: none; }

/* Ovládací prvky doplouvají s malým zpožděním za fotkou */
.bz-lightbox__close, .bz-lightbox__nav {
  position: absolute; background: rgba(242, 238, 228, 0.12); border: none; color: var(--cream-text); cursor: pointer;
  border-radius: 2px;
  opacity: 0;
  transition: opacity 0.3s ease 0.15s, background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.bz-lightbox.is-open .bz-lightbox__close,
.bz-lightbox.is-open .bz-lightbox__nav { opacity: 1; }
.bz-lightbox__close { top: 20px; right: 24px; font-size: 34px; width: 48px; height: 48px; background: none; }
.bz-lightbox__nav { top: 50%; transform: translateY(-50%); font-size: 30px; width: 56px; height: 56px; }
.bz-lightbox__nav:hover, .bz-lightbox__close:hover { background: var(--ochre-deep); color: var(--cream-text); }
.bz-lightbox__prev:hover { transform: translateY(-50%) translateX(-3px); }
.bz-lightbox__next:hover { transform: translateY(-50%) translateX(3px); }
.bz-lightbox__close:hover { transform: rotate(90deg); }
.bz-lightbox__prev { left: 16px; }
.bz-lightbox__next { right: 16px; }
.bz-lightbox__counter {
  position: absolute; bottom: 22px; left: 0; right: 0; text-align: center;
  color: var(--cream-muted); font-size: 13px; letter-spacing: 0.1em;
  opacity: 0; transition: opacity 0.3s ease 0.2s;
}
.bz-lightbox.is-open .bz-lightbox__counter { opacity: 1; }

/* Uživatelé s omezenými animacemi — jen prolnutí, žádné posuny */
@media (prefers-reduced-motion: reduce) {
  .bz-lightbox img { transition: opacity 0.2s ease; transform: none; }
  .bz-lightbox__prev:hover, .bz-lightbox__next:hover { transform: translateY(-50%); }
  .bz-lightbox__close:hover { transform: none; }
}

/* Lightbox na mobilu: menší padding, šipky dolů pod fotku (jinak ji překrývaly) */
@media (max-width: 767px) {
  .bz-lightbox { padding: 64px 12px 96px; }
  .bz-lightbox img { max-width: 100%; max-height: 70vh; }
  .bz-lightbox__nav { top: auto; bottom: 24px; transform: none; width: 52px; height: 52px; }
  /* šipky jsou dole, ne svisle vystředěné — hover posun bez translateY */
  .bz-lightbox__prev:hover { transform: translateX(-3px); }
  .bz-lightbox__next:hover { transform: translateX(3px); }
  .bz-lightbox__prev { left: 24px; }
  .bz-lightbox__next { right: 24px; }
  .bz-lightbox__counter { bottom: 40px; }
  .bz-lightbox__close { top: 12px; right: 12px; }
}

/* --- Kontakt --- */
.bz-info-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--line); }
.bz-info { background: var(--beige); padding: 30px 26px; transition: background 0.25s ease; }
.bz-info:hover { background: var(--accordion-hover); }
/* Ikona kontaktu — okrová, jemně zvětší při najetí na dlaždici */
.bz-info__ico {
  display: inline-flex; align-items: center; justify-content: center;
  width: 42px; height: 42px; margin-bottom: 16px;
  color: var(--ochre-deep); background: rgba(156, 90, 34, 0.1);
  border-radius: 2px;
  transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}
.bz-info:hover .bz-info__ico { background: var(--ochre-deep); color: var(--cream-text); transform: translateY(-2px); }
.bz-info__label { font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-soft); font-weight: 800; margin-bottom: 12px; }
.bz-info__value { font-weight: 800; font-size: clamp(16px, 1.46vw, 19px); line-height: 1.3; }
.bz-info__value a { color: var(--ink); text-decoration: none; word-break: break-word; }
.bz-info__value a:hover { color: var(--ochre-deep); }
.bz-map { min-height: 460px; background: var(--beige); overflow: hidden; }
.bz-map iframe { width: 100%; height: 100%; min-height: 460px; border: 0; display: block; }
/* Mapa přes celou šířku (pod formulářem) + odkaz do Google Maps */
.bz-map--wide { min-height: 420px; }
.bz-map--wide iframe { min-height: 420px; }
.bz-map__link {
  display: inline-flex; align-items: center; gap: 9px; margin-top: 16px;
  font-weight: 800; font-size: 13.5px; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--ochre-deep); text-decoration: none;
  transition: gap 0.2s ease, color 0.2s ease;
}
.bz-map__link:hover { gap: 13px; color: var(--ink); }
.bz-map__link .bz-ico { width: 18px; height: 18px; }

/* --- Formulářový úspěch --- */
.bz-ok { padding: 40px 8px; text-align: center; }
.bz-ok__mark { font-size: clamp(32px, 3.08vw, 40px); color: var(--honey); font-weight: 900; margin-bottom: 14px; }

/* ============================================================
   BOUDA ZVONAŘKA — hlavička / patička
============================================================ */
.bz-topbar {
  background: var(--dark);
  color: var(--cream-muted);
  font-size: 11.5px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
/* Obsah topbaru srovnaný do stejné šířky jako menu (1440px) */
.bz-topbar__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
}
.bz-topbar__left, .bz-topbar__right { display: flex; align-items: center; gap: 16px; padding: 8px 0; flex-wrap: wrap; }
.bz-topbar a { color: var(--topbar-link); text-decoration: none; }
.bz-topbar a:hover { color: var(--ochre); }
.bz-topbar__dot { color: var(--ochre); }

.site-header { position: relative; z-index: 1030; }

/* Jen bílé menu je sticky — tmavý topbar odjede nahoru s obsahem */
.navbar.bz-navbar {
  position: sticky;
  top: 0;
  left: auto;
  right: auto;
  z-index: 1030;
  padding: 0;
  width: 100%;
  background: var(--cream);
  transition: box-shadow 0.3s ease-in-out;
}
.bz-navbar.navbar-floating { box-shadow: var(--navbar-floating-shadow); }

/* Kotvy (#cenik, #rezervace, #bz-form) nesmí zmizet pod sticky menu */
[id="cenik"], [id="rezervace"], [id="bz-form"] { scroll-margin-top: 90px; }
.bz-navbar > .container,
.bz-navbar .bz-navrow {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  padding: 16px 24px;
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
}
.bz-logo { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--ink); flex-shrink: 0; }
.bz-logo__mark {
  width: 42px; height: 42px; background: var(--ochre-deep); color: var(--white);
  display: flex; align-items: center; justify-content: center; flex-shrink: 0; border-radius: 2px;
  transition: background 0.25s ease, transform 0.25s ease;
}
.bz-logo__mark svg { display: block; transition: transform 0.25s ease; }
/* Hover loga: značka se nadzvedne a rozjasní, hory se lehce zvětší */
.bz-logo:hover .bz-logo__mark { background: var(--honey); transform: translateY(-2px); }
.bz-logo:hover .bz-logo__mark svg { transform: scale(1.08); }
.bz-logo__name b { transition: color 0.25s ease; }
.bz-logo:hover .bz-logo__name b { color: var(--ochre-deep); }
.bz-logo__name { display: flex; flex-direction: column; line-height: 1.05; }
.bz-logo__name b { font-weight: 900; font-size: clamp(16px, 1.46vw, 19px); letter-spacing: 0.02em; }
.bz-logo__name span { font-size: 10.5px; letter-spacing: 0.22em; color: var(--muted-2); }

.bz-nav { display: flex; gap: 26px; align-items: center; flex: 1; min-width: 0; }
/* nowrap: odkazy drží jeden řádek, na užším desktopu se zmenší mezery (viz @media 1199px) */
.bz-nav__links { display: flex; gap: 26px; align-items: center; flex-wrap: nowrap; flex: 1; justify-content: center; min-width: 0; }
.bz-nav__cta { flex-shrink: 0; padding: 11px 20px; font-size: 13px; }
.bz-nav a.bz-navlink {
  position: relative;
  text-decoration: none;
  color: var(--ink);
  font-weight: 600;
  font-size: 15px;
  letter-spacing: 0.04em;
  padding: 4px 0;
  white-space: nowrap;
  transition: color 0.15s ease-in-out;
}
.bz-nav a.bz-navlink:hover { color: var(--ochre-deep); }
.bz-nav .current-menu-item > a.bz-navlink,
.bz-nav a.bz-navlink.is-active { color: var(--ink); }
.bz-nav .current-menu-item > a.bz-navlink::after,
.bz-nav a.bz-navlink.is-active::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 3px; background: var(--ochre-deep);
}

.bz-langswitch { display: flex; align-items: center; gap: 7px; }
.bz-langswitch a { color: var(--cream-muted); text-decoration: none; font-weight: 700; }
.bz-langswitch a.is-active { color: var(--ochre); }
.bz-langswitch span { color: var(--langswitch-sep); }

/* Mobilní menu toggle přebírá stávající .navbar-toggler chování z base CSS */
.bz-toggler { display: none; }

/* --- Patička --- */
.bz-footer { background: var(--dark); color: var(--footer-text); }
.bz-footer__grid { display: grid; grid-template-columns: 1.6fr 1fr 1.2fr; gap: 56px; padding: 64px 0; }
.bz-footer h4 { margin: 0 0 18px; font-size: 16px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ochre); font-weight: 800; }
.bz-footer__brand { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; }
.bz-footer__brand b { font-weight: 900; font-size: clamp(17px, 1.54vw, 20px); color: var(--cream-text); letter-spacing: 0.02em; }
.bz-footer p { margin: 0; font-size: 14.5px; line-height: 1.75; color: var(--cream-muted); max-width: 320px; }
/* Adresa stejně světlá jako telefon a e-mail v kontaktech */
.bz-footer__address { margin-top: 18px; font-style: normal; font-size: 14.5px; line-height: 1.7; color: var(--footer-text); font-weight: 500; }
.bz-footer__social { display: flex; gap: 12px; margin-top: 8px; }
.bz-footer__social a {
  width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center;
  color: var(--cream-text); background: rgba(243, 239, 228, 0.08); border-radius: 2px;
  transition: background-color 0.25s ease, color 0.25s ease, transform 0.25s ease;
}
/* Nadzvednutí i lehké zvětšení ikony — stejný rukopis jako ostatní ikony na webu */
.bz-footer .bz-footer__social a:hover,
.bz-footer .bz-footer__social a:focus-visible { background-color: var(--honey); color: var(--ink); transform: translateY(-3px); }
.bz-footer__social svg { width: 20px; height: 20px; transition: transform 0.25s ease; }
.bz-footer__social a:hover svg { transform: scale(1.1); }
@media (prefers-reduced-motion: reduce) {
  .bz-footer__social a:hover { transform: none; }
  .bz-footer__social a:hover svg { transform: none; }
}
.bz-footer__links { display: flex; flex-direction: column; gap: 11px; }
.bz-footer__links a { color: var(--footer-text); text-decoration: none; font-size: 14.5px; }
.bz-footer__links a:hover { color: var(--cream-text); }
.bz-footer__contact { display: flex; flex-direction: column; gap: 12px; font-size: 14.5px; color: var(--cream-muted); }
/* Kontaktní řádky s ikonou — ikona je pevná, text se láme vedle ní */
.bz-footer__contact > a,
.bz-footer__provoz { display: flex; align-items: center; gap: 10px; }
.bz-footer__contact .bz-ico {
  flex-shrink: 0; width: 18px; height: 18px;
  color: var(--ochre); transition: color 0.2s ease;
}
.bz-footer__contact > a:hover .bz-ico { color: var(--honey); }
.bz-footer__provoz { color: var(--ochre); font-weight: 700; margin-top: 4px; }
.bz-footer__legal { display: flex; gap: 22px; }
/* Telefon a e-mail o něco výraznější než okolní drobný text */
.bz-footer__contact a { color: var(--footer-text); text-decoration: none; font-weight: 500; }
.bz-footer__contact a:hover { color: var(--cream-text); }
/* Odsazení tlačítka Rezervovat od textu nad ním
   (.bz-footer p má margin: 0, utility třída by se neuplatnila) */
.bz-btn--footer { margin-top: 22px; }
/* Tmavé dřevo — světlejší než patička, spodní lišta se tak odliší */
.bz-footer__bar { background: var(--dark-2); padding: 20px 0; font-size: 14px; color: var(--footer-text); }
.bz-footer__bar-inner { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
.bz-footer__bar a { color: var(--muted-3); text-decoration: none; }
.bz-footer__bar a:hover { color: var(--footer-text); }
.bz-footer__author { color: var(--muted-3); }
.bz-footer__author a { color: var(--ochre); }
.bz-footer__author a:hover { color: var(--cream-text); }

/* ============================================================
   REDESIGN KOMPOZICE DOMOVSKÉ STRÁNKY (v2)
   Autorský editorial uvnitř stávající šířky — asymetrie, střídání
   poměrů obraz/text, typografické pásy, různý vertikální rytmus.
   Šířka kontejneru se NEZVĚTŠUJE (bz-wrap zůstává ~1280px).
============================================================ */

/* Rytmus: sekce mají různou výšku, ne mechanicky stejný padding */
.bz-sec { padding: 104px 0; }
.bz-sec--airy { padding: 132px 0; }
.bz-sec--compact { padding: 72px 0; }
.bz-sec--dark { background: var(--dark); color: var(--cream-text); }
.bz-sec--beige { background: var(--beige); }

/* Nadpis sekce s jemným okem (eyebrow) — používat střídmě */
.bz-eyebrow {
  display: inline-block;
  font-size: 13px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--ochre);
  margin: 0 0 10px;
}
.bz-sec--dark .bz-eyebrow { color: var(--ochre); }

/* --- HERO v2 — větší textový blok, lokální překryv za textem --- */
.bz-hero2 { position: relative; min-height: 64vh; display: flex; align-items: flex-end; overflow: hidden; }
.bz-hero2__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
/* Překryv jen lokálně za textem — vlevo dole, ne přes celý obraz */
.bz-hero2__overlay {
  position: absolute; inset: 0;
  background:
    linear-gradient(90deg, rgb(var(--hero-scrim) / 0.72) 0%, rgb(var(--hero-scrim) / 0.34) 42%, rgb(var(--hero-scrim) / 0) 70%),
    linear-gradient(0deg, rgb(var(--hero-scrim) / 0.55) 0%, rgb(var(--hero-scrim) / 0) 46%);
}
.bz-hero2__inner { position: relative; width: 100%; padding-top: 120px; padding-bottom: 64px; }
.bz-hero2__panel { max-width: 800px; }
.bz-hero2__eyebrow {
  display: inline-block; font-size: 13.5px; letter-spacing: 0.16em; text-transform: uppercase;
  font-weight: 700; color: var(--cream-text); padding-bottom: 6px; border-bottom: 2px solid var(--ochre); margin-bottom: 26px;
}
.bz-hero2__title { margin: 0; color: var(--cream-text); font-family: var(--font-head); font-weight: 600; font-size: clamp(48px, 6.2vw, 84px); line-height: 1.0; letter-spacing: -0.01em; text-transform: none; }
.bz-hero2__sub { color: var(--cream-soft); font-size: clamp(17px, 1.5vw, 21px); line-height: 1.6; max-width: 48ch; margin: 28px 0 38px; }
.bz-hero2__actions { display: flex; gap: 20px; align-items: center; flex-wrap: wrap; }

/* --- Statistiky jako typografický pás (bez boxů) --- */
.bz-statbar { display: grid; grid-template-columns: repeat(4, 1fr); }
.bz-statbar--onhero { margin-top: -1px; }
.bz-stat { padding: 34px 10px 34px 40px; border-left: 1px solid var(--line-light); }
.bz-stat:first-child { padding-left: 0; border-left: none; }
.bz-stat__n { font-family: var(--font-head); font-weight: 500; font-size: clamp(40px, 4.46vw, 58px); line-height: 1; color: var(--honey); letter-spacing: -0.01em; }
.bz-stat__l { font-size: 14px; letter-spacing: 0.03em; color: var(--cream-muted); margin-top: 12px; line-height: 1.35; }

/* --- Asymetrický editorial split (poměry obraz/text) --- */
.bz-ed { display: grid; gap: 56px; align-items: center; }
.bz-ed--img-lg { grid-template-columns: 1.35fr 1fr; }   /* velký obraz vlevo */
.bz-ed--text-lg { grid-template-columns: 1fr 1.35fr; }  /* velký text vlevo */
.bz-ed__media img { width: 100%; display: block; object-fit: cover; }
.bz-ed__media--tall img { height: 640px; }
.bz-ed__media--wide img { height: 480px; }
/* mírně posunutá výška obrazu vůči textu (asymetrie) */
.bz-ed__media--offset { align-self: start; margin-top: -28px; }
.bz-ed__body { align-self: center; }
.bz-ed__quote {
  font-family: var(--font-serif); font-style: italic; font-size: clamp(19px, 1.6vw, 22px);
  line-height: 1.55; color: var(--ink); margin: 24px 0 0; padding-top: 22px; border-top: 1px solid var(--line-strong); max-width: 46ch;
}

/* --- Pro koho — editorial trojice s velkými čísly --- */
.bz-audience__head { margin-bottom: 56px; max-width: 720px; }
.bz-audience { display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px; }
.bz-aud { position: relative; padding-top: 28px; border-top: 2px solid var(--line-strong); }
.bz-aud__no {
  display: block; font-family: var(--font-sans-serif); font-size: clamp(30px, 3vw, 42px);
  line-height: 1; color: var(--honey); margin-bottom: 18px; font-weight: 700; letter-spacing: -0.01em;
}
.bz-aud__t { margin: 0 0 12px; font-family: var(--font-head); font-weight: 600; font-size: clamp(21px, 2vw, 26px); line-height: 1.2; }
.bz-aud__d { margin: 0; font-size: 16px; line-height: 1.65; color: var(--ink-soft); }

/* --- Sezónní kapitoly (obrácené kompozice, foto dominuje) --- */
.bz-chapter { display: grid; gap: 48px; align-items: center; }
.bz-chapter + .bz-chapter { margin-top: 88px; }
.bz-chapter--img-left { grid-template-columns: 1.4fr 1fr; }
.bz-chapter--img-right { grid-template-columns: 1fr 1.4fr; }
.bz-chapter--img-right .bz-chapter__media { order: 2; }
.bz-chapter__media img { width: 100%; height: 520px; object-fit: cover; display: block; }
.bz-chapter__label { display: inline-block; font-size: 14px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; margin-bottom: 14px; }
/* Zima — normální (tmavá) barva; Léto — medová */
.bz-chapter--winter .bz-chapter__label { color: var(--ink); }
.bz-chapter--summer .bz-chapter__label { color: var(--honey); }
.bz-chapter__title { margin: 0 0 16px; font-family: var(--font-head); font-weight: 600; font-size: clamp(30px, 3.2vw, 42px); line-height: 1.08; }

/* --- Ubytování: dvě rovnocenné možnosti 50/50 --- */
.bz-stay { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; }
.bz-stay__item { display: flex; flex-direction: column; }
.bz-stay__media {
  display: block; overflow: hidden; margin-bottom: 24px;
  transition: transform 0.35s ease;
}
.bz-stay__media img { width: 100%; height: 460px; object-fit: cover; display: block; }
/* Jemný hover: celá fotka se posune nahoru (bez stínu) */
.bz-stay__item:hover .bz-stay__media { transform: translateY(-10px); }
.bz-stay__t { margin: 0 0 8px; font-family: var(--font-head); font-weight: 600; font-size: clamp(26px, 2.6vw, 34px); }
.bz-stay__t a { color: inherit; text-decoration: none; transition: color 0.2s ease; }
.bz-stay__t a:hover { color: var(--ochre-deep); }
.bz-stay__d { margin: 0 0 20px; font-size: 16.5px; line-height: 1.6; color: var(--ink-soft); }
.bz-stay__btn { align-self: flex-start; margin-top: auto; }

/* --- Půjčovna: samostatný tmavý horizontální pás (předěl) --- */
.bz-rentband { display: grid; grid-template-columns: 1.1fr 0.9fr; align-items: stretch; background: var(--dark-2); color: var(--cream-text); overflow: hidden; }
.bz-rentband__media { display: block; overflow: hidden; }
.bz-rentband__media img { width: 100%; height: 100%; min-height: 380px; object-fit: cover; display: block; transition: transform 0.7s cubic-bezier(0.2, 0, 0.2, 1); }
/* Hover animace obrázku: pomalý, elegantní zoom (uvnitř pásu — posun by rozbil layout) */
.bz-rentband__media:hover img { transform: scale(1.05); }
.bz-rentband__body { padding: 64px 60px; display: flex; flex-direction: column; justify-content: center; }
.bz-rentband__eyebrow { font-size: 13px; letter-spacing: 0.16em; text-transform: uppercase; font-weight: 700; color: var(--honey); margin-bottom: 16px; }
.bz-rentband__title { margin: 0 0 16px; font-family: var(--font-head); font-weight: 600; font-size: clamp(28px, 2.8vw, 38px); line-height: 1.1; color: var(--cream-text); }
.bz-rentband__text { margin: 0 0 24px; font-size: 16.5px; line-height: 1.65; color: var(--cream-muted); max-width: 44ch; }
.bz-rentband__btn { align-self: flex-start; }

/* --- Vybavení: výraznější seznam (větší názvy, linky, drobné ikony) --- */
.bz-perks { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 56px; border-top: 1px solid var(--line-strong); }
.bz-perk { display: flex; gap: 16px; align-items: flex-start; padding: 30px 0; border-bottom: 1px solid var(--line); }
.bz-perk__ico { flex-shrink: 0; color: var(--ochre); margin-top: 2px; }
.bz-perk__ico .bz-ico { width: 28px; height: 28px; }
.bz-perk__t { margin: 0 0 5px; font-family: var(--font-head); font-weight: 600; font-size: clamp(18px, 1.54vw, 20px); line-height: 1.2; }
.bz-perk__d { margin: 0; font-size: 15.5px; line-height: 1.55; color: var(--ink-soft); }

/* --- Recenze: 1 dominantní + 2 menší, na béžovém pozadí --- */
.bz-revhead { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 20px; margin-bottom: 8px; }
.bz-revhead__rating { font-weight: 900; font-size: clamp(22px, 2vw, 28px); color: var(--ochre-deep); white-space: nowrap; }
.bz-revhead__rating span { font-size: 14px; color: var(--ink-soft); font-weight: 600; letter-spacing: 0.02em; margin-left: 8px; }
.bz-revs { display: grid; grid-template-columns: 1.3fr 1fr; gap: 56px; margin-top: 44px; }
.bz-rev-lead { border-top: 2px solid var(--ochre-deep); padding-top: 28px; }
.bz-rev-lead__stars { color: var(--honey); letter-spacing: 3px; font-size: 15px; margin-bottom: 20px; }
.bz-rev-lead__text { font-family: var(--font-serif); font-style: italic; font-size: clamp(21px, 2vw, 27px); line-height: 1.5; color: var(--ink); margin: 0 0 24px; }
.bz-rev-lead__name { font-weight: 800; font-size: 15px; color: var(--ink); }
.bz-rev-lead__meta { font-size: 13px; color: var(--ink-soft); margin-top: 4px; }
.bz-rev-side { display: flex; flex-direction: column; gap: 32px; }
.bz-rev-side__item { border-top: 1px solid var(--line); padding-top: 24px; }
.bz-rev-side__stars { color: var(--honey); letter-spacing: 2px; font-size: 13px; margin-bottom: 12px; }
.bz-rev-side__text { font-size: 16px; line-height: 1.6; color: var(--ink); margin: 0 0 14px; }
.bz-rev-side__name { font-weight: 800; font-size: 13.5px; color: var(--ink); }
.bz-rev-side__meta { font-size: 12px; color: var(--ink-soft); margin-top: 3px; }

/* ============================================================
   UTILITY — drobné pomocné třídy (náhrada inline stylů)
============================================================ */
.bz-m0 { margin: 0; }
.bz-mt-6 { margin-top: 6px; }
.bz-mb-14 { margin-bottom: 14px; }
.bz-mb-18 { margin-bottom: 18px; }
.bz-mt-14 { margin-top: 14px; }
.bz-mt-18 { margin-top: 18px; }
.bz-mt-40 { margin-top: 40px; }
.bz-mb-8 { margin-bottom: 8px; }
.bz-mb-12 { margin-bottom: 12px; }
.bz-mb-24 { margin-bottom: 24px; }
.bz-mb-28 { margin-bottom: 28px; }
.bz-mb-30 { margin-bottom: 30px; }
.bz-mb-32 { margin-bottom: 32px; }
.bz-w-full { max-width: none; }
.bz-w-full-0 { max-width: none; margin: 0; }
.bz-nowrap-break { word-break: break-all; }
.bz-fs-small { font-size: 14.5px; }
.bz-on-dark { color: var(--cream-text); }
.bz-accent { color: var(--ochre-deep); }
.bz-accent-honey { color: var(--honey); }
.bz-accent-green { color: var(--honey); }
.bz-textarea { resize: vertical; }
.bz-form-note { margin: 0; font-size: 12px; color: var(--ink-soft); text-align: center; }
.bz-visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.bz-honeypot { position: absolute; left: -9999px; }

/* Nadpis sekce se sníženým spodním marginem (časté varianty) */
.bz-h2--mb0 { margin-bottom: 0; }
.bz-h2--mb8 { margin-bottom: 8px; }
.bz-h2--mb12 { margin-bottom: 12px; }
.bz-h2--mb24 { margin-bottom: 24px; }
.bz-h2--mb28 { margin-bottom: 28px; }
.bz-h2--mb30 { margin-bottom: 30px; }
.bz-h2--mb32 { margin-bottom: 32px; }
.bz-h2--mb40 { margin-bottom: 40px; }
.bz-h2--mb48 { margin-bottom: 48px; }
.bz-h2--mb56 { margin-bottom: 56px; }
.bz-mw-16 { max-width: 16ch; }
.bz-mw-20 { max-width: 20ch; }
.bz-statbar-sec { padding: 0; }

/* Kontaktní telefon/email na tmavém (rezervační bloky) */
.bz-contact-lg { display: flex; flex-direction: column; gap: 12px; }
.bz-contact-lg a { color: var(--cream-text); text-decoration: none; font-weight: 800; font-size: clamp(17px, 1.54vw, 20px); }
.bz-contact-lg a:hover { color: var(--honey); }
.bz-contact-lg a.is-email { font-size: clamp(15px, 1.38vw, 18px); word-break: break-all; }

/* Sekce s vlastním vertikálním paddingem */
.bz-sec-pad-a { padding: 56px 0 24px; }
.bz-sec-pad-b { padding: 24px 0 40px; }
.bz-sec-pad-c { padding: 24px 0 96px; }

/* Sezónní štítek na tmavém (aktivity): světlý text + barevný spodní okraj */
.bz-season__label--winter { color: var(--cream-text); border-color: var(--honey); }
.bz-season__label--summer { color: var(--cream-text); border-color: var(--ochre); }
.bz-season-item strong { color: var(--cream-text); }
/* Feature grid varianty */
.bz-features--4 { grid-template-columns: repeat(4, 1fr); }
.bz-features--gap40 { gap: 0 40px; }
.bz-features--2col48 { grid-template-columns: 1fr 1fr; gap: 0 48px; }
.bz-fs-20 { font-size: clamp(17px, 1.54vw, 20px); }
.bz-fs-18 { font-size: clamp(16px, 1.38vw, 18px); }
.bz-mw-70 { max-width: 70ch; }
/* Nadpis stránky (galerie, rezervace, běžná stránka) */
.bz-page-h1 { font-size: clamp(31px, 4.6vw, 60px); }
.bz-page-h1--sm { font-size: clamp(30px, 4.2vw, 54px); }
.bz-page-h1--content { font-size: clamp(29px, 4vw, 52px); }
/* Rezervace: postranní kontakt */
.bz-resw__aside .bz-p { font-size: 15.5px; }
.bz-resw__contact { display: flex; flex-direction: column; gap: 22px; margin-top: 22px; }




/* Storno panel: dva odstavce přes plnou šířku */
.bz-storno p { max-width: none; }
.bz-storno p + p { margin-top: 14px; }
.bz-storno p:last-child { margin-bottom: 0; }
/* Bezpečnostní odkaz (Než vyrazíte) — feature jako odkaz */
/* Odkazová varianta (Než vyrazíte) — větší písmo, je to samostatný odkaz */
.bz-feature--link { text-decoration: none; color: var(--ink); }
.bz-feature--link h3 { font-size: clamp(18px, 1.54vw, 20px); margin-bottom: 8px; }
.bz-feature--link p { font-size: 16.5px; line-height: 1.6; }
.bz-feature--link .bz-link { margin-top: 8px; font-size: 14.5px; }
/* Ceníková tabulka půjčovny — širší */
.bz-table--wide { min-width: 620px; }
.bz-table td.is-price { font-weight: 700; }
.bz-table td.is-deposit { color: var(--ink-soft); }

/* ============================================================
   RESPONSIVE — užší desktop (992–1199px)
   Menu se sem nevejde s plnými mezerami a lámalo se na dva řádky.
   Zmenšíme rozestupy a padding řádku, ať zůstane na jednom řádku.
============================================================ */
@media (min-width: 992px) and (max-width: 1199px) {
  .bz-navbar > .container,
  .bz-navbar .bz-navrow { gap: 12px; padding-left: 16px; padding-right: 16px; }
  .bz-nav { gap: 14px; }
  .bz-nav__links { gap: 14px; }
  .bz-nav a.bz-navlink { font-size: 14px; letter-spacing: 0.02em; }
  .bz-nav__cta { padding: 10px 14px; font-size: 12.5px; }
  .bz-logo__name b { font-size: 17px; }
  .bz-logo__name span { letter-spacing: 0.16em; font-size: 10px; }
}

/* ============================================================
   RESPONSIVE — tablet a mobil (RADY.md bod 14)
============================================================ */
@media (max-width: 991px) {
  .bz-wrap { padding-left: 24px; padding-right: 24px; }
  .bz-section { padding: 64px 0; }
  .bz-split, .bz-split--reverse { grid-template-columns: 1fr; gap: 32px; }
  .bz-split--form { grid-template-columns: 1fr; gap: 32px; }
  .bz-resw { grid-template-columns: 1fr; gap: 32px; }
  .bz-resw__aside { position: static; }
  .bz-split--reverse .bz-split__media { order: 0; }
  .bz-split__media img, .bz-split--offset .bz-split__media img { height: 420px; margin-top: 0; }
  .bz-facts { grid-template-columns: repeat(2, 1fr); }
  .bz-fact { padding: 28px 8px 28px 24px; }
  .bz-fact:nth-child(3) { padding-left: 0; border-left: none; }
  .bz-editorial { grid-template-columns: 1fr; }
  .bz-editorial__item { padding: 24px 0; border-left: none; border-top: 1px solid var(--line); }
  .bz-editorial__item:first-child { border-top: none; }
  .bz-seasons { grid-template-columns: 1fr; gap: 40px; }
  .bz-season--summer { margin-top: 0; }
  .bz-offers, .bz-offers--duo { grid-template-columns: 1fr; gap: 40px; }
  .bz-offers--duo .bz-offer__media img { height: 300px; }
  .bz-strip { grid-template-columns: 1fr; }
  .bz-strip__media img { min-height: 240px; }
  .bz-strip__body { padding: 32px 28px; }
  .bz-features { grid-template-columns: 1fr 1fr; gap: 0 32px; }
  .bz-quotes { grid-template-columns: 1fr; }
  .bz-quote-item { padding: 28px 0; border-left: none; border-top: 1px solid var(--line-light); }
  .bz-quote-item:first-child { border-top: none; }
  .bz-info-grid { grid-template-columns: repeat(2, 1fr); }
  .bz-footer__grid { grid-template-columns: 1fr 1fr; gap: 40px 32px; }

  /* --- Redesign v2: skládání pod sebe, ale foto zůstává velké --- */
  .bz-sec, .bz-sec--airy { padding: 72px 0; }
  .bz-sec--compact { padding: 56px 0; }
  .bz-hero2 { min-height: 64vh; }
  .bz-hero2__inner { padding-top: 120px; padding-bottom: 56px; }
  .bz-statbar { grid-template-columns: repeat(2, 1fr); }
  .bz-stat { padding: 26px 10px 26px 28px; }
  .bz-stat:nth-child(3) { padding-left: 0; border-left: none; }
  .bz-ed, .bz-ed--img-lg, .bz-ed--text-lg { grid-template-columns: 1fr; gap: 32px; }
  .bz-ed__media--offset { margin-top: 0; }
  .bz-ed__media--tall img, .bz-ed__media--wide img { height: 460px; }
  .bz-ed__media { order: -1; }
  .bz-ed--text-lg .bz-ed__media { order: 0; }
  .bz-audience { grid-template-columns: 1fr; gap: 0; }
  .bz-aud { padding: 26px 0; border-top: 1px solid var(--line); }
  .bz-aud:first-child { border-top: 2px solid var(--line-strong); }
  .bz-aud__no { margin-bottom: 12px; }
  .bz-audience__head { margin-bottom: 40px; }
  .bz-chapter, .bz-chapter--img-left, .bz-chapter--img-right { grid-template-columns: 1fr; gap: 24px; }
  .bz-chapter--img-right .bz-chapter__media { order: -1; }
  .bz-chapter__media { order: -1; }
  .bz-chapter__media img { height: 380px; }
  .bz-chapter + .bz-chapter { margin-top: 56px; }
  .bz-stay { grid-template-columns: 1fr; gap: 48px; }
  .bz-stay__media img { height: 340px; }
  .bz-rentband { grid-template-columns: 1fr; }
  .bz-rentband__media img { min-height: 280px; }
  .bz-rentband__body { padding: 40px 32px; }
  .bz-perks { grid-template-columns: 1fr 1fr; gap: 0 40px; }
  .bz-revs { grid-template-columns: 1fr; gap: 40px; }

  /* Mobilní navigace.
     Rozbalený seznam se kreslí jako překryv pod lištou (position: absolute),
     ne v toku: sticky navbar by jinak při otevření narostl a odsunul obsah
     stránky o svou výšku, což prohlížeč kompenzuje skokem scrollu. */
  .bz-toggler { display: inline-flex; }
  .bz-navbar .bz-navrow { position: relative; }
  .bz-nav {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 1;
    box-sizing: border-box;
    background: var(--navbar-bg);
    box-shadow: var(--navbar-floating-shadow);
    flex-basis: auto;
    flex: none;
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
    overflow: hidden;
    height: 0;
    transition: height 0.35s ease-in-out;
  }
  /* Vnitřní odsazení nese obsah, ne .bz-nav: JS animuje height na
     scrollHeight, který padding kontejneru nezapočítá, a menu by na konci
     doskočilo. Boční odsazení kopíruje .bz-navrow, aby odkazy začínaly
     na stejné svislici jako logo nad nimi. */
  .bz-nav.show { height: auto; }
  .bz-nav__links { padding: 6px 24px 0 10px; }
  /* Tlačítko má vlastní vnitřní odsazení, svislici s odkazy proto drží margin. */
  .bz-nav__links { flex-direction: column; flex-wrap: wrap; align-items: flex-start; gap: 4px; width: 100%; }
  .bz-nav__cta { align-self: flex-start; margin: 12px 24px 18px; }
  .bz-nav a.bz-navlink { padding: 10px 0 10px 14px; font-size: 15px; border-left: 2px solid transparent; box-sizing: border-box; max-width: 100%; }
  /* Podtržení z desktopu se v svislém seznamu ztrácí, aktivní položku proto
     označí svislý pruh vlevo a výraznější text. */
  .bz-nav a.bz-navlink.is-active::after,
  .bz-nav .current-menu-item > a.bz-navlink::after { display: none; }
  .bz-nav a.bz-navlink.is-active,
  .bz-nav .current-menu-item > a.bz-navlink {
    border-left-color: var(--ochre-deep);
    color: var(--ochre-deep);
    font-weight: 700;
  }
  .bz-navrow { flex-wrap: wrap; }
}

@media (max-width: 560px) {
  .bz-wrap { padding-left: 18px; padding-right: 18px; }
  .bz-form { grid-template-columns: 1fr; }
  .bz-facts { grid-template-columns: 1fr 1fr; }
  .bz-features { grid-template-columns: 1fr; }
  .bz-info-grid { grid-template-columns: 1fr; }
  .bz-footer__grid { grid-template-columns: 1fr; gap: 36px; }
  .bz-cta { flex-direction: column; align-items: flex-start; }
  .bz-hero__actions .bz-btn { flex: 1; justify-content: center; }
  /* Redesign v2 na mobilu */
  .bz-statbar { grid-template-columns: 1fr 1fr; }
  .bz-perks { grid-template-columns: 1fr; }
  .bz-hero2__actions .bz-btn { flex: 1; justify-content: center; }
  .bz-chapter__media img { height: 300px; }
}

/* Jemné vstupní animace — jen fade, žádný parallax/scroll-reveal navíc (RADY.md bod 15).
   Base [data-motion] třídy zůstávají k dispozici, ale používáme je střídmě. */

/* --- Obsah běžných stránek (WP editor) --- */
.bz-content { font-size: clamp(16px, 1.31vw, 17px); line-height: 1.8; color: var(--ink); }
.bz-content h2 { font-weight: 800; font-size: clamp(24px, 3vw, 34px); margin: 40px 0 16px; line-height: 1.15; }
.bz-content h3 { font-weight: 800; font-size: clamp(19px, 1.69vw, 22px); margin: 32px 0 12px; }
.bz-content p { margin: 0 0 18px; }
/* :not(.bz-btn) — tlačítka mají vlastní barvu textu, jinak by jim
   obecné pravidlo pro odkazy nastavilo okrovou a splynula by s pozadím */
.bz-content a:not(.bz-btn) { color: var(--ochre-deep); }
.bz-content a:not(.bz-btn):hover { color: var(--ink); }
.bz-content ul, .bz-content ol { margin: 0 0 18px; padding-left: 1.3em; }
.bz-content li { margin-bottom: 8px; }
.bz-content img { max-width: 100%; height: auto; }

/* Tabulky v obsahu stránky (obchodní podmínky, zásady ochrany údajů).
   Vzhled drží stejný rukopis jako ceník: tmavá hlavička, střídavé řádky,
   bez linek. Wrapper kolem tabulky editor nevytváří, proto se vodorovné
   rolování řeší na samotné tabulce přes display: block. */
.bz-content table {
  width: 100%;
  margin: 0 0 24px;
  border-collapse: collapse;
  font-size: 15px;
  line-height: 1.6;
  border-radius: 2px;
  overflow: hidden;
}
.bz-content thead th {
  background: var(--dark);
  color: var(--cream-text);
  text-align: left;
  padding: 14px 16px;
  font-weight: 800;
  font-size: 13px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.bz-content tbody td { padding: 13px 16px; vertical-align: top; }
.bz-content tbody tr:nth-child(odd) { background: var(--paper); }
.bz-content tbody tr:nth-child(even) { background: var(--input-bg-alt); }
.bz-content table th,
.bz-content table td { border: 0; }

@media (max-width: 560px) {
  /* Na úzkém displeji roluje tabulka sama v sobě, ať nerozbije stránku. */
  .bz-content table { display: block; overflow-x: auto; white-space: nowrap; }
  .bz-content tbody td,
  .bz-content thead th { padding-left: 12px; padding-right: 12px; }
}

.bz-content blockquote {
  border-left: 3px solid var(--ochre);
  margin: 24px 0;
  padding: 4px 0 4px 24px;
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 20px;
  color: var(--honey);
}

/* ============================================================
   INTERAKCE — jednotné přechody, zaoblení a hover stavy
============================================================ */

/* --- Jednotné jemné zaoblení (2px) napříč komponentami --- */
.bz-info, .bz-gallery__item, .bz-filter, .bz-accordion__btn, .bz-accordion__panel,
.bz-table-wrap, .bz-table, .bz-panel, .bz-cform__ok, .bz-map, .bz-map--wide,
.bz-input, .bz-btn, .bz-feature__ico, .bz-info__ico, .bz-parking__ico,
.hs-dot, .hs-arrow, .modal-box, .review-card { border-radius: 2px; }

/* --- Kontaktní odkazy (tel: a mailto:) — plynulý přechod barvy --- */
a[href^="tel:"], a[href^="mailto:"] { transition: color 0.2s ease, opacity 0.2s ease; }

/* --- Odkazy v patičce --- */
.bz-footer a,
.bz-footer__bar a,
.bz-footer__legal a,
.bz-footer__links a,
.bz-footer__contact a,
.bz-footer__author a { transition: color 0.2s ease; }
/* Sociální ikony mají vlastní přechod (pozadí + posun), ne jen barvu —
   musí být až za obecným .bz-footer a, jinak by ho přebilo */
.bz-footer .bz-footer__social a {
  transition: background-color 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

/* Patičkové odkazy: podtržení vyjede zleva doprava */
.bz-footer__legal a,
.bz-footer__links a {
  position: relative;
}
.bz-footer__legal a::after,
.bz-footer__links a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -3px;
  height: 1px; background: currentColor;
  transform: scaleX(0); transform-origin: left;
  transition: transform 0.25s ease;
}
.bz-footer__legal a:hover::after,
.bz-footer__links a:hover::after { transform: scaleX(1); }

/* --- Odkazy s ::before vlnou (stejný efekt jako .bz-btn) --- */
.bz-map__link, .bz-link {
  position: relative;
}

/* --- Ceníkové tabulky: zvýraznění řádku pod kurzorem --- */
.bz-table tbody tr { transition: background-color 0.18s ease; }
.bz-table tbody tr:hover,
.bz-table tbody tr:nth-child(odd):hover,
.bz-table tbody tr:nth-child(even):hover { background: var(--accordion-hover); }

/* --- Akordeon (storno podmínky): animované otevírání --- */
.bz-accordion__panel {
  display: block;
  overflow: hidden;
  max-height: 0;
  padding-top: 0; padding-bottom: 0;
  opacity: 0;
  transition: max-height 0.4s ease, padding 0.3s ease, opacity 0.25s ease;
}
.bz-accordion.is-open .bz-accordion__panel {
  max-height: 1500px;
  padding-top: 28px; padding-bottom: 28px;
  opacity: 1;
}
/* znaménko +/– přepíná JS, stačí plynulá barva */
.bz-accordion__sign { transition: color 0.2s ease; }

/* --- „Než vyrazíte" — podbarvení celého bloku při najetí --- */
.bz-feature--link {
  padding-left: 18px; padding-right: 18px;
  margin-left: -18px; margin-right: -18px;
  border-radius: 2px;
  transition: background-color 0.25s ease, transform 0.25s ease;
}
.bz-feature--link:hover {
  background: var(--beige);
  transform: translateY(-3px);
}
.bz-feature--link h3 { transition: color 0.2s ease; }
.bz-feature--link:hover h3 { color: var(--ochre-deep); }

@media (prefers-reduced-motion: reduce) {
  .bz-feature--link:hover { transform: none; }
  .bz-accordion__panel { transition: none; }
  .bz-footer__legal a::after, .bz-footer__links a::after { transition: none; }
}

/* --- Sezónní štítek (V zimě / V létě) — výraznější --- */
.bz-season__label { font-size: 15px; letter-spacing: 0.12em; padding-bottom: 6px; }

/* --- Galerie: víc prostoru pod mřížkou --- */
.bz-gallery { padding-bottom: 40px; }

/* --- Lightbox: swipe přes fotku (gesto patří lightboxu, ne stránce) --- */
.bz-lightbox { touch-action: none; }
.bz-lightbox img { user-select: none; -webkit-user-drag: none; }
/* ============================================================
   KONTAKT — stejný rukopis jako stránka Rezervace
   Vlevo údaje přímo na pozadí, vpravo světlý panel bez rámečku
   a stínu. Pole jsou tmavší než panel (vsazená dovnitř).
============================================================ */
.bz-kontakt { display: grid; grid-template-columns: 0.55fr 1fr; gap: 56px; align-items: start; }

/* --- Levý sloupec: text přímo na krémovém pozadí --- */
/* min-width: 0 — bez toho grid sloupec nezúží pod šířku nejdelšího
   obsahu (e-mailu) a na úzkém mobilu stránka přetéká */
.bz-kontakt__info { background: none; padding: 0; min-width: 0; }
.bz-kontakt__udaje, .bz-kontakt__radek, .bz-kontakt__radek > div { min-width: 0; }
.bz-kontakt__panel { min-width: 0; }
.bz-kontakt__udaje { display: flex; flex-direction: column; gap: 26px; }
.bz-kontakt__radek { display: flex; align-items: flex-start; gap: 15px; }
.bz-kontakt__ico { flex-shrink: 0; color: var(--ochre-deep); margin-top: 2px; }
.bz-kontakt__ico .bz-ico { width: 21px; height: 21px; }
.bz-kontakt__label {
  font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase;
  font-weight: 700; color: var(--ochre-deep); margin-bottom: 5px;
}
.bz-kontakt__hodnota {
  font-size: clamp(15.5px, 1.31vw, 17.5px); font-weight: 700;
  line-height: 1.4; color: var(--ink); word-break: break-word;
}
.bz-kontakt__hodnota a { color: var(--ink); text-decoration: none; transition: color 0.2s ease; }
.bz-kontakt__hodnota a:hover { color: var(--ochre-deep); }

/* Doprava a sítě — oddělené jen tenkou linkou, žádný blok */
.bz-kontakt__doprava { margin-top: 34px; padding-top: 30px; border-top: 1px solid var(--line); }
.bz-kontakt__extra-title {
  margin: 0 0 10px; font-family: var(--font-head); font-weight: 600;
  font-size: clamp(17px, 1.4vw, 19px); line-height: 1.25; color: var(--ink);
}
.bz-kontakt__extra-text { margin: 0 0 20px; font-size: 15px; line-height: 1.7; color: var(--ink-soft); }
.bz-kontakt__extra-link {
  display: inline-flex; align-items: center; gap: 9px;
  font-weight: 800; font-size: 12.5px; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--ochre-deep); text-decoration: none;
  transition: gap 0.2s ease, color 0.2s ease;
}
.bz-kontakt__extra-link:hover { gap: 13px; color: var(--ink); }
.bz-kontakt__extra-link .bz-ico { width: 17px; height: 17px; }
.bz-kontakt__social { display: flex; gap: 12px; margin-top: 26px; }
.bz-kontakt__social a {
  width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center;
  color: var(--ink); background: rgba(33, 27, 18, 0.07); border-radius: 2px;
  transition: background-color 0.25s ease, color 0.25s ease, transform 0.25s ease;
}
.bz-kontakt__social a:hover { background-color: var(--ochre-deep); color: var(--cream-text); transform: translateY(-3px); }
.bz-kontakt__social svg { width: 22px; height: 22px; }

/* --- Pravý sloupec: světlý panel jako v Rezervacích --- */
.bz-kontakt__panel {
  background: var(--paper);
  border: 0;
  box-shadow: none;
  border-radius: 2px;
  padding: 44px;
}
.bz-kontakt__title { margin: 0 0 10px; }
.bz-kontakt__perex { margin: 0 0 28px; font-size: 15.5px; line-height: 1.7; color: var(--ink-soft); max-width: 52ch; }

.bz-kontakt__panel .wpcf7-form-control-wrap { display: block; }
.bz-kontakt__panel .wpcf7-form-control-wrap .bz-input { width: 100%; box-sizing: border-box; }
.bz-kontakt__panel .screen-reader-response { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); }
.bz-kontakt__panel .hidden-fields-container { display: none; }

/* Pole: tmavší než panel, bez viditelného okraje — vsazená dovnitř */
.bz-kontakt__panel .bz-input {
  background-color: var(--input-bg);
  border: 1px solid transparent;
  border-radius: 2px;
}
.bz-kontakt__panel .bz-input:hover { background-color: var(--input-bg-hover); border-color: transparent; }
/* :focus-visible musí být uvedený spolu s :focus — sám o sobě má vyšší
   specificitu a bez těchhle hodnot by pole při tabování zůstalo bez signálu. */
.bz-kontakt__panel .bz-input:focus,
.bz-kontakt__panel .bz-input:focus-visible {
  background-color: var(--white);
  border-color: var(--ochre-dark);
  box-shadow: 0 0 0 3px var(--focus-ring);
}
.bz-kontakt__panel textarea.bz-input { min-height: 118px; }

/* Chyby a hlášky */
.bz-kontakt__panel .wpcf7-not-valid-tip {
  display: block; margin-top: 7px;
  font-size: 11.5px; font-weight: 600; text-transform: none; color: var(--error);
}
.bz-kontakt__panel .wpcf7-form-control.wpcf7-not-valid {
  border-color: var(--error); box-shadow: inset 3px 0 0 var(--error);
}
.bz-kontakt__panel form .wpcf7-response-output {
  margin: 18px 0 0; padding: 15px 18px; border: 0; border-radius: 2px;
  font-size: 14.5px; font-weight: 600; line-height: 1.55;
  color: var(--cream-text); background: var(--dark-2);
}
.bz-kontakt__panel form.init .wpcf7-response-output,
.bz-kontakt__panel form.submitting .wpcf7-response-output,
.bz-kontakt__panel form.resetting .wpcf7-response-output { display: none; }
.bz-kontakt__panel form.wpcf7-form.sent .wpcf7-response-output { border: 0; background: var(--success); }
.bz-kontakt__panel form.wpcf7-form.invalid .wpcf7-response-output,
.bz-kontakt__panel form.wpcf7-form.unaccepted .wpcf7-response-output,
.bz-kontakt__panel form.wpcf7-form.failed .wpcf7-response-output,
.bz-kontakt__panel form.wpcf7-form.spam .wpcf7-response-output,
.bz-kontakt__panel form.wpcf7-form.aborted .wpcf7-response-output { border: 0; background: var(--error); }
.bz-kontakt__panel .wpcf7-spinner { display: none; }

/* Tlačítko přes celou šířku — stejné jako v Rezervacích */
.bz-kontakt__panel input.wpcf7-submit.bz-btn {
  width: 100%; min-width: 0;
  background-image: none;
  padding-right: 28px;
  transition: background-color 0.3s ease, color 0.3s ease;
}
.bz-kontakt__panel input.wpcf7-submit.bz-btn--primary:hover {
  background-color: var(--ink);
  transform: none; box-shadow: none;
}

/* --- Mapa --- */
.bz-mapa-sekce { padding-top: 40px; }
.bz-mapa-nadpis { margin: 0 0 18px; }
.bz-map--wide { border-radius: 2px; box-shadow: none; }

/* --- Parkování: světlá béžová sekce, okrová jen jako akcent --- */
.bz-parking {
  background: var(--beige); color: var(--ink); border-radius: 2px; padding: 48px;
  display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 48px; align-items: start;
}
.bz-parking__ico {
  display: inline-flex; align-items: center; justify-content: center;
  width: 48px; height: 48px; margin-bottom: 18px;
  color: var(--ochre-deep); background: rgba(156, 90, 34, 0.12); border-radius: 2px;
}
.bz-parking__ico .bz-ico { width: 27px; height: 27px; }
.bz-parking__title { margin: 0; font-size: clamp(24px, 3vw, 38px); text-transform: uppercase; color: var(--ink); }
.bz-parking__lead { margin: 10px 0 0; font-size: 16px; line-height: 1.5; color: var(--ink-soft); }
.bz-parking__items { display: flex; flex-direction: column; gap: 24px; }
.bz-parking__item { padding-top: 24px; border-top: 1px solid var(--line); }
.bz-parking__item:first-child { padding-top: 0; border-top: none; }
.bz-parking__item-title {
  margin: 0 0 8px; font-family: var(--font-head); font-weight: 600;
  font-size: clamp(17px, 1.3vw, 19px); line-height: 1.25; color: var(--ink);
}
.bz-parking__text { margin: 0; font-size: 15.5px; line-height: 1.7; color: var(--ink-soft); }

@media (max-width: 991px) {
  .bz-kontakt { grid-template-columns: 1fr; gap: 36px; }
  .bz-kontakt__panel { padding: 32px 26px; }
  .bz-parking { grid-template-columns: 1fr; gap: 26px; padding: 32px 26px; }
}

/* --- Souhlas s podmínkami (CF7 acceptance) --- */
/* CF7 obaluje pole vlastními <span> s odsazením — na mobilu by přetékalo */
.bz-souhlas { margin: 4px 0 20px; min-width: 0; }
.bz-souhlas .wpcf7-form-control-wrap,
.bz-souhlas .wpcf7-acceptance,
.bz-souhlas .wpcf7-list-item { display: block; margin: 0; max-width: 100%; }
.bz-resw__panel .bz-souhlas { grid-column: 1 / -1; }
.bz-souhlas .wpcf7-list-item { margin: 0; }
.bz-souhlas .wpcf7-list-item-label,
.bz-souhlas label {
  display: flex; align-items: flex-start; gap: 10px;
  font-size: 13.5px; line-height: 1.55; font-weight: 400;
  letter-spacing: 0; text-transform: none; color: var(--ink-soft);
  cursor: pointer;
  min-width: 0; max-width: 100%;
}
/* CF7 vkládá popisek do dalšího <span> — musí se zalomit, ne přetékat.
   display: inline u vnitřku, aby kolem odkazů nevznikaly mezery navíc. */
.bz-souhlas .wpcf7-list-item-label { display: block; word-break: break-word; padding-left: 27px; }
.bz-souhlas .wpcf7-list-item-label a { white-space: nowrap; }
.bz-souhlas input[type="checkbox"] { position: absolute; margin-left: -27px; }
.bz-souhlas .wpcf7-list-item { position: relative; }
.bz-souhlas input[type="checkbox"] {
  width: 17px; height: 17px; margin: 2px 0 0;
  accent-color: var(--ochre-deep); flex-shrink: 0; cursor: pointer;
}
.bz-souhlas a { color: var(--ochre-deep); text-decoration: underline; text-underline-offset: 2px; }
.bz-souhlas a:hover { color: var(--ink); }
/* chyba u nezaškrtnutého souhlasu */
.bz-souhlas .wpcf7-not-valid-tip { margin-top: 6px; }

/* Zamčené tlačítko (dokud není zaškrtnutý souhlas) */
.bz-btn:disabled,
input.wpcf7-submit.bz-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.bz-btn:disabled:hover,
input.wpcf7-submit.bz-btn:disabled:hover {
  background-color: var(--ochre-deep);
  transform: none;
  box-shadow: none;
}

/* Parkování — srovnat vršky obou sloupců.
   Ikona a eyebrow jdou vedle sebe do jednoho řádku, aby nadpis
   PARKOVÁNÍ začínal ve stejné výšce jako "U boudy zdarma" vpravo. */
/* Oba sloupce začínají nahoře ve stejné výšce — vršek ikony
   lícuje s prvním nadpisem vpravo. */
.bz-parking { align-items: start; }
/* align-self: start přebíjí starší pravidlo (center), které levý sloupec
   svisle centrovalo a rozhazovalo zarovnání s pravým */
.bz-parking__head { display: flex; flex-direction: column; align-self: start; padding-top: 0; }
.bz-parking__ico { width: 34px; height: 34px; margin: 0; }
.bz-parking__ico .bz-ico { width: 20px; height: 20px; }
.bz-parking__radek { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.bz-parking__radek .bz-eyebrow { margin: 0; }
/* první položku vpravo nesrážet linkou, ať vršky lícují */
.bz-parking__items { padding-top: 0; }

/* --- Označení povinných polí hvězdičkou ---
   Řídí se atributem aria-required, který CF7 sám přidává povinným
   polím — hvězdička tak vždy odpovídá reálnému nastavení formuláře. */
/* :first-of-type — jen popisek pole, ne obalové <span>, které CF7
   přidává kolem samotného vstupu (jinak hvězdička visí i pod polem) */
.bz-field:has([aria-required="true"]) > span:first-of-type::after,
.bz-field:has([required]) > span:first-of-type::after {
  content: " *";
  color: var(--ochre-deep);
  font-weight: 800;
}
/* Poznámka pod formulářem, co hvězdička znamená */
.bz-povinne {
  margin: 0 0 20px;
  font-size: 12.5px; line-height: 1.5; color: var(--ink-soft);
}
.bz-povinne span { color: var(--ochre-deep); font-weight: 800; }
/* V rezervacích je .bz-form grid — jeho row-gap přidával mezeru navíc
   nad poznámkou i pod ní, proto ji na obou stranách stáhneme. */
.bz-resw__panel .bz-povinne { grid-column: 1 / -1; margin-top: -22px; margin-bottom: -2px; }

/* ============================================================
   MOBILNÍ MENU pod 992px — oprava zarovnání
   Desktop dává .bz-nav__links flex:1 a justify-content:center,
   což na mobilu tlačilo odkazy doprava a vedle loga nechávalo
   prázdné místo. Menu musí jít přes celou šířku pod logo.
============================================================ */
@media (max-width: 991px) {
  .bz-navbar .bz-navrow { flex-wrap: wrap; }
  /* logo vlevo, hamburger vpravo, menu na vlastní řádek */
  .bz-navbar .bz-logo { flex: 1 1 auto; }
  .bz-navbar .bz-toggler { order: 2; margin-left: auto; }
  .bz-nav {
    order: 3;
    flex: 0 0 100%;
    width: 100%;
    max-width: 100%;
    justify-content: flex-start;
  }
  .bz-nav__links {
    flex: 0 0 100%;
    width: 100%;
    justify-content: flex-start;
    align-items: stretch;
  }
  .bz-nav a.bz-navlink { display: block; width: 100%; }
  /* jemná linka mezi položkami místo prázdné plochy */
  .bz-nav__links a.bz-navlink + a.bz-navlink { border-top: 1px solid var(--line); }
  .bz-nav__cta { width: auto; }
}

/* --- Úvod „O nás": odstavce přes celou šířku sloupce --- */
.bz-ed__body .bz-p { max-width: none; }

/* --- Spodní lišta patičky: zalomit už od tabletu (stejná hranice
       jako mobilní menu), tři bloky se vedle sebe stěsnají --- */
@media (max-width: 991px) {
  .bz-footer__bar-inner {
    flex-direction: column;
    align-items: center;
    gap: 14px;
    text-align: center;
  }
  .bz-footer__legal { flex-wrap: wrap; justify-content: center; gap: 8px 20px; }
}

/* --- Mobilní menu: bez poskočení a bez přebytečné výšky ---
   Padding v .show naskakoval skokem, zatímco výška se teprve
   animovala — proto ten poskok. Držíme padding stále a animujeme
   jen výšku; mezery zmenšeny na nutné minimum. */
@media (max-width: 991px) {
  /* Padding nikdy na .bz-nav (collapsing prvek) — JS animuje height na
     scrollHeight, který padding kontejneru nezapočítá a menu by doskočilo.
     Odsazení proto nese obsah uvnitř: první odkaz a CTA tlačítko. */
  .bz-nav { gap: 0; row-gap: 0; padding: 0; }
  .bz-nav.show { height: auto; padding: 0; }
  .bz-nav__links > a.bz-navlink:first-child { margin-top: 6px; }
  /* Řádek nesmí mít svislý gap — menu je jeho flex položkou a mezera
     by naskočila skokem hned po kliknutí, ještě před animací výšky.
     Vodorovný gap mezi logem a hamburgerem zůstává. */
  .bz-navbar .bz-navrow { column-gap: 24px; row-gap: 0; }
  /* left/right: 0 — bez ukotvení si absolutní prvek nechá pozici z toku
     (odsazenou o gap) a při plné šířce přetéká přes pravý okraj */
  .bz-navrow .bz-nav:not(.show) {
    position: absolute;
    left: 0; right: 0;
    visibility: hidden;
    pointer-events: none;
  }
  .bz-navrow { position: relative; }
  .bz-nav__links { gap: 0; padding-left: 10px; padding-right: 18px; }
  .bz-nav a.bz-navlink { padding: 11px 0 11px 14px; }
  /* spodní odsazení nese CTA, ne kontejner — nezasahuje do animace výšky */
  .bz-nav__cta { margin: 12px 24px 14px; }
}

/* ============================================================
   MOBIL POD 560px — doladění
============================================================ */

/* Topbar: na mobilu jen telefon a e-mail vlevo */
.bz-topbar__sm-only { display: none; }
@media (max-width: 560px) {
  .bz-topbar__hide-sm { display: none; }
  .bz-topbar__sm-only { display: inline-flex; }
  .bz-topbar__left { gap: 14px; }
  .bz-topbar__inner { justify-content: flex-start; }
}

@media (max-width: 560px) {
  /* Hero tlačítka: každé na vlastní řádek, ne roztažená přes celou šířku */
  .bz-hero2__actions,
  .bz-hero__actions { flex-direction: column; align-items: flex-start; gap: 12px; }
  .bz-hero2__actions .bz-btn,
  .bz-hero__actions .bz-btn { flex: 0 0 auto; width: auto; justify-content: flex-start; }

  /* Statistiky: jeden sloupec, ať se čísla nelámou.
     Sekce má padding: 0, proto odsazení nese samotný pás. */
  .bz-statbar-sec { padding: 8px 0; }
  .bz-statbar { grid-template-columns: 1fr; padding: 20px 0; }
  .bz-stat { padding: 20px 0; border-left: none; border-top: 1px solid var(--line-light); }
  .bz-stat:first-child { border-top: none; padding-top: 0; }
  .bz-stat:last-child { padding-bottom: 0; }

  /* Patička vycentrovaná */
  .bz-footer__grid { text-align: center; }
  .bz-footer__brand { justify-content: center; }
  .bz-footer p, .bz-footer__address { margin-left: auto; margin-right: auto; }
  .bz-footer__contact { align-items: center; }
  .bz-footer__contact > a,
  .bz-footer__provoz { justify-content: center; }
  .bz-footer__social { justify-content: center; }
  .bz-footer__grid .bz-btn { display: inline-flex; }

  /* Formulářové panely: menší vnitřní odsazení, ať zbyde místo na obsah */
  .bz-kontakt__panel,
  .bz-resw__panel,
  .bz-panel { padding: 24px 18px; }
  .bz-cform { padding: 24px 18px; }
}

/* ============================================================
   POD 500px — úsporné boční odsazení
   Na úzkých telefonech se sčítal okraj stránky s paddingem
   vnořených panelů a obsahu zbývalo málo místa.
============================================================ */
@media (max-width: 500px) {
  .bz-wrap { padding-left: 14px; padding-right: 14px; }

  /* Panely uvnitř wrapu — jen tolik, aby text nelícoval s okrajem */
  .bz-kontakt__panel,
  .bz-resw__panel,
  .bz-panel,
  .bz-cform { padding: 22px 14px; }
  .bz-parking { padding: 24px 16px; }
  .bz-rules { padding: 24px 16px; }
  .bz-priceband { padding: 24px 16px; }
  .bz-rentband__body { padding: 28px 16px; }
  .bz-info { padding: 18px 16px; }

  /* Akordeon (storno podmínky) */
  .bz-accordion__btn { padding: 18px 16px; }
  .bz-accordion.is-open .bz-accordion__panel { padding-left: 16px; padding-right: 16px; }

  /* Ceníková tabulka — užší buňky, ať se vejde víc sloupců */
  .bz-table thead th,
  .bz-table tbody td { padding-left: 10px; padding-right: 10px; }
  .bz-table thead th:first-child,
  .bz-table tbody td:first-child { padding-left: 12px; }

  /* Lightbox blíž k okrajům */
  .bz-lightbox { padding: 56px 8px 88px; }

  /* „Než vyrazíte" — záporné okraje pro hover podbarvení se na úzkém
     wrapu nevejdou a stránka přetéká; na mobilu je hover stejně irelevantní */
  .bz-feature--link {
    padding-left: 12px; padding-right: 12px;
    margin-left: -12px; margin-right: -12px;
  }
}

/* Sticky footer — na krátkých stránkách (404, děkovací) patička
   dosedne na spodní okraj okna místo aby zůstala viset uprostřed.
   min-height na obsahu to neřeší, musí to být přes celou stránku. */
html { min-height: 100%; }
body.bz {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}
body.bz .site-main { flex: 1 0 auto; }
body.bz .bz-footer { flex-shrink: 0; }
