/* ============================================================
   home.gr — city.css
   Σελίδες προορισμού /enoikiaseis/<πόλη>. «Θερμό χαρτί»:
   χαρτί #F9F7F1, λευκές κάρτες, terracotta CTA, βαθύ πράσινο band.
   Τα tokens έρχονται από deep-green.css — εδώ μόνο ό,τι είναι
   αποκλειστικά αυτής της σελίδας. Light only, καμία λογική θέματος.
   ============================================================ */

/* ---------- utilities ---------- */
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* ---------- breadcrumbs ---------- */
.crumbs {
  display: flex; flex-wrap: wrap; align-items: center; gap: .5rem;
  font-size: 0.8125rem; color: var(--ink-3); margin-bottom: 1.4rem;
}
.crumbs a { color: var(--ink-3); }
.crumbs a:hover { color: var(--sand); }
.crumbs .crumb-now { color: var(--ink-2); font-weight: 600; }

/* ---------- 1 · hero ---------- */
.city-hero { padding-bottom: clamp(2rem, 1rem + 3vw, 3.5rem); }
.city-hero h1 {
  font-size: var(--fs-h1); font-weight: 800; line-height: 1.02;
  letter-spacing: -0.02em; margin-top: 1rem; max-width: 18ch;
}
.city-count {
  margin: 1.25rem 0 0; font-family: var(--font-display); font-weight: 700;
  font-variant-numeric: tabular-nums; font-size: var(--fs-lead);
  color: var(--sand); letter-spacing: -0.01em;
}
.city-lead { margin: .9rem 0 0; font-size: var(--fs-body); color: var(--ink-2); max-width: 60ch; }
.city-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.9rem; }

/* ---------- 2 · results ---------- */
.city-results { padding-top: 0; }

.cgrid {
  display: grid; gap: clamp(1rem, 2vw, 1.6rem);
  grid-template-columns: repeat(auto-fill, minmax(276px, 1fr));
  list-style: none; margin: 0; padding: 0;
}

.ccard {
  background: var(--surface); border: 1px solid var(--hairline);
  border-radius: var(--radius); overflow: hidden;
  transition: transform .3s var(--ease), border-color .25s, box-shadow .3s var(--ease);
}
.ccard:hover { transform: translateY(-4px); border-color: var(--hairline-2); box-shadow: var(--shadow); }
.ccard:focus-within { border-color: var(--mint); box-shadow: 0 0 0 3px var(--mint-wash); }

.ccard-link { display: block; color: inherit; }
.ccard-link:focus-visible { outline: 2px solid var(--mint); outline-offset: -4px; border-radius: var(--radius); }

.ccard-cover {
  position: relative; aspect-ratio: 4 / 3; background-color: var(--surface-3);
  background-size: cover; background-position: center;
  border-bottom: 1px solid var(--hairline);
}
.ccard-cover img { display: block; width: 100%; height: 100%; object-fit: cover; }
/* Χωρίς φωτογραφία: ζεστή βαθμίδα + ειλικρινής ετικέτα — ποτέ ψεύτικη εικόνα. */
.ccard-nophoto {
  position: absolute; inset: auto 0 0 0; padding: .55rem .9rem;
  font-size: 0.75rem; font-weight: 600; letter-spacing: .02em; color: var(--ink);
}

.ccard-body { padding: 1.1rem 1.2rem 1.3rem; display: flex; flex-direction: column; gap: .45rem; }

.ccard-price { display: flex; align-items: baseline; flex-wrap: wrap; gap: .4rem; }
.ccard-price .amt {
  font-family: var(--font-display); font-weight: 700; font-variant-numeric: tabular-nums;
  font-size: 1.5rem; letter-spacing: -0.02em; color: var(--ink);
}
.ccard-price .per { font-size: 0.8125rem; color: var(--ink-3); font-weight: 600; }
.ccard-price .noprice { font-size: var(--fs-sm); color: var(--ink-3); font-weight: 600; }

/* «τελική ✓» — μόνο όταν υπάρχει δηλωμένη ανάλυση κόστους από πίσω. */
.final-chip {
  display: inline-flex; align-items: center; gap: .3rem;
  padding: .2rem .55rem; border-radius: 999px;
  background: rgba(46, 107, 71, .10); color: var(--verified);
  font-size: 0.75rem; font-weight: 700; letter-spacing: .01em; white-space: nowrap;
}
.final-chip svg { width: 12px; height: 12px; }

.ccard-note { font-size: 0.75rem; color: var(--ink-3); }
.ccard-note.bd { color: var(--verified); }

