:root {
  --bg: #F4EFE5;
  --bg-deep: #0F2418;
  --surface: #ffffff;
  --surface-warm: #EFE8DC;
  --surface-soft: #E6DFCF;
  --card: #FDFBF6;
  --text: #1A2218;
  --muted: #4A4E3E;
  --line: rgba(24, 53, 31, .13);
  --border: rgba(24, 53, 31, .13);
  --brand: #18351F;
  --brand-deep: #0F2418;
  --brand-soft: #1E3D22;
  --accent: #9A7A3A;
  --accent-text: #6A5020;
  --accent-strong: #866A2E;
  --accent-soft: rgba(154, 122, 58, .16);
  --white: #ffffff;
  --ivory: #F4EFE5;
  --shadow: 0 22px 60px rgba(15, 36, 24, .12);
  --shadow-soft: 0 18px 50px rgba(15, 36, 24, .10);
  --radius-lg: 28px;
  --radius-md: 18px;
  --radius-sm: 12px;
  --container: 1180px;
  --font-display: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: #F0E9DD;
  color: var(--text);
  line-height: 1.5;
}
body.modal-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
img { max-width: 100%; display: block; }
.container { width: min(calc(100% - 32px), var(--container)); margin-inline: auto; }
.section-pad { padding: 84px 0; }
.skip-link { position: absolute; left: -999px; top: 10px; z-index: 99; background: var(--accent); color: var(--brand); padding: 10px 14px; border-radius: 8px; }
.skip-link:focus { left: 10px; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(15, 36, 24, .88);
  backdrop-filter: blur(16px);
  color: var(--white);
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 16px 0; }
.brand { display: flex; align-items: center; gap: 12px; min-width: 210px; }
.brand-logo { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; border: 1px solid rgba(154,122,58,.65); color: var(--accent); font-weight: 800; letter-spacing: .05em; }
.brand-text { display: grid; line-height: 1.15; }
.brand-text small { color: rgba(255,255,255,.68); margin-top: 2px; }
.main-nav { display: flex; align-items: center; justify-content: center; gap: 20px; color: rgba(255,255,255,.76); font-size: .94rem; }
.main-nav a:hover { color: var(--accent); }

