/*
Theme Name: Horizons Realty Child
Theme URI: https://www.horizonsrealtycr.com
Description: Child theme de Houzez para Horizons Realty Costa Rica. Brand System v1.1 editorial. Homepage editorial rediseñada, footer Premium Horizons global, cluster /comprar/ con 4 rutas, página /agentes-asociados/, /trabaje-con-nosotros/ con AJAX, CPT horizons_zona con 12 páginas de zonas, JSON-LD por página. Ver CHANGELOG.md para historial detallado.
Author: Horizons Realty Costa Rica
Author URI: https://www.horizonsrealtycr.com
Template: houzez
Version: 1.30.2
License: Proprietary
Text Domain: horizons-child
*/

/* ==========================================================
   Variables de marca Horizons Realty
   Disponibles en todo el CSS via var(--token)
   ========================================================== */
:root {
  --hr-primary: #186B99;
  --hr-secondary: #2781AD;
  --hr-text: #ADAA97;
  --hr-accent: #E4E4E4;
  --hr-bg-light: #F2F6F8;
}

/* ==========================================================
   Fix: capitalización forzada de Houzez en titulos de pagina
   Houzez aplica text-transform: capitalize a los H1 de pagina
   lo que rompe los nombres en español ("Y" "De" "La")
   ========================================================== */
.page .entry-title,
.page-title,
h1.entry-title,
.elementor-widget-heading h1.elementor-heading-title {
  text-transform: none !important;
}

/* ==========================================================
   Footer en home: refuerzo visual de los enlaces legales
   ========================================================== */
.hr-home-footer-legal {
  background: #1a1a1a;
  color: #fff;
  padding: 40px 20px;
  text-align: center;
}

.hr-home-footer-legal a {
  color: #ADAA97;
  margin: 0 14px;
  font-size: 13px;
  text-decoration: none;
  transition: color 0.2s ease;
}

.hr-home-footer-legal a:hover {
  color: #fff;
  text-decoration: underline;
}

.hr-home-footer-legal .hr-copyright {
  display: block;
  margin-top: 16px;
  font-size: 12px;
  color: #666;
}

@media (max-width: 768px) {
  .hr-home-footer-legal a {
    display: block;
    margin: 8px 0;
  }
}

/* ==========================================================
   Floating WhatsApp button
   Rendered globally by functions.php (hr_show_whatsapp_float)
   bottom: 96px porque Houzez tiene un botón "regresar arriba"
   en la esquina inferior derecha — dejamos espacio para no
   superponer.
   ========================================================== */
.hr-wa-float {
  position: fixed;
  bottom: 96px;
  right: 24px;
  width: 60px;
  height: 60px;
  background: #25D366;
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 24px rgba(37, 211, 102, 0.4);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  z-index: 9999;
  text-decoration: none;
}

.hr-wa-float:hover,
.hr-wa-float:focus-visible {
  transform: scale(1.08);
  box-shadow: 0 12px 32px rgba(37, 211, 102, 0.55);
  text-decoration: none;
  color: #fff;
}

.hr-wa-float:focus-visible {
  outline: 3px solid var(--hr-primary);
  outline-offset: 3px;
}

.hr-wa-float svg {
  width: 30px;
  height: 30px;
  pointer-events: none;
}

/* Subtle pulse ring (purely decorative) */
.hr-wa-float::before {
  content: "";
  position: absolute;
  inset: -4px;
  border-radius: 50%;
  border: 2px solid #25D366;
  animation: hr-wa-pulse 2.4s ease-out infinite;
  opacity: 0.6;
  pointer-events: none;
}

@keyframes hr-wa-pulse {
  0%   { transform: scale(1);   opacity: 0.6; }
  100% { transform: scale(1.4); opacity: 0;   }
}

/* Respect reduced motion preference */
@media (prefers-reduced-motion: reduce) {
  .hr-wa-float::before {
    animation: none;
  }
  .hr-wa-float {
    transition: none;
  }
}

/* Inline WhatsApp link helper (used by [hr_whatsapp_link] shortcode) */
.hr-wa-inline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #25D366;
  color: #fff !important;
  padding: 10px 18px;
  border-radius: 8px;
  font-weight: 600;
  text-decoration: none !important;
  transition: background 0.2s ease;
}

.hr-wa-inline:hover {
  background: #1cb957;
  color: #fff !important;
}

@media (max-width: 600px) {
  .hr-wa-float {
    width: 54px;
    height: 54px;
    bottom: 84px;
    right: 18px;
  }
  .hr-wa-float svg {
    width: 26px;
    height: 26px;
  }
}

/* ==========================================================
   Página: Alquile su propiedad con expertos
   Slug: /alquile-su-propiedad-con-expertos/
   Activación: agregar la clase `hz-page--rentals` al body
   (Elementor → Page Settings → Advanced → CSS Classes)
   Todos los estilos están scopeados — no afectan otras páginas.
   ========================================================== */

/* ============================================
   Horizons Realty — Página de alquileres
   Scope: .hz-page--rentals
   Tipografía: Cormorant Garamond + Manrope
   Paleta: #186B99 / #2781AD / #ADAA97 / #1c2a33 / #FAF7F1
   ============================================ */

