/*
Theme Name: Bejarano Real Estate
Template: houzez
Description: Child theme de Houzez con la identidad de marca Bejarano Real Estate (Selva Dorada).
Author: Bejarano Real Estate
Version: 3.0
*/

@import url("brand-tokens.css");

/* ── Ficha de propiedad (plantilla Elementor "Single Property", ID 19435) ──
   Secciones del demo que no aplican en México o que salen vacías. Se ocultan por data-id del
   contenedor; si se rehace la plantilla, revisar estos IDs. (2026-10-01) */
.elementor-19435 .elementor-element-58eda151, /* Energy Class (vacío) */
.elementor-19435 .elementor-element-79c9a044, /* Calculadora de hipoteca: título */
.elementor-19435 .elementor-element-53b30dc9, /* Calculadora de hipoteca: widget (supuestos de EE. UU.) */
.elementor-19435 .elementor-element-47304212, /* "You May Also Like" (título sin listado) */
.elementor-19435 .elementor-element-2a76e181, /* Virtual Tour (vacío) */
.elementor-19435 .elementor-element-49c14aeb, /* Floor Plans (vacío) */
.elementor-19435 .elementor-element-3bd6c512, /* Schedule a Tour: título */
.elementor-19435 .elementor-element-3f78e504  /* Schedule a Tour: formulario (no conectado a GHL) */
{ display: none !important; }

/* Video: solo se muestra si la ficha trae un video incrustado */
.elementor-19435 .elementor-element-5c2efbdb:not(:has(iframe)) { display: none !important; }

/* Títulos tal como se escriben (el demo forzaba Mayúscula En Cada Palabra) */
.property_title, .item-title { text-transform: none !important; }

/* ══════════════════════════════════════════════════════════════════
   TIPOGRAFÍA DE MARCA (v1.2, 2026-10-01)
   Houzez trae "Plus Jakarta Sans" en all-css.css + CSS inline de Theme Options.
   Aquí se reemplaza en todo el sitio: DM Serif Display (títulos h1–h3, precios)
   + DM Sans (todo lo demás). DM Serif solo existe en peso 400 → se fuerza 400
   para que el navegador no la "engorde" artificialmente.
   Escala fija (6 tamaños): 12 · 14 · 16/17 · 20 · 28 · 44  (móvil: título 32, secciones 24)
   ══════════════════════════════════════════════════════════════════ */

body.houzez-theme,
body.houzez-theme .btn, body.houzez-theme .form-control, body.houzez-theme .bootstrap-select .text,
body.houzez-theme .main-nav, body.houzez-theme .dropdown-menu, body.houzez-theme .sort-by-title,
body.houzez-theme .houzez-search-button, body.houzez-theme .houzez-submit-button,
body.houzez-theme .btn-create-listing, body.houzez-theme .login-register,
body.houzez-theme h4, body.houzez-theme h5, body.houzez-theme h6 {
  font-family: var(--font-body) !important;
}
body.houzez-theme h4, body.houzez-theme h5, body.houzez-theme h6 { font-weight: var(--weight-semibold); }

body.houzez-theme h1, body.houzez-theme h2, body.houzez-theme h3,
body.houzez-theme .item-title, body.houzez-theme .item-title a {
  font-family: var(--font-display) !important;
  font-weight: 400 !important;
  letter-spacing: -0.005em;
}

/* ── Ficha de propiedad (plantilla 19435) ── */

/* Título de la propiedad: lo más grande de la página */
.elementor-19435 .elementor-element-35d3c2ed .elementor-heading-title,
.elementor-19435 .elementor-element-35d3c2ed .page-title h1 {
  font-size: 44px !important;
  line-height: 1.15 !important;
  letter-spacing: -0.01em !important;
}

/* Precio en serif + moneda chica */
.elementor-19435 .item-price .price,
.elementor-19435 .item-price {
  font-family: var(--font-display) !important;
  font-weight: 400 !important;
  font-size: 40px !important;
  line-height: 1.1 !important;
}
.bre-price-currency {
  font-family: var(--font-body);
  font-size: 16px;
  font-weight: var(--weight-semibold);
  color: var(--color-muted);
  margin-left: 4px;
}

/* Títulos de sección (Description, Details, Address…): serif 28, línea de acento naranja */
.elementor-19435 .elementor-widget-heading .elementor-heading-title {
  font-size: 28px !important;
  line-height: 1.25 !important;
}
.elementor-19435 .elementor-widget-heading.elementor-widget__width-auto {
  border-top-color: var(--color-naranja) !important;
}

/* Descripción importada: el H1 repetido y los H2 ya no gritan más que el título */
.elementor-widget-houzez-property-section-description h1 {
  font-size: 28px !important;
  line-height: 1.25 !important;
}
body.houzez-theme .elementor-widget-houzez-property-section-description h2,
body.houzez-theme .elementor-widget-houzez-property-section-description h3 {
  font-family: var(--font-body) !important;
  font-weight: var(--weight-semibold) !important;
  font-size: 20px !important;
  line-height: 1.35 !important;
  margin: 1.5em 0 0.5em;
}
.elementor-widget-houzez-property-section-description p,
.elementor-widget-houzez-property-section-description li {
  font-size: 17px;
  line-height: 1.7;
}

