:root{
  --ink:#2b2730;
  --ink-soft:#5b5560;
  --plum:#6b4c7a;
  --plum-deep:#4a3358;
  --plum-tint:#f2ecf4;
  --steel:#5f6b73;
  --steel-deep:#42505a;
  --steel-tint:#eef1f2;
  --ivory:#faf7f3;
  --card:#ffffff;
  --sand-line:#e8e1da;
  --amber:#b9702f;
  --amber-tint:#faf1e6;
  --red:#a83f3f;
  --red-tint:#fbeeee;
  --green:#3d7a52;
  --green-tint:#eaf4ee;
  --radius:16px;
  --radius-sm:10px;
  --shadow:0 1px 2px rgba(43,39,48,.04), 0 8px 24px rgba(43,39,48,.06);
  --shadow-lift:0 2px 4px rgba(43,39,48,.06), 0 16px 40px rgba(43,39,48,.10);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; min-height:100vh;
  background:var(--ivory); color:var(--ink);
  font-family:'Manrope', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.display{ font-family:'Playfair Display', Georgia, 'Times New Roman', serif; font-weight:600; color:var(--ink); letter-spacing:-0.01em; margin:0 0 6px; }
p{margin:0 0 12px;}
a{color:var(--plum);}
button{font-family:inherit;}
:focus-visible{outline:2.5px solid var(--plum); outline-offset:2px; border-radius:4px;}

.wrap{max-width:760px; margin:0 auto; padding:0 18px;}

header.top{ position:sticky; top:0; z-index:20; background:rgba(250,247,243,.92); backdrop-filter:blur(8px); border-bottom:1px solid var(--sand-line); }
.top-inner{ display:flex; align-items:center; justify-content:space-between; padding:14px 18px; max-width:760px; margin:0 auto; gap:12px; }
.brand{display:flex; flex-direction:column; line-height:1.2; text-decoration:none;}
.brand strong{font-family:'Playfair Display',serif; font-size:16px; color:var(--ink);}
.brand span{font-size:12px; color:var(--ink-soft);}
.top-actions a, .top-actions button.linklike{ font-size:13.5px; font-weight:700; color:var(--plum); background:none; border:none; cursor:pointer; text-decoration:none; padding:6px 4px; }

main{padding:28px 0 60px;}

.card{ background:var(--card); border:1px solid var(--sand-line); border-radius:var(--radius); box-shadow:var(--shadow); padding:28px; margin-bottom:18px; }
@media (max-width:480px){ .card{padding:20px 16px; border-radius:14px;} }

.eyebrow{ display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--plum); background:var(--plum-tint); padding:5px 12px; border-radius:999px; margin-bottom:14px; }

.progress{ display:flex; gap:6px; margin-bottom:22px; }
.progress span{ height:4px; flex:1; border-radius:4px; background:var(--sand-line); }
.progress span.done{background:var(--plum);}
.progress span.active{background:var(--plum); opacity:.5;}

.choice-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:8px; }
@media (max-width:520px){ .choice-grid{grid-template-columns:1fr;} }
.choice-card{
  display:flex; flex-direction:column; align-items:flex-start; gap:6px; text-align:left;
  border:1.5px solid var(--sand-line); background:var(--card); border-radius:var(--radius);
  padding:20px; cursor:pointer; transition:border-color .15s, transform .15s, box-shadow .15s;
  font-family:inherit; width:100%;
}
.choice-card:hover{border-color:var(--plum); box-shadow:var(--shadow-lift); transform:translateY(-1px);}
.choice-card .ic{font-size:26px;}
.choice-card strong{font-size:16px; font-family:'Playfair Display',serif; font-weight:600;}
.choice-card small{color:var(--ink-soft); font-size:13px;}

