/* ==========================================================================
   Hidden Valley Lots — widget styles
   Tokens come from the Hidden Valley theme (fallbacks included).
   ========================================================================== */

:root {
	--hvx-av: var(--hv-st-available, #a6cf45);
	--hvx-uo: var(--hv-st-under_offer, #e8b04a);
	--hvx-sold: var(--hv-st-sold, #c8553d);
	--hvx-hold: var(--hv-st-hold, #8a9ba8);
}

/* Shared section shells ---------------------------------------------------- */
.hvx, .hvc, .hvcc, .hvr, .hvi, .hvd, .hvm, .hvf, .hvgal, .hvmed, .hvlot__more {
	--pad-y: clamp(72px, 9vw, 136px);
	padding: var(--pad-y) var(--hv-gutter, 24px);
	position: relative;
}
.hvx > *, .hvc > *, .hvcc > *, .hvr > *, .hvi > *, .hvd > *, .hvm > *, .hvgal > *, .hvmed > * { max-width: var(--hv-max, 1440px); margin-left: auto; margin-right: auto; }

.hvx--dark, .hvd--dark, .hvgal--dark, .hvmed--dark, .hvi--dark, .hvr--dark, .hvc--dark, .hvm--dark, .hvf--dark { background: var(--hv-ink, #0e1f24); color: #fff; }
.hvx--light, .hvd--light, .hvgal--light, .hvmed--light, .hvi--light, .hvr--light, .hvc--light, .hvm--light, .hvf--light { background: var(--hv-paper, #fbf9f4); color: var(--hv-text, #13252b); }
.hvx--sand, .hvd--sand, .hvgal--sand, .hvmed--sand, .hvi--sand, .hvr--sand, .hvc--sand, .hvm--sand, .hvf--sand { background: var(--hv-sand-50, #f5efe2); color: var(--hv-text, #13252b); }
[class*="--dark"] .hv-kicker { color: var(--hv-accent); }
.hv-kicker { margin-bottom: 18px; }
.hv-acc { color: var(--hv-accent); }

/* Section headline scale */
.hvx__title, .hvc__title, .hvcc__title, .hvr__title, .hvi__title, .hvd__title, .hvm__title, .hvf__title, .hvgal__title, .hvmed__title {
	font-size: clamp(36px, 5.2vw, 72px); line-height: .98; letter-spacing: -.035em; font-weight: 800; margin: 0 0 20px; text-wrap: balance;
}

/* Reveal motion */
[data-hv-reveal] .hvs-line, [data-hv-reveal] .hvcc-city, [data-hv-reveal] .hvcc-hv, [data-hv-reveal] .hvr-tile,
[data-hv-reveal] .hvi-item, [data-hv-reveal] .hvd-step, [data-hv-reveal] .hve-band, [data-hv-reveal] .hvm__times li {
	opacity: 0; transform: translateY(26px);
	transition: opacity .9s var(--hv-ease, ease), transform .9s var(--hv-ease, ease);
	transition-delay: calc(var(--i, 0) * 110ms + 80ms);
}
[data-hv-reveal].is-in .hvs-line, [data-hv-reveal].is-in .hvcc-city, [data-hv-reveal].is-in .hvcc-hv, [data-hv-reveal].is-in .hvr-tile,
[data-hv-reveal].is-in .hvi-item, [data-hv-reveal].is-in .hvd-step, [data-hv-reveal].is-in .hve-band, [data-hv-reveal].is-in .hvm__times li { opacity: 1; transform: none; }
.elementor-editor-active [data-hv-reveal] * { opacity: 1 !important; transform: none !important; }
@media (prefers-reduced-motion: reduce) { [data-hv-reveal] * { transition: none !important; opacity: 1 !important; transform: none !important; } }

/* ==========================================================================
   Gateway
   ========================================================================== */
.hvg {
	position: relative; min-height: 100vh; min-height: 100svh; display: grid; grid-template-rows: auto 1fr auto auto;
	color: #fff; background: var(--hv-ink); overflow: hidden; isolation: isolate;
	padding: calc(env(safe-area-inset-top) + 18px) var(--hv-gutter) calc(env(safe-area-inset-bottom) + 22px);
}
.hvg__bg { position: absolute; inset: 0; z-index: -1; }
.hvg__bg img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.08); transition: transform 2.4s var(--hv-ease); }
.hvg.is-in .hvg__bg img { transform: scale(1.0); }
.hvg__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8, 18, 22, .62) 0%, rgba(8, 18, 22, .25) 38%, rgba(8, 18, 22, .78) 78%, rgba(8, 18, 22, .92) 100%); }
.hvg__glow { position: absolute; top: 30%; bottom: 0; width: 60%; opacity: 0; transition: opacity .6s; z-index: 1; pointer-events: none; }
.hvg__glow--east { left: 0; background: radial-gradient(60% 70% at 25% 80%, rgba(60, 178, 193, .55), transparent 70%); }
.hvg__glow--west { right: 0; background: radial-gradient(60% 70% at 75% 80%, rgba(181, 207, 106, .5), transparent 70%); }
.hvg[data-lean="east"] .hvg__glow--east, .hvg[data-lean="west"] .hvg__glow--west { opacity: 1; }
.hvg__top { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.hvg__logo .hv-logo { width: clamp(150px, 16vw, 210px); display: block; }
.hvg__skip { display: inline-flex; align-items: center; gap: 10px; font-weight: 700; font-size: 15px; text-decoration: none; padding: 10px 16px; border-radius: 999px; background: rgba(255, 255, 255, .1); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .22); backdrop-filter: blur(8px); }
.hvg__skip:hover { background: rgba(255, 255, 255, .2); }
.hvg__intro { align-self: center; max-width: var(--hv-max); width: 100%; margin: 0 auto; padding: 6vh 0 4vh; }
.hvg__kicker { font-size: 13px; letter-spacing: .2em; text-transform: uppercase; font-weight: 700; color: var(--hv-sand); margin-bottom: 18px; }
.hvg__title { font-size: clamp(42px, min(7.2vw, 10.5vh), 124px); line-height: .9; letter-spacing: -.045em; font-weight: 800; text-transform: uppercase; margin: 0 0 22px; text-shadow: 0 2px 40px rgba(0, 0, 0, .3); }
.hvg__q { font-size: clamp(20px, 2.2vw, 28px); font-weight: 500; margin: 0; opacity: .95; }
.hvg__doors { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; max-width: var(--hv-max); width: 100%; margin: 0 auto; }
.hvg-door {
	position: relative; display: grid; gap: 4px; padding: clamp(22px, 2.6vw, 34px); border-radius: 22px; text-decoration: none; color: #fff;
	background: rgba(14, 31, 36, .55); backdrop-filter: blur(16px) saturate(1.2); -webkit-backdrop-filter: blur(16px) saturate(1.2);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .18); overflow: hidden;
	transition: transform .45s var(--hv-ease), box-shadow .3s, background-color .3s;
}
.hvg-door::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: var(--door); }
.hvg-door--east { --door: var(--hv-teal); }
.hvg-door--west { --door: var(--hv-lime); }
.hvg-door:hover, .hvg-door:focus-visible { transform: translateY(-4px); background: rgba(14, 31, 36, .72); box-shadow: inset 0 0 0 1.5px var(--door), 0 30px 60px -30px rgba(0, 0, 0, .6); }
.hvg-door.is-suggested { box-shadow: inset 0 0 0 1.5px var(--door); }
.hvg-door__hint { position: absolute; top: 16px; right: 16px; font-size: 12px; font-weight: 700; padding: 5px 10px; border-radius: 999px; background: var(--door); color: var(--hv-ink); }
.hvg-door__pre { font-size: 14px; opacity: .8; font-weight: 600; }
.hvg-door__title { font-size: clamp(30px, 3.6vw, 52px); font-weight: 800; letter-spacing: -.03em; line-height: 1; }
.hvg-door__places { font-size: 14px; opacity: .7; margin-bottom: 14px; }
.hvg-door__line { display: inline-flex; align-items: center; gap: 10px; font-weight: 700; font-size: 17px; color: var(--door); }
.hvg-door__line svg { width: 22px; height: 22px; transition: transform .3s var(--hv-ease); }
.hvg-door:hover .hvg-door__line svg { transform: translateX(5px); }
.hvg__facts { list-style: none; margin: 18px auto 0; padding: 0; max-width: var(--hv-max); width: 100%; display: flex; flex-wrap: wrap; gap: 8px 22px; font-size: 14px; font-weight: 600; color: rgba(255, 255, 255, .78); }
.hvg__facts li { display: inline-flex; align-items: center; gap: 8px; }
.hvg__facts li + li::before { content: ""; width: 4px; height: 4px; border-radius: 50%; background: rgba(255, 255, 255, .4); margin-right: 14px; }
.hvg__live::before { display: none !important; }
.hvg__live b { color: #fff; }
@media (max-width: 760px) {
	.hvg__doors { grid-template-columns: 1fr; }
	.hvg__intro { padding: 4vh 0 3vh; }
	.hvg__skip { font-size: 13px; padding: 9px 13px; }
	.hvg-door__hint { position: static; justify-self: start; margin-bottom: 6px; }
}

/* ==========================================================================
   Statement
   ========================================================================== */
.hvs { position: relative; overflow: hidden; isolation: isolate; display: flex; padding: calc(var(--hv-header-h, 76px) + 56px) var(--hv-gutter) clamp(56px, 8vw, 110px); }
.hvs--dark { background: var(--hv-ink); color: #fff; }
.hvs--light { background: var(--hv-paper); color: var(--hv-text); }
.hvs--sand { background: var(--hv-sand-50); color: var(--hv-text); }
.hvs--h-screen { min-height: 100vh; min-height: 100svh; }
.hvs--h-tall { min-height: 82vh; min-height: 82svh; }
.hvs--h-auto { padding-top: clamp(72px, 9vw, 136px); padding-bottom: clamp(72px, 9vw, 136px); }
.hvs__bg { position: absolute; inset: 0; z-index: -2; }
.hvs__bg img { width: 100%; height: 100%; object-fit: cover; }
.hvs--drift .hvs__bg img { animation: hv-drift 28s ease-in-out infinite alternate; transform-origin: 50% 60%; }
@keyframes hv-drift { from { transform: scale(1.02) translate3d(0, 0, 0); } to { transform: scale(1.1) translate3d(-1.2%, -1%, 0); } }
@media (prefers-reduced-motion: reduce) { .hvs--drift .hvs__bg img { animation: none; } }
.hvs__shade { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(8, 18, 22, calc(var(--shade) + .25)) 0%, rgba(8, 18, 22, var(--shade)) 45%, rgba(8, 18, 22, calc(var(--shade) * .45)) 100%), linear-gradient(0deg, rgba(8, 18, 22, .55), transparent 40%); }
.hvs--a-center .hvs__shade { background: rgba(8, 18, 22, var(--shade)); }
.hvs--a-right .hvs__shade { background: linear-gradient(270deg, rgba(8, 18, 22, calc(var(--shade) + .25)) 0%, rgba(8, 18, 22, var(--shade)) 45%, rgba(8, 18, 22, calc(var(--shade) * .45)) 100%); }
.hvs--light.hvs--img .hvs__shade, .hvs--sand.hvs--img .hvs__shade { background: linear-gradient(90deg, rgba(251, 249, 244, .95), rgba(251, 249, 244, .6) 55%, rgba(251, 249, 244, .1)); }
.hvs__in { position: relative; width: 100%; max-width: var(--hv-max); margin: auto; display: flex; flex-direction: column; align-items: flex-start; }
.hvs--a-center .hvs__in { align-items: center; text-align: center; }
.hvs--a-right .hvs__in { align-items: flex-end; text-align: right; }
.hvs--a-bottom .hvs__in { margin-bottom: 0; margin-top: auto; }
.hvs__kicker { font-size: 13px; letter-spacing: .2em; text-transform: uppercase; font-weight: 700; color: var(--hv-accent); margin: 0 0 22px; }
.hvs__lines { margin: 0; font-weight: 800; letter-spacing: -.04em; text-transform: uppercase; }
.hvs-line { display: block; line-height: .92; }
.hvs-line--xxl { font-size: clamp(54px, 11vw, 172px); line-height: .86; letter-spacing: -.05em; }
.hvs-line--xl { font-size: clamp(42px, 7.4vw, 112px); }
.hvs-line--lg { font-size: clamp(32px, 4.8vw, 72px); }
.hvs-line--md { font-size: clamp(24px, 3vw, 42px); letter-spacing: -.02em; line-height: 1.05; }
.hvs-line--sm { font-size: clamp(14px, 1.3vw, 17px); letter-spacing: .18em; line-height: 1.4; font-weight: 700; }
.hvs-line--gap { margin-top: .5em; }
.hvs-line--accent { color: var(--hv-accent); }
.hvs-line--muted { opacity: .62; }
.hvs-line--sand { color: var(--hv-sand); }
.hvs__body { max-width: 52ch; font-size: clamp(17px, 1.4vw, 20px); margin: 28px 0 0; opacity: .9; }
.hvs__chips { list-style: none; padding: 0; margin: 28px 0 0; display: flex; flex-wrap: wrap; gap: 10px; }
.hvs--a-center .hvs__chips { justify-content: center; }
.hvs__chips li { padding: 9px 16px; border-radius: 999px; font-weight: 700; font-size: 15px; background: rgba(255, 255, 255, .1); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .25); backdrop-filter: blur(6px); }
.hvs--light .hvs__chips li, .hvs--sand .hvs__chips li { background: #fff; box-shadow: inset 0 0 0 1px var(--hv-line); }
.hvs__btns { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.hvs__cap { position: absolute; right: var(--hv-gutter); bottom: 14px; margin: 0; font-size: 12px; opacity: .65; }
.hvs__cue { position: absolute; left: 50%; bottom: 26px; width: 26px; height: 42px; margin-left: -13px; border-radius: 14px; box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .6); }
.hvs__cue span { position: absolute; left: 50%; top: 9px; width: 4px; height: 8px; margin-left: -2px; border-radius: 2px; background: #fff; animation: hv-cue 1.8s infinite; }
@keyframes hv-cue { 0% { opacity: 0; transform: translateY(0); } 30% { opacity: 1; } 100% { opacity: 0; transform: translateY(12px); } }

/* ==========================================================================
   Lot Explorer
   ========================================================================== */
.hvx { --panel-w: 380px; }
.hvx__head { display: grid; grid-template-columns: 1fr auto; gap: 32px 48px; align-items: end; margin-bottom: 30px; }
.hvx__intro { font-size: 18px; max-width: 54ch; opacity: .82; margin: 0; }
.hvx__stats { display: grid; grid-template-columns: repeat(4, auto); gap: 0; margin: 0; border-radius: 16px; overflow: hidden; box-shadow: inset 0 0 0 1px var(--hvx-line, rgba(255, 255, 255, .16)); }
.hvx--light .hvx__stats, .hvx--sand .hvx__stats { --hvx-line: var(--hv-line); }
.hvx__stats div { padding: 14px 20px; }
.hvx__stats div + div { box-shadow: -1px 0 0 var(--hvx-line, rgba(255, 255, 255, .16)); }
.hvx__stats dt { font-size: 12px; letter-spacing: .12em; text-transform: uppercase; font-weight: 700; opacity: .6; }
.hvx__stats dd { margin: 2px 0 0; font-size: 26px; font-weight: 800; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.hvx__stats dd small { font-size: 14px; font-weight: 600; opacity: .7; }
.hvx__stats div:first-child dd { color: var(--hvx-av); }

.hvx__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.hvx__chips, .hvx__tools { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.hvx-chip, .hvx-seg button, .hvx-short-btn {
	display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 14px; border-radius: 999px; border: 0; cursor: pointer;
	font-weight: 700; font-size: 14px; background: rgba(255, 255, 255, .07); color: inherit; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .16);
	transition: background-color .2s, box-shadow .2s, color .2s;
}
.hvx--light .hvx-chip, .hvx--sand .hvx-chip, .hvx--light .hvx-seg button, .hvx--sand .hvx-seg button, .hvx--light .hvx-short-btn, .hvx--sand .hvx-short-btn { background: #fff; box-shadow: inset 0 0 0 1px var(--hv-line); }
.hvx-chip span { opacity: .6; font-variant-numeric: tabular-nums; }
.hvx-chip i { width: 10px; height: 10px; border-radius: 50%; background: var(--c); }
.hvx-chip.is-on { background: #fff; color: var(--hv-ink); box-shadow: none; }
.hvx--light .hvx-chip.is-on, .hvx--sand .hvx-chip.is-on { background: var(--hv-ink); color: #fff; }
.hvx-seg { display: inline-flex; gap: 0; padding: 3px; border-radius: 999px; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .16); }
.hvx--light .hvx-seg, .hvx--sand .hvx-seg { box-shadow: inset 0 0 0 1px var(--hv-line); background: #fff; }
.hvx-seg button { min-height: 34px; background: transparent !important; box-shadow: none !important; }
.hvx-seg button[aria-pressed="true"] { background: var(--hv-accent) !important; color: var(--hv-accent-ink); }
.hvx-short-btn { color: #fff; background: #d0476a; box-shadow: none; }
.hvx-short-btn svg { width: 16px; height: 16px; }

.hvx__stage { position: relative; }
.hvx__plan { position: relative; border-radius: 22px; overflow: hidden; background: #1a2b22; box-shadow: var(--hv-shadow); user-select: none; -webkit-user-select: none; }
.hvx__svg { display: block; width: 100%; height: auto; }
.hvx__img { transition: opacity .6s ease; }
.hvx-lot { cursor: pointer; outline: none; }
.hvx-lot polygon { stroke: rgba(255, 255, 255, .9); stroke-width: 3; transition: fill-opacity .25s, stroke-width .2s, opacity .3s; vector-effect: non-scaling-stroke; }
.hvx-lot.is-available polygon { fill: var(--hvx-av); fill-opacity: .26; }
.hvx-lot.is-under_offer polygon { fill-opacity: 1; }
.hvx-lot.is-sold polygon { fill: var(--hvx-sold); fill-opacity: .5; }
.hvx-lot.is-hold polygon { fill: var(--hvx-hold); fill-opacity: .45; }
.hvx-lot:hover polygon, .hvx-lot:focus-visible polygon { fill-opacity: .55; stroke-width: 4; }
.hvx-lot.is-available:hover polygon, .hvx-lot.is-available:focus-visible polygon { fill-opacity: .5; }
.hvx-lot.is-sel polygon { stroke: #fff; stroke-width: 6; fill-opacity: .7; }
.hvx-lot.is-dim polygon { opacity: .14; }
.hvx-lot:focus-visible polygon { stroke: var(--hv-accent); stroke-width: 6; }

.hvx__pins { pointer-events: none; }
.hvx-pin circle { fill: var(--hv-ink); stroke: #fff; stroke-width: 4; transition: fill .2s, r .2s; }
.hvx-pin text { fill: #fff; font: 800 34px/1 var(--hv-font); text-anchor: middle; letter-spacing: -.02em; }
.hvx-pin.is-available circle { fill: var(--hvx-av); stroke: #fff; }
.hvx-pin.is-available text { fill: #11200a; }
.hvx-pin.is-under_offer circle { fill: var(--hvx-uo); }
.hvx-pin.is-under_offer text { fill: #2a1a00; }
.hvx-pin.is-sold circle { fill: var(--hvx-sold); }
.hvx-pin.is-hold circle { fill: var(--hvx-hold); }
.hvx-pin.is-hover circle, .hvx-pin.is-sel circle { r: 44; stroke-width: 6; }
.hvx-pin.is-dim { opacity: .25; }
.hvx-pin.is-short circle { stroke: #ff6f91; stroke-width: 8; }
.hvx-road text { fill: rgba(255, 255, 255, .85); font: 700 26px/1 var(--hv-font); letter-spacing: .3em; text-anchor: middle; dominant-baseline: middle; }
.hvx__labels { pointer-events: none; }

.hvx__tip { position: absolute; left: 0; top: 0; z-index: 3; pointer-events: none; display: grid; gap: 4px; padding: 10px 14px; border-radius: 12px; background: rgba(14, 31, 36, .94); color: #fff; font-size: 13px; box-shadow: 0 12px 30px -10px rgba(0, 0, 0, .5); white-space: nowrap; }
.hvx__tip b { font-size: 16px; }
.hvx__compass { position: absolute; left: 14px; top: 14px; margin: 0; display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px 6px 6px; border-radius: 999px; background: rgba(14, 31, 36, .7); color: #fff; font-size: 12px; font-weight: 600; backdrop-filter: blur(6px); pointer-events: none; }
.hvx__compass span { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--hv-teal); color: var(--hv-ink); font-weight: 800; }

.hvx-status { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; font-size: 12.5px; font-weight: 800; letter-spacing: .01em; white-space: nowrap; }
.hvx-status::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.hvx-status.is-available { background: rgba(166, 207, 69, .2); color: #6d9a12; }
.hvx-status.is-under_offer { background: rgba(232, 176, 74, .2); color: #a8720b; }
.hvx-status.is-sold { background: rgba(200, 85, 61, .16); color: #b04530; }
.hvx-status.is-hold { background: rgba(138, 155, 168, .2); color: #5d6e7a; }
.hvx--dark .hvx-status.is-available, .hvx__tip .hvx-status.is-available, .hvx-p .hvx-status.is-available { color: #c7ec6f; }
.hvx--dark .hvx-status.is-under_offer, .hvx__tip .hvx-status.is-under_offer, .hvx-p .hvx-status.is-under_offer { color: #f4c56d; }
.hvx--dark .hvx-status.is-sold, .hvx__tip .hvx-status.is-sold, .hvx-p .hvx-status.is-sold { color: #f08a72; }
.hvx--dark .hvx-status.is-hold, .hvx__tip .hvx-status.is-hold, .hvx-p .hvx-status.is-hold { color: #c3d0d9; }

/* Panel */
.hvx__panel { position: absolute; z-index: 4; top: 14px; right: 14px; bottom: 14px; width: var(--panel-w); max-width: calc(100% - 28px); overflow: auto; overscroll-behavior: contain; border-radius: 18px; background: rgba(14, 31, 36, .96); color: #fff; box-shadow: 0 30px 70px -20px rgba(0, 0, 0, .6); backdrop-filter: blur(12px); outline: none; animation: hvx-in .35s var(--hv-ease); }
.hvx__panel[hidden] { display: none; }
@keyframes hvx-in { from { opacity: 0; transform: translateX(16px); } to { opacity: 1; transform: none; } }
.hvx-p { padding: 22px 22px 18px; }
.hvx-p__x { position: absolute; top: 12px; right: 12px; width: 38px; height: 38px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .1); color: #fff; font-size: 24px; line-height: 1; cursor: pointer; }
.hvx-p__x:hover { background: rgba(255, 255, 255, .2); }
.hvx-p__top { display: flex; gap: 8px; align-items: center; margin: 0 0 8px; flex-wrap: wrap; }
.hvx-p__badge { font-size: 12px; font-weight: 700; padding: 4px 10px; border-radius: 999px; background: rgba(255, 255, 255, .1); }
.hvx-p__title { font-size: 44px; font-weight: 800; letter-spacing: -.04em; line-height: 1; margin: 0; }
.hvx-p__price { font-size: 26px; font-weight: 800; color: var(--hv-accent); margin: 4px 0 16px; letter-spacing: -.02em; }
.hvx-p__specs { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin: 0 0 14px; border-radius: 12px; overflow: hidden; background: rgba(255, 255, 255, .12); }
.hvx-p__specs div { background: var(--hv-ink); padding: 10px 12px; }
.hvx-p__specs dt { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; opacity: .6; font-weight: 700; }
.hvx-p__specs dd { margin: 2px 0 0; font-weight: 800; font-size: 18px; }
.hvx-p__specs dd small { display: block; font-size: 12px; font-weight: 600; opacity: .65; }
.hvx-p__note { font-size: 14px; opacity: .85; }
.hvx-p__pay { font-size: 14.5px; line-height: 1.5; padding: 12px 14px; border-radius: 12px; background: rgba(255, 255, 255, .06); margin: 0 0 12px; }
.hvx-p__inc { list-style: none; margin: 0 0 16px; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 6px 10px; font-size: 13px; }
.hvx-p__inc li { position: relative; padding-left: 20px; opacity: .9; }
.hvx-p__inc li::before { content: ""; position: absolute; left: 0; top: 5px; width: 11px; height: 6px; border-left: 2px solid var(--hv-accent); border-bottom: 2px solid var(--hv-accent); transform: rotate(-45deg); }
.hvx-p__ctas { display: grid; gap: 10px; }
.hvx-p__ctas .hv-btn { width: 100%; }
.hvx-p__row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.hvx-p__btn { display: grid; justify-items: center; gap: 4px; padding: 10px 6px; border-radius: 12px; border: 0; background: rgba(255, 255, 255, .07); color: #fff; font-size: 12.5px; font-weight: 700; text-decoration: none; cursor: pointer; }
.hvx-p__btn:hover { background: rgba(255, 255, 255, .14); }
.hvx-p__btn svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.hvx-p__btn[aria-pressed="true"] { color: #ff8fab; }
.hvx-p__btn[aria-pressed="true"] svg { fill: currentColor; }
.hvx-p__call { justify-self: center; font-size: 14px; color: rgba(255, 255, 255, .75); background: none; border: 0; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.hvx-p__nav { display: flex; justify-content: space-between; margin-top: 16px; padding-top: 14px; border-top: 1px solid rgba(255, 255, 255, .12); }
.hvx-p__nav button { border: 0; background: none; color: #fff; font-weight: 700; cursor: pointer; padding: 6px 0; opacity: .8; }
.hvx-p__nav button:hover { opacity: 1; color: var(--hv-accent); }
.hvx-p__shortlist { list-style: none; margin: 14px 0; padding: 0; display: grid; gap: 6px; }
.hvx-p__shortlist button { width: 100%; display: grid; grid-template-columns: auto auto 1fr; gap: 10px; align-items: center; text-align: left; padding: 12px 14px; border-radius: 12px; border: 0; background: rgba(255, 255, 255, .07); color: #fff; cursor: pointer; }
.hvx-p__shortlist button span:last-child { justify-self: end; opacity: .7; font-size: 14px; }

.hvx__legend { display: flex; flex-wrap: wrap; gap: 10px 22px; align-items: center; margin-top: 16px; font-size: 14px; font-weight: 600; }
.hvx__legend > span { display: inline-flex; align-items: center; gap: 8px; }
.hvx__legend i { width: 14px; height: 14px; border-radius: 4px; background: var(--c); }
.hvx__legend i.is-under_offer { background: repeating-linear-gradient(45deg, var(--hvx-uo) 0 3px, rgba(232, 176, 74, .45) 3px 7px); }
.hvx__legend-note { margin-left: auto; opacity: .75; }
.hvx__legend-note a { color: inherit; font-weight: 800; }

/* List */
.hvx__list { margin-top: clamp(40px, 5vw, 64px); }
.hvx__list-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 12px; }
.hvx__list-head h3 { font-size: 26px; margin: 0; }
.hvx-sort { display: inline-flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 600; }
.hvx-sort select { min-height: 40px; border-radius: 10px; padding: 0 12px; border: 0; background: rgba(255, 255, 255, .08); color: inherit; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .2); }
.hvx--light .hvx-sort select, .hvx--sand .hvx-sort select { background: #fff; box-shadow: inset 0 0 0 1px var(--hv-line); }
.hvx-sort option { color: #13252b; }
.hvx-table-wrap { overflow-x: auto; border-radius: 16px; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12); }
.hvx--light .hvx-table-wrap, .hvx--sand .hvx-table-wrap { box-shadow: inset 0 0 0 1px var(--hv-line); background: #fff; }
.hvx-table { width: 100%; border-collapse: collapse; font-size: 15px; font-variant-numeric: tabular-nums; }
.hvx-table th, .hvx-table td { text-align: left; padding: 13px 16px; border-bottom: 1px solid rgba(255, 255, 255, .08); white-space: nowrap; }
.hvx--light .hvx-table th, .hvx--light .hvx-table td, .hvx--sand .hvx-table th, .hvx--sand .hvx-table td { border-bottom-color: var(--hv-line); }
.hvx-table thead th { font-size: 12px; letter-spacing: .12em; text-transform: uppercase; opacity: .6; font-weight: 700; }
.hvx-table tbody tr { cursor: pointer; transition: background-color .15s; }
.hvx-table tbody tr:hover, .hvx-table tbody tr.is-sel { background: rgba(255, 255, 255, .06); }
.hvx--light .hvx-table tbody tr:hover, .hvx--light .hvx-table tbody tr.is-sel { background: var(--hv-sand-50); }
.hvx-table tbody th a { text-decoration: none; font-weight: 800; }
.hvx-table tr[data-status="under_offer"] td, .hvx-table tr[data-status="sold"] td { opacity: .7; }
.hvx-row-go { font-weight: 700; color: var(--hv-accent); text-decoration: none; }
.hvx--light .hvx-row-go, .hvx--sand .hvx-row-go { color: var(--hv-teal-d); }

@media (max-width: 1000px) {
	.hvx__head { grid-template-columns: 1fr; }
	.hvx__stats { grid-template-columns: repeat(4, 1fr); }
	.hvx__stats div { padding: 12px 14px; }
	.hvx__stats dd { font-size: 21px; }
}
/* Portrait plan (phones): rotated SVG, bottom-sheet panel */
.hvx.is-portrait .hvx__plan { border-radius: 18px; }
.hvx.is-portrait .hvx-road text { font-size: 30px; }
@media (max-width: 700px) {
	.hvx__stats dt { font-size: 10px; letter-spacing: .08em; }
	.hvx__stats dd { font-size: 18px; }
	.hvx__stats dd small { font-size: 11px; }
	.hvx__bar { position: sticky; top: calc(var(--hv-header-h) + env(safe-area-inset-top)); z-index: 5; margin: 0 calc(var(--hv-gutter) * -1) 12px; padding: 10px var(--hv-gutter); background: inherit; overflow-x: auto; flex-wrap: nowrap; }
	.hvx--dark .hvx__bar { background: rgba(14, 31, 36, .95); backdrop-filter: blur(10px); }
	.hvx--light .hvx__bar { background: rgba(251, 249, 244, .95); backdrop-filter: blur(10px); }
	.hvx__chips, .hvx__tools { flex-wrap: nowrap; }
	.hvx-chip, .hvx-seg button { white-space: nowrap; }
	.hvx__panel { position: fixed; top: auto; left: 0; right: 0; bottom: 0; width: auto; max-width: none; max-height: 78vh; max-height: 78svh; border-radius: 22px 22px 0 0; padding-bottom: env(safe-area-inset-bottom); animation-name: hvx-up; z-index: 95; }
	@keyframes hvx-up { from { transform: translateY(40px); opacity: 0; } to { transform: none; opacity: 1; } }
	.hvx-p__title { font-size: 36px; }
	.hvx__legend-note { margin-left: 0; width: 100%; }
	.hvx-table th, .hvx-table td { padding: 11px 12px; font-size: 14px; }
	.hvx-table td:nth-child(2), .hvx-table th:nth-child(2), .hvx-table td:nth-child(4), .hvx-table th:nth-child(4) { display: none; }
	.hvx__compass { font-size: 11px; }
}

/* ==========================================================================
   Acres calculator
   ========================================================================== */
.hvc { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(32px, 6vw, 88px); align-items: center; max-width: none; }
.hvc > * { margin: 0; max-width: none; }
.hvc { padding-left: max(var(--hv-gutter), calc((100vw - var(--hv-max)) / 2)); padding-right: max(var(--hv-gutter), calc((100vw - var(--hv-max)) / 2)); }
.hvc__intro { font-size: 19px; max-width: 46ch; opacity: .85; }
.hvc__big { display: flex; gap: 28px; flex-wrap: wrap; margin-top: 30px; }
.hvc__big div { display: grid; }
.hvc__big b { font-size: clamp(34px, 4.2vw, 58px); font-weight: 800; letter-spacing: -.04em; line-height: 1; }
.hvc__big span { font-size: 14px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; opacity: .6; margin-top: 6px; }
.hvc__tool { display: grid; grid-template-columns: minmax(0, 1fr); gap: 22px; padding: clamp(20px, 3vw, 34px); border-radius: 26px; background: #fff; color: var(--hv-text); box-shadow: var(--hv-shadow); }
.hvc--dark .hvc__tool { background: var(--hv-ink-2); color: #fff; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .1); }
.hvc__viz { display: grid; grid-template-columns: minmax(0, 260px) 1fr; gap: 22px; align-items: center; }
.hvc__svg { width: 100%; height: auto; display: block; border-radius: 12px; }
.hvc__lot { fill: #2d4a2a; }
.hvc__blk { fill: rgba(255, 255, 255, .12); stroke: rgba(255, 255, 255, .55); stroke-width: 1.5; animation: hvc-pop .45s var(--hv-ease) both; }
.hvc__blk.is-you { fill: var(--hv-accent); stroke: #fff; }
@keyframes hvc-pop { from { opacity: 0; transform: scale(.6); transform-box: fill-box; transform-origin: center; } }
.hvc__lbl { fill: rgba(255, 255, 255, .85); font: 700 15px/1 var(--hv-font); text-anchor: middle; letter-spacing: .06em; }
.hvc__count { margin: 0; font-size: 18px; font-weight: 600; line-height: 1.3; }
.hvc__count b { display: block; font-size: clamp(64px, 8vw, 104px); line-height: .9; font-weight: 800; letter-spacing: -.05em; color: var(--hv-teal-d); font-variant-numeric: tabular-nums; }
.hv-market-west .hvc__count b { color: var(--hv-green); }
.hvc--dark .hvc__count b { color: var(--hv-accent); }
.hvc__inputs { display: grid; gap: 18px; }
.hvc-field { display: grid; gap: 10px; }
.hvc-field__top { display: flex; justify-content: space-between; gap: 12px; font-weight: 700; font-size: 15px; }
.hvc-field__top output { font-variant-numeric: tabular-nums; font-weight: 800; }
.hvc-field input[type="range"] { width: 100%; accent-color: var(--hv-teal-d); height: 28px; }
.hv-market-west .hvc-field input[type="range"] { accent-color: var(--hv-green); }
.hvc-field__presets { display: flex; flex-wrap: wrap; gap: 6px; }
.hvc-field__presets button { border: 0; border-radius: 999px; padding: 6px 12px; font-size: 13px; font-weight: 700; background: var(--hv-sand-50); color: var(--hv-text); cursor: pointer; }
.hvc-field__presets button.is-on { background: var(--hv-ink); color: #fff; }
.hvc-money { display: flex; align-items: center; gap: 8px; border-radius: 14px; padding: 0 16px; background: var(--hv-sand-50); box-shadow: inset 0 0 0 1px var(--hv-line); }
.hvc-money span { font-weight: 800; font-size: 20px; opacity: .6; }
.hvc-money input { flex: 1; min-width: 0; height: 56px; border: 0; background: transparent; font-size: 22px; font-weight: 800; outline: none; }
.hvc__result { padding: 18px 20px; border-radius: 16px; background: var(--hv-ink); color: #fff; }
.hvc__result p { margin: 0; font-size: 15px; }
.hvc__equiv { font-size: clamp(30px, 3.6vw, 44px) !important; font-weight: 800; letter-spacing: -.03em; color: var(--hv-accent); margin: 4px 0 10px !important; }
.hvc__fine { font-size: 12.5px; opacity: .6; margin: 0; }
@media (max-width: 960px) {
	.hvc { grid-template-columns: 1fr; }
	.hvc__viz { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 480px) { .hvc__viz { grid-template-columns: 1fr; } .hvc__svg { max-width: 300px; } }

/* ==========================================================================
   City compare (East)
   ========================================================================== */
.hvcc { background: var(--hv-paper); }
.hvcc__head { margin-bottom: 40px; }
.hvcc__head > *, .hvr__head > *, .hvi__head > *, .hvmed__head > * { max-width: 920px; }
.hvcc__grid { display: grid; grid-template-columns: repeat(3, 1fr) 1.5fr; gap: 14px; }
.hvcc-city { display: flex; flex-direction: column; padding: 26px 24px; border-radius: 22px; background: #fff; box-shadow: inset 0 0 0 1px var(--hv-line); min-height: 300px; }
.hvcc-city__amt { font-size: 15px; font-weight: 800; letter-spacing: .06em; color: var(--hv-muted); margin: 0; }
.hvcc-city__amt span { font-weight: 600; letter-spacing: 0; }
.hvcc-city__name { font-size: clamp(30px, 2.8vw, 42px); font-weight: 800; letter-spacing: -.035em; margin: 2px 0 auto; }
.hvcc-city__q { margin: 26px 0 0; font-weight: 700; font-size: 16px; color: var(--hv-muted); display: grid; gap: 6px; }
.hvcc-city__q span { font-size: 72px; line-height: .8; font-weight: 800; color: var(--hv-line); color: rgba(14, 31, 36, .14); }
.hvcc-city__fig { font-size: 30px; font-weight: 800; letter-spacing: -.03em; margin: 24px 0 6px; }
.hvcc-city__detail { font-size: 15px; color: var(--hv-muted); }
.hvcc-city__src { font-size: 12px; color: var(--hv-muted); margin: auto 0 0; }
.hvcc-hv { position: relative; border-radius: 22px; overflow: hidden; min-height: 300px; color: #fff; background: var(--hv-ink); display: flex; }
.hvcc-hv img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hvcc-hv::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(8, 18, 22, .9) 0%, rgba(8, 18, 22, .35) 60%, rgba(8, 18, 22, .1)); }
.hvcc-hv__in { position: relative; z-index: 1; margin-top: auto; padding: 26px; }
.hvcc-hv h3 { font-size: clamp(28px, 2.6vw, 38px); margin: 0 0 10px; }
.hvcc-hv ul { list-style: none; margin: 0 0 18px; padding: 0; display: grid; gap: 4px; font-weight: 700; }
.hvcc-hv li::before { content: "→ "; color: var(--hv-accent); }
.hvcc__outro { margin: 48px 0 0; font-size: clamp(36px, 5.6vw, 84px); line-height: .95; letter-spacing: -.045em; font-weight: 800; text-transform: uppercase; }
@media (max-width: 1080px) { .hvcc__grid { grid-template-columns: repeat(3, 1fr); } .hvcc-hv { grid-column: 1 / -1; min-height: 340px; } }
@media (max-width: 640px) {
	.hvcc__grid { grid-template-columns: 1fr; }
	.hvcc-city { min-height: 0; display: grid; grid-template-columns: 1fr auto; align-items: center; padding: 20px; }
	.hvcc-city__name { margin: 0; }
	.hvcc-city__q { margin: 0; grid-row: 1 / span 2; grid-column: 2; text-align: right; font-size: 13px; }
	.hvcc-city__q span { font-size: 44px; }
}

/* ==========================================================================
   Room for…
   ========================================================================== */
.hvr__head { margin-bottom: 40px; }
.hvr__intro { font-size: 19px; opacity: .85; }
.hvr__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.hvr-tile { position: relative; margin: 0; border-radius: 22px; overflow: hidden; aspect-ratio: 3 / 4; background: var(--hv-ink); color: #fff; }
.hvr-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--hv-ease); }
.hvr-tile:hover img { transform: scale(1.05); }
.hvr-tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(8, 18, 22, .88), rgba(8, 18, 22, .1) 60%); }
.hvr-tile figcaption { position: absolute; z-index: 1; left: 0; right: 0; bottom: 0; padding: 22px; display: grid; gap: 6px; }
.hvr-tile__n { font-size: 12px; font-weight: 800; letter-spacing: .16em; color: var(--hv-accent); }
.hvr-tile strong { font-size: clamp(22px, 2vw, 28px); line-height: 1.05; letter-spacing: -.02em; text-transform: uppercase; }
.hvr-tile__t { font-size: 14.5px; opacity: .85; line-height: 1.45; }
.hvr__cap { margin: 14px 0 0; font-size: 12.5px; opacity: .6; }
@media (max-width: 1000px) { .hvr__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) {
	.hvr__grid { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 78%; overflow-x: auto; scroll-snap-type: x mandatory; margin: 0 calc(var(--hv-gutter) * -1); padding: 0 var(--hv-gutter); scrollbar-width: none; }
	.hvr__grid::-webkit-scrollbar { display: none; }
	.hvr-tile { scroll-snap-align: start; }
}

/* ==========================================================================
   Coastal edge
   ========================================================================== */
.hve { position: relative; overflow: hidden; isolation: isolate; color: #fff; background: var(--hv-ink); min-height: 92vh; display: flex; padding: clamp(88px, 10vw, 150px) var(--hv-gutter); }
.hve__bg { position: absolute; inset: 0; z-index: -2; }
.hve__bg img { width: 100%; height: 100%; object-fit: cover; }
.hve::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(8, 18, 22, .2) 0%, rgba(8, 18, 22, .35) 40%, rgba(8, 18, 22, .88) 100%); }
.hve__in { width: 100%; max-width: var(--hv-max); margin: auto auto 0; display: grid; grid-template-columns: 1.4fr 1fr; gap: 48px; align-items: end; }
.hve__title { font-size: clamp(38px, 5.6vw, 86px); line-height: .95; letter-spacing: -.045em; text-transform: uppercase; margin: 0 0 22px; text-wrap: balance; }
.hve__dist { display: flex; align-items: baseline; gap: 14px; margin: 0; }
.hve__dist b { font-size: clamp(56px, 8vw, 120px); font-weight: 800; letter-spacing: -.05em; line-height: .9; color: var(--hv-accent); }
.hve__dist span { font-size: clamp(18px, 2vw, 26px); font-weight: 700; text-transform: uppercase; letter-spacing: .02em; }
.hve__section { list-style: none; margin: 0; padding: 0 0 0 26px; position: relative; display: grid; gap: 0; }
.hve__section::before { content: ""; position: absolute; left: 7px; top: 14px; bottom: 14px; width: 2px; background: linear-gradient(180deg, var(--hv-teal), #6f8f3a 50%, var(--hv-lime)); }
.hve-band { position: relative; display: grid; gap: 2px; padding: 16px 18px; margin: 0 0 10px; border-radius: 16px; background: rgba(14, 31, 36, .6); backdrop-filter: blur(12px); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14); }
.hve-band strong { font-size: 19px; }
.hve-band span:not(.hve-band__dot) { font-size: 14px; opacity: .75; }
.hve-band__dot { position: absolute; left: -26px; top: 50%; width: 16px; height: 16px; margin-top: -8px; border-radius: 50%; border: 3px solid var(--hv-ink); }
.hve-band--ocean .hve-band__dot { background: var(--hv-teal); }
.hve-band--reserve .hve-band__dot { background: #6f8f3a; }
.hve-band--estate { box-shadow: inset 0 0 0 1.5px var(--hv-accent); }
.hve-band--estate .hve-band__dot { background: var(--hv-lime); }
@media (max-width: 860px) { .hve__in { grid-template-columns: 1fr; } .hve { min-height: 0; } }

/* ==========================================================================
   Inclusions
   ========================================================================== */
.hvi__head { margin-bottom: 40px; }
.hvi__intro { font-size: 19px; opacity: .85; }
.hvi__grid { list-style: none; margin: 0 auto; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.hvi-item { display: grid; align-content: start; gap: 10px; padding: 28px 24px; border-radius: 22px; background: #fff; box-shadow: inset 0 0 0 1px var(--hv-line); }
.hvi--dark .hvi-item { background: rgba(255, 255, 255, .05); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12); }
.hvi-item__icon { width: 44px; height: 44px; padding: 10px; border-radius: 14px; background: var(--hv-ink); color: var(--hv-accent); box-sizing: content-box; margin-bottom: 8px; }
.hvi--dark .hvi-item__icon { background: rgba(255, 255, 255, .08); }
.hvi-item strong { font-size: 22px; line-height: 1.1; letter-spacing: -.02em; }
.hvi-item span { font-size: 15px; opacity: .75; }
@media (max-width: 1000px) { .hvi__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .hvi-item { padding: 22px 18px; } .hvi-item strong { font-size: 18px; } .hvi__grid { gap: 10px; } }

/* ==========================================================================
   Deposit timeline
   ========================================================================== */
.hvd__top { display: grid; grid-template-columns: auto 1fr; gap: 24px 64px; align-items: end; margin-bottom: clamp(40px, 6vw, 80px); }
.hvd__fig { margin: 0; line-height: .82; }
.hvd__fig b { display: block; font-size: clamp(78px, 14vw, 220px); font-weight: 800; letter-spacing: -.06em; color: var(--hv-accent); }
.hvd__fig span { display: block; font-size: clamp(26px, 3.4vw, 50px); font-weight: 800; text-transform: uppercase; letter-spacing: -.02em; margin-top: 10px; }
.hvd__title { font-size: clamp(30px, 3.8vw, 56px); text-transform: uppercase; letter-spacing: -.035em; max-width: 14ch; margin: 0 0 8px; }
.hvd__line { list-style: none; margin: 0 auto; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); position: relative; }
.hvd__line::before { content: ""; position: absolute; left: 0; right: 0; top: 46px; height: 2px; background: linear-gradient(90deg, var(--hv-accent), rgba(255, 255, 255, .2)); }
.hvd--light .hvd__line::before, .hvd--sand .hvd__line::before { background: linear-gradient(90deg, var(--hv-ink), var(--hv-line)); }
.hvd-step { position: relative; display: grid; gap: 6px; padding-right: 24px; }
.hvd-step__when { font-size: 13px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; opacity: .7; }
.hvd-step__dot { width: 18px; height: 18px; border-radius: 50%; background: var(--hv-accent); box-shadow: 0 0 0 6px rgba(255, 255, 255, .08); margin: 12px 0 14px; }
.hvd-step:first-child .hvd-step__dot { animation: hv-pulse 2.2s infinite; }
.hvd-step strong { font-size: clamp(22px, 2.2vw, 30px); letter-spacing: -.02em; line-height: 1.1; }
.hvd-step__t { font-size: 15px; opacity: .75; }
.hvd__foot { display: flex; flex-wrap: wrap; gap: 18px; align-items: center; margin-top: 48px; }
.hvd__note { margin: 0; font-size: 13px; opacity: .6; }
@media (max-width: 760px) {
	.hvd__top { grid-template-columns: 1fr; }
	.hvd__line { grid-template-columns: 1fr; gap: 26px; padding-left: 34px; }
	.hvd__line::before { left: 8px; right: auto; top: 6px; bottom: 6px; width: 2px; height: auto; background: linear-gradient(180deg, var(--hv-accent), rgba(255, 255, 255, .2)); }
	.hvd-step__dot { position: absolute; left: -34px; top: 0; margin: 0; }
}

/* ==========================================================================
   Drive times map
   ========================================================================== */
.hvm { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 6vw, 88px); align-items: center; }
.hvm > * { margin: 0; max-width: none; }
.hvm { padding-left: max(var(--hv-gutter), calc((100vw - var(--hv-max)) / 2)); padding-right: max(var(--hv-gutter), calc((100vw - var(--hv-max)) / 2)); }
.hvm__intro { font-size: 19px; opacity: .85; max-width: 44ch; }
.hvm__times { list-style: none; margin: 30px 0 0; padding: 0; display: grid; gap: 0; }
.hvm__times li { display: grid; grid-template-columns: 150px 1fr; align-items: baseline; gap: 14px; padding: 16px 0; border-top: 1px solid var(--hv-line); }
.hvm--dark .hvm__times li { border-top-color: rgba(255, 255, 255, .14); }
.hvm__times b { font-size: clamp(44px, 5vw, 68px); font-weight: 800; letter-spacing: -.05em; line-height: .9; }
.hvm__times small { font-size: .38em; letter-spacing: 0; font-weight: 700; }
.hvm__times span { font-size: 19px; font-weight: 700; }
.hvm__tag { margin: 36px 0 0; font-size: clamp(42px, 6vw, 92px); font-weight: 800; letter-spacing: -.05em; text-transform: uppercase; line-height: .9; color: var(--hv-teal-d); }
.hv-market-west .hvm__tag { color: var(--hv-green); }
.hvm--dark .hvm__tag { color: var(--hv-accent); }
.hvm__map { position: relative; }
.hvm__svg { width: 100%; height: auto; display: block; border-radius: 26px; background: #e9e2cf; }
.hvm--dark .hvm__svg { background: var(--hv-ink-2); }
.hvm__coast { stroke: #fff; stroke-width: 3; }
.hvm__reserve { fill: rgba(111, 143, 58, .45); }
.hvm__sea-t { fill: rgba(14, 31, 36, .5); font: 700 18px var(--hv-font); letter-spacing: .3em; text-transform: uppercase; writing-mode: vertical-rl; }
.hvm--dark .hvm__sea-t { fill: rgba(255, 255, 255, .5); }
.hvm__route { stroke: var(--hv-ink); stroke-width: 3; stroke-dasharray: 8 8; opacity: .55; }
.hvm--dark .hvm__route { stroke: #fff; }
[data-hv-reveal] .hvm__route { stroke-dashoffset: 400; transition: stroke-dashoffset 2s var(--hv-ease) calc(var(--i) * 250ms + 300ms); }
[data-hv-reveal].is-in .hvm__route { stroke-dashoffset: 0; }
.hvm__pt circle { fill: var(--hv-ink); stroke: #fff; stroke-width: 3; }
.hvm--dark .hvm__pt circle { fill: #fff; stroke: var(--hv-ink); }
.hvm__pt text { fill: var(--hv-ink); font: 700 17px var(--hv-font); }
.hvm--dark .hvm__pt text { fill: #fff; }
.hvm__min { font-weight: 800; font-size: 22px; }
.hvm__pt--far path { fill: var(--hv-ink); }
.hvm--dark .hvm__pt--far path { fill: #fff; }
.hvm__hv circle { fill: var(--hv-lime); stroke: var(--hv-ink); stroke-width: 3; }
.hvm__hv .hvm__pulse { fill: var(--hv-lime); stroke: none; opacity: .5; animation: hvm-pulse 2.4s infinite; transform-box: fill-box; transform-origin: center; }
@keyframes hvm-pulse { 0% { transform: scale(.6); opacity: .6; } 100% { transform: scale(2.4); opacity: 0; } }
.hvm__hv text { fill: var(--hv-ink); font: 800 22px var(--hv-font); letter-spacing: -.02em; }
.hvm__hv .hvm__sub { font: 600 15px var(--hv-font); letter-spacing: 0; }
.hvm--dark .hvm__hv text { fill: #fff; }
.hvm__north path { fill: var(--hv-ink); }
.hvm__north text { fill: var(--hv-ink); font: 800 14px var(--hv-font); }
.hvm--dark .hvm__north path, .hvm--dark .hvm__north text { fill: #fff; }
.hvm__note { font-size: 12px; opacity: .6; margin: 10px 0 0; }
.hvm__embed { border-radius: 26px; overflow: hidden; min-height: 420px; }
@media (max-width: 900px) { .hvm { grid-template-columns: 1fr; } .hvm__times li { grid-template-columns: 120px 1fr; } }

/* ==========================================================================
   Enquiry form
   ========================================================================== */
.hvf__grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(32px, 6vw, 88px); max-width: var(--hv-max); margin: 0 auto; align-items: start; }
.hvf__grid--solo { grid-template-columns: minmax(0, 760px); justify-content: center; }
.hvf__intro { font-size: 19px; opacity: .85; max-width: 42ch; }
.hvf-agent { display: flex; gap: 18px; align-items: center; margin: 30px 0; padding: 16px; border-radius: 20px; background: #fff; box-shadow: inset 0 0 0 1px var(--hv-line); }
.hvf--dark .hvf-agent { background: rgba(255, 255, 255, .06); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12); }
.hvf-agent__img { width: 84px; height: 84px; border-radius: 50%; object-fit: cover; object-position: 50% 15%; background: #ddd; flex: 0 0 auto; }
.hvf-agent p { margin: 0; }
.hvf-agent__name { font-weight: 800; font-size: 20px; letter-spacing: -.01em; }
.hvf-agent__role { font-size: 14px; opacity: .65; }
.hvf-agent__links { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 6px !important; font-weight: 700; font-size: 15px; }
.hvf-agent__links a { text-decoration: none; color: var(--hv-teal-d); }
.hvf--dark .hvf-agent__links a { color: var(--hv-accent); }
.hvf__facts { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; font-size: 15px; }
.hvf__facts li { padding-left: 22px; position: relative; }
.hvf__facts li::before { content: ""; position: absolute; left: 0; top: 7px; width: 10px; height: 10px; border-radius: 50%; background: var(--hv-accent); }
.hvf__form { display: grid; gap: 16px; padding: clamp(22px, 3vw, 38px); border-radius: 26px; background: #fff; color: var(--hv-text); box-shadow: var(--hv-shadow); }
.hvf__label { display: block; font-size: 12px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--hv-muted); margin-bottom: 10px; padding: 0; }
.hvf__lotchips { display: flex; flex-wrap: wrap; gap: 8px; }
.hvf-lot { display: inline-flex; align-items: center; gap: 6px; padding: 6px 6px 6px 14px; border-radius: 999px; font-weight: 800; background: var(--hv-ink); color: #fff; }
.hvf-lot button { width: 26px; height: 26px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .15); color: #fff; cursor: pointer; font-size: 16px; line-height: 1; }
.hvf__intents { border: 0; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.hvf__intents legend { width: 100%; }
.hvf-pill { position: relative; cursor: pointer; }
.hvf-pill input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.hvf-pill span { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border-radius: 999px; font-size: 14px; font-weight: 700; background: var(--hv-sand-50); box-shadow: inset 0 0 0 1px var(--hv-line); transition: background-color .15s, color .15s; }
.hvf-pill input:checked + span { background: var(--hv-ink); color: #fff; box-shadow: none; }
.hvf-pill input:focus-visible + span { outline: 3px solid var(--hv-accent); outline-offset: 2px; }
.hvf__row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.hvf-field { display: grid; gap: 6px; }
.hvf-field > span { font-size: 14px; font-weight: 700; }
.hvf-field em { font-style: normal; font-weight: 500; opacity: .55; }
.hvf-field input, .hvf-field textarea { width: 100%; min-height: 52px; padding: 12px 16px; border-radius: 14px; border: 0; background: var(--hv-sand-50); box-shadow: inset 0 0 0 1px var(--hv-line); font-size: 16px; transition: box-shadow .15s, background-color .15s; }
.hvf-field textarea { resize: vertical; min-height: 96px; }
.hvf-field input:focus, .hvf-field textarea:focus { outline: none; background: #fff; box-shadow: inset 0 0 0 2px var(--hv-ink); }
.hvf-field.is-invalid input, .hvf-field.is-invalid textarea { box-shadow: inset 0 0 0 2px #c8553d; background: #fff6f3; }
.hvf__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.hvf__submit { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 18px; }
.hvf__submit .hv-btn { min-width: 200px; }
.hvf__submit .hv-btn.is-busy { opacity: .7; pointer-events: none; }
.hvf__privacy { margin: 0; font-size: 13px; color: var(--hv-muted); max-width: 32ch; }
.hvf__msg { margin: 0; font-weight: 700; min-height: 1em; }
.hvf__msg.is-err { color: #b04530; }
.hvf__done { text-align: center; padding: 30px 10px; }
.hvf__done svg { width: 64px; height: 64px; padding: 14px; border-radius: 50%; background: var(--hv-lime); color: var(--hv-ink); box-sizing: content-box; }
.hvf__done h3 { font-size: 34px; margin: 18px 0 8px; }
.hvf__done a { font-weight: 800; color: var(--hv-teal-d); }
@media (max-width: 900px) { .hvf__grid { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .hvf__row { grid-template-columns: 1fr; } .hvf__submit .hv-btn { width: 100%; } }

/* ==========================================================================
   Gallery + media
   ========================================================================== */
.hvmed__head { margin-bottom: 28px; }
.hvgal__head { display: flex; justify-content: space-between; align-items: end; gap: 20px; margin-bottom: 28px; }
.hvgal__nav { display: flex; gap: 8px; }
.hvgal__nav button { width: 52px; height: 52px; border-radius: 50%; border: 0; cursor: pointer; font-size: 20px; background: rgba(255, 255, 255, .1); color: inherit; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .2); }
.hvgal--light .hvgal__nav button, .hvgal--sand .hvgal__nav button { background: #fff; box-shadow: inset 0 0 0 1px var(--hv-line); }
.hvgal--strip .hvgal__track { display: grid; grid-auto-flow: column; grid-auto-columns: min(62vw, 820px); gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; max-width: none; margin-right: calc(var(--hv-gutter) * -1); padding-right: var(--hv-gutter); }
.hvgal--strip .hvgal__track::-webkit-scrollbar { display: none; }
.hvgal--grid .hvgal__track { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; }
.hvgal__item { display: block; border-radius: 20px; overflow: hidden; scroll-snap-align: start; aspect-ratio: 16 / 9; background: #223; }
.hvgal__item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1s var(--hv-ease); }
.hvgal__item:hover img { transform: scale(1.04); }
.hvgal__cap { font-size: 12.5px; opacity: .6; margin-top: 14px; }
@media (max-width: 760px) { .hvgal--strip .hvgal__track { grid-auto-columns: 86vw; } .hvgal__nav { display: none; } }

.hvmed__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.hvmed-card { position: relative; display: flex; align-items: flex-end; gap: 14px; min-height: 340px; padding: 26px; border-radius: 22px; overflow: hidden; text-decoration: none; color: #fff; background: var(--hv-ink-2); isolation: isolate; }
.hvmed-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 1.2s var(--hv-ease); }
.hvmed-card::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(8, 18, 22, .85), rgba(8, 18, 22, .1) 65%); }
.hvmed-card:hover img { transform: scale(1.05); }
.hvmed-card__play { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--hv-accent); color: var(--hv-accent-ink); flex: 0 0 auto; }
.hvmed-card__play svg { width: 28px; height: 28px; }
.hvmed-card strong { font-size: clamp(24px, 2.4vw, 34px); letter-spacing: -.02em; }
@media (max-width: 700px) { .hvmed__grid { grid-template-columns: 1fr; } .hvmed-card { min-height: 240px; } }

.hv-modal { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; padding: 20px; }
.hv-modal[hidden] { display: none; }
.hv-modal__scrim { position: absolute; inset: 0; background: rgba(5, 12, 14, .88); backdrop-filter: blur(6px); }
.hv-modal__box { position: relative; width: min(1200px, 100%); max-height: 100%; }
.hv-modal__x { position: absolute; right: 0; top: -52px; width: 44px; height: 44px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .14); color: #fff; font-size: 26px; cursor: pointer; z-index: 2; }
.hv-modal--media .hv-modal__body { aspect-ratio: 16 / 9; border-radius: 16px; overflow: hidden; background: #000; }
.hv-modal--media video, .hv-modal--media iframe { width: 100%; height: 100%; border: 0; display: block; }
.hv-lb { margin: 0; text-align: center; color: #fff; }
.hv-lb img { max-height: 82vh; width: auto; border-radius: 12px; }
.hv-lb figcaption { font-size: 13px; opacity: .7; margin-top: 10px; }
.hv-lb__nav { position: absolute; top: 50%; width: 52px; height: 52px; margin-top: -26px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .15); color: #fff; font-size: 22px; cursor: pointer; }
.hv-lb__nav--p { left: 8px; }
.hv-lb__nav--n { right: 8px; }
body.hv-modal-open { overflow: hidden; }

.hv-toast { position: fixed; left: 50%; bottom: 96px; z-index: 300; transform: translate(-50%, 20px); opacity: 0; padding: 12px 18px; border-radius: 999px; background: var(--hv-ink); color: #fff; font-weight: 700; transition: opacity .3s, transform .3s; }
.hv-toast.is-in { opacity: 1; transform: translate(-50%, 0); }

/* ==========================================================================
   Single lot page
   ========================================================================== */
.hvlot { background: var(--hv-paper); }
.hvlot__hero { max-width: var(--hv-max); margin: 0 auto; padding: 48px var(--hv-gutter) 24px; display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 24px; }
.hvlot__crumbs { width: 100%; font-size: 14px; font-weight: 600; color: var(--hv-muted); }
.hvlot__crumbs a { color: var(--hv-teal-d); text-decoration: none; }
.hvlot__headline { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.hvlot__headline h1 { font-size: clamp(56px, 9vw, 128px); line-height: .85; letter-spacing: -.055em; margin: 0; text-transform: uppercase; }
.hvlot__badge { font-size: 13px; font-weight: 700; padding: 5px 12px; border-radius: 999px; background: var(--hv-sand); }
.hvlot__price { margin: 0; font-size: clamp(32px, 4vw, 56px); font-weight: 800; letter-spacing: -.04em; }
.hvlot__grid { max-width: var(--hv-max); margin: 0 auto; padding: 0 var(--hv-gutter); display: grid; grid-template-columns: 1.6fr 1fr; gap: 24px; align-items: start; }
.hvlot__plan { margin: 0; border-radius: 22px; overflow: hidden; background: #1a2b22; box-shadow: var(--hv-shadow); }
.hvlot__plan svg { display: block; width: 100%; height: auto; max-height: 70vh; }
.hvlot__plan figcaption { padding: 10px 16px; font-size: 12.5px; color: rgba(255, 255, 255, .7); background: var(--hv-ink); }
.hvlot__o polygon { fill: transparent; stroke: rgba(255, 255, 255, .55); stroke-width: 2; vector-effect: non-scaling-stroke; transition: fill .2s; }
.hvlot__o:hover polygon { fill: rgba(255, 255, 255, .15); }
.hvlot__o.is-me polygon { fill: rgba(166, 207, 69, .45); stroke: #fff; stroke-width: 4; }
.hvlot__o.is-me.is-under_offer polygon { fill: rgba(232, 176, 74, .5); }
.hvlot__o.is-me.is-sold polygon { fill: rgba(200, 85, 61, .5); }
.hvlot__card { position: sticky; top: calc(var(--hv-header-h) + 20px); padding: 26px; border-radius: 22px; background: #fff; box-shadow: var(--hv-shadow); }
.hvlot__specs { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin: 0 0 16px; border-radius: 14px; overflow: hidden; background: var(--hv-line); }
.hvlot__specs div { background: #fff; padding: 12px 14px; }
.hvlot__specs dt { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--hv-muted); font-weight: 700; }
.hvlot__specs dd { margin: 2px 0 0; font-weight: 800; font-size: 20px; }
.hvlot__specs dd small { display: block; font-size: 12px; font-weight: 600; color: var(--hv-muted); }
.hvlot__pay { font-weight: 600; font-size: 15px; padding: 12px 14px; border-radius: 12px; background: var(--hv-sand-50); }
.hvlot__ctas { display: grid; gap: 10px; }
.hvlot__ctas .hv-btn { width: 100%; }
.hvlot__share { border: 0; background: none; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; color: var(--hv-muted); }
.hvlot__note { font-size: 14px; color: var(--hv-muted); margin: 14px 0 0; }
.hvlot__more { max-width: var(--hv-max); margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 48px; padding-top: 64px; padding-bottom: 32px; }
.hvlot__more h2 { font-size: 28px; }
.hvlot__inc { list-style: none; padding: 0; margin: 0 0 20px; display: grid; gap: 10px; font-size: 17px; font-weight: 600; }
.hvlot__inc li { padding-left: 28px; position: relative; }
.hvlot__inc li::before { content: ""; position: absolute; left: 2px; top: 6px; width: 13px; height: 7px; border-left: 2.5px solid var(--hv-green); border-bottom: 2.5px solid var(--hv-green); transform: rotate(-45deg); }
.hvlot__others { display: grid; grid-template-columns: repeat(auto-fill, minmax(92px, 1fr)); gap: 8px; }
.hvlot__others a { display: grid; padding: 12px; border-radius: 14px; background: #fff; box-shadow: inset 0 0 0 1px var(--hv-line); text-decoration: none; }
.hvlot__others a:hover { box-shadow: inset 0 0 0 2px var(--hv-green); }
.hvlot__others b { font-size: 24px; }
.hvlot__others span { font-size: 12px; color: var(--hv-muted); }
.hvlot__pn { max-width: var(--hv-max); margin: 0 auto; padding: 24px var(--hv-gutter); display: flex; justify-content: space-between; gap: 12px; font-weight: 700; border-top: 1px solid var(--hv-line); }
.hvlot__pn a { text-decoration: none; }
.hvlot__pn a:hover { color: var(--hv-teal-d); }
@media (max-width: 900px) { .hvlot__grid, .hvlot__more { grid-template-columns: 1fr; } .hvlot__card { position: static; } }

/* Panel sits on the left when the chosen lot is on the right. */
.hvx__panel.is-left { right: auto; left: 14px; animation-name: hvx-in-l; }
@keyframes hvx-in-l { from { opacity: 0; transform: translateX(-16px); } to { opacity: 1; transform: none; } }
/* Collapsed lot list */
.hvx__list.is-collapsed tr.is-extra { display: none; }
.hvx__more { display: flex; justify-content: center; margin-top: 16px; }
.hvx__more button { min-height: 46px; padding: 0 22px; border-radius: 999px; border: 0; cursor: pointer; font-weight: 700; background: rgba(255, 255, 255, .08); color: inherit; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .2); }
.hvx--light .hvx__more button, .hvx--sand .hvx__more button { background: #fff; box-shadow: inset 0 0 0 1px var(--hv-line); }
/* First section under a solid header doesn't need the full top padding. */
.hv-solid-header .elementor > .e-con:first-child > .elementor-element:first-child .hvx,
.hv-solid-header .elementor > .e-con:first-child > .elementor-element:first-child .hvf,
.hv-solid-header .elementor > .e-con:first-child > .elementor-element:first-child .hvgal { padding-top: clamp(40px, 5vw, 72px); }
.hvx-short-btn[hidden], .hvx__more[hidden] { display: none; }
.hvf .hvf-agent__img { border-radius: 50% !important; }

/* ==========================================================================
   Clean plan (no photography) — v1.1
   ========================================================================== */
.hvx { --plan-ground: #142a31; --plan-road: #23414b; --plan-line: rgba(255, 255, 255, .28); --plan-gap: #142a31; }
.hvx--light, .hvx--sand { --plan-ground: #ece5d3; --plan-road: #ffffff; --plan-line: rgba(14, 31, 36, .18); --plan-gap: #ece5d3; }
.hvx__plan { background: var(--plan-ground); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .06); }
.hvx--light .hvx__plan, .hvx--sand .hvx__plan { box-shadow: inset 0 0 0 1px var(--hv-line); }
.hvx__ground { fill: var(--plan-ground); }
.hvx__reserve { fill: rgba(111, 143, 58, .28); }
.hvx__reservelabel { fill: rgba(181, 207, 106, .9); font: 800 22px/1 var(--hv-font); letter-spacing: .32em; text-anchor: middle; dominant-baseline: middle; }
.hvx--light .hvx__reservelabel, .hvx--sand .hvx__reservelabel { fill: #5d6f22; }
.hvx__road { fill: var(--plan-road); }
.hvx__roadline { stroke: var(--plan-line); stroke-width: 3; stroke-dasharray: 26 22; fill: none; }
.hvx__roadlabel { fill: var(--plan-line); font: 800 22px/1 var(--hv-font); letter-spacing: .4em; text-anchor: middle; dominant-baseline: middle; }
.hvx--dark .hvx__roadlabel { fill: rgba(255, 255, 255, .55); }
.hvx__stagelabel { fill: currentColor; opacity: .55; font: 800 30px/1 var(--hv-font); letter-spacing: .3em; text-anchor: middle; dominant-baseline: middle; }

.hvx-lot polygon { stroke: var(--plan-gap); stroke-width: 12; stroke-linejoin: round; vector-effect: none; }
.hvx-lot.is-available polygon { fill: var(--hvx-av); fill-opacity: .92; }
.hvx-lot.is-under_offer polygon { fill-opacity: 1; }
.hvx-lot.is-sold polygon { fill: var(--hvx-sold); fill-opacity: .75; }
.hvx-lot.is-hold polygon { fill: var(--hvx-hold); fill-opacity: .8; }
.hvx-lot:hover polygon, .hvx-lot:focus-visible polygon, .hvx-lot.is-available:hover polygon, .hvx-lot.is-available:focus-visible polygon { fill-opacity: 1; stroke: #fff; stroke-width: 10; }
.hvx-lot.is-available:hover polygon { fill: #b9e05a; }
.hvx-lot.is-sel polygon { stroke: #fff; stroke-width: 16; fill-opacity: 1; }
.hvx-lot.is-dim polygon { opacity: .18; }
.hvx--light .hvx-lot.is-sel polygon, .hvx--sand .hvx-lot.is-sel polygon { stroke: var(--hv-ink); }

.hvx-pin circle { fill: transparent; stroke: none; }
.hvx-pin .hvx-pin__n { font: 800 50px/1 var(--hv-font); text-anchor: middle; letter-spacing: -.03em; fill: #fff; }
.hvx-pin .hvx-pin__a { font: 600 21px/1 var(--hv-font); text-anchor: middle; fill: #fff; opacity: .8; }
.hvx-pin.is-available .hvx-pin__n, .hvx-pin.is-available .hvx-pin__a { fill: #13250a; }
.hvx-pin.is-under_offer .hvx-pin__n, .hvx-pin.is-under_offer .hvx-pin__a { fill: #fff; }
.hvx-pin.is-hover circle, .hvx-pin.is-sel circle { r: 44; stroke: none; }
.hvx-pin.is-short circle { fill: none; stroke: #ff6f91; stroke-width: 7; r: 52; }
.hvx-pin.is-dim { opacity: .3; }
.hvx.is-portrait .hvx-pin .hvx-pin__n { font-size: 56px; }
.hvx.is-portrait .hvx-pin .hvx-pin__a { font-size: 24px; }
.hvx__compass { background: rgba(255, 255, 255, .08); }
.hvx--light .hvx__compass, .hvx--sand .hvx__compass { background: rgba(14, 31, 36, .78); }
.hvx__compass { display: none; }
.hvlot__o polygon { fill: rgba(255, 255, 255, .06); stroke: var(--plan-gap); stroke-width: 12; vector-effect: none; }
.hvlot__o.is-available polygon { fill: rgba(166, 207, 69, .35); }
.hvlot__o.is-me polygon { fill: var(--hvx-av); stroke: #fff; stroke-width: 14; }
.hvlot__o.is-me.is-under_offer polygon { fill: var(--hvx-uo); }
.hvlot__o.is-me.is-sold polygon { fill: var(--hvx-sold); }
.hvlot__plan .hvx__stagelabel, .hvlot__plan .hvx__reservelabel { display: none; }
.hvm__btn { margin: 28px 0 0; }

.hvx__tip[hidden] { display: none; }
/* Flat tiles */
.hvx-lot.is-under_offer polygon { fill: #8c6a2c; fill-opacity: 1; }
.hvx--light .hvx-lot.is-under_offer polygon, .hvx--sand .hvx-lot.is-under_offer polygon { fill: #e9c98a; }
.hvx-lot.is-under_offer:hover polygon { fill: #a57c33; }
.hvx .hvx-pin circle, .hvx .hvx-pin.is-available circle, .hvx .hvx-pin.is-under_offer circle, .hvx .hvx-pin.is-sold circle, .hvx .hvx-pin.is-hold circle { fill: transparent; stroke: none; }
.hvx .hvx-pin.is-short circle { fill: none; stroke: #ff6f91; stroke-width: 7; r: 52; }
.hvx-pin.is-under_offer .hvx-pin__n, .hvx-pin.is-under_offer .hvx-pin__a { fill: #fff7e6; }
.hvx--light .hvx-pin.is-under_offer .hvx-pin__n, .hvx--light .hvx-pin.is-under_offer .hvx-pin__a { fill: #4a3410; }
.hvx-pin.is-sel .hvx-pin__n { font-size: 58px; }
.hvx__legend i.is-under_offer { background: #8c6a2c; }
.hvx--light .hvx__legend i.is-under_offer { background: #e9c98a; }

/* ==========================================================================
   Plan v1.2 — calmer palette, clean hover
   Available lots carry the colour; everything else recedes into slate.
   ========================================================================== */
.hvx { --tile-av: #a6cf45; --tile-av-hi: #bfe262; --tile-uo: #2b4650; --tile-uo-hi: #35545f; --tile-sold: #1f343b; --tile-hold: #3b4c55; }
.hvx--light, .hvx--sand { --tile-uo: #d9d2bf; --tile-uo-hi: #cfc6ae; --tile-sold: #c9c2b0; --tile-hold: #ddd6c4; }
.hvx .hvx-lot polygon, .hvx .hvx-lot:hover polygon, .hvx .hvx-lot:focus-visible polygon, .hvx .hvx-lot.is-sel polygon { stroke: var(--plan-gap); stroke-width: 12; fill-opacity: 1; transition: fill .2s ease, opacity .25s; }
.hvx .hvx-lot.is-available polygon { fill: var(--tile-av); }
.hvx .hvx-lot.is-available:hover polygon, .hvx .hvx-lot.is-available.is-sel polygon { fill: var(--tile-av-hi); }
.hvx .hvx-lot.is-under_offer polygon { fill: var(--tile-uo); }
.hvx .hvx-lot.is-under_offer:hover polygon, .hvx .hvx-lot.is-under_offer.is-sel polygon { fill: var(--tile-uo-hi); }
.hvx .hvx-lot.is-sold polygon { fill: var(--tile-sold); }
.hvx .hvx-lot.is-hold polygon { fill: var(--tile-hold); }
.hvx .hvx-lot.is-dim polygon { opacity: .22; }
.hvx__hover, .hvx__sel { fill: none; pointer-events: none; opacity: 0; stroke-linejoin: round; transition: opacity .15s; }
.hvx__hover { stroke: rgba(255, 255, 255, .7); stroke-width: 5; }
.hvx__sel { stroke: #fff; stroke-width: 7; }
.hvx--light .hvx__hover, .hvx--sand .hvx__hover { stroke: rgba(14, 31, 36, .55); }
.hvx--light .hvx__sel, .hvx--sand .hvx__sel { stroke: var(--hv-ink); }
.hvx__hover.is-on, .hvx__sel.is-on { opacity: 1; }
/* Labels: no size jumps on hover */
.hvx .hvx-pin.is-hover .hvx-pin__n, .hvx .hvx-pin.is-sel .hvx-pin__n { font-size: 50px; }
.hvx.is-portrait .hvx-pin.is-hover .hvx-pin__n, .hvx.is-portrait .hvx-pin.is-sel .hvx-pin__n { font-size: 56px; }
.hvx .hvx-pin.is-available .hvx-pin__n, .hvx .hvx-pin.is-available .hvx-pin__a { fill: #13250a; }
.hvx .hvx-pin.is-under_offer .hvx-pin__n, .hvx .hvx-pin.is-sold .hvx-pin__n, .hvx .hvx-pin.is-hold .hvx-pin__n { fill: rgba(255, 255, 255, .78); }
.hvx .hvx-pin.is-under_offer .hvx-pin__a, .hvx .hvx-pin.is-hold .hvx-pin__a { fill: #cdbb8e; font-size: 17px; font-weight: 800; letter-spacing: .08em; opacity: 1; }
.hvx .hvx-pin.is-sold .hvx-pin__a { fill: #e39a87; font-size: 17px; font-weight: 800; letter-spacing: .08em; opacity: 1; }
.hvx--light .hvx-pin.is-under_offer .hvx-pin__n, .hvx--sand .hvx-pin.is-under_offer .hvx-pin__n { fill: #4a5a5f; }
.hvx--light .hvx-pin.is-under_offer .hvx-pin__a, .hvx--sand .hvx-pin.is-under_offer .hvx-pin__a { fill: #8a7440; }
.hvx.is-portrait .hvx-pin.is-under_offer .hvx-pin__a, .hvx.is-portrait .hvx-pin.is-sold .hvx-pin__a { font-size: 20px; }
.hvx__tip { display: none !important; }
/* Legend + chips follow the tiles */
.hvx .hvx__legend i.is-under_offer { background: var(--tile-uo); box-shadow: inset 0 0 0 1.5px #cdbb8e; }
.hvx .hvx__legend i.is-available { background: var(--tile-av); }
.hvx-status.is-under_offer { background: rgba(205, 187, 142, .18); color: #8a7440; }
.hvx--dark .hvx-status.is-under_offer, .hvx-p .hvx-status.is-under_offer { color: #dcc99a; }
.hvlot__o.is-me.is-under_offer polygon { fill: #cdbb8e; }
.hvx .hvx-pin.is-under_offer .hvx-pin__a, .hvx .hvx-pin.is-hold .hvx-pin__a, .hvx .hvx-pin.is-sold .hvx-pin__a { font-size: 16px; letter-spacing: .1em; }

/* ==========================================================================
   Feature block + spec sheet (Inclusions page)
   ========================================================================== */
.hvft, .hvsp { padding: clamp(64px, 8vw, 120px) var(--hv-gutter); }
.hvft--dark, .hvsp--dark { background: var(--hv-ink); color: #fff; }
.hvft--light, .hvsp--light { background: var(--hv-paper); color: var(--hv-text); }
.hvft--sand, .hvsp--sand { background: var(--hv-sand-50); color: var(--hv-text); }
.hvft__in { max-width: var(--hv-max); margin: 0 auto; display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(32px, 6vw, 96px); align-items: center; }
.hvft--img-right .hvft__media { order: 2; }
.hvft__media { margin: 0; position: relative; border-radius: 26px; overflow: hidden; aspect-ratio: 4 / 3; background: var(--hv-ink-2); box-shadow: var(--hv-shadow); }
.hvft__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.4s var(--hv-ease); }
.hvft:hover .hvft__media img { transform: scale(1.03); }
.hvft__media figcaption { position: absolute; left: 14px; bottom: 12px; font-size: 12px; color: #fff; opacity: .8; text-shadow: 0 1px 6px rgba(0, 0, 0, .6); }
.hvft__fig { margin: 0 0 6px; font-size: clamp(64px, 9vw, 136px); line-height: .86; font-weight: 800; letter-spacing: -.055em; color: var(--hv-teal-d); }
.hv-market-west .hvft__fig { color: var(--hv-green); }
.hvft--dark .hvft__fig { color: var(--hv-accent); }
.hvft__title { font-size: clamp(30px, 3.6vw, 52px); line-height: 1; letter-spacing: -.035em; margin: 0 0 18px; text-transform: uppercase; }
.hvft__text { font-size: 18px; opacity: .85; max-width: 48ch; }
.hvft__ticks { list-style: none; margin: 22px 0 0; padding: 0; display: grid; gap: 10px; }
.hvft__ticks li { position: relative; padding: 12px 16px 12px 46px; border-radius: 14px; font-weight: 700; background: #fff; box-shadow: inset 0 0 0 1px var(--hv-line); }
.hvft--dark .hvft__ticks li { background: rgba(255, 255, 255, .06); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12); }
.hvft__ticks li::before { content: ""; position: absolute; left: 18px; top: 50%; width: 12px; height: 7px; margin-top: -6px; border-left: 2.5px solid var(--hv-green); border-bottom: 2.5px solid var(--hv-green); transform: rotate(-45deg); }
.hvft--dark .hvft__ticks li::before { border-color: var(--hv-accent); }
[data-hv-reveal] .hvft__ticks li { opacity: 0; transform: translateY(14px); transition: opacity .7s var(--hv-ease), transform .7s var(--hv-ease); transition-delay: calc(var(--i, 0) * 90ms + 150ms); }
[data-hv-reveal].is-in .hvft__ticks li { opacity: 1; transform: none; }
.hvft__btn { margin: 26px 0 0; }
.hvft__note { margin: 14px 0 0; font-size: 13px; opacity: .6; }
@media (max-width: 900px) { .hvft__in { grid-template-columns: 1fr; } .hvft--img-right .hvft__media { order: 0; } }

.hvsp__in { max-width: var(--hv-max); margin: 0 auto; }
.hvsp__head { margin-bottom: 32px; }
.hvsp__title { font-size: clamp(36px, 5.2vw, 72px); line-height: .98; letter-spacing: -.035em; margin: 0; }
.hvsp__grid { margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; border-radius: 22px; overflow: hidden; background: rgba(255, 255, 255, .12); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12); }
.hvsp--light .hvsp__grid, .hvsp--sand .hvsp__grid { background: var(--hv-line); box-shadow: inset 0 0 0 1px var(--hv-line); }
.hvsp__row { padding: 22px 24px; background: var(--hv-ink); }
.hvsp--light .hvsp__row { background: #fff; }
.hvsp--sand .hvsp__row { background: var(--hv-paper); }
.hvsp__row dt { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; opacity: .6; margin-bottom: 6px; }
.hvsp__row dd { margin: 0; display: grid; gap: 4px; }
.hvsp__row b { font-size: clamp(22px, 2.2vw, 30px); letter-spacing: -.02em; line-height: 1.1; }
.hvsp__row span { font-size: 14px; opacity: .7; }
.hvsp__note { margin: 14px 0 0; font-size: 12.5px; opacity: .6; }
@media (max-width: 900px) { .hvsp__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .hvsp__grid { grid-template-columns: 1fr; } }
.hvi__grid--n3, .hvi__grid--n6, .hvi__grid--n9 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 1000px) { .hvi__grid--n3, .hvi__grid--n6, .hvi__grid--n9 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 760px) { .hvs__cue { display: none; } }
/* Sold: settled, not alarming */
.hvx { --tile-sold: #1c3037; }
.hvx .hvx-pin.is-sold .hvx-pin__n { fill: rgba(255, 255, 255, .45); }
.hvx .hvx-pin.is-sold .hvx-pin__a { fill: rgba(255, 255, 255, .45); }
.hvx .hvx__legend i.is-sold { background: var(--tile-sold); box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .35); }
.hvx__stats { grid-auto-flow: column; grid-template-columns: none; }
.hvx-status.is-sold { background: rgba(255, 255, 255, .1); color: #5d6e7a; }
.hvx--dark .hvx-status.is-sold, .hvx-p .hvx-status.is-sold { color: #b9c6cc; }
@media (max-width: 1000px) { .hvx__stats { grid-auto-flow: row; grid-template-columns: repeat(3, 1fr); } }
/* Sold-out banner across a stage row */
.hvx__banners { pointer-events: none; }
.hvx-banner rect { fill: rgba(14, 31, 36, .88); stroke: rgba(205, 187, 142, .55); stroke-width: 3; }
.hvx-banner text { fill: #cdbb8e; font: 800 40px/1 var(--hv-font); letter-spacing: .32em; text-anchor: middle; }
.hvx--light .hvx-banner rect, .hvx--sand .hvx-banner rect { fill: rgba(255, 255, 255, .92); }
.hvx--light .hvx-banner text, .hvx--sand .hvx-banner text { fill: #6e5a2a; }

/* ==========================================================================
   Docked details panel (wide screens): fixed column beside the plan
   ========================================================================== */
.hvx-p__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.hvx-p__head .hvx-p__price { margin: 0; }
.hvx-p__specs div:last-child:nth-child(odd) { grid-column: 1 / -1; }
.hvx-p__inclink { display: inline-block; margin: -4px 0 16px; font-size: 13.5px; font-weight: 700; color: var(--hv-accent); text-decoration: none; }
.hvx.is-docked .hvx__stage { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 14px; align-items: start; }
.hvx.is-docked .hvx__panel { position: relative; inset: auto; width: auto; max-width: none; z-index: 1; border-radius: 22px; animation: none; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08); backdrop-filter: none; }
.hvx.is-docked .hvx__panel[hidden] { display: block; }
.hvx.is-docked .hvx-p { padding: 20px; }
.hvx.is-docked .hvx-p__title { font-size: 36px; }
.hvx.is-docked .hvx-p__price { font-size: 22px; }
.hvx.is-docked .hvx-p__specs { grid-template-columns: repeat(2, 1fr); }
.hvx.is-docked .hvx-p__specs div { padding: 8px 10px; }
.hvx.is-docked .hvx-p__specs dd { font-size: 16px; }
.hvx.is-docked .hvx-p__inc { display: none; }
.hvx.is-docked .hvx-p__pay { font-size: 13.5px; padding: 10px 12px; }
/* Idle state */
.hvx-p--idle .hvx-p__kick { margin: 0 0 6px; font-size: 12px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--hv-accent); }
.hvx-p--idle .hvx-p__title { font-size: 30px; }
.hvx-p__lead { font-size: 14px; opacity: .75; margin: 6px 0 14px; }
.hvx-p__avail { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin-bottom: 16px; }
.hvx-p__avail button { display: grid; justify-items: center; gap: 1px; padding: 8px 4px; border: 0; border-radius: 10px; cursor: pointer; background: rgba(166, 207, 69, .14); color: #fff; box-shadow: inset 0 0 0 1px rgba(166, 207, 69, .35); transition: background-color .15s; }
.hvx-p__avail button:hover, .hvx-p__avail button:focus-visible { background: var(--tile-av); color: #13250a; }
.hvx-p__avail b { font-size: 18px; line-height: 1.1; }
.hvx-p__avail span { font-size: 10.5px; opacity: .75; }
.hvx-p--idle .hvx-p__x { display: none; }
/* Docked: action first, details after */
.hvx.is-docked .hvx-p:not(.hvx-p--idle) { display: flex; flex-direction: column; }
.hvx.is-docked .hvx-p__top { order: 1; }
.hvx.is-docked .hvx-p__head { order: 2; margin-bottom: 10px; }
.hvx.is-docked .hvx-p__specs { order: 3; grid-template-columns: repeat(auto-fit, minmax(84px, 1fr)); margin-bottom: 12px; }
.hvx.is-docked .hvx-p__specs div:last-child:nth-child(odd) { grid-column: auto; }
.hvx.is-docked .hvx-p__specs dt { font-size: 10px; letter-spacing: .1em; }
.hvx.is-docked .hvx-p__specs dd small { font-size: 11px; }
.hvx.is-docked .hvx-p__ctas { order: 4; margin-bottom: 12px; }
.hvx.is-docked .hvx-p__btn { padding: 8px 4px; }
.hvx.is-docked .hvx-p__note { order: 5; }
.hvx.is-docked .hvx-p__pay { order: 6; }
.hvx.is-docked .hvx-p__inclink { order: 7; margin: 0 0 12px; }
.hvx.is-docked .hvx-p__nav { order: 8; margin-top: 4px; }
.hvx.is-docked .hvx-p__x { top: 14px; right: 14px; }
/* Tablets: centred bottom sheet (no side panel covering the plan) */
@media (min-width: 701px) and (max-width: 1099px) {
	.hvx__panel { position: fixed; top: auto; bottom: 16px; left: 0; right: 0; margin: 0 auto; width: min(560px, calc(100vw - 32px)); max-width: none; max-height: 62vh; z-index: 95; animation-name: hvx-up; box-shadow: 0 30px 80px -10px rgba(0, 0, 0, .7); }
	@keyframes hvx-up { from { transform: translateY(40px); opacity: 0; } to { transform: none; opacity: 1; } }
}
/* Action-first panel on every screen size */
.hvx .hvx-p:not(.hvx-p--idle) { display: flex; flex-direction: column; }
.hvx .hvx-p__top { order: 1; }
.hvx .hvx-p__head { order: 2; margin-bottom: 10px; }
.hvx .hvx-p__specs { order: 3; grid-template-columns: repeat(auto-fit, minmax(84px, 1fr)); margin-bottom: 12px; }
.hvx .hvx-p__specs div:last-child:nth-child(odd) { grid-column: auto; }
.hvx .hvx-p__ctas { order: 4; margin-bottom: 12px; }
.hvx .hvx-p__note { order: 5; }
.hvx .hvx-p__pay { order: 6; }
.hvx .hvx-p__inc { display: none; }
.hvx .hvx-p__inclink { order: 7; margin: 0 0 12px; }
.hvx .hvx-p__nav { order: 8; margin-top: 4px; }
@media (min-width: 701px) and (max-width: 1099px) { .hvx__panel { max-height: 54vh; } }
@media (max-width: 700px) { .hvx .hvx-p__specs { grid-template-columns: repeat(2, 1fr); } .hvx .hvx-p__specs dd { font-size: 15px; } }
.hvx-p__avail { grid-template-columns: repeat(6, 1fr); gap: 6px; }
.hvx-p__avail button { padding: 9px 0; }
.hvx-p__avail b { font-size: 17px; }
/* Gateway question: clear heading above the two doors */
.hvg__ask { max-width: var(--hv-max); width: 100%; margin: 0 auto 16px; display: flex; align-items: center; gap: 18px; font-size: clamp(22px, 2.6vw, 34px); font-weight: 800; letter-spacing: -.02em; color: #fff; text-shadow: 0 2px 24px rgba(0, 0, 0, .45); }
.hvg__ask::after { content: ""; flex: 1; height: 2px; background: linear-gradient(90deg, rgba(255, 255, 255, .6), rgba(255, 255, 255, 0)); }
.hvg__intro { padding-bottom: 3vh; }
/* Drone (aerial) lot plan */
.hva { display: block; width: 100%; height: auto; background: #1b2b22; }
.hva-lot polygon { fill: transparent; stroke: transparent; stroke-width: 3; transition: fill .2s; }
.hva-lot.is-sold polygon { fill: rgba(8, 18, 22, .55); }
.hva-lot.is-under_offer polygon, .hva-lot.is-hold polygon { fill: rgba(8, 18, 22, .32); }
.hva-lot.is-available polygon { fill: rgba(166, 207, 69, .16); }
.hva-lot:hover polygon { fill: rgba(166, 207, 69, .38); }
.hva-lot.is-me polygon { fill: rgba(166, 207, 69, .62); stroke: #fff; stroke-width: 7; }
.hva-lot text { fill: #fff; font-family: var(--hv-font); font-weight: 800; text-anchor: middle; dominant-baseline: central; paint-order: stroke; stroke: rgba(0, 0, 0, .45); stroke-width: 3px; pointer-events: none; }
.hva-lot.is-me text { fill: #13250a; stroke: none; }
.hvlot__plan--aerial svg { max-height: none; }
.hvlot__specs div:last-child:nth-child(odd) { grid-column: 1 / -1; }
.hvdr { padding: clamp(64px, 8vw, 120px) var(--hv-gutter); }
.hvdr--dark { background: var(--hv-ink); color: #fff; }
.hvdr--light { background: var(--hv-paper); color: var(--hv-text); }
.hvdr--sand { background: var(--hv-sand-50); color: var(--hv-text); }
.hvdr__in { max-width: var(--hv-max); margin: 0 auto; }
.hvdr__title { font-size: clamp(36px, 5.2vw, 72px); line-height: .98; letter-spacing: -.035em; margin: 0 0 14px; }
.hvdr__intro { font-size: 18px; opacity: .8; margin: 0 0 28px; }
.hvdr__fig { margin: 0; border-radius: 22px; overflow: hidden; box-shadow: var(--hv-shadow); }
/* Readable lot labels (v1.3) */
.hvx .hvx-pin .hvx-pin__n { font-size: 54px; }
.hvx .hvx-pin .hvx-pin__a { font-size: 30px; font-weight: 800; opacity: 1; letter-spacing: -.01em; }
.hvx .hvx-pin .hvx-pin__u { font-size: 22px; font-weight: 700; }
.hvx .hvx-pin.is-available .hvx-pin__a { fill: #13250a; }
.hvx .hvx-pin.is-under_offer .hvx-pin__a, .hvx .hvx-pin.is-hold .hvx-pin__a { font-size: 22px; letter-spacing: .06em; fill: #f0dca8; }
.hvx .hvx-pin.is-sold .hvx-pin__n { fill: rgba(255, 255, 255, .7); }
.hvx .hvx-pin.is-sold .hvx-pin__a { font-size: 24px; letter-spacing: .08em; fill: rgba(255, 255, 255, .78); }
.hvx .hvx-pin.is-hover .hvx-pin__n, .hvx .hvx-pin.is-sel .hvx-pin__n { font-size: 54px; }
.hvx.is-portrait .hvx-pin .hvx-pin__n, .hvx.is-portrait .hvx-pin.is-sel .hvx-pin__n { font-size: 60px; }
.hvx.is-portrait .hvx-pin .hvx-pin__a { font-size: 34px; }
.hvx.is-portrait .hvx-pin.is-under_offer .hvx-pin__a, .hvx.is-portrait .hvx-pin.is-sold .hvx-pin__a { font-size: 26px; }
/* Labels run up the lot (like the drone plan) */
.hvx .hvx-pin .hvx-pin__n { font-size: 58px; dominant-baseline: middle; }
.hvx .hvx-pin .hvx-pin__a { font-size: 50px; font-weight: 800; letter-spacing: .01em; dominant-baseline: middle; text-anchor: middle; }
.hvx .hvx-pin.is-under_offer .hvx-pin__a, .hvx .hvx-pin.is-hold .hvx-pin__a { font-size: 42px; letter-spacing: .04em; }
.hvx .hvx-pin.is-sold .hvx-pin__a { font-size: 46px; letter-spacing: .1em; }
.hvx .hvx-pin .hvx-pin__a--h { font-size: 26px !important; }
.hvx .hvx-pin.is-hover .hvx-pin__n, .hvx .hvx-pin.is-sel .hvx-pin__n { font-size: 58px; }
.hvx.is-portrait .hvx-pin .hvx-pin__n, .hvx.is-portrait .hvx-pin.is-sel .hvx-pin__n { font-size: 64px; }
.hvx.is-portrait .hvx-pin .hvx-pin__a { font-size: 46px; }
.hvx.is-portrait .hvx-pin.is-under_offer .hvx-pin__a { font-size: 38px; }
.hvx.is-portrait .hvx-pin .hvx-pin__a { font-size: 40px; }
.hvx.is-portrait .hvx-pin.is-under_offer .hvx-pin__a { font-size: 34px; }
.hvx.is-portrait .hvx-pin .hvx-pin__a { text-anchor: start; }
.hvx.is-portrait .hvx-pin.is-sold .hvx-pin__a { font-size: 36px; }
.hva-reserve polygon { fill: rgba(52, 150, 86, .3); stroke: rgba(255, 255, 255, .85); stroke-width: 5; stroke-dasharray: 22 14; }
.hva-reserve text { fill: #fff; font-family: var(--hv-font); font-weight: 800; letter-spacing: 10px; text-anchor: middle; dominant-baseline: middle; paint-order: stroke; stroke: rgba(0, 0, 0, .35); stroke-width: 6px; }
/* Label sizes v1.4 (Jamie: sizes smaller, status -50%) */
.hvx .hvx-pin .hvx-pin__a { font-size: 30px; }
.hvx .hvx-pin.is-under_offer .hvx-pin__a, .hvx .hvx-pin.is-hold .hvx-pin__a { font-size: 21px; }
.hvx .hvx-pin.is-sold .hvx-pin__a { font-size: 23px; }
.hvx.is-portrait .hvx-pin .hvx-pin__a { font-size: 30px; }
.hvx.is-portrait .hvx-pin.is-under_offer .hvx-pin__a { font-size: 19px; }
.hvx.is-portrait .hvx-pin.is-sold .hvx-pin__a { font-size: 19px; }
/* Docked panel: grows with its content, never an inner scroll bar */
.hvx.is-docked .hvx__panel { overflow: visible; max-height: none; height: auto; }
.hvx.is-docked .hvx-p { padding: 18px 18px 16px; }
.hvx.is-docked .hvx-p__call { display: none; }
.hvx.is-docked .hvx-p__ctas { gap: 8px; margin-bottom: 10px; }
.hvx.is-docked .hvx-p__pay { margin-bottom: 8px; }
.hvx.is-docked .hvx-p__nav { padding-top: 10px; margin-top: 2px; }
/* Bottom sheets still scroll if a phone is very short, but without a visible bar */
.hvx__panel { scrollbar-width: none; }
.hvx__panel::-webkit-scrollbar { display: none; }
.hvx.is-docked .hvx-p__nav { display: none; }
/* Acres calculator: edge-to-edge tiling */
.hvc__fig { margin: 0; min-width: 0; }
.hvc__lot { fill: #2d4a2a; }
.hvc__blk { fill: #4a6b3e; stroke: none; }
.hvc__blk.is-you { fill: var(--hv-accent); }
.hvc__spare { fill: rgba(255, 255, 255, .06); stroke: rgba(255, 255, 255, .35); stroke-width: 1.5; stroke-dasharray: 5 4; }
.hvc__cap { margin-top: 8px; font-size: 12.5px; font-weight: 700; letter-spacing: .06em; text-align: center; color: var(--hv-muted); }
.hvc--dark .hvc__cap { color: rgba(255, 255, 255, .6); }
.hva-road { fill: #fff; font: 800 25px var(--hv-font); letter-spacing: 6px; text-anchor: middle; dominant-baseline: central; paint-order: stroke; stroke: rgba(0, 0, 0, .35); stroke-width: 4px; pointer-events: none; }
