/* Property Revenue Engine – buyer experience, v2
   Palette: Lagos at night (navy ink) with champagne gold and warm paper.
   Type: Cormorant Garamond (display) + Jost (text). */

:root {
	--pre-ink: #0E1A24;
	--pre-ink-2: #142433;
	--pre-ink-3: #1E3346;
	--pre-paper: #F6F4F0;
	--pre-stone: #ECE8E1;
	--pre-white: #FFFFFF;
	--pre-gold: #C6A46A;
	--pre-gold-hi: #D8BC8A;
	--pre-gold-ink: #85642F;
	--pre-mist: #A3AEB8;
	--pre-text: #17212B;
	--pre-text-2: #59636D;
	--pre-line: rgba(14, 26, 36, .12);
	--pre-line-d: rgba(246, 244, 240, .16);
	--pre-available: #3F8A74;
	--pre-reserved: #C9A23F;
	--pre-sold: #8A4040;
	--pre-display: "Cormorant Garamond", "Cormorant", Georgia, serif;
	--pre-body: "Jost", "Helvetica Neue", Arial, sans-serif;
	--pre-gutter: clamp(18px, 4vw, 48px);
	--pre-head-h: 76px;
	--pre-ease: cubic-bezier(.2, .7, .2, 1);
}

.pre-root, .pre-root *, .pre-site, .pre-site *, .pre-foot, .pre-foot *,
.pre-concierge, .pre-concierge *, .pre-modal, .pre-modal *, .pre-lightbox, .pre-lightbox * { box-sizing: border-box; }

body.pre-site-body {
	margin: 0; background: var(--pre-paper); color: var(--pre-text);
	font-family: var(--pre-body); font-weight: 400; font-size: 17px; line-height: 1.65;
	-webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
}
html:has(body.pre-site-body) { scroll-behavior: smooth; scroll-padding-top: calc(var(--pre-head-h) + 12px); }
@media (prefers-reduced-motion: reduce) { html:has(body.pre-site-body) { scroll-behavior: auto; } }

.pre-root { font-family: var(--pre-body); font-size: 17px; line-height: 1.65; color: var(--pre-text); -webkit-font-smoothing: antialiased; }
.pre-root h1, .pre-root h2, .pre-root h3, .pre-root h4,
.pre-site h1, .pre-foot h3, .pre-modal h3 {
	font-family: var(--pre-display); font-weight: 400; letter-spacing: -.005em; margin: 0; color: inherit;
}
.pre-root p { margin: 0; }
:where(.pre-root) a { color: inherit; }
:where(.pre-root) button { font: inherit; }
.pre-root img { display: block; max-width: 100%; }
.pre-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pre-hp { position: absolute !important; left: -9999px !important; opacity: 0; }
.pre-skip { position: absolute; left: -9999px; top: 8px; z-index: 10000; background: var(--pre-gold); color: var(--pre-ink); padding: 10px 16px; }
.pre-skip:focus { left: 8px; }

.pre-wrap { width: 100%; max-width: 1280px; margin: 0 auto; padding: 0 var(--pre-gutter); }
.pre-wrap--wide { max-width: 1520px; }

.pre-root :focus-visible, .pre-site :focus-visible, .pre-foot :focus-visible,
.pre-concierge :focus-visible, .pre-modal :focus-visible, .pre-lightbox :focus-visible { outline: 2px solid var(--pre-gold); outline-offset: 3px; }

.pre-ico { width: 20px; height: 20px; flex: none; }

/* ---------- Buttons ---------- */
.pre-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 50px; padding: 0 26px; border-radius: 2px; border: 1px solid transparent;
	font: 500 14.5px/1 var(--pre-body); letter-spacing: .05em;
	text-decoration: none !important; cursor: pointer; white-space: nowrap;
	transition: background-color .25s, color .25s, border-color .25s;
}
.pre-btn .pre-ico { width: 19px; height: 19px; }
.pre-btn--lg { min-height: 58px; padding: 0 32px; font-size: 15px; }
.pre-btn--sm { min-height: 40px; padding: 0 16px; font-size: 13.5px; gap: 8px; }
.pre-btn--sm .pre-ico { width: 17px; height: 17px; }
.pre-btn--full { width: 100%; }
.pre-btn--gold { background: var(--pre-gold); color: var(--pre-ink) !important; }
.pre-btn--gold:hover { background: var(--pre-gold-hi); }
.pre-btn--glass {
	background: rgba(246, 244, 240, .08); color: var(--pre-paper) !important; border-color: rgba(246, 244, 240, .4);
	backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
}
.pre-btn--glass:hover { background: rgba(246, 244, 240, .18); border-color: var(--pre-paper); }
.pre-btn--line-dark { border-color: var(--pre-ink); color: var(--pre-ink) !important; background: transparent; }
.pre-btn--line-dark:hover { background: var(--pre-ink); color: var(--pre-paper) !important; }
.pre-btn--ghost { background: transparent; color: var(--pre-gold-ink) !important; padding-left: 8px; padding-right: 8px; }
.pre-btn--ghost:hover { color: var(--pre-ink) !important; }
.pre-btn[disabled] { opacity: .45; cursor: not-allowed; }
.pre-link {
	display: inline-flex; align-items: center; gap: 8px; background: none; border: 0; padding: 0;
	color: var(--pre-gold-ink); font-weight: 500; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; cursor: pointer;
}
.pre-link .pre-ico { width: 18px; height: 18px; }

/* ---------- Section rhythm ---------- */
.pre-section { padding: clamp(80px, 10vw, 150px) 0; }
.pre-head { margin-bottom: clamp(36px, 5vw, 64px); }
.pre-head h2, .pre-view__ctrl h2 { font-size: clamp(38px, 4.6vw, 66px); line-height: 1.02; font-weight: 300; max-width: 16ch; }
.pre-head p { margin-top: 20px; max-width: 54ch; color: var(--pre-text-2); font-size: 18px; font-weight: 300; }
.pre-head--row { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px 48px; flex-wrap: wrap; }
.pre-head--side { margin-bottom: 0; }
.pre-note { font-size: 13.5px; color: var(--pre-text-2); margin-top: 12px !important; }

