/* ============================================================
   THEME A: EDITORIAL ESTATE -- RealtyConnect AI Chatbot
   Navy #242763  Gold gradient  Ivory #FAFAF7
   Fonts: Roboto Condensed (headlines) + Roboto (body)
   ============================================================ */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  --navy:#242763;
  --navy-light:#2e3178;
  --navy-deep:#1a1c4d;
  --gold:#be8116;
  --gold-bright:#d7b555;
  --gold-dim:rgba(190,129,22,0.35);
  --gold-soft:rgba(190,129,22,0.08);
  --ivory:#FAFAF7;
  --ivory-dark:#F0EDE8;
  --white:#FFFFFF;
  --muted:rgba(255,255,255,0.45);
  --muted-dark:rgba(36,39,99,0.45);
  --text-primary:#242763;
  --text-secondary:rgba(36,39,99,0.6);
  --serif:'Roboto Condensed','Arial Narrow',sans-serif;
  --sans:'Roboto',system-ui,sans-serif;
  --ease:cubic-bezier(0.25,0.46,0.45,0.94);
  --transition:0.3s cubic-bezier(0.25,0.46,0.45,0.94);
}

html{
  font-size:17.6px;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
body{
  font-family:var(--sans);
  background:var(--ivory);
  color:var(--text-primary);
  overflow:hidden;
  height:100vh;
  display:flex;
  flex-direction:column;
}

/* ===== SPLIT LAYOUT ===== */
.split-layout{
  display:flex;
  flex:1;
  overflow:hidden;
}

/* ===== LEFT PANEL -- MAGAZINE COVER ===== */
.left-panel{
  width:40%;
  min-width:420px;
  background:var(--navy);
  color:var(--white);
  display:flex;
  flex-direction:column;
  position:relative;
  overflow:hidden;
  z-index:10;
}
/* Subtle diagonal geometric pattern */
.left-panel::before{
  content:'';
  position:absolute;
  inset:0;
  background:
    repeating-linear-gradient(
      135deg,
      transparent,
      transparent 48px,
      rgba(255,255,255,0.018) 48px,
      rgba(255,255,255,0.018) 49px
    ),
    repeating-linear-gradient(
      45deg,
      transparent,
      transparent 48px,
      rgba(255,255,255,0.012) 48px,
      rgba(255,255,255,0.012) 49px
    );
  pointer-events:none;
  z-index:0;
}
/* Subtle radial glow at top */
.left-panel::after{
  content:'';
  position:absolute;
  top:-120px;right:-80px;
  width:400px;height:400px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(190,129,22,0.06) 0%,transparent 65%);
  pointer-events:none;
  z-index:0;
}
.left-panel>*{position:relative;z-index:1}

/* Header: Logo + Wordmark */
.left-header{
  padding:36px 40px 0;
  display:flex;
  align-items:center;
  gap:14px;
}
.rc-logo{
  height:64px;
  width:auto;
  object-fit:contain;
  flex-shrink:0;
}
.rc-logo--mobile{
  height:42px;
}

/* Body: Headline + Hindi + Trust */
.left-body{
  padding:16px 40px 8px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  flex-shrink:0;
}
.editorial-headline{
  font-family:var(--serif);
  font-weight:700;
  font-size:1.7rem;
  line-height:1.1;
  letter-spacing:-0.3px;
  color:var(--white);
  margin-bottom:8px;
}
.editorial-headline span{display:block}
.editorial-headline .accent-word{
  color:var(--gold-bright);
  font-weight:400;
  letter-spacing:1px;
}
.hindi-text{
  font-family:var(--sans);
  font-size:0.82rem;
  color:var(--gold-bright);
  margin-bottom:10px;
  letter-spacing:0.2px;
  opacity:0.85;
}
.trust-line{
  font-family:var(--sans);
  font-size:0.7rem;
  color:var(--muted);
  letter-spacing:2.8px;
  text-transform:uppercase;
  font-weight:500;
}
.trust-line .divider{
  display:inline-block;
  margin:0 6px;
  opacity:0.4;
}

/* Featured Banner */
.featured-banner{
  margin:0 40px 36px;
  background:var(--navy-deep);
  border:1px solid rgba(190,129,22,0.15);
  border-left:3px solid var(--gold);
  border-radius:8px;
  padding:24px 26px;
  position:relative;
  overflow:hidden;
}
.featured-banner::before{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(135deg, rgba(26,28,68,0.88) 0%, rgba(36,39,99,0.75) 100%);
  z-index:0;
}
.featured-banner>*{position:relative;z-index:1}
.featured-banner::after{
  content:'';
  position:absolute;
  top:-40px;right:-40px;
  width:130px;height:130px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(190,129,22,0.07) 0%,transparent 70%);
  pointer-events:none;
  z-index:1;
}
.banner-label{
  font-family:var(--sans);
  font-size:0.6rem;
  letter-spacing:3.5px;
  text-transform:uppercase;
  color:var(--gold);
  font-weight:700;
  margin-bottom:11px;
}
.banner-title{
  font-family:var(--serif);
  font-size:1.3rem;
  color:var(--white);
  margin-bottom:5px;
}
.banner-subtitle{
  font-family:var(--sans);
  font-size:0.78rem;
  color:var(--muted);
  margin-bottom:16px;
}
.banner-price{
  font-family:var(--serif);
  font-size:1.5rem;
  color:var(--gold);
  font-weight:700;
  margin-bottom:16px;
  letter-spacing:-0.3px;
}
.banner-cta{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:9px 22px;
  border:1px solid var(--gold);
  border-radius:100px;
  color:var(--gold);
  font-family:var(--sans);
  font-size:0.75rem;
  font-weight:600;
  letter-spacing:1px;
  text-transform:uppercase;
  background:transparent;
  cursor:pointer;
  transition:var(--transition);
  text-decoration:none;
}
.banner-cta:hover{
  background:var(--gold);
  color:var(--navy);
}
.banner-cta svg{width:14px;height:14px;transition:var(--transition)}
.banner-cta:hover svg{transform:translateX(2px)}

/* Dynamic banners container */
#banners-container,
#banners-container-mobile{
  display:flex;
  flex-direction:column;
  gap:12px;
  padding:0 40px 24px;
}
#banners-container-mobile{
  padding:0 24px 24px;
}
#banners-container:empty,
#banners-container-mobile:empty{
  display:none;
}

/* ===== RIGHT PANEL -- CHAT ===== */
.right-panel{
  flex:1;
  background:var(--ivory);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  position:relative;
}

.chat-header{
  padding:18px 36px;
  border-bottom:1px solid rgba(36,39,99,0.06);
  display:flex;
  align-items:center;
  gap:10px;
  flex-shrink:0;
  background:var(--ivory);
}
.chat-header-dot{
  width:7px;height:7px;
  border-radius:50%;
  background:#4CAF50;
  flex-shrink:0;
  box-shadow:0 0 0 2px rgba(76,175,80,0.2);
}
.chat-header-text{
  font-family:var(--sans);
  font-size:0.8rem;
  color:var(--text-secondary);
  font-weight:500;
}
.chat-header .lang-toggle{
  margin-left:auto;
}