/* Cajas de datos (Recámaras, Baños, Detalles): etiqueta chica gris, dato firme, ícono verde */
.hs-meta-widget-module .hs-meta-widget-title { font-size: 14px; color: var(--color-muted); }
.hs-meta-widget-module .hs-meta-widget-data  { font-size: 18px; font-weight: var(--weight-semibold); color: var(--color-text); }
.hs-meta-widget-module .hs-meta-widget-icon,
.hs-meta-widget-module .hs-meta-widget-icon i { color: var(--color-hoja); font-size: 20px; }

/* Etiqueta de estado (En venta / En renta): verde de marca, legible (antes rojo 10px) */
body.houzez-theme .label-status,
body.houzez-theme .label-status[class*="status-color-"] {
  background-color: var(--color-verde) !important;
  color: var(--color-white) !important;
  font-family: var(--font-body);
  font-size: 12px !important;
  font-weight: var(--weight-semibold) !important;
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  padding: 6px 10px;
  border-radius: var(--radius-sm);
}

@media (max-width: 767px) {
  .elementor-19435 .elementor-element-35d3c2ed .elementor-heading-title,
  .elementor-19435 .elementor-element-35d3c2ed .page-title h1 { font-size: 32px !important; }
  .elementor-19435 .item-price .price,
  .elementor-19435 .item-price { font-size: 34px !important; }
  .elementor-19435 .elementor-widget-heading .elementor-heading-title,
  .elementor-widget-houzez-property-section-description h1 { font-size: 24px !important; }
  .elementor-widget-houzez-property-section-description h2,
  .elementor-widget-houzez-property-section-description h3 { font-size: 18px !important; }
  .elementor-widget-houzez-property-section-description p,
  .elementor-widget-houzez-property-section-description li { font-size: 16px; }
}

/* ══════════════════════════════════════════════════════════════════
   FICHA DE PROPIEDAD — LAYOUT DEL MOCKUP (v1.3, 2026-10-01)
   Mockup aprobado: https://claude.ai/artifact/E2kBzMtYmrgUYYHcdnhbGb
   Estructura armada en Elementor (plantilla 19435): galería v5 (mosaico), columna principal
   #5bdeab6d + columna lateral .bre-sidebar (precio, .bre-cta con botones WhatsApp, formulario),
   franja de datos .bre-facts (recámaras, baños, terreno, construcción, tipo), clave .bre-clave.
   ══════════════════════════════════════════════════════════════════ */

/* Galería mosaico (v5): alineada al ancho del contenido, 500 px de alto, esquinas redondeadas */
.elementor-19435 .elementor-element-473b9dce { background: var(--color-crema) !important; }
.elementor-19435 .elementor-element-58b59383 {
  max-width: 1412px !important;
  width: calc(100% - 32px) !important;
  margin: 24px auto 0;
  padding: 0 !important;
}
.elementor-19435 .hs-gallery-v5-grid { grid-template-rows: 500px !important; gap: 8px !important; }
.elementor-19435 .hs-gallery-v5-grid-item-01 { grid-template-rows: 500px !important; }
.elementor-19435 .hs-gallery-v5-grid-item-02 { grid-template-rows: 246px 246px !important; gap: 8px !important; }
.elementor-19435 .hs-gallery-v5-grid a { display: block; height: 100%; }
.elementor-19435 .hs-gallery-v5-grid img { width: 100%; height: 100% !important; object-fit: cover; }
.elementor-19435 .elementor-element-58b59383 .elementor-widget-container { border-radius: var(--radius-lg); overflow: hidden; }

/* Dos columnas: contenido + tarjeta lateral fija */
.elementor-19435 .elementor-element-7660f79c > .e-con-inner {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 380px;
  gap: 64px;
  align-items: start;
}
.elementor-19435 .elementor-element-5bdeab6d,
.elementor-19435 .bre-sidebar { width: auto !important; max-width: none !important; }

.elementor-19435 .bre-sidebar {
  position: sticky;
  top: 24px;
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  padding: 32px !important;
  gap: 20px !important;
  box-shadow: 0 12px 32px rgba(29, 58, 40, 0.08);
}
.admin-bar .elementor-19435 .bre-sidebar { top: 56px; }

/* Precio: en la tarjeta lateral (escritorio) / bajo el título (celular) */
.elementor-19435 .bre-price-inline { display: none; }
.elementor-19435 .bre-sidebar .item-price,
.elementor-19435 .bre-sidebar .item-price .price { font-size: 44px !important; margin: 0 !important; }
.elementor-19435 .bre-sidebar .elementor-widget { margin: 0 !important; }
.elementor-19435 .bre-eyebrow-precio .elementor-heading-title {
  font-family: var(--font-body) !important;
  font-size: 12px !important;
  font-weight: var(--weight-semibold) !important;
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  color: var(--color-muted) !important;
}
.elementor-19435 .bre-eyebrow-precio { border-top: 0 !important; padding-top: 0 !important; }

/* Botones de contacto */
.elementor-19435 .bre-cta { gap: 12px !important; padding: 0 !important; }
.elementor-19435 .bre-cta .elementor-widget-button,
.elementor-19435 .bre-cta .elementor-button { width: 100%; }
.elementor-19435 .bre-cta .elementor-button {
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-md);
  font-family: var(--font-body);
  font-size: 16px;
  font-weight: var(--weight-semibold);
  transition: var(--transition-colors);
}
.elementor-19435 .bre-wa .elementor-button { background: var(--color-naranja); color: var(--color-text); border: 1px solid var(--color-naranja); }
.elementor-19435 .bre-wa .elementor-button:hover { background: var(--color-naranja-hover); border-color: var(--color-naranja-hover); }
.elementor-19435 .bre-wa-visita .elementor-button { background: transparent; color: var(--color-verde); border: 1px solid var(--color-verde); }
.elementor-19435 .bre-wa-visita .elementor-button:hover { background: var(--color-verde); color: var(--color-white); }
.elementor-19435 .bre-cta .elementor-button svg { width: 18px; height: 18px; fill: currentColor; }
.elementor-19435 .bre-cta .elementor-button-content-wrapper { gap: 10px; align-items: center; }

