/* Generováno css_bundle() — needituj ručně, přepíše se. Zdroje: styles.css, components.css, pages.css, booking.css */

/* ===== styles.css ===== */
/* ============================================================
   Czech Hikes — Visual System
   Modern booking/travel. Forest green + natural sand + orange CTA.
   ============================================================ */

/* ---- Self-hostované fonty (dřív Google Fonts; teď bez render-blocking requestu na cizí doménu) ----
   Obě rodiny jsou variable (Bricolage 400–800, Hanken 400–700) → 1 woff2 per rodina/subset.
   latin-ext se stáhne jen pro východoevropské znaky (unicode-range). font-display: swap = žádný neviditelný text.
   POZOR: cesty bez ?v= musí přesně sedět s preloadem v layout.php (jinak by se font stáhl 2×). */
@font-face {
  font-family: 'Bricolage Grotesque'; font-style: normal; font-weight: 400 800; font-display: swap;
  src: url(../fonts/bricolage-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Bricolage Grotesque'; font-style: normal; font-weight: 400 800; font-display: swap;
  src: url(../fonts/bricolage-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Hanken Grotesk'; font-style: normal; font-weight: 400 700; font-display: swap;
  src: url(../fonts/hanken-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Hanken Grotesk'; font-style: normal; font-weight: 400 700; font-display: swap;
  src: url(../fonts/hanken-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Avenir Light — pravý font klientova podsloganu „Outdoor for everyone" (dodal klient).
   Použit jen na .ch-logo-tagline. */
@font-face {
  font-family: 'Avenir Light'; font-style: normal; font-weight: 300; font-display: swap;
  src: url(../fonts/avenir-light.woff2) format('woff2');
}

:root {
  /* Brand — forest greens */
  --forest-950: #0E1F17;
  --forest-900: #14271E;
  --forest-800: #1B3528;
  --forest-700: #214333;
  --forest-600: #2A573F;
  --forest-500: #356E4F;   /* primary */
  --forest-400: #4B8C66;
  --moss-300:   #7BAE84;
  --moss-200:   #A9C9AC;

  /* Natural sand / cream neutrals */
  --cream:    #FBF8F1;
  --sand-50:  #F6F1E6;
  --sand-100: #F0E9D8;
  --sand-200: #E6DBC4;
  --sand-300: #D8C9A9;

  /* Warm CTA */
  --orange-400: #F0894E;
  --orange-500: #E8743B;
  --orange-600: #D25E27;

  /* Ink + text */
  --ink:        #16221C;
  --ink-soft:   #3C4A42;
  --ink-mute:   #6B7770;
  --line:       #E7E0D0;
  --line-soft:  #EFE9DC;

  /* Status */
  --ok:    #2F8F5B;
  --warn:  #C9821C;
  --gone:  #B24A3C;

  /* Type */
  --font-display: "Bricolage Grotesque", ui-serif, Georgia, serif;
  --font-body: "Hanken Grotesk", system-ui, -apple-system, sans-serif;

  /* Radii */
  --r-sm: 8px;
  --r-md: 14px;
  --r-lg: 22px;
  --r-xl: 30px;
  --r-pill: 999px;

  /* Shadow */
  --sh-sm: 0 1px 2px rgba(20,39,30,.06), 0 1px 3px rgba(20,39,30,.05);
  --sh-md: 0 6px 18px rgba(20,39,30,.08), 0 2px 6px rgba(20,39,30,.05);
  --sh-lg: 0 18px 48px rgba(20,39,30,.14), 0 6px 16px rgba(20,39,30,.08);
  --sh-cta: 0 8px 22px rgba(210,94,39,.32);

  /* Layout */
  --maxw: 1200px;
  --gut: clamp(18px, 4vw, 40px);
}

* { box-sizing: border-box; }

/* HTML atribut `hidden` musí skrýt i prvky s vlastním display (flex/grid) */
[hidden] { display: none !important; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: var(--font-body);
  color: var(--ink);
  background: var(--cream);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-size: 17px;
  line-height: 1.55;
}

h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.015em;
  margin: 0;
  color: var(--ink);
  text-wrap: balance;
}

p { margin: 0; text-wrap: pretty; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; }
img { display: block; max-width: 100%; }
ul { margin: 0; padding: 0; list-style: none; }

/* ---------- Layout helpers ---------- */
.wrap { width: 100%; max-width: var(--maxw); margin: 0 auto; padding-inline: var(--gut); }
.wrap-wide { max-width: 1340px; }
.section { padding-block: clamp(56px, 8vw, 110px); }
.eyebrow {
  font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  color: var(--forest-500); display: inline-flex; align-items: center; gap: 8px;
}
.eyebrow.on-dark { color: var(--moss-300); }

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  border: 0; border-radius: var(--r-pill); font-weight: 700; font-size: 16px;
  padding: 15px 26px; cursor: pointer; transition: transform .15s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
  white-space: nowrap; line-height: 1;
}
.btn:active { transform: translateY(1px); }
.btn-cta { background: var(--orange-500); color: #fff; box-shadow: var(--sh-cta); }
.btn-cta:hover { background: var(--orange-600); transform: translateY(-2px); }
.btn-forest { background: var(--forest-500); color: #fff; box-shadow: var(--sh-md); }
.btn-forest:hover { background: var(--forest-600); transform: translateY(-2px); }
.btn-ghost { background: rgba(255,255,255,.14); color: #fff; border: 1.5px solid rgba(255,255,255,.5); }
.btn-ghost:hover { background: rgba(255,255,255,.24); }
.btn-outline { background: #fff; color: var(--forest-600); border: 1.5px solid var(--line); }
.btn-outline:hover { border-color: var(--forest-400); color: var(--forest-600); }
.btn-sm { padding: 11px 18px; font-size: 14.5px; }
.btn-lg { padding: 17px 32px; font-size: 17.5px; }
.btn-block { width: 100%; }
.btn[disabled] { opacity: .45; cursor: not-allowed; box-shadow: none; }

/* Vlajky zemí (inline SVG — nezávislé na emoji podpoře OS) */
.flag { display: inline-block; border-radius: 2px; overflow: hidden; line-height: 0; vertical-align: -2px; box-shadow: 0 0 0 1px rgba(0,0,0,.12); }
.flag svg { display: block; }
.flag-cc { font-size: 10px; font-weight: 700; line-height: 1; padding: 2px 4px; background: #E9E3D6; color: var(--ink-soft, #555); box-shadow: none; vertical-align: baseline; }

/* ---------- Chips / badges ---------- */
.chip {
  display: inline-flex; align-items: center; gap: 6px; font-size: 13.5px; font-weight: 600;
  padding: 6px 12px; border-radius: var(--r-pill); background: var(--sand-100); color: var(--ink-soft);
}
.chip svg { width: 15px; height: 15px; }
.badge {
  display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 700;
  padding: 5px 11px; border-radius: var(--r-pill); letter-spacing: .01em;
}
.badge-ok   { background: #E4F1E8; color: var(--ok); }
.badge-warn { background: #FBEED5; color: var(--warn); }
.badge-gone { background: #F4E0DC; color: var(--gone); }

/* ---------- Photo placeholders (gradient stand-ins) ---------- */
.photo { position: relative; overflow: hidden; background: var(--sand-200); }
.photo > .photo-grad { position: absolute; inset: 0; }
.photo .photo-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.photo > .photo-hills { position: absolute; inset: 0; }
.photo > .photo-tag {
  position: absolute; left: 12px; bottom: 12px; z-index: 3;
  font-size: 11.5px; font-weight: 600; letter-spacing: .03em;
  color: rgba(255,255,255,.92); background: rgba(20,39,30,.34); backdrop-filter: blur(6px);
  padding: 5px 10px; border-radius: var(--r-pill); display: inline-flex; align-items: center; gap: 6px;
}
.photo > .photo-shade { position: absolute; inset: 0; z-index: 2;
  background: linear-gradient(180deg, rgba(14,31,23,0) 40%, rgba(14,31,23,.42) 100%); }

/* ---------- Cards ---------- */
.card {
  background: #fff; border-radius: var(--r-lg); box-shadow: var(--sh-md);
  border: 1px solid var(--line-soft); overflow: hidden;
}

/* ---------- Forms ---------- */
.field { display: flex; flex-direction: column; gap: 7px; }
.field label { font-size: 14px; font-weight: 600; color: var(--ink-soft); }
.field .req { color: var(--orange-600); }
.input, .select, .textarea {
  font-family: inherit; font-size: 16px; color: var(--ink);
  border: 1.5px solid var(--line); background: #fff; border-radius: var(--r-md);
  padding: 13px 15px; transition: border-color .15s ease, box-shadow .15s ease; width: 100%;
}
.input:focus, .select:focus, .textarea:focus {
  outline: none; border-color: var(--forest-400); box-shadow: 0 0 0 4px rgba(53,110,79,.12);
}
.input.err, .select.err { border-color: var(--gone); box-shadow: 0 0 0 4px rgba(178,74,60,.1); }
.field .msg { font-size: 13px; color: var(--gone); font-weight: 600; }
.textarea { resize: vertical; min-height: 90px; }

/* ---------- Utility ---------- */
.muted { color: var(--ink-mute); }
.center { text-align: center; }
.hr { height: 1px; background: var(--line); border: 0; margin: 0; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}


/* ===== components.css ===== */
/* ============================================================
   Czech Hikes — Component styles
   ============================================================ */

/* ---------------- Header ---------------- */
.ch-header { position: sticky; top: 0; z-index: 60; transition: background .25s ease, box-shadow .25s ease, border-color .25s; background: rgba(251,248,241,.88); backdrop-filter: blur(14px); border-bottom: 1px solid var(--line-soft); }
.ch-header.transparent { background: linear-gradient(180deg, rgba(11,26,19,.80) 0%, rgba(11,26,19,.42) 55%, rgba(11,26,19,.12) 100%); border-color: transparent; backdrop-filter: none; }
.ch-header.transparent .ch-logo-text { color: #fff; text-shadow: 0 1px 10px rgba(14,31,23,.45); }
.ch-header.transparent .ch-nav-link { color: #fff; font-weight: 700; text-shadow: 0 1px 8px rgba(14,31,23,.45); }
.ch-header.transparent .ch-nav-link:hover { background: rgba(255,255,255,.18); color: #fff; }
.ch-header.transparent .ch-lang { background: rgba(255,255,255,.2); border: 1px solid rgba(255,255,255,.3); }
.ch-header.transparent .ch-lang-btn { color: #fff; }
.ch-header.transparent .ch-lang-btn.active { background: #fff; color: var(--forest-700); }
.ch-header.transparent .ch-burger { color: #fff; }
.ch-header-inner { display: flex; align-items: center; gap: 24px; height: 74px; }
.ch-logo { display: inline-flex; align-items: center; gap: 11px; background: none; border: 0; padding: 0; }
.ch-logo-mark { width: 38px; height: 38px; border-radius: 11px; background: var(--forest-500); color: #fff; display: grid; place-items: center; box-shadow: var(--sh-sm); overflow: hidden; }
.ch-logo-mark img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* Název v brand barvě (tmavě zelená) jako v jejich logu — ne černá. Font je z Canva
   (klient ho nedodal), takže nejbližší dostupný je náš display grotesk. */
.ch-logo-text { font-family: var(--font-display); font-weight: 800; font-size: 21px; letter-spacing: .005em; text-transform: uppercase; color: var(--forest-700); }
.ch-logo-stack { display: flex; flex-direction: column; gap: 2px; line-height: 1; }
/* Podslogan brandu — psaný PŘESNĚ jako v jejich logu: „Outdoor for everyone" normálními
   písmeny (ne verzálky), tmavě zelená laděná s názvem. Font Avenir Light dle klienta;
   Avenir je komerční (mají ho Apple zařízení), jinde spadne na podobný grotesk z body fontu.
   Brand tagline, nepřekládá se. */
.ch-logo-tagline { font-family: "Avenir Light", "Avenir Next", Avenir, var(--font-body); font-weight: 300; font-size: 13px; letter-spacing: .01em; color: var(--forest-600); white-space: nowrap; }
.ch-header.transparent .ch-logo-tagline { color: rgba(255,255,255,.9); }
.ch-nav { display: flex; align-items: center; gap: 4px; margin-left: 8px; }
.ch-nav-link { background: none; border: 0; font-size: 15.5px; font-weight: 600; color: var(--ink-soft); padding: 9px 14px; border-radius: var(--r-pill); transition: background .15s, color .15s; }
.ch-nav-link:hover { background: rgba(53,110,79,.09); color: var(--forest-600); }
.ch-header-right { margin-left: auto; display: flex; align-items: center; gap: 14px; }
.ch-lang { display: inline-flex; background: var(--sand-100); border-radius: var(--r-pill); padding: 3px; }
.ch-lang-btn { background: none; border: 0; font-size: 13px; font-weight: 700; color: var(--ink-mute); padding: 9px 13px; border-radius: var(--r-pill); transition: all .15s; }
.ch-lang-btn.active { background: #fff; color: var(--forest-600); box-shadow: var(--sh-sm); }
.ch-burger { display: none; background: none; border: 0; color: var(--ink); padding: 9px; margin-right: -5px; }
.ch-mobile-menu { position: fixed; inset: 0; z-index: 200; background: rgba(14,31,23,.4); backdrop-filter: blur(3px); }
.ch-mobile-panel { position: absolute; top: 0; right: 0; bottom: 0; width: min(82vw, 340px); background: var(--cream); padding: 26px 24px; display: flex; flex-direction: column; gap: 4px; box-shadow: var(--sh-lg); animation: slideIn .25s ease; }
@keyframes slideIn { from { transform: translateX(40px); opacity: 0; } }
.ch-mobile-close { align-self: flex-end; background: none; border: 0; color: var(--ink); padding: 6px; margin-bottom: 12px; }
.ch-mobile-link { background: none; border: 0; text-align: left; font-size: 19px; font-weight: 600; color: var(--ink); padding: 13px 0; border-bottom: 1px solid var(--line-soft); }

@media (max-width: 900px) {
  .ch-nav { display: none; }
  .ch-book-btn { display: none; }
  .ch-burger { display: block; }
}

/* ---------------- Section heading ---------------- */
.sec-head { max-width: 640px; margin-bottom: 38px; }
.sec-head.center { margin-inline: auto; }
.sec-head h2 { font-size: clamp(28px, 4.4vw, 44px); margin-top: 14px; }
.sec-sub { margin-top: 14px; font-size: 18px; color: var(--ink-soft); }

/* ---------------- Tour card ---------------- */
.tour-card { display: flex; flex-direction: column; background: #fff; border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--sh-md); border: 1px solid var(--line-soft); transition: transform .2s ease, box-shadow .2s ease; }
.tour-card:hover { transform: translateY(-4px); box-shadow: var(--sh-lg); }
.tour-card-media { position: relative; border: 0; padding: 0; cursor: pointer; display: block; }
.tour-card-photo { height: 210px; }
.tour-card:hover .tour-card-photo .photo-grad,
.tour-card:hover .tour-card-photo .photo-img { transform: scale(1.05); transition: transform .5s ease; }
.tour-card-photo .photo-grad, .tour-card-photo .photo-img { transition: transform .5s ease; }
.tour-card-rating { position: absolute; top: 12px; right: 12px; z-index: 3; display: inline-flex; align-items: center; gap: 5px; background: rgba(255,255,255,.95); color: var(--ink); font-weight: 700; font-size: 13.5px; padding: 5px 10px; border-radius: var(--r-pill); box-shadow: var(--sh-sm); }
.tour-card-body { padding: 20px 20px 22px; display: flex; flex-direction: column; gap: 13px; flex: 1; }
.tour-card-head h3 { font-size: 22px; }
.tour-card-short { color: var(--ink-soft); font-size: 15px; line-height: 1.5; flex: 1; }
.tour-card-meta { display: flex; flex-wrap: wrap; gap: 8px; }
.tour-card-foot { display: flex; justify-content: space-between; align-items: flex-end; padding-top: 4px; }
.tour-card-price strong { font-size: 24px; font-family: var(--font-display); color: var(--ink); }
.tour-card-next { display: flex; align-items: center; gap: 8px; margin-top: 8px; flex-wrap: wrap; }
.tour-card-actions { display: grid; grid-template-columns: 1fr 1.3fr; gap: 10px; margin-top: 4px; }
.tour-card.featured { grid-column: span 2; }

/* ---------------- Accordion ---------------- */
.acc { display: flex; flex-direction: column; gap: 10px; }
.acc-item { background: #fff; border: 1px solid var(--line); border-radius: var(--r-md); overflow: hidden; transition: box-shadow .2s, border-color .2s; }
.acc-item.open { box-shadow: var(--sh-md); border-color: var(--moss-200); }
.acc-q { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 16px; background: none; border: 0; padding: 19px 22px; text-align: left; font-family: var(--font-display); font-weight: 600; font-size: 18px; color: var(--ink); }
.acc-icon { color: var(--forest-500); transition: transform .25s ease; flex-shrink: 0; }
.acc-item.open .acc-icon { transform: rotate(180deg); }
.acc-a-wrap { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .28s ease; }
.acc-item.open .acc-a-wrap { grid-template-rows: 1fr; }
.acc-a { overflow: hidden; color: var(--ink-soft); font-size: 16px; line-height: 1.6; padding: 0 22px; }
.acc-item.open .acc-a { padding-bottom: 21px; }

/* ---------------- Footer ---------------- */
.ch-footer { background: var(--forest-950); color: #fff; padding-block: 64px 30px; margin-top: 20px; }
.ch-footer-grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 40px; padding-bottom: 44px; border-bottom: 1px solid rgba(255,255,255,.12); }
.ch-footer-h { font-size: 14px; text-transform: uppercase; letter-spacing: .1em; color: var(--moss-300); margin-bottom: 16px; font-family: var(--font-body); font-weight: 700; }
.ch-footer-list { display: flex; flex-direction: column; gap: 11px; }
.ch-footer-list button, .ch-footer-list a { background: none; border: 0; color: rgba(255,255,255,.8); font-size: 15px; padding: 0; text-align: left; transition: color .15s; font-family: inherit; }
.ch-footer-list button:hover, .ch-footer-list a:hover { color: #fff; }
.ch-footer-bottom { display: flex; justify-content: space-between; align-items: center; padding-top: 24px; color: var(--moss-200); font-size: 14px; }
.ch-footer-bottom button { background: none; border: 0; color: var(--moss-200); font-size: 14px; font-family: inherit; }
.ch-footer-bottom button:hover { color: #fff; }

/* Kontakty v patičce — ikona + údaj na řádku */
.ch-contact-list li { display: flex; align-items: center; gap: 10px; color: var(--moss-200); font-size: 15px; }
.ch-contact-list li > svg { color: var(--moss-300); flex-shrink: 0; }
.ch-contact-list a { display: inline-flex; align-items: center; gap: 10px; }
.ch-contact-list a svg { color: var(--moss-300); flex-shrink: 0; transition: color .15s; }
.ch-contact-list a:hover svg { color: #fff; }

/* Sociální sítě — jednotný kruhový styl, sjednocený napříč sítěmi */
.ch-social { display: flex; gap: 10px; margin-top: 20px; }
.ch-social-link { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: rgba(255,255,255,.08); color: var(--moss-200); transition: background .18s, color .18s, transform .18s; }
.ch-social-link:hover { background: var(--forest-500); color: #fff; transform: translateY(-2px); }
.ch-social-link:focus-visible { outline: 2px solid var(--moss-300); outline-offset: 2px; }

@media (max-width: 760px) {
  .ch-footer-grid { grid-template-columns: 1fr 1fr; gap: 32px 24px; }
  .ch-footer-bottom { flex-direction: column; gap: 14px; }
}
@media (max-width: 480px) {
  .ch-footer-grid { grid-template-columns: 1fr; }
}


/* ===== pages.css ===== */
/* ============================================================
   Czech Hikes — Page styles: Home
   ============================================================ */

/* ---------------- Hero ---------------- */
.hero { position: relative; min-height: min(92vh, 760px); display: flex; align-items: center; overflow: hidden; }
.hero-bg { position: absolute; inset: 0; height: 100%; }
.hero-overlay { position: absolute; inset: 0; z-index: 2; background:
  radial-gradient(120% 80% at 15% 10%, rgba(14,31,23,.20), transparent 60%),
  linear-gradient(90deg, rgba(14,31,23,.62) 0%, rgba(14,31,23,.34) 48%, rgba(14,31,23,.12) 100%); }
.hero-inner { position: relative; z-index: 3; padding-block: 60px; }
.hero-content { max-width: 660px; }
.hero-eyebrow { display: inline-flex; align-items: center; gap: 8px; color: #fff; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.28); backdrop-filter: blur(6px); padding: 8px 15px; border-radius: var(--r-pill); font-size: 14px; font-weight: 600; }
.hero-title { color: #fff; font-size: clamp(40px, 7vw, 76px); line-height: .98; margin-top: 22px; letter-spacing: -.025em; }
.hero-sub { color: rgba(255,255,255,.92); font-size: clamp(17px, 2.2vw, 21px); margin-top: 22px; max-width: 560px; line-height: 1.5; }
.hero-cta { display: flex; gap: 14px; margin-top: 34px; flex-wrap: wrap; }
.hero-trust { display: flex; align-items: center; gap: 14px; margin-top: 38px; flex-wrap: wrap; color: rgba(255,255,255,.94); font-size: 14.5px; font-weight: 600; }
.hero-trust span { display: inline-flex; align-items: center; gap: 7px; }
.hero-trust-dot { width: 4px; height: 4px; border-radius: 99px; background: rgba(255,255,255,.5); }
.hero-fade { position: absolute; left: 0; right: 0; bottom: 0; height: 90px; z-index: 3; background: linear-gradient(180deg, transparent, var(--cream)); }

@media (max-width: 600px) {
  .hero-trust-dot { display: none; }
  .hero-trust { gap: 8px 16px; }
  .hero-cta .btn { flex: 1; }
}

/* Hero fotka: na užších displejích posunout výřez doprava, ať zůstane vidět turista i oblouk Pravčické brány — cover by je jinak ořízl zprava. */
@media (max-width: 900px) {
  .hero .hero-bg .photo-img { object-position: 80% center; }
}

/* ---------------- Tours grid ---------------- */
.tours-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
@media (max-width: 1000px) { .tours-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .tours-grid { grid-template-columns: 1fr; gap: 20px; } .tour-card.featured { grid-column: span 1; } }

/* ---------------- Why ---------------- */
.why-section { background: var(--forest-900); position: relative; overflow: hidden; }
.why-section::before { content: ""; position: absolute; inset: 0; background: radial-gradient(80% 60% at 90% 0%, rgba(53,110,79,.4), transparent 70%); }
.why-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; position: relative; }
.why-card { background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1); border-radius: var(--r-lg); padding: 28px 26px; transition: background .2s, transform .2s; }
.why-card:hover { background: rgba(255,255,255,.09); transform: translateY(-3px); }
.why-ic { display: inline-grid; place-items: center; width: 50px; height: 50px; border-radius: 14px; background: rgba(123,174,132,.2); color: var(--moss-300); margin-bottom: 16px; }
.why-card h3 { color: #fff; font-size: 20px; margin-bottom: 9px; }
.why-card p { color: var(--moss-200); font-size: 15px; line-height: 1.55; }
@media (max-width: 880px) { .why-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 540px) { .why-grid { grid-template-columns: 1fr; } }

/* ---------------- How ---------------- */
.how-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.how-step { position: relative; text-align: center; padding: 0 8px; }
.how-num { display: inline-grid; place-items: center; width: 60px; height: 60px; border-radius: 50%; background: var(--sand-100); color: var(--forest-600); font-family: var(--font-display); font-weight: 700; font-size: 26px; border: 2px solid var(--moss-200); position: relative; z-index: 2; }
.how-step h3 { font-size: 20px; margin: 18px 0 9px; }
.how-step p { color: var(--ink-soft); font-size: 15.5px; }
.how-line { position: absolute; top: 30px; left: 60%; width: 80%; height: 2px; background: repeating-linear-gradient(90deg, var(--moss-200) 0 7px, transparent 7px 14px); z-index: 1; }
@media (max-width: 820px) { .how-grid { grid-template-columns: 1fr 1fr; gap: 36px 24px; } .how-line { display: none; } }
@media (max-width: 460px) { .how-grid { grid-template-columns: 1fr; } }

/* ---------------- Proof ---------------- */
.proof-section { background: var(--sand-50); }
.proof-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.proof-card { margin: 0; background: #fff; border: 1px solid var(--line-soft); border-radius: var(--r-lg); padding: 26px; box-shadow: var(--sh-sm); display: flex; flex-direction: column; gap: 14px; }
.proof-card blockquote { margin: 0; font-size: 16.5px; line-height: 1.55; color: var(--ink); flex: 1; }
.proof-card figcaption { display: flex; align-items: center; gap: 12px; }
.proof-avatar { width: 42px; height: 42px; border-radius: 50%; background: var(--forest-500); color: #fff; display: grid; place-items: center; font-weight: 700; font-family: var(--font-display); font-size: 18px; }
@media (max-width: 900px) { .proof-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 580px) { .proof-grid { grid-template-columns: 1fr; } }

/* ---------------- Included ---------------- */
.incl-wrap { display: grid; grid-template-columns: 1.45fr 1fr; gap: 48px; align-items: start; }
.incl-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 10px; }
.incl-item { display: flex; align-items: center; gap: 13px; font-size: 16.5px; font-weight: 600; color: var(--ink); background: var(--sand-50); padding: 16px 18px; border-radius: var(--r-md); }
.incl-ic { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 11px; background: #fff; color: var(--forest-500); flex-shrink: 0; box-shadow: var(--sh-sm); }
.incl-card { background: var(--forest-800); color: #fff; border-radius: var(--r-lg); padding: 30px; }
.incl-card h4 { color: #fff; font-size: 20px; margin-bottom: 18px; }
.incl-card ul { display: flex; flex-direction: column; gap: 13px; }
.incl-card li { display: flex; align-items: center; gap: 11px; color: var(--moss-200); font-size: 15.5px; }
.incl-card-foot { display: flex; align-items: center; gap: 12px; margin-top: 24px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.14); font-size: 14px; color: var(--moss-200); }
.incl-card-foot .check, .incl-card-foot svg { color: var(--moss-300) !important; }
@media (max-width: 820px) { .incl-wrap { grid-template-columns: 1fr; gap: 32px; } }
@media (max-width: 480px) { .incl-grid { grid-template-columns: 1fr; } }

/* ---------------- About us ---------------- */
.about-section { scroll-margin-top: 80px; }
.about-wrap { display: grid; grid-template-columns: 1.35fr 1fr; gap: 48px; align-items: start; }
.about-main .sec-head { margin-bottom: 22px; }
.about-p { font-size: 17px; line-height: 1.65; color: var(--ink-soft); }
.about-p + .about-p { margin-top: 14px; }
.about-founders { background: var(--forest-800); color: #fff; border-radius: var(--r-lg); padding: 32px; }
.about-founders-ic { display: inline-grid; place-items: center; width: 46px; height: 46px; border-radius: 13px; background: rgba(255,255,255,.1); color: var(--moss-300); margin-bottom: 16px; }
.about-founders h3 { color: #fff; font-size: 23px; margin-bottom: 14px; }
.about-founders p { color: var(--moss-200); font-size: 15.5px; line-height: 1.6; }
.about-founders p + p { margin-top: 12px; }
@media (max-width: 900px) { .about-wrap { grid-template-columns: 1fr; gap: 32px; } }

/* ---------------- Instagram ---------------- */
.ig-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.ig-cell { position: relative; display: block; border-radius: var(--r-md); overflow: hidden; aspect-ratio: 1; background: var(--sand-100); }
.ig-cell img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s ease; }
.ig-cell:hover img { transform: scale(1.06); }
.ig-cell-ic { position: absolute; inset: 0; display: grid; place-items: center; color: #fff; background: rgba(14,31,23,.38); opacity: 0; transition: opacity .2s ease; }
.ig-cell:hover .ig-cell-ic { opacity: 1; }
@media (max-width: 880px) { .ig-grid { grid-template-columns: repeat(3, 1fr); gap: 10px; } }
@media (max-width: 560px) { .ig-grid { grid-template-columns: repeat(2, 1fr); } }

/* ---------------- FAQ ---------------- */
.faq-section { background: var(--sand-50); }

/* ---------------- Final CTA ---------------- */
.final-cta { position: relative; border-radius: var(--r-xl); overflow: hidden; }
.final-cta-bg { position: absolute; inset: 0; height: 100%; }
.final-cta-inner { position: relative; z-index: 3; text-align: center; padding: clamp(48px, 8vw, 92px) 24px; max-width: 640px; margin: 0 auto; }
/* Ztmavení pro čitelnost přes CELOU šířku karty (ne jen pod textem) — jinak vznikne viditelný obdélník. */
.final-cta::before { content: ""; position: absolute; inset: 0; z-index: 2; background: linear-gradient(180deg, rgba(14,31,23,.34), rgba(14,31,23,.48)); }
.final-cta-inner h2 { color: #fff; font-size: clamp(30px, 5vw, 50px); }
.final-cta-inner p { color: rgba(255,255,255,.92); font-size: 19px; margin: 18px 0 30px; }


/* ===== booking.css ===== */
/* ============================================================
   Czech Hikes — Page styles: Listing, Detail, Booking, Thanks
   ============================================================ */

/* ---------- Shared ---------- */
.back-link { display: inline-flex; align-items: center; gap: 5px; background: none; border: 0; color: var(--forest-600); font-weight: 600; font-size: 14.5px; padding: 6px 0; margin-bottom: 8px; font-family: inherit; }
.back-link:hover { color: var(--forest-500); }
.back-link.on-dark { color: rgba(255,255,255,.9); }
.back-link.on-dark:hover { color: #fff; }

.mobile-cta { display: none; position: fixed; left: 0; right: 0; bottom: 0; z-index: 80; background: #fff; border-top: 1px solid var(--line); padding: 12px var(--gut); align-items: center; justify-content: space-between; gap: 16px; box-shadow: 0 -6px 24px rgba(20,39,30,.1); }
.mobile-cta .btn { flex: 1; max-width: 60%; }
@media (max-width: 920px) { .mobile-cta { display: flex; } body { padding-bottom: 76px; } }

/* ---------- Listing ---------- */
.listing-main { min-height: 80vh; }
.listing-head { background: var(--forest-900); color: #fff; padding-block: 40px 46px; }
.listing-head .back-link { color: var(--moss-200); }
.listing-head .back-link:hover { color: #fff; }
.listing-head h1 { color: #fff; font-size: clamp(30px, 5vw, 46px); }
.listing-head p { color: var(--moss-200); font-size: 18px; margin-top: 12px; max-width: 560px; }
/* Filtry odstraněny (klient 06/2026) — výpis je jen mřížka karet přes celou šířku. */
.listing-body { padding-block: 40px 70px; }
.listing-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.listing-empty { text-align: center; padding: 60px 20px; color: var(--ink-mute); display: flex; flex-direction: column; align-items: center; gap: 14px; }
@media (max-width: 880px) { .listing-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .listing-grid { grid-template-columns: 1fr; } }

/* ---------- Detail ---------- */
.detail-hero { position: relative; height: min(56vh, 480px); display: flex; align-items: flex-end; overflow: hidden; }
.detail-hero-bg { position: absolute; inset: 0; height: 100%; }
.detail-hero-overlay { position: absolute; inset: 0; z-index: 2; background: linear-gradient(180deg, rgba(14,31,23,.45) 0%, rgba(14,31,23,.1) 35%, rgba(14,31,23,.72) 100%); }
.detail-hero-inner { position: relative; z-index: 3; padding-block: 36px; color: #fff; }
.detail-hero-inner h1 { color: #fff; font-size: clamp(32px, 5.5vw, 58px); margin-top: 10px; max-width: 760px; }
.detail-hero-rating { display: inline-flex; align-items: center; gap: 8px; font-size: 15px; color: rgba(255,255,255,.95); margin-top: 6px; }
.detail-hero-rating strong { color: #fff; }
.detail-hero-place { display: inline-flex; align-items: center; gap: 7px; color: rgba(255,255,255,.92); font-size: 17px; margin-top: 12px; font-weight: 500; }

.detail-layout { display: grid; grid-template-columns: 1fr 360px; gap: 48px; padding-block: 44px 80px; align-items: start; }
.detail-content { min-width: 0; }
.stat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(168px, 1fr)); gap: 14px; margin-bottom: 12px; }
.detail-departinfo { display: flex; align-items: center; gap: 10px; margin: 0 0 24px; padding: 12px 16px; background: var(--sand-50); border: 1px solid var(--line-soft); border-radius: var(--r-md); font-size: 14.5px; color: var(--ink-mute); }
.detail-departinfo svg { color: var(--forest-500); flex-shrink: 0; }
.detail-departinfo strong { color: var(--ink); font-weight: 700; }
.stat-tile { display: flex; align-items: center; gap: 12px; background: #fff; border: 1px solid var(--line-soft); border-radius: var(--r-md); padding: 15px; box-shadow: var(--sh-sm); }
.stat-ic { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 11px; background: var(--sand-50); color: var(--forest-500); flex-shrink: 0; }
.stat-label { display: block; font-size: 12.5px; color: var(--ink-mute); font-weight: 600; }
.stat-value { font-size: 15px; font-family: var(--font-display); }
.detail-section { padding-top: 36px; margin-top: 36px; border-top: 1px solid var(--line); }
.detail-section:first-of-type { border-top: 0; }
.detail-section > h2 { font-size: clamp(24px, 3.5vw, 32px); margin-bottom: 18px; }
.detail-prose { font-size: 17.5px; line-height: 1.65; color: var(--ink-soft); max-width: 660px; }
/* Právní stránky (Terms / Privacy) */
.legal-prose { font-size: 16px; line-height: 1.7; }
.legal-prose .legal-updated { color: var(--ink-mute); font-size: 14px; margin: 0 0 26px; }
.legal-prose .legal-h { font-family: var(--font-display); font-size: 21px; color: var(--ink); margin: 30px 0 8px; }
.legal-prose p { margin: 0 0 12px; }
.legal-prose strong { color: var(--ink); font-weight: 600; }
/* Nadpisy a tučné termíny nejsou odkazy — kurzor šipka (ne text/ruka) to signalizuje
   a odrazuje od zkusmého klikání (Clarity: dead clicks na legal stránkách). */
.legal-prose .legal-h, .legal-prose strong { cursor: default; }
.legal-prose a:not(.btn) { color: var(--forest-600); text-decoration: underline; }
/* Cookie lišta */
.cookie-banner { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 300; display: flex; justify-content: center; }
.cookie-card { background: #fff; border: 1px solid var(--line-soft); border-radius: 18px; box-shadow: 0 14px 44px rgba(20,40,30,.20); padding: 20px 22px; max-width: 560px; width: 100%; }
.cookie-title { font-family: var(--font-display); font-size: 19px; margin: 0 0 8px; }
.cookie-text { font-size: 14px; color: var(--ink-mute); margin: 0 0 16px; line-height: 1.55; }
.cookie-text a { color: var(--forest-600); text-decoration: underline; }
.cookie-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.cookie-cats { list-style: none; margin: 0 0 16px; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.cookie-cats li { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.cookie-cats strong { display: block; font-size: 14.5px; }
.cookie-cats span { display: block; font-size: 13px; color: var(--ink-mute); margin-top: 2px; line-height: 1.45; }
.cookie-cats input { margin-top: 3px; flex-shrink: 0; width: 18px; height: 18px; accent-color: var(--forest-500); }
.detail-meta-row { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 20px; }

/* Dynamická galerie — počet fotek je proměnný; cover (g0) je velký, zbytek se zalomí. */
.gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(148px, 1fr)); grid-auto-rows: 140px; gap: 10px; }
.gallery-cell { border-radius: var(--r-md); overflow: hidden; }
.gallery .g0 { grid-column: span 2; grid-row: span 2; }
.gallery[data-count="1"] { grid-template-columns: 1fr; grid-auto-rows: clamp(240px, 42vw, 420px); }
.gallery[data-count="1"] .g0 { grid-column: span 1; grid-row: span 1; }
@media (max-width: 600px) { .gallery { grid-template-columns: 1fr 1fr; grid-auto-rows: 128px; } .gallery .g0 { grid-column: span 2; grid-row: span 1; } }

/* Galerie — klikací buňky (otevřou lightbox) */
.gallery-cell.is-zoomable { cursor: zoom-in; }
.gallery-cell.is-zoomable .photo-img { transition: transform .45s ease; }
.gallery-cell.is-zoomable:hover .photo-img { transform: scale(1.06); }
.gallery-cell.is-zoomable:focus-visible { outline: 3px solid var(--forest-400); outline-offset: 3px; }

/* Lightbox (fullscreen prohlížeč fotek) */
.lightbox { position: fixed; inset: 0; z-index: 1200; display: flex; align-items: center; justify-content: center; padding: 24px;
  background: rgba(8,18,12,.93); opacity: 0; transition: opacity .2s ease; }
.lightbox.is-open { opacity: 1; }
.lightbox[hidden] { display: none; }
.lb-stage { margin: 0; max-width: min(1120px, 94vw); max-height: 86vh; display: flex; }
.lb-img { max-width: 100%; max-height: 86vh; width: auto; height: auto; object-fit: contain; border-radius: var(--r-md);
  box-shadow: 0 24px 70px rgba(0,0,0,.55); }
.lb-close, .lb-nav { position: absolute; border: none; background: rgba(255,255,255,.13); color: #fff; cursor: pointer;
  display: flex; align-items: center; justify-content: center; line-height: 1; transition: background .2s, transform .2s; }
.lb-close:hover, .lb-nav:hover { background: rgba(255,255,255,.27); }
.lb-close { top: 18px; right: 20px; width: 46px; height: 46px; border-radius: 50%; font-size: 26px; }
.lb-nav { top: 50%; transform: translateY(-50%); width: 54px; height: 54px; border-radius: 50%; font-size: 30px; }
.lb-nav:hover { transform: translateY(-50%) scale(1.06); }
.lb-prev { left: 20px; }
.lb-next { right: 20px; }
.lb-counter { position: absolute; bottom: 22px; left: 50%; transform: translateX(-50%); color: #fff; font-size: 13.5px; font-weight: 600;
  background: rgba(0,0,0,.4); padding: 5px 14px; border-radius: 99px; }
@media (max-width: 600px) {
  .lb-close { top: 12px; right: 12px; width: 42px; height: 42px; }
  .lb-nav { width: 44px; height: 44px; font-size: 26px; }
  .lb-prev { left: 8px; }
  .lb-next { right: 8px; }
  .lb-counter { bottom: 14px; }
}

.itinerary { position: relative; margin: 0; padding: 0; }
.itin-step { display: grid; grid-template-columns: 64px 22px 1fr; gap: 0; align-items: start; padding-bottom: 26px; position: relative; }
.itin-step:last-child { padding-bottom: 0; }
.itin-time { font-family: var(--font-display); font-weight: 700; font-size: 15px; color: var(--forest-600); padding-top: 1px; }
.itin-dot { width: 14px; height: 14px; border-radius: 50%; background: #fff; border: 3px solid var(--forest-500); margin-top: 4px; position: relative; z-index: 2; }
.itin-step:not(:last-child) .itin-dot::after { content: ""; position: absolute; top: 14px; left: 50%; transform: translateX(-50%); width: 2px; height: calc(100% + 26px); background: var(--sand-300); }
.itin-body { padding-left: 16px; }
.itin-body strong { font-size: 17px; font-family: var(--font-display); }
.itin-body p { color: var(--ink-soft); font-size: 15px; margin-top: 3px; }

.detail-incl-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 32px; }
.detail-incl-col { display: flex; flex-direction: column; gap: 11px; }
.detail-incl-h { font-size: 16px; color: var(--ink-mute); margin-bottom: 4px; font-family: var(--font-body); }
.detail-incl-item { display: flex; align-items: center; gap: 11px; font-size: 16px; font-weight: 500; }
.detail-incl-item.ok { color: var(--ink); }
.detail-incl-item.no { color: var(--ink-mute); }
.dii-ic { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 9px; background: #E4F1E8; color: var(--ok); flex-shrink: 0; }
@media (max-width: 600px) { .detail-incl-grid { grid-template-columns: 1fr; gap: 24px; } }

.detail-twocol { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.info-box { background: var(--sand-50); border-radius: var(--r-lg); padding: 26px; }
.info-ic { display: inline-grid; place-items: center; width: 46px; height: 46px; border-radius: 13px; background: #fff; color: var(--forest-500); margin-bottom: 14px; box-shadow: var(--sh-sm); }
.info-box h3 { font-size: 20px; margin-bottom: 8px; }
.info-box p { color: var(--ink-soft); font-size: 15.5px; line-height: 1.55; }
@media (max-width: 600px) { .detail-twocol { grid-template-columns: 1fr; } }

.reviews-head { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 10px; }
.reviews-score { display: inline-flex; align-items: center; gap: 9px; }
.reviews-score strong { font-size: 26px; font-family: var(--font-display); }
.detail-reviews { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 20px; }
.detail-review { margin: 0; background: var(--sand-50); border-radius: var(--r-md); padding: 22px; display: flex; flex-direction: column; gap: 12px; }
.detail-review blockquote { margin: 0; font-size: 16px; line-height: 1.55; }
.detail-review figcaption { display: flex; align-items: center; gap: 10px; }
@media (max-width: 600px) { .detail-reviews { grid-template-columns: 1fr; } }

/* Sticky košík: na nižších displejích (14" notebook) se karta nesmí přetáhnout pod okraj
   okna — omezí se výškou viewportu a scrolluje uvnitř; CTA tlačítko je přilepené dole,
   takže je VŽDY viditelné bez ohledu na to, kolik řádků v souhrnu přibude (klient, bod 13). */
.detail-aside { position: sticky; top: 90px; max-height: calc(100vh - 102px); display: flex; flex-direction: column; }
.detail-aside .bk-summary-card { overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: var(--sand-300) transparent; }
.bk-summary-cta { position: sticky; bottom: 0; z-index: 2; background: linear-gradient(180deg, rgba(255,255,255,0) 0%, #fff 30%); margin: 0 -22px; padding: 12px 22px 10px; }
@media (max-width: 920px) { .bk-summary-cta { position: static; margin: 0; padding: 0; background: none; } }
.book-widget { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 24px; box-shadow: var(--sh-md); }
.book-widget-price { display: flex; align-items: baseline; gap: 7px; margin-bottom: 16px; }
.book-widget-price strong { font-size: 34px; font-family: var(--font-display); }
.book-widget-next { display: flex; align-items: center; gap: 9px; background: var(--sand-50); border-radius: var(--r-md); padding: 12px 14px; font-size: 14.5px; margin-bottom: 16px; }
.book-widget-list { display: flex; flex-direction: column; gap: 10px; margin-bottom: 20px; }
.book-widget-list li { display: flex; align-items: center; gap: 10px; font-size: 14.5px; color: var(--ink-soft); }
.book-widget-list svg { color: var(--ok); flex-shrink: 0; }
.book-widget-note { display: flex; align-items: center; gap: 7px; justify-content: center; margin-top: 14px; font-size: 12.5px; color: var(--ink-mute); }
@media (max-width: 920px) {
  .detail-layout { grid-template-columns: 1fr; }
  .detail-aside { display: none; }
}

/* ---------- Detail v2 — vložená rezervace na produktové stránce ---------- */
/* Pozn.: plynulý scroll řeší JS (app.js smoothScrollTo) — CSS scroll-behavior:smooth
   blokuje programový scroll, když má uživatel v prohlížeči/OS vypnutý plynulý posuv. */
.detail-hero-cta { margin-top: 24px; }
/* Rezervace jako ucelený béžový panel — bílé karty kroků na něm vyniknou. */
.bk-embed { border: 1px solid var(--line-soft); border-radius: var(--r-lg); background: var(--sand-50); padding: 30px; margin-top: 44px; }
.bk-embed > h2 { font-size: clamp(24px, 3.5vw, 32px); margin-bottom: 22px; }
/* Při skoku z košíku zarovnej krok pod sticky hlavičku (ne za ni). */
.bk-embed .bk-step { scroll-margin-top: 86px; }
/* Cena „from €X" v sticky souhrnu (nad rozpisem). */
.bk-summary-price { display: flex; align-items: baseline; gap: 6px; margin: 0 0 4px; }
.bk-summary-price strong { font-size: 30px; font-family: var(--font-display); line-height: 1; }
@media (max-width: 600px) { .bk-embed { padding: 18px 10px; } }

/* ---------- Booking ---------- */
.bk-main { min-height: 80vh; background: var(--sand-50); }
.bk-top { background: var(--forest-900); color: #fff; padding-block: 34px 38px; }
.bk-top .back-link { color: var(--moss-200); } .bk-top .back-link:hover { color: #fff; }
.bk-top h1 { color: #fff; font-size: clamp(28px, 4.5vw, 42px); }
.bk-layout { display: grid; grid-template-columns: 1fr 380px; gap: 40px; padding-block: 38px 80px; align-items: start; }
.bk-steps { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.bk-step { background: #fff; border: 1px solid var(--line-soft); border-radius: var(--r-lg); padding: 26px 28px; box-shadow: var(--sh-sm); }
.bk-step-head { display: flex; align-items: center; gap: 13px; margin-bottom: 20px; }
.bk-step-n { width: 32px; height: 32px; border-radius: 50%; background: var(--forest-500); color: #fff; display: grid; place-items: center; font-weight: 700; font-family: var(--font-display); font-size: 16px; flex-shrink: 0; }
.bk-step-head h2 { font-size: 22px; }

.bk-date-picked { display: flex; align-items: center; gap: 10px; background: #E4F1E8; border-radius: var(--r-md); padding: 13px 16px; margin-top: 16px; font-size: 14.5px; flex-wrap: wrap; }
/* Pulz po výběru data — okamžité vizuální potvrzení, že klik zabral (řeší dead clicks na kalendáři). */
.bk-date-picked.flash { animation: bkPickedFlash .9s ease; }
@keyframes bkPickedFlash {
  0%   { background: #E4F1E8; box-shadow: none; }
  22%  { background: #C6E7D0; box-shadow: 0 0 0 3px rgba(46,139,87,.28); }
  100% { background: #E4F1E8; box-shadow: none; }
}
@media (prefers-reduced-motion: reduce) { .bk-date-picked.flash { animation: none; } }
.bk-people { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.bk-cap-warn { display: flex; align-items: center; gap: 7px; margin-top: 14px; color: var(--warn); font-weight: 600; font-size: 14px; }

/* Cenové skupiny — řádek per skupina (label + cena + počítadlo) */
.bk-price-rows { display: flex; flex-direction: column; }
.bk-price-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 15px 0; border-top: 1px solid var(--line-soft); }
.bk-price-row:first-child { border-top: 0; padding-top: 2px; }
.bk-price-info { display: flex; flex-direction: column; gap: 3px; }
.bk-price-info strong { font-size: 16px; }
.bk-price-amount { font-size: 14px; }
.stepper { display: inline-flex; align-items: center; gap: 4px; background: var(--sand-50); border-radius: var(--r-pill); padding: 5px; }
.stepper-btn { width: 40px; height: 40px; border-radius: 50%; border: 0; background: #fff; color: var(--forest-600); display: grid; place-items: center; box-shadow: var(--sh-sm); transition: all .15s; }
.stepper-btn:hover:not(:disabled) { background: var(--forest-500); color: #fff; }
.stepper-btn:disabled { opacity: .4; }
.stepper-val { min-width: 38px; text-align: center; font-size: 20px; font-weight: 700; font-family: var(--font-display); }

.bk-form { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.bk-form-full { grid-column: span 2; }
@media (max-width: 520px) { .bk-form { grid-template-columns: 1fr; } .bk-form-full { grid-column: span 1; } }

.pay-opts { display: flex; flex-direction: column; gap: 12px; }
.pay-opt { display: flex; align-items: center; gap: 14px; text-align: left; background: #fff; border: 1.5px solid var(--line); border-radius: var(--r-md); padding: 17px 18px; transition: all .15s; position: relative; font-family: inherit; }
.pay-opt:hover { border-color: var(--moss-300); }
.pay-opt.active { border-color: var(--forest-500); background: #F4F8F4; box-shadow: 0 0 0 3px rgba(53,110,79,.1); }
.pay-radio { width: 22px; height: 22px; border-radius: 50%; border: 2px solid var(--line); flex-shrink: 0; transition: all .15s; position: relative; }
.pay-opt.active .pay-radio { border-color: var(--forest-500); }
.pay-opt.active .pay-radio::after { content: ""; position: absolute; inset: 4px; border-radius: 50%; background: var(--forest-500); }
.pay-ic { display: inline-grid; place-items: center; width: 42px; height: 42px; border-radius: 11px; background: var(--sand-50); color: var(--forest-600); flex-shrink: 0; }
.pay-text { display: flex; flex-direction: column; gap: 2px; }
.pay-text strong { font-size: 16.5px; }
.pay-text span { font-size: 13.5px; color: var(--ink-mute); }
.pay-badge { margin-left: auto; font-size: 12px; font-weight: 700; color: var(--forest-600); background: var(--sand-100); padding: 5px 10px; border-radius: var(--r-pill); white-space: nowrap; }

/* Summary */
.bk-summary { position: sticky; top: 90px; }
.bk-summary-card { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--sh-md); }
.bk-summary-media { height: 120px; }
.bk-summary-photo { height: 100%; }
.bk-summary-body { padding: 20px 22px 24px; }
.bk-summary-body h3 { font-size: 21px; }
.bk-summary-rows { display: flex; flex-direction: column; gap: 11px; margin: 4px 0 16px; padding: 16px 0; border-top: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); }
.bk-summary-rows > div { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.bk-summary-rows dt { color: var(--ink-mute); font-size: 14px; }
.bk-summary-rows dd { margin: 0; font-weight: 600; font-size: 14.5px; text-align: right; }
.bk-summary-lines { list-style: none; margin: -8px 0 16px; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.bk-summary-lines li { display: flex; justify-content: space-between; gap: 12px; font-size: 13.5px; color: var(--ink-mute); }
.bk-summary-lines li span:last-child { font-weight: 700; white-space: nowrap; color: var(--ink); }
.bk-summary-total { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 18px; }
.bk-summary-total span { font-size: 16px; font-weight: 600; }
.bk-summary-total strong { font-size: 30px; font-family: var(--font-display); }
.bk-summary-note { display: flex; align-items: center; gap: 7px; justify-content: center; margin-top: 12px; font-size: 12.5px; color: var(--ink-mute); }
.bk-summary-incl { display: flex; flex-direction: column; gap: 8px; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line-soft); }
.bk-summary-incl li { display: flex; align-items: center; gap: 9px; font-size: 13.5px; color: var(--ink-soft); }
.bk-summary-incl svg { color: var(--ok); flex-shrink: 0; }
@media (max-width: 920px) {
  .bk-layout { grid-template-columns: 1fr; }
  .bk-summary { position: static; order: -1; }
  .bk-summary-incl { display: none; }
}

/* Wizard */
.wz-progress { display: flex; gap: 8px; margin-bottom: 4px; flex-wrap: wrap; }
.wz-pill { display: inline-flex; align-items: center; gap: 7px; background: #fff; border: 1px solid var(--line); border-radius: var(--r-pill); padding: 8px 14px; font-size: 13.5px; font-weight: 600; color: var(--ink-mute); }
.wz-pill.active { border-color: var(--forest-500); color: var(--forest-600); }
.wz-pill.done { background: var(--forest-500); border-color: var(--forest-500); color: #fff; }
.wz-pill-n { width: 20px; height: 20px; border-radius: 50%; background: var(--sand-100); display: grid; place-items: center; font-size: 12px; }
.wz-pill.active .wz-pill-n { background: var(--forest-500); color: #fff; }
.wz-pill.done .wz-pill-n { background: rgba(255,255,255,.25); color: #fff; }
.wz-nav { display: flex; gap: 12px; align-items: center; }

/* Stripe overlay */
.stripe-overlay { position: fixed; inset: 0; z-index: 300; background: rgba(14,31,23,.55); backdrop-filter: blur(4px); display: grid; place-items: center; }
.stripe-card { background: #fff; border-radius: var(--r-lg); padding: 38px 44px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 12px; box-shadow: var(--sh-lg); }
.stripe-card p { font-weight: 600; font-size: 16px; }
.stripe-spinner { width: 38px; height: 38px; border-radius: 50%; border: 3px solid var(--sand-200); border-top-color: var(--forest-500); animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.bk-mobile-cta { display: none; }
@media (max-width: 920px) { .bk-mobile-cta { display: flex; } }

/* ---------- Calendar ---------- */
/* Kompaktní rozměry (klient, bod 13): celý měsíc se musí vejít na 14" notebook
   bez scrollu — buňky proto nejsou čtverce (aspect-ratio), ale nízké obdélníky. */
.cal { background: var(--sand-50); border-radius: var(--r-lg); padding: 16px; border: 1px solid var(--line-soft); max-width: 620px; }
.cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.cal-head strong { font-size: 17px; font-family: var(--font-display); }
.cal-nav { width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--line); background: #fff; color: var(--ink); display: grid; place-items: center; transition: all .15s; }
.cal-nav:hover:not(:disabled) { border-color: var(--forest-400); color: var(--forest-600); }
.cal-nav:disabled { opacity: .35; cursor: not-allowed; }
.cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 5px; }
.cal-dow { margin-bottom: 6px; }
.cal-dow-cell { text-align: center; font-size: 12px; font-weight: 700; color: var(--ink-mute); padding: 3px 0; }
.cal-cell { min-height: 42px; border-radius: var(--r-sm); border: 0; background: transparent; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; position: relative; font-family: inherit; padding: 3px 0; }
.cal-cell.empty { background: transparent; }
.cal-cell.muted-day { color: var(--sand-300); font-size: 13.5px; cursor: default; }
.cal-cell.day { background: #fff; border: 1.5px solid var(--line-soft); cursor: pointer; transition: all .14s; }
.cal-cell.day:hover:not(:disabled) { border-color: var(--forest-400); transform: translateY(-1px); box-shadow: var(--sh-sm); }
.cal-cell.day.few { border-color: #EBD2A0; }
.cal-cell.day.soldout { background: var(--sand-100); color: var(--sand-300); cursor: not-allowed; }
.cal-cell.day.selected { background: var(--forest-500); border-color: var(--forest-500); color: #fff; box-shadow: var(--sh-md); }
.cal-d { font-size: 15px; font-weight: 700; line-height: 1.1; }
.cal-cell.day.soldout .cal-d { text-decoration: line-through; }
.cal-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--ok); }
.cal-cell.few .cal-dot { background: var(--warn); }
.cal-cell.selected .cal-dot { background: #fff; }
.cal-legend { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 12px; padding-top: 11px; border-top: 1px solid var(--line); font-size: 12.5px; color: var(--ink-soft); }
.cal-legend > span { display: inline-flex; align-items: center; gap: 6px; }
.lg-dot { width: 9px; height: 9px; border-radius: 50%; }
.lg-dot.available { background: var(--ok); } .lg-dot.few { background: var(--warn); } .lg-dot.soldout { background: var(--sand-300); }

/* ---------- Thanks ---------- */
.thanks-main { min-height: 80vh; background: var(--sand-50); }
/* Zvýrazněný callout: připomenutí platby v hotovosti na místě */
.thanks-cash { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 22px;
  padding: 16px 18px; border-radius: 16px; background: #FDF1DF;
  border: 1.5px solid var(--orange-500, #E8842B); box-shadow: 0 6px 18px rgba(232,132,43,.14); }
.thanks-cash-ic { flex: none; display: grid; place-items: center; width: 44px; height: 44px;
  border-radius: 50%; background: var(--orange-500, #E8842B); color: #fff; }
.thanks-cash strong { display: block; font-family: var(--font-display); font-size: 17px; margin-bottom: 3px; }
.thanks-cash p { margin: 0; color: var(--ink-soft, #4a4a44); font-size: 14.5px; }
.thanks-hero { position: relative; padding-block: 60px 80px; overflow: hidden; text-align: center; }
.thanks-hero-bg { position: absolute; inset: 0; height: 100%; }
.thanks-hero-overlay { position: absolute; inset: 0; background: rgba(14,31,23,.5); z-index: 2; }
.thanks-hero-inner { position: relative; z-index: 3; color: #fff; max-width: 600px; }
.thanks-check { display: inline-grid; place-items: center; width: 76px; height: 76px; border-radius: 50%; margin-bottom: 18px; animation: pop .4s cubic-bezier(.2,1.2,.4,1); }
.thanks-check.paid { background: var(--ok); color: #fff; }
.thanks-check.pending { background: var(--orange-500); color: #fff; }
@keyframes pop { from { transform: scale(0); } }
.thanks-hero-inner h1 { color: #fff; font-size: clamp(32px, 5.5vw, 52px); }
.thanks-hero-inner p { color: rgba(255,255,255,.92); font-size: 18px; margin-top: 14px; }
.thanks-body { max-width: 760px; padding-block: 0 80px; margin-top: -44px; position: relative; z-index: 5; }
.thanks-ticket { background: #fff; border-radius: var(--r-lg); box-shadow: var(--sh-lg); overflow: hidden; }
.ticket-top { display: flex; align-items: center; gap: 18px; padding: 22px 26px; }
.ticket-photo { width: 84px; height: 84px; border-radius: var(--r-md); overflow: hidden; flex-shrink: 0; }
.ticket-photo-inner { height: 100%; }
.ticket-main { flex: 1; min-width: 0; }
.ticket-main h2 { font-size: 24px; margin-top: 2px; }
.ticket-status { margin-top: 8px; }
.ticket-ref { text-align: right; }
.ticket-ref strong { display: block; font-size: 22px; font-family: var(--font-display); letter-spacing: .02em; color: var(--forest-600); margin-top: 3px; }
.ticket-perf { height: 0; border-top: 2px dashed var(--line); margin: 0 26px; position: relative; }
.ticket-perf::before, .ticket-perf::after { content: ""; position: absolute; top: -12px; width: 24px; height: 24px; border-radius: 50%; background: var(--sand-50); }
.ticket-perf::before { left: -38px; } .ticket-perf::after { right: -38px; }
.ticket-rows { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; padding: 22px 26px; }
.ticket-rows > div { display: flex; flex-direction: column; gap: 4px; }
.ticket-rows span { font-size: 12.5px; }
.ticket-rows strong { font-size: 15.5px; font-family: var(--font-display); }
.ticket-total { grid-column: 4; align-items: flex-end !important; }
.ticket-total span { color: var(--ink-mute); }
.ticket-total strong { font-size: 22px !important; color: var(--forest-600); }
@media (max-width: 600px) {
  .ticket-top { flex-wrap: wrap; }
  .ticket-ref { text-align: left; width: 100%; order: 3; }
  .ticket-rows { grid-template-columns: 1fr 1fr; }
  .ticket-total { grid-column: span 2; align-items: flex-start !important; }
}
.thanks-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 20px; }
.thanks-box { background: #fff; border: 1px solid var(--line-soft); border-radius: var(--r-lg); padding: 24px; }
.thanks-box h3 { display: flex; align-items: center; gap: 9px; font-size: 19px; margin-bottom: 16px; }
.thanks-next { display: flex; flex-direction: column; gap: 14px; margin: 0; padding: 0; }
.thanks-next li { display: flex; gap: 12px; align-items: flex-start; font-size: 15px; color: var(--ink-soft); line-height: 1.45; }
.thanks-next-n { width: 26px; height: 26px; border-radius: 50%; background: var(--sand-100); color: var(--forest-600); display: grid; place-items: center; font-weight: 700; font-size: 13px; flex-shrink: 0; }
.thanks-bring { display: flex; flex-direction: column; gap: 12px; }
.thanks-bring li { display: flex; align-items: center; gap: 10px; font-size: 15px; color: var(--ink-soft); }
.thanks-bring svg { color: var(--ok); flex-shrink: 0; }
.thanks-foot { text-align: center; margin-top: 30px; display: flex; flex-direction: column; gap: 18px; align-items: center; }
@media (max-width: 600px) { .thanks-cols { grid-template-columns: 1fr; } }

/* Mobil: užší paddingy kalendáře → širší grid → větší datumové buňky (pohodlnější
   tap). MUSÍ být až za definicemi .cal / .bk-step / .cal-grid kvůli pořadí kaskády. */
@media (max-width: 600px) {
  .bk-step { padding: 22px 12px; }
  .cal { padding: 16px 4px; }
  .cal-grid { gap: 4px; }
}

/* ---------- Tlačítko tisku + tiskový režim lístku (zákaznická děkovačka i admin „voucher") ---------- */
.thanks-actions { display: flex; justify-content: flex-end; margin-bottom: 14px; }
.print-only { display: none; }   /* jen pro tisk/PDF — na webu skryté (web zůstává beze změny) */

@media print {
  /* Skryj web kromě samotného lístku (header, footer, cookie lišta, skripty jsou sourozenci .thanks-main). */
  body > *:not(.thanks-main) { display: none !important; }
  /* Skryj zákaznické/interaktivní prvky: hero „You're all set" + ✓, tlačítka, kontakt „Questions? Email…". */
  .no-print, .thanks-hero, .thanks-foot > div:not(.thanks-print-foot), .thanks-foot .muted, .mobile-cta, .bk-mobile-cta { display: none !important; }
  .print-only { display: block !important; }   /* tiskové záhlaví s logem + patička */
  body { background: #fff !important; padding: 0 !important; }
  .thanks-body { padding: 0 !important; max-width: 100% !important; margin-top: 0 !important; }
  /* Tiskové záhlaví dokladu: logo + značka vlevo, „Booking voucher" vpravo. */
  .thanks-print-head { display: flex !important; align-items: center; gap: 14px; margin: 0 0 20px !important; padding: 4px 0 16px !important; border-bottom: 3px solid #1F7A4D; font-family: -apple-system, "Segoe UI", Roboto, Arial, sans-serif !important; }
  .thanks-print-logo { width: 52px !important; height: 52px !important; min-height: 52px; border-radius: 11px; flex: 0 0 52px; display: block; object-fit: cover; }
  .thanks-print-brandbox { display: flex !important; flex-direction: column; justify-content: center; line-height: 1.22; }
  .thanks-print-brand { font-size: 21px !important; font-weight: 800 !important; color: #14241C !important; font-family: -apple-system, "Segoe UI", Roboto, Arial, sans-serif !important; }
  .thanks-print-tagline { font-size: 11.5px !important; color: #6B7770 !important; }
  .thanks-print-doc { margin-left: auto; font-size: 12px !important; font-weight: 700 !important; color: #1F7A4D !important; text-transform: uppercase; letter-spacing: .1em; white-space: nowrap; font-family: -apple-system, "Segoe UI", Roboto, Arial, sans-serif !important; }
  .thanks-ticket { box-shadow: none !important; border: 1px solid #D8D2C4 !important; break-inside: avoid; }
  .thanks-cols, .thanks-box { break-inside: avoid; }
  .thanks-foot { border-top: 1px solid #E8E2D5 !important; padding-top: 12px !important; }
  .thanks-print-foot { display: block !important; text-align: center !important; margin: 0 !important; font-family: -apple-system, "Segoe UI", Roboto, Arial, sans-serif !important; }
  .thanks-print-thanks { display: block; color: #14241C !important; font-size: 13px !important; font-weight: 700; }
  .thanks-print-contact { display: block; color: #6B7770 !important; font-size: 12px !important; margin-top: 3px; }
  a[href]::after { content: "" !important; } /* nevypisovat URL za odkazy */
  * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
  @page { margin: 14mm; }
}

