/* ==========================================================================
   LuxProp AI concierge widget (dark + gold, matches the site tokens).
   Used inline via [luxprop_concierge] and inside the homepage modal.
   ========================================================================== */
.lp-cx-section { background: var(--lp-charcoal, #141414); padding: clamp(3rem, 6vw, 6rem) 1.5rem; }
.lp-cx-section__inner { max-width: 760px; margin: 0 auto; }
.lp-cx-section__eyebrow {
	font-size: 0.6875rem; letter-spacing: 0.22em; text-transform: uppercase;
	color: var(--lp-gold, #c5a572); margin: 0 0 0.75rem; font-weight: 600;
}
.lp-cx-section__title {
	font-family: var(--lp-font-serif, 'Cormorant Garamond', serif);
	font-size: clamp(2rem, 4.5vw, 3.25rem); font-weight: 400; line-height: 1.08;
	color: var(--lp-white, #f4f1ec); margin: 0 0 0.75rem;
}
.lp-cx-section__lede {
	color: var(--lp-muted, #9a968c); font-size: 1rem; line-height: 1.6;
	max-width: 52ch; margin: 0 0 2rem;
}

/* Widget shell */
.lp-cx {
	background: var(--lp-black, #0e0e0c);
	border: 1px solid var(--lp-border, rgba(201,168,76,0.18));
	border-radius: 4px; overflow: hidden;
	display: flex; flex-direction: column;
}
.lp-cx__messages {
	padding: 1.5rem; min-height: 300px; max-height: 460px; overflow-y: auto;
	display: flex; flex-direction: column; gap: 1rem;
}
.lp-cx__messages::-webkit-scrollbar { width: 3px; }
.lp-cx__messages::-webkit-scrollbar-thumb { background: var(--lp-border, rgba(201,168,76,0.3)); }

.lp-cx__msg { display: flex; gap: 0.7rem; align-items: flex-start; }
.lp-cx__msg--user { flex-direction: row-reverse; }
.lp-cx__avatar {
	flex: 0 0 auto; width: 30px; height: 30px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	font-size: 0.7rem; font-weight: 600; letter-spacing: 0.03em;
	background: rgba(201,168,76,0.12); border: 1px solid var(--lp-border, rgba(201,168,76,0.25));
	color: var(--lp-gold, #c5a572);
}
.lp-cx__msg--user .lp-cx__avatar { background: rgba(255,255,255,0.05); color: rgba(255,255,255,0.6); border-color: rgba(255,255,255,0.08); }
.lp-cx__bubble {
	max-width: 82%; padding: 0.8rem 1.05rem; border-radius: 4px;
	font-size: 0.95rem; line-height: 1.6; color: var(--lp-off-white, #e9e5dc);
	background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.06);
}
.lp-cx__msg--user .lp-cx__bubble { background: rgba(201,168,76,0.14); border-color: var(--lp-border, rgba(201,168,76,0.3)); }

.lp-cx__dots { display: inline-flex; gap: 5px; padding: 4px 0; }
.lp-cx__dots i { width: 6px; height: 6px; border-radius: 50%; background: var(--lp-gold, #c5a572); opacity: 0.35; animation: lpcxblink 1.2s infinite; }
.lp-cx__dots i:nth-child(2) { animation-delay: 0.2s; }
.lp-cx__dots i:nth-child(3) { animation-delay: 0.4s; }
@keyframes lpcxblink { 0%, 80%, 100% { opacity: 0.2; } 40% { opacity: 0.9; } }

.lp-cx__quick { display: flex; flex-wrap: wrap; gap: 0.5rem; padding: 0 1.5rem 1rem; }
.lp-cx__quick:empty { display: none; }
.lp-cx__qr {
	padding: 0.5rem 1rem; font-size: 0.8rem; cursor: pointer;
	background: none; color: var(--lp-off-white, #cfcabf);
	border: 1px solid var(--lp-border, rgba(201,168,76,0.25)); border-radius: 2px;
	transition: color 0.2s, border-color 0.2s, background 0.2s;
}
.lp-cx__qr:hover { color: var(--lp-gold, #c5a572); border-color: var(--lp-gold, #c5a572); background: rgba(201,168,76,0.1); }

.lp-cx__inputbar { display: flex; border-top: 1px solid var(--lp-border, rgba(201,168,76,0.18)); }
.lp-cx__inputbar textarea {
	flex: 1; background: transparent; border: 0; outline: none; resize: none;
	padding: 1rem 1.25rem; font-family: inherit; font-size: 0.95rem; line-height: 1.5;
	color: var(--lp-white, #f4f1ec);
}
.lp-cx__inputbar textarea::placeholder { color: rgba(255,255,255,0.35); }
.lp-cx__send {
	padding: 0 1.6rem; border: 0; cursor: pointer; white-space: nowrap;
	background: var(--lp-gold, #c5a572); color: #14110a;
	font-size: 0.72rem; letter-spacing: 0.15em; text-transform: uppercase; font-weight: 600;
	transition: background 0.2s;
}
.lp-cx__send:hover { background: var(--lp-gold-light, #d9bd85); }
.lp-cx__send:disabled { opacity: 0.5; cursor: default; }

/* Lead capture */
.lp-cx__lead { padding: 1.25rem 1.5rem; border-top: 1px solid var(--lp-border, rgba(201,168,76,0.18)); background: rgba(201,168,76,0.05); }
.lp-cx__lead-title { margin: 0 0 0.9rem; color: var(--lp-gold, #c5a572); font-size: 0.85rem; letter-spacing: 0.04em; }
.lp-cx__lead-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 0.6rem; margin-bottom: 0.75rem; }
.lp-cx__lead-fields input[type="email"] { grid-column: 1 / -1; }
.lp-cx__lead input {
	width: 100%; background: var(--lp-black, #0e0e0c); border: 1px solid var(--lp-border, rgba(201,168,76,0.25));
	padding: 0.7rem 0.9rem; color: var(--lp-white, #f4f1ec); font-family: inherit; font-size: 0.9rem; outline: none;
}
.lp-cx__lead input:focus { border-color: var(--lp-gold, #c5a572); }
.lp-cx__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; }
.lp-cx__lead-btn {
	width: 100%; padding: 0.85rem; border: 0; cursor: pointer;
	background: var(--lp-gold, #c5a572); color: #14110a;
	font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 600;
	transition: background 0.2s;
}
.lp-cx__lead-btn:hover { background: var(--lp-gold-light, #d9bd85); }
.lp-cx__lead-btn:disabled { opacity: 0.6; cursor: default; }
.lp-cx__lead-note { margin: 0.6rem 0 0; color: #e6a5a5; font-size: 0.82rem; }
.lp-cx__done { text-align: center; padding: 0.5rem 0; }
.lp-cx__done p { color: var(--lp-off-white, #e9e5dc); font-size: 0.95rem; margin: 0 0 0.9rem; }
.lp-cx__wa {
	display: inline-flex; align-items: center; gap: 0.5rem; text-decoration: none;
	padding: 0.75rem 1.4rem; background: #25d366; color: #fff; border-radius: 3px;
	font-size: 0.8rem; letter-spacing: 0.05em; font-weight: 600;
}
.lp-cx__capture-open {
	background: none; border: 0; cursor: pointer; width: 100%;
	padding: 0.7rem; color: rgba(255,255,255,0.45); font-size: 0.78rem; font-family: inherit;
	border-top: 1px solid rgba(255,255,255,0.05); transition: color 0.2s;
}
.lp-cx__capture-open:hover { color: var(--lp-gold, #c5a572); }

/* Homepage modal */
.lp-cx-modal { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; padding: 1.25rem; }
.lp-cx-modal[hidden] { display: none; }
.lp-cx-modal__backdrop { position: absolute; inset: 0; background: rgba(8,8,7,0.82); backdrop-filter: blur(4px); }
.lp-cx-modal__panel {
	position: relative; z-index: 1; width: 100%; max-width: 620px;
	max-height: 92vh; overflow-y: auto;
	background: var(--lp-charcoal, #141414); border: 1px solid var(--lp-border, rgba(201,168,76,0.25));
	border-top: 3px solid var(--lp-gold, #c5a572); border-radius: 4px;
	padding: 2rem clamp(1.25rem, 3vw, 2rem);
}
.lp-cx-modal__close {
	position: absolute; top: 0.6rem; right: 0.9rem; background: none; border: 0; cursor: pointer;
	color: rgba(255,255,255,0.6); font-size: 1.9rem; line-height: 1; padding: 0.2rem 0.5rem;
}
.lp-cx-modal__close:hover { color: var(--lp-gold, #c5a572); }
.lp-cx-modal__eyebrow { font-size: 0.65rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--lp-gold, #c5a572); margin: 0 0 0.5rem; font-weight: 600; }
.lp-cx-modal__title { font-family: var(--lp-font-serif, 'Cormorant Garamond', serif); font-size: clamp(1.6rem, 4vw, 2.4rem); font-weight: 400; line-height: 1.1; color: var(--lp-white, #f4f1ec); margin: 0 0 1.5rem; }
.lp-cx-modal__title em { font-style: italic; color: var(--lp-gold-light, #d9bd85); }

@media (max-width: 560px) {
	.lp-cx__lead-fields { grid-template-columns: 1fr; }
	.lp-cx__messages { min-height: 240px; }
}

/* /find-your-home/ page: clear the fixed site header (no hero on this page). */
.lp-cx-page .lp-cx-section { padding-top: clamp(7rem, 11vw, 9rem); }
