/* Buttons */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: var(--radius-sm);
  font-weight: 600;
  font-size: var(--text-sm);
  padding: 10px 18px;
  transition: background 0.15s, transform 0.15s, box-shadow 0.15s;
  white-space: nowrap;
}

.btn:active { transform: translateY(0); }

.btn-primary {
  background: var(--avocado);
  color: var(--cream);
  box-shadow: 0 2px 8px rgba(15, 45, 61, 0.22);
}

.btn-primary:hover {
  background: var(--avocado-dark);
  transform: translateY(-1px);
}

.btn-cta {
  background: #0F2D3D;
  background: var(--cta-accent);
  color: var(--white);
  font-weight: 700;
  box-shadow: 0 2px 10px var(--cta-accent-glow);
  border: 1px solid rgba(255, 255, 255, 0.12);
}

.btn-cta:hover {
  background: var(--cta-accent-dark);
  color: var(--white);
  transform: translateY(-1px);
  box-shadow: 0 4px 18px var(--cta-accent-glow);
}

.btn-secondary {
  background: var(--white);
  color: var(--green);
  border: 1.5px solid var(--grey-mist);
}

.btn-secondary:hover {
  border-color: var(--green);
  background: var(--green-wash);
}

.btn-green {
  background: var(--green);
  color: var(--white);
}

.btn-green:hover {
  background: var(--green-dark);
}

.btn-lg {
  padding: 14px 24px;
  font-size: var(--text-base);
  min-height: 48px;
}

/* Hero + search (single block, flex gap, no overlap) */
.hero-block {
  background: var(--white);
  border-bottom: none;
  padding: var(--space-3) 0 var(--space-4);
}

@media (min-width: 768px) {
  .hero-block {
    padding: var(--space-5) 0 var(--space-6);
  }
}

.hero-block .container {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

@media (min-width: 768px) {
  .hero-block .container {
    gap: var(--space-5);
  }
}

.hero-top {
  display: grid;
  gap: var(--space-3);
  align-items: start;
  overflow: visible;
}

@media (max-width: 899px) {
  .hero-top {
    grid-template-columns: minmax(0, 1fr) clamp(198px, 57vw, 242px);
    column-gap: var(--space-3);
    row-gap: var(--space-2);
  }

  .hero-copy {
    display: contents;
  }

  .hero-eyebrow {
    grid-column: 1 / -1;
    grid-row: 1;
  }

  .hero-copy h1 {
    grid-column: 1;
    grid-row: 2;
    padding-right: var(--space-1);
  }

  .hero-tagline {
    grid-column: 1;
    grid-row: 3;
    padding-right: var(--space-1);
  }

  .hero-benefits {
    grid-column: 1 / -1;
    grid-row: 4;
  }

  .hero-visual {
    grid-column: 2;
    grid-row: 2 / 4;
    align-self: center;
  }
}

@media (min-width: 900px) {
  .hero-top {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: clamp(1.5rem, 3vw, 2.5rem);
    align-items: center;
  }
}

.hero-copy {
  max-width: 34rem;
}

.hero-copy h1 {
  font-family: var(--font-display);
  font-size: clamp(1.625rem, 7vw, 2.75rem);
  font-weight: 700;
  color: var(--green);
  letter-spacing: -0.03em;
  line-height: 1.08;
  margin-bottom: var(--space-2);
}

@media (min-width: 768px) {
  .hero-copy h1 {
    margin-bottom: var(--space-3);
  }
}

.hero-eyebrow {
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--coral);
  margin: 0 0 var(--space-2);
}

@media (min-width: 768px) {
  .hero-eyebrow {
    font-size: var(--text-base);
    margin-bottom: var(--space-3);
  }
}

.hero-tagline {
  color: var(--ink-soft);
  font-size: var(--text-base);
  font-weight: 500;
  line-height: 1.45;
  max-width: none;
  margin: 0;
  padding-bottom: 0;
}

@media (min-width: 768px) {
  .hero-tagline {
    font-size: var(--text-lg);
    line-height: 1.5;
    margin-bottom: var(--space-5);
  }
}

.hero-benefits {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-3);
  list-style: none;
  margin: 0;
  padding: 0;
}

@media (min-width: 768px) {
  .hero-benefits {
    gap: var(--space-4) var(--space-5);
  }
}

.hero-benefit {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-1);
  text-align: center;
  width: 64px;
}

@media (min-width: 768px) {
  .hero-benefit {
    gap: var(--space-2);
    width: 72px;
  }
}

.hero-benefit-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  color: var(--deep-ocean);
}

@media (min-width: 768px) {
  .hero-benefit-icon {
    width: 56px;
    height: 56px;
  }
}

.hero-benefit-icon svg {
  display: block;
  width: 18px;
  height: 18px;
}

@media (min-width: 768px) {
  .hero-benefit-icon svg {
    width: 22px;
    height: 22px;
  }
}

.hero-benefit-icon--grey {
  background: #E8ECEF;
}

.hero-benefit-icon--peach {
  background: #F0D4C2;
}

.hero-benefit-icon--cream {
  background: #F5EBD4;
}

.hero-benefit-label {
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--slate);
  line-height: 1.25;
}

@media (max-width: 899px) {
  .hero-benefits {
    justify-content: space-between;
    flex-wrap: nowrap;
    gap: var(--space-1);
  }

  .hero-benefit {
    flex: 1 1 0;
    min-width: 0;
    width: auto;
  }

  .hero-benefit-label {
    font-size: 0.625rem;
  }
}

.hero-promo {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3) var(--space-4);
  padding: var(--space-4) var(--space-5);
  background: color-mix(in srgb, var(--cool-mint) 28%, var(--white));
  border: 1px solid color-mix(in srgb, var(--cool-mint) 55%, transparent);
  border-radius: var(--radius-lg);
}