.chat-messages{
  flex:1;
  overflow-y:auto;
  padding:30px 36px;
  display:flex;
  flex-direction:column;
  gap:22px;
  scroll-behavior:smooth;
}
.chat-messages::-webkit-scrollbar{width:4px}
.chat-messages::-webkit-scrollbar-track{background:transparent}
.chat-messages::-webkit-scrollbar-thumb{background:rgba(36,39,99,0.1);border-radius:4px}

/* ===== MESSAGES ===== */
.msg{display:flex;gap:12px;max-width:90%;animation:msgIn 0.45s var(--ease) both}
.msg--bot{align-self:flex-start}
.msg--user{align-self:flex-end;flex-direction:row-reverse}

.msg-avatar{
  width:34px;height:34px;
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
  font-family:var(--serif);
  font-size:0.68rem;
  font-weight:700;
  letter-spacing:0.5px;
}
.msg--bot .msg-avatar{
  background:var(--navy);
  color:var(--gold);
}
.msg--user .msg-avatar{
  background:var(--gold);
  color:var(--navy);
}

.msg-bubble{
  padding:14px 20px;
  border-radius:18px;
  font-family:var(--sans);
  font-size:0.88rem;
  line-height:1.65;
}
.msg--bot .msg-bubble{
  background:var(--white);
  color:var(--text-primary);
  border-bottom-left-radius:4px;
  box-shadow:0 1px 4px rgba(36,39,99,0.04);
}
.msg--user .msg-bubble{
  background:var(--navy);
  color:var(--white);
  border-bottom-right-radius:4px;
}

/* Markdown-like formatting inside bot bubbles */
.msg-bubble strong{font-weight:700}
.msg-bubble a{
  color:var(--gold);
  text-decoration:underline;
  text-underline-offset:2px;
}
.msg-bubble a:hover{opacity:0.8}

/* ===== SUGGESTED PROMPTS ===== */
.prompts{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:12px;
}
.prompt-pill{
  padding:9px 20px;
  border:1px solid rgba(36,39,99,0.1);
  border-radius:100px;
  font-family:var(--sans);
  font-size:0.78rem;
  color:var(--text-primary);
  background:var(--white);
  cursor:pointer;
  transition:var(--transition);
  white-space:nowrap;
  line-height:1.3;
}
.prompt-pill:hover{
  border-color:var(--gold);
  color:var(--navy);
  box-shadow:0 2px 10px rgba(190,129,22,0.15);
  transform:translateY(-1px);
}

/* ===== PROPERTY CARDS -- EDITORIAL HORIZONTAL ===== */
.results-label{
  font-family:var(--sans);
  font-size:0.65rem;
  letter-spacing:2.8px;
  text-transform:uppercase;
  color:var(--text-secondary);
  font-weight:600;
  margin:8px 0 2px 0;
}
.property-cards{
  display:flex;
  flex-direction:column;
  gap:14px;
  margin-top:12px;
  width:100%;
}
.property-card{
  display:flex;
  background:var(--white);
  border-radius:8px;
  overflow:hidden;
  border-left:3px solid rgba(190,129,22,0.25);
  box-shadow:0 1px 4px rgba(36,39,99,0.04);
  transition:var(--transition);
  cursor:pointer;
}
.property-card:hover{
  box-shadow:0 6px 24px rgba(36,39,99,0.08);
  border-left-color:var(--gold);
  transform:translateY(-2px);
}

.property-card__image{
  width:180px;
  min-height:150px;
  flex-shrink:0;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  overflow:hidden;
  background:#242763;
}
.property-card__image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  position:absolute;
  inset:0;
}
.property-card__image::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(to top, rgba(36,39,99,0.45) 0%, transparent 60%);
  pointer-events:none;
  z-index:1;
}
.property-card__image .rera-badge-img{
  position:absolute;
  top:8px;
  left:8px;
  z-index:2;
}
.property-card__image svg{opacity:0.2;width:52px;height:52px}
/* Gradient fallback when no image */
.property-card__image--fallback{
  background:linear-gradient(135deg, var(--navy) 0%, var(--navy-light) 100%);
}

.property-card__content{
  flex:1;
  padding:18px 22px;
  display:flex;
  flex-direction:column;
  gap:5px;
}
.property-card__name{
  font-family:var(--serif);
  font-size:0.95rem;
  color:var(--text-primary);
  font-weight:700;
  line-height:1.3;
}
.property-card__price{
  font-family:var(--serif);
  font-size:1.25rem;
  color:var(--gold);
  font-weight:700;
  letter-spacing:-0.3px;
}
.property-card__location{
  display:flex;
  align-items:center;
  gap:5px;
  font-family:var(--sans);
  font-size:0.75rem;
  color:var(--text-secondary);
}
.property-card__location svg{width:13px;height:13px;flex-shrink:0;opacity:0.45}
.property-card__meta{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
  margin-top:3px;
}
.meta-tag{
  padding:3px 11px;
  border-radius:100px;
  font-family:var(--sans);
  font-size:0.63rem;
  font-weight:600;
  letter-spacing:0.3px;
}
.meta-tag--rera{
  background:rgba(76,175,80,0.1);
  color:#2E7D32;
}
.meta-tag--status{
  background:rgba(36,39,99,0.05);
  color:var(--text-secondary);
}
.meta-tag--feature{
  background:rgba(190,129,22,0.1);
  color:#8B7340;
}
.property-card__size{
  font-family:var(--sans);
  font-size:0.72rem;
  color:var(--text-secondary);
  margin-top:auto;
  display:flex;
  align-items:center;
  gap:5px;
}
.property-card__size svg{width:13px;height:13px;opacity:0.35}
.property-card__actions{
  display:flex;
  gap:8px;
  margin-top:8px;
}
.card-btn{
  padding:7px 16px;
  border-radius:100px;
  font-family:var(--sans);
  font-size:0.67rem;
  font-weight:600;
  letter-spacing:0.6px;
  cursor:pointer;
  transition:var(--transition);
  text-transform:uppercase;
  border:none;
}
.card-btn--primary{
  background:var(--navy);
  color:var(--white);
}
.card-btn--primary:hover{background:var(--navy-light)}
.card-btn--outline{
  background:transparent;
  color:var(--gold);
  border:1px solid var(--gold);
}
.card-btn--outline:hover{background:var(--gold);color:var(--navy)}

/* ===== EXPERT CTA ===== */
.expert-cta{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:12px 26px;
  border:1.5px solid var(--gold);
  border-radius:100px;
  font-family:var(--sans);
  font-size:0.82rem;
  font-weight:600;
  color:var(--gold);
  background:transparent;
  cursor:pointer;
  transition:var(--transition);
  align-self:flex-start;
  margin-top:8px;
}
.expert-cta:hover{
  background:var(--gold-soft);
  box-shadow:0 2px 14px rgba(190,129,22,0.2);
  transform:translateY(-1px);
}
.expert-cta svg{width:16px;height:16px}

