/* Jenn MJ Listings — styled to sit inside the existing site design */
.jmjl-grid {
  display: grid;
  gap: 2rem;
  grid-template-columns: 1fr;
}
@media (min-width: 640px) { .jmjl-cols-2 .jmjl-card, .jmjl-cols-3 .jmjl-card, .jmjl-cols-4 .jmjl-card { height: 100%; }
  .jmjl-cols-2, .jmjl-cols-3, .jmjl-cols-4 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) {
  .jmjl-cols-3 { grid-template-columns: repeat(3, 1fr); }
  .jmjl-cols-4 { grid-template-columns: repeat(4, 1fr); }
}

.jmjl-card { display: flex; flex-direction: column; background: transparent; }
.jmjl-media {
  position: relative; display: block; overflow: hidden;
  aspect-ratio: 4 / 3; background: #ece7de; border-radius: 2px;
}
.jmjl-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s ease; }
.jmjl-card:hover .jmjl-media img { transform: scale(1.04); }
.jmjl-noimg { display: block; width: 100%; height: 100%; background: linear-gradient(135deg, #ece7de, #ddd6c8); }

.jmjl-badge {
  position: absolute; top: .875rem; left: .875rem;
  background: #0f0f0f; color: #fff;
  font-family: inherit; font-size: .6875rem; font-weight: 600;
  letter-spacing: .12em; padding: .375rem .75rem; border-radius: 2px;
}
.jmjl-status-sold .jmjl-badge { background: #a88559; }

.jmjl-body { padding-top: 1.25rem; display: flex; flex-direction: column; flex: 1; }
.jmjl-price { margin: 0; font-size: 1.625rem; line-height: 1.2; font-weight: 400; color: #a88559; }
.jmjl-soldnote { font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: #8a8a8a; margin-left: .5rem; }
.jmjl-address { margin: .625rem 0 0; font-size: 1.0625rem; font-weight: 600; line-height: 1.4; color: #111; }
.jmjl-city { margin: .375rem 0 0; font-size: .9375rem; color: #6b6b6b; }

.jmjl-specs {
  list-style: none; margin: 1rem 0 0; padding: 0 0 1.25rem;
  display: flex; flex-wrap: wrap; gap: 1.25rem;
  border-bottom: 1px solid #e3e0d9;
}
.jmjl-specs li { display: inline-flex; align-items: center; gap: .5rem; font-size: .875rem; color: #4a4a4a; }
.jmjl-specs svg { width: 1.125rem; height: 1.125rem; color: #a88559; flex-shrink: 0; }

.jmjl-btn {
  margin-top: 1.25rem; align-self: flex-start;
  display: inline-block; background: #0f0f0f; color: #fff !important;
  padding: .875rem 1.75rem; font-size: .9375rem; text-decoration: none !important;
  border-radius: 2px; transition: background .2s ease;
}
.jmjl-btn:hover, .jmjl-btn:focus { background: #a88559; color: #fff !important; }

.jmjl-empty { font-size: 1rem; color: #6b6b6b; }

/* Single property page */
.jmjl-single { max-width: 1120px; margin: 0 auto; padding: 3rem 1.25rem 4rem; }
.jmjl-single-head { display: flex; flex-wrap: wrap; gap: 1rem; align-items: flex-end; justify-content: space-between; margin-bottom: 1.75rem; }
.jmjl-single h1 { margin: 0; font-size: 2rem; line-height: 1.25; }
.jmjl-single .jmjl-price { font-size: 2rem; }
.jmjl-hero img { width: 100%; height: auto; border-radius: 2px; display: block; }
.jmjl-gallery { display: grid; grid-template-columns: repeat(2, 1fr); gap: .75rem; margin-top: .75rem; }
@media (min-width: 700px) { .jmjl-gallery { grid-template-columns: repeat(4, 1fr); } }
.jmjl-gallery img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 2px; display: block; }
.jmjl-facts { list-style: none; margin: 2rem 0 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 700px) { .jmjl-facts { grid-template-columns: repeat(4, 1fr); } }
.jmjl-facts li { border: 1px solid #e3e0d9; border-radius: 2px; padding: 1rem 1.125rem; }
.jmjl-facts strong { display: block; font-size: 1.125rem; font-weight: 600; }
.jmjl-facts span { font-size: .8125rem; letter-spacing: .08em; text-transform: uppercase; color: #8a8a8a; }
.jmjl-desc { margin-top: 2rem; font-size: 1.0625rem; line-height: 1.8; color: #333; }
.jmjl-cta { margin-top: 2.5rem; padding: 2rem; background: #f7f5f0; border-radius: 2px; }
.jmjl-cta h2 { margin: 0 0 .5rem; font-size: 1.5rem; }
.jmjl-cta p { margin: 0 0 1.25rem; color: #4a4a4a; }
.jmjl-cta-row { display: flex; flex-wrap: wrap; gap: .75rem; }
.jmjl-btn-outline {
  display: inline-block; padding: .875rem 1.75rem; border: 1px solid #0f0f0f;
  color: #0f0f0f !important; text-decoration: none !important; border-radius: 2px;
}
.jmjl-btn-outline:hover { background: #0f0f0f; color: #fff !important; }
.jmjl-back { display: inline-block; margin-bottom: 1.5rem; font-size: .9375rem; color: #6b6b6b; }
.jmjl-city-lg { font-size: 1.125rem; margin: 0; }
.jmjl-status-line { margin: .375rem 0 0; font-size: .8125rem; letter-spacing: .12em; text-transform: uppercase; color: #a88559; }
.jmjl-label { margin: 0 0 .375rem; font-size: .9375rem; color: #a88559; }