/* ---------- Site header ---------- */
.pre-site {
	position: fixed; top: 0; left: 0; right: 0; z-index: 900;
	color: var(--pre-paper); transition: background-color .35s, box-shadow .35s;
}
body.admin-bar .pre-site { top: 32px; }
@media (max-width: 782px) { body.admin-bar .pre-site { top: 46px; } }
.pre-site.is-solid { background: rgba(14, 26, 36, .94); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); box-shadow: 0 1px 0 var(--pre-line-d); }
.pre-site__bar { display: flex; align-items: center; gap: 28px; height: var(--pre-head-h); max-width: 1520px; margin: 0 auto; padding: 0 var(--pre-gutter); }
.pre-site__brand { display: flex; align-items: baseline; gap: 8px; color: var(--pre-paper) !important; text-decoration: none !important; flex: none; }
.pre-site__mark { font: 500 28px/1 var(--pre-display); letter-spacing: .01em; }
.pre-site__mark-sub { font: 400 20px/1 var(--pre-display); color: var(--pre-gold-hi); }
.pre-site__nav { display: flex; gap: 4px; margin: 0 auto; }
.pre-site__nav a { padding: 8px 12px; color: rgba(246, 244, 240, .82) !important; text-decoration: none !important; font-size: 14.5px; letter-spacing: .02em; border-bottom: 1px solid transparent; }
.pre-site__nav a:hover, .pre-site__nav a.is-on { color: var(--pre-paper) !important; border-bottom-color: var(--pre-gold); }
.pre-site__tools { display: flex; align-items: center; gap: 12px; flex: none; }
.pre-cur select {
	appearance: none; -webkit-appearance: none; height: 40px; padding: 0 32px 0 12px; border-radius: 2px;
	background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%23D8BC8A' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 12px center;
	border: 1px solid rgba(246, 244, 240, .35); color: var(--pre-paper); font: 500 13.5px var(--pre-body); letter-spacing: .03em; cursor: pointer;
}
.pre-cur select option { color: var(--pre-text); }
.pre-site__menu { display: none; width: 44px; height: 44px; align-items: center; justify-content: center; background: none; border: 1px solid rgba(246, 244, 240, .35); color: var(--pre-paper); border-radius: 2px; cursor: pointer; }
.pre-site__fx { margin: 0; padding: 6px var(--pre-gutter); text-align: center; font-size: 12.5px; color: var(--pre-ink); background: var(--pre-gold-hi); }
@media (max-width: 1180px) {
	.pre-site__nav {
		position: fixed; inset: var(--pre-head-h) 0 auto 0; flex-direction: column; gap: 0; padding: 12px var(--pre-gutter) 24px;
		background: var(--pre-ink); border-top: 1px solid var(--pre-line-d); display: none;
	}
	.pre-site__nav.is-open { display: flex; }
	.pre-site__nav a { padding: 14px 0; font-size: 18px; border-bottom: 1px solid var(--pre-line-d); }
	.pre-site__menu { display: inline-flex; }
}
@media (max-width: 640px) {
	.pre-site__cta { display: none; }
	.pre-site__mark { font-size: 24px; }
	.pre-site__mark-sub { display: none; }
	:root { --pre-head-h: 66px; }
}

/* ---------- Hero ---------- */
.pre-hero {
	position: relative; isolation: isolate; overflow: hidden;
	min-height: max(680px, 100svh); display: flex; flex-direction: column; justify-content: flex-end;
	background: var(--pre-ink); color: var(--pre-paper);
}
.pre-hero__media { position: absolute; inset: 0; z-index: -2; }
.pre-hero__slide {
	position: absolute; inset: 0; background-size: cover; background-position: center;
	opacity: 0; transform: scale(1.1); transition: opacity 1.8s ease, transform 10s linear;
}
.pre-hero__slide.is-on { opacity: 1; transform: scale(1); }
.pre-hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 1.6s ease; }
.pre-hero__video.is-on { opacity: 1; }
.pre-hero__shade {
	position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background:
		linear-gradient(180deg, rgba(14, 26, 36, .62) 0%, rgba(14, 26, 36, .05) 28%, rgba(14, 26, 36, .1) 50%, rgba(14, 26, 36, .9) 100%),
		radial-gradient(ellipse 70% 60% at 15% 85%, rgba(14, 26, 36, .55), transparent 70%);
}
.pre-hero__inner { padding-top: 160px; padding-bottom: 36px; }
.pre-hero__loc { font-size: 15px; letter-spacing: .06em; color: var(--pre-gold-hi); }
.pre-hero__title { margin: 18px 0 0 -.04em !important; font-weight: 300 !important; line-height: .86; }
.pre-hero__line { display: block; font-size: clamp(76px, 11.5vw, 184px); letter-spacing: -.02em; }
.pre-hero__line--sub { font-size: clamp(34px, 4.6vw, 70px); letter-spacing: .01em; color: rgba(246, 244, 240, .86); margin-top: .1em; padding-left: .06em; }
.pre-hero__tagline { margin-top: 28px !important; max-width: 34ch; font-size: clamp(18px, 1.5vw, 21px); font-weight: 300; color: rgba(246, 244, 240, .9); }
.pre-hero__actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 38px; }

/* One orchestrated entrance */
.pre-hero__loc, .pre-hero__line, .pre-hero__tagline, .pre-hero__actions, .pre-hero__card { animation: pre-rise 1.2s var(--pre-ease) both; }
.pre-hero__line { animation-delay: .15s; }
.pre-hero__line--sub { animation-delay: .3s; }
.pre-hero__tagline { animation-delay: .45s; }
.pre-hero__actions { animation-delay: .6s; }
.pre-hero__card { animation-delay: .8s; }
@keyframes pre-rise { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }

.pre-hero__card {
	position: absolute; right: var(--pre-gutter); bottom: 110px; width: 320px; padding: 26px 28px;
	background: rgba(14, 26, 36, .5); border: 1px solid rgba(246, 244, 240, .2);
	backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
}
.pre-hero__card-k { font-size: 13.5px; letter-spacing: .04em; color: var(--pre-mist); }
.pre-hero__card-price { font: 300 44px/1.05 var(--pre-display); margin-top: 6px !important; font-variant-numeric: lining-nums; }
.pre-hero__card-sub { font-size: 14px; color: rgba(246, 244, 240, .78); margin-top: 6px !important; }
.pre-hero__card-sub .pre-money { color: var(--pre-paper); }
.pre-hero__avail { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--pre-line-d); font-size: 14px; color: rgba(246, 244, 240, .8); }
.pre-hero__avail strong { color: var(--pre-paper); font-weight: 500; }
.pre-hero__bar { height: 3px; background: rgba(246, 244, 240, .2); margin-bottom: 10px; }
.pre-hero__bar span { display: block; height: 100%; background: var(--pre-gold); }
.pre-hero__card-hand { font-size: 13.5px; color: var(--pre-mist); margin-top: 10px !important; }
.pre-hero__foot { display: flex; align-items: center; gap: 16px; padding-bottom: 34px; }
.pre-hero__dots { display: flex; gap: 8px; }
.pre-hero__dots i { display: block; width: 44px; height: 2px; background: rgba(246, 244, 240, .25); overflow: hidden; }
.pre-hero__dots i b { display: block; height: 100%; width: 0; background: var(--pre-gold-hi); }
.pre-hero__dots i.is-on b { animation: pre-dot var(--pre-dot-ms, 7000ms) linear forwards; }
.pre-hero__dots i.is-done b { width: 100%; }
@keyframes pre-dot { to { width: 100%; } }
.pre-hero__pause { display: inline-flex; width: 34px; height: 34px; align-items: center; justify-content: center; background: none; border: 1px solid rgba(246, 244, 240, .3); color: var(--pre-paper); border-radius: 50%; cursor: pointer; }
.pre-hero__pause .pre-ico { width: 14px; height: 14px; }
@media (max-width: 1000px) {
	.pre-hero__card { position: static; width: auto; margin: 8px var(--pre-gutter) 24px; }
	.pre-hero__inner { padding-top: 130px; padding-bottom: 12px; }
}