/* ===== BUSY TOAST (shown when user hits send mid-stream) ===== */
.busy-toast{
  position:fixed;
  bottom:24px;
  left:50%;
  transform:translateX(-50%) translateY(12px);
  background:rgba(36,39,99,0.95);
  color:var(--ivory);
  padding:10px 18px;
  border-radius:100px;
  font-family:var(--sans);
  font-size:0.82rem;
  letter-spacing:0.3px;
  box-shadow:0 8px 24px rgba(36,39,99,0.25);
  opacity:0;
  pointer-events:none;
  transition:opacity 200ms ease, transform 200ms ease;
  z-index:9999;
  max-width:90vw;
  text-align:center;
}
.busy-toast.is-visible{
  opacity:1;
  transform:translateX(-50%) translateY(0);
}

/* Chat input disabled state */
.chat-input:disabled{
  background:rgba(36,39,99,0.04);
  cursor:not-allowed;
  color:var(--text-secondary);
}
.send-btn:disabled{
  opacity:0.5;
  cursor:not-allowed;
}

/* ===== CITATIONS (web search sources) ===== */
.citations-block{
  margin-top:10px;
  padding:10px 12px;
  background:rgba(36,39,99,0.03);
  border-left:2px solid var(--navy);
  border-radius:0 6px 6px 0;
}
.citations-block__label{
  font-family:var(--sans);
  font-size:0.7rem;
  letter-spacing:0.8px;
  text-transform:uppercase;
  color:var(--text-secondary);
  font-weight:600;
  margin-bottom:6px;
}
.citations-block__list{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.citation-chip{
  display:inline-flex;
  align-items:center;
  padding:4px 10px;
  border:1px solid rgba(36,39,99,0.12);
  border-radius:100px;
  background:var(--white);
  font-family:var(--sans);
  font-size:0.72rem;
  color:var(--navy);
  text-decoration:none;
  transition:var(--transition);
  white-space:nowrap;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
}
.citation-chip:hover{
  border-color:var(--gold);
  color:var(--gold);
  background:rgba(190,129,22,0.05);
}
.citation-chip__num{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:18px;
  height:18px;
  margin-right:8px;
  padding:0 5px;
  border-radius:100px;
  background:var(--navy);
  color:var(--white);
  font-size:0.62rem;
  font-weight:700;
  line-height:1;
  flex-shrink:0;
}
.citation-chip:hover .citation-chip__num{
  background:var(--gold);
}
.citation-chip__title{
  font-weight:500;
  margin-right:6px;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:240px;
}
.citation-chip__host{
  color:var(--text-secondary);
  font-size:0.65rem;
  font-weight:400;
}
.citation-chip:hover .citation-chip__host{
  color:var(--gold);
  opacity:0.8;
}

/* Follow-up question pills (rendered after citations on non-refusal turns) */
.follow-ups-block{
  margin-top:12px;
  padding:10px 12px;
  background:rgba(190,129,22,0.04);
  border-left:2px solid var(--gold);
  border-radius:0 6px 6px 0;
}
.follow-ups-block__label{
  font-family:var(--sans);
  font-size:0.7rem;
  letter-spacing:0.8px;
  text-transform:uppercase;
  color:var(--text-secondary);
  font-weight:600;
  margin-bottom:8px;
}
.follow-ups-block__list{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.follow-up-pill{
  font-family:var(--sans);
  font-size:0.78rem;
  padding:8px 14px;
  border:1px solid rgba(190,129,22,0.25);
  border-radius:100px;
  background:var(--white);
  color:var(--navy);
  cursor:pointer;
  transition:var(--transition);
  text-align:left;
  line-height:1.3;
}
.follow-up-pill:hover{
  border-color:var(--gold);
  background:rgba(190,129,22,0.06);
  color:var(--gold);
}

/* ===== TYPING INDICATOR ===== */
.typing-indicator{
  display:none;
  align-items:center;
  gap:12px;
  padding:0 36px 12px;
  flex-shrink:0;
}
.typing-indicator.is-visible{
  display:flex;
}
.typing-avatar{
  width:34px;height:34px;
  border-radius:50%;
  background:var(--navy);
  color:var(--gold);
  font-family:var(--serif);
  font-size:0.68rem;
  font-weight:700;
  letter-spacing:0.5px;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.typing-dots{
  display:flex;
  align-items:center;
  gap:4px;
  padding:10px 16px;
  background:var(--white);
  border-radius:18px;
  border-bottom-left-radius:4px;
  box-shadow:0 1px 4px rgba(36,39,99,0.04);
}
.typing-dots span{
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--muted-dark);
  animation:typingBounce 1.4s ease-in-out infinite;
}
.typing-dots span:nth-child(2){animation-delay:0.2s}
.typing-dots span:nth-child(3){animation-delay:0.4s}

@keyframes typingBounce{
  0%,60%,100%{transform:translateY(0);opacity:0.4}
  30%{transform:translateY(-6px);opacity:1}
}

/* ===== CHAT INPUT ===== */
.chat-input-area{
  padding:14px 36px 22px;
  border-top:1px solid rgba(36,39,99,0.06);
  flex-shrink:0;
  background:var(--ivory);
}
.chat-input-wrap{
  display:flex;
  align-items:center;
  gap:10px;
  background:var(--white);
  border:1.5px solid rgba(36,39,99,0.08);
  border-radius:100px;
  padding:5px 5px 5px 24px;
  transition:var(--transition);
}
.chat-input-wrap:focus-within{
  border-color:var(--gold);
  box-shadow:0 0 0 4px rgba(190,129,22,0.08);
}
.chat-input{
  flex:1;
  border:none;
  outline:none;
  font-family:var(--sans);
  font-size:0.88rem;
  color:var(--text-primary);
  background:transparent;
  padding:10px 0;
}
.chat-input::placeholder{color:rgba(36,39,99,0.28)}
.send-btn{
  width:42px;height:42px;
  border-radius:50%;
  background:var(--navy);
  border:none;
  cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:var(--transition);
  flex-shrink:0;
}
.send-btn:hover{background:var(--navy-light);transform:scale(1.05)}
.send-btn:disabled{opacity:0.5;cursor:not-allowed;transform:none}
.send-btn svg{width:18px;height:18px}

/* ===== COOKIE BAR ===== */
.cookie-bar{
  background:var(--navy);
  color:rgba(255,255,255,0.55);
  padding:13px 36px;
  font-family:var(--sans);
  font-size:0.72rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  flex-shrink:0;
  border-top:1px solid rgba(190,129,22,0.12);
  line-height:1.5;
}
.cookie-bar.is-hidden{display:none}
.cookie-bar a{color:var(--gold);text-decoration:none;transition:var(--transition)}
.cookie-bar a:hover{text-decoration:underline;opacity:0.85}
.cookie-bar__actions{
  display:flex;
  gap:8px;
  flex-shrink:0;
}
.cookie-accept,
.cookie-decline{
  padding:7px 20px;
  border:1px solid rgba(255,255,255,0.2);
  border-radius:100px;
  background:transparent;
  color:var(--white);
  font-family:var(--sans);
  font-size:0.68rem;
  font-weight:600;
  letter-spacing:0.8px;
  cursor:pointer;
  transition:var(--transition);
  white-space:nowrap;
  text-transform:uppercase;
}
.cookie-accept:hover{background:rgba(255,255,255,0.1)}
.cookie-decline{
  color:rgba(255,255,255,0.4);
  border-color:rgba(255,255,255,0.08);
}
.cookie-decline:hover{background:rgba(255,255,255,0.05);color:rgba(255,255,255,0.6)}

/* ===== LEAD FORM MODAL ===== */
.lead-modal{
  position:fixed;
  inset:0;
  z-index:500;
  display:none;
  align-items:center;
  justify-content:center;
}
.lead-modal.is-open{display:flex}
.lead-modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,0.55);
  animation:fadeIn 0.25s ease;
}
.lead-modal__content{
  position:relative;
  background:var(--white);
  border-radius:16px;
  padding:40px 36px;
  width:90%;
  max-width:440px;
  max-height:90vh;
  overflow-y:auto;
  box-shadow:0 24px 64px rgba(36,39,99,0.18);
  animation:modalSlideUp 0.35s var(--ease);
}
.lead-modal__close{
  position:absolute;
  top:16px;right:16px;
  width:34px;height:34px;
  background:transparent;
  border:1px solid rgba(36,39,99,0.1);
  border-radius:50%;
  cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:var(--transition);
  color:var(--text-secondary);
}
.lead-modal__close:hover{border-color:var(--navy);color:var(--navy)}
.lead-modal__close svg{width:16px;height:16px}
.lead-modal__header{margin-bottom:28px}
.lead-modal__title{
  font-family:var(--serif);
  font-size:1.5rem;
  color:var(--text-primary);
  margin-bottom:6px;
}
.lead-modal__subtitle{
  font-family:var(--sans);
  font-size:0.82rem;
  color:var(--text-secondary);
}