.hz-page--rentals {
  --hz-primary: #186B99;
  --hz-primary-2: #2781AD;
  --hz-gold: #ADAA97;
  --hz-gold-warm: #b8a888;
  --hz-ink: #1c2a33;
  --hz-ink-soft: #2a3942;
  --hz-cream: #FAF7F1;
  --hz-cream-2: #f3eee2;
  --hz-border: #E4E4E4;
  --hz-border-cream: #e5dfce;
  --hz-muted: #6b7280;
  --hz-text: #2a3942;

  --hz-font-title: "Cormorant Garamond", "Times New Roman", Georgia, serif;
  --hz-font-body: "Manrope", system-ui, -apple-system, sans-serif;

  --hz-radius: 4px;
  --hz-section-y: clamp(72px, 10vw, 128px);

  font-family: var(--hz-font-body);
  font-size: 19px;
  line-height: 1.65;
  color: var(--hz-text);
  background: var(--hz-cream);
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

@media (min-width: 768px) {
  .hz-page--rentals { font-size: 22px; }
}

.hz-page--rentals * { box-sizing: border-box; }
.hz-page--rentals img { max-width: 100%; display: block; }
.hz-page--rentals button { font: inherit; cursor: pointer; background: none; border: 0; color: inherit; }
.hz-page--rentals a { color: inherit; text-decoration: none; }
.hz-page--rentals h1, .hz-page--rentals h2, .hz-page--rentals h3, .hz-page--rentals h4 {
  font-family: var(--hz-font-title);
  font-weight: 500;
  letter-spacing: -0.01em;
  color: var(--hz-ink);
  line-height: 1.08;
}

/* ---------- Tokens / utilities ---------- */
.hz-eyebrow {
  font-family: var(--hz-font-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--hz-gold);
}
.hz-eyebrow--ink { color: var(--hz-gold-warm); }
.hz-eyebrow--on-dark { color: var(--hz-gold); }

.hz-divider {
  width: 48px;
  height: 1px;
  background: var(--hz-gold);
  display: inline-block;
  vertical-align: middle;
  margin-right: 16px;
}
.hz-divider--on-dark { background: var(--hz-gold); }

.hz-italic { font-style: italic; color: var(--hz-primary); font-weight: 500; }

.hz-container {
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 24px;
}
@media (min-width: 768px) { .hz-container { padding: 0 40px; } }

.hz-section {
  padding-top: var(--hz-section-y);
  padding-bottom: var(--hz-section-y);
}
.hz-section--cream { background: var(--hz-cream); position: relative; }
.hz-section--cream::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(28,42,51,0.025) 1px, transparent 1px);
  background-size: 3px 3px;
  pointer-events: none;
  opacity: 0.6;
}
.hz-section--white { background: #ffffff; }
.hz-section--ink { background: var(--hz-ink); color: #d8e0e6; }
.hz-section--ink h2, .hz-section--ink h3, .hz-section--ink h4 { color: #fff; }

/* ---------- Buttons ---------- */
.hz-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 16px 26px;
  border-radius: var(--hz-radius);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  transition: all .25s ease;
  border: 1px solid transparent;
  white-space: nowrap;
}
.hz-btn .arr { transition: transform .25s ease; display: inline-block; }
.hz-btn:hover .arr { transform: translateX(4px); }

.hz-btn--primary { background: var(--hz-primary); color: #fff; }
.hz-btn--primary:hover { background: var(--hz-primary-2); }
.hz-btn--ghost { background: transparent; color: var(--hz-ink); border-color: var(--hz-ink); }
.hz-btn--ghost:hover { background: var(--hz-ink); color: #fff; }
.hz-btn--ghost-light { background: transparent; color: #fff; border-color: rgba(255,255,255,0.4); }
.hz-btn--ghost-light:hover { background: rgba(255,255,255,0.08); border-color: #fff; }

/* ---------- Nav ---------- */
.hz-nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 50;
  padding: 18px 0;
  transition: background .3s ease, padding .3s ease, box-shadow .3s ease, border-color .3s ease;
  border-bottom: 1px solid transparent;
}
.hz-nav--scrolled {
  background: rgba(250, 247, 241, 0.92);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom-color: var(--hz-border-cream);
  padding: 12px 0;
}
.hz-nav__inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.hz-nav__logo { display: flex; align-items: center; gap: 12px; }
.hz-nav__logo-mark {
  width: 36px; height: 36px;
  border-radius: 50%;
  background: var(--hz-primary);
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--hz-font-title);
  font-weight: 600;
  font-size: 18px;
  letter-spacing: 0.02em;
}
.hz-nav__logo-text {
  font-family: var(--hz-font-body);
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--hz-ink);
  font-weight: 600;
}
.hz-nav__links {
  display: none;
  gap: 28px;
  font-size: 14px;
  color: var(--hz-ink-soft);
}
@media (min-width: 960px) { .hz-nav__links { display: flex; } }
.hz-nav__links a { transition: color .2s; position: relative; }
.hz-nav__links a:hover { color: var(--hz-primary); }
.hz-nav__links a.is-active { color: var(--hz-primary); }
.hz-nav__cta {
  font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; font-weight: 600;
  padding: 10px 18px;
  border: 1px solid var(--hz-ink); color: var(--hz-ink);
  border-radius: var(--hz-radius);
  transition: all .25s;
}
.hz-nav__cta:hover { background: var(--hz-ink); color: #fff; }

/* ---------- Hero ---------- */
.hz-hero { padding-top: 140px; padding-bottom: 80px; position: relative; overflow: hidden; }
@media (min-width: 768px) { .hz-hero { padding-top: 168px; padding-bottom: 120px; } }
.hz-hero__grid { display: grid; grid-template-columns: 1fr; gap: 60px; align-items: center; }
@media (min-width: 1024px) { .hz-hero__grid { grid-template-columns: 7fr 5fr; gap: 80px; } }
.hz-hero__eyebrow-row { display: flex; align-items: center; margin-bottom: 32px; }
.hz-hero__h1 {
  font-size: clamp(40px, 6vw, 76px);
  line-height: 1.02;
  letter-spacing: -0.018em;
  margin-bottom: 28px;
  text-wrap: balance;
}
.hz-hero__h1 em { font-style: italic; color: var(--hz-primary); font-weight: 500; }
.hz-hero__lead {
  font-size: clamp(17px, 1.6vw, 21px);
  line-height: 1.55;
  color: var(--hz-ink-soft);
  max-width: 580px;
  margin-bottom: 40px;
  text-wrap: pretty;
}
.hz-hero__ctas { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 56px; }
.hz-hero__stats {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
  padding-top: 32px;
  border-top: 1px solid var(--hz-border-cream);
}
.hz-hero__stat-num {
  font-family: var(--hz-font-title);
  font-size: clamp(36px, 4.5vw, 56px);
  color: var(--hz-primary);
  line-height: 1;
  margin-bottom: 8px;
  font-weight: 500;
}
.hz-hero__stat-label {
  font-size: 10.5px; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--hz-muted); font-weight: 600;
}

/* Hero visual */
.hz-hero__visual {
  position: relative;
  aspect-ratio: 4 / 5;
  border-radius: var(--hz-radius);
  overflow: hidden;
  background:
    linear-gradient(135deg, var(--hz-primary) 0%, var(--hz-primary-2) 100%);
  box-shadow: 0 30px 80px -30px rgba(24, 107, 153, 0.4);
  margin-bottom: 80px;
}
@media (min-width: 1024px) { .hz-hero__visual { margin-bottom: 0; } }
.hz-hero__visual::before {
  content: "";
  position: absolute; inset: 0;
  background-image:
    repeating-linear-gradient(0deg, rgba(255,255,255,0.05) 0 1px, transparent 1px 80px),
    repeating-linear-gradient(90deg, rgba(255,255,255,0.05) 0 1px, transparent 1px 80px);
  pointer-events: none;
}
.hz-hero__skyline {
  position: absolute; left: 0; right: 0; bottom: 0;
  width: 100%;
  height: 70%;
  display: block;
  opacity: 0.95;
}
.hz-hero__viscaption {
  position: absolute; top: 28px; left: 28px; right: 28px;
  display: flex; justify-content: space-between; align-items: flex-start;
  color: rgba(255,255,255,0.85);
  font-size: 10.5px; letter-spacing: 0.22em; text-transform: uppercase;
  font-weight: 600;
}
.hz-hero__viscaption .right { text-align: right; }

.hz-hero__floating {
  position: absolute;
  bottom: 24px;
  left: 24px;
  right: 24px;
  max-width: 360px;
  margin: 0 auto;
  background: #fff;
  border: 1px solid var(--hz-border-cream);
  border-left: 3px solid var(--hz-primary);
  padding: 20px 24px;
  box-shadow: 0 24px 60px -18px rgba(28,42,51,0.28);
  border-radius: var(--hz-radius);
  --hz-pcard-y: 0px;
  transform: translateY(var(--hz-pcard-y));
  transition: transform .15s cubic-bezier(.2,.6,.2,1);
  z-index: 2;
}
.hz-hero__floating .label {
  font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--hz-primary); font-weight: 700; margin-bottom: 8px;
}
.hz-hero__floating .title {
  font-family: var(--hz-font-title);
  font-size: 19px; line-height: 1.25; color: var(--hz-ink);
  font-weight: 500;
}

.hz-hero__cobertura {
  margin-top: 80px;
  padding-top: 32px;
  border-top: 1px solid var(--hz-border-cream);
  display: flex; flex-direction: column; gap: 14px;
}
@media (min-width: 768px) {
  .hz-hero__cobertura { flex-direction: row; align-items: center; justify-content: space-between; gap: 40px; }
}
.hz-hero__cobertura-label { display: flex; align-items: center; }
.hz-hero__cobertura-value {
  font-family: var(--hz-font-title);
  font-size: 20px;
  color: var(--hz-ink);
  font-style: italic;
  font-weight: 500;
}
@media (min-width: 768px) { .hz-hero__cobertura-value { font-size: 24px; } }

/* ---------- Section header (editorial 2-col) ---------- */
.hz-shead {
  display: grid; grid-template-columns: 1fr; gap: 24px;
  margin-bottom: 64px;
}
@media (min-width: 900px) {
  .hz-shead { grid-template-columns: 5fr 7fr; gap: 80px; align-items: end; }
}
.hz-shead__eyebrow-row { display: flex; align-items: center; margin-bottom: 24px; }
.hz-shead__title {
  font-size: clamp(34px, 4.2vw, 56px);
  margin-bottom: 0;
  text-wrap: balance;
}
.hz-shead__title em { font-style: italic; color: var(--hz-primary); }
.hz-shead__lead {
  font-size: clamp(18px, 1.6vw, 22px);
  color: var(--hz-ink-soft);
  text-wrap: pretty;
  max-width: 680px;
  line-height: 1.55;
}
.hz-section--ink .hz-shead__lead { color: rgba(255,255,255,0.7); }

/* ---------- Tipos grid ---------- */
.hz-tipos {
  display: grid; grid-template-columns: 1fr; gap: 0;
  border-top: 1px solid var(--hz-border);
  border-left: 1px solid var(--hz-border);
}
@media (min-width: 600px) { .hz-tipos { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .hz-tipos { grid-template-columns: repeat(4, 1fr); } }
.hz-tipos__card {
  padding: 56px 36px 52px;
  border-right: 1px solid var(--hz-border);
  border-bottom: 1px solid var(--hz-border);
  background: #fff;
  transition: background .25s ease, transform .25s ease;
  position: relative;
}
.hz-tipos__card:hover { background: var(--hz-cream); }
.hz-tipos__icon { width: 48px; height: 48px; color: var(--hz-primary); margin-bottom: 32px; transition: color .25s; }
.hz-tipos__card:hover .hz-tipos__icon { color: var(--hz-primary-2); }
.hz-tipos__title { font-size: 32px; margin-bottom: 16px; }
.hz-tipos__desc { font-size: 17px; color: var(--hz-muted); line-height: 1.6; }

/* ---------- Equipo ---------- */
.hz-equipo { display: grid; grid-template-columns: 1fr; gap: 24px; }
@media (min-width: 900px) { .hz-equipo { grid-template-columns: 1fr 1fr; gap: 32px; } }
.hz-equipo__card {
  background: #fff;
  border: 1px solid var(--hz-border);
  padding: 44px 36px;
  border-radius: var(--hz-radius);
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s;
  position: relative;
}
.hz-equipo__card:hover {
  transform: translateY(-2px);
  box-shadow: 0 24px 50px -28px rgba(28,42,51,0.18);
  border-color: var(--hz-gold);
}
.hz-equipo__icon-wrap {
  width: 72px; height: 72px;
  border: 1px solid var(--hz-gold);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: var(--hz-primary);
  margin-bottom: 32px;
}
.hz-equipo__icon-wrap svg { width: 34px; height: 34px; }
.hz-equipo__eyebrow { margin-bottom: 12px; font-size: 13px; }
.hz-equipo__title { font-size: 40px; margin-bottom: 22px; }
.hz-equipo__lead { font-size: 19px; color: var(--hz-ink-soft); margin-bottom: 32px; line-height: 1.6; }
.hz-equipo__list { display: flex; flex-direction: column; gap: 16px; }
.hz-equipo__item {
  font-size: 17px; color: var(--hz-text);
  display: flex; gap: 16px; align-items: flex-start;
}
.hz-equipo__item::before {
  content: "";
  flex: 0 0 auto;
  width: 20px; height: 1px; background: var(--hz-gold);
  margin-top: 14px;
}

/* ---------- Por qué Horizons ---------- */
.hz-why { display: grid; grid-template-columns: 1fr; gap: 0; }
@media (min-width: 700px) { .hz-why { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .hz-why { grid-template-columns: repeat(3, 1fr); } }
.hz-why__card {
  background: transparent;
  padding: 36px 32px 36px 0;
  border-top: 1px solid var(--hz-border-cream);
  position: relative;
}
.hz-why__card + .hz-why__card { padding-left: 32px; }
@media (min-width: 700px) {
  .hz-why__card { padding: 40px 32px; }
  .hz-why__card:nth-child(2n) { border-left: 1px solid var(--hz-border-cream); }
}
@media (min-width: 1024px) {
  .hz-why__card:nth-child(3n+2),
  .hz-why__card:nth-child(3n) { border-left: 1px solid var(--hz-border-cream); }
  .hz-why__card:nth-child(3n+2) { border-left: 1px solid var(--hz-border-cream); }
}
.hz-why__num {
  font-family: var(--hz-font-title);
  font-size: 56px;
  color: var(--hz-gold);
  font-style: italic;
  font-weight: 400;
  line-height: 1;
  margin-bottom: 26px;
  display: block;
}
.hz-why__title { font-size: 28px; margin-bottom: 14px; }
.hz-why__desc { font-size: 17px; color: var(--hz-ink-soft); line-height: 1.6; }

/* ---------- Proceso (timeline) ---------- */
.hz-proceso { display: grid; grid-template-columns: 1fr; gap: 60px; }
@media (min-width: 900px) { .hz-proceso { grid-template-columns: 4fr 8fr; gap: 80px; } }
.hz-proceso__sticky { position: relative; }
@media (min-width: 900px) { .hz-proceso__sticky { position: sticky; top: 120px; align-self: start; } }
.hz-proceso__timeline { position: relative; }
.hz-proceso__step {
  display: grid; grid-template-columns: 72px 1fr; gap: 28px;
  position: relative;
  padding-bottom: 52px;
}
.hz-proceso__step:last-child { padding-bottom: 0; }
.hz-proceso__step::before {
  content: "";
  position: absolute;
  left: 35px; top: 72px; bottom: 0;
  width: 1px; background: var(--hz-border-cream);
}
.hz-proceso__step:last-child::before { display: none; }
.hz-proceso__circle {
  width: 72px; height: 72px; border-radius: 50%;
  border: 1px solid var(--hz-gold);
  background: var(--hz-cream);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--hz-font-title);
  font-size: 22px; font-weight: 500;
  color: var(--hz-primary);
  position: relative; z-index: 1;
  transition: background .25s, color .25s, border-color .25s;
}
.hz-proceso__step:hover .hz-proceso__circle {
  background: var(--hz-primary); color: #fff; border-color: var(--hz-primary);
}
.hz-proceso__step-title { font-size: 28px; margin-bottom: 12px; padding-top: 18px; }
.hz-proceso__step-desc { font-size: 17px; color: var(--hz-ink-soft); line-height: 1.6; }

/* ---------- Segmentos (dark) ---------- */
.hz-seg { display: grid; grid-template-columns: 1fr; gap: 24px; }
@media (min-width: 900px) { .hz-seg { grid-template-columns: repeat(3, 1fr); gap: 0; } }
.hz-seg__col {
  padding: 44px 32px;
  border-top: 1px solid rgba(255,255,255,0.1);
}
@media (min-width: 900px) {
  .hz-seg__col { padding: 0 32px; border-top: 0; border-left: 1px solid rgba(255,255,255,0.1); }
  .hz-seg__col:first-child { padding-left: 0; border-left: 0; }
  .hz-seg__col:last-child { padding-right: 0; }
}
.hz-seg__num {
  font-family: var(--hz-font-title);
  font-size: 80px;
  color: var(--hz-gold);
  font-weight: 400; font-style: italic;
  line-height: 1;
  margin-bottom: 32px;
  display: block;
}
.hz-seg__title { font-size: 36px; color: #fff; margin-bottom: 10px; }
.hz-seg__sub {
  font-size: 13px; letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--hz-gold); font-weight: 600;
  margin-bottom: 28px;
}
.hz-seg__list { display: flex; flex-direction: column; gap: 16px; }
.hz-seg__item {
  font-size: 17px; color: rgba(255,255,255,0.82);
  display: flex; gap: 16px; align-items: flex-start;
}
.hz-seg__item::before {
  content: "";
  width: 18px; height: 1px; background: var(--hz-gold);
  flex: 0 0 auto; margin-top: 14px;
}

/* ---------- Modular cobertura ---------- */
.hz-mod { display: grid; grid-template-columns: 1fr; gap: 24px; }
@media (min-width: 900px) { .hz-mod { grid-template-columns: 1fr 1fr; gap: 28px; } }
.hz-mod__card {
  padding: 56px 44px;
  border-radius: var(--hz-radius);
  position: relative;
  transition: transform .3s ease, box-shadow .3s ease;
}
.hz-mod__card:hover { transform: translateY(-2px); }
.hz-mod__card--base {
  background: #fff; border: 1px solid var(--hz-border);
}
.hz-mod__card--base:hover { box-shadow: 0 24px 50px -28px rgba(28,42,51,0.15); border-color: var(--hz-gold); }
.hz-mod__card--opt {
  background: var(--hz-primary); color: #fff;
}
.hz-mod__card--opt:hover { box-shadow: 0 24px 50px -28px rgba(24,107,153,0.5); }
.hz-mod__phase {
  font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; font-weight: 600;
  color: var(--hz-gold-warm);
  margin-bottom: 4px;
}
.hz-mod__card--opt .hz-mod__phase { color: var(--hz-gold); }
.hz-mod__badge {
  display: inline-block;
  background: var(--hz-gold);
  color: var(--hz-ink);
  padding: 4px 12px; border-radius: 999px;
  font-size: 10px; letter-spacing: 0.22em; text-transform: uppercase; font-weight: 700;
  margin-bottom: 12px;
}
.hz-mod__title { font-size: 40px; margin-bottom: 10px; }
.hz-mod__card--opt .hz-mod__title { color: #fff; }
.hz-mod__sub { font-size: 22px; color: var(--hz-ink-soft); margin-bottom: 32px; font-family: var(--hz-font-title); font-style: italic; }
.hz-mod__card--opt .hz-mod__sub { color: rgba(255,255,255,0.85); }
.hz-mod__list { display: flex; flex-direction: column; gap: 14px; }
.hz-mod__item {
  font-size: 17px; line-height: 1.55;
  display: flex; gap: 14px; align-items: flex-start;
  color: var(--hz-text);
}
.hz-mod__card--opt .hz-mod__item { color: rgba(255,255,255,0.92); }
.hz-mod__check {
  flex: 0 0 auto; width: 16px; height: 16px; margin-top: 4px;
  color: var(--hz-primary);
}
.hz-mod__card--opt .hz-mod__check { color: var(--hz-gold); }
.hz-mod__note {
  margin-top: 56px; padding-top: 32px;
  border-top: 1px solid var(--hz-border-cream);
  font-size: 14.5px; color: var(--hz-ink-soft); max-width: 720px;
  text-wrap: pretty;
}

/* ---------- FAQ ---------- */
.hz-faq { display: grid; grid-template-columns: 1fr; gap: 60px; }
@media (min-width: 900px) { .hz-faq { grid-template-columns: 4fr 8fr; gap: 80px; } }
.hz-faq__list { border-top: 1px solid var(--hz-border-cream); }
.hz-faq__item { border-bottom: 1px solid var(--hz-border-cream); }
.hz-faq__btn {
  width: 100%;
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  padding: 26px 0;
  text-align: left;
  font-family: var(--hz-font-title);
  font-size: clamp(20px, 1.8vw, 24px);
  color: var(--hz-ink);
  font-weight: 500;
  transition: color .2s;
}
.hz-faq__btn:hover { color: var(--hz-primary); }
.hz-faq__sign {
  flex: 0 0 auto;
  width: 36px; height: 36px;
  border: 1px solid var(--hz-gold);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: var(--hz-primary);
  font-family: var(--hz-font-body);
  transition: background .25s, color .25s, transform .3s;
  font-size: 18px;
}
.hz-faq__item.is-open .hz-faq__sign { background: var(--hz-primary); color: #fff; transform: rotate(180deg); }
.hz-faq__panel {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows .35s ease;
}
.hz-faq__item.is-open .hz-faq__panel { grid-template-rows: 1fr; }
.hz-faq__panel-inner { overflow: hidden; }
.hz-faq__panel-text {
  padding: 0 64px 28px 0;
  color: var(--hz-ink-soft);
  font-size: 16px;
  line-height: 1.65;
  text-wrap: pretty;
}

/* ---------- Form / Contact ---------- */
.hz-form-grid { display: grid; grid-template-columns: 1fr; gap: 60px; }
@media (min-width: 900px) { .hz-form-grid { grid-template-columns: 5fr 7fr; gap: 80px; } }
.hz-form-side h2 {
  font-size: clamp(34px, 4vw, 52px);
  color: #fff; margin-bottom: 24px;
  text-wrap: balance;
}
.hz-form-side h2 em { font-style: italic; color: var(--hz-gold); }
.hz-form-side__lead { font-size: 16px; color: rgba(255,255,255,0.75); margin-bottom: 40px; max-width: 480px; }
.hz-form-side__contact { display: flex; flex-direction: column; gap: 18px; }
.hz-form-side__row { display: flex; gap: 14px; align-items: center; font-size: 15px; color: rgba(255,255,255,0.85); }
.hz-form-side__row .ic { color: var(--hz-gold); width: 18px; height: 18px; flex: 0 0 auto; }

.hz-form {
  background: #fff;
  border-radius: var(--hz-radius);
  padding: 40px 36px;
  color: var(--hz-text);
}
.hz-form h3 {
  font-size: 24px; color: var(--hz-ink); margin-bottom: 28px;
}
.hz-form__row { margin-bottom: 24px; }
.hz-form__row--two { display: grid; grid-template-columns: 1fr; gap: 20px; }
@media (min-width: 600px) { .hz-form__row--two { grid-template-columns: 1fr 1fr; } }
.hz-form label {
  display: block;
  font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase;
  font-weight: 600; color: var(--hz-muted);
  margin-bottom: 8px;
}
.hz-form input, .hz-form select, .hz-form textarea {
  width: 100%;
  border: 0;
  border-bottom: 1px solid var(--hz-border);
  background: transparent;
  padding: 8px 0 12px;
  font: inherit;
  font-size: 16px;
  color: var(--hz-ink);
  transition: border-color .2s;
}
.hz-form input:focus, .hz-form select:focus, .hz-form textarea:focus {
  outline: 0;
  border-bottom-color: var(--hz-primary);
}
.hz-form textarea { resize: vertical; min-height: 96px; }
.hz-form__radio-group { display: flex; flex-wrap: wrap; gap: 10px; }
.hz-form__radio {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 16px;
  border: 1px solid var(--hz-border);
  border-radius: 999px;
  font-size: 13px; font-weight: 500;
  color: var(--hz-ink-soft);
  cursor: pointer;
  transition: all .2s;
}
.hz-form__radio input { display: none; }
.hz-form__radio:has(input:checked) {
  background: var(--hz-primary); color: #fff; border-color: var(--hz-primary);
}
.hz-form__submit {
  width: 100%;
  margin-top: 8px;
  padding: 18px 24px;
  background: var(--hz-primary);
  color: #fff;
  border-radius: var(--hz-radius);
  font-weight: 600; font-size: 13px; letter-spacing: 0.18em; text-transform: uppercase;
  display: inline-flex; align-items: center; justify-content: center; gap: 12px;
  transition: background .25s;
}
.hz-form__submit:hover { background: var(--hz-primary-2); }
.hz-form__submit .arr { transition: transform .25s; }
.hz-form__submit:hover .arr { transform: translateX(4px); }
.hz-form__success {
  background: var(--hz-cream);
  border: 1px solid var(--hz-gold);
  padding: 32px;
  border-radius: var(--hz-radius);
  text-align: center;
}
.hz-form__success h4 {
  font-family: var(--hz-font-title);
  font-size: 26px; color: var(--hz-ink); margin-bottom: 10px;
}
.hz-form__success p { color: var(--hz-ink-soft); font-size: 15px; }

/* ---------- Footer ---------- */
.hz-footer {
  background: var(--hz-ink);
  color: rgba(255,255,255,0.6);
  padding: 56px 0 32px;
  font-size: 13px;
}
.hz-footer__grid {
  display: grid; grid-template-columns: 1fr; gap: 32px;
  margin-bottom: 40px;
}
@media (min-width: 700px) { .hz-footer__grid { grid-template-columns: 2fr 1fr 1fr; } }
.hz-footer__brand { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.hz-footer__copy { font-size: 13px; line-height: 1.6; max-width: 360px; }
.hz-footer h4 {
  font-family: var(--hz-font-body);
  font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--hz-gold); font-weight: 600; margin-bottom: 14px;
}
.hz-footer ul { display: flex; flex-direction: column; gap: 8px; }
.hz-footer a:hover { color: #fff; }
.hz-footer__bottom {
  border-top: 1px solid rgba(255,255,255,0.1);
  padding-top: 24px;
  display: flex; flex-direction: column; gap: 10px;
  font-size: 12px; color: rgba(255,255,255,0.45);
}
@media (min-width: 700px) {
  .hz-footer__bottom { flex-direction: row; justify-content: space-between; }
}
.hz-footer__legal { display: flex; gap: 20px; flex-wrap: wrap; }

/* ---------- Whatsapp button ---------- */
.hz-whatsapp {
  position: fixed; bottom: 22px; right: 22px;
  width: 56px; height: 56px;
  background: #25D366; color: #fff;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 12px 30px -8px rgba(37, 211, 102, 0.5);
  z-index: 40;
  transition: transform .25s ease;
}
.hz-whatsapp:hover { transform: scale(1.08); }

/* Variant: cool background */
.hz-page--rentals[data-bg="cool"] { --hz-cream: #f3f5f7; --hz-cream-2: #e9eef2; --hz-border-cream: #dde3e8; }
.hz-page--rentals[data-bg="cool"] .hz-section--cream { background: var(--hz-cream); }
.hz-page--rentals[data-bg="white"] { --hz-cream: #ffffff; --hz-cream-2: #f6f6f6; }
.hz-page--rentals[data-bg="white"] .hz-section--cream { background: #fafafa; }

/* Variant: accent hue */
.hz-page--rentals[data-accent="terracotta"] { --hz-gold: #b8704e; --hz-gold-warm: #b8704e; }
.hz-page--rentals[data-accent="forest"] { --hz-gold: #6f8d6a; --hz-gold-warm: #6f8d6a; }
.hz-page--rentals[data-accent="ink"] { --hz-gold: #1c2a33; --hz-gold-warm: #4b5c66; }

/* Variant: title font */
.hz-page--rentals[data-fonttitle="playfair"] h1, .hz-page--rentals[data-fonttitle="playfair"] h2,
.hz-page--rentals[data-fonttitle="playfair"] h3, .hz-page--rentals[data-fonttitle="playfair"] h4 {
  font-family: "Playfair Display", "Cormorant Garamond", Georgia, serif;
}
.hz-page--rentals[data-fonttitle="manrope"] h1, .hz-page--rentals[data-fonttitle="manrope"] h2,
.hz-page--rentals[data-fonttitle="manrope"] h3, .hz-page--rentals[data-fonttitle="manrope"] h4 {
  font-family: "Manrope", system-ui, sans-serif;
  letter-spacing: -0.02em;
  font-weight: 600;
}
.hz-page--rentals[data-fonttitle="manrope"] h1 em,
.hz-page--rentals[data-fonttitle="manrope"] h2 em { font-style: normal; }

/* segmentos light variant */
.hz-page--rentals[data-segdark="false"] .hz-section--ink-segmentos {
  background: var(--hz-cream-2); color: var(--hz-ink);
}
.hz-page--rentals[data-segdark="false"] .hz-section--ink-segmentos h2,
.hz-page--rentals[data-segdark="false"] .hz-section--ink-segmentos h3 { color: var(--hz-ink); }
.hz-page--rentals[data-segdark="false"] .hz-section--ink-segmentos .hz-seg__col { border-color: var(--hz-border-cream); }
.hz-page--rentals[data-segdark="false"] .hz-section--ink-segmentos .hz-seg__title { color: var(--hz-ink); }
.hz-page--rentals[data-segdark="false"] .hz-section--ink-segmentos .hz-seg__item { color: var(--hz-ink-soft); }
.hz-page--rentals[data-segdark="false"] .hz-section--ink-segmentos .hz-shead__lead { color: var(--hz-ink-soft); }

/* hero variant: centered */
.hz-page--rentals[data-hero="centrado"] .hz-hero__grid { grid-template-columns: 1fr; max-width: 880px; margin: 0 auto; text-align: center; }
.hz-page--rentals[data-hero="centrado"] .hz-hero__visual { display: none; }
.hz-page--rentals[data-hero="centrado"] .hz-hero__lead { margin-left: auto; margin-right: auto; }
.hz-page--rentals[data-hero="centrado"] .hz-hero__ctas { justify-content: center; }
.hz-page--rentals[data-hero="centrado"] .hz-hero__eyebrow-row { justify-content: center; }

/* ============ Reveal on scroll ============ */
.hz-reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1);
  will-change: opacity, transform;
}
.hz-reveal--left { transform: translateX(-32px) translateY(0); }
.hz-reveal--right { transform: translateX(32px) translateY(0); }
.hz-reveal--scale { transform: translateY(20px) scale(.98); }
.hz-reveal.is-visible {
  opacity: 1;
  transform: translateY(0) translateX(0) scale(1);
}
/* Stagger children with hz-reveal--stagger on the parent */
.hz-reveal--stagger > * {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1);
}
.hz-reveal--stagger.is-visible > * { opacity: 1; transform: translateY(0); }
.hz-reveal--stagger.is-visible > *:nth-child(1) { transition-delay: .00s; }
.hz-reveal--stagger.is-visible > *:nth-child(2) { transition-delay: .07s; }
.hz-reveal--stagger.is-visible > *:nth-child(3) { transition-delay: .14s; }
.hz-reveal--stagger.is-visible > *:nth-child(4) { transition-delay: .21s; }
.hz-reveal--stagger.is-visible > *:nth-child(5) { transition-delay: .28s; }
.hz-reveal--stagger.is-visible > *:nth-child(6) { transition-delay: .35s; }
.hz-reveal--stagger.is-visible > *:nth-child(7) { transition-delay: .42s; }
.hz-reveal--stagger.is-visible > *:nth-child(8) { transition-delay: .49s; }

/* ============ Parallax ============ */
.hz-parallax { will-change: transform; }
.hz-hero__visual { transform: translateY(var(--hz-parallax-visual, 0)); transition: transform .1s linear; }
.hz-hero__skyline { transform: translateY(var(--hz-parallax-skyline, 0)); transition: transform .1s linear; }
.hz-hero__viscaption { transform: translateY(var(--hz-parallax-caption, 0)); transition: transform .1s linear; }
.hz-section--ink-segmentos { background-position: 50% calc(50% + var(--hz-parallax-bg, 0px)); transition: background-position .15s linear; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
  .hz-reveal, .hz-reveal--stagger > * { opacity: 1 !important; transform: none !important; }
  .hz-hero__visual, .hz-hero__skyline, .hz-hero__viscaption { transform: none !important; }
  .hz-hero__floating { transform: none !important; }
}

/* =========================================================================
   PÁGINA DE CONTACTO — slug: /contacto/
   Activación: agregar la clase `hz-page--contacto` al body de la página
   (Elementor → Page Settings → Advanced → CSS Classes)
   Tipografía: Cormorant Garamond + Outfit (cargadas en functions.php)
   Paleta: oficial Horizons (#186B99 / #2781AD / #ADAA97 / #E4E4E4 / #F2F6F8)
   ========================================================================= */

.hz-page--contacto {
  --c-primary: #186B99;
  --c-secondary: #2781AD;
  --c-gold: #ADAA97;
  --c-accent: #E4E4E4;
  --c-bg-light: #F2F6F8;
  --c-bg: #FFFFFF;
  --c-bg-deep: #186B99;
  --c-bg-deeper: #0E2A3A;
  --c-ink: #0E2A3A;
  --c-ink-soft: #4A5A66;
  --c-ink-mute: #8B95A0;
  --c-line: #E4E4E4;
  --c-success: #25D366;

  font-family: 'Outfit', system-ui, -apple-system, sans-serif;
  font-size: 19px;
  line-height: 1.65;
  color: var(--c-ink);
  background: var(--c-bg);
  font-weight: 300;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.hz-page--contacto * { box-sizing: border-box; }
.hz-page--contacto img { max-width: 100%; display: block; }
.hz-page--contacto a { color: inherit; text-decoration: none; }
.hz-page--contacto h1, .hz-page--contacto h2, .hz-page--contacto h3, .hz-page--contacto h4 {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-weight: 400;
  letter-spacing: -0.02em;
  color: var(--c-ink);
  line-height: 1;
}
.hz-page--contacto h1 em, .hz-page--contacto h2 em, .hz-page--contacto h3 em {
  font-style: italic;
  color: var(--c-primary);
  font-weight: 500;
}

/* Containers and sections */
.hz-page--contacto .c-container { max-width: 1440px; margin: 0 auto; padding: 0 32px; }
.hz-page--contacto .c-section { padding: 120px 32px; border-bottom: 1px solid var(--c-line); }
.hz-page--contacto .c-section--soft { background: var(--c-bg-light); }
.hz-page--contacto .c-section--deep { background: var(--c-bg-deep); color: #fff; }
.hz-page--contacto .c-section--deep h2,
.hz-page--contacto .c-section--deep h3 { color: #fff; }
.hz-page--contacto .c-section--deep h2 em { color: var(--c-gold); }

/* Section tag */
.hz-page--contacto .c-tag {
  font-size: 11px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--c-primary);
  margin-bottom: 24px;
  display: inline-flex;
  align-items: center;
  gap: 16px;
  font-weight: 600;
}
.hz-page--contacto .c-tag::before {
  content: '';
  width: 32px;
  height: 1px;
  background: var(--c-primary);
}
.hz-page--contacto .c-section--deep .c-tag { color: var(--c-gold); }
.hz-page--contacto .c-section--deep .c-tag::before { background: var(--c-gold); }

/* Buttons */
.hz-page--contacto .c-btn {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 16px 28px;
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  font-weight: 500;
  font-family: 'Outfit', sans-serif;
  cursor: pointer;
  transition: all 0.25s;
  border: 1px solid transparent;
}
.hz-page--contacto .c-btn--primary { background: var(--c-primary); color: #fff; border-color: var(--c-primary); }
.hz-page--contacto .c-btn--primary:hover { background: var(--c-secondary); border-color: var(--c-secondary); }
.hz-page--contacto .c-btn--ghost-light { background: transparent; color: #fff; border-color: rgba(255,255,255,0.6); }
.hz-page--contacto .c-btn--ghost-light:hover { background: #fff; color: var(--c-primary); border-color: #fff; }
.hz-page--contacto .c-btn--ghost { background: transparent; color: var(--c-ink); border-color: var(--c-ink); }
.hz-page--contacto .c-btn--ghost:hover { background: var(--c-ink); color: #fff; }
.hz-page--contacto .c-btn--wa { background: var(--c-success); color: #fff; border-color: var(--c-success); }
.hz-page--contacto .c-btn--wa:hover { background: #fff; color: var(--c-success); }

/* HERO */
.hz-page--contacto .c-hero {
  position: relative;
  min-height: 580px;
  display: flex;
  align-items: flex-end;
  border-bottom: 1px solid var(--c-line);
  overflow: hidden;
  isolation: isolate;
}
.hz-page--contacto .c-hero__bg {
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(ellipse 90% 80% at 28% 70%, rgba(14,42,58,0.65) 0%, rgba(14,42,58,0) 60%),
    linear-gradient(105deg, rgba(14,42,58,0.92) 0%, rgba(14,42,58,0.78) 35%, rgba(14,42,58,0.5) 65%, rgba(14,42,58,0.25) 100%),
    linear-gradient(180deg, rgba(14,42,58,0.15) 0%, rgba(14,42,58,0.35) 55%, rgba(14,42,58,0.85) 100%);
  background-size: cover;
  background-position: center;
  z-index: -1;
  will-change: transform;
}
.hz-page--contacto .c-hero__inner {
  position: relative;
  max-width: 1440px;
  margin: 0 auto;
  width: 100%;
  padding: 80px 48px 60px;
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 80px;
  align-items: end;
}
.hz-page--contacto .c-hero__eyebrow {
  font-size: 12px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--c-gold);
  margin-bottom: 36px;
  display: inline-flex;
  align-items: center;
  gap: 16px;
  font-weight: 600;
  text-shadow: 0 1px 3px rgba(14,42,58,0.85);
}
.hz-page--contacto .c-hero__eyebrow::before {
  content: '';
  width: 32px;
  height: 1px;
  background: var(--c-gold);
}
.hz-page--contacto .c-hero h1 {
  font-size: clamp(54px, 7vw, 104px);
  font-weight: 500;
  letter-spacing: -0.015em;
  color: #fff;
  margin-bottom: 32px;
  line-height: 1.02;
  text-shadow: 0 2px 4px rgba(14,42,58,0.7), 0 4px 24px rgba(14,42,58,0.55);
}
.hz-page--contacto .c-hero h1 em { color: var(--c-gold); font-weight: 500; }
.hz-page--contacto .c-hero__lead {
  font-size: 21px;
  font-weight: 400;
  color: #fff;
  max-width: 680px;
  line-height: 1.55;
  text-shadow: 0 1px 3px rgba(14,42,58,0.85), 0 2px 16px rgba(14,42,58,0.65);
}
.hz-page--contacto .c-hero__ctas { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 48px; }
.hz-page--contacto .c-hero__aside {
  border-left: 1px solid rgba(255,255,255,0.2);
  padding-left: 48px;
}
.hz-page--contacto .c-hero__aside .label {
  font-size: 11px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--c-gold);
  margin-bottom: 12px;
  display: block;
  font-weight: 600;
  text-shadow: 0 1px 3px rgba(14,42,58,0.7);
}
.hz-page--contacto .c-hero__aside .group { margin-bottom: 32px; }
.hz-page--contacto .c-hero__aside .v {
  font-family: 'Cormorant Garamond', serif;
  font-size: 30px;
  font-weight: 500;
  color: #fff;
  letter-spacing: -0.01em;
  text-shadow: 0 1px 3px rgba(14,42,58,0.85), 0 2px 16px rgba(14,42,58,0.6);
}
.hz-page--contacto .c-hero__aside .v a:hover { color: var(--c-gold); }
.hz-page--contacto .c-hero__aside .sub {
  font-size: 15px;
  color: #fff;
  margin-top: 6px;
  text-shadow: 0 1px 3px rgba(14,42,58,0.75);
}

/* COMPOSE / form */
.hz-page--contacto .c-compose { display: grid; grid-template-columns: 1fr 1.05fr; gap: 100px; max-width: 1440px; margin: 0 auto; }
.hz-page--contacto .c-compose h2 { font-size: clamp(40px, 5vw, 72px); margin-bottom: 32px; }
.hz-page--contacto .c-compose .lead { font-size: 20px; color: var(--c-ink-soft); max-width: 500px; margin-bottom: 56px; }
.hz-page--contacto .c-detail-list { list-style: none; border-top: 1px solid var(--c-ink); padding-top: 32px; margin: 0; }
.hz-page--contacto .c-detail-list li { display: grid; grid-template-columns: 130px 1fr; gap: 32px; padding: 20px 0; border-bottom: 1px solid var(--c-line); align-items: baseline; }
.hz-page--contacto .c-detail-list .lbl { font-size: 11px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--c-ink-soft); font-weight: 600; }
.hz-page--contacto .c-detail-list .val { font-family: 'Cormorant Garamond', serif; font-size: 26px; font-weight: 500; color: var(--c-ink); line-height: 1.3; }
.hz-page--contacto .c-detail-list .val a { border-bottom: 1px solid var(--c-line); padding-bottom: 2px; transition: all .25s; }
.hz-page--contacto .c-detail-list .val a:hover { border-color: var(--c-primary); color: var(--c-primary); }
.hz-page--contacto .c-form { background: #fff; border: 1px solid var(--c-line); padding: 64px 56px 48px; box-shadow: 0 30px 80px rgba(14,42,58,0.08); }
.hz-page--contacto .c-form-head { border-bottom: 1px solid var(--c-line); padding-bottom: 28px; margin-bottom: 36px; }
.hz-page--contacto .c-form-head .num { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 18px; color: var(--c-gold); }
.hz-page--contacto .c-form-head h3 { font-size: 32px; margin: 8px 0 8px; }
.hz-page--contacto .c-form-head p { font-size: 16px; color: var(--c-ink-soft); }
.hz-page--contacto .c-field { margin-bottom: 28px; }
.hz-page--contacto .c-field label { display: block; font-size: 11px; letter-spacing: 0.24em; text-transform: uppercase; color: var(--c-ink-soft); margin-bottom: 10px; font-weight: 600; }
.hz-page--contacto .c-field input,
.hz-page--contacto .c-field select,
.hz-page--contacto .c-field textarea {
  width: 100%;
  border: 0;
  border-bottom: 1px solid var(--c-line);
  background: transparent;
  font-family: 'Cormorant Garamond', serif;
  font-size: 24px;
  font-weight: 400;
  padding: 6px 0 14px;
  color: var(--c-ink);
  letter-spacing: -0.01em;
  transition: border-color .2s;
}
.hz-page--contacto .c-field input:focus,
.hz-page--contacto .c-field select:focus,
.hz-page--contacto .c-field textarea:focus { outline: 0; border-bottom-color: var(--c-primary); }
.hz-page--contacto .c-field input::placeholder,
.hz-page--contacto .c-field textarea::placeholder { color: var(--c-ink-mute); font-style: italic; }
.hz-page--contacto .c-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.hz-page--contacto .c-consent { font-size: 14px; color: var(--c-ink-soft); display: flex; gap: 12px; line-height: 1.5; margin: 12px 0 32px; }
.hz-page--contacto .c-consent input { margin-top: 4px; accent-color: var(--c-primary); }
.hz-page--contacto .c-consent a { color: var(--c-ink); border-bottom: 1px solid var(--c-primary); }
.hz-page--contacto .c-form__submit {
  background: var(--c-primary); color: #fff; border: 1px solid var(--c-primary);
  padding: 22px 36px;
  font-size: 13px; letter-spacing: 0.24em; text-transform: uppercase; font-weight: 500;
  cursor: pointer;
  display: inline-flex; align-items: center; gap: 16px;
  width: 100%; justify-content: center;
  transition: all .25s;
}
.hz-page--contacto .c-form__submit:hover { background: var(--c-secondary); border-color: var(--c-secondary); }
.hz-page--contacto .c-form__foot { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 15px; color: var(--c-ink-soft); margin-top: 18px; text-align: center; }

/* Form messages (success / error) */
.hz-page--contacto .hr-form-msg {
  margin-top: 18px;
  padding: 16px 20px;
  border-radius: 4px;
  font-size: 15px;
  line-height: 1.55;
}
.hz-page--contacto .hr-form-msg--ok {
  background: #E8F5EF;
  color: #1F6F4A;
  border: 1px solid #B7DDC8;
}
.hz-page--contacto .hr-form-msg--err {
  background: #FCEDEC;
  color: #B3261E;
  border: 1px solid #F0BFBC;
}

/* LOCATION */
.hz-page--contacto .c-location { background: var(--c-bg); }
.hz-page--contacto .c-location__grid { display: grid; grid-template-columns: 1fr 1fr; min-height: 640px; }
.hz-page--contacto .c-location__photo { position: relative; overflow: hidden; background: var(--c-bg-deeper); }
.hz-page--contacto .c-location__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; will-change: transform; }
.hz-page--contacto .c-location__overlay { position: absolute; inset: 0; background: linear-gradient(135deg, rgba(24,107,153,0.55) 0%, rgba(14,42,58,0.82) 100%); pointer-events: none; z-index: 2; }
.hz-page--contacto .c-location__line { position: absolute; top: 32px; bottom: 32px; left: 32px; width: 1px; background: linear-gradient(180deg, transparent 0%, var(--c-gold) 30%, var(--c-gold) 70%, transparent 100%); opacity: 0.7; z-index: 3; }
.hz-page--contacto .c-location__caption { position: absolute; bottom: 32px; left: 56px; right: 32px; font-size: 11px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--c-gold); font-weight: 600; z-index: 3; }
.hz-page--contacto .c-location__info { padding: 100px 64px; display: flex; flex-direction: column; justify-content: center; border-left: 1px solid var(--c-line); }
.hz-page--contacto .c-location__info h2 { font-size: clamp(36px, 4.5vw, 56px); margin-bottom: 28px; }
.hz-page--contacto .c-location__info .lead { font-size: 19px; color: var(--c-ink-soft); margin-bottom: 36px; max-width: 480px; }
.hz-page--contacto .c-location__refs { list-style: none; border-top: 1px solid var(--c-ink); margin: 0 0 32px; counter-reset: ref; padding: 0; }
.hz-page--contacto .c-location__refs li { padding: 18px 0; border-bottom: 1px solid var(--c-line); display: flex; align-items: baseline; gap: 18px; font-size: 19px; line-height: 1.5; }
.hz-page--contacto .c-location__refs li::before { content: counter(ref, decimal-leading-zero); counter-increment: ref; font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 16px; color: var(--c-gold); min-width: 32px; font-weight: 500; }
.hz-page--contacto .c-location__actions { display: flex; flex-wrap: wrap; gap: 10px; }

/* MAP */
.hz-page--contacto .c-map { background: #f5f5f5; border-bottom: 1px solid var(--c-line); }
.hz-page--contacto .c-map iframe { width: 100%; height: 480px; border: 0; display: block; filter: grayscale(20%); }

/* SERVICES */
.hz-page--contacto .c-services-head { margin-bottom: 96px; max-width: 900px; display: grid; grid-template-columns: 1fr auto; gap: 64px; align-items: end; }
.hz-page--contacto .c-services-head h2 { font-size: clamp(48px, 5.5vw, 84px); margin-bottom: 24px; line-height: 0.96; }
.hz-page--contacto .c-services-head p { font-size: 20px; color: var(--c-ink-soft); max-width: 420px; margin-bottom: 8px; }
.hz-page--contacto .c-service-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--c-ink); border-left: 1px solid var(--c-line); }
.hz-page--contacto .c-service-card {
  position: relative;
  padding: 56px 44px 48px;
  border-right: 1px solid var(--c-line);
  border-bottom: 1px solid var(--c-line);
  background: var(--c-bg);
  display: flex; flex-direction: column;
  min-height: 480px;
  overflow: hidden;
  transition: background .35s ease;
  text-decoration: none; color: inherit;
}
.hz-page--contacto .c-service-card:hover { background: var(--c-bg-light); }
.hz-page--contacto .c-service-card:hover .c-service__watermark { opacity: 0.22; transform: translate(-12px, -8px) scale(1.03); }
.hz-page--contacto .c-service__watermark {
  position: absolute; top: 28px; right: 36px;
  font-family: 'Outfit', sans-serif; font-weight: 200;
  font-size: clamp(120px, 14vw, 200px);
  line-height: 0.9;
  color: var(--c-primary);
  opacity: 0.07;
  pointer-events: none;
  transition: all .55s ease;
  letter-spacing: -0.06em;
  font-variant-numeric: tabular-nums;
}
.hz-page--contacto .c-service__eyebrow {
  font-size: 11px; letter-spacing: 0.32em; text-transform: uppercase;
  color: var(--c-primary); font-weight: 600;
  margin-bottom: 32px;
  display: inline-flex; align-items: center; gap: 14px;
  position: relative; z-index: 2;
}
.hz-page--contacto .c-service__eyebrow .num { font-size: 13px; font-weight: 500; padding-right: 14px; border-right: 1px solid var(--c-line); }
.hz-page--contacto .c-service-card h3 {
  font-size: clamp(36px, 3.4vw, 48px); line-height: 1.02;
  margin-bottom: 20px; position: relative; z-index: 2;
}
.hz-page--contacto .c-service-card h3 em { display: block; }
.hz-page--contacto .c-service-card p { font-size: 18px; color: var(--c-ink-soft); line-height: 1.65; margin-bottom: 32px; position: relative; z-index: 2; flex-grow: 1; }
.hz-page--contacto .c-service__meta { list-style: none; border-top: 1px solid var(--c-line); padding-top: 20px; margin: 0 0 24px; position: relative; z-index: 2; }
.hz-page--contacto .c-service__meta li { display: flex; justify-content: space-between; padding: 8px 0; font-size: 15px; color: var(--c-ink-soft); }
.hz-page--contacto .c-service__meta .k { font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; font-weight: 600; }
.hz-page--contacto .c-service__meta .v { color: var(--c-ink); font-weight: 500; }
.hz-page--contacto .c-service__cta { display: inline-flex; align-items: center; gap: 10px; font-size: 12px; letter-spacing: 0.24em; text-transform: uppercase; color: var(--c-ink); font-weight: 600; transition: all .25s; position: relative; z-index: 2; }
.hz-page--contacto .c-service__cta .arrow { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 22px; letter-spacing: 0; text-transform: none; color: var(--c-gold); transition: all .25s; }
.hz-page--contacto .c-service-card:hover .c-service__cta { color: var(--c-primary); gap: 14px; }
.hz-page--contacto .c-service-card:hover .c-service__cta .arrow { color: var(--c-primary); transform: translateX(6px); }

/* TRUST / metrics on deep blue */
.hz-page--contacto .c-trust { max-width: 1440px; margin: 0 auto; }
.hz-page--contacto .c-trust h2 { font-size: clamp(40px, 5vw, 72px); line-height: 0.98; margin-bottom: 80px; max-width: 900px; }
.hz-page--contacto .c-metrics { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid rgba(255,255,255,0.16); }
.hz-page--contacto .c-metric { padding: 56px 32px 40px; border-right: 1px solid rgba(255,255,255,0.16); border-bottom: 1px solid rgba(255,255,255,0.16); }
.hz-page--contacto .c-metric:last-child { border-right: none; }
.hz-page--contacto .c-metric__num { font-family: 'Cormorant Garamond', serif; font-size: clamp(64px, 9vw, 132px); line-height: 0.95; font-weight: 300; letter-spacing: -0.025em; margin-bottom: 16px; color: #fff; }
.hz-page--contacto .c-metric__num em { font-style: italic; color: var(--c-gold); font-weight: 400; }
.hz-page--contacto .c-metric__num .small { font-size: 0.4em; vertical-align: super; color: rgba(255,255,255,0.55); margin-left: 4px; font-style: normal; }
.hz-page--contacto .c-metric__lbl { font-size: 11px; text-transform: uppercase; letter-spacing: 0.24em; color: rgba(255,255,255,0.78); font-weight: 500; }

/* FAQ */
.hz-page--contacto .c-faq { max-width: 1440px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1.5fr; gap: 96px; }
.hz-page--contacto .c-faq-aside h2 { font-size: clamp(36px, 4.5vw, 56px); margin-bottom: 28px; position: sticky; top: 120px; }
.hz-page--contacto .c-faq-aside .lead { font-size: 18px; color: var(--c-ink-soft); max-width: 380px; position: sticky; top: 220px; }
.hz-page--contacto .c-faq-list { border-top: 1px solid var(--c-ink); }
.hz-page--contacto .c-faq-item { border-bottom: 1px solid var(--c-line); }
.hz-page--contacto .c-faq-q {
  padding: 32px 0; font-family: 'Cormorant Garamond', serif;
  font-size: 28px; font-weight: 400; letter-spacing: -0.01em;
  cursor: pointer;
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
  list-style: none; line-height: 1.25;
}
.hz-page--contacto .c-faq-q::-webkit-details-marker { display: none; }
.hz-page--contacto .c-faq-q::after {
  content: '+'; font-family: 'Cormorant Garamond', serif;
  font-size: 32px; font-weight: 300; color: var(--c-primary);
  transition: transform .25s;
}
.hz-page--contacto .c-faq-item[open] .c-faq-q::after { transform: rotate(45deg); }
.hz-page--contacto .c-faq-a { padding: 0 0 32px; color: var(--c-ink-soft); font-size: 20px; line-height: 1.7; max-width: 720px; font-weight: 300; }

/* CTA final */
.hz-page--contacto .c-cta-final { max-width: 1440px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: end; }
.hz-page--contacto .c-cta-final h2 { font-size: clamp(48px, 7vw, 110px); line-height: 0.98; }
.hz-page--contacto .c-cta-final .right { display: flex; flex-direction: column; gap: 28px; padding-bottom: 12px; }
.hz-page--contacto .c-cta-final p { font-size: 20px; color: var(--c-ink-soft); max-width: 480px; line-height: 1.6; }
.hz-page--contacto .c-cta-final .row { display: flex; gap: 12px; flex-wrap: wrap; }

/* Responsive */
@media (max-width: 1024px) {
  .hz-page--contacto .c-hero__inner { grid-template-columns: 1fr; gap: 48px; padding: 80px 28px 64px; }
  .hz-page--contacto .c-hero__aside { border-left: none; border-top: 1px solid rgba(255,255,255,0.2); padding-left: 0; padding-top: 32px; }
  .hz-page--contacto .c-compose { grid-template-columns: 1fr; gap: 56px; }
  .hz-page--contacto .c-form { padding: 48px 32px 36px; }
  .hz-page--contacto .c-location { grid-template-columns: 1fr; }
  .hz-page--contacto .c-location__info { padding: 64px 32px; border-left: none; border-top: 1px solid var(--c-line); }
  .hz-page--contacto .c-services-head { grid-template-columns: 1fr; gap: 24px; }
  .hz-page--contacto .c-service-grid { grid-template-columns: 1fr; border-left: none; border-top: 1px solid var(--c-ink); }
  .hz-page--contacto .c-service-card { min-height: auto; padding: 48px 32px 40px; border-right: none; }
  .hz-page--contacto .c-metrics { grid-template-columns: 1fr 1fr; }
  .hz-page--contacto .c-metric:nth-child(2n) { border-right: none; }
  .hz-page--contacto .c-faq { grid-template-columns: 1fr; gap: 40px; }
  .hz-page--contacto .c-faq-aside h2,
  .hz-page--contacto .c-faq-aside .lead { position: static; }
  .hz-page--contacto .c-cta-final { grid-template-columns: 1fr; gap: 32px; }
}
@media (max-width: 600px) {
  .hz-page--contacto .c-section { padding: 72px 20px; }
  .hz-page--contacto .c-hero__inner { padding: 56px 22px 48px; }
  .hz-page--contacto .c-form { padding: 32px 22px; }
  .hz-page--contacto .c-field-row { grid-template-columns: 1fr; gap: 0; }
  .hz-page--contacto .c-field input,
  .hz-page--contacto .c-field select,
  .hz-page--contacto .c-field textarea { font-size: 18px; }
  .hz-page--contacto .c-metrics { grid-template-columns: 1fr; }
  .hz-page--contacto .c-metric { border-right: none; }
  .hz-page--contacto .c-location__info { padding: 48px 22px; }
  .hz-page--contacto .c-map iframe { height: 360px; }
}



/* ==========================================================================
   Horizons Realty — Property Card (componente global) · v2 editorial
   Reusable en cualquier template que muestre listings de propiedades.
   Diseño premium · cinematic hover · stagger interactions · multi-layer shadow
   · línea decorativa dorada · dividers entre meta · microanimaciones.
   Since v1.3.8 (refinado 2026-05-04).
   ========================================================================== */

.hz-card {
  --hzc-primary:  #186B99;
  --hzc-primary2: #2781AD;
  --hzc-gold:     #ADAA97;
  --hzc-gold-2:   #c4bfa8;
  --hzc-ink:      #1c2a33;
  --hzc-ink-soft: #2a3942;
  --hzc-cream:    #FAF7F1;
  --hzc-cream-2:  #f3eee2;
  --hzc-border:   #E4E4E4;
  --hzc-muted:    #6b7280;
  --hzc-font-title: "Cormorant Garamond", "Times New Roman", Georgia, serif;
  --hzc-font-body:  "Outfit", system-ui, -apple-system, sans-serif;
  --hzc-radius: 6px;
  --hzc-ease: cubic-bezier(.22,.61,.36,1);

  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: var(--hzc-radius);
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  position: relative;
  isolation: isolate;
  /* Multi-layer shadow para sensación de profundidad */
  box-shadow:
    0 1px 2px rgba(28,42,51,0.04),
    0 0 0 1px rgba(28,42,51,0.045);
  transition:
    transform .55s var(--hzc-ease),
    box-shadow .55s var(--hzc-ease);
}
.hz-card:hover {
  transform: translateY(-5px);
  box-shadow:
    0 36px 80px -28px rgba(28,42,51,0.28),
    0 14px 28px -16px rgba(28,42,51,0.14),
    0 0 0 1px rgba(173,170,151,0.45);  /* halo dorado sutil */
}
.hz-card:focus-visible {
  outline: 0;
  box-shadow:
    0 0 0 3px rgba(255,255,255,1),
    0 0 0 5px var(--hzc-primary);
}
.hz-card:active { transform: translateY(-3px); transition-duration: .2s; }

/* ───── MEDIA ───── */
.hz-card__media {
  position: relative;
  aspect-ratio: 16 / 11;       /* más ancho que alto, look horizontal editorial */
  background: var(--hzc-cream-2);
  overflow: hidden;
}
@media (max-width: 599px) {
  .hz-card__media { aspect-ratio: 3 / 2; }   /* en mobile aún más horizontal */
}
.hz-card__img,
.hz-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  /* Sutil filtro para uniformizar fotos diversas + mejorar contraste de chips */
  filter: saturate(1.04) brightness(0.98) contrast(1.02);
  transition:
    transform 1.4s var(--hzc-ease),
    filter .55s var(--hzc-ease);
}
.hz-card:hover .hz-card__img,
.hz-card:hover .hz-card__media img {
  transform: scale(1.07);
  filter: saturate(1.08) brightness(1) contrast(1.04);
}
.hz-card__img--placeholder {
  background:
    radial-gradient(circle at 30% 20%, rgba(173,170,151,0.22), transparent 60%),
    linear-gradient(135deg, var(--hzc-cream-2) 0%, var(--hzc-cream) 100%);
}

/* Cinematic vignette overlay sobre la imagen (siempre visible muy sutil, +intenso en hover) */
.hz-card__media::after {
  content: "";
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, transparent 55%, rgba(28,42,51,0.18) 100%),
    radial-gradient(ellipse at center top, transparent 65%, rgba(28,42,51,0.10) 100%);
  pointer-events: none;
  opacity: .85;
  transition: opacity .55s var(--hzc-ease);
  z-index: 1;
}
.hz-card:hover .hz-card__media::after { opacity: 1; }

/* ───── FEATURED RIBBON ───── */
.hz-card__featured {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 3;
  letter-spacing: 0.16em;
  font-size: 10px;
  padding: 7px 12px;
  box-shadow:
    0 4px 14px -4px rgba(28,42,51,0.35),
    0 0 0 1px rgba(255,255,255,0.35) inset;
}
.hz-card__featured svg {
  margin-right: 1px;
  animation: hz-card-twinkle 3s ease-in-out infinite;
}
@keyframes hz-card-twinkle {
  0%, 100% { opacity: 1; transform: rotate(0); }
  50%      { opacity: .75; transform: rotate(-8deg); }
}

/* ───── CHIPS (status + labels) ───── */
.hz-card__chips {
  position: absolute;
  bottom: 14px;
  left: 14px;
  right: 14px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  z-index: 3;
  pointer-events: none;
}

.hz-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6.5px 11px;
  font-family: var(--hzc-font-body);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  border-radius: 999px;
  white-space: nowrap;
  backdrop-filter: blur(8px) saturate(1.1);
  -webkit-backdrop-filter: blur(8px) saturate(1.1);
  pointer-events: auto;
  line-height: 1;
  font-feature-settings: "ss01", "kern";
  box-shadow: 0 2px 8px -2px rgba(28,42,51,0.25);
  transition: transform .35s var(--hzc-ease);
}
.hz-card:hover .hz-chip { transform: translateY(-1px); }

.hz-chip--featured {
  background: linear-gradient(135deg, var(--hzc-gold) 0%, var(--hzc-gold-2) 100%);
  color: var(--hzc-ink);
  box-shadow:
    0 4px 14px -4px rgba(173,170,151,0.7),
    0 0 0 1px rgba(255,255,255,0.45) inset;
}

.hz-chip--status {
  background: rgba(28,42,51,0.92);
  color: #fff;
}
.hz-chip--status[data-status="en-venta"]              { background: linear-gradient(135deg, rgba(24,107,153,0.96) 0%, rgba(39,129,173,0.96) 100%); }
.hz-chip--status[data-status="en-alquiler"]           { background: rgba(28,42,51,0.94); }
.hz-chip--status[data-status="alquilado"]             { background: rgba(107,114,128,0.92); }
.hz-chip--status[data-status="vendida"]               { background: rgba(107,114,128,0.92); }
.hz-chip--status[data-status="nueva-construccion"]    { background: rgba(39,129,173,0.94); }
.hz-chip--status[data-status="nuevo-listado"]         { background: rgba(173,170,151,0.96); color: var(--hzc-ink); }
.hz-chip--status[data-status="remate"]                { background: rgba(180,90,40,0.94); }
.hz-chip--status[data-status="fuera-del-mercado"]     { background: rgba(107,114,128,0.92); }

.hz-chip--label {
  background: rgba(255,255,255,0.94);
  color: var(--hzc-ink);
  border: 1px solid rgba(28,42,51,0.06);
  box-shadow:
    0 2px 8px -2px rgba(28,42,51,0.12),
    0 0 0 1px rgba(255,255,255,0.6) inset;
}

/* ───── BODY ───── */
.hz-card__body {
  padding: 22px 26px 24px;
  display: flex;
  flex-direction: column;
  flex: 1;
  position: relative;
}
@media (min-width: 768px) {
  .hz-card__body { padding: 24px 28px 26px; }
}

/* TYPE — eyebrow dorado con línea decorativa que aparece en hover */
.hz-card__type {
  font-family: var(--hzc-font-body);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--hzc-gold);
  margin: 0 0 16px;
  position: relative;
  display: inline-block;
  font-feature-settings: "ss01", "kern";
}
.hz-card__type::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -7px;
  width: 0;
  height: 1px;
  background: var(--hzc-gold);
  transition: width .55s var(--hzc-ease) .05s;
}
.hz-card:hover .hz-card__type::after { width: 28px; }

/* TITLE — Cormorant editorial, transition más elegante */
.hz-card__title {
  font-family: var(--hzc-font-title);
  font-size: 27px;
  font-weight: 500;
  line-height: 1.16;
  letter-spacing: -0.008em;
  color: var(--hzc-ink);
  margin: 0 0 16px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: calc(1.16em * 2);
  font-feature-settings: "kern", "liga", "dlig";
  transition: color .45s var(--hzc-ease) .08s;
}
.hz-card:hover .hz-card__title { color: var(--hzc-primary); }

/* LOCATION — pin dorado con animación sutil */
.hz-card__loc {
  display: flex;
  align-items: center;
  gap: 7px;
  font-family: var(--hzc-font-body);
  font-size: 13.5px;
  color: var(--hzc-muted);
  margin: 0 0 22px;
  line-height: 1.4;
  letter-spacing: 0.005em;
}
.hz-card__loc svg {
  color: var(--hzc-gold);
  flex-shrink: 0;
  transition: transform .45s var(--hzc-ease);
}
.hz-card:hover .hz-card__loc svg { transform: translateY(-2px) scale(1.08); }

/* PRICE — Cormorant más decorativo, con detalle italic delante */
.hz-card__price {
  font-family: var(--hzc-font-title);
  font-size: 31px;
  font-weight: 500;
  letter-spacing: -0.012em;
  color: var(--hzc-ink);
  margin: 0 0 14px;
  line-height: 1;
  position: relative;
  display: inline-block;
  font-feature-settings: "kern", "lnum", "tnum";
}
/* Línea decorativa dorada que aparece encima del precio en hover */
.hz-card__price::before {
  content: "";
  position: absolute;
  left: 0;
  top: -10px;
  width: 0;
  height: 1px;
  background: var(--hzc-gold);
  transition: width .65s var(--hzc-ease) .12s;
}
.hz-card:hover .hz-card__price::before { width: 24px; }

/* META — items con dividers verticales sutiles */
.hz-card__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0;
  padding-top: 14px;
  border-top: 1px solid var(--hzc-border);
  font-family: var(--hzc-font-body);
  font-size: 13px;
  color: var(--hzc-ink-soft);
  margin-top: auto;
}
.hz-card__meta-item {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  line-height: 1.3;
  padding: 0 16px;
  position: relative;
}
.hz-card__meta-item:first-child { padding-left: 0; }
.hz-card__meta-item:not(:last-child)::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 14px;
  background: var(--hzc-border);
}
.hz-card__meta-item svg {
  color: var(--hzc-gold);
  opacity: .85;
  transition: opacity .45s var(--hzc-ease);
}
.hz-card:hover .hz-card__meta-item svg { opacity: 1; }
.hz-card__meta-item strong {
  font-weight: 600;
  color: var(--hzc-ink);
  font-feature-settings: "lnum", "tnum";
}

/* ───── REDUCED MOTION ───── */
@media (prefers-reduced-motion: reduce) {
  .hz-card,
  .hz-card *,
  .hz-card *::before,
  .hz-card *::after,
  .hz-card__featured svg { transition: none !important; animation: none !important; }
  .hz-card:hover { transform: none; }
  .hz-card:hover .hz-card__img,
  .hz-card:hover .hz-card__media img { transform: none; filter: saturate(1.04) brightness(0.98) contrast(1.02); }
}

/* ==========================================================================
   Horizons Realty — Price Range Slider (componente global reusable)
   .hr-range — slider de rango de precio (dual handle).
   Layout horizontal: "Label > $min > $max", track delgado paleta Horizons,
   handles premium con triple shadow + halo azul al hover.
   Reusable en cualquier formulario del sitio.
   Since v1.4.3 (2026-05-05).
   ========================================================================== */

.hr-range {
  --hrr-primary:   #186B99;
  --hrr-primary-2: #2781AD;
  --hrr-gold:      #ADAA97;
  --hrr-ink:       #1c2a33;
  --hrr-muted:     #6b7280;
  --hrr-border:    #E4E4E4;
  --hrr-font-title:"Cormorant Garamond","Times New Roman",Georgia,serif;
  --hrr-font-body: "Outfit", system-ui, -apple-system, sans-serif;

  font-family: var(--hrr-font-body);
  width: 100%;
  position: relative;
}

/* ── HEAD: label + valores en línea con separadores ──────────── */
.hr-range__head {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 8px;
  flex-wrap: nowrap;
  white-space: nowrap;
  margin-bottom: 18px;
  line-height: 1.2;
}
.hr-range__label {
  font-family: var(--hrr-font-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--hrr-muted);
  white-space: nowrap;
}
.hr-range__sep {
  color: var(--hrr-gold);
  font-size: 18px;
  line-height: 1;
  font-weight: 300;
  user-select: none;
  margin: 0 -2px;
  position: relative;
  top: 1px;
}
.hr-range__val {
  font-family: var(--hrr-font-title);
  font-style: italic;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: -0.012em;
  color: var(--hrr-ink);
  font-feature-settings: "kern", "lnum", "tnum";
  white-space: nowrap;
  transition: color .25s ease, transform .25s cubic-bezier(.22,.61,.36,1);
}
.hr-range.is-dragging-min .hr-range__val--min,
.hr-range.is-dragging-max .hr-range__val--max {
  color: var(--hrr-primary);
  transform: translateY(-1px);
}

/* ── SLIDER ──────────────────────────────────────────────────── */
.hr-range__slider {
  position: relative;
  height: 36px;
  padding: 12px 0;
}

/* Track: muy delgado y sutil, paleta Horizons */
.hr-range__track {
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 2px;
  transform: translateY(-50%);
  background: rgba(28,42,51,0.10);
  border-radius: 999px;
}

/* Fill: azul Horizons sólido, igualmente delgado, con glow muy sutil */
.hr-range__fill {
  position: absolute;
  top: 50%;
  height: 2px;
  transform: translateY(-50%);
  background: var(--hrr-primary);
  border-radius: 999px;
  pointer-events: none;
  box-shadow: 0 1px 4px -1px rgba(24,107,153,0.35);
  transition: background .35s ease;
}
.hr-range:hover .hr-range__fill {
  background: linear-gradient(90deg, var(--hrr-primary) 0%, var(--hrr-primary-2) 100%);
}

/* Inputs invisibles superpuestos (nativos de range, ocultos visualmente).
 * NOTE: usamos !important porque el wrapper de la barra de búsqueda
 * (.hz-page--propiedades .hz-search__field input) tiene mayor especificidad
 * y le aplica background blanco + border + padding que tapan el track.
 * El fix asegura que el input quede 100% transparente para que se vea
 * el track y el fill por debajo, mientras los handles (::*-thumb) sí se
 * dibujan encima como elementos visuales del slider. */
.hr-range__input,
.hr-range input.hr-range__input {
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  top: 0 !important;
  width: 100% !important;
  height: 36px !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  pointer-events: none;
  outline: none;
  margin: 0 !important;
  padding: 0 !important;
}

/* ── HANDLES: 26px premium, triple ring + halo (mismo diseño aprobado) ── */
.hr-range__input::-webkit-slider-thumb {
  appearance: none;
  -webkit-appearance: none;
  pointer-events: auto;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, #fff 0%, #f4f0e6 100%);
  border: 0;
  cursor: grab;
  box-shadow:
    0 0 0 2px var(--hrr-primary),
    0 0 0 5px #fff,
    0 4px 14px -3px rgba(24,107,153,0.45),
    0 1px 3px rgba(28,42,51,0.18);
  transition: box-shadow .25s ease, transform .15s cubic-bezier(.22,.61,.36,1);
  margin-top: 0;
}
.hr-range__input::-webkit-slider-thumb:hover {
  box-shadow:
    0 0 0 2px var(--hrr-primary),
    0 0 0 5px #fff,
    0 0 0 10px rgba(24,107,153,0.10),
    0 8px 22px -4px rgba(24,107,153,0.55),
    0 2px 4px rgba(28,42,51,0.22);
  transform: scale(1.06);
}
.hr-range__input::-webkit-slider-thumb:active {
  cursor: grabbing;
  transform: scale(1.12);
  box-shadow:
    0 0 0 2px var(--hrr-primary),
    0 0 0 5px #fff,
    0 0 0 12px rgba(24,107,153,0.16),
    0 10px 28px -4px rgba(24,107,153,0.65);
}

/* Firefox */
.hr-range__input::-moz-range-thumb {
  pointer-events: auto;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, #fff 0%, #f4f0e6 100%);
  border: 0;
  cursor: grab;
  box-shadow:
    0 0 0 2px var(--hrr-primary),
    0 0 0 5px #fff,
    0 4px 14px -3px rgba(24,107,153,0.45),
    0 1px 3px rgba(28,42,51,0.18);
  transition: box-shadow .25s ease, transform .15s ease;
}
.hr-range__input::-moz-range-thumb:hover {
  transform: scale(1.06);
  box-shadow:
    0 0 0 2px var(--hrr-primary),
    0 0 0 5px #fff,
    0 0 0 10px rgba(24,107,153,0.10),
    0 8px 22px -4px rgba(24,107,153,0.55);
}
.hr-range__input::-webkit-slider-runnable-track,
.hr-range__input::-moz-range-track {
  background: transparent;
  height: 36px;
  border: 0;
}

/* Focus visible para keyboard navigation */
.hr-range__input:focus-visible::-webkit-slider-thumb {
  box-shadow:
    0 0 0 2px var(--hrr-primary),
    0 0 0 5px #fff,
    0 0 0 9px rgba(24,107,153,0.30),
    0 4px 14px -3px rgba(24,107,153,0.5);
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .hr-range__val,
  .hr-range__fill,
  .hr-range__input::-webkit-slider-thumb,
  .hr-range__input::-moz-range-thumb { transition: none !important; }
}

/* Responsive: en pantallas chicas el head se apila */
@media (max-width: 480px) {
  .hr-range__head { gap: 8px; }
  .hr-range__val { font-size: 17px; }
  .hr-range__sep { font-size: 15px; }
}

/* ==========================================================
   Horizons Nav v1.7.4 — header transparente + drawer móvil
   ==========================================================
   Estrategia:
   - Ocultamos el header de Houzez (.header-desktop / .header-mobile)
   - Inyectamos nuestro nuevo header vía hook wp_body_open en functions.php
   - Clases prefijo .hr-nav* para evitar colisiones con clases existentes
   ========================================================== */

/* Ocultar el header default de Houzez para que no se duplique con el nuestro.
   Selectores reales verificados en producción 2026-05-12:
   <header class="header-main-wrap"> > <div id="header-section" class="header-desktop">
*/
body.hr-newnav-active .header-main-wrap,
body.hr-newnav-active .header-desktop,
body.hr-newnav-active .header-mobile,
body.hr-newnav-active #header-section,
body.hr-newnav-active .is_sticky_clone,
body.hr-newnav-active .navbar-sticky {
  display: none !important;
}

/* v1.11.1 — Hide Houzez's standalone search bar that some pages inject
   (when fave_header_type = "none"). The hr-newnav already covers nav +
   search via the dedicated /buscar/ page, so this Houzez fallback must
   never appear. Observed on /agentes-asociados/ (body.houzez-header-none). */
body.hr-newnav-active #desktop-header-search,
body.hr-newnav-active .desktop-search-nav,
body.hr-newnav-active .mobile-search-nav,
body.hr-newnav-active .mobile-search-trigger {
  display: none !important;
}

/* ===========================================================
   v1.13.13 — Modal de login/register Houzez: forzar centrado
   ===========================================================
   Bootstrap usa .modal-dialog { margin: var(--bs-modal-margin) }.
   En la home (Elementor) esa variable evalúa a 0 → el modal queda
   pegado a la izquierda. En /create-listing/ evalúa a 28px → bien.
   Como inyectamos el modal en todas las páginas para que "Iniciar
   sesión" funcione siempre, garantizamos su centrado con override.
   =========================================================== */
#login-register-form .modal-dialog,
#reset-password-form .modal-dialog {
  margin: 1.75rem auto !important;
  max-width: 430px;
}
@media (max-width: 575.98px) {
  #login-register-form .modal-dialog,
  #reset-password-form .modal-dialog {
    margin: 0.5rem auto !important;
  }
}
/* Restablecer la variable de Bootstrap por si algún plugin la sobreescribió */
#login-register-form,
#reset-password-form {
  --bs-modal-margin: 1.75rem;
}
/* Asegurar que el modal se renderice con sus dimensiones de pantalla */
#login-register-form.modal,
#reset-password-form.modal {
  overflow-x: hidden;
  overflow-y: auto;
}
/* Defender el padding/borde interno por si CSS de la home lo resetea */
#login-register-form .modal-content,
#reset-password-form .modal-content {
  border: 0;
  border-radius: 8px;
  background: #fff;
}
/* v1.13.14 — Shield mínimo y quirúrgico contra el bug observado.
   El bug REAL en la home era:
     .nav-tabs { position: fixed; display: grid }
   heredado de reglas globales de Elementor / widgets, que sacaba los tabs
   "Login"/"Register" fuera del modal y los pegaba al top de la página.
   Sólo neutralizamos esas 2 propiedades (sin tocar padding, border ni
   tipografía) para no romper el render correcto en /create-listing/. */
#login-register-form .nav-tabs,
#reset-password-form .nav-tabs {
  position: static !important;
  display: flex !important;
}

