.chat-widget {
  position:fixed;
  right:24px;
  bottom:24px;
  z-index:100;
  font-size:14px;
  line-height:1.45
}

.chat-widget [hidden] {
  display:none!important
}
.chat-launcher {
  display:flex;
  align-items:center;
  gap:28px;
  background:var(--yellow);
  color:var(--ink);
  border:1px solid var(--ink);
  padding:15px 22px;
  border-radius:28px;
  box-shadow:0 4px 24px #20221f22;
  font-weight:bold
}
.chat-launcher span {
  font-size:23px
}
.chat-panel {
  position:absolute;
  right:0;
  bottom:70px;
  width:min(390px,calc(100vw - 32px));
  max-height:min(720px,calc(100dvh - 115px));
  display:flex;
  flex-direction:column;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:18px;
  box-shadow:0 12px 60px #20221f33;
  overflow:hidden
}
.chat-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  background:var(--ink);
  color:white;
  padding:20px;
  gap:10px
}
.chat-header h2 {
  font-size:25px;
  letter-spacing:-.04em
}
.chat-header p {
  font-size:12px;
  color:#d8dad2;
  margin-top:7px
}
.chat-close {
  background:none;
  color:white;
  border:0;
  font-size:30px;
  min-width:44px;
  min-height:44px
}
.chat-scroll {
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:16px;
  min-height:0
}
.chat-log {
  display:flex;
  flex-direction:column;
  gap:12px
}
.chat-message {
  padding:13px;
  border-radius:12px;
  background:#e8e9e2;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  max-width:95%;
  margin:0
}
.chat-message+.chat-message {
  margin-top:0
}
.chat-user {
  align-self:flex-end;
  background:var(--yellow)
}
.chat-options {
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:15px
}
.chat-options button {
  border:1px solid #999d90;
  border-radius:20px;
  background:transparent;
  padding:10px 12px;
  font-size:12px
}
.chat-options button:hover {
  background:var(--yellow)
}
.chat-enquiry {
  border-top:1px solid var(--line);
  margin-top:20px;
  padding-top:18px
}
.chat-enquiry h3 {
  font-size:23px
}
.chat-enquiry p {
  margin:10px 0;
  font-size:13px
}
.chat-widget label {
  display:block;
  margin-top:12px;
  font-size:13px
}
.chat-widget input,.chat-widget textarea {
  width:100%;
  min-width:0;
  border:1px solid #999d90;
  background:white;
  color:var(--ink);
  border-radius:7px;
  padding:10px;
  margin-top:5px;
  font-size:16px
}
.chat-widget textarea {
  resize:vertical
}
.chat-widget .chat-consent {
  display:flex;
  gap:8px;
  align-items:flex-start;
  font-size:12px
}
.chat-consent input {
  width:18px;
  flex-shrink:0;
  margin-top:2px
}
.chat-enquiry .button {
  width:100%;
  margin-top:15px;
  justify-content:center;
  border-radius:7px
}
.chat-widget button:disabled {
  opacity:.65;
  cursor:default
}
.chat-compose {
  padding:10px 16px;
  border-top:1px solid var(--line)
}
.chat-compose div {
  display:flex;
  gap:8px
}
.chat-compose button {
  background:var(--ink);
  color:white;
  border:0;
  border-radius:7px;
  width:44px;
  flex-shrink:0;
  margin-top:5px;
  font-size:23px
}
.chat-widget .chat-input-label {
  margin:0;
  font-size:12px
}
.chat-note {
  font-size:10px;
  padding:0 16px 12px;
  color:#5a5d54
}
.chat-trap {
  position:absolute;
  left:-10000px
}
.chat-widget :focus-visible {
  outline-offset:2px
}
.chat-fallback a {
  text-decoration:underline
}
.chat-status {
  overflow-wrap:anywhere
}
@media(max-width:450px) {
  .chat-widget {
    right:16px;
    bottom:16px
  }
  .chat-panel {
    bottom:65px;
    max-height:calc(100dvh - 105px)
  }
}
/* Conversational suggestions stay readable at narrow widths. */
.chat-options {
  display:grid;
  grid-template-columns:1fr;
  gap:8px
}
.chat-options button {
  text-align:left;
  font-size:13px;
  line-height:1.4;
  border-radius:10px;
  padding:11px 13px;
  min-height:44px
}
.chat-options .chat-more {
  border:0;
  background:transparent;
  padding:8px 2px;
  color:inherit;
  text-decoration:underline;
  text-underline-offset:3px;
  justify-self:start
}
.chat-message a {
  text-decoration:underline;
  text-underline-offset:3px
}
.chat-launcher {
  width:56px;
  height:56px;
  padding:0;
  justify-content:center;
  gap:0;
  border-radius:50%
}
.chat-launcher svg {
  display:block;
  flex-shrink:0
}
/* Direct conversation view, using the site's existing brand palette. */
.chat-panel {
  width:min(400px,calc(100vw - 32px));
  height:min(670px,calc(100dvh - 110px));
  max-height:none;
  border-radius:28px;
  background:#f7f7f4;
  box-shadow:0 16px 65px #17171430;
  border:1px solid #e2e2dc
}
.chat-header {
  flex-shrink:0;
  padding:18px 20px;
  background:transparent;
  color:var(--ink);
  gap:12px
}
.chat-identity {
  display:flex;
  gap:10px;
  align-items:center
}
.chat-identity img {
  width:44px;
  height:44px;
  object-fit:contain
}
.chat-header h2 {
  font-size:16px;
  font-weight:700;
  letter-spacing:-.025em
}
.chat-header p {
  font-size:11px;
  color:var(--muted);
  margin-top:4px
}
.chat-close {
  width:36px;
  height:36px;
  min-width:36px;
  min-height:36px;
  border-radius:50%;
  background:#e9e9e4;
  color:var(--ink);
  font-size:25px;
  line-height:1
}
.chat-conversation {
  display:flex;
  flex:1;
  flex-direction:column;
  min-height:0
}
.chat-scroll {
  flex:1;
  padding:18px 20px
}
.chat-header {
  border-bottom:1px solid #e7e7e1;
  background:white
}
.chat-log {
  gap:15px
}
.chat-message {
  border-radius:18px 18px 18px 5px;
  background:white;
  padding:15px 17px;
  font-size:14px;
  line-height:1.6;
  max-width:94%;
  box-shadow:0 3px 14px #17171404
}
.chat-user {
  border-radius:18px 18px 5px 18px;
  background:var(--yellow);
  box-shadow:none
}
.chat-options {
  gap:7px;
  margin-top:18px
}
.chat-options button {
  border:1px solid #deded7;
  background:transparent;
  border-radius:18px;
  font-size:12px;
  padding:10px 13px;
  min-height:40px
}
.chat-options .chat-more {
  font-size:11px;
  min-height:32px
}
.chat-enquiry {
  padding:20px;
  background:white;
  border:1px solid #e5e5df;
  border-radius:20px
}
.chat-enquiry h3 {
  font-size:22px
}
.chat-compose {
  flex-shrink:0;
  border:0;
  padding:12px 16px 8px;
  background:#f7f7f4
}
.chat-compose div {
  border:1px solid #deded5;
  border-radius:28px;
  background:white;
  padding:5px;
  align-items:center;
  gap:5px
}
.chat-widget .chat-compose input {
  border:0;
  background:transparent;
  margin:0;
  padding:11px 13px;
  font-size:14px;
  border-radius:24px
}
.chat-compose button {
  width:auto;
  min-width:52px;
  min-height:40px;
  margin:0;
  border-radius:22px;
  padding:8px 12px;
  background:var(--yellow);
  color:var(--ink);
  font-size:12px;
  font-weight:700
}
.chat-widget .chat-input-label {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap
}
.chat-note {
  flex-shrink:0;
  text-align:center;
  padding:7px 15px 14px;
  font-size:9px;
  color:#7b7b72
}
@media(max-width:450px) {
  .chat-panel {
    width:calc(100vw - 24px);
    right:-4px;
    bottom:68px;
    height:calc(100dvh - 100px);
    border-radius:25px
  }
}
@media(max-height:650px) {
  .chat-header {
    padding-top:12px;
    padding-bottom:12px
  }
}
.chat-note {
  line-height:1.45
}

/* Preserve finger-sized chat controls on narrow phones. */
@media(max-width:450px) {
  .chat-close {
    width:44px;
    height:44px;
    min-width:44px;
    min-height:44px
  }
  .chat-options button,
  .chat-options .chat-more,
  .chat-widget .chat-compose input,
  .chat-compose button {
    min-height:44px
  }
}
