/* ACT-299: the "Chat with us" launcher. The design system's primary pill button (ink, hovers to ember), fixed bottom right.
   The cookie banner sits bottom left, so the two never meet. */
.act-chat { display: flex; flex-direction: column-reverse; align-items: flex-end; position: fixed; z-index: 70; right: 1.5rem; bottom: 1.5rem; }
.act-chat[hidden] { display: none; }
.act-chat-btn { height: 3rem; padding: 0 1.5rem; border: 0; border-radius: var(--act-radius-pill); background: var(--act-ink); color: var(--act-paper); font: inherit; font-size: 1rem; font-weight: 600; cursor: pointer; white-space: nowrap; transition: background .2s ease, color .2s ease; }
.act-chat-btn:hover { background: var(--act-ember); color: var(--act-ink); }
.act-chat-btn:focus-visible { outline: 2px solid var(--act-ember-text); outline-offset: 3px; }
.act-chat-btn[aria-busy="true"] { opacity: .7; cursor: progress; }
.act-chat-sr { position: absolute; width: .0625rem; height: .0625rem; margin: -.0625rem; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
/* the error line is spoken, and also shown, when the chat fails to load */
.act-chat [role=status]:not(:empty) { position: static; display: block; width: min(18rem, calc(100vw - 3rem)); height: auto; margin: 0 0 .5rem auto; padding: .75rem 1rem; clip: auto; overflow: visible; white-space: normal; background: var(--act-white); color: var(--act-ink); border-radius: var(--act-radius-card); box-shadow: 0 0 0 .0625rem var(--act-outline); font-size: var(--act-small); }
@media (max-width: 640px) { .act-chat { right: 1rem; bottom: 1rem; } .act-chat-btn { height: 2.75rem; } }
@media (prefers-reduced-motion: reduce) { .act-chat-btn { transition: none; } }
