/* One information hierarchy for every public listing preview. */
.vm-card-main{display:flex;flex:1;flex-direction:column;min-width:0}
.vm-media{position:relative;aspect-ratio:4/3;overflow:hidden;background:#f4f4f5}
.vm-gallery{position:absolute;inset:0;overflow:hidden;isolation:isolate;contain:layout paint}
.vm-gallery-track{position:absolute;inset:0;display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch;transition:transform .45s ease}.vm-gallery-track::-webkit-scrollbar{display:none}
.vm-gallery-slide{position:relative;flex:0 0 100%;width:100%;height:100%;overflow:hidden;background:#f4f4f5;scroll-snap-align:start;scroll-snap-stop:always}html.dark .vm-gallery-slide{background:#27272a}
.vm-gallery-slide>.vm-gallery-image{position:absolute;inset:0;z-index:1;display:block;width:100%;height:100%;object-fit:cover;color:transparent;opacity:0;transform:none;transition:opacity .25s ease;-webkit-user-drag:none;user-select:none}.vm-gallery-slide.is-loaded>.vm-gallery-image{opacity:1}
/* Placeholder while the photo loads (variant: logo). */
.vm-gallery-slide:before{content:'';position:absolute;inset:0;background:url(../img/logo-lite.webp) center/64px no-repeat;mix-blend-mode:multiply;opacity:.5;animation:vm-slide-pulse 1.6s ease-in-out infinite}html.dark .vm-gallery-slide:before{filter:invert(1) hue-rotate(180deg);mix-blend-mode:screen}@keyframes vm-slide-pulse{50%{opacity:.25}}.vm-gallery-slide.is-loaded:before,.vm-gallery-slide.is-loaded:after{content:none}
.vm-photo-nav{position:absolute;top:50%;z-index:2;display:grid;place-items:center;box-sizing:border-box;width:36px;height:36px;min-width:36px;min-height:36px;aspect-ratio:1;padding:0;border:1px solid #ffffffb3;border-radius:50%;background:#fffffff0;color:#27272a;transform:translateY(-50%);cursor:pointer;box-shadow:0 2px 8px #00000014;opacity:0;pointer-events:none;transition:background .15s,opacity .15s}
.vm-photo-previous{left:8px}.vm-photo-next{right:8px}.vm-photo-nav>.vm-icon{width:19px;height:19px}.vm-photo-nav:hover{background:#fff}.vm-photo-nav:focus-visible{outline:2px solid #811b1e;outline-offset:2px}
.vm-photo-dots{position:absolute;bottom:10px;left:50%;z-index:3;display:flex;align-items:center;justify-content:center;gap:0;padding:0;background:transparent;transform:translateX(-50%)}.vm-photo-dot{display:grid;place-items:center;box-sizing:border-box;width:20px;height:20px;min-width:20px;min-height:20px;padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer}.vm-photo-dot:before{content:'';width:6px;height:6px;border-radius:50%;background:#ffffff80;box-shadow:0 1px 2px #00000040;transition:background .15s,transform .15s}.vm-photo-dot[aria-current=true]:before{background:#fff;transform:scale(1.25)}.vm-photo-dot[hidden]{display:none}.vm-photo-dot:focus-visible{outline:2px solid #fff;outline-offset:-2px}.vm-media:has(.vm-photo-dots) .vm-image-note{bottom:44px}
.vm-badges,.vm-image-note{z-index:3}.vm-favorite{z-index:4}
.vm-badges{position:absolute;inset:12px 54px auto 12px;display:flex;align-items:flex-start;flex-wrap:wrap;gap:6px;pointer-events:none}
.vm-type-badge,.vm-rented{max-width:100%;padding:5px 9px;border:1px solid #ffffff80;border-radius:6px;background:#fffffff0;color:#27272a;font:600 10px/1.4 Inter,sans-serif;backdrop-filter:blur(12px)}
.vm-type-badge{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vm-type-badge>span{margin-inline:3px;color:#a1a1aa}
.vm-rented{background:#fff4d9;color:#854d0e}
.vm-favorite{position:absolute;top:10px;right:10px;display:grid;place-items:center;width:36px;height:36px;border:1px solid #ffffff80;border-radius:50%;background:#fffffff0;color:#52525b;backdrop-filter:blur(12px);cursor:pointer;transition:background .2s,color .2s}
.vm-favorite>.vm-icon{width:18px;height:18px}.vm-favorite:hover{background:#fff;color:#be123c}.vm-favorite.is-favorite{color:#e11d48}.vm-favorite.is-favorite>.vm-icon{fill:currentColor}
.vm-image-note{position:absolute;bottom:10px;right:10px;display:inline-flex;align-items:center;gap:4px;max-width:45%;padding:4px 7px;border-radius:5px;background:#18181b99;color:white;font:500 10px/1.4 Inter,sans-serif;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.vm-details{display:flex;flex:1;flex-direction:column;min-width:0;padding:16px 16px 14px;color:#18181b;font-family:Inter,sans-serif;text-align:left}
.vm-details>.vm-title{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:inherit;font-family:Manrope,Inter,sans-serif;font-size:14px;font-weight:700;line-height:1.45;letter-spacing:-.025em}
.vm-details>.vm-location{margin:3px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#71717a;font-size:12px;line-height:1.5}
.vm-pricing{margin-top:14px}.vm-price-row{display:flex;align-items:baseline;flex-wrap:wrap;gap:3px 6px;min-width:0}
.vm-price{color:inherit;font-family:Manrope,Inter,sans-serif;font-size:21px;font-weight:800;line-height:1.3;letter-spacing:-.045em;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.vm-price-period{color:#71717a;font-size:11px;white-space:nowrap}.vm-expenses{display:block;margin-top:3px;color:#71717a;font-size:11px;line-height:1.5}.vm-expenses.is-included{color:#047857}
.vm-specs{display:flex;align-items:center;flex-wrap:wrap;gap:5px 0;min-width:0;margin:16px 0 0;padding:0;list-style:none;color:#71717a}
.vm-specs>li{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;font-size:11px;line-height:1.5;font-variant-numeric:tabular-nums}
.vm-specs>li+li:before{content:'·';margin-inline:8px;color:#a1a1aa}.vm-icon{width:14px;height:14px;flex:none}
.vm-card-action{display:flex;align-items:center;justify-content:space-between;gap:12px;width:calc(100% - 32px);min-height:42px;margin:0 16px;padding:10px 0;border:0;border-top:1px solid #f0f0f2;border-radius:0;background:transparent;color:#52525b;font:600 11px/1.4 Inter,sans-serif;text-align:left;cursor:pointer;transition:color .2s}
.vm-card-action>.vm-icon{width:15px;height:15px}.vm-card-action:disabled{cursor:default;color:#71717a}
.vm-favorite:focus-visible,.vm-card-action:focus-visible,.vm-preview:focus-visible{outline:2px solid #811b1e;outline-offset:3px}
article.vm-preview{padding:0;overflow:hidden;border-radius:16px;box-shadow:0 2px 6px #18181b05;transition:border-color .25s,box-shadow .25s,transform .25s}
/* Carousels scroll horizontally, which also clips vertically: widen the track into the section gutter and keep the hover shadow inside it. */
#landing-featured-properties-grid,#landing-latest-properties-grid,#city-section-properties-grid{margin:-4px -16px -8px;padding:12px 16px 32px;scroll-padding-inline:16px}
article.vm-preview:hover{box-shadow:0 14px 28px -12px #18181b38,0 4px 10px -6px #18181b1f}html.dark article.vm-preview:hover{box-shadow:0 14px 28px -12px #000000a6,0 4px 10px -6px #00000066}
.as-property.vm-preview{padding:0}.as-property.vm-preview:hover>.vm-card-action{background:transparent;color:var(--as-primary);border-radius:0}.vm-preview:has(.vc-example){cursor:default}.vm-card-main>.vc-example{margin:0;padding:10px 16px;background:#fafafa}
.listing-body.vm-search-body{gap:0;padding:0;min-width:0}.vm-search-body>.vm-details{padding:20px 22px 18px}.vm-search-body .vm-title,.vm-search-body .vm-location{padding-right:32px}.vm-search-body>.card-actions{margin:0 22px;padding-block:10px}.vm-search-body .vm-specs{margin-top:auto;padding-top:16px}.vm-search-body .vm-pricing{margin-bottom:0}
html.dark .vm-media{background:#27272a}html.dark .vm-details{color:#fafafa}html.dark .vm-location,html.dark .vm-expenses,html.dark .vm-price-period,html.dark .vm-specs{color:#a1a1aa}html.dark .vm-expenses.is-included{color:#6ee7b7}html.dark .vm-card-action{color:#d4d4d8;border-color:#ffffff0d}html.dark .vm-card-main>.vc-example{background:#27272a}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.vm-preview:hover .vm-gallery-track{transform:scale(1.035)}.vm-preview:hover .vm-card-action:not(:disabled){color:#811b1e}html.dark .vm-preview:hover .vm-card-action:not(:disabled){color:#fca5a5}}
@media(max-width:640px){.vm-details{padding:14px}.vm-pricing{margin-top:12px}.vm-price{font-size:20px}.vm-specs{margin-top:14px}.vm-specs>li+li:before{margin-inline:6px}.vm-card-action{width:calc(100% - 28px);margin-inline:14px}.vm-search-body>.vm-details{padding:16px}.vm-search-body>.card-actions{margin-inline:16px}}
.vm-carousel-moving{scroll-behavior:auto!important;scroll-snap-type:none!important;will-change:scroll-position}.vm-carousel-moving .vm-preview,.vm-carousel-moving .vm-gallery-track{transform:none!important;transition:none!important}.vm-carousel-moving .vm-type-badge,.vm-carousel-moving .vm-favorite{backdrop-filter:none}
.vm-view-all{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:260px;padding:24px;border:1px solid #e4e4e7;border-radius:16px;background:#fafafa;color:#52525b;text-align:center;font:12px/1.5 Inter,sans-serif;transition:background .2s,border-color .2s}.vm-view-all strong{color:#18181b;font:700 16px/1.4 Manrope,Inter,sans-serif}.vm-view-all-icon{display:grid;place-items:center;width:52px;height:52px;margin-bottom:8px;border-radius:50%;background:#811b1e0d;color:#811b1e}.vm-view-all-icon .vm-icon{width:24px;height:24px}.vm-view-all:hover{background:#f4f4f5;border-color:#a1a1aa}.vm-view-all:focus-visible{outline:2px solid #811b1e;outline-offset:3px}html.dark .vm-view-all{background:#18181b;border-color:#27272a;color:#a1a1aa}html.dark .vm-view-all strong{color:#fafafa}html.dark .vm-view-all-icon{background:#fca5a512;color:#fca5a5}
@media(pointer:coarse){.vm-photo-nav{width:44px;height:44px;min-width:44px;min-height:44px}.vm-photo-dot{width:24px;height:24px;min-width:24px;min-height:24px}}
@media(prefers-reduced-motion:reduce){.vm-gallery-slide:before,.vm-gallery-slide:after{animation:none}.vm-gallery-slide>.vm-gallery-image{transition:none}.vm-gallery-track,article.vm-preview,.vm-card-action,.vm-favorite{transition:none}.vm-preview:hover{transform:none}}

@media(hover:hover) and (pointer:fine) and (min-width:768px){.vm-gallery:hover .vm-photo-nav,.vm-gallery:has(:focus-visible) .vm-photo-nav{opacity:1;pointer-events:auto}}
@media(hover:none),(pointer:coarse),(max-width:767px){.vm-photo-nav{display:none}}
/* Horizontal touch on a multi-photo gallery is handled in script (iOS would otherwise give it to a settling card carousel). */
.vm-gallery:has(.vm-photo-next)>.vm-gallery-track{touch-action:pan-y pinch-zoom}
/* On touch screens the strip is moved only in script: a native scroller here lets iOS start its own pan and cancel the swipe. */
@media(hover:none) and (pointer:coarse){.vm-gallery:has(.vm-photo-next)>.vm-gallery-track{overflow-x:hidden}}
@media(prefers-reduced-motion:reduce){.vm-photo-nav,.vm-photo-dot:before{transition:none}}

.vm-section-header{gap:12px}.vm-section-header .premium-kicker{margin:0;white-space:nowrap}.vm-section-more{display:inline-flex;flex:none;align-items:center;gap:6px;min-height:32px;padding:4px 0;color:#71717a;font:600 12px/1.4 Inter,sans-serif;white-space:nowrap;text-decoration:none;transition:color .18s}.vm-section-more svg{flex:none;transition:transform .18s}.vm-section-more:hover{color:#811b1e}.vm-section-more:hover svg{transform:translateX(2px)}.vm-section-more:focus-visible{outline:2px solid #811b1e;outline-offset:4px;border-radius:2px}html.dark .vm-section-more{color:#a1a1aa}html.dark .vm-section-more:hover{color:#fca5a5}@media(max-width:639px){.vm-section-header .premium-kicker{gap:8px;font-size:10px;letter-spacing:.16em}.vm-section-header .premium-kicker:before{width:24px}}@media(prefers-reduced-motion:reduce){.vm-section-more,.vm-section-more svg{transition:none}}
