/* "Chat with Sarah": WhatsApp-style website assistant, bottom right on every page. */
.wa-launch { position:fixed; right:max(20px, env(safe-area-inset-right)); bottom:max(20px, env(safe-area-inset-bottom)); z-index:90; display:inline-flex; align-items:center; gap:10px; min-height:56px; padding:6px 20px 6px 6px; border:0; border-radius:999px; background:#0d5c45; color:#fff; font:500 15.5px/1 'Instrument Sans','Helvetica Neue',Arial,sans-serif; box-shadow:0 16px 36px -14px rgba(13,92,69,.7); cursor:pointer; transition:transform .2s, background .2s }
.wa-launch:hover { background:#0a4a37; transform:translateY(-1px) }
.wa-launch:focus-visible, .wa-panel :focus-visible { outline:2px solid #0d5c45; outline-offset:3px }
.wa-open .wa-launch { display:none }
.wa-av { position:relative; flex:none; width:44px; height:44px; border-radius:50%; background:#e9f3ed url(/assets/sarah-ai.png) center 30% / cover no-repeat; box-shadow:0 0 0 2px rgba(255,255,255,.85) }
.wa-online { position:absolute; right:0; bottom:1px; width:12px; height:12px; border-radius:50%; background:#25d366; box-shadow:0 0 0 2px #0d5c45 }
.wa-panel { position:fixed; right:max(20px, env(safe-area-inset-right)); bottom:max(20px, env(safe-area-inset-bottom)); z-index:91; display:flex; flex-direction:column; width:min(380px, calc(100vw - 40px)); height:min(620px, calc(100vh - 40px)); border-radius:18px; overflow:hidden; background:#efeae2; box-shadow:0 30px 70px -28px rgba(21,26,24,.6), 0 0 0 1px rgba(21,26,24,.08); font:400 14.5px/1.42 -apple-system,BlinkMacSystemFont,'Segoe UI','Helvetica Neue',Arial,sans-serif; color:#111b21 }
.wa-panel[hidden] { display:none }
.wa-head { display:flex; align-items:center; gap:12px; padding:10px 8px 10px 12px; background:#0d5c45; color:#fff }
.wa-head .wa-av { width:42px; height:42px; box-shadow:none }
.wa-who { flex:1; min-width:0 } .wa-name { margin:0; font-weight:600; font-size:16.5px; line-height:1.2 }
.wa-status { margin:1px 0 0; color:#cfe6da; font-size:12.5px } .wa-status.wa-busy { color:#9ff0c5; font-style:italic }
.wa-close { flex:none; position:relative; width:40px; height:40px; border:0; border-radius:50%; background:transparent; cursor:pointer }
.wa-close::before, .wa-close::after { content:''; position:absolute; left:12px; top:19px; width:16px; height:2px; border-radius:2px; background:#fff; transform:rotate(45deg) } .wa-close::after { transform:rotate(-45deg) }
.wa-close:hover { background:rgba(255,255,255,.12) }
.wa-log { flex:1; display:flex; flex-direction:column; gap:4px; padding:12px 14px 10px; overflow-y:auto; overscroll-behavior:contain;
  background-color:#efeae2; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120' fill='none' stroke='%23d9d2c5' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 18h16v12H14zM18 18v-3h8v3M70 14l8 8-8 8-8-8zM100 24a6 6 0 1 0 0 .1M20 74l10-6 10 6v12l-10 6-10-6zM68 70h20v14H68zM72 70v-4h12v4M98 84l12-12M98 72l12 12M40 104h18M49 95v18M84 104a7 7 0 1 0 14 0 7 7 0 1 0-14 0'/%3E%3C/svg%3E") }
.wa-day { align-self:center; margin:2px 0 6px; padding:4px 12px; border-radius:8px; background:#fff; color:#54656f; font-size:12px; box-shadow:0 1px .5px rgba(11,20,26,.13) }
.wa-notice { align-self:center; max-width:92%; margin:0 0 10px; padding:6px 12px; border-radius:8px; background:#ffeecd; color:#54656f; font-size:12px; line-height:1.4; text-align:center; box-shadow:0 1px .5px rgba(11,20,26,.13) }
.wa-m { position:relative; max-width:84%; margin-top:4px; padding:6px 9px 8px; border-radius:8px; box-shadow:0 1px .5px rgba(11,20,26,.13); word-wrap:break-word }
.wa-in { align-self:flex-start; background:#fff; border-top-left-radius:0 } .wa-out { align-self:flex-end; background:#d9fdd3; border-top-right-radius:0 }
.wa-in::before, .wa-out::before { content:''; position:absolute; top:0; width:8px; height:13px }
.wa-in::before { left:-8px; background:#fff; clip-path:polygon(100% 0, 0 0, 100% 100%) } .wa-out::before { right:-8px; background:#d9fdd3; clip-path:polygon(0 0, 100% 0, 0 100%) }
.wa-text { white-space:pre-wrap }
.wa-meta { float:right; display:inline-flex; align-items:center; gap:3px; margin:6px 0 -4px 10px; color:#667781; font-size:11px; line-height:1 }
.wa-tick { display:inline-block; width:16px; height:11px; background:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 11' fill='none' stroke='%238696a0' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 6l3 3 6-7M6 8l1 1 6-7'/%3E%3C/svg%3E") }
.wa-tick.read { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 11' fill='none' stroke='%2353bdeb' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 6l3 3 6-7M6 8l1 1 6-7'/%3E%3C/svg%3E") }
.wa-in a { color:#027eb5 }
.wa-book { display:flex; justify-content:center; margin:8px 0 2px; padding:9px 12px; border-radius:8px; background:#0d5c45; color:#fff !important; font-weight:500; text-decoration:none } .wa-book:hover { background:#0a4a37 }
.wa-typing { display:inline-flex; gap:4px; padding:12px 14px } .wa-typing i { width:7px; height:7px; border-radius:50%; background:#8696a0; animation:wadots 1.2s ease-in-out infinite } .wa-typing i:nth-child(2) { animation-delay:.18s } .wa-typing i:nth-child(3) { animation-delay:.36s }
@keyframes wadots { 0%, 60%, 100% { opacity:.35; transform:none } 30% { opacity:1; transform:translateY(-3px) } }
.wa-chips { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:6px; padding:0 12px 8px; background:#efeae2 } .wa-chips:empty { display:none }
.wa-chip { min-height:34px; padding:6px 12px; border:1px solid #c7d9cf; border-radius:999px; background:#fff; color:#0d5c45; font-family:inherit; font-weight:500; font-size:13px; line-height:1.2; cursor:pointer } .wa-chip:hover { background:#e9f3ed }
.wa-form { display:flex; align-items:flex-end; gap:8px; padding:8px 10px calc(8px + env(safe-area-inset-bottom)); background:#f0f2f5 }
.wa-input { flex:1; min-height:42px; max-height:110px; padding:11px 14px; border:0; border-radius:22px; outline:0; resize:none; background:#fff; color:#111b21; font:inherit; font-size:15px; line-height:1.35 }
.wa-input::placeholder { color:#667781 }
.wa-send { flex:none; width:42px; height:42px; border:0; border-radius:50%; background:#0d5c45 center/20px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M3.4 20.4 21 12 3.4 3.6 3.4 10.2 15 12 3.4 13.8z'/%3E%3C/svg%3E"); cursor:pointer } .wa-send:hover { background-color:#0a4a37 }
@media (max-width:560px) {
  .wa-launch { padding:6px; } .wa-launch-t { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0) }
  .wa-panel { right:0; bottom:0; width:100vw; height:100dvh; max-height:none; border-radius:0 }
  .wa-input { font-size:16px } /* stops iPhone zooming into the field */
}
@media (prefers-reduced-motion:reduce) { .wa-typing i { animation:none } .wa-launch { transition:none } }
@media print { .wa-launch, .wa-panel { display:none !important } }