/* ===========================================================
   v1.13.15 — Modal de login/register premium con marca Horizons
   ===========================================================
   Aplica:
   - Paleta Horizons (azul #186B99, dorado #ADAA97, crema, ink)
   - Tipografía Manrope para tabs/inputs/botones
   - FIX: los .btn-login/.btn-register/.hz-facebook-login tenían
     background:transparent + color:white → eran invisibles hasta
     el hover. Forzamos colores brand para que se vean siempre.
   - Header limpio con tabs subrayados (no tab pill azul)
   - Inputs con borde fino, focus con halo azul Horizons
   - Botón Facebook conserva su azul oficial #1877F2
   =========================================================== */

/* Container exterior — sombra más editorial, esquinas redondeadas */
#login-register-form .modal-content,
#reset-password-form .modal-content {
  border: 0 !important;
  border-radius: 12px !important;
  box-shadow:
    0 30px 80px -10px rgba(14, 42, 58, 0.25),
    0 8px 24px -6px rgba(14, 42, 58, 0.1) !important;
  overflow: hidden;
}

/* Header crema con tabs minimalistas (en lugar de header azul saturado) */
#login-register-form .modal-header,
#reset-password-form .modal-header {
  background: #FBFAF7 !important;
  border-bottom: 1px solid rgba(14, 42, 58, 0.08) !important;
}

/* Tabs Login / Register en estilo editorial */
#login-register-form .nav-tabs .nav-link,
#reset-password-form .nav-tabs .nav-link {
  font-family: 'Manrope', sans-serif !important;
  font-size: 12px !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  font-weight: 600 !important;
  color: #4A5A66 !important;
  background: transparent !important;
  border: 0 !important;
  border-bottom: 2px solid transparent !important;
  padding: 18px 14px !important;
  border-radius: 0 !important;
  transition: color 220ms, border-color 220ms;
}
#login-register-form .nav-tabs .nav-link.active,
#reset-password-form .nav-tabs .nav-link.active {
  color: #186B99 !important;
  background: transparent !important;
  border-bottom-color: #186B99 !important;
}
#login-register-form .nav-tabs .nav-link:hover:not(.active),
#reset-password-form .nav-tabs .nav-link:hover:not(.active) {
  color: #0E2A3A !important;
}

/* Body con padding más generoso */
#login-register-form .modal-body,
#reset-password-form .modal-body {
  padding: 30px 32px 28px !important;
  background: #fff;
}

/* Inputs con borde fino y focus brand */
#login-register-form .form-control,
#reset-password-form .form-control {
  border: 1px solid #E5E1D8;
  background: #fff;
  font-family: 'Manrope', sans-serif;
  font-size: 14px;
  padding: 12px 14px 12px 42px; /* dejar lugar para el ícono */
  border-radius: 6px;
  transition: border-color 200ms, box-shadow 200ms;
}
#login-register-form .form-control:focus,
#reset-password-form .form-control:focus {
  border-color: #186B99;
  box-shadow: 0 0 0 3px rgba(24, 107, 153, 0.12);
  outline: none;
}