/* ---------- Story ---------- */
.pre-story { background: var(--pre-paper); }
.pre-story__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(40px, 7vw, 120px); align-items: center; }
.pre-story__text h2 { font-size: clamp(38px, 4.4vw, 62px); line-height: 1.04; font-weight: 300; max-width: 15ch; }
.pre-lede { margin-top: 28px !important; font: 400 clamp(21px, 1.8vw, 25px)/1.45 var(--pre-display); color: var(--pre-text); max-width: 36ch; }
.pre-story__text > p:not(.pre-lede) { margin-top: 18px !important; color: var(--pre-text-2); font-weight: 300; max-width: 52ch; }
.pre-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 44px 0 0; padding-top: 28px; border-top: 1px solid var(--pre-line); }
.pre-stats div { display: flex; flex-direction: column-reverse; }
.pre-stats dt { font-size: 13.5px; color: var(--pre-text-2); margin-top: 6px; }
.pre-stats dd { margin: 0; font: 300 clamp(40px, 4vw, 58px)/1 var(--pre-display); color: var(--pre-ink); font-variant-numeric: lining-nums; }
.pre-stats dd small { font-size: .45em; margin-left: 3px; }
.pre-story__media { position: relative; padding-bottom: 18%; }
.pre-story__tall { margin: 0 0 0 18%; aspect-ratio: 4 / 5; overflow: hidden; }
.pre-story__tall img { width: 100%; height: 100%; object-fit: cover; }
.pre-story__small { position: absolute; left: 0; bottom: 0; width: 52%; margin: 0; background: var(--pre-paper); padding: 12px 12px 0 0; }
.pre-story__small img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.pre-story__small figcaption { font-size: 13px; color: var(--pre-text-2); padding-top: 10px; }
@media (max-width: 900px) {
	.pre-story__grid { grid-template-columns: 1fr; }
	.pre-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 24px; }
}

/* ---------- Layout cards ---------- */
.pre-layouts { background: var(--pre-white); }
.pre-cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 18px; }
.pre-card-l { display: flex; flex-direction: column; background: var(--pre-paper); }
.pre-card-l__img { position: relative; margin: 0; aspect-ratio: 4 / 5; overflow: hidden; }
.pre-card-l__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--pre-ease); }
.pre-card-l:hover .pre-card-l__img img { transform: scale(1.05); }
.pre-chip-s { position: absolute; left: 12px; top: 12px; padding: 6px 10px; background: rgba(14, 26, 36, .78); color: var(--pre-paper); font-size: 12.5px; letter-spacing: .03em; }
.pre-card-l__body { display: flex; flex-direction: column; flex: 1; padding: 20px 20px 18px; }
.pre-card-l__body h3 { font-size: 25px; line-height: 1.12; font-weight: 400; }
.pre-card-l__meta { font-size: 13.5px; color: var(--pre-text-2); margin-top: 8px !important; }
.pre-card-l__meta span { color: var(--pre-gold); margin: 0 2px; }
.pre-card-l__price { margin-top: auto !important; padding-top: 14px; font-size: 14px; color: var(--pre-text-2); }
.pre-card-l__price strong { display: block; font: 400 26px/1.15 var(--pre-display); color: var(--pre-ink); font-variant-numeric: lining-nums; }
.pre-card-l__act { display: flex; flex-wrap: wrap; gap: 4px 8px; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--pre-line); }
@media (max-width: 1200px) {
	.pre-cards { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(270px, 32%); overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 12px; scrollbar-width: thin; }
	.pre-card-l { scroll-snap-align: start; }
}
@media (max-width: 640px) { .pre-cards { grid-auto-columns: 82%; } }

