/**
 * Claude template adapter for the canonical Bushari Design System.
 * The bsh-* names are compatibility aliases scoped to imported templates;
 * BDS remains the owner of tokens, typography, spacing, and brand colors.
 */
.bsh-scope {
  --bsh-accent: var(--bds-color-brand);
  --bsh-accent-deep: var(--bds-color-brand-strong);
  --bsh-accent-wash: var(--bds-color-brand-wash);
  --bsh-ink: var(--bds-color-ink);
  --bsh-ink-deep: var(--bds-color-ink);
  --bsh-ink-soft: var(--bds-color-ink-soft);
  --bsh-muted: var(--bds-color-ink-muted);
  --bsh-line: var(--bds-color-rule);
  --bsh-line-strong: var(--bds-color-rule);
  --bsh-surface: var(--bds-color-surface);
  --bsh-white: var(--bds-color-paper);
  --bsh-up: var(--bds-color-positive);
  --bsh-down: var(--bds-color-negative);
  --bsh-up-wash: #e6f4ec;
  --bsh-down-wash: #fbeae7;
  --bsh-s1: var(--bds-data-series-01);
  --bsh-s2: var(--bds-data-series-02);
  --bsh-s3: var(--bds-data-series-03);
  --bsh-s4: var(--bds-data-series-04);
  --bsh-s5: var(--bds-data-series-05);
  --bsh-s6: var(--bds-data-series-06);
  --bsh-ramp-1: var(--bds-color-brand-wash);
  --bsh-ramp-2: #dcc9ec;
  --bsh-ramp-3: #b893d4;
  --bsh-ramp-4: #8b4fb5;
  --bsh-ramp-5: var(--bds-color-brand);
  --bsh-ramp-6: #3b1560;
  --bsh-grid: var(--bds-color-rule);
  --bsh-axis: var(--bds-color-ink);
  --bsh-font-text: var(--bds-font-sans);
  --bsh-font-quote: var(--bds-font-quote);
  --bsh-font-mono: ui-monospace, SFMono-Regular, Menlo, monospace;
  --bsh-fs-display: var(--bds-type-home-display-size);
  --bsh-fs-h1: var(--bds-type-display-size);
  --bsh-fs-h2: var(--bds-type-section-size);
  --bsh-fs-h3: 22px;
  --bsh-fs-h4: 17px;
  --bsh-fs-lead: 20px;
  --bsh-fs-body: var(--bds-type-body-size);
  --bsh-fs-small: 14px;
  --bsh-fs-micro: 13px;
  --bsh-fs-eyebrow: 11px;
  --bsh-lh-body: 1.6;
  --bsh-lh-tight: 1.15;
  --bsh-lh-display: 1.03;
  --bsh-lh-ui: 1.4;
  --bsh-measure: var(--bds-measure);
  --bsh-measure-tight: 54ch;
  --bsh-sp-1: var(--bds-space-2);
  --bsh-sp-2: var(--bds-space-4);
  --bsh-sp-3: var(--bds-space-5);
  --bsh-sp-4: var(--bds-space-6);
  --bsh-sp-5: 40px;
  --bsh-sp-6: var(--bds-space-7);
  --bsh-sp-8: var(--bds-space-8);
  --bsh-sp-10: 80px;
  --bsh-sp-12: var(--bds-space-9);
  --bsh-w-page: var(--bds-container-standard);
  --bsh-w-read: var(--bds-container-prose);
  --bsh-w-form: 560px;
  --bsh-gutter: 20px;
  --bsh-radius: var(--bds-radius-none);
  --bsh-radius-control: var(--bds-radius-xs);
  --bsh-radius-card: var(--bds-radius-sm);
  --bsh-hairline: 1px solid var(--bds-color-rule);
  --bsh-ease: var(--bds-motion-duration-state) ease-out;
  --bsh-section-y: var(--bds-space-section);
}

/* Listing search — shared Residential / Rentals / Multi-Family / Land shell. */
.bsh-search-results .bsh-search-hero {
  padding-block: 40px 32px;
  border-bottom: var(--bsh-hairline);
}
.bsh-search-results .bsh-search-hero h1 { max-width: 18ch; }
.bsh-search-results .bsh-search-hero .bsh-lead { max-width: 72ch; color: var(--bsh-ink-soft); }
.bsh-search-modes {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  max-width: 560px;
  min-height: 48px;
  border: 1px solid var(--bsh-ink);
}
.bsh-search-modes a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 8px 16px;
  border-left: var(--bsh-hairline);
  color: var(--bsh-ink);
  font-size: var(--bsh-fs-small);
  font-weight: 600;
}
.bsh-search-modes a:first-child { border-left: 0; }
.bsh-search-modes a[aria-current="page"] { background: var(--bsh-ink); color: var(--bsh-white); }
.bsh-search-workspace { padding-block: 32px 64px; }
.bsh-search-layout { display: grid; grid-template-columns: 296px minmax(0, 1fr); gap: 32px; align-items: start; }
.bsh-filter-rail { position: sticky; top: 24px; border: var(--bsh-hairline); background: var(--bsh-white); }
.bsh-filter-rail__head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 18px 20px; border-bottom: var(--bsh-hairline); }
.bsh-filter-rail__head h2 { font-size: 18px; }
.bsh-filter-rail__head a { font-size: 13px; font-weight: 600; }
.bsh-filter-form { display: flex; flex-direction: column; gap: 16px; padding: 20px; }
.bsh-filter-form .bsh-btn { width: 100%; }
.bsh-filter-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.bsh-filter-pair .bsh-field { min-width: 0; }
.bsh-field__label { display: block; font-size: var(--bsh-fs-small); font-weight: 500; color: var(--bsh-ink-soft); }
.bsh-search-results__main { min-width: 0; }
.bsh-results-toolbar { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; min-height: 48px; padding: 0 0 14px; border-bottom: var(--bsh-hairline); }
.bsh-results-toolbar h2 { font-size: 16px; font-weight: 400; }
.bsh-results-toolbar h2 strong { font-size: 24px; }
.bsh-results-toolbar > span { font-size: 13px; color: var(--bsh-muted); }
.bsh-search-results__main .bsh-listings { margin-top: 16px; }
.bsh-search-results .bsh-listing__media { aspect-ratio: 4 / 3; }
.bsh-search-results .bsh-listing__body { padding: 16px; gap: 5px; }
.bsh-search-results .bsh-listing__price { font-size: 20px; }
.bsh-search-results .bsh-listing__addr { font-size: 16px; font-weight: 600; color: var(--bsh-ink); }
.bsh-search-results .bsh-listing__meta { font-size: 13px; }
.bsh-listing__local { display: flex; flex-wrap: wrap; gap: 6px 12px; margin-top: 8px; padding-top: 10px; border-top: var(--bsh-hairline); font-size: 12px; font-weight: 600; color: var(--bsh-ink-soft); }
.bsh-pagination { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin-top: 24px; padding-top: 16px; border-top: var(--bsh-hairline); font-size: 14px; }
.bsh-pagination > span:first-child { margin-right: auto; color: var(--bsh-muted); }
.bsh-pagination .page-numbers { display: inline-flex; min-width: 44px; min-height: 44px; align-items: center; justify-content: center; border: var(--bsh-hairline); color: var(--bsh-ink); }
.bsh-pagination .current { background: var(--bsh-ink); color: var(--bsh-white); }
.bsh-empty-state { padding: 40px 0; border-bottom: var(--bsh-hairline); }
.bsh-empty-state p { margin-top: 8px; color: var(--bsh-muted); }
.bsh-mobile-controls, .bsh-filter-chips { display: none; }
.bsh-search-proof { padding-block: 48px; }
.bsh-proof-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: var(--bsh-hairline); background: var(--bsh-white); }
.bsh-proof-grid > div { padding: 20px 22px; border-left: var(--bsh-hairline); }
.bsh-proof-grid > div:first-child { border-left: 0; }
.bsh-proof-grid h3 { font-size: 16px; margin-bottom: 8px; }
.bsh-proof-grid p { font-size: 14px; color: var(--bsh-muted); }
.bsh-search-cta { padding-block: 48px; }
.bsh-search-cta > .bsh-container { display: flex; align-items: end; justify-content: space-between; gap: 32px; }
.bsh-search-cta h2 { max-width: 24ch; margin-top: 8px; }
.bsh-search-cta .bsh-btn--primary,
.bsh-search-cta .bsh-btn--primary:hover,
.bsh-search-cta .bsh-btn--primary:focus-visible { color: var(--bsh-white); }

