:root {
  --cwc-ink: #17251f;
  --cwc-green: #275d47;
  --cwc-green-dark: #173e2f;
  --cwc-gold: #d6aa52;
  --cwc-cream: #fbf7ed;
  --cwc-paper: #ffffff;
  --cwc-line: #ded8ca;
  --cwc-muted: #66736d;
}

.cwc-root, .cwc-root * { box-sizing: border-box; }
.cwc-root { position: relative; z-index: 10020; color: var(--cwc-ink); font-family: "Plus Jakarta Sans", sans-serif; }
.cwc-root button, .cwc-root select, .cwc-root textarea { font-family: inherit; letter-spacing: normal; text-transform: none; }
.cwc-root .cwc-launcher {
  position: fixed; right: 22px; bottom: 22px; display: inline-flex; align-items: center; gap: 10px;
  min-height: 52px; padding: 10px 18px 10px 11px; border: 1px solid rgba(255,255,255,.2); border-radius: 999px;
  background: var(--cwc-green-dark); color: #fff; box-shadow: 0 14px 38px rgba(16,36,28,.26);
  font-family: inherit; font-size: 14px; font-weight: 700; line-height: 1.2; cursor: pointer; transition: transform .2s ease, box-shadow .2s ease;
}
.cwc-root .cwc-launcher:hover, .cwc-root .cwc-launcher:focus-visible { border-color: rgba(255,255,255,.2); background: var(--cwc-green-dark); color: #fff; transform: translateY(-2px); box-shadow: 0 17px 42px rgba(16,36,28,.34); }
.cwc-launcher:focus-visible, .cwc-panel button:focus-visible, .cwc-panel select:focus-visible, .cwc-panel textarea:focus-visible, .cwc-panel a:focus-visible { outline: 3px solid #e6bd67; outline-offset: 2px; }
.cwc-launcher__mark, .cwc-brand { position: relative; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: var(--cwc-cream); }
.cwc-launcher__mark { width: 32px; height: 32px; }
.cwc-brand { width: 39px; height: 39px; border: 1px solid rgba(214,170,82,.5); }
.cwc-launcher__mark span, .cwc-brand span { width: 4px; height: 20px; border-radius: 3px; background: var(--cwc-gold); }
.cwc-launcher__mark i, .cwc-brand i { position: absolute; width: 14px; height: 4px; border-radius: 3px; background: var(--cwc-gold); }
.cwc-has-language-banner .cwc-launcher { bottom: 86px; }

.cwc-panel {
  position: fixed; right: 22px; bottom: 86px; width: min(410px, calc(100vw - 30px)); height: min(660px, calc(100dvh - 112px));
  overflow: hidden; border: 1px solid var(--cwc-line); border-radius: 22px; background: var(--cwc-paper);
  box-shadow: 0 24px 70px rgba(19,36,29,.28); animation: cwc-arrive .24s ease-out both;
}
.cwc-has-language-banner .cwc-panel { bottom: 146px; }
.cwc-panel[hidden] { display: none !important; }
@keyframes cwc-arrive { from { opacity: 0; transform: translateY(14px) scale(.98); } to { opacity: 1; transform: none; } }

.cwc-header { display: flex; align-items: center; gap: 10px; min-height: 72px; padding: 12px 14px; color: #fff; background: linear-gradient(120deg, var(--cwc-green-dark), var(--cwc-green)); }
.cwc-header__copy { min-width: 0; flex: 1; }
.cwc-root .cwc-header h2 { margin: 0; color: #fff !important; font-family: inherit; font-size: 17px; font-weight: 800; line-height: 1.2; }
.cwc-header p { margin: 3px 0 0; color: rgba(255,255,255,.78); font-family: inherit; font-size: 10px; font-weight: 500; line-height: 1.3; }
.cwc-language select { min-width: 52px; height: 34px; padding: 0 6px; border: 1px solid rgba(255,255,255,.35); border-radius: 8px; color: #fff; background: rgba(255,255,255,.08); font-family: inherit; font-size: 12px; font-weight: 700; line-height: 1; }
.cwc-language option { color: var(--cwc-ink); background: #fff; }
.cwc-root .cwc-icon-button { display: grid; place-items: center; width: 34px; height: 34px; padding: 0; border: 0 !important; border-radius: 50%; color: #fff !important; background: transparent !important; box-shadow: none !important; font-family: inherit; font-size: 29px; font-weight: 300; line-height: 1; cursor: pointer; }
.cwc-root .cwc-icon-button:hover, .cwc-root .cwc-icon-button:focus { border: 0 !important; color: #fff !important; background: rgba(255,255,255,.12) !important; box-shadow: none !important; }

.cwc-privacy { height: calc(100% - 72px); padding: 34px 28px 26px; overflow: auto; background: radial-gradient(circle at 95% 0, #f6e9c8 0, transparent 38%), var(--cwc-cream); }
.cwc-eyebrow { margin: 0 0 12px; color: var(--cwc-green); font-family: inherit; font-size: 11px; font-weight: 800; line-height: 1.2; letter-spacing: .13em; text-transform: uppercase; }
.cwc-privacy h3 { margin: 0 0 18px; color: var(--cwc-ink); font-family: inherit; font-size: 25px; font-weight: 800; line-height: 1.15; }
.cwc-privacy > p:not(.cwc-eyebrow) { margin: 0 0 14px; color: #425049; font-family: inherit; font-size: 14px; font-weight: 500; line-height: 1.62; }
.cwc-privacy .cwc-privacy__policy { margin-top: 4px; font-size: 12px; }
.cwc-privacy__policy a { color: var(--cwc-green-dark); text-decoration: underline; text-underline-offset: 3px; }
.cwc-privacy__actions { display: grid; grid-template-columns: 1fr 1.45fr; gap: 10px; margin-top: 25px; }
.cwc-button { min-height: 44px; padding: 10px 14px; border-radius: 10px; font-family: inherit; font-size: 13px; font-weight: 800; line-height: 1.2; cursor: pointer; }
.cwc-root .cwc-button--ghost { border: 1px solid #b8b3a7; background: rgba(255,255,255,.55); color: var(--cwc-ink); }
.cwc-root .cwc-button--primary { border: 1px solid var(--cwc-green); background: var(--cwc-green); color: #fff; }

.cwc-chat { display: grid; grid-template-rows: 1fr auto auto auto; height: calc(100% - 72px); background: #f4f1e9; }
.cwc-chat[hidden], .cwc-privacy[hidden] { display: none !important; }
.cwc-messages { min-height: 0; padding: 20px 16px 12px; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.cwc-message { display: flex; flex-direction: column; align-items: flex-start; margin: 0 0 14px; }
.cwc-message--user { align-items: flex-end; }
.cwc-message__bubble { max-width: 88%; padding: 12px 14px; border: 1px solid #e0dbd0; border-radius: 5px 16px 16px 16px; background: #fff; box-shadow: 0 3px 13px rgba(27,45,36,.06); color: #27352f; font-family: inherit; font-size: 14px; font-weight: 500; line-height: 1.55; overflow-wrap: anywhere; white-space: pre-line; }
.cwc-message--user .cwc-message__bubble { border-color: var(--cwc-green); border-radius: 16px 5px 16px 16px; background: var(--cwc-green); color: #fff; white-space: pre-wrap; }
.cwc-message__bubble p { margin: 0 0 9px; }
.cwc-message__bubble p:last-child { margin-bottom: 0; }
.cwc-message__bubble ul { margin: 5px 0; padding-left: 20px; }
.cwc-message__sources { display: flex; flex-direction: column; gap: 6px; width: min(88%, 340px); margin-top: 7px; padding: 9px 11px; border-left: 3px solid var(--cwc-gold); background: rgba(255,255,255,.62); font-family: inherit; font-size: 11px; font-weight: 600; line-height: 1.35; }
.cwc-message__sources strong { color: var(--cwc-muted); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.cwc-message__sources a { color: var(--cwc-green-dark); text-decoration: underline; text-decoration-color: rgba(39,93,71,.35); text-underline-offset: 2px; }

.cwc-dots { display: inline-flex; gap: 4px; margin-right: 8px; vertical-align: middle; }
.cwc-dots i { width: 5px; height: 5px; border-radius: 50%; background: var(--cwc-green); animation: cwc-dot 1.1s infinite ease-in-out; }
.cwc-dots i:nth-child(2) { animation-delay: .15s; }
.cwc-dots i:nth-child(3) { animation-delay: .3s; }
@keyframes cwc-dot { 0%, 60%, 100% { opacity: .25; transform: translateY(0); } 30% { opacity: 1; transform: translateY(-3px); } }

.cwc-suggestions { display: grid; grid-template-columns: 1fr; gap: 6px; max-height: 116px; padding: 0 14px 10px; overflow-x: hidden; overflow-y: auto; scrollbar-width: thin; }
.cwc-root .cwc-suggestion { width: 100%; min-width: 0; max-width: none; padding: 8px 11px; border: 1px solid #c9c2b3; border-radius: 10px; background: #fff; color: var(--cwc-green-dark); font-family: inherit; font-size: 11px; font-weight: 700; line-height: 1.3; white-space: normal; overflow-wrap: anywhere; text-align: left; cursor: pointer; }
.cwc-root .cwc-suggestion:hover { border-color: var(--cwc-green); background: #f7fbf8; color: var(--cwc-green-dark); }
.cwc-composer { display: grid; grid-template-columns: 1fr 42px; gap: 8px; align-items: end; padding: 10px 12px; border-top: 1px solid var(--cwc-line); background: #fff; }
.cwc-composer textarea { width: 100%; max-height: 112px; resize: none; padding: 10px 11px; border: 1px solid #cfc9bd; border-radius: 11px; background: #fff; color: var(--cwc-ink); font-family: inherit; font-size: 14px; font-weight: 500; line-height: 1.4; }
.cwc-root .cwc-send { display: grid; place-items: center; width: 42px; height: 42px; padding: 0; border: 0; border-radius: 11px; background: var(--cwc-green); color: #fff; cursor: pointer; }
.cwc-send:disabled { opacity: .45; cursor: wait; }
.cwc-send svg { width: 21px; height: 21px; fill: currentColor; }
.cwc-disclaimer { margin: 0; padding: 0 14px 10px; background: #fff; color: #737d78; font-family: inherit; font-size: 9px; font-weight: 500; line-height: 1.35; text-align: center; }
.cwc-honeypot { position: fixed !important; left: -9999px !important; width: 1px !important; height: 1px !important; opacity: 0 !important; }
.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; }

@media (max-width: 600px) {
  html.cwc-is-open { overflow: hidden; }
  .cwc-launcher { right: 12px; bottom: 14px; min-height: 48px; padding: 8px 13px 8px 8px; }
  .cwc-launcher__mark { width: 31px; height: 31px; }
  .cwc-panel { inset: auto 8px 8px; width: auto; height: min(82dvh, 720px); border-radius: 18px; }
  .cwc-has-language-banner .cwc-launcher { bottom: 78px; }
  .cwc-has-language-banner .cwc-panel { bottom: 74px; height: min(76dvh, 650px); }
  .cwc-header { min-height: 66px; padding: 10px 11px; }
  .cwc-header p { max-width: 175px; font-size: 9px; }
  .cwc-chat, .cwc-privacy { height: calc(100% - 66px); }
  .cwc-privacy { padding: 27px 20px 22px; }
  .cwc-privacy h3 { font-size: 22px; }
  .cwc-privacy__actions { grid-template-columns: 1fr; }
  .cwc-message__bubble { max-width: 92%; }
  .cwc-suggestions { max-height: 100px; }
}

@media (prefers-reduced-motion: reduce) {
  .cwc-panel, .cwc-launcher, .cwc-dots i { animation: none; transition: none; }
}