/* "Lost your password?" en azul Horizons */
#login-register-form a,
#reset-password-form a {
  color: #186B99;
}
#login-register-form a:hover,
#reset-password-form a:hover {
  color: #2781AD;
}

/* ============ FIX BOTONES INVISIBLES + MARCA ============
   El bug era background:transparent + color:white → forzamos los
   colores correctos del brand para que siempre se vean. */
#login-register-form .btn-login,
#login-register-form .btn-register,
#reset-password-form .btn-primary {
  background-color: #186B99 !important;
  border: 1px solid #186B99 !important;
  color: #fff !important;
  font-family: 'Manrope', sans-serif !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  padding: 14px 20px !important;
  border-radius: 6px !important;
  height: auto !important;
  width: 100% !important;
  margin-top: 14px !important;
  transition: background-color 220ms, border-color 220ms;
}
#login-register-form .btn-login:hover,
#login-register-form .btn-register:hover,
#reset-password-form .btn-primary:hover {
  background-color: #2781AD !important;
  border-color: #2781AD !important;
  color: #fff !important;
}

/* Botón Facebook con su azul oficial (mantenemos identidad del producto) */
#login-register-form .hz-facebook-login {
  background-color: #1877F2 !important;
  border: 1px solid #1877F2 !important;
  color: #fff !important;
  font-family: 'Manrope', sans-serif !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  padding: 14px 20px !important;
  border-radius: 6px !important;
  height: auto !important;
  width: 100% !important;
  margin-top: 10px !important;
  transition: background-color 220ms;
}
#login-register-form .hz-facebook-login:hover {
  background-color: #145dbf !important;
  border-color: #145dbf !important;
}

/* ============ v1.13.16 — Fix Remember me cortado ============
   El input checkbox está oculto (opacity:0, position:absolute) y Houzez
   muestra .control__indicator como checkbox visual. Pero algún CSS global
   está quitándole el padding-left al label, así que el indicator queda
   superpuesto al texto y se ve "member me" (sin el "Re"). */
#login-register-form .control--checkbox,
#reset-password-form .control--checkbox {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  padding-left: 28px !important;
  min-height: 20px;
  cursor: pointer !important;
  font-size: 13px;
}
#login-register-form .control--checkbox .control__indicator,
#reset-password-form .control--checkbox .control__indicator {
  position: absolute !important;
  left: 0 !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 18px !important;
  height: 18px !important;
  border: 1px solid #c7cdd2 !important;
  border-radius: 3px !important;
  background: #fff !important;
  display: block !important;
}
#login-register-form .control--checkbox input:checked ~ .control__indicator,
#reset-password-form .control--checkbox input:checked ~ .control__indicator {
  background: #186B99 !important;
  border-color: #186B99 !important;
}
/* Tick blanco cuando checked */
#login-register-form .control--checkbox input:checked ~ .control__indicator::after,
#reset-password-form .control--checkbox input:checked ~ .control__indicator::after {
  content: "";
  position: absolute;
  left: 5px;
  top: 1px;
  width: 5px;
  height: 10px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

/* ============ v1.13.16 — Fix dropdown del usuario invisible ============
   Los items heredaban color:rgba(255,255,255,0.92) del .hr-nav__menu padre,
   resultando en texto blanco sobre el fondo blanco del .hr-nav__login-menu.
   Solo eran visibles al hover por la regla a:hover que les daba color azul.
   Forzamos el color del ink para que sean legibles siempre. */
.hr-nav__login-menu a,
.hr-nav__login-menu button,
.hr-nav__login-menu .hr-login-link {
  color: var(--c-ink, #0E2A3A) !important;
}
.hr-nav__login-menu a:hover,
.hr-nav__login-menu button:hover,
.hr-nav__login-menu .hr-login-link:hover {
  color: var(--c-primary, #186B99) !important;
  background: var(--c-bg-cream, #FBFAF7) !important;
}

/* ===========================================================
   v1.7.5 — Offset para contenido en páginas interiores
   ===========================================================
   El nav es position:fixed, por lo que el contenido queda DETRÁS
   del header. En la home eso es intencional (hero ocupa la zona
   transparente). En todas las demás páginas hay que reservar
   espacio para que el contenido inicie debajo del nav.

   Alturas reales del nav (verificadas en producción 2026-05-12):
   - Desktop: topbar 32px + main 100px = 132px
   - Mobile (<1100px): topbar 28px + main 80px = ~108px
   =========================================================== */
body.hr-newnav-active:not(.hr-home-transparent) {
  padding-top: 132px;
}
@media (max-width: 1100px) {
  body.hr-newnav-active:not(.hr-home-transparent) {
    padding-top: 108px;
  }
}
/* Admin bar de WP suma 32px (46px en mobile). El nav ya lleva top:32px,
   pero el padding del body es independiente y debe contemplarlo también
   para que el contenido no quede tapado. */
body.admin-bar.hr-newnav-active:not(.hr-home-transparent) {
  padding-top: calc(132px + 32px);
}
@media (max-width: 1100px) {
  body.admin-bar.hr-newnav-active:not(.hr-home-transparent) {
    padding-top: calc(108px + 46px);
  }
}
/* Asegurar que el contenedor principal de Houzez no aplique su propio
   margen/padding-top que pueda duplicar el offset arriba. */
body.hr-newnav-active:not(.hr-home-transparent) #wrapper,
body.hr-newnav-active:not(.hr-home-transparent) #main-wrap,
body.hr-newnav-active:not(.hr-home-transparent) .main-wrap-content {
  margin-top: 0 !important;
}

/* CSS variables locales (escapadas para no chocar con el resto del child theme) */
.hr-nav,
.hr-nav-overlay,
.hr-nav-drawer {
  --c-primary: #186B99;
  --c-secondary: #2781AD;
  --c-gold: #ADAA97;
  --c-gold-soft: #C9C7B7;
  --c-bg-cream: #FBFAF7;
  --c-ink: #0E2A3A;
  --c-ink-soft: #4A5A66;
  --c-ink-muted: #8A95A0;
  --c-line: rgba(14,42,58,0.12);
  --c-wa: #25D366;
  --hr-gutter: clamp(20px, 4vw, 48px);
  --hr-ease: cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* ===========================================================
   HEADER PRINCIPAL
   =========================================================== */
.hr-nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  /* v1.16.10: z-index subido de 90 → 1100 para ganar sobre los sticky bars
     de Houzez (typical z-index 999) en single-property. Antes el dropdown
     se cortaba al pasar por encima de la sticky bar del precio. */
  z-index: 1100;
  transition: top 200ms var(--hr-ease), transform 500ms var(--hr-ease);
  font-family: 'Outfit', sans-serif;
  font-weight: 300;
  -webkit-font-smoothing: antialiased;
}
/* WordPress admin bar offset (solo afecta usuarios logueados — visitantes no lo ven) */
body.admin-bar .hr-nav { top: 32px; }
@media (max-width: 782px) {
  body.admin-bar .hr-nav { top: 46px; }
}
.hr-nav::before {
  content: "";
  position: absolute; inset: 0;
  background: rgba(251, 250, 247, 0.96);
  backdrop-filter: blur(18px) saturate(1.4);
  -webkit-backdrop-filter: blur(18px) saturate(1.4);
  opacity: 0;
  transition: opacity 500ms var(--hr-ease);
  z-index: -1;
  border-bottom: 1px solid var(--c-line);
}
.hr-nav.is-light::before { opacity: 1; }

/* ===== TOPBAR (utility) ===== */
.hr-nav__topbar {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  padding: 10px var(--hr-gutter);
  font-family: 'Manrope', sans-serif;
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 500;
  border-bottom: 1px solid rgba(255,255,255,0.18);
  transition: padding 400ms var(--hr-ease), border-color 500ms;
  color: rgba(255,255,255,0.75);
}
.hr-nav.is-light .hr-nav__topbar {
  color: var(--c-ink-soft);
  border-bottom-color: var(--c-line);
}
.hr-nav__topbar-l {
  display: flex;
  align-items: center;
  gap: 14px;
}
.hr-nav__topbar-l::before {
  content: "";
  width: 24px; height: 1px;
  background: currentColor;
  opacity: 0.5;
}
.hr-nav__topbar-r {
  display: flex;
  align-items: center;
  gap: 16px;
}

/* Tel link */
.hr-nav__tel {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: inherit;
  text-decoration: none;
  transition: color 500ms;
}
.hr-nav__tel:hover { color: #fff; }
.hr-nav.is-light .hr-nav__tel:hover { color: var(--c-primary); }
.hr-nav__tel svg {
  width: 11px; height: 11px;
  stroke: currentColor; fill: none;
  stroke-width: 1.6;
}
.hr-nav__tel-num {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 0.02em;
  text-transform: none;
}

/* Separador vertical */
.hr-nav__topbar-sep {
  width: 1px; height: 14px;
  background: currentColor;
  opacity: 0.3;
  display: inline-block;
}

/* Login button + dropdown */
.hr-nav__login-wrap { position: relative; }
.hr-nav__login {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: inherit;
  padding: 8px 14px;
  border: 1px solid currentColor;
  transition: all 400ms var(--hr-ease);
  font-family: 'Manrope', sans-serif;
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 600;
  /* Reset button look-alike */
  background: transparent;
  cursor: pointer;
  line-height: 1;
}
.hr-nav__login-menu .hr-login-link {
  background: transparent;
  border: 0;
  cursor: pointer;
  text-align: left;
  width: 100%;
  font: inherit;
  /* same look as <a> inside the dropdown */
  display: block;
  padding: 10px 18px;
  font-family: 'Manrope', sans-serif;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--c-ink);
  transition: background 300ms, color 300ms;
}
.hr-nav__login-menu .hr-login-link:hover {
  background: var(--c-bg-cream);
  color: var(--c-primary);
}
.hr-nav__login svg {
  width: 13px; height: 13px;
  stroke: currentColor; fill: none;
  stroke-width: 1.6;
}
.hr-nav__login:hover {
  background: #fff;
  color: var(--c-ink);
  border-color: #fff;
}
.hr-nav.is-light .hr-nav__login { border-color: var(--c-ink); }
.hr-nav.is-light .hr-nav__login:hover {
  background: var(--c-ink);
  color: #fff;
  border-color: var(--c-ink);
}

.hr-nav__login-menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  background: #fff;
  border: 1px solid var(--c-line);
  box-shadow: 0 16px 40px rgba(14,42,58,0.18);
  min-width: 220px;
  padding: 6px 0;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: all 300ms;
  pointer-events: none;
  z-index: 95;
}
/* v1.10.5: trigger por click — el JS añade .is-open al wrap */
.hr-nav__login-wrap.is-open .hr-nav__login-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}
.hr-nav__login-menu a {
  display: block;
  padding: 10px 18px;
  text-decoration: none;
  font-family: 'Manrope', sans-serif;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--c-ink);
  transition: background 300ms, color 300ms;
}
.hr-nav__login-menu a:hover {
  background: var(--c-bg-cream);
  color: var(--c-primary);
}
.hr-nav__login-menu .hr-sep {
  height: 1px;
  background: var(--c-line);
  margin: 6px 18px;
}
.hr-nav__login-menu .hr-eyebrow {
  padding: 8px 18px 4px;
  font-family: 'Manrope', sans-serif;
  font-size: 9px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--c-gold);
}

/* ===== MAIN NAV ===== */
.hr-nav__main {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  padding: 22px var(--hr-gutter);
  gap: 32px;
  transition: padding 400ms var(--hr-ease);
}
/* Shrink (padding más compacto) — independiente de is-light, se aplica al scroll.
   En home: arranca padding 22px y cambia a 14px al scrollear (.is-shrunk)
   En interiores: arranca con padding 22px también, y aplica .is-shrunk al scroll
   (también lleva .is-light desde el inicio para los colores). */
.hr-nav.is-shrunk .hr-nav__main { padding: 14px var(--hr-gutter); }

/* Logo (azul siempre, sin filter) */
.hr-nav__brand {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  color: #fff;
  transition: color 500ms;
  text-decoration: none;
  justify-self: start;
}
.hr-nav.is-light .hr-nav__brand { color: var(--c-ink); }
.hr-nav__brand img {
  width: 56px; height: 56px;
  display: block; flex-shrink: 0;
  transition: width 500ms var(--hr-ease), height 500ms var(--hr-ease);
}
.hr-nav.is-light .hr-nav__brand img { width: 48px; height: 48px; }
.hr-nav__brand-name {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 500;
  font-size: 26px;
  letter-spacing: 0.04em;
  line-height: 1.05;
  white-space: nowrap; /* evita que el texto se rompa en 2-3 líneas */
}
.hr-nav__brand-name small {
  display: block;
  font-family: 'Manrope', sans-serif;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.32em;
  color: rgba(255,255,255,0.85);
  text-transform: uppercase;
  margin-top: 5px;
  transition: color 500ms;
  white-space: nowrap;
}
.hr-nav.is-light .hr-nav__brand-name small { color: var(--c-ink-soft); }

/* Menu — v1.7.6: tipografía levemente más grande y semibold para legibilidad elegante */
.hr-nav__menu {
  display: flex;
  gap: 38px;
  font-family: 'Manrope', sans-serif;
  font-size: 12.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.95);
  font-weight: 600;
  justify-self: center;
  list-style: none;
  padding: 0; margin: 0;
}
.hr-nav.is-light .hr-nav__menu { color: var(--c-ink-soft); }
.hr-nav__menu li { position: relative; }
.hr-nav__menu a {
  transition: color 250ms;
  padding: 4px 0;
  text-decoration: none;
  color: inherit;
  /* v1.17.4: nowrap garantiza que "QUIERO VENDER MI PROPIEDAD" (u otros items
     largos) nunca se rompan en 2 líneas y hagan crecer verticalmente el header.
     Si el viewport es demasiado estrecho para que entren todos los items en
     una línea, el burger menu (≤1100 px) ya se encarga de colapsarlos. */
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
/* v1.10.8 · Variante A — chevron grueso clásico, blanco puro sobre el hero
   y heredando el ink en estado is-light. Sin opacity para que se note. */
.hr-nav__menu .menu-item-has-children > a::after {
  content: "";
  width: 9px; height: 9px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translateY(-3px);
  display: inline-block;
  margin-left: 6px;
  transition: transform 250ms var(--hr-ease);
}
.hr-nav__menu a:hover { color: var(--c-gold-soft); }
.hr-nav.is-light .hr-nav__menu a:hover { color: var(--c-primary); }

/* ============================================================
   Sub-menus · v1.15.11 "Boxed editorial" — hover + click trigger
   ============================================================
   - Caja crema redondeada (20px), sombra suave, sin moldura
   - Items en Manrope uppercase 12.5px 600 (matching el nav padre)
   - Trigger: HOVER (instant) + CLICK como fallback teclado/touch
     · :hover abre con mouse en escritorio
     · El JS sigue agregando .is-open via click para keyboard/aria-expanded
   - Aparición estilo Muvens: gap mínimo del header, fade + slide-down 8px
   - Solo escritorio — en mobile el sub-menu vive en drawer
   ============================================================ */
.hr-nav__menu .sub-menu {
  position: absolute;
  top: calc(100% - 4px);          /* v1.15.11: pegado al header (estilo Muvens) */
  left: 50%;
  transform: translateX(-50%) translateY(-8px);
  min-width: 240px;
  background: var(--c-bg-cream);
  border: 1px solid var(--c-line);
  border-radius: 20px;             /* v1.15.11: 12 → 20 (más redondeado) */
  box-shadow:
    0 30px 80px -10px rgba(14, 42, 58, 0.18),
    0 8px 24px -6px rgba(14, 42, 58, 0.06);
  padding: 28px 0;
  margin: 0;
  list-style: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 280ms var(--hr-ease), visibility 280ms, transform 280ms var(--hr-ease);
  pointer-events: none;
  z-index: 100;
}
/* Trigger HOVER (mouse) + CLICK (.is-open via JS, fallback teclado/touch) */
.hr-nav__menu li.menu-item-has-children:hover > .sub-menu,
.hr-nav__menu li.is-open > .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
  pointer-events: auto;
}
.hr-nav__menu .sub-menu li {
  display: block;
  width: 100%;
}
.hr-nav__menu .sub-menu li a {
  display: block;
  width: 100%;
  padding: 14px 32px;
  font-family: 'Manrope', sans-serif;
  font-size: 12.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 600;
  line-height: 1.4;
  color: var(--c-ink) !important;
  text-decoration: none;
  position: relative;
  transition: padding-left 350ms var(--hr-ease), color 200ms;
  white-space: nowrap;
}
/* Rayita horizontal que crece desde la izquierda al hacer hover. */
.hr-nav__menu .sub-menu li a::before {
  content: "";
  position: absolute;
  left: 32px;
  top: 23px;            /* alineada con el centro de la primera línea de texto */
  width: 0;
  height: 1.5px;
  background: currentColor;
  transition: width 350ms var(--hr-ease);
}
.hr-nav__menu .sub-menu li a:hover,
.hr-nav__menu .sub-menu li a:focus-visible {
  color: var(--c-primary) !important;
  padding-left: 60px;   /* el texto se desliza para abrirle espacio a la rayita */
}
.hr-nav__menu .sub-menu li a:hover::before,
.hr-nav__menu .sub-menu li a:focus-visible::before {
  width: 20px;
}
/* Rotar chevron cuando el dropdown está abierto (hover o click) */
.hr-nav__menu .menu-item-has-children:hover > a::after,
.hr-nav__menu .menu-item-has-children.is-open > a::after {
  /* v1.10.8: chevron 9x9 abierto — ajuste de offset para que el vértice quede centrado.
     v1.15.11: agregado :hover para que el chevron rote junto con el dropdown
     (antes solo rotaba con .is-open via click, ahora también con mouse hover). */
  transform: rotate(225deg) translateX(3px) translateY(-3px);
}
.hr-nav__menu .menu-item-has-children:hover > a,
.hr-nav__menu .menu-item-has-children.is-open > a {
  color: var(--c-primary);
}

/* Hamburger (mobile) */
/* Acciones de la barra principal — v1.28.0.
   Tercera columna del grid de .hr-nav__main: aloja el botón "Mi panel"
   (solo con sesión iniciada, ver inc/acceso-panel.php) y el burger.
   Se define aquí (y no en el CSS inline del módulo) porque el contenedor
   existe también para visitantes, que solo ven el burger. */
.hr-nav__actions {
  display: flex;
  align-items: center;
  gap: 14px;
  justify-self: end;
}
@media (max-width: 1100px) { .hr-nav__actions { gap: 10px; } }
@media (max-width: 359px)  { .hr-nav__actions { gap: 7px; } }

.hr-nav__burger {
  display: none;
  width: 44px; height: 44px;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 1px solid currentColor;
  cursor: pointer;
  color: #fff;
  transition: all 400ms;
  padding: 0;
  justify-self: end;
}
.hr-nav.is-light .hr-nav__burger { color: var(--c-ink); }
.hr-nav__burger span {
  display: block;
  width: 18px; height: 1.4px;
  background: currentColor;
  position: relative;
  transition: background 400ms;
}
.hr-nav__burger span::before,
.hr-nav__burger span::after {
  content: "";
  position: absolute;
  left: 0;
  width: 18px; height: 1.4px;
  background: currentColor;
  transition: transform 400ms;
}
.hr-nav__burger span::before { top: -6px; }
.hr-nav__burger span::after { top: 6px; }

/* Mega menu */
.hr-nav__mega {
  position: absolute;
  top: 100%; left: 0; right: 0;
  display: grid;
  grid-template-columns: 240px 1fr 360px;
  gap: 48px;
  padding: 42px var(--hr-gutter) 38px;
  background: rgba(251,250,247,0.98);
  backdrop-filter: blur(18px);
  border-bottom: 1px solid var(--c-line);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-10px);
  transition: all 400ms var(--hr-ease);
  pointer-events: none;
}
.hr-nav__menu .menu-item-has-children:hover ~ .hr-nav__mega,
.hr-nav__menu .has-mega:hover ~ .hr-nav__mega,
.hr-nav__mega:hover,
.hr-nav .hr-nav__menu:hover .menu-item-has-children:hover + .hr-nav__mega {
  /* legacy fallback selectors */
}
.hr-nav.is-mega-open .hr-nav__mega {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}
.hr-nav__mega h6 {
  font-family: 'Manrope', sans-serif;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--c-primary);
  margin: 0 0 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(173,170,151,0.4);
}
.hr-nav__mega ul { list-style: none; padding: 0; margin: 0; }
.hr-nav__mega li a {
  display: flex;
  align-items: baseline;
  gap: 14px;
  padding: 8px 0;
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-weight: 400;
  font-size: 22px;
  color: var(--c-ink);
  text-decoration: none;
  transition: transform 500ms, color 500ms;
}
.hr-nav__mega li a small {
  font-family: 'Manrope', sans-serif;
  font-style: normal;
  font-size: 10px;
  letter-spacing: 0.2em;
  color: var(--c-ink-muted);
  text-transform: uppercase;
  font-weight: 500;
}
.hr-nav__mega li a:hover { color: var(--c-primary); transform: translateX(8px); }
.hr-nav__mega-pl {
  font-family: 'Outfit', sans-serif;
  font-size: 14px;
  color: var(--c-ink-soft);
  line-height: 1.7;
  font-weight: 300;
}
.hr-nav__mega-pl strong {
  display: block;
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: 24px;
  font-weight: 500;
  color: var(--c-ink);
  margin-bottom: 10px;
}
.hr-nav__mega-feat {
  position: relative;
  background: linear-gradient(135deg, #1a3a52, #0E2A3A);
  overflow: hidden;
  min-height: 200px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  color: #fff;
}
.hr-nav__mega-feat::before {
  content: "";
  position: absolute; inset: 0;
  background: radial-gradient(circle at 70% 30%, rgba(173,170,151,0.4) 0%, transparent 50%);
}
.hr-nav__mega-feat .hr-feat-eb {
  font-family: 'Manrope', sans-serif;
  font-size: 10px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--c-gold-soft);
  font-weight: 500;
  position: relative; z-index: 1;
  margin-bottom: 8px;
}
.hr-nav__mega-feat .hr-feat-title {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: 22px;
  line-height: 1.1;
  margin-bottom: 14px;
  position: relative; z-index: 1;
}
.hr-nav__mega-feat .hr-feat-link {
  font-family: 'Manrope', sans-serif;
  font-size: 11px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #fff;
  text-decoration: none;
  border-bottom: 1px solid var(--c-gold-soft);
  padding-bottom: 6px;
  align-self: flex-start;
  position: relative; z-index: 1;
}

/* v1.17.3 · Breakpoint INTERMEDIO 1100-1280px
   ============================================================
   Entre estos anchos el menú desktop sigue visible (no burger),
   pero el layout estaba cramped: 7 items + chevrones + "QUIERO
   VENDER MI PROPIEDAD" se montaban sobre el brand. Comprimimos
   tipografía + gap del nav para que respire sin colapsar.
   ============================================================ */
@media (min-width: 1101px) and (max-width: 1280px) {
  .hr-nav__main { gap: 20px; }
  .hr-nav__menu > li > a {
    padding: 18px 14px;
    font-size: 11px;
    letter-spacing: 0.14em;
  }
  /* chevron un toque más chico para no robar espacio */
  .hr-nav__menu .menu-item-has-children > a::after {
    width: 8px; height: 8px; margin-left: 4px;
  }
  /* brand-name un poco más compacto */
  .hr-nav__brand-name { font-size: 19px; }
  .hr-nav__brand-name small { font-size: 7.5px; letter-spacing: 0.28em; }
}

/* Mobile breakpoint */
@media (max-width: 1100px) {
  .hr-nav__topbar-l { display: none; }
  .hr-nav__topbar { padding: 6px var(--hr-gutter); gap: 8px; }
  .hr-nav__topbar-r { gap: 10px; }
  .hr-nav__tel-num,
  .hr-nav__login { display: none; }
  .hr-nav__menu { display: none; }
  .hr-nav__main {
    grid-template-columns: auto 1fr auto;
    gap: 14px;
    padding: 12px var(--hr-gutter);
  }
  /* v1.10.7: logo más pequeño en mobile + tipografía proporcional para evitar
     que el header se vea apretado y eliminar el flash de "logo deformado"
     durante la carga (el ::aspect-ratio bloquea el layout shift).
     v1.14.4: aumentado el logo móvil 38→52 (~+37%) para mejor reconocimiento
     de marca en touch devices. Tipografía del brand-name también escala. */
  .hr-nav__brand { gap: 12px; }
  .hr-nav__brand img,
  .hr-nav.is-light .hr-nav__brand img {
    width: 52px;
    height: 52px;
    aspect-ratio: 1 / 1;
    object-fit: contain;
  }
  .hr-nav__brand-name { font-size: 19px; line-height: 1.1; }
  .hr-nav__brand-name small {
    font-size: 8px;
    letter-spacing: 0.26em;
    margin-top: 2px;
  }
  /* Cuando hace scroll en mobile, achicar un poco (no tanto como antes) */
  .hr-nav.is-shrunk .hr-nav__main { padding: 8px var(--hr-gutter); }
  .hr-nav.is-shrunk .hr-nav__brand img,
  .hr-nav.is-light.is-shrunk .hr-nav__brand img {
    width: 44px;
    height: 44px;
  }
  .hr-nav__burger { display: inline-flex; width: 40px; height: 40px; }
}
@media (max-width: 480px) {
  /* En pantallas muy pequeñas, ocultar el texto de marca y dejar solo el logo.
     El hamburger queda libre y el header respira.
     v1.14.4: logo agrandado 36→48 ahora que es la única pieza visible de marca. */
  .hr-nav__brand-name { display: none; }
  .hr-nav__brand img,
  .hr-nav.is-light .hr-nav__brand img { width: 48px; height: 48px; }
}

/* ===========================================================
   DRAWER MÓVIL
   =========================================================== */
.hr-nav-overlay {
  position: fixed; inset: 0;
  z-index: 100;
  background: rgba(14,42,58,0.55);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
  opacity: 0;
  visibility: hidden;
  transition: opacity 400ms var(--hr-ease), visibility 400ms;
}
.hr-nav-overlay.is-open {
  opacity: 1;
  visibility: visible;
}

.hr-nav-drawer {
  position: fixed;
  top: 0; left: 0; bottom: 0;
  z-index: 110;
  width: 88%;
  max-width: 380px;
  background: #fff;
  display: flex;
  flex-direction: column;
  box-shadow: 0 0 60px rgba(0,0,0,0.3);
  transform: translateX(-100%);
  transition: transform 500ms var(--hr-ease);
  overflow: hidden;
  font-family: 'Outfit', sans-serif;
}
.hr-nav-drawer.is-open { transform: translateX(0); }

.hr-nav-drawer__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 22px 16px;
  border-bottom: 1px solid rgba(173,170,151,0.35);
  background: var(--c-bg-cream);
}
.hr-nav-drawer__logo {
  display: flex; align-items: center; gap: 10px;
  text-decoration: none;
}
.hr-nav-drawer__logo img { width: 34px; height: 34px; display: block; }
.hr-nav-drawer__logo-txt {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 0.16em;
  color: var(--c-ink);
  line-height: 1;
}
.hr-nav-drawer__logo-txt small {
  display: block;
  font-family: 'Manrope', sans-serif;
  font-size: 7px;
  letter-spacing: 0.36em;
  color: var(--c-ink-soft);
  font-weight: 600;
  margin-top: 3px;
}
.hr-nav-drawer__close {
  width: 36px; height: 36px;
  border: 1px solid var(--c-ink);
  background: transparent;
  display: grid;
  place-items: center;
  cursor: pointer;
}
.hr-nav-drawer__close svg {
  width: 12px; height: 12px;
  stroke: var(--c-ink); fill: none;
  stroke-width: 1.5;
}

.hr-nav-drawer__list {
  list-style: none;
  flex: 1;
  overflow-y: auto;
  padding: 6px 0;
  background: #fff;
  margin: 0;
}
.hr-nav-drawer__list > li {
  border-bottom: 1px solid rgba(173,170,151,0.25);
}
.hr-nav-drawer__list > li:last-child { border-bottom: 0; }
.hr-nav-drawer__list > li > a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 22px;
  text-decoration: none;
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-weight: 400;
  font-size: 22px;
  color: var(--c-ink);
  line-height: 1.1;
  transition: background 400ms, padding-left 400ms var(--hr-ease);
}
.hr-nav-drawer__list > li > a::after {
  content: "›";
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: 22px;
  color: var(--c-gold);
  font-weight: 300;
  transition: transform 400ms var(--hr-ease), color 400ms;
}
.hr-nav-drawer__list > li > a:hover,
.hr-nav-drawer__list > li > a:focus-visible {
  background: var(--c-bg-cream);
  padding-left: 28px;
}
.hr-nav-drawer__list > li > a:hover::after,
.hr-nav-drawer__list > li > a:focus-visible::after {
  transform: translateX(4px);
  color: var(--c-primary);
}