@media (max-width: 991px) {
  .bsh-search-layout { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .bsh-filter-rail { display: none; position: static; }
  .bsh-search-results.is-filter-open .bsh-filter-rail { display: block; }
  .bsh-mobile-controls { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 12px; border-bottom: var(--bsh-hairline); font-size: 14px; }
  .bsh-mobile-controls button { min-height: 44px; padding: 0 16px; border: 1px solid var(--bsh-ink); background: var(--bsh-white); color: var(--bsh-ink); font: inherit; font-weight: 600; }
  .bsh-mobile-controls button span { display: inline-flex; min-width: 20px; min-height: 20px; align-items: center; justify-content: center; margin-left: 8px; border-radius: 50%; background: var(--bsh-accent); color: var(--bsh-white); font-size: 11px; }
  .bsh-filter-chips { display: flex; flex-wrap: wrap; gap: 8px; padding-block: 12px; }
  .bsh-filter-chips span { padding: 6px 10px; background: var(--bsh-surface); border: var(--bsh-hairline); font-size: 12px; }
  .bsh-search-results__main .bsh-listings { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bsh-proof-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bsh-proof-grid > div:nth-child(3) { border-left: 0; border-top: var(--bsh-hairline); }
  .bsh-proof-grid > div:nth-child(4) { border-top: var(--bsh-hairline); }
}

@media (max-width: 640px) {
  .bsh-search-results .bsh-search-hero { padding-block: 24px; }
  .bsh-search-results .bsh-search-hero h1 { font-size: 32px; }
  .bsh-search-modes { max-width: none; }
  .bsh-search-modes a { padding-inline: 8px; font-size: 13px; }
  .bsh-search-workspace { padding-block: 20px 40px; }
  .bsh-search-results__main .bsh-listings { grid-template-columns: minmax(0, 1fr); }
  .bsh-results-toolbar > span { display: none; }
  .bsh-proof-grid { grid-template-columns: minmax(0, 1fr); }
  .bsh-proof-grid > div { border-left: 0; border-top: var(--bsh-hairline); }
  .bsh-proof-grid > div:first-child { border-top: 0; }
  .bsh-search-proof, .bsh-search-cta { padding-block: 40px; }
  .bsh-search-cta > .bsh-container { align-items: stretch; flex-direction: column; gap: 24px; }
  .bsh-search-cta .bsh-row { align-items: stretch; flex-direction: column; }
}
.bsh-home-guides { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border:var(--bsh-hairline); }
.bsh-home-guides a { display:flex; flex-direction:column; gap:5px; padding:18px 20px; border-left:var(--bsh-hairline); border-top:var(--bsh-hairline); color:var(--bsh-ink); }
.bsh-home-guides a:nth-child(3n+1) { border-left:0; }.bsh-home-guides a:nth-child(-n+3) { border-top:0; }.bsh-home-guides span { font-size:13px; color:var(--bsh-muted); }
.bsh-home-reporting { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border:var(--bsh-hairline); }
.bsh-home-reporting a { display:flex; flex-direction:column; gap:8px; padding:20px; border-left:var(--bsh-hairline); color:var(--bsh-ink); }.bsh-home-reporting a:first-child { border-left:0; }.bsh-home-reporting span { font-size:12px; color:var(--bsh-muted); text-transform:uppercase; letter-spacing:.08em; }
@media(max-width:640px){.bsh-home-guides,.bsh-home-reporting{grid-template-columns:minmax(0,1fr)}.bsh-home-guides a,.bsh-home-reporting a{border-left:0;border-top:var(--bsh-hairline)}.bsh-home-guides a:first-child,.bsh-home-reporting a:first-child{border-top:0}}

@media (min-width: 768px) { .bsh-scope { --bsh-gutter: 32px; } }
@media (min-width: 992px) { .bsh-scope { --bsh-gutter: 48px; } }

/* ==========================================================================
   BASE
   Scoped to .bsh-scope on <body> so nothing here can reach a page that has
   not opted in. Add the body class in Bricks → Settings → Custom → Body
   classes, or per template in Page Settings.
   ========================================================================== */
@media all { /* base — unlayered on purpose, see note above */
  /* Bricks' own reset sets border-box globally, but this file must not depend
     on the host reset — it is also pasted standalone into Custom CSS. Without
     this, width:100% + padding-inline overflows and the page scrolls sideways. */
  .bsh-scope,
  .bsh-scope *,
  .bsh-scope *::before,
  .bsh-scope *::after {
    box-sizing: border-box;
  }

  .bsh-scope {
    font-family: var(--bsh-font-text);
    font-size: var(--bsh-fs-body);
    line-height: var(--bsh-lh-body);
    color: var(--bsh-ink);
    background: var(--bsh-white);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    font-synthesis-weight: none;
    overflow-x: hidden;
  }

  .bsh-scope h1,
  .bsh-scope h2,
  .bsh-scope h3,
  .bsh-scope h4 {
    font-family: var(--bsh-font-text);
    font-weight: 600;
    letter-spacing: -0.01em;
    line-height: var(--bsh-lh-tight);
    color: var(--bsh-ink);
    margin: 0;
    text-wrap: pretty;
  }

  .bsh-scope h1 {
    font-size: var(--bsh-fs-h1);
    letter-spacing: -0.015em;
  }
  .bsh-scope h2 {
    font-size: var(--bsh-fs-h2);
  }
  .bsh-scope h3 {
    font-size: var(--bsh-fs-h3);
    letter-spacing: -0.005em;
  }
  .bsh-scope h4 {
    font-size: var(--bsh-fs-h4);
    letter-spacing: 0;
  }

  .bsh-scope p {
    margin: 0;
    text-wrap: pretty;
    max-width: var(--bsh-measure);
  }

  /* Links are purple and never underlined. Nothing purple is unclickable. */
  .bsh-scope a {
    color: var(--bsh-accent);
    text-decoration: none;
    transition: color var(--bsh-ease);
  }
  .bsh-scope a:hover,
  .bsh-scope a:focus-visible {
    color: var(--bsh-accent-deep);
  }
  /* Purple text below 15px uses Purple Deep for legibility. */
  .bsh-scope a {
    text-underline-offset: 0.2em;
  }
  .bsh-scope small a,
  .bsh-scope .bsh-small a,
  .bsh-scope .bsh-micro a,
  .bsh-scope .bsh-eyebrow a {
    color: var(--bsh-accent-deep);
  }

  .bsh-scope :focus-visible {
    outline: 2px solid var(--bsh-accent-deep);
    outline-offset: 2px;
  }

  .bsh-scope img,
  .bsh-scope svg,
  .bsh-scope video {
    max-width: 100%;
    height: auto;
    display: block;
  }

  .bsh-scope ul,
  .bsh-scope ol {
    margin: 0;
    padding-left: 1.25em;
  }
  .bsh-scope li + li {
    margin-top: var(--bsh-sp-1);
  }

  .bsh-scope strong,
  .bsh-scope b {
    font-weight: 600;
  }

  .bsh-scope code {
    font-family: var(--bsh-font-mono);
    font-size: 0.9em;
  }

  .bsh-scope figure {
    margin: 0;
  }

  /* Tabular figures everywhere a number is compared to another number. */
  .bsh-scope [class*="__value"],
  .bsh-scope [class*="__figure"],
  .bsh-scope td,
  .bsh-scope th {
    font-variant-numeric: tabular-nums;
  }

  @media (prefers-reduced-motion: reduce) {
    .bsh-scope *,
    .bsh-scope *::before,
    .bsh-scope *::after {
      transition-duration: 1ms !important;
      animation-duration: 1ms !important;
    }
  }
}

/* ==========================================================================
   LAYOUT
   ========================================================================== */
@media all { /* layout */
  .bsh-container {
    width: 100%;
    max-width: var(--bsh-w-page);
    margin-inline: auto;
    padding-inline: var(--bsh-gutter);
  }
  .bsh-container--read {
    max-width: calc(var(--bsh-w-read) + var(--bsh-gutter) * 2);
  }
  .bsh-container--form {
    max-width: calc(var(--bsh-w-form) + var(--bsh-gutter) * 2);
  }
  .bsh-container--flush {
    padding-inline: 0;
  }

  .bsh-section {
    padding-block: var(--bsh-section-y);
  }
  .bsh-section--tight {
    padding-block: var(--bsh-sp-4);
  }
  .bsh-section--tint {
    background: var(--bsh-surface);
  }
  .bsh-section--wash {
    background: var(--bsh-accent-wash);
  }
  .bsh-section--ink {
    background: var(--bsh-ink);
    color: var(--bsh-white);
  }
  .bsh-section--ink h1,
  .bsh-section--ink h2,
  .bsh-section--ink h3,
  .bsh-section--ink h4 {
    color: var(--bsh-white);
  }
  .bsh-section--ink p {
    color: var(--bsh-line);
  }
  .bsh-section--ink a {
    color: var(--bsh-white);
    text-decoration: underline;
    text-decoration-thickness: 1px;
  }
  .bsh-section--ink a:hover {
    color: var(--bsh-line);
  }
  .bsh-section--ruled {
    border-top: var(--bsh-hairline);
  }

  /* Vertical stacks. The gap number is the design intent; nothing uses
     margins, so drag-reordering in the builder cannot break spacing. */
  .bsh-stack {
    display: flex;
    flex-direction: column;
    gap: var(--bsh-sp-3);
  }
  .bsh-stack--1 { gap: var(--bsh-sp-1); }
  .bsh-stack--2 { gap: var(--bsh-sp-2); }
  .bsh-stack--4 { gap: var(--bsh-sp-4); }
  .bsh-stack--6 { gap: var(--bsh-sp-6); }
  .bsh-stack--8 { gap: var(--bsh-sp-8); }

  .bsh-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--bsh-sp-2);
  }
  .bsh-row--between {
    justify-content: space-between;
  }
  .bsh-row--baseline {
    align-items: baseline;
  }

  /* Card grids. One gap value sitewide: 16px. */
  .bsh-grid {
    display: grid;
    gap: var(--bsh-sp-2);
    grid-template-columns: minmax(0, 1fr);
  }
  @media (min-width: 479px) {
    .bsh-grid--2,
    .bsh-grid--4,
    .bsh-grid--6 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }
  @media (min-width: 768px) {
    .bsh-grid--3,
    .bsh-grid--6 {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }
  }
  @media (min-width: 992px) {
    .bsh-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .bsh-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .bsh-grid--6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  }

  /* Reading column + reserved sidebar. Sidebar drops under at 991. */
  .bsh-grid--sidebar {
    display: grid;
    gap: var(--bsh-sp-6);
    grid-template-columns: minmax(0, 1fr);
  }
  @media (min-width: 992px) {
    .bsh-grid--sidebar {
      grid-template-columns: minmax(0, var(--bsh-w-read)) minmax(0, 1fr);
      gap: var(--bsh-sp-8);
      align-items: start;
    }
  }
  .bsh-sidebar {
    position: sticky;
    top: var(--bsh-sp-3);
  }

  .bsh-hairline {
    height: 1px;
    background: var(--bsh-line);
    border: 0;
    margin: 0;
  }
  .bsh-section--ink .bsh-hairline {
    background: var(--bsh-ink-soft);
  }
}

