/* Sicily Seaview – shared styles (v1) */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: auto; }
body {
  font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
  line-height: 1.6;
  color: #1f2933;
  background: #fbfbf7;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }

:root{
  --primary:#6f8f77;
  --primary-dark:#4f6f58;
  --accent:#f2c95c;
  --accent-soft:#fff3c9;
  --bg-light:#fbfbf7;
  --card-bg:#ffffff;

  /* jednotný olivový gradient pro sekundární CTA */
  --olive-grad: linear-gradient(90deg, var(--primary-dark), var(--primary));

  --text:#1f2933;
  --text-muted:#6b7b8c;

  --shadow-soft:0 10px 25px rgba(15, 23, 42, 0.08);
  --radius-lg:16px;

  --nav-h:72px;

  /* hero logo + offset for text */
  --hero-logo-size: 240px;
  --hero-left-offset: 260px;
}

/* === PRO: sjednocení velikosti ikon (kontakty + patička) === */
:root{
  --zagara-icon-size: 50px; /* větší ikony (cca +50%) pro lepší čitelnost */
}

h1,h2,h3{
  font-family: ui-serif, Georgia, "Times New Roman", serif;
  letter-spacing:.02em;
}

/* ===== NAV ===== */
.nav{
  position: sticky;
  top: 0;
  z-index: 2000;
  height: var(--nav-h);
  display:flex;
  align-items:center;
  backdrop-filter: blur(12px);
  background: linear-gradient(to bottom, rgba(79,111,88,.86), rgba(79,111,88,.62));
  border-bottom: 1px solid rgba(255,255,255,.14);
}
.nav-inner{
  width:100%;
  max-width: 1120px;
  margin:0 auto;
  padding: 0 1.5rem;
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 1rem;
  position: relative;
  height:100%;
}
.brand{
  display:flex;
  align-items:center;
  gap:10px;
  min-width: 220px;
}
.brand-logo{
  display:block;
  width:42px; height:42px;
  border-radius: 999px;
  object-fit: cover;
  box-shadow: 0 10px 18px rgba(0,0,0,.18);
  border: 1px solid rgba(255,255,255,.35);
}
.brand-text{ display:flex; flex-direction:column; gap:2px; }
.brand-title{ font-weight: 750; letter-spacing:.08em; font-size:.95rem; text-transform: uppercase; color:#fff; }
.brand-subtitle{ font-size:.82rem; opacity:.88; color: rgba(255,255,255,.92); }

.nav-links{
  display:flex;
  gap: 1.25rem;
  font-size: .92rem;
  align-items:center;
  color:#fff;
  flex-wrap: wrap;
  justify-content: center;
}
.nav-links a{ position:relative; padding-bottom: 2px; opacity:.95; }
.nav-links a::after{
  content:"";
  position:absolute; left:0; bottom:0;
  width:0; height:2px;
  background: rgba(242,201,92,.95);
  transition: width .2s ease-out;
}
.nav-links a:hover::after{ width:100%; }
.nav-links a.active{ opacity: 1; }
.nav-links a.active::after{ width:100%; }

.nav-cta{
  padding: .45rem .9rem;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.72);
  font-size: .85rem;
  background: rgba(242, 201, 92, 0.16);
}

/* Hamburger (mobile) */
.nav-toggle{
  display:none;
  cursor:pointer;
  width:44px; height:44px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(0,0,0,.08);
  align-items:center;
  justify-content:center;
  padding:0;
}
.nav-toggle span{
  display:block;
  width:22px; height:2px;
  background:#fff;
  border-radius:999px;
  transition: transform .22s ease, opacity .18s ease, width .22s ease;
  transform-origin:center;
}
.nav-toggle span:nth-child(1){ transform: translateY(-6px); }
.nav-toggle span:nth-child(2){ opacity: 1; }
.nav-toggle span:nth-child(3){ transform: translateY(6px); }
.nav-toggle.is-open span:nth-child(1){ transform: translateY(0) rotate(45deg); }
.nav-toggle.is-open span:nth-child(2){ opacity: 0; width:0; }
.nav-toggle.is-open span:nth-child(3){ transform: translateY(0) rotate(-45deg); }

/* ===== HERO (home only) ===== */
header.hero{
  min-height: 100vh;
  position: relative;
  color: #fff;
  overflow: hidden;
  background: #0b0f13;
}
.hero-bg, .hero-bg-next{
  position:absolute;
  inset: 0;
  top: var(--nav-h);
  background-position: center center;
  background-size: cover; /* zatím necháváme jako dřív */
  background-repeat: no-repeat;
  transition: opacity 1.2s ease;
  transform: scale(1.02);
}
.hero-bg{ opacity: 1; }
.hero-bg-next{ opacity: 0; }

.hero-overlay{
  position:absolute;
  inset: 0;
  top: var(--nav-h);
  background: linear-gradient(rgba(20,18,10,.25), rgba(20,18,10,.62));
  z-index: 1;
}

/* velké logo v hero (jen domů) */
.hero-logo{
  position:absolute;
  /* logo nesmí být schované pod navigací */
  top: calc(var(--nav-h) + 12px);
  left: 12px;
  width: var(--hero-logo-size);
  height: var(--hero-logo-size);
  border-radius: 50%;
  object-fit: cover;
  z-index: 1500;
  box-shadow: 0 22px 45px rgba(0,0,0,.35);
  border: 1px solid rgba(255,255,255,.38);
}

/* velké logo na podstránkách (stejné umístění/velikost jako domovská)
   - na domovské stránce je logo součástí hero (absolute)
   - na podstránkách je logo "připnuté" (fixed), aby bylo stále vidět */
.site-logo{
  position: fixed;
  /* stejné umístění jako na domovské stránce (pod navigací) */
  top: calc(var(--nav-h) + 12px);
  left: 12px;
  width: var(--hero-logo-size);
  height: var(--hero-logo-size);
  border-radius: 50%;
  object-fit: cover;
  /* aby logo na podstránkách nikdy nepřekrývalo text (obsah je nad ním) */
  z-index: 2;
  pointer-events: none;
  box-shadow: 0 22px 45px rgba(0,0,0,.35);
  border: 1px solid rgba(255,255,255,.38);
}

/* content posunutý doprava, aby se nepřekrýval s logem */
.hero-content{
  position: relative;
  z-index: 2;
  max-width: 1120px;
  margin: 0 auto;
  padding: 4.5rem 1.5rem 4rem;
  padding-left: calc(1.5rem + var(--hero-left-offset));
  display:flex;
  flex-direction:column;
  gap: 2rem;
}

.hero-grid{
  display:grid;
  grid-template-columns: minmax(0, 2.1fr) minmax(0, 1.6fr);
  gap: 3rem;
  align-items:center;
}

.hero-kicker{
  font-size:.9rem;
  letter-spacing:.18em;
  text-transform: uppercase;
  opacity:.92;
  margin-bottom:.35rem;
}

.hero-title{
  font-size: clamp(2.2rem, 4vw, 3rem);
  font-weight: 700;
  margin-bottom:.85rem;
  color: #fff;
}
.hero-highlight{ color: var(--accent); }

/* Jemný „citrus“ gradient (varianta 1) – bez snížené průhlednosti */
.hero-title-gradient{
  /* Fallback (když prohlížeč neumí gradient text) */
  color: var(--accent);
}

@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  .hero-title-gradient{
    background: linear-gradient(90deg, #f6d365 0%, #fda085 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
  }
}

.hero-text{
  font-size: .98rem;
  max-width: 34rem;
  opacity: .95;
  margin-bottom: 1.6rem;
}

.hero-badges{
  display:flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-bottom: 1.75rem;
}
.badge{
  font-size: .78rem;
  padding: .35rem .7rem;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.55);
  background: rgba(0,0,0,.18);
  opacity:.95;
}

.hero-actions{
  display:flex;
  flex-wrap: wrap;
  gap: .8rem;
  align-items:center;
}

.btn-primary, .btn-ghost{
  border-radius: 999px;
  padding: .78rem 1.45rem;
  font-size: .95rem;
  border:none;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  white-space: nowrap;
}
.btn-primary{
  background: var(--accent);
  color:#1a1506;
  font-weight:650;
  box-shadow: 0 12px 25px rgba(0,0,0,.22);
  transition: transform .15s ease, filter .15s ease;
}
.btn-primary:hover{ filter: brightness(1.03); transform: translateY(-1px); }

.btn-ghost{
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.65);
  color:#fff;
}

.hero-card{
  background: rgba(25,33,28,.74);
  border-radius: var(--radius-lg);
  padding: 1.5rem 1.5rem 1.25rem;
  box-shadow: var(--shadow-soft);
  backdrop-filter: blur(18px);
  border: 1px solid rgba(242, 201, 92, 0.12);
}
.hero-card-title{ font-size: 1rem; font-weight:650; margin-bottom:.4rem; }
.hero-card-sub{ font-size:.8rem; color: rgba(226,232,240,.9); margin-bottom:.9rem; }

    
.capacity-lines{
  display:grid;
  gap:.28rem;
  margin-top:.05rem;
  min-width: 240px;
}
.capacity-lines .cap-line{
  display:grid;
  grid-template-columns: 1fr auto;
  gap:.75rem;
  align-items:center;
}
.capacity-lines .cap-name{ font-weight:650; color: rgba(226,232,240,.95); }
.capacity-lines .cap-num{ color: var(--accent); font-weight:750; }

