/* =================================================================
   ZLATÁ ÉRA CESTOVÁNÍ — Art Deco / Orient Express
   ================================================================= */

:root {
  /* Palette — Pullman carriage at night: deep teal-black + brass gold + ivory */
  --ink:        #0a1c22;
  --ink-2:      #0e272f;
  --ink-3:      #12333c;
  --brass:      #c4a05a;
  --brass-deep: #a8843f;
  --brass-lite: #e6cd92;
  --ivory:      #f2ead6;
  --ivory-dim:  #cdc4ac;
  --oxblood:    #7a2433;
  --line:       rgba(196,160,90,0.30);
  --line-soft:  rgba(196,160,90,0.15);

  --maxw: 1180px;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);

  --f-display: "Cinzel", Georgia, serif;
  --f-accent:  "Poiret One", "Century Gothic", sans-serif;
  --f-body:    "Cormorant Garamond", Georgia, serif;
}

/* --------------------------------------------------------------- reset */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--f-body);
  font-size: 1.22rem;
  line-height: 1.7;
  color: var(--ivory);
  background: var(--ink);
  background-image:
    radial-gradient(ellipse 80% 50% at 50% -10%, rgba(196,160,90,0.10), transparent 60%),
    linear-gradient(180deg, var(--ink) 0%, var(--ink-2) 100%);
  background-attachment: fixed;
  overflow-x: hidden;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }

/* --------------------------------------------------------------- type */
h1, h2, h3, .deco-caps {
  font-family: var(--f-display);
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1.18;
  color: var(--ivory);
}
.eyebrow {
  font-family: var(--f-accent);
  text-transform: uppercase;
  letter-spacing: 0.42em;
  font-size: 0.74rem;
  color: var(--brass);
  display: inline-block;
}
p { margin-bottom: 1rem; }
strong { color: var(--brass-lite); font-weight: 600; }

/* --------------------------------------------------------------- layout */
.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 clamp(1.2rem, 4vw, 2.6rem); }
section { position: relative; }

/* --------------------------------------------------------------- deco bits */
.deco-rule {
  display: flex; align-items: center; justify-content: center;
  gap: 0.9rem; margin: 1.6rem 0;
}
.deco-rule::before, .deco-rule::after {
  content: ""; height: 1px; flex: 1; max-width: 120px;
  background: linear-gradient(90deg, transparent, var(--brass));
}
.deco-rule::after { background: linear-gradient(90deg, var(--brass), transparent); }
.deco-diamond { width: 9px; height: 9px; background: var(--brass); transform: rotate(45deg); box-shadow: 0 0 0 4px rgba(196,160,90,0.12); }

/* --------------------------------------------------------------- buttons */
.btn {
  display: inline-flex; align-items: center; gap: 0.6rem;
  font-family: var(--f-accent); text-transform: uppercase;
  letter-spacing: 0.22em; font-size: 0.82rem;
  padding: 0.95rem 2.1rem; cursor: pointer; border: 0;
  transition: all 0.35s var(--ease); position: relative;
}
.btn-primary {
  background: linear-gradient(135deg, var(--brass-lite), var(--brass) 55%, var(--brass-deep));
  color: var(--ink);
}
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 10px 30px rgba(196,160,90,0.30); }
.btn-ghost {
  background: transparent; color: var(--brass-lite);
  border: 1px solid var(--line); 
}
.btn-ghost:hover { border-color: var(--brass); background: rgba(196,160,90,0.08); }

/* --------------------------------------------------------------- header */
.site-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  transition: all 0.4s var(--ease);
  border-bottom: 1px solid transparent;
  background: linear-gradient(180deg, rgba(5,14,18,0.78) 0%, rgba(5,14,18,0.32) 60%, rgba(5,14,18,0) 100%);
}
.site-header.scrolled {
  background: rgba(8,22,27,0.94); backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--line-soft);
}
.nav { display: flex; align-items: center; justify-content: space-between; padding: 1.05rem 0; }
.brand { display: flex; flex-direction: column; line-height: 1; }
.brand .brand-name { font-family: var(--f-display); font-size: 1.18rem; letter-spacing: 0.18em; color: var(--ivory); text-shadow: 0 1px 10px rgba(0,0,0,0.5); }
.brand .brand-sub  { font-family: var(--f-accent); font-size: 0.6rem; letter-spacing: 0.46em; text-transform: uppercase; color: var(--brass); margin-top: 4px; }
.nav-links { display: flex; gap: 2rem; align-items: center; }
.nav-links a { font-family: var(--f-accent); text-transform: uppercase; letter-spacing: 0.16em; font-size: 0.8rem; color: var(--ivory); text-shadow: 0 1px 10px rgba(0,0,0,0.55); transition: color 0.3s; position: relative; }
.nav-links a:hover { color: var(--brass-lite); }
.nav-links a::after { content:""; position:absolute; left:0; bottom:-6px; width:0; height:1px; background:var(--brass); transition:width 0.3s var(--ease); }
.nav-links a:hover::after { width:100%; }
.nav-toggle { display:none; background:none; border:0; color:var(--brass); font-size:1.6rem; cursor:pointer; }

