/* mercado.imo — shared design system (Saídas + Imóvel pages).
   Same tokens as the map (casafari.html) so the product reads as one. */
:root{
  --bg: oklch(0.975 0.008 75);
  --surface: oklch(0.995 0.004 75);
  --ink: oklch(0.26 0.02 50);
  --muted: oklch(0.54 0.02 60);
  --faint: oklch(0.70 0.015 65);
  --line: oklch(0.90 0.012 70);
  --clay: oklch(0.57 0.135 40);
  --clay-deep: oklch(0.46 0.12 38);
  --on: oklch(0.42 0.12 145);
  --on-bg: oklch(0.57 0.13 145/.13);
  --shadow: 0 1px 2px oklch(0.3 0.02 50 / .08), 0 8px 30px oklch(0.3 0.02 50 / .10);
  --shadow-sm: 0 1px 2px oklch(0.3 0.02 50 / .10), 0 2px 8px oklch(0.3 0.02 50 / .07);
  --h1: oklch(0.84 0.055 85); --h2: oklch(0.76 0.10 62); --h3: oklch(0.66 0.135 46);
  --h4: oklch(0.56 0.155 36); --h5: oklch(0.45 0.16 28);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:"Hanken Grotesk",system-ui,sans-serif;color:var(--ink);background:var(--bg);
  -webkit-font-smoothing:antialiased;line-height:1.5}
a{color:inherit}
.serif{font-family:"Fraunces",serif}
.tnum{font-variant-numeric:tabular-nums}

/* ---- Top nav (shared) ---- */
.nav{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:26px;
  padding:15px clamp(18px,5vw,52px);background:oklch(0.975 0.008 75/.86);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line)}
.nav .brand{display:flex;flex-direction:column;line-height:1;text-decoration:none}
.nav .brand b{font-family:"Fraunces",serif;font-weight:600;font-size:20px;letter-spacing:-.01em}
.nav .brand b em{font-style:italic;color:var(--clay)}
.nav .brand span{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--faint);margin-top:3px;font-weight:600}
.nav .links{display:flex;gap:4px;margin-left:auto}
.nav .links a{font-size:14px;font-weight:600;color:var(--muted);text-decoration:none;padding:8px 15px;border-radius:9px;transition:.15s}
.nav .links a:hover{color:var(--ink);background:oklch(0.57 0.135 40/.08)}
.nav .links a.active{color:var(--clay);background:oklch(0.57 0.135 40/.10)}

.wrap{max-width:1180px;margin:0 auto;padding:clamp(28px,5vw,56px) clamp(18px,5vw,52px) 80px}
.page-head{margin-bottom:30px;max-width:680px}
.page-head h1{font-family:"Fraunces",serif;font-weight:600;font-size:clamp(30px,5vw,46px);
  letter-spacing:-.02em;line-height:1.04;margin:0 0 12px}
.page-head h1 em{font-style:italic;color:var(--clay)}
.page-head p{font-size:15px;color:var(--muted);margin:0;max-width:60ch}

/* ---- Buttons / badges ---- */
.btn{display:inline-flex;align-items:center;gap:7px;font:inherit;font-size:13.5px;font-weight:600;
  padding:10px 16px;border-radius:10px;cursor:pointer;text-decoration:none;border:1px solid var(--line);
  background:var(--surface);color:var(--ink);transition:.15s}
.btn:hover{border-color:var(--clay);color:var(--clay)}
.btn.solid{background:var(--clay);color:oklch(0.99 0.01 75);border-color:var(--clay)}
.btn.solid:hover{background:var(--clay-deep);color:oklch(0.99 0.01 75)}
.chip{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:.04em;
  text-transform:uppercase;padding:5px 10px;border-radius:20px}
.chip.on{background:var(--on-bg);color:var(--on)}
.chip.off{background:oklch(0.57 0.135 40/.13);color:var(--clay-deep)}
.portal{font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:5px 10px;
  border-radius:7px;background:var(--bg);border:1px solid var(--line);color:var(--muted);text-decoration:none}
a.portal:hover{border-color:var(--clay);color:var(--clay)}

/* ---- Filters bar ---- */
.bar{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-bottom:26px;padding-bottom:22px;border-bottom:1px solid var(--line)}
.fld{position:relative}
.fld select,.fld input{font:inherit;font-size:13.5px;font-weight:500;color:var(--ink);background:var(--surface);
  border:1px solid var(--line);border-radius:10px;padding:9px 13px;outline:none;transition:border-color .15s}