.hero-promo-icon {
  display: flex;
  color: var(--green);
  flex-shrink: 0;
}

.hero-promo-text {
  flex: 1 1 16rem;
  margin: 0;
  font-size: var(--text-sm);
  font-weight: 500;
  color: var(--green);
  line-height: 1.45;
}

.hero-promo-link {
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--green);
  white-space: nowrap;
}

.hero-promo-link:hover {
  color: var(--coral);
}

/* Search bar */
.search-panel {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: var(--space-3);
  box-shadow: 0 10px 28px rgba(15, 45, 61, 0.1);
  margin: 0;
  display: block;
  flex-shrink: 0;
}

@media (min-width: 768px) {
  .search-panel { padding: var(--space-5); }
}

.search-form {
  display: grid;
  gap: var(--space-3);
}

@media (min-width: 768px) {
  .search-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: end;
    gap: var(--space-4);
  }

  .search-form .search-submit {
    grid-column: 1 / -1;
    justify-self: start;
    width: auto;
  }
}

@media (min-width: 1280px) {
  .search-form {
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) auto;
    gap: var(--space-4);
  }

  .search-form .search-submit {
    grid-column: auto;
    justify-self: end;
  }
}

.search-form .field {
  min-width: 0;
}

.field-input-wrap {
  display: grid;
  align-items: center;
}

.field-input-icon {
  grid-area: 1 / 1;
  justify-self: start;
  margin-left: 14px;
  display: flex;
  color: var(--slate);
  pointer-events: none;
  z-index: 1;
}

.field-input-wrap select,
.field-input-wrap input {
  grid-area: 1 / 1;
  width: 100%;
  min-width: 0;
}

.field-input-wrap input {
  padding-left: 42px;
}

.search-submit {
  min-height: 48px;
  padding-inline: var(--space-5);
  border-radius: var(--radius-md);
}

.field label {
  display: block;
  font-size: var(--text-xs);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--text-muted);
  margin-bottom: var(--space-2);
}

.field input {
  width: 100%;
  padding: 12px 14px;
  border: 1.5px solid var(--grey-mist);
  border-radius: var(--radius-sm);
  background: var(--cream);
  font-size: var(--text-base);
  min-height: 48px;
  transition: border-color 0.15s;
}

.field select {
  width: 100%;
  min-width: 0;
  padding-block: 12px;
  padding-inline: 14px 2.75rem;
  border: 1.5px solid var(--grey-mist);
  border-radius: var(--radius-sm);
  background-color: var(--cream);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235A6A75' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 16px;
  font-size: var(--text-base);
  min-height: 48px;
  transition: border-color 0.15s;
  appearance: none;
  -webkit-appearance: none;
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap;
}

.field .field-input-wrap select {
  padding-inline-start: 46px;
}

.field select:focus,
.field input:focus {
  outline: none;
  border-color: var(--green);
  box-shadow: 0 0 0 3px rgba(15, 45, 61, 0.14);
}

.search-submit {
  width: 100%;
  min-height: 48px;
}

@media (min-width: 768px) {
  .search-submit { width: auto; min-width: 120px; }
}

/* Browse layout: types sidebar + listings */
.browse-layout {
  display: grid;
  gap: var(--space-6);
  align-items: start;
}

@media (min-width: 768px) {
  .browse-layout {
    grid-template-columns: 220px 1fr;
    gap: var(--space-8);
  }
}

@media (min-width: 900px) {
  .browse-layout {
    grid-template-columns: 240px 1fr;
  }
}

/* Mobile: horizontal type strip */
.type-sidebar {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: var(--space-4);
}

.type-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.type-list li {
  margin: 0;
  padding: 0;
}

@media (max-width: 767px) {
  .type-sidebar {
    padding: var(--space-3) var(--space-4);
  }

  .type-sidebar-note { display: none; }

  .type-list {
    display: flex;
    gap: var(--space-2);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
    padding-bottom: var(--space-1);
    margin: 0 calc(-1 * var(--space-1));
    padding-left: var(--space-1);
    padding-right: var(--space-1);
  }

  .type-list li {
    flex: 0 0 auto;
    scroll-snap-align: start;
  }

  .type-item {
    flex-direction: column;
    gap: var(--space-1);
    min-width: 88px;
    padding: var(--space-3) var(--space-2);
    text-align: center;
  }

  .type-item .type-label {
    font-size: var(--text-xs);
  }
}

.type-sidebar-title {
  font-family: var(--font-display);
  font-size: var(--text-base);
  font-weight: 700;
  color: var(--green);
  margin-bottom: var(--space-1);
}

.type-sidebar-note {
  font-size: var(--text-xs);
  color: var(--text-muted);
  margin-bottom: var(--space-4);
}

.type-group-title {
  font-family: var(--font-display);
  font-size: var(--text-base);
  font-weight: 700;
  color: var(--green);
  margin: var(--space-5) 0 var(--space-1);
  padding-top: var(--space-4);
  border-top: 1px solid var(--border);
}

.type-group-note {
  margin-bottom: var(--space-3);
}

.type-list-iso {
  margin-bottom: 0;
}

@media (min-width: 768px) {
  .type-sidebar {
    position: sticky;
    top: calc(var(--nav-h) + var(--space-4));
  }

  .type-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
  }
}

.type-item {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  width: 100%;
  padding: 10px 12px;
  min-height: 44px;
  border-radius: var(--radius-sm);
  background: transparent;
  border: 1.5px solid transparent;
  text-align: left;
  cursor: pointer;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  transition: background 0.15s, border-color 0.15s;
  position: relative;
  z-index: 1;
}

.type-item .type-icon,
.type-item .type-label {
  pointer-events: none;
}

.type-item:hover,
.type-item:focus-visible {
  background: var(--green-wash);
}

