.listing-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px 24px; padding-bottom:36px; }
.listing-card { display:flex; flex-direction:column; color:var(--ink); text-decoration:none; min-width:0; }
.listing-photo { position:relative; display:block; aspect-ratio:auto; overflow:visible; background:none; }
.listing-card img { width:100%; aspect-ratio:16/10; object-fit:cover; display:block; }
.listing-tag { position:absolute; top:12px; left:12px; z-index:1; padding:6px 10px; background:var(--paper); color:var(--brick); font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.listing-copy { border-top:1px solid var(--ink); margin-top:14px; padding:14px 0 0; }
.listing-top { display:flex; justify-content:space-between; align-items:baseline; gap:12px; }
.listing-copy .listing-price { margin:0; font:400 36px/1.05 var(--serif); }
.listing-copy .listing-city { margin:0; font-size:11px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft); white-space:nowrap; }
.listing-copy h2, .listing-copy h3 { font:400 17px/1.4 var(--serif-text); margin:8px 0 2px; }
.listing-copy p { font-size:14px; color:var(--ink-soft); margin:0; }
.listing-card:hover { text-decoration:none; }
.listing-card:hover .listing-copy { border-color:var(--brick); }
.listing-card:hover h2, .listing-card:hover h3 { color:var(--brick); }
.listing-status { display:block; margin-bottom:10px; color:var(--brick); font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.card-arrow { display:block; margin-top:16px; color:var(--brick); font-size:13px; }
.listing-empty { padding-block:20px 40px; color:var(--ink-soft); max-width:60ch; }

.listing-hero { padding-top:24px; }
.listing-cover { aspect-ratio:21/9; }
.listing-bar { display:grid; grid-template-columns:auto 1fr auto; align-items:baseline; gap:32px; padding:24px 0; border-bottom:1px solid var(--ink); }
.listing-detail-price { font:400 48px/1 var(--serif); }
.listing-bar h1 { font:400 28px/1.2 var(--serif-text); letter-spacing:0; }
.listing-bar h1 em { font:italic 400 1em/1.2 var(--serif-text); color:var(--brick); }
.listing-bar p { font-size:14px; color:var(--ink-soft); }
.listing-body { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:64px; padding-block:36px 8px; }
.listing-story { font:400 18px/1.6 var(--serif-text); }
.listing-story > p + p { margin-top:14px; }
.listing-facts { margin:0; }
.listing-facts div { display:flex; justify-content:space-between; align-items:baseline; gap:16px; padding:12px 0; border-top:1px solid var(--hairline); }
.listing-facts dt { font-size:11px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft); }
.listing-facts dd { margin:0; font:400 17px/1.4 var(--serif-text); text-align:right; }
.listing-side .interior-actions { margin-top:24px; gap:0; }
.listing-side .interior-actions .btn { width:100%; }
.listing-side .interior-actions .phone-link, .listing-back { width:100%; margin:0; padding:14px 0; border-bottom:1px solid var(--hairline); font-size:14px; }
.listing-side .interior-actions .phone-link { margin-top:20px; justify-content:space-between; font:400 17px/1.4 var(--serif-text); }
.listing-side .interior-actions .phone-link::before { content:"Call Jack"; margin-right:auto; font:600 11px/1.4 var(--sans); letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft); }
.listing-side .listing-back a { color:var(--ink); text-decoration:none; }
.listing-side .phone-link { color:var(--brick); text-decoration:none; }
.listing-side .listing-back a:hover { color:var(--brick); }
.listing-side .phone-link:hover { color:var(--ink); }
.listing-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; padding-block:48px 24px; }
.listing-gallery img { width:100%; aspect-ratio:3/2; object-fit:cover; }

.listing-ask { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(30px,5vw,64px); padding-block:30px 20px; }
.listing-ask-copy { border-top:1px solid var(--hairline); padding-top:28px; }
.listing-ask h2 { max-width:20ch; margin-top:14px; }
.listing-ask-copy > p:not(.eyebrow) { color:var(--ink-soft); margin-top:20px; max-width:45ch; }
.listing-direct { display:flex; flex-wrap:wrap; gap:10px 24px; margin-top:24px; font-size:14px; }
.listing-form { padding:28px; border:1px solid var(--hairline); background:var(--paper-deep); }
.listing-form .field-grid { margin-top:20px; }
.listing-wide { grid-column:1/-1; }

@media(max-width:1000px) { .listing-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:900px) { .listing-ask, .listing-body { grid-template-columns:1fr; } .listing-bar { grid-template-columns:1fr; gap:8px; } .listing-cover { aspect-ratio:16/10; } }
@media(max-width:600px) { .listing-grid { grid-template-columns:1fr; } .listing-gallery { grid-template-columns:1fr; } .listing-gallery img { aspect-ratio:4/3; } .listing-form { padding:20px; } }
.listing-tours { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px 48px; padding-block:30px; border-top:1px solid var(--hairline); }
.listing-tours h2 { margin-top:14px; max-width:20ch; }
.listing-tours > div > p:not(.eyebrow) { color:var(--ink-soft); margin-top:16px; max-width:45ch; }
.listing-tours ul { list-style:none; margin:0; padding:0; align-self:end; }
.listing-tours li { border-top:1px solid var(--hairline); padding:14px 0; font-family:var(--serif-text); font-size:18px; }
.listing-tours li a { color:var(--ink); text-decoration:none; }
.listing-tours li a:hover { color:var(--brick); }
@media(max-width:850px) { .listing-tours { grid-template-columns:1fr; } }

