/*--------------------------------------------------------------
  XARU HOME — Marketplace (PLP)
  Barra de búsqueda, panel de filtros, cabecera de resultados,
  rejilla de tarjetas, mapa, vista dividida y paginación.
  Depende de las variables de style.css y de los distintivos de xaru.css.
----------------------------------------------------------------*/

/* La plantilla lleva overflow-x:hidden en el body, y eso convierte al body en
   contenedor de scroll: cualquier position:sticky deja de pegarse. `clip`
   recorta igual el desbordamiento horizontal sin crear ese contenedor, asi que
   la barra de busqueda si acompaña al desplazamiento. Solo se aplica en las
   paginas del marketplace, que son las unicas que cargan esta hoja. */
@supports (overflow: clip) {
  /* La plantilla pone `overflow:auto; overflow-x:hidden`; hay que neutralizar
     tambien el eje vertical, porque `auto` por si solo ya crea el contenedor.
     `body.scroll_off` (menu movil abierto) conserva su regla: es mas especifica. */
  body { overflow-x: clip; overflow-y: visible; }
}

.xr_mp {
  --mp-radius: 4px;
  --mp-ctrl-h: 46px;
  font-family: var(--secondary-font);
}

/* ============================================================ rutas hermanas */
.xr_mp_nav {
  display: flex; flex-wrap: wrap; gap: 8px;
  border-bottom: 1px solid var(--border-color); padding-bottom: 14px;
}
.xr_mp_navlink {
  display: inline-block; padding: 9px 16px; border-radius: 999px;
  font-family: var(--secondary-font); font-size: 12px;
  letter-spacing: .1em; text-transform: uppercase; text-decoration: none;
  color: var(--secondary-color); border: 1px solid var(--border-color);
  background: var(--white-color);
  transition: border-color .18s ease, color .18s ease, background .18s ease;
}
a.xr_mp_navlink:hover { border-color: var(--accent-color); color: var(--primary-color); }
.xr_mp_navlink.is-on {
  background: var(--primary-color); border-color: var(--primary-color); color: var(--accent-color);
}

/* ============================================================ barra superior */
.xr_mp_bar {
  display: flex; flex-wrap: wrap; gap: 14px; align-items: center;
  justify-content: space-between;
  padding: 16px 18px;
  background: var(--white-color);
  border: 1px solid var(--border-color);
  border-radius: var(--mp-radius);
  /* Se queda pegada bajo la cabecera del sitio, que tambien es sticky: por eso
     el desplazamiento y un z-index por debajo del suyo. */
  position: sticky; top: 86px; z-index: 8;
  box-shadow: 0 10px 24px -22px rgba(28, 27, 25, .5);
}
@media (max-width: 991px) { .xr_mp_bar { position: static; } }
.xr_mp_bar_left  { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; flex: 1 1 auto; }
.xr_mp_bar_right {
  display: flex; gap: 10px; align-items: center; flex: 0 0 auto;
  margin-inline-start: auto;
}

.xr_mp_seg {
  display: inline-flex; border: 1px solid var(--border-color);
  border-radius: var(--mp-radius); overflow: hidden; background: var(--gray3-color);
}
.xr_mp_seg button {
  border: 0; background: transparent; color: var(--secondary-color);
  font-size: 13px; letter-spacing: .04em; text-transform: uppercase;
  padding: 0 18px; height: var(--mp-ctrl-h); line-height: var(--mp-ctrl-h);
  cursor: pointer; transition: background .18s ease, color .18s ease;
  white-space: nowrap;
}
.xr_mp_seg button + button { border-inline-start: 1px solid var(--border-color); }
.xr_mp_seg button:hover  { color: var(--primary-color); }
.xr_mp_seg button.is-on  { background: var(--primary-color); color: var(--accent-color); }

.xr_mp_q,
.xr_mp_sel,
.xr_mp_sort,
.xr_mp_panel input,
.xr_mp_panel select {
  height: var(--mp-ctrl-h);
  border: 1px solid var(--border-color);
  border-radius: var(--mp-radius);
  background: var(--white-color);
  color: var(--primary-color);
  font-family: var(--secondary-font);
  font-size: 14px;
  padding: 0 14px;
  outline: none;
}
.xr_mp_q:focus, .xr_mp_sel:focus, .xr_mp_sort:focus,
.xr_mp_panel input:focus, .xr_mp_panel select:focus {
  border-color: var(--accent-color);
  box-shadow: 0 0 0 3px rgba(201, 168, 118, .18);
}
.xr_mp_q   { flex: 1 1 240px; min-width: 200px; }
.xr_mp_sel { max-width: 230px; }

.xr_mp_more {
  height: var(--mp-ctrl-h); padding: 0 20px; cursor: pointer;
  border: 1px solid var(--primary-color); background: transparent;
  color: var(--primary-color); border-radius: var(--mp-radius);
  font-size: 13px; letter-spacing: .06em; text-transform: uppercase;
  transition: background .18s ease, color .18s ease;
}
.xr_mp_more:hover { background: var(--primary-color); color: var(--accent-color); }

/* ============================================================ panel filtros */
.xr_mp_panel {
  margin-top: 10px; padding: 22px;
  background: var(--gray3-color);
  border: 1px solid var(--border-color);
  border-radius: var(--mp-radius);
}
.xr_mp_panel[hidden] { display: none; }
.xr_mp_panel_grid {
  display: grid; gap: 18px;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
}
.xr_mp_panel_grid label {
  display: flex; flex-direction: column; gap: 8px;
  font-size: 12px; letter-spacing: .08em; text-transform: uppercase;
  color: var(--secondary-color);
}
.xr_mp_range { display: flex; gap: 8px; }
.xr_mp_range input { width: 100%; min-width: 0; }
.xr_mp_check {
  flex-direction: row !important; align-items: center; gap: 10px !important;
  align-self: end; height: var(--mp-ctrl-h);
}
.xr_mp_check input { width: 17px; height: 17px; accent-color: var(--accent3-color); }

.xr_mp_amen { margin-top: 22px; }
.xr_mp_amen > p {
  font-size: 12px; letter-spacing: .08em; text-transform: uppercase;
  color: var(--secondary-color); margin: 0 0 10px;
}
.xr_mp_amchip {
  display: inline-flex; align-items: center; gap: 7px;
  border: 1px solid var(--border-color); border-radius: 999px;
  background: var(--white-color); color: var(--secondary-color);
  padding: 7px 14px; margin: 0 8px 8px 0; font-size: 13px; cursor: pointer;
  transition: border-color .18s ease, color .18s ease;
}
.xr_mp_amchip:hover { border-color: var(--accent-color); color: var(--primary-color); }
.xr_mp_amchip input { accent-color: var(--accent3-color); }
.xr_mp_panel_foot { margin-top: 18px; display: flex; justify-content: flex-end; }
.xr_mp_reset {
  background: transparent; border: 0; cursor: pointer;
  color: var(--accent3-color); font-size: 13px; letter-spacing: .06em;
  text-transform: uppercase; text-decoration: underline; text-underline-offset: 4px;
}

/* ============================================================ cabecera */
.xr_mp_head {
  display: flex; flex-wrap: wrap; gap: 14px;
  align-items: center; justify-content: space-between;
  margin: 26px 0 12px;
}
.xr_mp_count { margin: 0; font-size: 15px; color: var(--secondary-color); }
.xr_mp_count strong {
  font-family: var(--primary-font); font-size: 26px; font-weight: 500;
  color: var(--primary-color); margin-inline-end: 6px;
}
.xr_mp_head_right { display: flex; gap: 10px; align-items: center; }
.xr_mp_save {
  height: var(--mp-ctrl-h); padding: 0 18px; cursor: pointer;
  border: 1px solid var(--border-color); background: var(--white-color);
  color: var(--secondary-color); border-radius: var(--mp-radius); font-size: 13px;
  transition: border-color .18s ease, color .18s ease;
}
.xr_mp_save:hover:not(:disabled) { border-color: var(--accent-color); color: var(--primary-color); }
.xr_mp_save:disabled { opacity: .55; cursor: default; }

.xr_mp_chips { margin: 0 0 18px; display: flex; flex-wrap: wrap; gap: 8px; }
.xr_mp_chips:empty { display: none; }
.xr_mp_chip {
  border: 1px solid var(--accent-color); background: rgba(201, 168, 118, .12);
  color: var(--primary-color); border-radius: 999px; cursor: pointer;
  padding: 6px 13px; font-size: 12.5px; letter-spacing: .02em;
  transition: background .18s ease;
}
.xr_mp_chip:hover { background: rgba(201, 168, 118, .28); }

/* ============================================================ escenario */
.xr_mp_stage { display: block; }
.xr_mp_list {
  display: grid; gap: 26px;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
}
.xr_mp_list[hidden] { display: none; }

.xr_mp_map {
  height: 620px; border: 1px solid var(--border-color);
  border-radius: var(--mp-radius); overflow: hidden; background: var(--gray2-color);
}
.xr_mp_map[hidden] { display: none; }
.xr_mp_map_fallback {
  display: flex; align-items: center; justify-content: center;
  height: 100%; color: var(--secondary-color); font-size: 14px;
}

