.private-assistant-promise {
  display: block;
  font-family: var(--serif);
  font-size: clamp(1.9rem, 3vw, 2.75rem);
  line-height: 1.2;
  color: var(--light-gold);
  margin-bottom: .9rem;
}
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem 2rem; margin-top: 1.75rem; }
.hero-actions .hero-services-link { margin-top: 0; }
.private-assistant-cta {
  display: inline-flex; align-items: center; justify-content: space-between; gap: 1.5rem;
  background: var(--light-gold); color: var(--deep); border: 1px solid var(--light-gold);
  padding: .9rem 1.3rem; font-size: .875rem; line-height: 1.6; font-weight: 600;
}
.private-assistant-cta:hover { background: #f0ddba; }
.private-assistant { position: relative; z-index: 60; font-family: var(--sans); line-height: 1.6; }
.menu-is-open .private-assistant { visibility: hidden; }
.assistant-launcher {
  position: fixed; right: 1.5rem; bottom: calc(1.25rem + env(safe-area-inset-bottom, 0px));
  display: flex; align-items: center; justify-content: center; gap: .75rem;
  min-height: 3.5rem; padding: .85rem 1.3rem; border: 1px solid var(--gold); border-radius: 2rem;
  background: var(--wine); color: #fff; box-shadow: 0 5px 24px #07192538;
  font-size: .875rem; font-weight: 500; line-height: 1.4;
}
.assistant-launcher svg { color: var(--light-gold); flex-shrink: 0; }
.assistant-launcher:hover { background: #143b55; }
.assistant-invite {
  position: fixed; right: 1.5rem; bottom: calc(5.7rem + env(safe-area-inset-bottom, 0px));
  width: min(20rem, calc(100vw - 2rem)); padding: 1.3rem 1.2rem;
  color: var(--ink); background: var(--paper); border: 1px solid var(--line);
  border-top: 2px solid var(--gold); border-radius: .4rem; box-shadow: 0 8px 40px #07192524;
}
.assistant-invite[hidden] { display: none; }
.assistant-invite > p { padding-right: 1.5rem; font-family: var(--serif); color: var(--wine); font-size: 1.45rem; line-height: 1.2; margin-bottom: .5rem; }
.assistant-invite-close { position: absolute; top: .35rem; right: .35rem; width: 2rem; height: 2rem; border: 0; background: transparent; font-size: 1.4rem; line-height: 1; }
.assistant-invite-open { border: 0; background: transparent; text-align: left; padding: .25rem 0; font-size: .875rem; line-height: 1.7; color: var(--muted); }
.assistant-invite-open span { color: #87642e; margin-left: .25rem; }
.assistant-panel {
  position: fixed; inset: auto 1.5rem calc(5.7rem + env(safe-area-inset-bottom, 0px)) auto;
  width: min(26rem, calc(100vw - 2rem)); height: min(43rem, calc(var(--assistant-viewport-height, 100dvh) - 7rem));
  max-width: none; max-height: none; margin: 0; padding: 0;
  border: 1px solid #bca386; border-radius: .6rem; overflow: hidden;
  background: var(--paper); color: var(--ink); box-shadow: 0 18px 70px #07192540;
}
.assistant-panel[open] { display: flex; flex-direction: column; }
.assistant-header { display: flex; align-items: flex-start; justify-content: space-between; gap: .6rem; flex-shrink: 0; padding: 1.1rem 1.25rem; background: var(--wine); color: #fff; }
.assistant-brand { font-size: .75rem; letter-spacing: .15em; color: var(--light-gold); line-height: 1.4; margin-bottom: .35rem; }
.assistant-header h2 { font-family: var(--serif); font-size: 1.8rem; font-weight: 400; letter-spacing: -.02em; line-height: 1.1; }
.assistant-mode { font-size: .75rem; color: #d8e2e9; margin-top: .4rem; line-height: 1.5; }
.assistant-close { display: grid; place-items: center; flex-shrink: 0; width: 2.1rem; height: 2.1rem; padding: 0; border: 1px solid #ffffff44; border-radius: 50%; background: transparent; color: #fff; font-size: 1.65rem; line-height: 1; }
.assistant-close:hover { background: #ffffff14; }
.assistant-messages { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 1.1rem; scrollbar-width: thin; }
.assistant-message { font-size: 1rem; line-height: 1.65; padding: 1rem; margin-bottom: .9rem; overflow-wrap: anywhere; border-radius: .5rem; }
.assistant-message:last-child { margin-bottom: 0; }
.assistant-message--guide, .assistant-message--ai { background: #eef2f4; margin-right: .7rem; border-bottom-left-radius: 0; }
.assistant-message--user { background: var(--wine); color: #fff; margin-left: 1.6rem; border-bottom-right-radius: 0; }
.assistant-speaker { display: block; font-size: .75rem; letter-spacing: .08em; line-height: 1.3; margin-bottom: .6rem; color: #806137; }
.assistant-message--user .assistant-speaker { color: var(--light-gold); }
.assistant-message p + p { margin-top: .7rem; }
.assistant-message ul { margin: .8rem 0 0; padding-left: 1.1rem; }
.assistant-message li + li { margin-top: .55rem; }
.assistant-response-links { display: flex; flex-direction: column; align-items: flex-start; gap: .65rem; margin-top: .9rem; }
.assistant-response-links a { display: inline; color: var(--wine); font-size: .875rem; font-weight: 600; text-decoration: underline; text-decoration-color: #9c7a45; text-underline-offset: .2rem; }
.assistant-handoff { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid #bdcad3; }
.assistant-handoff-title { font-weight: 600; color: var(--wine); }
.assistant-handoff label { display: block; margin-top: .65rem; font-size: .875rem; }
.assistant-handoff textarea { display: block; width: 100%; min-width: 0; min-height: 5.5rem; max-height: 10rem; box-sizing: border-box; resize: vertical; margin-top: .35rem; padding: .65rem; border: 1px solid #b7c5ce; border-radius: .3rem; background: #fff; color: var(--ink); font: 1rem/1.5 var(--sans); }
.assistant-handoff-link { display: flex; align-items: center; justify-content: center; min-height: 2.75rem; margin-top: .65rem; padding: .65rem; background: var(--wine); color: #fff; border-radius: .3rem; text-align: center; font-size: .875rem; font-weight: 600; }
.assistant-handoff-link:hover { background: #143b55; }
.assistant-handoff .assistant-handoff-note { font-size: .75rem; color: #536978; line-height: 1.5; }
.assistant-typing {
  display: flex; align-items: center; gap: .65rem; flex-shrink: 0;
  padding: .65rem 1.1rem; color: var(--wine); background: #eef2f4;
  font-size: .875rem; line-height: 1.5;
}
.assistant-typing[hidden] { display: none; }
.assistant-typing-dots { display: inline-flex; align-items: center; gap: .3rem; flex-shrink: 0; height: 1rem; }
.assistant-typing-dots > span { width: .375rem; height: .375rem; border-radius: 50%; background: #947137; animation: assistant-typing-pulse 1.35s ease-in-out infinite; }
.assistant-typing-dots > span:nth-child(2) { animation-delay: .16s; }
.assistant-typing-dots > span:nth-child(3) { animation-delay: .32s; }
@keyframes assistant-typing-pulse { 0%, 60%, 100% { transform: translateY(0); opacity: .45; } 30% { transform: translateY(-.2rem); opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .assistant-typing-dots > span { animation: none; opacity: 1; } }
.assistant-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem; padding: .75rem 1.1rem; border-top: 1px solid var(--line); flex-shrink: 0; max-height: min(15rem, 32dvh); overflow-y: auto; }
.assistant-options button { padding: .5rem .65rem; border: 1px solid #bbcbd5; border-radius: .3rem; background: transparent; color: var(--wine); text-align: left; font-size: .875rem; line-height: 1.4; }
.assistant-options button:hover { background: #eef2f4; border-color: #a78953; }
.assistant-options button:disabled { cursor: default; opacity: .5; }
.assistant-form { padding: .65rem 1.1rem .9rem; border-top: 1px solid var(--line); flex-shrink: 0; }
.assistant-form > label { display: block; font-size: .875rem; margin-bottom: .35rem; line-height: 1.5; }
.assistant-input-row { display: flex; align-items: stretch; gap: .5rem; }
.assistant-input-row textarea { flex: 1 1 auto; min-width: 0; min-height: 3.5rem; max-height: 6rem; resize: vertical; border: 1px solid #b7c5ce; border-radius: .3rem; padding: .65rem .7rem; background: #fff; color: var(--ink); font-family: var(--sans); font-size: 1rem; line-height: 1.45; }
.assistant-input-row textarea::placeholder { color: #697e8d; }
.assistant-send { display: grid; place-items: center; flex-shrink: 0; width: 2.75rem; border: 0; border-radius: .3rem; background: var(--wine); color: #fff; }
.assistant-send:disabled { cursor: default; background: #dce4e9; color: #7d8f9c; }
.assistant-whatsapp { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .2rem .7rem; min-height: 2.75rem; margin-top: .55rem; border-bottom: 1px solid #bda374; color: var(--wine); font-size: .875rem; font-weight: 600; line-height: 1.5; }
.assistant-whatsapp > span:last-child { white-space: nowrap; font-weight: 400; }
.assistant-whatsapp:hover { color: #79531f; }
.assistant-disclosure { margin-top: .65rem; font-size: .75rem; line-height: 1.5; color: #637783; }
.assistant-status { font-size: .75rem; line-height: 1.5; color: #806137; }
.assistant-status:empty { display: none; }
.assistant-status:not(:empty) { margin-top: .5rem; }
.assistant-keyboard-open .assistant-options,
.assistant-keyboard-open .assistant-brand,
.assistant-keyboard-open .assistant-mode,
.assistant-keyboard-open .assistant-form > label { display: none; }
.assistant-keyboard-open .assistant-header { padding-block: .6rem; }
@media (max-width: 680px), (max-height: 550px) {
  .assistant-panel { right: .75rem; bottom: calc(.75rem + var(--assistant-keyboard-offset, 0px) + env(safe-area-inset-bottom, 0px)); width: min(26rem, calc(100vw - 1.5rem)); height: min(43rem, calc(var(--assistant-viewport-height, 100dvh) - 1.5rem - env(safe-area-inset-bottom, 0px))); }
  .assistant-is-open .assistant-launcher { visibility: hidden; }
  .assistant-launcher { right: 1rem; bottom: calc(1rem + env(safe-area-inset-bottom, 0px)); padding: .8rem 1rem; }
  .assistant-invite { right: 1rem; bottom: calc(5.5rem + env(safe-area-inset-bottom, 0px)); }
  .assistant-header { padding: 1rem; }
  .assistant-header h2 { font-size: 1.6rem; }
  .assistant-messages { padding: .85rem; }
  .assistant-options { padding: .65rem .85rem; }
  .assistant-form { padding: .6rem .85rem .75rem; }
  .hero-actions { align-items: flex-start; gap: .7rem; flex-direction: column; }
  .private-assistant-cta { font-size: .875rem; padding: .85rem 1rem; }
}
@media (max-height: 550px) {
  .assistant-options { display: flex; overflow-x: auto; padding-block: .5rem; }
  .assistant-options button { flex: 0 0 auto; }
  .assistant-header { padding-block: .6rem; }
  .assistant-mode { margin-top: .2rem; }
}
.assistant-reply-notice { font-size: 12px; font-style: italic; opacity: .85; }
.assistant-options[hidden] { display: none; }