.type-item.is-active {
  background: var(--green-wash);
  border-color: var(--sage);
}

.type-icon {
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: var(--green-wash);
  color: var(--green);
}

.type-item.is-active .type-icon {
  background: var(--avocado);
  color: var(--cream);
}

.type-label {
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--ink-soft);
}

.type-item.is-active .type-label {
  color: var(--green);
}

.browse-main {
  min-width: 0;
}

.browse-filters-wrap {
  margin-bottom: var(--space-5);
}

.browse-filters {
  display: grid;
  gap: var(--space-3);
  padding: var(--space-4);
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  box-shadow: 0 4px 12px rgba(15, 45, 61, 0.06);
}

@media (min-width: 768px) {
  .browse-filters {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-4);
    padding: var(--space-5);
  }
}

@media (min-width: 1024px) {
  .browse-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: end;
    gap: var(--space-4);
  }

  .browse-filters-actions {
    grid-column: 1 / -1;
    flex-direction: row;
    align-items: center;
  }
}

@media (min-width: 1280px) {
  .browse-filters {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) auto;
  }

  .browse-filters-actions {
    grid-column: auto;
    flex-direction: column;
    align-items: stretch;
  }
}

.browse-filters .field {
  min-width: 0;
}

.browse-filters-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}

.browse-filters-actions .btn {
  min-height: 48px;
}

.browse-meta {
  color: var(--text-muted);
  font-size: var(--text-sm);
  margin-top: var(--space-2);
}

.browse-cta {
  text-align: center;
  margin-top: var(--space-8);
}

.browse-cta p {
  margin-top: var(--space-3);
  font-size: var(--text-sm);
  color: var(--text-muted);
}

.listing-empty {
  padding: var(--space-4) 0 var(--space-6);
}

/* Legacy category tiles, kept for browse view later */
.category-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-3);
}

@media (min-width: 640px) {
  .category-grid {
    grid-template-columns: repeat(6, 1fr);
    gap: var(--space-4);
  }
}

.category-tile {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-4) var(--space-2);
  background: var(--white);
  border: 1.5px solid var(--border);
  border-radius: var(--radius-md);
  text-align: center;
  transition: border-color 0.15s, box-shadow 0.15s, transform 0.15s;
  min-height: 100px;
}

.category-tile:hover,
.category-tile:focus-visible {
  border-color: var(--green);
  box-shadow: var(--shadow-sm);
  transform: translateY(-2px);
}

.category-tile.is-active {
  border-color: var(--green);
  background: var(--green-wash);
}

.category-icon {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: var(--green-wash);
  color: var(--green);
}

.category-tile span {
  font-size: var(--text-xs);
  font-weight: 600;
  color: var(--ink-soft);
  line-height: 1.25;
}

@media (min-width: 640px) {
  .category-tile span { font-size: var(--text-sm); }
}

/* Listing cards */
.listing-grid {
  display: grid;
  gap: var(--space-4);
  grid-template-columns: 1fr;
}

@media (min-width: 540px) {
  .listing-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 900px) {
  .listing-grid { grid-template-columns: repeat(3, 1fr); }
}

.listing-card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  overflow: hidden;
  transition: box-shadow 0.15s, transform 0.15s;
  cursor: pointer;
}

.listing-card:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}

.listing-card:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.listing-photo {
  position: relative;
  aspect-ratio: 4 / 3;
  background: var(--grey-soft);
  overflow: hidden;
}

.listing-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.listing-badges {
  position: absolute;
  top: var(--space-3);
  left: var(--space-3);
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}

.badge {
  font-size: var(--text-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 4px 8px;
  border-radius: 4px;
}

.badge-new {
  background: var(--cool-mint);
  color: var(--deep-ocean);
}

.badge-featured {
  background: var(--coral);
  color: var(--white);
}

.badge-seeking {
  background: var(--deep-ocean);
  color: var(--cream);
}

.browse-empty {
  text-align: center;
  padding: var(--space-10) var(--space-6);
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
}

.browse-empty-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 88px;
  height: 88px;
  margin: 0 auto var(--space-4);
  border-radius: var(--radius-full);
  background: linear-gradient(145deg, var(--green-wash), var(--cool-mint));
  color: var(--green);
}

.browse-empty-title {
  font-size: var(--text-xl);
  font-weight: 700;
  color: var(--green);
  margin-bottom: var(--space-2);
}

.browse-empty-lead {
  max-width: 36ch;
  margin: 0 auto var(--space-6);
  color: var(--text-muted);
  font-size: var(--text-sm);
  line-height: 1.6;
}

.listing-photo-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  background: linear-gradient(145deg, var(--green-wash), var(--cool-mint));
  color: var(--green);
}

.listing-photo-placeholder-label {
  font-size: var(--text-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--green);
  opacity: 0.85;
}

.detail-photo-placeholder {
  min-height: 280px;
}

.listing-card.is-iso {
  border-color: var(--sage);
}

.listing-card.is-iso .listing-photo {
  background: var(--green-wash);
}

.listing-body {
  padding: var(--space-4);
}

.listing-price {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: 700;
  color: var(--green);
  letter-spacing: -0.02em;
}

.listing-price span {
  font-family: var(--font-sans);
  font-size: var(--text-sm);
  font-weight: 500;
  color: var(--text-muted);
}

.listing-title {
  font-size: var(--text-base);
  font-weight: 600;
  color: var(--ink);
  margin-top: var(--space-1);
  line-height: 1.35;
}

.listing-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-top: var(--space-2);
  font-size: var(--text-sm);
}

.card-report-btn {
  display: inline-block;
  margin-top: var(--space-3);
  padding: 0;
  border: none;
  background: none;
  font-size: var(--text-xs);
  font-weight: 600;
  color: var(--text-muted);
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: pointer;
}