/* --------------------------------------------------------------- hero */
.hero { min-height: 100svh; display: flex; align-items: center; position: relative; padding: 8rem 0 4rem; overflow: hidden; }
.hero-photo {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  z-index: 0; opacity: 0; transform: scale(1.06);
  transition: opacity 1.4s var(--ease), transform 12s ease-out;
}
.hero-photo.loaded { opacity: 1; transform: scale(1); }
.hero-overlay {
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background:
    linear-gradient(95deg, rgba(8,22,27,0.94) 0%, rgba(8,22,27,0.80) 34%, rgba(8,22,27,0.42) 66%, rgba(10,28,34,0.66) 100%),
    linear-gradient(180deg, rgba(8,22,27,0.55) 0%, rgba(8,22,27,0.10) 38%, rgba(8,22,27,0.88) 100%),
    radial-gradient(130% 120% at 72% 28%, transparent 38%, rgba(6,18,22,0.55) 100%);
}
.hero-sunburst {
  position: absolute; top: 50%; left: 50%; width: 150vmax; height: 150vmax;
  transform: translate(-50%, -60%); pointer-events: none; opacity: 0.4; z-index: 1;
}
.hero-inner { position: relative; z-index: 2; max-width: 900px; }
.hero h1 { font-size: clamp(2.6rem, 7vw, 5.4rem); margin: 1.2rem 0; }
.hero h1 .gold { color: var(--brass-lite); }
.hero-lead { font-size: clamp(1.25rem, 2.4vw, 1.7rem); color: var(--ivory-dim); max-width: 640px; font-style: italic; }
.hero-cta { display: flex; gap: 1rem; flex-wrap: wrap; margin-top: 2.4rem; }
.scroll-hint { position: absolute; bottom: 2rem; left: 50%; transform: translateX(-50%); z-index:2; font-family: var(--f-accent); letter-spacing: 0.3em; font-size: 0.68rem; text-transform: uppercase; color: var(--brass); opacity: 0.7; }
.scroll-hint span { display:block; text-align:center; }
.scroll-hint .line { width:1px; height:40px; margin: 8px auto 0; background: linear-gradient(var(--brass), transparent); }

/* --------------------------------------------------------------- section heads */
.section-head { text-align: center; max-width: 720px; margin: 0 auto 3rem; }
.section-head h2 { font-size: clamp(1.9rem, 4vw, 3rem); margin: 0.8rem 0; }
.section-head p { color: var(--ivory-dim); }
.pad { padding: clamp(4rem, 9vw, 7.5rem) 0; }

/* --------------------------------------------------------------- tour grid */
.tour-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); gap: 1.8rem; }
.tour-card {
  position: relative; display: flex; flex-direction: column;
  background: linear-gradient(160deg, var(--ink-3), var(--ink-2));
  border: 1px solid var(--line-soft);
  overflow: hidden; transition: transform 0.5s var(--ease), border-color 0.5s, box-shadow 0.5s;
}
.tour-card::before {
  content:""; position:absolute; inset:10px; border:1px solid var(--line-soft);
  pointer-events:none; z-index:3; transition: border-color 0.5s;
}
.tour-card:hover { transform: translateY(-6px); border-color: var(--line); box-shadow: 0 24px 50px rgba(0,0,0,0.45); }
.tour-card:hover::before { border-color: var(--line); }
.tour-card-media { position: relative; aspect-ratio: 3/2; overflow: hidden; }
.tour-card-media .ph { position:absolute; inset:0; }
.tour-card-region {
  position:absolute; top:1rem; left:1rem; z-index:4;
  font-family: var(--f-accent); text-transform: uppercase; letter-spacing: 0.2em;
  font-size: 0.66rem; color: var(--brass-lite);
  background: rgba(7,18,22,0.74); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
  border: 1px solid var(--line);
  padding: 0.4rem 0.85rem;
}
.tour-card-body { padding: 1.6rem 1.8rem 2rem; display:flex; flex-direction:column; flex:1; }
.tour-card-body h3 { font-size: 1.32rem; margin-bottom: 0.6rem; }
.tour-card-meta { display:flex; gap:1.2rem; flex-wrap:wrap; font-family:var(--f-accent); font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--ivory-dim); margin-bottom: 0.9rem; }
.tour-card-desc { color: var(--ivory-dim); font-size: 1.05rem; flex:1; margin-bottom: 1.3rem; }
.tour-card-foot { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-top: 1.1rem; border-top: 1px solid var(--line-soft); }
.price { font-family: var(--f-display); }
.price .from { font-family: var(--f-accent); font-size: 0.64rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--brass); display:block; }
.price .amount { font-size: 1.45rem; color: var(--brass-lite); }
.tour-card-foot .go { font-family: var(--f-accent); text-transform: uppercase; letter-spacing: 0.16em; font-size: 0.74rem; color: var(--brass-lite); }