/* Acordeón HTML5 dentro del drawer */
.hr-nav-drawer__list details summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 22px;
  cursor: pointer;
  list-style: none;
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-weight: 400;
  font-size: 22px;
  color: var(--c-ink);
  line-height: 1.1;
  transition: background 400ms;
}
.hr-nav-drawer__list details summary::-webkit-details-marker { display: none; }
.hr-nav-drawer__list details summary::after {
  content: "+";
  font-family: 'Manrope', sans-serif;
  font-size: 24px;
  color: var(--c-primary);
  font-weight: 300;
  line-height: 1;
  transition: transform 400ms var(--hr-ease);
}
.hr-nav-drawer__list details[open] summary::after { content: "−"; }
.hr-nav-drawer__sublist {
  list-style: none;
  /* v1.14.5: padding-left del UL queda en 0. Houzez parent pisa el padding
     de los <ul> con su propio reset, por eso movemos la sangría al <a>
     (que es más fácil controlar y queda alineado con los items principales). */
  padding: 4px 0 14px 0 !important;
  background: var(--c-bg-cream);
  border-top: 1px solid rgba(173,170,151,0.25);
  margin: 0;
}
.hr-nav-drawer__sublist li a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  /* v1.14.5: padding-left 22px = mismo que los items principales del drawer,
     para que los sub-items se alineen visualmente con su padre. */
  padding: 10px 22px;
  text-decoration: none;
  font-family: 'Outfit', sans-serif;
  font-size: 14px;
  font-weight: 400;
  color: var(--c-ink-soft);
  letter-spacing: 0.02em;
  transition: color 400ms, padding-left 400ms;
}
.hr-nav-drawer__sublist li a small {
  font-family: 'Manrope', sans-serif;
  font-size: 9.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--c-gold);
  font-weight: 600;
}
.hr-nav-drawer__sublist li a:hover {
  color: var(--c-primary);
  padding-left: 28px; /* desplaza 6 px en hover para feedback */
}

/* Drawer footer */
.hr-nav-drawer__foot {
  background: var(--c-bg-cream);
  border-top: 1px solid rgba(173,170,151,0.35);
  padding: 16px 22px 20px;
}
.hr-nav-drawer__foot-util {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-bottom: 14px;
}
.hr-nav-drawer__foot-util a {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 0;
  text-decoration: none;
  font-family: 'Manrope', sans-serif;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--c-ink);
  transition: color 400ms;
}
.hr-nav-drawer__foot-util a svg {
  width: 16px; height: 16px;
  stroke: var(--c-primary); fill: none;
  stroke-width: 1.5;
  flex-shrink: 0;
}
.hr-nav-drawer__foot-util a strong {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-weight: 500;
  font-size: 15px;
  letter-spacing: 0;
  text-transform: none;
  color: var(--c-primary);
  margin-left: auto;
}
.hr-nav-drawer__foot-ctas {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 8px;
}
.hr-nav-drawer__foot-ctas a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: 'Manrope', sans-serif;
  font-size: 10px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  font-weight: 600;
  padding: 14px 12px;
  text-decoration: none;
  transition: opacity 400ms;
}
.hr-nav-drawer__foot-ctas a:hover { opacity: 0.9; }
.hr-nav-drawer__foot-ctas .hr-cta-wa { background: var(--c-wa); color: #fff; }
.hr-nav-drawer__foot-ctas .hr-cta-wa svg { width: 14px; height: 14px; fill: #fff; }
.hr-nav-drawer__foot-ctas .hr-cta-primary { background: var(--c-ink); color: #fff; }

/* Body lock cuando drawer abierto */
body.hr-drawer-open { overflow: hidden; }


/* ==========================================================================
   FOOTER PREMIUM HORIZONS · v1.12.0
   Reemplaza el footer del padre Houzez globalmente excepto en dashboards.
   Markup: template-parts/footer-horizons.php · Override: footer.php (raíz)
   Scope: .hz-site-footer (no colisiona con .hz-footer legacy de mockups)
   ========================================================================== */

/* --- Tokens locales (alias a Brand System v1.1) --- */
.hz-site-footer {
  --hzf-primary:    #186B99;
  --hzf-secondary:  #2781AD;
  --hzf-gold:       #ADAA97;
  --hzf-deep:       #0E2A3A;
  --hzf-deeper:     #081C29;
  --hzf-on-deep:    #FFFFFF;
  --hzf-on-soft:    rgba(255,255,255,0.78);
  --hzf-on-mute:    rgba(255,255,255,0.55);
  --hzf-line:       rgba(255,255,255,0.10);
  --hzf-wa:         #25D366;

  background: var(--hzf-deep);
  color: var(--hzf-on-soft);
  /* Sin padding lateral aquí: el padding vive en .hz-site-footer__inner
     y en .hz-site-footer__legal por separado, para que el fondo más oscuro
     del legal pueda extenderse edge-to-edge en cualquier viewport. */
  padding: 56px 0 0;
  position: relative;
  font-family: 'Outfit', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 17px;
  font-weight: 300;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.hz-site-footer * { box-sizing: border-box; }
.hz-site-footer a { color: inherit; text-decoration: none; }
.hz-site-footer :focus-visible { outline: 2px solid var(--hzf-primary); outline-offset: 3px; }
.hz-site-footer__inner {
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 28px;
}

/* visually-hidden helper para labels de form */
.hz-sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* --- Top block: brand signature + sitemap --- */
.hz-site-footer__top {
  display: grid;
  grid-template-columns: 1fr;
  gap: 48px;
  padding-bottom: 48px;
  border-bottom: 1px solid var(--hzf-line);
}
.hz-site-footer__brand {
  max-width: 480px;
  display: flex;
  flex-direction: column;
  gap: 32px;
}
.hz-site-footer__signature {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-style: italic;
  font-weight: 400;
  font-size: clamp(22px, 2.2vw, 30px);
  line-height: 1.3;
  letter-spacing: -0.005em;
  color: var(--hzf-on-deep);
  position: relative;
  padding-top: 20px;
  margin: 0;
}
.hz-site-footer__signature::before {
  content: ""; position: absolute; top: 0; left: 0;
  width: 40px; height: 1px; background: var(--hzf-gold);
}
.hz-site-footer__signature em {
  font-style: italic; color: var(--hzf-gold); font-weight: 500;
}
.hz-site-footer__social {
  display: flex; gap: 12px;
}
.hz-site-footer__social a {
  width: 40px; height: 40px;
  border: 1px solid var(--hzf-line);
  display: inline-flex; align-items: center; justify-content: center;
  transition: border-color 0.25s, background 0.25s;
}
.hz-site-footer__social a:hover {
  border-color: var(--hzf-gold);
  background: rgba(173,170,151,0.08);
}
.hz-site-footer__social svg {
  width: 16px; height: 16px; fill: var(--hzf-on-soft);
  transition: fill 0.25s;
}
.hz-site-footer__social a:hover svg { fill: var(--hzf-gold); }

.hz-site-footer__nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px 24px;
}
.hz-site-footer__col h4 {
  font-family: 'Manrope', sans-serif;
  font-size: 11px; letter-spacing: 0.24em; text-transform: uppercase;
  color: var(--hzf-gold); font-weight: 600;
  margin: 0 0 22px;
}
.hz-site-footer__col ul {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-direction: column; gap: 12px;
}
.hz-site-footer__col li { line-height: 1.55; }
.hz-site-footer__col li a {
  color: var(--hzf-on-soft); font-size: 15px; font-weight: 300;
  transition: color 0.2s, transform 0.2s;
  display: inline-block;
}
.hz-site-footer__col li a:hover {
  color: var(--hzf-on-deep); transform: translateX(2px);
}

/* --- Middle block: cobertura · oficina · insights --- */
.hz-site-footer__mid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 48px;
  padding: 48px 0;
  border-bottom: 1px solid var(--hzf-line);
}
.hz-site-footer__mid h4 {
  font-family: 'Manrope', sans-serif;
  font-size: 11px; letter-spacing: 0.24em; text-transform: uppercase;
  color: var(--hzf-gold); font-weight: 600;
  margin: 0 0 18px;
}
.hz-site-footer__zonas-list {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 8px 20px;
}
.hz-site-footer__zonas-list li { line-height: 1.5; }
.hz-site-footer__zonas-list a {
  font-size: 14px; color: var(--hzf-on-soft); font-weight: 300;
  display: inline-flex; align-items: center; gap: 8px;
  transition: color 0.2s, transform 0.2s;
}
.hz-site-footer__zonas-list a::before {
  content: ""; width: 8px; height: 1px; background: var(--hzf-gold);
  display: inline-block; transition: width 0.25s;
}
.hz-site-footer__zonas-list a:hover { color: var(--hzf-on-deep); }
.hz-site-footer__zonas-list a:hover::before { width: 14px; }
.hz-site-footer__zonas-cta {
  display: inline-flex; align-items: center; gap: 8px;
  margin-top: 18px;
  font-family: 'Manrope', sans-serif;
  font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--hzf-on-deep); font-weight: 600;
  border-bottom: 1px solid var(--hzf-gold);
  padding-bottom: 4px;
  transition: gap 0.25s, color 0.25s;
}
.hz-site-footer__zonas-cta:hover { gap: 14px; color: var(--hzf-gold); }

.hz-site-footer__office-title {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 20px; font-weight: 400; color: var(--hzf-on-deep);
  margin: 0 0 4px; line-height: 1.2;
}
.hz-site-footer__office-address {
  font-size: 14px; color: var(--hzf-on-soft);
  line-height: 1.55; margin: 0 0 16px;
}
.hz-site-footer__office-list {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-direction: column; gap: 8px;
}
.hz-site-footer__office-list a {
  font-size: 14px; color: var(--hzf-on-soft); font-weight: 300;
  display: inline-flex; align-items: center; gap: 10px;
  transition: color 0.2s;
}
.hz-site-footer__office-list a:hover { color: var(--hzf-on-deep); }
.hz-site-footer__office-list svg {
  width: 14px; height: 14px;
  stroke: var(--hzf-gold); stroke-width: 1.5; fill: none;
  flex-shrink: 0;
}
.hz-site-footer__office-hours {
  margin-top: 16px; padding-top: 16px;
  border-top: 1px dashed var(--hzf-line);
  font-size: 12px; color: var(--hzf-on-mute);
  line-height: 1.55; letter-spacing: 0.02em;
}
.hz-site-footer__office-hours strong {
  color: var(--hzf-on-soft); font-weight: 500;
}

.hz-site-footer__news-title {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 22px; font-weight: 400;
  color: var(--hzf-on-deep);
  line-height: 1.2; margin: 0 0 8px;
}
.hz-site-footer__news-title em {
  font-style: italic; color: var(--hzf-gold); font-weight: 500;
}
.hz-site-footer__news-copy {
  font-size: 14px; color: var(--hzf-on-soft);
  font-weight: 300; line-height: 1.6;
  margin: 0 0 18px;
}
.hz-site-footer__news-form {
  display: flex; flex-direction: column; gap: 10px;
}
.hz-site-footer__news-input {
  background: rgba(255,255,255,0.04);
  border: 1px solid var(--hzf-line);
  color: var(--hzf-on-deep);
  font-family: 'Outfit', sans-serif;
  font-size: 14px; font-weight: 300;
  padding: 13px 16px; width: 100%;
  transition: border-color 0.25s, background 0.25s;
}
.hz-site-footer__news-input::placeholder { color: var(--hzf-on-mute); }
.hz-site-footer__news-input:focus {
  outline: none;
  border-color: var(--hzf-gold);
  background: rgba(255,255,255,0.06);
}
.hz-site-footer__news-submit {
  background: var(--hzf-primary); color: #FFFFFF;
  border: 0; padding: 13px 20px;
  font-family: 'Manrope', sans-serif;
  font-size: 11px; letter-spacing: 0.20em; text-transform: uppercase;
  font-weight: 600; cursor: pointer;
  transition: background 0.25s, transform 0.25s;
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
}
.hz-site-footer__news-submit:hover { background: var(--hzf-secondary); }
.hz-site-footer__news-submit:disabled { opacity: 0.6; cursor: progress; }
.hz-site-footer__news-status {
  font-size: 12px; min-height: 1.2em;
  color: var(--hzf-on-soft); margin: 4px 0 0;
}
.hz-site-footer__news-status.is-error { color: #ffb4b4; }
.hz-site-footer__news-status.is-success { color: #b4ffd1; }
.hz-site-footer__news-legal {
  font-size: 10px; color: var(--hzf-on-mute);
  font-weight: 300; line-height: 1.55;
  margin: 4px 0 0; letter-spacing: 0.01em;
}
.hz-site-footer__news-legal a {
  color: var(--hzf-on-soft);
  text-decoration: underline;
  text-decoration-color: var(--hzf-line);
  text-underline-offset: 3px;
}
.hz-site-footer__news-legal a:hover { color: var(--hzf-on-deep); }

/* --- Trust strip --- */
.hz-site-footer__trust {
  display: flex; flex-wrap: wrap;
  gap: 10px 24px;
  padding: 22px 0;
  border-bottom: 1px solid var(--hzf-line);
  font-family: 'Manrope', sans-serif;
  font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--hzf-on-mute); font-weight: 500;
}
.hz-site-footer__trust span {
  display: inline-flex; align-items: center; gap: 8px;
}
.hz-site-footer__trust span::before {
  content: ""; width: 5px; height: 5px;
  background: var(--hzf-gold); border-radius: 50%;
  display: inline-block;
}

/* --- Legal row · sibling directo de .hz-site-footer → full-bleed natural --- */
.hz-site-footer__legal {
  background: var(--hzf-deeper);
  padding: 40px 28px;
  /* margin-top: queda 0; el border-bottom del trust strip ya separa visualmente */
}
.hz-site-footer__legal-inner {
  max-width: 1440px; margin: 0 auto;
  display: flex; flex-direction: column; gap: 22px;
}
/* min-width: 0 desbloquea el shrinking del flex item para que el tagline
   wrappee correctamente en lugar de overflow horizontal */
.hz-site-footer__legal-text { min-width: 0; }
.hz-site-footer__legal-row {
  display: flex; flex-wrap: wrap;
  gap: 20px 32px; align-items: center;
}
.hz-site-footer__legal-row a {
  font-family: 'Manrope', sans-serif;
  font-size: 13px; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--hzf-on-soft); font-weight: 500;
  transition: color 0.2s;
}
.hz-site-footer__legal-row a:hover { color: var(--hzf-on-deep); }
.hz-site-footer__legal-copyright {
  font-family: 'Manrope', sans-serif;
  font-size: 13px; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--hzf-on-soft); font-weight: 500;
  line-height: 1.6; margin: 0 0 6px;
}
.hz-site-footer__legal-copyright strong {
  color: var(--hzf-on-deep); font-weight: 700;
}
.hz-site-footer__legal-tagline {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-style: italic; font-size: 16px;
  color: var(--hzf-on-soft);
  line-height: 1.5; margin: 0;
  max-width: 620px;
}

/* --- Breakpoints --- */
@media (min-width: 700px) {
  .hz-site-footer__nav {
    grid-template-columns: repeat(4, 1fr);
    gap: 32px 28px;
  }
  .hz-site-footer__mid {
    grid-template-columns: 1.3fr 1fr 1.2fr;
    gap: 56px;
  }
  .hz-site-footer__legal-inner {
    flex-direction: row; justify-content: space-between; align-items: center;
  }
}
@media (min-width: 1024px) {
  .hz-site-footer { padding: 72px 0 0; }
  .hz-site-footer__inner { padding: 0 48px; }
  .hz-site-footer__legal { padding: 36px 48px; }
  .hz-site-footer__top {
    grid-template-columns: 1.3fr 2fr;
    gap: 72px;
  }
  .hz-site-footer__mid { padding: 56px 0; }
}



/* ============================================================================
   HOMEPAGE v1.13.3 — Editorial homepage redesign (scoped fix)
   ----------------------------------------------------------------------------
   v1.13.3 (2026-05-27):
     - Regenerated with Python-based scoping (covers inline rules + multi-line)
     - 0 selectores sin scope (vs 32 en v1.13.2 que se aplicaban globalmente)
     - Zone card paths corregidos: assets/zonas/{slug}.jpeg (eran imagenes-vender/zonas/*.jpg path local del prototipo)
   ----------------------------------------------------------------------------
   All selectors below are scoped to .hz-page--home (applied to <body>
   by functions.php filter when on the homepage).
   Variables prefixed with --hr-* are local to the homepage scope.
   ----------------------------------------------------------------------------
   Migrated from home-PROTOTIPO-DISENO.html (Sprint 1 prototype).
   Component partials: template-parts/property/card.php (.hz-card global)
   JS: assets/js/hr-home.js (enqueued conditionally on homepage)
   ============================================================================ */

/* ============================================================
   HORIZONS REALTY · / (Home v5)
   Premium corporativo · Brand System v1.1
   ============================================================ */
.hz-page--home {
  --hr-primary: #186B99;
  --hr-secondary: #2781AD;
  --hr-gold: #ADAA97;
  --hr-accent: #E4E4E4;
  --hr-bg-light: #F2F6F8;

  --bg: #FBFAF7;
  --bg-soft: #F2F6F8;
  --bg-cream: #EFE9DC;
  --bg-deep: #0E2A3A;
  --bg-deeper: #061319;
  --bg-ink: #0A1B26;

  --ink: #0E2A3A;
  --ink-soft: #4A5A66;
  --ink-mute: #8B95A0;
  --line: rgba(14,42,58,0.12);
  --line-strong: rgba(14,42,58,0.22);
  --line-dark: rgba(255,255,255,0.14);

  --success: #25D366;

  --serif: 'Cormorant Garamond', Georgia, serif;
  --sans: 'Outfit', -apple-system, system-ui, sans-serif;
  --mono: 'Manrope', sans-serif;

  --gutter: clamp(20px, 4vw, 56px);
  --max: 1440px;
  --max-wide: 1600px;

  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-soft: cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.hz-page--home *, .hz-page--home *::before, .hz-page--home *::after { box-sizing: border-box; margin: 0; padding: 0; }
.hz-page--home { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

.hz-page--home {
  font-family: var(--sans);
  background: var(--bg);
  color: var(--ink);
  line-height: 1.6;
  font-size: 16px;
  font-weight: 300;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
  font-feature-settings: "liga" 1, "kern" 1, "calt" 1;
}
.hz-page--home img, .hz-page--home video { max-width: 100%; display: block; }
.hz-page--home a { color: inherit; text-decoration: none; }
.hz-page--home button { font-family: inherit; cursor: pointer; border: none; background: none; }

.hz-page--home .serif { font-family: var(--serif); letter-spacing: -0.012em; }
.hz-page--home .serif em { font-style: italic; font-weight: inherit; }

.hz-page--home ::selection { background: var(--hr-gold); color: var(--bg-deep); }

.hz-page--home .scroll-progress {
  position: fixed; top: 0; left: 0;
  height: 2px; width: 0%;
  background: var(--hr-gold);
  z-index: 1000;
  transition: width 0.05s linear;
  pointer-events: none;
}

/* ============================================================
   NAV
   ============================================================ */
.hz-page--home .nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 90;
  padding: 24px var(--gutter);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 32px;
  transition: padding 0.4s var(--ease-soft);
}
.hz-page--home .nav::before {
  content: '';
  position: absolute; inset: 0;
  background: rgba(251,250,247,0.94);
  backdrop-filter: blur(18px) saturate(1.4);
  -webkit-backdrop-filter: blur(18px) saturate(1.4);
  opacity: 0;
  transition: opacity 0.4s;
  z-index: -1;
  border-bottom: 1px solid var(--line);
}
.hz-page--home .nav.is-light::before { opacity: 1; }
.hz-page--home .nav.is-light { padding: 14px var(--gutter); }
.hz-page--home .nav__brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: #FFFFFF;
  transition: color 0.4s;
}
.hz-page--home .nav.is-light .nav__brand { color: var(--ink); }
.hz-page--home .nav__brand-mark {
  width: 32px; height: 32px;
  border-radius: 50%;
  background: var(--hr-primary);
  color: #FFFFFF;
  display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--serif);
  font-weight: 600;
  font-size: 16px;
  letter-spacing: -0.04em;
}
.hz-page--home .nav__brand-name {
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 500;
  letter-spacing: 0.012em;
}
.hz-page--home .nav__menu {
  display: flex;
  gap: 36px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.92);
  font-weight: 500;
  justify-self: center;
}
.hz-page--home .nav.is-light .nav__menu { color: var(--ink-soft); }
.hz-page--home .nav__menu a { transition: color 0.25s; position: relative; padding: 4px 0; }
.hz-page--home .nav__menu a:hover { color: var(--hr-gold); }
.hz-page--home .nav.is-light .nav__menu a:hover { color: var(--hr-primary); }
.hz-page--home .nav__cta {
  justify-self: end;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.20em;
  text-transform: uppercase;
  font-weight: 600;
  color: #FFFFFF;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 22px;
  border: 1px solid rgba(255,255,255,0.5);
  transition: background 0.3s, color 0.3s, border-color 0.3s;
}
.hz-page--home .nav__cta:hover { background: #FFFFFF; color: var(--ink); border-color: #FFFFFF; }
.hz-page--home .nav.is-light .nav__cta { color: var(--ink); border-color: var(--ink); }
.hz-page--home .nav.is-light .nav__cta:hover { background: var(--ink); color: #FFFFFF; }
@media (max-width: 900px) {
  .hz-page--home .nav { grid-template-columns: 1fr auto; gap: 16px; }
  .hz-page--home .nav__menu { display: none; }
}

/* ============================================================
   1 · HERO
   ============================================================ */
.hz-page--home .hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  isolation: isolate;
  color: #FFFFFF;
  padding: clamp(120px, 14vh, 160px) var(--gutter) clamp(80px, 10vh, 120px);
  text-align: center;
}
.hz-page--home .hero__video {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  z-index: -3;
  filter: saturate(0.78) contrast(1.06) brightness(0.78);
}
.hz-page--home .hero__overlay {
  position: absolute; inset: 0;
  z-index: -2;
  background:
    radial-gradient(ellipse 80% 60% at 25% 80%, rgba(6,19,25,0.58) 0%, rgba(6,19,25,0) 65%),
    linear-gradient(180deg, rgba(6,19,25,0.55) 0%, rgba(6,19,25,0.15) 35%, rgba(6,19,25,0.92) 100%);
}
.hz-page--home .hero__grain {
  position: absolute; inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: 0.4;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.92' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.06 0 0 0 0 0.16 0 0 0 0 0.22 0 0 0 0.55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  mix-blend-mode: overlay;
}
.hz-page--home .hero__inner {
  position: relative;
  width: 100%;
  max-width: 1080px;
  margin: 0 auto;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.hz-page--home .hero__supertitle {
  display: block;
  font-family: var(--serif);
  font-style: italic;
  font-weight: 300;
  font-size: clamp(56px, 8.5vw, 128px);
  line-height: 0.88;
  letter-spacing: -0.030em;
  color: var(--hr-gold);
  margin-bottom: 24px;
  text-shadow: 0 4px 28px rgba(0,0,0,0.45);
  opacity: 0.95;
  animation: lineUpSlow 1.2s var(--ease-out) both;
}
@keyframes lineUpSlow {
  from { opacity: 0; transform: translateY(40px); }
  to { opacity: 0.92; transform: translateY(0); }
}
.hz-page--home .hero__eyebrow {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.78);
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 28px;
}
.hz-page--home .hero__eyebrow::before, .hz-page--home .hero__eyebrow::after { content:''; width: 32px; height: 1px; background: var(--hr-gold); }
.hz-page--home .hero__title {
  font-family: var(--serif);
  font-size: clamp(40px, 6vw, 88px);
  line-height: 1;
  font-weight: 300;
  letter-spacing: -0.018em;
  color: #FFFFFF;
  max-width: 20ch;
  margin: 0 auto 40px;
}
.hz-page--home .hero__title .ln { display: block; overflow: hidden; padding-bottom: 0.05em; }
.hz-page--home .hero__title .ln > span {
  display: inline-block;
  transform: translateY(105%);
  animation: lineUp 1.2s var(--ease-out) forwards;
}
.hz-page--home .hero__title .ln:nth-child(2) > span { animation-delay: 0.18s; }
.hz-page--home .hero__title .ln:nth-child(3) > span { animation-delay: 0.36s; }
.hz-page--home .hero__title em { font-style: italic; color: var(--hr-gold); font-weight: 300; }
@keyframes lineUp { to { transform: translateY(0); } }
.hz-page--home .hero__cta-row {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  justify-content: center;
  margin-top: 8px;
  animation: fadeIn 1s var(--ease-out) 0.6s both;
}
@keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }

