:root {
  --paper:      #f5f3ee;
  --paper-2:    #ede9de;
  --paper-3:    #fffefa;
  --ink:        #0e0e0e;
  --ink-2:      #2a2a2a;
  --muted:      #6b6b6b;
  --line:       #d8d3c4;
  --line-soft:  #e6e2d4;
  --gold:       #c9a961;
  --gold-2:     #a48845;
  --oxblood:    #8b3a3a;
  --positive:   #1f5a3a;
  --font-sans:  'Geist', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-serif: 'Instrument Serif', Georgia, serif;
  --font-mono:  'JetBrains Mono', ui-monospace, monospace;
}
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: var(--font-sans);
  color: var(--ink);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
  line-height: 1.5;
}
a { color: inherit; text-decoration: none; }

/* === NAV === */
.nav {
  position: sticky; top: 0; z-index: 10;
  background: rgba(245, 243, 238, 0.95);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--line);
  padding: 14px 32px;
}
.nav__inner {
  max-width: 1200px; margin: 0 auto;
  display: flex; align-items: center; justify-content: space-between;
}
.nav__brand { font-family: var(--font-serif); font-size: 22px; font-style: italic; letter-spacing: -0.01em; color: var(--ink); }
.nav__brand .io { color: var(--gold-2); font-weight: 400; }
.nav__back { font-size: 13px; color: var(--muted); }
.nav__back:hover { color: var(--ink); }

/* === HEADER === */
.header { padding: 56px 32px 32px; border-bottom: 1px solid var(--line); }
.header__inner { max-width: 1200px; margin: 0 auto; }
.header__crumbs {
  font-family: var(--font-mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--muted);
  margin-bottom: 18px;
}
.header__crumbs a { color: var(--muted); }
.header__crumbs a:hover { color: var(--ink); }
.header__crumbs .sep { margin: 0 8px; color: var(--line); }
.header__refcat {
  font-family: var(--font-mono);
  font-size: 13px;
  color: var(--gold-2);
  margin-bottom: 14px;
  letter-spacing: 0.04em;
}
.header__title {
  font-family: var(--font-serif);
  font-size: 44px;
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: -0.01em;
  margin: 0 0 12px;
  max-width: 900px;
}
.header__title--big { font-size: 56px; }
.header__sub { font-size: 17px; color: var(--ink-2); margin: 0; max-width: 720px; }
.header__meta {
  margin-top: 28px;
  display: flex; gap: 32px; flex-wrap: wrap;
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--muted);
}
.header__meta strong { color: var(--ink); font-weight: 500; }

/* === SECTIONS === */
.section { padding: 56px 32px; border-bottom: 1px solid var(--line); }
.section__inner { max-width: 1200px; margin: 0 auto; }
.section--paper2 { background: var(--paper-2); }
.section__eye {
  font-family: var(--font-mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--muted);
  margin-bottom: 14px;
}
.section__title {
  font-family: var(--font-sans);
  font-size: 28px;
  font-weight: 500;
  letter-spacing: -0.015em;
  margin: 0 0 8px;
}
.section__sub { font-size: 15px; color: var(--ink-2); margin: 0 0 28px; max-width: 720px; }

/* === METRIC GRID (used by /propiedad and /municipio) === */
.metrics { padding: 40px 32px; border-bottom: 1px solid var(--line); background: var(--paper-3); }
.metrics__inner {
  max-width: 1200px; margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border: 1px solid var(--line);
  background: var(--paper);
}
.metric { padding: 24px 24px; border-right: 1px solid var(--line); }
.metric:last-child { border-right: none; }
.metric__label {
  font-family: var(--font-mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
  margin-bottom: 8px;
}
.metric__value {
  font-family: var(--font-sans);
  font-size: 42px;
  line-height: 1;
  font-weight: 500;
  letter-spacing: -0.025em;
}
.metric__value--small { font-size: 22px; }
.metric__value-unit { font-size: 0.5em; color: var(--muted); margin-left: 4px; vertical-align: 4px; letter-spacing: 0; }
.metric__value-na { color: var(--muted); font-family: var(--font-serif); font-style: italic; font-size: 24px; }

/* === DETAIL TWO-COL (used by /propiedad) === */
.detail { padding: 56px 32px; border-bottom: 1px solid var(--line); }
.detail__inner {
  max-width: 1200px; margin: 0 auto;
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 48px;
  align-items: start;
}
.detail__col h2 {
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--muted);
  margin: 0 0 18px;
}

/* === ADDRESS CARD === */
.address-card { background: var(--paper-3); border: 1px solid var(--line); padding: 28px; }
.address-card__full {
  font-family: var(--font-serif);
  font-size: 22px;
  font-style: italic;
  line-height: 1.35;
  margin-bottom: 24px;
  color: var(--ink);
  padding-bottom: 20px;
  border-bottom: 1px solid var(--line-soft);
}
.address-card__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 24px; }
.kv { display: flex; flex-direction: column; gap: 2px; }
.kv__label {
  font-family: var(--font-mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
}
.kv__value { font-size: 15px; color: var(--ink); font-weight: 500; }
.kv__value--na { color: var(--muted); font-weight: 400; font-style: italic; }
.kv__value a { border-bottom: 1px solid var(--gold-2); }

/* === MAP CARD === */
.map-card { background: var(--paper-3); border: 1px solid var(--line); overflow: hidden; }
.map-card__placeholder {
  padding: 60px 24px;
  text-align: center;
  font-family: var(--font-mono);
  font-size: 13px;
  color: var(--muted);
  background: var(--paper-2);
}
.map-card__coords {
  padding: 16px 24px;
  border-top: 1px solid var(--line-soft);
  font-family: var(--font-mono);
  font-size: 13px;
  color: var(--ink-2);
  display: flex;
  justify-content: space-between;
}
.map-card__coords a { color: var(--gold-2); }
.map-card__coords a:hover { color: var(--gold); text-decoration: underline; }

/* === CONS TABLE === */
.cons-table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--font-mono);
  font-size: 13px;
  background: var(--paper-3);
  border: 1px solid var(--line);
}
.cons-table th, .cons-table td {
  padding: 12px 18px;
  text-align: left;
  border-bottom: 1px solid var(--line-soft);
}
.cons-table th {
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 11px;
  color: var(--muted);
  font-weight: 500;
  background: var(--paper-2);
}
.cons-table td.num { text-align: right; font-weight: 500; }
.cons-table tr:last-child td { border-bottom: none; }

