/* C22 Leads Toolkit — chat. Cor via --c22lt-chat; camada via --c22lt-z (abaixo dos avisos de cookies). */
.c22lt-chat { --c22lt-chat: #006eb6; --c22lt-z: 9000; font-family: inherit; color: #2c2c2c; }
.c22lt-chat [hidden] { display: none !important; }
.c22lt-chat button { font: inherit; white-space: normal; } /* temas como o Hello aplicam nowrap em botões */

.c22lt-chat-launcher { position: fixed; bottom: 20px; z-index: var(--c22lt-z); display: flex; align-items: flex-end; gap: 12px; }
.c22lt-chat--left .c22lt-chat-launcher { left: 20px; flex-direction: row-reverse; }
.c22lt-chat--right .c22lt-chat-launcher { right: 20px; }
.c22lt-chat .c22lt-chat-bubble, .c22lt-chat .c22lt-chat-bubble:hover, .c22lt-chat .c22lt-chat-bubble:focus {
    position: relative; width: 64px; height: 64px; padding: 0; border: 3px solid #fff; border-radius: 50%; background: var(--c22lt-chat); cursor: pointer;
    box-shadow: 0 6px 20px rgba(0, 0, 0, .2); flex: none;
}
.c22lt-ava { display: block; overflow: hidden; border-radius: 50%; background: #e8ecf0; }
.c22lt-ava img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: var(--c22lt-avatar-pos, 50% 20%);
    transform: scale(var(--c22lt-avatar-zoom, 1)); transform-origin: var(--c22lt-avatar-pos, 50% 20%); }
.c22lt-chat-avatar { width: 100%; height: 100%; }
.c22lt-chat-avatar--empty { display: flex; align-items: center; justify-content: center; color: #fff; font-weight: 700; font-size: 22px; background: var(--c22lt-chat); }
.c22lt-chat-dot { position: absolute; right: 0; bottom: 2px; width: 14px; height: 14px; border: 2px solid #fff; border-radius: 50%; background: #2ecc40; }
.c22lt-chat-callout { position: relative; max-width: 260px; padding: 12px 30px 12px 16px; border-radius: 12px; background: #fff; box-shadow: 0 6px 24px rgba(0, 0, 0, .14); margin-bottom: 10px; }
.c22lt-chat .c22lt-chat-callout-text, .c22lt-chat .c22lt-chat-callout-text:hover, .c22lt-chat .c22lt-chat-callout-text:focus {
    padding: 0; border: 0; background: none; color: #2c2c2c; text-align: left; font-size: 15px; line-height: 1.4; cursor: pointer;
}
.c22lt-chat .c22lt-chat-callout-close, .c22lt-chat .c22lt-chat-callout-close:hover, .c22lt-chat .c22lt-chat-callout-close:focus {
    position: absolute; top: 4px; right: 6px; width: 22px; height: 22px; padding: 0; border: 0; background: none; color: #8c8f94; font-size: 18px; line-height: 1; cursor: pointer;
}

.c22lt-chat-window {
    position: fixed; bottom: 96px; z-index: calc(var(--c22lt-z) + 2); width: min(380px, calc(100vw - 32px)); height: min(560px, calc(100vh - 120px));
    display: flex; flex-direction: column; overflow: hidden; border-radius: 16px; background: #fff; box-shadow: 0 18px 50px rgba(0, 0, 0, .25);
}
.c22lt-chat--left .c22lt-chat-window { left: 20px; }
.c22lt-chat--right .c22lt-chat-window { right: 20px; }
.c22lt-chat-head { display: flex; align-items: center; gap: 12px; padding: 14px 16px; background: var(--c22lt-chat); color: #fff; }
.c22lt-chat-head-avatar { width: 46px; height: 46px; border: 2px solid rgba(255, 255, 255, .7); flex: none; }
.c22lt-chat-head-text { display: flex; flex-direction: column; line-height: 1.3; min-width: 0; }
.c22lt-chat-head-text strong { font-size: 16px; }
.c22lt-chat-head-text span { font-size: 13px; opacity: .9; }
.c22lt-chat .c22lt-chat-close, .c22lt-chat .c22lt-chat-close:hover, .c22lt-chat .c22lt-chat-close:focus {
    margin-left: auto; width: 34px; height: 34px; padding: 0; border: 2px solid rgba(255, 255, 255, .8); border-radius: 50%; background: transparent; color: #fff; font-size: 20px; line-height: 1; cursor: pointer;
}
.c22lt-chat-list { flex: 1; overflow-y: auto; padding: 16px 14px 8px; background: #fff; }
.c22lt-chat-track { display: flex; flex-direction: column; gap: 10px; }
.c22lt-chat-row { display: flex; align-items: flex-end; gap: 8px; }
.c22lt-chat-row--user { justify-content: flex-end; }
.c22lt-chat-row-avatar { width: 30px; height: 30px; flex: none; }
.c22lt-chat-msg { max-width: 82%; padding: 10px 14px; border-radius: 16px; font-size: 15px; line-height: 1.45; word-wrap: break-word; }
.c22lt-chat-row--bot .c22lt-chat-msg { background: #f0f1f3; border-bottom-left-radius: 4px; }
.c22lt-chat-row--user .c22lt-chat-msg { background: var(--c22lt-chat); color: #fff; border-bottom-right-radius: 4px; }
.c22lt-typing { display: inline-flex; gap: 4px; padding: 4px 0; }
.c22lt-typing i { width: 7px; height: 7px; border-radius: 50%; background: #8c8f94; animation: c22lt-dot 1s infinite ease-in-out; }
.c22lt-typing i:nth-child(2) { animation-delay: .15s; } .c22lt-typing i:nth-child(3) { animation-delay: .3s; }
@keyframes c22lt-dot { 0%, 80%, 100% { opacity: .3; transform: translateY(0); } 40% { opacity: 1; transform: translateY(-3px); } }
@media (prefers-reduced-motion: reduce) { .c22lt-typing i { animation: none; } }

.c22lt-chat-input { padding: 10px 14px 14px; border-top: 1px solid #eef0f2; display: flex; flex-direction: column; gap: 8px; }
.c22lt-chat-input:empty { display: none; }
.c22lt-chat-form { display: flex; gap: 8px; }
.c22lt-chat .c22lt-chat-field { flex: 1; min-width: 0; height: 46px; padding: 0 14px; border: 1px solid #d5dbe3; border-radius: 23px; font: inherit; font-size: 16px; background: #fff; color: #2c2c2c; }
.c22lt-chat .c22lt-chat-field:focus { outline: 2px solid var(--c22lt-chat); outline-offset: 1px; border-color: transparent; }
.c22lt-chat .c22lt-chat-send, .c22lt-chat .c22lt-chat-send:hover, .c22lt-chat .c22lt-chat-send:focus {
    width: 46px; height: 46px; padding: 0; border: 0; border-radius: 50%; background: var(--c22lt-chat); color: #fff; font-size: 18px; cursor: pointer; flex: none;
}
.c22lt-chat .c22lt-chat-send:disabled { opacity: .35; cursor: not-allowed; }
.c22lt-chat-hint { font-size: 12px; color: #646970; min-height: 0; }
.c22lt-chat .c22lt-chat-suggest, .c22lt-chat .c22lt-chat-suggest:hover, .c22lt-chat .c22lt-chat-suggest:focus { padding: 0; border: 0; background: none; color: var(--c22lt-chat); text-decoration: underline; cursor: pointer; font-size: 13px; }
.c22lt-chat .c22lt-chat-skip, .c22lt-chat .c22lt-chat-skip:hover, .c22lt-chat .c22lt-chat-skip:focus { align-self: flex-start; padding: 0; border: 0; background: none; color: #646970; text-decoration: underline; cursor: pointer; font-size: 13px; }
.c22lt-chat-options { display: flex; flex-wrap: wrap; gap: 8px; }
.c22lt-chat .c22lt-chat-option, .c22lt-chat .c22lt-chat-option:focus {
    padding: 9px 14px; border: 1.5px solid var(--c22lt-chat); border-radius: 20px; background: #fff; color: var(--c22lt-chat); font-size: 14px; cursor: pointer;
}
.c22lt-chat .c22lt-chat-option:hover { background: var(--c22lt-chat); color: #fff; }
.c22lt-chat .c22lt-chat-start, .c22lt-chat .c22lt-chat-start:hover, .c22lt-chat .c22lt-chat-start:focus {
    align-self: flex-start; padding: 12px 22px; border: 0; border-radius: 26px; background: var(--c22lt-chat); color: #fff; font-size: 16px; font-weight: 600; cursor: pointer;
    box-shadow: 0 4px 12px rgba(0, 0, 0, .15);
}
.c22lt-chat-consent { margin: 0; font-size: 12px; color: #50575e; }
.c22lt-chat-consent a { color: var(--c22lt-chat); }
.c22lt-chat-wa, .c22lt-chat-wa:hover, .c22lt-chat-wa:focus {
    display: inline-flex; align-items: center; gap: 8px; align-self: flex-start; padding: 12px 20px; border-radius: 26px; background: #25d366; color: #fff !important;
    font-weight: 600; text-decoration: none !important;
}
.c22lt-chat .c22lt-chat-bubble:focus-visible, .c22lt-chat button:focus-visible, .c22lt-chat-wa:focus-visible { outline: 2px solid #1d2327; outline-offset: 2px; }

@media (max-width: 640px) {
    .c22lt-chat-callout { max-width: min(210px, calc(100vw - 186px)); font-size: 14px; } /* deixa espaço para o botão do WhatsApp do outro lado */
    .c22lt-chat-window { left: 16px !important; right: 16px !important; bottom: 16px; width: auto; height: calc(100vh - 32px); max-height: calc(100dvh - 32px); }
    .c22lt-chat.is-open .c22lt-chat-launcher { display: none; }
    .admin-bar .c22lt-chat-window { height: calc(100vh - 32px - 46px); max-height: calc(100dvh - 32px - 46px); } /* barra do WordPress (só logado) */
}
.c22lt-chat .screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
