
:root{
  --acw-accent:#3A7C56;
  --acw-accent-dark:#2D6544;
  --acw-dark:#1C2A22;
  --acw-cream:#FCFBFA;
  --acw-border:#E3DDD1;
  --acw-font:'Pretendard','Inter','Noto Sans KR','Noto Sans',-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Segoe UI',sans-serif;
}


.acw-launcher-wrap{
  position:fixed;
  right:16px;
  bottom:calc(64px + 20px);
  z-index:9600;
  display:flex;
  align-items:center;
  gap:8px;
  font-family:var(--acw-font);
  transition:opacity .25s ease, transform .25s ease;
}
.acw-launcher-wrap.acw-hide{ opacity:0; transform:scale(.92); pointer-events:none; }

@media (max-width:760px){
  .acw-launcher-wrap{
    right:14px;
    bottom:calc(60px + env(safe-area-inset-bottom,0px) + 14px);
  }
}

.acw-launcher{
  width:56px;height:56px;border-radius:9999px;border:0;cursor:pointer;
  background:var(--acw-accent);color:#fff;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 26px rgba(19,39,27,.28), 0 2px 8px rgba(19,39,27,.16);
  transition:transform .18s ease, background .18s ease;
}
.acw-launcher:hover{ transform:scale(1.06); background:var(--acw-accent-dark); }
.acw-launcher:active{ transform:scale(.95); }
.acw-launcher svg{ width:25px;height:25px; }

/* 말풍선 */
.acw-bubble{
  position:relative;
  display:flex;align-items:center;gap:7px;
  background:#fff;border:1px solid var(--acw-border);
  border-radius:9999px;
  padding:9px 8px 9px 13px;
  box-shadow:0 8px 20px rgba(19,39,27,.16);
  overflow:visible;
  animation:none;
}
.acw-bubble__dot{
  width:6px;height:6px;border-radius:9999px;background:#22a06b;flex:0 0 auto;
  animation:acwDot 1.8s ease-in-out 4;
}
.acw-bubble__text{
  font-size:12px;font-weight:600;color:var(--acw-dark);white-space:nowrap;line-height:1;
}
.acw-bubble__close{
  width:20px;height:20px;border-radius:9999px;border:0;background:transparent;
  display:flex;align-items:center;justify-content:center;color:#909D95;cursor:pointer;flex:0 0 auto;
}
.acw-bubble__close:hover{ background:var(--acw-cream); color:var(--acw-dark); }
.acw-bubble__tail{
  position:absolute;right:-4px;top:50%;transform:translateY(-50%) rotate(45deg);
  width:8px;height:8px;background:#fff;border-right:1px solid var(--acw-border);border-top:1px solid var(--acw-border);
}
.acw-bubble__sheen{ position:absolute;inset:0;border-radius:9999px;overflow:hidden;pointer-events:none; }
.acw-bubble__sheen::before{
  content:'';position:absolute;top:-20%;bottom:-20%;left:0;width:34%;
  background:linear-gradient(100deg, rgba(58,124,86,0) 0%, rgba(58,124,86,.28) 50%, rgba(58,124,86,0) 100%);
  transform:translateX(-160%) skewX(-18deg);
  animation:acwSheen 2.8s ease-in-out 4;
}
.acw-launcher--halo{ animation:acwHalo 2.8s ease-out 4; }

@keyframes acwSheen{
  0%{ transform:translateX(-160%) skewX(-18deg); opacity:0; }
  35%{ opacity:1; }
  100%{ transform:translateX(320%) skewX(-18deg); opacity:0; }
}
@keyframes acwHalo{
  0%{ box-shadow:0 0 0 0 rgba(58,124,86,.5); }
  70%{ box-shadow:0 0 0 14px rgba(58,124,86,0); }
  100%{ box-shadow:0 0 0 0 rgba(58,124,86,0); }
}
@keyframes acwDot{
  0%,100%{ opacity:1; transform:scale(1); }
  50%{ opacity:.35; transform:scale(.75); }
}
@media (prefers-reduced-motion: reduce){
  .acw-bubble__sheen::before, .acw-bubble__dot, .acw-launcher--halo{ animation:none; }
}

/* ── 채팅 패널 ── */
.acw-panel{
  position:fixed;
  right:16px;
  bottom:calc(64px + 20px + 68px);
  z-index:9700;
  width:376px;
  max-width:calc(100vw - 32px);
  height:min(560px, calc(100vh - 160px));
  background:#fff;
  border-radius:18px;
  box-shadow:0 24px 60px rgba(19,39,27,.28), 0 4px 16px rgba(19,39,27,.14);
  display:flex;flex-direction:column;overflow:hidden;
  font-family:var(--acw-font);
  opacity:0;transform:translateY(16px) scale(.98);pointer-events:none;
  transition:opacity .22s ease, transform .22s ease;
}
.acw-panel.acw-panel--open{ opacity:1; transform:translateY(0) scale(1); pointer-events:auto; }

@media (max-width:760px){
  .acw-panel{
    right:8px;left:8px;width:auto;max-width:none;
    bottom:calc(60px + env(safe-area-inset-bottom,0px) + 12px);
    height:min(72vh, 560px);
  }
}

.acw-panel__head{
  background:var(--acw-dark);color:#fff;
  padding:14px 16px;display:flex;align-items:center;justify-content:space-between;flex:0 0 auto;
}
.acw-panel__head-title{ font-size:14.5px;font-weight:700;letter-spacing:-.01em; }
.acw-panel__head-sub{ font-size:11.5px;color:rgba(255,255,255,.68);margin-top:2px; }
.acw-panel__close{
  width:28px;height:28px;border-radius:9999px;border:0;background:rgba(255,255,255,.12);color:#fff;
  display:flex;align-items:center;justify-content:center;cursor:pointer;flex:0 0 auto;
}
.acw-panel__close:hover{ background:rgba(255,255,255,.22); }