/* --------------------------------------------------------------- image placeholder */
.ph {
  background:
    repeating-linear-gradient(45deg, rgba(196,160,90,0.05) 0 12px, transparent 12px 24px),
    linear-gradient(160deg, var(--ink-3), var(--ink));
  display:flex; align-items:center; justify-content:center; text-align:center;
  color: var(--brass); position: relative;
}
.ph::after {
  content: attr(data-label);
  font-family: var(--f-accent); text-transform: uppercase; letter-spacing: 0.18em;
  font-size: 0.66rem; color: rgba(230,205,146,0.55); padding: 0 1.2rem; max-width: 90%;
}
.ph .ph-mark { position:absolute; font-family: var(--f-display); font-size: 2.4rem; color: rgba(196,160,90,0.16); top: 50%; transform: translateY(-130%); }

/* --------------------------------------------------------------- about / strip */
.strip { background: var(--ink-2); border-top:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft); }
.feature-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(220px,1fr)); gap: 2.4rem; }
.feature { text-align:center; }
.feature .icn { color: var(--brass); margin: 0 auto 1rem; width: 46px; height: 46px; }
.feature h3 { font-size: 1.15rem; margin-bottom: 0.5rem; }
.feature p { font-size: 1rem; color: var(--ivory-dim); }

/* --------------------------------------------------------------- detail hero */
.detail-hero { padding: 10rem 0 0; position: relative; }
.breadcrumb { font-family:var(--f-accent); text-transform:uppercase; letter-spacing:0.18em; font-size:0.7rem; color:var(--ivory-dim); margin-bottom:1.4rem; }
.breadcrumb a:hover { color: var(--brass-lite); }
.breadcrumb span { color: var(--brass); margin: 0 0.5rem; }
.detail-hero h1 { font-size: clamp(1.7rem, 3.1vw, 2.7rem); max-width: 26ch; line-height: 1.18; }
.detail-tagline { font-style: italic; color: var(--ivory-dim); font-size: clamp(1.15rem,2vw,1.4rem); max-width: 60ch; margin-top: 1rem; }
.detail-facts { display:flex; flex-wrap:wrap; gap: 2.2rem; margin: 2.2rem 0; }
.fact .k { font-family:var(--f-accent); text-transform:uppercase; letter-spacing:0.2em; font-size:0.64rem; color:var(--brass); }
.fact .v { font-family:var(--f-display); font-size:1.25rem; color:var(--ivory); }
.detail-hero-media { aspect-ratio: 21/9; margin-top: 2rem; border:1px solid var(--line-soft); position: relative; overflow: hidden; }
.detail-hero-media .ph { position:absolute; inset:0; }
.detail-hero-media::before { content:""; position:absolute; inset:8px; border:1px solid var(--line-soft); z-index:2; pointer-events:none; }

/* --------------------------------------------------------------- detail layout */
.detail-grid { display:grid; grid-template-columns: 1fr 360px; gap: 3.5rem; align-items: start; }
.detail-main h2 { font-size: clamp(1.6rem, 3vw, 2.2rem); margin: 2.6rem 0 1.2rem; }
.detail-main h2:first-child { margin-top: 0; }

.highlights { list-style:none; display:grid; gap: 0.9rem; }
.highlights li { position: relative; padding-left: 2rem; color: var(--ivory); }
.highlights li::before { content:""; position:absolute; left:0; top:0.55em; width:9px; height:9px; background:var(--brass); transform:rotate(45deg); }

/* itinerary timeline */
.itin { list-style:none; position: relative; margin-left: 0.5rem; }
.itin::before { content:""; position:absolute; left:8px; top:6px; bottom:6px; width:1px; background:var(--line); }
.itin li { position: relative; padding: 0 0 1.8rem 2.6rem; }
.itin li::before { content:""; position:absolute; left:3px; top:0.55em; width:11px; height:11px; background:var(--ink); border:2px solid var(--brass); transform:rotate(45deg); }
.itin .day { font-family:var(--f-accent); text-transform:uppercase; letter-spacing:0.18em; font-size:0.74rem; color:var(--brass-lite); display:block; margin-bottom:0.2rem; }
.itin .txt { color: var(--ivory-dim); font-size: 1.08rem; }

