/* Zeki assistant widget. Uses the site's own colour tokens, so it follows light and dark themes. */
.zc{position:fixed; right:20px; bottom:20px; z-index:110; font-family:var(--body); color:var(--ink)}
.zc-sr{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0)}

.zc-launch{display:flex; align-items:center; gap:10px; margin-left:auto; height:56px; padding:0 22px 0 16px;
  border:0; border-radius:999px; background:var(--btn-bg); color:var(--btn-fg); font:600 16px/1 var(--body);
  box-shadow:var(--shadow-lift); cursor:pointer; transition:transform .2s, background .2s}
.zc-launch:hover{background:var(--btn-bg-h); transform:translateY(-2px)}
.zc-launch:focus-visible{outline:3px solid var(--accent); outline-offset:3px}
.zc.is-open .zc-launch{display:none}

.zc-teaser{position:absolute; right:0; bottom:70px; width:max-content; max-width:260px; padding:12px 14px;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-m); box-shadow:var(--shadow-lift);
  font-size:15px; line-height:1.4; cursor:pointer; animation:zc-pop .35s ease-out}
.zc-teaser[hidden]{display:none}

.zc-panel{position:relative; display:none; flex-direction:column; width:min(400px, calc(100vw - 32px)); height:min(620px, calc(100vh - 40px));
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-l); box-shadow:var(--shadow-lift); overflow:hidden}
.zc.is-open .zc-panel{display:flex; animation:zc-pop .25s ease-out}

.zc-head{display:flex; align-items:center; gap:10px; padding:14px 14px 14px 16px; background:var(--band); color:var(--band-ink)}
.zc-avatar{width:34px; height:34px; flex:none; border-radius:50%; background:var(--accent);
  box-shadow:inset 0 0 0 9px var(--band), inset 0 0 0 11px var(--accent)}
.zc-title{display:flex; flex-direction:column; line-height:1.2; margin-right:auto}
.zc-title b{font:600 16px/1.2 var(--display)}
.zc-title small{font-size:12.5px; color:var(--band-muted)}
.zc-head-book{padding:8px 12px; border-radius:999px; background:var(--accent); color:#04201D; font-weight:700; font-size:13.5px; text-decoration:none; white-space:nowrap}
.zc-head-book:hover{filter:brightness(1.08)}
.zc-close{width:32px; height:32px; border:0; border-radius:50%; background:transparent; color:var(--band-ink); font-size:24px; line-height:1; cursor:pointer}
.zc-close:hover{background:var(--band-line)}

.zc-log{flex:1; overflow-y:auto; padding:16px; display:flex; flex-direction:column; gap:10px; background:var(--ground)}
.zc-msg{max-width:86%; padding:11px 14px; border-radius:16px; font-size:16px; line-height:1.5; white-space:pre-wrap; overflow-wrap:anywhere}
.zc-assistant{align-self:flex-start; background:var(--surface); border:1px solid var(--line); border-bottom-left-radius:4px}
.zc-user{align-self:flex-end; background:var(--btn-bg); color:var(--btn-fg); border-bottom-right-radius:4px}
.zc-msg a{color:var(--accent-deep); font-weight:600}
.zc-msg a.zc-book-link{display:inline-block; margin:4px 0; padding:7px 12px; border-radius:999px; background:var(--btn-bg); color:var(--btn-fg); text-decoration:none}
.zc-typing{display:flex; gap:5px; padding:14px}
.zc-typing i{width:7px; height:7px; border-radius:50%; background:var(--faint); animation:zc-dot 1s infinite}
.zc-typing i:nth-child(2){animation-delay:.15s} .zc-typing i:nth-child(3){animation-delay:.3s}

.zc-chips{display:flex; flex-wrap:wrap; gap:8px; padding:0 16px 12px; background:var(--ground)}
.zc-chips[hidden]{display:none}
.zc-chip{padding:8px 12px; border:1px solid var(--line-2); border-radius:999px; background:var(--surface); color:var(--ink);
  font:500 14px/1.2 var(--body); cursor:pointer; text-align:left}
.zc-chip:hover{border-color:var(--accent); color:var(--accent-deep)}

.zc-form{display:flex; gap:8px; align-items:flex-end; padding:12px; border-top:1px solid var(--line); background:var(--surface)}
.zc-form textarea{flex:1; resize:none; min-height:44px; max-height:120px; padding:11px 12px; border:1px solid var(--line-2); border-radius:12px;
  background:var(--ground); color:var(--ink); font:16px/1.4 var(--body)}
.zc-form textarea:focus{outline:2px solid var(--accent); border-color:transparent}
.zc-form button{width:44px; height:44px; flex:none; border:0; border-radius:12px; background:var(--btn-bg); color:var(--btn-fg); cursor:pointer; display:grid; place-items:center}
.zc-form button:disabled{opacity:.5; cursor:default}
.zc-note{margin:0; padding:0 12px 10px; background:var(--surface); font-size:12px; color:var(--muted)}
.zc-note a{color:inherit}

/* booking calendar inside the chat */
.zc-cal{position:absolute; inset:62px 0 0 0; display:flex; flex-direction:column; background:var(--surface); z-index:2}
.zc-cal[hidden]{display:none}
.zc-cal-bar{display:flex; justify-content:space-between; align-items:center; padding:8px 12px; border-bottom:1px solid var(--line)}
.zc-cal-back{border:0; background:transparent; color:var(--accent-deep); font:600 14px/1 var(--body); cursor:pointer; padding:6px 4px}
.zc-cal-ext{font-size:13px; color:var(--muted)}
.zc-cal-frame{flex:1; width:100%; border:0; background:#fff}

@keyframes zc-pop{from{opacity:0; transform:translateY(10px)}}
@keyframes zc-dot{0%,80%,100%{opacity:.3} 40%{opacity:1}}
@media (prefers-reduced-motion:reduce){.zc-panel,.zc-teaser,.zc-typing i{animation:none!important}}

@media (max-width:560px){
  .zc{right:12px; bottom:12px}
  .zc-launch{height:52px; padding:0 15px}
  .zc-launch span{display:none}
  .zc.is-open{inset:0; right:0; bottom:0}
  .zc-panel{width:100vw; height:100dvh; border-radius:0; border:0}
}
@media print{.zc{display:none}}