/* ---------- 360° tour ---------- */
.pre-tour { background: var(--pre-ink); color: var(--pre-paper); }
.pre-tour .pre-head p { color: var(--pre-mist); }
.pre-tour__stage { position: relative; overflow: hidden; aspect-ratio: 16 / 8.2; min-height: 460px; background: #08121a; }
.pre-tour__viewer, .pre-tour__viewer.pnlm-container { position: absolute; inset: 0; width: 100%; height: 100%; }
.pre-tour__viewer .pnlm-load-box { background: rgba(14, 26, 36, .85); border-radius: 2px; font-family: var(--pre-body); }
.pre-tour__viewer .pnlm-about-msg, .pre-tour__viewer .pnlm-controls-container { display: none !important; }
.pre-tour__poster {
	position: absolute; inset: 0; z-index: 5; display: grid; place-items: center;
	background: radial-gradient(ellipse at center, rgba(14, 26, 36, .35), rgba(14, 26, 36, .78)), var(--pre-poster, none) center / cover;
	transition: opacity .6s ease, visibility .6s;
}
.pre-tour__poster.is-gone { opacity: 0; visibility: hidden; }
.pre-tour__start { display: flex; flex-direction: column; align-items: center; gap: 10px; background: none; border: 0; color: var(--pre-paper); cursor: pointer; font: 300 30px/1.1 var(--pre-display); }
.pre-tour__start small { font: 400 14px var(--pre-body); color: var(--pre-mist); }
.pre-tour__ring {
	display: grid; place-items: center; width: 104px; height: 104px; border-radius: 50%;
	border: 1px solid rgba(246, 244, 240, .6); background: rgba(14, 26, 36, .35); margin-bottom: 10px;
	box-shadow: 0 0 0 0 rgba(198, 164, 106, .55); animation: pre-ring 2.6s ease-out infinite;
}
.pre-tour__ring .pre-ico { width: 46px; height: 46px; color: var(--pre-gold-hi); }
.pre-tour__start:hover .pre-tour__ring { background: var(--pre-gold); border-color: var(--pre-gold); }
.pre-tour__start:hover .pre-tour__ring .pre-ico { color: var(--pre-ink); }
@keyframes pre-ring { 0% { box-shadow: 0 0 0 0 rgba(198, 164, 106, .5); } 100% { box-shadow: 0 0 0 26px rgba(198, 164, 106, 0); } }
.pre-tour__veil {
	position: absolute; inset: 0; pointer-events: none; opacity: 0; transition: opacity .9s ease;
	background: radial-gradient(ellipse at 50% 35%, rgba(255, 170, 90, .2), transparent 60%), linear-gradient(180deg, rgba(10, 20, 45, .55), rgba(20, 12, 30, .35));
	mix-blend-mode: multiply;
}
.pre-tour__stage.is-evening .pre-tour__veil { opacity: 1; }
.pre-tour__stage .pnlm-render-container { transition: filter .9s ease; }
.pre-tour__stage.is-evening .pnlm-render-container { filter: brightness(.7) saturate(1.15) sepia(.18) contrast(1.05); }
.pre-tour__hud {
	position: absolute; left: 0; right: 0; top: 0; z-index: 3; pointer-events: none;
	display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; padding: 24px 26px 60px;
	background: linear-gradient(180deg, rgba(14, 26, 36, .85), rgba(14, 26, 36, 0));
}
.pre-tour__room { font: 400 32px/1.05 var(--pre-display); text-shadow: 0 1px 14px rgba(0, 0, 0, .5); }
.pre-tour__room small { display: block; font: 400 15px var(--pre-body); color: #E3E8EC; margin-top: 8px; max-width: 46ch; }
.pre-tour__ctrl { display: flex; gap: 8px; pointer-events: auto; }
.pre-chip {
	display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 14px; border-radius: 2px;
	border: 1px solid rgba(246, 244, 240, .35); background: rgba(14, 26, 36, .5); color: var(--pre-paper);
	font: 500 13.5px var(--pre-body); letter-spacing: .03em; cursor: pointer; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
.pre-chip .pre-ico { width: 17px; height: 17px; }
.pre-chip[aria-pressed="true"] { background: var(--pre-gold); color: var(--pre-ink); border-color: var(--pre-gold); }
.pre-tour__specs {
	position: absolute; right: 24px; top: 92px; z-index: 3; width: 270px; padding: 16px 18px;
	background: rgba(14, 26, 36, .72); border: 1px solid var(--pre-line-d); font-size: 14px; color: var(--pre-paper);
	backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
.pre-tour__specs:empty { display: none; }
.pre-tour__specs h4 { font: 500 12.5px var(--pre-body) !important; letter-spacing: .06em; color: var(--pre-gold-hi); margin-bottom: 8px !important; }
.pre-tour__specs ul { margin: 0; padding: 0; list-style: none; }
.pre-tour__specs li { padding: 7px 0; border-top: 1px solid var(--pre-line-d); }
.pre-tour__specs li:first-child { border-top: 0; padding-top: 0; }
.pre-tour__rooms {
	position: absolute; left: 0; right: 0; bottom: 0; z-index: 4; margin: 0; padding: 40px 20px 18px; list-style: none;
	display: flex; gap: 10px; overflow-x: auto; scrollbar-width: none;
	background: linear-gradient(0deg, rgba(14, 26, 36, .85), rgba(14, 26, 36, 0));
}
.pre-tour__rooms::-webkit-scrollbar { display: none; }
.pre-tour__rooms li { flex: none; }
.pre-tour__rooms button { display: block; width: 150px; padding: 0; border: 1px solid rgba(246, 244, 240, .25); background: var(--pre-ink-2); color: var(--pre-paper); text-align: left; cursor: pointer; overflow: hidden; }
.pre-tour__rooms img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; opacity: .7; transition: opacity .2s; }
.pre-tour__rooms span { display: block; padding: 7px 10px; font-size: 13px; }
.pre-tour__rooms button:hover img, .pre-tour__rooms button[aria-current="true"] img { opacity: 1; }
.pre-tour__rooms button[aria-current="true"] { border-color: var(--pre-gold); }
.pre-tour__loading { position: absolute; inset: 0; z-index: 6; display: grid; place-items: center; padding: 24px; text-align: center; color: var(--pre-mist); background: var(--pre-ink); }
.pre-tour__loading[hidden] { display: none; }
.pnlm-hotspot-base.pre-hs {
	width: 30px !important; height: 30px !important; border-radius: 50%;
	background: rgba(198, 164, 106, .95) !important; border: 2px solid var(--pre-paper);
	box-shadow: 0 0 0 7px rgba(198, 164, 106, .28);
}
.pnlm-hotspot-base.pre-hs::after { content: "+"; display: grid; place-items: center; height: 100%; color: var(--pre-ink); font: 500 19px/1 var(--pre-body); }
.pnlm-tooltip span { font-family: var(--pre-body) !important; background: var(--pre-ink) !important; border-radius: 2px !important; padding: 8px 12px !important; font-size: 13.5px !important; width: max-content !important; max-width: 240px; white-space: normal !important; margin-left: 0 !important; }
.pnlm-tooltip span::after { border-color: var(--pre-ink) transparent transparent transparent !important; }
.pre-tour__stage:fullscreen { aspect-ratio: auto; }
@media (max-width: 900px) {
	.pre-tour__stage { aspect-ratio: 3 / 4; min-height: 0; }
	.pre-tour__specs { display: none; }
	.pre-tour__room { font-size: 24px; }
	.pre-chip span { display: none; }
	.pre-tour__rooms button { width: 118px; }
}
body.pre-embed { margin: 0; background: #08121a; font-family: var(--pre-body); }
.pre-tour__stage--embed { position: fixed; inset: 0; aspect-ratio: auto; min-height: 0; }

/* ---------- Availability: live stacking plan ---------- */
.pre-res { background: var(--pre-stone); }
.pre-res__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 72px); align-items: start; }
.pre-legend { display: flex; flex-wrap: wrap; gap: 8px 24px; list-style: none; margin: 0 0 16px; padding: 0; font-size: 14px; color: var(--pre-text-2); }
.pre-legend li { display: flex; align-items: center; gap: 8px; }
.pre-legend i { width: 14px; height: 14px; background: var(--c); }
.pre-legend b { color: var(--pre-text); font-weight: 500; }
.pre-legend .is-available, .pre-cell.is-available { --c: var(--pre-available); }
.pre-legend .is-reserved, .pre-cell.is-reserved { --c: var(--pre-reserved); }
.pre-legend .is-sold, .pre-cell.is-sold { --c: var(--pre-sold); }
.pre-legend .is-sold { background: repeating-linear-gradient(135deg, rgba(14, 26, 36, .3) 0 3px, transparent 3px 6px), #c9cdd0; }
.pre-stack__sides { display: flex; justify-content: space-between; padding: 0 4px 8px 52px; font-size: 12.5px; color: var(--pre-text-2); letter-spacing: .03em; }
.pre-stack__tower { position: relative; padding: 20px 20px 0; background: var(--pre-ink); }
.pre-stack__tower::before { content: ""; position: absolute; left: 22%; right: 22%; top: -10px; height: 10px; background: var(--pre-ink-3); }
.pre-floor { display: grid; grid-template-columns: 36px repeat(4, minmax(0, 1fr)); gap: 6px; margin-bottom: 6px; }
.pre-floor--ph { grid-template-columns: 36px minmax(0, 1fr); }
.pre-floor__n { display: grid; place-items: center; font-size: 13px; font-weight: 500; font-variant-numeric: tabular-nums; color: var(--pre-mist); }
.pre-cell {
	height: 40px; border: 1px solid var(--c); border-radius: 1px; cursor: pointer;
	background: color-mix(in srgb, var(--c) 42%, var(--pre-ink)); color: var(--pre-paper);
	font: 500 13px var(--pre-body); letter-spacing: .03em; transition: background-color .15s;
}
.pre-cell.is-available { background: color-mix(in srgb, var(--c) 66%, var(--pre-ink)); }
.pre-cell.is-reserved { background: color-mix(in srgb, var(--c) 28%, var(--pre-ink)); color: #F1DFA9; }
.pre-cell.is-sold { color: rgba(246, 244, 240, .4); border-color: rgba(246, 244, 240, .1); background: repeating-linear-gradient(135deg, rgba(255, 255, 255, .035) 0 6px, transparent 6px 12px), var(--pre-ink-2); }
.pre-cell:hover { background: color-mix(in srgb, var(--c) 82%, var(--pre-ink)); color: var(--pre-white); }
.pre-cell.is-sold:hover { background: var(--pre-ink-3); color: rgba(246, 244, 240, .7); }
.pre-cell[aria-selected="true"] { background: var(--pre-paper); border-color: var(--pre-paper); color: var(--pre-ink); box-shadow: 0 0 0 3px var(--pre-gold); position: relative; z-index: 1; }
.pre-cell.is-flash { animation: pre-flash 1.6s ease 2; }
@keyframes pre-flash { 50% { background: var(--pre-reserved); color: var(--pre-ink); } }
.pre-stack__ground { display: grid; place-items: center; height: 42px; margin: 0 -20px; background: var(--pre-ink-3); color: var(--pre-mist); font-size: 13px; }
.pre-unit { position: sticky; top: calc(var(--pre-head-h) + 24px); background: var(--pre-white); padding: clamp(26px, 3vw, 40px); }
.pre-unit__id { display: flex; gap: 6px; font-size: 14px; color: var(--pre-text-2); }
.pre-unit__id .pre-unit__status { margin-left: auto; }
.pre-unit__head h3 { font-size: clamp(30px, 2.8vw, 40px); line-height: 1.08; font-weight: 300; margin-top: 8px !important; }
.pre-unit__meta { margin-top: 10px !important; font-size: 14.5px; color: var(--pre-text-2); }
.pre-unit__meta span[aria-hidden] { color: var(--pre-gold); margin: 0 3px; }
.pre-unit__price { margin: 22px 0 0 !important; padding-bottom: 22px; border-bottom: 1px solid var(--pre-line); }
.pre-unit__price .pre-money { font: 300 clamp(38px, 3.6vw, 52px)/1 var(--pre-display); font-variant-numeric: lining-nums; color: var(--pre-ink); }
.pre-unit__status { font-size: 13.5px; font-weight: 500; }
.pre-unit__status.is-available { color: var(--pre-available); }
.pre-unit__status.is-reserved { color: #8E6F1E; }
.pre-unit__status.is-sold { color: var(--pre-sold); }
.pre-plan { padding: 22px 0; border-bottom: 1px solid var(--pre-line); }
.pre-plan h4 { font: 500 14px var(--pre-body) !important; letter-spacing: .03em; margin-bottom: 14px !important; }
.pre-plan__row { margin: 0 0 16px; padding: 0; border: 0; }
.pre-plan__row > label, .pre-plan__row > legend { display: flex; justify-content: space-between; width: 100%; font-size: 14px; color: var(--pre-text-2); margin-bottom: 8px; padding: 0; }
.pre-plan__row output { color: var(--pre-text); font-weight: 500; }
.pre-root input[type="range"] { width: 100%; accent-color: var(--pre-gold); height: 28px; }
.pre-seg { display: flex; flex-wrap: wrap; gap: 6px; }
.pre-seg label { position: relative; margin: 0; }
.pre-seg input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.pre-seg span { display: block; padding: 9px 14px; border: 1px solid var(--pre-line); font-size: 14px; color: var(--pre-text-2); }
.pre-seg input:checked + span { background: var(--pre-ink); border-color: var(--pre-ink); color: var(--pre-paper); }
.pre-seg input:focus-visible + span { outline: 2px solid var(--pre-gold); outline-offset: 2px; }
.pre-plan__out { display: grid; gap: 10px; margin: 6px 0 0; }
.pre-plan__out > div { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font-size: 15px; }
.pre-plan__out dt { color: var(--pre-text-2); }
.pre-plan__out dd { margin: 0; font-weight: 500; font-variant-numeric: tabular-nums; }
.pre-plan__out .is-key dd { font: 400 30px/1 var(--pre-display); color: var(--pre-gold-ink); font-variant-numeric: lining-nums; }
.pre-unit__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding-top: 22px; }
.pre-unit__actions .pre-link { grid-column: 1 / -1; justify-self: start; margin-top: 6px; }
@media (max-width: 960px) { .pre-res__grid { grid-template-columns: 1fr; } .pre-unit { position: static; } }
@media (max-width: 480px) {
	.pre-unit__actions { grid-template-columns: 1fr; }
	.pre-floor { grid-template-columns: 26px repeat(4, minmax(0, 1fr)); gap: 4px; }
	.pre-floor.pre-floor--ph { grid-template-columns: 26px minmax(0, 1fr); }
	.pre-cell { font-size: 11.5px; }
	.pre-stack__tower { padding: 14px 12px 0; }
	.pre-stack__ground { margin: 0 -12px; }
	.pre-stack__sides { padding-left: 40px; }
}

/* ---------- Amenities ---------- */
.pre-amen { background: var(--pre-paper); }
.pre-amen__grid { display: grid; grid-template-columns: 1.5fr 1fr; grid-template-rows: 1fr 1fr; gap: 18px; height: clamp(520px, 52vw, 760px); }
.pre-amen__item { position: relative; margin: 0; overflow: hidden; }
.pre-amen__item--0 { grid-row: 1 / 3; }
.pre-amen__item img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--pre-ease); }
.pre-amen__item:hover img { transform: scale(1.04); }
.pre-amen__item figcaption {
	position: absolute; left: 0; right: 0; bottom: 0; padding: 60px 26px 22px; color: var(--pre-paper);
	background: linear-gradient(0deg, rgba(14, 26, 36, .85), rgba(14, 26, 36, 0));
}
.pre-amen__item strong { display: block; font: 400 clamp(24px, 2.2vw, 32px)/1.1 var(--pre-display); }
.pre-amen__item span { display: block; margin-top: 6px; font-size: 14.5px; font-weight: 300; max-width: 42ch; color: rgba(246, 244, 240, .88); }
.pre-services { list-style: none; margin: 48px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--pre-line); }
.pre-services li { display: grid; grid-template-columns: 34px 1fr; gap: 4px 14px; padding: 26px 24px 26px 0; border-bottom: 1px solid var(--pre-line); }
.pre-services .pre-ico { grid-row: 1 / 3; width: 26px; height: 26px; color: var(--pre-gold-ink); }
.pre-services strong { font: 400 22px/1.2 var(--pre-display); }
.pre-services span { font-size: 14.5px; color: var(--pre-text-2); font-weight: 300; }
@media (max-width: 860px) {
	.pre-amen__grid { grid-template-columns: 1fr; grid-template-rows: none; height: auto; }
	.pre-amen__item { aspect-ratio: 4 / 3; }
	.pre-amen__item--0 { grid-row: auto; aspect-ratio: 4 / 5; }
	.pre-services { grid-template-columns: 1fr; }
}

/* ---------- View from your floor ---------- */
.pre-view { background: var(--pre-ink); color: var(--pre-paper); }
.pre-view__grid { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 72px); align-items: center; }
.pre-view__frame { position: relative; overflow: hidden; aspect-ratio: 16 / 10; background: #1b2c3a; }
.pre-view__img {
	position: absolute; inset: 0; background-size: cover; background-repeat: no-repeat; background-position: 50% 50%;
	transition: background-position 1.2s var(--pre-ease), transform 1.2s var(--pre-ease), filter 1.2s ease, opacity .6s;
	transform-origin: 50% 40%;
}
.pre-view__near { position: absolute; left: 0; right: 0; bottom: 0; width: 100%; height: 100%; transition: opacity 1s ease; pointer-events: none; filter: blur(.6px); }
.pre-view__glass {
	position: absolute; inset: 0; pointer-events: none;
	background:
		linear-gradient(90deg, transparent calc(33.3% - 3px), rgba(8, 16, 24, .92) calc(33.3% - 3px), rgba(8, 16, 24, .92) calc(33.3% + 3px), transparent calc(33.3% + 3px)),
		linear-gradient(90deg, transparent calc(66.6% - 3px), rgba(8, 16, 24, .92) calc(66.6% - 3px), rgba(8, 16, 24, .92) calc(66.6% + 3px), transparent calc(66.6% + 3px)),
		linear-gradient(0deg, rgba(8, 16, 24, .92) 0, rgba(8, 16, 24, .92) 12px, transparent 12px),
		linear-gradient(160deg, rgba(255, 255, 255, .08), transparent 35%);
	box-shadow: inset 0 0 0 12px rgba(8, 16, 24, .92);
}
.pre-view__tag { position: absolute; left: 30px; top: 30px; padding: 12px 18px; background: rgba(14, 26, 36, .7); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.pre-view__tag strong { display: block; font: 400 28px/1.1 var(--pre-display); font-variant-numeric: lining-nums; }
.pre-view__tag span { font-size: 13.5px; color: #D3DAE0; }
.pre-view__ctrl p { margin-top: 18px !important; color: var(--pre-mist); font-weight: 300; max-width: 40ch; }
.pre-view__label { display: flex; justify-content: space-between; margin: 32px 0 6px; font-size: 14px; color: var(--pre-mist); }
.pre-view__label output { font: 400 30px/1 var(--pre-display); color: var(--pre-paper); font-variant-numeric: lining-nums; }
.pre-view .pre-seg { margin-top: 18px; }
.pre-view .pre-seg span { border-color: var(--pre-line-d); color: var(--pre-mist); }
.pre-view .pre-seg input:checked + span { background: var(--pre-paper); color: var(--pre-ink); border-color: var(--pre-paper); }
.pre-view .pre-note { color: var(--pre-mist); }
@media (max-width: 900px) {
	.pre-view__grid { grid-template-columns: 1fr; }
	.pre-view__ctrl { order: -1; }
	.pre-view__tag { left: 16px; top: 16px; padding: 8px 12px; }
	.pre-view__tag strong { font-size: 22px; }
	.pre-view__tag span { font-size: 12px; }
}

/* ---------- Gallery ---------- */
.pre-gallery { background: var(--pre-white); }
.pre-gal { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: clamp(180px, 17vw, 260px); gap: 14px;
	grid-template-areas: "a a b c" "a a d e" "f g g h"; }
.pre-gal__i--0 { grid-area: a; } .pre-gal__i--1 { grid-area: b; } .pre-gal__i--2 { grid-area: c; } .pre-gal__i--3 { grid-area: d; }
.pre-gal__i--4 { grid-area: e; } .pre-gal__i--5 { grid-area: f; } .pre-gal__i--6 { grid-area: g; } .pre-gal__i--7 { grid-area: h; }
.pre-gal button { position: relative; display: block; width: 100%; height: 100%; padding: 0; border: 0; background: var(--pre-stone); cursor: zoom-in; overflow: hidden; }
.pre-gal img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--pre-ease); }
.pre-gal button:hover img { transform: scale(1.05); }
.pre-gal span { position: absolute; left: 14px; bottom: 12px; padding: 5px 10px; background: rgba(14, 26, 36, .7); color: var(--pre-paper); font-size: 13px; opacity: 0; transition: opacity .3s; }
.pre-gal button:hover span, .pre-gal button:focus-visible span { opacity: 1; }
@media (max-width: 760px) {
	.pre-gal { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 160px; grid-template-areas: "a a" "b c" "d e" "f h" "g g"; }
	.pre-gal span { opacity: 1; }
}

/* ---------- Construction progress ---------- */
.pre-progress { background: var(--pre-paper); }
.pre-progress__grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.pre-build { margin: 0; }
.pre-build svg { display: block; width: 100%; height: auto; }
.pre-build figcaption { font-size: 13.5px; color: var(--pre-text-2); margin-top: 10px; }
.pre-mile { list-style: none; margin: 0; padding: 0; position: relative; }
.pre-mile::before { content: ""; position: absolute; left: 7px; top: 10px; bottom: 10px; width: 1px; background: var(--pre-line); }
.pre-mile li { position: relative; display: grid; grid-template-columns: 92px minmax(0, 1fr) auto; gap: 4px 16px; padding: 15px 0 15px 34px; border-bottom: 1px solid var(--pre-line); font-size: 15.5px; }
.pre-mile li::before { content: ""; position: absolute; left: 0; top: 20px; width: 15px; height: 15px; border-radius: 50%; background: var(--pre-paper); border: 1.5px solid var(--pre-mist); }
.pre-mile li.is-done::before { background: var(--pre-ink); border-color: var(--pre-ink); }
.pre-mile li.is-current::before { background: var(--pre-gold); border-color: var(--pre-gold); animation: pre-pulse 2.4s ease-out infinite; }
@keyframes pre-pulse { 0% { box-shadow: 0 0 0 0 rgba(198, 164, 106, .5); } 100% { box-shadow: 0 0 0 12px rgba(198, 164, 106, 0); } }
.pre-mile time { color: var(--pre-text-2); font-variant-numeric: tabular-nums; }
.pre-mile__t { font-weight: 500; }
.pre-mile__n { grid-column: 2 / 3; font-size: 14px; color: var(--pre-text-2); }
.pre-mile__s { grid-row: 1; grid-column: 3; font-size: 13px; color: var(--pre-text-2); }
.pre-mile li.is-current .pre-mile__s { color: var(--pre-gold-ink); font-weight: 500; }
.pre-mile li.is-next { color: var(--pre-text-2); }
.pre-progress__sub { margin-top: 36px !important; color: var(--pre-text-2); }
@media (max-width: 860px) {
	.pre-progress__grid { grid-template-columns: 1fr; }
	.pre-build { max-width: 420px; }
	.pre-mile li { grid-template-columns: 76px minmax(0, 1fr); }
	.pre-mile__s { grid-column: 2; grid-row: auto; }
}

/* ---------- Document vault ---------- */
.pre-docs { background: var(--pre-white); }
.pre-docs__grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.pre-docs__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--pre-line); }
.pre-doc { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; align-items: center; gap: 18px; width: 100%; padding: 20px 4px; border: 0; border-bottom: 1px solid var(--pre-line); background: none; color: var(--pre-text); text-align: left; cursor: pointer; }
.pre-doc:hover { background: var(--pre-paper); }
.pre-doc__ico { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--pre-gold); color: var(--pre-gold-ink); }
.pre-doc__t { font: 400 22px/1.2 var(--pre-display); }
.pre-doc__t small { display: block; font: 400 14px var(--pre-body); color: var(--pre-text-2); margin-top: 3px; }
.pre-doc__a { font-size: 14px; font-weight: 500; color: var(--pre-gold-ink); }
.pre-doc.is-open .pre-doc__ico { background: var(--pre-available); border-color: var(--pre-available); color: var(--pre-white); }
@media (max-width: 860px) { .pre-docs__grid { grid-template-columns: 1fr; } .pre-doc__a { display: none; } }

