:root{
  --text:#111827; --muted:#6b7280; --primary:#2563eb; --primary-600:#1d4ed8;
  --danger:#dc2626; --busy-bg:#fee2e2; --busy-br:#ef4444; --free-bg:#dcfce7; --free-br:#22c55e;
  --gap:6px; --cal-col-min:64px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text)}
.container{max-width:1100px;margin:0 auto;padding:0 16px}.section{padding:64px 0}.section.alt{background:#f8fafc}
h1{font-size:clamp(32px,5vw,52px);margin:0 0 12px}h2{font-size:clamp(24px,4vw,36px);margin:0 0 16px}h3{margin:0 0 8px}p{line-height:1.6}
.site-header{position:sticky;top:0;background:#fff;border-bottom:1px solid #e5e7eb;z-index:20}
.site-header .container{display:flex;align-items:center;justify-content:space-between;min-height:64px}.logo{font-weight:700;font-size:20px;text-decoration:none;color:var(--text)}
.nav a{margin-left:16px;text-decoration:none;color:var(--text)}.nav .btn{margin-left:24px}
.hero{position:relative;background:#0f172a;color:#fff;padding:0}
.hero-img{width:100%;max-height:520px;object-fit:cover;display:block;opacity:.3}
.hero .hero-content{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:16px}
.btn{display:inline-flex;align-items:center;gap:8px;border:1px solid #e5e7eb;padding:10px 14px;border-radius:999px;background:#fff;cursor:pointer;font-weight:600;text-decoration:none;color:var(--text)}
.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn.primary:hover{background:var(--primary-600)}.btn.lg{padding:14px 18px;font-size:18px}
.grid-4{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:8px}
.card img.photo{width:140px;height:100px;object-fit:cover;border-radius:12px}
.card.product{flex-direction:row;gap:16px;align-items:center}
.card.product.single{max-width:720px;margin:0 auto}
.features{margin:0 0 8px 16px}.price{font-size:20px;font-weight:700}
.legend{display:flex;gap:16px;align-items:center;margin:12px 0}.legend-item{display:inline-flex;align-items:center;gap:8px}
.dot{display:inline-block;width:12px;height:12px;border-radius:50%}.dot.free{background:#22c55e}.dot.busy{background:#ef4444}
.calendar-controls{display:flex;align-items:center;justify-content:center;gap:12px;margin:8px 0 16px}.month-label{font-weight:700}

/* Mobilní scroll pro kalendář */
.calendar-outer{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
.calendar{
  display:grid;
  grid-template-columns: repeat(7, minmax(var(--cal-col-min), 1fr));
  gap: var(--gap);
  min-width: calc(7 * var(--cal-col-min) + 6 * var(--gap));
}
.calendar .day{position:relative;border:2px solid #e5e7eb;border-radius:10px;padding:12px;min-height:68px;background:#fff;display:flex;flex-direction:column;gap:6px}
.calendar .day header{display:flex;align-items:center;justify-content:space-between;font-weight:600}.calendar .day .state{font-size:12px;color:var(--muted)}
.calendar .day.busy{background:var(--busy-bg);border-color:var(--busy-br)}.calendar .day.busy::after{content:"";position:absolute;inset:0;border:2px dashed var(--busy-br);border-radius:10px;pointer-events:none;opacity:.4}
.calendar .day.free{background:var(--free-bg);border-color:var(--free-br)}
.calendar .weekday{font-weight:600;text-align:center;margin-top:8px}.calendar .muted{color:#9ca3af}.calendar .out{opacity:.4}

@media (max-width: 480px){
  :root{ --cal-col-min: 56px; --gap:4px; }
  .calendar .day{ padding:8px; min-height:56px; }
  .calendar .day .state{ display:none; }
}

.form{display:flex;flex-direction:column;gap:16px}.field{display:flex;flex-direction:column;gap:6px}
input,select,textarea{border:1px solid #e5e7eb;border-radius:10px;padding:10px;font-size:16px}input[type="date"]{padding:8px}
input:focus,select:focus,textarea:focus{outline:2px solid #c7d2fe;border-color:#6366f1}.checkbox{display:flex;align-items:center;gap:8px}
.summary{display:flex;align-items:center;justify-content:space-between;border:1px dashed #e5e7eb;border-radius:12px;padding:12px}.actions{display:flex;align-items:center;gap:16px}
.error{color:var(--danger);min-height:1em}.muted{color:var(--muted)}.hp{position:absolute;left:-9999px;top:-9999px;height:0;width:0;opacity:0}
.warning{background:#fff7ed;border:1px solid #fdba74;border-radius:10px;padding:12px;color:#9a3412;margin:12px 0}
.readonly-box{border:1px solid #e5e7eb;border-radius:10px;padding:10px;background:#f3f4f6;color:#111827}
.site-footer{border-top:1px solid #e5e7eb}.site-footer .container{display:flex;justify-content:center;align-items:center;min-height:80px}

/* --- Modal popup --- */
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.4);backdrop-filter:saturate(140%) blur(2px);display:none;z-index:50}
.modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;z-index:60}
.modal.open,.modal-backdrop.open{display:flex}
.modal .box{background:#fff;border:1px solid #e5e7eb;border-radius:16px;max-width:520px;width:92%;padding:20px;box-shadow:0 20px 40px rgba(0,0,0,.18)}
.modal .box h3{margin:0 0 8px;font-size:20px}
.modal .box p{margin:0 0 10px}
.modal .actions{justify-content:flex-end}
.modal .close{border:none;background:transparent;cursor:pointer;font-weight:700}

/* --- SEO prose + FAQ --- */
.prose p{max-width:70ch}
.prose ul{padding-left:20px}
.prose .cta-note{border:1px dashed #e5e7eb;border-radius:12px;padding:12px;margin:12px 0;background:#f8fafc}
.faq details{border:1px solid #e5e7eb;border-radius:12px;padding:10px;margin:8px 0;background:#fff}
.faq summary{cursor:pointer;font-weight:600;outline:none}
.faq details[open]{box-shadow:0 6px 18px rgba(0,0,0,.06)}

/* --- Hamburger ALWAYS visible --- */
.hamburger {
  display: block;
  position: relative;
  width: 40px;
  height: 40px;
  border: none;
  background: transparent;
  cursor: pointer;
  margin-left: auto;
}
.hamburger span {
  position: absolute;
  left: 8px;
  right: 8px;
  height: 2px;
  background: currentColor;
  transition: transform .2s, opacity .2s;
}
.hamburger span:nth-child(1) { top: 12px; }
.hamburger span:nth-child(2) { top: 19px; }
.hamburger span:nth-child(3) { top: 26px; }

.site-header .container { position: relative; }
.site-header .nav {
  display: none;
  flex-direction: column;
  position: absolute;
  top: 56px;
  right: 0;
  left: 0;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  margin: 0 12px;
  padding: 12px;
  box-shadow: 0 8px 24px rgba(0,0,0,.08);
  z-index: 40;
}
.site-header .nav.open { display: flex; }
body.nav-open { overflow: hidden; }

/* --- Scroll to top --- */
#scrollTopBtn {
  position: fixed;
  bottom: 24px;
  right: 24px;
  width: 44px;
  height: 44px;
  border: none;
  border-radius: 50%;
  background: #2563eb;
  color: #fff;
  font-size: 20px;
  cursor: pointer;
  box-shadow: 0 4px 10px rgba(0,0,0,.2);
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s ease, transform .2s;
  z-index: 50;
}
#scrollTopBtn.show { opacity: 1; pointer-events: auto; }
#scrollTopBtn:active { transform: translateY(1px); }


