/* Bohemian Estates – property listing + detail layout.
 * Loaded after the theme stylesheet; every rule is scoped to the server
 * rendered markup (main.be-listing / main.be-estate / .be-*) so the rest of
 * the site is untouched. Brand palette from the theme: navy #252e56, ink
 * #23272f, text #3c3f4c, muted #696c76, line #ededef, gold #c7b361 / #81702d,
 * cream #f8f6ec / #fcfbf7. */

:root {
  --be-ink: #23272f;
  --be-text: #3c3f4c;
  --be-muted: #696c76;
  --be-line: #ededef;
  --be-line-2: #dcdce1;
  --be-navy: #252e56;
  --be-gold: #c7b361;
  --be-gold-ink: #81702d;
  --be-cream: #f8f6ec;
  --be-cream-2: #fcfbf7;
  --be-green: #219655;
  --be-r: 14px;
  --be-pad: clamp(16px, 3vw, 48px);
  --be-shadow: 0 1px 2px rgba(35, 39, 47, .06), 0 6px 24px rgba(35, 39, 47, .08);
}

.be-listing svg, .be-estate svg { flex: none; }

/* ---------- Shared: breadcrumb ---------- */
.be-crumbs { padding: 16px var(--be-pad) 0; font-size: 13px; color: var(--be-muted); }
.be-crumbs ol { display: flex; flex-wrap: wrap; gap: 4px; margin: 0; padding: 0; list-style: none; }
.be-crumbs li { display: inline-flex; align-items: center; gap: 4px; }
.be-crumbs li + li::before { content: "/"; color: var(--be-line-2); }
.be-crumbs a { color: var(--be-muted); text-decoration: none; }
.be-crumbs a:hover { color: var(--be-navy); text-decoration: underline; }
.be-crumbs [aria-current] { color: var(--be-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 60ch; }

/* ---------- Shared: offer badge + unit ---------- */
.be-card-badge {
  position: absolute; top: 12px; left: 12px; z-index: 1;
  padding: 4px 10px; border-radius: 999px; background: #fff; color: var(--be-ink);
  font-size: 12px; font-weight: 600; line-height: 1.4; box-shadow: 0 1px 4px rgba(0, 0, 0, .12);
}
.be-card-badge--sale { background: var(--be-ink); color: #fff; }
.be-card-badge--auction { background: var(--be-gold); color: var(--be-ink); }
.be-unit { font-weight: 400; color: var(--be-muted); font-size: .875em; white-space: nowrap; }
.be-card-noimg { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; color: #b9bac0; }
.be-card-noimg svg { width: 40px; height: 40px; }

/* =================================================================== */
/* LISTING                                                             */
/* =================================================================== */
main.be-listing { max-height: none; }
main.be-listing .estates-header { padding: 12px var(--be-pad) 8px; justify-content: flex-start; }
main.be-listing .estates-header-column { max-width: none; align-items: flex-end; gap: 12px 32px; }
main.be-listing .estates-header-column > h1.title { order: 0; margin: 0; font-size: clamp(26px, 3vw, 36px); line-height: 1.15; color: var(--be-ink); letter-spacing: -.01em; }
main.be-listing .estates-header-column > .estates-filter-offer-type { order: 2; }
main.be-listing .estates-header-column > .estates-header-short-term { order: 3; }
main.be-listing .be-lead { order: 1; flex: 1 1 100%; margin: -4px 0 4px; font-size: 16px; color: var(--be-muted); max-width: none; }
main.be-listing .estates-filter-form.has-dialog .estates-header { padding: 4px var(--be-pad) 0; }
main.be-listing .estates-filters { max-width: none; padding-left: var(--be-pad); padding-right: var(--be-pad); }
main.be-listing .estate-unavailable-note { grid-column: 1 / -1; margin: 12px 0 0; padding: 12px 16px; border-radius: 10px; background: var(--be-cream); color: var(--be-ink); }

main.be-listing .estates-browser { max-width: none; padding-left: var(--be-pad); padding-right: var(--be-pad); gap: 0 32px; }
@media (min-width: 74em) {
  main.be-listing .estates-browser { grid-template-columns: minmax(0, 1fr) clamp(360px, 36vw, 680px); padding-right: 24px; }
  main.be-listing .estates-map { top: 16px; height: calc(100vh - 32px); margin-top: 16px; border-radius: var(--be-r); overflow: hidden; }
}
main.be-listing .estates-browser.has-layout-switch { grid-template-columns: minmax(0, 1fr); }
main.be-listing .estates-browser.has-layout-switch .estates-map { margin-left: calc(-1 * var(--be-pad)); margin-right: calc(-1 * var(--be-pad)); }

main.be-listing .estates-listing { grid-template-columns: minmax(0, 1fr) auto; padding-top: 16px; }
main.be-listing .estates-listing-label { padding-left: 0; font-size: 18px; color: var(--be-ink); border-bottom: 0; }
main.be-listing .estates-listing-controls { padding-right: 0; margin-right: 0; border-bottom: 0; }
main.be-listing .estates-listing-list {
  display: grid; grid-column: 1 / -1; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 32px 20px; overflow: visible; padding: 24px 0 32px; margin: 0; border-top: 1px solid var(--be-line);
}
main.be-listing .estates-listing-list > li,
main.be-listing .estates-listing-list > li:not(:first-child) { padding: 0; border: 0; background: none; min-width: 0; }

/* Card */
.estates-browser .be-card { max-width: none; height: 100%; font-size: 14px; color: var(--be-text); }
.estates-browser .be-card .estate-card-link { display: flex; flex-direction: column; height: 100%; border-radius: var(--be-r); outline-offset: 4px; }
.estates-browser .be-card .be-card-media { position: relative; overflow: hidden; aspect-ratio: 4 / 3; border-radius: var(--be-r); background: var(--be-line); }
.estates-browser .be-card .estate-card-img { display: block; width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; border-radius: 0; grid-row: auto; }
.estates-browser .be-card .be-card-photos {
  position: absolute; right: 10px; bottom: 10px; display: inline-flex; align-items: center; gap: 5px;
  padding: 3px 8px; border-radius: 999px; background: rgba(35, 39, 47, .72); color: #fff; font-size: 12px; font-weight: 600;
}
.estates-browser .be-card .be-card-photos svg { width: 14px; height: 14px; }
.estates-browser .be-card .be-card-body { display: flex; flex-direction: column; flex: 1; padding: 12px 2px 0; }
.estates-browser .be-card .be-card-kicker { display: block; margin: 0; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--be-gold-ink); grid-column: auto; grid-row: auto; }
.estates-browser .be-card .be-card-kicker dd { margin: 0; }
.estates-browser .be-card .title {
  grid-column: auto; grid-row: auto; max-width: none; margin: 4px 0 0; text-align: left;
  font-size: 16px; font-weight: 600; line-height: 1.35; color: var(--be-ink);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.estates-browser .be-card .estate-card-link:hover .title,
.estates-browser .be-card .estate-card-link:focus-visible .title { color: var(--be-navy); text-decoration: none; }
.estates-browser .be-card .estate-card-params { display: flex; flex-direction: column; flex: 1; gap: 4px; margin: 6px 0 0; grid-column: auto; grid-row: auto; }
.estates-browser .be-card .estate-card-params::before { display: none; }
.estates-browser .be-card .estate-card-address { display: flex; align-items: center; gap: 6px; margin: 0; color: var(--be-muted); grid-column: auto; }
.estates-browser .be-card .estate-card-address::before { width: 14px; height: 14px; flex: none; }
.estates-browser .be-card .estate-card-address dd { margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.estates-browser .be-card .estate-card-dimensions { color: var(--be-text); grid-column: auto; }
.estates-browser .be-card .estate-card-dimensions dt { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.estates-browser .be-card .estate-card-dimensions dt::before,
.estates-browser .be-card .estate-card-dimensions dt::after { content: none; }
.estates-browser .be-card .estate-card-dimensions dd,
.estates-browser .be-card .estate-card-features dd { margin: 0; }
.estates-browser .be-card .estate-card-dimensions dl { gap: 6px; font-weight: 500; }
.estates-browser .be-card .estate-card-features { margin: 0; color: var(--be-muted); font-size: 13px; grid-column: auto; }
.estates-browser .be-card .estate-card-features ul:empty { display: none; }
.estates-browser .be-card .estate-card-price { margin: auto 0 0; padding-top: 8px; font-size: 16px; font-weight: 700; color: var(--be-ink); grid-column: auto; }
.estates-browser .be-card .estate-card-price dd { margin: 0; }
.estates-browser .be-card .be-price-request { font-weight: 600; }

/* Map popup card (mobile map view clones the card) */
.estates-popup-card .be-card { max-width: 22rem; height: auto; }
.estates-popup-card .be-card .estate-card-link { flex-direction: row; align-items: stretch; }
.estates-popup-card .be-card .be-card-media { flex: 0 0 7rem; aspect-ratio: auto; border-radius: 0; }
.estates-popup-card .be-card .be-card-badge,
.estates-popup-card .be-card .be-card-photos,
.estates-popup-card .be-card .be-card-kicker { display: none; }
.estates-popup-card .be-card .be-card-body { padding: 12px 14px; }
.estates-popup-card .be-card .title { font-size: 14px; padding: 0; }
.estates-popup-card .be-card .estate-card-price { font-size: 14px; padding: 6px 0 0; }

/* Footnotes under the list (currency, coordinates, export order) */
main.be-listing .be-list-foot { grid-column: 1 / -1; display: grid; gap: 4px; padding: 16px 0 40px; border-top: 1px solid var(--be-line); font-size: 12px; line-height: 1.5; color: var(--be-muted); }
main.be-listing .be-list-foot p,
main.be-listing .be-list-foot .be-note,
main.be-listing .be-list-foot #be-export-order-note { margin: 0 !important; padding: 0; border: 0; background: none; font-size: 12px; color: var(--be-muted); }

/* Locations + services */
.be-list-seo { margin-top: 24px; padding: 48px var(--be-pad) 64px; background: var(--be-cream-2); border-top: 1px solid var(--be-line); }
.be-list-seo-inner { max-width: 1280px; }
.be-list-seo h2 { margin: 0; font-size: 22px; line-height: 1.25; color: var(--be-ink); text-align: left; }
.be-list-seo h2 + p { margin: 6px 0 0; color: var(--be-muted); }
.be-list-seo h2:not(:first-child) { margin-top: 48px; }
.be-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 20px 0 0; padding: 0; list-style: none; }
.be-chip {
  display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 8px 16px;
  border: 1px solid var(--be-line-2); border-radius: 999px; background: #fff; color: var(--be-ink);
  font: inherit; font-size: 14px; font-weight: 500; cursor: pointer; transition: border-color .15s, box-shadow .15s;
}
.be-chip svg { width: 15px; height: 15px; color: var(--be-gold-ink); }
.be-chip:hover { border-color: var(--be-ink); }
.be-chip:focus-visible { outline: 3px solid var(--be-gold); outline-offset: 2px; }
.be-services { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; margin: 20px 0 0; padding: 0; list-style: none; }
.be-service {
  position: relative; display: flex; flex-direction: column; gap: 6px; height: 100%; padding: 20px 52px 20px 20px;
  border: 1px solid var(--be-line); border-radius: var(--be-r); background: #fff; color: var(--be-text); text-decoration: none;
  transition: box-shadow .15s, border-color .15s;
}
.be-service strong { font-size: 16px; color: var(--be-ink); }
.be-service span { font-size: 14px; color: var(--be-muted); }
.be-service svg { position: absolute; right: 20px; top: 50%; width: 18px; height: 18px; margin-top: -9px; color: var(--be-navy); }
.be-service:hover { border-color: var(--be-line-2); box-shadow: var(--be-shadow); }

@media (max-width: 40em) {
  main.be-listing .estates-listing-list { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  main.be-listing .be-lead { font-size: 15px; }
}

/* =================================================================== */
/* DETAIL                                                              */
/* =================================================================== */
main.estate.be-estate { display: block; max-width: 1280px; margin: 0 auto; padding: 0 var(--be-pad) 72px; }
main.be-estate .be-crumbs { padding: 16px 0 0; }

/* Header */
main.be-estate .be-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 24px; margin-top: 16px; grid-column: auto; }
main.be-estate .be-head-text { flex: 1 1 520px; min-width: 0; }
main.be-estate .be-pills { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
main.be-estate .be-pill { padding: 3px 10px; border-radius: 999px; background: var(--be-cream); color: var(--be-gold-ink); font-size: 12px; font-weight: 600; letter-spacing: .02em; }
main.be-estate .be-pill--rent { background: #e9ecf6; color: var(--be-navy); }
main.be-estate .be-pill--sale { background: var(--be-ink); color: #fff; }
main.be-estate .estate-title { grid-column: auto; grid-row: auto; max-width: 30em; margin: 10px 0 0; font-size: clamp(24px, 3vw, 34px); line-height: 1.2; letter-spacing: -.01em; color: var(--be-ink); }
main.be-estate .be-sub { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; margin: 10px 0 0; font-size: 15px; color: var(--be-muted); }
main.be-estate .estate-address { display: inline-flex; align-items: center; gap: 6px; margin: 0; font-size: 15px; grid-column: auto; grid-row: auto; color: var(--be-text); text-decoration: underline; text-decoration-color: var(--be-line-2); text-underline-offset: 3px; }
main.be-estate .estate-address:hover { color: var(--be-navy); }
main.be-estate .estate-address svg { width: 16px; height: 16px; color: var(--be-gold-ink); }
main.be-estate .estate-id { grid-column: auto; align-self: center; margin: 0; line-height: 1.5; font-size: 15px; font-weight: 400; color: var(--be-muted); }
main.be-estate .estate-id abbr { text-decoration: none; }
main.be-estate #estate_uid { font-weight: 600; color: var(--be-text); }
main.be-estate .be-head-actions:empty { display: none; }
main.be-estate .be-head-actions .be-tools { margin: 0; justify-content: flex-end; }
main.be-estate .be-head-actions .be-btn { min-height: 40px; padding: 6px 14px; border-color: var(--be-line-2); color: var(--be-ink); font-size: 14px; font-weight: 500; background: #fff; }
main.be-estate .be-head-actions .be-btn:hover { border-color: var(--be-ink); background: #fff; }
main.be-estate .be-head-actions .be-status:empty { display: none; }

/* Gallery: 1 large + up to 4 tiles, one rounded block */
main.be-estate .estate-gallery { grid-column: auto; margin-top: 20px; }
main.be-estate .estate-gallery ul { margin: 0; padding: 0; overflow: hidden; border-radius: 16px; }
main.be-estate .estate-gallery img { display: block; width: 100%; border-radius: 0; }
main.be-estate .estate-gallery a { display: block; height: 100%; }
main.be-estate .estate-gallery picture { display: block; height: 100%; }
@media (max-width: 59.99em) {
  main.be-estate .estate-gallery { margin-left: calc(-1 * var(--be-pad)); margin-right: calc(-1 * var(--be-pad)); }
  main.be-estate .estate-gallery ul { border-radius: 0; }
  main.be-estate .estate-gallery li:first-child img { aspect-ratio: 4 / 3; max-height: 70vh; object-fit: cover; }
}
@media (min-width: 60em) {
  main.be-estate .estate-gallery ul { display: grid; gap: 8px; height: clamp(340px, 38vw, 540px); grid-template-rows: repeat(2, minmax(0, 1fr)); }
  main.be-estate .estate-gallery li { min-height: 0; min-width: 0; }
  main.be-estate .estate-gallery img { height: 100%; aspect-ratio: auto; object-fit: cover; transition: filter .2s; }
  main.be-estate .estate-gallery a:hover img { filter: brightness(.92); }
  main.be-estate .estate-gallery.be-g-1 ul { grid-template-columns: 1fr; }
  main.be-estate .estate-gallery.be-g-1 li { grid-row: span 2; }
  main.be-estate .estate-gallery.be-g-2 ul { grid-template-columns: 1fr 1fr; }
  main.be-estate .estate-gallery.be-g-2 li { grid-row: span 2; }
  main.be-estate .estate-gallery.be-g-3 ul { grid-template-columns: 2fr 1fr; }
  main.be-estate .estate-gallery.be-g-4 ul,
  main.be-estate .estate-gallery.be-g-5 ul { grid-template-columns: 2fr 1fr 1fr; }
  main.be-estate .estate-gallery.be-g-3 li:first-child,
  main.be-estate .estate-gallery.be-g-4 li:first-child,
  main.be-estate .estate-gallery.be-g-5 li:first-child { grid-row: span 2; grid-column: auto; }
  main.be-estate .estate-gallery.be-g-4 li:nth-child(2) { grid-column: span 2; }
}
main.be-estate .estate-gallery .btn { right: 16px; bottom: 16px; border: 1px solid var(--be-ink); border-radius: 10px; color: var(--be-ink); font-weight: 600; }
main.be-estate .estate-gallery > .be-note { margin: 0; }

/* Two-column body */
main.be-estate .be-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; margin-top: 32px; }
@media (min-width: 62em) {
  main.be-estate .be-layout { grid-template-columns: minmax(0, 1fr) minmax(340px, 400px); gap: 64px; }
  main.be-estate .be-aside { position: relative; }
  main.be-estate .be-book { position: sticky; top: 24px; }
}
main.be-estate .be-content { min-width: 0; }
main.be-estate .be-section { margin: 0; padding: 32px 0; border-top: 1px solid var(--be-line); grid-column: auto; grid-row: auto; }
main.be-estate .be-section:first-child { padding-top: 0; border-top: 0; }
main.be-estate .be-section > h2 { margin: 0 0 20px; font-size: 22px; line-height: 1.25; color: var(--be-ink); text-align: left; }

/* Facts */
main.be-estate .be-highlights { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px; margin: 0; }
main.be-estate .be-fact { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 12px; align-items: center; padding: 16px; border: 1px solid var(--be-line); border-radius: 12px; background: var(--be-cream-2); }
main.be-estate .be-fact svg { grid-row: 1 / 3; width: 24px; height: 24px; color: var(--be-gold-ink); }
main.be-estate .be-fact dt { grid-column: 2; font-size: 12px; color: var(--be-muted); }
main.be-estate .be-fact dd { grid-column: 2; grid-row: 1; margin: 0; font-size: 17px; font-weight: 700; color: var(--be-ink); line-height: 1.25; }
main.be-estate .be-params { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 0 32px; margin: 20px 0 0; }
main.be-estate .be-param { display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--be-line); }
main.be-estate .be-param svg { width: 20px; height: 20px; color: var(--be-muted); }
main.be-estate .be-param dt { color: var(--be-muted); }
main.be-estate .be-param dd { margin: 0; font-weight: 600; color: var(--be-ink); text-align: right; }

/* Amenities */
main.be-estate .be-flags { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 14px 24px; margin: 0; }
main.be-estate .be-flag { display: flex; align-items: center; gap: 12px; }
main.be-estate .be-flag dd { display: inline-flex; margin: 0; }
main.be-estate .be-flag svg { width: 20px; height: 20px; }
main.be-estate .be-flag--yes svg { color: var(--be-green); }
main.be-estate .be-flag--yes dt { color: var(--be-ink); }
main.be-estate .be-flag--no svg { color: #b9bac0; }
main.be-estate .be-flag--no dt { color: var(--be-muted); text-decoration: line-through; text-decoration-color: #c9cad0; }

/* Description */
main.be-estate .estate-desc p,
main.be-estate .estate-desc .be-para { max-width: 68ch; margin: 0 0 1em; font-size: 16px; line-height: 1.7; color: var(--be-text); white-space: pre-line; }
main.be-estate .estate-desc .title + p { margin-top: 0; }

/* Tours, location */
main.be-estate .estate-vr iframe { width: 100%; height: auto; aspect-ratio: 16 / 9; border-radius: 12px; }
main.be-estate .estate-360 { margin-top: 0; }
main.be-estate .estate-location-name { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 16px; color: var(--be-ink); }
main.be-estate .estate-location-name svg { width: 20px; height: 20px; color: var(--be-gold-ink); stroke: currentColor; }
main.be-estate .estate-location-map { margin: 0 0 16px; border-radius: var(--be-r); box-shadow: none; border: 1px solid var(--be-line); }

/* Booking card */
main.be-estate .be-book { padding: 24px; border: 1px solid var(--be-line); border-radius: 18px; background: #fff; box-shadow: var(--be-shadow); }
main.be-estate .be-book-price { padding-bottom: 20px; border-bottom: 1px solid var(--be-line); }
main.be-estate .be-book-offer { display: block; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--be-gold-ink); }
main.be-estate .be-book-price p { margin: 4px 0 0; color: var(--be-ink); }
main.be-estate .be-book-price strong { font-size: 28px; line-height: 1.2; font-weight: 700; }
main.be-estate .be-book-price .be-unit { font-size: 15px; }
main.be-estate .be-book-price .be-price-note { font-size: 13px; color: var(--be-muted); }
main.be-estate .be-book-facts { display: flex; flex-wrap: wrap; gap: 4px 10px; margin: 12px 0 0; padding: 0; list-style: none; font-size: 14px; color: var(--be-text); }
main.be-estate .be-book-facts li + li::before { content: "·"; margin-right: 10px; color: var(--be-line-2); }
main.be-estate .estate-inquiry { margin: 0; padding: 20px 0 0; border-radius: 0; box-shadow: none; grid-column: auto; grid-row: auto; }
main.be-estate .estate-inquiry .title.title { margin: 0; padding: 0; font-size: 18px; text-align: left; color: var(--be-ink); }
main.be-estate .be-book-lead { margin: 4px 0 0; font-size: 14px; color: var(--be-muted); }
main.be-estate .estate-inquiry .form { max-width: none; margin: 16px 0 0; padding: 0; }
main.be-estate .estate-inquiry fieldset { gap: 12px; }
main.be-estate .estate-inquiry .form-label { font-size: 13px; font-weight: 600; color: var(--be-ink); }
main.be-estate .estate-inquiry .form-control { width: 100%; padding: 10px 12px; border-radius: 10px; font-size: 15px; }
main.be-estate .estate-inquiry .text-muted.small { display: none; }
main.be-estate .estate-inquiry .form-actions { margin-top: 16px; }
main.be-estate .estate-inquiry .form-actions .btn { width: 100%; justify-content: center; min-height: 48px; border-radius: 10px; font-weight: 600; }
main.be-estate .estate-inquiry-contact { margin-top: 20px; padding: 20px 0 0; }
main.be-estate .estate-inquiry.is-sent { margin: 0; }

/* Similar */
main.be-estate .be-similar { margin-top: 24px; padding-top: 40px; border-top: 1px solid var(--be-line); }
main.be-estate .be-similar-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 24px; }
main.be-estate .be-similar-head h2 { margin: 0; font-size: 22px; color: var(--be-ink); text-align: left; }
main.be-estate .be-similar-head a { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; color: var(--be-navy); text-decoration: none; }
main.be-estate .be-similar-head a:hover { text-decoration: underline; }
main.be-estate .be-similar-head svg { width: 16px; height: 16px; }
main.be-estate .be-similar ul { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 24px 20px; margin: 20px 0 0; padding: 0; list-style: none; }
main.be-estate .be-sim { display: flex; flex-direction: column; gap: 4px; height: 100%; color: var(--be-text); text-decoration: none; font-size: 14px; }
main.be-estate .be-sim-media { position: relative; display: block; overflow: hidden; aspect-ratio: 4 / 3; margin-bottom: 8px; border-radius: var(--be-r); background: var(--be-line); }
main.be-estate .be-sim-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
main.be-estate .be-sim-title { font-size: 15px; font-weight: 600; line-height: 1.35; color: var(--be-ink); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
main.be-estate .be-sim:hover .be-sim-title { color: var(--be-navy); }
main.be-estate .be-sim-place { color: var(--be-muted); }
main.be-estate .be-sim-price { margin-top: auto; padding-top: 4px; color: var(--be-ink); }

/* Mobile price bar */
main.be-estate .be-mbar { display: none; }
@media (max-width: 61.99em) {
  main.be-estate { padding-bottom: 96px; }
  main.be-estate .be-mbar {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 12px var(--be-pad) calc(12px + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--be-line);
    box-shadow: 0 -4px 16px rgba(35, 39, 47, .08);
  }
  main.be-estate .be-mbar p { margin: 0; min-width: 0; color: var(--be-ink); line-height: 1.25; }
  main.be-estate .be-mbar strong { display: block; font-size: 18px; }
  main.be-estate .be-mbar .btn { flex: none; min-height: 44px; border-radius: 10px; font-weight: 600; }
  main.be-estate .be-book { box-shadow: none; }
}
@media (max-width: 40em) {
  main.be-estate .be-head-actions { flex-basis: 100%; }
  main.be-estate .be-head-actions .be-tools { justify-content: flex-start; }
  main.be-estate .be-params { grid-template-columns: minmax(0, 1fr); }
  main.be-estate .be-highlights { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  main.be-estate .be-fact { padding: 12px; }
}

@media print {
  .be-crumbs, .be-mbar, .be-head-actions, .be-list-seo, .be-similar { display: none !important; }
  main.estate.be-estate .be-layout { display: block; }
  main.be-estate .be-book { box-shadow: none; border: 0; padding: 0; }
}

/* Map hover preview (listing page) */
.estates-map .map-marker.is-hovered a .be-unit, .estates-map .map-marker.is-selected a .be-unit,
.estates-map .map-marker a:hover .be-unit, .map-marker a:focus .be-unit { color: rgba(255,255,255,.78); }
.be-map-pop { position: fixed; z-index: 1000; width: 300px; max-width: calc(100vw - 16px); background: #fff; border-radius: 14px; box-shadow: 0 12px 40px rgba(16,24,40,.22), 0 2px 8px rgba(16,24,40,.12); overflow: hidden; opacity: 0; transform: translateY(4px); transition: opacity .12s ease, transform .12s ease; pointer-events: auto; }
.be-map-pop.is-open { opacity: 1; transform: none; }
.be-map-pop-link { display: block; color: #3c3f4c; text-decoration: none; }
.be-map-pop-link:focus-visible { outline: 3px solid #252e56; outline-offset: -3px; }
.be-map-pop-media { position: relative; display: block; aspect-ratio: 16 / 10; background: #eef0f4; }
.be-map-pop-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.be-map-pop-media .be-card-badge { position: absolute; top: 10px; left: 10px; }
.be-map-pop-body { display: flex; flex-direction: column; gap: 4px; padding: 12px 14px 14px; }
.be-map-pop-kind { font-size: .75rem; font-weight: 600; letter-spacing: .02em; text-transform: uppercase; color: var(--be-muted, #696c76); }
.be-map-pop-title { font-weight: 700; font-size: 1rem; line-height: 1.3; color: #23272f; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.be-map-pop-meta { font-size: .875rem; color: var(--be-muted, #696c76); }
.be-map-pop-price { margin-top: 2px; font-size: 1.0625rem; font-weight: 700; color: #252e56; }
.be-map-pop-price .be-unit { font-size: .8125rem; }
.be-map-pop-cta { margin-top: 6px; font-size: .875rem; font-weight: 600; color: #252e56; }
.be-map-pop-link:hover .be-map-pop-cta { text-decoration: underline; }
@media (prefers-reduced-motion: reduce) { .be-map-pop { transition: none; } }
