/* The VIP host chat (vip-chat.js). Venue colors come from refinements.css (--rf-*). */
.vip-chat-launch{display:inline-flex;align-items:center;gap:9px;min-height:44px;padding:0 14px;margin-left:auto;background:transparent;color:inherit;border:1px solid var(--rf-line,#555);border-radius:2px;font:600 13px/1 var(--body,inherit);letter-spacing:.04em;white-space:nowrap}
.vip-chat-launch:hover{border-color:var(--rf-brand,#c3ae7f)}
.vip-chat-launch:focus-visible{outline:2px solid var(--rf-brand,#c3ae7f);outline-offset:3px}
/* Bottom-right corner, clear of the centred reservation dock. Hidden while the booking card is open,
   which hides the dock too. */
.vip-chat-launch{position:fixed;right:24px;bottom:max(24px,env(safe-area-inset-bottom));z-index:26;background:rgba(0,0,0,.2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;border-color:#ffffff55}
/* Same see-through fill as the dock; over a light ground (vip-chat.js sets .on-light) the text turns dark. */
.vip-chat-launch.on-light{color:#1b1f24;border-color:#1b1f2455}
html.card-reservation-open .vip-chat-launch{display:none}
.vip-chat-dot{width:8px;height:8px;border-radius:50%;background:var(--rf-brand,#c3ae7f);box-shadow:0 0 0 3px #ffffff1a}
.vip-chat{position:fixed;right:16px;bottom:calc(max(16px,env(safe-area-inset-bottom)) + 84px);z-index:40;width:min(390px,calc(100% - 32px));height:min(560px,calc(100svh - 150px));display:flex;flex-direction:column;background:var(--rf-deep,#101419);color:#f4f1ea;border:1px solid var(--rf-line,#555);box-shadow:0 18px 50px #0007;font:15px/1.5 var(--body,inherit)}
.vip-chat[hidden]{display:none}
.vip-chat-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 16px 12px 18px;border-bottom:1px solid #ffffff22}
.vip-chat-name{font:22px/1.2 var(--rf-display,Georgia,serif);color:#fff}
.vip-chat-note{font-size:12px;color:#ffffffb3;margin-top:3px}
.vip-chat-close{min-height:44px;padding:0 6px;background:none;border:0;color:#fff;font-size:13px;letter-spacing:.04em}
.vip-chat-close:focus-visible,.vip-chat-chips button:focus-visible,.vip-chat-send:focus-visible,.vip-chat-pay:focus-visible{outline:2px solid var(--rf-brand,#c3ae7f);outline-offset:2px}
.vip-chat-log{flex:1;overflow-y:auto;padding:16px 18px;display:flex;flex-direction:column;gap:10px;overscroll-behavior:contain}
.vip-chat-msg{max-width:85%;padding:10px 13px;border-radius:14px;font-size:15px;line-height:1.45;overflow-wrap:anywhere;white-space:pre-line}
.vip-chat-msg.is-bot{align-self:flex-start;background:#ffffff14;border-bottom-left-radius:4px}
.vip-chat-msg.is-me{align-self:flex-end;background:var(--rf-brand,#c3ae7f);color:var(--rf-brand-ink,#111);border-bottom-right-radius:4px}
.vip-chat-msg.typing{color:#ffffffb3;font-style:italic}
.vip-chat-msg a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.vip-chat-pay{align-self:flex-start;display:inline-flex;align-items:center;min-height:44px;padding:0 16px;background:var(--rf-brand,#c3ae7f);color:var(--rf-brand-ink,#111);font-weight:600;border-radius:2px}
.vip-chat-chips{display:flex;flex-wrap:wrap;gap:8px;padding:0 18px}
.vip-chat-chips:empty{display:none}
.vip-chat-chips button{min-height:44px;padding:0 14px;background:transparent;color:#fff;border:1px solid #ffffff40;border-radius:22px;font-size:13px}
.vip-chat-chips button:hover{border-color:var(--rf-brand,#c3ae7f)}
.vip-chat-form{display:flex;gap:8px;padding:12px 16px 6px}
.vip-chat-form input{flex:1;min-width:0;min-height:44px;padding:0 12px;background:#ffffff10;color:#fff;border:1px solid #ffffff33;border-radius:2px;font-size:16px}
.vip-chat-form input::placeholder{color:#ffffff99}
.vip-chat-form input:focus-visible{outline:2px solid var(--rf-brand,#c3ae7f);outline-offset:1px}
.vip-chat-send{min-height:44px;padding:0 16px;background:var(--rf-brand,#c3ae7f);color:var(--rf-brand-ink,#111);border:0;border-radius:2px;font-weight:600}
.vip-chat-send:disabled{opacity:.6}
.vip-chat-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.vip-chat-foot{padding:4px 18px 14px;font-size:12px;color:#ffffffb3}
.vip-chat-foot a{color:#fff;text-decoration:underline;text-underline-offset:2px}
/* Up to 960px the dock is 580px wide or spans the screen, so the button sits just above it, still on the right. */
@media(max-width:960px){
  .vip-chat-launch{right:14px;bottom:calc(max(10px,env(safe-area-inset-bottom)) + 84px)}
  .vip-chat{bottom:calc(max(10px,env(safe-area-inset-bottom)) + 140px);height:min(560px,calc(100svh - 200px))}
}
@media(max-width:700px){
  .vip-chat{right:10px;width:calc(100% - 20px)}
}
/* "Ask a host" never sits on what the guest is reading or filling in (design panel 2026-10-29: on
   phones it covered headings and the inquiry's Continue button). It steps aside with the booking bar
   while the guest scrolls down on a phone, and on any screen while the event form is in use. */
.vip-chat-launch{transition:opacity .28s cubic-bezier(.16,1,.3,1),transform .28s cubic-bezier(.16,1,.3,1),visibility .28s}
html[data-venue]:has(.guided-inquiry:focus-within) .vip-chat-launch{opacity:0;visibility:hidden;pointer-events:none}
@media(max-width:700px){html[data-venue]:has(.reservation-dock.is-tucked) .vip-chat-launch:not([aria-expanded=true]){opacity:0;visibility:hidden;transform:translateY(12px);pointer-events:none}}
@media(prefers-reduced-motion:reduce){.vip-chat-launch{transition:none}}