/* ---------- Family Proxy ---------- */
.pre-family { position: relative; isolation: isolate; color: var(--pre-paper); background: var(--pre-ink); }
.pre-family::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(14, 26, 36, .96) 30%, rgba(14, 26, 36, .78)), var(--pre-family-bg, none) center / cover; }
.pre-family .pre-head p { color: #C9D1D8; }
.pre-family__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.pre-ticks { list-style: none; margin: 32px 0 0; padding: 0; }
.pre-ticks li { display: flex; gap: 12px; padding: 9px 0; font-weight: 300; }
.pre-ticks .pre-ico { color: var(--pre-gold-hi); margin-top: 4px; }
.pre-card { background: var(--pre-paper); color: var(--pre-text); padding: clamp(24px, 3vw, 40px); }
@media (max-width: 860px) { .pre-family__grid { grid-template-columns: 1fr; } }

/* ---------- Forms ---------- */
.pre-form fieldset { border: 0; margin: 0 0 22px; padding: 0; }
.pre-form legend { font: 400 24px var(--pre-display); margin-bottom: 12px; padding: 0; }
.pre-form label { display: block; font-size: 13.5px; font-weight: 500; letter-spacing: .02em; color: var(--pre-text-2); margin-bottom: 14px; }
.pre-form input:not([type="range"]):not([type="radio"]), .pre-form select, .pre-form textarea {
	display: block; width: 100%; margin-top: 6px; min-height: 48px; padding: 10px 14px;
	border: 1px solid rgba(14, 26, 36, .22); border-radius: 1px; background: var(--pre-white); color: var(--pre-text); font: 400 16px var(--pre-body); box-shadow: none;
}
.pre-form input:focus, .pre-form select:focus, .pre-form textarea:focus { border-color: var(--pre-ink); outline: 2px solid rgba(198, 164, 106, .55); outline-offset: 0; }
.pre-form [aria-invalid="true"] { border-color: var(--pre-sold) !important; }
.pre-f2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
@media (max-width: 560px) { .pre-f2 { grid-template-columns: 1fr; } }
.pre-form__msg { font-size: 14px; margin-top: 12px !important; min-height: 1em; }
.pre-form__msg.is-err { color: var(--pre-sold); }
.pre-pass { display: grid; grid-template-columns: minmax(0, 1fr) 120px; gap: 20px; align-items: center; padding: 24px; background: var(--pre-ink); color: var(--pre-paper); border: 1px solid var(--pre-gold); }
.pre-pass h4 { font: 400 26px var(--pre-display); margin: 0 0 6px; }
.pre-pass p { font-size: 14px; color: var(--pre-mist); margin: 2px 0; }
.pre-pass code { font: 500 22px/1 var(--pre-body); letter-spacing: .14em; color: var(--pre-gold-hi); }
.pre-pass__qr { background: var(--pre-white); padding: 8px; }
.pre-pass__qr svg { display: block; width: 100%; height: auto; }

/* ---------- Location ---------- */
.pre-area { background: var(--pre-paper); }
.pre-area__grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 36px; }
.pre-area__map { min-height: 500px; overflow: hidden; background: #dfe3e2; z-index: 0; }
.pre-area__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--pre-line); }
.pre-area__list button { display: grid; grid-template-columns: 80px minmax(0, 1fr); gap: 12px; align-items: baseline; width: 100%; padding: 16px 4px; border: 0; border-bottom: 1px solid var(--pre-line); background: none; text-align: left; cursor: pointer; color: var(--pre-text); }
.pre-area__list button:hover, .pre-area__list button.is-on { background: var(--pre-stone); }
.pre-area__m { font: 400 26px/1 var(--pre-display); color: var(--pre-gold-ink); white-space: nowrap; font-variant-numeric: lining-nums; }
.pre-area__n { font-size: 16px; font-weight: 500; }
.pre-area__n small { display: block; font-size: 13.5px; color: var(--pre-text-2); font-weight: 400; }
.pre-pin { width: 16px; height: 16px; border-radius: 50%; background: var(--pre-ink); border: 3px solid var(--pre-white); box-shadow: 0 0 0 1px rgba(14, 26, 36, .3); }
.pre-pin--home { width: 26px; height: 26px; background: var(--pre-gold); border-color: var(--pre-ink); }
.leaflet-popup-content { font-family: var(--pre-body); font-size: 14px; }
@media (max-width: 860px) { .pre-area__grid { grid-template-columns: 1fr; } .pre-area__map { min-height: 340px; } }

