/* Willow CRM — listing grid + lead form styles.
   Uses the theme's design tokens (custom properties) so it inherits the
   brand automatically. Falls back gracefully if the theme is absent. */

/* ---- Listing grid ---- */
.willow-listings-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-md, 2.25rem);
}
@media (max-width: 900px) { .willow-listings-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .willow-listings-grid { grid-template-columns: 1fr; } }

.willow-listing-card { display: block; color: inherit; }
.willow-listing-media {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: rgba(40,32,24,0.06);
  margin-bottom: var(--space-sm, 1.25rem);
}
.willow-listing-media img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform var(--dur-mid, 0.8s) var(--ease-editorial, cubic-bezier(0.16,1,0.3,1));
}
.willow-listing-card:hover .willow-listing-media img { transform: scale(1.04); }
.willow-listing-address {
  font-family: var(--font-banner, serif);
  font-size: var(--fs-h3, 1.25rem);
  margin-bottom: var(--space-3xs, 0.25rem);
}
.willow-listing-price { font-weight: 500; }
.willow-listing-specs {
  font-size: var(--fs-small, 0.8125rem);
  letter-spacing: 0.06em;
  opacity: 0.7;
  margin-top: var(--space-3xs, 0.25rem);
}
.willow-listings-empty { opacity: 0.6; }

/* ---- Lead forms ---- */
.willow-form { display: flex; flex-direction: column; gap: var(--space-sm, 1.25rem); max-width: 620px; }
.willow-form-heading {
  font-family: var(--font-banner, serif);
  font-size: var(--fs-h2, 2rem);
  margin-bottom: var(--space-2xs, 0.5rem);
}
.willow-form-row { display: flex; flex-direction: column; gap: var(--space-2xs, 0.5rem); }
.willow-form-two { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-sm, 1.25rem); }
@media (max-width: 560px) { .willow-form-two { grid-template-columns: 1fr; } }
.willow-form label { display: flex; flex-direction: column; gap: var(--space-3xs, 0.25rem); }
.willow-form label > span {
  font-size: var(--fs-micro, 0.6875rem);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  opacity: 0.6;
}
.willow-form input,
.willow-form textarea {
  font: inherit;
  color: inherit;
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--color-line, rgba(40,32,24,0.14));
  padding: 0.6em 0;
  letter-spacing: 0.04em;
}
.willow-form input:focus,
.willow-form textarea:focus { outline: none; border-color: var(--color-ink, #282018); }
.willow-form-submit { align-self: flex-start; }
.willow-form-status { font-size: var(--fs-small, 0.8125rem); opacity: 0.8; min-height: 1.2em; }