.fld select:focus,.fld input:focus{border-color:var(--clay)}
.fld select{-webkit-appearance:none;appearance:none;padding-right:28px;cursor:pointer}
.fld.sel::after{content:"";position:absolute;right:12px;top:50%;width:6px;height:6px;border-right:1.5px solid var(--muted);
  border-bottom:1.5px solid var(--muted);transform:translateY(-70%) rotate(45deg);pointer-events:none}
.count{margin-left:auto;font-size:13.5px;color:var(--muted);font-weight:500}
.count b{font-family:"Fraunces",serif;color:var(--ink);font-size:16px}

/* ---- Card grid ---- */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:15px;overflow:hidden;
  box-shadow:var(--shadow-sm);transition:transform .18s cubic-bezier(.22,1,.36,1),box-shadow .18s;text-decoration:none;display:block}
.card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.card .ph{height:150px;background:var(--line) center/cover no-repeat;position:relative}
.card .ph .src{position:absolute;top:10px;left:10px;background:oklch(0.2 0.02 50/.82);color:oklch(0.98 0.01 75);
  font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:4px 8px;border-radius:6px}
.card .ph .tag{position:absolute;top:10px;right:10px;font-size:10.5px;font-weight:700;color:oklch(0.99 0.01 75);
  padding:4px 9px;border-radius:7px}
.card .ph .pm2{position:absolute;bottom:10px;right:10px;font-size:11.5px;font-weight:700;color:oklch(0.99 0.01 75);
  padding:4px 9px;border-radius:7px}
.card .b{padding:14px 16px 16px}
.card .price{font-family:"Fraunces",serif;font-weight:600;font-size:22px;letter-spacing:-.01em;line-height:1}
.card .ttl{font-size:13px;color:var(--ink);margin:7px 0 9px;line-height:1.35;min-height:2.6em;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card .row{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted);font-weight:500}
.card .row b{color:var(--ink);font-weight:600}
.card .when{margin-top:10px;padding-top:10px;border-top:1px solid var(--line);font-size:12px;color:var(--muted);
  display:flex;justify-content:space-between;font-weight:500}
.card .when b{color:var(--clay-deep);font-weight:700}

/* ---- States ---- */
.state{padding:60px 20px;text-align:center;color:var(--muted)}
.state .big{font-family:"Fraunces",serif;font-size:22px;color:var(--ink);margin-bottom:8px}
.spin{display:inline-block;width:16px;height:16px;border:2px solid var(--line);border-top-color:var(--clay);
  border-radius:50%;animation:sp .7s linear infinite;vertical-align:-3px}
@keyframes sp{to{transform:rotate(360deg)}}
.skel{background:linear-gradient(100deg,var(--line) 30%,oklch(0.93 0.01 70) 50%,var(--line) 70%);
  background-size:200% 100%;animation:sh 1.3s infinite;border-radius:15px;height:260px}
@keyframes sh{to{background-position:-200% 0}}

/* ---- Stats grid + chart + timeline (shared with imóvel) ---- */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:14px;overflow:hidden;margin:26px 0}
.stats > div{background:var(--surface);padding:16px 18px}
.stats dt{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-weight:700;margin-bottom:6px}
.stats dd{margin:0;font-family:"Fraunces",serif;font-weight:600;font-size:22px;color:var(--ink);font-variant-numeric:tabular-nums}
.sect{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-weight:700;margin:30px 0 14px}
.chart{width:100%;max-width:640px;height:180px;overflow:visible}
.chart path.line{fill:none;stroke:var(--clay);stroke-width:2.4;stroke-linejoin:round;stroke-linecap:round}
.chart path.area{fill:oklch(0.57 0.135 40/.08);stroke:none}
.chart circle{fill:var(--clay)}
.chart text{font-size:11px;fill:var(--muted);font-weight:600;font-variant-numeric:tabular-nums}
.tl{list-style:none;margin:0;padding:0;position:relative;max-width:640px}
.tl::before{content:"";position:absolute;left:6px;top:6px;bottom:6px;width:2px;background:var(--line)}
.tl li{position:relative;padding:0 0 16px 26px}
.tl li::before{content:"";position:absolute;left:1px;top:3px;width:11px;height:11px;border-radius:50%;
  background:var(--bg);border:2.5px solid var(--clay)}
.tl .what{color:var(--ink);font-weight:500;font-size:14px}
.tl .what b{font-weight:700}
.tl .when{font-size:12px;color:var(--faint);font-weight:600;margin-top:2px}
.portals{display:flex;flex-wrap:wrap;gap:8px}
.note{font-size:13px;color:var(--muted);font-style:italic}
@media(max-width:640px){.nav{gap:14px}.nav .brand span{display:none}}