/* ==========================================================================
   COMPONENTS
   ========================================================================== */
@media all { /* components */

  /* --- Eyebrow, lead, small print ------------------------------------- */
  .bsh-eyebrow {
    font-size: var(--bsh-fs-eyebrow);
    font-weight: 500;
    line-height: var(--bsh-lh-ui);
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--bsh-accent-deep);
    margin: 0;
  }
  .bsh-eyebrow--muted { color: var(--bsh-muted); }
  .bsh-section--ink .bsh-eyebrow { color: var(--bsh-line-strong); }

  .bsh-lead {
    font-size: var(--bsh-fs-lead);
    line-height: 1.5;
    color: var(--bsh-ink-soft);
    max-width: var(--bsh-measure);
  }
  .bsh-small {
    font-size: var(--bsh-fs-small);
    line-height: 1.65;
    color: var(--bsh-ink-soft);
  }
  .bsh-micro {
    font-size: var(--bsh-fs-micro);
    line-height: 1.55;
    color: var(--bsh-muted);
  }
  .bsh-label {
    font-size: var(--bsh-fs-small);
    font-weight: 500;
    color: var(--bsh-muted);
  }

  /* --- Buttons — 2px radius, 44px minimum hit target ------------------- */
  .bsh-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--bsh-sp-1);
    min-height: 44px;
    padding: 12px 22px;
    border: 1px solid transparent;
    border-radius: var(--bsh-radius-control);
    font-family: inherit;
    font-size: var(--bsh-fs-h4);
    font-weight: 600;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    transition: background var(--bsh-ease), border-color var(--bsh-ease),
      color var(--bsh-ease);
  }
  .bsh-btn--primary {
    background: var(--bsh-accent);
    border-color: var(--bsh-accent);
    color: var(--bsh-white);
  }
  .bsh-btn--primary:hover,
  .bsh-btn--primary:focus-visible {
    background: var(--bsh-accent-deep);
    border-color: var(--bsh-accent-deep);
    color: var(--bsh-white);
  }
  .bsh-btn--ink {
    background: var(--bsh-ink);
    border-color: var(--bsh-ink);
    color: var(--bsh-white);
  }
  .bsh-btn--ink:hover {
    background: var(--bsh-ink-deep);
    border-color: var(--bsh-ink-deep);
    color: var(--bsh-white);
  }
  .bsh-btn--ghost {
    background: transparent;
    border-color: var(--bsh-line-strong);
    color: var(--bsh-ink);
  }
  .bsh-btn--ghost:hover {
    border-color: var(--bsh-ink);
    color: var(--bsh-ink);
  }
  .bsh-section--ink .bsh-btn--ghost {
    border-color: var(--bsh-ink-soft);
    color: var(--bsh-white);
    text-decoration: none;
  }
  .bsh-section--ink .bsh-btn--ghost:hover {
    border-color: var(--bsh-white);
    color: var(--bsh-white);
  }
  .bsh-section--ink .bsh-btn--primary {
    text-decoration: none;
    color: var(--bsh-white);
  }
  .bsh-btn--block {
    width: 100%;
  }
  .bsh-btn--small {
    min-height: 38px;
    padding: 8px 16px;
    font-size: var(--bsh-fs-small);
  }

  /* --- Status tags — stack top-left of a hero image -------------------- */
  .bsh-tags {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    position: absolute;
    top: var(--bsh-sp-2);
    left: var(--bsh-sp-2);
    z-index: 2;
  }
  .bsh-tag {
    display: inline-flex;
    align-items: center;
    padding: 5px 10px;
    border-radius: var(--bsh-radius-control);
    background: var(--bsh-white);
    color: var(--bsh-ink);
    font-size: var(--bsh-fs-micro);
    font-weight: 600;
    letter-spacing: 0.02em;
    line-height: 1.3;
  }
  .bsh-tag--active {
    background: var(--bsh-ink);
    color: var(--bsh-white);
  }
  .bsh-tag--exclusive {
    background: var(--bsh-accent);
    color: var(--bsh-white);
  }
  .bsh-tag--open {
    background: var(--bsh-white);
    color: var(--bsh-accent-deep);
    box-shadow: inset 0 0 0 1px var(--bsh-accent-deep);
  }

  /* --- Card — one shell everywhere ------------------------------------ */
  .bsh-card {
    display: flex;
    flex-direction: column;
    gap: var(--bsh-sp-1);
    padding: 20px 22px;
    border: var(--bsh-hairline);
    border-radius: var(--bsh-radius-card);
    background: var(--bsh-white);
  }
  .bsh-card--tint { background: var(--bsh-surface); }
  .bsh-card--wash {
    background: var(--bsh-accent-wash);
    border-color: #e2d5ef;
  }
  /* The ink border marks the one card on a page that carries a caveat. */
  .bsh-card--ink { border-color: var(--bsh-ink); }
  .bsh-card--flush { padding: 0; border: 0; background: none; }
  .bsh-card--link { color: inherit; text-decoration: none; }
  .bsh-card--link:hover { border-color: var(--bsh-ink); }
  .bsh-card--link:hover .bsh-card__title { color: var(--bsh-accent-deep); }

  .bsh-card__label {
    font-size: var(--bsh-fs-eyebrow);
    font-weight: 500;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--bsh-muted);
  }
  .bsh-card__figure {
    font-size: 30px;
    font-weight: 600;
    line-height: 1.1;
    letter-spacing: -0.015em;
    color: var(--bsh-ink);
    font-variant-numeric: tabular-nums;
  }
  .bsh-card__title {
    font-size: var(--bsh-fs-h4);
    font-weight: 600;
    color: var(--bsh-ink);
    transition: color var(--bsh-ease);
  }
  .bsh-card__body {
    font-size: var(--bsh-fs-small);
    line-height: 1.65;
    color: var(--bsh-ink-soft);
  }
  .bsh-card__note {
    font-size: var(--bsh-fs-micro);
    line-height: 1.55;
    color: var(--bsh-muted);
  }
  .bsh-card__media {
    margin: -20px -22px var(--bsh-sp-1);
    border-radius: var(--bsh-radius-card) var(--bsh-radius-card) 0 0;
    overflow: hidden;
  }

  /* --- Metric group — never a row with an orphan ----------------------- */
  .bsh-metrics {
    display: grid;
    gap: var(--bsh-sp-2);
    grid-template-columns: minmax(0, 1fr);
  }
  /* three go 3 -> 3 -> 1 */
  @media (min-width: 479px) {
    .bsh-metrics--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    /* four go 2 -> 2 -> 1 */
    .bsh-metrics--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    /* six go 3 -> 2 -> 1 */
    .bsh-metrics--6 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }
  @media (min-width: 992px) {
    .bsh-metrics--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .bsh-metrics--6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  }

  .bsh-metric {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 20px 22px;
    border: var(--bsh-hairline);
    border-radius: var(--bsh-radius-card);
    background: var(--bsh-white);
  }
  .bsh-metric__name {
    font-size: var(--bsh-fs-eyebrow);
    font-weight: 500;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--bsh-muted);
  }
  .bsh-metric__value {
    font-size: 30px;
    font-weight: 600;
    line-height: 1.1;
    letter-spacing: -0.015em;
    font-variant-numeric: tabular-nums;
  }
  .bsh-metric__delta {
    font-size: var(--bsh-fs-small);
    font-weight: 500;
    font-variant-numeric: tabular-nums;
  }
  .bsh-metric__basis {
    font-size: var(--bsh-fs-micro);
    line-height: 1.5;
    color: var(--bsh-muted);
  }

  /* --- Direction — arrow tracks the number, color tracks the news ------ */
  .bsh-trend-up,
  .bsh-trend-down,
  .bsh-trend-flat {
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
    font-variant-numeric: tabular-nums;
    font-weight: 500;
  }
  .bsh-trend-up { color: var(--bsh-up); }
  .bsh-trend-down { color: var(--bsh-down); }
  .bsh-trend-flat { color: var(--bsh-muted); }
  .bsh-trend-up::before { content: "\25B2"; font-size: 0.75em; }
  .bsh-trend-down::before { content: "\25BC"; font-size: 0.75em; }
  .bsh-trend-flat::before { content: "\2013"; }
  /* Good news printed in the unfavourable direction, and vice versa. */
  .bsh-trend-up.is-unfavourable { color: var(--bsh-down); }
  .bsh-trend-down.is-favourable { color: var(--bsh-up); }

  /* --- Tables ---------------------------------------------------------- */
  .bsh-table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--bsh-fs-body);
  }
  .bsh-table caption {
    text-align: left;
    font-size: var(--bsh-fs-small);
    color: var(--bsh-muted);
    padding-bottom: var(--bsh-sp-1);
  }
  .bsh-table th,
  .bsh-table td {
    padding: 14px 16px;
    text-align: left;
    border-bottom: var(--bsh-hairline);
    vertical-align: top;
  }
  .bsh-table thead th {
    font-size: var(--bsh-fs-eyebrow);
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--bsh-muted);
    border-bottom-color: var(--bsh-ink);
  }
  .bsh-table tbody th {
    font-weight: 500;
    color: var(--bsh-ink);
  }
  .bsh-table td + td,
  .bsh-table th + th,
  .bsh-table thead th + th {
    text-align: right;
  }
  .bsh-table tr.is-highlight {
    background: var(--bsh-accent-wash);
  }
  .bsh-table tr.is-withheld td {
    color: var(--bsh-muted);
    font-style: normal;
  }

  /* A comparison table becomes one block per row under 640. */
  @media (max-width: 640px) {
    .bsh-table--comparison thead { display: none; }
    .bsh-table--comparison tr {
      display: block;
      border: var(--bsh-hairline);
      border-radius: var(--bsh-radius-card);
      padding: 12px 14px;
    }
    .bsh-table--comparison tr + tr { margin-top: var(--bsh-sp-2); }
    .bsh-table--comparison th,
    .bsh-table--comparison td {
      display: flex;
      justify-content: space-between;
      gap: var(--bsh-sp-2);
      padding: 6px 0;
      border: 0;
      text-align: right;
    }
    .bsh-table--comparison td::before {
      content: attr(data-label);
      font-size: var(--bsh-fs-micro);
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--bsh-muted);
      text-align: left;
    }
    .bsh-table--comparison tbody th {
      font-size: var(--bsh-fs-h4);
      font-weight: 600;
      border-bottom: var(--bsh-hairline);
      padding-bottom: 10px;
      margin-bottom: 4px;
      text-align: left;
      display: block;
    }
  }

  /* An inventory list is a compact link row, never cards. Thirty rows of
     cards triples the page height on an open-house weekend. */
  .bsh-rowlist {
    display: flex;
    flex-direction: column;
    border-top: var(--bsh-hairline);
  }
  .bsh-rowlist__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 4px var(--bsh-sp-3);
    align-items: baseline;
    padding: 14px 0;
    border-bottom: var(--bsh-hairline);
  }
  .bsh-rowlist__addr {
    font-size: var(--bsh-fs-h4);
    font-weight: 600;
    grid-column: 1;
  }
  .bsh-rowlist__figure {
    grid-column: 2;
    grid-row: 1;
    font-weight: 600;
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
  }
  .bsh-rowlist__meta {
    grid-column: 1 / -1;
    font-size: var(--bsh-fs-small);
    color: var(--bsh-muted);
  }
  @media (min-width: 768px) {
    .bsh-rowlist__meta { grid-column: 1; }
  }

  /* --- Label / value rows (MLS detail tables) -------------------------- */
  .bsh-rows {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0 var(--bsh-sp-6);
    border-top: var(--bsh-hairline);
  }
  @media (min-width: 768px) {
    .bsh-rows--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }
  .bsh-rows__row {
    display: flex;
    justify-content: space-between;
    gap: var(--bsh-sp-2);
    padding: 11px 0;
    border-bottom: var(--bsh-hairline);
    font-size: var(--bsh-fs-small);
  }
  .bsh-rows__key { color: var(--bsh-muted); }
  .bsh-rows__val { color: var(--bsh-ink); text-align: right; font-weight: 500; }

  /* --- Disclosure / FAQ ----------------------------------------------- */
  .bsh-faq {
    border-top: var(--bsh-hairline);
  }
  .bsh-faq__item {
    border-bottom: var(--bsh-hairline);
  }
  .bsh-faq__q {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: var(--bsh-sp-3);
    width: 100%;
    padding: 18px 0;
    background: none;
    border: 0;
    font-family: inherit;
    font-size: var(--bsh-fs-h4);
    font-weight: 600;
    color: var(--bsh-ink);
    text-align: left;
    cursor: pointer;
    list-style: none;
  }
  .bsh-faq__q::-webkit-details-marker { display: none; }
  .bsh-faq__q::after {
    content: "+";
    font-size: 20px;
    font-weight: 400;
    color: var(--bsh-accent);
    line-height: 1;
  }
  .bsh-faq__item[open] .bsh-faq__q::after { content: "\2013"; }
  .bsh-faq__a {
    padding: 0 0 20px;
    font-size: var(--bsh-fs-body);
    line-height: var(--bsh-lh-body);
    color: var(--bsh-ink-soft);
    max-width: var(--bsh-measure);
  }
  .bsh-faq__a > * + * { margin-top: var(--bsh-sp-2); }

  /* --- Forms ----------------------------------------------------------- */
  .bsh-form {
    display: flex;
    flex-direction: column;
    gap: var(--bsh-sp-2);
  }
  .bsh-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
  }
  .bsh-field__label {
    font-size: var(--bsh-fs-small);
    font-weight: 500;
    color: var(--bsh-ink);
  }
  .bsh-field__label .bsh-optional {
    font-weight: 400;
    color: var(--bsh-muted);
  }
  .bsh-scope .bsh-field input[type="text"],
  .bsh-scope .bsh-field input[type="email"],
  .bsh-scope .bsh-field input[type="tel"],
  .bsh-scope .bsh-field input[type="search"],
  .bsh-scope .bsh-field select,
  .bsh-scope .bsh-field textarea,
  .bsh-scope .bsh-input {
    width: 100%;
    min-height: 44px;
    padding: 11px 14px;
    font-family: inherit;
    font-size: var(--bsh-fs-body);
    color: var(--bsh-ink);
    background: var(--bsh-white);
    border: 1px solid var(--bsh-line-strong);
    border-radius: var(--bsh-radius-control);
    transition: border-color var(--bsh-ease);
    appearance: none;
  }
  .bsh-scope .bsh-field input:focus,
  .bsh-scope .bsh-field select:focus,
  .bsh-scope .bsh-field textarea:focus,
  .bsh-scope .bsh-input:focus {
    border-color: var(--bsh-accent);
    outline: none;
    box-shadow: inset 0 0 0 1px var(--bsh-accent);
  }
  .bsh-scope .bsh-field textarea { min-height: 96px; resize: vertical; }
  .bsh-form__note {
    font-size: var(--bsh-fs-micro);
    line-height: 1.55;
    color: var(--bsh-muted);
  }
  .bsh-form__consent {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    font-size: var(--bsh-fs-micro);
    line-height: 1.5;
    color: var(--bsh-muted);
  }
  .bsh-form__consent input { margin-top: 3px; }
  /* Turnaround line — the highest-value copy above a submit button. */
  .bsh-form__turnaround {
    font-size: var(--bsh-fs-small);
    font-weight: 500;
    color: var(--bsh-ink);
  }
  @media (min-width: 768px) {
    .bsh-form--row {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: var(--bsh-sp-2);
      align-items: end;
    }
    .bsh-form--row .bsh-field--wide { grid-column: 1 / -1; }
  }

  /* Search bar — four filters plus submit. */
  .bsh-search {
    display: grid;
    gap: var(--bsh-sp-1);
    grid-template-columns: minmax(0, 1fr);
    padding: var(--bsh-sp-2);
    border: 1px solid var(--bsh-ink);
    border-radius: var(--bsh-radius-card);
    background: var(--bsh-white);
  }
  @media (min-width: 768px) {
    .bsh-search { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }
  @media (min-width: 992px) {
    .bsh-search {
      grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr)) auto;
      align-items: center;
    }
  }

  /* --- Pull quote — Newsreader 300, 24px and up only ------------------- */
  .bsh-pullquote {
    display: flex;
    flex-direction: column;
    gap: var(--bsh-sp-2);
    padding-left: var(--bsh-sp-3);
    border-left: 2px solid var(--bsh-accent);
    max-width: var(--bsh-measure-tight);
  }
  .bsh-pullquote p,
  .bsh-pullquote blockquote {
    font-family: var(--bsh-font-quote);
    font-weight: 300;
    font-size: clamp(1.5rem, 2.4vw, 1.875rem);
    line-height: 1.35;
    letter-spacing: -0.01em;
    color: var(--bsh-ink);
    margin: 0;
  }
  .bsh-pullquote cite {
    font-family: var(--bsh-font-text);
    font-style: normal;
    font-size: var(--bsh-fs-small);
    color: var(--bsh-muted);
  }

  /* --- Provenance strip ------------------------------------------------ */
  .bsh-provenance {
    display: flex;
    flex-wrap: wrap;
    gap: 6px var(--bsh-sp-2);
    padding: 12px 0;
    border-top: var(--bsh-hairline);
    border-bottom: var(--bsh-hairline);
    font-size: var(--bsh-fs-small);
    color: var(--bsh-muted);
  }
  .bsh-provenance strong { color: var(--bsh-ink); font-weight: 500; }

  /* --- Source note ----------------------------------------------------- */
  .bsh-source {
    font-size: var(--bsh-fs-micro);
    line-height: 1.6;
    color: var(--bsh-muted);
    max-width: var(--bsh-measure);
  }

  /* --- Owed data. A dashed slot naming its basis, never a made-up number.
     #B3B2B1 draws the outline only; the text inside is muted. ----------- */
  .bsh-placeholder {
    display: block;
    padding: 12px 14px;
    border: 1px dashed var(--bsh-line-strong);
    border-radius: var(--bsh-radius-control);
    background: var(--bsh-white);
    font-size: var(--bsh-fs-small);
    line-height: 1.5;
    color: var(--bsh-muted);
  }
  .bsh-placeholder--inline {
    display: inline-block;
    padding: 2px 8px;
    font-size: 0.9em;
  }
  .bsh-placeholder::before {
    content: "Owed — ";
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--bsh-ink-soft);
  }
  .bsh-placeholder--field::before { content: "Field — "; }
  .bsh-placeholder--none::before { content: none; }
  /* A statistic withheld on purpose, e.g. a row under the threshold. */
  .bsh-withheld {
    font-size: var(--bsh-fs-small);
    color: var(--bsh-muted);
  }

  /* --- Media ----------------------------------------------------------- */
  .bsh-media {
    position: relative;
    overflow: hidden;
    background: var(--bsh-surface);
    border-radius: var(--bsh-radius-card);
  }
  .bsh-media--3-2 { aspect-ratio: 3 / 2; }
  .bsh-media--4-3 { aspect-ratio: 4 / 3; }
  .bsh-media--16-9 { aspect-ratio: 16 / 9; }
  .bsh-media--1-1 { aspect-ratio: 1 / 1; }
  .bsh-media--square-sm { aspect-ratio: 1 / 1; max-width: 104px; }
  .bsh-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .bsh-figure {
    display: flex;
    flex-direction: column;
    gap: var(--bsh-sp-1);
  }
  .bsh-figure figcaption,
  .bsh-figure__caption {
    font-size: var(--bsh-fs-micro);
    line-height: 1.55;
    color: var(--bsh-muted);
  }
  .bsh-headshot {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    object-fit: cover;
    flex: none;
  }

  /* --- Breadcrumb ------------------------------------------------------ */
  .bsh-crumbs {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 6px;
    font-size: var(--bsh-fs-small);
    color: var(--bsh-muted);
  }
  .bsh-crumbs span[aria-hidden] { color: var(--bsh-line-strong); }
  .bsh-crumbs .is-current { color: var(--bsh-muted); }
}