.listing-photo.is-dim img { filter:saturate(.35) brightness(.92); }
.listing-price s { color:var(--ink-soft); font-size:18px; margin-right:4px; }
.listing-note { margin:0 0 20px; padding-left:14px; border-left:2px solid var(--brick); font:italic 400 16px/1.5 var(--serif-text); color:var(--ink); }
.listing-copy p + .listing-note { margin-top:-8px; }
.listing-extra { display:block; margin:-10px 0 20px; font-size:14px; color:var(--brick); }
.listing-extra.is-quiet { color:var(--ink-soft); }
.listing-card-wide { grid-column:1/-1; flex-direction:row; }
.listing-card-wide .listing-photo { flex:0 0 58%; }
.listing-card-wide .listing-photo img { height:100%; aspect-ratio:auto; }
.listing-card-wide .listing-copy { padding:30px; justify-content:center; }
.listing-card-wide .listing-price { font-size:32px; }
.listing-card-row { flex-direction:row; align-items:stretch; }
.listing-card-row .listing-photo { flex:0 0 132px; }
.listing-card-row .listing-photo img { height:100%; aspect-ratio:auto; }
.listing-card-row .listing-copy { padding:16px 18px; }
.listing-card-row .listing-price { font-size:20px; }
.listing-card-row .listing-copy h2 { font-size:16px; margin:4px 0 2px; }
.listing-card-row .listing-copy p { margin-bottom:10px; font-size:13px; }
.listing-card-row .card-arrow { display:none; }
.listing-card-row + .listing-card-row { margin-top:12px; }

.idea-group { padding-block:36px 8px; }
.idea-head { border-top:1px solid var(--hairline); padding-top:28px; margin-bottom:30px; }
.idea-head h2 { margin-top:14px; max-width:22ch; }
.idea-head > p:not(.eyebrow) { color:var(--ink-soft); margin-top:12px; max-width:52ch; }
.idea-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px 24px; }
.idea { display:flex; flex-direction:column; min-width:0; }
.idea:has(.listing-card-wide) { grid-column:1/-1; }
.idea:has(.listing-card-row) { grid-column:span 2; }
.idea-label { font-size:14px; font-weight:600; margin:0 0 12px; }
.idea-label span { display:block; font-weight:400; color:var(--ink-soft); margin-top:2px; }
@media(max-width:1000px) { .idea-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .idea:has(.listing-card-row) { grid-column:1/-1; } }
@media(max-width:700px) { .listing-card-wide { flex-direction:column; } .listing-card-wide .listing-photo { flex:none; } .listing-card-wide .listing-photo img { aspect-ratio:16/10; } .listing-card-wide .listing-copy { padding:21px; } }
@media(max-width:600px) { .idea-grid { grid-template-columns:1fr; } .listing-card-row .listing-photo { flex-basis:104px; } }
.sold-list { padding-block:20px 48px; border-top:1px solid var(--hairline); }
.sold-list h2 { font:400 clamp(28px,4vw,40px)/1.1 var(--serif); margin-bottom:8px; }
.sales-more { padding-bottom:36px; }
.sales-more > summary { display:inline-block; cursor:pointer; border-bottom:1px solid var(--hairline); padding-bottom:2px; }
.sales-more > summary:hover { border-color:var(--ink); }
.sales-more[open] > summary { display:none; }
.sold-list details { border-top:1px solid var(--hairline); }
.sold-list details:last-child { border-bottom:1px solid var(--hairline); }
.sold-list summary { display:flex; justify-content:space-between; align-items:center; min-height:56px; cursor:pointer; font:600 11px/1.4 var(--sans); letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft); }
.sold-list summary span { font:400 14px/1.4 var(--sans); letter-spacing:0; text-transform:none; }
.sold-list summary span::after { content:''; display:inline-block; width:8px; height:8px; margin-left:14px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:translateY(-3px) rotate(45deg); }
.sold-list details[open] summary span::after { transform:translateY(1px) rotate(-135deg); }
.sales-more > summary::-webkit-details-marker, .sold-list summary::-webkit-details-marker { display:none; }
.sold-list ul { list-style:none; margin:0; padding:0; }
.sold-list li { display:grid; grid-template-columns:minmax(0,1fr) 120px 120px; gap:16px; align-items:baseline; padding:14px 0; border-top:1px solid var(--hairline); }
.sold-address { font-family:var(--serif-text); font-size:18px; }
.sold-address em { display:block; margin-top:2px; font:normal 400 13px/1.4 var(--sans); color:var(--ink-soft); }
.sold-price { font-weight:600; text-align:right; }
.sold-date { color:var(--ink-soft); font-size:14px; text-align:right; }
@media(max-width:600px) { .sold-list li { grid-template-columns:minmax(0,1fr) auto; } .sold-date { grid-column:1/-1; text-align:left; margin-top:-8px; } }