.ccard h3 {
  font-family: var(--font-ui); font-weight: 600; font-size: 1.02rem;
  line-height: 1.3; letter-spacing: -0.005em; color: var(--ink); margin-top: .2rem;
}
.ccard-loc { margin: 0; font-size: var(--fs-sm); color: var(--ink-2); }
.ccard-loc .approx { color: var(--ink-3); font-size: 0.75rem; }
.ccard-facts {
  margin: .35rem 0 0; padding-top: .7rem; border-top: 1px solid var(--hairline);
  font-size: 0.8125rem; color: var(--ink-2);
}
.ccard-facts b { font-family: var(--font-display); font-variant-numeric: tabular-nums; }

.city-more { margin: 1.6rem 0 0; font-size: 0.8125rem; color: var(--ink-3); }
.city-disc { margin: 1.4rem 0 0; font-size: 0.75rem; color: var(--ink-3); max-width: 64ch; }

/* ---------- 2b · άδεια πόλη (τίμιο empty state) ---------- */
.city-empty {
  background: var(--surface); border: 1px solid var(--hairline);
  border-radius: var(--radius-lg); padding: clamp(1.6rem, 3vw, 2.75rem);
  max-width: 62ch;
}
.city-empty h2 { font-size: var(--fs-h3); }
.city-empty p { margin: .8rem 0 0; font-size: var(--fs-sm); color: var(--ink-2); }
.city-empty .empty-actions { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.5rem; }
.city-empty-lead { font-size: var(--fs-sm); color: var(--ink-3); }

/* ---------- 3 · κοινό (ίδια γλώσσα με owners.html) ---------- */
.band-deep { background: var(--bg-deep); border-block: 1px solid var(--hairline); }

.aud-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 clamp(1.5rem, 4vw, 4rem); }
.aud-row { display: flex; align-items: baseline; gap: 1.1rem; padding: 1.35rem 0; border-top: 1px solid var(--hairline); }
.aud-n {
  font-family: var(--font-accent); font-style: italic; font-weight: 500;
  font-size: 1.5rem; line-height: 1; color: var(--sand); flex-shrink: 0; min-width: 2.2ch;
}
.aud-row h3 { font-family: var(--font-ui); font-weight: 600; font-size: 1.05rem; }
.aud-row p { margin: .3rem 0 0; font-size: var(--fs-sm); color: var(--ink-2); max-width: 42ch; }
.aud-note {
  margin: clamp(1.6rem, 3vw, 2.4rem) 0 0; padding-top: 1.1rem;
  border-top: 1px solid var(--hairline);
  font-size: 0.75rem; color: var(--ink-3); max-width: 68ch;
}

/* ---------- 4 · owner band (βαθύ πράσινο) ---------- */
.owner-band {
  position: relative; overflow: hidden;
  background: linear-gradient(155deg, var(--cypress-lift), var(--cypress) 70%);
  background-color: var(--cypress); color: var(--on-green);
  border-radius: var(--radius-lg);
  padding: clamp(2.25rem, 4vw, 4rem);
  display: grid; grid-template-columns: 1.25fr 1fr; gap: clamp(1.5rem, 3vw, 3rem);
  align-items: center;
}
.owner-band::before {
  content: ""; position: absolute; right: -18%; top: -35%; width: 58%; height: 130%;
  background: radial-gradient(circle, rgba(249,247,241,.10), transparent 70%);
  pointer-events: none;
}
.owner-band > * { position: relative; }
.owner-band .eyebrow { color: rgba(249,247,241,.72); }
.owner-band h2 { font-size: var(--fs-h2); color: var(--on-green); margin-top: .9rem; max-width: 20ch; }
.owner-band .band-lead { color: rgba(249,247,241,.85); font-size: var(--fs-sm); margin: 1.1rem 0 0; max-width: 46ch; }
.own-actions { display: flex; flex-direction: column; align-items: flex-start; gap: .9rem; }
.own-actions .own-hint { font-size: 0.75rem; color: rgba(249,247,241,.72); }
.btn-ghost-green { background: transparent; color: var(--on-green); border-color: rgba(249,247,241,.42); }
.btn-ghost-green:hover { border-color: var(--on-green); color: var(--on-green); transform: translateY(-2px); }

/* ---------- responsive ---------- */
@media (max-width: 960px) {
  .aud-list { grid-template-columns: 1fr; }
  .owner-band { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .cgrid { grid-template-columns: 1fr; }
}
