/* Wanda's virtual receptionist — standalone stylesheet.
   The launcher renders sitewide (wp_footer), so its styles cannot live in
   the booking bundle (which only loads on /book/ via the self-contained
   shortcode boot — enqueuing that unregistered handle output nothing, the
   original cause of the unstyled bottom-left bubble). Self-sufficient:
   fonts and brand tokens declared here. */
#wandasChatFab, #wandasChatPanel{
  --plum:#2b1022; --plum-2:#3a1730; --magenta:#c01f86; --magenta-2:#b6309f;
  --cream:#f8f1ea; --paper:#fffaf5; --marigold:#e8a13a; --ink:#26121f; --ink-2:#6b5560;
  --ff-body:'Hanken Grotesk',system-ui,-apple-system,'Segoe UI',sans-serif;
  --ease:cubic-bezier(.3,.9,.3,1);
  font-family:var(--ff-body);
}
#wandasChatPanel *, #wandasChatPanel *::before, #wandasChatPanel *::after{ box-sizing:border-box; }

/* ============================================================
   AI RECEPTIONIST CHAT
   ============================================================ */
#wandasChatFab{position:fixed;right:22px;bottom:22px;z-index:80;width:64px;height:64px;border-radius:50%;border:0;cursor:pointer;
  background:linear-gradient(135deg,var(--magenta),var(--plum));color:#fff;box-shadow:0 14px 30px -10px rgba(182,48,159,.85);
  display:grid;place-items:center;transition:transform .25s var(--ease)}
#wandasChatFab:hover{transform:scale(1.08)}
#wandasChatFab:focus-visible{outline:3px solid var(--marigold);outline-offset:3px}
#wandasChatFab .badge{position:absolute;top:-2px;right:-2px;background:var(--marigold);color:#3a2406;font-size:.6rem;font-weight:800;
  width:20px;height:20px;border-radius:50%;display:grid;place-items:center}
#wandasChatPanel{position:fixed;right:22px;bottom:96px;z-index:81;width:min(380px,calc(100vw - 32px));height:min(560px,70vh);
  background:var(--paper);border:1px solid var(--line);border-radius:22px;box-shadow:0 30px 60px -20px rgba(20,4,16,.6);
  display:flex;flex-direction:column;overflow:hidden;transform-origin:bottom right;
  transform:scale(.9) translateY(10px);opacity:0;pointer-events:none;transition:.25s var(--ease)}
#wandasChatPanel.open{transform:none;opacity:1;pointer-events:auto}
.chat-head{background:linear-gradient(135deg,var(--plum-700),var(--plum-deep));color:#fff;padding:16px 18px;display:flex;align-items:center;gap:12px}
.chat-head .av{width:40px;height:40px;border-radius:50%;background:var(--magenta);display:grid;place-items:center;font-size:1.2rem}
.chat-head b{display:block;line-height:1.2}.chat-head small{opacity:.8;display:flex;align-items:center;gap:5px}
.chat-head .dot{width:7px;height:7px;border-radius:50%;background:#4ade80;display:inline-block}
.chat-head button{margin-left:auto;background:none;border:0;color:#fff;cursor:pointer;opacity:.8;padding:4px}
.chat-body{flex:1;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:10px;background:var(--cream)}
.msg{max-width:82%;padding:.7em .9em;border-radius:16px;font-size:.9rem;line-height:1.45;animation:msgIn .3s var(--ease)}
@keyframes msgIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.msg.bot{background:#fff;border:1px solid var(--line);align-self:flex-start;border-bottom-left-radius:5px}
.msg.user{background:var(--magenta);color:#fff;align-self:flex-end;border-bottom-right-radius:5px}
.msg.bot a{color:var(--magenta);font-weight:700}
.chips{display:flex;flex-wrap:wrap;gap:7px;padding:0 16px 6px}
.chip{background:#fff;border:1px solid var(--line);border-radius:var(--rad-pill);padding:.45em .9em;font-size:.78rem;cursor:pointer;transition:.15s}
.chip:hover{border-color:var(--magenta);background:rgba(182,48,159,.07)}
.typing{display:flex;gap:4px;padding:.8em .9em;background:#fff;border:1px solid var(--line);border-radius:16px;align-self:flex-start;width:fit-content}
.typing span{width:7px;height:7px;border-radius:50%;background:var(--ink-2);animation:blink 1.2s infinite}
.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}
@keyframes blink{0%,60%,100%{opacity:.25}30%{opacity:1}}
.chat-input{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line);background:var(--paper)}
.chat-input input{flex:1;border:1.5px solid var(--line);border-radius:var(--rad-pill);padding:.7em 1em;font:inherit}
.chat-input input:focus{outline:0;border-color:var(--magenta);box-shadow:0 0 0 3px rgba(182,48,159,.15)}
.chat-input button{width:44px;height:44px;border-radius:50%;border:0;background:var(--magenta);color:#fff;cursor:pointer;display:grid;place-items:center;flex:none}
.chat-input button:disabled{opacity:.4;cursor:not-allowed}

/* SMS consent (Details step) */
.wandas-booking-root .sms-consent{
  display:flex; align-items:flex-start; gap:.7rem; cursor:pointer;
  margin:.2rem 0 .4rem; padding:.85rem 1rem;
  background:rgba(192,31,134,.05); border:1.5px solid rgba(192,31,134,.18);
  border-radius:14px; transition:border-color .15s ease, background .15s ease;
}
.wandas-booking-root .sms-consent:hover{ border-color:rgba(192,31,134,.4); }
.wandas-booking-root .sms-consent:has(input:checked){
  background:rgba(192,31,134,.09); border-color:var(--magenta);
}
.wandas-booking-root .sms-consent input{
  width:20px; height:20px; margin-top:1px; flex:0 0 20px; accent-color:var(--magenta); cursor:pointer;
}
.wandas-booking-root .sms-consent span{ font-size:.95rem; line-height:1.4; color:var(--ink,#26121f); }
.wandas-booking-root .sms-consent small{ color:var(--ink-2,#806f78); font-size:.8rem; }


/* Focus + reduced motion (mirrors the booking bundle's a11y contract) */
#wandasChatPanel :is(.chip,button,input):focus-visible{ outline:3px solid var(--marigold); outline-offset:2px; }
#wandasChatFab:focus-visible{ outline:3px solid var(--marigold); outline-offset:3px; }
@media (prefers-reduced-motion:reduce){
  #wandasChatPanel *, #wandasChatFab{ animation:none !important; transition:none !important; }
}
