/* Deluxe Cruises concierge: familiar branding, with the conversation first. */
:root {
  --navy: #103b57;
  --deep: #08283e;
  --ink: #173247;
  --gold: #c7a257;
  --paper: #f3f8fa;
  --line: #d8e3e8;
  --muted: #526774;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 20px; }
body { margin: 0; color: var(--ink); background: radial-gradient(ellipse at top left, #23485d 0, transparent 60%), #091f30; font: 15px/1.6 "Segoe UI", Arial, sans-serif; }
button, input, textarea, select { font: inherit; }
button, a, select, input, textarea { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
a { color: inherit; text-underline-offset: 4px; }
a:hover { color: #80602b; }
button:disabled { cursor: not-allowed; opacity: .55; }
:focus-visible { outline: 3px solid #9a711f; outline-offset: 4px; }
h1, h2, h3, p { margin-top: 0; }
h2 { font: 400 30px/1.2 Georgia, "Times New Roman", serif; }
h3 { font-size: 16px; line-height: 1.4; }
p { margin-bottom: 16px; }
img { max-width: 100%; }
[hidden] { display: none !important; }
.skip { position: absolute; top: -70px; z-index: 20; background: white; padding: 12px; }
.skip:focus { top: 0; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
.section-width, .site-header { width: min(1260px, calc(100% - 48px)); margin-inline: auto; }
.site-header { margin-top: 22px; border: 1px solid #ffffff8c; border-radius: 10px; box-shadow: 0 10px 34px #123b5614; position: relative; }
.header-top { display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 15px 23px; background: linear-gradient(115deg, #0a253a, #125b80); border-radius: 9px 9px 0 0; }
.brand { display: flex; align-items: center; gap: 13px; text-decoration: none; color: white; flex-shrink: 0; }
.brand:hover { color: white; }
.brand img { width: 58px; height: 58px; object-fit: cover; border: 1px solid #c7a25788; border-radius: 7px; }
.brand strong { display: block; font: 400 31px/1.1 Georgia, serif; }
.brand small { display: block; font-size: 10px; color: #e7c878; text-transform: uppercase; letter-spacing: 1.15px; margin-top: 6px; }
.primary-nav { display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.primary-nav a { border: 1px solid #ffffff36; border-radius: 6px; background: #ffffff10; color: white; padding: 9px 12px; font-size: 12px; font-weight: 600; text-decoration: none; white-space: nowrap; }
.primary-nav a:hover { background: white; color: var(--deep); }
.primary-nav .quote-link { background: #fff4f3; border-color: #dd7378; color: #b31220; }
.line-nav { display: flex; align-items: center; justify-content: space-between; gap: 6px; padding: 10px 16px; background: #f0f8fc; border-radius: 0 0 9px 9px; overflow-x: auto; scrollbar-width: thin; }
.line-nav a { flex-shrink: 0; font-size: 11px; font-weight: 600; text-decoration: none; padding: 7px 9px; border: 1px solid #d0e1eb; border-radius: 5px; background: #fff; }
.mobile-nav { display: none; }
.hero { display: flex; align-items: center; justify-content: space-between; gap: 28px; padding: 24px 4px 20px; }
.eyebrow { font-size: 10px; letter-spacing: 2px; font-weight: 700; color: #80612d; margin-bottom: 10px; }
.hero h1 { font: 400 clamp(30px, 3vw, 43px)/1.18 Georgia, serif; letter-spacing: -.7px; margin-bottom: 9px; color: #fff; }
.hero h1 em { font-weight: 400; color: #e4c589; }
.hero .eyebrow { color: #e4c589; }
.hero-description { font-size: 14px; color: #c5d5df; margin: 0; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 15px; min-height: 43px; border: 1px solid transparent; border-radius: 6px; padding: 11px 17px; text-decoration: none; font-size: 13px; font-weight: 600; line-height: 1.4; }
.gold { background: #f3e3bc; border-color: #d6bc80; color: #45351c; }
.gold:hover { background: #eddaa9; color: #45351c; }
.navy { background: var(--navy); color: white; }
.navy:hover { background: var(--deep); color: white; }
.outline { background: #fff; border-color: #c6d5de; color: #b31220; }
.outline:hover { background: #fff4f3; color: #9c1723; }
.whatsapp { background: #edf7f1; border-color: #b5d6c2; color: #24623f; }
.whatsapp:hover { background: #e0f0e7; color: #184c2e; }
.jump-to-chat { flex-shrink: 0; }
.workspace { display: grid; grid-template-columns: minmax(0, 1fr) 292px; gap: 25px; align-items: start; padding-bottom: 30px; }
.chat-panel { grid-column: 1; grid-row: 1; min-width: 0; background: #fff; border: 1px solid #bdcfd9; border-top: 3px solid var(--gold); border-radius: 10px; box-shadow: 0 16px 42px #103b5714; overflow: hidden; }
.chat-top { display: flex; align-items: center; gap: 13px; padding: 17px 24px; border-bottom: 1px solid var(--line); background: #fff; }
.concierge-emblem { flex: 0 0 43px; height: 43px; display: grid; place-items: center; background: #edf4f7; border: 1px solid #d3e2e9; border-radius: 50%; color: #24516b; }
.concierge-emblem svg { width: 24px; height: 24px; }
.chat-heading { min-width: 0; }
.chat-top h2 { font-size: clamp(20px, 1.7vw, 24px); margin: 0 0 5px; }
.chat-top p { font-size: 11px; color: #795a26; margin: 0; }
#service-status::before { content: ''; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: #af8740; margin-right: 6px; vertical-align: 1px; }
#service-status[data-state="ready"] { color: #24623f; }
#service-status[data-state="ready"]::before { background: #367b51; }
.language-label { flex: 0 0 156px; margin: 0 0 0 auto; font-size: 10px; color: var(--muted); }
.language-label > span { display: block; margin-bottom: 4px; }
.language-label select { min-height: 36px; font-size: 11px; padding: 7px 24px 7px 9px; margin: 0; background: #f7fafb; }
label { display: block; font-size: 12px; font-weight: 600; margin: 15px 0 6px; }
input, select, textarea { display: block; width: 100%; border: 1px solid #b9cbd5; border-radius: 5px; color: var(--ink); background: #fff; padding: 11px 12px; font-size: 15px; margin-top: 5px; }
select { min-height: 46px; padding-right: 26px; }
textarea { resize: vertical; }
.messages { max-height: 360px; overflow-y: auto; overscroll-behavior: contain; padding: 20px 26px 0; background: #fff; }
.chat-panel.has-conversation .messages { height: 360px; padding-bottom: 8px; background: #f7fafc; }
.message { max-width: 95%; padding: 18px 20px; border: 1px solid var(--line); border-radius: 0 9px 9px 9px; margin-bottom: 18px; font-size: 14px; background: white; overflow-wrap: anywhere; }
.message p:last-child { margin-bottom: 0; }
.message h3 { font: 400 26px/1.3 Georgia, serif; margin-bottom: 9px; }
.message-byline { font-size: 10px; letter-spacing: 1.6px; color: #846631; font-weight: 700; margin-bottom: 9px; }
.message.welcome { padding: 0; border: 0; max-width: 100%; margin: 0; background: transparent; }
.welcome > p:last-child { max-width: 590px; color: var(--muted); font-size: 14px; }
.has-conversation .welcome { margin-bottom: 22px; }
.message.user { background: var(--navy); color: #fff; margin-left: auto; max-width: 85%; border-radius: 9px 0 9px 9px; }
.message.user .message-byline { color: #edd9ae; }
.message .answer-text { white-space: pre-wrap; }
.starter-questions { display: flex; flex-wrap: wrap; gap: 8px; padding: 14px 26px 18px; }
.starter-questions button { display: flex; gap: 14px; align-items: center; min-height: 37px; border: 1px solid #d0dfe7; border-radius: 5px; background: #f5f9fb; color: #28516a; padding: 8px 12px; font-size: 12px; line-height: 1.3; }
.starter-questions button:hover { background: #e8f2f7; border-color: #86a9be; }
.starter-questions span { color: #89682f; }
.has-conversation .starter-questions { display: none; }
.chat-bottom { padding: 19px 26px 16px; background: #f5f8fa; border-top: 1px solid var(--line); }
.composer-label { display: flex; justify-content: space-between; margin: 0 0 9px; color: #143e59; font-size: 14px; font-weight: 700; }
.composer-label > span { color: #8d6d34; }
.composer { display: flex; gap: 12px; align-items: flex-end; border: 2px solid #3e7798; border-radius: 8px; padding: 12px; background: #fff; box-shadow: 0 3px 12px #123b5609; }
.composer:focus-within { border-color: #916c29; outline: 3px solid #d6bd8c4d; outline-offset: 2px; }
.composer textarea { min-width: 0; min-height: 75px; max-height: 180px; border: 0; border-radius: 0; resize: vertical; padding: 5px; margin: 0; font-size: 16px; line-height: 1.5; }
.composer textarea::placeholder { color: #667b87; opacity: 1; }
.composer textarea:focus-visible { outline: none; }
.send { display: flex; align-items: center; justify-content: center; gap: 12px; flex-shrink: 0; min-height: 44px; padding: 10px 16px; border: 0; border-radius: 5px; background: #123f5b; color: #fff; font-size: 14px; font-weight: 600; }
.send:hover { background: #08283e; }
.send > span:last-child { font-size: 22px; line-height: 1; }
.check-label { display: flex; align-items: flex-start; gap: 9px; font-weight: 400; line-height: 1.5; margin: 12px 0; }
.check-label input { width: 17px; height: 17px; flex: 0 0 17px; margin: 1px 0; accent-color: var(--navy); }
.chat-consent { font-size: 11px; color: var(--muted); }
.chat-footnote { display: flex; justify-content: space-between; align-items: center; gap: 12px; color: var(--muted); font-size: 10px; }
.text-button { border: 0; background: none; color: var(--muted); text-decoration: underline; font-size: 11px; padding: 5px 0; }
.feedback { font-size: 13px; line-height: 1.6; color: #74521e; background: #fff8e9; border-left: 3px solid #be9551; padding: 10px 12px; margin: 0 0 14px; }
.feedback:empty { display: none; }
.contact-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.chat-contact { margin: 0; padding: 17px 26px; background: #fff; border-top: 1px solid var(--line); }
.chat-contact > span { margin-right: auto; font-size: 13px; font-weight: 600; }
.chat-contact small { display: block; color: var(--muted); font-size: 11px; font-weight: 400; margin-top: 2px; }
.contact-actions .button { min-height: 40px; font-size: 12px; padding: 9px 13px; }
.explore-panel { grid-column: 2; grid-row: 1; padding: 22px; border: 1px solid #ffffff24; border-radius: 10px; background: #12354b; color: #f3f7fa; }
.explore-panel .eyebrow { color: #e4c589; }
.explore-panel .muted { color: #bfd0dc; }
.explore-panel .ship-guide { color: var(--ink); }
.explore-panel h2 { font-size: 25px; margin-bottom: 10px; }
.muted { color: var(--muted); font-size: 13px; }
.ship-guide { background: #fff; padding: 13px; margin-top: 15px; font-size: 12px; border-left: 2px solid var(--gold); }
.ship-guide p { margin: 8px 0; }
.ship-guide a { display: block; margin-top: 6px; }
.directory-link { display: flex; justify-content: space-between; text-decoration: none; font-size: 12px; margin-top: 18px; color: #e4c589; }
.directory-link:hover { color: #fff; }
.aside-divider { border-top: 1px solid #ffffff26; margin: 24px 0 18px; }
.explore-panel h3 { font: 400 20px Georgia, serif; margin-bottom: 6px; }
.quick-questions { display: grid; }
.quick-questions button, .quick-questions a { display: flex; justify-content: space-between; align-items: center; gap: 10px; text-align: left; background: transparent; border: 0; border-bottom: 1px solid #ffffff1c; padding: 11px 0; color: #e0eaf0; font-size: 12px; text-decoration: none; line-height: 1.5; }
.quick-questions button:hover, .quick-questions a:hover { color: #f1d59b; }
.quick-questions > :last-child { border-bottom: 0; padding-bottom: 0; }
.quick-questions span { color: #dec18b; }
.benefit-strip { display: flex; align-items: center; justify-content: space-between; gap: 24px; border-block: 1px solid #ffffff24; padding: 18px 4px; font-size: 12px; color: #c5d5df; }
.benefit-strip b { font: 400 23px Georgia, serif; color: #e4c589; margin-right: 6px; }
.value-section { padding: 45px 4px; display: grid; grid-template-columns: 1fr 1.1fr; gap: 90px; color: #f3f7fa; }
.value-section .eyebrow { color: #e4c589; }
.value-section h2 { font-size: 36px; }
.value-section > div > p:not(.eyebrow) { font-size: 14px; max-width: 450px; color: #bfd0dc; }
.value-section .button { margin-top: 6px; background: #fff5f4; color: #b31220; border-color: #dd999c; }
.value-section a:hover { color: #e4c589; }
.value-section .button:hover { background: #fff; color: #8f0e16; }
.value-list article { display: flex; gap: 21px; border-bottom: 1px solid #ffffff24; padding: 17px 0; }
.value-list article:first-child { padding-top: 2px; }
.value-list article > span { font: 400 24px Georgia, serif; color: #e4c589; }
.value-list h3 { margin-bottom: 7px; font-size: 15px; }
.value-list p { font-size: 13px; color: #bfd0dc; margin: 0; }
.privacy { padding: 0 4px 32px; font-size: 12px; color: #c5d5df; }
.privacy a:hover { color: #e4c589; }
details summary { cursor: pointer; font-weight: 600; padding: 10px 0; }
.privacy details p { max-width: 950px; }
.privacy details p:first-of-type { margin-top: 15px; }
footer { background: var(--deep); color: #c3d2dc; padding: 28px max(24px, calc((100vw - 1252px)/2)); display: flex; align-items: center; justify-content: space-between; gap: 24px; font-size: 12px; }
footer a:hover { color: #edd9ae; }
.footer-brand { font: 400 20px Georgia, serif; letter-spacing: 1px; text-decoration: none; color: #edd9ae; }
dialog { border: 1px solid #d2dae0; border-radius: 10px; max-width: 710px; width: calc(100% - 28px); max-height: 90vh; padding: 34px; color: var(--ink); box-shadow: 0 20px 100px #0004; }
dialog::backdrop { background: #02192bc7; }
dialog h2 { font-size: 33px; max-width: 520px; }
dialog > p { font-size: 13px; color: var(--muted); }
.close-dialog { position: absolute; right: 12px; top: 8px; background: none; border: 0; color: var(--ink); font-size: 28px; padding: 5px 10px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
.notice { background: #fff8e9; border-left: 3px solid var(--gold); padding: 14px; font-size: 12px; }
.source-links { border-top: 1px solid var(--line); margin-top: 18px; padding-top: 12px; font-size: 12px; }
.source-links a { display: block; margin: 7px 0; }
.source-links small { display: block; color: var(--muted); }
.table-scroll { overflow-x: auto; margin: 15px 0; }
table { border-collapse: collapse; font-size: 12px; width: 100%; }
th, td { border: 1px solid var(--line); padding: 9px; text-align: start; min-width: 110px; }
th { background: var(--paper); }
[dir="rtl"] .message { border-radius: 9px 0 9px 9px; }
[dir="rtl"] .message.user { margin-right: auto; margin-left: 0; }
@media (max-width: 1120px) {
  .primary-nav { gap: 5px; }
  .primary-nav a { padding: 8px; font-size: 11px; }
  .brand strong { font-size: 27px; }
  .brand img { width: 50px; height: 50px; }
  .workspace { grid-template-columns: minmax(0, 1fr) 256px; gap: 20px; }
  .explore-panel { padding: 19px; }
  .chat-top { flex-wrap: wrap; gap: 10px; padding: 18px 20px; }
  .language-label { flex-basis: 140px; }
  .chat-top h2 { font-size: 21px; }
  .messages { padding: 22px 22px 0; }
  .starter-questions { padding-inline: 22px; }
  .chat-bottom, .chat-contact { padding-inline: 22px; }
  .value-section { gap: 50px; }
}
@media (max-width: 960px) {
  .section-width, .site-header { width: calc(100% - 32px); }
  .primary-nav { display: none; }
  .mobile-nav { display: block; color: #fff; }
  .mobile-nav summary { list-style: none; display: flex; align-items: center; gap: 9px; font-size: 13px; border: 1px solid #ffffff55; border-radius: 5px; padding: 9px 12px; }
  .mobile-nav summary::-webkit-details-marker { display: none; }
  .mobile-nav nav { position: absolute; right: 12px; top: 77px; z-index: 5; min-width: 230px; padding: 10px; background: #fff; border: 1px solid var(--line); border-radius: 7px; box-shadow: 0 15px 50px #123b5633; }
  .mobile-nav nav a { display: block; padding: 10px 12px; color: var(--ink); text-decoration: none; }
  .mobile-nav nav a:hover { background: #edf4f8; }
  .workspace { grid-template-columns: minmax(0, 1fr) 238px; gap: 16px; }
  .chat-top { display: grid; grid-template-columns: 43px minmax(0, 1fr); }
  .chat-top .language-label { grid-column: 2; margin-left: 0; width: auto; display: flex; align-items: center; gap: 8px; }
  .language-label > span { white-space: nowrap; margin: 0; }
  .chat-top .language-label select { width: 138px; }
  .chat-contact > span { flex-basis: 100%; }
  .hero h1 { font-size: 34px; }
}
@media (max-width: 760px) {
  html { scroll-padding-top: 12px; }
  .section-width, .site-header { width: calc(100% - 24px); }
  .site-header { margin-top: 12px; }
  .header-top { padding: 13px 15px; gap: 14px; border-radius: 9px; }
  .brand { gap: 10px; }
  .brand strong { font-size: 24px; }
  .brand small { font-size: 8px; letter-spacing: .7px; margin-top: 5px; }
  .brand img { width: 44px; height: 44px; }
  .line-nav { display: none; }
  .mobile-nav summary { padding: 8px 10px; font-size: 12px; }
  .mobile-nav nav { top: 65px; }
  .hero { padding: 23px 5px 20px; display: block; }
  .hero h1 { font-size: clamp(27px, 5.8vw, 36px); letter-spacing: -.5px; margin-bottom: 8px; }
  .hero .eyebrow { font-size: 9px; letter-spacing: 1.5px; margin-bottom: 8px; }
  .hero-description { font-size: 13px; max-width: 340px; }
  .jump-to-chat { display: none; }
  .workspace { display: flex; flex-direction: column; gap: 24px; padding-bottom: 24px; }
  .chat-panel { width: 100%; order: 0; }
  .chat-top { grid-template-columns: 36px minmax(0, 1fr); padding: 15px 17px 13px; gap: 10px; }
  .concierge-emblem { flex-basis: 36px; height: 36px; }
  .concierge-emblem svg { width: 21px; height: 21px; }
  .chat-heading { flex: 1; }
  .chat-top h2 { font-size: 19px; margin-bottom: 4px; }
  .chat-top p { font-size: 10px; }
  .chat-top .language-label { margin-left: 0; width: auto; }
  .chat-top .language-label select { min-height: 32px; font-size: 11px; }
  .messages { padding: 20px 18px 0; }
  .chat-panel.has-conversation .messages { height: 310px; }
  .message { max-width: 100%; padding: 16px; }
  .message.welcome { padding: 0; }
  .message h3 { font-size: 23px; }
  .welcome .message-byline, .welcome h3 { display: none; }
  .welcome > p:last-child { font-size: 13px; }
  .starter-questions { padding: 12px 18px 16px; gap: 7px; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin; }
  .starter-questions button { flex: 0 0 auto; white-space: nowrap; font-size: 11px; padding: 8px 10px; min-height: 36px; gap: 9px; }
  .chat-bottom { padding: 16px 17px 13px; }
  .composer { gap: 8px; padding: 9px; }
  .composer-label { font-size: 13px; }
  .composer textarea { min-height: 84px; font-size: 16px; }
  .send { padding: 10px 12px; gap: 8px; font-size: 13px; }
  .chat-consent { font-size: 11px; }
  .chat-footnote { align-items: flex-start; font-size: 10px; gap: 15px; }
  .chat-footnote > span { max-width: 200px; }
  .text-button { text-align: right; padding-top: 0; }
  .chat-contact { padding: 16px 17px; gap: 9px; }
  .chat-contact > span { flex-basis: 100%; }
  .contact-actions .button { flex: 1; }
  .explore-panel { width: 100%; padding: 22px; order: 1; }
  .quick-questions { grid-template-columns: 1fr 1fr; column-gap: 20px; }
  .quick-questions > :last-child { padding-bottom: 11px; }
  .benefit-strip { flex-wrap: wrap; gap: 13px 20px; padding: 17px 5px; font-size: 11px; }
  .benefit-strip > span { flex-basis: calc(50% - 10px); }
  .value-section { display: block; padding: 30px 8px; }
  .value-section h2 { font-size: 31px; }
  .value-list { margin-top: 30px; }
  .privacy { padding: 0 8px 28px; }
  footer { flex-direction: column; align-items: flex-start; padding: 27px 20px; gap: 12px; }
  dialog { padding: 28px 20px; }
  dialog h2 { font-size: 28px; }
  .form-grid { gap: 0 12px; }
}
@media (max-width: 380px) {
  .brand strong { font-size: 21px; }
  .brand img { width: 37px; height: 37px; }
  .brand small { font-size: 7px; }
  .header-top { padding-inline: 12px; }
  .mobile-nav summary { padding: 8px; }
  .hero h1 { font-size: 28px; }
  .chat-top h2 { font-size: 18px; }
  .chat-top .language-label { grid-column: 1 / -1; margin-left: 0; }
  .starter-questions button { gap: 7px; }
  .form-grid, .quick-questions { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* Visible, clickable references beside the claims they support. */
.inline-citation{display:inline-flex;align-items:center;justify-content:center;min-width:24px;min-height:24px;padding:0 3px;border-radius:4px;color:#0c3048;background:#edf3f6;font-size:.78em;font-weight:700;text-decoration:underline;text-underline-offset:2px;vertical-align:baseline}.inline-citation:hover,.inline-citation:focus-visible{background:#e7d6b2;color:#09293e;outline:2px solid #916c32;outline-offset:2px}.research-note{font-size:.78rem;color:#526879;margin:.5rem 0;}

/* Conversation layout, using the Deluxe Cruises homepage palette and wordmark. */
body { min-height: 100vh; background: radial-gradient(circle at 16% 0%, #59aad234, transparent 34rem), radial-gradient(circle at 88% 10%, #c7a25724, transparent 30rem), linear-gradient(#071827, #0a2740 43%, #082138 72%, #061523); background-color: #071c2e; }
.section-width, .site-header { width: min(1220px, calc(100% - 48px)); }
.site-header { margin-top: 26px; border-radius: 8px; border-color: #d7e7ef; box-shadow: 0 18px 50px #0002; }
.header-top { min-height: 96px; padding: 17px 20px; border-radius: 7px 7px 0 0; background: linear-gradient(110deg, #102e43, #1c6489); }
.brand strong { font-size: 36px; font-weight: 700; letter-spacing: -.7px; }
.brand small { font-size: 10px; letter-spacing: .5px; font-weight: 700; }
.brand img { width: 62px; height: 62px; }
.primary-nav a { font-size: 12px; padding: 10px 12px; background: #ffffff1c; }
.line-nav { padding: 11px 16px; justify-content: flex-start; gap: 7px; background: #f0f9ff; }
.line-nav a { padding: 8px 9px; font-size: 11px; }
.hero { padding: 28px 4px 26px; gap: 28px; }
.hero h1 { font-size: clamp(34px, 3.1vw, 48px); line-height: 1.12; letter-spacing: -.7px; margin-bottom: 13px; }
.hero h1 em { font-style: normal; color: #e6c982; }
.hero-description { font-size: 15px; line-height: 1.6; color: #c7d7e3; }
.hero .eyebrow { letter-spacing: 1.6px; font-size: 10px; margin-bottom: 13px; }
.jump-to-chat { border-radius: 6px; color: #18344a; background: linear-gradient(110deg,#f0daa3,#d3b365); border-color: #ddc286; padding: 13px 20px; }
.workspace { grid-template-columns: minmax(0, 1fr) 282px; gap: 24px; padding-bottom: 30px; }
.chat-panel { border: 1px solid #d3e0e7; border-top: 3px solid #d4b571; border-radius: 12px; box-shadow: 0 22px 64px #0003; }
.chat-top { padding: 20px 26px; gap: 14px; background: linear-gradient(120deg,#fff,#f5f8fa); }
.concierge-emblem { flex-basis: 44px; height: 44px; border-color: #decca2; color: #8b692c; background: #fbf7ed; }
.chat-top h2 { font-size: 25px; margin-bottom: 5px; }
.chat-top p { font-size: 11px; }
.language-label { flex-basis: 143px; font-size: 10px; }
.language-label select { font-size: 12px; min-height: 40px; background: #fff; border-color: #c9d8e1; }
.messages { position: relative; padding: 21px 28px 0; }
.message.welcome { margin: 0; }
.welcome h3 { font-size: 25px; margin: 0 0 7px; }
.welcome > p:last-child { font-size: 14px; line-height: 1.6; margin-bottom: 0; max-width: 610px; }
.has-conversation .welcome { display: none; }
.chat-panel.has-conversation .messages { height: 350px; max-height: 52vh; padding: 24px 26px 10px; background: #f2f6f8; }
.message { font-size: 15px; line-height: 1.7; border-radius: 0 12px 12px 12px; padding: 19px 21px; }
.message.user { background: #174660; border-radius: 12px 0 12px 12px; }
.message-byline { font-size: 9px; letter-spacing: 1.3px; }
.pending-answer { color: #566e7c; }
.pending-answer .answer-text::before { content: ''; display: inline-block; width: 8px; height: 8px; margin: 0 10px 1px 0; border-radius: 50%; background: #b18c48; animation: concierge-pulse 1.2s ease-in-out infinite alternate; }
@keyframes concierge-pulse { to { opacity: .3; } }
.chat-bottom { padding: 21px 28px 14px; background: #fff; border-top: 0; }
.composer-label { font-size: 14px; margin-bottom: 9px; }
.composer-label > span { font-size: 11px; font-weight: 400; color: #647784; }
.composer { display: block; padding: 14px 16px 12px; border: 2px solid #597f98; border-radius: 10px; box-shadow: 0 4px 18px #143e5910; }
.composer:focus-within { border-color: #a6813e; outline: 3px solid #e9d9b552; }
.composer textarea { width: 100%; min-height: 76px; max-height: 180px; padding: 2px 0; font-size: 17px; line-height: 1.6; resize: vertical; }
.composer textarea::placeholder { color: #657b88; }
.composer textarea[readonly] { color: #70818c; }
.composer-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; }
.keyboard-hint { color: #71818c; font-size: 10px; }
.send { min-height: 46px; border-radius: 6px; background: #123e59; padding: 11px 19px; font-size: 14px; gap: 18px; }
.send:hover { background: #1d5574; }
.chat-consent { margin: 12px 0 11px; font-size: 11px; align-items: center; }
.chat-consent input { width: 20px; height: 20px; flex-basis: 20px; margin: 0; }
.chat-footnote { color: #647784; font-size: 10px; }
.text-button { min-height: 32px; display: inline-flex; align-items: center; font-size: 11px; }
.starter-questions { padding: 2px 28px 23px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; overflow: visible; }
.starter-label { grid-column: 1/-1; font-size: 9px; letter-spacing: 1.3px; font-weight: 700; margin: 0 0 2px; color: #7f6537; }
.starter-questions button { min-height: 43px; padding: 10px 13px; justify-content: space-between; border-radius: 6px; background: #f7fafb; font-size: 12px; white-space: normal; text-align: left; }
.starter-questions button:hover { background: #f4eddd; border-color: #d1b77b; color: #173e56; }
.chat-contact { padding: 17px 28px; background: #f4f8fa; }
.chat-contact > span { font-size: 12px; }
.chat-contact small { font-size: 11px; }
.chat-contact .button { min-height: 42px; }
.explore-panel { padding: 25px 23px; border-radius: 10px; border: 1px solid #d3b47460; background: linear-gradient(130deg,#17384e,#102d43); box-shadow: 0 10px 32px #0001; }
.explore-panel .eyebrow { font-size: 9px; letter-spacing: 1.4px; margin-bottom: 14px; }
.explore-panel h2 { font-size: 28px; line-height: 1.18; margin-bottom: 14px; }
.explore-panel .muted { font-size: 13px; line-height: 1.7; }
.explore-panel label { font-size: 12px; color: #e4ecf1; margin-top: 19px; }
.explore-panel select { min-height: 46px; font-size: 13px; border-color: #b7cbd6; background: #f8fbfd; }
.directory-link { min-height: 30px; align-items: center; font-size: 12px; }
.aside-divider { margin: 22px 0 16px; }
.compare-shortcut { background: transparent; border: 0; color: #edd297; text-align: left; padding: 8px 0 14px; display: flex; gap: 10px; justify-content: space-between; width: 100%; font: inherit; font-size: 12px; line-height: 1.6; }
.compare-shortcut:hover { color: #fff; }
.more-topics summary { border-top: 1px solid #ffffff24; font-size: 12px; color: #dfebf3; padding: 14px 0; font-weight: 400; }
.quick-questions { grid-template-columns: 1fr; }
.quick-questions button, .quick-questions a { min-height: 43px; font-size: 12px; }
.aside-note { font-size: 11px; line-height: 1.7; color: #b2c7d5; border-top: 1px solid #ffffff24; padding-top: 16px; margin: 4px 0 0; }
.benefit-strip { font-size: 12px; padding: 21px 4px; color: #cbdbe5; }
.value-section { padding-top: 44px; padding-bottom: 38px; gap: 65px; }
.value-section h2 { font-size: 34px; }
.value-list article { padding: 15px 0; }
footer { background: #061a2c; padding-inline: max(24px,calc((100vw - 1212px)/2)); }
.source-links { font-size: 12px; line-height: 1.6; }
.inline-citation { min-width: 28px; min-height: 28px; }
@media (max-width: 1120px) {
 .brand strong { font-size: 29px; } .brand img { width: 52px; height: 52px; }
 .primary-nav a { font-size: 11px; padding: 9px; }
 .workspace { grid-template-columns: minmax(0,1fr) 250px; gap: 18px; }
 .chat-top { padding: 18px 22px; gap: 10px; } .chat-top h2 { font-size: 22px; }
 .language-label { flex-basis: 127px; }
 .messages { padding-inline: 23px; } .chat-bottom, .chat-contact, .starter-questions { padding-inline: 23px; }
 .explore-panel { padding: 23px 20px; }
}
@media (max-width: 960px) {
 .header-top { min-height: 80px; }
 .hero h1 { font-size: 38px; }
 .chat-top { display: grid; grid-template-columns: 40px minmax(0,1fr); }
 .chat-top .language-label { grid-column: 1/-1; display: flex; gap: 10px; align-items: center; }
 .chat-top .language-label select { width: 150px; min-height: 36px; }
 .chat-top .language-label > span { margin-bottom: 0; }
 .composer-label > span, .keyboard-hint { display: none; }
 .composer-actions { justify-content: flex-end; }
 .chat-contact > span { flex-basis: 100%; }
}
@media (max-width: 760px) {
 .section-width, .site-header { width: calc(100% - 24px); }
 .site-header { margin-top: 12px; }
 .header-top { padding: 14px; border-radius: 7px; min-height: 75px; }
 .brand img { width: 43px; height: 43px; } .brand strong { font-size: 25px; }
 .brand small { font-size: 8px; letter-spacing: .2px; }
 .mobile-nav summary { padding: 10px; }
 .mobile-nav nav { top: 71px; }
 .hero { padding: 23px 4px 22px; }
 .hero .eyebrow { font-size: 8px; letter-spacing: 1.1px; margin-bottom: 10px; }
 .hero h1 { font-size: clamp(29px,7.8vw,40px); margin-bottom: 10px; }
 .hero-description { font-size: 13px; line-height: 1.6; max-width: 420px; }
 .desktop-break { display: none; }
 .workspace { display: flex; gap: 22px; }
 .chat-top { padding: 16px 18px 14px; grid-template-columns: 36px minmax(0,1fr); gap: 9px; }
 .concierge-emblem { height: 36px; } .chat-top h2 { font-size: 22px; }
 .chat-top p { font-size: 10px; }
 .chat-top .language-label { grid-column: 1/-1; justify-content: space-between; font-size: 10px; }
 .chat-top .language-label select { min-height: 36px; width: 155px; font-size: 12px; }
 .messages { padding: 16px 18px 0; }
 .welcome h3 { display: none; }
 .welcome > p:last-child { font-size: 13px; line-height: 1.55; }
 .chat-panel.has-conversation .messages { height: 300px; padding: 18px; }
 .message { padding: 15px; font-size: 15px; }
 .chat-bottom { padding: 17px 18px 12px; }
 .composer-label { font-size: 13px; }
 .composer { padding: 12px; }
 .composer textarea { font-size: 16px; min-height: 72px; line-height: 1.5; }
 .composer-actions { margin-top: 8px; }
 .send { min-height: 44px; font-size: 13px; padding: 10px 16px; gap: 14px; }
 .chat-consent { font-size: 11px; margin-top: 11px; }
 .chat-footnote { align-items: center; gap: 10px; font-size: 9px; }
 .chat-footnote > span { max-width: 155px; }
 .text-button { font-size: 10px; text-align: right; }
 .starter-questions { padding: 2px 18px 19px; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
 .starter-questions button { min-height: 44px; font-size: 11px; padding: 10px; gap: 6px; }
 .starter-label { font-size: 8px; }
 .chat-contact { padding: 17px 18px; }
 .chat-contact .button { flex: 1; }
 .explore-panel { padding: 23px; }
 .explore-panel h2 { font-size: 29px; }
 .quick-questions { grid-template-columns: 1fr 1fr; gap: 0 18px; }
 .benefit-strip { padding: 18px 5px; font-size: 11px; }
 .value-section { padding: 30px 6px; } .value-section h2 { font-size: 31px; }
 footer { padding-inline: 20px; }
}
@media (max-width: 380px) {
 .brand strong { font-size: 22px; } .brand img { width: 36px; height: 36px; }
 .brand small { font-size: 7px; } .header-top { gap: 9px; padding: 12px; }
 .mobile-nav summary { font-size: 11px; padding: 9px; }
 .hero h1 { font-size: 29px; } .hero-description { font-size: 12px; }
 .hero { padding-top: 19px; padding-bottom: 19px; }
 .chat-top h2 { font-size: 20px; }
 .messages, .chat-bottom, .starter-questions, .chat-contact { padding-left: 15px; padding-right: 15px; }
 .quick-questions { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { .pending-answer .answer-text::before { animation: none; } }