.hz-page--home .btn {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 15px 28px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.20em;
  text-transform: uppercase;
  font-weight: 600;
  border: 1px solid transparent;
  transition: background 0.3s, color 0.3s, border-color 0.3s;
}
.hz-page--home .btn svg { width: 14px; height: 14px; }
.hz-page--home .btn--primary { background: var(--hr-primary); color: #FFFFFF; border-color: var(--hr-primary); }
.hz-page--home .btn--primary:hover { background: var(--hr-secondary); border-color: var(--hr-secondary); }
.hz-page--home .btn--ghost-light { background: transparent; color: #FFFFFF; border-color: rgba(255,255,255,0.5); }
.hz-page--home .btn--ghost-light:hover { background: #FFFFFF; color: var(--ink); border-color: #FFFFFF; }
.hz-page--home .btn--ghost-dark { background: transparent; color: var(--ink); border-color: var(--ink); }
.hz-page--home .btn--ghost-dark:hover { background: var(--ink); color: #FFFFFF; }
.hz-page--home .btn--on-deep { background: #FFFFFF; color: var(--ink); border-color: #FFFFFF; }
.hz-page--home .btn--on-deep:hover { background: transparent; color: #FFFFFF; border-color: #FFFFFF; }
.hz-page--home .btn--wa { background: var(--success); color: #FFFFFF; border-color: var(--success); }
.hz-page--home .btn--wa:hover { background: #1cb957; border-color: #1cb957; }

@media (prefers-reduced-motion: reduce) {
  .hz-page--home .hero__video { display: none; }
  .hz-page--home .hero { background: var(--bg-deep) url('https://images.unsplash.com/photo-1564013799919-ab600027ffc6?auto=format&fit=crop&w=1920&q=85') center/cover no-repeat; }
  .hz-page--home .hero__title .ln > span { transform: none; animation: none; }
  .hz-page--home .hero__cta-row { animation: none; opacity: 1; transform: none; }
}

/* ============================================================
   2 · SEARCH BAND PREMIUM v2
   Pestañas dominantes · todo visible · sin contadores
   ============================================================ */
.hz-page--home .search-band {
  position: relative;
  margin: 8px auto 24px;
  width: 100%;
  max-width: 860px;   /* v1.13.23: Opción B (-25% del original 1080px) */
  padding: 0;
  z-index: 10;
}
.hz-page--home .search-band__card {
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 14px;   /* v1.13.23: 20 → 14 px (proporción Opción B) */
  overflow: hidden;
  text-align: left;
  box-shadow:
    0 1px 2px rgba(14,42,58,0.06),
    0 14px 36px rgba(14,42,58,0.18),
    0 60px 120px -40px rgba(0,0,0,0.55);
}

/* ===== Pills · botones individuales separados, .hz-page--home premium ===== */
.hz-page--home .search-band__pills {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 18px;
  padding: 0;
  background: transparent;
  border: none;
  position: relative;
}
.hz-page--home .search-band__pill {
  position: relative;
  font-family: var(--mono);
  /* v1.13.23: Opción B (-25%) — pill compacto */
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 700;
  color: rgba(255,255,255,0.85);
  padding: 10px 22px;
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 8px;
  background: rgba(14,42,58,0.38);
  backdrop-filter: blur(20px) saturate(1.3);
  -webkit-backdrop-filter: blur(20px) saturate(1.3);
  cursor: pointer;
  transition: background 0.35s var(--ease-out), color 0.35s, border-color 0.35s, transform 0.3s, box-shadow 0.35s;
  box-shadow: 0 8px 24px -16px rgba(0,0,0,0.45);
}
.hz-page--home .search-band__pill:hover {
  color: #FFFFFF;
  background: rgba(14,42,58,0.55);
  border-color: rgba(255,255,255,0.32);
  transform: translateY(-1px);
  box-shadow: 0 12px 28px -14px rgba(0,0,0,0.55);
}
.hz-page--home .search-band__pill.is-active {
  color: var(--hr-primary);
  background: var(--bg);
  border-color: var(--bg);
  box-shadow:
    0 1px 2px rgba(14,42,58,0.10),
    0 12px 28px -10px rgba(14,42,58,0.30);
}
.hz-page--home .search-band__pill.is-active:hover {
  color: var(--hr-primary);
  background: var(--bg);
  transform: translateY(-1px);
}
@media (max-width: 700px) {
  /* v1.13.24: Mobile M1 — search bar 88% del viewport (era M2 80% en v1.13.23) */
  .hz-page--home .search-band { width: 88%; max-width: 100%; }
  .hz-page--home .search-band__pills { gap: 5px; margin-bottom: 10px; }
  .hz-page--home .search-band__pill { padding: 8px 16px; font-size: 9.5px; letter-spacing: 0.18em; }

  /* v1.13.24: Hero mobile T2 — H1 mucho más pequeño + search bar más arriba.
     Reduce el peso visual del texto para que el video respire y el search
     bar gane presencia (sube ~14 px). */
  .hz-page--home .hero {
    padding: clamp(72px, 11vh, 96px) var(--gutter) clamp(48px, 8vh, 80px);
  }
  .hz-page--home .hero__supertitle {
    font-size: clamp(40px, 12vw, 64px);   /* 56-128 → 40-64 */
    margin-bottom: 12px;                   /* 24 → 12 */
  }
  .hz-page--home .hero__eyebrow {
    font-size: 9px;                        /* 11 → 9 */
    letter-spacing: 0.28em;
    gap: 10px;
    margin-bottom: 14px;                   /* 28 → 14 */
  }
  .hz-page--home .hero__eyebrow::before,
  .hz-page--home .hero__eyebrow::after { width: 20px; }
  .hz-page--home .hero__title {
    font-size: clamp(20px, 4.5vw, 28px);   /* 40-88 → 20-28 (T2 -33%) */
    line-height: 1.05;
    margin: 0 auto 18px;                   /* 40 → 18 */
    max-width: 24ch;
  }
}

/* ===== Main row · 4 columnas horizontales ===== */
.hz-page--home .search-band__main {
  display: grid;
  grid-template-columns: 1.3fr 1fr 1fr 0.85fr;
  gap: 0;
  border-bottom: 1px solid var(--line);
}
.hz-page--home .search-band__field {
  /* v1.13.23: Opción B (-25%) — padding más compacto */
  padding: 13px 18px;
  border-right: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  position: relative;
}
.hz-page--home .search-band__main .search-band__field:last-of-type { border-right: none; }
.hz-page--home .search-band__field label {
  font-family: var(--mono);
  /* v1.13.23: 12 → 9.5 px */
  font-size: 9.5px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ink-soft);
  font-weight: 700;
}
.hz-page--home .search-band__field select, .hz-page--home .search-band__field input[type="text"] {
  font-family: var(--serif);
  font-style: italic;
  /* v1.13.23: 25 → 18 px (proporción Opción B) */
  font-size: 18px;
  font-weight: 600;
  color: var(--ink);
  border: none;
  background: transparent;
  outline: none;
  padding: 0;
  appearance: none;
  width: 100%;
  cursor: pointer;
  line-height: 1.2;
  letter-spacing: -0.005em;
}
.hz-page--home .search-band__field input[type="text"] { cursor: text; }
.hz-page--home .search-band__field input::placeholder { color: var(--ink-mute); font-style: italic; opacity: 1; }
.hz-page--home .search-band__field--select::after {
  content: '';
  position: absolute;
  /* v1.13.23: 26 → 18 (en línea con nuevo padding lateral) */
  right: 18px; top: 50%;
  width: 8px; height: 8px;
  border-right: 1.5px solid var(--ink-soft);
  border-bottom: 1.5px solid var(--ink-soft);
  transform: translateY(-30%) rotate(45deg);
  pointer-events: none;
  transition: border-color 0.25s;
}
.hz-page--home .search-band__field--select:hover::after { border-color: var(--hr-primary); }

/* ===== Price row fijo ===== */
.hz-page--home .search-band__price-row {
  /* v1.13.23: Opción B (-25%) */
  padding: 14px 18px 16px;
  border-bottom: 1px solid var(--line);
}

/* ===== Keyword + Submit row fijo ===== */
.hz-page--home .search-band__bottom {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 0;
  align-items: stretch;
}
.hz-page--home .search-band__bottom .search-band__field {
  border-right: 1px solid var(--line);
  border-bottom: none;
  /* v1.13.23: Opción B (-25%) */
  padding: 12px 18px;
}

.hz-page--home .search-band__submit {
  background: var(--bg-deep);
  color: #FFFFFF;
  font-family: var(--mono);
  /* v1.13.23: Opción B (-25%) */
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 700;
  padding: 0 32px;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  transition: background 0.3s, gap 0.3s var(--ease-out);
  border: none;
  white-space: nowrap;
  min-height: 64px;
}
.hz-page--home .search-band__submit:hover { background: var(--hr-primary); gap: 18px; }
.hz-page--home .search-band__submit svg { width: 14px; height: 14px; }

/* ====== Price Range Slider · Brand v1.4.3 (horizontal) ====== */
.hz-page--home .hr-range {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0 32px;
  align-items: center;
}
.hz-page--home .hr-range__label {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--ink-mute);
  font-weight: 600;
  white-space: nowrap;
  grid-row: 1;
  grid-column: 1;
}
.hz-page--home .hr-range__values {
  display: inline-flex;
  align-items: baseline;
  gap: 18px;
  font-family: var(--serif);
  font-style: italic;
  font-size: 22px;
  font-weight: 500;
  color: var(--ink);
  letter-spacing: -0.005em;
  white-space: nowrap;
  grid-row: 1;
  grid-column: 3;
  justify-self: end;
}
.hz-page--home .hr-range__values .sep {
  font-family: var(--mono);
  font-style: normal;
  font-size: 10px;
  font-weight: 700;
  color: var(--ink-mute);
  letter-spacing: 0.28em;
  text-transform: uppercase;
}
.hz-page--home .hr-range__currency { font-size: 0.62em; color: var(--hr-gold); font-style: normal; margin-right: 3px; }
.hz-page--home .hr-range__track-wrap {
  position: relative;
  height: 28px;
  display: flex;
  align-items: center;
  grid-row: 1;
  grid-column: 2;
  min-width: 200px;
}
.hz-page--home .hr-range__track {
  position: absolute;
  left: 0; right: 0;
  height: 2px;
  background: var(--line-strong);
  border-radius: 1px;
}
.hz-page--home .hr-range__track-fill {
  position: absolute;
  height: 2px;
  background: var(--hr-primary);
  border-radius: 1px;
  left: 0%;
  right: 0%;
}
.hz-page--home .hr-range__input {
  -webkit-appearance: none;
  appearance: none;
  position: absolute;
  width: 100%;
  height: 28px;
  background: transparent;
  pointer-events: none;
  z-index: 2;
  outline: none;
  margin: 0; padding: 0;
}
.hz-page--home .hr-range__input::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 28px; height: 28px;
  border-radius: 50%;
  background: #FFFFFF;
  border: 1.5px solid var(--hr-primary);
  cursor: grab;
  pointer-events: all;
  box-shadow:
    0 1px 2px rgba(14,42,58,0.08),
    0 4px 10px rgba(14,42,58,0.10),
    0 14px 28px rgba(14,42,58,0.12);
  transition: transform 0.2s, box-shadow 0.2s;
}
.hz-page--home .hr-range__input::-webkit-slider-thumb:hover { transform: scale(1.10); }
.hz-page--home .hr-range__input::-webkit-slider-thumb:active { cursor: grabbing; transform: scale(1.06); }
.hz-page--home .hr-range__input::-moz-range-thumb {
  width: 28px; height: 28px;
  border-radius: 50%;
  background: #FFFFFF;
  border: 1.5px solid var(--hr-primary);
  cursor: grab;
  pointer-events: all;
  box-shadow:
    0 1px 2px rgba(14,42,58,0.08),
    0 4px 10px rgba(14,42,58,0.10),
    0 14px 28px rgba(14,42,58,0.12);
}
.hz-page--home .hr-range__input::-moz-range-track { background: transparent; border: none; }
.hz-page--home .hr-range__input:focus-visible::-webkit-slider-thumb {
  outline: 3px solid rgba(24,107,153,0.35);
  outline-offset: 2px;
}

@media (max-width: 1100px) {
  .hz-page--home .search-band__main { grid-template-columns: 1fr 1fr; }
  .hz-page--home .search-band__main .search-band__field { border-bottom: 1px solid var(--line); }
  .hz-page--home .search-band__main .search-band__field:nth-of-type(odd) { border-right: 1px solid var(--line); }
  .hz-page--home .search-band__main .search-band__field:nth-of-type(even) { border-right: none; }
  .hz-page--home .search-band__main .search-band__field:nth-last-of-type(-n+2) { border-bottom: none; }
  .hz-page--home .hr-range { grid-template-columns: 1fr; gap: 14px 0; }
  .hz-page--home .hr-range__label { grid-row: 1; grid-column: 1; }
  .hz-page--home .hr-range__values { grid-row: 2; grid-column: 1; justify-self: start; font-size: 20px; }
  .hz-page--home .hr-range__track-wrap { grid-row: 3; grid-column: 1; }
}
@media (max-width: 700px) {
  .hz-page--home .hero { min-height: auto; padding: 100px var(--gutter) 60px; }
  .hz-page--home .hero__supertitle { font-size: clamp(48px, 13vw, 80px); margin-bottom: 16px; }
  .hz-page--home .search-band { margin: 4px auto 24px; max-width: 100%; }
  .hz-page--home .search-band__main { grid-template-columns: 1fr; }
  .hz-page--home .search-band__main .search-band__field { border-right: none; }
  .hz-page--home .search-band__bottom { grid-template-columns: 1fr; }
  .hz-page--home .search-band__bottom .search-band__field { border-right: none; border-bottom: 1px solid var(--line); }
  .hz-page--home .search-band__submit { padding: 22px; justify-content: center; min-height: auto; }
  .hz-page--home .search-band__pill { padding: 22px 14px; font-size: 11px; letter-spacing: 0.22em; }
  .hz-page--home .search-band__field select, .hz-page--home .search-band__field input[type="text"] { font-size: 20px; }
  .hz-page--home .hr-range__values { font-size: 19px; }
}

/* ============================================================
   FEATURED · Propiedades destacadas (movido bajo search bar)
   ============================================================ */
.hz-page--home .featured {
  background: var(--bg);
  padding: clamp(80px, 12vw, 140px) 0 clamp(96px, 14vw, 180px);
}
.hz-page--home .featured__head {
  max-width: var(--max);
  margin: 0 auto clamp(40px, 6vw, 72px);
  padding: 0 var(--gutter);
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 64px;
  align-items: end;
}
.hz-page--home .featured__head-left { max-width: 22ch; }
.hz-page--home .featured__title {
  font-family: var(--serif);
  font-size: clamp(48px, 6.5vw, 104px);
  line-height: 1.0;
  font-weight: 400;
  letter-spacing: -0.018em;
  color: var(--ink);
  margin-bottom: 20px;
}
.hz-page--home .featured__title em { font-style: italic; color: var(--hr-primary); }
.hz-page--home .featured__sub {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(17px, 1.5vw, 22px);
  line-height: 1.5;
  color: var(--ink-soft);
  letter-spacing: 0.005em;
  max-width: 38ch;
  padding-left: clamp(16px, 1.8vw, 22px);
  border-left: 1px solid var(--hr-gold);
}
.hz-page--home .featured__cta {
  justify-self: end;
  align-self: end;
}
@media (max-width: 800px) {
  .hz-page--home .featured__head { grid-template-columns: 1fr; gap: 24px; }
  .hz-page--home .featured__head-left { max-width: 100%; }
  .hz-page--home .featured__cta { justify-self: start; }
}

.hz-page--home .featured__rail {
  display: flex;
  gap: 28px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding: 0 var(--gutter);
  scrollbar-width: none;
}
.hz-page--home .featured__rail::-webkit-scrollbar { display: none; }
.hz-page--home .featured__rail::after { content:''; flex: 0 0 calc(var(--gutter) - 28px); }
.hz-page--home .estate {
  flex: 0 0 clamp(300px, 42vw, 540px);
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
}
.hz-page--home .estate__photo {
  position: relative;
  aspect-ratio: 4/5;
  overflow: hidden;
  background: var(--hr-accent);
  margin-bottom: 24px;
}
.hz-page--home .estate__photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  filter: saturate(0.78) contrast(1.06) brightness(0.92);
  transition: transform 1.2s var(--ease-out), filter 0.6s;
}
.hz-page--home .estate__photo::before {
  content: '';
  position: absolute; inset: 0;
  background: rgba(14,42,58,0.18);
  mix-blend-mode: multiply;
  z-index: 1;
}
.hz-page--home .estate:hover .estate__photo img { transform: scale(1.04); filter: saturate(0.92) contrast(1.06); }
.hz-page--home .estate__status {
  position: absolute;
  top: 18px; left: 18px;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: #FFFFFF;
  background: rgba(14,42,58,0.78);
  padding: 7px 12px;
  font-weight: 600;
  backdrop-filter: blur(6px);
  z-index: 2;
}
.hz-page--home .estate__status--rent { background: rgba(173,170,151,0.92); color: var(--ink); }
.hz-page--home .estate__index {
  position: absolute;
  top: 18px; right: 18px;
  font-family: var(--serif);
  font-style: italic;
  font-size: 22px;
  color: #FFFFFF;
  z-index: 2;
  text-shadow: 0 2px 10px rgba(0,0,0,0.6);
}
.hz-page--home .estate__loc {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--ink-mute);
  font-weight: 600;
  margin-bottom: 8px;
}
.hz-page--home .estate__title {
  font-family: var(--serif);
  font-size: 26px;
  line-height: 1.18;
  font-weight: 500;
  color: var(--ink);
  margin-bottom: 16px;
  letter-spacing: -0.005em;
}
.hz-page--home .estate__meta {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  border-top: 1px solid var(--line);
  padding-top: 14px;
}
.hz-page--home .estate__specs {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--ink-soft);
  font-weight: 500;
}
.hz-page--home .estate__price {
  font-family: var(--serif);
  font-style: italic;
  font-size: 24px;
  font-weight: 500;
  color: var(--hr-primary);
}
.hz-page--home .estate__price .currency { font-size: 0.52em; color: var(--hr-gold); font-style: normal; margin-right: 4px; }
.hz-page--home .featured__counter {
  max-width: var(--max);
  margin: clamp(36px, 6vw, 64px) auto 0;
  padding: 0 var(--gutter);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--ink-mute);
  font-weight: 600;
}
.hz-page--home .featured__counter-left, .hz-page--home .featured__counter-right {
  display: inline-flex;
  align-items: center;
  gap: 18px;
  flex-shrink: 0;
}
.hz-page--home .featured__counter-track { flex: 1; height: 1px; background: var(--line); margin: 0 4px; min-width: 60px; }
.hz-page--home .featured__nav {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid var(--line-strong);
  background: transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ink-soft);
  cursor: pointer;
  transition: background 0.3s var(--ease-out), border-color 0.3s, color 0.3s, transform 0.3s;
}
.hz-page--home .featured__nav:hover {
  background: var(--bg-deep);
  border-color: var(--bg-deep);
  color: #FFFFFF;
  transform: scale(1.06);
}
.hz-page--home .featured__nav:active { transform: scale(0.96); }
.hz-page--home .featured__nav svg { width: 14px; height: 14px; }
.hz-page--home .featured__autoplay {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ink-mute);
  font-weight: 500;
}
.hz-page--home .featured__autoplay-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--hr-primary);
  animation: autoPulse 1.6s ease-in-out infinite;
}
.hz-page--home .featured__autoplay.is-paused .featured__autoplay-dot {
  background: var(--ink-mute);
  animation: none;
}
@keyframes autoPulse {
  .hz-page--home 0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.4; transform: scale(1.4); }
}
@media (max-width: 700px) {
  .hz-page--home .featured__counter { flex-wrap: wrap; }
  .hz-page--home .featured__counter-track { display: none; }
}
@media (max-width: 720px) {
  .hz-page--home .featured__head { grid-template-columns: 1fr; gap: 24px; }
  .hz-page--home .featured__cta { justify-self: start; }
}

/* ============================================================
   MARQUEE
   ============================================================ */
.hz-page--home .marquee {
  background: var(--bg-cream);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  overflow: hidden;
  padding: 22px 0;
  position: relative;
}
.hz-page--home .marquee__track {
  display: flex;
  width: max-content;
  animation: marquee 55s linear infinite;
  white-space: nowrap;
}
.hz-page--home .marquee__group {
  display: inline-flex;
  align-items: center;
  gap: 56px;
  padding-right: 56px;
}
.hz-page--home .marquee__item {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(20px, 2.2vw, 28px);
  color: var(--ink);
  letter-spacing: -0.01em;
  display: inline-flex;
  align-items: center;
  gap: 56px;
}
.hz-page--home .marquee__item::after { content: '✦'; font-style: normal; color: var(--hr-gold); font-size: 0.65em; }
.hz-page--home .marquee:hover .marquee__track { animation-play-state: paused; }
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .hz-page--home .marquee__track { animation: none; } }

/* ============================================================
   SHARED
   ============================================================ */
.hz-page--home .section { padding: clamp(96px, 14vw, 180px) var(--gutter); position: relative; }
.hz-page--home .section--deep { background: var(--bg-deep); color: #FFFFFF; }
.hz-page--home .section--cream { background: var(--bg-cream); }
.hz-page--home .shell { max-width: var(--max); margin: 0 auto; }
.hz-page--home .eyebrow {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--hr-primary);
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 16px;
}
.hz-page--home .eyebrow::before { content:''; width: 32px; height: 1px; background: currentColor; }
.hz-page--home .section--deep .eyebrow { color: var(--hr-gold); }

/* ============================================================
   STATEMENT
   ============================================================ */
.hz-page--home .statement {
  background: var(--bg-cream);
  padding: clamp(120px, 18vw, 220px) var(--gutter);
  position: relative;
  overflow: hidden;
}
.hz-page--home .statement__inner { max-width: var(--max); margin: 0 auto; position: relative; }
.hz-page--home .statement__roman {
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(60px, 12vw, 200px);
  font-weight: 300;
  color: var(--hr-gold);
  line-height: 0.85;
  opacity: 0.32;
  position: absolute;
  top: 10%;
  right: 0;
  letter-spacing: -0.04em;
  user-select: none;
  pointer-events: none;
}
.hz-page--home .statement__text {
  font-family: var(--serif);
  font-size: clamp(44px, 7vw, 132px);
  line-height: 0.98;
  font-weight: 300;
  color: var(--ink);
  letter-spacing: -0.022em;
  max-width: 18ch;
  position: relative;
  z-index: 1;
}
.hz-page--home .statement__text em { font-style: italic; color: var(--hr-primary); font-weight: 300; }
.hz-page--home .statement__sub {
  margin-top: clamp(48px, 7vw, 80px);
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 56px;
  border-top: 1px solid rgba(14,42,58,0.18);
  padding-top: 32px;
  position: relative;
  z-index: 1;
}
.hz-page--home .statement__sub-label {
  font-family: var(--mono);
  font-size: 13px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--ink-mute);
  font-weight: 700;
}
.hz-page--home .statement__sub-body {
  font-family: var(--sans);
  font-size: clamp(19px, 1.7vw, 24px);
  line-height: 1.6;
  color: var(--ink);
  max-width: 60ch;
  font-weight: 400;
}
@media (max-width: 720px) { .hz-page--home .statement__sub { grid-template-columns: 1fr; gap: 16px; } }

/* ============================================================
   OWNERS · Servicios para propietarios (Vender + Alquilar)
   Cards verticales: foto cinematic top + bloque dark navy bottom
   ============================================================ */
.hz-page--home .owners {
  background: var(--bg);
  padding: clamp(96px, 14vw, 180px) var(--gutter) clamp(96px, 14vw, 180px);
  border-bottom: 1px solid var(--line);
}
.hz-page--home .owners__head {
  max-width: var(--max);
  margin: 0 auto clamp(56px, 8vw, 96px);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: end;
}
.hz-page--home .owners__title {
  font-family: var(--serif);
  font-size: clamp(44px, 5.8vw, 88px);
  line-height: 1.02;
  font-weight: 400;
  letter-spacing: -0.014em;
  color: var(--ink);
}
.hz-page--home .owners__title em { font-style: italic; color: var(--hr-primary); }
.hz-page--home .owners__lede {
  font-family: var(--sans);
  font-size: clamp(19px, 1.6vw, 22px);
  line-height: 1.6;
  color: var(--ink-soft);
  max-width: 50ch;
  font-weight: 400;
}
.hz-page--home .owners__grid {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
}
@media (max-width: 900px) {
  .hz-page--home .owners__grid { grid-template-columns: 1fr; max-width: 640px; }
}

.hz-page--home .owner-card {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  text-decoration: none;
  color: inherit;
  background: var(--bg-cream);
  border: 1px solid rgba(173,170,151,0.45);
  border-radius: 18px;
  overflow: hidden;
  isolation: isolate;
  transition: transform 0.5s var(--ease-out), box-shadow 0.5s var(--ease-out);
  box-shadow:
    0 1px 2px rgba(14,42,58,0.04),
    0 18px 40px -24px rgba(14,42,58,0.18);
}
.hz-page--home .owner-card:hover {
  transform: translateY(-4px);
  box-shadow:
    0 1px 2px rgba(14,42,58,0.04),
    0 32px 70px -28px rgba(14,42,58,0.28);
}
.hz-page--home .owner-card__photo {
  position: relative;
  overflow: hidden;
  background: var(--bg-deep);
  min-height: 100%;
}
.hz-page--home .owner-card__photo img, .hz-page--home .owner-card__photo video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.92) brightness(0.96);
  transition: transform 1.4s var(--ease-out), filter 0.7s;
}
.hz-page--home .owner-card:hover .owner-card__photo img, .hz-page--home .owner-card:hover .owner-card__photo video {
  transform: scale(1.05);
  filter: saturate(1) brightness(1);
}
.hz-page--home .owner-card__photo::before {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(165deg, rgba(15,77,116,0.18) 0%, rgba(14,42,58,0.24) 100%);
  mix-blend-mode: multiply;
  z-index: 1;
  pointer-events: none;
}
.hz-page--home .owner-card__photo-content {
  position: absolute;
  inset: 0;
  z-index: 3;
  padding: clamp(20px, 2.4vw, 32px);
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  color: #fff;
}
.hz-page--home .owner-card__badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--mono);
  font-weight: 600;
  font-size: 10px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.95);
  text-shadow: 0 1px 6px rgba(0,0,0,0.30);
}
.hz-page--home .owner-card__badge::before {
  content: '';
  width: 22px; height: 1px;
  background: var(--hr-gold);
}
.hz-page--home .owner-card__num { display: none; }
.hz-page--home .owner-card__body {
  background: transparent;
  padding: clamp(24px, 3vw, 40px) clamp(24px, 3vw, 40px) clamp(24px, 3vw, 36px);
  color: var(--ink);
  position: relative;
  display: flex;
  flex-direction: column;
}
@media (max-width: 800px) {
  .hz-page--home .owner-card { grid-template-columns: 1fr; }
  .hz-page--home .owner-card__photo { aspect-ratio: 5/3; min-height: auto; }
}
.hz-page--home .owner-card__category {
  font-family: var(--mono);
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--hr-primary);
  margin-bottom: 14px;
}
.hz-page--home .owner-card__title {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(26px, 2.6vw, 38px);
  line-height: 1.05;
  letter-spacing: -0.014em;
  color: var(--ink);
  margin-bottom: 16px;
}
.hz-page--home .owner-card__title em {
  font-style: italic;
  color: var(--hr-primary);
  font-weight: 500;
}
.hz-page--home .owner-card__sub {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(15px, 1.15vw, 17px);
  line-height: 1.48;
  color: var(--ink-soft);
  margin-bottom: 22px;
  max-width: 40ch;
  padding-left: 14px;
  border-left: 1px solid var(--hr-gold);
}
/* Accordion toggle — patrón FAQ /trabaje-con-nosotros/ */
.hz-page--home .owner-card__toggle {
  appearance: none;
  background: transparent;
  border: 0;
  cursor: pointer;
  width: 100%;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 18px;
  padding: 16px 0;
  border-top: 1px solid rgba(173,170,151,0.45);
  border-bottom: 1px solid rgba(173,170,151,0.45);
  margin: 0 0 0;
  text-align: left;
  font-family: var(--mono);
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--ink);
  transition: color 0.3s var(--ease-out);
}
.hz-page--home .owner-card__toggle:hover { color: var(--hr-primary); }
.hz-page--home .owner-card__toggle-icon {
  flex-shrink: 0;
  width: 30px; height: 30px;
  position: relative;
  border: 1px solid var(--ink);
  border-radius: 100px;
  transition: background 0.35s, border-color 0.35s, transform 0.4s var(--ease-out);
}
.hz-page--home .owner-card__toggle:hover .owner-card__toggle-icon { transform: rotate(45deg); }
.hz-page--home .owner-card__toggle-icon::before, .hz-page--home .owner-card__toggle-icon::after {
  content: "";
  position: absolute;
  background: var(--ink);
  transition: transform 0.4s var(--ease-out), background 0.3s;
}
.hz-page--home .owner-card__toggle-icon::before {
  top: 50%; left: 28%; right: 28%;
  height: 1px; transform: translateY(-50%);
}
.hz-page--home .owner-card__toggle-icon::after {
  left: 50%; top: 28%; bottom: 28%;
  width: 1px; transform: translateX(-50%);
}
.hz-page--home .owner-card__details.is-open + .owner-card__toggle .owner-card__toggle-icon, .hz-page--home .owner-card__toggle[aria-expanded="true"] .owner-card__toggle-icon {
  background: var(--hr-primary);
  border-color: var(--hr-primary);
  transform: rotate(0);
}
.hz-page--home .owner-card__toggle[aria-expanded="true"] .owner-card__toggle-icon::before, .hz-page--home .owner-card__toggle[aria-expanded="true"] .owner-card__toggle-icon::after { background: #fff; }
.hz-page--home .owner-card__toggle[aria-expanded="true"] .owner-card__toggle-icon::after { transform: translateX(-50%) rotate(90deg); }

/* Wrapper colapsable */
.hz-page--home .owner-card__details {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.55s var(--ease-out);
}
.hz-page--home .owner-card__details.is-open { /* max-height set inline via JS */ }
.hz-page--home .owner-card__details-inner { padding: 18px 0 2px; }

.hz-page--home .owner-card__features {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.hz-page--home .owner-card__features li {
  font-family: var(--mono);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-soft);
  padding-left: 20px;
  position: relative;
}
.hz-page--home .owner-card__features li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 12px;
  height: 1px;
  background: var(--hr-gold);
}
.hz-page--home .owner-card__cta {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: var(--mono);
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--hr-primary);
  text-decoration: none;
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid var(--hr-primary);
  transition: gap 0.4s var(--ease-out);
  width: max-content;
}
.hz-page--home .owner-card__cta::after {
  content: '→';
  font-size: 13px;
  transition: transform 0.5s var(--ease-out);
}
.hz-page--home .owner-card:hover .owner-card__cta { gap: 22px; }
.hz-page--home .owner-card:hover .owner-card__cta::after { transform: translateX(10px); }

@media (max-width: 1100px) {
  .hz-page--home .owners__head { grid-template-columns: 1fr; gap: 24px; }
}
@media (max-width: 800px) {
  .hz-page--home .owners__grid { grid-template-columns: 1fr; gap: 28px; }
  .hz-page--home .owner-card__photo { aspect-ratio: 4/3; }
}

/* ============================================================
   ROUTES · Rutas de compra (3 perfiles)
   Adaptado de /comprar/ al sistema home
   ============================================================ */