/* vista dividida: lista a la izquierda, mapa fijo a la derecha */
@media (min-width: 992px) {
  .xr_mp_stage[data-view="split"] {
    display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 24px; align-items: start;
  }
  .xr_mp_stage[data-view="split"] .xr_mp_list {
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    max-height: calc(100vh - 120px); overflow-y: auto; padding-inline-end: 6px;
  }
  .xr_mp_stage[data-view="split"] .xr_mp_map {
    position: sticky; top: 96px; height: calc(100vh - 120px);
  }
}
@media (max-width: 991px) {
  .xr_mp_stage[data-view="split"] .xr_mp_map { height: 420px; margin-bottom: 24px; }
}
.xr_mp_stage[data-view="map"] .xr_mp_map { height: calc(100vh - 200px); min-height: 480px; }

/* ============================================================ tarjeta */
.xr_mp_card {
  background: var(--white-color);
  border: 1px solid var(--border-color);
  border-radius: var(--mp-radius);
  overflow: hidden;
  display: flex; flex-direction: column;
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.xr_mp_card:hover {
  transform: translateY(-4px);
  border-color: var(--accent-color);
  box-shadow: 0 18px 40px -24px rgba(28, 27, 25, .45);
}
.xr_mp_media {
  position: relative; display: block; aspect-ratio: 4 / 3;
  background: var(--gray2-color); overflow: hidden;
}
.xr_mp_media picture, .xr_mp_media img { display: block; width: 100%; height: 100%; }
.xr_mp_media img { object-fit: cover; transition: transform .6s cubic-bezier(.2,.7,.3,1); }
.xr_mp_card:hover .xr_mp_media img { transform: scale(1.05); }
.xr_mp_price {
  position: absolute; inset-inline-start: 12px; bottom: 12px; z-index: 2;
  background: rgba(28, 27, 25, .86); color: var(--accent-color);
  font-family: var(--primary-font); font-size: 17px; letter-spacing: .01em;
  padding: 7px 14px; border-radius: var(--mp-radius); backdrop-filter: blur(6px);
}
.xr_mp_body { padding: 18px 18px 16px; display: flex; flex-direction: column; flex: 1 1 auto; }
.xr_mp_type {
  margin: 0 0 6px; font-size: 11px; letter-spacing: .14em;
  text-transform: uppercase; color: var(--accent3-color);
}
.xr_mp_title { margin: 0 0 6px; font-family: var(--primary-font); font-size: 20px; line-height: 1.3; }
.xr_mp_title a { color: var(--primary-color); text-decoration: none; }
.xr_mp_title a:hover { color: var(--accent3-color); }
.xr_mp_loc { margin: 0 0 12px; font-size: 13.5px; color: var(--secondary-color); }
.xr_mp_specs {
  list-style: none; margin: 0 0 14px; padding: 0;
  display: flex; flex-wrap: wrap; gap: 6px 14px;
  font-size: 13px; color: var(--secondary-color);
}
.xr_mp_specs li { position: relative; }
.xr_mp_specs li + li::before {
  content: ""; position: absolute; inset-inline-start: -8px; top: 50%;
  width: 3px; height: 3px; border-radius: 50%; background: var(--accent2-color);
  transform: translateY(-50%);
}
.xr_mp_foot {
  margin-top: auto; padding-top: 14px; border-top: 1px solid var(--border-color);
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
}
.xr_mp_agent {
  font-size: 12px; letter-spacing: .06em; text-transform: uppercase;
  color: var(--secondary-color); overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.xr_mp_fav {
  flex: 0 0 auto; width: 36px; height: 36px; border-radius: 50%; cursor: pointer;
  border: 1px solid var(--border-color); background: var(--white-color);
  color: var(--border-color); font-size: 14px; line-height: 1;
  transition: color .2s ease, border-color .2s ease, transform .2s ease;
}
.xr_mp_fav:hover  { border-color: var(--accent-color); color: var(--accent2-color); }
.xr_mp_fav.is-on  { color: #b4453d; border-color: #b4453d; }
.xr_mp_fav:active { transform: scale(.9); }

/* ============================================================ paginación */
.xr_mp_pager {
  display: flex; flex-wrap: wrap; gap: 8px; justify-content: center;
  margin: 40px 0 0;
}
.xr_mp_pager:empty { display: none; }
.xr_mp_pager button {
  min-width: 44px; height: 44px; padding: 0 14px; cursor: pointer;
  border: 1px solid var(--border-color); background: var(--white-color);
  color: var(--secondary-color); border-radius: var(--mp-radius); font-size: 14px;
  transition: background .18s ease, color .18s ease, border-color .18s ease;
}
.xr_mp_pager button:hover:not(:disabled) { border-color: var(--accent-color); color: var(--primary-color); }
.xr_mp_pager button.is-on { background: var(--primary-color); border-color: var(--primary-color); color: var(--accent-color); }
.xr_mp_pager button:disabled { opacity: .4; cursor: default; }

/* ============================================================ estados */
.xr_mp_loading, .xr_mp_empty {
  text-align: center; padding: 70px 20px; color: var(--secondary-color);
}
.xr_mp_empty { grid-column: 1 / -1; }
.xr_mp_empty p:first-child {
  font-family: var(--primary-font); font-size: 24px; color: var(--primary-color); margin-bottom: 8px;
}
.xr_mp_empty button { margin-top: 18px; }
.xr_mp_sim {
  margin: 34px 0 0; padding: 12px 16px; font-size: 12.5px;
  color: var(--secondary-color); background: var(--gray3-color);
  border: 1px dashed var(--border-color); border-radius: var(--mp-radius);
}

/* ============================================================ RTL */
[dir="rtl"] .xr_mp_pager button,
[dir="rtl"] .xr_mp_chip { direction: rtl; }
[dir="rtl"] .xr_mp_specs li + li::before { inset-inline-start: auto; inset-inline-end: -8px; }

/* Leaflet dentro del contenedor de marca */
.xr_mp_map .leaflet-container { font-family: var(--secondary-font); }
.xr_mp_map .leaflet-popup-content a { color: var(--primary-color); text-decoration: none; }

/*--------------------------------------------------------------
  Ficha del activo (property-details.html)
  Bloques nuevos que la plantilla no traía: acciones de cabecera,
  panel de verificación, tarjeta del asesor y mapa de posición.
----------------------------------------------------------------*/
.xr_pdp_eyebrow {
  margin: 0 0 8px; font-family: var(--secondary-font); font-size: 11px;
  letter-spacing: .16em; text-transform: uppercase; color: var(--accent3-color);
}
.xr_pdp_actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; }
.xr_pdp_actions button {
  display: inline-flex; align-items: center; gap: 8px; cursor: pointer;
  height: 42px; padding: 0 16px; border-radius: 999px;
  border: 1px solid var(--border-color); background: var(--white-color);
  color: var(--secondary-color); font-family: var(--secondary-font); font-size: 13px;
  transition: border-color .18s ease, color .18s ease;
}
.xr_pdp_actions button:hover { border-color: var(--accent-color); color: var(--primary-color); }
.xr_pdp_fav.is-on { color: #b4453d; border-color: #b4453d; }

.xr_pdp_block { margin-top: 40px; }
.xr_pdp_map {
  height: 380px; border: 1px solid var(--border-color);
  border-radius: 4px; overflow: hidden; background: var(--gray2-color);
}
.xr_pdp_note {
  margin: 10px 0 0; font-size: 12.5px; color: var(--secondary-color);
  font-family: var(--secondary-font);
}

.xr_pdp_agent_name {
  margin: 0 0 2px; font-family: var(--primary-font); font-size: 20px; color: var(--primary-color);
}
.xr_pdp_agent_name i { color: #175c3f; font-size: 14px; }
.xr_pdp_agent_org { margin: 0 0 2px; font-size: 13px; color: var(--secondary-color); }
.xr_pdp_agent_lic {
  margin: 0 0 18px; font-size: 11.5px; letter-spacing: .06em;
  text-transform: uppercase; color: var(--accent3-color);
}
.xr_pdp_trust { border-top: 1px solid var(--border-color); margin-top: 26px; padding-top: 26px; }
.xr_pdp_trust_state {
  display: flex; align-items: center; gap: 9px; margin: 0 0 12px; font-size: 14px;
}
.xr_pdp_trust_state.is-on  { color: #175c3f; }
.xr_pdp_trust_state.is-off { color: var(--accent3-color); }
.xr_pdp_quality {
  display: flex; align-items: baseline; justify-content: space-between; gap: 12px;
  margin: 0 0 14px; font-size: 13px; color: var(--secondary-color);
}
.xr_pdp_quality b { font-family: var(--primary-font); font-size: 18px; color: var(--primary-color); }
.xr_pdp_demo {
  margin: 0 0 16px; padding: 10px 12px; font-size: 12px; line-height: 1.6;
  color: var(--secondary-color); background: var(--white-color);
  border: 1px dashed var(--border-color); border-radius: 4px;
}
.cs_property_banner .xr_card_badges { right: 18px; top: 18px; }

/* La tira de datos de la plantilla reparte a lo ancho. Con uno o dos datos
   —una isla que solo declara parcela, un suelo que solo declara hectáreas—
   quedaba un dato solo a la izquierda y un vacío de mil píxeles al lado. */
.cs_property_features_list:has(> li:only-child),
.cs_property_features_list:has(> li:nth-child(2):last-child),
.cs_property_features_list:has(> li:nth-child(3):last-child) {
  justify-content: center;
}

/*--------------------------------------------------------------
  Entrada al marketplace (página de Real Estate)
----------------------------------------------------------------*/
.xr_mph { font-family: var(--secondary-font); }
.xr_mph_card {
  background: var(--white-color); border: 1px solid var(--border-color);
  border-radius: 4px; padding: 26px 26px 20px;
  box-shadow: 0 26px 60px -46px rgba(28, 27, 25, .55);
}
.xr_mph_ops { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 20px; }
.xr_mph_ops button {
  border: 0; background: transparent; cursor: pointer;
  padding: 10px 20px; border-radius: 999px;
  font-size: 12.5px; letter-spacing: .12em; text-transform: uppercase;
  color: var(--secondary-color);
  transition: background .18s ease, color .18s ease;
}
.xr_mph_ops button:hover { color: var(--primary-color); }
.xr_mph_ops button.is-on { background: var(--primary-color); color: var(--accent-color); }

.xr_mph_row { display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch; }
.xr_mph_field { position: relative; flex: 1 1 320px; min-width: 0; }
.xr_mph_q {
  width: 100%; height: 58px; padding: 0 18px;
  border: 1px solid var(--border-color); border-radius: 4px;
  background: var(--gray3-color); color: var(--primary-color);
  font-family: var(--secondary-font); font-size: 16px; outline: none;
}
.xr_mph_q:focus {
  background: var(--white-color); border-color: var(--accent-color);
  box-shadow: 0 0 0 3px rgba(201, 168, 118, .18);
}
.xr_mph_go {
  flex: 0 0 auto; height: 58px; padding: 0 38px; cursor: pointer;
  border: 0; border-radius: 4px;
  background: var(--primary-color); color: var(--accent-color);
  font-size: 13px; letter-spacing: .14em; text-transform: uppercase;
  transition: background .2s ease;
}
.xr_mph_go:hover { background: var(--accent3-color); color: #fff; }

.xr_mph_list {
  position: absolute; inset-inline: 0; top: calc(100% + 6px); z-index: 40;
  margin: 0; padding: 6px 0; list-style: none; max-height: 340px; overflow-y: auto;
  background: var(--white-color); border: 1px solid var(--border-color);
  border-radius: 4px; box-shadow: 0 24px 48px -30px rgba(28, 27, 25, .5);
}
.xr_mph_list[hidden] { display: none; }
.xr_mph_opt {
  display: flex; align-items: baseline; gap: 10px; cursor: pointer;
  padding: 10px 18px; font-size: 14px; color: var(--primary-color);
  transition: background .14s ease;
}
.xr_mph_opt:hover { background: var(--gray3-color); }
.xr_mph_opt.is-country .xr_mph_opt_name {
  font-family: var(--primary-font); font-size: 16px;
}
.xr_mph_opt.is-country.is-dim { opacity: .62; }
.xr_mph_opt.is-city { padding-inline-start: 34px; }
.xr_mph_opt_sub { font-size: 12px; color: var(--secondary-color); }
.xr_mph_opt_n {
  margin-inline-start: auto; font-size: 12px; color: var(--accent3-color);
  font-variant-numeric: tabular-nums;
}
.xr_mph_none { padding: 14px 18px; font-size: 13.5px; color: var(--secondary-color); }

.xr_mph_foot { margin-top: 16px; }
.xr_mph_maplink {
  display: inline-flex; align-items: center; gap: 8px; text-decoration: none;
  font-size: 12.5px; letter-spacing: .08em; text-transform: uppercase;
  color: var(--accent3-color);
}
.xr_mph_maplink:hover { color: var(--primary-color); }

.xr_mph_quick {
  display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 22px;
}
.xr_mph_quick > span {
  font-size: 11px; letter-spacing: .16em; text-transform: uppercase;
  color: var(--secondary-color); margin-inline-end: 4px;
}
.xr_mph_quick a {
  padding: 8px 15px; border-radius: 999px; text-decoration: none; font-size: 13px;
  border: 1px solid var(--border-color); background: var(--white-color);
  color: var(--secondary-color);
  transition: border-color .18s ease, color .18s ease;
}
.xr_mph_quick a:hover { border-color: var(--accent-color); color: var(--primary-color); }

.xr_mph_stats {
  display: grid; gap: 18px; margin-top: 34px;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}
.xr_mph_stat b {
  display: block; font-family: var(--primary-font); font-size: 34px;
  font-weight: 500; line-height: 1.1; color: var(--primary-color);
}
.xr_mph_stat span {
  font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--secondary-color);
}
.xr_mph_sim {
  grid-column: 1 / -1; margin: 4px 0 0; font-size: 12px;
  color: var(--secondary-color);
}

.xr_mph_markets { margin-top: 44px; }
.xr_mph_h {
  font-family: var(--primary-font); font-size: 24px; font-weight: 500;
  color: var(--primary-color); margin: 0 0 18px;
}
.xr_mph_mgrid {
  display: grid; gap: 12px;
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
}
.xr_mph_market {
  display: block; padding: 16px 18px; text-decoration: none;
  border: 1px solid var(--border-color); border-radius: 4px;
  background: var(--white-color);
  transition: border-color .18s ease, transform .18s ease;
}
.xr_mph_market:hover { border-color: var(--accent-color); transform: translateY(-2px); }
.xr_mph_market strong {
  display: block; font-family: var(--primary-font); font-size: 18px;
  font-weight: 500; color: var(--primary-color);
}
.xr_mph_market em {
  display: block; font-style: normal; font-size: 12.5px; color: var(--secondary-color);
}
.xr_mph_market b {
  display: block; margin-top: 8px; font-size: 11.5px; letter-spacing: .1em;
  text-transform: uppercase; color: var(--accent3-color); font-weight: 400;
}

/*--------------------------------------------------------------
  Directorios y perfiles (Biblia §5.6)
----------------------------------------------------------------*/
.xr_dir, .xr_pf { font-family: var(--secondary-font); }

.xr_dir_bar {
  display: flex; flex-wrap: wrap; gap: 12px; align-items: center;
  padding-bottom: 18px; margin-bottom: 26px;
  border-bottom: 1px solid var(--border-color);
}
.xr_dir_q, .xr_dir_sel {
  height: 46px; padding: 0 14px; font-size: 14px; outline: none;
  border: 1px solid var(--border-color); border-radius: 4px;
  background: var(--white-color); color: var(--primary-color);
  font-family: var(--secondary-font);
}
.xr_dir_q { flex: 1 1 260px; min-width: 200px; }
.xr_dir_q:focus, .xr_dir_sel:focus {
  border-color: var(--accent-color); box-shadow: 0 0 0 3px rgba(201, 168, 118, .18);
}
.xr_dir_count {
  margin-inline-start: auto; font-size: 12px; letter-spacing: .12em;
  text-transform: uppercase; color: var(--secondary-color);
}

.xr_dir_grid {
  display: grid; gap: 16px;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}
.xr_dir_card {
  display: flex; align-items: center; gap: 16px; padding: 18px;
  text-decoration: none; background: var(--white-color);
  border: 1px solid var(--border-color); border-radius: 4px;
  transition: border-color .18s ease, transform .18s ease;
}
.xr_dir_card:hover { border-color: var(--accent-color); transform: translateY(-2px); }
.xr_dir_avatar {
  flex: 0 0 auto; width: 52px; height: 52px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: var(--gray2-color); color: var(--accent3-color);
  font-family: var(--primary-font); font-size: 18px; letter-spacing: .04em;
}
.xr_dir_body { min-width: 0; }
.xr_dir_body strong {
  display: block; font-family: var(--primary-font); font-size: 18px;
  font-weight: 500; color: var(--primary-color);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.xr_dir_body strong i { color: #175c3f; font-size: 12px; }
.xr_dir_body em {
  display: block; font-style: normal; font-size: 13px; color: var(--secondary-color);
}
.xr_dir_body b {
  display: block; margin-top: 6px; font-size: 11px; letter-spacing: .12em;
  text-transform: uppercase; color: var(--accent3-color); font-weight: 400;
}
.xr_dir_empty, .xr_dir_loading {
  grid-column: 1 / -1; padding: 50px 0; text-align: center;
  color: var(--secondary-color);
}

/* ----------------------------------------------------------------- perfil */
.xr_pf_head {
  display: flex; flex-wrap: wrap; gap: 22px; align-items: center;
  padding-bottom: 26px; border-bottom: 1px solid var(--border-color);
}
.xr_pf_avatar {
  flex: 0 0 auto; width: 88px; height: 88px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: var(--gray2-color); color: var(--accent3-color);
  font-family: var(--primary-font); font-size: 30px; letter-spacing: .04em;
}
.xr_pf_id { flex: 1 1 280px; min-width: 0; }
.xr_pf_name {
  margin: 0 0 4px; font-family: var(--primary-font); font-size: 34px;
  font-weight: 500; color: var(--primary-color); line-height: 1.2;
}
.xr_pf_name i { color: #175c3f; font-size: 18px; }
.xr_pf_id p { margin: 0; font-size: 14px; color: var(--secondary-color); }
.xr_pf_id p a { color: var(--accent3-color); text-decoration: none; }
.xr_pf_id p a:hover { text-decoration: underline; }
.xr_pf_lic {
  margin-top: 6px !important; font-size: 11.5px !important;
  letter-spacing: .08em; text-transform: uppercase; color: var(--accent3-color) !important;
}
.xr_pf_cta { flex: 0 0 auto; }
.xr_pf_bio {
  margin: 22px 0 0; max-width: 760px; font-size: 15px; color: var(--secondary-color);
}

.xr_pf_stats {
  display: flex; flex-wrap: wrap; gap: 44px; margin: 30px 0 6px;
}
.xr_pf_stats b {
  display: block; font-family: var(--primary-font); font-size: 26px;
  font-weight: 500; color: var(--primary-color); line-height: 1.2;
}
.xr_pf_stats span {
  font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase;
  color: var(--secondary-color);
}

.xr_pf_facts { margin-top: 28px; }
.xr_pf_row {
  display: flex; flex-wrap: wrap; gap: 14px; align-items: baseline;
  padding: 12px 0; border-top: 1px solid var(--border-color);
}
.xr_pf_row > span {
  flex: 0 0 180px; font-size: 11.5px; letter-spacing: .12em;
  text-transform: uppercase; color: var(--secondary-color);
}
.xr_pf_row > p { margin: 0; display: flex; flex-wrap: wrap; gap: 7px; }
.xr_pf_chip {
  padding: 5px 12px; border-radius: 999px; font-size: 12.5px;
  background: var(--gray3-color); border: 1px solid var(--border-color);
  color: var(--primary-color);
}
.xr_pf_demo {
  margin: 26px 0 0; padding: 12px 16px; font-size: 12.5px;
  color: var(--secondary-color); background: var(--gray3-color);
  border: 1px dashed var(--border-color); border-radius: 4px;
}

.xr_pf_h {
  margin: 52px 0 20px; font-family: var(--primary-font); font-size: 26px;
  font-weight: 500; color: var(--primary-color);
}
.xr_pf_grid, .xr_pf_projects {
  display: grid; gap: 18px;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
}
.xr_pf_card {
  display: block; text-decoration: none; background: var(--white-color);
  border: 1px solid var(--border-color); border-radius: 4px; overflow: hidden;
  transition: border-color .18s ease, transform .18s ease;
}
.xr_pf_card:hover { border-color: var(--accent-color); transform: translateY(-3px); }
.xr_pf_img { display: block; aspect-ratio: 4 / 3; background: var(--gray2-color); }
.xr_pf_img picture, .xr_pf_img img { display: block; width: 100%; height: 100%; }
.xr_pf_img img { object-fit: cover; }
.xr_pf_card strong {
  display: block; padding: 14px 16px 2px; font-family: var(--primary-font);
  font-size: 17px; font-weight: 500; color: var(--primary-color); line-height: 1.35;
}
.xr_pf_card em {
  display: block; padding: 0 16px; font-style: normal; font-size: 13px;
  color: var(--secondary-color);
}
.xr_pf_card b {
  display: block; padding: 8px 16px 16px; font-size: 14px;
  color: var(--accent3-color); font-weight: 400;
}
.xr_pf_more { display: inline-block; margin-top: 20px; }

.xr_pf_proj {
  display: block; padding: 20px; text-decoration: none;
  background: var(--gray3-color); border: 1px solid var(--border-color);
  border-radius: 4px; transition: border-color .18s ease;
}
.xr_pf_proj:hover { border-color: var(--accent-color); }
.xr_pf_proj strong {
  display: block; font-family: var(--primary-font); font-size: 19px;
  font-weight: 500; color: var(--primary-color);
}
.xr_pf_proj em {
  display: block; margin-top: 4px; font-style: normal; font-size: 12px;
  letter-spacing: .1em; text-transform: uppercase; color: var(--accent3-color);
}
.xr_pf_proj b {
  display: block; margin-top: 10px; font-size: 13.5px;
  color: var(--secondary-color); font-weight: 400;
}

/*--------------------------------------------------------------
  Proyectos off-plan (Biblia §5.5)
----------------------------------------------------------------*/
.xr_prj { font-family: var(--secondary-font); }
.xr_prj_grid {
  display: grid; gap: 18px;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
}
.xr_prj_card {
  display: block; padding: 24px; text-decoration: none;
  background: var(--white-color); border: 1px solid var(--border-color);
  border-radius: 4px; transition: border-color .18s ease, transform .18s ease;
}
.xr_prj_card:hover { border-color: var(--accent-color); transform: translateY(-3px); }
.xr_prj_top strong {
  display: block; font-family: var(--primary-font); font-size: 21px;
  font-weight: 500; color: var(--primary-color); line-height: 1.3;
}
.xr_prj_top em {
  display: block; margin-top: 4px; font-style: normal; font-size: 12px;
  letter-spacing: .1em; text-transform: uppercase; color: var(--accent3-color);
}
.xr_prj_bar {
  display: block; height: 5px; margin: 18px 0 10px; border-radius: 999px;
  background: var(--gray-color); overflow: hidden;
}
.xr_prj_bar i {
  display: block; height: 100%; border-radius: 999px;
  background: linear-gradient(90deg, var(--accent3-color), var(--accent-color));
}
.xr_prj_meta {
  display: flex; flex-wrap: wrap; gap: 6px 18px;
  font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase;
  color: var(--secondary-color);
}
.xr_prj_meta b { font-weight: 400; }
.xr_prj_price {
  display: block; margin-top: 14px; padding-top: 14px;
  border-top: 1px solid var(--border-color);
  font-size: 14px; color: var(--primary-color);
}

.xr_prj_progress { margin-top: 30px; }
.xr_prj_progress .xr_prj_bar { height: 8px; margin: 0; }
.xr_prj_src {
  margin: 10px 0 0; font-size: 12px; letter-spacing: .06em;
  color: var(--secondary-color);
}

.xr_prj_tablewrap { overflow-x: auto; }
.xr_prj_table {
  width: 100%; border-collapse: collapse; font-size: 14px; min-width: 520px;
}
.xr_prj_table th {
  text-align: start; padding: 12px 14px; font-size: 11px; font-weight: 400;
  letter-spacing: .12em; text-transform: uppercase; color: var(--secondary-color);
  border-bottom: 1px solid var(--border-color);
}
.xr_prj_table td {
  padding: 14px; color: var(--primary-color);
  border-bottom: 1px solid var(--border-color);
}
.xr_prj_table tbody tr:hover { background: var(--gray3-color); }

.xr_prj_planname {
  font-family: var(--secondary-font); font-size: 12px; letter-spacing: .12em;
  text-transform: uppercase; color: var(--accent3-color); vertical-align: middle;
  margin-inline-start: 10px;
}
.xr_prj_miles { list-style: none; margin: 0; padding: 0; }
.xr_prj_mile {
  display: flex; align-items: center; gap: 22px; padding: 16px 0;
  border-bottom: 1px solid var(--border-color);
}
.xr_prj_mile_pct { flex: 0 0 190px; }
.xr_prj_mile_pct b {
  display: block; font-family: var(--primary-font); font-size: 24px;
  font-weight: 500; color: var(--primary-color); line-height: 1.1;
}
.xr_prj_mile_pct i {
  display: block; height: 4px; margin-top: 7px; border-radius: 999px;
  background: var(--accent-color);
}
.xr_prj_mile_txt strong {
  display: block; font-size: 16px; color: var(--primary-color); font-weight: 500;
}
.xr_prj_mile_txt em {
  display: block; font-style: normal; font-size: 12.5px; color: var(--secondary-color);
}
.xr_prj_note {
  margin: 30px 0 0; padding: 14px 18px; font-size: 13px; line-height: 1.7;
  color: var(--secondary-color); background: var(--gray3-color);
  border-inline-start: 2px solid var(--accent-color); border-radius: 0 4px 4px 0;
}
@media (max-width: 575px) {
  .xr_prj_mile { flex-direction: column; align-items: flex-start; gap: 8px; }
  .xr_prj_mile_pct { flex: 0 0 auto; width: 100%; }
}

/*--------------------------------------------------------------
  Panel del comprador (Biblia §5.7)
----------------------------------------------------------------*/
.xr_ac { font-family: var(--secondary-font); }
.xr_ac_tabs {
  display: flex; flex-wrap: wrap; gap: 4px;
  border-bottom: 1px solid var(--border-color); margin-bottom: 30px;
}
.xr_ac_tabs button {
  display: inline-flex; align-items: center; gap: 8px; cursor: pointer;
  border: 0; border-bottom: 2px solid transparent; background: transparent;
  padding: 14px 20px; font-size: 12.5px; letter-spacing: .1em;
  text-transform: uppercase; color: var(--secondary-color);
  transition: color .18s ease, border-color .18s ease;
}
.xr_ac_tabs button:hover { color: var(--primary-color); }
.xr_ac_tabs button.is-on {
  color: var(--primary-color); border-bottom-color: var(--accent-color);
}
.xr_ac_n:not(:empty) {
  min-width: 22px; padding: 2px 7px; border-radius: 999px;
  background: var(--gray-color); color: var(--accent3-color);
  font-size: 11px; font-weight: 400; line-height: 1.5;
}
.xr_ac_tabs button.is-on .xr_ac_n:not(:empty) {
  background: var(--primary-color); color: var(--accent-color);
}

.xr_ac_folders { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 22px; }
.xr_ac_folder, .xr_ac_newfolder {
  cursor: pointer; padding: 8px 16px; border-radius: 999px; font-size: 13px;
  border: 1px solid var(--border-color); background: var(--white-color);
  color: var(--secondary-color); transition: border-color .18s ease, color .18s ease;
}
.xr_ac_folder:hover, .xr_ac_newfolder:hover {
  border-color: var(--accent-color); color: var(--primary-color);
}
.xr_ac_folder.is-on {
  background: var(--primary-color); border-color: var(--primary-color);
  color: var(--accent-color);
}
.xr_ac_newfolder { border-style: dashed; }

.xr_ac_grid {
  display: grid; gap: 18px;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}
.xr_ac_tile {
  display: flex; flex-direction: column; overflow: hidden;
  background: var(--white-color); border: 1px solid var(--border-color);
  border-radius: 4px;
}
.xr_ac_img { display: block; aspect-ratio: 4 / 3; background: var(--gray2-color); }
.xr_ac_img picture, .xr_ac_img img { display: block; width: 100%; height: 100%; }
.xr_ac_img img { object-fit: cover; }
.xr_ac_txt { padding: 14px 16px 6px; flex: 1 1 auto; }
.xr_ac_txt h4 { margin: 0 0 3px; font-family: var(--primary-font); font-size: 17px; font-weight: 500; }
.xr_ac_txt h4 a { color: var(--primary-color); text-decoration: none; }
.xr_ac_txt h4 a:hover { color: var(--accent3-color); }
.xr_ac_txt p { margin: 0; font-size: 12.5px; color: var(--secondary-color); }
.xr_ac_txt b { display: block; margin-top: 8px; font-size: 15px; color: var(--accent3-color); font-weight: 400; }
.xr_ac_ops {
  display: flex; flex-wrap: wrap; gap: 6px; padding: 12px 16px 14px;
  border-top: 1px solid var(--border-color); margin-top: 10px;
}
.xr_ac_ops button, .xr_ac_ops select, .xr_ac_btn {
  cursor: pointer; padding: 7px 12px; font-size: 12px; border-radius: 4px;
  border: 1px solid var(--border-color); background: var(--white-color);
  color: var(--secondary-color); font-family: var(--secondary-font);
  text-decoration: none; display: inline-block;
  transition: border-color .18s ease, color .18s ease;
}
.xr_ac_ops button:hover, .xr_ac_btn:hover {
  border-color: var(--accent-color); color: var(--primary-color);
}
.xr_ac_ops .is-danger, .xr_ac_btn.is-danger { color: #b4453d; }
.xr_ac_ops .is-danger:hover, .xr_ac_btn.is-danger:hover { border-color: #b4453d; }
.xr_ac_btn.is-on {
  background: var(--primary-color); border-color: var(--primary-color);
  color: var(--accent-color);
}

.xr_ac_list { list-style: none; margin: 0; padding: 0; }
.xr_ac_row {
  display: flex; flex-wrap: wrap; gap: 16px; align-items: center;
  justify-content: space-between; padding: 18px 0;
  border-bottom: 1px solid var(--border-color);
}
.xr_ac_row_main { min-width: 240px; flex: 1 1 320px; }
.xr_ac_row_main strong {
  display: block; font-family: var(--primary-font); font-size: 18px;
  font-weight: 500; color: var(--primary-color);
}
.xr_ac_row_meta { font-size: 12.5px; color: var(--secondary-color); word-break: break-word; }
.xr_ac_row_ops { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.xr_ac_row_ops select {
  padding: 7px 10px; font-size: 12px; border-radius: 4px;
  border: 1px solid var(--border-color); background: var(--white-color);
  color: var(--secondary-color); font-family: var(--secondary-font);
}

.xr_ac_cmpwrap { overflow-x: auto; }
.xr_ac_cmp { width: 100%; border-collapse: collapse; min-width: 620px; }
.xr_ac_cmp thead th {
  vertical-align: top; padding: 0 12px 18px; text-align: start;
  border-bottom: 1px solid var(--border-color);
}
.xr_ac_cmp_img { display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 4px; }
.xr_ac_cmp_img picture, .xr_ac_cmp_img img { display: block; width: 100%; height: 100%; }
.xr_ac_cmp_img img { object-fit: cover; }
.xr_ac_cmp_t {
  display: block; margin: 10px 0 8px; font-family: var(--primary-font);
  font-size: 16px; color: var(--primary-color); text-decoration: none; font-weight: 500;
}
.xr_ac_cmp tbody th {
  text-align: start; padding: 13px 12px; font-size: 11.5px; font-weight: 400;
  letter-spacing: .1em; text-transform: uppercase; color: var(--secondary-color);
  border-bottom: 1px solid var(--border-color); white-space: nowrap;
}
.xr_ac_cmp tbody td {
  padding: 13px 12px; font-size: 14px; color: var(--primary-color);
  border-bottom: 1px solid var(--border-color);
}
.xr_ac_empty {
  padding: 60px 20px; text-align: center; color: var(--secondary-color);
}
.xr_ac_empty p {
  font-family: var(--primary-font); font-size: 21px; color: var(--primary-color);
  margin-bottom: 20px;
}
.xr_ac_local {
  margin-top: 40px; padding: 12px 16px; font-size: 12.5px;
  color: var(--secondary-color); background: var(--gray3-color);
  border: 1px dashed var(--border-color); border-radius: 4px;
}

/*--------------------------------------------------------------
  Consolas de operación (Biblia §5.8 y §5.9)
----------------------------------------------------------------*/
.xr_cs { font-family: var(--secondary-font); }
.xr_cs_bar { margin-bottom: 18px; }
.xr_cs_org {
  height: 46px; padding: 0 14px; min-width: 260px; font-size: 14px;
  border: 1px solid var(--border-color); border-radius: 4px;
  background: var(--white-color); color: var(--primary-color);
  font-family: var(--secondary-font);
}
.xr_cs_tabs {
  display: flex; flex-wrap: wrap; gap: 4px;
  border-bottom: 1px solid var(--border-color); margin-bottom: 28px;
}
.xr_cs_tabs button {
  cursor: pointer; border: 0; border-bottom: 2px solid transparent;
  background: transparent; padding: 14px 20px; font-size: 12.5px;
  letter-spacing: .1em; text-transform: uppercase; color: var(--secondary-color);
  transition: color .18s ease, border-color .18s ease;
}
.xr_cs_tabs button:hover { color: var(--primary-color); }
.xr_cs_tabs button.is-on { color: var(--primary-color); border-bottom-color: var(--accent-color); }

.xr_cs_kpis { display: flex; flex-wrap: wrap; gap: 40px; margin-bottom: 24px; }
.xr_cs_kpis b {
  display: block; font-family: var(--primary-font); font-size: 28px;
  font-weight: 500; color: var(--primary-color); line-height: 1.15;
}
.xr_cs_kpis b.is-late { color: #b4453d; }
.xr_cs_kpis span {
  font-size: 11px; letter-spacing: .13em; text-transform: uppercase;
  color: var(--secondary-color);
}
.xr_cs_meter {
  height: 8px; border-radius: 999px; background: var(--gray-color);
  overflow: hidden; margin-bottom: 28px;
}
.xr_cs_meter i {
  display: block; height: 100%;
  background: linear-gradient(90deg, var(--accent3-color), var(--accent-color));
}

.xr_cs_tablewrap { overflow-x: auto; }
.xr_cs_table { width: 100%; border-collapse: collapse; font-size: 13.5px; min-width: 640px; }
.xr_cs_table th {
  text-align: start; padding: 11px 12px; font-size: 10.5px; font-weight: 400;
  letter-spacing: .12em; text-transform: uppercase; color: var(--secondary-color);
  border-bottom: 1px solid var(--border-color); white-space: nowrap;
}
.xr_cs_table td {
  padding: 13px 12px; color: var(--primary-color); vertical-align: top;
  border-bottom: 1px solid var(--border-color);
}
.xr_cs_table tbody tr:hover { background: var(--gray3-color); }
.xr_cs_table a { color: var(--primary-color); text-decoration: none; }
.xr_cs_table a:hover { color: var(--accent3-color); }
.xr_cs_sub {
  display: block; margin-top: 3px; font-size: 11.5px; color: var(--secondary-color);
}
.xr_cs_actions { white-space: nowrap; }
.xr_cs_actions button { margin-inline-end: 5px; }
.xr_ac_btn:disabled { opacity: .45; cursor: not-allowed; }

.xr_cs_pill {
  display: inline-block; padding: 4px 11px; border-radius: 999px;
  font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase;
  background: var(--gray-color); color: var(--secondary-color); white-space: nowrap;
}
.xr_cs_pill.is-published { background: rgba(23, 92, 63, .12); color: #175c3f; }
.xr_cs_pill.is-rejected, .xr_cs_pill.is-late, .xr_cs_pill.is-urgent {
  background: rgba(180, 69, 61, .12); color: #b4453d;
}
.xr_cs_pill.is-human-review, .xr_cs_pill.is-automated-review, .xr_cs_pill.is-high {
  background: rgba(201, 168, 118, .22); color: #8B6E45;
}
.xr_cs_pill.is-stage { background: rgba(28, 27, 25, .07); color: var(--primary-color); }

.xr_cs_pipeline {
  display: grid; gap: 10px; margin-bottom: 26px;
  grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
}
.xr_cs_stage {
  padding: 16px 14px; text-align: center; border-radius: 4px;
  background: var(--gray3-color); border: 1px solid var(--border-color);
}
.xr_cs_stage b {
  display: block; font-family: var(--primary-font); font-size: 24px;
  font-weight: 500; color: var(--primary-color); line-height: 1.1;
}
.xr_cs_stage span {
  font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase;
  color: var(--secondary-color);
}

.xr_cs_bars { display: grid; gap: 10px; margin-bottom: 10px; }
.xr_cs_barrow { display: flex; align-items: center; gap: 14px; }
.xr_cs_barlbl { flex: 0 0 180px; font-size: 13px; color: var(--secondary-color); }
.xr_cs_bartrack {
  flex: 1 1 auto; height: 10px; border-radius: 999px;
  background: var(--gray-color); overflow: hidden;
}
.xr_cs_bartrack i {
  display: block; height: 100%;
  background: linear-gradient(90deg, var(--accent3-color), var(--accent-color));
}
.xr_cs_barval {
  flex: 0 0 70px; text-align: end; font-family: var(--primary-font);
  font-size: 16px; font-weight: 500; color: var(--primary-color);
}

.xr_cs_h {
  margin: 40px 0 16px; font-family: var(--primary-font); font-size: 21px;
  font-weight: 500; color: var(--primary-color);
}
.xr_cs_note {
  margin: 20px 0 0; padding: 12px 16px; font-size: 12.5px; line-height: 1.7;
  color: var(--secondary-color); background: var(--gray3-color);
  border-inline-start: 2px solid var(--accent-color); border-radius: 0 4px 4px 0;
}
.xr_cs_empty { padding: 44px 0; text-align: center; color: var(--secondary-color); }

/* asistente de alta */
.xr_wz { max-width: 720px; }
.xr_wz_head {
  display: flex; align-items: center; gap: 16px; margin-bottom: 22px;
  font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase;
  color: var(--secondary-color);
}
.xr_wz_bar {
  flex: 1 1 auto; height: 4px; border-radius: 999px;
  background: var(--gray-color); overflow: hidden;
}
.xr_wz_bar i {
  display: block; height: 100%; background: var(--accent-color);
  transition: width .3s ease;
}
.xr_wz h4 {
  margin: 0 0 18px; font-family: var(--primary-font); font-size: 24px;
  font-weight: 500; color: var(--primary-color);
}
.xr_wz_opts { display: flex; flex-wrap: wrap; gap: 8px; }
.xr_wz_opt {
  cursor: pointer; padding: 11px 18px; border-radius: 4px; font-size: 14px;
  border: 1px solid var(--border-color); background: var(--white-color);
  color: var(--secondary-color); font-family: var(--secondary-font);
  transition: border-color .18s ease, color .18s ease;
}
.xr_wz_opt:hover { border-color: var(--accent-color); color: var(--primary-color); }
.xr_wz_opt.is-on {
  background: var(--primary-color); border-color: var(--primary-color);
  color: var(--accent-color);
}
.xr_wz_fields { display: flex; flex-wrap: wrap; gap: 14px; }
.xr_wz_fields label {
  display: flex; flex-direction: column; gap: 6px; flex: 1 1 200px;
  font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase;
  color: var(--secondary-color);
}
.xr_wz_fields input {
  height: 48px; padding: 0 14px; font-size: 15px; outline: none;
  border: 1px solid var(--border-color); border-radius: 4px;
  background: var(--white-color); color: var(--primary-color);
  font-family: var(--secondary-font);
}
.xr_wz_fields input:focus {
  border-color: var(--accent-color); box-shadow: 0 0 0 3px rgba(201, 168, 118, .18);
}
.xr_wz_err { margin: 16px 0 0; font-size: 13px; color: #b4453d; }
.xr_wz_nav { display: flex; gap: 10px; margin-top: 28px; }
.xr_wz_nav .xr_ac_btn { padding: 11px 24px; font-size: 13px; }
.xr_cs_summary h4 {
  margin: 0 0 18px; font-family: var(--primary-font); font-size: 24px;
  font-weight: 500; color: var(--primary-color);
}
.xr_cs_summary .xr_ac_btn { margin-top: 20px; }
@media (max-width: 575px) {
  .xr_cs_barlbl { flex: 0 0 120px; font-size: 12px; }
}

/*--------------------------------------------------------------
  Tarjeta del listado — señales de confianza
----------------------------------------------------------------*/
.xr_mp_media > a { display: block; width: 100%; height: 100%; }
.xr_card_badges { align-items: flex-start; inset-inline-start: 12px; right: auto; }
[dir="rtl"] .xr_card_badges { align-items: flex-end; }
.xr_card_badges span { display: inline-flex; align-items: center; gap: 5px; }
.xr_verified_badge i { font-size: 10px; }

.xr_drop_badge {
  background: rgba(180, 69, 61, .95); color: #fff;
  font-size: 10px; letter-spacing: 1px; text-transform: uppercase;
  padding: 5px 10px; border-radius: 999px; line-height: 1;
}
.xr_drop_badge i { font-size: 9px; }

.xr_mp_kit {
  position: absolute; inset-inline-end: 12px; bottom: 12px; z-index: 2;
  display: flex; gap: 6px; pointer-events: none;
}
.xr_kit_item {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 4px 9px; border-radius: 4px; font-size: 11px; line-height: 1.4;
  background: rgba(28, 27, 25, .72); color: #f0ebe0; backdrop-filter: blur(6px);
}

/* El corazón vive sobre la foto, que es donde la mano lo busca. */
.xr_mp_media .xr_mp_fav {
  position: absolute; inset-inline-end: 12px; top: 12px; z-index: 3;
  width: 38px; height: 38px; border-radius: 50%;
  background: rgba(255, 255, 255, .92); border: 0; color: #9a938a;
  backdrop-filter: blur(6px); cursor: pointer; font-size: 15px;
  box-shadow: 0 4px 14px -6px rgba(28, 27, 25, .5);
  transition: color .2s ease, transform .2s ease, background .2s ease;
}
.xr_mp_media .xr_mp_fav:hover { color: #b4453d; background: #fff; }
.xr_mp_media .xr_mp_fav.is-on { color: #b4453d; }
.xr_mp_media .xr_mp_fav:active { transform: scale(.88); }

/* Rótulo de inventario de muestra: presente y legible, pero discreto y fuera
   del bloque de confianza, para no competir con "Verificado". */
.xr_demo_tag {
  position: absolute; inset-inline-start: 12px; top: 12px; z-index: 2;
  padding: 3px 8px; border-radius: 3px; font-size: 9.5px; line-height: 1.5;
  letter-spacing: .1em; text-transform: uppercase;
  background: rgba(250, 248, 242, .82); color: #6b6357;
  border: 1px solid rgba(107, 99, 87, .18); backdrop-filter: blur(4px);
}
.xr_card_badges { top: 44px; }

.xr_mp_foot { flex-wrap: wrap; gap: 10px; }
.xr_mp_agent { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.xr_mp_agent em {
  font-style: normal; font-size: 11px; letter-spacing: 0;
  text-transform: none; color: var(--accent3-color);
}
.xr_mp_contacts { display: flex; gap: 6px; margin-inline-start: auto; }
.xr_mp_contact {
  display: inline-flex; align-items: center; gap: 5px; text-decoration: none;
  padding: 7px 12px; border-radius: 4px; font-size: 12px;
  border: 1px solid var(--border-color); background: var(--white-color);
  color: var(--secondary-color);
  transition: border-color .18s ease, color .18s ease, background .18s ease;
}
.xr_mp_contact:hover { border-color: var(--accent-color); color: var(--primary-color); }
.xr_mp_contact.is-wa:hover { border-color: #25d366; color: #128c4a; }

/* Filtros: contador en el botón, extras y aplicar con recuento en vivo */
.xr_mp_more { display: inline-flex; align-items: center; gap: 8px; }
.xr_mp_more_n:not(:empty) {
  min-width: 20px; padding: 1px 6px; border-radius: 999px; line-height: 1.6;
  background: var(--accent-color); color: var(--primary-color);
  font-size: 11px; letter-spacing: 0;
}
.xr_mp_more:hover .xr_mp_more_n:not(:empty) { background: var(--accent2-color); color: #fff; }

.xr_mp_extras { margin-top: 20px; }
.xr_mp_extras > p {
  font-size: 12px; letter-spacing: .08em; text-transform: uppercase;
  color: var(--secondary-color); margin: 0 0 10px;
}
.xr_mp_panel_foot { justify-content: space-between; align-items: center; }
.xr_mp_apply {
  height: 46px; padding: 0 26px; cursor: pointer; border: 0;
  border-radius: var(--mp-radius);
  background: var(--primary-color); color: var(--accent-color);
  font-family: var(--secondary-font); font-size: 13px;
  letter-spacing: .1em; text-transform: uppercase;
  transition: background .2s ease;
}
.xr_mp_apply:hover:not(:disabled) { background: var(--accent3-color); color: #fff; }
.xr_mp_apply:disabled { opacity: .45; cursor: not-allowed; }

/* El panel acompaña al desplazamiento: con nueve grupos de filtros, el botón
   de aplicar quedaba fuera de pantalla justo cuando hacía falta. */
@media (min-width: 992px) {
  .xr_mp_panel { max-height: calc(100vh - 200px); overflow-y: auto; }
  .xr_mp_panel_foot {
    position: sticky; bottom: -22px; margin: 18px -22px -20px; padding: 16px 22px;
    background: var(--gray3-color); border-top: 1px solid var(--border-color);
  }
}

/* Segunda fila del buscador del home: dormitorios y rango de precio */
.xr_mph_row2 { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 12px; }
.xr_mph_type, .xr_mph_beds, .xr_mph_pmin, .xr_mph_pmax {
  height: 52px; padding: 0 16px; font-size: 15px; outline: none;
  border: 1px solid var(--border-color); border-radius: 4px;
  background: var(--gray3-color); color: var(--primary-color);
  font-family: var(--secondary-font);
}
.xr_mph_type { flex: 0 1 240px; min-width: 0; height: 58px; }
.xr_mph_beds { flex: 0 1 180px; }
.xr_mph_pmin, .xr_mph_pmax { flex: 1 1 150px; min-width: 0; }
.xr_mph_type:focus, .xr_mph_beds:focus, .xr_mph_pmin:focus, .xr_mph_pmax:focus {
  background: var(--white-color); border-color: var(--accent-color);
  box-shadow: 0 0 0 3px rgba(201, 168, 118, .18);
}
@media (max-width: 767px) { .xr_mph_type { flex: 1 1 100%; height: 52px; } }

/*--------------------------------------------------------------
  Ficha del activo — galería, navegación, tendencias y financiación
----------------------------------------------------------------*/
.xr_pdp_sec { scroll-margin-top: 150px; }
.xr_pdp_sec + .xr_pdp_sec { margin-top: 46px; }
.xr_pdp_sub { margin: -6px 0 18px; font-size: 14px; color: var(--secondary-color); }
.xr_pdp_h4 {
  margin: 34px 0 14px; font-family: var(--primary-font); font-size: 20px;
  font-weight: 500; color: var(--primary-color);
}
.xr_pdp_h4 .xr_drop_badge { vertical-align: middle; margin-inline-start: 8px; }

/* galería */
.xr_gal { display: grid; grid-template-columns: 2fr 1fr; gap: 10px; margin-bottom: 14px; }
.xr_gal_main, .xr_gal_thumb {
  position: relative; padding: 0; border: 0; cursor: pointer; overflow: hidden;
  border-radius: 4px; background: var(--gray2-color); display: block;
}
.xr_gal_main { aspect-ratio: 4 / 3; }
.xr_gal_side { display: grid; grid-template-rows: repeat(2, 1fr); gap: 10px; }
.xr_gal_side { grid-template-columns: repeat(2, 1fr); }
.xr_gal_thumb { aspect-ratio: 4 / 3; }
.xr_gal picture, .xr_gal img { display: block; width: 100%; height: 100%; }
.xr_gal img { object-fit: cover; transition: transform .5s cubic-bezier(.2,.7,.3,1); }
.xr_gal_main:hover img, .xr_gal_thumb:hover img { transform: scale(1.04); }
.xr_gal_count {
  position: absolute; inset-inline-start: 14px; bottom: 14px;
  display: inline-flex; align-items: center; gap: 7px;
  padding: 7px 13px; border-radius: 4px; font-size: 12.5px;
  background: rgba(28, 27, 25, .76); color: #f0ebe0; backdrop-filter: blur(6px);
}
.xr_gal_more {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  background: rgba(28, 27, 25, .6); color: #fff;
  font-family: var(--primary-font); font-size: 30px;
}
.xr_gal_kits { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 8px; }
.xr_gal_kit {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 7px 14px; border-radius: 999px; font-size: 12.5px;
  background: var(--gray3-color); border: 1px solid var(--border-color);
  color: var(--secondary-color);
}
@media (max-width: 767px) {
  .xr_gal { grid-template-columns: 1fr; }
  .xr_gal_side { grid-template-columns: repeat(4, 1fr); grid-template-rows: 1fr; }
}

/* visor */
.xr_viewer {
  position: fixed; inset: 0; z-index: 9999; display: flex;
  align-items: center; justify-content: center;
  background: rgba(15, 14, 13, .95); padding: 40px;
  /* Misma razón que en el cajón: mientras se mira una foto a pantalla completa
     la ficha de detrás no debe desplazarse. */
  overscroll-behavior: contain;
}
.xr_viewer figure { margin: 0; max-width: 92vw; max-height: 86vh; }
.xr_viewer img { max-width: 92vw; max-height: 86vh; object-fit: contain; display: block; }
.xr_viewer button {
  position: absolute; border: 0; cursor: pointer; color: #f0ebe0;
  background: rgba(255, 255, 255, .09); border-radius: 50%;
  width: 52px; height: 52px; font-size: 30px; line-height: 1;
  transition: background .2s ease;
}
.xr_viewer button:hover { background: rgba(255, 255, 255, .2); }
.xr_viewer_x { top: 24px; inset-inline-end: 24px; font-size: 26px; }
.xr_viewer_prev { inset-inline-start: 24px; }
.xr_viewer_next { inset-inline-end: 24px; }
.xr_viewer_n {
  position: absolute; bottom: 26px; margin: 0; color: #b9b2a6;
  font-family: var(--secondary-font); font-size: 13px; letter-spacing: .1em;
}

/* navegación interna */
.xr_pdp_nav {
  display: flex; gap: 4px; overflow-x: auto; margin: 34px 0 30px;
  border-bottom: 1px solid var(--border-color);
  position: sticky; top: 86px; z-index: 7;
  background: var(--white-color);
}
.xr_pdp_nav a {
  flex: 0 0 auto; padding: 14px 16px; text-decoration: none;
  border-bottom: 2px solid transparent; white-space: nowrap;
  font-size: 12.5px; letter-spacing: .08em; text-transform: uppercase;
  color: var(--secondary-color); transition: color .18s ease, border-color .18s ease;
}
.xr_pdp_nav a:hover { color: var(--primary-color); }
.xr_pdp_nav a.is-on { color: var(--primary-color); border-bottom-color: var(--accent-color); }
@media (max-width: 991px) { .xr_pdp_nav { position: static; } }

/* precios y tendencias */
.xr_bench_scope {
  margin: 0 0 20px; font-size: 12.5px; letter-spacing: .04em; color: var(--accent3-color);
}
.xr_bench_row { margin-bottom: 22px; }
.xr_bench_lbl {
  display: flex; flex-wrap: wrap; gap: 10px; align-items: baseline; margin: 0 0 8px;
  font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--secondary-color);
}
.xr_bench_lbl em {
  font-style: normal; letter-spacing: 0; text-transform: none; font-size: 13px;
  color: var(--secondary-color);
}
.xr_bench_lbl em.is-up { color: #b4453d; }
.xr_bench_lbl em.is-down { color: #175c3f; }
.xr_bench_bars { display: grid; gap: 6px; }
.xr_bench_bar {
  display: flex; align-items: center; justify-content: flex-end;
  min-width: 90px; height: 30px; padding: 0 12px; border-radius: 3px;
  background: var(--gray-color);
}
.xr_bench_bar.is-mine { background: var(--primary-color); }
.xr_bench_bar b { font-size: 13px; font-weight: 400; color: var(--secondary-color); }
.xr_bench_bar.is-mine b { color: var(--accent-color); }
.xr_bench_legend {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
  margin: 0; font-size: 12px; color: var(--secondary-color);
}
.xr_bench_key {
  width: 12px; height: 12px; border-radius: 2px; background: var(--gray-color);
  display: inline-block; margin-inline-start: 12px;
}
.xr_bench_key.is-mine { background: var(--primary-color); margin-inline-start: 0; }
.xr_hist { list-style: none; margin: 0; padding: 0; max-width: 420px; }
.xr_hist li {
  display: flex; justify-content: space-between; gap: 16px; padding: 11px 0;
  border-bottom: 1px solid var(--border-color); font-size: 14px;
  color: var(--secondary-color);
}
.xr_hist li.is-now b { color: var(--primary-color); font-family: var(--primary-font); font-size: 18px; }

/* financiación */
.xr_fin { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 34px; }
@media (max-width: 767px) { .xr_fin { grid-template-columns: 1fr; gap: 24px; } }
.xr_fin_ctrls { display: grid; gap: 20px; align-content: start; }
.xr_fin_ctrl span {
  display: flex; justify-content: space-between; align-items: baseline; gap: 12px;
  font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase;
  color: var(--secondary-color); margin-bottom: 8px;
}
.xr_fin_ctrl b {
  font-family: var(--primary-font); font-size: 18px; letter-spacing: 0;
  text-transform: none; color: var(--primary-color); font-weight: 500;
}
.xr_fin_ctrl input[type="range"] { width: 100%; accent-color: var(--accent3-color); }
.xr_fin_out { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; align-content: start; }
.xr_fin_kpi b {
  display: block; font-family: var(--primary-font); font-size: 22px;
  font-weight: 500; color: var(--primary-color); line-height: 1.2;
}
.xr_fin_kpi span {
  font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--secondary-color);
}

/* canales y barra inferior */
.xr_pdp_channels { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 16px; }
.xr_pdp_portfolio { display: inline-block; margin-top: 14px; }
.xr_pdp_report {
  display: inline-flex; align-items: center; gap: 8px; margin-top: 18px;
  border: 0; background: transparent; cursor: pointer; padding: 0;
  font-family: var(--secondary-font); font-size: 12.5px; color: var(--secondary-color);
  text-decoration: underline; text-underline-offset: 4px;
}
.xr_pdp_report:hover { color: #b4453d; }
.xr_pdp_report:disabled { text-decoration: none; cursor: default; color: #175c3f; }

.xr_pdp_dock {
  position: fixed; inset-inline: 0; bottom: 0; z-index: 60;
  display: flex; align-items: center; justify-content: space-between; gap: 18px;
  padding: 12px max(18px, calc((100vw - 1320px) / 2));
  background: rgba(250, 248, 242, .96); backdrop-filter: blur(10px);
  border-top: 1px solid var(--border-color);
  box-shadow: 0 -10px 30px -26px rgba(28, 27, 25, .7);
}
.xr_pdp_dock_price {
  display: flex; flex-direction: column; min-width: 0;
  font-family: var(--primary-font); font-size: 19px; color: var(--primary-color);
}
.xr_pdp_dock_price em {
  font-family: var(--secondary-font); font-style: normal; font-size: 12px;
  color: var(--secondary-color); overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.xr_pdp_dock_ch { display: flex; gap: 8px; align-items: center; flex: 0 0 auto; }
.xr_pdp_dock_ch .cs_btn { padding: 10px 22px; }
@media (max-width: 575px) {
  .xr_pdp_dock_price em { display: none; }
  .xr_pdp_dock { padding: 10px 14px; }
  .xr_pdp_dock_ch .cs_btn { display: none; }
}
body:has(.xr_pdp_dock) { padding-bottom: 78px; }

/*--------------------------------------------------------------
  Estructura de portal: facetas de tipología, cajón de filtros
  y enlaces de continuación. La retícula, la tipografía y el color
  siguen siendo los nuestros; lo que se toma prestado es el orden.
----------------------------------------------------------------*/

/* fila de tipologías con recuento, bajo la barra de búsqueda */
.xr_mp_types {
  display: flex; gap: 8px; overflow-x: auto; padding: 14px 0 4px;
  scrollbar-width: none;
}
.xr_mp_types::-webkit-scrollbar { display: none; }
.xr_mp_type {
  flex: 0 0 auto; display: inline-flex; align-items: baseline; gap: 8px;
  cursor: pointer; padding: 9px 16px; border-radius: 999px;
  border: 1px solid var(--border-color); background: var(--white-color);
  color: var(--secondary-color); font-family: var(--secondary-font); font-size: 13px;
  white-space: nowrap;
  transition: border-color .18s ease, color .18s ease, background .18s ease;
}
.xr_mp_type:hover { border-color: var(--accent-color); color: var(--primary-color); }
.xr_mp_type b {
  font-weight: 400; font-size: 11px; color: var(--accent3-color);
  font-variant-numeric: tabular-nums;
}
.xr_mp_type.is-on {
  background: var(--primary-color); border-color: var(--primary-color); color: var(--accent-color);
}
.xr_mp_type.is-on b { color: rgba(201, 168, 118, .7); }

/* campana de alerta */
.xr_mp_alert {
  width: var(--mp-ctrl-h); height: var(--mp-ctrl-h); cursor: pointer;
  border: 1px solid var(--border-color); background: var(--white-color);
  color: var(--secondary-color); border-radius: var(--mp-radius); font-size: 15px;
  transition: border-color .18s ease, color .18s ease;
}
.xr_mp_alert:hover { border-color: var(--accent-color); color: var(--primary-color); }
.xr_mp_alert.is-on { border-color: var(--accent3-color); color: var(--accent3-color); }

/* -------------------------------------------------- cajón lateral de filtros */
.xr_mp_scrim {
  position: fixed; inset: 0; z-index: 1400; opacity: 0; pointer-events: none;
  background: rgba(28, 27, 25, .42); backdrop-filter: blur(2px);
  transition: opacity .28s ease;
}
.xr_mp_scrim.is-on { opacity: 1; pointer-events: auto; }
body.xr_drawer_open { overflow: hidden !important; }

.xr_mp_panel {
  position: fixed; z-index: 1401; top: 0; bottom: 0; inset-inline-end: 0;
  width: min(440px, 100vw); margin: 0; border: 0; border-radius: 0;
  padding: 0 26px 0; background: var(--white-color);
  box-shadow: -24px 0 60px -40px rgba(28, 27, 25, .8);
  display: flex; flex-direction: column;
  overflow-y: auto; max-height: none;
  /* El cajón se desplaza solo a sí mismo. Sin esto, al llegar al final de la
     lista de filtros el resto del gesto de la rueda pasa al documento y la
     página de detrás se mueve por debajo del cajón: se pierde el sitio en el
     que se estaba leyendo y al cerrar el panel los resultados aparecen en otra
     posición. `contain` corta esa cadena en el borde del panel. */
  overscroll-behavior: contain;
  animation: xr_drawer_in .3s cubic-bezier(.2, .7, .3, 1);
}
[dir="rtl"] .xr_mp_panel { animation-name: xr_drawer_in_rtl; }
@keyframes xr_drawer_in { from { transform: translateX(100%); } to { transform: none; } }
@keyframes xr_drawer_in_rtl { from { transform: translateX(-100%); } to { transform: none; } }

.xr_mp_panel_head {
  position: sticky; top: 0; z-index: 2;
  display: flex; align-items: center; justify-content: space-between;
  margin: 0 -26px 22px; padding: 20px 26px;
  background: var(--white-color); border-bottom: 1px solid var(--border-color);
}
.xr_mp_panel_head h4 {
  margin: 0; font-family: var(--primary-font); font-size: 22px;
  font-weight: 500; color: var(--primary-color);
}
.xr_mp_close {
  width: 38px; height: 38px; border-radius: 50%; cursor: pointer;
  border: 1px solid var(--border-color); background: transparent;
  color: var(--secondary-color); font-size: 24px; line-height: 1;
  transition: border-color .18s ease, color .18s ease;
}
.xr_mp_close:hover { border-color: var(--primary-color); color: var(--primary-color); }

.xr_mp_panel_grid { grid-template-columns: 1fr; gap: 20px; }
.xr_mp_panel_foot {
  position: sticky; bottom: 0; z-index: 2;
  margin: 24px -26px 0; padding: 18px 26px;
  background: var(--white-color); border-top: 1px solid var(--border-color);
  display: flex; gap: 12px; align-items: center; justify-content: space-between;
}
.xr_mp_apply { flex: 1 1 auto; }
@media (max-width: 575px) {
  .xr_mp_panel { width: 100vw; padding-inline: 20px; }
  .xr_mp_panel_head, .xr_mp_panel_foot { margin-inline: -20px; padding-inline: 20px; }
}

/* ------------------------------------------- enlaces de continuación (SEO) */
.xr_mp_explore {
  margin-top: 56px; padding-top: 36px; border-top: 1px solid var(--border-color);
}
.xr_mp_exh {
  margin: 0 0 22px; font-family: var(--primary-font); font-size: 24px;
  font-weight: 500; color: var(--primary-color);
}
.xr_mp_exgrid {
  display: grid; gap: 30px;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
}
.xr_mp_exgroup h4 {
  margin: 0 0 12px; font-size: 11px; letter-spacing: .14em;
  text-transform: uppercase; color: var(--accent3-color); font-weight: 400;
}
.xr_mp_exgroup p { margin: 0; display: flex; flex-direction: column; gap: 2px; }
.xr_mp_exgroup a {
  display: flex; justify-content: space-between; gap: 12px;
  padding: 7px 0; text-decoration: none; font-size: 14px;
  color: var(--secondary-color); border-bottom: 1px solid transparent;
  transition: color .16s ease, border-color .16s ease;
}
.xr_mp_exgroup a:hover { color: var(--primary-color); border-bottom-color: var(--border-color); }
.xr_mp_exgroup a span {
  font-size: 12px; color: var(--accent3-color); font-variant-numeric: tabular-nums;
}

/* -------------------------------------------- escaparate en página de pilar
   El marketplace montado con data-preview: seis fichas y un enlace al buscador
   completo. Hereda la retícula de .xr_mp_list; solo cambia el remate. */
.xr_mp_preview_more {
  margin: 28px 0 0; text-align: center;
}
.xr_mp_preview_more .xr_link { font-size: 15px; }
.xr_mp_preview_more .xr_link i { margin-inline-start: 8px; }
@media (min-width: 992px) {
  .xr_mp_preview { grid-template-columns: repeat(3, 1fr); }
}