/* includes / excludes */
.incl-grid { display:grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.incl-box { border:1px solid var(--line-soft); padding: 1.6rem 1.8rem; background: var(--ink-2); }
.incl-box h3 { font-size: 1.05rem; letter-spacing: 0.1em; margin-bottom: 1rem; color: var(--brass-lite); }
.incl-box ul { list-style:none; display:grid; gap:0.6rem; font-size:1.02rem; color:var(--ivory-dim); }
.incl-box li { padding-left: 1.4rem; position: relative; }
.incl-box.yes li::before { content:"✦"; position:absolute; left:0; color:var(--brass); }
.incl-box.no  li::before { content:"·"; position:absolute; left:0.3rem; color:var(--ivory-dim); font-weight:700; }

/* faq accordion */
.faq-item { border-bottom:1px solid var(--line-soft); }
.faq-q { width:100%; text-align:left; background:none; border:0; cursor:pointer; color:var(--ivory); font-family:var(--f-display); font-size:1.18rem; padding:1.3rem 2.5rem 1.3rem 0; position:relative; letter-spacing:0.02em; }
.faq-q::after { content:"+"; position:absolute; right:0; top:1.2rem; color:var(--brass); font-family:var(--f-accent); font-size:1.5rem; transition:transform 0.35s; }
.faq-item.open .faq-q::after { transform:rotate(45deg); }
.faq-a { max-height:0; overflow:hidden; transition:max-height 0.45s var(--ease); color:var(--ivory-dim); }
.faq-a-inner { padding: 0 0 1.4rem; font-size:1.06rem; }

/* booking sidebar */
.sidebar-sticky { position: sticky; top: 100px; }
.booking {
  position: relative;
  border: 1px solid var(--line); background: linear-gradient(165deg, var(--ink-3), var(--ink-2));
  padding: 2rem 1.9rem;
}
.booking::before { content:""; position:absolute; inset:8px; border:1px solid var(--line-soft); pointer-events:none; }
.booking .b-price { text-align:center; padding-bottom: 1.4rem; border-bottom:1px solid var(--line-soft); margin-bottom: 1.4rem; }
.booking .b-price .from { font-family:var(--f-accent); text-transform:uppercase; letter-spacing:0.24em; font-size:0.66rem; color:var(--brass); }
.booking .b-price .amount { font-family:var(--f-display); font-size:2.4rem; color:var(--brass-lite); display:block; }
.booking .b-price .per { font-size:0.95rem; color:var(--ivory-dim); }
.dates { list-style:none; display:grid; gap:0.7rem; margin-bottom:1.5rem; }
.dates li { display:flex; justify-content:space-between; align-items:center; gap:0.6rem; font-size:0.98rem; padding:0.55rem 0; border-bottom:1px dashed var(--line-soft); }
.dates .d-date { color:var(--ivory); }
.dates .d-stat { font-family:var(--f-accent); text-transform:uppercase; letter-spacing:0.1em; font-size:0.62rem; padding:0.2rem 0.6rem; }
.d-stat.free { color:var(--ink); background:var(--brass-lite); }
.d-stat.last { color:var(--ink); background:#d8a24a; }
.d-stat.full { color:var(--ivory-dim); border:1px solid var(--line-soft); }
.booking .btn { width:100%; justify-content:center; }
.booking .b-note { font-size:0.86rem; color:var(--ivory-dim); text-align:center; margin-top:1rem; }

/* gallery placeholder */
.gallery { display:grid; grid-template-columns: repeat(auto-fill, minmax(180px,1fr)); gap:0.8rem; }
.gallery .ph { aspect-ratio: 4/3; }

/* --------------------------------------------------------------- contact / form */
.contact-card { border:1px solid var(--line); background:var(--ink-2); padding: clamp(2rem,5vw,3.2rem); position:relative; }
.contact-card::before { content:""; position:absolute; inset:10px; border:1px solid var(--line-soft); pointer-events:none; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; position:relative; z-index:1; }
.field { display:flex; flex-direction:column; gap:0.4rem; }
.field.full { grid-column:1/-1; }
.field label { font-family:var(--f-accent); text-transform:uppercase; letter-spacing:0.16em; font-size:0.68rem; color:var(--brass); }
.field input, .field textarea, .field select {
  background:var(--ink); border:1px solid var(--line-soft); color:var(--ivory);
  font-family:var(--f-body); font-size:1.05rem; padding:0.8rem 1rem; transition:border-color 0.3s;
}
.field input:focus, .field textarea:focus, .field select:focus { outline:none; border-color:var(--brass); }
.form-msg { margin-top:1rem; font-size:0.95rem; color:var(--brass-lite); min-height:1.4em; }

/* --------------------------------------------------------------- footer */
.site-footer { background: var(--ink); border-top:1px solid var(--line-soft); padding: 3.5rem 0 2rem; }
.footer-grid { display:grid; grid-template-columns: 2fr 1fr 1fr; gap:2.5rem; margin-bottom:2.5rem; }
.footer-grid h4 { font-family:var(--f-accent); text-transform:uppercase; letter-spacing:0.2em; font-size:0.74rem; color:var(--brass); margin-bottom:1rem; }
.footer-grid a, .footer-grid p { display:block; color:var(--ivory-dim); font-size:1rem; margin-bottom:0.5rem; }
.footer-grid a:hover { color:var(--brass-lite); }
.footer-bottom { text-align:center; font-size:0.86rem; color:var(--ivory-dim); padding-top:1.5rem; border-top:1px solid var(--line-soft); }
.footer-bottom .disc { font-size:0.78rem; opacity:0.7; max-width:60ch; margin:0.6rem auto 0; }

/* --------------------------------------------------------------- reveal anim */
.reveal { opacity:0; transform: translateY(28px); transition: opacity 0.8s var(--ease), transform 0.8s var(--ease); }
.reveal.in { opacity:1; transform:none; }
html:not(.js) .reveal { opacity:1; transform:none; }

/* --------------------------------------------------------------- responsive */
@media (max-width: 900px) {
  .detail-grid { grid-template-columns: 1fr; }
  .booking { position: static; }
  .sidebar-sticky { position: static; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 680px) {
  body { font-size: 1.12rem; }
  .nav-links { position: fixed; inset: 0 0 0 30%; background: rgba(8,22,27,0.98); backdrop-filter: blur(10px); flex-direction: column; justify-content: center; gap: 2rem; transform: translateX(100%); transition: transform 0.4s var(--ease); border-left:1px solid var(--line-soft); }
  .nav-links.open { transform: none; }
  .nav-toggle { display: block; z-index: 110; }
  .incl-grid, .form-grid { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { * { animation:none!important; transition:none!important; } .reveal{opacity:1;transform:none;} }

/* image inside placeholder — appears when a real photo is dropped into assets/img/ */
.ph img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:2; animation: phfade .8s var(--ease) both; }
@keyframes phfade { from { opacity:0; } to { opacity:1; } }
.ph::after { z-index:0; }
.ph .ph-mark { z-index:0; }
.founder-photo .ph img, .guide-note-photo .ph img, .guide-card-photo .ph img { object-position: 44% 46%; }

/* ---------- concept: manifesto ---------- */
.manifesto { max-width: 820px; margin: 0 auto; text-align: center; }
.manifesto .lead-statement { font-family: var(--f-body); font-style: italic; font-size: clamp(1.55rem, 3.4vw, 2.4rem); color: var(--ivory); line-height: 1.45; margin-bottom: 1.6rem; }
.manifesto .lead-statement .gold { color: var(--brass-lite); }
.manifesto p { color: var(--ivory-dim); font-size: 1.16rem; }

/* ---------- concept: steps ---------- */
.steps { display:grid; grid-template-columns: repeat(auto-fit, minmax(220px,1fr)); gap: 2.4rem; }
.step { text-align:center; }
.step-num { width:64px; height:64px; margin:0 auto 1.3rem; display:flex; align-items:center; justify-content:center; font-family:var(--f-display); font-size:1.5rem; color:var(--brass-lite); border:1px solid var(--line); position:relative; }
.step-num::before { content:""; position:absolute; inset:5px; border:1px solid var(--line-soft); }
.step h3 { font-size:1.18rem; margin-bottom:0.55rem; }
.step p { color:var(--ivory-dim); font-size:1.02rem; }

/* ---------- concept: comparison ---------- */
.compare { display:grid; grid-template-columns:1fr 1fr; gap:1.6rem; max-width:900px; margin:0 auto; }
.compare-col { border:1px solid var(--line-soft); padding:2rem 1.9rem; background:var(--ink-2); position:relative; }
.compare-col.gold { border-color:var(--line); }
.compare-col.gold::before { content:""; position:absolute; inset:8px; border:1px solid var(--line-soft); pointer-events:none; }
.compare-col h3 { font-size:1.18rem; margin-bottom:1.3rem; letter-spacing:0.05em; }
.compare-col.muted h3 { color:var(--ivory-dim); }
.compare-col.gold h3 { color:var(--brass-lite); }
.compare-col ul { list-style:none; display:grid; gap:0.9rem; }
.compare-col li { padding-left:1.7rem; position:relative; }
.compare-col.muted li { color:var(--ivory-dim); }
.compare-col.muted li::before { content:"\2014"; position:absolute; left:0; opacity:0.55; }
.compare-col.gold li { color:var(--ivory); }
.compare-col.gold li::before { content:"\2726"; position:absolute; left:0; color:var(--brass); }
@media (max-width:680px){ .compare{grid-template-columns:1fr;} }

/* ---------- guide / founder ---------- */
.founder { display:grid; grid-template-columns: 360px 1fr; gap: 3.2rem; align-items:center; }
.founder-photo { position:relative; aspect-ratio: 3/4; border:1px solid var(--line); }
.founder-photo::before { content:""; position:absolute; inset:9px; border:1px solid var(--line-soft); z-index:3; pointer-events:none; }
.founder-photo .ph { position:absolute; inset:0; }
.founder-text .eyebrow { margin-bottom:0.6rem; }
.founder-text h2 { font-size: clamp(1.9rem,4vw,2.8rem); }
.founder-role { font-family:var(--f-accent); text-transform:uppercase; letter-spacing:0.22em; font-size:0.74rem; color:var(--brass); margin: 0.3rem 0 1.4rem; }
.founder-text p { color:var(--ivory-dim); }
.founder-quote { border-left:2px solid var(--brass); padding:0.2rem 0 0.2rem 1.4rem; margin:1.6rem 0 0.6rem; font-style:italic; font-size:1.3rem; color:var(--ivory); }
.signature { font-family:"Great Vibes", cursive; font-size:2.4rem; color:var(--brass-lite); line-height:1; margin-top:0.4rem; }
.signature.small { font-size:1.7rem; }
.founder-facts { list-style:none; display:flex; flex-wrap:wrap; gap:2.2rem; margin-top:1.8rem; padding-top:1.6rem; border-top:1px solid var(--line-soft); }
.founder-facts .k { display:block; font-family:var(--f-accent); text-transform:uppercase; letter-spacing:0.18em; font-size:0.62rem; color:var(--brass); }
.founder-facts .v { font-family:var(--f-display); font-size:1.1rem; color:var(--ivory); }

/* per-tour guide note */
.guide-note { display:flex; gap:1.4rem; align-items:center; border:1px solid var(--line-soft); background:var(--ink-2); padding:1.5rem 1.7rem; margin:1.8rem 0 0.5rem; position:relative; }
.guide-note::before { content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--brass); }
.guide-note-photo { flex:0 0 76px; }
.guide-note-photo .ph { width:76px; height:76px; border-radius:50%; overflow:hidden; border:1px solid var(--line); }
.guide-note-label { font-family:var(--f-accent); text-transform:uppercase; letter-spacing:0.2em; font-size:0.64rem; color:var(--brass); display:block; margin-bottom:0.3rem; }
.guide-note-body p { font-style:italic; color:var(--ivory); margin-bottom:0.2rem; }

/* sidebar guide card */
.guide-card { display:flex; gap:1rem; align-items:center; border:1px solid var(--line-soft); background:linear-gradient(165deg, var(--ink-3), var(--ink-2)); padding:1.2rem 1.3rem; margin-top:1.2rem; }
.guide-card-photo { flex:0 0 60px; }
.guide-card-photo .ph { width:60px; height:60px; border-radius:50%; overflow:hidden; border:1px solid var(--line); }
.guide-card-photo .ph::after { font-size:0.5rem; }
.guide-card-role { font-family:var(--f-accent); text-transform:uppercase; letter-spacing:0.14em; font-size:0.6rem; color:var(--brass); display:block; }
.guide-card-name { font-family:var(--f-display); font-size:1.15rem; color:var(--ivory); display:block; margin:0.15rem 0 0.25rem; }
.guide-card-link { font-family:var(--f-accent); text-transform:uppercase; letter-spacing:0.12em; font-size:0.68rem; color:var(--brass-lite); }
.guide-card-link:hover { color:var(--brass); }

@media (max-width:780px){
  .founder { grid-template-columns:1fr; gap:2rem; }
  .founder-photo { width:100%; max-width:320px; margin:0 auto; }
  .guide-note { flex-direction:column; text-align:center; }
  .guide-note::before { width:100%; height:3px; bottom:auto; }
}

/* ---------- external operator link in booking ---------- */
.b-external { display:block; text-align:center; margin-top:0.9rem; font-family:var(--f-accent); text-transform:uppercase; letter-spacing:0.12em; font-size:0.72rem; color:var(--brass-lite); transition:color 0.3s; }
.b-external:hover { color:var(--brass); }
.b-buy { width:100%; justify-content:center; margin-top:0.8rem; font-size:0.74rem; padding:0.85rem 1.4rem; }

/* ---------- reviews ---------- */
.reviews-stat { text-align:center; margin: 0 0 2.2rem; }
.reviews-stat .rs-stars { display:block; color:var(--brass); letter-spacing:0.35em; font-size:1.4rem; margin-bottom:0.5rem; }
.reviews-stat .rs-text { font-family:var(--f-display); color:var(--ivory); font-size:1.15rem; letter-spacing:0.02em; }
.reviews { display:grid; grid-template-columns:repeat(auto-fit, minmax(260px,1fr)); gap:1.4rem; }
.review-card { border:1px solid var(--line-soft); background:var(--ink-2); padding:1.7rem 1.8rem; position:relative; }
.review-card::before { content:"\201C"; position:absolute; top:0.4rem; right:1.1rem; font-family:var(--f-display); font-size:3.2rem; color:var(--line); line-height:1; }
.review-card .review-stars { color:var(--brass); letter-spacing:0.18em; font-size:0.98rem; margin-bottom:0.85rem; }
.review-card blockquote { font-style:italic; color:var(--ivory); font-size:1.07rem; line-height:1.6; margin-bottom:1rem; }
.review-card figcaption { font-family:var(--f-accent); text-transform:uppercase; letter-spacing:0.14em; font-size:0.7rem; color:var(--brass-lite); }

/* ---------- operator logo in footer ---------- */
.footer-operator { display:flex; flex-direction:column; align-items:center; gap:0.55rem; margin-bottom:1.5rem; }
.footer-operator span { font-family:var(--f-accent); text-transform:uppercase; letter-spacing:0.22em; font-size:0.62rem; color:var(--brass); }
.footer-operator img { height:46px; width:auto; opacity:0.9; transition:opacity 0.3s var(--ease); }
.footer-operator a:hover img { opacity:1; }

/* clickable phone in booking note */
.b-note a { color: var(--brass-lite); border-bottom: 1px solid var(--line-soft); transition: color 0.3s; }
.b-note a:hover { color: var(--brass); }

/* ---------- audience (Pro koho) ---------- */
.audience { max-width: 820px; margin: 0 auto; text-align: center; }
.audience-lead { font-family: var(--f-body); font-style: italic; font-size: clamp(1.35rem, 2.6vw, 1.9rem); color: var(--ivory); line-height: 1.4; margin-bottom: 1.8rem; }
.audience-list { list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px,1fr)); gap: 0.9rem 1.8rem; text-align: left; max-width: 720px; margin: 0 auto; }
.audience-list li { padding-left: 1.7rem; position: relative; color: var(--ivory-dim); }
.audience-list li::before { content: "\2726"; position: absolute; left: 0; color: var(--brass); }

/* ---------- trust (E-E-A-T) ---------- */
.trust { max-width: 820px; margin: 0 auto; text-align: center; }
.trust > p { color: var(--ivory-dim); font-size: 1.12rem; margin-bottom: 1.8rem; }
.trust-points { list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(180px,1fr)); gap: 1.4rem; border-top: 1px solid var(--line-soft); padding-top: 1.6rem; }
.trust-points .tp-k { display: block; font-family: var(--f-accent); text-transform: uppercase; letter-spacing: 0.18em; font-size: 0.62rem; color: var(--brass); margin-bottom: 0.25rem; }
.trust-points .tp-v { font-family: var(--f-body); font-size: 1.05rem; color: var(--ivory); }