.card-report-btn:hover,
.card-report-btn:focus-visible {
  color: var(--green);
}

.place-card .card-report-btn {
  margin-top: var(--space-4);
}

body.report-modal-open {
  overflow: hidden;
}

.report-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-4);
}

.report-modal[hidden] {
  display: none;
}

.report-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 45, 61, 0.45);
}

.report-modal-dialog {
  position: relative;
  width: 100%;
  max-width: 480px;
  max-height: calc(100vh - var(--space-8));
  overflow-y: auto;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: var(--space-6);
  box-shadow: var(--shadow-md);
}

.report-modal-dialog h2 {
  font-size: var(--text-xl);
  color: var(--green);
  margin: 0 0 var(--space-2);
}

.report-modal-target {
  font-size: var(--text-sm);
  color: var(--text-muted);
  margin: 0 0 var(--space-5);
  line-height: 1.5;
}

.report-modal-close {
  position: absolute;
  top: var(--space-3);
  right: var(--space-3);
  width: 36px;
  height: 36px;
  border: none;
  background: transparent;
  font-size: 1.5rem;
  line-height: 1;
  color: var(--text-muted);
  cursor: pointer;
  border-radius: var(--radius-sm);
}

.report-modal-close:hover,
.report-modal-close:focus-visible {
  background: var(--green-wash);
  color: var(--green);
}

.report-modal-actions {
  display: flex;
  gap: var(--space-3);
  justify-content: flex-end;
  margin-top: var(--space-4);
}

.field-hint {
  font-size: var(--text-xs);
  color: var(--text-muted);
  margin: var(--space-1) 0 0;
}
  color: var(--text-muted);
}

.listing-meta svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  opacity: 0.7;
}

.meta-item {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

/* CTA band */
.cta-band {
  background: var(--avocado);
  color: var(--cream);
  border-radius: var(--radius-lg);
  padding: var(--space-8) var(--space-6);
  text-align: center;
}

.cta-band h2 {
  font-family: var(--font-display);
  font-size: var(--text-2xl);
  font-weight: 700;
  margin-bottom: var(--space-2);
}

.cta-band p {
  opacity: 0.9;
  font-size: var(--text-base);
  max-width: 40ch;
  margin: 0 auto var(--space-6);
}

.cta-band .btn-cta {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
}

.cta-band-partner {
  background: var(--fog-gray);
  color: var(--deep-ocean);
  border: 1px solid var(--border);
}

.cta-band-partner p {
  opacity: 1;
  color: var(--slate);
}

/* Alert signup */
.alert-panel {
  background: var(--green-wash);
  border: 1px solid rgba(15, 45, 61, 0.12);
  border-radius: var(--radius-lg);
  padding: var(--space-8) var(--space-6);
}

.alert-panel h2 {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: 700;
  color: var(--green);
  margin-bottom: var(--space-2);
}

.alert-panel > p {
  color: var(--ink-soft);
  font-size: var(--text-sm);
  margin-bottom: var(--space-6);
  max-width: 48ch;
}

.alert-form {
  display: grid;
  gap: var(--space-3);
}

@media (min-width: 640px) {
  .alert-form {
    grid-template-columns: 1fr 1fr 1.5fr auto;
    align-items: end;
  }
}

.alert-form .field select,
.alert-form .field input {
  background: var(--white);
}

.form-success {
  display: none;
  padding: var(--space-4);
  background: var(--white);
  border-radius: var(--radius-sm);
  color: var(--green);
  font-weight: 500;
  font-size: var(--text-sm);
}

.form-success.visible { display: block; }

.honey-field {
  position: absolute;
  left: -9999px;
  opacity: 0;
  height: 0;
  width: 0;
  overflow: hidden;
}

/* Form pages (sign in, signup, post listing) */
.form-page {
  padding: var(--space-8) 0 var(--space-12);
  background: var(--bg-alt);
  min-height: 60vh;
}

.form-page-inner {
  max-width: 520px;
}

.form-page-wide {
  max-width: 960px;
}

.form-back {
  display: inline-block;
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--green);
  margin-bottom: var(--space-4);
}

.form-back:hover {
  text-decoration: underline;
}

.form-card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: var(--space-8) var(--space-6);
  box-shadow: var(--shadow-md);
}

.form-card h1 {
  font-size: var(--text-2xl);
  font-weight: 700;
  color: var(--green);
  margin-bottom: var(--space-2);
}

.form-lead {
  color: var(--text-muted);
  font-size: var(--text-sm);
  margin-bottom: var(--space-6);
}

.form-foot {
  margin-top: var(--space-6);
  font-size: var(--text-sm);
  color: var(--text-muted);
  text-align: center;
}

.form-foot a {
  font-weight: 600;
  color: var(--green);
}

.link-btn {
  background: none;
  border: 0;
  padding: 0;
  font: inherit;
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--green);
  cursor: pointer;
  text-decoration: underline;
}

.form-note {
  font-size: var(--text-sm);
  color: var(--text-muted);
  margin-bottom: var(--space-4);
  padding: var(--space-3);
  background: var(--green-wash);
  border-radius: var(--radius-sm);
}

.form-note a {
  font-weight: 600;
  color: var(--green);
}

.form-error {
  color: #9E4A3A;
  font-size: var(--text-sm);
  font-weight: 500;
  margin: var(--space-3) 0;
}

.form-section {
  border: none;
  margin: 0 0 var(--space-6);
  padding: 0;
}

.form-section legend {
  font-weight: 700;
  font-size: var(--text-base);
  color: var(--green);
  margin-bottom: var(--space-4);
  padding: 0;
}

.form-grid {
  display: grid;
  gap: var(--space-4);
}

.form-grid.cols-2 {
  grid-template-columns: 1fr;
}

