:where(.fw-chat) { position:fixed; z-index:95; right:24px; bottom:calc(24px + env(safe-area-inset-bottom,0px)); font-family:Montserrat,sans-serif; line-height:1.6; }
:where(.fw-toggle) { position:relative; isolation:isolate; display:grid; place-items:center; width:58px; height:58px; padding:0; border:0; border-radius:50%; color:#fff; background:#456347; font-size:28px; box-shadow:0 5px 22px rgba(7,29,17,.22); cursor:pointer; transition:background .2s,box-shadow .2s,transform .2s; }
:where(.fw-toggle)::before { content:''; position:absolute; z-index:-1; inset:-5px; border-radius:inherit; pointer-events:none; box-shadow:0 0 18px 5px var(--fw-glow-color,#90a86b); opacity:var(--fw-glow-strength,.5); animation:fw-soft-glow 2.8s ease-out infinite; }
@keyframes fw-soft-glow { 0% { opacity:calc(var(--fw-glow-strength,.5) * .65); transform:scale(.96); } 35% { opacity:var(--fw-glow-strength,.5); transform:scale(1.08); } 100% { opacity:0; transform:scale(1.3); } }
:where(.fw-toggle svg) { width:1em; height:1em; fill:currentColor; }
:where(.fw-toggle:hover) { background:#2c4b32; box-shadow:0 8px 25px rgba(7,29,17,.3); transform:translateY(-2px); }
:where(.fw-toggle:focus-visible,.fw-close:focus-visible,.fw-send:focus-visible) { outline:2px solid #93a66b; outline-offset:4px; }
:where(.fw-panel) { position:absolute; right:0; bottom:calc(100% + 14px); width:350px; max-width:calc(100vw - 32px); max-height:calc(100dvh - 110px); overflow-y:auto; border:0; border-radius:14px; color:#274331; background:#fff; box-shadow:0 18px 60px rgba(5,27,14,.22); opacity:0; transform:translateY(12px) scale(.98); transform-origin:bottom right; transition:opacity .22s ease,transform .25s ease; }
:where(.fw-panel[hidden]) { display:none; }
:where(.fw-chat.is-open .fw-panel) { opacity:1; transform:none; }
:where(.fw-head) { display:flex; align-items:center; gap:12px; padding:22px 20px; color:#fff; background:#203b2c; }
:where(.fw-logo,.fw-logo-mark) { width:42px; height:42px; flex:0 0 42px; object-fit:contain; }
:where(.fw-logo-mark) { display:grid; place-items:center; border:1px solid rgba(255,255,255,.4); border-radius:50%; font-size:25px; }
:where(.fw-identity) { flex:1; min-width:0; }
:where(.fw-brand) { margin:0; color:inherit; font:600 14px/1.5 Montserrat,sans-serif; }
:where(.fw-subtitle) { margin:3px 0 0; color:inherit; font-size:10px; line-height:1.6; opacity:.8; }
:where(.fw-close) { display:grid; place-items:center; flex:0 0 28px; width:28px; height:28px; padding:0; border:0; border-radius:50%; color:inherit; background:transparent; cursor:pointer; }
:where(.fw-close:hover) { background:rgba(255,255,255,.12); }
:where(.fw-close svg) { width:20px; height:20px; }
:where(.fw-body) { padding:22px; }
:where(.fw-greeting) { margin:0 0 20px; padding:13px 15px; border-radius:0 10px 10px 10px; color:#36513b; background:#f0f3ec; font-size:12px; line-height:1.8; }
:where(.fw-label) { display:block; margin:0 0 8px; color:#435945; font-size:11px; font-weight:600; }
:where(.fw-input) { box-sizing:border-box; display:block; width:100%; padding:12px 13px; border:1px solid #d9e1d5; border-radius:5px; color:#2a442f; background:#fafbf9; font:400 12px/1.7 Montserrat,sans-serif; resize:vertical; }
:where(.fw-input)::placeholder { color:#7b897b; opacity:1; }
:where(.fw-input:focus) { outline:2px solid rgba(118,143,85,.2); border-color:#8a9f6c; }
:where(.fw-send) { display:flex; align-items:center; justify-content:center; gap:12px; width:100%; min-height:46px; margin-top:14px; padding:12px 16px; border:0; border-radius:5px; background:#456347; color:#fff; font:600 11px/1.5 Montserrat,sans-serif; cursor:pointer; transition:background .2s; }
:where(.fw-send:hover) { background:#2c4b32; }
:where(.fw-send svg) { width:18px; height:18px; }
:where(.fw-hint) { margin:12px 0 0; color:#778174; font-size:10px; line-height:1.7; text-align:center; }
.elementor-editor-active :where(.fw-chat) { position:relative; right:auto; bottom:auto; min-height:60px; }
.elementor-editor-active :where(.fw-panel) { position:relative; inset:auto; display:block; opacity:1; transform:none; margin-bottom:14px; max-height:none; }
@media(max-width:767px) { :where(.fw-chat) { right:16px; bottom:calc(16px + env(safe-area-inset-bottom,0px)); } }
@media(prefers-reduced-motion:reduce) { :where(.fw-toggle,.fw-panel,.fw-send) { transition:none; transform:none; } }
@media(prefers-reduced-motion:reduce) { :where(.fw-toggle)::before { animation:none; transform:none; opacity:calc(var(--fw-glow-strength,.5) * .5); } }