/* ==========================================================================
   BLOCKS — recognizable page sections
   ========================================================================== */
@media all { /* blocks */

  /* --- Global header --------------------------------------------------- */
  .bsh-header {
    border-bottom: var(--bsh-hairline);
    background: var(--bsh-white);
  }
  .bsh-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--bsh-sp-4);
    min-height: 72px;
  }
  .bsh-header__logo img { height: 26px; width: auto; }
  .bsh-header__nav {
    display: none;
    gap: var(--bsh-sp-3);
    align-items: center;
  }
  @media (min-width: 992px) {
    .bsh-header__nav { display: flex; }
    .bsh-header__toggle { display: none; }
  }
  .bsh-header__nav a {
    font-size: var(--bsh-fs-small);
    font-weight: 500;
    color: var(--bsh-ink);
  }
  .bsh-header__nav a:hover,
  .bsh-header__nav a[aria-current] { color: var(--bsh-accent-deep); }
  .bsh-header__toggle {
    min-height: 44px;
    min-width: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: 0;
    cursor: pointer;
  }

  /* --- Global footer --------------------------------------------------- */
  .bsh-footer {
    background: var(--bsh-ink);
    color: var(--bsh-line);
    padding-block: var(--bsh-sp-8) var(--bsh-sp-4);
    font-size: var(--bsh-fs-small);
  }
  .bsh-footer a { color: var(--bsh-white); }
  .bsh-footer a:hover { color: var(--bsh-line-strong); }
  .bsh-footer__grid {
    display: grid;
    gap: var(--bsh-sp-6);
    grid-template-columns: minmax(0, 1fr);
  }
  @media (min-width: 479px) {
    .bsh-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }
  @media (min-width: 992px) {
    .bsh-footer__grid {
      grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr));
      gap: var(--bsh-sp-8);
    }
  }
  .bsh-footer__col {
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
  .bsh-footer__head {
    font-size: var(--bsh-fs-eyebrow);
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--bsh-line-strong);
    margin-bottom: 4px;
  }
  .bsh-footer__logo img { height: 22px; width: auto; }
  .bsh-footer__legal {
    margin-top: var(--bsh-sp-6);
    padding-top: var(--bsh-sp-3);
    border-top: 1px solid var(--bsh-ink-soft);
    display: flex;
    flex-wrap: wrap;
    gap: var(--bsh-sp-1) var(--bsh-sp-4);
    font-size: var(--bsh-fs-micro);
    color: var(--bsh-line-strong);
  }

  /* --- Hero ------------------------------------------------------------ */
  .bsh-hero {
    padding-block: var(--bsh-sp-6) var(--bsh-sp-6);
  }
  @media (min-width: 992px) {
    .bsh-hero { padding-block: var(--bsh-sp-10) var(--bsh-sp-8); }
    .bsh-hero--split .bsh-hero__inner {
      display: grid;
      grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
      gap: var(--bsh-sp-8);
      align-items: start;
    }
  }
  .bsh-hero__inner {
    display: flex;
    flex-direction: column;
    gap: var(--bsh-sp-4);
  }
  .bsh-hero__title {
    font-size: var(--bsh-fs-display);
    line-height: var(--bsh-lh-display);
    letter-spacing: -0.02em;
  }
  .bsh-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--bsh-sp-1);
  }
  /* Call card — the ask on the buyer and developer pages. */
  .bsh-callcard {
    display: flex;
    flex-direction: column;
    gap: var(--bsh-sp-2);
    padding: var(--bsh-sp-3);
    border: 1px solid var(--bsh-ink);
    border-radius: var(--bsh-radius-card);
    background: var(--bsh-surface);
  }
  .bsh-callcard__number {
    font-size: 30px;
    font-weight: 600;
    letter-spacing: -0.015em;
    font-variant-numeric: tabular-nums;
  }

  /* --- Counted ledger — above the marketing prose, always ------------- */
  .bsh-ledger {
    display: grid;
    gap: var(--bsh-sp-2);
    grid-template-columns: minmax(0, 1fr);
  }
  @media (min-width: 479px) {
    .bsh-ledger { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }
  @media (min-width: 992px) {
    .bsh-ledger { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  }
  .bsh-ledger__tier {
    display: flex;
    flex-direction: column;
    gap: var(--bsh-sp-1);
    padding: 20px 22px;
    border: var(--bsh-hairline);
    border-radius: var(--bsh-radius-card);
  }
  .bsh-ledger__window {
    font-size: var(--bsh-fs-micro);
    color: var(--bsh-muted);
  }

  /* --- Intent router --------------------------------------------------- */
  .bsh-router {
    display: grid;
    gap: var(--bsh-sp-2);
    grid-template-columns: minmax(0, 1fr);
  }
  @media (min-width: 479px) {
    .bsh-router { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }
  @media (min-width: 992px) {
    .bsh-router { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  }
  .bsh-router__card {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 20px 22px;
    border: var(--bsh-hairline);
    border-radius: var(--bsh-radius-card);
    color: inherit;
    text-decoration: none;
    transition: border-color var(--bsh-ease);
  }
  .bsh-router__card:hover { border-color: var(--bsh-ink); }
  .bsh-router__situation {
    font-size: var(--bsh-fs-h4);
    font-weight: 600;
    color: var(--bsh-ink);
  }
  .bsh-router__card:hover .bsh-router__situation { color: var(--bsh-accent-deep); }
  .bsh-router__answer {
    font-size: var(--bsh-fs-small);
    line-height: 1.6;
    color: var(--bsh-ink-soft);
  }
  .bsh-router__go {
    margin-top: 4px;
    font-size: var(--bsh-fs-small);
    font-weight: 500;
    color: var(--bsh-accent-deep);
  }

  /* --- Publishing rail — dated, sourced, the bragging without adjectives */
  .bsh-rail {
    display: grid;
    gap: var(--bsh-sp-2);
    grid-template-columns: minmax(0, 1fr);
  }
  @media (min-width: 479px) {
    .bsh-rail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }
  @media (min-width: 992px) {
    .bsh-rail { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  }
  .bsh-rail__card {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 20px 22px;
    border: var(--bsh-hairline);
    border-radius: var(--bsh-radius-card);
    color: inherit;
    text-decoration: none;
  }
  .bsh-rail__card:hover { border-color: var(--bsh-ink); }
  .bsh-rail__cadence {
    font-size: var(--bsh-fs-eyebrow);
    font-weight: 500;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--bsh-muted);
  }
  .bsh-rail__title {
    font-size: var(--bsh-fs-h4);
    font-weight: 600;
    color: var(--bsh-ink);
  }
  .bsh-rail__card:hover .bsh-rail__title { color: var(--bsh-accent-deep); }
  .bsh-rail__date {
    font-size: var(--bsh-fs-micro);
    color: var(--bsh-muted);
    font-variant-numeric: tabular-nums;
  }

  /* --- Hairline strip — demoted legacy adjective blocks ---------------- */
  .bsh-strip {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    border-top: var(--bsh-hairline);
    border-bottom: var(--bsh-hairline);
  }
  @media (min-width: 479px) {
    .bsh-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }
  @media (min-width: 992px) {
    .bsh-strip--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .bsh-strip--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  }
  .bsh-strip__cell {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 18px 0;
  }
  /* The strip is a wrapping grid, so the left edge of EVERY row has to be
     reset, not just the first cell. nth-child matches the column count at
     each breakpoint; :first-child would leave a stray rule mid-strip. */
  @media (min-width: 479px) {
    .bsh-strip > .bsh-strip__cell {
      padding: 18px var(--bsh-sp-3);
      border-left: var(--bsh-hairline);
    }
    .bsh-strip > .bsh-strip__cell:nth-child(2n + 1) {
      padding-left: 0;
      border-left: 0;
    }
  }
  @media (min-width: 992px) {
    .bsh-strip--4 > .bsh-strip__cell:nth-child(2n + 1),
    .bsh-strip--3 > .bsh-strip__cell:nth-child(2n + 1) {
      padding-left: var(--bsh-sp-3);
      border-left: var(--bsh-hairline);
    }
    .bsh-strip--4 > .bsh-strip__cell:nth-child(4n + 1),
    .bsh-strip--3 > .bsh-strip__cell:nth-child(3n + 1) {
      padding-left: 0;
      border-left: 0;
    }
  }
  .bsh-strip__name { font-size: var(--bsh-fs-h4); font-weight: 600; }
  .bsh-strip__body {
    font-size: var(--bsh-fs-small);
    line-height: 1.6;
    color: var(--bsh-ink-soft);
  }

  /* --- Process — Find / Design / Sell, numbered steps ------------------ */
  .bsh-steps {
    display: grid;
    gap: var(--bsh-sp-2);
    grid-template-columns: minmax(0, 1fr);
    counter-reset: bshstep;
  }
  @media (min-width: 768px) {
    .bsh-steps--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  }
  @media (min-width: 992px) {
    .bsh-steps--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  }
  @media (min-width: 479px) {
    .bsh-steps--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }
  .bsh-step {
    display: flex;
    flex-direction: column;
    gap: var(--bsh-sp-1);
    padding: 20px 22px;
    border: var(--bsh-hairline);
    border-radius: var(--bsh-radius-card);
  }
  .bsh-step::before {
    counter-increment: bshstep;
    content: counter(bshstep, decimal-leading-zero);
    font-size: var(--bsh-fs-small);
    font-weight: 600;
    letter-spacing: 0.08em;
    color: var(--bsh-accent-deep);
    font-variant-numeric: tabular-nums;
  }

  /* --- Listing card ---------------------------------------------------- */
  .bsh-listings {
    display: grid;
    gap: var(--bsh-sp-2);
    grid-template-columns: minmax(0, 1fr);
  }
  @media (min-width: 479px) {
    .bsh-listings { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }
  @media (min-width: 992px) {
    .bsh-listings { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  }
  .bsh-listing {
    display: flex;
    flex-direction: column;
    border: var(--bsh-hairline);
    border-radius: var(--bsh-radius-card);
    overflow: hidden;
    background: var(--bsh-white);
    color: inherit;
    text-decoration: none;
  }
  .bsh-listing:hover { border-color: var(--bsh-ink); }
  .bsh-listing__media {
    display: block;
    position: relative;
    aspect-ratio: 3 / 2;
    overflow: hidden;
    background: var(--bsh-surface);
  }
  .bsh-listing__media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .bsh-listing__body {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 16px 18px;
  }
  .bsh-listing__price {
    font-size: 22px;
    font-weight: 600;
    letter-spacing: -0.01em;
    font-variant-numeric: tabular-nums;
  }
  .bsh-listing__addr {
    font-size: var(--bsh-fs-h4);
    font-weight: 500;
    color: var(--bsh-accent);
  }
  .bsh-listing:hover .bsh-listing__addr { color: var(--bsh-accent-deep); }
  .bsh-listing__meta {
    font-size: var(--bsh-fs-small);
    color: var(--bsh-muted);
  }

  /* --- Listing gallery: one hero plus two tiles ------------------------ */
  .bsh-gallery {
    display: grid;
    gap: var(--bsh-sp-1);
    grid-template-columns: minmax(0, 1fr);
  }
  @media (min-width: 768px) {
    .bsh-gallery {
      grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
      grid-template-rows: repeat(2, 1fr);
    }
    .bsh-gallery__hero { grid-row: 1 / span 2; }
  }
  .bsh-gallery__hero,
  .bsh-gallery__tile {
    position: relative;
    overflow: hidden;
    border-radius: var(--bsh-radius-card);
    background: var(--bsh-surface);
  }
  .bsh-gallery__hero { aspect-ratio: 3 / 2; }
  .bsh-gallery__tile { display: none; aspect-ratio: 3 / 2; }
  @media (min-width: 768px) {
    .bsh-gallery__tile { display: block; }
  }
  .bsh-gallery__hero img,
  .bsh-gallery__tile img { width: 100%; height: 100%; object-fit: cover; }
  .bsh-gallery__action {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: flex-end;
    justify-content: flex-start;
    padding: 14px;
    background: linear-gradient(transparent 55%, rgba(45, 41, 37, 0.72));
    color: var(--bsh-white);
    font-size: var(--bsh-fs-small);
    font-weight: 600;
    text-decoration: none;
  }
  /* Photo counter replaces the hidden tiles at mobile. */
  .bsh-gallery__count {
    position: absolute;
    bottom: 12px;
    right: 12px;
    padding: 6px 10px;
    border-radius: var(--bsh-radius-control);
    background: rgba(45, 41, 37, 0.86);
    color: var(--bsh-white);
    font-size: var(--bsh-fs-micro);
    font-weight: 600;
  }
  @media (min-width: 768px) {
    .bsh-gallery__count { display: none; }
  }

  /* --- Title block: tags on the image, then h1, location, price ------- */
  .bsh-titleblock {
    display: flex;
    flex-direction: column;
    gap: var(--bsh-sp-1);
  }
  .bsh-titleblock__price {
    font-size: clamp(1.75rem, 3vw, 2.25rem);
    font-weight: 600;
    letter-spacing: -0.015em;
    font-variant-numeric: tabular-nums;
  }
  .bsh-titleblock__meta {
    font-size: var(--bsh-fs-body);
    color: var(--bsh-ink-soft);
  }

  /* --- Mobile action bar ---------------------------------------------- */
  .bsh-actionbar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 40;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--bsh-sp-1);
    padding: 10px var(--bsh-gutter);
    background: var(--bsh-white);
    border-top: var(--bsh-hairline);
  }
  .bsh-actionbar__spacer { height: 72px; }
  @media (min-width: 479px) {
    .bsh-actionbar,
    .bsh-actionbar__spacer { display: none; }
  }

  /* --- Testimonials ---------------------------------------------------- */
  .bsh-quotes {
    display: grid;
    gap: var(--bsh-sp-4);
    grid-template-columns: minmax(0, 1fr);
  }
  @media (min-width: 992px) {
    .bsh-quotes--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  }

  /* --- Team ------------------------------------------------------------ */
  .bsh-team {
    display: grid;
    gap: var(--bsh-sp-3);
    grid-template-columns: minmax(0, 1fr);
  }
  @media (min-width: 479px) {
    .bsh-team { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }
  @media (min-width: 992px) {
    .bsh-team { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  }
  .bsh-teamcard {
    display: flex;
    flex-direction: column;
    gap: var(--bsh-sp-2);
    color: inherit;
    text-decoration: none;
  }
  .bsh-teamcard__name { font-size: var(--bsh-fs-h3); font-weight: 600; }
  .bsh-teamcard__role { font-size: var(--bsh-fs-small); color: var(--bsh-muted); }
  .bsh-team > .bsh-teamcard:nth-child(1) > .bsh-media:empty {
    background-image: url("https://busharidev.wpenginepowered.com/wp-content/uploads/2025/12/Elad-Bushari.jpg");
    background-position: center;
    background-size: cover;
  }
  .bsh-team > .bsh-teamcard:nth-child(2) > .bsh-media:empty {
    background-image: url("https://busharidev.wpenginepowered.com/wp-content/uploads/2025/12/Mara.jpg");
    background-position: center;
    background-size: cover;
  }

  /* --- Zone map ------------------------------------------------------- */
  .bsh-map {
    border: var(--bsh-hairline);
    border-radius: var(--bsh-radius-card);
    overflow: hidden;
  }
  .bsh-map__legend {
    display: flex;
    flex-wrap: wrap;
    gap: var(--bsh-sp-2) var(--bsh-sp-3);
    padding: 14px 16px;
    border-top: var(--bsh-hairline);
    font-size: var(--bsh-fs-small);
    color: var(--bsh-ink-soft);
  }
  .bsh-map__key {
    display: inline-flex;
    align-items: center;
    gap: 8px;
  }
  .bsh-map__swatch {
    width: 14px;
    height: 14px;
    border-radius: 2px;
    flex: none;
  }

  /* --- Closing CTA ---------------------------------------------------- */
  .bsh-cta {
    background: var(--bsh-ink);
    color: var(--bsh-white);
    padding-block: var(--bsh-sp-8);
  }
  .bsh-cta h2 { color: var(--bsh-white); }
  .bsh-cta p { color: var(--bsh-line); }
  .bsh-cta__inner {
    display: flex;
    flex-direction: column;
    gap: var(--bsh-sp-4);
  }
  @media (min-width: 992px) {
    .bsh-cta__inner {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr);
      gap: var(--bsh-sp-8);
      align-items: start;
    }
  }
  .bsh-cta .bsh-form {
    padding: var(--bsh-sp-3);
    background: var(--bsh-white);
    border-radius: var(--bsh-radius-card);
    color: var(--bsh-ink);
  }
  .bsh-cta .bsh-form a { color: var(--bsh-accent); text-decoration: none; }
  .bsh-cta .bsh-form__note,
  .bsh-cta .bsh-form__consent { color: var(--bsh-muted); }
  .bsh-cta .bsh-field__label { color: var(--bsh-ink); }

  /* Inline success state — replaces the form in place. */
  .bsh-success {
    display: flex;
    flex-direction: column;
    gap: var(--bsh-sp-2);
    padding: var(--bsh-sp-3);
    background: var(--bsh-white);
    border-radius: var(--bsh-radius-card);
    color: var(--bsh-ink);
  }
  .bsh-success__ref {
    font-family: var(--bsh-font-mono);
    font-size: var(--bsh-fs-small);
    color: var(--bsh-ink-soft);
  }
}

/* ==========================================================================
   ARTICLE — the only vocabulary the n8n workflows may emit.
   Descendant-styled, so the workflow names fifteen classes and nothing else.
   ========================================================================== */
@media all { /* article */
  .bsh-article {
    max-width: var(--bsh-w-read);
    margin-inline: auto;
    font-size: var(--bsh-fs-body);
    line-height: var(--bsh-lh-body);
    color: var(--bsh-ink);
  }
  .bsh-article > * + * { margin-top: var(--bsh-sp-3); }
  .bsh-article > h2 { margin-top: var(--bsh-sp-6); }
  .bsh-article > h3 { margin-top: var(--bsh-sp-4); }
  .bsh-article p { max-width: none; }
  .bsh-article > ul,
  .bsh-article > ol { color: var(--bsh-ink-soft); }

  .bsh-article-header {
    display: flex;
    flex-direction: column;
    gap: var(--bsh-sp-2);
  }
  .bsh-article-header h1 { font-size: var(--bsh-fs-h1); }
  .bsh-article-header .bsh-standfirst,
  .bsh-standfirst {
    font-size: var(--bsh-fs-lead);
    line-height: 1.5;
    color: var(--bsh-ink-soft);
  }

  .bsh-byline {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px var(--bsh-sp-2);
    padding: 12px 0;
    border-top: var(--bsh-hairline);
    border-bottom: var(--bsh-hairline);
    font-size: var(--bsh-fs-small);
    color: var(--bsh-muted);
  }

  .bsh-kpi-row {
    display: grid;
    gap: var(--bsh-sp-2);
    grid-template-columns: minmax(0, 1fr);
  }
  @media (min-width: 479px) {
    .bsh-kpi-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }
  @media (min-width: 768px) {
    .bsh-kpi-row { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  }
  .bsh-kpi {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 18px 20px;
    border: var(--bsh-hairline);
    border-radius: var(--bsh-radius-card);
  }
  .bsh-kpi-label {
    font-size: var(--bsh-fs-eyebrow);
    font-weight: 500;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--bsh-muted);
  }
  .bsh-kpi-value {
    font-size: 30px;
    font-weight: 600;
    line-height: 1.1;
    letter-spacing: -0.015em;
    font-variant-numeric: tabular-nums;
  }
  .bsh-kpi-delta {
    font-size: var(--bsh-fs-small);
    font-weight: 500;
    font-variant-numeric: tabular-nums;
  }

  .bsh-takeaways {
    padding: 20px 22px;
    background: var(--bsh-accent-wash);
    border-radius: var(--bsh-radius-card);
  }
  .bsh-takeaways .bsh-eyebrow { margin-bottom: var(--bsh-sp-1); }
  .bsh-takeaways ul { color: var(--bsh-ink); }

  .bsh-schedule {
    display: flex;
    flex-direction: column;
    border-top: var(--bsh-hairline);
  }
  .bsh-schedule > * {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 4px var(--bsh-sp-2);
    padding: 12px 0;
    border-bottom: var(--bsh-hairline);
  }

  .bsh-listing-inline {
    display: grid;
    grid-template-columns: 104px minmax(0, 1fr);
    gap: var(--bsh-sp-2);
    align-items: start;
    padding: var(--bsh-sp-2);
    border: var(--bsh-hairline);
    border-radius: var(--bsh-radius-card);
  }

  .bsh-chart { width: 100%; }
  .bsh-chart svg { width: 100%; height: auto; }

  .bsh-article .bsh-cta {
    border-radius: var(--bsh-radius-card);
    padding: var(--bsh-sp-4);
  }
}

/* ==========================================================================
   UTILITIES — a short, closed list on purpose
   ========================================================================== */
@media all { /* utilities */
  .bsh-u-center { text-align: center; }
  .bsh-u-right { text-align: right; }
  .bsh-u-nowrap { white-space: nowrap; }
  .bsh-u-muted { color: var(--bsh-muted); }
  .bsh-u-ink { color: var(--bsh-ink); }
  .bsh-u-measure { max-width: var(--bsh-measure); }
  .bsh-u-measure-tight { max-width: var(--bsh-measure-tight); }
  .bsh-u-sr {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
  }
  .bsh-u-desktop-only { display: none; }
  @media (min-width: 992px) {
    .bsh-u-desktop-only { display: revert; }
    .bsh-u-mobile-only { display: none; }
  }

  /* Nothing scrolls sideways, anywhere. */
  .bsh-scope table { max-width: 100%; }
  .bsh-scope pre { overflow-x: auto; }
}

/* ==========================================================================
   PRINT
   ========================================================================== */
@media print {
  .bsh-header,
  .bsh-footer,
  .bsh-actionbar,
  .bsh-cta { display: none !important; }
  .bsh-scope { font-size: 11pt; color: #000; }
  .bsh-scope a { color: #000; }
  .bsh-card,
  .bsh-metric { break-inside: avoid; }
}

/* ==========================================================================
   BRICKS BRIDGE
   Bricks' own elements ship their own markup and class names. These rules map
   that markup onto the system so a native Button, Form, Nav or Accordion looks
   like the design without being restyled in the builder. Unlayered and loaded
   after Bricks, so equal-specificity rules win on source order.
   ========================================================================== */
@media all {
  /* Native Button element: give it .bsh-btn + a modifier and it inherits. */
  .bsh-scope .bricks-button.bsh-btn {
    border-radius: var(--bsh-radius-control);
    font-family: var(--bsh-font-text);
    font-size: var(--bsh-fs-h4);
    font-weight: 600;
    min-height: 44px;
    padding: 12px 22px;
  }
  .bsh-scope .bricks-button.bsh-btn--primary {
    color: var(--bsh-white);
  }

  /* Native Form element. */
  .bsh-scope .bricks-form.bsh-form { display: flex; flex-direction: column; gap: var(--bsh-sp-2); }
  .bsh-scope .bsh-form .form-group { display: flex; flex-direction: column; gap: 6px; margin: 0; }
  .bsh-scope .bsh-form .form-group > label,
  .bsh-scope .bsh-form .label {
    font-size: var(--bsh-fs-small);
    font-weight: 500;
    color: var(--bsh-ink);
  }
  .bsh-scope .bsh-form .required { color: var(--bsh-accent-deep); }
  .bsh-scope .bsh-form input:not([type="checkbox"]):not([type="radio"]),
  .bsh-scope .bsh-form select,
  .bsh-scope .bsh-form textarea {
    width: 100%;
    min-height: 44px;
    padding: 11px 14px;
    font-family: inherit;
    font-size: var(--bsh-fs-body);
    color: var(--bsh-ink);
    background: var(--bsh-white);
    border: 1px solid var(--bsh-line-strong);
    border-radius: var(--bsh-radius-control);
    box-shadow: none;
  }
  .bsh-scope .bsh-form input:focus,
  .bsh-scope .bsh-form select:focus,
  .bsh-scope .bsh-form textarea:focus {
    border-color: var(--bsh-accent);
    outline: none;
    box-shadow: inset 0 0 0 1px var(--bsh-accent);
  }
  .bsh-scope .bsh-form .form-group.checkbox label,
  .bsh-scope .bsh-form .bricks-form__consent {
    flex-direction: row;
    align-items: flex-start;
    gap: 10px;
    font-size: var(--bsh-fs-micro);
    line-height: 1.5;
    color: var(--bsh-muted);
    font-weight: 400;
  }
  .bsh-scope .bsh-form button[type="submit"],
  .bsh-scope .bsh-form .bricks-button {
    background: var(--bsh-accent);
    border: 1px solid var(--bsh-accent);
    color: var(--bsh-white);
    min-height: 44px;
    border-radius: var(--bsh-radius-control);
    font-weight: 600;
  }
  .bsh-scope .bsh-form button[type="submit"]:hover {
    background: var(--bsh-accent-deep);
    border-color: var(--bsh-accent-deep);
  }
  .bsh-scope .bsh-form .message { font-size: var(--bsh-fs-small); }

  /* Native Nav (nestable) inside the header. */
  .bsh-scope .bsh-header .brxe-nav-nested { gap: var(--bsh-sp-3); }
  .bsh-scope .bsh-header .brxe-dropdown .brx-dropdown-content {
    border: var(--bsh-hairline);
    border-radius: var(--bsh-radius-card);
    background: var(--bsh-white);
    padding: var(--bsh-sp-1) 0;
  }
  .bsh-scope .bsh-header .brx-dropdown-content a {
    display: block;
    padding: 8px 16px;
    font-size: var(--bsh-fs-small);
    font-weight: 500;
    color: var(--bsh-ink);
  }
  .bsh-scope .bsh-header .brx-dropdown-content a:hover { color: var(--bsh-accent-deep); }

  /* Native Accordion (nestable) used for an FAQ. */
  .bsh-scope .bsh-faq .brxe-accordion-nested,
  .bsh-scope .bsh-faq .brxe-accordion { border-top: var(--bsh-hairline); }
  .bsh-scope .bsh-faq .accordion-content-wrapper,
  .bsh-scope .bsh-faq .brxe-accordion-item { border-bottom: var(--bsh-hairline); }
  .bsh-scope .bsh-faq .accordion-title-wrapper,
  .bsh-scope .bsh-faq .accordion-title {
    padding: 18px 0;
    font-size: var(--bsh-fs-h4);
    font-weight: 600;
    color: var(--bsh-ink);
    background: none;
  }
  .bsh-scope .bsh-faq .accordion-content { padding: 0 0 20px; color: var(--bsh-ink-soft); }

  /* Native Breadcrumbs element. */
  .bsh-scope .brxe-breadcrumbs { font-size: var(--bsh-fs-small); color: var(--bsh-muted); }
  .bsh-scope .brxe-breadcrumbs .separator { color: var(--bsh-line-strong); }

  /* Bricks' default post-content wrapper on a market report or blog post. */
  .bsh-scope .brxe-post-content > .bsh-article { margin-inline: auto; }

  /* Query-loop children must not inherit a stray Bricks flex gap. */
  .bsh-scope .brxe-block.bsh-listings,
  .bsh-scope .brxe-div.bsh-listings { display: grid; }
}