.lead-form__group{
  margin-bottom:18px;
}
.lead-form__label{
  display:block;
  font-family:var(--sans);
  font-size:0.72rem;
  font-weight:600;
  letter-spacing:0.8px;
  text-transform:uppercase;
  color:var(--text-secondary);
  margin-bottom:6px;
}
.lead-form__input,
.lead-form__select{
  width:100%;
  padding:12px 16px;
  border:1.5px solid rgba(36,39,99,0.1);
  border-radius:10px;
  font-family:var(--sans);
  font-size:0.88rem;
  color:var(--text-primary);
  background:var(--ivory);
  outline:none;
  transition:var(--transition);
  -webkit-appearance:none;
  appearance:none;
}
.lead-form__input:focus,
.lead-form__select:focus{
  border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(190,129,22,0.1);
}
.lead-form__input::placeholder{color:rgba(36,39,99,0.3)}
.lead-form__select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%231B2A4A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 16px center;
  padding-right:40px;
  cursor:pointer;
}
.lead-form__error{
  display:none;
  font-family:var(--sans);
  font-size:0.78rem;
  color:#c0392b;
  margin-bottom:12px;
}
.lead-form__error.is-visible{display:block}
.lead-form__retention{
  font-family:var(--sans);
  font-size:0.72rem;
  line-height:1.55;
  color:rgba(36,39,99,0.65);
  margin:0 0 12px 0;
}
.lead-form__retention a{color:var(--navy);text-decoration:underline}
.lead-form__consent{
  display:flex;
  align-items:flex-start;
  gap:8px;
  font-family:var(--sans);
  font-size:0.78rem;
  color:rgba(36,39,99,0.85);
  margin-bottom:14px;
  cursor:pointer;
  line-height:1.4;
}
.lead-form__consent input[type="checkbox"]{
  margin-top:2px;
  flex-shrink:0;
  width:16px;
  height:16px;
  accent-color:var(--navy);
}

/* Language switch divider — 2026-04-22 QA fix replaces chat-wipe behaviour */
.lang-divider{
  text-align:center;
  font-family:var(--sans);
  font-size:0.7rem;
  color:rgba(36,39,99,0.4);
  letter-spacing:1.5px;
  text-transform:uppercase;
  padding:14px 0 10px;
}

/* AI Assistant badge + per-turn AI-generated disclaimer (2026-04-22 QA P1) */
.bot-badge{
  display:inline-block;
  font-family:var(--sans);
  font-size:0.55rem;
  letter-spacing:1px;
  text-transform:uppercase;
  font-weight:700;
  color:var(--gold);
  background:rgba(190,129,22,0.08);
  border:1px solid rgba(190,129,22,0.25);
  padding:2px 8px;
  border-radius:100px;
  margin-left:6px;
  vertical-align:middle;
}
.ai-disclaimer{
  font-family:var(--sans);
  font-size:0.62rem;
  color:rgba(36,39,99,0.4);
  font-style:italic;
  margin-top:6px;
  padding-left:46px;
}
.lead-form__submit{
  width:100%;
  padding:14px 24px;
  border:none;
  border-radius:100px;
  background:var(--navy);
  color:var(--white);
  font-family:var(--sans);
  font-size:0.85rem;
  font-weight:600;
  letter-spacing:0.8px;
  text-transform:uppercase;
  cursor:pointer;
  transition:var(--transition);
}
.lead-form__submit:hover{background:var(--navy-light)}
.lead-form__submit:disabled{opacity:0.5;cursor:not-allowed}
.lead-form__success{
  display:none;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:16px;
  padding:20px 0;
}
.lead-form__success.is-visible{display:flex}
.lead-form__success-text{
  font-family:var(--sans);
  font-size:0.92rem;
  color:var(--text-primary);
  line-height:1.6;
}

@keyframes fadeIn{
  from{opacity:0}to{opacity:1}
}
@keyframes modalSlideUp{
  from{opacity:0;transform:translateY(20px)}
  to{opacity:1;transform:translateY(0)}
}

/* ===== MOBILE TOP BAR ===== */
.mobile-bar{
  display:none;
  background:var(--navy);
  padding:14px 20px;
  align-items:center;
  gap:8px;
  flex-shrink:0;
  z-index:100;
}
.mobile-bar .wordmark{font-size:1rem}
.mobile-bar-left{display:flex;align-items:center;gap:10px}
.hamburger{
  width:38px;height:38px;
  background:transparent;
  border:1px solid rgba(255,255,255,0.12);
  border-radius:8px;
  cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:var(--transition);
}
.hamburger:hover{border-color:var(--gold)}
.hamburger svg{width:18px;height:18px}