@media (min-width: 560px) {
  .form-grid.cols-2 {
    grid-template-columns: 1fr 1fr;
  }
}

.field-span-2 {
  grid-column: 1 / -1;
}

.field textarea {
  width: 100%;
  padding: 12px 14px;
  border: 1.5px solid var(--grey-mist);
  border-radius: var(--radius-sm);
  background: var(--cream);
  font-size: var(--text-base);
  min-height: 120px;
  resize: vertical;
  font-family: inherit;
}

.field textarea:focus {
  outline: none;
  border-color: var(--green);
  box-shadow: 0 0 0 3px rgba(15, 45, 61, 0.14);
}

.check-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-3);
}

@media (min-width: 560px) {
  .check-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.check-item {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--text-sm);
  color: var(--ink-soft);
  cursor: pointer;
}

.check-item input {
  width: 18px;
  height: 18px;
  accent-color: var(--green);
  flex-shrink: 0;
}

.legal-agree-field {
  margin: var(--space-5) 0 var(--space-4);
}

.legal-agree-item {
  align-items: flex-start;
  line-height: 1.5;
}

.legal-agree-item a {
  color: var(--green);
  font-weight: 600;
}

.legal-agree-item a:hover {
  text-decoration: underline;
}

.check-field {
  display: flex;
  align-items: flex-end;
  padding-bottom: 4px;
}

.form-success:not(.visible) {
  display: none;
}

.form-success {
  display: block;
  padding: var(--space-4);
  background: var(--green-wash);
  border-radius: var(--radius-sm);
  color: var(--green);
  font-weight: 500;
  font-size: var(--text-sm);
  margin-bottom: var(--space-4);
}

/* Business partner signup */
.partner-card h1 {
  font-size: var(--text-2xl);
}

.partner-eyebrow {
  font-size: var(--text-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--coral);
  margin-bottom: var(--space-2);
}

.partner-price-box {
  background: var(--green-wash);
  border-radius: var(--radius-md);
  padding: var(--space-5);
  margin: var(--space-6) 0;
  text-align: center;
}

.partner-price {
  font-size: var(--text-3xl);
  font-weight: 700;
  color: var(--green);
  line-height: 1.1;
}

.partner-price span {
  font-size: var(--text-lg);
  font-weight: 600;
  color: var(--slate);
}

.partner-price-note {
  margin-top: var(--space-2);
  font-size: var(--text-sm);
  color: var(--text-muted);
}

.partner-membership-terms {
  margin: var(--space-5) 0 var(--space-6);
  padding: var(--space-4) var(--space-5);
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
}

.partner-terms-heading {
  font-size: var(--text-sm);
  font-weight: 700;
  color: var(--green);
  margin: 0 0 var(--space-3);
}

.partner-terms-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--space-2);
}

.partner-terms-list li {
  position: relative;
  padding-left: 1rem;
  font-size: var(--text-xs);
  color: var(--text-muted);
  line-height: 1.55;
}

.partner-terms-list li::before {
  content: "•";
  position: absolute;
  left: 0;
  color: var(--seafoam);
  font-weight: 700;
}

.partner-subhead {
  font-size: var(--text-base);
  font-weight: 700;
  color: var(--green);
  margin: var(--space-6) 0 var(--space-3);
}

.partner-categories {
  display: grid;
  gap: var(--space-3);
  grid-template-columns: 1fr;
  align-items: start;
}

@media (min-width: 640px) {
  .partner-categories {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 960px) {
  .partner-categories {
    grid-template-columns: repeat(3, 1fr);
  }
}

.partner-category-group {
  background: var(--green-wash);
  border: 1px solid rgba(15, 45, 61, 0.08);
  border-radius: var(--radius-md);
  overflow: hidden;
}

.partner-category-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  width: 100%;
  padding: var(--space-4);
  border: none;
  background: transparent;
  cursor: pointer;
  text-align: left;
  font: inherit;
  color: var(--green);
  transition: background 0.15s;
}

.partner-category-trigger:hover,
.partner-category-trigger:focus-visible {
  background: rgba(255, 255, 255, 0.55);
  outline: none;
}

.partner-category-label {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  min-width: 0;
  font-size: var(--text-sm);
  font-weight: 700;
}

.partner-category-title-text {
  line-height: 1.3;
}

.partner-category-meta {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-shrink: 0;
}

.partner-category-count {
  font-size: var(--text-xs);
  font-weight: 600;
  color: var(--text-muted);
  background: var(--white);
  border-radius: 999px;
  min-width: 1.5rem;
  height: 1.5rem;
  padding: 0 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.partner-category-chevron {
  display: flex;
  color: var(--green);
  transition: transform 0.2s ease;
}

.partner-category-group.is-open .partner-category-chevron {
  transform: rotate(180deg);
}

.partner-category-icon {
  width: 34px;
  height: 34px;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: var(--white);
  color: var(--green);
  box-shadow: inset 0 0 0 1px rgba(15, 45, 61, 0.1);
  transition: background 0.15s, color 0.15s;
}

.partner-category-group.is-open .partner-category-icon {
  background: var(--avocado);
  color: var(--cream);
  box-shadow: none;
}

.partner-category-trigger:hover .partner-category-icon,
.partner-category-trigger:focus-visible .partner-category-icon {
  background: var(--white);
  color: var(--coral);
}

.partner-category-group.is-open .partner-category-trigger:hover .partner-category-icon,
.partner-category-group.is-open .partner-category-trigger:focus-visible .partner-category-icon {
  background: var(--green);
  color: var(--cream);
}

.partner-category-panel {
  border-top: 1px solid rgba(15, 45, 61, 0.06);
}

.partner-category-panel-inner {
  padding: var(--space-3) var(--space-4) var(--space-4);
}

.partner-type-list {
  display: grid;
  gap: var(--space-1);
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: var(--text-sm);
  color: var(--ink-soft);
  line-height: 1.45;
}

.partner-type-list li::before {
  content: "·";
  color: var(--seafoam);
  font-weight: 700;
  margin-right: 6px;
}

.partners-categories-wrap {
  margin-bottom: var(--space-8);
}

.partners-search {
  margin-bottom: var(--space-5);
}

.partners-search .field {
  margin: 0;
}

.partners-search input[type="search"] {
  width: 100%;
  padding: 12px 16px;
  font-size: var(--text-base);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--white);
  color: var(--ink);
  box-shadow: 0 2px 8px rgba(15, 45, 61, 0.06);
}

