/* Focused conversion, search and mobile refinements. */
:root { scroll-behavior: smooth; }
.hero { padding: 48px 0 40px; }
.hero h1 { max-width: 760px; font-size: clamp(36px, 4.4vw, 58px); line-height: 1.04; }
.hero-copy { max-width: 650px; font-size: 16px; }
.hero-media { min-height: 390px; }
.hero-grid { column-gap: 72px; row-gap: 0; grid-template-areas: "eyebrow photo" "title photo" "copy photo" "actions photo" "search photo" "note photo"; }
.hero-grid > div:first-child { display: contents; }
.hero-grid > div:first-child > .eyebrow { grid-area: eyebrow; }
.hero-grid > div:first-child > h1 { grid-area: title; }
.hero-grid > div:first-child > .hero-copy { grid-area: copy; }
.hero-grid > div:first-child > .hero-actions { grid-area: actions; }
.hero-grid > div:first-child > .home-search { grid-area: search; }
.hero-grid > div:first-child > .hero-note { grid-area: note; }
.hero-media { grid-area: photo; }
.portrait-stamp { display: none !important; }
.portrait-frame { max-width: 470px; }
.portrait-caption { max-width: min(390px, 80%); }
.home-search { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; max-width: 710px; margin-top: 23px; padding: 16px; background: rgba(255,255,255,.82); border: 1px solid var(--line); box-shadow: 0 8px 28px rgba(24,48,39,.05); }
.home-search .field { gap: 5px; }
.home-search .field span { font-size: 10px; color: #42534a; font-weight: 650; }
.home-search input,.home-search select { min-height: 43px; width: 100%; padding: 10px 11px; border: 1px solid #c9d2cb; border-radius: 3px; background: #fff; color: var(--ink); }
.home-search input:focus,.home-search select:focus { outline: 2px solid rgba(182,141,78,.5); border-color: var(--gold); }
.home-search button { grid-column: 1/-1; min-height: 45px; }
.home-featured { padding-top: 48px; }
.featured-followup { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; margin: 22px 0 0; font-size: 13px; }
.featured-followup span { color: var(--muted); }
.page-hero { padding: 50px 0 40px; }
.page-hero h1 { max-width: 780px; font-size: clamp(38px, 4.3vw, 58px); line-height: 1.07; }
.filter-panel { grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: end; }
.filter-panel .field:first-child { grid-column: span 2; }
.filter-panel input,.filter-panel select { min-width: 0; }
.filter-actions { grid-column: 1/-1; display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.filter-hint { color: var(--muted); font-size: 11px; }
.active-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.filter-chip { min-height: 34px; padding: 6px 11px; border: 1px solid #bec9c1; border-radius: 99px; background: #f6f6f1; color: var(--forest); cursor: pointer; font: inherit; font-size: 12px; }
.filter-chip:hover { background: #e8eee8; }
.results-count { font-size: 12px; }
.listing-card[hidden] { display: none !important; }
.listing-card h3 a { color: inherit; text-decoration: none; text-underline-offset: 3px; }
.listing-card h3 a:hover,.listing-card h3 a:focus-visible { text-decoration: underline; }
.listing-facts { row-gap: 5px; }
.listing-category { font-size: 10px; letter-spacing: .06em; text-transform: uppercase; color: #24483c; background: #e8eee8; padding: 4px 7px; }
.listing-actions { align-items: stretch; }
.listing-actions .button { min-height: 42px; }
.listing-meta { margin-top: 10px; }
.listing-source,.source-note { font-size: 11px; }
.source-note { color: var(--muted); }
.listing-disclaimer { margin-top: 25px; }
.empty-state { margin: 22px 0; padding: 25px; background: #f1f2ed; border: 1px dashed #b9c7bb; color: #53635b; }
.empty-state h2 { margin: 0 0 9px; font: 400 27px/1.16 var(--serif); color: var(--forest); }
.empty-state p { font-size: 13px; }
.shortlist-panel { padding: 24px; margin: 4px 0 25px; background: #f1f2ed; border: 1px solid var(--line); }
.shortlist-panel[hidden] { display: none; }
.shortlist-header { display: flex; justify-content: space-between; align-items: start; gap: 20px; }
.shortlist-header h2 { margin: 0; font: 400 32px/1.1 var(--serif); color: var(--forest); }
.shortlist-header p { margin: 5px 0 0; font-size: 12px; color: var(--muted); }
.shortlist-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.shortlist-actions .button { min-height: 40px; }
.shortlist-items { display: grid; gap: 8px; margin-top: 17px; }
.shortlist-item { display: flex; justify-content: space-between; align-items: center; gap: 12px; background: #fff; border: 1px solid var(--line); padding: 12px 14px; }
.shortlist-item label { display: flex; align-items: start; gap: 10px; min-width: 0; cursor: pointer; }
.shortlist-item input { margin-top: 4px; accent-color: var(--forest); }
.shortlist-item a { color: var(--forest); font-weight: 650; }
.shortlist-item small { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; }
.text-button { border: 0; background: transparent; color: #365648; text-decoration: underline; cursor: pointer; font: inherit; font-size: 12px; }
.text-button:hover { color: #17382f; }
.save-listing.is-saved { color: var(--forest); border-color: var(--forest); }
.shortlist-comparison { margin-top: 15px; background: #fff; border: 1px solid var(--line); }
.shortlist-comparison[hidden] { display: none; }
.comparison-scroll { overflow-x: auto; }
.shortlist-comparison table { border-collapse: collapse; width: 100%; min-width: 540px; text-align: left; }
.shortlist-comparison caption { padding: 12px; text-align: left; color: var(--muted); font-size: 11px; }
.shortlist-comparison th,.shortlist-comparison td { border-top: 1px solid var(--line); padding: 10px 12px; vertical-align: top; font-size: 12px; }
.shortlist-comparison th { color: var(--forest); font-weight: 650; }
.property-tools { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; margin-top: 15px; }
.property-tools button { min-height: 42px; }
.share-link-details { flex-basis: 100%; margin-top: 4px; font-size: 12px; }
.share-link-details summary { cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.share-link-details label { display: block; margin-top: 10px; color: var(--muted); font-size: 11px; }
.share-link-details input { width: 100%; min-height: 42px; margin-top: 5px; padding: 9px 11px; border: 1px solid var(--line); color: var(--ink); }
.share-status { display: block; min-height: 1.3em; margin: 3px 0 0; color: #355d47; font-size: 11px; }
.property-detail-hero { padding-top: 26px; }
.property-detail-hero h1 { font-size: clamp(34px, 4vw, 52px); }
.property-photo-placeholder { min-height: 270px; display: grid; place-content: center; gap: 8px; padding: 25px; text-align: center; color: #56675d; background: linear-gradient(135deg,#eeeee8,#dfe5dc); border: 1px solid var(--line); }
.property-photo-placeholder span { font: 400 28px/1.15 var(--serif); color: var(--forest); }
.property-photo-placeholder small { font-size: 12px; }
.image-enlarge-link { display: block; cursor: zoom-in; }
.image-enlarge-link img { transition: filter .18s ease; }
.image-enlarge-link:hover img { filter: brightness(.96); }
.breadcrumbs { line-height: 1.6; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
:focus-visible { outline: 3px solid #a77a36; outline-offset: 3px; }
@media (max-width: 940px) {
  .filter-panel { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .filter-panel .field:first-child { grid-column: 1/-1; }
}
@media (max-width: 720px) {
  .hero-grid { grid-template-columns: minmax(0, 1fr); grid-template-areas: "eyebrow" "title" "photo" "copy" "actions" "search" "note"; column-gap: 0; row-gap: 0; }
  .hero-media { min-height: 275px; margin: 0 0 20px; }
  .portrait-frame { right: 30px; top: 0; width: min(260px, 74%); height: 260px; }
  .portrait-caption { left: 0; bottom: 0; max-width: min(220px, 72%); padding: 13px 15px; }
  .portrait-caption strong { font-size: 17px; }
  .hero { padding: 34px 0 38px; }
  .hero h1 { max-width: 580px; font-size: clamp(34px, 9.5vw, 46px); }
  .home-search { margin-top: 18px; }
  .home-search { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 18px; padding: 12px; }
  .home-search .field span { line-height: 1.35; }
  .page-hero { padding: 35px 0 30px; }
  .page-hero h1 { font-size: clamp(34px, 9vw, 44px); }
  .page-hero-grid { gap: 0; }
  .page-hero-grid .breadcrumbs { margin-bottom: 10px; }
  .page-hero-grid .eyebrow { margin-bottom: 10px; }
  .page-hero-grid h1 { font-size: 36px; line-height: 1.05; margin-bottom: 9px; }
  .page-hero-grid p:not(.breadcrumbs):not(.eyebrow) { font-size: 14px; line-height: 1.45; margin: 0 0 15px; }
  .page-hero-art { display: none; }
  .listing-results-section { padding-top: 15px; }
  .filter-panel { grid-template-columns: 1fr; padding: 14px; }
  .filter-panel .field:first-child { grid-column: auto; }
  .filter-actions { align-items: stretch; flex-direction: column; }
  .filter-actions button { width: 100%; }
  .shortlist-panel { padding: 16px; }
  .shortlist-header { display: block; }
  .shortlist-actions { justify-content: flex-start; margin-top: 14px; }
  .shortlist-actions .button { flex: 1 1 100%; }
  .shortlist-item { align-items: flex-start; }
  .property-tools { align-items: stretch; }
  .property-tools > button { flex: 1 1 100%; }
  .featured-followup { display: grid; }
  .property-photo-placeholder { min-height: 210px; }
}
@media (prefers-reduced-motion: reduce) {
  :root { scroll-behavior: auto; }
  *,*::before,*::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