.acw-panel__body{
  flex:1 1 auto;overflow-y:auto;padding:14px 14px 6px;
  display:flex;flex-direction:column;gap:10px;background:var(--acw-cream);
}
.acw-msg{ max-width:84%;font-size:13.5px;line-height:1.55;padding:10px 12px;border-radius:14px;white-space:pre-wrap;word-break:keep-all;overflow-wrap:anywhere; }
.acw-msg--assistant{ align-self:flex-start;background:#fff;border:1px solid var(--acw-border);color:#28362E;border-bottom-left-radius:4px; }
.acw-msg--user{ align-self:flex-end;background:var(--acw-accent);color:#fff;border-bottom-right-radius:4px; }
.acw-msg--pending{ align-self:flex-start;color:#909D95;font-size:12.5px; }

.acw-quick{ display:flex;flex-wrap:wrap;gap:6px;padding:2px 14px 10px;flex:0 0 auto; }
.acw-quick__chip{
  border:1px solid var(--acw-border);background:#fff;border-radius:9999px;
  font-size:11.5px;color:var(--acw-dark);padding:6px 11px;cursor:pointer;white-space:nowrap;
}
.acw-quick__chip:hover{ border-color:var(--acw-accent);color:var(--acw-accent); }

.acw-panel__foot{
  flex:0 0 auto;border-top:1px solid var(--acw-border);background:#fff;
  padding:10px 12px;display:flex;flex-direction:column;gap:8px;
}
.acw-inputrow{ display:flex;align-items:center;gap:8px; }
.acw-input{
  flex:1 1 auto;border:1px solid var(--acw-border);border-radius:9999px;
  padding:10px 14px;font-size:13.5px;font-family:inherit;color:var(--acw-dark);outline:none;
}
.acw-input:focus{ border-color:var(--acw-accent); }
.acw-send{
  width:38px;height:38px;border-radius:9999px;border:0;background:var(--acw-accent);color:#fff;
  display:flex;align-items:center;justify-content:center;cursor:pointer;flex:0 0 auto;
}
.acw-send:disabled{ background:#BDC8C2;cursor:default; }
.acw-send svg{ width:17px;height:17px; }
.acw-disclaimer{ font-size:10.5px;color:#909D95;line-height:1.5; }
.acw-disclaimer a{ color:var(--acw-accent);font-weight:600;text-decoration:none; }

/* ── 회신 연락처 입력란 ── */
.acw-contact{
  border:1px solid var(--acw-accent);border-radius:12px;background:#F3F8F4;
  padding:10px 11px;display:flex;flex-direction:column;gap:7px;
}
.acw-contact__title{ font-size:12.5px;font-weight:700;color:var(--acw-dark);line-height:1.45; }
.acw-contact__row{ display:flex;gap:6px; }
.acw-contact__input{
  min-width:0;flex:1 1 0;border:1px solid var(--acw-border);border-radius:8px;background:#fff;
  padding:8px 10px;font-size:13px;font-family:inherit;color:var(--acw-dark);outline:none;
}
.acw-contact__input:first-child{ flex:0 1 38%; }
.acw-contact__input:focus{ border-color:var(--acw-accent); }
.acw-contact__consent{ display:flex;align-items:flex-start;gap:6px;font-size:11px;color:#5E6B63;line-height:1.45;cursor:pointer; }
.acw-contact__check{ margin:2px 0 0;flex:0 0 auto;accent-color:var(--acw-accent); }
.acw-contact__consent a{ color:var(--acw-accent);font-weight:600; }
.acw-contact__error{ font-size:11.5px;color:#B3261E;line-height:1.4; }
.acw-contact__error:empty{ display:none; }
.acw-contact__actions{ display:flex;justify-content:flex-end;gap:6px; }
.acw-contact__submit{
  border:0;border-radius:9999px;background:var(--acw-accent);color:#fff;
  font-size:12.5px;font-weight:700;padding:7px 16px;cursor:pointer;font-family:inherit;
}
.acw-contact__submit:disabled{ background:#BDC8C2;cursor:default; }
.acw-contact__later{
  border:0;background:transparent;color:#5E6B63;font-size:12px;padding:7px 8px;cursor:pointer;font-family:inherit;
}
.acw-contact__reopen{
  align-self:flex-start;border:1px dashed var(--acw-accent);border-radius:9999px;background:#fff;
  color:var(--acw-accent);font-size:12px;font-weight:600;padding:6px 12px;cursor:pointer;font-family:inherit;
}
.acw-contact__done{ font-size:11.5px;color:var(--acw-accent-dark);line-height:1.45;overflow-wrap:anywhere; }
@media (max-width:420px){
  .acw-contact__row{ flex-direction:column; }
  .acw-contact__input:first-child{ flex:1 1 auto; }
}
.acw-contact[hidden],.acw-contact__reopen[hidden],.acw-contact__done[hidden],.acw-quick[hidden]{ display:none; }

/* 우측 세로 퀵바(.rail)가 있는 지면: 낮은 화면에서 퀵바 전화 버튼과 겹치지 않게 퀵바 왼쪽으로 비킨다 */
@media (min-width:761px){
  body:has(.rail) .acw-launcher-wrap,
  body:has(.rail) .acw-panel{ right:84px; }
}