/* Formulario en la tarjeta: sin tipo de usuario ni avatar genérico */
.elementor-19435 .elementor-element-4f0c42e .agent-details,
.elementor-19435 .elementor-element-4f0c42e .agent-link,
.elementor-19435 .elementor-element-4f0c42e .form-group:has(select),
.elementor-19435 .elementor-element-4f0c42e .bootstrap-select { display: none !important; }
.elementor-19435 .elementor-element-4f0c42e .elementor-widget-container,
.elementor-19435 .elementor-element-4f0c42e .property-form-wrap { padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important; }
.elementor-19435 .elementor-element-4f0c42e .form-control {
  height: 44px;
  background: var(--color-crema);
  border: 1px solid rgba(29, 58, 40, 0.2);
  border-radius: var(--radius-md);
  font-size: 15px;
}
.elementor-19435 .elementor-element-4f0c42e textarea.form-control { height: auto; min-height: 96px; }
.elementor-19435 .elementor-element-4f0c42e .houzez-ele-button {
  width: 100%;
  height: 48px;
  background: var(--color-verde) !important;
  border-color: var(--color-verde) !important;
  color: var(--color-white) !important;
  border-radius: var(--radius-md);
  font-weight: var(--weight-semibold);
}

/* Fila superior: etiqueta de estado · clave · herramientas a la derecha */
.elementor-19435 .elementor-element-706bf556 { align-items: center !important; gap: 12px !important; }
.elementor-19435 .elementor-element-7a3f4a05 { margin-left: auto !important; width: auto !important; }
.elementor-19435 .bre-clave .hs-meta-widget-icon,
.elementor-19435 .bre-clave .hs-meta-widget-title { display: none !important; }
.elementor-19435 .bre-clave .hs-meta-widget-module { padding: 0 !important; border: 0 !important; background: transparent !important; }
.elementor-19435 .bre-clave .hs-meta-widget-data { font-size: 13px !important; font-weight: var(--weight-medium) !important; color: var(--color-muted) !important; letter-spacing: var(--tracking-wide); }
.elementor-19435 .elementor-element-1af13afa { display: none !important; } /* dirección superior: sale vacía */