/* ---------- related tours (detail) ---------- */
.related { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px,1fr)); gap: 1.1rem; }
.related-card { display: flex; flex-direction: column; gap: 0.5rem; border: 1px solid var(--line-soft); background: var(--ink-2); padding: 1.2rem 1.3rem; transition: border-color 0.3s var(--ease), transform 0.3s var(--ease); }
.related-card:hover { border-color: var(--line); transform: translateY(-3px); }
.related-region { font-family: var(--f-accent); text-transform: uppercase; letter-spacing: 0.16em; font-size: 0.6rem; color: var(--brass); }
.related-name { font-family: var(--f-display); font-size: 1.02rem; color: var(--ivory); line-height: 1.3; }
.related-foot { display: flex; justify-content: space-between; align-items: baseline; margin-top: auto; }
.related-price { color: var(--brass-lite); font-size: 0.95rem; }
.related-foot .go { font-family: var(--f-accent); text-transform: uppercase; letter-spacing: 0.1em; font-size: 0.62rem; color: var(--ivory-dim); }

/* links in trust + disclaimer */
.trust-points .tp-v a { color: var(--brass-lite); border-bottom: 1px solid var(--line-soft); transition: color 0.3s; }
.trust-points .tp-v a:hover { color: var(--brass); }
.site-footer .disc a { color: var(--brass); border-bottom: 1px solid var(--line-soft); }
.site-footer .disc a:hover { color: var(--brass-lite); }

