/* Amy is an automated guide. Her portrait is an AI-generated illustration of a fictional person. */
:root { --chat-blue:#2463c4; --chat-bubble:#f1f4f8; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.amy-avatar { position:relative; display:inline-flex; flex:none; width:44px; height:44px; }
.amy-avatar img,.message-avatar img { width:100%; height:100%; object-fit:cover; border-radius:50%; }
.amy-avatar i { position:absolute; right:0; bottom:0; width:12px; height:12px; border:2px solid white; border-radius:50%; background:#2a9c68; }
.floating-start { gap:11px; padding:9px 18px 9px 9px; color:var(--navy); background:var(--gold); border:1px solid #e6b535; box-shadow:0 6px 24px #102d5330; transform-origin:80% 80%; animation:amy-chat-shake 2.8s ease-in-out infinite,amy-chat-ring 2.75s ease-out infinite; }
.floating-start .amy-avatar { border:2px solid white; border-radius:50%; }
.floating-start span { color:inherit; }
.floating-start .floating-copy { display:flex; flex-direction:column; align-items:flex-start; line-height:1.35; }
.floating-copy strong { font-size:14px; }
.floating-copy small { font-size:10px; font-weight:500; margin-top:2px; }
.floating-start .chat-launch-icon { font-size:24px; font-weight:500; margin-left:4px; }
dialog { width:min(460px,calc(100vw - 28px)); max-width:calc(100vw - 28px); height:min(780px,calc(100dvh - 40px)); max-height:calc(100dvh - 40px); border:1px solid #dfe6ef; border-radius:18px; overflow:clip; }
dialog[open] { display:flex; flex-direction:column; animation:amy-chat-open .34s cubic-bezier(.22,1,.36,1) both; }
dialog::backdrop { animation:amy-backdrop-in .25s ease both; }
.dialog-top { flex:none; gap:13px; padding:18px 20px; }
.header-avatar { width:46px; height:46px; }
.dialog-top h2 { font:800 17px/1.3 'DM Sans',Arial,sans-serif; letter-spacing:-.3px; margin:0 0 5px; color:#1d2939; }
.dialog-top p { display:flex; align-items:center; gap:5px; font-size:10px; color:#357d5e; line-height:1.4; }
.assistant-status { width:7px; height:7px; border-radius:50%; background:#7acba4; flex:none; }
.close-button { align-self:center; flex:none; width:40px; height:40px; border:1px solid #e1e7ef; background:#fff; color:#718096; font-size:23px; transition:background .18s,transform .18s; }
.close-button:hover { background:#f1f4f8; transform:scale(1.06); }
.progress-track { flex:none; height:2px; }
.progress-track>div { background:var(--chat-blue); }
.dialog-body { flex:1; min-height:0; max-height:none; padding:20px 18px 24px; background:#fff; }
.conversation { gap:13px; }
.message-row { display:flex; align-items:flex-end; gap:10px; width:100%; }
.message-row.bot:has(+ .message-row.bot) .message-avatar { visibility:hidden; }
.message-row.user { justify-content:flex-end; }
.message-avatar { width:32px; height:32px; flex:none; border:1px solid #e2e7ed; border-radius:50%; overflow:hidden; }
.guest-avatar { display:grid; place-items:center; flex:none; width:34px; height:34px; border:1px solid #c7cfdc; border-radius:50%; background:#dce2eb; color:#778495; }
.bot-message { align-self:auto; max-width:calc(100% - 42px); padding:13px 17px; border-radius:20px 20px 20px 5px; background:var(--chat-bubble); font-size:16px; line-height:1.5; color:#263243; overflow-wrap:anywhere; }
.user-message { align-self:auto; max-width:calc(100% - 44px); padding:12px 18px; border-radius:20px 20px 5px 20px; background:var(--chat-blue); font-size:15px; line-height:1.5; overflow-wrap:anywhere; }
.answer-options { flex-direction:column; align-items:flex-end; gap:10px; margin:20px 0 6px 42px; }
.answer-button,.answer-button:first-child { min-height:52px; max-width:100%; border:2px solid var(--chat-blue); border-radius:30px; padding:12px 22px; color:var(--chat-blue); background:#fff; font-size:16px; line-height:1.5; font-weight:700; box-shadow:0 0 0 transparent; transition:background .18s,color .18s,transform .18s,box-shadow .18s; animation:amy-answer-in .25s ease both; }
.answer-button:nth-child(2) { animation-delay:40ms; }
.answer-button:nth-child(3) { animation-delay:80ms; }
.answer-button:nth-child(4) { animation-delay:120ms; }
.answer-button:hover { color:white; background:var(--chat-blue); transform:translateY(-2px); box-shadow:0 5px 14px #2463c422; }
.answer-button:first-child { background:var(--gold); border-color:#d5a32c; color:var(--navy); box-shadow:0 3px 0 #c19a30; }
.answer-button:first-child:hover { background:#ffdc77; border-color:#bf8b19; color:var(--navy); box-shadow:0 5px 14px #d5a32c35; }
.answer-button:active { transform:scale(.96); }
.question-hint { margin:17px 0 0 42px; font-size:11px; line-height:1.6; }
.back-button { margin-left:42px; padding-top:20px; }
.text-answer { margin-left:42px; }
.text-answer textarea { font-family:'DM Sans',Arial,sans-serif; }
.call-card { margin:22px 0 0; padding:21px 18px; border:1px solid #cce2d7; border-radius:14px; background:#f2f8f4; text-align:center; }
.call-card .call-eyebrow { margin:0 0 9px; color:#326b50; font-size:10px; font-weight:800; letter-spacing:1.2px; }
.call-card h3 { margin:0 0 9px; font-size:20px; letter-spacing:-.5px; color:#183e2e; }
.call-card>p:not(.call-eyebrow) { margin:0 0 18px; color:#4e6b5c; font-size:12px; line-height:1.6; }
.call-button { display:flex; align-items:center; justify-content:center; gap:10px; min-height:56px; padding:13px 12px; border-radius:9px; background:#26755d; color:white; font-size:17px; font-weight:800; line-height:1.4; text-decoration:none; box-shadow:0 3px 0 #18513f; transition:background .18s,transform .18s,box-shadow .18s; animation:amy-call-pulse 3s ease-out infinite; }
.call-button:hover { background:#1c624c; animation-play-state:paused; }
.call-button:active { transform:scale(.97)!important; }
.call-button:focus-visible { animation:none; }
.call-icon { font-size:22px; line-height:1; }
.outcome .call-card { margin:25px 0 8px; }
.footer-phone { color:var(--navy); font-size:13px; }
.footer-phone a { font-weight:700; text-underline-offset:3px; white-space:nowrap; }
.typing-bubble { display:flex; align-items:center; gap:5px; height:48px; padding:15px 20px; }
.typing-dot { width:7px; height:7px; background:#8091a6; border-radius:50%; animation:amy-typing 1.2s ease-in-out infinite; }
.typing-dot:nth-child(2) { animation-delay:.15s; }
.typing-dot:nth-child(3) { animation-delay:.3s; }
.message-enter { animation:amy-message-in .26s ease both; }
.primary-button,.header-action,.text-button { transition:transform .18s,background .18s,box-shadow .18s; }
.primary-button[data-start],.header-action[data-start] { animation:amy-double-pulse 2.75s ease-out infinite; }
.primary-button[data-start]:hover,.header-action[data-start]:hover,.floating-start:hover { animation-play-state:paused; }
.primary-button:active,.header-action:active,.floating-start:active { transform:scale(.97)!important; }
.text-button:hover { transform:translateX(4px); }
.primary-button:focus-visible,.header-action:focus-visible,.floating-start:focus-visible { animation:none; }
body.dialog-open [data-start] { animation-play-state:paused; }
@keyframes amy-double-pulse {
  0%,44%,100% { transform:scale(1); box-shadow:0 3px 0 #c19a30,0 0 0 0 #f5c84c70; }
  6%,18% { transform:scale(1.05); box-shadow:0 3px 0 #c19a30,0 0 0 14px #f5c84c00; }
  12% { transform:scale(1); box-shadow:0 3px 0 #c19a30,0 0 0 0 #f5c84c50; }
  24% { transform:scale(1); box-shadow:0 3px 0 #c19a30,0 0 0 0 #f5c84c00; }
}
@keyframes amy-chat-ring {
  0%,44%,100% { box-shadow:0 6px 24px #102d5330,0 0 0 0 #f5c84c70; }
  6%,18% { box-shadow:0 6px 24px #102d5330,0 0 0 12px #f5c84c00; }
  12% { box-shadow:0 6px 24px #102d5330,0 0 0 0 #f5c84c50; }
  24% { box-shadow:0 6px 24px #102d5330,0 0 0 0 #f5c84c00; }
}
@keyframes amy-chat-shake {
  0%,45%,100% { transform:translateX(0) rotate(0); }
  5%,15% { transform:translateX(-4px) rotate(-4deg); }
  10%,20% { transform:translateX(4px) rotate(4deg); }
  25% { transform:translateX(-2px) rotate(-2deg); }
  30% { transform:translateX(2px) rotate(2deg); }
  35% { transform:translateX(0) rotate(0); }
}
@keyframes amy-chat-open { from { transform:scale(.94) translateY(24px); opacity:0; } to { transform:scale(1) translateY(0); opacity:1; } }
@keyframes amy-backdrop-in { from { opacity:0; } to { opacity:1; } }
@keyframes amy-message-in { from { transform:translateY(8px); opacity:0; } to { transform:translateY(0); opacity:1; } }
@keyframes amy-answer-in { from { transform:translateY(7px); opacity:0; } to { transform:translateY(0); opacity:1; } }
@keyframes amy-typing { 0%,80%,100% { transform:translateY(0); opacity:.4; } 40% { transform:translateY(-4px); opacity:1; } }
@keyframes amy-call-pulse { 0%,30%,100% { box-shadow:0 3px 0 #18513f,0 0 0 0 #26755d45; } 10% { box-shadow:0 3px 0 #18513f,0 0 0 9px #26755d00; } 20% { box-shadow:0 3px 0 #18513f,0 0 0 0 #26755d00; } }
@media(max-width:560px) {
  dialog { width:calc(100vw - 12px); max-width:calc(100vw - 12px); height:calc(100dvh - 12px); max-height:calc(100dvh - 12px); border-radius:16px; }
  .dialog-top { padding:16px 14px; gap:10px; }
  .dialog-top h2 { font-size:16px; }
  .dialog-top p { font-size:9px; gap:4px; }
  .header-avatar { width:43px; height:43px; }
  .close-button { width:36px; height:36px; }
  .dialog-body { padding:19px 14px 24px; max-height:none; }
  .bot-message { font-size:15px; padding:12px 15px; }
  .user-message { font-size:14px; }
  .answer-button,.answer-button:first-child { font-size:16px; }
  .floating-start { right:16px; bottom:17px; padding:7px 14px 7px 7px; gap:9px; }
  .floating-start .amy-avatar { width:38px; height:38px; }
  .floating-copy strong { font-size:12px; }
  .floating-copy small { font-size:9px; }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}