.hero-card-row{
  display:flex;
  justify-content: space-between;
  font-size:.86rem;
  color: rgba(226,232,240,.92);
  margin-bottom:.3rem;
}

/* Zvýraznění hodnot ve "Základní přehled" (akcent jako zbytek dlaždice) */
.hero-card-row > strong{ color: var(--accent); font-weight: 750; }

/* Kapacita: pravý sloupec i čísla v akcentu */
.capacity-lines .cap-right{ color: var(--accent); font-weight: 750; }
.capacity-lines .cap-left{ color: rgba(226,232,240,.92); }
.hero-mini-note{ font-size:.72rem; color: rgba(226,232,240,.85); margin-top:.7rem; }

/* ===== CONTENT PAGES ===== */
main{
  background:
    radial-gradient(circle at top left, rgba(242,201,92,.18) 0, transparent 42%),
    radial-gradient(circle at top right, rgba(111,143,119,.16) 0, transparent 45%),
    linear-gradient(#fbfbf7, #fbfbf7);
  min-height: calc(100vh - var(--nav-h));
}
.page{
  position: relative;
  z-index: 3;
  padding: 4.5rem 1.5rem;
}

/* Na podstránkách posuneme obsah doprava, aby ho velké logo vlevo
   nahoře nepřekrývalo. (Na mobilu se to vrací zpět.) */
@media (min-width: 901px){
  .page{ padding-left: calc(1.5rem + 220px); }
}
.page-inner{
  max-width: 1120px;
  margin: 0 auto;
}
.page-header{
  margin-bottom: 2.5rem;
  text-align: left;
}
.page-kicker{
  font-size: .8rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--primary-dark);
  opacity: .8;
  margin-bottom: .35rem;
}
.page-title{
  font-size: 1.75rem;
  margin-bottom: .5rem;
  color: #15211a;
}
.page-subtitle{
  font-size: .95rem;
  color: var(--text-muted);
  max-width: 46rem;
}