/* === GENERIC LIST TABLE === */
.list-table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--font-sans);
  font-size: 14px;
  background: var(--paper-3);
  border: 1px solid var(--line);
}
.list-table th, .list-table td {
  padding: 12px 18px;
  text-align: left;
  border-bottom: 1px solid var(--line-soft);
}
.list-table th {
  font-family: var(--font-mono);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 11px;
  color: var(--muted);
  font-weight: 500;
  background: var(--paper-2);
}
.list-table td.num { text-align: right; font-family: var(--font-mono); }
.list-table tr:last-child td { border-bottom: none; }
.list-table tr.clickable { cursor: pointer; }
.list-table tr.clickable:hover { background: var(--paper-2); }
.list-table .refcat-cell {
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--gold-2);
}

/* === SEARCH === */
.search-section { padding: 56px 32px 24px; }
.search-section__inner { max-width: 900px; margin: 0 auto; }
.search-box {
  width: 100%;
  padding: 18px 24px;
  font-family: var(--font-sans);
  font-size: 18px;
  background: var(--paper-3);
  border: 1px solid var(--line);
  color: var(--ink);
  border-radius: 0;
}
.search-box:focus {
  outline: none;
  border-color: var(--gold);
  box-shadow: 0 0 0 1px var(--gold);
}
.search-box::placeholder { color: var(--muted); }

.search-results {
  margin-top: 12px;
  background: var(--paper-3);
  border: 1px solid var(--line);
  min-height: 60px;
  display: none;
}
.search-results.is-open { display: block; }
.search-group {
  border-bottom: 1px solid var(--line-soft);
}
.search-group:last-child { border-bottom: none; }
.search-group__head {
  padding: 10px 20px;
  background: var(--paper-2);
  font-family: var(--font-mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
}
.search-item {
  display: block;
  padding: 14px 20px;
  border-bottom: 1px solid var(--line-soft);
  cursor: pointer;
  transition: background 0.1s;
}
.search-item:last-child { border-bottom: none; }
.search-item:hover { background: var(--paper-2); }
.search-item__title { font-weight: 500; }
.search-item__meta {
  margin-top: 2px;
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--muted);
}
.search-item__sim {
  float: right;
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--muted);
  margin-top: 2px;
}

/* === FOOTER === */
.footer {
  padding: 40px 32px;
  background: var(--ink);
  color: var(--paper);
  font-size: 13px;
  text-align: center;
}
.footer a { color: var(--gold); }
.footer__note {
  margin-top: 12px;
  font-size: 11px;
  color: #a8a297;
  font-family: var(--font-mono);
  letter-spacing: 0.04em;
}

/* === STATES === */
.loading {
  padding: 80px 20px;
  text-align: center;
  color: var(--muted);
  font-family: var(--font-mono);
  font-size: 13px;
}
.error { padding: 80px 32px; text-align: center; color: var(--oxblood); }
.error__title { font-family: var(--font-serif); font-size: 28px; margin-bottom: 8px; }

/* === RESPONSIVE === */
@media (max-width: 900px) {
  .header__title, .header__title--big { font-size: 32px; }
  .metrics__inner { grid-template-columns: repeat(2, 1fr); }
  .metric:nth-child(2) { border-right: none; }
  .metric:nth-child(1), .metric:nth-child(2) { border-bottom: 1px solid var(--line); }
  .detail__inner { grid-template-columns: 1fr; gap: 32px; }
  .header, .section, .detail, .metrics, .search-section { padding-left: 20px; padding-right: 20px; }
  .nav { padding: 12px 20px; }
}