/* Franja de datos clave: una sola barra con divisiones */
.elementor-19435 .bre-facts {
  display: grid !important;
  grid-auto-flow: column;
  grid-auto-columns: minmax(0, 1fr);
  gap: 0 !important;
  margin-top: 8px;
  padding: 0 !important;
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.elementor-19435 .bre-facts > .elementor-widget { width: auto !important; margin: 0 !important; border-right: 1px solid var(--color-border); }
.elementor-19435 .bre-facts > .elementor-widget:last-child { border-right: 0; }
.elementor-19435 .bre-facts > .elementor-widget:not(:has(.hs-meta-widget-module)) { display: none !important; }
.elementor-19435 .bre-facts .hs-meta-widget-module {
  display: flex !important;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  height: 100%;
  padding: 20px 24px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
}
.elementor-19435 .bre-facts .hs-meta-widget-module { justify-content: flex-end; }
.elementor-19435 .bre-facts .hs-meta-widget-icon { order: 1; margin-bottom: 4px; }
.elementor-19435 .bre-facts .hs-meta-widget-data { order: 2; font-size: 20px !important; line-height: 1.2; }
.elementor-19435 .bre-facts .hs-meta-widget-title { order: 3; font-size: 14px !important; }

/* Secciones: título arriba y contenido abajo (antes título a la izquierda), sin líneas */
.elementor-19435 .elementor-element-477e6ad2,
.elementor-19435 .elementor-element-58039a96,
.elementor-19435 .elementor-element-1cfdde48,
.elementor-19435 .elementor-element-14c39eab {
  flex-direction: column !important;
  gap: 16px !important;
  border: 0 !important;
  padding-top: 48px !important;
}
.elementor-19435 .elementor-element-477e6ad2 > .e-con,
.elementor-19435 .elementor-element-58039a96 > .e-con,
.elementor-19435 .elementor-element-1cfdde48 > .e-con,
.elementor-19435 .elementor-element-14c39eab > .e-con { width: 100% !important; max-width: 100% !important; padding: 0 !important; }
.elementor-19435 .elementor-widget-heading.elementor-widget__width-auto { border-top: 0 !important; padding-top: 0 !important; }
.elementor-19435 .elementor-element-77d0b198 { display: none; } /* espaciador */
.elementor-19435 .elementor-widget-houzez-property-section-description .elementor-widget-container,
.elementor-19435 .block-wrap { background: transparent !important; padding: 0 !important; box-shadow: none !important; border: 0 !important; }
.elementor-19435 .elementor-widget-houzez-property-section-description :is(h2, h3, p):first-child { margin-top: 0 !important; }
.elementor-19435 .elementor-widget-houzez-property-section-description a { color: var(--color-hoja); font-weight: var(--weight-semibold); }
.elementor-19435 .elementor-widget-houzez-property-section-features li { font-size: 16px; }
.elementor-19435 .elementor-widget-houzez-property-section-features i,
.elementor-19435 .elementor-widget-houzez-property-section-features svg { color: var(--color-hoja); }

/* Bloques del demo que quedaron vacíos (los hijos ya estaban ocultos) */
.elementor-19435 .elementor-element-49097270,
.elementor-19435 .elementor-element-2940877d { display: none !important; }

/* ── Celular y tableta ── */
@media (max-width: 1024px) {
  .elementor-19435 .elementor-element-7660f79c > .e-con-inner { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .elementor-19435 .bre-sidebar { position: static; }
  .elementor-19435 .hs-gallery-v5-grid { grid-template-rows: 360px !important; }
  .elementor-19435 .hs-gallery-v5-grid-item-01 { grid-template-rows: 360px !important; }
  .elementor-19435 .hs-gallery-v5-grid-item-02 { grid-template-rows: 176px 176px !important; }
}
@media (max-width: 767px) {
  .elementor-19435 .bre-price-inline { display: block; margin-top: 4px; }
  .elementor-19435 .bre-eyebrow-precio,
  .elementor-19435 .bre-price-side { display: none !important; }
  .elementor-19435 .bre-sidebar { padding: 20px !important; }
  .elementor-19435 .bre-facts { grid-auto-flow: row; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .elementor-19435 .bre-facts > .elementor-widget { border-bottom: 1px solid var(--color-border); }
  .elementor-19435 .bre-facts .hs-meta-widget-module { padding: 14px 12px !important; }
  .elementor-19435 .bre-facts .hs-meta-widget-data { font-size: 18px !important; }
  .elementor-19435 .bre-facts .hs-meta-widget-title { font-size: 13px !important; }
  /* Barra fija inferior con los dos botones */
  .elementor-19435 .bre-cta {
    position: fixed !important;
    left: 0; right: 0; bottom: 0;
    z-index: 300;
    flex-direction: row !important;
    padding: 12px 16px calc(12px + env(safe-area-inset-bottom)) !important;
    background: var(--color-white);
    border-top: 1px solid var(--color-border);
    box-shadow: 0 -8px 24px rgba(29, 58, 40, 0.08);
  }
  .elementor-19435 .bre-cta .elementor-button { font-size: 14px; height: 48px; }
  .elementor-19435 .bre-cta { flex-wrap: nowrap !important; }
  .elementor-19435 .bre-cta .elementor-widget-button { width: auto !important; min-width: 0; }
  .elementor-19435 .bre-wa { flex: 1 1 auto; }
  .elementor-19435 .bre-wa-visita { flex: 0 0 52px; }
  .elementor-19435 .bre-wa-visita .elementor-button-text { display: none; }   /* solo ícono de calendario */
  .elementor-19435 .bre-wa-visita .elementor-button { padding: 0; }
  .elementor-19435 .bre-price-inline { order: 1; }   /* precio antes de la franja de datos */
  .elementor-19435 .bre-facts { order: 2; }
  body.single-property { padding-bottom: 84px; }
  body.single-property .back-to-top-wrap { bottom: 92px !important; }
}

/* ── Ficha rápida y preguntas frecuentes de la descripción (v1.4, 2026-10-01) ──
   Las inserta migracion/15_aplicar_seo_ficha.py: <ul class="bre-ficha-rapida"> y <h2 class="bre-faq">. */
.elementor-widget-houzez-property-section-description ul.bre-ficha-rapida {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  list-style: none;
  margin: 0 0 24px !important;
  padding: 0 !important;
}
.elementor-widget-houzez-property-section-description ul.bre-ficha-rapida li {
  margin: 0;
  padding: 6px 12px;
  border-radius: var(--radius-full);
  background: var(--color-verde-light);
  color: var(--color-verde);
  font-size: 14px !important;
  font-weight: var(--weight-medium);
  line-height: 1.4;
}
body.houzez-theme .elementor-widget-houzez-property-section-description h2.bre-faq {
  font-family: var(--font-display) !important;
  font-weight: 400 !important;
  font-size: 28px !important;
  margin-top: 48px !important;
}
body.houzez-theme .elementor-widget-houzez-property-section-description h2.bre-faq ~ h3 {
  font-family: var(--font-body) !important;
  font-weight: var(--weight-semibold) !important;
  font-size: 17px !important;
  margin: 24px 0 4px !important;
  padding-top: 20px;
  border-top: 1px solid var(--color-border);
}
@media (max-width: 767px) {
  body.houzez-theme .elementor-widget-houzez-property-section-description h2.bre-faq { font-size: 24px !important; }
}
body.houzez-theme a.houzez-read-more-link { color: var(--color-hoja) !important; font-weight: var(--weight-semibold); }
body.houzez-theme a.houzez-read-more-link:hover { color: var(--color-verde) !important; }

/* ── Botón "Leer descripción completa": que se vea como botón, no como texto (v1.4, 2026-10-01) ── */
body.houzez-theme a.houzez-read-more-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  padding: 10px 18px;
  border: 1.5px solid var(--color-verde);
  border-radius: var(--radius-full);
  background: var(--color-white);
  color: var(--color-verde) !important;
  font-size: 15px;
  font-weight: var(--weight-semibold);
  text-decoration: none;
  transition: var(--transition-colors);
}
body.houzez-theme a.houzez-read-more-link::after { content: "↓"; font-size: 16px; line-height: 1; }
body.houzez-theme a.houzez-read-more-link:hover { background: var(--color-verde); color: var(--color-white) !important; }

/* Nota bajo el mapa de las casas (ubicación aproximada) */
.bre-ubicacion-aproximada .elementor-19435 .elementor-element-9f20f79::after {
  content: "Ubicación aproximada. La dirección exacta se comparte al agendar la visita.";
  display: block;
  margin-top: 8px;
  font-size: 14px;
  color: var(--color-muted);
}

/* ── Ajustes de la revisión de diseño (v1.5, 2026-10-02) ── */
/* Sección "Características" de Houzez: lo mismo está en "Lo que incluye" de la descripción (la taxonomía sigue para filtros) */
.elementor-19435 .elementor-element-58039a96,
/* Filas vacías de Energy Class y Calculadora: su contenido ya estaba oculto pero dejaban una línea suelta */
.elementor-19435 .elementor-element-4fee38d,
.elementor-19435 .elementor-element-67bacf92 { display: none !important; }

/* Clave junto a "En venta": texto simple en todas las pantallas (en celular salía dentro de una caja) */
.elementor-19435 .bre-clave,
.elementor-19435 .bre-clave .elementor-widget-container,
.elementor-19435 .bre-clave .hs-meta-widget-module {
  border: 0 !important; background: transparent !important; box-shadow: none !important; padding: 0 !important; width: auto !important;
}

/* Franja de datos: sin cortes de línea en la etiqueta */
.elementor-19435 .bre-facts .hs-meta-widget-title,
.elementor-19435 .bre-facts .hs-meta-widget-data { white-space: nowrap; }

@media (max-width: 767px) {
  /* 5 datos en celular: 3 arriba + 2 abajo, sin hueco */
  .elementor-19435 .bre-facts { display: flex !important; flex-wrap: wrap; }
  .elementor-19435 .bre-facts > .elementor-widget { flex: 1 1 30%; border-bottom: 1px solid var(--color-border); margin-bottom: -1px !important; }
}

/* Mapa de la ficha: halo blanco para que el símbolo de marca no se pierda sobre calles y vegetación */
#houzez-single-listing-map .leaflet-marker-icon { filter: drop-shadow(0 0 3px rgba(255,255,255,.95)); }

/* Propiedades en venta y renta: el segundo precio (renta) no traía etiqueta. Se rotula "Renta mensual" y "/ mes". */
.bre-price-side .item-sub-price::before {
  content: "Renta mensual"; display: block; font-family: var(--font-body, "DM Sans", sans-serif);
  font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
  color: var(--color-text-muted, #5b6b60); margin: 8px 0 2px;
}
.bre-price-side .item-sub-price .price::after { content: " / mes"; font-size: 14px; font-weight: 400; color: var(--color-text-muted, #5b6b60); }

/* Home: foto del día — enlace a la ficha */
.bre-hero-dia { position: relative; }
.bre-hero-dia-link { position: absolute; right: 24px; bottom: 20px; z-index: 3; max-width: 280px; padding: 10px 14px; border-radius: 4px; background: rgba(29, 58, 40, .82); color: #F5F2E8; font-size: 14px; line-height: 1.3; }
.bre-hero-dia-link small { display: block; margin-bottom: 2px; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: #F0881A; }
.bre-hero-dia-link:hover { background: #F0881A; color: #fff; }
.bre-hero-dia-link:hover small { color: #fff; }
@media (max-width: 767px) { .bre-hero-dia-link { display: none; } }

/* Fichas solo de renta: el precio principal va "/ mes" (el rótulo cambia a "Renta mensual" por JS en functions.php) */
.bre-solo-renta .bre-price-side .item-price .price::after { content: " / mes"; font-size: 14px; font-weight: 400; color: var(--color-text-muted, #5b6b60); }

/* Sin coordenadas: se oculta toda la sección "Ubicación" de la ficha (contenedor 14c39eab de la plantilla 19435) */
.bre-sin-mapa .elementor-19435 .elementor-element-14c39eab { display: none !important; }

/* Home: tarjetas de propiedad más limpias */
.item-listing-wrap .item-address:has(> span:empty) { display: none; }

/* Home: tarjetas de tipo y de zona (image-box con foto grande) */
.bre-cat .elementor-image-box-wrapper { position: relative; overflow: hidden; border-radius: 6px; }
.bre-cat .elementor-image-box-img { margin: 0 !important; width: 100% !important; }
.bre-cat .elementor-image-box-img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; transition: transform .5s ease; }
.bre-cat:hover .elementor-image-box-img img { transform: scale(1.05); }
.bre-cat .elementor-image-box-content { position: absolute; inset: auto 0 0 0; padding: 38px 18px 16px; background: linear-gradient(to top, rgba(13, 25, 18, .85), rgba(13, 25, 18, 0)); }
.bre-cat .elementor-image-box-title { margin: 0 0 2px; color: #fff; font-size: 24px; }
.bre-cat .elementor-image-box-title a { color: #fff; }
.bre-cat .elementor-image-box-description { margin: 0; color: #F5F2E8; font-size: 14px; }

/* ── Reseñas: carrusel compacto ── */
.bre-rev__eyebrow { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; color: #3A6B4A; }
.bre-rev__stars, .bre-rev__st { color: #F0881A; letter-spacing: 2px; }
.bre-car__top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 18px 40px; margin-bottom: 26px; }
.bre-car__top h2 { font-family: 'DM Serif Display', serif; font-weight: 400; font-size: clamp(26px, 2.6vw, 36px); line-height: 1.1; margin: 8px 0 0; color: #1D3A28; }
.bre-car__score { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; color: #4F6656; font-size: 14px; }
.bre-car__num { font-family: 'DM Serif Display', serif; font-size: 34px; line-height: 1; color: #1D3A28; }
.bre-car__score .bre-rev__stars { font-size: 16px; }
.bre-car__ver { font-weight: 600; color: #1D3A28; }
.bre-car__ver:hover { color: #F0881A; }
.bre-car__wrap { position: relative; }
.bre-car__track { display: flex; gap: 18px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 4px 2px 10px; }
.bre-car__track::-webkit-scrollbar { display: none; }
.bre-car__card { flex: 0 0 min(330px, 84vw); scroll-snap-align: start; margin: 0; padding: 22px 22px 20px; background: #fff; border: 1px solid #E3DECE; border-radius: 14px; display: flex; flex-direction: column; gap: 12px; transition: box-shadow .25s ease, transform .25s ease; }
.bre-car__card:hover { box-shadow: 0 10px 24px rgba(21, 43, 30, .10); transform: translateY(-2px); }
.bre-car__card .bre-rev__st { font-size: 14px; }
.bre-car__card blockquote { margin: 0; padding: 0; border: 0; font-size: 15.5px; line-height: 1.5; color: #1D2820; display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden; }
.bre-car__card figcaption { display: flex; align-items: center; gap: 11px; margin-top: auto; }
.bre-car__foto, .bre-car .bre-rev__av { flex: none; width: 44px; height: 44px; border-radius: 50%; object-fit: cover; }
.bre-car .bre-rev__av { background: #1D3A28; color: #F5F2E8; display: grid; place-items: center; font-weight: 600; font-size: 14px; }
.bre-car__card figcaption b { display: block; font-size: 14.5px; line-height: 1.25; color: #1D3A28; }
.bre-car__card figcaption small { display: block; font-size: 12.5px; color: #4F6656; }
.bre-car__card figcaption small a { color: #3A6B4A; text-decoration: underline; text-underline-offset: 2px; }
.bre-car__card figcaption small em { font-style: normal; background: #F5F2E8; border-radius: 3px; padding: 0 5px; font-size: 11px; letter-spacing: .04em; text-transform: uppercase; }
.bre-car__flecha { position: absolute; top: 50%; transform: translateY(-60%); z-index: 2; width: 40px; height: 40px; border-radius: 50%; border: 1px solid #D9D3C1; background: #fff; color: #1D3A28; font-size: 24px; line-height: 1; cursor: pointer; box-shadow: 0 6px 16px rgba(21, 43, 30, .14); }
.bre-car__flecha:hover { background: #F0881A; border-color: #F0881A; color: #fff; }
.bre-car__flecha--izq { left: -14px; }
.bre-car__flecha--der { right: -14px; }
@media (max-width: 760px) { .bre-car__flecha { display: none; } .bre-car__top { align-items: flex-start; } }

/* ── Footer ── */
.bre-foot { position: relative; }
.bre-foot, .bre-foot p, .bre-foot li, .bre-foot .elementor-icon-list-text, .bre-foot .elementor-widget-text-editor { color: #F5F2E8; }
.bre-foot a { color: #F5F2E8; transition: color .2s ease; }
.bre-foot a:hover { color: #F0881A; }
.bre-foot-cta { border-bottom: 1px solid rgba(245, 242, 232, .18); padding-bottom: 46px; }
.bre-foot-cta .elementor-heading-title { font-family: 'DM Serif Display', serif; font-weight: 400; font-size: clamp(28px, 3.4vw, 42px); line-height: 1.1; color: #fff; max-width: 640px; }
.bre-foot-cta p { margin: 6px 0 0; color: #B9C7BC; }
.bre-foot-h .elementor-heading-title { position: relative; margin: 0; padding-bottom: 14px; font-size: 19px; color: #fff; }
.bre-foot-h .elementor-heading-title::after { content: ""; position: absolute; left: 0; bottom: 0; width: 34px; height: 2px; background: #F0881A; }
.bre-foot-desc p { margin: 0; max-width: 340px; color: #B9C7BC; line-height: 1.65; }
.bre-foot-links ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 11px; }
.bre-foot-links a { opacity: .88; }
.bre-foot-links a:hover { opacity: 1; }
.bre-foot .elementor-icon-list-icon i, .bre-foot .elementor-icon-list-icon svg { color: #F0881A; fill: #F0881A; }
.bre-foot .elementor-icon-list-item > a, .bre-foot .elementor-icon-list-item > span { align-items: flex-start; }
.bre-foot .elementor-social-icon { width: 44px; height: 44px; background: transparent !important; border: 1px solid rgba(245, 242, 232, .35); border-radius: 50%; transition: all .2s ease; }
.bre-foot .elementor-social-icon i { color: #F5F2E8; }
.bre-foot .elementor-social-icon:hover { background: #F0881A !important; border-color: #F0881A; }
.bre-foot-bar { border-top: 1px solid rgba(245, 242, 232, .15); }
.bre-foot-bar p, .bre-foot-bar .elementor-heading-title { margin: 0; font-size: 13px; font-weight: 400; color: rgba(245, 242, 232, .72); font-family: 'DM Sans', sans-serif; }
.bre-foot-bar .navbar-nav { gap: 22px; }
.bre-foot-bar a, .bre-foot-bar .nav-link { font-size: 13px; color: rgba(245, 242, 232, .72); }

/* 404 */
/* 404 en español con el estilo de marca */
.error-404-page { padding-block: 70px 90px; }
.error-404-page h1, .error-404-page .page-title { font-size: clamp(34px, 5vw, 56px); margin-bottom: 14px; }
.error-404-page p { max-width: 520px; margin: 0 auto 8px; color: #4F6656; font-size: 17px; }
.error-404-page .btn.btn-link { display: inline-block; margin-top: 18px; padding: 13px 24px; background: #F0881A; border: 1px solid #F0881A; border-radius: 4px; color: #fff; font-weight: 600; text-decoration: none; }
.error-404-page .btn.btn-link:hover { background: #d9770f; border-color: #d9770f; color: #fff; }

/* ── Home (Inicio, ID 19542): contenedor centrado (2026-10-04) ──
   El ancho "boxed" de Elementor está en 1440 px y el contenido tocaba los bordes de la pantalla.
   Las secciones conservan su fondo a ancho completo; solo el contenido se limita a 1240 px.
   2026-10-12: también Contacto (ID 16941), que tenía el texto pegado al borde izquierdo. */
.elementor-19542 > .e-con > .e-con-inner,
.elementor-16941 > .e-con > .e-con-inner {
  max-width: 1240px !important;
  width: 100% !important;
  margin-inline: auto !important;
  padding-inline: clamp(16px, 3vw, 32px) !important;
  box-sizing: border-box;
}
.elementor-19542 > .bre-hero-dia { padding-inline: 0 !important; }

/* ── Comprar / Rentar y demás archivos de propiedades (2026-10-05) ──
   Sin barra lateral (en inglés y sin uso), cuadrícula de 3 columnas y tarjetas con el estilo de la home. */
body:is([class*="tax-property_"],.page-template-template-listing-grid-v1-fullwidth-4cols,.page-template-template-search) .bt-sidebar-wrap { display: none !important; }
body:is([class*="tax-property_"],.page-template-template-listing-grid-v1-fullwidth-4cols,.page-template-template-search) .bt-content-wrap { flex: 0 0 100%; max-width: 100%; width: 100%; }
body:is([class*="tax-property_"],.page-template-template-listing-grid-v1-fullwidth-4cols,.page-template-template-search) .page-title h1 { font-size: clamp(32px, 4.2vw, 48px); line-height: 1.08; margin-bottom: 6px; }
body:is([class*="tax-property_"],.page-template-template-listing-grid-v1-fullwidth-4cols,.page-template-template-search) .listing-view.grid-view {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
  margin: 0;
}
body:is([class*="tax-property_"],.page-template-template-listing-grid-v1-fullwidth-4cols,.page-template-template-search) .listing-view.grid-view > * { width: auto; max-width: none; padding: 0; margin: 0; }
body:is([class*="tax-property_"],.page-template-template-listing-grid-v1-fullwidth-4cols,.page-template-template-search) .item-listing-wrap {
  height: 100%;
  background: #fff;
  border: 1px solid rgba(29, 58, 40, .08);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 1px 2px rgba(29, 58, 40, .05);
  transition: transform .25s ease, box-shadow .25s ease;
}
body:is([class*="tax-property_"],.page-template-template-listing-grid-v1-fullwidth-4cols,.page-template-template-search) .item-listing-wrap:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(29, 58, 40, .12); }
body:is([class*="tax-property_"],.page-template-template-listing-grid-v1-fullwidth-4cols,.page-template-template-search) .item-listing-wrap .item-title a {
  font-family: 'DM Serif Display', serif; font-weight: 400; font-size: 19px; line-height: 1.22; color: #1D2820;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
body:is([class*="tax-property_"],.page-template-template-listing-grid-v1-fullwidth-4cols,.page-template-template-search) .item-listing-wrap .item-price-wrap .item-price,
body:is([class*="tax-property_"],.page-template-template-listing-grid-v1-fullwidth-4cols,.page-template-template-search) .item-listing-wrap .item-price-wrap .price {
  font-family: 'DM Serif Display', serif; font-size: 22px; font-weight: 400; color: #F0881A;
}
@media (max-width: 1100px) { body:is([class*="tax-property_"],.page-template-template-listing-grid-v1-fullwidth-4cols,.page-template-template-search) .listing-view.grid-view { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px)  { body:is([class*="tax-property_"],.page-template-template-listing-grid-v1-fullwidth-4cols,.page-template-template-search) .listing-view.grid-view { grid-template-columns: 1fr; gap: 20px; } }
/* Párrafo introductorio bajo el H1 */
body:is([class*="tax-property_"],.page-template-template-listing-grid-v1-fullwidth-4cols,.page-template-template-search) .taxonomy-description { margin: 4px 0 22px; }
body:is([class*="tax-property_"],.page-template-template-listing-grid-v1-fullwidth-4cols,.page-template-template-search) .bre-intro { max-width: 760px; margin: 0; font-size: 17px; line-height: 1.6; color: #4F6656; }
/* Una propiedad en venta Y renta sale en las dos listas con AMBAS etiquetas (En venta + En renta) en la foto */
/* Rentar: el precio es mensual */
body.bre-vista-renta .item-listing-wrap .item-price-wrap .bre-price-currency::after { content: " / mes"; color: #5C6B58; font-weight: 400; }
/* Filtros: el deslizador de precio sobra (ya hay mínimo y máximo) y mostraba un rango de renta en Comprar */
body:is([class*="tax-property_"],.page-template-template-listing-grid-v1-fullwidth-4cols,.page-template-template-search) .advanced-search-filters .col-12:has(> .range-wrap) { display: none; }

/* Ficha en celular (2026-10-07): el mapa de Houzez es position:absolute y su caja medía 0 px, así que la tarjeta del formulario
   se montaba ~350 px encima del mapa. Se le da su propio espacio y se agrandan los botones +/- del zoom a 40 px. */
@media (max-width: 767px) {
  .elementor-19435 .elementor-widget-houzez-property-section-map .houzez-elementor-map-wrap { position: relative !important; height: 380px !important; }
  .elementor-19435 .elementor-widget-houzez-property-section-map .leaflet-container { height: 380px !important; }
  .elementor-19435 .leaflet-control-zoom a { width: 40px; height: 40px; line-height: 40px; }
}

/* ── Páginas legales (2026-10-08): Aviso de privacidad (748, /privacy/) y Términos (745, /terms-and-conditions/) ──
   Ancho de lectura ~75 caracteres, aire entre secciones y tabla suave de marca. */
body:is(.page-id-748, .page-id-745) .page-content-wrap > * { max-width: 760px; }
body:is(.page-id-748, .page-id-745) .page-content-wrap :is(p, li) { font-size: 16px; line-height: 1.7; color: #1D2820; }
body:is(.page-id-748, .page-id-745) .page-content-wrap h2 { font-size: 26px; line-height: 1.25; margin: 48px 0 12px; color: #1D3A28; }
body:is(.page-id-748, .page-id-745) .page-content-wrap h2:first-of-type { margin-top: 24px; }
body:is(.page-id-748, .page-id-745) .page-content-wrap :is(ul, ol) { padding-left: 22px; margin: 0 0 16px; }
body:is(.page-id-748, .page-id-745) .page-content-wrap li { margin-bottom: 6px; }
body:is(.page-id-748, .page-id-745) .page-content-wrap a { color: #1D3A28; text-decoration: underline; text-underline-offset: 3px; }
body:is(.page-id-748, .page-id-745) .wp-block-table { overflow-x: auto; margin: 8px 0 16px; }
body:is(.page-id-748, .page-id-745) .wp-block-table table { border-collapse: collapse; width: 100%; min-width: 520px; }
body:is(.page-id-748, .page-id-745) .wp-block-table :is(th, td) { border: 0; border-bottom: 1px solid #E4DFD0; padding: 10px 12px; text-align: left; vertical-align: top; font-size: 15px; line-height: 1.5; }
body:is(.page-id-748, .page-id-745) .wp-block-table th { background: #F5F2E8; color: #1D3A28; font-weight: 600; }
@media (max-width: 767px) {
  body:is(.page-id-748, .page-id-745) .page-content-wrap h2 { font-size: 22px; margin-top: 36px; }
}

/* ── Encabezado por encima del hero (2026-10-12) ──
   El encabezado (plantilla 18955, contenedor 46669b9) es transparente y se monta sobre el hero.
   En escritorio/tableta Elementor le da z-index 1, igual que al contenido del hero (.bre-hero-dia
   .e-con-inner, CSS bre-home2), que va después y lo tapaba: el menú no recibía clics. */
body .elementor-18955 .elementor-element.elementor-element-46669b9 { z-index: 100; }
@media (max-width: 767px) {
  body .elementor-18955 .elementor-element.elementor-element-46669b9 { z-index: 99999; }
}

/* ── Contacto (ID 16941): botón de WhatsApp con estilo de marca (2026-10-12) ──
   Widget cadfa87, movido en Elementor bajo los datos de "Contáctanos" (columna 30c8cbd).
   Mismo estilo que los botones principales de la home: naranja con texto verde oscuro. */
body .elementor-16941 .elementor-element.elementor-element-cadfa87 { margin-top: 20px; }
body .elementor-16941 .elementor-element.elementor-element-cadfa87 :is(.elementor-button, .elementor-button:visited) {
  width: 100%;
  min-height: 44px;
  justify-content: center;
  padding: 16px 24px;
  border-radius: 8px;
  background: #F0881A;
  color: #1D3A28;
  font-weight: 600;
  letter-spacing: .5px;
}
body .elementor-16941 .elementor-element.elementor-element-cadfa87 .elementor-button:is(:hover, :focus-visible, :visited:hover) { background: #1D3A28; color: #F5F2E8; }

/* ── v3.0 (2026-10-12) Botón "subir" en celular ──
   Tapaba "Términos y condiciones" al final de la página (botón fijo 42 px a 15 px de la orilla).
   Se deja espacio verde bajo la barra legal del pie (plantilla 19501, contenedor 7083bbc) para
   que al llegar al final el botón quede en ese hueco, y se sube a 44 px de zona táctil. */
@media (max-width: 767px) {
  .elementor-19501 .elementor-element.elementor-element-7083bbc { padding-bottom: 76px !important; }
  .back-to-top-wrap .btn-back-to-top { width: 44px; height: 44px; }
}
