:root{--navy:#0b2545;--navy2:#13315c;--green:#2e7d4f;--gold:#c9a227;--gold2:#e3c565;--ink:#1b1b1b;--bg:#f7f6f1;--card:#fff}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font:17px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg)}
.wrap{max-width:1100px;margin:0 auto;padding:0 20px}
.demo-banner:empty{display:none}
.demo-banner{background:var(--gold);color:#1b1b1b;text-align:center;font-weight:700;padding:8px 14px;font-size:15px}
.top{background:var(--navy);color:#fff;position:sticky;top:0;z-index:20;border-bottom:3px solid var(--gold)}
.top-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;flex-wrap:wrap}
.brand{color:#fff;text-decoration:none;display:flex;flex-direction:column;line-height:1.15}
.brand-name{font-size:22px;font-weight:800;letter-spacing:.3px}.brand-sub{font-size:13px;color:var(--gold2);text-transform:uppercase;letter-spacing:1.5px}
nav{display:flex;gap:16px;align-items:center;flex-wrap:wrap}nav a{color:#fff;text-decoration:none;font-size:15px}nav a:hover{color:var(--gold2)}
.lang{background:var(--gold);border:0;color:var(--navy);font-weight:700;border-radius:20px;padding:6px 14px;cursor:pointer}
.hero{background:linear-gradient(135deg,var(--navy) 0%,var(--navy2) 60%,var(--green) 140%);color:#fff;padding:56px 0 48px}
.eyebrow{color:var(--gold2);font-weight:700;text-transform:uppercase;letter-spacing:1.5px;font-size:14px;margin:0 0 6px}
h1{font-size:clamp(30px,4.5vw,48px);line-height:1.1;margin:0 0 12px;max-width:820px}
.lead{font-size:20px;max-width:720px;margin:0 0 8px}.regions{color:#dfe7f2;margin:0 0 22px}
.cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.btn{display:inline-block;border:0;border-radius:8px;padding:12px 18px;font-weight:700;font-size:16px;text-decoration:none;cursor:pointer}
.btn.gold{background:var(--gold);color:var(--navy)}.btn.green{background:var(--green);color:#fff}.btn.ghost{background:transparent;color:#fff;border:2px solid var(--gold2)}
.contact-line a,.foot a{color:var(--gold2)}
.chips{list-style:none;display:flex;flex-wrap:wrap;gap:10px;padding:0;margin:22px 0}
.chips li{background:#fff;border:1px solid #e0dccb;border-left:4px solid var(--green);padding:8px 14px;border-radius:6px;font-weight:600;color:var(--navy)}
h2{color:var(--navy);font-size:28px;margin:40px 0 8px;border-bottom:3px solid var(--gold);display:inline-block;padding-bottom:4px}
.note{color:#555;font-size:15px;max-width:850px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;margin-top:14px}.grid.two{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.card{background:var(--card);border-radius:12px;box-shadow:0 2px 10px rgba(11,37,69,.08);padding:18px;border-top:4px solid var(--navy)}
.listing .price{font-size:24px;font-weight:800;color:var(--green)}.listing .addr{font-weight:700;color:var(--navy)}
.listing .status{display:inline-block;font-size:13px;padding:2px 8px;border-radius:10px;background:#e8f3ec;color:var(--green);font-weight:700}
.listing .status.confirm{background:#fbf1d3;color:#7a5d00}.listing a{color:var(--navy2);font-size:14px}
.listing .acts{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.listing .acts button{font-size:14px;padding:8px 10px}
.region h3{margin:0 0 6px;color:var(--navy)}.region ul{margin:6px 0 0;padding-left:20px}
.steps{max-width:820px}.steps li{margin:6px 0}
.forms{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:22px;margin-top:30px}
.form-card h2{margin-top:4px}form label{display:block;margin:10px 0;font-weight:600;color:var(--navy)}
form input,form select{display:block;width:100%;margin-top:4px;padding:10px;border:1px solid #c9c6b8;border-radius:8px;font-size:16px}
form label.check{display:flex;gap:8px;font-weight:400;color:#333;font-size:15px}form label.check input{width:auto;margin-top:4px}
.form-msg{font-weight:700;color:var(--green)}.form-msg.err{color:#a11}
.voice-cta{margin-bottom:40px}
.foot{background:var(--navy);color:#e8edf4;padding:26px 0 90px;margin-top:40px;border-top:4px solid var(--gold)}.foot .small{font-size:13px;color:#b9c4d4}
.chat-launcher{position:fixed;right:18px;bottom:18px;z-index:40;background:var(--green);color:#fff;border:3px solid var(--gold);border-radius:30px;padding:12px 20px;font-weight:800;font-size:16px;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.25)}
.chat-panel{position:fixed;right:18px;bottom:80px;width:min(380px,calc(100vw - 24px));height:min(560px,calc(100vh - 120px));background:#fff;border-radius:14px;box-shadow:0 10px 40px rgba(0,0,0,.3);z-index:50;display:flex;flex-direction:column;overflow:hidden}
.chat-panel[hidden]{display:none}
.chat-panel header{background:var(--navy);color:#fff;padding:10px 14px;display:flex;flex-direction:column;position:relative;border-bottom:3px solid var(--gold)}
.chat-sub{font-size:12px;color:var(--gold2)}#chatClose{position:absolute;right:10px;top:6px;background:none;border:0;color:#fff;font-size:26px;cursor:pointer}
.chat-log{flex:1;overflow:auto;padding:12px;background:#f4f6f9}
.msg{max-width:85%;padding:9px 12px;border-radius:12px;margin:6px 0;white-space:pre-wrap;font-size:15px}
.msg.bot{background:#fff;border:1px solid #e2e6ee}.msg.me{background:var(--navy);color:#fff;margin-left:auto}
.chat-quick{display:flex;flex-wrap:wrap;gap:6px;padding:6px 10px;background:#fff}
.chat-quick button{border:1px solid var(--green);color:var(--green);background:#fff;border-radius:16px;padding:5px 10px;font-size:13px;cursor:pointer}
#chatForm{display:flex;border-top:1px solid #ddd}#chatForm input{flex:1;border:0;padding:12px;font-size:16px}#chatForm button{border:0;background:var(--gold);color:var(--navy);font-weight:800;padding:0 16px;cursor:pointer}
@media(max-width:640px){nav a{display:none}.hero{padding-top:36px}}

.hero-grid{display:grid;grid-template-columns:1fr auto;grid-template-areas:"copy photo" "meta photo";gap:28px;align-items:center}
.hero-copy{grid-area:copy}
.hero-meta{grid-area:meta}
.hero-grid .headshot{grid-area:photo}
.headshot{margin:0;text-align:center;color:#fff;font-size:14px}.headshot img{width:150px;height:150px;border-radius:50%;border:5px solid var(--gold);object-fit:cover;display:block;margin:0 auto 8px}
.faq details{background:#fff;border-radius:8px;border-left:4px solid var(--gold);padding:12px 16px;margin:10px 0;max-width:880px}.faq summary{font-weight:700;color:var(--navy);cursor:pointer}
form textarea{display:block;width:100%;margin-top:4px;padding:10px;border:1px solid #c9c6b8;border-radius:8px;font:inherit}
@media(max-width:760px){.hero-grid{grid-template-columns:1fr}.headshot{order:-1}}
.faq-topic h3{color:var(--green);margin:22px 0 6px}.value h3{margin:0 0 6px;color:var(--navy)}.card.value{border-top-color:var(--gold)}
#valueGrid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.hero-photo img{width:300px;height:auto;aspect-ratio:520/737;border-radius:18px;border:0;border-bottom:6px solid var(--gold);box-shadow:0 0 0 6px var(--green),0 18px 40px rgba(0,0,0,.35);object-fit:cover;margin:0 auto 12px}
.hero{background:linear-gradient(135deg,var(--navy) 0%,var(--navy2) 55%,var(--green) 130%)}
.foot-avatar{width:64px;height:64px;border-radius:50%;border:3px solid var(--gold);float:left;margin:0 14px 8px 0}
@media(max-width:760px){.hero-photo img{width:220px}}
html{scroll-padding-top:76px}section,.hero,main{scroll-margin-top:76px}
@media(max-width:760px){.hero-grid .headshot{order:2}.hero-photo img{width:200px}.hero{padding-top:24px}}
/* ---- conversational chat (Nov 12, 3:20 PM) ---- */
.chat-launcher{display:flex;align-items:center;gap:10px;padding:6px 18px 6px 6px;border-radius:40px;background:var(--navy);border:2px solid var(--gold);box-shadow:0 8px 24px rgba(11,37,69,.35);text-align:left;min-height:56px}
.chat-launcher img{width:44px;height:44px;border-radius:50%;border:2px solid var(--green);object-fit:cover}
.chat-launcher .cl-text{display:flex;flex-direction:column;line-height:1.15}.chat-launcher strong{font-size:15px}.chat-launcher small{font-size:12px;color:var(--gold2);font-weight:600}
.chat-launcher .cl-dot{position:absolute;left:42px;top:8px;width:11px;height:11px;border-radius:50%;background:#3ddc84;border:2px solid var(--navy)}
.chat-open .chat-launcher{display:none}
.chat-panel{bottom:18px;height:min(620px,calc(100vh - 36px));border-radius:18px;display:flex;flex-direction:column;overflow:hidden}
.chat-panel header{flex-direction:row;align-items:center;gap:10px;padding:12px 14px;background:linear-gradient(135deg,var(--navy),var(--navy2))}
.ch-avatar{width:42px;height:42px;border-radius:50%;border:2px solid var(--gold);object-fit:cover}
.ch-id{display:flex;flex-direction:column;line-height:1.2}.ch-id strong{font-size:16px}.ch-id .chat-sub{font-size:12px;color:#d9e2ef}
.chat-panel header #chatClose{position:static;margin-left:auto;background:none;border:0;color:#fff;font-size:28px;width:44px;height:44px;cursor:pointer}
.chat-log{flex:1;overflow-y:auto;padding:14px;background:#f3f5f9}
.msg{max-width:82%;padding:10px 13px;border-radius:18px;margin:6px 0;line-height:1.4;font-size:15.5px;animation:pop .18s ease-out}
.msg.bot{background:#fff;border:0;box-shadow:0 1px 2px rgba(0,0,0,.08);border-bottom-left-radius:6px}
.msg.me{background:var(--green);color:#fff;border-bottom-right-radius:6px}
.msg.note-sent{max-width:100%;margin:8px auto;text-align:center;font-size:12.5px;color:var(--green);background:#e7f4ec;border-radius:12px;padding:6px 10px}
.typing{display:inline-flex;gap:4px;padding:12px 14px}.typing span{width:7px;height:7px;border-radius:50%;background:#9aa6b8;animation:blink 1.2s infinite}.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}
@keyframes blink{0%,80%,100%{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
@keyframes pop{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.chat-quick{display:flex;gap:8px;flex-wrap:wrap;padding:8px 12px 0;background:#f3f5f9}.chat-quick:empty{display:none}
.chat-quick button{border:1.5px solid var(--green);color:var(--green);background:#fff;border-radius:20px;padding:8px 14px;font-size:14px;font-weight:600;min-height:40px;cursor:pointer}
#chatForm{display:flex;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#f3f5f9;border-top:1px solid #e2e6ee}
#chatForm input{flex:1;border:1.5px solid #cfd6e2;border-radius:24px;padding:12px 16px;font-size:16px;min-height:46px}
#chatForm button{width:46px;height:46px;border-radius:50%;border:0;background:var(--gold);color:var(--navy);font-size:18px;cursor:pointer}
@media(max-width:520px){.chat-panel{right:0;bottom:0;width:100vw;height:100dvh;border-radius:0}.chat-launcher{right:10px;bottom:12px}}
/* keep chat launcher clear of the floating voice widget; hide voice widget while chat is open */
.chat-launcher{bottom:92px}
@media(max-width:520px){
  .chat-launcher{right:10px;bottom:108px;max-width:min(220px,calc(100vw - 20px));padding:5px 12px 5px 5px}
  .chat-launcher small{display:none}
}
.chat-open elevenlabs-convai,.chat-open #voiceSlot{display:none!important}

/* keep floating chat + voice controls from covering hero CTAs, regions/contact, and chips */
@media(max-width:760px){
  .hero{padding-bottom:230px}
  .hero-grid{grid-template-columns:1fr;grid-template-areas:"copy" "photo" "meta";gap:16px}
  .hero .cta-row{margin-top:8px;margin-bottom:12px}
  .hero-meta{padding-top:8px}
  .niches{padding-bottom:160px}
}
@media(min-width:761px){
  .hero{padding-bottom:240px}
  .niches{padding-bottom:160px;padding-top:20px}
  .chips{margin:12px 0 0}
}