/* === VALUATION CARD === */
.valuation-section { padding: 56px 32px; border-bottom: 1px solid var(--line); background: linear-gradient(180deg, var(--paper-3) 0%, #faf6ea 100%); }
.valuation-section__inner { max-width: 1200px; margin: 0 auto; }
.valuation-card { background: var(--paper); border: 1px solid var(--gold); border-top: 3px solid var(--gold); padding: 36px; position: relative; }
.valuation-card__eye {
  font-family: var(--font-mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--gold-2);
  margin-bottom: 8px;
}
.valuation-card__title {
  font-family: var(--font-serif);
  font-size: 24px;
  font-weight: 400;
  font-style: italic;
  margin: 0 0 28px;
  color: var(--ink);
}
.valuation-card__central {
  display: flex;
  align-items: baseline;
  gap: 16px;
  margin-bottom: 8px;
}
.valuation-card__central-value {
  font-family: var(--font-sans);
  font-size: 56px;
  font-weight: 500;
  letter-spacing: -0.025em;
  line-height: 1;
  color: var(--ink);
}
.valuation-card__central-eur { font-size: 36px; color: var(--muted); font-weight: 400; }
.valuation-card__central-m2 {
  font-family: var(--font-mono);
  font-size: 13px;
  color: var(--muted);
  margin-bottom: 24px;
}
.valuation-card__range-label {
  font-family: var(--font-mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
  margin: 28px 0 14px;
  padding-top: 24px;
  border-top: 1px solid var(--line-soft);
}
.valuation-card__range {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  position: relative;
  padding: 0 0 32px;
}
.valuation-card__range-bar {
  position: absolute;
  left: 0; right: 0; bottom: 16px;
  height: 6px;
  background: linear-gradient(90deg, var(--paper-2) 0%, var(--gold) 50%, var(--paper-2) 100%);
  border-radius: 3px;
}
.valuation-card__range-tick {
  text-align: center;
  position: relative;
  z-index: 1;
}
.valuation-card__range-tick--central { /* sin escala, igual que extremos */ }
.valuation-card__range-tick .label {
  font-family: var(--font-mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
  margin-bottom: 6px;
}
.valuation-card__range-tick .value {
  font-family: var(--font-sans);
  font-size: 18px;
  font-weight: 500;
  color: var(--ink-2);
  margin-bottom: 14px;
}
.valuation-card__range-tick--central .value { font-size: 22px; color: var(--ink); }
.valuation-card__range-tick .dot {
  width: 12px; height: 12px;
  background: var(--gold);
  border: 2px solid var(--paper);
  box-shadow: 0 0 0 1px var(--gold);
  border-radius: 50%;
  margin: 0 auto;
}
.valuation-card__range-tick--central .dot { /* igualado a los extremos */ }

.valuation-card__meta {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid var(--line-soft);
  font-size: 13px;
}
.valuation-card__meta-cell { padding: 0 16px; border-right: 1px solid var(--line-soft); }
.valuation-card__meta-cell:first-child { padding-left: 0; }
.valuation-card__meta-cell:last-child { padding-right: 0; border-right: none; }
.valuation-card__meta-label {
  font-family: var(--font-mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
  margin-bottom: 4px;
}
.valuation-card__meta-value { font-weight: 500; color: var(--ink); }

.valuation-card__caveats {
  margin-top: 24px;
  padding: 14px 18px;
  background: var(--paper-2);
  border-left: 3px solid var(--muted);
  font-size: 13px;
  color: var(--ink-2);
  line-height: 1.55;
}
.valuation-card__caveats strong {
  font-family: var(--font-mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
  display: block;
  margin-bottom: 6px;
  font-weight: 500;
}
.valuation-card__caveats ul { margin: 0; padding-left: 18px; }
.valuation-card__caveats li { margin-bottom: 4px; }

.valuation-confidence {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 2px;
  font-family: var(--font-mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-left: 12px;
  vertical-align: 4px;
}
.valuation-confidence--high { background: #1f5a3a; color: #f0f5ec; }
.valuation-confidence--medium { background: #c9a961; color: #1a1a1a; }
.valuation-confidence--low { background: #8b3a3a; color: #fff0e6; }

.valuation-unavailable {
  background: var(--paper-3);
  border: 1px solid var(--line);
  padding: 28px;
  text-align: center;
  color: var(--muted);
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 17px;
}

@media (max-width: 720px) {
  .valuation-section { padding: 32px 20px; }
  .valuation-card { padding: 24px; }
  .valuation-card__central-value { font-size: 38px; }
  .valuation-card__central-eur { font-size: 24px; }
  .valuation-card__range-tick .value { font-size: 14px; }
  .valuation-card__range-tick--central .value { font-size: 16px; }
  .valuation-card__meta { grid-template-columns: 1fr; gap: 8px; }
  .valuation-card__meta-cell { padding: 8px 0; border-right: none; border-bottom: 1px solid var(--line-soft); }
  .valuation-card__meta-cell:last-child { border-bottom: none; }
}

/* Retail-mode tweaks for valuation-card */
.valuation-card__meta--single { grid-template-columns: 1fr; }
.valuation-card__meta--single .valuation-card__meta-cell { padding: 0; border-right: none; }
.valuation-card__meta--single .valuation-card__meta-value {
  font-size: 22px;
  font-family: var(--font-sans);
  font-weight: 500;
}

.valuation-card__footnote {
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid var(--line-soft);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.02em;
  color: var(--muted);
  font-style: italic;
}

/* === ZONA / PERFIL SOCIOECONÓMICO === */
.zona-section { padding: 48px 32px; border-bottom: 1px solid var(--line); background: var(--paper); }
.zona-section__inner { max-width: 1200px; margin: 0 auto; }
.zona-card { background: var(--paper-3); border: 1px solid var(--line); padding: 32px; }
.zona-card__eye {
  font-family: var(--font-mono); font-size: 11px; text-transform: uppercase;
  letter-spacing: 0.08em; color: var(--gold-2); margin-bottom: 6px;
}
.zona-card__title {
  font-family: var(--font-serif); font-size: 24px; font-style: italic;
  font-weight: 400; margin: 0 0 28px; color: var(--ink);
}
.zona-card__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-bottom: 28px; }
.zona-card__metric-label {
  font-family: var(--font-mono); font-size: 10px; text-transform: uppercase;
  letter-spacing: 0.06em; color: var(--muted); margin-bottom: 6px;
}
.zona-card__metric-value {
  font-family: var(--font-sans); font-size: 28px; font-weight: 500;
  letter-spacing: -0.02em; color: var(--ink);
}
.zona-card__percentil { margin-bottom: 24px; padding-top: 20px; border-top: 1px solid var(--line-soft); }
.zona-card__percentil-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 10px; }
.zona-card__percentil-label { font-family: var(--font-sans); font-size: 14px; color: var(--ink-2); }
.zona-card__percentil-val {
  font-family: var(--font-mono); font-size: 12px; font-weight: 500; color: var(--gold-2);
  text-transform: uppercase; letter-spacing: 0.04em;
}
.zona-card__bar { height: 8px; background: var(--paper-2); border-radius: 4px; overflow: hidden; }
.zona-card__bar-fill { height: 100%; background: linear-gradient(90deg, var(--gold) 0%, var(--gold-2) 100%); border-radius: 4px; }
.zona-card__percentil-scale {
  display: flex; justify-content: space-between; margin-top: 6px;
  font-family: var(--font-mono); font-size: 10px; color: var(--muted); letter-spacing: 0.04em;
}
.zona-card__trend {
  display: flex; justify-content: space-between; align-items: center;
  padding: 16px 0; border-top: 1px solid var(--line-soft);
}
.zona-card__trend-label { font-family: var(--font-sans); font-size: 14px; color: var(--ink-2); }
.zona-card__trend-val {
  font-family: var(--font-sans); font-size: 20px; font-weight: 500; color: var(--ink);
}
.zona-card__trend-val.up { color: var(--positive); }
.zona-card__footnote {
  margin-top: 12px; padding-top: 14px; border-top: 1px solid var(--line-soft);
  font-family: var(--font-mono); font-size: 10px; color: var(--muted);
  letter-spacing: 0.02em; font-style: italic;
}
@media (max-width: 720px) {
  .zona-section { padding: 32px 20px; }
  .zona-card { padding: 22px; }
  .zona-card__grid { grid-template-columns: 1fr; gap: 14px; }
  .zona-card__metric-value { font-size: 24px; }
}

/* === DEMOGRAFÍA dentro de zona-card === */
.zona-demo { margin-top: 8px; padding-top: 24px; border-top: 1px solid var(--line-soft); }
.zona-demo__title {
  font-family: var(--font-mono); font-size: 11px; text-transform: uppercase;
  letter-spacing: 0.06em; color: var(--muted); margin-bottom: 18px;
}
.zona-demo__grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px 16px;
}
.zona-demo__cell { text-align: left; }
.zona-demo__val {
  font-family: var(--font-sans); font-size: 26px; font-weight: 500;
  letter-spacing: -0.02em; color: var(--ink); line-height: 1;
}
.zona-demo__lbl {
  font-family: var(--font-mono); font-size: 10px; text-transform: uppercase;
  letter-spacing: 0.04em; color: var(--muted); margin-top: 6px;
}
@media (max-width: 720px) {
  .zona-demo__grid { grid-template-columns: repeat(2, 1fr); gap: 16px 12px; }
  .zona-demo__val { font-size: 22px; }
}

/* === PRESIÓN TURÍSTICA === */
.zona-tur { margin-top: 8px; padding-top: 24px; border-top: 1px solid var(--line-soft); }
.zona-tur__head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; }
.zona-tur__title { font-family: var(--font-sans); font-size: 14px; color: var(--ink-2); }
.zona-tur__badge {
  font-family: var(--font-mono); font-size: 10px; text-transform: uppercase;
  letter-spacing: 0.06em; padding: 3px 9px; border-radius: 2px;
}
.zona-tur__badge--high { background: var(--oxblood); color: #fff0e6; }
.zona-tur__badge--mid { background: var(--gold); color: #1a1a1a; }
.zona-tur__badge--low { background: var(--positive); color: #f0f5ec; }
.zona-tur__bar {
  position: relative; height: 8px; background: var(--paper-2);
  border-radius: 4px; overflow: hidden; margin-bottom: 10px;
}
.zona-tur__bar-fill { height: 100%; border-radius: 4px; }
.zona-tur__bar-fill--high { background: var(--oxblood); }
.zona-tur__bar-fill--mid { background: var(--gold); }
.zona-tur__bar-fill--low { background: var(--positive); }
.zona-tur__bar-media {
  position: absolute; top: -2px; width: 2px; height: 12px;
  background: var(--ink); opacity: 0.4;
}
.zona-tur__detail {
  display: flex; justify-content: space-between;
  font-family: var(--font-mono); font-size: 10px; color: var(--muted); letter-spacing: 0.02em;
}
@media (max-width: 720px) {
  .zona-tur__detail { flex-direction: column; gap: 4px; }
}

/* === MAPA LEAFLET en map-card === */
.map-card__leaflet {
  width: 100%; height: 320px;
  border: 1px solid var(--line);
  background: var(--paper-2);
  position: relative;
  z-index: 1;
}
.map-card__coords {
  padding: 10px 14px;
  font-family: var(--font-mono); font-size: 11px;
  color: var(--muted);
  display: flex; justify-content: space-between; align-items: center;
  background: var(--paper-3); border: 1px solid var(--line); border-top: none;
}
.map-card__coords a { color: var(--gold-2); }
.map-card__coords a:hover { color: var(--ink); }

/* Marker dorado custom (sin imágenes) */
.rb-marker { position: relative; width: 20px; height: 20px; }
.rb-marker__dot {
  position: absolute; top: 4px; left: 4px;
  width: 12px; height: 12px;
  background: var(--gold); border: 2px solid var(--paper-3);
  border-radius: 50%;
  box-shadow: 0 0 0 1px var(--gold-2), 0 2px 6px rgba(0,0,0,0.3);
}
.rb-marker__pulse {
  position: absolute; top: 0; left: 0;
  width: 20px; height: 20px;
  border: 2px solid var(--gold);
  border-radius: 50%;
  animation: rb-pulse 2s ease-out infinite;
  opacity: 0;
}
@keyframes rb-pulse {
  0% { transform: scale(0.5); opacity: 0.8; }
  100% { transform: scale(1.8); opacity: 0; }
}

/* Override Leaflet defaults para encajar con estilo */
.leaflet-container { font-family: var(--font-mono); }
.leaflet-control-zoom a {
  background: var(--paper-3) !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}
.leaflet-control-zoom a:hover { background: var(--paper-2) !important; }
.leaflet-control-attribution {
  background: rgba(245,243,238,0.85) !important;
  font-size: 9px !important;
  color: var(--muted) !important;
}
.leaflet-control-attribution a { color: var(--gold-2) !important; }

@media (max-width: 720px) {
  .map-card__leaflet { height: 240px; }
}

/* === COMPARABLES / INMUEBLES SIMILARES === */
.comp-section { padding: 48px 32px; border-bottom: 1px solid var(--line); background: var(--paper); }
.comp-section__inner { max-width: 1200px; margin: 0 auto; }
.comp-section__eye {
  font-family: var(--font-mono); font-size: 11px; text-transform: uppercase;
  letter-spacing: 0.08em; color: var(--gold-2); margin-bottom: 6px;
}
.comp-section__title {
  font-family: var(--font-serif); font-size: 24px; font-style: italic;
  font-weight: 400; margin: 0 0 8px; color: var(--ink);
}
.comp-section__sub { font-size: 14px; color: var(--muted); margin: 0 0 28px; max-width: 560px; line-height: 1.5; }
.comp-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.comp-card {
  display: block; padding: 20px; background: var(--paper-3);
  border: 1px solid var(--line); transition: border-color 0.15s, transform 0.15s;
}
.comp-card:hover { border-color: var(--gold); transform: translateY(-2px); }
.comp-card__price {
  font-family: var(--font-sans); font-size: 22px; font-weight: 600;
  color: var(--ink); letter-spacing: -0.02em; margin-bottom: 8px;
}
.comp-card__addr {
  font-family: var(--font-sans); font-size: 14px; font-weight: 500;
  color: var(--ink-2); margin-bottom: 6px; line-height: 1.3;
}
.comp-card__meta {
  font-family: var(--font-mono); font-size: 11px; color: var(--muted);
  letter-spacing: 0.02em;
}
@media (max-width: 720px) {
  .comp-section { padding: 32px 20px; }
  .comp-grid { grid-template-columns: 1fr; }
}

/* === HISTÓRICO ALQUILER (sparkline) === */
.zona-hist { margin-top: 8px; padding-top: 24px; border-top: 1px solid var(--line-soft); }
.zona-hist__head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 12px; }
.zona-hist__label { font-family: var(--font-sans); font-size: 14px; color: var(--ink-2); }
.zona-hist__pct {
  font-family: var(--font-sans); font-size: 20px; font-weight: 500; color: var(--ink);
}
.zona-hist__pct.up { color: var(--positive); }
.zona-hist__spark { width: 100%; height: 90px; display: block; }
.zona-hist__foot {
  display: flex; justify-content: space-between; margin-top: 4px;
  font-family: var(--font-mono); font-size: 10px; color: var(--muted); letter-spacing: 0.02em;
}

/* === MODO EDIFICIO (valoración inversor) === */
.edif-section { padding: 48px 32px; border-bottom: 1px solid var(--line); background: var(--ink); color: var(--paper); }
.edif-section__inner { max-width: 900px; margin: 0 auto; }
.edif-badge {
  display: inline-block; font-family: var(--font-mono); font-size: 11px;
  text-transform: uppercase; letter-spacing: 0.08em; color: var(--ink);
  background: var(--gold); padding: 5px 12px; border-radius: 4px; margin-bottom: 16px;
}
.edif-title {
  font-family: var(--font-serif); font-size: 28px; font-style: italic;
  font-weight: 400; margin: 0 0 8px; color: var(--paper);
}
.edif-sub { font-size: 14px; color: var(--paper-dim, #b8b3a8); margin: 0 0 32px; max-width: 600px; line-height: 1.5; }
.edif-main { padding: 28px 0; border-top: 1px solid rgba(255,255,255,0.15); border-bottom: 1px solid rgba(255,255,255,0.15); margin-bottom: 28px; }
.edif-main__label { font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--gold); margin-bottom: 10px; }
.edif-main__value { font-family: var(--font-sans); font-size: 44px; font-weight: 600; letter-spacing: -0.02em; color: var(--paper); line-height: 1; }
.edif-main__range { font-family: var(--font-mono); font-size: 12px; color: var(--paper-dim, #b8b3a8); margin-top: 12px; }
.edif-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: rgba(255,255,255,0.12); margin-bottom: 28px; }
.edif-cell { background: var(--ink); padding: 20px; }
.edif-cell__label { font-family: var(--font-mono); font-size: 10px; text-transform: uppercase; letter-spacing: 0.05em; color: var(--gold); margin-bottom: 10px; }
.edif-cell__value { font-family: var(--font-sans); font-size: 24px; font-weight: 600; color: var(--paper); letter-spacing: -0.01em; }
.edif-cell__note { font-size: 11px; color: var(--paper-dim, #b8b3a8); margin-top: 6px; line-height: 1.3; }
.edif-avisos { display: flex; flex-direction: column; gap: 10px; }
.edif-aviso { font-size: 12.5px; color: var(--paper-dim, #b8b3a8); line-height: 1.5; padding-left: 16px; position: relative; }
.edif-aviso::before { content: '—'; position: absolute; left: 0; color: var(--gold); }
@media (max-width: 720px) {
  .edif-section { padding: 32px 20px; }
  .edif-grid { grid-template-columns: 1fr; }
  .edif-main__value { font-size: 34px; }
}

/* === PRECIO NOTARIAL DE ZONA === */
.zona-ref { margin-top: 8px; padding-top: 24px; border-top: 1px solid var(--line-soft); }
.zona-ref__head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 6px; }
.zona-ref__label { font-family: var(--font-sans); font-size: 14px; color: var(--ink-2); }
.zona-ref__value { font-family: var(--font-sans); font-size: 22px; font-weight: 600; color: var(--ink); }
.zona-ref__note { font-family: var(--font-mono); font-size: 10px; color: var(--muted); letter-spacing: 0.02em; }

/* === SELLO CALIBRADO NOTARIADO === */
.valuation-card__calib {
  font-family: var(--font-mono); font-size: 11px; color: var(--positive, #2d7d52);
  background: rgba(45,125,82,0.07); border: 1px solid rgba(45,125,82,0.2);
  padding: 8px 12px; border-radius: 4px; margin-top: 16px; letter-spacing: 0.01em;
}

/* === PRECIO NOTARIAL EN VALORACIÓN (contexto validación) === */
.valuation-card__notarial {
  margin-top: 18px; padding: 14px 16px; background: var(--paper-3, #faf8f3);
  border: 1px solid var(--line); border-radius: 6px;
}
.valuation-card__notarial-row { display: flex; justify-content: space-between; align-items: baseline; }
.valuation-card__notarial-label { font-family: var(--font-sans); font-size: 13px; color: var(--ink-2); }
.valuation-card__notarial-value { font-family: var(--font-sans); font-size: 18px; font-weight: 600; color: var(--ink); }
.valuation-card__notarial-note { font-family: var(--font-mono); font-size: 10px; color: var(--muted); margin-top: 4px; letter-spacing: 0.02em; }

/* === SUPERFICIE ATÍPICA === */
.atipica-section { padding: 40px 32px; border-bottom: 1px solid var(--line); background: var(--paper-3, #faf8f3); }
.atipica-section__inner { max-width: 760px; margin: 0 auto; }
.atipica-badge {
  display: inline-block; font-family: var(--font-mono); font-size: 11px;
  text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted);
  border: 1px solid var(--line); padding: 5px 12px; border-radius: 4px; margin-bottom: 14px;
}
.atipica-m2 { font-family: var(--font-serif); font-size: 28px; font-style: italic; color: var(--ink); margin-bottom: 12px; }
.atipica-msg { font-size: 15px; color: var(--ink-2); line-height: 1.6; margin: 0; }
@media (max-width: 720px) { .atipica-section { padding: 28px 20px; } }

/* === PERFIL DEL ACTIVO (edificio) === */
.edif-perfil { margin-bottom: 28px; border-top: 1px solid rgba(255,255,255,0.15); padding-top: 20px; }
.edif-perfil__row { display: flex; justify-content: space-between; align-items: baseline; padding: 7px 0; }
.edif-perfil__label { font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.05em; color: var(--gold); }
.edif-perfil__value { font-family: var(--font-sans); font-size: 15px; color: var(--paper); font-weight: 500; text-align: right; }

/* === HUT EN LA FINCA === */
.hut-finca { margin-top: 8px; padding: 16px 18px; background: var(--paper-3, #faf8f3); border: 1px solid var(--line); border-radius: 6px; }
.hut-finca__head { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.hut-finca__icon { color: var(--gold-2); font-size: 16px; }
.hut-finca__title { font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ink-2); }
.hut-finca__body { font-size: 14px; color: var(--ink); line-height: 1.5; margin: 0 0 6px; }
.hut-finca__body strong { font-weight: 600; }
.hut-finca__note { font-family: var(--font-mono); font-size: 10px; color: var(--muted); line-height: 1.4; margin: 0; }

/* === BOTÓN COMPARTIR === */
.share-btn {
  display: inline-flex; align-items: center; gap: 7px; margin-top: 18px;
  font-family: var(--font-sans); font-size: 13px; color: var(--ink-2);
  background: transparent; border: 1px solid var(--line); border-radius: 22px;
  padding: 8px 16px; cursor: pointer; transition: all 0.15s;
}
.share-btn:hover { border-color: var(--gold); color: var(--ink); }
.share-btn svg { color: var(--gold-2); }

/* === EVOLUCIÓN TEMPORAL DEL VALOR === */
.evolucion-valor { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line); }
.evol-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 8px; }
.evol-label { font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.05em; color: var(--ink-2); }
.evol-change { font-family: var(--font-sans); font-size: 15px; font-weight: 600; }
.evol-change.pos { color: var(--positive, #2d7d52); }
.evol-change.neg { color: var(--negative, #b5503c); }
.evol-spark { width: 100%; height: 90px; display: block; }
.evol-foot { display: flex; justify-content: space-between; font-family: var(--font-mono); font-size: 10px; color: var(--muted); margin-top: 2px; }
.evol-note { font-family: var(--font-mono); font-size: 9.5px; color: var(--muted); line-height: 1.4; margin: 8px 0 0; }

/* === AUTH (registro / login / cuenta) === */
.auth-nav { display: flex; align-items: center; justify-content: space-between; max-width: 1200px; margin: 0 auto; padding: 16px 24px; border-bottom: 1px solid var(--line-soft); }
.auth-nav__brand { font-family: var(--font-serif); font-size: 22px; font-style: italic; letter-spacing: -0.01em; color: var(--ink); }
.auth-nav__dot { color: var(--gold-2); }
.auth-nav__link { font-family: var(--font-mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ink-2); }
.auth-nav__link:hover { color: var(--gold-2); }
.auth-main { min-height: calc(100vh - 60px); display: flex; align-items: flex-start; justify-content: center; padding: 60px 24px; }
.auth-card { width: 100%; max-width: 380px; }
.auth-title { font-family: var(--font-serif); font-size: 34px; font-style: italic; color: var(--ink); margin: 0 0 8px; letter-spacing: -0.01em; }
.auth-sub { font-size: 15px; color: var(--muted); margin: 0 0 28px; line-height: 1.5; }
.auth-label { display: block; font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.05em; color: var(--ink-2); margin: 18px 0 6px; }
.auth-input { width: 100%; box-sizing: border-box; font-family: var(--font-sans); font-size: 15px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 4px; background: var(--paper-3); color: var(--ink); }
.auth-input:focus { outline: none; border-color: var(--gold); }
.auth-error { display: block; font-family: var(--font-sans); font-size: 12.5px; color: #b5503c; margin-top: 5px; }
.auth-check { display: flex; align-items: flex-start; gap: 9px; margin: 18px 0 4px; font-size: 13px; color: var(--ink-2); line-height: 1.4; }
.auth-check input { margin-top: 2px; }
.auth-check a { color: var(--gold-2); text-decoration: underline; }
.auth-btn { width: 100%; margin-top: 24px; font-family: var(--font-sans); font-size: 15px; font-weight: 500; padding: 12px; background: var(--ink); color: var(--paper); border: none; border-radius: 3px; cursor: pointer; transition: background 0.15s; }
.auth-btn:hover { background: var(--gold-2); }
.auth-btn--ghost { background: transparent; color: var(--ink-2); border: 1px solid var(--line); margin-top: 20px; display: block; text-align: center; }
.auth-btn--ghost:hover { background: var(--paper-2); color: var(--ink); }
.auth-alt { text-align: center; font-size: 14px; color: var(--muted); margin-top: 24px; }
.auth-alt a { color: var(--gold-2); }
.auth-flash { font-size: 13.5px; padding: 11px 14px; border-radius: 4px; margin-bottom: 16px; }
.auth-flash--error { background: rgba(181,80,60,0.08); border: 1px solid rgba(181,80,60,0.25); color: #8a3a2a; }
.auth-flash--success { background: rgba(31,90,58,0.08); border: 1px solid rgba(31,90,58,0.25); color: var(--positive); }
.auth-flash--info { background: var(--paper-2); border: 1px solid var(--line); color: var(--ink-2); }
.auth-info { border-top: 1px solid var(--line); margin-top: 8px; }
.auth-info__row { display: flex; justify-content: space-between; padding: 14px 0; border-bottom: 1px solid var(--line-soft); }
.auth-info__label { font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.05em; color: var(--muted); }
.auth-info__value { font-family: var(--font-sans); font-size: 15px; color: var(--ink); }

/* === PÁGINAS LEGALES === */
.legal-main { max-width: 680px; margin: 0 auto; padding: 56px 24px 80px; }
.legal-title { font-family: var(--font-serif); font-size: 38px; font-style: italic; color: var(--ink); margin: 0 0 6px; letter-spacing: -0.01em; }
.legal-updated { font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.05em; color: var(--muted); margin: 0 0 36px; }
.legal-h2 { font-family: var(--font-sans); font-size: 17px; font-weight: 600; color: var(--ink); margin: 32px 0 10px; }
.legal-main p { font-size: 15px; color: var(--ink-2); line-height: 1.65; margin: 0 0 14px; }
.legal-main a { color: var(--gold-2); text-decoration: underline; }
.legal-foot { margin-top: 40px; padding-top: 20px; border-top: 1px solid var(--line); }

/* === BOTÓN GUARDAR (favoritos) === */
.save-btn { margin-right: 8px; }
.save-btn svg { color: var(--gold-2); fill: none; transition: fill 0.15s; }
.save-btn--active { border-color: var(--gold); color: var(--ink); }
.save-btn--active svg { fill: var(--gold); color: var(--gold-2); }

/* === TOAST INVITACIÓN REGISTRO === */
.rb-toast {
  position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%) translateY(20px);
  z-index: 1000; max-width: 420px; width: calc(100% - 32px);
  background: var(--ink); color: var(--paper); border-radius: 8px;
  padding: 16px 18px; box-shadow: 0 8px 32px rgba(0,0,0,0.22);
  opacity: 0; transition: opacity 0.3s, transform 0.3s;
}
.rb-toast--show { opacity: 1; transform: translateX(-50%) translateY(0); }
.rb-toast__body { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 14px; }
.rb-toast__icon { color: var(--gold); flex-shrink: 0; margin-top: 1px; }
.rb-toast__text { display: flex; flex-direction: column; gap: 3px; }
.rb-toast__text strong { font-family: var(--font-sans); font-size: 15px; font-weight: 600; }
.rb-toast__text span { font-size: 13px; color: rgba(245,243,238,0.7); line-height: 1.45; }
.rb-toast__actions { display: flex; gap: 10px; align-items: center; }
.rb-toast__cta { font-family: var(--font-sans); font-size: 13.5px; font-weight: 500; padding: 8px 16px; background: var(--gold-2); color: var(--paper); border-radius: 4px; }
.rb-toast__cta:hover { background: var(--gold); }
.rb-toast__close { font-family: var(--font-sans); font-size: 13px; color: rgba(245,243,238,0.6); background: none; border: none; cursor: pointer; padding: 8px; }
.rb-toast__close:hover { color: var(--paper); }

/* === PÁGINA CUENTA + FAVORITOS === */
.cuenta-main { max-width: 560px; margin: 0 auto; padding: 50px 24px 80px; }
.cuenta-favs { margin-top: 40px; }
.cuenta-favs__title { font-family: var(--font-sans); font-size: 18px; font-weight: 600; color: var(--ink); margin: 0 0 16px; }
.cuenta-favs__list { display: flex; flex-direction: column; gap: 10px; }
.fav-card { display: flex; align-items: center; justify-content: space-between; padding: 15px 18px; border: 1px solid var(--line); border-radius: 6px; background: var(--paper-3); transition: border-color 0.15s; }
.fav-card:hover { border-color: var(--gold); }
.fav-card__main { display: flex; flex-direction: column; gap: 3px; }
.fav-card__dir { font-family: var(--font-sans); font-size: 14.5px; font-weight: 500; color: var(--ink); }
.fav-card__meta { font-family: var(--font-mono); font-size: 11px; color: var(--muted); }
.fav-card__arrow { color: var(--gold-2); font-size: 16px; }
.cuenta-favs__empty { text-align: center; padding: 40px 20px; border: 1px dashed var(--line); border-radius: 8px; color: var(--muted); }
.cuenta-favs__empty p { margin: 0 0 6px; font-size: 15px; }
.cuenta-favs__empty-sub { font-size: 13.5px; }
.cuenta-favs__empty strong { color: var(--ink-2); }

/* === CALCULADORA DE RENTABILIDAD === */
.renta-calc { margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--line); }
.renta-calc__head { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
.renta-calc__title { font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ink-2); }
.renta-calc__tag { font-family: var(--font-mono); font-size: 9px; text-transform: uppercase; letter-spacing: 0.05em; color: var(--gold-2); border: 1px solid var(--line); padding: 2px 7px; border-radius: 3px; }

.renta-headline { display: flex; gap: 28px; margin-bottom: 6px; }
.renta-headline__item { display: flex; flex-direction: column; gap: 3px; }
.renta-headline__label { font-family: var(--font-sans); font-size: 12px; color: var(--muted); }
.renta-headline__value { font-family: var(--font-serif); font-size: 30px; font-style: italic; color: var(--ink); line-height: 1; }
.renta-headline__note { font-family: var(--font-mono); font-size: 10px; color: var(--muted); line-height: 1.4; margin: 8px 0 0; }

.renta-sim { margin-top: 20px; padding: 18px; background: var(--paper-3); border: 1px solid var(--line); border-radius: 8px; }
.renta-sim__title { font-family: var(--font-sans); font-size: 13.5px; font-weight: 600; color: var(--ink); margin-bottom: 14px; }
.renta-field { display: flex; flex-direction: column; gap: 5px; margin-bottom: 12px; }
.renta-field label { font-family: var(--font-sans); font-size: 12.5px; color: var(--ink-2); }
.renta-field input { font-family: var(--font-mono); font-size: 14px; padding: 8px 11px; border: 1px solid var(--line); border-radius: 4px; background: var(--paper); color: var(--ink); width: 100%; box-sizing: border-box; }
.renta-field input:focus { outline: none; border-color: var(--gold); }

.renta-result { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line-soft); }
.renta-result__row { display: flex; justify-content: space-between; align-items: baseline; padding: 6px 0; font-family: var(--font-sans); font-size: 13.5px; color: var(--ink-2); }
.renta-result__row span:last-child { font-family: var(--font-mono); color: var(--ink); }
.renta-result__row--main { margin-top: 6px; padding-top: 12px; border-top: 1px solid var(--line-soft); font-weight: 600; font-size: 15px; }
.renta-result__row--main span:last-child { font-family: var(--font-serif); font-style: italic; font-size: 22px; color: var(--positive); }
.renta-sim__note { font-family: var(--font-mono); font-size: 9.5px; color: var(--muted); line-height: 1.45; margin: 12px 0 0; }

@media (max-width: 600px) { .renta-headline { gap: 18px; } .renta-headline__value { font-size: 26px; } }

/* === EXPLORAR (filtrado avanzado) === */
.explorar { max-width: 1100px; margin: 0 auto; padding: 40px 24px 80px; }
.explorar__head { margin-bottom: 28px; }
.explorar__title { font-family: var(--font-serif); font-size: 34px; font-style: italic; color: var(--ink); margin: 0 0 6px; letter-spacing: -0.01em; }
.explorar__sub { font-size: 15px; color: var(--muted); margin: 0; max-width: 600px; line-height: 1.5; }
.explorar__grid { display: grid; grid-template-columns: 280px 1fr; gap: 28px; align-items: start; }
.filtros { position: sticky; top: 20px; border: 1px solid var(--line); border-radius: 8px; padding: 20px; background: var(--paper-3); }
.filtro-group { margin-bottom: 14px; }
.filtro-row { display: flex; gap: 10px; }
.filtro-row .filtro-group { flex: 1; }
.filtro-label { display: block; font-family: var(--font-mono); font-size: 10px; text-transform: uppercase; letter-spacing: 0.05em; color: var(--ink-2); margin-bottom: 5px; }
.filtro-input { width: 100%; box-sizing: border-box; font-family: var(--font-sans); font-size: 14px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 4px; background: var(--paper); color: var(--ink); }
.filtro-input:focus { outline: none; border-color: var(--gold); }
.filtro-btn { width: 100%; margin-top: 8px; font-family: var(--font-sans); font-size: 14px; font-weight: 500; padding: 11px; background: var(--ink); color: var(--paper); border: none; border-radius: 3px; cursor: pointer; }
.filtro-btn:hover { background: var(--gold-2); }
.resultados__head { font-family: var(--font-sans); font-size: 14px; color: var(--ink-2); margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.resultados__head strong { color: var(--ink); font-weight: 600; }
.resultados__list { display: flex; flex-direction: column; gap: 8px; }
.res-card { display: flex; justify-content: space-between; align-items: center; padding: 14px 16px; border: 1px solid var(--line); border-radius: 6px; background: var(--paper-3); transition: border-color 0.15s; }
.res-card:hover { border-color: var(--gold); }
.res-card__main { display: flex; flex-direction: column; gap: 3px; }
.res-card__dir { font-family: var(--font-sans); font-size: 14px; font-weight: 500; color: var(--ink); }
.res-card__meta { font-family: var(--font-mono); font-size: 11px; color: var(--muted); }
.res-card__vals { text-align: right; display: flex; flex-direction: column; gap: 2px; }
.res-card__val { font-family: var(--font-sans); font-size: 15px; font-weight: 600; color: var(--ink); }
.res-card__m2 { font-family: var(--font-mono); font-size: 11px; color: var(--gold-2); }
.res-empty { padding: 40px 20px; text-align: center; color: var(--muted); border: 1px dashed var(--line); border-radius: 8px; }
@media (max-width: 800px) {
  .explorar__grid { grid-template-columns: 1fr; }
  .filtros { position: static; }
}

/* === PANEL ESTADÍSTICAS (explorar) === */
.stats-panel { border: 1px solid var(--line); border-radius: 8px; padding: 18px 20px; margin-bottom: 20px; background: var(--paper-3); }
.stats-title { font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.05em; color: var(--gold-2); margin-bottom: 14px; }
.stats-metrics { display: flex; flex-wrap: wrap; gap: 22px; margin-bottom: 18px; }
.stat { display: flex; flex-direction: column; gap: 3px; }
.stat__label { font-family: var(--font-sans); font-size: 11px; color: var(--muted); }
.stat__val { font-family: var(--font-serif); font-size: 19px; font-style: italic; color: var(--ink); }
.stats-histo__title { font-family: var(--font-sans); font-size: 11px; color: var(--muted); margin-bottom: 8px; }
.histo { display: flex; align-items: flex-end; gap: 6px; height: 70px; }
.histo-bar { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; }
.histo-bar__fill { width: 100%; background: linear-gradient(to top, var(--gold-2), var(--gold)); border-radius: 3px 3px 0 0; min-height: 2px; }
.histo-bar__label { font-family: var(--font-mono); font-size: 8.5px; color: var(--muted); margin-top: 5px; white-space: nowrap; }
.stats-note { font-family: var(--font-mono); font-size: 9.5px; color: var(--muted); line-height: 1.4; margin: 14px 0 0; }
@media (max-width: 600px) { .stats-metrics { gap: 14px; } .stat__val { font-size: 16px; } }

/* === Ajuste por características (simulador en card de valoración) === */
.rb-ajuste {
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid var(--line-soft);
}
.rb-ajuste__eye {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold-2);
  margin-bottom: 8px;
}
.rb-ajuste__intro {
  font-size: 13px;
  line-height: 1.5;
  color: var(--muted);
  margin: 0 0 14px;
}
.rb-ajuste__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 16px;
}
.rb-feat {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  background: var(--paper-3);
  border: 1px solid var(--line);
  border-radius: 8px;
  cursor: pointer;
  font-family: var(--font-sans);
  font-size: 13px;
  color: var(--ink-2);
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
  -webkit-tap-highlight-color: transparent;
  -webkit-appearance: none;
  appearance: none;
  touch-action: manipulation;
}
.rb-feat:hover { border-color: var(--gold-2); }
.rb-feat--on {
  background: var(--ink) !important;
  border-color: var(--ink) !important;
  color: var(--paper-3) !important;
}
.rb-feat__pct {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--muted);
}
.rb-feat--on .rb-feat__pct { color: var(--gold); }
.rb-ajuste__result {
  background: var(--paper-3);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 14px 16px;
}
.rb-ajuste__result-label {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gold-2);
  margin-bottom: 4px;
}
.rb-ajuste__result-value {
  font-family: var(--font-serif);
  font-size: 26px;
  color: var(--ink);
  line-height: 1.1;
}
.rb-ajuste__detalle {
  font-size: 12px;
  color: var(--muted);
  margin-top: 6px;
  line-height: 1.4;
}
.rb-ajuste__nota {
  font-size: 11px;
  color: var(--muted);
  line-height: 1.5;
  margin: 10px 0 0;
  opacity: 0.85;
}

.rb-ajuste__sub {
  font-size: 12px;
  color: var(--muted);
  margin: 14px 0 8px;
  font-family: var(--font-sans);
}
.rb-ajuste__sub:first-of-type { margin-top: 0; }

/* === Marcador deslizante en la barra de rango === */
.valuation-card__range { position: relative; }
.valuation-card__range-marker {
  position: absolute;
  bottom: 13px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--ink);
  border: 3px solid var(--paper-3);
  transform: translateX(-50%) translateZ(0);
  transition: left 0.35s cubic-bezier(.4,0,.2,1);
  left: 50%;
  z-index: 3;
  will-change: left;
  box-shadow: 0 0 0 1px var(--ink), 0 2px 6px rgba(0,0,0,0.25);
}
.valuation-card__posicion {
  font-size: 12px;
  color: var(--muted);
  margin-top: 6px;
  font-family: var(--font-sans);
  min-height: 16px;
}
.valuation-card__central-value { transition: opacity 0.15s ease; }
.rb-ajuste--inline {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--line-soft);
}

/* === Botón "Me interesa comprar" + contador === */
.interes-btn--active {
  background: var(--ink);
  border-color: var(--ink);
  color: var(--paper-3);
}
.interes-btn--active svg { stroke: var(--gold); }
.interes-contador {
  flex-basis: 100%;
  width: 100%;
  margin-top: 12px;
  font-size: 13px;
  color: var(--muted);
  font-family: var(--font-sans);
  line-height: 1.4;
}
.interes-contador__txt strong { color: var(--ink); font-weight: 600; }
.interes-contador__cero { color: var(--muted); font-style: italic; }