/* ---------- Closing band ---------- */
.pre-close { position: relative; isolation: isolate; color: var(--pre-paper); padding: clamp(110px, 14vw, 200px) 0; background: var(--pre-ink); }
.pre-close::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(14, 26, 36, .88), rgba(14, 26, 36, .35)), var(--pre-close-bg, none) center / cover; }
.pre-close h2 { font-size: clamp(40px, 5vw, 72px); line-height: 1.02; font-weight: 300; max-width: 15ch; }
.pre-close p { margin-top: 22px !important; color: #D3DAE0; max-width: 50ch; font-size: 18px; font-weight: 300; }
.pre-close p .pre-money { color: var(--pre-paper); font-weight: 500; }

/* ---------- Footer ---------- */
.pre-foot { background: var(--pre-ink); color: var(--pre-mist); font-family: var(--pre-body); font-size: 15px; padding: 80px 0 0; }
.pre-foot__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 40px; padding-bottom: 56px; }
.pre-foot__mark { font: 400 34px/1.1 var(--pre-display); color: var(--pre-paper); margin: 0 0 14px; }
.pre-foot p { margin: 4px 0; font-weight: 300; }
.pre-foot h3 { font: 500 13px var(--pre-body); letter-spacing: .08em; color: var(--pre-gold-hi); margin: 0 0 14px; }
.pre-foot__col a { display: flex; align-items: center; gap: 8px; color: var(--pre-paper) !important; text-decoration: none !important; padding: 4px 0; font-weight: 300; }
.pre-foot__col a:hover { color: var(--pre-gold-hi) !important; }
.pre-foot__col .pre-ico { width: 18px; height: 18px; }
.pre-foot__base { position: relative; padding-top: 22px; padding-bottom: 100px; }
.pre-foot__base::before { content: ""; position: absolute; top: 0; left: var(--pre-gutter); right: var(--pre-gutter); border-top: 1px solid var(--pre-line-d); }
@media (max-width: 760px) { .pre-foot__grid { grid-template-columns: 1fr; } }