.hz-page--home .routes {
  background: var(--bg-cream);
  padding-top: clamp(36px, 4vw, 56px);
  padding-bottom: 0;
  position: relative;
}
.hz-page--home .routes__preface {
  max-width: var(--max-wide);
  margin: 0 auto;
  padding: clamp(64px, 7vw, 112px) clamp(28px, 4vw, 72px) clamp(72px, 8vw, 120px);
  display: grid;
  grid-template-columns: minmax(0, 1.85fr) minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: clamp(40px, 5vw, 96px);
  row-gap: clamp(36px, 4vw, 64px);
  align-items: start;
  text-align: left;
}
.hz-page--home .routes__preface-top {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
  padding-bottom: clamp(20px, 2vw, 28px);
  border-bottom: 1px solid rgba(173,170,151,0.32);
}
.hz-page--home .routes__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 18px;
}
.hz-page--home .routes__eyebrow .hairline { width: 52px; height: 1px; background: var(--hr-gold); display: inline-block; }
.hz-page--home .routes__eyebrow-label {
  font-family: var(--mono);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--hr-primary);
}
.hz-page--home .routes__chapter {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  font-size: 18px;
  color: var(--ink-mute);
  letter-spacing: 0.01em;
}
.hz-page--home .routes__title {
  grid-column: 1;
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(42px, 5vw, 76px);
  line-height: 1.04;
  letter-spacing: -0.018em;
  color: var(--ink);
  margin: 0;
  font-style: normal;
  max-width: 20ch;
}
.hz-page--home .routes__title em {
  font-style: italic;
  color: var(--hr-primary);
  font-weight: 500;
}
.hz-page--home .routes__lede {
  grid-column: 2;
  align-self: end;
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(21px, 1.7vw, 26px);
  line-height: 1.55;
  color: var(--ink-soft);
  letter-spacing: 0.005em;
  padding-left: clamp(20px, 2vw, 28px);
  border-left: 1px solid var(--hr-gold);
  max-width: 40ch;
}
@media (max-width: 980px) {
  .hz-page--home .routes__preface {
    grid-template-columns: 1fr;
    row-gap: 28px;
    padding: 56px 24px 64px;
  }
  .hz-page--home .routes__title, .hz-page--home .routes__lede { grid-column: 1; max-width: 100%; }
}

.hz-page--home .routes__panels {
  position: relative;
  overflow: hidden;
}
.hz-page--home .routes__grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0;
  height: clamp(620px, 80vh, 880px);
  transition: grid-template-columns 1.2s cubic-bezier(.2,.7,.2,1);
}
@media (max-width: 960px) {
  .hz-page--home .routes__grid { grid-template-columns: 1fr; height: auto; }
}
.hz-page--home .routes__grid {
  grid-template-columns: 1fr 1fr 1fr 1fr;
}
@media (min-width: 961px) and (hover: hover) {
  .hz-page--home .routes__grid:has(.route:nth-child(1):hover) { grid-template-columns: 1.45fr 0.65fr 0.65fr 0.65fr; }
  .hz-page--home .routes__grid:has(.route:nth-child(2):hover) { grid-template-columns: 0.65fr 1.45fr 0.65fr 0.65fr; }
  .hz-page--home .routes__grid:has(.route:nth-child(3):hover) { grid-template-columns: 0.65fr 0.65fr 1.45fr 0.65fr; }
  .hz-page--home .routes__grid:has(.route:nth-child(4):hover) { grid-template-columns: 0.65fr 0.65fr 0.65fr 1.45fr; }
}

.hz-page--home .route {
  position: relative;
  display: block;
  overflow: hidden;
  isolation: isolate;
  text-decoration: none;
  color: inherit;
  background-color: var(--bg-deep);
  cursor: pointer;
}
@media (max-width: 960px) {
  .hz-page--home .routes__grid { grid-template-columns: 1fr; gap: clamp(40px, 7vw, 56px); padding: 0 clamp(20px, 4vw, 36px); height: auto; }
  .hz-page--home .route { aspect-ratio: 4 / 5; border: 1px solid var(--hr-gold); }
  .hz-page--home .route + .route { border-top: 1px solid var(--hr-gold); }
}
@media (min-width: 961px) {
  .hz-page--home .route + .route { border-left: 1px solid var(--hr-gold); }
}
/* Divisor editorial — visible solo en mobile */
.hz-page--home .route__divider {
  display: none;
  position: absolute;
  top: calc(clamp(40px, 7vw, 56px) * -0.5 - 4px);
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
  pointer-events: none;
  width: 88px;
  height: 8px;
}
.hz-page--home .route__divider::before, .hz-page--home .route__divider::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 32px;
  height: 1px;
  background: var(--hr-gold);
}
.hz-page--home .route__divider::before { left: 0; }
.hz-page--home .route__divider::after { right: 0; }
.hz-page--home .route__divider span {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 6px; height: 6px;
  background: var(--hr-gold);
  border-radius: 50%;
  display: block;
}
@media (max-width: 960px) {
  .hz-page--home .route + .route .route__divider { display: block; }
}

.hz-page--home .route__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transform: scale(1.04);
  transition: transform 1.8s cubic-bezier(.2,.7,.2,1), filter 0.8s ease;
  filter: saturate(0.85) brightness(0.96);
  z-index: 0;
  display: block;
  background-color: var(--bg-deep);
}
.hz-page--home .route:hover .route__img {
  transform: scale(1.1);
  filter: saturate(1.0) brightness(1.0);
}
/* Accesibilidad: si el usuario reduce movimiento, .hz-page--home oculta el video y deja el poster como bg */
@media (prefers-reduced-motion: reduce) {
  .hz-page--home video.route__img { visibility: hidden; }
  .hz-page--home .route--01 { background-image: url('imagenes-comprar/ruta-01-primera-vivienda-poster.jpg'); background-size: cover; background-position: center; }
  .hz-page--home .route--02 { background-image: url('imagenes-comprar/ruta-02-construir-poster.jpg'); background-size: cover; background-position: center; }
  .hz-page--home .route--03 { background-image: url('imagenes-comprar/ruta-03-inversion-poster.jpg'); background-size: cover; background-position: center; }
  .hz-page--home .route--04 { background-image: url('imagenes-comprar/ruta-04-extranjeros-poster.jpg'); background-size: cover; background-position: center; }
}
.hz-page--home .route::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(165deg, rgba(15, 77, 116, 0.38) 0%, rgba(14, 42, 58, 0.44) 100%);
  z-index: 1;
  pointer-events: none;
  mix-blend-mode: multiply;
  transition: opacity 0.8s ease;
}
.hz-page--home .route::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,
    rgba(6, 24, 36, 0.55) 0%,
    rgba(14, 42, 58, 0.08) 22%,
    rgba(14, 42, 58, 0.0) 48%,
    rgba(14, 42, 58, 0.55) 72%,
    rgba(6, 24, 36, 0.92) 100%);
  z-index: 2;
  pointer-events: none;
  transition: opacity 0.9s ease;
}
.hz-page--home .route:hover::before { opacity: 0.82; }

.hz-page--home .route__content {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: clamp(28px, 3.2vw, 52px);
  color: #fff;
  text-align: left;
}
.hz-page--home .route__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
}
.hz-page--home .route__badge {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  font-family: var(--mono);
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.95);
}
.hz-page--home .route__badge::before {
  content: "";
  display: block;
  width: 24px;
  height: 1px;
  background: var(--hr-gold);
}
.hz-page--home .route__num { display: none; }
.hz-page--home .route:hover .route__num {
  color: var(--bg-cream);
  transform: translateX(-8px);
}
.hz-page--home .route__bottom {
  position: relative;
  max-width: 560px;
}
.hz-page--home .route__title {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(44px, 4.8vw, 80px);
  line-height: 0.98;
  letter-spacing: -0.022em;
  color: #fff;
  margin-bottom: 20px;
}
.hz-page--home .route__title em {
  font-style: italic;
  color: var(--bg-cream);
  font-weight: 500;
  display: block;
}
.hz-page--home .route__sub {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(19px, 1.6vw, 24px);
  line-height: 1.45;
  color: rgba(255,255,255,0.92);
  max-width: 480px;
  margin-bottom: 30px;
  padding-left: 20px;
  border-left: 1px solid var(--hr-gold);
}
.hz-page--home .route__tags {
  list-style: none;
  margin: 0 0 28px;
  padding: 0;
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height 0.7s cubic-bezier(.2,.7,.2,1), opacity 0.5s ease, margin 0.5s ease;
}
.hz-page--home .route:hover .route__tags {
  max-height: 80px;
  opacity: 1;
}
.hz-page--home .route__tags li {
  font-family: var(--mono);
  font-weight: 500;
  font-size: 12.5px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.9);
  padding-left: 20px;
  position: relative;
}
.hz-page--home .route__tags li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 10px;
  height: 1px;
  background: var(--hr-gold);
}
.hz-page--home .route__cta {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  font-family: var(--mono);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: #fff;
  padding-top: 24px;
  border-top: 1px solid var(--hr-gold);
  transition: gap 0.4s cubic-bezier(.2,.7,.2,1);
  width: max-content;
}
.hz-page--home .route__cta::after {
  content: "→";
  font-size: 16px;
  transition: transform 0.5s cubic-bezier(.2,.7,.2,1);
}
.hz-page--home .route:hover .route__cta { gap: 28px; }
.hz-page--home .route:hover .route__cta::after { transform: translateX(14px); }

/* ============================================================
   HORIZONS · Property Card (global, .hz-page--home idéntico al child theme)
   Componente reusable .hz-card · since v1.3.8
   ============================================================ */
.hz-page--home .hz-card {
  --hzc-primary:  #186B99;
  --hzc-primary2: #2781AD;
  --hzc-gold:     #ADAA97;
  --hzc-gold-2:   #c4bfa8;
  --hzc-ink:      #1c2a33;
  --hzc-ink-soft: #2a3942;
  --hzc-cream:    #FAF7F1;
  --hzc-cream-2:  #f3eee2;
  --hzc-border:   #E4E4E4;
  --hzc-muted:    #6b7280;
  --hzc-font-title: "Cormorant Garamond", "Times New Roman", Georgia, serif;
  --hzc-font-body:  "Outfit", system-ui, -apple-system, sans-serif;
  --hzc-radius: 6px;
  --hzc-ease: cubic-bezier(.22,.61,.36,1);
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: var(--hzc-radius);
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  position: relative;
  isolation: isolate;
  box-shadow: 0 1px 2px rgba(28,42,51,0.04), 0 0 0 1px rgba(28,42,51,0.045);
  transition: transform .55s var(--hzc-ease), box-shadow .55s var(--hzc-ease);
}
.hz-page--home .hz-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 36px 80px -28px rgba(28,42,51,0.28), 0 14px 28px -16px rgba(28,42,51,0.14), 0 0 0 1px rgba(173,170,151,0.45);
}
.hz-page--home .hz-card__media { position: relative; aspect-ratio: 16 / 11; background: var(--hzc-cream-2); overflow: hidden; }
.hz-page--home .hz-card__img, .hz-page--home .hz-card__media img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  filter: saturate(1.04) brightness(0.98) contrast(1.02);
  transition: transform 1.4s var(--hzc-ease), filter .55s var(--hzc-ease);
}
.hz-page--home .hz-card:hover .hz-card__img, .hz-page--home .hz-card:hover .hz-card__media img {
  transform: scale(1.07);
  filter: saturate(1.08) brightness(1) contrast(1.04);
}
.hz-page--home .hz-card__media::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 55%, rgba(28,42,51,0.18) 100%), radial-gradient(ellipse at center top, transparent 65%, rgba(28,42,51,0.10) 100%);
  pointer-events: none; opacity: .85; z-index: 1;
  transition: opacity .55s var(--hzc-ease);
}
.hz-page--home .hz-card:hover .hz-card__media::after { opacity: 1; }
.hz-page--home .hz-card__chips {
  position: absolute; bottom: 14px; left: 14px; right: 14px;
  display: flex; flex-wrap: wrap; gap: 6px;
  z-index: 3; pointer-events: none;
}
.hz-page--home .hz-chip {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 6.5px 11px;
  font-family: var(--hzc-font-body);
  font-size: 10.5px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase;
  border-radius: 999px;
  white-space: nowrap;
  backdrop-filter: blur(8px) saturate(1.1);
  -webkit-backdrop-filter: blur(8px) saturate(1.1);
  pointer-events: auto; line-height: 1;
  box-shadow: 0 2px 8px -2px rgba(28,42,51,0.25);
  transition: transform .35s var(--hzc-ease);
}
.hz-page--home .hz-card:hover .hz-chip { transform: translateY(-1px); }
.hz-page--home .hz-chip--status { background: rgba(28,42,51,0.92); color: #fff; }
.hz-page--home .hz-chip--status[data-status="en-venta"] { background: linear-gradient(135deg, rgba(24,107,153,0.96) 0%, rgba(39,129,173,0.96) 100%); }
.hz-page--home .hz-chip--status[data-status="en-alquiler"] { background: rgba(28,42,51,0.94); }
.hz-page--home .hz-chip--status[data-status="nuevo-listado"] { background: rgba(173,170,151,0.96); color: var(--hzc-ink); }
.hz-page--home .hz-chip--label { background: rgba(255,255,255,0.94); color: var(--hzc-ink); border: 1px solid rgba(28,42,51,0.06); }
.hz-page--home .hz-card__body { padding: 22px 26px 24px; display: flex; flex-direction: column; flex: 1; }
.hz-page--home .hz-card__type {
  font-family: var(--hzc-font-body);
  font-size: 10.5px; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase;
  color: var(--hzc-gold); margin: 0 0 16px;
  position: relative; display: inline-block;
}
.hz-page--home .hz-card__type::after { content: ""; position: absolute; left: 0; bottom: -7px; width: 0; height: 1px; background: var(--hzc-gold); transition: width .55s var(--hzc-ease) .05s; }
.hz-page--home .hz-card:hover .hz-card__type::after { width: 28px; }
.hz-page--home .hz-card__title {
  font-family: var(--hzc-font-title);
  font-size: 27px; font-weight: 500; line-height: 1.16; letter-spacing: -0.008em;
  color: var(--hzc-ink); margin: 0 0 16px;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
  min-height: calc(1.16em * 2);
  transition: color .45s var(--hzc-ease) .08s;
}
.hz-page--home .hz-card:hover .hz-card__title { color: var(--hzc-primary); }
.hz-page--home .hz-card__loc { display: flex; align-items: center; gap: 7px; font-family: var(--hzc-font-body); font-size: 13.5px; color: var(--hzc-muted); margin: 0 0 22px; line-height: 1.4; }
.hz-page--home .hz-card__loc svg { color: var(--hzc-gold); flex-shrink: 0; transition: transform .45s var(--hzc-ease); }
.hz-page--home .hz-card:hover .hz-card__loc svg { transform: translateY(-2px) scale(1.08); }
.hz-page--home .hz-card__price {
  font-family: var(--hzc-font-title);
  font-size: 31px; font-weight: 500; letter-spacing: -0.012em;
  color: var(--hzc-ink); margin: 0 0 14px; line-height: 1;
  position: relative; display: inline-block;
}
.hz-page--home .hz-card__price::before { content: ""; position: absolute; left: 0; top: -10px; width: 0; height: 1px; background: var(--hzc-gold); transition: width .65s var(--hzc-ease) .12s; }
.hz-page--home .hz-card:hover .hz-card__price::before { width: 24px; }
.hz-page--home .hz-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0; padding-top: 14px; border-top: 1px solid var(--hzc-border); font-family: var(--hzc-font-body); font-size: 13px; color: var(--hzc-ink-soft); margin-top: auto; }
.hz-page--home .hz-card__meta-item { display: inline-flex; align-items: center; gap: 7px; line-height: 1.3; padding: 0 16px; position: relative; }
.hz-page--home .hz-card__meta-item:first-child { padding-left: 0; }
.hz-page--home .hz-card__meta-item:not(:last-child)::after { content: ""; position: absolute; right: 0; top: 50%; transform: translateY(-50%); width: 1px; height: 14px; background: var(--hzc-border); }
.hz-page--home .hz-card__meta-item svg { color: var(--hzc-gold); opacity: .85; transition: opacity .45s var(--hzc-ease); }
.hz-page--home .hz-card:hover .hz-card__meta-item svg { opacity: 1; }
.hz-page--home .hz-card__meta-item strong { font-weight: 600; color: var(--hzc-ink); }
/* Variante --lg para Propiedades destacadas */
.hz-page--home .hz-card--lg .hz-card__media { aspect-ratio: 4 / 3; }
.hz-page--home .hz-card--lg .hz-card__body { padding: 32px 36px 34px; }
.hz-page--home .hz-card--lg .hz-card__title { font-size: 36px; min-height: calc(1.16em * 2); }
.hz-page--home .hz-card--lg .hz-card__price { font-size: 40px; }
.hz-page--home .hz-card--lg .hz-card__type { font-size: 11.5px; }
.hz-page--home .hz-card--lg .hz-card__loc { font-size: 15px; }
.hz-page--home .hz-card--lg .hz-card__meta { font-size: 14px; padding-top: 18px; }
@media (max-width: 599px) {
  .hz-page--home .hz-card__media { aspect-ratio: 3 / 2; }
  .hz-page--home .hz-card--lg .hz-card__media { aspect-ratio: 4 / 3; }
}
@media (prefers-reduced-motion: reduce) {
  .hz-page--home .hz-card, .hz-page--home .hz-card *, .hz-page--home .hz-card *::before, .hz-page--home .hz-card *::after { transition: none !important; }
  .hz-page--home .hz-card:hover { transform: none; }
}
/* Adaptación: hz-card dentro del rail horizontal de Featured */
.hz-page--home .featured__rail .hz-card {
  flex: 0 0 clamp(380px, 50vw, 620px);
  scroll-snap-align: start;
}
@media (max-width: 700px) {
  .hz-page--home .featured__rail .hz-card { flex: 0 0 88vw; }
}

/* ============================================================
   ZONAS · grid 4x3
   ============================================================ */
.hz-page--home .coverage {
  background: var(--bg);
  padding: clamp(96px, 14vw, 180px) 0;
  border-bottom: 1px solid var(--line);
}
.hz-page--home .coverage__head {
  max-width: var(--max);
  margin: 0 auto clamp(56px, 8vw, 96px);
  padding: 0 var(--gutter);
  text-align: center;
}
.hz-page--home .coverage__eyebrow-row { display: inline-flex; align-items: center; gap: 16px; margin-bottom: 28px; }
.hz-page--home .coverage__eyebrow-row .div-line { width: 32px; height: 1px; background: var(--hr-primary); }
.hz-page--home .coverage__eyebrow {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--hr-primary);
  font-weight: 600;
}
.hz-page--home .coverage__title {
  font-family: var(--serif);
  font-size: clamp(22px, 2.6vw, 36px);
  line-height: 1.25;
  font-weight: 400;
  font-style: italic;
  letter-spacing: -0.005em;
  color: var(--ink-soft);
  margin-bottom: 14px;
}
.hz-page--home .coverage__title em { font-style: italic; color: var(--hr-primary); }
.hz-page--home .coverage__lede {
  font-family: var(--sans);
  font-size: clamp(14px, 1.1vw, 16px);
  line-height: 1.55;
  color: var(--ink-mute);
  font-weight: 400;
  max-width: 48ch;
  margin: 0 auto;
}
.hz-page--home .zones-wrap { width: 100%; padding: 0 var(--gutter); }
.hz-page--home .zones-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  width: 100%;
  max-width: var(--max-wide);
  margin: 0 auto;
}

/* Sub-bloques: GAM y Costas con banners premium separados */
.hz-page--home .coverage__bloque { margin-bottom: clamp(72px, 10vw, 120px); }
.hz-page--home .coverage__bloque:last-child { margin-bottom: 0; }
.hz-page--home .coverage__bloque-head {
  max-width: var(--max);
  margin: 0 auto clamp(36px, 5vw, 56px);
  padding: 0 var(--gutter);
}
/* ============================================================
   COVERAGE BLOQUE — Variante B: Franja cream editorial
   Foto panorámica arriba · banda cream delgada abajo con
   número serif, .hz-page--home eyebrow gold, .hz-page--home título azul y contador.
   Patch v26 (2026-05-26)
   ============================================================ */
.hz-page--home .coverage__bloque-tira {
  width: 100%;
  overflow: hidden;
  border-radius: 20px;
  border: 1px solid rgba(173,170,151,0.65);
  isolation: isolate;
  background: var(--bg-cream);
  display: grid;
  grid-template-rows: 1fr auto;
  box-shadow:
    0 1px 2px rgba(14,42,58,0.08),
    0 16px 36px rgba(14,42,58,0.16),
    0 56px 110px -32px rgba(14,42,58,0.40);
  transition: transform 0.6s var(--ease-out), box-shadow 0.6s var(--ease-out);
}
.hz-page--home .coverage__bloque-tira:hover {
  transform: translateY(-3px);
  box-shadow:
    0 1px 2px rgba(14,42,58,0.08),
    0 24px 48px rgba(14,42,58,0.20),
    0 64px 130px -32px rgba(14,42,58,0.48);
}
.hz-page--home .coverage__bloque-media {
  position: relative;
  width: 100%;
  aspect-ratio: 32 / 6;
  overflow: hidden;
}
.hz-page--home .coverage__bloque-media img, .hz-page--home .coverage__bloque-media video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.95) brightness(0.98);
  display: block;
  z-index: 0;
  transition: transform 1.6s var(--ease-out), filter 0.8s;
}
.hz-page--home .coverage__bloque-tira:hover .coverage__bloque-media img, .hz-page--home .coverage__bloque-tira:hover .coverage__bloque-media video {
  transform: scale(1.04);
  filter: saturate(1) brightness(1);
}
/* Overlay sutil — el texto ya no va sobre la foto, .hz-page--home solo refuerza un poco
   el fondo. No degradado direccional. */
.hz-page--home .coverage__bloque-media::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(14,42,58,0.05) 0%, rgba(14,42,58,0.16) 100%);
  z-index: 1;
  pointer-events: none;
}
/* Accesibilidad: prefers-reduced-motion oculta el video y deja solo el poster */
@media (prefers-reduced-motion: reduce) {
  .hz-page--home .coverage__bloque-media video { visibility: hidden; }
  .hz-page--home .coverage__bloque-media { background-size: cover; background-position: center; }
  .hz-page--home .coverage__bloque-media:has(video[poster*="home-cobertura-gam"]) {
    background-image: url('imagenes-home/cobertura/home-cobertura-gam.jpg');
  }
  .hz-page--home .coverage__bloque-media:has(video[poster*="home-cobertura-costas"]) {
    background-image: url('imagenes-home/cobertura/home-cobertura-costas.jpg');
  }
}

/* Banda cream — delgada, .hz-page--home con grid 3 columnas (número | content | counter)
   Patch v27.1 (2026-05-26): texto más grande y marcado, .hz-page--home franja gana ~10px */
.hz-page--home .coverage__bloque-band {
  background: var(--bg-cream);
  padding: clamp(22px, 2.4vw, 32px) clamp(28px, 3vw, 48px);
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: clamp(22px, 2.6vw, 40px);
  align-items: center;
  border-top: 1px solid rgba(173,170,151,0.55);
}
.hz-page--home .coverage__bloque-num {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(34px, 3.6vw, 52px);
  line-height: 0.95;
  color: var(--hr-primary-deep);
  letter-spacing: -0.02em;
  border-right: 1px solid var(--hr-gold);
  padding-right: clamp(22px, 2.6vw, 40px);
}
.hz-page--home .coverage__bloque-text {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.hz-page--home .coverage__bloque-eyebrow {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--hr-gold-deep);
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 12px;
}
.hz-page--home .coverage__bloque-eyebrow::before {
  content: '';
  width: 26px; height: 1px;
  background: var(--hr-gold-deep);
}
.hz-page--home .coverage__bloque-title {
  font-family: var(--serif);
  font-size: clamp(28px, 2.8vw, 42px);
  line-height: 1.04;
  font-weight: 500;
  letter-spacing: -0.014em;
  color: var(--ink);
  margin: 0;
}
.hz-page--home .coverage__bloque-title em { font-style: italic; color: var(--hr-primary); font-weight: 500; }
.hz-page--home .coverage__bloque-sub {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(16px, 1.2vw, 19px);
  line-height: 1.45;
  color: var(--ink);
  margin: 0;
  max-width: 56ch;
}
.hz-page--home .coverage__bloque-count {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ink-soft);
  font-weight: 600;
  text-align: right;
  line-height: 1.5;
}
.hz-page--home .coverage__bloque-count strong {
  display: block;
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(26px, 2.6vw, 34px);
  font-weight: 500;
  color: var(--hr-primary-deep);
  letter-spacing: -0.01em;
  margin-bottom: 4px;
}

@media (max-width: 700px) {
  .hz-page--home .coverage__bloque-band {
    grid-template-columns: 1fr;
    gap: 14px;
    padding: 18px 22px 20px;
  }
  .hz-page--home .coverage__bloque-num {
    border-right: 0;
    border-bottom: 1px solid var(--hr-gold);
    padding: 0 0 10px;
  }
  .hz-page--home .coverage__bloque-count { text-align: left; }
}

/* Grid GAM: 5 columnas */
.hz-page--home .zones-grid--5col { grid-template-columns: repeat(5, 1fr); }

/* Grid Costas: 2 cards anchas */
.hz-page--home .zones-grid--2col-wide {
  grid-template-columns: 1fr 1fr;
  max-width: var(--max);
}
.hz-page--home .zones-grid--2col-wide .zone { aspect-ratio: 16 / 10; }
.hz-page--home .zones-grid--2col-wide .zone__name { font-size: clamp(36px, 4vw, 60px); }

/* Zone cards con border-radius sutil para conectar con los banners redondeados */
.hz-page--home .zone { border-radius: 12px; }