/* honeypot + form states */
.hp { position:absolute !important; left:-9999px !important; width:1px; height:1px; opacity:0; }
.form-hint { font-size:0.85rem; color:var(--ivory-dim); margin-top:0.7rem; }
.form-msg { margin-top:0.7rem; font-size:0.95rem; }
.form-msg.ok { color:var(--brass-lite); }
.form-msg.err { color:#e7b4a0; }

/* ---------- sold-out badges ---------- */
.tour-card-media { position: relative; }
.card-soldout { position: absolute; top: 0.8rem; right: 0.8rem; background: var(--oxblood, #5a1e1e); color: var(--ivory); font-family: var(--f-accent); text-transform: uppercase; letter-spacing: 0.12em; font-size: 0.6rem; padding: 0.35rem 0.7rem; border: 1px solid var(--brass); }
.b-soldout { text-align: center; font-family: var(--f-accent); text-transform: uppercase; letter-spacing: 0.16em; font-size: 0.7rem; color: var(--ivory); background: var(--oxblood, #5a1e1e); border: 1px solid var(--brass); padding: 0.55rem; margin-bottom: 1rem; }
.booking.is-soldout .b-price .amount { opacity: 0.7; }

.d-stat.soldout { color: #e7b4a0; border-color: #e7b4a0; }

/* sold-out in card footer */
.price-area { display: flex; align-items: center; gap: 0.7rem; }
.price.is-sold .amount { text-decoration: line-through; opacity: 0.5; }
.foot-soldout { font-family: var(--f-accent); text-transform: uppercase; letter-spacing: 0.12em; font-size: 0.6rem; color: #e7b4a0; border: 1px solid #e7b4a0; padding: 0.25rem 0.55rem; white-space: nowrap; }

/* term line on homepage cards */
.tour-card-dates { font-family: var(--f-accent); text-transform: uppercase; letter-spacing: 0.12em; font-size: 0.62rem; color: var(--brass-lite); margin: 0.1rem 0 0.75rem; }
.tour-card-dates .tcd-k { color: var(--brass); margin-right: 0.45rem; }

/* --------------------------------------------------------------- souhlas s cookies */
.cookie-bar { position: fixed; left: 1rem; right: 1rem; bottom: 1rem; z-index: 9999; max-width: 34rem; margin: 0 auto; background: var(--ink-2); border: 1px solid var(--line); box-shadow: 0 18px 50px rgba(0,0,0,0.45); padding: 1.5rem 1.6rem; color: var(--ivory); }
.cookie-bar[hidden], .cookie-bar [hidden] { display: none !important; }
.cookie-bar h4 { font-family: var(--f-display); font-size: 1.15rem; letter-spacing: 0.08em; color: var(--brass-lite); margin-bottom: 0.5rem; }
.cookie-bar p { font-size: 1rem; line-height: 1.5; color: var(--ivory-dim); margin-bottom: 1rem; }
.cookie-bar a { color: var(--brass); border-bottom: 1px solid var(--line-soft); }
.cookie-detail { border-top: 1px solid var(--line-soft); padding-top: 0.8rem; margin-bottom: 1rem; }
.cookie-detail label { display: flex; gap: 0.6rem; align-items: flex-start; font-size: 1rem; line-height: 1.4; margin-bottom: 0.6rem; }
.cookie-detail input { margin-top: 0.3rem; accent-color: var(--brass); }
.cookie-detail small { display: block; color: var(--ivory-dim); font-size: 0.88rem; }
.cookie-actions { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: center; }
.cookie-actions .btn { padding: 0.7rem 1.3rem; font-size: 0.72rem; letter-spacing: 0.16em; }
.cookie-link { background: none; border: 0; color: var(--ivory-dim); font-family: var(--f-accent); text-transform: uppercase; letter-spacing: 0.14em; font-size: 0.7rem; cursor: pointer; text-decoration: underline; padding: 0.5rem 0.3rem; }
.cookie-link:hover { color: var(--brass-lite); }

/* --------------------------------------------------------------- právní stránky a odkazy */
.footer-legal { margin-top: 0.6rem; }
.footer-legal a, .footer-legal button { color: var(--ivory-dim); border-bottom: 1px solid var(--line-soft); background: none; border-top: 0; border-left: 0; border-right: 0; font: inherit; cursor: pointer; padding: 0; }
.footer-legal a:hover, .footer-legal button:hover { color: var(--brass-lite); }
.form-hint a { color: var(--brass); border-bottom: 1px solid var(--line-soft); }
.legal { max-width: 52rem; }
.legal h2 { font-size: clamp(1.4rem, 2.6vw, 1.9rem); margin: 2.4rem 0 1rem; }
.legal h2:first-child { margin-top: 0; }
.legal h3 { font-family: var(--f-display); font-size: 1.15rem; letter-spacing: 0.06em; color: var(--brass-lite); margin: 1.6rem 0 0.6rem; }
.legal p, .legal li { color: var(--ivory-dim); }
.legal p { margin-bottom: 1rem; }
.legal ul { padding-left: 1.3rem; margin-bottom: 1rem; }
.legal li { margin-bottom: 0.5rem; }
.legal strong { color: var(--ivory); font-weight: 600; }
.legal a { color: var(--brass); border-bottom: 1px solid var(--line-soft); }
.legal .legal-date { font-family: var(--f-accent); text-transform: uppercase; letter-spacing: 0.14em; font-size: 0.72rem; color: var(--brass-lite); }