/* ---------- Modals ---------- */
.pre-modal { width: min(560px, calc(100vw - 24px)); max-height: calc(100vh - 40px); padding: 0; border: 0; border-radius: 0; background: var(--pre-paper); color: var(--pre-text); font-family: var(--pre-body); font-size: 16px; }
.pre-modal::backdrop, .pre-lightbox::backdrop { background: rgba(8, 16, 24, .78); backdrop-filter: blur(4px); }
.pre-modal .pre-form, .pre-modal__done { padding: 36px; position: relative; }
.pre-modal h3 { font: 300 34px/1.1 var(--pre-display); margin: 0 44px 10px 0; color: var(--pre-text); }
.pre-modal__lead { color: var(--pre-text-2); margin: 0 0 18px; font-weight: 300; }
.pre-modal__summary:empty { display: none; }
.pre-modal__summary { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; padding: 14px 16px; margin-bottom: 18px; background: var(--pre-stone); font-size: 14.5px; }
.pre-modal__summary b { font-weight: 500; text-align: right; }
.pre-modal__x { position: absolute; z-index: 2; right: 14px; top: 14px; width: 42px; height: 42px; border: 0; background: var(--pre-stone); color: var(--pre-text); cursor: pointer; display: grid; place-items: center; }
.pre-modal__done p { margin: 8px 0; color: var(--pre-text-2); }
.pre-modal__done .pre-btn { margin-top: 18px; }
.pre-modal .pre-note:empty { display: none; }
.pre-modal--plan { width: min(1080px, calc(100vw - 24px)); }
.pre-planbox { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); }
.pre-planbox__draw { background: var(--pre-white); padding: 40px; display: grid; place-items: center; }
.pre-planbox__draw svg { width: 100%; height: auto; max-height: 70vh; }
.pre-planbox__info { padding: 56px 36px 36px; }
.pre-planbox__meta { color: var(--pre-text-2); margin-top: 8px; }
.pre-planbox__price { font: 300 34px/1.1 var(--pre-display); margin: 18px 0 0; font-variant-numeric: lining-nums; }
.pre-planbox__act { display: grid; gap: 10px; margin-top: 24px; }
@media (max-width: 820px) { .pre-planbox { grid-template-columns: 1fr; } .pre-planbox__draw { padding: 20px; } .pre-planbox__info { padding: 24px; } }
.pre-lightbox { width: min(1400px, calc(100vw - 24px)); padding: 0; border: 0; background: transparent; }
.pre-lightbox figure { margin: 0; }
.pre-lightbox img { display: block; width: 100%; max-height: 82vh; object-fit: contain; }
.pre-lightbox figcaption { color: var(--pre-paper); font: 400 22px var(--pre-display); padding-top: 12px; }