@media (max-width: 1200px) {
  .hz-page--home .zones-grid--5col { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 1000px) {
  .hz-page--home .coverage__bloque-tira { border-radius: 16px; }
  .hz-page--home .coverage__bloque-media { aspect-ratio: 24 / 9; }
  .hz-page--home .zones-grid--5col { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 700px) {
  .hz-page--home .coverage__bloque-tira { border-radius: 14px; }
  .hz-page--home .coverage__bloque-media { aspect-ratio: 16 / 10; }
  .hz-page--home .zones-grid--5col { grid-template-columns: repeat(2, 1fr); }
  .hz-page--home .zones-grid--2col-wide { grid-template-columns: 1fr; }
  .hz-page--home .zones-grid--2col-wide .zone { aspect-ratio: 16/10; }
}
.hz-page--home .zone {
  position: relative;
  aspect-ratio: 5/4;
  overflow: hidden;
  isolation: isolate;
  text-decoration: none;
  color: inherit;
  display: block;
}
.hz-page--home .zone__bg {
  position: absolute; inset: 0;
  background-color: var(--hr-primary);
  background-size: cover;
  background-position: center;
  filter: saturate(0.85) contrast(1.06) brightness(0.92);
  transition: transform 0.6s var(--ease-out), filter 0.5s var(--ease-out);
}
.hz-page--home .zone:hover .zone__bg { transform: scale(1.06); filter: saturate(1) contrast(1.06) brightness(1); }
.hz-page--home .zone::before {
  content: '';
  position: absolute; inset: 0;
  background: rgba(14,42,58,0.15);
  mix-blend-mode: multiply;
  z-index: 1;
  transition: opacity 0.4s var(--ease-out);
}
.hz-page--home .zone:hover::before { opacity: 0.5; }
.hz-page--home .zone__radial {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 70% 30%, rgba(14,42,58,0), rgba(14,42,58,0.5) 70%);
  z-index: 1;
  pointer-events: none;
}
.hz-page--home .zone__veil {
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, transparent 40%, rgba(14,42,58,0.88));
  z-index: 1;
  pointer-events: none;
}
.hz-page--home .zone__content {
  position: absolute; inset: 0;
  padding: 28px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  color: #FFFFFF;
  z-index: 2;
}
.hz-page--home .zone__region {
  font-family: var(--mono);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--hr-gold);
  margin-bottom: 14px;
}
.hz-page--home .zone__name {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(26px, 2.6vw, 34px);
  color: #FFFFFF;
  margin-bottom: 14px;
  letter-spacing: -0.01em;
  line-height: 1.04;
}
.hz-page--home .zone__link {
  font-family: var(--mono);
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #FFFFFF;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.hz-page--home .zone__link::after { content: '→'; transition: transform 0.25s; }
.hz-page--home .zone:hover .zone__link::after { transform: translateX(6px); }

/* Imágenes locales (ya están en producción, .hz-page--home vienen del media WP de /vender/) */
.hz-page--home .zone--escazu .zone__bg { background-image: url('assets/zonas/escazu.jpeg'); }
.hz-page--home .zone--santa-ana .zone__bg { background-image: url('assets/zonas/santa-ana.jpeg'); }
.hz-page--home .zone--la-guacima .zone__bg { background-image: url('assets/zonas/la-guacima.jpeg'); }
.hz-page--home .zone--sabana .zone__bg { background-image: url('assets/zonas/sabana.jpeg'); }
.hz-page--home .zone--rohrmoser .zone__bg { background-image: url('assets/zonas/rohrmoser.jpeg'); }
.hz-page--home .zone--montes-de-oca .zone__bg { background-image: url('assets/zonas/montes-de-oca.jpeg'); }
.hz-page--home .zone--curridabat .zone__bg { background-image: url('assets/zonas/curridabat.jpeg'); }
.hz-page--home .zone--la-union .zone__bg { background-image: url('assets/zonas/la-union.jpeg'); }
.hz-page--home .zone--heredia .zone__bg { background-image: url('assets/zonas/heredia.jpeg'); }
.hz-page--home .zone--cartago .zone__bg { background-image: url('assets/zonas/cartago.jpeg'); }
.hz-page--home .zone--guanacaste .zone__bg { background-image: url('assets/zonas/guanacaste.jpeg'); }
.hz-page--home .zone--pacifico .zone__bg { background-image: url('assets/zonas/pacifico.jpeg'); }
@media (max-width: 1100px) { .hz-page--home .zones-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 800px) { .hz-page--home .zones-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .hz-page--home .zones-grid { grid-template-columns: 1fr; } .hz-page--home .zone { aspect-ratio: 16/10; } }

/* ============================================================
   RECIENTES · grid de propiedades agregadas esta semana
   ============================================================ */
.hz-page--home .recent {
  background: var(--bg);
  padding: clamp(96px, 14vw, 180px) var(--gutter);
  border-bottom: 1px solid var(--line);
}
.hz-page--home .recent__head {
  max-width: var(--max);
  margin: 0 auto clamp(40px, 6vw, 64px);
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 56px;
  align-items: end;
}
.hz-page--home .recent__head-left { max-width: 32ch; }
.hz-page--home .recent__title {
  font-family: var(--serif);
  font-size: clamp(44px, 5.4vw, 84px);
  line-height: 1.02;
  font-weight: 400;
  letter-spacing: -0.014em;
  color: var(--ink);
  margin-bottom: 18px;
}
.hz-page--home .recent__title em { font-style: italic; color: var(--hr-primary); }
.hz-page--home .recent__sub {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(19px, 1.5vw, 23px);
  line-height: 1.5;
  color: var(--ink-soft);
  padding-left: 18px;
  border-left: 1px solid var(--hr-gold);
  max-width: 42ch;
}
.hz-page--home .recent__cta {
  justify-self: end;
  align-self: end;
}
.hz-page--home .recent__grid {
  max-width: var(--max);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}
@media (max-width: 900px) {
  .hz-page--home .recent__head { grid-template-columns: 1fr; gap: 24px; }
  .hz-page--home .recent__cta { justify-self: start; }
  .hz-page--home .recent__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .hz-page--home .recent__grid { grid-template-columns: 1fr; gap: 32px; }
}

/* ============================================================
   LECTURAS
   ============================================================ */
.hz-page--home .readings {
  background: var(--bg-cream);
  padding: clamp(96px, 14vw, 180px) var(--gutter);
}
.hz-page--home .readings__head {
  max-width: var(--max);
  margin: 0 auto clamp(56px, 8vw, 96px);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: end;
}
.hz-page--home .readings__title {
  font-family: var(--serif);
  font-size: clamp(40px, 5.5vw, 84px);
  line-height: 1.02;
  font-weight: 400;
  letter-spacing: -0.014em;
}
.hz-page--home .readings__title em { font-style: italic; color: var(--hr-primary); }
.hz-page--home .readings__cta { justify-self: end; align-self: end; }
.hz-page--home .readings__list { max-width: var(--max); margin: 0 auto; }
.hz-page--home .reading {
  display: grid;
  grid-template-columns: 80px 1.2fr 2fr auto;
  gap: 32px;
  padding: clamp(28px, 4vw, 48px) 0;
  border-top: 1px solid rgba(14,42,58,0.16);
  align-items: center;
  text-decoration: none;
  color: inherit;
  transition: padding-left 0.4s var(--ease-out);
}
.hz-page--home .reading:last-child { border-bottom: 1px solid rgba(14,42,58,0.16); }
.hz-page--home .reading:hover { padding-left: 20px; }
.hz-page--home .reading__num { font-family: var(--serif); font-style: italic; font-size: 18px; color: var(--hr-gold); font-weight: 400; }
.hz-page--home .reading__meta { font-family: var(--mono); font-size: 11px; letter-spacing: 0.24em; text-transform: uppercase; color: var(--hr-primary); font-weight: 600; }
.hz-page--home .reading__title { font-family: var(--serif); font-size: clamp(22px, 2.4vw, 32px); line-height: 1.2; font-weight: 500; color: var(--ink); letter-spacing: -0.01em; }
.hz-page--home .reading__arrow { font-family: var(--serif); font-style: italic; font-size: 24px; color: var(--hr-primary); transition: transform 0.35s var(--ease-out); }
.hz-page--home .reading:hover .reading__arrow { transform: translateX(10px); }
@media (max-width: 900px) {
  .hz-page--home .readings__head { grid-template-columns: 1fr; gap: 24px; }
  .hz-page--home .reading { grid-template-columns: 40px 1fr; gap: 12px; align-items: flex-start; }
  .hz-page--home .reading__meta, .hz-page--home .reading__title { grid-column: 2; }
  .hz-page--home .reading__title { font-size: 22px; }
  .hz-page--home .reading__arrow { display: none; }
}

/* ============================================================
   HABLEMOS
   ============================================================ */
.hz-page--home .talk {
  background: var(--bg-deeper);
  color: #FFFFFF;
  /* v1.13.23: padding-bottom 0 → clamp(80px,12vw,140px)
     para dar respiración antes del Footer Premium (ambos navy se veían pegados). */
  padding: clamp(120px, 18vw, 220px) var(--gutter) clamp(80px, 12vw, 140px);
  position: relative;
  overflow: hidden;
}
.hz-page--home .talk__bg-word {
  position: absolute;
  bottom: -10%;
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(180px, 32vw, 540px);
  font-weight: 300;
  color: rgba(255,255,255,0.04);
  line-height: 0.8;
  letter-spacing: -0.04em;
  user-select: none;
  pointer-events: none;
  white-space: nowrap;
}
.hz-page--home .talk__inner { position: relative; max-width: var(--max); margin: 0 auto; text-align: center; }
.hz-page--home .talk__eyebrow {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--hr-gold);
  font-weight: 600;
  margin-bottom: 32px;
  display: inline-flex;
  align-items: center;
  gap: 16px;
}
.hz-page--home .talk__eyebrow::before, .hz-page--home .talk__eyebrow::after { content:''; width: 32px; height: 1px; background: currentColor; }
.hz-page--home .talk__title {
  font-family: var(--serif);
  font-size: clamp(64px, 13vw, 220px);
  line-height: 0.92;
  font-weight: 300;
  letter-spacing: -0.028em;
  color: #FFFFFF;
  margin-bottom: 48px;
}
.hz-page--home .talk__title em { font-style: italic; color: var(--hr-gold); }
.hz-page--home .talk__lede {
  font-family: var(--sans);
  font-size: clamp(17px, 1.4vw, 20px);
  line-height: 1.55;
  color: rgba(255,255,255,0.72);
  font-weight: 300;
  max-width: 56ch;
  margin: 0 auto 48px;
}
.hz-page--home .talk__buttons { display: inline-flex; gap: 14px; flex-wrap: wrap; justify-content: center; margin-bottom: 64px; }
.hz-page--home .talk__channels {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: rgba(255,255,255,0.14);
  border-top: 1px solid rgba(255,255,255,0.14);
  border-bottom: 1px solid rgba(255,255,255,0.14);
  margin-top: 16px;
}
.hz-page--home .channel {
  background: var(--bg-deeper);
  padding: 40px 24px;
  text-align: left;
  text-decoration: none;
  color: inherit;
  transition: background 0.35s;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.hz-page--home .channel:hover { background: var(--bg-deep); }
.hz-page--home .channel__label { font-family: var(--mono); font-size: 10px; letter-spacing: 0.32em; text-transform: uppercase; color: var(--hr-gold); font-weight: 600; }
.hz-page--home .channel__value { font-family: var(--serif); font-style: italic; font-size: clamp(20px, 2vw, 26px); font-weight: 500; color: #FFFFFF; }
.hz-page--home .channel__hint { font-family: var(--sans); font-size: 13px; color: rgba(255,255,255,0.55); font-weight: 300; }
@media (max-width: 720px) { .hz-page--home .talk__channels { grid-template-columns: 1fr; } }
.hz-page--home .foot {
  position: relative;
  z-index: 1;
  margin-top: clamp(80px, 12vw, 140px);
  padding: 48px 0 36px;
  border-top: 1px solid rgba(255,255,255,0.10);
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 24px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.20em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.55);
  font-weight: 500;
}
.hz-page--home .foot a { transition: color 0.25s; }
.hz-page--home .foot a:hover { color: var(--hr-gold); }
.hz-page--home .foot__nav { display: flex; gap: 28px; flex-wrap: wrap; }

.hz-page--home .wa-float {
  position: fixed;
  bottom: 28px; right: 28px;
  width: 56px; height: 56px;
  background: var(--success);
  color: #FFFFFF;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 14px 32px rgba(37,211,102,0.45);
  z-index: 95;
  transition: transform 0.3s var(--ease-out), box-shadow 0.3s;
}
.hz-page--home .wa-float:hover { transform: scale(1.08); box-shadow: 0 18px 40px rgba(37,211,102,0.6); }
.hz-page--home .wa-float svg { width: 26px; height: 26px; }

.hz-page--home .reveal { opacity: 0; transform: translateY(28px); transition: opacity 1s var(--ease-out), transform 1s var(--ease-out); }
.hz-page--home .reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .hz-page--home .reveal { opacity: 1; transform: none; transition: none; } }

/* ============================================================================
   404 — Página no encontrada (Horizons Realty)  ·  since v1.16.1
   Scope .hz-page--404 (added by body_class filter on is_404()).
   Self-contained tokens (same values as the homepage scope) + the premium
   search band replicated 1:1 from the home so it renders identically.
   Markup: 404.php + template-parts/forms/search-band-hero.php
   JS:     assets/js/hr-404.js (inline on is_404())
   ============================================================================ */
.hz-page--404 {
  --hr-primary: #186B99;
  --hr-secondary: #2781AD;
  --hr-gold: #ADAA97;
  --bg: #FBFAF7;
  --bg-deep: #0E2A3A;
  --bg-deeper: #061319;
  --ink: #0E2A3A;
  --ink-soft: #4A5A66;
  --ink-mute: #8B95A0;
  --line: rgba(14,42,58,0.12);
  --line-strong: rgba(14,42,58,0.22);
  --success: #25D366;
  --serif: 'Cormorant Garamond', Georgia, serif;
  --sans: 'Outfit', -apple-system, system-ui, sans-serif;
  --mono: 'Manrope', sans-serif;
  --gutter: clamp(20px, 4vw, 56px);
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
}
.hz-page--404 *, .hz-page--404 *::before, .hz-page--404 *::after { box-sizing: border-box; }

/* ===== HERO oscuro editorial ===== */
.hz-page--404 .e404 {
  position: relative; overflow: hidden;
  background: var(--bg-deep); color: #fff;
  padding: clamp(76px, 11vh, 120px) var(--gutter) clamp(56px, 9vh, 96px);
}
.hz-page--404 .e404__bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.hz-page--404 .e404__bg::before {
  content: ''; position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 75% 55% at 50% 18%, rgba(38,129,173,0.30) 0%, rgba(14,42,58,0) 60%),
    radial-gradient(ellipse 60% 50% at 85% 92%, rgba(24,107,153,0.22) 0%, rgba(14,42,58,0) 65%);
}
.hz-page--404 .e404__grain {
  position: absolute; inset: 0; z-index: 0; opacity: 0.4; mix-blend-mode: overlay; pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.92' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.06 0 0 0 0 0.16 0 0 0 0 0.22 0 0 0 0.55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.hz-page--404 .e404__ghost {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%, -54%); z-index: 0;
  font-family: var(--serif); font-style: italic; font-weight: 300;
  font-size: clamp(220px, 40vw, 560px); line-height: 0.8; letter-spacing: -0.04em;
  color: rgba(255,255,255,0.035); user-select: none; pointer-events: none; white-space: nowrap;
}
.hz-page--404 .e404__inner {
  position: relative; z-index: 2; max-width: 1020px; margin: 0 auto;
  text-align: center; display: flex; flex-direction: column; align-items: center;
}
.hz-page--404 .e404__eyebrow {
  font-family: var(--mono); font-size: clamp(13px, 1.5vw, 16px); letter-spacing: 0.26em; text-transform: uppercase;
  color: rgba(255,255,255,0.92); font-weight: 700;
  display: inline-flex; align-items: center; gap: 18px; margin-bottom: 30px;
}
.hz-page--404 .e404__eyebrow::before, .hz-page--404 .e404__eyebrow::after { content: ''; width: 40px; height: 1px; background: var(--hr-gold); }
.hz-page--404 .e404__eyebrow-code { color: var(--hr-gold); font-weight: 800; font-size: 1.22em; letter-spacing: 0.16em; }
.hz-page--404 .e404__title {
  font-family: var(--serif); font-weight: 300; font-size: clamp(36px, 5.6vw, 80px); line-height: 1.02;
  letter-spacing: -0.018em; color: #fff; max-width: 18ch; margin: 0 auto 22px;
}
.hz-page--404 .e404__title em { font-style: italic; color: var(--hr-gold); }
.hz-page--404 .e404__sub {
  font-family: var(--sans); font-weight: 300; font-size: clamp(15px, 1.5vw, 18.5px); line-height: 1.65;
  color: rgba(255,255,255,0.82); max-width: 60ch; margin: 0 auto clamp(20px, 2.4vw, 28px);
}

/* ===== SEARCH BAND PREMIUM (1:1 con .hz-page--home) ===== */
.hz-page--404 .search-band { position: relative; width: 100%; max-width: 860px; margin: 0 auto; z-index: 10; }
.hz-page--404 .search-band__pills { display: inline-flex; flex-wrap: wrap; gap: 10px; margin: 0 0 18px; position: relative; }
.hz-page--404 .search-band__pill {
  position: relative; font-family: var(--mono); font-size: 10px; letter-spacing: 0.22em; text-transform: uppercase;
  font-weight: 700; color: rgba(255,255,255,0.85); padding: 10px 22px; border: 1px solid rgba(255,255,255,0.18);
  border-radius: 8px; background: rgba(14,42,58,0.38); backdrop-filter: blur(20px) saturate(1.3);
  -webkit-backdrop-filter: blur(20px) saturate(1.3); cursor: pointer;
  transition: background 0.35s var(--ease-out), color 0.35s, border-color 0.35s, transform 0.3s, box-shadow 0.35s;
  box-shadow: 0 8px 24px -16px rgba(0,0,0,0.45);
}
.hz-page--404 .search-band__pill:hover { color: #fff; background: rgba(14,42,58,0.55); border-color: rgba(255,255,255,0.32); transform: translateY(-1px); }
.hz-page--404 .search-band__pill.is-active {
  color: var(--hr-primary); background: var(--bg); border-color: var(--bg);
  box-shadow: 0 1px 2px rgba(14,42,58,0.10), 0 12px 28px -10px rgba(14,42,58,0.30);
}
.hz-page--404 .search-band__card {
  background: var(--bg); border: 1px solid var(--line); border-radius: 14px; overflow: hidden; text-align: left;
  box-shadow: 0 1px 2px rgba(14,42,58,0.06), 0 14px 36px rgba(14,42,58,0.18), 0 60px 120px -40px rgba(0,0,0,0.55);
}
.hz-page--404 .search-band__main { display: grid; grid-template-columns: 1.3fr 1fr 1fr 0.85fr; border-bottom: 1px solid var(--line); }
.hz-page--404 .search-band__field { padding: 13px 18px; border-right: 1px solid var(--line); display: flex; flex-direction: column; gap: 4px; min-width: 0; position: relative; }
.hz-page--404 .search-band__main .search-band__field:last-of-type { border-right: none; }
.hz-page--404 .search-band__field label { font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--ink-soft); font-weight: 700; }
.hz-page--404 .search-band__field select, .hz-page--404 .search-band__field input[type="text"] {
  font-family: var(--serif); font-style: italic; font-size: 18px; font-weight: 600; color: var(--ink);
  border: none; background: transparent; outline: none; padding: 0; appearance: none; width: 100%; cursor: pointer; line-height: 1.2; letter-spacing: -0.005em;
}
.hz-page--404 .search-band__field input[type="text"] { cursor: text; }
.hz-page--404 .search-band__field input::placeholder { color: var(--ink-mute); font-style: italic; opacity: 1; }
.hz-page--404 .search-band__field--select::after {
  content: ''; position: absolute; right: 18px; top: 50%; width: 8px; height: 8px;
  border-right: 1.5px solid var(--ink-soft); border-bottom: 1.5px solid var(--ink-soft);
  transform: translateY(-30%) rotate(45deg); pointer-events: none; transition: border-color 0.25s;
}
.hz-page--404 .search-band__field--select:hover::after { border-color: var(--hr-primary); }
.hz-page--404 .search-band__price-row { padding: 14px 18px 16px; border-bottom: 1px solid var(--line); }
.hz-page--404 .search-band__bottom { display: grid; grid-template-columns: 1fr auto; align-items: stretch; }
.hz-page--404 .search-band__bottom .search-band__field { border-right: 1px solid var(--line); border-bottom: none; padding: 12px 18px; }
.hz-page--404 .search-band__submit {
  background: var(--bg-deep); color: #fff; font-family: var(--mono); font-size: 11px; letter-spacing: 0.22em;
  text-transform: uppercase; font-weight: 700; padding: 0 32px; display: inline-flex; align-items: center; gap: 12px;
  transition: background 0.3s, gap 0.3s var(--ease-out); border: none; white-space: nowrap; min-height: 64px; cursor: pointer;
}
.hz-page--404 .search-band__submit:hover { background: var(--hr-primary); gap: 18px; }
.hz-page--404 .search-band__submit svg { width: 14px; height: 14px; }

/* ===== Price range slider (1:1 con .hz-page--home) ===== */
.hz-page--404 .hr-range { display: grid; grid-template-columns: auto 1fr auto; gap: 0 32px; align-items: center; }
.hz-page--404 .hr-range__label { font-family: var(--mono); font-size: 11px; letter-spacing: 0.24em; text-transform: uppercase; color: var(--ink-mute); font-weight: 600; white-space: nowrap; grid-row: 1; grid-column: 1; }
.hz-page--404 .hr-range__values { display: inline-flex; align-items: baseline; gap: 18px; font-family: var(--serif); font-style: italic; font-size: 22px; font-weight: 500; color: var(--ink); letter-spacing: -0.005em; white-space: nowrap; grid-row: 1; grid-column: 3; justify-self: end; }
.hz-page--404 .hr-range__values .sep { font-family: var(--mono); font-style: normal; font-size: 10px; font-weight: 700; color: var(--ink-mute); letter-spacing: 0.28em; text-transform: uppercase; }
.hz-page--404 .hr-range__currency { font-size: 0.62em; color: var(--hr-gold); font-style: normal; margin-right: 3px; }
.hz-page--404 .hr-range__track-wrap { position: relative; height: 28px; display: flex; align-items: center; grid-row: 1; grid-column: 2; min-width: 200px; }
.hz-page--404 .hr-range__track { position: absolute; left: 0; right: 0; height: 2px; background: var(--line-strong); border-radius: 1px; }
.hz-page--404 .hr-range__track-fill { position: absolute; height: 2px; background: var(--hr-primary); border-radius: 1px; left: 0%; right: 0%; }
.hz-page--404 .hr-range__input { -webkit-appearance: none; appearance: none; position: absolute; width: 100%; height: 28px; background: transparent; pointer-events: none; z-index: 2; outline: none; margin: 0; padding: 0; }
.hz-page--404 .hr-range__input::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 28px; height: 28px; border-radius: 50%; background: #fff; border: 1.5px solid var(--hr-primary); cursor: grab; pointer-events: all; box-shadow: 0 1px 2px rgba(14,42,58,0.08), 0 4px 10px rgba(14,42,58,0.10), 0 14px 28px rgba(14,42,58,0.12); transition: transform 0.2s, box-shadow 0.2s; }
.hz-page--404 .hr-range__input::-webkit-slider-thumb:hover { transform: scale(1.10); }
.hz-page--404 .hr-range__input::-webkit-slider-thumb:active { cursor: grabbing; transform: scale(1.06); }
.hz-page--404 .hr-range__input::-moz-range-thumb { width: 28px; height: 28px; border-radius: 50%; background: #fff; border: 1.5px solid var(--hr-primary); cursor: grab; pointer-events: all; box-shadow: 0 1px 2px rgba(14,42,58,0.08), 0 4px 10px rgba(14,42,58,0.10), 0 14px 28px rgba(14,42,58,0.12); }
.hz-page--404 .hr-range__input::-moz-range-track { background: transparent; border: none; }
.hz-page--404 .hr-range__input:focus-visible::-webkit-slider-thumb { outline: 3px solid rgba(24,107,153,0.35); outline-offset: 2px; }

/* ===== Quick links ===== */
.hz-page--404 .e404__links { position: relative; z-index: 2; margin: clamp(28px, 3.4vw, 40px) auto 0; display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; align-items: center; }
.hz-page--404 .e404__links-lead { font-family: var(--mono); font-size: clamp(11px, 1.2vw, 13px); letter-spacing: 0.24em; text-transform: uppercase; color: rgba(255,255,255,0.65); margin-right: 6px; }
.hz-page--404 .e404__chip { font-family: var(--mono); font-size: clamp(12px, 1.3vw, 14px); letter-spacing: 0.1em; text-transform: uppercase; font-weight: 600; color: rgba(255,255,255,0.92); padding: 14px 26px; border: 1px solid rgba(255,255,255,0.22); border-radius: 999px; transition: all 0.25s var(--ease-out); display: inline-flex; align-items: center; gap: 9px; }
.hz-page--404 .e404__chip:hover { background: #fff; color: var(--bg-deep); border-color: #fff; transform: translateY(-1px); }
.hz-page--404 .e404__chip svg { width: 14px; height: 14px; }

/* ===== Sección clara: propiedades recientes ===== */
.hz-page--404 .e404-recent { padding: clamp(64px, 8vw, 104px) var(--gutter); background: var(--bg); }
.hz-page--404 .e404-recent__in { max-width: 1320px; margin: 0 auto; }
.hz-page--404 .e404-recent__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: clamp(28px, 3.5vw, 44px); flex-wrap: wrap; }
.hz-page--404 .e404-recent__eyebrow { font-family: var(--mono); font-size: 11px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--hr-primary); font-weight: 700; display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.hz-page--404 .e404-recent__eyebrow::before { content: ''; width: 28px; height: 1px; background: var(--hr-gold); }
.hz-page--404 .e404-recent__title { font-family: var(--serif); font-weight: 300; font-size: clamp(30px, 4vw, 52px); line-height: 1.05; letter-spacing: -0.015em; color: var(--ink); }
.hz-page--404 .e404-recent__title em { font-style: italic; color: var(--hr-primary); }
.hz-page--404 .e404-recent__cta { font-family: var(--mono); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; font-weight: 600; color: var(--ink); border: 1px solid var(--ink); padding: 14px 24px; display: inline-flex; align-items: center; gap: 10px; transition: all 0.25s; white-space: nowrap; }
.hz-page--404 .e404-recent__cta:hover { background: var(--ink); color: #fff; }
.hz-page--404 .e404-recent__cta svg { width: 14px; height: 14px; }
.hz-page--404 .e404-recent__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(18px, 2vw, 28px); }

/* ===== Responsive ===== */
@media (max-width: 1100px) {
  .hz-page--404 .search-band__main { grid-template-columns: 1fr 1fr; }
  .hz-page--404 .search-band__main .search-band__field { border-bottom: 1px solid var(--line); }
  .hz-page--404 .search-band__main .search-band__field:nth-of-type(odd) { border-right: 1px solid var(--line); }
  .hz-page--404 .search-band__main .search-band__field:nth-of-type(even) { border-right: none; }
  .hz-page--404 .search-band__main .search-band__field:nth-last-of-type(-n+2) { border-bottom: none; }
  .hz-page--404 .hr-range { grid-template-columns: 1fr; gap: 14px 0; }
  .hz-page--404 .hr-range__label { grid-row: 1; grid-column: 1; }
  .hz-page--404 .hr-range__values { grid-row: 2; grid-column: 1; justify-self: start; font-size: 20px; }
  .hz-page--404 .hr-range__track-wrap { grid-row: 3; grid-column: 1; }
  .hz-page--404 .e404-recent__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 700px) {
  .hz-page--404 .e404__title { font-size: clamp(28px, 8vw, 44px); max-width: 22ch; }
  .hz-page--404 .search-band { max-width: 100%; }
  .hz-page--404 .search-band__main { grid-template-columns: 1fr; }
  .hz-page--404 .search-band__main .search-band__field { border-right: none; }
  .hz-page--404 .search-band__bottom { grid-template-columns: 1fr; }
  .hz-page--404 .search-band__bottom .search-band__field { border-right: none; border-bottom: 1px solid var(--line); }
  .hz-page--404 .search-band__submit { padding: 20px; justify-content: center; min-height: auto; }
  .hz-page--404 .search-band__pill { padding: 12px 18px; }
  .hz-page--404 .e404__links { flex-direction: column; gap: 8px; }
  .hz-page--404 .e404__links-lead { margin: 0 0 4px; }
  .hz-page--404 .e404-recent__grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .hz-page--404 .e404__ghost { display: none; }
}

/* ============================================================
   v1.16.10 · Sticky bar auto-hide cuando el dropdown del menú está activo
   ============================================================
   Problema resuelto: en la ficha de propiedad (single-property), Houzez
   inyecta una sticky bar superior con el precio y botones (CALCULADORA,
   COMPARTIR, IMPRIMIR, WHATSAPP, AGENDAR VISITA). Con el z-index 1100 del
   nav la sticky bar queda por debajo del dropdown, lo cual resuelve el
   corte visual — pero el dropdown TAPABA el precio cuando se abría.

   Solución: cuando el JS añade .hr-dropdown-active al <body> (mientras
   el usuario tiene el cursor sobre un item del menú con children), la
   sticky bar de Houzez se desvanece elegantemente con un fade + slide-up
   de 220 ms. Al salir del menú, vuelve con la misma transición invertida.

   Selectores defensivos: usamos las clases conocidas de Houzez + un
   wildcard genérico para cubrir variaciones entre versiones del parent
   sin romper otros elementos sticky del sitio (footer cookie banner, etc).
   ============================================================ */
body.hr-dropdown-active .property-sticky-section,
body.hr-dropdown-active .sticky-detail-bar,
body.hr-dropdown-active .sticky-bar-detail,
body.hr-dropdown-active #sticky-detail-bar,
body.hr-dropdown-active .fave-sticky-nav,
body.hr-dropdown-active .property-sticky-nav,
body.hr-dropdown-active .houzez-sticky-bar,
body.hr-dropdown-active [class*="property-detail-sticky"],
body.hr-dropdown-active [class*="sticky_navbar"],
body.hr-dropdown-active .sticky_navbar_active {
  opacity: 0 !important;
  pointer-events: none !important;
  transform: translateY(-12px) !important;
  transition:
    opacity 220ms ease,
    transform 280ms cubic-bezier(0.65, 0, 0.25, 1) !important;
}

/* Transición de regreso suave (cuando .hr-dropdown-active se quita) */
.property-sticky-section,
.sticky-detail-bar,
.sticky-bar-detail,
#sticky-detail-bar,
.fave-sticky-nav,
.property-sticky-nav,
.houzez-sticky-bar,
[class*="property-detail-sticky"],
[class*="sticky_navbar"],
.sticky_navbar_active {
  transition:
    opacity 240ms ease,
    transform 320ms cubic-bezier(0.65, 0, 0.25, 1);
}