/* ===== MOBILE OVERLAY ===== */
.mobile-overlay{
  display:none;
  position:fixed;
  inset:0;
  z-index:200;
  pointer-events:none;
}
.mobile-overlay.is-open{pointer-events:auto}
.mobile-overlay__backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,0.55);
  opacity:0;
  transition:opacity 0.3s ease;
}
.mobile-overlay.is-open .mobile-overlay__backdrop{opacity:1}
.mobile-overlay__panel{
  position:absolute;
  left:0;top:0;bottom:0;
  width:88%;
  max-width:400px;
  background:var(--navy);
  transform:translateX(-100%);
  transition:transform 0.35s var(--ease);
  overflow-y:auto;
  display:flex;
  flex-direction:column;
}
.mobile-overlay.is-open .mobile-overlay__panel{transform:translateX(0)}
.mobile-overlay__close{
  position:absolute;
  top:18px;right:18px;
  width:34px;height:34px;
  background:transparent;
  border:1px solid rgba(255,255,255,0.12);
  border-radius:50%;
  cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:var(--transition);
  z-index:1;
}
.mobile-overlay__close:hover{border-color:var(--gold)}
.mobile-overlay__close svg{width:14px;height:14px}

/* ===== CTA IN CHAT ===== */
.cta-pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 22px;
  border:1.5px solid var(--gold);
  border-radius:100px;
  font-family:var(--sans);
  font-size:0.8rem;
  font-weight:600;
  color:var(--gold);
  background:transparent;
  cursor:pointer;
  transition:var(--transition);
  margin-top:8px;
}
.cta-pill:hover{
  background:var(--gold-soft);
  box-shadow:0 2px 14px rgba(190,129,22,0.2);
  transform:translateY(-1px);
}

/* ===== SOURCE BADGE ===== */
.source-badge{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:4px 12px;
  border-radius:100px;
  font-family:var(--sans);
  font-size:0.6rem;
  font-weight:600;
  letter-spacing:0.5px;
  text-transform:uppercase;
  margin-top:8px;
}
.source-badge--kb{
  background:rgba(76,175,80,0.08);
  color:#2E7D32;
}
.source-badge--web{
  background:rgba(33,150,243,0.08);
  color:#1565C0;
}

/* ===== ANIMATIONS ===== */
@keyframes msgIn{
  from{opacity:0;transform:translateY(14px)}
  to{opacity:1;transform:translateY(0)}
}

@keyframes fadeUp{
  from{opacity:0;transform:translateY(18px)}
  to{opacity:1;transform:translateY(0)}
}
.left-header{animation:fadeUp 0.55s 0.1s var(--ease) both}
.editorial-headline{animation:fadeUp 0.65s 0.2s var(--ease) both}
.hindi-text{animation:fadeUp 0.55s 0.4s var(--ease) both}
.trust-line{animation:fadeUp 0.55s 0.5s var(--ease) both}
.featured-banner{animation:fadeUp 0.55s 0.6s var(--ease) both}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:0.01ms !important;
    animation-delay:0ms !important;
    transition-duration:0.01ms !important;
  }
}

/* ===== EXPLORE PANEL ===== */
.explore-toggle{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:7px 16px;
  border:1px solid rgba(36,39,99,0.1);
  border-radius:100px;
  background:var(--white);
  font-family:var(--sans);
  font-size:0.72rem;
  font-weight:600;
  letter-spacing:0.6px;
  text-transform:uppercase;
  color:var(--text-primary);
  cursor:pointer;
  transition:var(--transition);
}
.explore-toggle:hover{
  border-color:var(--gold);
  color:var(--navy);
  box-shadow:0 2px 10px rgba(190,129,22,0.12);
}
.explore-toggle.is-active{
  background:var(--navy);
  color:var(--gold);
  border-color:var(--navy);
}
.explore-toggle--mobile{
  background:transparent;
  border-color:rgba(255,255,255,0.15);
  color:var(--gold);
  padding:7px 10px;
}
.explore-toggle--mobile span{display:none}

.new-chat-btn{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:7px 14px;
  border:1px solid rgba(36,39,99,0.1);
  border-radius:100px;
  background:var(--white);
  font-family:var(--sans);
  font-size:0.72rem;
  font-weight:600;
  letter-spacing:0.6px;
  text-transform:uppercase;
  color:var(--text-primary);
  cursor:pointer;
  transition:var(--transition);
}
.new-chat-btn:hover{
  border-color:var(--gold);
  color:var(--navy);
  box-shadow:0 2px 10px rgba(190,129,22,0.12);
}
.new-chat-btn--mobile{
  display:none;
  background:transparent;
  border-color:rgba(255,255,255,0.15);
  color:var(--gold);
  padding:7px 10px;
}
.new-chat-btn--mobile span{display:none}
.new-chat-btn--mobile:hover,
.new-chat-btn--mobile:active{
  border-color:var(--gold);
  background:rgba(190,129,22,0.08);
  color:var(--gold);
}
.explore-toggle--mobile:hover{
  border-color:var(--gold);
  background:rgba(190,129,22,0.08);
}

.explore-panel{
  max-height:0;
  overflow:hidden;
  background:var(--white);
  border-bottom:1px solid rgba(36,39,99,0.06);
  transition:max-height 0.35s var(--ease), opacity 0.3s ease;
  opacity:0;
}
.explore-panel.is-open{
  max-height:320px;
  opacity:1;
  overflow-y:auto;
}
.explore-panel__header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:16px 36px 0;
}
.explore-panel__title{
  font-family:var(--serif);
  font-size:0.95rem;
  color:var(--text-primary);
  font-weight:700;
}
.explore-panel__close{
  width:28px;height:28px;
  background:transparent;
  border:1px solid rgba(36,39,99,0.1);
  border-radius:50%;
  cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:var(--transition);
  color:var(--text-secondary);
}
.explore-panel__close:hover{border-color:var(--navy);color:var(--navy)}

.explore-panel__body{
  padding:12px 36px 18px;
  display:flex;
  flex-direction:column;
  gap:14px;
}

.explore-section__label{
  font-family:var(--sans);
  font-size:0.6rem;
  letter-spacing:2.5px;
  text-transform:uppercase;
  color:var(--text-secondary);
  font-weight:600;
  margin-bottom:6px;
}
/* Devanagari (Marathi) doesn't render correctly with letter-spacing or
   artificial uppercasing — conjuncts break. Normalise spacing + case for MR. */
html[lang="mr"] .explore-section__label,
html[lang="mr"] .explore-landing .explore-section__label,
html[lang="mr"] .results-label,
html[lang="mr"] .citations-block__label{
  letter-spacing:0.3px;
  text-transform:none;
  font-size:0.78rem;
}
.explore-section__chips{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}
.explore-chip{
  padding:7px 16px;
  border:1px solid rgba(36,39,99,0.09);
  border-radius:100px;
  font-family:var(--sans);
  font-size:0.75rem;
  color:var(--text-primary);
  background:var(--ivory);
  cursor:pointer;
  transition:var(--transition);
  white-space:nowrap;
  line-height:1.3;
}
.explore-chip:hover{
  border-color:var(--gold);
  color:var(--navy);
  background:rgba(190,129,22,0.06);
  box-shadow:0 2px 8px rgba(190,129,22,0.12);
  transform:translateY(-1px);
}
.explore-chip:active{
  transform:translateY(0);
  box-shadow:none;
}