.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border-radius: 999px; min-height: 44px; padding: 12px 18px; border: 1px solid transparent; font-weight: 760; transition: transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease; }
.btn:hover { transform: translateY(-1px); }
.btn-primary { background: var(--accent); color: #111827; box-shadow: 0 12px 28px rgba(154,122,58,.22); }
.btn-secondary { border-color: rgba(154,122,58,.48); color: var(--brand); background: rgba(154,122,58,.12); }
.btn-ghost { border-color: var(--line); background: rgba(255,255,255,.62); color: var(--brand); }
.btn-header-whatsapp { min-height: 40px; padding: 10px 16px; }
.btn-header-instagram {
  min-height: 40px;
  padding: 10px 14px;
  box-shadow: none;
}
.btn-header-instagram .label-short { display: none; }
.whatsapp-float {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 76;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  padding: 0;
  border-radius: 50%;
  background: #1f8f45;
  color: #fff;
  border: 1px solid rgba(255,255,255,.18);
  box-shadow: 0 18px 44px rgba(15, 36, 24, .24);
  line-height: 1;
  transition: transform .18s ease, opacity .18s ease, box-shadow .18s ease, background .18s ease;
}
.whatsapp-float:hover,
.whatsapp-float:focus-visible {
  background: #176f36;
  transform: translateY(-2px);
  box-shadow: 0 22px 54px rgba(15, 36, 24, .30);
}
.whatsapp-float-icon {
  width: 31px;
  height: 31px;
  display: block;
  fill: currentColor;
}
body.modal-open .whatsapp-float {
  display: none;
}

.instagram-float {
  position: fixed;
  right: 18px;
  bottom: 88px;
  z-index: 76;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  padding: 0;
  border-radius: 50%;
  color: #fff;
  background:
    radial-gradient(circle at 30% 105%, #fdf497 0 16%, #fdf49700 17%),
    radial-gradient(circle at 30% 105%, #fd5949 0 38%, #d6249f 62%, #285aeb 100%);
  border: 1px solid rgba(255,255,255,.22);
  box-shadow: 0 18px 44px rgba(15, 36, 24, .18), 0 10px 30px rgba(214, 36, 159, .22);
  line-height: 1;
  transition: transform .18s ease, opacity .18s ease, box-shadow .18s ease;
}
.instagram-float:hover,
.instagram-float:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 22px 54px rgba(15, 36, 24, .22), 0 14px 38px rgba(214, 36, 159, .30);
}
.instagram-float-icon {
  width: 28px;
  height: 28px;
  display: block;
}
body.modal-open .instagram-float {
  display: none;
}

.hero { background: radial-gradient(circle at 76% 24%, rgba(154,122,58,.20), transparent 34%), linear-gradient(135deg, #0F2418, #112035 55%, #17283f); color: var(--white); padding-top: 92px; padding-bottom: 50px; }
.hero-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr); gap: 44px; align-items: center; }
.eyebrow { text-transform: uppercase; letter-spacing: .16em; color: var(--accent-text); font-size: .75rem; font-weight: 850; margin: 0 0 12px; }

.hero .eyebrow,
.future-panel .eyebrow,
.final-cta .eyebrow,
.site-footer .footer-title {
  color: var(--accent);
}

.hero h1 { font-size: clamp(2.4rem, 6vw, 5.4rem); line-height: .95; letter-spacing: -.055em; margin: 0; max-width: 900px; }
.hero-lead { color: rgba(255,255,255,.76); font-size: 1.1rem; max-width: 670px; margin: 24px 0 0; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.hero-actions .btn-secondary { color: var(--white); background: rgba(255,255,255,.06); }
.hero-panel { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12); border-radius: var(--radius-lg); padding: 18px; box-shadow: 0 30px 80px rgba(0,0,0,.22); display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.hero-stat { min-height: 116px; border-radius: 22px; padding: 18px; background: rgba(255,255,255,.08); display: grid; align-content: end; }
.hero-stat strong { color: var(--accent); font-size: 2rem; line-height: 1; }
.hero-stat span { color: rgba(255,255,255,.85); margin-top: 8px; }
.hero-stat-wide { grid-column: span 2; }
.quick-actions-wrap { margin-top: 40px; }
.quick-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.quick-action { border: 1px solid rgba(154,122,58,.34); background: rgba(255,255,255,.08); color: var(--white); border-radius: 999px; padding: 11px 16px; font-weight: 750; }
.quick-action:hover { background: rgba(154,122,58,.18); }

.trust-strip { background: var(--white); border-bottom: 1px solid var(--line); }
.trust-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); }
.trust-grid article { background: var(--white); padding: 28px; display: grid; gap: 6px; }
.trust-grid strong { color: var(--brand); }
.trust-grid span { color: var(--muted); }

.section-head { max-width: 780px; margin-bottom: 28px; }
.section-head h2, .two-col h2, .premium-card h2 { font-size: clamp(2rem, 4vw, 3.4rem); line-height: 1; letter-spacing: -.045em; margin: 0 0 14px; color: var(--brand); }
.section-head p, .two-col p { color: var(--muted); margin: 0; font-size: 1.04rem; }
.section-head.compact { text-align: center; margin-inline: auto; }
h2#vender-title { max-width: 38ch; line-height: 1.2; }

.filters-panel { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow); padding: 18px; display: grid; grid-template-columns: repeat(12, 1fr); gap: 14px; }
.filter-field { grid-column: span 3; display: grid; gap: 7px; }
.filter-field-search { grid-column: span 6; }
.filter-field label { font-size: .82rem; color: var(--muted); font-weight: 750; }
.filter-field input, .filter-field select { width: 100%; min-height: 46px; border-radius: 14px; border: 1px solid var(--line); padding: 0 12px; background: #FAF7F0; color: var(--text); outline: none; }
.filter-field input:focus, .filter-field select:focus { border-color: var(--accent); box-shadow: 0 0 0 4px var(--accent-soft); }
.filters-actions { grid-column: span 12; display: flex; flex-wrap: wrap; gap: 10px; padding-top: 4px; }
.results-toolbar { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin: 26px 0 18px; }
.results-count { margin: 0; color: var(--muted); font-weight: 740; }
.active-filters { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 8px; }
.filter-chip { border: 1px solid rgba(154,122,58,.42); background: var(--accent-soft); color: var(--brand); border-radius: 999px; padding: 8px 11px; font-weight: 760; font-size: .88rem; }
.clear-chip { border-color: var(--line); background: var(--white); }
.notice { margin: 12px 0; padding: 12px 14px; border-radius: 14px; background: #fff6df; border: 1px solid rgba(154,122,58,.35); color: #6d5318; font-weight: 720; }

.properties-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.property-card { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; box-shadow: 0 16px 45px rgba(15, 36, 24, .08); display: grid; }
.property-media { min-height: 210px; background: linear-gradient(135deg, #17283f, #0d1726); position: relative; display: grid; place-items: center; color: rgba(255,255,255,.72); }
.property-media::before { content: ''; width: 78%; height: 58%; border-radius: 28px; border: 1px solid rgba(154,122,58,.28); background: radial-gradient(circle at 40% 30%, rgba(154,122,58,.25), transparent 38%); }
.badges { position: absolute; top: 12px; left: 12px; right: 12px; display: flex; flex-wrap: wrap; gap: 8px; }
.badge { border-radius: 999px; padding: 6px 9px; font-size: .72rem; font-weight: 860; background: rgba(255,255,255,.9); color: var(--brand); }
.badge-accent { background: var(--accent); color: #111827; }
.badge-status { background: rgba(14,27,42,.88); color: var(--white); }
.property-body { padding: 18px; display: grid; gap: 14px; }
.property-price { color: var(--brand); font-size: 1.35rem; font-weight: 900; letter-spacing: -.03em; }
.property-title { margin: 0; font-size: 1.12rem; line-height: 1.18; color: var(--brand); }
.property-meta { color: var(--muted); display: flex; flex-wrap: wrap; gap: 7px; font-size: .92rem; }
.property-features { display: flex; flex-wrap: wrap; gap: 8px; }
.feature-pill { border-radius: 999px; background: #EDE6D8; color: var(--brand); padding: 7px 9px; font-size: .82rem; font-weight: 750; }
.card-tags { display: flex; flex-wrap: wrap; gap: 7px; }
.card-tag { color: var(--muted); font-size: .78rem; background: #F2ECE0; border-radius: 999px; padding: 6px 8px; }
.card-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.card-actions .btn { min-height: 40px; padding: 10px 12px; font-size: .9rem; }

.empty-state { background: var(--white); border-radius: var(--radius-lg); padding: 34px; text-align: center; border: 1px solid var(--line); box-shadow: var(--shadow); }
.empty-state h3 { margin: 0 0 8px; color: var(--brand); font-size: 1.8rem; }
.empty-state p { color: var(--muted); margin: 0 0 18px; }
.load-more-wrap { display: flex; justify-content: center; padding-top: 24px; }

.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; align-items: center; }
.seller-section { background: #FAF7F0; }
.seller-alt { background: #F0E9DD; }
.premium-card { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 30px; box-shadow: var(--shadow); }
.premium-card h3 { color: var(--brand); font-size: 1.6rem; margin: 0 0 16px; }
.check-list, .process-list { margin: 0 0 22px; padding-left: 22px; color: var(--muted); }
.check-list li, .process-list li { margin-bottom: 8px; }
.future-panel { background: #0F2418; color: var(--white); }
.future-panel .premium-card { background: rgba(255,255,255,.08); color: var(--white); border-color: rgba(255,255,255,.12); }
.future-panel h2 { color: var(--white); }
.future-panel p { color: rgba(255,255,255,.72); }
.faq-section { background: #FAF7F0; }
.faq-list { display: grid; gap: 12px; }
details { background: var(--white); border: 1px solid var(--line); border-radius: 18px; padding: 18px 20px; }
summary { cursor: pointer; font-weight: 850; color: var(--brand); }
details p { color: var(--muted); margin: 12px 0 0; }

.site-footer { background: var(--brand); color: var(--white); padding: 44px 0; }
.footer-grid { display: grid; grid-template-columns: 1.2fr .8fr 1fr; gap: 24px; }
.footer-grid p { color: rgba(255,255,255,.68); margin: 8px 0 0; }
.footer-title { display: block; font-weight: 850; color: var(--accent); margin-bottom: 8px; }
.footer-grid a { display: block; color: rgba(255,255,255,.85); margin-top: 6px; }
.footer-grid a[hidden] { display: none; }

.toast { position: fixed; left: 50%; bottom: 22px; transform: translateX(-50%); z-index: 90; background: #111827; color: var(--white); padding: 12px 16px; border-radius: 999px; box-shadow: 0 16px 48px rgba(0,0,0,.22); max-width: min(92%, 520px); }
.modal { position: fixed; inset: 0; z-index: 80; display: none; }
.modal.is-open { display: block; }
.modal-backdrop { position: absolute; inset: 0; background: rgba(15, 36, 24, .72); backdrop-filter: blur(6px); }
.modal-dialog { position: relative; width: min(calc(100% - 32px), 980px); max-height: calc(100vh - 42px); overflow: auto; margin: 20px auto; background: var(--white); border-radius: 28px; box-shadow: 0 34px 120px rgba(0,0,0,.34); }
.modal-close { position: sticky; top: 14px; left: calc(100% - 58px); z-index: 2; width: 42px; height: 42px; border: 0; border-radius: 50%; background: var(--brand); color: var(--white); font-size: 1.6rem; line-height: 1; }
.modal-content { padding: 0 26px 28px; }
.modal-gallery { display: grid; grid-template-columns: 2fr 1fr; gap: 10px; padding: 0 26px 18px; }
.modal-image, .modal-thumb { min-height: 250px; border-radius: 22px; background: linear-gradient(135deg, #17283f, #0d1726); border: 1px solid rgba(154,122,58,.24); display: grid; place-items: center; color: rgba(255,255,255,.65); }
.modal-thumbs { display: grid; gap: 10px; }
.modal-thumb { min-height: 76px; border-radius: 16px; cursor: pointer; transition: opacity .18s, box-shadow .18s; }
.modal-thumb:hover, .modal-thumb:focus-visible { opacity: .82; box-shadow: 0 0 0 3px var(--accent); outline: none; }
.modal-thumb.is-active { box-shadow: 0 0 0 3px var(--accent); opacity: 1; }
.modal-header { display: grid; gap: 8px; margin-bottom: 20px; }
.modal-header h2 { font-size: clamp(1.8rem, 4vw, 3rem); line-height: 1; letter-spacing: -.04em; margin: 0; color: var(--brand); }
.modal-key-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin: 18px 0; }
.key-card { background: #F2ECE0; border-radius: 16px; padding: 12px; display: grid; gap: 4px; }
.key-card span { color: var(--accent-text); font-size: .78rem; font-weight: 760; }
.key-card strong { color: var(--brand); }
.modal-details { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 16px; color: var(--muted); margin: 20px 0; }
.modal-details strong { color: var(--brand); }
.modal-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }

@media (max-width: 960px) {
  .main-nav { display: none; }
  .hero-grid, .two-col { grid-template-columns: 1fr; }
  .properties-grid { grid-template-columns: repeat(2, 1fr); }
  .filter-field, .filter-field-search { grid-column: span 6; }
  .footer-grid { grid-template-columns: 1fr; }
  .modal-key-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 680px) {
  .container { width: min(calc(100% - 24px), var(--container)); }
  .section-pad { padding: 58px 0; }
  .header-inner { gap: 10px; }
  .brand { min-width: 0; }
  .brand-text small { display: none; }
  .btn-header-whatsapp,
  .btn-header-instagram {
    display: inline-flex;
    min-height: 40px;
    padding: 9px 12px;
    font-size: .82rem;
    white-space: nowrap;
  }
  .btn-header-instagram {
    min-width: 44px;
    padding-inline: 11px;
  }
  .btn-header-instagram .label-full { display: none; }
  .btn-header-instagram .label-short { display: inline; }
  .hero { padding-top: 64px; }
  .hero-panel, .trust-grid, .properties-grid { grid-template-columns: 1fr; }
  .hero-stat-wide { grid-column: span 1; }
  .trust-grid article { padding: 22px; }
  .filters-panel { padding: 14px; }
  .filter-field, .filter-field-search { grid-column: span 12; }
  .filters-actions { display: grid; grid-template-columns: 1fr; }
  .results-toolbar { display: grid; }
  .active-filters { justify-content: flex-start; }
  .card-actions { grid-template-columns: 1fr; }
  .modal-dialog { width: min(calc(100% - 18px), 980px); margin: 9px auto; max-height: calc(100vh - 18px); }
  .modal-gallery { grid-template-columns: 1fr; padding: 0 14px 16px; }
  .modal-content { padding: 0 14px 20px; }
  .modal-thumbs { grid-template-columns: repeat(3, 1fr); }
  .modal-image { min-height: 220px; }
  .modal-thumb { min-height: 76px; }
  .modal-details { grid-template-columns: 1fr; }
  .modal-actions { display: grid; }
  .quick-actions { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 4px; }
  .quick-action { white-space: nowrap; }
}

@media (max-width: 420px) {
  .header-inner { gap: 8px; }
  .brand-logo.has-logo { width: 132px; height: 38px; }
  .btn-header-whatsapp { padding-inline: 10px; }
}

/* Herramientas internas de carga · Fase 2.5 */
.tool-page { background: #F4EFE5; color: var(--text); }
.tool-shell { width: min(calc(100% - 28px), 1180px); margin: 0 auto; padding: 34px 0 64px; }
.tool-hero { background: var(--brand); color: var(--white); border-radius: 30px; padding: clamp(28px, 6vw, 58px); margin-bottom: 18px; box-shadow: var(--shadow); }
.tool-hero h1 { margin: 0 0 12px; font-size: clamp(2rem, 5vw, 4rem); letter-spacing: -.05em; line-height: .96; }
.tool-hero p { max-width: 760px; color: rgba(255,255,255,.76); }
.tool-card { background: var(--white); border: 1px solid var(--line); border-radius: 24px; padding: 22px; box-shadow: 0 14px 34px rgba(15,27,43,.07); margin-bottom: 16px; }
.tool-card h2 { color: var(--brand); margin: 0 0 12px; font-size: 1.55rem; letter-spacing: -.03em; }
.tool-card h3 { color: var(--brand); margin: 18px 0 10px; }
.tool-muted { color: var(--muted); }
.tool-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.tool-file { display: grid; gap: 10px; padding: 18px; border: 1px dashed rgba(154,122,58,.65); border-radius: 18px; background: #FAF7F0; font-weight: 850; color: var(--brand); }
.tool-file input { display: block; color: var(--muted); }
.tool-details { margin-top: 14px; }
.tool-details textarea, .manual-form textarea { width: 100%; border: 1px solid var(--line); border-radius: 16px; padding: 12px; font: inherit; resize: vertical; }
.tool-options { display: flex; flex-wrap: wrap; gap: 12px; }
.tool-options label, .check-row { display: inline-flex; align-items: center; gap: 8px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 999px; background: #FAF7F0; color: var(--brand); font-weight: 760; }
.summary-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; margin: 14px 0; }
.summary-grid article { border: 1px solid var(--line); border-radius: 16px; padding: 14px; background: #FAF7F0; display: grid; gap: 4px; }
.summary-grid strong { color: var(--brand); font-size: 1.35rem; }
.summary-grid span { color: var(--muted); font-size: .82rem; }
.tool-alert { border-radius: 16px; padding: 12px 14px; margin: 12px 0; font-weight: 780; }
.tool-alert[data-type="error"] { background: #fff1f1; border: 1px solid #ffc9c9; color: #7f1d1d; }
.tool-alert[data-type="ok"] { background: #eefaf1; border: 1px solid #b7e8c1; color: #14532d; }
.preview-wrap { overflow: auto; border: 1px solid var(--line); border-radius: 18px; margin: 14px 0; }
.preview-table { width: 100%; border-collapse: collapse; min-width: 1120px; font-size: .88rem; }
.preview-table th, .preview-table td { border-bottom: 1px solid var(--line); padding: 10px; text-align: left; vertical-align: top; }
.preview-table th { position: sticky; top: 0; background: var(--brand); color: var(--white); }
.preview-table .row-error td:first-child { color: #991b1b; }
.preview-table .row-advertencia td:first-child { color: #92400e; }
.preview-table .row-duplicado td:first-child { color: #7c2d12; }
.preview-table .row-ok td:first-child { color: #166534; }
.manual-form { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.manual-form label { display: grid; gap: 7px; color: var(--brand); font-weight: 780; }
.manual-form input, .manual-form select, .manual-form textarea { width: 100%; min-height: 44px; border: 1px solid var(--line); border-radius: 14px; padding: 10px 12px; background: #FAF7F0; font: inherit; color: var(--text); }
.manual-form .full-field { grid-column: 1 / -1; }
.form-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.code-preview { white-space: pre-wrap; max-height: 460px; overflow: auto; background: #0F2418; color: #f8fafc; padding: 16px; border-radius: 16px; }
.btn.is-disabled, a.is-disabled { opacity: .55; cursor: not-allowed; }
.property-media.has-image, .modal-image.has-image, .modal-thumb.has-image { background-size: cover; background-position: center; }
.modal-note { color: var(--muted); font-size: .9rem; }

@media (max-width: 900px) {
  .summary-grid, .manual-form { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px) {
  .summary-grid, .manual-form { grid-template-columns: 1fr; }
  .tool-options, .tool-actions, .form-actions { display: grid; }
}

/* Fase 3 · Conversión comercial */
.section-pad-sm { padding: 42px 0; }
.trust-section { background: #FAF7F0; border-bottom: 1px solid var(--line); }
.trust-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 14px; }
.trust-metric { background: var(--brand); color: var(--white); border-radius: 20px; padding: 18px; text-align: center; }
.trust-metric strong { display: block; color: var(--accent); font-size: 1.8rem; line-height: 1; }
.trust-metric span { color: rgba(255,255,255,.72); font-size: .88rem; }
.lead-section { background: #F0E9DD; }
.lead-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 32px; align-items: start; }
.reverse-grid { grid-template-columns: 1fr 1fr; }
.compact-list { margin-top: 18px; }
.lead-form { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.lead-form h3 { grid-column: 1 / -1; }
.lead-form label, .modal-lead-form label { display: grid; gap: 7px; color: var(--accent-text); font-weight: 780; }
.lead-form input, .lead-form select, .lead-form textarea, .modal-lead-form input, .modal-lead-form textarea { width: 100%; min-height: 46px; border: 1px solid var(--line); border-radius: 14px; padding: 11px 12px; background: #FAF7F0; color: var(--text); }
.lead-form textarea, .modal-lead-form textarea { resize: vertical; }
.full-field { grid-column: 1 / -1; }
.form-error { grid-column: 1 / -1; margin: 0; padding: 10px 12px; border-radius: 14px; background: #fff1f1; border: 1px solid #ffc9c9; color: #7f1d1d; font-weight: 760; }
.lead-form .btn { grid-column: 1 / -1; }
.modal-lead-form { margin-top: 22px; padding: 20px; border: 1px solid var(--line); border-radius: 22px; background: #FAF7F0; display: grid; gap: 14px; }
.modal-lead-form h3 { margin: 0; color: var(--brand); }
.modal-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.local-seo-section { background: #FAF7F0; }
.local-seo-card h2 { margin-top: 0; }
.nearby-zones { margin-top: 14px; color: var(--muted); font-weight: 760; }
.final-cta { background: radial-gradient(circle at 20% 20%, rgba(154,122,58,.18), transparent 30%), var(--brand); color: var(--white); }
.cta-card { text-align: center; max-width: 920px; }
.cta-card h2 { margin: 0 0 14px; font-size: clamp(2rem, 5vw, 4rem); line-height: 1; letter-spacing: -.05em; }
.cta-card p { color: rgba(255,255,255,.72); max-width: 680px; margin: 0 auto; }
.centered-actions { justify-content: center; }
.final-cta .btn-secondary { color: var(--white); background: rgba(255,255,255,.06); }
.mobile-sticky-cta { position: fixed; left: 10px; right: 10px; bottom: 10px; z-index: 70; display: none; grid-template-columns: 1fr .8fr .8fr; gap: 8px; padding: 8px; border: 1px solid rgba(255,255,255,.24); border-radius: 22px; background: rgba(8,17,29,.92); backdrop-filter: blur(16px); box-shadow: 0 16px 45px rgba(0,0,0,.22); }
.mobile-sticky-cta .btn { min-height: 42px; padding: 10px 12px; font-size: .88rem; }
.mobile-sticky-cta .btn-secondary, .mobile-sticky-cta .btn-ghost { color: var(--white); border-color: rgba(255,255,255,.18); background: rgba(255,255,255,.08); }
body.has-sticky-cta { padding-bottom: 0; }
body.modal-open .mobile-sticky-cta { display: none; }
.btn.is-disabled, a.is-disabled { opacity: .68; cursor: not-allowed; pointer-events: auto; filter: grayscale(.12); }
.brand-logo.has-logo { overflow: hidden; background: var(--white); }
.brand-logo.has-logo img { width: 100%; height: 100%; object-fit: cover; }

@media (max-width: 960px) {
  .lead-grid, .reverse-grid { grid-template-columns: 1fr; }
  .trust-metrics { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 680px) {
  body.has-sticky-cta { padding-bottom: 92px; }
  .mobile-sticky-cta { display: grid; }
  .lead-form, .modal-form-grid { grid-template-columns: 1fr; }
  .trust-metrics { grid-template-columns: 1fr; }
  .lead-grid { gap: 20px; }
  .modal-lead-form { padding: 16px; }
}

/* Fase 3.1 · Estética premium Horizonte Propiedades
   Dirección visual: inmobiliaria boutique, verde profundo, marfil y acento dorado sobrio. */
body {
  background:
    radial-gradient(circle at 8% 0%, rgba(154, 122, 58, .08), transparent 28%),
    linear-gradient(180deg, var(--bg), #E6DFCF 100%);
  color: var(--text);
}
body::before {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  background-image: linear-gradient(rgba(24, 53, 31, .025) 1px, transparent 1px), linear-gradient(90deg, rgba(24, 53, 31, .025) 1px, transparent 1px);
  background-size: 42px 42px;
  opacity: .45;
  z-index: -1;
}
.site-header {
  background: rgba(247, 244, 236, .92);
  color: var(--brand);
  border-bottom: 1px solid rgba(24, 53, 31, .12);
  box-shadow: 0 12px 36px rgba(15, 36, 24, .06);
}
.header-inner { padding: 12px 0; }
.brand { min-width: 180px; }
.brand-logo {
  border-color: rgba(24, 53, 31, .18);
  color: var(--brand);
  background: var(--surface-warm);
}
.brand-logo.has-logo {
  width: 168px;
  height: 50px;
  border-radius: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.brand-logo.has-logo img { width: 100%; height: 100%; object-fit: contain; }
.brand-logo.has-logo + .brand-text { display: none; }
.brand-text small { color: var(--muted); }
.main-nav { color: rgba(31, 36, 28, .76); }
.main-nav a { position: relative; padding: 8px 0; }
.main-nav a::after { content: ''; position: absolute; left: 0; right: 0; bottom: 1px; height: 1px; background: var(--accent); transform: scaleX(0); transform-origin: left; transition: transform .18s ease; }
.main-nav a:hover { color: var(--brand); }
.main-nav a:hover::after { transform: scaleX(1); }
.btn { letter-spacing: .005em; }
.btn-header-instagram .label-short { display: none; }
.btn-primary {
  background: var(--brand);
  color: var(--ivory);
  border-color: rgba(154, 122, 58, .36);
  box-shadow: 0 14px 34px rgba(15, 36, 24, .20);
}
.btn-primary:hover { box-shadow: 0 18px 44px rgba(15, 36, 24, .25); }
.btn-secondary {
  border-color: rgba(24, 53, 31, .24);
  color: var(--brand);
  background: rgba(239, 232, 220, .75);
}
.btn-ghost {
  border-color: rgba(24, 53, 31, .16);
  background: rgba(255, 253, 248, .72);
  color: var(--brand);
}
.hero {
  background:
    radial-gradient(circle at 78% 18%, rgba(154, 122, 58, .20), transparent 30%),
    radial-gradient(circle at 18% 88%, rgba(239, 232, 220, .08), transparent 32%),
    linear-gradient(135deg, var(--brand-deep), var(--brand) 58%, var(--brand-soft));
  color: var(--ivory);
  padding-top: 106px;
  padding-bottom: 58px;
  position: relative;
  overflow: hidden;
}
.hero::before {
  content: '';
  position: absolute;
  inset: 22px;
  border: 1px solid rgba(239, 232, 220, .10);
  border-radius: 36px;
  pointer-events: none;
}
.hero-copy { position: relative; }

.hero .eyebrow,
.future-panel .eyebrow,
.final-cta .eyebrow,
.site-footer .footer-title {
  color: var(--accent);
}

.hero h1 {
  max-width: 860px;
  letter-spacing: -.06em;
  text-wrap: balance;
  font-family: var(--font-display);
  font-weight: 500;
}
.hero-lead { color: rgba(239, 232, 220, .88); font-size: clamp(1.05rem, 1.7vw, 1.22rem); }
.eyebrow { color: var(--accent-text); letter-spacing: .18em; }
.hero-panel {
  background: rgba(239, 232, 220, .075);
  border: 1px solid rgba(239, 232, 220, .14);
  box-shadow: 0 34px 84px rgba(0,0,0,.20);
}
.hero-stat {
  background: rgba(239, 232, 220, .08);
  border: 1px solid rgba(239, 232, 220, .08);
}
.hero-stat strong { color: var(--accent); font-family: var(--font-display); font-weight: 500; }
.hero-stat span { color: rgba(239, 232, 220, .76); }
.hero-actions .btn-secondary, .final-cta .btn-secondary {
  color: var(--ivory);
  border-color: rgba(239, 232, 220, .22);
  background: rgba(239, 232, 220, .08);
}
.quick-actions-wrap { position: relative; }
.quick-action {
  background: rgba(239, 232, 220, .09);
  border-color: rgba(154, 122, 58, .32);
  color: var(--ivory);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
}
.quick-action:hover { background: rgba(154, 122, 58, .16); border-color: rgba(154, 122, 58, .55); }
.trust-section {
  background: linear-gradient(180deg, #F4EFE5, var(--bg));
  border-bottom: 1px solid rgba(24, 53, 31, .10);
}
.trust-grid { background: transparent; gap: 14px; }
.trust-grid article {
  background: rgba(255, 253, 248, .78);
  border: 1px solid rgba(24, 53, 31, .12);
  border-radius: 24px;
  box-shadow: 0 12px 36px rgba(15, 36, 24, .06);
}
.trust-grid strong, .section-head h2, .two-col h2, .premium-card h2, .premium-card h3 { color: var(--brand); }
.section-head h2, .two-col h2, .premium-card h2, .cta-card h2, .modal-header h2 {
  font-family: var(--font-display);
  font-weight: 500;
  letter-spacing: -.045em;
  text-wrap: balance;
}
.properties-section { background: linear-gradient(180deg, var(--bg), #f1eadf); }
.filters-panel {
  background: rgba(255, 253, 248, .86);
  border: 1px solid rgba(24, 53, 31, .13);
  box-shadow: 0 20px 60px rgba(15, 36, 24, .10);
}
.filter-field label { color: var(--accent-text); }
.filter-field input, .filter-field select, .lead-form input, .lead-form select, .lead-form textarea, .modal-lead-form input, .modal-lead-form textarea {
  background: #FDFBF6;
  border-color: rgba(24, 53, 31, .16);
  color: var(--text);
}
.filter-field input:focus, .filter-field select:focus, .lead-form input:focus, .lead-form select:focus, .lead-form textarea:focus, .modal-lead-form input:focus, .modal-lead-form textarea:focus {
  border-color: rgba(154, 122, 58, .80);
  box-shadow: 0 0 0 4px rgba(154, 122, 58, .16);
  outline: none;
}
.results-count { color: rgba(31, 36, 28, .68); }
.filter-chip {
  border-color: rgba(24, 53, 31, .20);
  background: rgba(239, 232, 220, .88);
  color: var(--brand);
}
.clear-chip { background: #FDFBF6; }
.properties-grid { gap: 22px; }
.property-card {
  background: #FDFBF6;
  border: 1px solid rgba(24, 53, 31, .13);
  box-shadow: 0 18px 48px rgba(15, 36, 24, .09);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.property-card[data-open-property-card] { cursor: pointer; }
.property-card[data-open-property-card]:focus-visible {
  outline: 3px solid rgba(154, 122, 58, .78);
  outline-offset: 5px;
}
.property-card:hover { transform: translateY(-3px); box-shadow: 0 26px 68px rgba(15, 36, 24, .13); border-color: rgba(154, 122, 58, .32); }
.property-media {
  background:
    radial-gradient(circle at 30% 24%, rgba(154, 122, 58, .28), transparent 33%),
    linear-gradient(135deg, var(--brand), var(--brand-deep));
  color: rgba(239, 232, 220, .72);
}
.property-media::before { border-color: rgba(239, 232, 220, .20); background: radial-gradient(circle at 40% 30%, rgba(154, 122, 58, .28), transparent 38%); }
.property-media span { position: absolute; z-index: 1; font-family: var(--font-display); letter-spacing: .04em; }
.badge { background: rgba(239, 232, 220, .92); color: var(--brand); }
.badge-accent { background: var(--accent); color: #1A2218; }
.badge-status { background: rgba(24, 53, 31, .88); color: var(--ivory); }
.property-body { gap: 13px; }
.property-topline { display: flex; justify-content: space-between; gap: 8px; color: var(--muted); font-size: .78rem; text-transform: uppercase; letter-spacing: .10em; font-weight: 800; }
.property-body h3 { margin: 0; color: var(--brand); font-size: 1.18rem; line-height: 1.14; letter-spacing: -.02em; }
.property-location { margin: -4px 0 0; color: var(--muted); font-size: .94rem; }
.property-price { color: var(--brand); font-family: var(--font-display); font-weight: 700; }
.property-features, .property-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.property-features span, .property-tags span {
  border-radius: 999px;
  padding: 7px 9px;
  background: rgba(239, 232, 220, .82);
  border: 1px solid rgba(24, 53, 31, .08);
  color: var(--brand);
  font-size: .80rem;
  font-weight: 750;
}
.property-tags span { color: var(--muted); background: #EFE8DC; }
.empty-state, .premium-card, details {
  background: rgba(255, 253, 248, .88);
  border-color: rgba(24, 53, 31, .13);
  box-shadow: 0 18px 48px rgba(15, 36, 24, .08);
}
.lead-section, .seller-section, .faq-section, .local-seo-section { background: linear-gradient(180deg, #F4EFE5, #E6DFCF); }
.seller-alt { background: linear-gradient(180deg, #E6DFCF, #F4EFE5); }
.lead-grid > div:first-child, .two-col > div:not(.premium-card) { align-self: center; }
.lead-form, .modal-lead-form { background: rgba(255, 253, 248, .92); }
.check-list li::marker, .process-list li::marker { color: var(--accent); font-weight: 900; }
.future-panel {
  background:
    radial-gradient(circle at 20% 20%, rgba(154, 122, 58, .15), transparent 30%),
    linear-gradient(135deg, var(--brand-deep), var(--brand));
  color: var(--ivory);
}
.future-panel .premium-card { background: rgba(239, 232, 220, .08); border-color: rgba(239, 232, 220, .14); }
.faq-list { max-width: 920px; margin-inline: auto; }
details { padding: 20px 22px; }
summary { color: var(--brand); }
.final-cta {
  background:
    radial-gradient(circle at 20% 20%, rgba(154, 122, 58, .18), transparent 30%),
    linear-gradient(135deg, var(--brand-deep), var(--brand));
  color: var(--ivory);
}
.cta-card { margin-inline: auto; }
.site-footer {
  background: var(--brand-deep);
  color: var(--ivory);
  border-top: 1px solid rgba(154, 122, 58, .25);
}
.footer-grid p, .footer-grid a { color: rgba(239, 232, 220, .72); }
.footer-title { color: var(--accent); }
.toast { background: var(--brand-deep); color: var(--ivory); border: 1px solid rgba(154, 122, 58, .25); }
.modal-backdrop { background: rgba(15, 36, 24, .74); }
.modal-dialog {
  background: #FDFBF6;
  border: 1px solid rgba(154, 122, 58, .20);
}
.modal-close { background: var(--brand); color: var(--ivory); }
.modal-image, .modal-thumb {
  background:
    radial-gradient(circle at 35% 25%, rgba(154, 122, 58, .28), transparent 35%),
    linear-gradient(135deg, var(--brand), var(--brand-deep));
  border-color: rgba(154, 122, 58, .25);
  color: rgba(239, 232, 220, .70);
}
.key-card { background: rgba(239, 232, 220, .78); border: 1px solid rgba(24, 53, 31, .08); }
.modal-note { color: var(--muted); }
.mobile-sticky-cta {
  background: rgba(247, 244, 236, .94);
  border-color: rgba(24, 53, 31, .14);
  box-shadow: 0 18px 44px rgba(15, 36, 24, .18);
}
.mobile-sticky-cta .btn-secondary, .mobile-sticky-cta .btn-ghost {
  color: var(--brand);
  border-color: rgba(24, 53, 31, .18);
  background: rgba(255, 253, 248, .82);
}
.tool-page { background: var(--bg); }
.tool-hero { background: linear-gradient(135deg, var(--brand-deep), var(--brand)); }
.code-preview { background: var(--brand-deep); }
body.modal-open .mobile-sticky-cta { display: none; }
@media (max-width: 680px) {
  .brand-logo.has-logo { width: 138px; height: 42px; }
  .hero::before { inset: 12px; border-radius: 24px; }
  .hero { padding-top: 72px; }
  
.hero .eyebrow,
.future-panel .eyebrow,
.final-cta .eyebrow,
.site-footer .footer-title {
  color: var(--accent);
}

.hero h1 { font-size: clamp(2.35rem, 12vw, 4.2rem); }
  .hero-actions .btn { width: 100%; }
  .quick-actions { scrollbar-width: none; }
  .mobile-sticky-cta { grid-template-columns: 1fr .75fr .85fr; }
}

.hero .btn-primary, .final-cta .btn-primary {
  background: var(--ivory);
  color: var(--brand);
  border-color: rgba(154, 122, 58, .45);
  box-shadow: 0 16px 36px rgba(0,0,0,.18);
}
.hero .btn-primary:hover, .final-cta .btn-primary:hover { box-shadow: 0 20px 46px rgba(0,0,0,.22); }


/* Fase 3.2 · legibilidad y QA comercial */
.section-head .eyebrow,
.local-seo-card .eyebrow,
.lead-section .eyebrow,
.seller-section .eyebrow,
.faq-section .eyebrow,
.team-section .eyebrow,
.properties-section .eyebrow {
  color: var(--accent-text);
}
.property-topline,
.card-tag,
.nearby-zones,
.modal-note,
.results-count {
  color: #595d4f;
}
.form-error:not([hidden]) { display: block; }
[data-wa-disabled="true"],
a[aria-disabled="true"] {
  text-decoration: none;
}
.modal-dialog:focus { outline: 3px solid rgba(154, 122, 58, .32); outline-offset: 3px; }

/* Fase 3.3 · accesibilidad, mobile y cierre descargable */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 2px solid var(--accent-strong);
  outline-offset: 3px;
}
#contenido-principal:focus { outline: none; }
.skip-link {
  position: fixed;
  left: 16px;
  top: 12px;
  z-index: 120;
  transform: translateY(-160%);
  background: var(--ivory);
  color: var(--brand);
  border: 1px solid rgba(154, 122, 58, .45);
  box-shadow: 0 14px 32px rgba(0,0,0,.18);
}
.skip-link:focus { transform: translateY(0); left: 16px; }
.btn,
.quick-action,
.filter-chip,
summary,
.mobile-sticky-cta a {
  min-height: 44px;
}
.main-nav a,
.footer-grid a {
  text-underline-offset: 4px;
}
.eyebrow,
.filter-field label,
.lead-form label,
.modal-lead-form label,
.key-card span,
.property-topline,
.nearby-zones,
.modal-note,
.results-count,
.form-hint {
  color: var(--accent-text);
}
.property-location,
.property-tags span,
.footer-grid p,
.footer-grid a {
  line-height: 1.55;
}
.form-error:not([hidden]) {
  display: block;
  color: #7b241c;
  background: #fff3ef;
  border: 1px solid rgba(123, 36, 28, .22);
  border-radius: 14px;
  padding: 10px 12px;
  font-weight: 760;
}
[aria-invalid="true"] {
  border-color: #9b2f24;
  box-shadow: 0 0 0 4px rgba(155, 47, 36, .12);
}
a.is-disabled,
[data-wa-disabled="true"] {
  cursor: not-allowed;
  opacity: .78;
}
.toast {
  bottom: 28px;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  line-height: 1.35;
}
.toast[hidden] { display: none; }
.modal-dialog {
  max-height: min(92vh, 980px);
  overflow-y: auto;
  scroll-padding-top: 72px;
}
.modal-backdrop { cursor: pointer; }
.modal-lead-form input,
.modal-lead-form textarea,
.lead-form input,
.lead-form select,
.lead-form textarea,
.filter-field input,
.filter-field select {
  min-height: 46px;
}
.mobile-sticky-cta {
  align-items: stretch;
}
.mobile-sticky-cta a {
  white-space: nowrap;
}
body.modal-open .toast {
  bottom: 28px;
}
@media (max-width: 760px) {
  body.has-sticky-cta { padding-bottom: 112px; }
  .toast {
    left: 12px;
    right: 12px;
    bottom: 104px;
    transform: none;
    max-width: none;
    border-radius: 18px;
    padding: 12px 14px;
  }
  body.modal-open .toast { bottom: 18px; }
  .mobile-sticky-cta {
    left: 8px;
    right: 8px;
    bottom: 8px;
    grid-template-columns: 1fr .78fr .85fr;
    gap: 7px;
    padding: 8px;
  }
  .mobile-sticky-cta .btn { min-height: 46px; padding-inline: 10px; }
  .hero h1 { line-height: .98; }
  .hero-lead, .section-head p, .lead-grid p, .two-col p { font-size: 1rem; }
  .filters-panel, .premium-card, .property-card { border-radius: 22px; }
  .property-body h3 { font-size: 1.12rem; }
  .modal { padding: 8px; }
  .modal-dialog { max-height: calc(100vh - 16px); border-radius: 22px; }
  .modal-content { padding: 18px; }
  .modal-actions, .card-actions, .hero-actions { gap: 10px; }
}
@media (max-width: 420px) {
  .container { width: min(calc(100% - 24px), var(--container)); }
  .mobile-sticky-cta { grid-template-columns: 1fr 1fr; }
  .mobile-sticky-cta a:first-child { grid-column: 1 / -1; }
  .property-features span, .property-tags span { font-size: .78rem; }
}

/* Fase 3.4 · UX real, filtros inmobiliarios y hero premium */
.hero-panel-refined {
  align-self: center;
  max-width: 520px;
  margin-left: auto;
  padding: clamp(18px, 3vw, 28px);
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
  background: linear-gradient(145deg, rgba(239, 232, 220, .12), rgba(239, 232, 220, .055));
  border: 1px solid rgba(239, 232, 220, .20);
  border-radius: 30px;
  box-shadow: 0 28px 75px rgba(0,0,0,.24);
}
.hero-panel-header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(239, 232, 220, .16);
}
.hero-panel-header span {
  color: rgba(239, 232, 220, .72);
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .16em;
  font-weight: 850;
}
.hero-panel-header strong {
  color: var(--ivory);
  font-size: .98rem;
  text-align: right;
}
.hero-stats-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.hero-panel-refined .hero-stat {
  min-height: auto;
  padding: 14px 12px;
  background: rgba(239, 232, 220, .08);
  border: 1px solid rgba(239, 232, 220, .12);
  border-radius: 18px;
}
.hero-panel-refined .hero-stat strong {
  color: var(--accent);
  font-size: clamp(1.7rem, 4vw, 2.35rem);
  line-height: .9;
}
.hero-panel-refined .hero-stat span {
  color: rgba(239, 232, 220, .80);
  font-size: .82rem;
}
.hero-panel-note {
  margin: 0;
  padding: 14px 16px;
  border-radius: 18px;
  background: rgba(15, 36, 24, .30);
  color: rgba(239, 232, 220, .86);
  border: 1px solid rgba(154, 122, 58, .22);
  line-height: 1.55;
}

.trust-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  background: transparent;
}
.trust-grid article {
  min-height: 178px;
  border-radius: 28px;
  border: 1px solid rgba(24, 53, 31, .12);
  box-shadow: 0 18px 46px rgba(15, 36, 24, .08);
}
.trust-grid span { color: #626657; }

.future-panel .management-card {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(260px, .85fr);
  gap: 28px;
  align-items: center;
  background: linear-gradient(145deg, rgba(239, 232, 220, .12), rgba(239, 232, 220, .06));
  border-color: rgba(239, 232, 220, .18);
}
.future-panel .management-copy h2,
.future-panel .management-copy p,
.future-panel .management-list,
.future-panel .management-list li { color: var(--ivory); }
.future-panel .management-copy h2 {
  margin: 0 0 14px;
  color: var(--ivory);
  max-width: 780px;
}
.future-panel .management-copy p {
  color: rgba(239, 232, 220, .82);
  max-width: 780px;
}
.management-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
}
.management-list li {
  padding: 13px 14px 13px 38px;
  border-radius: 16px;
  background: rgba(239, 232, 220, .08);
  border: 1px solid rgba(239, 232, 220, .14);
  position: relative;
  line-height: 1.45;
}
.management-list li::before {
  content: '';
  position: absolute;
  left: 15px;
  top: 20px;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: var(--accent);
  box-shadow: 0 0 0 5px rgba(154, 122, 58, .14);
}
.management-cta { justify-self: start; }
.future-panel .btn-secondary {
  color: var(--ivory);
  border-color: rgba(239, 232, 220, .28);
  background: rgba(239, 232, 220, .08);
}
.future-panel .btn-secondary:hover { background: rgba(239, 232, 220, .14); }

.footer-grid {
  align-items: start;
}
.footer-grid [data-footer-contact][hidden] { display: none; }
.footer-grid:has([data-footer-contact][hidden]) {
  grid-template-columns: 1.2fr 1fr;
}
.site-footer strong { color: var(--ivory); }
.footer-grid p, .footer-grid a { color: rgba(239, 232, 220, .82); }
.footer-title { color: var(--accent); }

.filter-field select {
  cursor: pointer;
  appearance: auto;
  color: var(--text);
  background-color: #FDFBF6;
}
.filter-field select:focus-visible,
.filter-field input:focus-visible {
  border-color: var(--accent-strong);
  box-shadow: 0 0 0 4px rgba(155, 121, 54, .16);
}

@media (max-width: 980px) {
  .hero-panel-refined { max-width: none; margin: 0; }
  .future-panel .management-card { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .hero-stats-row { grid-template-columns: repeat(3, 1fr); }
  .hero-panel-header { align-items: start; flex-direction: column; }
  .hero-panel-header strong { text-align: left; }
  .hero-panel-refined .hero-stat { padding: 12px 8px; }
  .hero-panel-refined .hero-stat span { font-size: .76rem; }
  .trust-grid { grid-template-columns: 1fr; }
  .trust-grid article { min-height: auto; }
  .management-cta { width: 100%; justify-self: stretch; }
}
@media (max-width: 420px) {
  .hero-stats-row { grid-template-columns: 1fr; }
}

/* Fase 3.5 · Hero orientado a consulta y buscador inmobiliario premium */
.hero-concierge {
  background: linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.07));
  border: 1px solid rgba(239,232,220,.18);
  border-radius: 32px;
  padding: 24px;
  box-shadow: 0 28px 80px rgba(0,0,0,.24);
  display: grid;
  gap: 18px;
}
.concierge-header h2 {
  margin: 0 0 8px;
  font-size: clamp(1.7rem, 3vw, 2.45rem);
  line-height: 1;
  color: var(--ivory);
  letter-spacing: -.04em;
}
.concierge-header p:not(.eyebrow) {
  margin: 0;
  color: rgba(239,232,220,.74);
}
.concierge-options {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}
.concierge-option {
  text-align: left;
  border: 1px solid rgba(239,232,220,.16);
  background: rgba(255,255,255,.08);
  color: var(--ivory);
  border-radius: 18px;
  padding: 14px;
  min-height: 86px;
  display: grid;
  gap: 5px;
}
.concierge-option:hover,
.concierge-option:focus-visible {
  background: rgba(154,122,58,.16);
  border-color: rgba(154,122,58,.48);
}
.concierge-option strong {
  color: var(--accent);
  font-size: 1.05rem;
}
.concierge-option span {
  color: rgba(239,232,220,.72);
  font-size: .88rem;
  line-height: 1.28;
}
.concierge-main { width: 100%; }
.hero-mini-stats {
  border-top: 1px solid rgba(239,232,220,.14);
  padding-top: 14px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  color: rgba(239,232,220,.74);
  font-size: .86rem;
}
.hero-mini-stats span { display: grid; gap: 2px; }
.hero-mini-stats strong { color: var(--accent); font-size: 1.2rem; }

.filters-panel-premium {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
  padding: 20px;
}
.filters-main-grid {
  display: grid;
  grid-template-columns: 1.1fr minmax(280px, 2fr) 1.2fr 1.3fr auto;
  gap: 14px;
  align-items: end;
}
.filters-main-grid .filter-field,
.filters-main-grid .filter-field-search,
.advanced-filters-grid .filter-field {
  grid-column: auto;
}
.filters-search-action .btn {
  min-height: 48px;
  padding-inline: 24px;
}
.filters-secondary-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  justify-content: flex-end;
  padding-top: 2px;
}
.advanced-filters {
  border-top: 1px solid var(--line);
  padding-top: 16px;
}
.advanced-filters-head {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
  color: var(--brand);
}
.advanced-filters-head span {
  color: var(--muted);
  font-size: .9rem;
}
.advanced-filters-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}
.search-conversion-cta {
  margin-top: 14px;
  border: 1px solid rgba(154,122,58,.28);
  background: rgba(154,122,58,.10);
  color: var(--brand);
  border-radius: 18px;
  padding: 14px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-weight: 760;
}
.search-conversion-cta a {
  color: var(--accent-text);
  text-decoration: underline;
  text-underline-offset: 4px;
}
.empty-filter-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  margin: 18px 0;
}
.empty-filter-summary span {
  border: 1px solid rgba(24,53,31,.14);
  background: #F4EFE5;
  color: var(--brand);
  border-radius: 999px;
  padding: 7px 10px;
  font-size: .86rem;
  font-weight: 760;
}
.empty-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}
.active-filters {
  max-width: 100%;
}
.filter-chip {
  white-space: nowrap;
}

@media (max-width: 1080px) {
  .filters-main-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .filters-search-action { grid-column: span 2; }
  .filters-search-action .btn { width: 100%; }
  .advanced-filters-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 680px) {
  .hero-concierge { padding: 18px; border-radius: 24px; }
  .concierge-options { grid-template-columns: 1fr; }
  .concierge-option { min-height: auto; }
  .hero-mini-stats { grid-template-columns: 1fr 1fr; }
  .hero-mini-stats span:last-child { grid-column: span 2; }
  .filters-main-grid,
  .advanced-filters-grid {
    grid-template-columns: 1fr;
  }
  .filters-search-action { grid-column: auto; }
  .filters-secondary-actions { display: grid; grid-template-columns: 1fr; }
  .advanced-filters-head { display: grid; }
  .search-conversion-cta { display: grid; }
  .active-filters {
    flex-wrap: nowrap;
    overflow-x: auto;
    justify-content: flex-start;
    padding-bottom: 4px;
  }
}

/* Fase 3.6 · Consola de propiedades tipo mini CRM */
.console-page {
  background: #F4EFE5;
}
.console-shell {
  width: min(calc(100% - 28px), 1420px);
  margin: 0 auto;
  padding: 28px 0 72px;
}
.console-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: end;
  background: linear-gradient(135deg, #0F2418, #18351F);
  color: #EFE8DC;
  border-radius: 32px;
  padding: clamp(28px, 5vw, 56px);
  box-shadow: 0 24px 70px rgba(15,36,24,.18);
  margin-bottom: 16px;
}
.console-hero h1 {
  margin: 0 0 12px;
  font-size: clamp(2.3rem, 6vw, 4.8rem);
  line-height: .94;
  letter-spacing: -.06em;
}
.console-hero p {
  max-width: 850px;
  color: rgba(239,232,220,.82);
}
.console-status {
  border: 1px solid rgba(154,122,58,.35);
  background: rgba(255,255,255,.08);
  border-radius: 999px;
  padding: 11px 16px;
  color: #EFE8DC;
  font-weight: 850;
  white-space: nowrap;
}
.console-toolbar,
.console-actions-row,
.console-inline-actions,
.console-form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}
.console-toolbar {
  background: #FAF7F0;
  border: 1px solid rgba(24,53,31,.12);
  border-radius: 22px;
  padding: 14px;
  margin-bottom: 16px;
  box-shadow: 0 14px 40px rgba(15,36,24,.08);
}
.console-summary {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
  margin-bottom: 16px;
}
.console-summary article {
  background: #FAF7F0;
  border: 1px solid rgba(24,53,31,.12);
  border-radius: 20px;
  padding: 16px;
  box-shadow: 0 12px 30px rgba(15,36,24,.06);
}
.console-summary strong {
  display: block;
  color: #18351F;
  font-size: 1.65rem;
  line-height: 1;
}
.console-summary span {
  display: block;
  margin-top: 6px;
  color: #5C604E;
  font-size: .88rem;
  font-weight: 780;
}
.console-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(360px, .85fr);
  gap: 16px;
  align-items: start;
}
.console-card,
.console-panel {
  background: #FAF7F0;
  border: 1px solid rgba(24,53,31,.12);
  border-radius: 26px;
  padding: 20px;
  box-shadow: 0 16px 42px rgba(15,36,24,.08);
}
.console-panel {
  margin-bottom: 16px;
}
.console-panel-head,
.console-section-head {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: start;
  margin-bottom: 14px;
}
.console-card h2,
.console-panel h2 {
  color: #18351F;
  margin: 0;
  letter-spacing: -.04em;
}
.csv-console-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 14px;
  align-items: stretch;
  margin-bottom: 14px;
}
.console-fieldset {
  border: 1px solid rgba(24,53,31,.12);
  border-radius: 18px;
  padding: 12px 14px;
  display: grid;
  gap: 8px;
  background: #F4EFE5;
}
.console-fieldset legend {
  color: #18351F;
  font-weight: 850;
  padding: 0 6px;
}
.console-fieldset label {
  color: #2A3A22;
  font-weight: 700;
}
.console-label {
  display: grid;
  gap: 8px;
  color: #18351F;
  font-weight: 850;
}
.console-label textarea,
.console-form input,
.console-form select,
.console-form textarea,
#csvText {
  width: 100%;
  border: 1px solid rgba(24,53,31,.18);
  border-radius: 15px;
  background: #FDFBF6;
  color: #1A2218;
  min-height: 46px;
  padding: 11px 12px;
  font: inherit;
}
.console-form details {
  border: 1px solid rgba(24,53,31,.13);
  border-radius: 20px;
  padding: 12px 14px;
  margin-bottom: 12px;
  background: #F4EFE5;
}
.console-form summary {
  cursor: pointer;
  color: #18351F;
  font-weight: 900;
}
.console-form label {
  display: grid;
  gap: 7px;
  color: #18351F;
  font-weight: 800;
  margin-top: 12px;
}
.console-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.console-form-grid.triple {
  grid-template-columns: repeat(3, 1fr);
}
.console-form label.console-check,
.console-check {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 10px 12px;
  border: 1px solid rgba(24,53,31,.13);
  border-radius: 999px;
  background: #FDFBF6;
}
.console-help {
  margin: 10px 0 0;
  color: #5C604E;
  font-size: .92rem;
  line-height: 1.45;
}
.console-table-wrap {
  overflow: auto;
  border-radius: 18px;
  border: 1px solid rgba(24,53,31,.12);
}
.console-table {
  width: 100%;
  min-width: 880px;
  border-collapse: collapse;
  background: #FDFBF6;
}
.console-table th,
.console-table td {
  padding: 12px;
  text-align: left;
  border-bottom: 1px solid rgba(24,53,31,.09);
  vertical-align: top;
}
.console-table th {
  color: #18351F;
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  background: #EFE8DC;
}
.console-table td {
  color: #1E2B1A;
  font-size: .92rem;
}
.console-table tr.has-errors td {
  background: #fff4f4;
}
.console-table tr.has-warnings td {
  background: #fff9e7;
}
.console-table tr.is-excluded td {
  opacity: .62;
}
.row-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  min-width: 220px;
}
.row-actions button {
  border: 1px solid rgba(24,53,31,.18);
  border-radius: 999px;
  padding: 7px 9px;
  background: #F4EFE5;
  color: #18351F;
  font-weight: 800;
  cursor: pointer;
}
.row-actions button:hover,
.row-actions button:focus-visible {
  background: #18351F;
  color: #EFE8DC;
}
.console-pill {
  display: inline-flex;
  align-items: center;
  border: 1px solid rgba(24,53,31,.14);
  border-radius: 999px;
  padding: 4px 8px;
  background: #EFE8DC;
  color: #18351F;
  font-size: .78rem;
  font-weight: 850;
}
.console-pill.muted {
  margin-left: 6px;
  color: #5C5230;
  background: rgba(154,122,58,.16);
}
.console-preview-grid {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 16px;
  margin-top: 16px;
}
.preview-card-sim {
  overflow: hidden;
  border: 1px solid rgba(24,53,31,.13);
  border-radius: 22px;
  background: #FDFBF6;
}
.preview-media-sim {
  min-height: 150px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, #18351F, #0F2418);
  color: #EFE8DC;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .1em;
}
.preview-card-body {
  padding: 16px;
  display: grid;
  gap: 8px;
}
.preview-card-body strong {
  color: #18351F;
  font-size: 1.35rem;
}
.preview-card-body h3 {
  color: #1A2218;
  margin: 0;
}
.preview-card-body p,
.preview-card-body small {
  color: #5C604E;
}
.preview-badges,
.preview-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.preview-badges span,
.preview-tags span {
  border-radius: 999px;
  padding: 5px 8px;
  background: rgba(154,122,58,.18);
  color: var(--accent-text);
  font-weight: 850;
  font-size: .78rem;
}
.preview-detail-list {
  display: grid;
  gap: 10px;
  margin: 0;
}
.preview-detail-list div {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(24,53,31,.1);
}
.preview-detail-list dt {
  color: #18351F;
  font-weight: 900;
}
.preview-detail-list dd {
  margin: 0;
  color: #1E2B1A;
}
@media (max-width: 1180px) {
  .console-hero,
  .console-layout,
  .console-preview-grid,
  .csv-console-grid {
    grid-template-columns: 1fr;
  }
  .console-summary {
    grid-template-columns: repeat(2, 1fr);
  }
  .console-status {
    width: fit-content;
  }
}
@media (max-width: 640px) {
  .console-shell {
    width: min(calc(100% - 20px), 1420px);
    padding-bottom: 48px;
  }
  .console-hero,
  .console-card,
  .console-panel {
    border-radius: 22px;
  }
  .console-toolbar,
  .console-actions-row,
  .console-inline-actions,
  .console-form-actions {
    display: grid;
    grid-template-columns: 1fr;
  }
  .console-summary,
  .console-form-grid,
  .console-form-grid.triple {
    grid-template-columns: 1fr;
  }
  .preview-detail-list div {
    grid-template-columns: 1fr;
    gap: 4px;
  }
}


/* Fase 4.0 · consola de entrega cliente */
.console-howto {
  margin: 1rem 0 1.25rem;
  padding: 1.25rem;
}
.console-steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .85rem;
  list-style: none;
  padding: 0;
  margin: 1rem 0;
}
.console-steps li {
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: .9rem;
  background: rgba(255,255,255,.62);
}
.console-steps strong {
  display: block;
  color: var(--brand);
  margin-bottom: .35rem;
}
.console-steps span {
  color: var(--muted);
  font-size: .92rem;
  line-height: 1.45;
}
@media (max-width: 900px) {
  .console-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .console-steps { grid-template-columns: 1fr; }
}

/* Fase 4.2 · accesibilidad menor en herramientas */
.tool-label {
  display: block;
  margin: 12px 0 6px;
  color: var(--brand);
  font-weight: 760;
}
.tool-help {
  margin: 0 0 8px;
  color: var(--muted);
  font-size: .94rem;
  line-height: 1.45;
}

/* Fase 4.6 · Universos Horizonte Propiedades. */
.universos-section { background: var(--surface-warm); }
.universos-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.universo-card { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 28px 22px 22px; display: flex; flex-direction: column; gap: 10px; }
.universo-label { font-size: .72rem; font-weight: 860; letter-spacing: .12em; color: var(--accent); text-transform: uppercase; margin: 0; }
.universo-label svg { display: block; }
.universo-card h3 { font-size: 1.22rem; font-weight: 760; letter-spacing: -.025em; color: var(--brand); margin: 0; line-height: 1.2; }
.universo-card > p { color: var(--muted); font-size: .95rem; line-height: 1.52; margin: 0; flex: 1; }
.universo-cta { margin-top: 4px; align-self: flex-start; }
@media (max-width: 900px) { .universos-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .universos-grid { grid-template-columns: 1fr; } }

/* Fase 4.6 · Lightbox */
.lightbox { position: fixed; inset: 0; z-index: 95; display: none; align-items: center; justify-content: center; }
.lightbox.is-open { display: flex; }
.lightbox-overlay { position: absolute; inset: 0; background: rgba(0,0,0,.88); }
.lightbox-img { position: relative; z-index: 1; max-width: min(calc(100% - 40px), 1200px); max-height: calc(100vh - 80px); object-fit: contain; border-radius: 8px; }
.lightbox-close { position: absolute; top: 14px; right: 14px; z-index: 2; width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(255,255,255,.14); color: #fff; font-size: 1.8rem; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.lightbox-close:hover { background: rgba(255,255,255,.26); }
.lightbox-nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 48px; height: 48px; border: 0; border-radius: 50%; background: rgba(255,255,255,.12); color: #fff; font-size: 2.2rem; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.lightbox-nav:hover, .lightbox-nav:focus-visible { background: rgba(255,255,255,.26); outline: none; }
.lightbox-prev { left: 14px; }
.lightbox-next { right: 14px; }
body.lightbox-open { overflow: hidden; }

/* Fase 4.4 · Team section */
.team-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 40px;
}
.team-card {
  background: var(--surface);
  border: 1px solid rgba(154,122,58,.22);
  border-radius: 18px;
  padding: 28px 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  align-items: flex-start;
}
.team-avatar {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--brand);
  color: var(--ivory);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  font-weight: 800;
  letter-spacing: .04em;
  flex-shrink: 0;
}
.team-info {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.team-name {
  font-size: 1.08rem;
  font-weight: 780;
  color: var(--brand);
  line-height: 1.2;
}
.team-role {
  font-size: .88rem;
  font-weight: 640;
  color: var(--accent-text);
  letter-spacing: .02em;
}
.team-bio {
  margin: 8px 0 0;
  font-size: .93rem;
  color: var(--muted);
  line-height: 1.5;
}
.team-cta-wrap {
  margin-top: 36px;
  display: flex;
  justify-content: center;
}
@media (max-width: 760px) {
  .team-grid {
    grid-template-columns: 1fr;
    gap: 16px;
    margin-top: 28px;
  }
  .team-card {
    flex-direction: row;
    align-items: flex-start;
    padding: 20px;
    gap: 16px;
  }
  .team-info { flex: 1; }
  .team-cta-wrap { margin-top: 24px; }
}

/* Fase 4.7 · Arquitectura multipágina */

/* Hero editorial: hero sin panel lateral, sólo copy centrado o alineado */
.hero-editorial.hero { background: radial-gradient(circle at 70% 20%, rgba(154,122,58,.18), transparent 38%), linear-gradient(150deg, #0F2418, #112035 60%, #17283f); }
.centered-hero { text-align: center; }
.centered-hero .hero-lead { margin-inline: auto; }
.centered-hero .hero-actions { justify-content: center; }

/* Sección con fondo de superficie */
.bg-surface { background: var(--surface-warm); }

/* Steps (proceso en pasos) */
.steps-list { display: flex; flex-direction: column; gap: 24px; width: min(100%, 820px); margin: 32px auto 0; }
.step-item { display: flex; align-items: flex-start; gap: 20px; }
.step-num { flex-shrink: 0; width: 40px; height: 40px; border-radius: 50%; background: var(--brand); color: var(--ivory); font-size: .9rem; font-weight: 860; display: flex; align-items: center; justify-content: center; letter-spacing: .04em; margin-top: 2px; }
.step-item > div { flex: 1; }
.step-item strong { display: block; color: var(--brand); font-size: 1.08rem; font-weight: 760; margin-bottom: 4px; }
.step-item p { margin: 0; color: var(--muted); line-height: 1.56; }

/* Bloque editorial */
.editorial-block { max-width: 680px; display: flex; flex-direction: column; gap: 18px; }
.editorial-block p { font-size: 1.08rem; line-height: 1.7; color: var(--text); }

/* Footer legal text en home */
.footer-legal-text { font-size: .8rem; color: var(--muted); margin: 18px 0 0; padding-top: 18px; border-top: 1px solid var(--line); }

/* Nav de sitemap en footer */
.site-footer nav { display: flex; flex-direction: column; gap: 6px; }
.site-footer nav a { color: var(--muted); font-size: .9rem; text-decoration: none; }
.site-footer nav a:hover { color: var(--accent); }

@media (max-width: 680px) {
  .steps-list { gap: 18px; }
  .step-num { width: 34px; height: 34px; font-size: .8rem; }
  .editorial-block p { font-size: 1rem; }
}

/* Fase 4.8 · Home centrada en buscador */

/* Hero compacto (menos alto que el hero full, más orientado a búsqueda) */
.hero-compact { padding-top: 80px; padding-bottom: 36px; }
.hero-compact .hero-grid { grid-template-columns: 1.4fr .6fr; align-items: center; gap: 32px; }
.hero-compact h1 { font-size: clamp(2rem, 5vw, 3.8rem); }

/* Stats aside en hero */
.hero-stats-aside { display: flex; flex-direction: column; gap: 12px; }
.hero-stat-card { background: rgba(239,232,220,.1); border: 1px solid rgba(239,232,220,.15); border-radius: 18px; padding: 18px 20px; text-align: center; }
.hero-stat-card strong { display: block; font-size: 2.2rem; font-weight: 500; color: var(--accent); font-family: var(--font-display); line-height: 1; margin-bottom: 4px; }
.hero-stat-card span { color: rgba(239,232,220,.76); font-size: .84rem; }

/* Grid 3 columnas para ejes secundarios */
.universos-grid-3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 900px) { .universos-grid-3 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .universos-grid-3 { grid-template-columns: 1fr; } }

/* Imagen editorial páginas internas */
.page-hero-img { width: 100%; max-height: 320px; object-fit: cover; border-radius: var(--radius-lg); margin-bottom: 32px; }

@media (max-width: 960px) {
  .hero-compact .hero-grid { grid-template-columns: 1fr; }
  .hero-stats-aside { flex-direction: row; }
  .hero-stat-card { flex: 1; }
}
@media (max-width: 580px) {
  .hero-stats-aside { flex-direction: column; }
  .hero-stat-card { padding: 14px 16px; }
  .hero-stat-card strong { font-size: 1.8rem; }
}

/* ═══════════════════════════════════════════════════════════════
   PULIDO FINAL · Hamburger · Heroes diferenciados · Arte galería
   ═══════════════════════════════════════════════════════════════ */

/* ── Hamburger menu ───────────────────────────────────────────── */
.nav-hamburger {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(24,53,31,.18);
  border-radius: 12px;
  background: transparent;
  cursor: pointer;
  padding: 0 10px;
  flex-shrink: 0;
}
.nav-hamburger span {
  display: block;
  width: 100%;
  height: 2px;
  background: var(--brand);
  border-radius: 2px;
  transition: transform .22s ease, opacity .18s ease;
  transform-origin: center;
}
.nav-hamburger.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-hamburger.is-open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.nav-hamburger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 960px) {
  .nav-hamburger { display: flex; }
  .main-nav {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 60;
    flex-direction: column;
    background: rgba(247,244,236,.98);
    backdrop-filter: blur(16px);
    border-bottom: 1px solid rgba(24,53,31,.12);
    padding: 14px 16px 18px;
    gap: 4px;
    box-shadow: 0 18px 44px rgba(15,36,24,.12);
  }
  .main-nav.is-open { display: flex; }
  .main-nav a {
    padding: 11px 14px;
    border-radius: 12px;
    color: var(--brand);
    font-weight: 760;
    font-size: 1rem;
  }
  .main-nav a:hover { background: rgba(24,53,31,.06); }
  .main-nav a::after { display: none; }
  .site-header { position: sticky; overflow: visible; }
}

/* ── Heroes diferenciados por sub-página ─────────────────────── */

/* Horizonte Propiedades → cálido verde-dorado */
.hero-editorial--about {
  background-color: #0F2418;
  background:
    radial-gradient(circle at 72% 18%, rgba(154,122,58,.28), transparent 38%),
    radial-gradient(circle at 14% 82%, rgba(154,122,58,.10), transparent 30%),
    linear-gradient(160deg, #0F2418, #163020 55%, #1E3D22);
}
.hero-editorial--about::before {
  border-color: rgba(154,122,58,.15);
}

/* Emprendimientos → oscuro azul-verde inversión */
.hero-editorial--invest {
  background-color: #0a140a;
  background:
    radial-gradient(circle at 20% 30%, rgba(13,23,38,.6), transparent 44%),
    repeating-linear-gradient(
      -45deg,
      transparent,
      transparent 32px,
      rgba(239,232,220,.025) 32px,
      rgba(239,232,220,.025) 33px
    ),
    linear-gradient(150deg, #0a140a, #0f1d26 58%, #0d1726);
}

/* Arte → casi negro, minimalista */
.hero-editorial--arte {
  background-color: #060905;
  background: linear-gradient(180deg, #060905, #0A1A10 85%);
}
.hero-editorial--arte h1 {
  font-style: italic;
  letter-spacing: -.02em;
  font-size: clamp(2.4rem, 6vw, 5rem);
}
.hero-editorial--arte::before {
  border-color: rgba(154,122,58,.08);
}

/* Contacto → hero claro, rompe el patrón oscuro */
.hero-contact {
  background:
    radial-gradient(circle at 80% 30%, rgba(154,122,58,.10), transparent 38%),
    var(--bg);
  padding-top: 100px;
  padding-bottom: 48px;
  color: var(--text);
}
.hero-contact .eyebrow { color: var(--accent-text); }
.hero-contact h1 {
  color: var(--brand);
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(2rem, 5vw, 3.8rem);
  letter-spacing: -.05em;
  line-height: 1;
  margin: 0 0 14px;
  text-wrap: balance;
}
.hero-contact .hero-sub { color: var(--muted); max-width: 640px; }
.hero-contact .btn-primary { /* hereda del global */ }
.hero-contact .btn-secondary {
  color: var(--brand);
  border-color: rgba(24,53,31,.22);
  background: rgba(239,232,220,.75);
}

/* H1 de sub-páginas con hero editorial (tipografía coherente) */
.hero-editorial h1 {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(2.2rem, 5.5vw, 4.2rem);
  line-height: 1;
  letter-spacing: -.055em;
  text-wrap: balance;
  margin: 0 0 16px;
}
.hero-editorial .hero-sub {
  color: rgba(239,232,220,.88);
  font-size: clamp(1rem, 1.6vw, 1.14rem);
  max-width: 660px;
  margin: 0 0 24px;
}

/* ── Arte: galería de obras ───────────────────────────────────── */
.arte-section { background: #F4EFE5; }
.arte-section-dark { background: #0A1A10; color: var(--ivory); }

.arte-gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  margin-top: 40px;
}
.arte-piece {
  background: var(--white);
  border: 1px solid rgba(24,53,31,.10);
  border-radius: 24px;
  overflow: hidden;
  transition: transform .22s ease, box-shadow .22s ease;
}
.arte-piece:hover {
  transform: translateY(-4px);
  box-shadow: 0 28px 72px rgba(15,36,24,.14);
}
.arte-piece-visual {
  width: 100%;
  aspect-ratio: 4/3;
  display: block;
}
.arte-piece-body {
  padding: 20px 20px 22px;
}
.arte-piece-num {
  font-size: .7rem;
  font-weight: 860;
  letter-spacing: .18em;
  color: var(--accent-text);
  text-transform: uppercase;
  display: block;
  margin-bottom: 8px;
}
.arte-piece h3 {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 1.15rem;
  font-style: italic;
  color: var(--brand);
  margin: 0 0 8px;
  line-height: 1.2;
}
.arte-piece p {
  color: var(--muted);
  font-size: .9rem;
  line-height: 1.55;
  margin: 0;
}

/* Paletas de arte para las piezas SVG */
.arte-v1 { background: linear-gradient(135deg, #0F2418 0%, #1E3D22 50%, #9A7A3A 100%); }
.arte-v2 { background: radial-gradient(circle at 30% 70%, #0d1726 0%, #18351F 60%, #9A7A3A 100%); }
.arte-v3 { background: linear-gradient(45deg, #F4EFE5 0%, #9A7A3A 40%, #18351F 100%); }
.arte-v4 { background: conic-gradient(from 135deg at 60% 40%, #0F2418, #9A7A3A, #EFE8DC, #18351F, #0F2418); }
.arte-v5 { background: radial-gradient(ellipse at 20% 20%, #9A7A3A 0%, #18351F 45%, #0a0d08 100%); }
.arte-v6 { background: linear-gradient(160deg, #EFE8DC 0%, #9A7A3A 35%, #0F2418 100%); }

/* Quote editorial en Arte */
.arte-pullquote {
  font-family: var(--font-display);
  font-size: clamp(1.35rem, 3vw, 1.9rem);
  font-style: italic;
  color: var(--accent-text);
  border-left: 3px solid var(--accent);
  padding-left: 24px;
  margin: 48px 0;
  max-width: 700px;
  line-height: 1.45;
}

/* Statement final del Arte */
.arte-statement {
  max-width: 680px;
  margin-inline: auto;
  text-align: center;
  padding: 64px 24px;
}
.arte-statement p {
  font-family: var(--font-display);
  font-size: clamp(1.15rem, 2vw, 1.45rem);
  color: var(--muted);
  line-height: 1.65;
  font-style: italic;
}

@media (max-width: 900px) {
  .arte-gallery-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 540px) {
  .arte-gallery-grid { grid-template-columns: 1fr; }
  .arte-pullquote { font-size: 1.2rem; padding-left: 18px; }
}

/* ── Horizonte Propiedades: grid de valores con iconos ─────────────────── */
.values-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  margin-top: 36px;
}
.value-card {
  background: var(--white);
  border: 1px solid rgba(24,53,31,.10);
  border-radius: 24px;
  padding: 28px 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.value-icon {
  font-size: 1.8rem;
  line-height: 1;
  color: var(--accent);
}
.value-icon svg,
.contact-icon svg {
  display: block;
}
.value-card h3 {
  font-size: 1.12rem;
  font-weight: 760;
  color: var(--brand);
  margin: 0;
  letter-spacing: -.02em;
}
.value-card p {
  color: var(--muted);
  font-size: .95rem;
  line-height: 1.55;
  margin: 0;
}
@media (max-width: 640px) {
  .values-grid { grid-template-columns: 1fr; }
}

/* ── Equipo: avatares con colores diferenciados ───────────────── */
.team-avatar--gold {
  background: var(--accent);
  color: #1A2218;
}
.team-avatar--soft {
  background: var(--brand-soft);
  color: var(--ivory);
}

/* ── Contacto: cards con iconos ──────────────────────────────── */
.contact-icon {
  font-size: 2rem;
  line-height: 1;
  margin-bottom: 4px;
  display: block;
  color: var(--accent);
}

/* ── Logo SVG (fondo transparente) ──────────────────────────── */
.brand-logo.has-logo {
  width: 190px;
  height: 52px;
}

/* ── Empty state mejorado ────────────────────────────────────── */
.empty-state h3 { font-size: 1.5rem; }

/* ── Property card image hover ──────────────────────────────── */
.property-media.has-image {
  overflow: hidden;
}
.property-media.has-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .32s ease;
}
.property-card:hover .property-media.has-image img {
  transform: scale(1.05);
}

/* Normalizacion de cards: imagenes y estructura parejas en todo el catalogo */
.properties-grid {
  align-items: stretch;
}

.property-card {
  grid-template-rows: auto 1fr;
  min-width: 0;
}

.property-media {
  min-height: 0;
  height: auto;
  aspect-ratio: 16 / 9;
}

.property-body {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.property-body h3 {
  min-height: 2.3em;
}

.property-location {
  min-height: 1.45em;
}

.property-price {
  min-height: 1.45em;
}

.property-features {
  min-height: 82px;
  align-content: flex-start;
}

.property-tags {
  min-height: 34px;
  align-content: flex-start;
}

.card-actions {
  margin-top: auto;
}

@media (max-width: 680px) {
  .brand-logo.has-logo { width: 150px; height: 42px; }
}

/* Auditoría final · accesibilidad, responsive y herramientas internas */
html,
body {
  max-width: 100%;
  overflow-x: clip;
}

[hidden] {
  display: none !important;
}

.brand,
.main-nav a,
.footer-grid a,
.site-footer nav a,
.nav-hamburger {
  min-height: 44px;
}

.brand {
  align-items: center;
}

.main-nav a,
.footer-grid a,
.site-footer nav a {
  display: inline-flex;
  align-items: center;
}

.nav-hamburger {
  width: 44px;
  height: 44px;
}

.section-head .eyebrow,
.local-seo-card .eyebrow,
.lead-section .eyebrow,
.seller-section .eyebrow,
.faq-section .eyebrow,
.team-section .eyebrow,
.properties-section .eyebrow,
.hero-contact .eyebrow {
  color: #5F4618;
}

.section-head p,
.two-col p,
.lead-grid p,
.universo-card > p,
.value-card p,
.team-bio,
details p {
  color: #3F4737;
}

.search-conversion-cta {
  color: var(--brand);
}

.search-conversion-cta a {
  color: #5F4618;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.site-footer nav a {
  color: rgba(244, 239, 229, .88);
}

.site-footer nav a:hover {
  color: var(--accent);
}

.mobile-sticky-cta .btn {
  min-height: 46px;
}

.tool-shell,
.console-shell,
.tool-card,
.console-card,
.console-panel,
.console-layout,
.console-preview-grid,
.csv-console-grid {
  min-width: 0;
  max-width: 100%;
}

.tool-card,
.console-card,
.console-panel {
  overflow: hidden;
}

.tool-file,
.tool-file input,
.preview-wrap,
.console-table-wrap,
.preview-table,
.console-table {
  max-width: 100%;
}

.tool-file {
  min-width: 0;
  overflow: hidden;
}

.tool-file input {
  width: 100%;
  min-width: 0;
}

.preview-wrap,
.console-table-wrap,
.code-preview {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.console-table th,
.console-table td,
.preview-table th,
.preview-table td {
  white-space: normal;
}

@media (max-width: 640px) {
  .tool-shell,
  .console-shell {
    width: min(calc(100% - 20px), var(--container));
  }

  .tool-card,
  .console-card,
  .console-panel {
    padding: 18px 16px;
  }

  .preview-table,
  .console-table {
    min-width: 760px;
  }

  .row-actions button {
    min-height: 40px;
  }
}

@media (max-width: 380px) {
  .brand-logo.has-logo {
    width: 136px;
    height: 40px;
  }

  .mobile-sticky-cta .btn {
    font-size: .82rem;
    padding-inline: 8px;
  }
}

@media (max-width: 420px) {
  body.has-sticky-cta {
    padding-bottom: 76px;
  }

  .mobile-sticky-cta {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
    padding: 6px;
    border-radius: 18px;
  }

  .mobile-sticky-cta a:first-child {
    grid-column: auto;
  }

  .mobile-sticky-cta .btn {
    min-height: 44px;
    padding: 8px 6px;
    font-size: .78rem;
  }
}

@media (max-width: 760px) {
  .whatsapp-float {
    right: 12px;
    bottom: 82px;
    width: 48px;
    height: 48px;
  }

  .whatsapp-float-icon {
    width: 28px;
    height: 28px;
  }

  .instagram-float {
    right: 12px;
    bottom: 140px;
    width: 48px;
    height: 48px;
  }

  .instagram-float-icon {
    width: 25px;
    height: 25px;
  }

  body.sticky-cta-visible .whatsapp-float {
    opacity: 0;
    pointer-events: none;
    transform: translateY(12px);
  }

  body.sticky-cta-visible .instagram-float {
    bottom: 92px;
  }

  .mobile-sticky-cta {
    opacity: 0;
    pointer-events: none;
    transform: translateY(calc(100% + 18px));
    transition: opacity .22s ease, transform .22s ease;
  }

  body.sticky-cta-visible .mobile-sticky-cta {
    opacity: 1;
    pointer-events: auto;
    transform: none;
  }
}

/* Correcciones visuales post-auditoria: contraste real en heroes oscuros y controles claros */
.properties-section .quick-actions-wrap {
  margin-top: 24px;
}

.quick-action {
  background: rgba(255, 253, 248, .92);
  border-color: rgba(154, 122, 58, .38);
  color: var(--brand);
  box-shadow: 0 10px 24px rgba(15, 36, 24, .06);
}

.quick-action:hover,
.quick-action:focus-visible {
  background: var(--brand);
  border-color: var(--brand);
  color: var(--ivory);
}

.hero-editorial .section-head .eyebrow,
.hero-editorial--about .section-head .eyebrow,
.hero-editorial--arte .section-head .eyebrow {
  color: var(--accent);
}

.hero-editorial h1,
.hero-editorial .section-head h1,
.hero-editorial--about h1,
.hero-editorial--arte h1 {
  color: var(--ivory);
  text-shadow: 0 2px 22px rgba(0, 0, 0, .28);
}

.hero-editorial .hero-sub,
.hero-editorial .section-head p,
.hero-editorial--about .hero-sub,
.hero-editorial--arte .hero-sub {
  color: rgba(244, 239, 229, .86);
}

.hero-editorial--arte h1 {
  color: rgba(244, 239, 229, .9);
}

.load-more-wrap {
  padding-top: 30px;
}

.load-more-wrap .btn {
  min-width: 148px;
  background: var(--brand);
  border-color: var(--brand);
  color: var(--ivory);
  box-shadow: 0 14px 32px rgba(15, 36, 24, .16);
}

.load-more-wrap .btn:hover,
.load-more-wrap .btn:focus-visible {
  background: var(--brand-soft);
  border-color: var(--brand-soft);
}

/* INMOBILIARIA HERO PRO - panel editorial de catalogo */
.hero-compact .hero-grid {
  align-items: center;
}

.hero-stats-aside {
  position: relative;
  display: grid;
  gap: 12px;
  padding: 22px;
  border: 1px solid rgba(239, 232, 220, .18);
  border-radius: 30px;
  background:
    linear-gradient(145deg, rgba(239, 232, 220, .12), rgba(239, 232, 220, .035)),
    radial-gradient(circle at 88% 10%, rgba(154, 122, 58, .28), transparent 34%);
  box-shadow: 0 34px 90px rgba(0, 0, 0, .28);
  overflow: hidden;
}

.hero-stats-aside::before {
  content: "P&C / CURADURIA";
  display: block;
  width: fit-content;
  margin-bottom: 2px;
  padding: 7px 10px;
  border: 1px solid rgba(239, 232, 220, .16);
  border-radius: 999px;
  color: rgba(239, 232, 220, .70);
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .16em;
}

.hero-stats-aside::after {
  content: "";
  position: absolute;
  width: 190px;
  height: 190px;
  right: -70px;
  bottom: -78px;
  border: 1px solid rgba(154, 122, 58, .26);
  border-radius: 999px;
  pointer-events: none;
}

.hero-stat-card {
  position: relative;
  min-height: 94px;
  padding: 18px 20px;
  border: 1px solid rgba(239, 232, 220, .14);
  border-radius: 18px;
  background: rgba(15, 36, 24, .34);
  text-align: left;
  overflow: hidden;
}

.hero-stat-card strong {
  display: block;
  color: var(--accent);
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 500;
  line-height: .9;
}

.hero-stat-card span {
  display: block;
  max-width: 18ch;
  margin-top: 10px;
  color: rgba(239, 232, 220, .76);
  font-size: .84rem;
  line-height: 1.3;
}

.hero-stat-card:nth-child(3) {
  margin-left: 28px;
}

.hero-stat-card:nth-child(4) {
  margin-left: 56px;
}

@media (max-width: 960px) {
  .hero-stats-aside {
    max-width: none;
  }

  .hero-stat-card:nth-child(3),
  .hero-stat-card:nth-child(4) {
    margin-left: 0;
  }
}

@media (max-width: 560px) {
  .hero-stats-aside {
    padding: 16px;
    border-radius: 24px;
  }

  .hero-stats-aside::before {
    letter-spacing: .12em;
  }

  .hero-stat-card {
    min-height: 84px;
    padding: 16px;
  }
}

/* INMOBILIARIA HERO NON-CARD - metricas editoriales sin panel */
.hero-stats-aside {
  padding: 8px 0 8px 24px;
  border: 0;
  border-left: 1px solid rgba(239, 232, 220, .22);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}

.hero-stats-aside::before {
  content: "P&C / CURADURIA";
  margin-bottom: 8px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: rgba(239, 232, 220, .64);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .16em;
}

.hero-stats-aside::after {
  content: "";
  position: absolute;
  left: -1px;
  top: 48px;
  width: 1px;
  height: 84px;
  border: 0;
  border-radius: 0;
  background: var(--accent);
}

.hero-stat-card {
  min-height: 0;
  padding: 18px 0 18px 20px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  text-align: left;
}

.hero-stat-card + .hero-stat-card {
  border-top: 1px solid rgba(239, 232, 220, .14);
}

.hero-stat-card strong {
  display: block;
  color: var(--accent);
  font-family: var(--font-display);
  font-size: clamp(2.4rem, 4.5rem, 4.5rem);
  font-weight: 500;
  line-height: .82;
}

.hero-stat-card span {
  display: block;
  max-width: 22ch;
  margin-top: 10px;
  color: rgba(239, 232, 220, .78);
  font-size: .9rem;
  line-height: 1.35;
}

.hero-stat-card:nth-child(3),
.hero-stat-card:nth-child(4) {
  margin-left: 0;
}

@media (max-width: 960px) {
  .hero-stats-aside {
    padding-left: 0;
    border-left: 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .hero-stats-aside::before {
    grid-column: 1 / -1;
  }

  .hero-stats-aside::after {
    display: none;
  }

  .hero-stat-card {
    padding: 14px 0;
  }

  .hero-stat-card + .hero-stat-card {
    border-top: 0;
  }
}

@media (max-width: 560px) {
  .hero-stats-aside {
    grid-template-columns: 1fr;
  }

  .hero-stat-card + .hero-stat-card {
    border-top: 1px solid rgba(239, 232, 220, .14);
  }
}

/* UX mobile audit pass - header y acciones sin scroll lateral */
@media (max-width: 680px) {
  .btn-header-instagram {
    display: none !important;
  }

  .quick-actions-wrap {
    width: 100%;
    max-width: 100%;
    overflow: visible;
  }

  .quick-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    width: 100%;
    max-width: 100%;
    overflow: visible;
    padding-bottom: 0;
  }

  .quick-action {
    width: 100%;
    min-width: 0;
    white-space: normal;
    line-height: 1.2;
  }
}

@media (max-width: 420px) {
  .quick-actions {
    grid-template-columns: 1fr;
  }
}

/* Hero no-card pass: primera pantalla editorial, sin panel lateral de metricas. */
.hero-compact {
  position: relative;
  min-height: clamp(580px, 76vh, 740px);
  overflow: hidden;
  isolation: isolate;
}

.hero-compact::after {
  content: "";
  position: absolute;
  top: 74px;
  right: 0;
  bottom: 54px;
  z-index: 0;
  width: min(45vw, 620px);
  background:
    linear-gradient(90deg, rgba(15, 36, 24, .42), rgba(15, 36, 24, .04)),
    url("assets/properties/demo/prop-001-1.jpg");
  background-size: cover;
  background-position: center;
  clip-path: polygon(12% 0, 100% 0, 100% 100%, 0 100%);
  box-shadow: 0 44px 120px rgba(0, 0, 0, .25);
}

.hero-compact .container {
  position: relative;
  z-index: 1;
}

.hero-compact .hero-grid {
  grid-template-columns: minmax(0, 760px) 1fr;
  max-width: 1180px;
}

.hero-compact .hero-copy {
  max-width: 760px;
}

.hero-stats-aside,
.hero-panel,
.hero-panel-refined {
  display: none !important;
}

.hero-compact h1 {
  max-width: 11ch;
  font-size: clamp(3rem, 6.2vw, 5.8rem);
  line-height: .92;
}

.hero-compact .hero-lead {
  max-width: 64ch;
}

@media (max-width: 680px) {
  .hero-compact {
    min-height: auto;
  }

  .hero-compact::after {
    position: relative;
    top: auto;
    right: auto;
    bottom: auto;
    display: block;
    width: min(100% - 32px, 360px);
    height: 220px;
    margin: 28px auto 0;
    border-radius: 24px;
    clip-path: none;
  }

  .hero-compact .hero-grid {
    grid-template-columns: 1fr;
  }

  .hero-compact h1 {
    max-width: 100%;
    font-size: clamp(2.25rem, 11vw, 3.6rem);
    line-height: 1;
  }
}

/* FEEDBACK PASS - home inmobiliaria boutique, no catalogo generico */
.hero-compact {
  min-height: clamp(620px, 78vh, 760px);
  color: var(--brand);
  background:
    linear-gradient(102deg, #F7F1E7 0 50%, rgba(247, 241, 231, .84) 58%, rgba(247, 241, 231, .06) 100%),
    #F7F1E7;
}

.hero-compact::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(rgba(24, 53, 31, .045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(24, 53, 31, .045) 1px, transparent 1px);
  background-size: 58px 58px;
  opacity: .72;
}

.hero-compact::after {
  top: 78px;
  right: 0;
  bottom: 42px;
  width: min(50vw, 720px);
  background:
    linear-gradient(90deg, rgba(247, 241, 231, .08), rgba(15, 36, 24, .08)),
    url("assets/properties/demo/prop-010-1.jpg");
  background-size: cover;
  background-position: center;
  clip-path: polygon(11% 0, 100% 0, 100% 100%, 0 100%);
  box-shadow: -28px 34px 110px rgba(15, 36, 24, .20);
}

.hero-compact .hero-grid {
  grid-template-columns: minmax(0, 650px) minmax(0, 1fr);
  gap: clamp(40px, 7vw, 96px);
}

.hero-compact h1 {
  max-width: 10.5ch;
  color: var(--brand);
  font-size: clamp(3.7rem, 6.3vw, 6.35rem);
  line-height: .91;
  letter-spacing: -.045em;
}

.hero-compact .hero-lead {
  max-width: 51ch;
  color: rgba(26, 34, 24, .76);
  font-size: clamp(1.05rem, 1.35vw, 1.18rem);
}

.hero-compact .eyebrow {
  color: var(--accent-text);
}

.hero-compact .btn-primary {
  background: var(--brand);
  color: var(--ivory);
  box-shadow: 0 18px 40px rgba(15, 36, 24, .18);
}

.hero-compact .btn-secondary {
  color: var(--brand);
  border-color: rgba(24, 53, 31, .28);
  background: rgba(255, 253, 248, .58);
}

@media (max-width: 960px) {
  .hero-compact {
    min-height: auto;
    padding-bottom: 56px;
  }

  .hero-compact .hero-grid {
    grid-template-columns: 1fr;
  }

  .hero-compact::after {
    position: relative;
    top: auto;
    right: auto;
    bottom: auto;
    display: block;
    width: min(100% - 32px, 680px);
    height: clamp(240px, 48vw, 390px);
    margin: 34px auto 0;
    border-radius: 26px;
    clip-path: none;
  }
}

@media (max-width: 560px) {
  .hero-compact h1 {
    max-width: 11ch;
    font-size: clamp(2.55rem, 12vw, 3.7rem);
    line-height: .98;
  }

  .hero-compact .hero-lead {
    font-size: 1rem;
  }

  .hero-compact::after {
    width: 100%;
    height: 235px;
    border-radius: 22px;
  }
}
/* CONTRAST PASS - AA-safe accents for dark/light real-estate heroes */
.hero .eyebrow,
.future-panel .eyebrow,
.final-cta .eyebrow,
.hero-editorial .eyebrow,
.hero-editorial--about .eyebrow,
.hero-editorial--invest .eyebrow,
.hero-editorial--arte .eyebrow {
  color: #c6a75b;
}

.section-head .eyebrow,
.local-seo-card .eyebrow,
.lead-section .eyebrow,
.seller-section .eyebrow,
.faq-section .eyebrow,
.team-section .eyebrow,
.properties-section .eyebrow,
.hero-contact .eyebrow {
  color: #6a5020;
}

.hero,
.hero-editorial,
.hero-editorial--about,
.hero-editorial--invest,
.hero-editorial--arte {
  background-color: #0F2418;
}

.hero .btn-secondary,
.hero-editorial .btn-secondary,
.final-cta .btn-secondary {
  color: #f4efe5;
  background-color: rgba(244, 239, 229, .10);
  border-color: rgba(244, 239, 229, .32);
}

.btn-primary {
  background: var(--brand);
  background-color: var(--brand);
  color: var(--ivory);
}

.hero .btn-primary,
.final-cta .btn-primary {
  background: var(--ivory);
  background-color: var(--ivory);
  color: var(--brand);
}

.hero-compact {
  background-color: #F4EFE5;
}

.hero-compact .btn-primary,
.site-header .btn-primary,
.btn-header-whatsapp {
  background: var(--brand);
  background-color: var(--brand);
  color: var(--ivory);
}

.hero-compact .eyebrow,
.hero-compact .section-head .eyebrow {
  color: #6a5020;
}

.hero-compact .btn-secondary {
  color: var(--brand);
  background: rgba(255, 253, 248, .58);
  background-color: rgba(255, 253, 248, .58);
  border-color: rgba(24, 53, 31, .28);
}

.hero-editorial .section-head .eyebrow,
.hero-editorial--about .section-head .eyebrow,
.hero-editorial--invest .section-head .eyebrow,
.hero-editorial--arte .section-head .eyebrow,
.hero-editorial > .container .eyebrow,
.hero-editorial--about > .container .eyebrow,
.hero-editorial--invest > .container .eyebrow,
.hero-editorial--arte > .container .eyebrow {
  color: #c6a75b;
}