.partners-search input[type="search"]:focus {
  outline: 2px solid var(--seafoam);
  outline-offset: 1px;
  border-color: var(--seafoam);
}

.partners-search-empty {
  font-size: var(--text-sm);
  color: var(--text-muted);
  margin: 0 0 var(--space-4);
}

.partners-categories-heading {
  margin-top: 0;
  font-size: var(--text-base);
  font-weight: 700;
  color: var(--green);
  margin-bottom: var(--space-4);
}

.partner-steps {
  margin: 0 0 var(--space-6);
  padding-left: 1.25rem;
  font-size: var(--text-sm);
  color: var(--ink-soft);
  line-height: 1.7;
}

.partner-start-btn {
  display: flex;
  width: 100%;
  justify-content: center;
}

.partner-why-wrap {
  margin: var(--space-5) 0;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  overflow: hidden;
  background: var(--white);
}

.partner-why-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  width: 100%;
  padding: var(--space-4);
  border: none;
  background: var(--green-wash);
  cursor: pointer;
  font-size: var(--text-base);
  font-weight: 700;
  color: var(--green);
  text-align: left;
}

.partner-why-trigger:hover,
.partner-why-trigger:focus-visible {
  background: rgba(255, 255, 255, 0.65);
  outline: none;
}

.partner-why-wrap.is-open .partner-why-trigger .partner-category-chevron {
  transform: rotate(180deg);
}

.partner-why-panel {
  border-top: 1px solid var(--border);
}

.partner-why-list {
  list-style: none;
  margin: 0;
  padding: var(--space-4) var(--space-5);
  display: grid;
  gap: var(--space-3);
}

.partner-why-list li {
  position: relative;
  padding-left: 1.25rem;
  font-size: var(--text-sm);
  color: var(--ink-soft);
  line-height: 1.5;
}

.partner-why-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: var(--seafoam);
  font-weight: 700;
}

/* Business profile + place card */
.partner-profile-layout {
  max-width: 960px;
}

.partner-profile-grid {
  display: grid;
  gap: var(--space-6);
  align-items: start;
}

@media (min-width: 768px) {
  .partner-profile-grid {
    grid-template-columns: 1fr min(320px, 38%);
  }
}

.field-hint {
  margin-top: var(--space-2);
  font-size: var(--text-xs);
  color: var(--text-muted);
  line-height: 1.4;
}

.place-card-wrap {
  position: sticky;
  top: var(--space-6);
}

.place-card-label {
  font-size: var(--text-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-muted);
  margin-bottom: var(--space-3);
}

.place-card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: var(--space-6);
  box-shadow: var(--shadow-md);
}

.place-card-saved {
  max-width: 420px;
}

.place-card-logo {
  width: 72px;
  height: 72px;
  border-radius: var(--radius-md);
  background: var(--green-wash);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  margin-bottom: var(--space-4);
}

.place-card-logo-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.place-card-logo-fallback {
  font-size: var(--text-2xl);
  font-weight: 700;
  color: var(--green);
  line-height: 1;
}

.place-card-logo-placeholder {
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(145deg, var(--green-wash), var(--cool-mint));
}

.place-card-logo-placeholder svg {
  opacity: 0.35;
}

.place-card-logo-letter {
  position: absolute;
  font-size: var(--text-xl);
  font-weight: 700;
  color: var(--green);
  line-height: 1;
}

.partners-empty {
  padding: var(--space-4) 0 var(--space-6);
}

.partners-empty-state {
  max-width: 520px;
  margin: 0 auto;
}

.place-card-name {
  font-size: var(--text-xl);
  font-weight: 700;
  color: var(--green);
  margin-bottom: var(--space-2);
  line-height: 1.2;
}

.place-card-desc {
  font-size: var(--text-sm);
  color: var(--ink-soft);
  line-height: 1.6;
  margin-bottom: var(--space-4);
}

.place-card-contact {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: var(--text-sm);
  color: var(--ink-soft);
  display: grid;
  gap: var(--space-2);
}

.place-card-contact a {
  color: var(--green);
  font-weight: 500;
  word-break: break-word;
}

.place-card-k {
  display: inline-block;
  min-width: 4.5rem;
  font-weight: 600;
  color: var(--text-muted);
}

.partners-section {
  background: var(--white);
}

.partners-disclaimer {
  margin-top: var(--space-8);
  padding: var(--space-5);
  background: var(--green-wash);
  border: 1px solid rgba(15, 45, 61, 0.08);
  border-radius: var(--radius-md);
}

.partners-disclaimer-compact {
  margin-top: 0;
  margin-bottom: var(--space-6);
}

.partners-disclaimer-heading {
  font-size: var(--text-sm);
  font-weight: 700;
  color: var(--green);
  margin: 0 0 var(--space-3);
}

.partners-disclaimer p {
  font-size: var(--text-xs);
  color: var(--text-muted);
  line-height: 1.6;
  margin: 0 0 var(--space-2);
}

.partners-disclaimer p:last-child {
  margin-bottom: 0;
}

.section-meta {
  color: var(--text-muted);
  font-size: var(--text-sm);
  margin-top: var(--space-1);
}