/* ===== MOBILE EXPLORE BOTTOM SHEET ===== */
.explore-sheet{
  display:none;
  position:fixed;
  inset:0;
  z-index:250;
  pointer-events:none;
}
.explore-sheet__backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,0.5);
  opacity:0;
  transition:opacity 0.3s ease;
}
.explore-sheet__panel{
  position:absolute;
  left:0;right:0;bottom:0;
  background:var(--white);
  border-radius:20px 20px 0 0;
  max-height:70vh;
  transform:translateY(100%);
  transition:transform 0.35s var(--ease);
  overflow-y:auto;
  display:flex;
  flex-direction:column;
  box-shadow:0 -8px 32px rgba(36,39,99,0.12);
}
.explore-sheet__handle{
  width:36px;
  height:4px;
  background:rgba(36,39,99,0.15);
  border-radius:2px;
  margin:10px auto 0;
  flex-shrink:0;
}
.explore-sheet.is-open{
  pointer-events:auto;
}
.explore-sheet.is-open .explore-sheet__backdrop{opacity:1}
.explore-sheet.is-open .explore-sheet__panel{transform:translateY(0)}

.explore-sheet .explore-panel__header{padding:16px 20px 0}
.explore-sheet .explore-panel__body{padding:12px 20px 24px}

/* ===== RESPONSIVE ===== */
@media(max-width:1100px){
  .left-panel{width:38%;min-width:360px}
  .editorial-headline{font-size:2rem}
  .left-header{padding:28px 32px 0}
  .left-body{padding:24px 32px 12px}
  .banner-carousel-label{padding:0 32px}
  .banner-carousel{padding:0 32px 16px}
}

@media(max-width:768px){
  html,
  body{
    max-width:100%;
    overflow-x:hidden;
  }
  .split-layout{flex-direction:column}
  .left-panel{display:none}
  .mobile-bar{
    display:flex;
    padding:10px 8px;
    gap:6px;
    min-width:0;
  }
  .mobile-bar-left{
    flex:1 1 auto;
    min-width:0;
    overflow:hidden;
  }
  .rc-logo--mobile{
    height:38px;
    max-width:96px;
  }
  .mobile-overlay{display:block}
  .right-panel{width:100%}
  .chat-messages{padding:20px 16px}
  .chat-input-area{padding:10px 16px 16px}
  .chat-header{padding:14px 16px}
  .typing-indicator{padding:0 16px 12px}

  /* Desktop-only chat-header lang-toggle and status text are redundant on mobile
     — mobile-bar already has its own lang toggle and the navy bar signals status. */
  .chat-header #langToggle{display:none}
  .chat-header .chat-header-dot,
  .chat-header .chat-header-text{display:none}

  .property-card{flex-direction:column}
  .property-card__image{
    width:100%;
    min-height:90px;
    height:90px;
  }
  .property-card__content{padding:14px 16px}
  .msg{max-width:96%}
  .prompts{gap:6px}
  .prompt-pill{font-size:0.73rem;padding:8px 14px}
  .cookie-bar{
    flex-direction:column;
    text-align:center;
    gap:10px;
    padding:12px 20px;
  }
  .cookie-bar__actions{justify-content:center}

  .lead-modal__content{
    padding:28px 24px;
    width:94%;
  }

  /* Explore: hide desktop panel, show mobile sheet */
  .explore-toggle:not(.explore-toggle--mobile){display:none}
  .explore-panel{display:none}
  .explore-sheet{display:block}

  /* New Chat: hide desktop pill, show mobile icon */
  .new-chat-btn:not(.new-chat-btn--mobile){display:none}
  .new-chat-btn--mobile{display:inline-flex}

  /* Detail panel: fullscreen on mobile */
  .detail-panel__content{
    width:100%;
    max-width:100%;
    height:100%;
    border-radius:0;
    animation:none;
    transform:translateY(100%);
    transition:transform 0.35s var(--ease);
  }
  .detail-panel.is-open .detail-panel__content{
    transform:translateY(0);
  }
  .detail-panel__hero{height:200px}
  .detail-panel__body{padding:24px 20px 32px}
  .detail-panel__actions{flex-direction:column}

  /* ===== MOBILE TAP TARGETS (WCAG 2.1 AA: 44x44 minimum) =====
     The desktop styles use compact icons that shrink below 44px — on a
     360×640 phone that's ~3mm of physical surface. Bump every interactive
     control to at least 44×44 so fat-finger and low-dexterity users can
     actually use the product. */
  .mobile-bar .lang-toggle{height:44px;align-items:center}
  .mobile-bar .lang-btn{
    min-width:44px;
    height:44px;
    padding:0 14px;
    font-size:0.72rem;
    display:inline-flex;
    align-items:center;
    justify-content:center;
  }
  .mobile-bar .new-chat-btn--mobile,
  .mobile-bar .explore-toggle--mobile,
  .mobile-bar .hamburger{
    width:44px;
    height:44px;
  }
  .send-btn{
    width:48px;
    height:48px;
  }
  .send-btn svg{width:20px;height:20px}
  .prompt-pill{
    min-height:44px;
    padding:10px 16px;
    display:inline-flex;
    align-items:center;
  }
  .explore-chip,
  .explore-landing .explore-chip{
    min-height:44px;
    padding:10px 16px;
    display:inline-flex;
    align-items:center;
  }
  .detail-panel__close,
  .lead-modal__close,
  .mobile-overlay__close,
  .explore-panel__close{
    width:44px;
    height:44px;
  }
  .lang-toggle .lang-btn{
    min-width:44px;
    min-height:44px;
  }
  .cookie-accept,
  .cookie-decline{
    min-height:44px;
    padding:10px 20px;
  }
  /* Catch any <button>/clickable still escaping the 44x44 floor on mobile.
     Targeted (not global) so tap-and-text controls like prompt-pill keep
     their compact width. */
  .chat-input{min-height:44px}
  .chat-header button,
  .chat-header [role="button"],
  .mobile-bar button,
  .mobile-bar [role="button"]{
    min-width:44px;
    min-height:44px;
  }
}

/* ===== PROPERTY DETAIL PANEL ===== */
.detail-panel{
  position:fixed;
  inset:0;
  z-index:450;
  display:none;
  align-items:stretch;
  justify-content:flex-end;
}
.detail-panel.is-open{display:flex}
.detail-panel__backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,0.45);
  animation:fadeIn 0.25s ease;
}
.detail-panel__content{
  position:relative;
  background:var(--white);
  width:480px;
  max-width:90%;
  height:100%;
  overflow-y:auto;
  box-shadow:-8px 0 32px rgba(36,39,99,0.12);
  animation:detailSlideIn 0.35s var(--ease);
  display:flex;
  flex-direction:column;
}
.detail-panel__close{
  position:absolute;
  top:16px;right:16px;
  width:36px;height:36px;
  background:rgba(255,255,255,0.9);
  backdrop-filter:blur(8px);
  border:1px solid rgba(36,39,99,0.08);
  border-radius:50%;
  cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:var(--transition);
  color:var(--text-primary);
  z-index:2;
}
.detail-panel__close:hover{
  background:var(--white);
  border-color:var(--navy);
  box-shadow:0 2px 8px rgba(36,39,99,0.1);
}
.detail-panel__close svg{width:16px;height:16px}

