/* Estructura general y utilidades de layout. */
.container { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--sp-s); }
.site-main { min-height: 50vh; }
.section { padding-block: var(--sp-xl); }
.section--destacadas { background: var(--color-surface); }
.section__head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--sp-s); margin-bottom: var(--sp-m); flex-wrap: wrap; }

.grid-propiedades {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: var(--sp-m);
}

.link-more { color: var(--color-primary); font-weight: 600; }
.link-more:hover { color: var(--color-primary-dark); }
.tf-vacio { color: var(--color-muted); padding: var(--sp-l) 0; text-align: center; }

/* Accesibilidad: skip link y screen-reader. */
.screen-reader-text {
  position: absolute !important; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.skip-link {
  position: absolute; left: -999px; top: 0; z-index: 1000;
  background: var(--color-primary); color: #fff; padding: var(--sp-xs) var(--sp-s);
}
.skip-link:focus { left: var(--sp-s); top: var(--sp-s); }

/* Paginación */
.pagination, .nav-links {
  display: flex; gap: var(--sp-xs); flex-wrap: wrap; justify-content: center;
  margin-top: var(--sp-l);
}
.pagination .page-numbers {
  display: inline-flex; min-width: 42px; height: 42px; align-items: center; justify-content: center;
  padding: 0 var(--sp-xs); border: 1px solid var(--color-line); border-radius: var(--radius-sm);
  background: var(--color-surface); color: var(--color-ink);
}
.pagination .page-numbers.current { background: var(--color-primary); color: #fff; border-color: var(--color-primary); }
.pagination a.page-numbers:hover { border-color: var(--color-primary); }

/* Breadcrumb */
.breadcrumb { font-size: var(--fs-small); color: var(--color-muted); margin-bottom: var(--sp-s); display: flex; gap: .4rem; flex-wrap: wrap; }
.breadcrumb a { color: var(--color-primary); }

/* Layout del archivo: filtros + resultados */
.archive-layout { display: grid; grid-template-columns: 1fr; gap: var(--sp-l); padding-block: var(--sp-l); }
@media (min-width: 960px) {
  .archive-layout { grid-template-columns: 300px 1fr; align-items: start; }
  .archive-filtros { position: sticky; top: calc(var(--header-h) + var(--sp-s)); }
}
