.villa-chat { position:fixed; bottom:max(20px,env(safe-area-inset-bottom)); right:20px; z-index:80; font:1rem/1.5 var(--sans); color:var(--ink); }
.villa-chat [hidden] { display:none !important; }
.villa-chat button,.villa-chat input,.villa-chat textarea { font:inherit; }
.villa-chat button { cursor:pointer; }
.villa-chat button:disabled { opacity:.55; cursor:not-allowed; }
.villa-chat :focus-visible { outline:3px solid var(--sun); outline-offset:3px; }
.chat-launch { padding:15px 21px; border:1px solid #739080; border-radius:28px; background:var(--ink); color:var(--white); box-shadow:0 8px 30px #17352d33; font-weight:650 !important; }
.chat-launch span:first-child { color:var(--gold); margin-right:5px; }
.chat-panel { width:min(410px,calc(100vw - 32px)); height:min(660px,calc(100dvh - 40px)); display:flex; flex-direction:column; overflow:hidden; border:1px solid var(--line); border-radius:22px; background:var(--paper); box-shadow:0 18px 65px #17352d40; }
.chat-header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:20px; background:var(--ink); color:var(--white); }
.chat-header h2 { font:1.5rem/1.2 var(--serif); margin:0; }
.chat-header p { margin:7px 0 0; font-size:.875rem; }
.chat-close { background:transparent; color:var(--white); border:1px solid #ffffff50; border-radius:50%; flex:0 0 38px; height:38px; font-size:1.5rem !important; line-height:1 !important; }
.chat-conversation { min-height:0; display:flex; flex-direction:column; flex:1; }
.chat-log { flex:1; min-height:90px; overflow-y:auto; overscroll-behavior:contain; padding:18px; position:relative; }
.chat-message { padding:13px 15px; background:#eee7d9; border-radius:3px 16px 16px; margin:0 22px 14px 0; overflow-wrap:anywhere; }
.chat-message strong { font-size:.875rem; }
.chat-message p { margin:5px 0 0; white-space:pre-line; }
.chat-message a { display:inline-block; margin-top:10px; text-underline-offset:3px; font-weight:600; }
.chat-message-user { margin:0 0 14px 30px; background:var(--ink); color:var(--white); border-radius:16px 3px 16px 16px; }
.chat-topics { display:flex; flex-wrap:wrap; gap:7px; padding:8px 18px; max-height:110px; overflow-y:auto; flex-shrink:0; }
.chat-travel-links { display:flex; flex-direction:column; gap:4px; }
.chat-followups { display:flex; flex-wrap:wrap; gap:7px; margin-top:14px; }
.chat-followups button { text-align:left; padding:8px 10px; border:1px solid #83968c; border-radius:12px; background:var(--paper); color:var(--ink); font-size:.875rem; }
.chat-topics button { background:transparent; border:1px solid #9aa89b; padding:7px 10px; border-radius:20px; color:var(--ink); font-size:.875rem; min-height:38px; }
.chat-question { display:flex; gap:8px; padding:10px 18px 5px; }
.chat-question input { width:100%; min-width:0; border:1px solid #83968c; background:var(--white); border-radius:10px; padding:11px; color:var(--ink); }
.chat-question button { border:0; border-radius:10px; background:var(--ink); color:white; min-width:44px; font-size:1.4rem; }
.chat-contact { margin:6px 18px 14px; border:0; background:transparent; color:var(--ink); text-decoration:underline; text-underline-offset:4px; min-height:38px; font-weight:650 !important; }
.chat-contact-view { overflow-y:auto; overscroll-behavior:contain; padding:18px 22px; }
.chat-back { border:0; padding:5px 0; background:none; text-decoration:underline; color:var(--ink); }
.chat-contact-view h3 { margin:18px 0 4px; font:1.65rem/1.2 var(--serif); }
.chat-contact-view p { margin:8px 0 16px; }
.chat-contact-form { display:flex; flex-direction:column; }
.chat-contact-form > label { margin:8px 0 5px; font-weight:600; }
.chat-contact-form > input,.chat-contact-form textarea { padding:10px; border:1px solid #83968c; border-radius:8px; background:var(--white); color:var(--ink); width:100%; }
.chat-contact-form textarea { resize:vertical; min-height:100px; }
.chat-contact-form .chat-privacy { font-size:.875rem; line-height:1.5; margin-top:16px; }
.chat-consent { display:flex; align-items:flex-start; gap:8px; font-size:.875rem; }
.chat-consent input { margin-top:4px; width:18px; height:18px; flex:0 0 18px; accent-color:var(--ink); }
.chat-submit { background:var(--ink); color:var(--white); border:0; border-radius:10px; padding:12px; margin:15px 0 0; }
.chat-status:not(:empty) { padding:12px; background:#eee7d9; border-radius:8px; }
.chat-honeypot { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
@media(max-width:480px) { .villa-chat { right:12px; bottom:max(12px,env(safe-area-inset-bottom)); } .chat-panel { width:calc(100vw - 24px); height:min(680px,calc(100dvh - 24px)); } .chat-launch { padding:12px 17px; } }