.info-box{
  margin-top: 1.2rem;
  background: rgba(255,255,255,.92);
  border-radius: var(--radius-lg);
  padding: 1.1rem 1.2rem;
  border: 1px solid rgba(242,201,92,.22);
  box-shadow: var(--shadow-soft);
  max-width: 54rem;
}
.info-box strong{ color:#15211a; }
.info-box p{ color: var(--text-muted); font-size: .92rem; }

/* cards / sections */
.cards{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 1.25rem;
}
.card{
  background: var(--card-bg);
  border-radius: var(--radius-lg);
  padding: 1.3rem 1.3rem 1.2rem;
  box-shadow: var(--shadow-soft);
  display:flex;
  flex-direction:column;
  gap:.5rem;
  font-size:.92rem;
  border: 1px solid rgba(242,201,92,.18);
}
.card h3{ font-size: 1.1rem; color:#15211a; }
.card p{ color: var(--text-muted); }

.split{
  display:grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(0, 1.2fr);
  gap: 2rem;
  align-items: start;
}
.panel{
  background: rgba(255,255,255,.96);
  border-radius: var(--radius-lg);
  padding: 1.25rem 1.3rem;
  box-shadow: var(--shadow-soft);
  border: 1px solid rgba(242,201,92,.18);
}
.panel h3{ font-size: 1.05rem; margin-bottom: .6rem; color:#15211a; }
.list{
  list-style: none;
  display:grid;
  gap: .4rem;
  font-size: .92rem;
  color: var(--text-muted);
}
.list li::before{
  content:"✓";
  color: var(--primary-dark);
  font-weight: 800;
  margin-right: .45rem;
}

.gallery-section{ margin-top: 2rem; }
.gallery-section h3{ color:#15211a; margin-bottom:.75rem; }
.gallery-grid{
  display:grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: .75rem;
}
.gallery-item{
  border-radius: 12px;
  overflow: hidden;
  background: rgba(111,143,119,.12);
  border: 1px solid rgba(79,111,88,.18);
  min-height: 120px;
  display:flex;
  align-items:center;
  justify-content:center;
  color: rgba(21,33,26,.75);
  font-size: .9rem;
}

/* ===== FOOTER ===== */
footer{
  background: #0b0f13;
  color: rgba(255,255,255,.72);
  padding: 2rem 1.5rem 2.5rem;
  font-size: .8rem;
}
.footer-inner{
  max-width: 1120px;
  margin: 0 auto;
  display:flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  justify-content: space-between;
  align-items: center;
}
.footer-contact strong{ color:#fff; }
.footer-contact{ display:flex; flex-direction:column; gap:.25rem; }
.footer-links{ display:flex; flex-wrap:wrap; gap:.75rem; }
.footer-links a{ text-decoration: underline; text-decoration-style: dotted; text-underline-offset: 3px; }

/* ===== RESPONSIVE ===== */
@media (max-width: 900px){
  :root{
    --hero-logo-size: 200px;
    --hero-left-offset: 220px;
  }
  .hero-grid{ grid-template-columns: 1fr; }
  .hero-card{ max-width: 420px; margin-inline: auto; }
  .split{ grid-template-columns: 1fr; }
  .cards{ grid-template-columns: 1fr; }
  .gallery-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 768px){
  .nav-inner{ padding-inline: 1rem; }
  .nav-links{
    position:absolute;
    top: var(--nav-h);
    left:0; right:0;
    display:grid;
    gap:.35rem;
    background: rgba(79,111,88,.92);
    overflow:hidden;
    max-height:0;
    opacity:0;
    transform: translateY(-6px);
    pointer-events:none;
    padding: 0 1.2rem;
    transition:
      max-height .38s cubic-bezier(.2,.9,.2,1),
      opacity .22s ease,
      transform .28s ease,
      padding .28s ease;
  }
  .nav-links.open{
    max-height: 520px;
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
    padding: .8rem 1.2rem 1rem;
  }
  .nav-toggle{ display:inline-flex; }

  /* na mobilu text neodsouváme (logo bude menší a nahoře vlevo) */
  .hero-content{
    padding-left: 1.5rem;
    text-align: center;
    padding-top: 3.6rem;
    padding-bottom: 3.2rem;
  }
  .hero-actions, .hero-badges{ justify-content: center; }
  .hero-logo{
    width: 170px;
    height: 170px;
    top: calc(var(--nav-h) + 10px);
    left: 10px;
  }

  .site-logo{
    width: 170px;
    height: 170px;
    top: calc(var(--nav-h) + 10px);
    left: 10px;
  }
  .gallery-grid{ grid-template-columns: 1fr; }
}
@media (max-width: 600px){
  .page{ padding-inline: 1.1rem; }
  .hero-title{ font-size: 2.1rem; }
  .hero-text{ font-size: .92rem; }
}


/* Co vás čeká – emoji odrážky */
.expect-list{
  list-style:none;
  margin-top:1.25rem;
  display:grid;
  gap:.55rem;
  padding:0;
  max-width: 56rem;
}
.expect-list li{
  background: rgba(255,255,255,.96);
  border: 1px solid rgba(242, 201, 92, 0.18);
  border-radius: 14px;
  padding: .75rem .9rem;
  box-shadow: var(--shadow-soft);
  color: var(--text-muted);
}
.expect-list strong{ color: #15211a; }


/* --- Homepage: Kapacita (dvě řádky, zarovnání jako ostatní) --- */
.hero-card-row--capacity { align-items: flex-start; }
.hero-card-row--capacity,
.hero-card-row--rates{
  /* Odpojíme se od základního flex layoutu .hero-card-row,
     aby "Kapacita" a "Ceník" byly na vlastním řádku a pod nimi 2 sloupce */
  display: block;
}
.hero-card-row--capacity > span,
.hero-card-row--rates > span{
  display:block;
  margin-bottom: .35rem;
}
.hero-card-capacity { display: grid; gap: .35rem; }
.hero-card-capacity-row { display: grid; grid-template-columns: 1fr auto; gap: .6rem; align-items: baseline; }
.hero-card-capacity-row .cap-left { color: rgba(226,232,240,.92); }
.hero-card-capacity-row .cap-right { font-weight: 700; color: var(--accent); }


/* Home overview: rates (same layout as capacity) */
.hero-card-rates { display: grid; gap: .35rem; margin-top: .35rem; }
.hero-card-rates-row { display: grid; grid-template-columns: 1fr auto; gap: .6rem; align-items: baseline; }
.hero-card-rates-row .rate-left { color: rgba(226,232,240,.92); }
.hero-card-rates-row .rate-right { font-weight: 800; color: var(--accent); }
/* kompatibilita: v HTML používáme stejně jako u kapacity .cap-right */
.hero-card-rates-row .cap-right{ font-weight: 800; color: var(--accent); }

/* Small explanatory line under prices (keeps info but does not steal attention) */
.hero-card-rates-note{
  margin-top: .35rem;
  font-size: .92rem;
  line-height: 1.35;
  color: rgba(226,232,240,.78);
  text-align: left;
}


/* Reservation box (ubytování) */
.zg-reserve {
  background: rgba(255,255,255,.96);
  border-radius: 18px;
  padding: 1.35rem 1.35rem 1.15rem;
  box-shadow: var(--shadow-soft);
  border: 1px solid rgba(242, 201, 92, 0.18);
}
.zg-reserve h2{ margin-bottom: .35rem; }
.zg-reserve p{ color: var(--text-muted); max-width: 44rem; }
.zg-reserve .form-row{ display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem; margin-top: 1rem; }
@media (max-width: 760px){ .zg-reserve .form-row{ grid-template-columns: 1fr; } }
.zg-reserve label{ display:block; font-size: .82rem; font-weight: 650; margin-bottom: .25rem; color: #15211a; }
.zg-reserve input, .zg-reserve select, .zg-reserve textarea{
  width: 100%;
  border-radius: 12px;
  border: 1px solid rgba(79, 111, 88, 0.22);
  padding: .65rem .75rem;
  font-size: .92rem;
  font-family: inherit;
  background: #fffdf6;
}
.zg-reserve input:focus, .zg-reserve select:focus, .zg-reserve textarea:focus{
  outline: none;
  border-color: rgba(79, 111, 88, 0.55);
  box-shadow: 0 0 0 3px rgba(242, 201, 92, 0.22);
  background: #fff;
}
.zg-estimate{
  margin-top: 1rem;
  padding: .85rem .95rem;
  border-radius: 14px;
  background: rgba(111, 143, 119, 0.12);
  border: 1px solid rgba(111, 143, 119, 0.22);
  color: #1f2933;
  font-size: .92rem;
}
.zg-estimate strong{ color: #15211a; }
.zg-estimate .muted{ color: var(--text-muted); font-size: .85rem; display:block; margin-top: .35rem; }

/* Estimate (booking) – compact output */
.zg-est-total-inline{
  font-weight: 800;
  color: var(--accent);
  margin-left: 8px;
  white-space: nowrap;
}
.zg-est-break{
  margin-top: 8px;
  color: var(--text-muted);
  font-size: .92rem;
  line-height: 1.35;
}

/* Simple vertical stack layout (inner pages) */
.stack { display: grid; gap: 1rem; }

/* Chips (inner pages) */
.chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.chip {
  font-size: .78rem;
  padding: .3rem .7rem;
  border-radius: 999px;
  background: rgba(242, 201, 92, 0.18);
  color: #6a4a06;
  border: 1px solid rgba(242, 201, 92, 0.4);
}


/* === ZAGARA PRICING (sjednoceno se stylem webu) === */
.zg-pricing{
  --zg-green:#6e8477;
  --zg-green-dark:#5f756a;
  --zg-cream:#fbf7ef;
  --zg-card:#ffffff;
  --zg-ink:#1f1b16;
  --zg-muted:#6f675e;
  --zg-gold:#d2aa57;
  --zg-gold-soft:#ead6a9;
  --zg-radius:18px;
  --zg-shadow:0 18px 45px rgba(25,18,10,.10);
  --zg-border:1px solid rgba(210,170,87,.20);

  max-width: 1080px;
  margin: 0 auto;
  padding: 26px 16px 12px;
  background: radial-gradient(800px 320px at 12% 0%, rgba(210,170,87,.16), transparent 60%),
              radial-gradient(900px 360px at 88% 10%, rgba(110,132,119,.12), transparent 60%),
              linear-gradient(180deg, var(--zg-cream), #fff);
  border-radius: 22px;
}

.zg-pricing h2, .zg-pricing h3{
  font-family: Georgia, "Times New Roman", Times, serif;
  letter-spacing: .2px;
  color: var(--zg-ink);
  margin: 0;
}

.zg-pricing__title{
  text-align:center;
  font-size: clamp(28px, 3.2vw, 42px);
  margin-bottom: 10px;
}

.zg-pricing__lead{
  text-align:center;
  max-width: 820px;
  margin: 0 auto 22px;
  color: var(--zg-muted);
  line-height: 1.6;
  font-size: 14px;
}

.zg-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
@media(max-width: 860px){
  .zg-grid{ grid-template-columns: 1fr; }
}

.zg-card{
  background: var(--zg-card);
  border-radius: var(--zg-radius);
  box-shadow: var(--zg-shadow);
  border: var(--zg-border);
  overflow:hidden;
}

.zg-card__top{
  padding: 18px 18px 14px;
  background:
    radial-gradient(900px 160px at 30% -30px, rgba(210,170,87,.22), transparent 65%),
    linear-gradient(90deg, rgba(110,132,119,.14), rgba(255,255,255,0));
  border-bottom: 1px solid rgba(210,170,87,.18);
}

.zg-badge{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding: 8px 12px;
  border-radius: 999px;
  font-weight: 700;
  font-size: 13px;
  border: 1px solid rgba(110,132,119,.35);
  background: rgba(251,247,239,.75);
  color: var(--zg-green-dark);
}

.zg-card__name{
  margin-top: 10px;
  font-size: 24px;
}

.zg-card__note{
  margin-top: 6px;
  color: var(--zg-muted);
  line-height: 1.5;
  font-size: 14px;
}

.zg-table{
  width:100%;
  border-collapse: collapse;
  font-size: 14px;
}
.zg-table td{
  padding: 12px 18px;
  border-bottom: 1px solid rgba(31,27,22,.06);
}
.zg-table tr:nth-child(even){
  background: rgba(251,247,239,.55);
}
.zg-table td:last-child{
  text-align:right;
  font-weight: 800;
  letter-spacing: .2px;
}

.zg-high{
  background: linear-gradient(90deg, rgba(210,170,87,.22), rgba(234,214,169,.10)) !important;
}
.zg-high td{ font-weight: 900; }

.zg-holiday{
  background: linear-gradient(90deg, rgba(255,226,210,.65), rgba(255,255,255,0)) !important;
}
.zg-holiday td{ font-weight: 900; }

.zg-cta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding: 16px 18px 18px;
  border-top: 1px solid rgba(210,170,87,.18);
  background: linear-gradient(180deg, rgba(251,247,239,.6), #fff);
}

.zg-cta small{
  display:block;
  color: var(--zg-muted);
  line-height: 1.45;
  font-size: 13px;
}

.zg-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding: 12px 16px;
  border-radius: 999px;
  text-decoration:none;
  font-weight: 800;
  letter-spacing:.2px;
  background: linear-gradient(180deg, var(--zg-green), var(--zg-green-dark));
  color: #fff;
  border: 1px solid rgba(255,255,255,.22);
  box-shadow: 0 14px 28px rgba(25,18,10,.14);
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
  white-space:nowrap;
}
.zg-btn:hover{
  transform: translateY(-1px);
  box-shadow: 0 18px 36px rgba(25,18,10,.18);
  filter: brightness(1.03);
}
.zg-btn:active{ transform: translateY(0px); }

.zg-link{
  color: var(--zg-green-dark);
  text-decoration:none;
  border-bottom: 1px dashed rgba(110,132,119,.6);
  font-weight: 700;
}
.zg-link:hover{ color: var(--zg-ink); }

/* ===== Booking (PRO) ===== */
.booking-pro{ max-width:1100px; margin: 48px auto 0; padding: 0 16px; }
.booking-pro .booking-card{
  background: rgba(255,255,255,.92);
  border:1px solid rgba(255,255,255,.22);
  border-radius: 22px;
  box-shadow: 0 18px 50px rgba(0,0,0,.10);
  overflow: hidden;
}
.booking-pro .booking-head{
  padding: 18px 18px 8px;
}
.booking-pro .booking-head h2{ margin:0 0 6px; font-size: 26px; }
.booking-pro .booking-head p{ margin:0; color: rgba(31,27,22,.70); }

.booking-pro form{ padding: 16px 18px 18px; display:grid; gap: 14px; }
.booking-pro .grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 12px;
}
@media (max-width: 760px){
  .booking-pro .grid{ grid-template-columns: 1fr; }
}
.booking-pro label{ display:block; font-weight: 700; margin-bottom: 6px; }
.booking-pro input, .booking-pro select, .booking-pro textarea{
  width:100%;
  padding: 12px 12px;
  border-radius: 14px;
  border: 1px solid rgba(31,27,22,.14);
  background: rgba(251,247,239,.55);
  outline: none;
}
.booking-pro textarea{ min-height: 96px; resize: vertical; }
.booking-pro .estimate{
  display:flex;
  align-items:flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 16px;
  border-radius: 16px;
  background: linear-gradient(90deg, rgba(210,170,87,.18), rgba(110,132,119,.08));
  border: 1px solid rgba(210,170,87,.22);
}
.booking-pro .estimate strong{ font-size: 36px; }
.booking-pro .estimate small{ display:block; color: rgba(31,27,22,.70); line-height: 1.45; }
.booking-pro .btn-row{ display:flex; justify-content:flex-end; gap: 10px; flex-wrap: wrap; }
.booking-pro .btn{
  display:inline-flex; align-items:center; gap:10px; justify-content:center;
  padding: 12px 16px; border-radius: 999px; text-decoration:none;
  font-weight: 800; letter-spacing: .2px;
  background: linear-gradient(180deg, #6e8477, #5f756a);
  color:#fff; border:1px solid rgba(255,255,255,.25);
  box-shadow: 0 14px 28px rgba(25,18,10,.14);
}
.booking-pro .btn.secondary{ background: transparent; color: #5f756a; border:1px solid rgba(110,132,119,.35); box-shadow:none; }
.booking-pro .hint{ color: rgba(31,27,22,.70); font-size: 13px; line-height: 1.45; }


/* === Footer (PRO) === */
.site-footer{
  padding: 26px 0;
  background: rgba(16,18,18,.92);
  color: #fff;
}
.site-footer .wrap{
  /* Footer chceme vizuálně roztažený přes šířku (ne úzký středový blok) */
  max-width: 100%;
  width: 100%;
  padding: 0 48px;
}

.footer-grid{
  display:flex;
  gap: 22px;
  align-items:flex-start;
  justify-content: space-between;
}
.footer-left h4{
  margin: 0 0 10px;
  font-size: 36px;
}
.footer-links{
  display:flex;
  flex-wrap:wrap;
  gap: 10px 14px;
  margin-bottom: 10px;
}
.icon-link{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding: 10px 12px;
  border-radius: 12px;
  text-decoration:none;
  color:#fff;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  transition: transform .15s ease, background .15s ease, border-color .15s ease;
}
.icon-link:hover{
  transform: translateY(-1px);
  background: rgba(255,255,255,.10);
  border-color: rgba(255,255,255,.18);
}
.icon-link svg{
  width: var(--zagara-icon-size);
  height: var(--zagara-icon-size);
  fill: currentColor;
  opacity: .92;
}
.footer-social{
  display:flex;
  gap: 10px;
  margin: 8px 0 12px;
}
.social-btn{
  width: 72px;
  height: 72px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius: 999px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  color: #fff;
  text-decoration:none;
  transition: transform .15s ease, background .15s ease, border-color .15s ease;
}
.social-btn:hover{
  transform: translateY(-1px);
  background: rgba(255,255,255,.10);
  border-color: rgba(255,255,255,.18);
}
.social-btn svg{ width: var(--zagara-icon-size); height: var(--zagara-icon-size); fill: currentColor; opacity: .92; }

.footer-note{
  display:block;
  color: rgba(255,255,255,.72);
  line-height: 1.45;
  font-size: 13px;
  max-width: 560px;
}

.footer-right{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap: 8px;
  min-width: 160px;
  padding-top: 4px;
}
.footer-copy{
  color: rgba(255,255,255,.82);
  font-size: 13px;
}
.footer-home{
  color:#fff;
  text-decoration:none;
  border-bottom: 1px dotted rgba(255,255,255,.45);
}
.footer-home:hover{ border-bottom-color: rgba(255,255,255,.75); }

@media (max-width: 820px){
  .footer-grid{ flex-direction:column; }
  .footer-right{ align-items:flex-start; }
}

.contact-social{
  display:flex;
  flex-direction: column;
  gap: 12px;
  margin: 10px 0 6px;
}

/* Sociální sítě v kontaktech: ikona + název (stejný vibe jako patička, ale čitelné v kartě) */
.contact-social .social-btn{
  display:flex;
  align-items:center;
  gap:12px;
  width:100%;
  padding:10px 12px;
  border-radius:14px;
  text-decoration:none;
  font-weight: 800;
  background: rgba(110,132,119,.10);
  border: 1px solid rgba(110,132,119,.18);
}
.contact-social .social-btn:hover{
  background: rgba(210,170,87,.16);
  border-color: rgba(210,170,87,.28);
}
.contact-social .social-btn svg{
  width: var(--zagara-icon-size);
  height: var(--zagara-icon-size);
  flex: 0 0 var(--zagara-icon-size);
}
.contact-social .social-btn span{
  color: #1f1b16;
}


/* === Kontakty: linky s ikonami (světlé karty) === */
.contact-link{
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  padding:10px 12px;
  border-radius:14px;
  text-decoration:none;
  color: #1f1b16;
  font-weight: 800;
  background: rgba(110,132,119,.10);
  border: 1px solid rgba(110,132,119,.18);
}
.contact-link svg{
  width: var(--zagara-icon-size);
  height: var(--zagara-icon-size);
  fill: currentColor;
  opacity: .9;
  flex: 0 0 auto;
}
.contact-link:hover{
  background: rgba(210,170,87,.16);
  border-color: rgba(210,170,87,.28);
}

/* Center label inside the tile while keeping icon aligned left */
.contact-link .contact-label,
.contact-social .social-btn .contact-label{
  flex: 1 1 auto;
  text-align: center;
  padding-right: 8px;
}

.gmaps-link .gmaps-icon{
  width: var(--zagara-icon-size);
  height: var(--zagara-icon-size);
  fill: #EA4335;
  opacity: 1;
}

.map-embed{
  margin-top: 12px;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid rgba(110,132,119,.18);
  box-shadow: 0 10px 22px rgba(0,0,0,.08);
}
.map-embed iframe{
  width: 100%;
  height: 260px;
  border: 0;
  display: block;
}


/* === PRO PATCH: prevent logo overlap on inner pages === */
@media (min-width: 900px){
  .page{
    padding-left: calc(1.5rem + var(--hero-logo-size) + 1rem);
  }
}
/* Brand-colored social icons */
.social-btn svg{ width: var(--zagara-icon-size); height: var(--zagara-icon-size); fill: currentColor; }
.social-btn.fb{ color:#1877F2; }
.social-btn.ig{ color:#E1306C; }
.social-btn.wa{ color:#25D366; }


/* PRO: velké logo jako na hlavní stránce (na podstránkách)
   - umístění stejně pod navigací
   - není fixed: při scrollu odjede pryč (stejně jako na domovské stránce) */
.site-logo-fixed{
  position: absolute;
  top: calc(var(--nav-h) + 12px);
  left: 12px;
  z-index: 1500; /* pod navigací (nav má 2000) */
  width: var(--hero-logo-size);
  height: var(--hero-logo-size);
  border-radius: 50%;
  overflow: hidden;
  box-shadow: 0 22px 45px rgba(0,0,0,.35);
  border: 1px solid rgba(255,255,255,.38);
  background: rgba(255,255,255,.08);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}
.site-logo-fixed img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display:block;
}

@media (max-width: 760px){
  .site-logo-fixed{
    width: 64px;
    height: 64px;
    top: calc(var(--nav-h) + 10px);
    left: 10px;
  }
}

/* PRO: barevné ikony v kontaktech */
.contact-link.is-email svg{ fill: #F0B44A; }
.contact-link.is-phone svg{ fill: #2E7D32; }
.contact-link.is-whatsapp svg{ fill: #25D366; }

/* PRO: booking kalendář + zpětná vazba */
.zg-calendar{
  margin: 10px 0 6px;
  padding: 14px;
  border-radius: 18px;
  border: 1px solid rgba(0,0,0,.06);
  background: rgba(255,255,255,.62);
  box-shadow: 0 18px 40px rgba(0,0,0,.06);
}
.zg-cal-head{
  display:flex;
  gap: 10px;
  align-items:flex-start;
  justify-content:space-between;
  margin-bottom: 10px;
}
.zg-cal-title strong{ display:block; }
.zg-cal-sub{ display:block; font-size: .92rem; opacity: .75; margin-top: 2px; }
.zg-cal-nav{ display:flex; gap: 8px; }
.zg-cal-btn{
  border: 1px solid rgba(0,0,0,.12);
  background: rgba(255,255,255,.8);
  border-radius: 999px;
  padding: 8px 12px;
  cursor:pointer;
}
.zg-cal-btn:hover{ transform: translateY(-1px); }

.zg-cal-month__title{
  font-weight: 700;
  margin: 6px 0 10px;
}
.zg-cal-week{
  display:grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 8px;
  margin-bottom: 8px;
}
.zg-cal-cell--head{
  font-weight: 700;
  font-size: .85rem;
  opacity: .75;
  text-align:center;
}
.zg-cal-cell--empty{ height: 38px; }

.zg-cal-day{
  height: 38px;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,.08);
  background: rgba(255,255,255,.9);
  cursor:pointer;
}
.zg-cal-day.is-booked{
  background: rgba(220, 50, 50, .15);
  border-color: rgba(220, 50, 50, .25);
  cursor:not-allowed;
  opacity: .65;
}
.zg-cal-day.is-free:hover{
  transform: translateY(-1px);
  border-color: rgba(0,0,0,.18);
}
.zg-cal-day.is-selected{
  background: rgba(255, 168, 0, .22);
  border-color: rgba(255, 168, 0, .35);
  font-weight: 700;
}

.zg-cal-legend{
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 8px;
}
.zg-leg{
  display:inline-flex;
  align-items:center;
  gap: 8px;
  font-size: .9rem;
  opacity: .85;
}
.zg-leg::before{
  content:'';
  width: 12px;
  height: 12px;
  border-radius: 4px;
  border: 1px solid rgba(0,0,0,.12);
  display:inline-block;
}
.zg-leg-free::before{ background: rgba(255,255,255,.9); }
.zg-leg-booked::before{ background: rgba(220, 50, 50, .15); border-color: rgba(220, 50, 50, .25); }
.zg-leg-selected::before{ background: rgba(255, 168, 0, .22); border-color: rgba(255, 168, 0, .35); }

.zg-cal-msg{
  margin: 8px 0 0;
  font-size: .95rem;
  opacity: .85;
}


.zg-cal-refresh-link{
  display: inline-block;
  margin-top: 6px;
  font-size: .9rem;
  opacity: .85;
  text-decoration: underline;
}
.zg-cal-refresh-link:hover{ opacity: 1; }

.zg-cal-refresh{
  margin-top: 8px;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.12);
  background: rgba(255,255,255,.7);
  cursor: pointer;
  font: inherit;
}
.zg-cal-refresh:hover{ transform: translateY(-1px); }

.zg-submit-msg{
  margin-top: 12px;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid rgba(0,0,0,.10);
  background: rgba(255,255,255,.65);
  font-weight: 600;
}
.zg-submit-msg.is-ok{ border-color: rgba(0, 120, 70, .25); background: rgba(0, 120, 70, .08); }
.zg-submit-msg.is-bad{ border-color: rgba(220, 50, 50, .25); background: rgba(220, 50, 50, .08); }

@media (max-width: 760px){
  .zg-cal-week{ gap: 6px; }
  .zg-cal-day, .zg-cal-cell--empty{ height: 34px; }
}


/* Zagara glass icon set */
.icon-glass{width:var(--zagara-icon-size);height:var(--zagara-icon-size);display:inline-block;object-fit:contain;}


/* === ZAGARA PRO: unified glass icons (transparent) === */
.icon-glass{
  width: var(--zagara-icon-size);
  height: var(--zagara-icon-size);
  display: block;
  object-fit: contain;
}

/* Contact rows/buttons: keep icon + text aligned */
.contact-row,
.contact-item,
.contact-card a,
.contact-card .btn,
.contact-card .contact-btn,
.contact-card .contact-link,
.contact-actions a,
.contact-actions button{
  display: flex;
  align-items: center;
  gap: 12px;
}

.contact-card img.icon-glass{
  flex: 0 0 auto;
}

/* Remove any white "badge" backgrounds around icons (keep only icon itself) */
.footer-social a,
.social-icons a,
.contact-card a .icon-wrap,
.contact-card a .icon-box,
.contact-card a .icon,
.contact-card .btn .icon,
.contact-card .contact-btn .icon{
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
}

/* Footer social icons: no tiles, no padding; align baseline */
.footer-social,
.social-icons{
  display: flex;
  align-items: center;
  gap: 14px;
}

.footer-social a,
.social-icons a{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 !important;
  margin: 0 !important;
  border-radius: 0 !important;
}

.footer-social a:hover,
.social-icons a:hover{
  background: transparent !important;
  box-shadow: none !important;
  transform: translateY(-1px);
}

/* If any container still forces fixed square size, neutralize it */
.footer-social a,
.social-icons a{
  width: auto !important;
  height: auto !important;
}


/* =======================
   PROČ APARTMÁNY ZAGARA
   ======================= */
.zagara-section{ padding: 72px 0; }
.zagara-container{ width: min(1120px, calc(100% - 48px)); margin: 0 auto; }
.zagara-section__header{ max-width: 820px; margin: 0 auto 28px; text-align: center; }
.zagara-section__header h2{ margin: 0 0 10px; }
.zagara-section__header p{ margin: 0; opacity: .92; }

.zagara-why__grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 22px;
}

.zagara-why__card{
  padding: 18px 18px 16px;
  border-radius: 16px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  backdrop-filter: blur(6px);
}

.zagara-why__card h3{ margin: 0 0 8px; font-size: 36px; }
.zagara-why__card p{ margin: 0; opacity: .92; line-height: 1.45; }

.zagara-cta{
  display: flex;
  justify-content: center;
  gap: 12px;
  margin-top: 26px;
  flex-wrap: wrap;
}

/* Responsive */
@media (max-width: 980px){
  .zagara-why__grid{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 620px){
  .zagara-section{ padding: 56px 0; }
  .zagara-container{ width: min(1120px, calc(100% - 28px)); }
  .zagara-why__grid{ grid-template-columns: 1fr; }
}


/* CTA blocks */
.cta-block{
  text-align:center;
  margin:40px auto;
}
.cta-text{
  margin-bottom:12px;
  font-size:36px;
  opacity:.9;
}
.cta-footer{
  text-align:center;
  margin-top:20px;
}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  cursor:pointer;
  border:none;
  border-radius:999px;
  padding:14px 22px;
  font-weight:700;
  letter-spacing:.2px;
  text-decoration:none;
  transition:all .3s ease;
}
.btn:hover{
  transform:scale(1.05);
  box-shadow:0 6px 18px rgba(0,0,0,.25);
}


/* ZAGARA CTA STRIP (site-wide) */
.zagara-cta-strip{ padding: 44px 0; }
.zagara-cta-strip .zagara-container{ width:min(1120px, calc(100% - 48px)); margin:0 auto; text-align:center; }
.zagara-cta-strip .cta-actions{ display:flex; justify-content:center; gap:12px; flex-wrap:wrap; margin-top:12px; }


/* ================================
   PRO booking layout – calendar below form (full width)
================================ */
.zg-booking__form{
  margin-bottom: 18px;
}
.zg-calendar-wrapper{
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid rgba(255,255,255,.16);
}
.zg-calendar-head{
  margin-bottom: 10px;
}
.zg-calendar-head h3{
  margin: 0 0 6px 0;
  font-size: 1.1rem;
}
.zg-calendar-wrapper .zg-calendar{
  max-width: 100%;
}
.zg-calendar-wrapper .zg-cal-grid{
  width: 100%;
}


/* --- SEO + guide small additions (v19 SEO pack) --- */
.footer-address{ margin-top:10px; font-size:0.95rem; color:var(--text-muted); }
.footer-address strong{ color:var(--text); }
.footer-dist{ margin-top:6px; font-size:0.9rem; color:var(--text-muted); }

.link-inline{ color: var(--primary-dark); text-decoration: underline; text-underline-offset: 3px; }
.link-inline:hover{ color: var(--primary); }

.note{ margin-top:16px; }
.note-soft{ background: var(--accent-soft); border-radius: var(--radius-lg); padding: 14px 16px; }

.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; }

/* Guide */
.guide-controls{ display:flex; flex-direction:column; gap:12px; margin: 10px 0 18px; }
.guide-search input{ width:100%; padding:12px 14px; border-radius: 12px; border:1px solid rgba(31,41,51,0.12); background:#fff; }
.guide-filters{ display:flex; flex-wrap:wrap; gap:8px; }
.chip{ border:1px solid rgba(31,41,51,0.14); background:#fff; padding:10px 12px; border-radius:999px; cursor:pointer; font-weight:600; color:var(--text); }
.chip.is-active{ background: var(--primary); color:#fff; border-color: var(--primary); }
.guide-grid{ display:grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; margin-top: 10px; }
.guide-card{ background: var(--card-bg); border-radius: var(--radius-lg); box-shadow: var(--shadow-soft); padding: 16px; }
.guide-card-top{ display:flex; flex-direction:column; gap:8px; }
.guide-card h3{ color: var(--primary-dark); font-size: 1.05rem; }
.guide-badges{ display:flex; flex-wrap:wrap; gap:8px; }
.badge{ background: rgba(111,143,119,0.12); color: var(--primary-dark); padding:6px 10px; border-radius:999px; font-weight:700; font-size:0.85rem; }
.guide-note{ margin-top: 6px; color: var(--text); }
.guide-who{ margin-top: 8px; color: var(--text-muted); }
.guide-actions{ margin-top: 10px; }
.guide-empty{ padding: 18px; background:#fff; border-radius: var(--radius-lg); border:1px dashed rgba(31,41,51,0.18); color: var(--text-muted); }
.guide-cta{ margin-top: 18px; }


/* --- Footer readability + icon alignment (PRO fix) --- */
.site-footer .footer-copy{ font-size:14px; }
.site-footer .footer-address,
.site-footer .footer-dist{ color: rgba(255,255,255,.78); }
.site-footer .footer-home{ color: rgba(255,255,255,.92); }

.site-footer .footer-social{
  display:flex;
  align-items:center;
  gap: 14px;
}
.site-footer .social-btn{
  width: 72px;
  height: 72px;
  flex: 0 0 72px;
  padding: 0;
}
.site-footer img.icon-glass{
  display:block;
  width: var(--zagara-icon-size);
  height: var(--zagara-icon-size);
}


/* === Booking form polish (Ubytování a rezervace) === */
.zg-booking__subtitle{
  margin: 6px 0 18px;
  color: #2d3a2f;
  opacity: .9;
}

.zg-apts{
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap:16px;
  margin: 18px 0 20px;
}
@media (max-width: 820px){
  .zg-apts{ grid-template-columns: 1fr; }
}
.zg-apt{
  background:#fff;
  border:1px solid rgba(0,0,0,.06);
  border-radius:16px;
  padding:16px;
  box-shadow: 0 10px 26px rgba(0,0,0,.06);
}
.zg-apt__title{
  margin:0 0 8px;
  font-size: 36px;
  letter-spacing:.2px;
}
.zg-apt__meta{
  margin:0 0 10px;
  color:#2d3a2f;
  opacity:.85;
  font-size: 14px;
}
.zg-apt__list{
  margin:0;
  padding-left: 18px;
}
.zg-apt__list li{ margin: 6px 0; }

.zg-booking__form{
  background:#fff;
  border:1px solid rgba(0,0,0,.06);
  border-radius:18px;
  padding:18px;
  box-shadow: 0 10px 26px rgba(0,0,0,.06);
}

.zg-booking__row{
  display:grid;
  grid-template-columns: 220px minmax(0,1fr);
  gap:10px;
  align-items:center;
  margin:10px 0;
}
@media (max-width: 820px){
  .zg-booking__row{ grid-template-columns: 1fr; }
}

.zg-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.zg-field__label{
  font-weight:600;
  color:#2d3a2f;
}
.zg-field__hint{
  font-size: 13px;
  color:#2d3a2f;
  opacity:.75;
  margin:0;
}

.zg-input, .zg-select, .zg-textarea{
  width:100%;
  border: 1px solid rgba(0,0,0,.14);
  background:#fffdf7;
  border-radius: 12px;
  padding: 10px 12px;
  font-size: 14px;
  line-height: 1.2;
  outline: none;
  transition: box-shadow .2s, border-color .2s, transform .05s;
}
.zg-textarea{ min-height: 92px; resize: vertical; }
.zg-input:focus, .zg-select:focus, .zg-textarea:focus{
  border-color: rgba(77, 111, 85, .55);
  box-shadow: 0 0 0 4px rgba(77,111,85,.12);
}
.zg-input:active, .zg-select:active, .zg-textarea:active{
  transform: translateY(1px);
}

.zg-legend{
  display:flex;
  gap:16px;
  flex-wrap:wrap;
  margin: 14px 0 8px;
  font-size: 14px;
  color:#2d3a2f;
  opacity:.9;
}
.zg-legend__item{
  display:flex;
  align-items:center;
  gap:8px;
}
.zg-legend__swatch{
  width:12px;
  height:12px;
  border-radius:4px;
  border:1px solid rgba(0,0,0,.12);
}
.zg-legend__swatch--free{ background:#fff; }
.zg-legend__swatch--busy{ background:#f7c8c8; }
.zg-legend__swatch--sel{ background:#f3e3b1; }

.zg-cal-refresh{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin: 6px 0 10px;
  padding: 10px 12px;
  border-radius: 12px;
  border:1px solid rgba(0,0,0,.12);
  background:#f6f8f6;
  text-decoration:none;
  color:#2d3a2f;
}
.zg-cal-refresh:hover{
  background:#eef2ef;
}

.zg-booking__estimate{
  margin-top: 14px;
  padding: 14px 14px;
  border-radius: 14px;
  border: 1px solid rgba(0,0,0,.10);
  background: linear-gradient(180deg, rgba(240,245,240,.85), rgba(245,243,232,.85));
}
.zg-booking__estimate strong{ font-weight: 700; }

.zg-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top: 12px;
}
.zg-btn{
  border-radius: 14px;
  padding: 12px 16px;
  font-weight: 700;
  letter-spacing: .2px;
}
.zg-btn--primary{
  background: linear-gradient(90deg, #4d6f55, #d7b35a);
  color: #fff;
  border: none;
}
.zg-btn--primary:hover{ filter: brightness(.98); }
.zg-btn--ghost{
  background:#fff;
  border:1px solid rgba(0,0,0,.14);
  color:#2d3a2f;
}


/* =========================
   Booking form (Ubytování)
   ========================= */
.zg-booking {
  margin-top: 14px;
}

.zg-booking__status {
  margin: 10px 0 12px;
  color: #2f3a2f;
  opacity: .9;
  font-size: 0.98rem;
}

.zg-booking__field {
  display: grid;
  grid-template-columns: 180px minmax(220px, 420px);
  align-items: center;
  gap: 10px 14px;
  margin: 10px 0;
}

@media (max-width: 720px) {
  .zg-booking__field {
    grid-template-columns: 1fr;
  }
}

.zg-booking__label {
  font-weight: 600;
  color: #2f3a2f;
}

.zg-booking__input,
.zg-booking select,
.zg-booking textarea {
  width: 100%;
  max-width: 420px;
  padding: 10px 12px;
  border: 1px solid rgba(47, 58, 47, 0.22);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.86);
  color: #1f271f;
  outline: none;
  transition: border-color .15s ease, box-shadow .15s ease, transform .05s ease;
}

.zg-booking textarea {
  min-height: 92px;
  resize: vertical;
}

.zg-booking__input:focus,
.zg-booking select:focus,
.zg-booking textarea:focus {
  border-color: rgba(88, 114, 88, 0.55);
  box-shadow: 0 0 0 4px rgba(88, 114, 88, 0.14);
}

.zg-booking__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 11px 16px;
  border-radius: 14px;
  border: 1px solid rgba(47, 58, 47, 0.18);
  background: linear-gradient(90deg, rgba(88,114,88,0.92), rgba(242,201,76,0.92), rgba(242,153,74,0.92));
  color: #fff;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 10px 26px rgba(0,0,0,0.10);
  transition: transform .08s ease, box-shadow .15s ease, filter .15s ease;
}

.zg-booking__btn:hover {
  filter: brightness(1.02);
  box-shadow: 0 12px 30px rgba(0,0,0,0.14);
}

.zg-booking__btn:active {
  transform: translateY(1px);
}

.zg-booking__muted {
  font-size: 0.95rem;
  opacity: .85;
}

.zg-estimate {
  margin-top: 14px;
  padding: 14px 16px;
  border-radius: 16px;
  background: rgba(88, 114, 88, 0.10);
  border: 1px solid rgba(88, 114, 88, 0.16);
}

.zg-estimate__title {
  font-weight: 800;
  margin: 0 0 6px;
  color: #2f3a2f;
}

.zg-estimate__text {
  margin: 0;
  color: #2f3a2f;
}



/* ZG BOOKING LAYOUT v2 */
.zg-booking-layout {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 22px;
  align-items: start;
}

.zg-booking-left .zg-calendar {
  margin: 0;
}

.zg-cal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.zg-cal-title {
  font-weight: 700;
  letter-spacing: 0.2px;
}

.zg-refresh-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 10px;
}

.zg-link {
  background: transparent;
  border: none;
  padding: 0;
  color: var(--sage, #6a7a62);
  text-decoration: underline;
  cursor: pointer;
  font-weight: 600;
}

.zg-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.zg-label span {
  display: block;
  font-size: 0.95rem;
  color: #2f3a33;
  margin-bottom: 6px;
  font-weight: 600;
}

.zg-form-grid input,
.zg-form-grid select,
.zg-form-grid textarea {
  width: 100%;
}

.zg-estimate {
  margin-top: 14px;
}

.zg-submit {
  margin-top: 14px;
  width: 100%;
}

@media (max-width: 980px) {
  .zg-booking-layout {
    grid-template-columns: 1fr;
  }
  .zg-form-grid {
    grid-template-columns: 1fr;
  }
}


/* ===============================
   ZAGARA UI polish overrides (v19.1)
   - Fix duplicated selectors
   - Improve contrast (hero badges, footer)
   - Compact calendar cells
   - Consistent buttons + inputs
   =============================== */

:root{
  --zagara-green:#5f7a64;
  --zagara-green-dark:#3f5a45;
  --zagara-amber:#f2c94c;
  --zagara-orange:#f2994a;
  --zagara-cream:#fdfaf3;
  --zagara-text:#2b2b2b;
}

/* Buttons */
.btn-primary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  padding:12px 18px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.06);
  background: linear-gradient(90deg, var(--zagara-amber), var(--zagara-orange));
  color:#1b1b1b;
  font-weight:700;
  text-decoration:none;
  box-shadow: 0 10px 22px rgba(0,0,0,.10);
}
.btn-primary:hover{ transform: translateY(-1px); }
.btn-secondary{
  background: var(--olive-grad);
  color: #ffffff;
  border: 1px solid rgba(255,255,255,.18);
  box-shadow: 0 10px 24px rgba(0,0,0,.25);
  border-radius:999px;
  padding:14px 22px;
  font-weight:800;
}
.btn-secondary:hover{
  filter: brightness(1.04);
  transform: translateY(-1px);
}
.btn-secondary:active{
  transform: translateY(0);
  filter: brightness(.98);
}
/* Cards / tiles */
.card{
  background:#fff;
  border:1px solid rgba(0,0,0,.06);
  border-radius:18px;
  padding:18px;
  box-shadow: 0 10px 24px rgba(0,0,0,.08);
}
.card .card-btn{ margin-top:10px; }
.card h3{ margin:0 0 8px; color:#1f2a24; }
.card p{ margin:0 0 10px; color:#425047; }

/* Hero badges: always readable on image */
.badge{
  color:#fff !important;
  border-color:rgba(255,255,255,.55) !important;
  background: rgba(0,0,0,.22);
  text-decoration:none;
}
.badge:hover{ background: rgba(0,0,0,.30); }

/* Header nav contrast (safe override) */
.navbar a{ color:#fff; text-shadow:0 1px 8px rgba(0,0,0,.35); }
.navbar a:hover{ color:#fff; opacity:.9; }

/* Footer: keep links + badges white */
.site-footer, .site-footer *{ color:#fff; }
.site-footer a{ color:#fff; opacity:.95; }
.site-footer a:hover{ opacity:1; }
.site-footer .badge{
  background: rgba(255,255,255,.12);
  border-color: rgba(255,255,255,.35);
  color:#fff !important;
}
.site-footer .footer-links{ gap:18px; }
.site-footer .footer-icons{
  display:flex;
  gap:14px;
  align-items:center;
}
.site-footer .footer-icons a{
  display:inline-flex;
  width:56px;
  height:56px;
  align-items:center;
  justify-content:center;
  border-radius:10px;
  background: rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.18);
}
.site-footer .footer-icons a:hover{ background: rgba(255,255,255,.14); }

/* Booking: compact calendar + two-column layout */
.zg-booking-grid{
  display:grid;
  grid-template-columns: 1.1fr .9fr;
  gap:18px;
  align-items:start;
}
@media (max-width: 980px){
  .zg-booking-grid{ grid-template-columns: 1fr; }
}

/* Inputs: consistent height + subtle icon padding */
.zg-booking-form input[type="text"],
.zg-booking-form input[type="email"],
.zg-booking-form input[type="number"],
.zg-booking-form textarea{
  height:44px;
  border-radius:12px;
  border:1px solid rgba(0,0,0,.14);
  background:#fff;
}
.zg-booking-form textarea{ height:auto; min-height:110px; padding-top:12px; }
.zg-input-icon{
  position:relative;
}
.zg-input-icon input{
  padding-left:42px !important;
}
.zg-input-icon::before{
  content:"";
  position:absolute;
  left:14px;
  top:50%;
  width:16px;
  height:16px;
  transform: translateY(-50%);
  opacity:.55;
  background-size:16px 16px;
  background-repeat:no-repeat;
}
.zg-input-icon.person::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%232b2b2b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E");
}
.zg-input-icon.mail::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%232b2b2b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 7L2 7'/%3E%3C/svg%3E");
}

/* Calendar day buttons */
.cal-grid{ gap:6px !important; }
.cal-day{
  height:34px !important;
  padding:0 8px !important;
  border-radius:12px !important;
  font-size:14px !important;
}
.cal-weekday{ font-size:12px; opacity:.75; }

/* Apartment info cards on booking page */
.zg-apartments-info{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:18px;
  margin: 14px 0 22px;
}
@media (max-width: 900px){
  .zg-apartments-info{ grid-template-columns: 1fr; }
}
.zg-apartments-info .apt-card{
  background:#fff;
  border:1px solid rgba(0,0,0,.06);
  border-radius:18px;
  padding:18px;
  box-shadow: 0 10px 24px rgba(0,0,0,.08);
}
.zg-apartments-info .apt-card h3{
  margin:0 0 10px;
  font-size:20px;
}
.zg-apartments-info .apt-list{
  margin:0;
  padding-left:18px;
  color:#425047;
}
.zg-apartments-info .apt-note{
  margin-top:10px;
  font-size:14px;
  color:#5a6a60;
}


/* Footer social alignment */
.site-footer .footer-social{
  display:flex;
  gap:14px;
  align-items:center;
}
.site-footer .social-btn{
  display:inline-flex;
  width:38px;
  height:38px;
  align-items:center;
  justify-content:center;
  border-radius:10px;
  background: rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.18);
}
.site-footer .social-btn img{ width:18px; height:18px; object-fit:contain; }


/* === Footer v2: čitelnost, vyvážené rozložení, větší ikony === */
.site-footer .footer-grid--v2{
  display:grid;
  grid-template-columns: auto 1fr auto;
  gap: 26px;
  align-items:center;
}

.site-footer .footer-left{display:flex; align-items:center; justify-content:flex-start;}
.site-footer .footer-social{display:flex; gap:12px; align-items:center;}

.site-footer .footer-social .social-btn{
  width:52px;
  height:52px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  background: rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.22);
  box-shadow: 0 10px 24px rgba(0,0,0,.30);
  transition: transform .15s ease, background .15s ease, border-color .15s ease;
}
.site-footer .footer-social .social-btn:hover{
  transform: translateY(-1px);
  background: rgba(255,255,255,.16);
  border-color: rgba(255,255,255,.28);
}
.site-footer .footer-social .social-btn img{
  width:30px;
  height:30px;
  display:block;
  filter: drop-shadow(0 2px 10px rgba(0,0,0,.35));
}

.site-footer .footer-center{
  text-align:center;
  color: rgba(255,255,255,.96);
}
.site-footer .footer-center .footer-brand{
  font-weight: 800;
  letter-spacing: .02em;
  color:#fff;
  font-size: 36px;
}
.site-footer .footer-center .footer-loc{
  margin-top: 4px;
  color: rgba(255,255,255,.92);
  font-weight: 600;
}
.site-footer .footer-center .footer-meta{
  margin-top: 8px;
  color: rgba(255,255,255,.86);
  font-size: 14px;
  line-height: 1.35;
}
.site-footer .footer-center .footer-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top: 12px;
  padding: 10px 16px;
  border-radius: 999px;
  background: linear-gradient(90deg, #f2c94c, #f2994a);
  color: #1b1f1c;
  font-weight: 800;
  text-decoration:none;
  box-shadow: 0 14px 32px rgba(0,0,0,.35);
}
.site-footer .footer-center .footer-cta:hover{ filter: brightness(1.02); }

.site-footer .footer-right{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap: 10px;
  color: rgba(255,255,255,.92);
}
.site-footer .footer-right .footer-copy{ color:#fff; font-weight:700; }
.site-footer .footer-right .footer-nav{
  display:flex;
  gap:14px;
  align-items:center;
  justify-content:flex-end;
}
.site-footer .footer-right .footer-nav a{
  color:#fff;
  text-decoration:none;
  font-weight: 700;
  opacity:.92;
}
.site-footer .footer-right .footer-nav a:hover{ opacity:1; text-decoration:underline; }

@media (max-width: 820px){
  .site-footer .footer-grid--v2{
    grid-template-columns: 1fr;
    gap: 16px;
    text-align:center;
  }
  .site-footer .footer-left{justify-content:center;}
  .site-footer .footer-right{align-items:center;}
  .site-footer .footer-right .footer-nav{justify-content:center; flex-wrap:wrap;}
}


/* Footer social icons - ensure crisp sizing */
.site-footer .footer-icons a img,
.site-footer .footer-icons a svg{
  width:100%;
  height:100%;
  display:block;
}


/* Unified CTA styles for secondary/ghost/outline buttons */
.btn-ghost{
  background: linear-gradient(135deg, var(--primary), var(--primary-dark));
  color: #ffffff;
  border: 1px solid rgba(255,255,255,.18);
  box-shadow: 0 10px 24px rgba(0,0,0,.20);
}
.btn-ghost:hover{
  filter: brightness(1.04);
  transform: translateY(-1px);
}
.btn-ghost:active{
  transform: translateY(0);
  filter: brightness(.98);
}

.btn-outline{
  background: linear-gradient(135deg, var(--primary), var(--primary-dark));
  color: #ffffff;
  border: 1px solid rgba(255,255,255,.22);
  box-shadow: 0 10px 24px rgba(0,0,0,.18);
}
.btn-outline:hover{
  filter: brightness(1.04);
  transform: translateY(-1px);
}
.btn-outline:active{
  transform: translateY(0);
  filter: brightness(.98);
}


/* Booking estimator breakdown (PRO) */
.zg-est-meta{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  margin-top:10px;
  color:#fff;
  opacity:.9;
  font-size:14px;
}
.zg-est-breakdown{
  list-style:none;
  padding:0;
  margin:10px 0 0 0;
}
.zg-est-breakdown li{
  display:grid;
  grid-template-columns: 1fr auto auto auto;
  gap:10px;
  align-items:baseline;
  padding:8px 10px;
  border-radius:12px;
  background: rgba(255,255,255,.08);
  margin-bottom:8px;
  color:#fff;
}
.zg-bd-nights, .zg-bd-sub, .zg-bd-pn{
  white-space:nowrap;
}
.zg-bd-sub, .zg-bd-pn{
  color:#fff;
  font-weight:600;
}
.zg-est-note{
  margin-top:8px;
  font-size:13px;
  color:#fff;
  opacity:.9;
}
@media (max-width: 520px){
  .zg-est-breakdown li{
    grid-template-columns: 1fr auto;
    grid-auto-rows:auto;
  }
  .zg-bd-sub, .zg-bd-pn{
    justify-self:end;
  }
}


.gallery-grid--photos .gallery-item{
  min-height: 0;
  padding: 0;
  background: #fff;
}
.gallery-grid--photos .gallery-item img{
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}
@media (max-width: 900px){
  .gallery-grid{
    grid-template-columns: repeat(2, minmax(0,1fr));
  }
}
@media (max-width: 640px){
  .gallery-grid{
    grid-template-columns: 1fr;
  }
}


/* ===== Fotogalerie – čistá funkční verze ===== */
.zag-gallery-block{
  margin-top: 2rem;
}
.zag-gallery-title{
  margin: 0 0 1rem;
}
.zag-gallery-subtitle{
  margin: 1.25rem 0 .75rem;
  font-size: 1.15rem;
}
.zag-thumb-grid{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: flex-start;
}
.zag-thumb-link{
  width: 120px;
  height: 80px;
  display: block;
  overflow: hidden;
  border-radius: 10px;
  border: 1px solid rgba(31,41,51,.10);
  background: #eef1ea;
  cursor: zoom-in;
  flex: 0 0 auto;
}
.zag-thumb-link img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.zag-placeholder-row{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.zag-placeholder{
  min-width: 240px;
  min-height: 80px;
  display: flex;
  align-items: center;
  padding: 0 1rem;
  border-radius: 10px;
  border: 1px dashed rgba(31,41,51,.18);
  background: #f5f6f2;
  color: #5f6b76;
}
.zag-lightbox{
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  background: rgba(0,0,0,.9);
  z-index: 5000;
}
.zag-lightbox.is-open{
  display: flex;
}
.zag-lightbox img{
  max-width: min(1280px, 94vw);
  max-height: 90vh;
  width: auto;
  height: auto;
  border-radius: 14px;
  box-shadow: 0 20px 60px rgba(0,0,0,.45);
  background: #fff;
}
.zag-lightbox-close{
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 48px;
  height: 48px;
  border: 0;
  border-radius: 999px;
  background: rgba(255,255,255,.14);
  color: #fff;
  font-size: 2rem;
  line-height: 1;
  cursor: pointer;
}
@media (max-width: 640px){
  .zag-thumb-link{
    width: 96px;
    height: 64px;
  }
}


.zag-lightbox-nav{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 52px;
  height: 52px;
  border: 0;
  border-radius: 999px;
  background: rgba(255,255,255,.16);
  color: #fff;
  font-size: 2rem;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.zag-lightbox-prev{ left: 1rem; }
.zag-lightbox-next{ right: 1rem; }

@media (max-width: 640px){
  .zag-lightbox-nav{
    width: 44px;
    height: 44px;
    font-size: 1.6rem;
  }
  .zag-lightbox-prev{ left: .5rem; }
  .zag-lightbox-next{ right: .5rem; }
}


.zg-cal-day.is-past{
  opacity: .42;
  background: #f2f3ef;
  color: #9aa28e;
  cursor: not-allowed;
  text-decoration: line-through;
}


.zg-label input.is-error,
.zg-label textarea.is-error,
.zg-label select.is-error{
  border-color:#d66b6b !important;
  box-shadow:0 0 0 3px rgba(214,107,107,.14);
  background:#fff9f9;
}
.zg-field-hint{
  display:block;
  margin-top:.35rem;
  font-size:.86rem;
  color:#b44c4c;
}

.zg-terms{
  margin:18px 0 20px;
  padding:16px 18px;
  border:1px solid rgba(35,49,42,.12);
  border-radius:16px;
  background:#faf9f5;
}
.zg-terms h3{
  margin:0 0 10px;
  font-size:1rem;
}
.zg-terms-list{
  margin:0;
  padding-left:18px;
  display:grid;
  gap:8px;
  color:#4d564f;
  font-size:.95rem;
  line-height:1.5;
}
.zg-cal-msg:empty{display:none;}


.zg-terms{margin:12px 0 16px;font-size:14px;line-height:1.5;color:#5a5a5a}.zg-terms a{font-weight:600;text-decoration:underline}.terms-table{width:100%;border-collapse:collapse;margin:18px 0}.terms-table th,.terms-table td{border:1px solid #ddd;padding:10px;text-align:left}.terms-table th{background:#f5f5f5}


/* --- Security / legal page additions --- */
.subpage-hero{position:relative;min-height:340px;color:#fff;overflow:hidden}
.subpage-hero__bg{position:absolute;inset:0;background-size:cover;background-position:center}
.subpage-hero__overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(34,52,38,.55),rgba(34,52,38,.72))}
.subpage-hero__content{position:relative;z-index:2;max-width:1100px;margin:0 auto;padding:130px 24px 56px}
.legal-card{background:#fff;border-radius:28px;box-shadow:0 18px 48px rgba(30,40,30,.08);padding:28px}
.legal-list{padding-left:20px;display:grid;gap:10px}
.legal-table-wrap{overflow:auto;margin:18px 0}
.legal-table{width:100%;border-collapse:collapse;background:#fff;border-radius:18px;overflow:hidden}
.legal-table th,.legal-table td{padding:14px 16px;border-bottom:1px solid #ece6d9;text-align:left}
.legal-table th{background:#f5efe4;font-weight:700}
.link-inline{color:var(--accent,#b88a2f);text-decoration:underline}
@media (max-width: 860px){
  .subpage-hero{min-height:280px}
  .subpage-hero__content{padding:108px 18px 38px}
  .legal-card{padding:20px}
}

/* --- Zagara UX fix: calendar colours + clear legend --- */
.zg-cal-help{
  margin: 4px 0 12px;
  color: #46544a;
  font-size: .96rem;
  line-height: 1.45;
}

.zg-cal-day.is-free{
  background: #eef7ef;
  border-color: #b9d4bc;
  color: #16351f;
}

.zg-cal-day.is-free:hover{
  background: #e3f1e5;
  border-color: #7faa85;
  box-shadow: 0 8px 18px rgba(64, 102, 72, .12);
}

.zg-cal-day.is-booked{
  background: #f8dddd;
  border-color: #e89a9a;
  color: #9f3e3e;
  cursor: not-allowed;
  opacity: .72;
}

.zg-cal-day.is-selected{
  background: linear-gradient(135deg, #f4d46f 0%, #f4a24a 100%);
  border-color: #e69a35;
  color: #172218;
  font-weight: 800;
  box-shadow: 0 10px 22px rgba(226, 145, 43, .20);
}

.zg-cal-day.is-past{
  background: #f3f1ea;
  border-color: #e4dfd4;
  color: #a39d93;
  opacity: .55;
  cursor: not-allowed;
  text-decoration: none;
}

.zg-cal-legend{
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  margin-top: 14px;
  padding: 12px 14px;
  border: 1px solid rgba(35,49,42,.08);
  border-radius: 14px;
  background: rgba(255,255,255,.72);
}

.zg-legend-item{
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #2f3a33;
  font-size: .95rem;
  font-weight: 600;
}

.zg-dot{
  width: 16px;
  height: 16px;
  border-radius: 5px;
  display: inline-block;
  border: 1px solid rgba(0,0,0,.12);
}

.zg-dot.free{
  background: #eef7ef;
  border-color: #b9d4bc;
}

.zg-dot.booked{
  background: #f8dddd;
  border-color: #e89a9a;
}

.zg-dot.selected{
  background: linear-gradient(135deg, #f4d46f 0%, #f4a24a 100%);
  border-color: #e69a35;
}

@media (max-width: 640px){
  .zg-cal-help{font-size:.9rem;margin-bottom:10px;}
  .zg-cal-legend{gap:10px;padding:10px 12px;}
  .zg-legend-item{font-size:.88rem;}
  .zg-dot{width:14px;height:14px;}
}


/* --- Zagara mobile checkout selection fix ---
   Departure day must be visibly marked on touch devices too. */
.zg-cal-day.is-selected,
.zg-cal-day.is-range-start,
.zg-cal-day.is-range-end{
  background: linear-gradient(135deg, #f4d46f 0%, #f4a24a 100%) !important;
  border-color: #d98222 !important;
  color: #172218 !important;
  font-weight: 900 !important;
  box-shadow: 0 10px 22px rgba(226, 145, 43, .24) !important;
}

.zg-cal-day.is-range-start::after,
.zg-cal-day.is-range-end::after{
  display: block;
  font-size: 9px;
  line-height: 1;
  margin-top: 2px;
  letter-spacing: .02em;
  color: rgba(23,34,24,.72);
}

.zg-cal-day.is-range-start::after{ content: "příj."; }
.zg-cal-day.is-range-end::after{ content: "odj."; }

.zg-cal-day.is-range-middle{
  background: #f8e5bd !important;
  border-color: #edc983 !important;
  color: #2c2417 !important;
}

@media (max-width: 640px){
  .zg-cal-day{
    min-height: 42px;
    height: 42px;
    padding-top: 5px;
    padding-bottom: 3px;
  }
  .zg-cal-day.is-range-start::after,
  .zg-cal-day.is-range-end::after{
    font-size: 8px;
  }
}