/* Hero */
.detail-panel__hero{
  position:relative;
  width:100%;
  height:260px;
  background:var(--navy-deep);
  flex-shrink:0;
  overflow:hidden;
}
.detail-panel__hero-img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.detail-panel__hero-img[src=""]{display:none}
.detail-panel__hero-fallback{
  display:none;
  width:100%;
  height:100%;
  align-items:center;
  justify-content:center;
  color:rgba(255,255,255,0.15);
}
.detail-panel__hero-img[src=""] ~ .detail-panel__hero-fallback,
.detail-panel__hero-fallback.is-visible{
  display:flex;
}

/* Body */
.detail-panel__body{
  padding:28px 32px 40px;
  flex:1;
}
.detail-panel__name{
  font-family:var(--serif);
  font-size:1.5rem;
  font-weight:700;
  color:var(--text-primary);
  line-height:1.25;
  margin-bottom:8px;
}
.detail-panel__price{
  font-family:var(--sans);
  font-size:1.1rem;
  font-weight:700;
  color:var(--gold);
  margin-bottom:8px;
}
.detail-panel__location{
  font-family:var(--sans);
  font-size:0.82rem;
  color:var(--text-secondary);
  display:flex;
  align-items:center;
  gap:5px;
  margin-bottom:16px;
}
.detail-panel__location svg{flex-shrink:0}

/* RERA */
.detail-panel__rera{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 14px;
  border-radius:100px;
  background:rgba(76,175,80,0.06);
  color:#2E7D32;
  font-family:var(--sans);
  font-size:0.72rem;
  font-weight:600;
  letter-spacing:0.5px;
  margin-bottom:20px;
}
.detail-panel__rera svg{color:#4CAF50}

/* Meta grid (config, builder, possession) */
.detail-panel__meta-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-bottom:24px;
}
.detail-meta-item{
  padding:14px 16px;
  background:var(--ivory);
  border-radius:10px;
  border:1px solid rgba(36,39,99,0.04);
}
.detail-meta-item__label{
  font-family:var(--sans);
  font-size:0.6rem;
  font-weight:600;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--text-secondary);
  margin-bottom:4px;
}
.detail-meta-item__value{
  font-family:var(--sans);
  font-size:0.85rem;
  font-weight:600;
  color:var(--text-primary);
}

/* Sections */
.detail-panel__section{margin-bottom:24px}
.detail-panel__section-label{
  font-family:var(--sans);
  font-size:0.6rem;
  font-weight:600;
  letter-spacing:2.5px;
  text-transform:uppercase;
  color:var(--text-secondary);
  margin-bottom:10px;
}
.detail-panel__desc{
  font-family:var(--sans);
  font-size:0.85rem;
  color:var(--text-primary);
  line-height:1.7;
}

/* Tags (features / amenities) */
.detail-panel__tags{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}
.detail-tag{
  padding:6px 14px;
  border:1px solid rgba(36,39,99,0.08);
  border-radius:100px;
  font-family:var(--sans);
  font-size:0.73rem;
  color:var(--text-primary);
  background:var(--ivory);
}

/* Actions */
.detail-panel__actions{
  display:flex;
  gap:12px;
  margin-top:28px;
  padding-top:24px;
  border-top:1px solid rgba(36,39,99,0.06);
}
.detail-panel__cta{
  flex:1;
  padding:14px 20px;
  border-radius:100px;
  font-family:var(--sans);
  font-size:0.8rem;
  font-weight:600;
  letter-spacing:0.6px;
  text-transform:uppercase;
  cursor:pointer;
  transition:var(--transition);
  text-align:center;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}
.detail-panel__cta[hidden]{display:none}
.detail-panel__cta--primary{
  background:var(--navy);
  color:var(--white);
  border:none;
}
.detail-panel__cta--primary:hover{background:var(--navy-light)}
.detail-panel__cta--outline{
  background:transparent;
  color:var(--navy);
  border:1.5px solid rgba(36,39,99,0.12);
}
.detail-panel__cta--outline:hover{
  border-color:var(--navy);
  background:rgba(36,39,99,0.03);
}
.detail-panel__cta svg{flex-shrink:0}

.detail-panel__footer{
  text-align:center;
  padding:8px 0 16px;
}
.detail-panel__share-link{
  background:none;
  border:none;
  color:var(--gold);
  font-size:0.82rem;
  cursor:pointer;
  text-decoration:underline;
  opacity:0.8;
}
.detail-panel__share-link:hover{
  opacity:1;
}

@keyframes detailSlideIn{
  from{transform:translateX(100%)}
  to{transform:translateX(0)}
}

/* ===== BANNER CAROUSEL (10+ projects) ===== */
.banner-carousel-label{
  font-family:var(--sans);
  font-size:0.62rem;
  letter-spacing:3.2px;
  text-transform:uppercase;
  color:var(--gold-bright);
  font-weight:700;
  padding:0 40px;
  margin-bottom:14px;
  display:flex;
  align-items:center;
  gap:14px;
}
.banner-carousel-label::after{
  content:'';
  flex:1;
  height:1px;
  background:linear-gradient(to right, rgba(215,181,85,0.45), transparent);
}
.banner-carousel{
  flex:1;
  overflow-y:auto;
  padding:0 36px 24px;
  display:flex;
  flex-direction:column;
  gap:14px;
  scrollbar-width:none;
  -ms-overflow-style:none;
  mask-image:linear-gradient(to bottom, transparent 0%, black 8%, black 92%, transparent 100%);
  -webkit-mask-image:linear-gradient(to bottom, transparent 0%, black 8%, black 92%, transparent 100%);
}
/* Collapse the carousel block entirely when no builders are loaded, so the
   dark-navy left panel / mobile overlay doesn't reserve 600+ px of empty
   space above the fold. The JS toggles :empty via innerHTML = ''. */
.banner-carousel:empty{
  display:none;
}
.banner-carousel::-webkit-scrollbar{display:none}
.banner-carousel::-webkit-scrollbar{width:3px}
.banner-carousel::-webkit-scrollbar-track{background:transparent}
.banner-carousel::-webkit-scrollbar-thumb{background:rgba(190,129,22,0.25);border-radius:3px}

