/* Buscador */
.buscador{ padding:120px 0; border-bottom:1px solid var(--rule) }
.buscador .sec-head{ margin-bottom:48px }

/* Barra de filtros */
.bf{
  border:1px solid var(--rule);
  background:var(--paper);
  margin-bottom:36px;
}

/* Tipología — tarjetas grandes con icono */
.bf-tipo{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:1px;
  background:var(--rule-soft);
}
.bf-tipocard{
  background:var(--paper); padding:24px 22px;
  display:flex; flex-direction:column; align-items:flex-start; gap:6px;
  border:0; cursor:pointer; text-align:left;
  transition:background .18s, color .18s;
  color:var(--ink-2);
}
.bf-tipocard svg{ width:42px; height:42px; margin-bottom:8px; color:inherit }
.bf-tc-l{ font-family:var(--serif); font-size:22px; line-height:1; color:var(--ink) }
.bf-tc-s{
  font-family:var(--mono); font-size:10px; letter-spacing:.2em;
  text-transform:uppercase; color:var(--muted);
}
.bf-tipocard:hover{ background:var(--bone) }
.bf-tipocard.active{
  background:var(--ink); color:var(--bone);
}
.bf-tipocard.active .bf-tc-l{ color:var(--bone) }
.bf-tipocard.active .bf-tc-s{ color:#9c958a }

/* Segunda fila */
.bf-row{
  display:grid; grid-template-columns:1.4fr 1fr 1.4fr auto;
  gap:0; border-top:1px solid var(--rule-soft);
}
.bf-block{
  padding:20px 24px; border-right:1px solid var(--rule-soft);
  display:flex; flex-direction:column; gap:10px; justify-content:center;
}
.bf-block:last-of-type{ border-right:0 }
.bf-lbl{
  font-family:var(--mono); font-size:10px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--muted);
}
.bf-lbl em{ color:var(--ink); font-style:normal; font-weight:500 }

.bf-pills{ display:flex; flex-wrap:wrap; gap:6px }
.pill{
  padding:8px 14px; border:1px solid var(--rule-soft); background:transparent;
  font-family:var(--mono); font-size:11px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--ink-2); cursor:pointer;
  transition:all .15s;
}
.pill:hover{ border-color:var(--ink); color:var(--ink) }
.pill.active{ background:var(--ink); color:var(--bone); border-color:var(--ink) }

/* Terraza toggle */
.bf-toggle{
  display:inline-flex; align-items:center; gap:10px;
  padding:10px 14px;
  border:1px solid var(--rule-soft); background:transparent;
  font-family:var(--mono); font-size:11px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--ink-2); cursor:pointer;
  transition:all .15s;
  align-self:flex-start;
}
.bf-toggle svg{ width:18px; height:18px; flex-shrink:0 }
.bf-toggle:hover{ border-color:var(--ink); color:var(--ink) }
.bf-toggle.active{ background:var(--accent); color:var(--bone); border-color:var(--accent) }

/* m² range */
.bf-range-wrap{ min-width:240px }
.bus-range{ position:relative; height:28px }
.bus-range input[type=range]{ position:absolute; inset:0; width:100%; pointer-events:none; -webkit-appearance:none; appearance:none; background:transparent; margin:0 }
.bus-range input[type=range]::-webkit-slider-runnable-track{ height:2px; background:var(--rule-soft) }
.bus-range input[type=range]::-moz-range-track{ height:2px; background:var(--rule-soft) }
.bus-range input[type=range]::-webkit-slider-thumb{ pointer-events:auto; -webkit-appearance:none; width:18px; height:18px; border-radius:50%; background:var(--ink); border:2px solid var(--paper); margin-top:-8px; cursor:pointer }
.bus-range input[type=range]::-moz-range-thumb{ pointer-events:auto; width:18px; height:18px; border-radius:50%; background:var(--ink); border:2px solid var(--paper); cursor:pointer }