.partners-grid {
  display: grid;
  gap: var(--space-5);
  grid-template-columns: 1fr;
}

@media (min-width: 640px) {
  .partners-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 960px) {
  .partners-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.partners-grid .place-card {
  height: 100%;
  margin: 0;
}

.partners-list-cta {
  flex-shrink: 0;
}

.partners-browse-note {
  margin-bottom: var(--space-5);
}

/* Listing photo upload */
.photo-upload-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
  gap: var(--space-3);
  margin-bottom: var(--space-4);
}

.photo-thumb {
  position: relative;
  aspect-ratio: 4 / 3;
  border-radius: var(--radius-sm);
  overflow: hidden;
  border: 1px solid var(--border);
  background: var(--cream);
}

.photo-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.photo-thumb.is-cover {
  border-color: var(--green);
  box-shadow: 0 0 0 2px rgba(15, 45, 61, 0.12);
}

.photo-cover-badge {
  position: absolute;
  top: 6px;
  left: 6px;
  z-index: 1;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  background: var(--green);
  color: var(--white);
  padding: 2px 6px;
  border-radius: 999px;
}

.photo-remove {
  position: absolute;
  top: 6px;
  right: 6px;
  z-index: 1;
  width: 24px;
  height: 24px;
  border: none;
  border-radius: 999px;
  background: rgba(15, 45, 61, 0.75);
  color: var(--white);
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}

.photo-remove:hover {
  background: rgba(15, 45, 61, 0.9);
}

.photo-upload-actions {
  display: grid;
  gap: var(--space-2);
}

.photo-add-btn {
  width: fit-content;
  cursor: pointer;
}

.photo-add-btn.hidden {
  display: none;
}

.photo-upload-error {
  margin: 0;
}

.contact-form {
  display: grid;
  gap: var(--space-4);
  margin-bottom: var(--space-6);
}

.contact-form .field select,
.contact-form .field input,
.contact-form .field textarea {
  background: var(--white);
}

.contact-aside {
  margin-top: var(--space-6);
  padding-top: var(--space-6);
  border-top: 1px solid var(--border);
}

.contact-aside h2 {
  font-size: var(--text-base);
}

#contact-success {
  margin-bottom: var(--space-4);
}

/* Legal pages */
.legal-page {
  padding: var(--space-8) 0 var(--space-12);
  background: var(--bg-alt);
  min-height: 60vh;
}

.legal-page-inner {
  max-width: 720px;
}

.legal-doc {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: var(--space-8) var(--space-6);
  box-shadow: var(--shadow-md);
}

.legal-doc-header {
  margin-bottom: var(--space-8);
  padding-bottom: var(--space-6);
  border-bottom: 1px solid var(--border);
}

.legal-doc-header h1 {
  font-family: var(--font-display);
  font-size: var(--text-2xl);
  font-weight: 700;
  color: var(--green);
  margin-bottom: var(--space-2);
}

.legal-updated {
  font-size: var(--text-sm);
  color: var(--text-muted);
  margin: 0;
}

.legal-section {
  margin-bottom: var(--space-6);
  padding-bottom: var(--space-6);
  border-bottom: 1px solid var(--border);
}

.legal-section:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
}

.legal-section h2 {
  font-size: var(--text-lg);
  font-weight: 700;
  color: var(--green);
  margin: 0 0 var(--space-3);
}

.legal-section p {
  font-size: var(--text-sm);
  color: var(--ink-soft);
  line-height: 1.65;
  margin: 0 0 var(--space-3);
}

.legal-section p:last-child {
  margin-bottom: 0;
}

.legal-section ul {
  margin: 0 0 var(--space-3);
  padding-left: 1.25rem;
  font-size: var(--text-sm);
  color: var(--ink-soft);
  line-height: 1.65;
}

.legal-section ul:last-child {
  margin-bottom: 0;
}

.legal-section li + li {
  margin-top: var(--space-1);
}

.legal-section a {
  color: var(--green);
  font-weight: 600;
}

.resource-org {
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--ink-soft);
  margin: 0 0 var(--space-2);
}

.resource-org a {
  font-weight: 600;
}

.faq-item {
  padding-top: var(--space-4);
  margin-top: var(--space-4);
  border-top: 1px solid var(--border);
}

.faq-item:first-of-type {
  padding-top: 0;
  margin-top: 0;
  border-top: none;
}

.faq-question {
  font-size: var(--text-base);
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 var(--space-2);
}

.account-type-fieldset {
  margin-bottom: var(--space-5);
}

.account-type-note {
  font-size: var(--text-sm);
  color: var(--text-muted);
  margin: 0 0 var(--space-3);
}

.account-type-options {
  display: grid;
  gap: var(--space-3);
}

@media (min-width: 540px) {
  .account-type-options {
    grid-template-columns: 1fr 1fr;
  }
}

.account-type-option {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  padding: var(--space-4);
  border: 1.5px solid var(--border);
  border-radius: var(--radius-md);
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
}

.account-type-option:has(input:checked) {
  border-color: var(--sage);
  background: var(--green-wash);
}

.account-type-option input {
  margin-bottom: var(--space-1);
}

.account-type-label {
  font-weight: 700;
  color: var(--green);
}

.account-type-desc {
  font-size: var(--text-sm);
  color: var(--text-muted);
}

.legal-subhead {
  font-size: var(--text-base);
  font-weight: 700;
  color: var(--green);
  margin: var(--space-4) 0 var(--space-2);
}

.legal-subhead:first-of-type {
  margin-top: var(--space-2);
}

.partner-terms-intro {
  font-size: var(--text-xs);
  color: var(--text-muted);
  margin: 0 0 var(--space-3);
}

.partner-terms-intro a {
  font-weight: 600;
  color: var(--green);
}

/* Listing detail */
.listing-detail-page .form-page-inner {
  max-width: 1100px;
}

