/* Shared component primitives for the approved visual direction. Built on
   the tokens in design-system.css. Additive only -- existing page classes
   are untouched; later phases adopt these as pages are rebuilt. */

/* Section heading: eyebrow + editorial h2 + optional intro line. */
.section-heading{margin:0 0 var(--space-6)}
.section-heading .eyebrow{color:var(--gold);margin-bottom:var(--space-2)}
.section-heading h2{margin:0 0 var(--space-2)}
.section-heading p{margin:0;max-width:60ch}

/* Chip: selectable tag for progressive project criteria. */
.chip{display:inline-flex;align-items:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-4);border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font-size:14px;font-weight:600;cursor:pointer;touch-action:manipulation;transition:background-color .18s ease,border-color .18s ease,color .18s ease}
.chip[aria-pressed="true"],.chip.is-selected{border-color:var(--navy);background:var(--navy);color:#fff}
.chip:disabled{opacity:.5;cursor:not-allowed}

/* Segmented selector: a row of chip-like exclusive choices. */
.segmented{display:flex;flex-wrap:wrap;gap:var(--space-2)}

/* Property card: image, title, location, price, facts, match state. */
.property-card{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;background:var(--surface);box-shadow:var(--shadow-sm)}
.property-card img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;background:var(--silver)}
.property-card .property-body{padding:var(--space-4) var(--space-5) var(--space-5);display:flex;flex-direction:column;gap:var(--space-2)}
.property-card h3{margin:0;font-size:18px}
.property-card .property-price{font-weight:700;color:var(--navy)}
.property-card .property-facts{display:flex;flex-wrap:wrap;gap:var(--space-2);color:var(--muted);font-size:13px;margin:0}
.property-card .property-match{display:inline-flex;align-items:center;gap:var(--space-2);font-size:12px;font-weight:700;color:var(--action)}

/* Progress: a simple determinate bar, distinct from the native <progress>
   already used for certification completeness. */
.progress-bar{height:8px;border-radius:999px;background:var(--silver);overflow:hidden}
.progress-bar-fill{height:100%;background:var(--gold);border-radius:inherit;transition:width .22s ease}

/* Empty state: honest, never fake inventory or fabricated content. */
.empty-state{text-align:center;padding:var(--space-8) var(--space-5);border:1px dashed var(--line);border-radius:var(--radius-lg);background:var(--silver)}
.empty-state h3{margin:0 0 var(--space-2)}
.empty-state p{margin:0 0 var(--space-4);max-width:48ch;margin-inline:auto}

@media(max-width:480px){.section-heading{margin-bottom:var(--space-5)}.empty-state{padding:var(--space-6) var(--space-4)}}
