.ty-chat{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:65;width:min(560px,calc(100vw - 32px));font-family:'Hanken Grotesk',system-ui,-apple-system,sans-serif;color:#3b3937}
.ty-chat *{box-sizing:border-box}
.ty-chat-tease{position:relative;background:rgba(255,255,255,.7);backdrop-filter:blur(14px) saturate(180%);-webkit-backdrop-filter:blur(14px) saturate(180%);border:1px solid rgba(255,255,255,.7);border-radius:18px;padding:.7rem .9rem .65rem;margin-bottom:.55rem;box-shadow:0 1px 0 rgba(255,255,255,.5) inset,0 22px 50px -18px rgba(59,57,55,.28);cursor:pointer;animation:ty-chat-tease-in .4s cubic-bezier(.2,.9,.3,1.1) both,ty-chat-tease-bob 4.5s ease-in-out 1s infinite;outline:none;color:#3b3937}
.ty-chat-tease[hidden]{display:none}
/* Pill style. Shape only -- it inherits the card's colours, blur and shadow so a site
   that switches style does not also silently change palette. No bob animation: the
   pill is present from first paint, and a thing that is already there does not need to
   attract attention to its arrival. */
.ty-chat-tease--pill{display:flex;align-items:center;gap:.55rem;width:fit-content;max-width:100%;margin:0 auto;padding:.45rem 2rem .45rem .45rem;border-radius:9999px;animation:ty-chat-tease-in .4s cubic-bezier(.2,.9,.3,1.1) both}
.ty-chat-tease--pill::after{border-radius:9999px}
.ty-chat-tease--pill .ty-chat-tease-avatar{width:30px;height:30px;font-size:.82rem}
.ty-chat-tease--pill .ty-chat-tease-msg{font-size:.95rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.ty-chat-tease--pill .ty-chat-tease-arrow{flex:0 0 auto;opacity:.5}
.ty-chat-tease--pill .ty-chat-tease-dismiss{top:50%;transform:translateY(-50%);right:5px;width:22px;height:22px;font-size:.85rem}
.ty-chat-bar[hidden]{display:none}
.ty-chat-tease:hover{background:rgba(255,255,255,.95);transform:translateY(-2px);transition:transform .15s ease,background .15s ease}
.ty-chat-tease:focus-visible{box-shadow:0 0 0 3px rgba(0,113,188,.35),0 22px 50px -18px rgba(59,57,55,.32)}
.ty-chat-tease::after{content:"";position:absolute;inset:-1px;border-radius:18px;background:linear-gradient(135deg,rgba(0,113,188,.07),rgba(132,180,55,.05) 60%,rgba(193,39,45,.06));pointer-events:none;opacity:.85}
.ty-chat-tease-dismiss{position:absolute;top:5px;right:6px;width:26px;height:26px;border:0;background:rgba(59,57,55,.08);color:#3b3937;border-radius:50%;font-size:.95rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;opacity:.55;transition:opacity .15s ease,background .15s ease;z-index:1}
.ty-chat-tease-dismiss:hover{opacity:1;background:rgba(59,57,55,.18)}
.ty-chat-tease-row{position:relative;display:flex;align-items:flex-start;gap:.6rem;padding-right:1.5rem;z-index:1}
.ty-chat-tease-avatar{width:28px;height:28px;border-radius:50%;background:#87692F;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.78rem;flex:0 0 auto;box-shadow:0 0 0 4px rgba(0,113,188,.1)}
.ty-chat-tease-body{flex:1 1 auto;display:flex;flex-direction:column;line-height:1.35;min-width:0}
.ty-chat-tease-body strong{font-size:.74rem;font-weight:700;color:#87692F;letter-spacing:.05em;text-transform:uppercase;opacity:.9}
.ty-chat-tease-msg{font-size:.92rem;color:#3b3937;margin-top:2px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-weight:500}
.ty-chat-tease-cta{appearance:none;background:none;border:0;padding:0;font:inherit;cursor:pointer;text-align:left;margin-top:.4rem;display:inline-flex;align-items:center;gap:.3rem;font-size:.74rem;font-weight:600;color:#87692F;letter-spacing:.01em;opacity:.75}
.ty-chat-tease:hover .ty-chat-tease-cta{opacity:1}
.ty-chat-tease-cta:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(198,161,91,.45);border-radius:6px;opacity:1}
.ty-chat-tease-cta svg{transition:transform .2s ease}
.ty-chat-tease:hover .ty-chat-tease-cta svg{transform:translateX(3px)}
@keyframes ty-chat-tease-in{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes ty-chat-tease-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}

.ty-chat-bar{display:flex;align-items:center;gap:.5rem;background:#fff;border:1px solid #e7e3d8;border-radius:9999px;padding:.45rem .55rem .45rem 1rem;box-shadow:0 1px 0 rgba(0,0,0,.04),0 18px 40px -16px rgba(59,57,55,.28);transition:box-shadow .2s ease,border-color .2s ease}
.ty-chat-bar:focus-within{border-color:#87692F;box-shadow:0 1px 0 rgba(0,0,0,.04),0 22px 50px -16px rgba(59,57,55,.36)}
.ty-chat-bar-icon{display:flex;align-items:center;color:#87692F;flex:0 0 auto}
.ty-chat-bar-input{flex:1 1 auto;border:0;outline:0;background:transparent;font:inherit;font-size:.95rem;color:#3b3937;padding:.55rem 0;min-width:0}
.ty-chat-bar-input::placeholder{color:#8a857c}
.ty-chat-bar-send{flex:0 0 auto;width:40px;height:40px;border:0;border-radius:50%;background:#1A181C;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s ease,transform .15s ease}
.ty-chat-bar-send:hover{background:#000000;transform:translateY(-1px)}
.ty-chat-bar-send:disabled{opacity:.5;cursor:default;transform:none}
.ty-chat-bar-send:focus-visible{outline:2px solid #87692F;outline-offset:2px}

.ty-chat-panel{background:#fff;border:1px solid #e7e3d8;border-radius:18px;box-shadow:0 1px 0 rgba(0,0,0,.04),0 30px 60px -18px rgba(59,57,55,.32);margin-bottom:.65rem;overflow:hidden;display:flex;flex-direction:column;max-height:min(620px,72vh);animation:ty-chat-in .28s cubic-bezier(.2,.9,.3,1.1) both}
.ty-chat-panel[hidden]{display:none}
.ty-chat-head{display:flex;align-items:center;gap:.7rem;padding:.85rem 1rem;border-bottom:1px solid #eee9dd;background:#f6f3ea}
.ty-chat-avatar{width:34px;height:34px;border-radius:50%;background:#87692F;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.95rem;flex:0 0 auto}
.ty-chat-head-meta{flex:1 1 auto;display:flex;flex-direction:column;line-height:1.2}
.ty-chat-head-meta strong{font-size:.95rem}
.ty-chat-status{font-size:.78rem;color:#7a756c;display:flex;align-items:center;gap:.4rem;margin-top:2px}
.ty-chat-dot{width:8px;height:8px;border-radius:50%;background:#C6A15B;box-shadow:0 0 0 3px rgba(132,180,55,.2)}
.ty-chat-close{border:0;background:transparent;font-size:1.4rem;line-height:1;color:#7a756c;cursor:pointer;padding:.2rem .4rem;border-radius:8px}
.ty-chat-close:hover{background:rgba(59,57,55,.06);color:#3b3937}

.ty-chat-log{flex:1 1 auto;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.55rem;background:#fff}
.ty-chat-msg{max-width:85%;padding:.7rem .9rem;border-radius:14px;font-size:.92rem;line-height:1.45;word-wrap:break-word;animation:ty-chat-msg-in .22s ease both}
.ty-chat-msg-bot{align-self:flex-start;background:#f3f0e7;color:#3b3937;border-bottom-left-radius:4px}
.ty-chat-msg-user{align-self:flex-end;background:#87692F;color:#fff;border-bottom-right-radius:4px}
.ty-chat-msg a{color:inherit;text-decoration:underline}
.ty-chat-msg p{margin:0 0 .5rem}
.ty-chat-msg p:last-child{margin-bottom:0}
.ty-chat-msg ul,.ty-chat-msg ol{margin:.25rem 0 .35rem;padding-left:1.15rem}
.ty-chat-msg ul li,.ty-chat-msg ol li{margin:.1rem 0}
.ty-chat-msg strong{font-weight:700}
.ty-chat-msg em{font-style:italic}
.ty-chat-msg code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em;background:rgba(59,57,55,.08);padding:.1em .35em;border-radius:6px}
.ty-chat-msg-user code{background:rgba(255,255,255,.18)}
.ty-chat-msg blockquote{margin:.25rem 0;padding:.25rem .65rem;border-left:3px solid #d8d2c4;color:#7a756c;font-style:italic}
.ty-chat-msg-tool{align-self:flex-start;font-size:.72rem;color:#7a756c;background:transparent;padding:.1rem .25rem;border:0}
.ty-chat-typing{align-self:flex-start;background:#f3f0e7;border-radius:14px;padding:.7rem .9rem;display:inline-flex;gap:.25rem}
.ty-chat-typing span{width:6px;height:6px;border-radius:50%;background:#7a756c;opacity:.5;animation:ty-chat-bounce 1.1s infinite ease-in-out}
.ty-chat-typing span:nth-child(2){animation-delay:.15s}
.ty-chat-typing span:nth-child(3){animation-delay:.3s}

.ty-chat-phone{margin-right:.25rem;border:0;background:transparent;color:#87692F;padding:.35rem;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease}
.ty-chat-phone:hover{background:rgba(0,113,188,.1)}

.ty-call-strip{background:linear-gradient(135deg,#5E4A20 0%,#87692F 100%);color:#fff;border-bottom:1px solid rgba(255,255,255,.08);position:relative;overflow:hidden;animation:ty-chat-msg-in .25s ease both;display:flex;flex-direction:column}
.ty-call-strip[hidden]{display:none}
.ty-call-strip::before{content:"";position:absolute;inset:0;background:radial-gradient(120% 80% at 80% 0%,rgba(132,180,55,.18),transparent 60%);pointer-events:none}
.ty-call-strip-eyebrow{position:relative;display:flex;align-items:center;gap:.45rem;padding:.65rem .8rem .35rem;font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.8)}
.ty-call-strip-led{width:7px;height:7px;border-radius:50%;background:#C6A15B;box-shadow:0 0 0 3px rgba(132,180,55,.25);animation:ty-call-led 1.6s ease-in-out infinite}
.ty-call-strip-dismiss{margin-left:auto;border:0;background:rgba(255,255,255,.12);color:#fff;width:22px;height:22px;border-radius:50%;font-size:.95rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;opacity:.7;transition:opacity .15s ease,background .15s ease}
.ty-call-strip-dismiss:hover{opacity:1;background:rgba(255,255,255,.24)}
.ty-call-strip-row{position:relative;display:flex;align-items:center;gap:.85rem;padding:.15rem .8rem .25rem}
.ty-call-strip-ring{position:relative;width:44px;height:44px;border-radius:50%;background:#fff;color:#87692F;font-weight:700;display:flex;align-items:center;justify-content:center;flex:0 0 auto;box-shadow:0 4px 12px -4px rgba(0,0,0,.4)}
.ty-call-strip-ring::before{content:"";position:absolute;inset:-4px;border-radius:50%;border:1.5px solid rgba(132,180,55,.55);animation:ty-call-ripple 2.2s infinite ease-out;pointer-events:none}
.ty-call-strip-text{flex:1 1 auto;display:flex;flex-direction:column;line-height:1.25;min-width:0}
.ty-call-strip-text strong{font-size:1rem;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ty-call-strip-text span{font-size:.74rem;color:rgba(255,255,255,.75);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.ty-call-strip-wave{position:relative;margin:.9rem .8rem .85rem;height:34px;display:flex;align-items:center;justify-content:center;gap:3px;border-radius:10px;background:rgba(255,255,255,.06);padding:0 .6rem}
.ty-call-strip-wave i{display:block;width:3px;background:linear-gradient(180deg,#E4CE93,#C6A15B);border-radius:2px;height:30%;transform-origin:center;animation:ty-call-wave-bar 1.4s ease-in-out infinite}
.ty-call-strip-actions{position:relative;display:flex;flex-direction:column;gap:.5rem;padding:0 .8rem .85rem}
.ty-call-strip-actions:empty{display:none}
.ty-call-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:0;padding:.7rem 1rem;border-radius:9999px;font:inherit;cursor:pointer;text-decoration:none;transition:background .15s ease,transform .15s ease;white-space:nowrap}
.ty-call-btn:disabled{opacity:.6;cursor:default;transform:none}
.ty-call-btn-primary{background:#C6A15B;color:#1A181C;font-weight:700;font-size:.95rem;box-shadow:0 6px 18px -8px rgba(132,180,55,.6)}
.ty-call-btn-primary:hover{background:#D0AE6E;transform:translateY(-1px)}
.ty-call-status{position:relative;font-size:.72rem;color:rgba(255,255,255,.82);padding:0 .8rem .65rem;min-height:0}
.ty-call-status:empty{padding:0}
.ty-call-active{display:flex;align-items:center;gap:.55rem;font-size:.85rem;color:#fff;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:12px;padding:.65rem .85rem}
.ty-call-active .ty-call-active-dot{width:9px;height:9px;border-radius:50%;background:#C6A15B;animation:ty-chat-bounce 1.2s infinite ease-in-out;flex:0 0 auto}
.ty-call-active button{margin-left:auto;border:0;background:#1A181C;color:#fff;padding:.4rem .9rem;border-radius:9999px;font:inherit;font-weight:600;font-size:.78rem;cursor:pointer}
.ty-call-active button:hover{background:#000000}
@keyframes ty-call-ripple{0%{transform:scale(.85);opacity:.7}100%{transform:scale(1.6);opacity:0}}
@keyframes ty-call-led{0%,100%{opacity:1}50%{opacity:.35}}
@keyframes ty-call-wave-bar{0%{transform:scaleY(.25);opacity:.6}25%{transform:scaleY(.85);opacity:.95}50%{transform:scaleY(1.5);opacity:1}75%{transform:scaleY(.6);opacity:.85}100%{transform:scaleY(.25);opacity:.6}}

.ty-chat-disclaimer{font-size:.7rem;color:#9a958c;text-align:center;padding:.5rem 1rem .65rem;border-top:1px solid #eee9dd;background:#fafaf6}

@keyframes ty-chat-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes ty-chat-msg-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes ty-chat-bounce{0%,80%,100%{transform:translateY(0);opacity:.4}40%{transform:translateY(-4px);opacity:1}}

@media (max-width:640px){
  .ty-chat{left:10px;right:10px;width:auto;transform:none;bottom:max(10px,env(safe-area-inset-bottom))}
  .ty-chat-panel{max-height:min(75vh,560px)}
}
