/* Ts-Immo Fiche bien — caractéristiques + carte. Consomme les tokens du thème
 * Ts-Immo Vitrine (--tsv-*) quand ils existent, repli autonome sinon. */

.tsps {
  --tsps-fg: var(--tsv-color-fg, #1f2933);
  --tsps-muted: var(--tsv-color-muted, #6b7280);
  --tsps-bg: var(--tsv-color-bg, #fff);
  --tsps-bg-alt: var(--tsv-color-bg-alt, #f8fafc);
  --tsps-border: var(--tsv-color-border, #e5e7eb);
  --tsps-radius: var(--tsv-radius, 14px);
  --tsps-radius-sm: var(--tsv-radius-sm, 10px);
  color: var(--tsps-fg);
}
.tsps * { box-sizing: border-box; }
.tsps + .tsps, .tsps-fiche > .tsps + .tsps { margin-top: 2rem; }

.tsps-title {
  margin: 0 0 1rem;
  font-size: 1.3rem; font-weight: 700;
  font-family: var(--tsv-font-head, inherit);
}

/* ── Caractéristiques : grille ────────────────────────────────────────────── */
.tsps-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: .75rem;
}
.tsps-cell {
  display: flex; flex-direction: column; gap: .15rem;
  padding: .85rem .9rem;
  background: var(--tsps-bg-alt);
  border: 1px solid var(--tsps-border);
  border-radius: var(--tsps-radius-sm);
}
.tsps-ico { font-size: 1.15rem; line-height: 1; opacity: .8; }
.tsps-cell .tsps-value { font-weight: 700; font-size: 1.02rem; }
.tsps-cell .tsps-label { color: var(--tsps-muted); font-size: .82rem; }

/* ── Caractéristiques : colonnes (2 col.) ─────────────────────────────────── */
.tsps-columns { columns: 2; column-gap: 2.5rem; }
@media (max-width: 560px) { .tsps-columns { columns: 1; } }
.tsps-line {
  display: flex; justify-content: space-between; gap: 1rem;
  padding: .55rem 0; border-bottom: 1px solid var(--tsps-border);
  break-inside: avoid;
}
.tsps-columns .tsps-label { color: var(--tsps-muted); }
.tsps-columns .tsps-value { font-weight: 600; text-align: right; }

/* ── Caractéristiques : liste ─────────────────────────────────────────────── */
.tsps-list { list-style: none; margin: 0; padding: 0; }
.tsps-list li {
  display: flex; justify-content: space-between; gap: 1rem;
  padding: .6rem 0; border-bottom: 1px solid var(--tsps-border);
}
.tsps-list .tsps-label { color: var(--tsps-muted); }
.tsps-list .tsps-value { font-weight: 600; text-align: right; }

/* ── Carte de localisation ────────────────────────────────────────────────── */
.tsps-map-frame {
  position: relative; width: 100%;
  border-radius: var(--tsps-radius); overflow: hidden;
  border: 1px solid var(--tsps-border); background: var(--tsps-bg-alt);
}
.tsps-map-frame iframe { display: block; width: 100%; height: 100%; border: 0; }
.tsps-map-note { margin: .5rem 0 0; color: var(--tsps-muted); font-size: .82rem; }