/* Reset */
.bf-reset{
  background:transparent; border:0; border-left:1px solid var(--rule-soft);
  padding:0 24px; color:var(--ink-2); cursor:pointer;
  font-family:var(--mono); font-size:11px; letter-spacing:.22em;
  text-transform:uppercase; transition:color .15s, background .15s;
}
.bf-reset:hover{ background:var(--bone); color:var(--accent) }

/* Cabecera de resultados — número grande */
.bf-results-head{
  display:flex; justify-content:space-between; align-items:baseline;
  padding-bottom:18px; margin-bottom:24px;
  border-bottom:1px solid var(--rule);
}
.bf-count{ display:flex; align-items:baseline; gap:14px }
.bf-count-n{
  font-family:var(--serif); font-size:64px; line-height:.9;
  font-weight:400; color:var(--ink); font-feature-settings:"tnum" 1;
}
.bf-count-l{
  font-family:var(--mono); font-size:11px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--ink-2);
}

/* Cards de resultados — dorm + m² constr protagonizan */
.bus-grid-cards{ display:grid; grid-template-columns:repeat(3, 1fr); gap:14px }
.bus-card{
  display:flex; flex-direction:column; gap:14px;
  padding:22px 24px 20px; background:var(--paper);
  border:1px solid var(--rule-soft);
  transition:border-color .15s, transform .15s, background .15s;
  position:relative; min-height:240px;
}
.bus-card:hover{ border-color:var(--ink); transform:translateY(-2px) }
.bus-card.atico{ background:#f6f1e5 }
.bc-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:12px }
.bc-letter{
  font-size:36px; line-height:.85; font-style:italic; color:var(--ink);
  letter-spacing:-.02em;
}
.bus-card.atico .bc-letter{ color:var(--accent) }

.bc-hero{
  display:grid; grid-template-columns:1fr 1fr;
  padding:6px 0 16px; border-bottom:1px solid var(--rule-soft);
  gap:14px;
}
.bc-hero-cell{ display:flex; flex-direction:column; gap:4px }
.bc-big{
  font-size:46px; line-height:.9; font-weight:400; color:var(--ink);
  letter-spacing:-.02em; font-feature-settings:"tnum" 1;
}
.bc-big em{
  font-style:normal; font-size:18px; margin-left:2px;
  font-family:var(--sans); color:var(--ink-2); vertical-align:top;
  position:relative; top:6px;
}
.bus-card.atico .bc-big{ color:var(--ink) }
.bc-big-l{
  font-family:var(--mono); font-size:10px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--muted);
}
.bc-meta{ font-size:13px; color:var(--ink-2) }
.bc-meta b{ color:var(--ink); font-weight:500 }
.bc-foot{ display:flex; justify-content:space-between; align-items:center; padding-top:6px; margin-top:auto }
.bc-link{ font-family:var(--mono); font-size:10.5px; letter-spacing:.22em; text-transform:uppercase; color:var(--ink) }
.bc-ident{ font-family:var(--mono); font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--accent) }

.bus-empty{ text-align:center; padding:60px 0 }
.bus-empty .serif-it{ font-size:22px; margin-top:8px }

@media (max-width: 1100px){
  .bus-grid-cards{ grid-template-columns:repeat(2, 1fr) }
  .bf-row{ grid-template-columns:1fr 1fr; }
  .bf-block{ border-right:1px solid var(--rule-soft); border-bottom:1px solid var(--rule-soft) }
  .bf-block:nth-child(2n){ border-right:0 }
  .bf-reset{ grid-column:span 2; border:0; border-top:1px solid var(--rule-soft); padding:14px }
}
@media (max-width: 720px){
  .bf-tipo{ grid-template-columns:repeat(3, 1fr) }
  .bf-row{ grid-template-columns:1fr }
  .bf-block{ border-right:0 }
  .bus-grid-cards{ grid-template-columns:1fr }
  .bf-count-n{ font-size:48px }
}
