/*
 * Default palette matches the Natalie Mercer / Realtor Mercer brand
 * (index.html at the project root). Override any of these custom
 * properties from a theme stylesheet to reskin for a different agent.
 */
.llp-listing-page {
	--llp-ink: #17140f;
	--llp-surface: #1f1b15;
	--llp-surface-2: #29241d;
	--llp-light: #f6f0e8;
	--llp-white: #faf6f1;
	--llp-white-dim: rgba(250, 246, 241, 0.78);
	--llp-primary: #c98a94;
	--llp-primary-light: #dda6ae;
	--llp-primary-dim: #a56670;
	--llp-line: rgba(250, 246, 241, 0.14);

	background: var(--llp-ink);
	color: var(--llp-white);
	font-family: 'Schibsted Grotesk', sans-serif;
	margin: 0;
}

.llp-listing-page h1,
.llp-listing-page h2,
.llp-listing-page h3 {
	font-family: 'Instrument Serif', serif;
	font-weight: 400;
	margin: 0 0 0.5rem;
}

.llp-page { max-width: 960px; margin: 0 auto; padding-bottom: 6rem; }

.llp-hero { position: relative; }
.llp-hero-media { aspect-ratio: 16 / 9; overflow: hidden; }
.llp-hero-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.llp-hero-inner { padding: 2rem 1.5rem 1rem; }

.llp-eyebrow {
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-size: 0.8rem;
	color: var(--llp-primary-dim);
	margin: 0 0 0.75rem;
}

.llp-address { font-size: clamp(1.8rem, 1.4rem + 2vw, 3rem); color: var(--llp-white); }
.llp-city { color: var(--llp-white-dim); margin: 0 0 1rem; }
.llp-price { font-size: clamp(1.4rem, 1.2rem + 1vw, 2rem); color: var(--llp-primary-light); font-family: 'Instrument Serif', serif; margin: 0 0 1.25rem; }

.llp-badges { display: flex; flex-wrap: wrap; gap: 0.75rem 1.5rem; }
.llp-badges span { display: inline-flex; align-items: center; gap: 0.4rem; color: var(--llp-white-dim); font-size: 0.95rem; }
.llp-badges i { color: var(--llp-primary); }

.llp-gallery {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 0.5rem;
	padding: 1.5rem;
	border-top: 1px solid var(--llp-line);
}
.llp-gallery img { width: 100%; height: 180px; object-fit: cover; display: block; }

.llp-body {
	display: grid;
	grid-template-columns: 1.6fr 1fr;
	gap: 2rem;
	padding: 2rem 1.5rem;
	border-top: 1px solid var(--llp-line);
}
@media (max-width: 720px) { .llp-body { grid-template-columns: 1fr; } }

.llp-description p { line-height: 1.7; color: var(--llp-white-dim); }

.llp-details-card { background: var(--llp-surface); border: 1px solid var(--llp-line); border-top: 3px solid var(--llp-primary); padding: 1.5rem; align-self: start; }
.llp-details-card dl { margin: 0; }
.llp-details-card dt { color: var(--llp-primary-dim); font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.05em; margin-top: 0.75rem; }
.llp-details-card dd { margin: 0.15rem 0 0; color: var(--llp-white); }

.llp-agent-share {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 1.5rem;
	padding: 2rem 1.5rem;
	border-top: 1px solid var(--llp-line);
}
.llp-agent-name { font-family: 'Instrument Serif', serif; font-size: 1.3rem; color: var(--llp-white); }
.llp-agent p { margin: 0.15rem 0; color: var(--llp-white-dim); }
.llp-qr { text-align: center; }
.llp-qr img { background: var(--llp-white); padding: 8px; border-radius: 4px; }
.llp-qr p { font-size: 0.8rem; color: var(--llp-white-dim); margin-top: 0.5rem; }

/* Sticky multi-contact CTA bar */
.llp-cta-bar {
	position: fixed;
	bottom: 0; left: 0; right: 0;
	display: flex;
	background: rgba(31, 27, 21, 0.92);
	backdrop-filter: blur(8px);
	border-top: 1px solid var(--llp-line);
	z-index: 40;
}
.llp-cta-btn {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.25rem;
	padding: 0.85rem 0.5rem;
	background: none;
	border: none;
	color: var(--llp-white);
	font-family: inherit;
	font-size: 0.75rem;
	cursor: pointer;
	text-decoration: none;
}
.llp-cta-btn i { font-size: 1.3rem; color: var(--llp-primary); }
.llp-cta-btn:hover, .llp-cta-btn:focus-visible { background: rgba(201, 138, 148, 0.1); outline: none; }

/* Lead-capture modal */
.llp-modal {
	position: fixed; inset: 0;
	background: rgba(0,0,0,0.6);
	display: flex; align-items: center; justify-content: center;
	z-index: 50; padding: 1rem;
}
.llp-modal[hidden] { display: none; }
.llp-modal-inner {
	background: var(--llp-surface);
	border: 1px solid var(--llp-line);
	border-top: 3px solid var(--llp-primary);
	padding: 2rem;
	max-width: 380px; width: 100%;
	position: relative;
}
.llp-modal-close {
	position: absolute; top: 0.75rem; right: 0.75rem;
	background: none; border: none; color: var(--llp-white-dim);
	font-size: 1.5rem; cursor: pointer; line-height: 1;
}
.llp-modal-inner label { display: block; margin-bottom: 1rem; color: var(--llp-white-dim); font-size: 0.85rem; }
.llp-modal-inner input {
	display: block; width: 100%; margin-top: 0.3rem;
	background: var(--llp-surface-2); border: 1px solid var(--llp-line);
	color: var(--llp-white); padding: 0.6rem 0.7rem; font-family: inherit; font-size: 0.95rem;
	box-sizing: border-box;
}
.llp-modal-submit {
	background: var(--llp-primary); color: var(--llp-ink);
	border: none; padding: 0.7rem 1.5rem; font-weight: 600; cursor: pointer;
}
.llp-modal-submit:hover { background: var(--llp-primary-light); }
.llp-modal-status { min-height: 1.2em; font-size: 0.85rem; color: var(--llp-primary-light); }

/* Print / "Send PDF" mode */
@media print {
	.llp-no-print, .llp-cta-bar, .llp-modal { display: none !important; }
	.llp-listing-page { background: #fff; color: #111; }
}
