
/* Use the main website's conversation components for the landing-page enquiry. */
.contact-dialog {
  --body-paper: var(--paper);
  --body-ink: var(--ink);
  --body-muted: var(--muted);
  --body-line: var(--edge);
  --body-accent: var(--ice);
  --body-surface: #f3f4f5;
}
.conversation-surface :where(button) {
  border: 0;
  font-family: inherit;
  color: inherit;
  background: transparent;
  cursor: pointer;
}
.conversation-surface :where(a) { color: inherit; }
/* The conversation is the working surface, with the original site header above it. */
.conversation-surface{font-family:Arial,Helvetica,sans-serif;display:flex;flex-direction:column;height:calc(100dvh - 90px);min-height:500px;background:var(--body-paper);color:var(--body-ink);padding:20px clamp(20px,5vw,60px) 24px}
.conversation-surface [hidden]{display:none!important}
.conversation-dialog{position:fixed;inset:90px 0 0;max-width:none;max-height:none;width:100%;height:calc(100dvh - 90px);margin:0;border:0;padding:0;overflow:clip;background:var(--body-paper);color:var(--body-ink)}
.conversation-dialog::backdrop{background:transparent;backdrop-filter:none}
.conversation-dialog .conversation-surface{height:100%;min-height:0}
.conversation-open{overflow:hidden}
.conversation-toolbar{display:flex;align-items:center;justify-content:flex-end;max-width:900px;width:100%;margin:0 auto;padding-bottom:18px;flex-shrink:0}
.conversation-close{padding:10px 14px;min-height:44px;border-radius:999px;font-size:14px}
.conversation-close:hover{background:var(--body-surface)}
.conversation-close{font-size:24px;line-height:1;width:44px;padding:0}
.conversation-feed{width:100%;max-width:900px;min-height:0;flex:1;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;margin:0 auto;padding:10px 12px 24px}
.conversation-title{font-family:Georgia,'Times New Roman',serif!important;font-weight:400;letter-spacing:-.055em!important;line-height:1.06!important;font-size:clamp(2.5rem,5vw,4.5rem)!important;text-align:center;max-width:700px!important;margin:clamp(30px,8vh,100px) auto 40px;text-wrap:balance}
.conversation-message{max-width:92%;width:fit-content;margin:24px 0 30px;line-height:1.65;font-size:16px;overflow-wrap:anywhere}
.conversation-speaker{display:flex;align-items:center;gap:10px;font-size:13px;line-height:1.4;color:var(--body-muted);margin-bottom:10px}
.conversation-assistant-avatar{width:28px;height:28px;padding:5px;border-radius:50%;background:var(--body-accent);object-fit:contain;flex-shrink:0}
.conversation-message p{margin:0;white-space:pre-wrap}
.conversation-message.user{margin-left:auto;border-radius:24px;background:var(--body-surface);padding:16px 22px;max-width:80%}
.conversation-message.user .conversation-speaker{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.conversation-message.assistant{padding:8px 0}
.conversation-message.thinking{color:var(--body-muted)}
.conversation-bottom{width:100%;max-width:900px;margin:0 auto;flex-shrink:0;padding-top:8px}
.conversation-choices{display:flex;justify-content:flex-start;flex-wrap:wrap;gap:8px;margin:8px 0 12px}
.conversation-chip{border:1px solid var(--body-line);border-radius:999px;padding:12px 18px;min-height:44px;font-size:14px;background:var(--body-paper);line-height:1.3}
.conversation-chip:hover{background:var(--body-accent);border-color:var(--body-ink)}
.conversation-composer{border:1px solid var(--body-line);border-radius:36px;background:var(--body-paper);padding:12px 14px;box-shadow:0 8px 40px #2f40570a}
.conversation-input-line{display:flex;align-items:center;gap:8px}
.conversation-input{display:block;border:0;background:transparent;color:var(--body-ink);resize:none;font:inherit;font-size:16px;line-height:1.5;flex:1;width:100%;min-width:0;min-height:44px;max-height:144px;padding:12px 10px;outline-offset:0;border-radius:12px}
.conversation-input::placeholder{color:var(--body-muted);opacity:1}
.conversation-send,.conversation-attach,.conversation-mic{width:44px;min-height:44px;padding:10px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:50%}
.conversation-send{background:var(--body-ink);color:var(--body-paper)}
.conversation-send:disabled{background:var(--body-surface);color:var(--body-muted);cursor:default}
.conversation-attach:hover,.conversation-mic:hover{background:var(--body-surface)}
.conversation-mic.is-recording{background:#b42332;color:#fff}
.conversation-surface svg,.chat-launcher svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.conversation-file{display:none}
.conversation-files{display:flex;gap:8px;flex-wrap:wrap;padding:2px 8px 10px}
.file-chip{display:inline-flex;align-items:center;gap:12px;border-radius:14px;background:var(--body-surface);padding:8px 12px;font-size:14px;max-width:100%}
.file-chip span{overflow-wrap:anywhere}
.file-remove{font-size:13px;min-height:32px;text-decoration:underline}
.conversation-prepare{font-size:14px;min-height:40px;padding:8px 4px;text-decoration:underline;text-underline-offset:4px}
.conversation-prepare{margin-left:auto}
.conversation-note{font-size:12px;line-height:1.5;color:var(--body-muted);margin:6px 0 0;text-align:center}
.conversation-note a{margin-left:5px;text-decoration:underline;text-underline-offset:3px}
.conversation-status{font-size:14px;line-height:1.5;border:1px solid var(--body-line);border-radius:20px;padding:14px 18px;margin-bottom:12px;background:var(--body-surface);display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.conversation-status .conversation-chip{padding:8px 14px;min-height:40px;background:var(--body-paper)}
.conversation-review{max-width:800px;margin:30px auto 20px;padding:30px;border-radius:28px;background:var(--body-surface)}
.conversation-review h2{font-family:Georgia,serif!important;font-size:2.25rem!important;font-weight:400;letter-spacing:-.04em;line-height:1.15}
.conversation-details{margin:24px 0}
.review-row{display:grid;grid-template-columns:130px 1fr auto;gap:14px;padding:14px 0;border-top:1px solid var(--body-line);font-size:15px;align-items:start}
.review-row dt{color:var(--body-muted)}
.review-row dd{margin:0;overflow-wrap:anywhere;white-space:pre-wrap}
.review-edit{min-height:36px;padding:2px 8px;border-radius:8px;text-decoration:underline;font-size:14px}
.conversation-check{display:flex;gap:12px;align-items:flex-start;font-size:14px;line-height:1.6}
.conversation-check input{width:20px;height:20px;flex:0 0 20px;margin-top:3px;accent-color:#2f4057}
.conversation-check a{text-decoration:underline;text-underline-offset:3px}
.conversation-review-actions{display:flex;gap:20px;align-items:center;flex-wrap:wrap;margin-top:24px}
.conversation-submit{padding:12px 20px;border-radius:999px;min-height:48px;display:inline-flex;align-items:center;justify-content:center;background:var(--body-ink);color:var(--body-paper);font-size:15px;line-height:1.4}
.conversation-submit:disabled{opacity:.5;cursor:wait}
.conversation-help{font-size:14px!important;line-height:1.6!important;color:var(--body-muted);margin-top:18px!important}
.conversation-page .production-footer{margin-top:40px}
.conversation-page .conversation-surface{border-bottom:1px solid var(--body-line)}
@media(max-width:820px){
 .conversation-dialog{inset:78px 0 0;height:calc(100dvh - 78px)}
 .conversation-surface{height:calc(100dvh - 78px);min-height:480px;padding:12px 18px 18px}
 .conversation-toolbar{padding-bottom:6px}
 .conversation-feed{padding:8px 2px 20px}
 .conversation-title{font-size:2.5rem!important;margin-top:50px}
 .conversation-message.user{max-width:90%;padding:14px 18px}
 .conversation-composer{padding:8px;border-radius:28px}
 .conversation-input-line{flex-wrap:wrap;gap:4px}
 .conversation-input{flex-basis:calc(100% - 50px);padding:10px 12px}
 .conversation-attach{order:2;margin-left:4px}
 .conversation-mic{order:3}
 .conversation-send{order:4;margin-left:auto}
 .conversation-input{order:1;flex-basis:100%}
 .conversation-review{padding:22px 18px;margin-top:12px}
 .review-row{grid-template-columns:1fr auto;gap:6px 12px}
 .review-row dt{grid-column:1;font-size:13px}
 .review-row dd{grid-row:2;grid-column:1}
 .review-edit{grid-row:1/3;grid-column:2}
 .conversation-note{font-size:12px;text-align:left}
}
@media(max-height:650px){.conversation-title{margin-top:20px}.conversation-surface{min-height:0}.conversation-note{max-height:40px;overflow:auto}}

@media(max-width:580px){.conversation-dialog{inset:74px 0 0;height:calc(100dvh - 74px)}.conversation-surface{height:calc(100dvh - 74px)}.conversation-message{max-width:100%}}

/* The holding page has no navigation header above the conversation. */
.contact-dialog.conversation-dialog {
  inset: 0;
  width: 100%;
  height: 100dvh;
  max-width: none;
  max-height: none;
  padding: 0;
  margin: 0;
  border: 0;
}
.contact-dialog .conversation-surface {
  height: 100%;
  min-height: 0;
  padding: max(24px, env(safe-area-inset-top)) clamp(18px, 5vw, 60px) max(24px, env(safe-area-inset-bottom));
}
.conversation-note { margin-top: 8px; }
.contact-dialog[open] { animation: conversation-enter 380ms cubic-bezier(.2,.8,.2,1) both; }
.contact-dialog[open].is-closing { animation: conversation-exit 180ms ease-in both; pointer-events: none; }
.contact-dialog .is-new { animation: conversation-message-enter 220ms ease-out both; }
body > :is(.masthead, main, footer) { transition: filter 240ms ease; }
.conversation-open > :is(.masthead, main, footer) { filter: blur(4px); }
.conversation-input:disabled { opacity: .6; }
.conversation-dots { display: inline-flex; align-items: center; gap: 5px; height: 26px; }
.conversation-dots span { width: 4px; height: 4px; border-radius: 50%; background: var(--body-muted); animation: conversation-dot 900ms ease-in-out infinite; }
.conversation-dots span:nth-child(2) { animation-delay: 120ms; }
.conversation-dots span:nth-child(3) { animation-delay: 240ms; }
@keyframes conversation-enter {
  from { opacity: 0; filter: blur(6px); transform: translateY(10px); }
  to { opacity: 1; filter: blur(0); transform: translateY(0); }
}
@keyframes conversation-exit {
  from { opacity: 1; filter: blur(0); transform: translateY(0); }
  to { opacity: 0; filter: blur(4px); transform: translateY(6px); }
}
@keyframes conversation-message-enter {
  from { opacity: 0; filter: blur(2px); transform: translateY(4px); }
  to { opacity: 1; filter: blur(0); transform: translateY(0); }
}
@keyframes conversation-dot { 0%, 80%, 100% { opacity: .35; } 40% { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  .contact-dialog[open], .contact-dialog[open].is-closing, .contact-dialog .is-new, .conversation-dots span { animation: none; }
  body > :is(.masthead, main, footer) { transition: none; }
  .conversation-open > :is(.masthead, main, footer) { filter: none; }
}
@media (max-width: 580px) {
  .contact-dialog .conversation-surface {
    padding: max(16px, env(safe-area-inset-top)) 18px max(16px, env(safe-area-inset-bottom));
  }
  .conversation-input-line { flex-wrap: nowrap; }
  .conversation-input { order: 0; flex-basis: auto; }
}