.detail-layout {
  display: grid;
  gap: var(--space-6);
}

@media (min-width: 900px) {
  .detail-layout {
    grid-template-columns: 1fr 380px;
    align-items: start;
  }
}

.detail-main {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: var(--space-6);
  box-shadow: var(--shadow-md);
}

.detail-photo,
.detail-gallery .detail-photo {
  border-radius: var(--radius-md);
  overflow: hidden;
  background: var(--bg-alt);
  margin-bottom: var(--space-4);
}

.detail-photo img {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.detail-photo-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 220px;
  color: var(--text-muted);
}

.detail-gallery {
  display: grid;
  gap: var(--space-3);
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
}

.detail-price {
  font-size: var(--text-2xl);
  font-weight: 700;
  color: var(--green);
  margin-bottom: var(--space-1);
}

.detail-price span {
  font-size: var(--text-base);
  font-weight: 500;
  color: var(--text-muted);
}

.detail-title {
  font-size: var(--text-xl);
  font-weight: 700;
  color: var(--green);
  margin-bottom: var(--space-2);
}

.detail-meta {
  color: var(--text-muted);
  font-size: var(--text-sm);
  margin-bottom: var(--space-3);
}

.detail-section {
  margin-top: var(--space-5);
}

.detail-section h2 {
  font-size: var(--text-base);
  font-weight: 700;
  color: var(--green);
  margin-bottom: var(--space-2);
}

.detail-chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  list-style: none;
  padding: 0;
  margin: var(--space-4) 0 0;
}

.detail-chips li {
  font-size: var(--text-xs);
  font-weight: 600;
  padding: var(--space-1) var(--space-3);
  border-radius: var(--radius-full);
  background: var(--green-wash);
  color: var(--green);
}

.detail-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  align-items: center;
  margin-top: var(--space-5);
  padding-top: var(--space-4);
  border-top: 1px solid var(--border);
}

.detail-side .inquiry-form,
.detail-side .form-card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: var(--space-6);
  box-shadow: var(--shadow-md);
}

.detail-side .inquiry-form h2,
.detail-side .form-card h2 {
  font-size: var(--text-lg);
  font-weight: 700;
  color: var(--green);
  margin-bottom: var(--space-2);
}

/* Dashboards + admin */
.dash-card {
  max-width: 100%;
}

.dash-section {
  margin-top: var(--space-8);
  padding-top: var(--space-6);
  border-top: 1px solid var(--border);
}

.dash-section:first-of-type {
  margin-top: var(--space-4);
  padding-top: 0;
  border-top: 0;
}

.dash-section h2 {
  font-size: var(--text-lg);
  font-weight: 700;
  color: var(--green);
  margin-bottom: var(--space-4);
}

.dash-listing-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-4) 0;
  border-bottom: 1px solid var(--border);
}

.dash-listing-row h3 {
  font-size: var(--text-base);
  font-weight: 600;
  color: var(--green);
}

.dash-row-meta {
  font-size: var(--text-sm);
  color: var(--text-muted);
  margin-top: var(--space-1);
}

.dash-row-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
}

.dash-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--text-sm);
}

.dash-table th,
.dash-table td {
  text-align: left;
  padding: var(--space-3);
  border-bottom: 1px solid var(--border);
  vertical-align: top;
}

.dash-table th {
  font-weight: 600;
  color: var(--green);
  background: var(--bg-alt);
}

.status-badge {
  display: inline-block;
  font-size: var(--text-xs);
  font-weight: 700;
  padding: var(--space-1) var(--space-3);
  border-radius: var(--radius-full);
}

.status-approved {
  background: var(--green-wash);
  color: var(--green);
}

.status-pending {
  background: #FFF4E5;
  color: #9A6700;
}

.status-rejected {
  background: #FDECEC;
  color: #9E4A3A;
}

.admin-queue-item {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--space-4);
  padding: var(--space-4);
  margin-bottom: var(--space-3);
  background: var(--bg-alt);
  border-radius: var(--radius-md);
  border: 1px solid var(--border);
}

.admin-queue-item h3 {
  font-size: var(--text-base);
  font-weight: 600;
  color: var(--green);
}

.admin-queue-meta,
.admin-queue-desc {
  font-size: var(--text-sm);
  color: var(--text-muted);
  margin-top: var(--space-1);
}

.admin-queue-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  align-items: center;
}

.btn-sm {
  padding: var(--space-2) var(--space-4);
  font-size: var(--text-sm);
}

.saved-listings-grid {
  display: grid;
  gap: var(--space-4);
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}

.saved-listing-card {
  display: block;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: box-shadow 0.15s, border-color 0.15s;
}

.saved-listing-card:hover {
  border-color: var(--sage);
  box-shadow: var(--shadow-sm);
}

.saved-card-photo img,
.saved-card-placeholder {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
  background: var(--bg-alt);
}

.saved-card-body {
  padding: var(--space-3);
}

.saved-card-price {
  font-weight: 700;
  color: var(--green);
  font-size: var(--text-sm);
}

.saved-card-price span {
  font-weight: 500;
  color: var(--text-muted);
}

.saved-listing-card h3 {
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--green);
  margin: var(--space-1) 0;
}

.saved-card-meta {
  font-size: var(--text-xs);
  color: var(--text-muted);
}

.about-steps {
  display: grid;
  gap: var(--space-4);
  margin: var(--space-4) 0;
}

@media (min-width: 720px) {
  .about-steps {
    grid-template-columns: repeat(3, 1fr);
  }
}

.about-step {
  padding: var(--space-4);
  background: var(--green-wash);
  border-radius: var(--radius-md);
}

.about-step h3 {
  font-size: var(--text-base);
  font-weight: 700;
  color: var(--green);
  margin-bottom: var(--space-2);
}
