.lch-chat {
--lch-chat-ink: #1f1c18;
--lch-chat-muted: #6b6560;
--lch-chat-accent: #C39D7A;
--lch-chat-cream: #f7f2ea;
--lch-chat-panel: #ffffff;
}
.lch-chat__launcher {
position: fixed;
left: clamp(1rem, 3vw, 2.25rem);
bottom: clamp(5.25rem, 10vw, 6.5rem);
z-index: 9999;
width: 3.85rem;
height: 3.85rem;
padding: 0;
border: 1px solid rgba(195, 157, 122, 0.55);
border-radius: 999px;
background: linear-gradient(160deg, #f7f2ea 0%, #ebe3d4 100%);
color: #2a2118;
cursor: pointer;
display: grid;
place-items: center;
overflow: visible;
box-shadow: 0 10px 26px rgba(31, 28, 24, 0.2);
isolation: isolate;
transition: transform 0.3s ease, box-shadow 0.3s ease, background 0.3s ease;
}
.lch-chat__launcher:hover,
.lch-chat__launcher:focus-visible {
transform: scale(1.06);
box-shadow: 0 14px 32px rgba(31, 28, 24, 0.26);
background: linear-gradient(160deg, #faf6ef 0%, #e8dcc8 100%);
outline: none;
}
.lch-chat__launcher[aria-expanded="true"] {
transform: scale(0.96);
background: linear-gradient(160deg, #C39D7A 0%, #b48d6a 100%);
color: #fff;
border-color: transparent;
}
.lch-chat__pulse {
position: absolute;
inset: -6px;
border-radius: inherit;
border: 1px solid rgba(195, 157, 122, 0.45);
animation: lch-chat-pulse 2.4s ease-in-out infinite;
pointer-events: none;
z-index: 0;
}
.lch-chat__glyph {
position: relative;
z-index: 1;
display: grid;
place-items: center;
line-height: 0;
}
.lch-chat__glyph svg {
display: block;
overflow: visible;
}
.lch-chat__bubble {
fill: currentColor;
}
.lch-chat__bubble--back {
opacity: 0.32;
}
@keyframes lch-chat-pulse {
0%,
100% {
transform: scale(1);
opacity: 0.7;
box-shadow: 0 0 0 0 rgba(195, 157, 122, 0.35);
}
50% {
transform: scale(1.08);
opacity: 0;
box-shadow: 0 0 0 12px rgba(195, 157, 122, 0);
}
}
.lch-chat__panel {
position: fixed;
left: clamp(1rem, 3vw, 2.25rem);
bottom: clamp(10.5rem, 16vw, 12rem);
z-index: 9998;
width: min(32rem, calc(100vw - 2rem));
max-height: min(78vh, 42rem);
display: flex;
flex-direction: column;
background: var(--lch-chat-panel);
color: var(--lch-chat-ink);
border-radius: 1.1rem;
box-shadow: 0 22px 60px rgba(20, 16, 12, 0.28);
overflow: hidden;
font-family: "Outfit", system-ui, sans-serif;
transform-origin: left bottom;
animation: lch-chat-open 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}
.lch-chat__panel[hidden] {
display: none !important;
}
@keyframes lch-chat-open {
from {
opacity: 0;
transform: translateY(12px) scale(0.96);
}
to {
opacity: 1;
transform: translateY(0) scale(1);
}
}
.lch-chat__header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 0.75rem;
padding: 1rem 1rem 0.9rem;
background: linear-gradient(135deg, #2a2118 0%, #3d3228 100%);
color: #fff;
}
.lch-chat__brand {
display: flex;
align-items: center;
gap: 0.75rem;
min-width: 0;
}
.lch-chat__brand-icon {
width: 2.75rem;
height: 2.75rem;
border-radius: 999px;
background: #ebe4d8;
object-fit: cover;
object-position: center;
box-sizing: border-box;
}
.lch-chat__subtitle {
margin: 0;
font-size: 0.72rem;
letter-spacing: 0.12em;
text-transform: uppercase;
opacity: 0.75;
}
.lch-chat__title,
.wpcursor-component.lch-chat .lch-chat__title,
.lch-chat h2.lch-chat__title {
margin: 0.15rem 0 0 !important;
font-family: "Cormorant Garamond", Georgia, serif !important;
font-weight: 500 !important;
font-size: 1.35rem !important;
line-height: 1.2 !important;
color: #fff !important;
text-transform: none !important;
}
.lch-chat__close {
flex-shrink: 0;
width: 2.25rem;
height: 2.25rem;
border: 0;
border-radius: 999px;
background: rgba(255, 255, 255, 0.12);
color: #fff;
cursor: pointer;
display: grid;
place-items: center;
transition: background 0.25s ease;
}
.lch-chat__close:hover,
.lch-chat__close:focus-visible {
background: rgba(255, 255, 255, 0.22);
outline: none;
}
.lch-chat__body {
flex: 1 1 auto;
overflow-y: auto;
padding: 1.15rem 1.1rem;
background: var(--lch-chat-cream);
display: flex;
flex-direction: column;
gap: 0.85rem;
min-height: 12rem;
}
.lch-chat__bubble {
max-width: 92%;
padding: 0.85rem 1rem;
border-radius: 1rem;
font-size: 0.95rem;
line-height: 1.55;
font-weight: 300;
}
.lch-chat__bubble--bot {
align-self: flex-start;
background: #fff;
color: var(--lch-chat-ink);
border-bottom-left-radius: 0.3rem;
box-shadow: 0 4px 14px rgba(0, 0, 0, 0.06);
}
.lch-chat__bubble--user {
align-self: flex-end;
background: var(--lch-chat-accent);
color: #fff;
border-bottom-right-radius: 0.3rem;
}
.lch-chat__note {
margin: 0.25rem 0 0;
font-size: 0.78rem;
line-height: 1.45;
color: var(--lch-chat-muted);
font-style: italic;
}
.lch-chat__form {
padding: 0.85rem 1rem 1rem;
background: #fff;
border-top: 1px solid rgba(31, 28, 24, 0.08);
display: flex;
flex-direction: column;
gap: 0.65rem;
}
.lch-chat__input {
width: 100%;
resize: none;
border: 1px solid rgba(31, 28, 24, 0.14);
border-radius: 0.75rem;
padding: 0.75rem 0.85rem;
font: inherit;
font-size: 0.92rem;
line-height: 1.45;
color: var(--lch-chat-ink);
background: #faf8f5;
box-sizing: border-box;
}
.lch-chat__input:focus {
outline: none;
border-color: var(--lch-chat-accent);
background: #fff;
}
.lch-chat__actions {
display: flex;
align-items: center;
justify-content: space-between;
gap: 0.75rem;
}
.lch-chat__link {
font-size: 0.8rem;
color: var(--lch-chat-muted) !important;
text-decoration: underline;
text-underline-offset: 0.15em;
}
.lch-chat__link:hover,
.lch-chat__link:focus-visible {
color: var(--lch-chat-ink) !important;
}
.lch-chat__send {
border: 0;
border-radius: 999px;
padding: 0.7rem 1.25rem;
background: var(--lch-chat-ink);
color: #fff;
font: inherit;
font-size: 0.82rem;
font-weight: 500;
letter-spacing: 0.06em;
text-transform: uppercase;
cursor: pointer;
transition: background 0.25s ease;
}
.lch-chat__send:hover,
.lch-chat__send:focus-visible {
background: var(--lch-chat-accent);
outline: none;
}
.lch-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;
} html.lch-footer-active .lch-back-top {
bottom: clamp(1.1rem, 2.5vw, 1.75rem);
}
@media (max-width: 560px) {
.lch-chat__launcher {
width: 3.75rem;
height: 3.75rem;
bottom: clamp(4.75rem, 12vw, 5.75rem);
}
.lch-chat__panel {
left: 0.75rem;
right: 0.75rem;
width: auto;
bottom: clamp(9.5rem, 18vw, 11rem);
max-height: min(68vh, 32rem);
}
}
@media (prefers-reduced-motion: reduce) {
.lch-chat__pulse {
animation: none;
}
.lch-chat__panel,
.lch-chat__launcher {
animation: none;
transition: none;
}
}