/* ---------- Concierge ---------- */
.pre-concierge { position: fixed; right: 20px; bottom: 20px; z-index: 9990; font-family: var(--pre-body); }
.pre-concierge__btn { display: inline-flex; align-items: center; gap: 10px; height: 54px; padding: 0 22px 0 18px; border-radius: 999px; border: 1px solid rgba(216, 188, 138, .6); background: var(--pre-ink); color: var(--pre-paper); font: 500 14.5px var(--pre-body); letter-spacing: .03em; cursor: pointer; box-shadow: 0 12px 34px rgba(8, 16, 24, .35); }
.pre-concierge__btn .pre-ico { color: var(--pre-gold-hi); width: 22px; height: 22px; }
.pre-concierge__panel { position: absolute; right: 0; bottom: 66px; width: min(340px, calc(100vw - 40px)); padding: 22px; background: var(--pre-paper); color: var(--pre-text); box-shadow: 0 24px 60px rgba(8, 16, 24, .3); display: grid; gap: 10px; }
.pre-concierge__panel[hidden] { display: none; }
.pre-concierge__who { font: 400 24px var(--pre-display); margin: 0; }
.pre-concierge__who small { display: block; font: 400 13.5px var(--pre-body); color: var(--pre-text-2); margin-top: 2px; }
.pre-concierge__ctx { font-size: 14px; color: var(--pre-text-2); margin: 0 0 4px; padding: 10px 12px; background: var(--pre-stone); }
.pre-concierge__ctx:empty { display: none; }
@media (max-width: 560px) { .pre-concierge__btn span { display: none; } .pre-concierge__btn { padding: 0 16px; } }

/* ---------- Demo notice ---------- */
.pre-demo-note { margin: 0; font: 13px/1.6 var(--pre-body); color: var(--pre-mist); }
p.pre-demo-note { padding: 14px var(--pre-gutter) 90px; text-align: center; background: var(--pre-ink); border-top: 1px solid var(--pre-line-d); }
.pre-demo-note a { color: var(--pre-gold-hi); }

/* Converted Houzez prices */
.pre-converted-hint { display: block; font-size: .78em; opacity: .75; font-weight: 400; }

@media (prefers-reduced-motion: reduce) {
	.pre-root *, .pre-concierge *, .pre-modal *, .pre-site * { animation: none !important; transition: none !important; }
	.pre-hero__slide { transform: none; }
}