.banner-card{
  position:relative;
  height:280px;
  border-radius:14px;
  overflow:hidden;
  cursor:pointer;
  flex-shrink:0;
  background:linear-gradient(135deg, var(--navy-deep), var(--navy-light));
  border:1px solid rgba(190,129,22,0.15);
  transition:transform 0.4s var(--ease), box-shadow 0.4s var(--ease), border-color 0.3s ease;
  box-shadow:0 4px 16px rgba(0,0,0,0.25);
}
.banner-card::after{
  content:'';
  position:absolute;
  inset:0;
  border-radius:14px;
  pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,0.04);
  z-index:3;
}
.banner-card:hover{
  transform:translateY(-3px);
  border-color:var(--gold);
  box-shadow:0 12px 36px rgba(0,0,0,0.5), 0 0 0 1px rgba(190,129,22,0.4);
}
.banner-card--no-image .banner-card__media{
  background:linear-gradient(135deg, var(--navy) 0%, #1a1f4e 100%);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:20px;
  text-align:center;
}
.banner-card--no-image .banner-card__media .banner-card__overlay{
  position:relative;
  background:none;
  padding:0;
}
.banner-card--no-image .banner-card__name{
  font-size:1.1rem;
  margin-bottom:4px;
}
.banner-card__media{
  position:relative;
  width:100%;
  height:100%;
  overflow:hidden;
}
.banner-card__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform 0.8s var(--ease);
}
.banner-card:hover .banner-card__media img{
  transform:scale(1.06);
}
.banner-card__badge{
  position:absolute;
  top:14px;
  left:14px;
  background:var(--gold);
  color:var(--navy-deep);
  padding:6px 12px;
  border-radius:4px;
  font-family:var(--sans);
  font-size:0.58rem;
  font-weight:700;
  letter-spacing:1.4px;
  text-transform:uppercase;
  z-index:2;
  box-shadow:0 2px 8px rgba(0,0,0,0.3);
}
.banner-card__rating{
  position:absolute;
  top:14px;
  right:14px;
  background:rgba(13,14,40,0.85);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  color:var(--gold-bright);
  padding:5px 11px 5px 9px;
  border-radius:100px;
  font-family:var(--sans);
  font-size:0.72rem;
  font-weight:700;
  z-index:2;
  display:inline-flex;
  align-items:center;
  gap:4px;
  border:1px solid rgba(215,181,85,0.3);
}
.banner-card__rating svg{flex-shrink:0}
.banner-card__overlay{
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  padding:60px 18px 18px;
  background:linear-gradient(to top,
    rgba(13,14,40,0.96) 0%,
    rgba(20,22,60,0.85) 40%,
    rgba(26,28,77,0.55) 75%,
    transparent 100%);
  z-index:1;
}
.banner-card__builder{
  font-family:var(--sans);
  font-size:0.58rem;
  font-weight:600;
  letter-spacing:1.6px;
  text-transform:uppercase;
  color:var(--gold-bright);
  margin-bottom:5px;
  opacity:0.9;
}
.banner-card__name{
  font-family:var(--serif);
  font-size:1.18rem;
  font-weight:700;
  color:var(--white);
  line-height:1.22;
  margin-bottom:10px;
  letter-spacing:0.1px;
  text-shadow:0 1px 4px rgba(0,0,0,0.4);
}
.banner-card__meta{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:8px;
}
.banner-card__location{
  font-family:var(--sans);
  font-size:0.72rem;
  color:rgba(255,255,255,0.78);
  display:inline-flex;
  align-items:center;
  gap:4px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  flex:1;
  min-width:0;
}
.banner-card__location svg{flex-shrink:0;opacity:0.7}
.banner-card__price{
  font-family:var(--serif);
  font-size:1.05rem;
  font-weight:700;
  color:var(--gold-bright);
  white-space:nowrap;
  letter-spacing:-0.2px;
  text-shadow:0 1px 3px rgba(0,0,0,0.4);
}

/* ===== AMENITY STRIP (horizontal scrolling images) ===== */
.amenity-strip{
  display:flex;
  gap:12px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  padding-bottom:8px;
  scrollbar-width:thin;
  scrollbar-color:rgba(36,39,99,0.2) transparent;
  -webkit-overflow-scrolling:touch;
}
.amenity-strip::-webkit-scrollbar{height:4px}
.amenity-strip::-webkit-scrollbar-track{background:transparent}
.amenity-strip::-webkit-scrollbar-thumb{background:rgba(36,39,99,0.15);border-radius:3px}

.amenity-tag{
  display:inline-block;
  padding:6px 14px;
  background:rgba(190,129,22,0.08);
  color:var(--navy);
  border:1px solid rgba(190,129,22,0.18);
  border-radius:20px;
  font-size:0.82rem;
  font-weight:500;
  letter-spacing:0.02em;
  margin:0 6px 6px 0;
  white-space:nowrap;
}

/* ===== LANGUAGE TOGGLE ===== */
.lang-toggle{
  display:inline-flex;
  border:1px solid rgba(36,39,99,0.1);
  border-radius:100px;
  overflow:hidden;
  flex-shrink:0;
}
.lang-btn{
  padding:5px 12px;
  font-family:var(--sans);
  font-size:0.65rem;
  font-weight:600;
  letter-spacing:0.8px;
  border:none;
  background:transparent;
  color:var(--text-secondary);
  cursor:pointer;
  transition:var(--transition);
}
.lang-btn.is-active{
  background:var(--navy);
  color:var(--gold);
}
.lang-btn:hover:not(.is-active){
  background:rgba(36,39,99,0.05);
}
.mobile-bar .lang-toggle{
  border-color:rgba(255,255,255,0.15);
  margin-left:auto;
  margin-right:8px;
}
.mobile-bar .lang-btn{
  color:rgba(255,255,255,0.5);
  font-size:0.6rem;
  padding:4px 10px;
}
.mobile-bar .lang-btn.is-active{
  background:rgba(190,129,22,0.15);
  color:var(--gold);
}

/* ===== EXPLORE LANDING (inline in chat) ===== */
.explore-landing{
  background:var(--white);
  border-radius:14px;
  padding:20px 24px;
  box-shadow:0 1px 4px rgba(36,39,99,0.04);
  margin-top:8px;
}
.explore-landing__title{
  font-family:var(--serif);
  font-size:0.82rem;
  font-weight:700;
  color:var(--text-primary);
  margin-bottom:16px;
}
.explore-landing .explore-section{
  margin-bottom:14px;
}
.explore-landing .explore-section:last-child{
  margin-bottom:0;
}
.explore-landing .explore-section__label{
  font-family:var(--sans);
  font-size:0.58rem;
  letter-spacing:2.5px;
  text-transform:uppercase;
  color:var(--text-secondary);
  font-weight:600;
  margin-bottom:6px;
}
.explore-landing .explore-section__chips{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.explore-landing .explore-chip{
  padding:6px 14px;
  border:1px solid rgba(36,39,99,0.09);
  border-radius:100px;
  font-family:var(--sans);
  font-size:0.72rem;
  color:var(--text-primary);
  background:var(--ivory);
  cursor:pointer;
  transition:var(--transition);
  white-space:nowrap;
  line-height:1.3;
}
.explore-landing .explore-chip:hover{
  border-color:var(--gold);
  color:var(--navy);
  background:rgba(190,129,22,0.06);
  box-shadow:0 2px 8px rgba(190,129,22,0.12);
  transform:translateY(-1px);
}