.field{margin-bottom:16px;}
.field label{display:block; font-size:13.5px; font-weight:700; margin-bottom:6px; color:var(--ink);}
.field .hint{font-size:12.5px; color:var(--ink-soft); margin-top:4px;}
input[type=text], input[type=email], input[type=tel], input[type=number], input[type=password], input[type=date], select, textarea{
  width:100%; padding:11px 13px; border:1.5px solid var(--sand-line); border-radius:var(--radius-sm);
  font-size:15px; font-family:inherit; background:#fff; color:var(--ink);
}
input:focus, select:focus, textarea:focus{border-color:var(--plum);}
.row2{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
@media (max-width:480px){ .row2{grid-template-columns:1fr;} }

.chips{display:flex; flex-wrap:wrap; gap:8px;}
.chip-toggle{
  border:1.5px solid var(--sand-line); background:#fff; border-radius:999px; padding:8px 16px;
  font-size:13.5px; font-weight:700; cursor:pointer; color:var(--ink-soft);
}
.chip-toggle.on{ background:var(--plum); border-color:var(--plum); color:#fff; }

.stepper{display:flex; align-items:center; gap:14px;}
.stepper button{ width:40px; height:40px; border-radius:999px; border:1.5px solid var(--sand-line); background:#fff; font-size:18px; font-weight:700; cursor:pointer; color:var(--plum); }
.stepper .n{font-size:20px; font-weight:700; min-width:28px; text-align:center;}

.btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:12px 22px; border-radius:999px; font-weight:700; font-size:14.5px; text-decoration:none; border:none; cursor:pointer; transition:transform .15s, box-shadow .15s, background .15s; }
.btn-primary{background:var(--plum); color:#fff; box-shadow:var(--shadow);}
.btn-primary:hover{background:var(--plum-deep); transform:translateY(-1px); box-shadow:var(--shadow-lift);}
.btn-primary:disabled{opacity:.5; cursor:not-allowed; transform:none;}
.btn-ghost{background:transparent; color:var(--plum); border:1.5px solid var(--plum);}
.btn-ghost:hover{background:var(--plum-tint);}
.btn-block{width:100%;}
.btn-row{display:flex; gap:12px; margin-top:22px; flex-wrap:wrap;}
.back-link{ background:none; border:none; color:var(--ink-soft); font-weight:700; font-size:13.5px; cursor:pointer; padding:6px 0; margin-bottom:4px; display:inline-flex; align-items:center; gap:4px; }

.slot-list{display:flex; flex-direction:column; gap:10px; margin-top:6px;}
.slot-item{
  display:flex; align-items:center; justify-content:space-between; border:1.5px solid var(--sand-line);
  border-radius:var(--radius-sm); padding:14px 16px; cursor:pointer; background:#fff;
}
.slot-item:hover{border-color:var(--plum); background:var(--plum-tint);}
.slot-item.sel{border-color:var(--plum); background:var(--plum-tint);}
.slot-item .datum{font-weight:700;}
.slot-item .cas{font-family:'Playfair Display',serif; font-size:18px; color:var(--plum-deep);}

.alert{ display:flex; gap:12px; align-items:flex-start; border-radius:var(--radius); padding:16px 18px; margin:0 0 18px; }
.alert.amber{background:var(--amber-tint); border:1px solid #ecd8b8;}
.alert.red{background:var(--red-tint); border:1px solid #e3c3c3;}
.alert.green{background:var(--green-tint); border:1px solid #c7ddce;}
.alert.plum{background:var(--plum-tint); border:1px solid #ddc9e3;}
.alert strong{display:block; margin-bottom:2px; font-size:14.5px;}
.alert p{margin:0; font-size:14px; color:var(--ink-soft);}

.status-badge{ display:inline-block; font-size:11.5px; font-weight:700; padding:4px 10px; border-radius:999px; text-transform:uppercase; letter-spacing:.03em; }
.status-badge.ceka{background:var(--amber-tint); color:var(--amber);}
.status-badge.potvrzeno{background:var(--green-tint); color:var(--green);}
.status-badge.zamitnuto{background:var(--red-tint); color:var(--red);}
.status-badge.nove{background:var(--red-tint); color:var(--red);}
.status-badge.reseno{background:var(--green-tint); color:var(--green);}

.list-item{border:1px solid var(--sand-line); border-radius:var(--radius-sm); padding:14px 16px; margin-bottom:10px; background:#fff;}
.list-item .top-row{display:flex; justify-content:space-between; align-items:flex-start; gap:10px; margin-bottom:4px;}
.list-item .muted{color:var(--ink-soft); font-size:13px;}

.tabs{display:flex; gap:8px; margin-bottom:18px; border-bottom:1px solid var(--sand-line);}
.tabs button{ background:none; border:none; padding:10px 4px; margin-right:18px; font-weight:700; font-size:14.5px; color:var(--ink-soft); cursor:pointer; border-bottom:2.5px solid transparent; }
.tabs button.active{color:var(--plum); border-color:var(--plum);}

.center-note{text-align:center; color:var(--ink-soft); font-size:13.5px; margin-top:14px;}
.link-btn{background:none; border:none; color:var(--plum); font-weight:700; cursor:pointer; padding:0; font-size:inherit; text-decoration:underline;}

footer.note-footer{ max-width:760px; margin:0 auto 40px; padding:0 18px; text-align:center; color:var(--ink-soft); font-size:12.5px; }

/* ===== kolo 51 — nový průvodce objednáním ===== */
.muted{color:var(--ink-soft);}
.card.slim{padding:18px 22px;}
.card.narrow{max-width:520px; margin-left:auto; margin-right:auto;}
.card.center, .center{text-align:center;}
.btn-row.center{justify-content:center;}
.btn-row.tight{margin-top:10px;}
.btn.small{padding:8px 16px; font-size:13.5px;}
.btn-danger{background:var(--red); color:#fff;}
.btn-danger:hover{background:#8e3333;}
.link-btn.danger{color:var(--red); font-size:13.5px; margin-top:6px;}
.big-ic{font-size:40px; margin-bottom:6px;}
.crumbs{display:flex; flex-wrap:wrap; align-items:center; gap:6px; font-size:12.5px; font-weight:700; color:var(--plum); margin:2px 0 12px;}
.crumbs span{color:var(--ink-soft); font-weight:400;}
.choice-card.urgent:hover{border-color:var(--red);}
.chip-toggle small{display:block; font-size:11px; font-weight:600; opacity:.75;}
.osoby-list{display:flex; flex-direction:column; gap:10px; margin:6px 0 14px;}
.osoba-row{display:flex; align-items:center; gap:10px;}
.osoba-n{width:22px; color:var(--ink-soft); font-weight:700; text-align:right;}
.icon-btn{border:1.5px solid var(--sand-line); background:#fff; border-radius:999px; width:36px; height:36px; flex:0 0 36px; cursor:pointer; color:var(--ink-soft);}
.icon-btn:hover{border-color:var(--red); color:var(--red);}
.days{display:flex; flex-direction:column; gap:16px; margin-top:8px;}
.day-name{font-weight:800; font-size:14px; margin-bottom:8px;}
.day-name::first-letter{text-transform:uppercase;}
.time-grid{display:flex; flex-wrap:wrap; gap:8px;}
.time-btn{border:1.5px solid var(--sand-line); background:#fff; border-radius:var(--radius-sm); padding:9px 14px; min-width:74px; font-size:15px; font-weight:700; color:var(--plum-deep); cursor:pointer; font-family:inherit;}
.time-btn:hover{border-color:var(--plum); background:var(--plum-tint);}
.time-btn.sel{background:var(--plum); border-color:var(--plum); color:#fff;}
.summary{background:var(--plum-tint); border-radius:var(--radius-sm); padding:14px 16px; margin:10px 0 16px;}
.summary-typ{font-size:13px; font-weight:700; color:var(--plum);}
.summary-kdy{font-family:'Playfair Display',serif; font-size:19px; color:var(--ink); margin:2px 0;}
.summary-kdy::first-letter{text-transform:uppercase;}
.check{display:flex; gap:10px; align-items:flex-start; font-size:13.5px; margin:4px 0 6px; cursor:pointer;}
.check input{margin-top:3px; width:18px; height:18px; flex:0 0 18px;}
.hp{position:absolute; left:-9999px; width:1px; height:1px; opacity:0;}
h3.sec{font-family:'Playfair Display',serif; font-size:18px; margin:22px 0 10px;}
.switch{display:flex; gap:10px; align-items:center; font-weight:700; cursor:pointer;}
.switch input{width:20px; height:20px;}
.alert a{color:inherit; font-weight:700;}

.top-actions{display:flex; gap:10px; white-space:nowrap;}

/* ročník narození (kolo 52) */
.row-jr{display:grid; grid-template-columns:1fr 150px; gap:12px;}
@media (max-width:480px){ .row-jr{grid-template-columns:1fr 110px;} }
.osoba-row input.rocnik{width:96px; flex:0 0 96px;}

/* kolo 61 — ochrana osobních údajů, zrušení účtu */
.gdpr h3{font-size:17px; margin:20px 0 6px;}
.gdpr p, .gdpr li{font-size:14.5px; color:var(--ink-soft);}
.gdpr ul{padding-left:20px; margin:0 0 12px;}
.gdpr-note{font-size:12.5px; color:var(--ink-soft); margin-top:10px;}
.card.danger-zone{border-color:#e3c3c3;}
