
        html { scroll-behavior: smooth; }
        body {
            font-family: 'Inter', sans-serif;
            background-color: #ffffff;
            color: #000000;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
        }
        .logo {
            font-weight: 900;
            letter-spacing: 0.05em;
            font-size: 1.5rem;
            color: #000000;
        }
        .logo a:hover { color: #333333; }

        .btn {
            padding: 0.625rem 1.25rem;
            border-radius: 0.375rem;
            font-weight: 700;
            text-align: center;
            transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out, transform 0.15s ease-out;
            cursor: pointer;
            font-size: 0.875rem;
            line-height: 1.25rem;
        }
        .btn:active { transform: scale(0.98); }
        .btn-white {
            background-color: #ffffff;
            color: #000000;
            border: 1px solid #000000;
        }

        .section-divider {
            border-top: 1px solid #e5e7eb;
            margin-top: 4rem;
            margin-bottom: 4rem;
        }

        /* Barrio comparison cards */
        .barrio-card-link {
            text-decoration: none;
            color: inherit;
            display: flex;
            flex-shrink: 0;
            width: 260px;
            margin-right: 1.5rem;
        }
        .barrio-card {
            border: 1px solid #f3f4f6;
            border-radius: 0.5rem;
            padding: 0.75rem;
            background-color: #ffffff;
            box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.03);
            transition: box-shadow 0.3s ease, transform 0.3s ease;
            display: flex;
            flex-direction: column;
            flex-grow: 1;
        }
        .barrio-card:hover {
            box-shadow: 0 6px 12px -2px rgba(0, 0, 0, 0.1), 0 3px 7px -3px rgba(0, 0, 0, 0.1);
            transform: translateY(-3px);
        }
        .barrio-card-link:active .barrio-card {
            transform: translateY(0);
            box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.03);
        }
        .barrio-card h3 {
            font-size: 0.9rem;
            font-weight: 700;
            margin-bottom: 0.4rem;
            text-align: center;
            border-bottom: 1px solid #f3f4f6;
            padding-bottom: 0.4rem;
            display: flex;
            justify-content: center;
            align-items: center;
        }
        .barrio-card .data-point { margin-bottom: 0.3rem; }
        .barrio-card .data-point:last-child { margin-bottom: 0; }
        .barrio-card .data-label {
            display: flex;
            align-items: center;
            font-size: 0.65rem;
            font-weight: 600;
            color: #6b7280;
            text-transform: uppercase;
            letter-spacing: 0.05em;
        }
        .barrio-card .data-label i {
            margin-right: 0.3rem;
            width: 0.7em;
            height: 0.7em;
            stroke-width: 2.5;
            color: #9ca3af;
        }
        .barrio-card .data-value {
            font-size: 0.8rem;
            color: #1f2937;
            line-height: 1.3;
            padding-left: 1rem;
        }
        .barrio-card .data-value.connectivity {
            font-size: 0.7rem;
            line-height: 1.4;
            color: #4b5563;
        }
        .barrio-card .data-point.price .data-value {
            font-weight: 700;
            font-size: 0.9rem;
            color: #000000;
            padding-left: 1rem;
        }

        .security-badge {
            display: inline-block;
            padding: 0.1rem 0.5rem;
            border-radius: 9999px;
            font-size: 0.6875rem;
            font-weight: 700;
            line-height: 1.25;
            text-transform: uppercase;
        }
        .availability-badge {
            margin-left: 0.5rem;
            font-size: 0.6875rem;
            font-weight: 600;
            padding: 0.125rem 0.5rem;
            border-radius: 9999px;
            line-height: 1.25;
            vertical-align: middle;
        }

        /* ===== Mapa de barrios (Leaflet) ===== */
        .barrios-map-wrap { margin-bottom: 1.5rem; border: 1px solid #e5e7eb; border-radius: 1rem; overflow: hidden; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,0.04); }
        .barrios-map-head { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; flex-wrap: wrap; padding: 0.65rem 1rem; border-bottom: 1px solid #f3f4f6; }
        .barrios-map-title { font-size: 0.85rem; font-weight: 800; color: #1f2937; display: inline-flex; align-items: center; gap: 0.35rem; }
        .barrios-map-title i { width: 1em; height: 1em; color: #B8860B; }
        .barrios-map-hint { font-size: 0.7rem; font-weight: 600; color: #9ca3af; }
        #barrios-map { height: clamp(300px, 55vh, 482px); width: 100%; z-index: 1; background: #eef2f5; }
        @media (max-width: 768px) { #barrios-map { height: clamp(290px, 53vh, 382px); } }
        .barrios-zone-label { background: #1f2937; color: #fff; border: none; border-radius: 0.4rem; padding: 0.2rem 0.5rem; font-size: 0.72rem; font-weight: 800; box-shadow: 0 2px 8px rgba(0,0,0,0.2); }
        .barrios-zone-label::before { display: none; }

        /* ===== Barra de orden + slider de precio ===== */
        .barrios-sortbar { display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; align-items: center; justify-content: space-between; padding: 0.85rem 1rem; background: rgba(255,255,255,0.97); backdrop-filter: blur(10px); border: 1px solid #e5e7eb; border-radius: 0.75rem; margin-bottom: 1.25rem; position: sticky; top: 72px; z-index: 30; box-shadow: 0 2px 10px rgba(0,0,0,0.05); }
        /* Barra de presupuesto con histograma + doble control (mín/máx) */
        .bx-budget { display: flex; flex-direction: column; gap: 4px; flex: 1; }
        .bx-top { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
        .bx-top span { font-size: 0.78rem; font-weight: 600; color: #6b7280; }
        .bx-top strong { color: #B8860B; }
        .bx-count { font-weight: 800; color: #1f2937; font-size: 0.8rem; white-space: nowrap; }
        .bx-histo { display: flex; align-items: flex-end; gap: 2px; height: 26px; padding: 0 1px; }
        .bx-histo .bar { flex: 1 1 0; min-height: 3px; background: #e6dcc6; border-radius: 2px 2px 0 0; transition: background .12s; }
        .bx-histo .bar.in { background: #B8860B; }
        .bx-range { position: relative; padding-bottom: 18px; }
        .bx-rail { position: relative; height: 6px; margin-top: 4px; }
        .bx-base { position: absolute; inset: 0; background: #e6dcc6; border-radius: 9999px; }
        .bx-fill { position: absolute; top: 0; bottom: 0; left: 0; right: 0; background: #B8860B; border-radius: 9999px; }
        .bx-range input[type=range] { -webkit-appearance: none; appearance: none; position: absolute; left: 0; width: 100%; height: 20px; bottom: 8px; margin: 0; background: transparent; pointer-events: none; }
        .bx-range input[type=range]:focus { outline: none; }
        .bx-range input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; pointer-events: auto; width: 20px; height: 20px; border-radius: 50%; background: #fff; border: 1px solid #d8c79b; box-shadow: 0 1px 4px rgba(0,0,0,0.28); cursor: pointer; }
        .bx-range input[type=range]::-webkit-slider-runnable-track { background: transparent; border: none; }
        .bx-range input[type=range]::-moz-range-thumb { pointer-events: auto; width: 20px; height: 20px; border-radius: 50%; background: #fff; border: 1px solid #d8c79b; box-shadow: 0 1px 4px rgba(0,0,0,0.28); cursor: pointer; }
        .bx-range input[type=range]::-moz-range-track { background: transparent; border: none; }
        /* El slider simple "Precio hasta" de la barra de orden queda reemplazado por la barra de arriba */
        .barrios-sortbar .barrios-pricerange { display: none; }
        .barrios-sort, .barrios-pricerange { display: flex; align-items: center; gap: 0.6rem; }
        .barrios-sort label, .barrios-pricerange label { font-size: 0.72rem; font-weight: 700; color: #6b7280; white-space: nowrap; }
        .barrios-pricerange label strong { color: #B8860B; }
        .barrios-sort select { font-size: 0.82rem; font-weight: 700; color: #1f2937; border: 1px solid #e5e7eb; border-radius: 0.5rem; padding: 0.4rem 0.6rem; background: #fff; cursor: pointer; }
        .barrios-pricerange { flex: 1; min-width: 200px; max-width: 360px; }
        .barrios-pricerange input[type=range] { flex: 1; accent-color: #B8860B; cursor: pointer; height: 4px; }
        @media (max-width: 640px) { .barrios-sortbar { gap: 0.75rem; } .barrios-pricerange { max-width: none; width: 100%; } }
        /* Reflow animado de la grilla */
        .barrios-grid .barrio-card-link { transition: opacity .25s ease; }

        /* ===== Acciones en la tarjeta (comparar + guardar) ===== */
        .bcard-actions { position: absolute; top: 2.1rem; right: 0.55rem; z-index: 3; display: flex; gap: 0.28rem; }
        .bcard-compare, .bcard-save { width: 24px; height: 24px; display: inline-flex; align-items: center; justify-content: center; background: none; border: none; border-radius: 0; padding: 0; color: #fff; cursor: pointer; filter: drop-shadow(0 1px 2px rgba(0,0,0,0.45)); transition: color .15s, transform .15s; }
        .bcard-compare:hover, .bcard-save:hover { color: #fff; transform: scale(1.12); }
        .bcard-compare i, .bcard-save i { width: 20px; height: 20px; fill: none; }
        /* Seleccionado → dorado opaco; sin seleccionar → blanco */
        .barrio-card-link.is-comparing .bcard-compare { color: #C9A227; }
        .barrio-card-link.is-saved .bcard-save { color: #C9A227; }
        .barrio-card-link.is-saved .bcard-save i { fill: currentColor; }
        /* Badge de % match */
        .bcard-match { position: absolute; top: 0.5rem; right: 0.5rem; z-index: 3; font-size: 0.66rem; font-weight: 800; padding: 0.2rem 0.5rem; border-radius: 9999px; background: #16a34a; color: #fff; box-shadow: 0 2px 6px rgba(0,0,0,0.2); }
        .bcard-match[hidden] { display: none; }
        .bcard-match.is-mid { background: #d97706; }
        .bcard-match.is-low { background: #6b7280; }
        /* Cuando hay match activo, el tier se mueve para no chocar */
        .barrios-grid.match-on .bcard-tier { display: none; }

        /* ===== Panel "Encuentra tu barrio ideal" ===== */
        .barrios-match { background: linear-gradient(135deg, #FFF8E7, #FAFAF7); border: 1px solid #f3e5b8; border-radius: 1rem; padding: 1rem 1.25rem; margin-bottom: 1.5rem; scroll-margin-top: 90px; }
        .barrios-match-head { font-size: 0.95rem; font-weight: 800; color: #1f2937; display: flex; align-items: center; gap: 0.4rem; margin-bottom: 0.85rem; }
        .barrios-match-head i { width: 1.05em; height: 1.05em; color: #B8860B; }
        .barrios-match-controls { display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; align-items: center; }
        .barrios-match-budget { display: flex; flex-direction: column; gap: 0.3rem; min-width: 220px; flex: 1; max-width: 340px; }
        .barrios-match-budget label { font-size: 0.72rem; font-weight: 700; color: #6b7280; }
        .barrios-match-budget label strong { color: #B8860B; }
        .barrios-match-budget input[type=range] { accent-color: #B8860B; cursor: pointer; height: 4px; }
        .barrios-match-profile { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; }
        .barrios-match-plabel { font-size: 0.72rem; font-weight: 700; color: #6b7280; }
        .match-chip { display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.4rem 0.7rem; font-size: 0.76rem; font-weight: 700; color: #6b7280; background: #fff; border: 1px solid #e5e7eb; border-radius: 9999px; cursor: pointer; transition: all .15s; }
        .match-chip i { width: 0.85em; height: 0.85em; }
        .match-chip:hover { border-color: #B8860B; color: #1f2937; }
        .match-chip.active { background: #1f2937; color: #fff; border-color: #1f2937; }
        .barrios-match-reset { font-size: 0.72rem; font-weight: 700; color: #B8860B; background: none; border: none; cursor: pointer; text-decoration: underline; }
        .barrios-match-reset[hidden] { display: none; }
        .barrios-match-see { display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem; margin-left: auto; padding: 0.6rem 1.1rem; font-size: 0.82rem; font-weight: 800; color: #1f2937; background: linear-gradient(135deg, #FFE0A3, #B8860B); border: none; border-radius: 9999px; cursor: pointer; box-shadow: 0 6px 18px rgba(184,134,11,0.40); transition: transform .15s ease, box-shadow .15s ease; }
        .barrios-match-see:hover { transform: translateY(-1px); box-shadow: 0 10px 24px rgba(184,134,11,0.50); }
        .barrios-match-see i { width: 0.95em; height: 0.95em; }
        @media (max-width: 640px) { .barrios-match-see { width: 100%; margin-left: 0; } }
        /* CTA del panel unificado de Filtros: reset (texto) + "Ver los N barrios" (botón dorado) */
        .barrios-toolbar-cta { display: flex; flex-direction: column; align-items: stretch; gap: 0.5rem; margin-top: 0.75rem; }
        .barrios-toolbar-cta .barrios-match-see { width: 100%; margin-left: 0; }
        .barrios-toolbar-cta .barrios-match-reset { align-self: center; }
        /* Acciones flotantes: 2 íconos circulares abajo a la derecha, fijos (sticky al scroll) */
        .barrios-fabs { position: fixed; right: 1.1rem; bottom: 1.1rem; z-index: 1490; display: flex; flex-direction: column; gap: 0.6rem; }
        .barrios-fab { position: relative; width: 52px; height: 52px; padding: 0; border: none; cursor: pointer; border-radius: 50%; background: #1f2937; color: #fff; display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 8px 22px rgba(15,23,42,0.32); transition: transform .15s ease, background .15s ease, box-shadow .15s ease; }
        .barrios-fab[hidden] { display: none; }
        .barrios-fab:hover { transform: translateY(-2px); background: #111827; box-shadow: 0 12px 26px rgba(15,23,42,0.4); }
        .barrios-fab i { width: 23px; height: 23px; }
        .barrios-fab__badge { position: absolute; top: -4px; right: -4px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 9999px; background: #C9A227; color: #1A1A1A; font-size: 0.72rem; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 1px 3px rgba(0,0,0,0.25); }
        #barriosSavedTray i { color: #FFB3C7; fill: currentColor; }
        #barriosCmpTray.is-ready { background: #B8860B; }
        #barriosCmpTray.is-ready:hover { background: #a3760a; }
        /* En móvil los FAB flotantes (guardar + comparar) se ocultan: la navegación está en el tab bar del footer */
        @media (max-width: 768px) { .barrios-fabs { display: none !important; } }
        .barrios-cmp-label { font-size: 0.78rem; font-weight: 800; display: inline-flex; align-items: center; gap: 0.35rem; white-space: nowrap; }
        .barrios-cmp-label i { width: 1em; height: 1em; color: #FFD68A; }
        .barrios-cmp-chips { display: flex; gap: 0.3rem; overflow-x: auto; max-width: 40vw; }
        .barrios-cmp-chip { display: inline-flex; align-items: center; gap: 0.25rem; background: rgba(255,255,255,0.15); padding: 0.2rem 0.55rem; border-radius: 9999px; font-size: 0.72rem; font-weight: 700; white-space: nowrap; }
        .barrios-cmp-chip button { background: none; border: none; color: rgba(255,255,255,0.7); cursor: pointer; font-size: 0.9rem; line-height: 1; padding: 0; }
        .barrios-cmp-go { background: #FFD68A; color: #1f2937; font-size: 0.8rem; font-weight: 800; padding: 0.45rem 0.9rem; border-radius: 9999px; text-decoration: none; white-space: nowrap; }
        .barrios-cmp-go:hover { background: #ffc966; }
        .barrios-cmp-go.is-disabled { opacity: 0.5; pointer-events: none; }
        .barrios-cmp-clear { background: none; border: none; color: rgba(255,255,255,0.7); font-size: 1.3rem; line-height: 1; cursor: pointer; padding: 0 0.2rem; }
        @media (max-width: 640px) { .barrios-cmp-chips { max-width: 38vw; } .barrios-cmp-label span { display: none; } }

        /* ===== Modal de comparación de barrios ===== */
        body.bx-cmp-open { overflow: hidden; }
        .bx-cmp-modal { position: fixed; inset: 0; z-index: 1500; display: flex; align-items: center; justify-content: center; padding: 1rem; }
        .bx-cmp-modal[hidden] { display: none; }
        .bx-cmp-overlay { position: absolute; inset: 0; background: rgba(15,23,42,0.55); backdrop-filter: blur(2px); }
        .bx-cmp-dialog { position: relative; z-index: 1; width: 100%; max-width: 56rem; max-height: 90vh; display: flex; flex-direction: column; background: #fff; border-radius: 1rem; box-shadow: 0 24px 60px rgba(0,0,0,0.35); overflow: hidden; }
        .bx-cmp-head { flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.25rem; border-bottom: 1px solid #eef0f3; }
        .bx-cmp-head h3 { margin: 0; font-size: 1.1rem; font-weight: 800; color: #111827; display: inline-flex; align-items: center; gap: 0.5rem; }
        .bx-cmp-head h3 i { width: 1.1em; height: 1.1em; color: #B8860B; }
        .bx-cmp-x { width: 2rem; height: 2rem; border: none; background: #f3f4f6; border-radius: 50%; font-size: 1.4rem; line-height: 1; color: #6b7280; cursor: pointer; }
        .bx-cmp-x:hover { background: #111827; color: #fff; }
        .bx-cmp-body { flex: 1 1 auto; overflow-y: auto; padding: 1.1rem 1.25rem 1.25rem; }
        .bx-cmp-foot { flex: 0 0 auto; padding: 0.85rem 1.25rem; border-top: 1px solid #eef0f3; text-align: right; }
        .bx-cmp-zonas { display: inline-flex; align-items: center; gap: 0.4rem; font-size: 0.85rem; font-weight: 800; color: #1f2937; text-decoration: none; padding: 0.5rem 0.9rem; border: 1px solid #e5e7eb; border-radius: 0.55rem; }
        .bx-cmp-zonas:hover { border-color: #B8860B; color: #B8860B; }
        .bx-cmp-zonas i { width: 1em; height: 1em; }
        /* Lista de guardados (modal) */
        .bx-saved-list { display: flex; flex-direction: column; gap: 0.5rem; }
        .bx-saved-empty { text-align: center; color: #6b7280; font-size: 0.9rem; padding: 1.5rem 0; }
        .bx-saved-row { display: flex; align-items: center; gap: 0.7rem; padding: 0.6rem 0.7rem; border: 1px solid #eef0f3; border-radius: 0.7rem; text-decoration: none; color: inherit; }
        .bx-saved-row:hover { border-color: #d8c79b; background: #fffdf6; }
        .bx-saved-row__main { flex: 1; min-width: 0; }
        .bx-saved-row__name { font-size: 0.95rem; font-weight: 800; color: #111827; }
        .bx-saved-row__dist { font-size: 0.74rem; color: #8a8f98; }
        .bx-saved-row__tier { flex: 0 0 auto; font-size: 0.56rem; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; padding: 0.16rem 0.5rem; border-radius: 9999px; }
        .bx-saved-row__price { flex: 0 0 auto; font-size: 0.82rem; font-weight: 800; color: #111827; white-space: nowrap; }
        .bx-saved-row__price small { font-weight: 600; color: #8a8f98; }
        .bx-saved-row__go { flex: 0 0 auto; font-size: 0.74rem; font-weight: 800; color: #B8860B; white-space: nowrap; }
        .bx-saved-row__del { flex: 0 0 auto; width: 1.7rem; height: 1.7rem; border: none; background: #f3f4f6; border-radius: 50%; color: #9aa1ac; font-size: 1.1rem; line-height: 1; cursor: pointer; }
        .bx-saved-row__del:hover { background: #fde2e2; color: #c0392b; }
        /* Cabecera de columnas (una por barrio) */
        .bx-cmp-cols { display: grid; gap: 0.7rem; grid-template-columns: repeat(var(--bx-n,2), 1fr); }
        .bx-cmp-col { border: 1px solid #eef0f3; border-radius: 0.75rem; padding: 0.85rem 0.8rem; text-align: center; border-top: 4px solid var(--c,#B8860B); }
        .bx-cmp-col-tier { display: inline-block; font-size: 0.58rem; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; padding: 0.15rem 0.5rem; border-radius: 9999px; margin-bottom: 0.35rem; }
        .bx-cmp-col-name { font-size: 0.98rem; font-weight: 800; color: #111827; line-height: 1.15; }
        .bx-cmp-col-dist { font-size: 0.72rem; color: #8a8f98; }
        .bx-cmp-col-score { margin: 0.55rem 0 0.2rem; font-size: 1.7rem; font-weight: 800; color: var(--c,#B8860B); line-height: 1; }
        .bx-cmp-col-score small { display: block; font-size: 0.56rem; font-weight: 700; letter-spacing: 0.06em; color: #9aa1ac; margin-top: 0.15rem; }
        .bx-cmp-col-price { margin-top: 0.5rem; font-size: 0.86rem; font-weight: 800; color: #111827; }
        .bx-cmp-col-price small { font-weight: 600; color: #8a8f98; }
        .bx-cmp-col-meta { margin-top: 0.25rem; font-size: 0.72rem; color: #6b7280; }
        .bx-cmp-col-meta b { color: #111827; }
        /* Radar */
        .bx-cmp-radarwrap { margin-top: 1.1rem; }
        .bx-cmp-radarwrap h5 { margin: 0 0 0.4rem; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; color: #6b7280; }
        .bx-cmp-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.75rem; margin-bottom: 0.2rem; }
        .bx-cmp-leg { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.78rem; font-weight: 700; color: #374151; }
        .bx-cmp-dot { width: 0.7rem; height: 0.7rem; border-radius: 50%; }
        .bx-cmp-radar { display: block; max-width: 360px; margin: 0 auto; }
        /* Dimensiones */
        .bx-cmp-dims { margin-top: 1.1rem; }
        .bx-cmp-dims h5 { margin: 0 0 0.6rem; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; color: #6b7280; }
        .bx-cmp-dimrow { display: grid; grid-template-columns: 6.5rem 1fr; gap: 0.6rem; align-items: center; padding: 0.32rem 0; border-top: 1px solid #f4f5f7; }
        .bx-cmp-dimname { font-size: 0.78rem; font-weight: 700; color: #374151; }
        .bx-cmp-dimbars { display: grid; gap: 0.3rem; grid-template-columns: repeat(var(--bx-n,2), 1fr); }
        .bx-cmp-dimcell { display: flex; align-items: center; gap: 0.4rem; }
        .bx-cmp-track { flex: 1; height: 7px; background: #f1f3f5; border-radius: 9999px; overflow: hidden; }
        .bx-cmp-fill { display: block; height: 100%; border-radius: 9999px; background: var(--c,#B8860B); }
        .bx-cmp-val { font-size: 0.72rem; font-weight: 800; color: #374151; width: 1.4rem; text-align: right; }
        /* Carácter y mercado */
        .bx-cmp-charac { margin-top: 1.2rem; }
        .bx-cmp-charac h5 { margin: 0 0 0.6rem; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; color: #6b7280; }
        .bx-cmp-ccard { border: 1px solid #eef0f3; border-radius: 0.75rem; padding: 0.8rem 0.85rem; border-top: 4px solid var(--c,#B8860B); }
        .bx-cmp-ccard-name { font-size: 0.92rem; font-weight: 800; color: #111827; margin-bottom: 0.5rem; }
        .bx-cmp-crow { padding: 0.4rem 0; border-top: 1px solid #f4f5f7; }
        .bx-cmp-crow:first-of-type { border-top: none; }
        .bx-cmp-clbl { display: block; font-size: 0.6rem; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; color: #9aa1ac; margin-bottom: 0.15rem; }
        .bx-cmp-cval { font-size: 0.82rem; color: #374151; line-height: 1.35; }
        .bx-cmp-chips { display: flex; flex-wrap: wrap; gap: 0.3rem; margin-top: 0.1rem; }
        .bx-cmp-chip2 { font-size: 0.68rem; font-weight: 700; color: #6b5417; background: #FBF3DC; border: 1px solid #f0e2b6; border-radius: 9999px; padding: 0.12rem 0.5rem; }
        @media (max-width: 640px) {
            .bx-cmp-cols { grid-template-columns: repeat(var(--bx-n,2), minmax(0,1fr)); gap: 0.45rem; }
            .bx-cmp-col { padding: 0.6rem 0.4rem; }
            .bx-cmp-col-score { font-size: 1.35rem; }
            .bx-cmp-dimrow { grid-template-columns: 4.5rem 1fr; }
            .bx-cmp-val { width: 1.1rem; }
        }
        /* Tarjeta resaltada cuando se interactúa con su zona en el mapa */
        .barrio-card-link.is-map-active .barrio-card { box-shadow: 0 0 0 3px #B8860B, 0 10px 24px rgba(184,134,11,0.18); transform: translateY(-3px); }

        /* =====================================================================
           REDISEÑO MOBILE: barra inferior (pulgar) + bottom-sheets + cards 1-col
           ===================================================================== */
        .barrios-sheet-backdrop, .barrios-mobilebar, .barrios-sheet-x { display: none; }
        /* Spacer del mobilebar: solo reserva espacio en móvil (ver media query). */
        .barrios-mobilebar-spacer { display: none; }

        @media (max-width: 768px) {
            /* Barra de acción de PÁGINA, FIJA bajo el header (top lo fija el JS = altura real de .lb-stickybar).
               position: fixed para que permanezca anclada durante TODO el scroll de resultados,
               sin importar que su contenedor (#barrios-explorer) colapse o tenga poco recorrido.
               z-index 60: por debajo del header que colapsa (~90-1400) pero por encima del contenido. */
            .barrios-mobilebar { display: flex; position: fixed; top: 0; left: 0; right: 0; z-index: 60; background: #fff; border-bottom: 1px solid #e5e7eb; box-shadow: 0 6px 16px rgba(0,0,0,0.08); padding: 0.4rem 0.5rem 0.45rem; gap: 0.4rem; }
            /* Reserva en flujo la altura de la barra fija (que ya no ocupa espacio) para que
               el primer contenido de resultados no quede oculto bajo la barra. ~56px = alto real. */
            .barrios-mobilebar-spacer { display: block; height: 56px; }
            .barrios-mobilebar button { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.18rem; background: #FAFAF7; border: 1px solid #f0efe9; padding: 0.55rem 0.3rem; font-size: 0.7rem; font-weight: 800; color: #374151; border-radius: 0.7rem; cursor: pointer; transition: all .15s; }
            .barrios-mobilebar button i { width: 1.5em; height: 1.5em; stroke-width: 2.3; }
            .barrios-mobilebar button:active { transform: scale(0.96); }
            .barrios-mobilebar button.is-active { color: #fff; background: #1f2937; border-color: #1f2937; box-shadow: 0 4px 12px rgba(31,41,55,0.25); }
            /* La barra Filtros/Mapa/Mi match ahora es sticky-top (en flujo), así que solo
               reservamos espacio abajo para el tab bar global del sitio (5 iconos, ~56px). */
            body { padding-bottom: calc(64px + env(safe-area-inset-bottom)); }
            /* Asegura que el footer de 5 iconos del sitio se vea en móvil */
            .lb-tabbar { display: flex !important; }

            /* Backdrop de los sheets */
            .barrios-sheet-backdrop { display: block; position: fixed; inset: 0; background: rgba(0,0,0,0.45); z-index: 1090; opacity: 0; transition: opacity .2s; pointer-events: none; }
            .barrios-sheet-backdrop.is-on { opacity: 1; pointer-events: auto; }

            /* En mobile el explorer va siempre abierto: ocultamos el toggle y los paneles inline (van en sheets) */
            .barrios-toggle { display: none !important; }
            .barrios-map-wrap, .barrios-toolbar { display: none; }
            .barrios-section .barrios-toggle-wrap { display: none; }
            /* Móvil: la grilla inline de barrios NO se muestra; las tarjetas viven en "Explorar todos".
               Tras los destacados aparece directo "¿Qué encontrarás en cada guía?". */
            #barrios-status, #neighborhood-cards { display: none !important; }
            #barrios-explorer { padding: 0 !important; margin: 0 !important; }
            #comparativa, .grid-table-separator { display: none !important; }

            /* Botón de cierre dentro de cada sheet */
            .barrios-sheet-x { display: inline-flex; position: absolute; top: 0.6rem; right: 0.6rem; z-index: 6; width: 32px; height: 32px; align-items: center; justify-content: center; background: #f3f4f6; border: none; border-radius: 50%; font-size: 1.5rem; line-height: 1; color: #6b7280; cursor: pointer; }

            /* Bottom-sheet: Filtros (panel unificado) — termina POR ENCIMA de la barra inferior */
            body.sheet-filtros .barrios-toolbar {
                display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 1098;
                max-height: 86vh; overflow-y: auto; -webkit-overflow-scrolling: touch; background: #fff; margin: 0;
                border-radius: 1.25rem 1.25rem 0 0;
                /* padding-bottom generoso para que el último control (slider de precio) no quede tapado por la barra (~76px) */
                padding: 2rem 1.1rem calc(96px + env(safe-area-inset-bottom));
                box-shadow: 0 -8px 40px rgba(0,0,0,0.28); animation: barrios-sheet-up .25s ease;
            }
            /* Grabber (barrita superior del sheet) */
            body.sheet-filtros .barrios-toolbar::before {
                content: ''; position: absolute; top: 0.6rem; left: 50%; transform: translateX(-50%);
                width: 40px; height: 4px; border-radius: 9999px; background: #d1d5db;
            }
            @keyframes barrios-sheet-up { from { transform: translateY(50px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
            /* La sortbar deja de ser sticky dentro del sheet */
            body.sheet-filtros .barrios-sortbar { position: static; margin-bottom: 0; }

            /* Mapa a pantalla completa */
            body.sheet-mapa .barrios-map-wrap { display: block; position: fixed; inset: 0; z-index: 1095; margin: 0; border-radius: 0; border: none; }
            body.sheet-mapa #barrios-map { height: calc(100dvh - 56px) !important; }
            body.sheet-mapa .barrios-map-head { position: relative; }

            /* Tarjetas 1 columna premium */
            .barrios-grid { grid-template-columns: 1fr !important; gap: 0.9rem; }
            .bcard-head { height: 150px; }
            .bcard-name { font-size: 1.1rem; }
            .bcard-distrito { font-size: 0.72rem; }
            .bcard-body { padding: 0.95rem 1rem 1.05rem; gap: 0.6rem; }
            .bcard-price-num { font-size: 1.65rem; }
            .bcard-price-unit { font-size: 0.85rem; }
            .bcard-substat { font-size: 0.74rem; }
            .bcard-lifestyle { font-size: 0.85rem; }
            .bcard-tag { font-size: 0.68rem; }
            .bcard-cta { font-size: 0.88rem; }
            .bcard-actions .bcard-compare, .bcard-actions .bcard-save { width: 28px; height: 28px; }
            .bcard-match { font-size: 0.72rem; padding: 0.25rem 0.6rem; }

            /* Bandejas por encima de la barra inferior */
            .barrios-fabs { display: none !important; }

            /* Hero más compacto */
            .barrios-hero-cta-row { flex-direction: column; }
        }

        /* ===== Tarjeta de barrio rediseñada (híbrido: banda visual + data) ===== */
        .barrio-card.bcard { padding: 0; overflow: hidden; border-radius: 0.85rem; }
        .bcard-head { position: relative; height: 112px; background-size: cover; background-position: center; display: flex; align-items: flex-end; padding: 0.7rem 0.85rem; }
        .bcard-head::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0.05) 0%, rgba(0,0,0,0.58) 100%); }
        .bcard-tier { position: absolute; top: 0.55rem; right: 0.55rem; z-index: 2; font-size: 0.6rem; font-weight: 800; padding: 0.18rem 0.5rem; border-radius: 9999px; text-transform: uppercase; letter-spacing: 0.03em; }
        .bcard-head-text { position: relative; z-index: 2; }
        .bcard-name { font-size: 0.98rem; font-weight: 800; color: #fff; line-height: 1.1; margin: 0; text-shadow: 0 1px 6px rgba(0,0,0,0.45); border: none; padding: 0 3.2rem 0 0; display: block; text-align: left; }
        .bcard-distrito { display: inline-flex; align-items: center; gap: 0.2rem; font-size: 0.66rem; font-weight: 600; color: rgba(255,255,255,0.92); margin-top: 0.15rem; }
        .bcard-distrito i { width: 0.8em; height: 0.8em; }
        .bcard-body { padding: 0.8rem 0.85rem 0.9rem; display: flex; flex-direction: column; gap: 0.5rem; flex-grow: 1; }
        .bcard-pricerow { display: flex; align-items: baseline; justify-content: space-between; gap: 0.5rem; flex-wrap: wrap; }
        .bcard-price { display: flex; align-items: baseline; gap: 0.2rem; }
        .bcard-price-num { font-size: 1.4rem; font-weight: 800; color: #1f2937; line-height: 1; letter-spacing: -0.02em; }
        .bcard-price-unit { font-size: 0.75rem; font-weight: 700; color: #9ca3af; }
        .bcard-substats { display: flex; flex-direction: column; align-items: flex-end; gap: 0.05rem; }
        .bcard-substat { font-size: 0.66rem; color: #6b7280; white-space: nowrap; }
        .bcard-substat strong { color: #1f2937; font-weight: 700; }
        .bcard-lifestyle { font-size: 0.76rem; color: #6b7280; line-height: 1.35; margin: 0; }
        .bcard-tags { display: flex; flex-wrap: wrap; gap: 0.25rem; }
        .bcard-tag { font-size: 0.62rem; font-weight: 700; color: #8a6500; background: #FFF8E7; padding: 0.12rem 0.45rem; border-radius: 9999px; }
        .bcard-cta { margin-top: auto; display: inline-flex; align-items: center; gap: 0.3rem; font-size: 0.8rem; font-weight: 800; color: #B8860B; padding-top: 0.25rem; }
        .bcard-cta i { width: 1em; height: 1em; transition: transform .15s; }
        .barrio-card-link:hover .bcard-cta i { transform: translateX(3px); }
        @media (max-width: 640px) {
            .bcard-head { height: 92px; }
            .bcard-name { font-size: 0.92rem; }
            .bcard-price-num { font-size: 1.2rem; }
            .bcard-substat { font-size: 0.6rem; }
        }

        .lucide-icon-large {
            width: 2.5rem;
            height: 2.5rem;
            stroke-width: 1.5;
        }

        /* Testimonial cards */
        .testimonial-card {
            background-color: #ffffff;
            border: 1px solid #f3f4f6;
            padding: 1.5rem;
            border-radius: 0.5rem;
            box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.03);
            display: flex;
            flex-direction: column;
            height: 100%;
        }
        .testimonial-card .quote {
            flex-grow: 1;
            margin-bottom: 1rem;
            font-style: italic;
            color: #374151;
            position: relative;
            padding-left: 1.5rem;
            font-size: 0.9375rem;
        }
        .testimonial-card .quote::before {
            content: '“';
            position: absolute;
            left: 0;
            top: -0.25rem;
            font-size: 2rem;
            color: #e5e7eb;
            font-weight: 900;
        }
        .testimonial-card .attribution {
            margin-top: auto;
            padding-top: 1rem;
            border-top: 1px solid #f3f4f6;
            font-size: 0.8125rem;
            color: #6b7280;
            text-align: right;
        }

        /* Filters */
        .filter-tag {
            background-color: #e0e0e0;
            color: #555;
            padding: 6px 12px;
            border-radius: 20px;
            cursor: pointer;
            transition: background-color 0.3s ease, color 0.3s ease;
            user-select: none;
        }
        .filter-tag:hover { background-color: #d0d0d0; }
        .filter-tag.active {
            background-color: #000000;
            color: white;
        }

        /* Grilla de barrios (24 visibles, no carrusel) */
        .barrios-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
            gap: 1rem;
            margin-top: 0;
        }
        .barrios-grid .barrio-card-link {
            width: 100%;
            margin-right: 0;
        }
        @media (max-width: 640px) {
            .barrios-grid {
                grid-template-columns: repeat(2, minmax(0, 1fr));
                gap: 0.75rem;
            }
        }
        /* Tarjeta estratégica (mercado + ideal para + CTA) */
        .barrio-card.barrio-card--strategic {
            display: flex;
            flex-direction: column;
            gap: 0.5rem;
            padding: 1rem;
            border-radius: 0.75rem;
            border: 1px solid #e5e7eb;
            background: #fff;
            height: 100%;
            transition: box-shadow .2s ease, transform .2s ease;
        }
        .barrio-card--strategic:hover {
            box-shadow: 0 8px 18px -6px rgba(0,0,0,0.12);
            transform: translateY(-2px);
        }
        .barrio-card--strategic .card-head {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            gap: 0.5rem;
            border: 0;
            padding: 0;
            margin: 0;
        }
        .barrio-card--strategic .card-name {
            font-size: 1rem;
            font-weight: 800;
            line-height: 1.2;
            color: #111;
            margin: 0;
        }
        .barrio-card--strategic .card-lifestyle {
            font-size: 0.8125rem;
            color: #4b5563;
            line-height: 1.4;
            margin: 0;
            min-height: 2.2em;
        }
        .barrio-card--strategic .card-row {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            gap: 0.4rem;
            margin: 0;
        }
        .market-badge {
            display: inline-flex;
            align-items: center;
            padding: 0.15rem 0.55rem;
            border-radius: 9999px;
            font-size: 0.7rem;
            font-weight: 700;
            line-height: 1.25;
        }
        .price-stat {
            font-size: 0.85rem;
            font-weight: 700;
            color: #111;
        }
        .price-stat small {
            font-weight: 500;
            color: #6b7280;
            font-size: 0.7rem;
        }
        .ideal-label {
            display: inline-block;
            font-size: 0.65rem;
            font-weight: 700;
            color: #6b7280;
            text-transform: uppercase;
            letter-spacing: 0.05em;
            margin-right: 0.25rem;
        }
        .ideal-tag {
            display: inline-block;
            background: #f3f4f6;
            color: #374151;
            padding: 0.1rem 0.45rem;
            border-radius: 0.375rem;
            font-size: 0.7rem;
            font-weight: 500;
        }
        .card-cta {
            margin-top: auto;
            padding-top: 0.6rem;
            border-top: 1px solid #f3f4f6;
            font-size: 0.85rem;
            font-weight: 700;
            color: #b45309;
            display: inline-flex;
            align-items: center;
            gap: 0.25rem;
            line-height: 1.3;
        }
        /* CTA suave para barrios "Próximamente" (lead capture) */
        .card-cta--soon { color: #0369a1; font-size: 0.78rem; }
        .barrio-card-link--soon .barrio-card--strategic {
            border-style: dashed;
            background: #fafafa;
        }
        .barrio-card-link.is-hidden { display: none !important; }

        /* ===== Modo colapsado: solo destacados visibles ===== */
        .barrios-grid--collapsed .barrio-card-link.barrio-card--secondary {
            display: none;
        }
        /* Si hay filtro o búsqueda activos, ignoramos colapsado */
        .barrios-grid.is-filtered.barrios-grid--collapsed .barrio-card-link.barrio-card--secondary {
            display: flex; /* respeta la clase original .barrio-card-link */
        }
        .barrios-grid.is-filtered.barrios-grid--collapsed .barrio-card-link.is-hidden {
            display: none !important;
        }

        /* ===== Móvil: carrusel horizontal cuando está colapsado y sin filtros ===== */
        @media (max-width: 640px) {
            .barrios-grid.barrios-grid--collapsed:not(.is-filtered) {
                display: flex;
                grid-template-columns: none;
                overflow-x: auto;
                scroll-snap-type: x mandatory;
                -webkit-overflow-scrolling: touch;
                padding-bottom: 0.75rem;
                gap: 0.75rem;
                scrollbar-width: thin;
            }
            .barrios-grid.barrios-grid--collapsed:not(.is-filtered) .barrio-card-link.barrio-card--featured {
                flex: 0 0 82%;
                scroll-snap-align: start;
            }
            /* Chips toolbar: scroll horizontal en una sola línea */
            .barrios-filters-row {
                flex-wrap: nowrap !important;
                overflow-x: auto;
                -webkit-overflow-scrolling: touch;
                padding-bottom: 0.5rem;
                scrollbar-width: none;
                justify-content: flex-start !important;
            }
            .barrios-filters-row::-webkit-scrollbar { display: none; }
            .filter-chip { flex-shrink: 0; }
        }

        /* ===== Botón toggle "Ver los 24 barrios" ===== */
        .barrios-toggle {
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
            padding: 0.7rem 1.5rem;
            margin-top: 1.75rem;
            background: #fff;
            border: 1.5px solid #b8924b;
            color: #b8924b;
            border-radius: 9999px;
            font-weight: 700;
            font-size: 0.92rem;
            cursor: pointer;
            transition: background 0.15s, color 0.15s, transform 0.1s;
            font-family: inherit;
        }
        .barrios-toggle:hover {
            background: #b8924b;
            color: #fff;
        }
        .barrios-toggle:focus-visible {
            outline: 3px solid #fde68a;
            outline-offset: 2px;
        }
        .barrios-toggle .arrow {
            display: inline-block;
            transition: transform 0.2s;
        }
        .barrios-toggle[aria-expanded="true"] .arrow {
            transform: rotate(180deg);
        }
        /* Ocultar el toggle si filtro/búsqueda activos (la lógica de filtros ya muestra los 24 relevantes) */
        .barrios-section.is-filter-active .barrios-toggle {
            display: none;
        }

        /* Chips usan <button>; reseteamos estilos por defecto */
        button.filter-chip {
            font-family: inherit;
            font-size: inherit;
            line-height: inherit;
            border: none;
            background: #e0e0e0;
            color: #555;
        }
        button.filter-chip:hover { background: #d0d0d0; }
        button.filter-chip.active,
        button.filter-chip[aria-pressed="true"] {
            background: #000;
            color: #fff;
        }
        button.filter-chip:focus-visible {
            outline: 3px solid #fde68a;
            outline-offset: 2px;
        }

        /* ========================================================== */
        /* === CHIPS SLIDER (barrios) === */
        /* ========================================================== */
        .barrios-chips-wrap {
            position: relative;
            margin-bottom: 1.25rem;
        }
        .barrios-chips-slider {
            display: flex;
            gap: 0.5rem;
            overflow-x: auto;
            -webkit-overflow-scrolling: touch;
            scroll-snap-type: x proximity;
            padding: 0.5rem 0.25rem 1rem;
            scrollbar-width: thin;
            scrollbar-color: rgba(184,146,75,0.4) transparent;
        }
        .barrios-chips-slider::-webkit-scrollbar { height: 6px; }
        .barrios-chips-slider::-webkit-scrollbar-track { background: transparent; }
        .barrios-chips-slider::-webkit-scrollbar-thumb { background: rgba(184,146,75,0.4); border-radius: 3px; }
        .barrios-chips-slider::-webkit-scrollbar-thumb:hover { background: rgba(184,146,75,0.7); }

        .barrio-chip {
            flex: 0 0 auto;
            padding: 0.6rem 1.15rem;
            background: #fff;
            border: 1.5px solid #e5e7eb;
            border-radius: 999px;
            font-size: 0.9rem;
            font-weight: 600;
            color: #374151;
            cursor: pointer;
            transition: all 0.18s;
            font-family: inherit;
            white-space: nowrap;
            scroll-snap-align: start;
        }
        .barrio-chip:hover {
            border-color: #b8924b;
            color: #b8924b;
            transform: translateY(-1px);
        }
        .barrio-chip:focus-visible {
            outline: 3px solid #fde68a;
            outline-offset: 2px;
        }
        .barrio-chip.is-active,
        .barrio-chip[aria-pressed="true"] {
            background: #0f172a;
            border-color: #0f172a;
            color: #fff;
        }

        /* ========================================================== */
        /* === ACTIVE CARD (preview del barrio seleccionado) === */
        /* ========================================================== */
        .barrio-active-card {
            background: #fff;
            border: 1px solid #f3f4f6;
            border-left: 4px solid #b8924b;
            border-radius: 0.75rem;
            padding: 1.5rem 1.75rem;
            box-shadow: 0 4px 12px rgba(0,0,0,0.04);
            margin: 0.5rem 0 1.25rem;
            transition: opacity 0.18s;
        }
        .barrio-active-card.is-fading { opacity: 0.4; }
        .barrio-active-card__head {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            gap: 1rem;
            margin-bottom: 0.5rem;
            flex-wrap: wrap;
        }
        .barrio-active-card__name {
            font-size: 1.4rem;
            font-weight: 800;
            color: #0f172a;
            margin: 0;
            line-height: 1.2;
        }
        .barrio-active-card__lifestyle {
            color: #4b5563;
            font-size: 0.95rem;
            line-height: 1.5;
            margin: 0 0 0.85rem;
        }
        .barrio-active-card__row {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            gap: 0.6rem;
            margin: 0 0 0.85rem;
        }
        .barrio-active-card__row .market-badge { padding: 0.25rem 0.7rem; font-size: 0.78rem; }
        .barrio-active-card__price {
            font-size: 1rem;
            font-weight: 800;
            color: #0f172a;
        }
        .barrio-active-card__price small {
            font-weight: 500;
            color: #6b7280;
            font-size: 0.78rem;
        }
        .barrio-active-card__ideal {
            display: flex;
            flex-wrap: wrap;
            gap: 0.4rem;
            align-items: center;
            margin: 0 0 1.1rem;
        }
        .barrio-active-card__ideal .ideal-label { margin-right: 0.3rem; }
        .barrio-active-card__cta {
            display: inline-flex;
            align-items: center;
            gap: 0.4rem;
            padding: 0.7rem 1.4rem;
            background: #0f172a;
            color: #fff;
            border-radius: 8px;
            font-weight: 700;
            font-size: 0.92rem;
            text-decoration: none;
            transition: background 0.15s, transform 0.1s;
        }
        .barrio-active-card__cta:hover { background: #1e293b; transform: translateY(-1px); }
        .barrio-active-card__cta--soon { background: #fff; color: #b8924b; border: 1.5px solid #b8924b; }
        .barrio-active-card__cta--soon:hover { background: #b8924b; color: #fff; }

        @media (max-width: 640px) {
            .barrio-active-card { padding: 1.15rem 1.15rem; }
            .barrio-active-card__name { font-size: 1.2rem; }
            .barrios-chips-slider { padding-left: 0; padding-right: 0; }
            .barrio-chip { padding: 0.55rem 1rem; font-size: 0.88rem; }
        }

        /* ========================================================== */
        /* === EXPLORER (toolbar + grid colapsado por defecto) === */
        /* ========================================================== */
        .barrios-explorer { animation: barrios-fade-in 0.25s ease-out; }
        .barrios-explorer[hidden] { display: none; }
        @keyframes barrios-fade-in {
            from { opacity: 0; transform: translateY(-6px); }
            to { opacity: 1; transform: none; }
        }

        /* Cuando explorer está abierto, ya no aplicamos modo colapsado por destacados */
        .barrios-explorer .barrios-grid--collapsed .barrio-card-link.barrio-card--secondary {
            display: flex;  /* mostrar todas las cards cuando el explorer está abierto */
        }

        /* Accesibilidad: sr-only para label oculto */
        .sr-only {
            position: absolute;
            width: 1px;
            height: 1px;
            padding: 0;
            margin: -1px;
            overflow: hidden;
            clip: rect(0,0,0,0);
            white-space: nowrap;
            border: 0;
        }

        /* Separador potente entre grilla y tabla comparativa */
        .grid-table-separator {
            margin-top: 4rem;
            margin-bottom: 4rem;
            position: relative;
            text-align: center;
        }
        .grid-table-separator::before {
            content: '';
            display: block;
            height: 1px;
            background: linear-gradient(90deg, transparent, #d1d5db, transparent);
            margin-bottom: 1.5rem;
        }
        .grid-table-separator__label {
            display: inline-block;
            background: #fef3c7;
            color: #78350f;
            padding: 0.4rem 1rem;
            border-radius: 9999px;
            font-size: 0.75rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.08em;
        }

        /* Aviso de precios orientativos */
        .price-disclaimer {
            margin-top: 1.5rem;
            padding: 0.75rem 1rem;
            background: #fffbeb;
            border: 1px solid #fde68a;
            border-radius: 0.5rem;
            color: #92400e;
            font-size: 0.8rem;
            line-height: 1.5;
            text-align: center;
        }
        .price-disclaimer strong { font-weight: 700; }

        /* Perfiles editoriales (sin testimonios con nombres) */
        .profile-card {
            background: #fff;
            border: 1px solid #f3f4f6;
            border-left: 3px solid #b8924b;
            padding: 1.25rem 1.5rem;
            border-radius: 0.5rem;
            box-shadow: 0 1px 2px 0 rgba(0,0,0,0.03);
            display: flex;
            flex-direction: column;
            height: 100%;
        }
        .profile-card h3 {
            font-size: 1.05rem;
            font-weight: 800;
            color: #111;
            margin: 0 0 0.25rem;
            line-height: 1.2;
        }
        .profile-card .profile-tags {
            font-size: 0.75rem;
            color: #b8924b;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.05em;
            margin: 0 0 0.65rem;
        }
        .profile-card .profile-line {
            font-size: 0.92rem;
            color: #374151;
            line-height: 1.55;
            margin: 0;
        }
        .profile-card .profile-line strong { color: #111; font-weight: 700; }

        /* Carousels */
        .carousel-container {
            position: relative;
            overflow: hidden;
            padding-bottom: 1rem;
        }
        .carousel-wrapper {
            display: flex;
            overflow-x: auto;
            scroll-behavior: smooth;
            -webkit-overflow-scrolling: touch;
            padding-bottom: 1rem;
            cursor: grab;
            user-select: none;
        }
        .carousel-wrapper.grabbing { cursor: grabbing; }
        .carousel-wrapper::-webkit-scrollbar { display: none; }
        .carousel-wrapper {
            -ms-overflow-style: none;
            scrollbar-width: none;
        }

        /* Detailed guide cards */
        .guide-card-link {
            text-decoration: none;
            color: inherit;
            display: flex;
            flex-shrink: 0;
            width: 280px;
            margin-right: 1.5rem;
        }
        .guide-card {
            background: white;
            border-radius: 12px;
            overflow: hidden;
            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
            transition: transform 0.3s ease, box-shadow 0.3s ease;
            cursor: pointer;
            display: flex;
            flex-direction: column;
            width: 100%;
        }
        .guide-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 8px 12px rgba(0, 0, 0, 0.15);
        }
        .guide-image {
            width: 100%;
            height: 140px;
            object-fit: cover;
        }
        .guide-content {
            padding: 1rem;
            display: flex;
            flex-direction: column;
            flex-grow: 1;
        }
        .guide-category {
            display: inline-block;
            padding: 0.25rem 0.75rem;
            background-color: #f0f0f0;
            color: #666;
            font-size: 0.8rem;
            border-radius: 20px;
            margin-bottom: 0.5rem;
            align-self: flex-start;
        }
        .guide-title {
            font-size: 1.25rem;
            font-weight: bold;
            margin-bottom: 0.5rem;
            color: #333;
        }
        .guide-description {
            color: #666;
            line-height: 1.5;
            margin-bottom: 1rem;
            flex-grow: 1;
            font-size: 0.9rem;
        }
        .guide-stats {
            display: flex;
            flex-wrap: wrap;
            gap: 1rem;
            margin-bottom: 1rem;
            font-size: 0.8rem;
            color: #888;
        }
        .guide-stats span {
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }
        .guide-stats i {
            font-size: 0.9rem;
            color: #666;
        }
        .guide-button {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 0.5rem;
            padding: 0.6rem 1.2rem;
            background-color: #000;
            color: white;
            text-decoration: none;
            border-radius: 6px;
            font-weight: 500;
            transition: all 0.2s ease;
            transform: translateY(0);
            margin-top: auto;
            align-self: flex-start;
            font-size: 0.8rem;
        }
        .guide-button:hover {
            background-color: #333;
            color: white;
            transform: translateY(-2px);
            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
        }

        @media (max-width: 768px) {
            .barrio-card-link { width: 200px; margin-right: 1rem; }
            .barrio-card { padding: 0.5rem; }
            .barrio-card h3 { font-size: 0.875rem; }
            .barrio-card .data-value { font-size: 0.75rem; }
            .barrio-card .data-point.price .data-value { font-size: 0.875rem; }
            .barrio-card .data-label { font-size: 0.625rem; }
            .guide-card-link { width: 240px; }
        }

        /* Nav extra (vínculos al resto del sitio) */
        .top-nav-link {
            color: #4b5563;
            font-size: 0.875rem;
            transition: color .2s ease;
        }
        .top-nav-link:hover { color: #000; }
        .top-nav-link.is-current { color: #000; font-weight: 700; position: relative; }
        .top-nav-link.is-current::after { content: ''; position: absolute; left: 0; right: 0; bottom: -0.45rem; height: 2px; background: #B8860B; border-radius: 2px; }

        /* ===== Header CTA refinada ===== */
        .lb-header-cta { display: inline-flex; align-items: center; gap: 0.4rem; background: linear-gradient(135deg, #1f2937, #000); color: #fff; font-weight: 800; font-size: 0.85rem; padding: 0.62rem 1.15rem; border-radius: 9999px; text-decoration: none; box-shadow: 0 4px 14px rgba(0,0,0,0.18); transition: transform .15s, box-shadow .2s; white-space: nowrap; }
        .lb-header-cta:hover { transform: translateY(-1px); box-shadow: 0 8px 22px rgba(0,0,0,0.28); }
        .lb-header-cta i { width: 1em; height: 1em; color: #FFD68A; }
        @media (max-width: 768px) {
            .logo a { font-size: 1.05rem !important; letter-spacing: 0.01em; }
            .lb-header-cta { font-size: 0.76rem; padding: 0.5rem 0.85rem; }
        }

        /* ===== Botones del hero ===== */
        .lb-hero-btns { display: flex; flex-wrap: wrap; gap: 0.65rem; justify-content: center; }
        .lb-hero-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.45rem; font-weight: 800; font-size: 0.92rem; padding: 0.85rem 1.5rem; border-radius: 9999px; text-decoration: none; transition: transform .15s, box-shadow .2s; }
        .lb-hero-btn i { width: 1.05em; height: 1.05em; }
        .lb-hero-btn--primary { background: linear-gradient(135deg, #FFE0A3, #B8860B); color: #1f2937; box-shadow: 0 6px 22px rgba(184,134,11,0.45); }
        .lb-hero-btn--primary:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(184,134,11,0.55); }
        .lb-hero-btn--glass { background: rgba(255,255,255,0.16); color: #fff; border: 1px solid rgba(255,255,255,0.45); backdrop-filter: blur(8px); }
        .lb-hero-btn--glass:hover { background: rgba(255,255,255,0.28); transform: translateY(-1px); }
        .lb-hero-btn--ghost { background: transparent; color: #fff; text-decoration: underline; text-underline-offset: 4px; font-weight: 700; }
        .lb-hero-btn--ghost:hover { color: #FFD68A; }
        @media (max-width: 640px) {
            .lb-hero-btn--primary, .lb-hero-btn--glass { width: 100%; }
            .lb-hero-btn { font-size: 0.88rem; padding: 0.8rem 1.2rem; }
        }

        /* ===== Hero editorial (sin foto stock) ===== */
        .lb-hero2 { position: relative; overflow: hidden; border-radius: 1.5rem; background: radial-gradient(120% 120% at 80% 0%, #2a3550 0%, #141c2b 45%, #0c1119 100%); padding: 3.5rem 1.5rem 6rem; text-align: center; isolation: isolate; }
        .lb-hero2-glow { position: absolute; z-index: 0; width: 60%; height: 70%; right: -10%; top: -20%; background: radial-gradient(circle, rgba(184,134,11,0.55), rgba(184,134,11,0) 70%); filter: blur(20px); pointer-events: none; }
        .lb-hero2-glow.two { left: -15%; right: auto; top: auto; bottom: -25%; width: 55%; height: 60%; background: radial-gradient(circle, rgba(59,130,246,0.28), rgba(59,130,246,0) 70%); }
        .lb-hero2-grid { position: absolute; inset: 0; z-index: 0; background-image: linear-gradient(rgba(255,255,255,0.04) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px); background-size: 44px 44px; mask-image: radial-gradient(120% 80% at 50% 0%, #000 30%, transparent 75%); }
        .lb-hero2-skyline { position: absolute; left: 0; right: 0; bottom: 0; width: 100%; height: auto; z-index: 0; opacity: 0.5; }
        .lb-hero2-inner { position: relative; z-index: 2; max-width: 52rem; margin: 0 auto; }
        .lb-hero2-badge { display: inline-flex; align-items: center; gap: 0.4rem; margin-bottom: 1.1rem; padding: 0.3rem 0.85rem; font-size: 0.7rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; color: #FFD68A; background: rgba(184,134,11,0.14); border: 1px solid rgba(255,214,138,0.35); border-radius: 9999px; }
        .lb-hero2-badge i { width: 0.9em; height: 0.9em; }
        .lb-hero2 h1 { font-size: clamp(1.9rem, 6vw, 3.4rem); font-weight: 900; line-height: 1.08; color: #fff; margin: 0 0 1rem; letter-spacing: -0.01em; }
        .lb-hero2 h1 .accent { background: linear-gradient(120deg, #FFE0A3, #B8860B); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
        .lb-hero2-lead { font-size: clamp(0.95rem, 2.2vw, 1.15rem); line-height: 1.55; color: #c7cedb; max-width: 40rem; margin: 0 auto 1.75rem; }
        @media (max-width: 640px) {
            .lb-hero2 { padding: 2.5rem 1.1rem 4.5rem; border-radius: 1.1rem; }
            .lb-hero2-lead { margin-bottom: 1.4rem; }
        }

        /* ===== Carrusel de barrios destacados (estilo app) ===== */
        .lb-featured-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 0.75rem; }
        .lb-featured-title { font-size: clamp(1.35rem, 3.5vw, 1.85rem); font-weight: 800; color: #111827; line-height: 1.15; margin: 0; }
        .lb-featured-sub { font-size: 0.9rem; color: #6b7280; margin: 0.3rem 0 0; max-width: 34rem; }
        .lb-featured-arrow {
            flex: 0 0 auto; width: 2.5rem; height: 2.5rem; border-radius: 9999px;
            display: inline-flex; align-items: center; justify-content: center;
            background: #fff; border: 1px solid #d8dde5; color: #1f2937; cursor: pointer;
            box-shadow: 0 1px 2px rgba(16,24,40,0.06); transition: transform .15s ease, box-shadow .15s ease, background .15s;
        }
        .lb-featured-arrow:hover { background: #111827; color: #fff; transform: scale(1.06); }
        .lb-featured-arrow i { width: 1.15em; height: 1.15em; }

        .lb-featured { position: relative; margin: 0 -1rem 1rem; }
        .lb-featured-rail {
            display: flex; gap: 1rem; overflow-x: auto; scroll-snap-type: x mandatory;
            padding: 0.5rem 1rem 1.5rem; -webkit-overflow-scrolling: touch;
            scrollbar-width: thin; scrollbar-color: #d1d5db transparent;
        }
        .lb-featured-rail::-webkit-scrollbar { height: 8px; }
        .lb-featured-rail::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 9999px; }
        .lb-featured-rail::-webkit-scrollbar-track { background: transparent; }

        .lb-feat-card {
            flex: 0 0 20.5rem; max-width: 20.5rem; scroll-snap-align: start;
            display: flex; flex-direction: column; cursor: pointer;
            text-decoration: none; color: inherit;
            zoom: 0.61; /* achica el conjunto 15% manteniendo todas las proporciones internas */
        }
        /* Portada (única) */
        .lb-feat-cover {
            position: relative; aspect-ratio: 1 / 1; border-radius: 1.1rem; overflow: hidden;
            background-size: cover; background-position: center;
            box-shadow: 0 1px 3px rgba(16,24,40,0.10);
            transition: transform .2s ease, box-shadow .2s ease;
        }
        .lb-feat-card:hover .lb-feat-cover { transform: translateY(-3px); box-shadow: 0 16px 36px -14px rgba(16,24,40,0.35); }
        .lb-feat-tier {
            position: absolute; top: 0.7rem; left: 0.7rem; z-index: 2;
            padding: 0.28rem 0.65rem; font-size: 0.66rem; font-weight: 800;
            letter-spacing: 0.04em; text-transform: uppercase; border-radius: 9999px;
            backdrop-filter: blur(4px);
        }
        .lb-feat-soon {
            position: absolute; bottom: 0.8rem; left: 0.7rem; z-index: 2;
            padding: 0.2rem 0.55rem; font-size: 0.66rem; font-weight: 700;
            color: #fff; background: rgba(17,24,39,0.7); border-radius: 9999px;
        }
        /* ===== Acciones sobre las tarjetas: comparar (flechas) + guardar (corazón) ===== */
        .lb-cardacts { position: absolute; top: 0.6rem; right: 0.6rem; z-index: 6; display: flex; gap: 0.4rem; }
        .lb-act-ico { width: 2.6rem; height: 2.6rem; padding: 0; border: none; border-radius: 0; background: none; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; color: #fff; filter: drop-shadow(0 1px 2px rgba(0,0,0,0.5)); transition: transform .15s, color .15s; }
        .lb-act-ico:hover { transform: scale(1.12); }
        .lb-act-ico i, .lb-act-ico svg { width: 24px; height: 24px; fill: none; }
        .lb-act-ico.is-on { color: #C9A227; }
        .lb-act-ico.is-on i, .lb-act-ico.is-on svg { fill: currentColor; }
        /* En la cuadrícula (tarjetas pequeñas) los íconos van más chicos */
        .lb-gcard .lb-cardacts { top: 6px; right: 6px; gap: 0.3rem; }
        .lb-gcard .lb-act-ico { width: 29px; height: 29px; }
        .lb-gcard .lb-act-ico i, .lb-gcard .lb-act-ico svg { width: 20px; height: 20px; }
        /* En las tiras (fondo blanco) los íconos van grises y se vuelven dorados al seleccionar */
        .lb-lrow__acts { display: inline-flex; align-items: center; gap: 0.35rem; flex: 0 0 auto; }
        .lb-lrow__acts .lb-act-ico { color: #aeb4bd; filter: none; width: 1.7rem; height: 1.7rem; }
        .lb-lrow__acts .lb-act-ico:hover { color: #6b7280; }
        .lb-lrow__acts .lb-act-ico.is-on { color: #C9A227; }
        /* Info sobre la portada (todos los datos) */
        .lb-feat-cover-info { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 0.85rem 0.9rem 0.9rem; }
        .lb-feat-name { font-size: 1.18rem; font-weight: 800; color: #fff; line-height: 1.15; margin: 0; text-shadow: 0 1px 4px rgba(0,0,0,0.35); }
        .lb-feat-distrito { display: inline-flex; align-items: center; gap: 0.25rem; margin-top: 0.1rem; font-size: 0.76rem; font-weight: 600; color: rgba(255,255,255,0.88); }
        .lb-feat-distrito i { width: 0.85em; height: 0.85em; }
        .lb-feat-cover-stats { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.6rem; }
        .lb-feat-cover-stats .lb-feat-stat {
            display: inline-flex; align-items: baseline; gap: 0.22rem;
            font-size: 0.7rem; font-weight: 600; color: rgba(255,255,255,0.85);
            background: rgba(255,255,255,0.14); border: 1px solid rgba(255,255,255,0.2);
            backdrop-filter: blur(4px); border-radius: 9999px; padding: 0.22rem 0.55rem;
        }
        .lb-feat-cover-stats .lb-feat-stat strong { font-size: 0.82rem; font-weight: 800; color: #fff; }

        /* Card "ver todos" — mismo tamaño que las demás (solo portada) */
        .lb-feat-seeall {
            flex: 0 0 20.5rem; max-width: 20.5rem; scroll-snap-align: start;
            display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.9rem;
            aspect-ratio: 1 / 1; cursor: pointer; zoom: 0.61;
            background: radial-gradient(120% 120% at 50% 0%, #1c2740 0%, #0c1119 100%);
            border: none; border-radius: 1.1rem; color: #fff; padding: 1.5rem;
            box-shadow: 0 1px 3px rgba(16,24,40,0.12); transition: transform .2s, box-shadow .2s;
        }
        .lb-feat-seeall:hover { transform: translateY(-3px); box-shadow: 0 18px 40px -14px rgba(16,24,40,0.4); }
        .lb-feat-seeall-stack { position: relative; width: 4.5rem; height: 3.5rem; }
        .lb-feat-seeall-stack span {
            position: absolute; width: 2.6rem; height: 2.6rem; border-radius: 0.6rem; border: 2px solid rgba(255,255,255,0.85);
            background: rgba(255,255,255,0.08);
        }
        .lb-feat-seeall-stack span:nth-child(1) { left: 0; top: 0.7rem; transform: rotate(-9deg); }
        .lb-feat-seeall-stack span:nth-child(2) { left: 1rem; top: 0; transform: rotate(4deg); background: rgba(255,255,255,0.16); }
        .lb-feat-seeall-stack span:nth-child(3) { left: 1.9rem; top: 0.5rem; transform: rotate(12deg); border-color: #FFD68A; }
        .lb-feat-seeall-txt { font-size: 1rem; font-weight: 800; text-align: center; line-height: 1.2; }
        .lb-feat-seeall-cta { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.82rem; font-weight: 700; color: #FFD68A; }
        .lb-feat-seeall-cta i { width: 1em; height: 1em; transition: transform .2s; }
        .lb-feat-seeall:hover .lb-feat-seeall-cta i { transform: translateX(3px); }

        /* Pill flotante Mapa (estilo app) */
        .lb-map-fab {
            position: fixed; bottom: 1.5rem; right: 1.5rem; z-index: 1090;
            display: inline-flex; align-items: center; gap: 0.5rem; cursor: pointer;
            padding: 0.7rem 1.25rem; border: none; border-radius: 9999px;
            background: #1f2937; color: #fff; font-size: 0.9rem; font-weight: 700;
            box-shadow: 0 8px 24px -6px rgba(16,24,40,0.45);
            transition: transform .15s, box-shadow .15s;
        }
        .lb-map-fab:hover { transform: scale(1.05); box-shadow: 0 12px 30px -6px rgba(16,24,40,0.55); }
        .lb-map-fab i { width: 1.05em; height: 1.05em; }
        @media (max-width: 768px) {
            /* En mobile ya existe el botón Mapa en la barra inferior → ocultar la pill */
            .lb-map-fab { display: none; }
        }

        @media (max-width: 640px) {
            /* En móvil escalamos con tamaños reales (no zoom, que iOS Safari puede ignorar),
               conservando las proporciones internas de la tarjeta de destacados. */
            .lb-feat-card, .lb-feat-seeall { zoom: normal; }
            .lb-feat-card { flex-basis: 11rem; max-width: 11rem; }
            .lb-feat-seeall { flex-basis: 11rem; max-width: 11rem; padding: 1rem; }
            .lb-feat-cover-info { padding: 0.55rem 0.6rem 0.6rem; }
            .lb-feat-name { font-size: 0.82rem; line-height: 1.12; }
            .lb-feat-distrito { font-size: 0.56rem; margin-top: 0.06rem; }
            .lb-feat-cover-stats { gap: 0.26rem; margin-top: 0.4rem; }
            .lb-feat-cover-stats .lb-feat-stat { font-size: 0.5rem; padding: 0.15rem 0.4rem; gap: 0.15rem; }
            .lb-feat-cover-stats .lb-feat-stat strong { font-size: 0.58rem; }
            .lb-feat-tier { font-size: 0.5rem; padding: 0.2rem 0.45rem; top: 0.5rem; left: 0.5rem; }
            .lb-feat-cover .lb-cardacts { top: 0.45rem; right: 0.45rem; gap: 0.3rem; }
            .lb-feat-cover .lb-act-ico { width: 1.85rem; height: 1.85rem; }
            .lb-feat-cover .lb-act-ico i, .lb-feat-cover .lb-act-ico svg { width: 17px; height: 17px; }
            .lb-featured-sub { font-size: 0.82rem; }
        }

        /* ===== Vista "Ver todos los barrios" (cards grandes apiladas) ===== */
        body.lb-allview-open { overflow: hidden; }
        .lb-allview {
            position: fixed; inset: 0; z-index: 1380; background: #f4f5f7;
            display: flex; flex-direction: column; overflow: hidden;
        }
        .lb-allview[hidden] { display: none; }

        /* Vista "Tu barrio ideal" (mapa + chips) */
        .lb-matchview { position: fixed; inset: 0; z-index: 1480; background: #f4f5f7; display: flex; flex-direction: column; overflow: hidden; }
        .lb-matchview[hidden] { display: none; }
        .lb-matchview-head { flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between; padding: 0.9rem 1.1rem; background: #fff; border-bottom: 1px solid #e5e7eb; }
        .lb-matchview-head strong { font-size: 1.05rem; color: #1A1A1A; }
        .lb-matchview-head span { font-size: 0.85rem; color: #92702a; font-weight: 600; margin-left: 0.45rem; }
        .lb-matchview-close { width: 2.3rem; height: 2.3rem; border-radius: 9999px; border: 1px solid #d8dde5; background: #fff; font-size: 1.5rem; line-height: 1; color: #374151; cursor: pointer; }
        .lb-matchview-map { flex: 1 1 auto; min-height: 0; width: 100%; background: #eef2f5; }
        .lb-matchview-foot { flex: 0 0 auto; display: flex; flex-direction: column; justify-content: flex-start; background: #fff; border-top: 1px solid #e5e7eb; padding: 0.8rem 1rem calc(0.8rem + env(safe-area-inset-bottom)); }
        .lb-matchview-budget { display: flex; flex-direction: column; gap: 0.3rem; margin: 0 0 0.8rem; }
        .lb-matchview-budget label { font-size: 0.78rem; font-weight: 700; color: #6b7280; display: flex; align-items: baseline; gap: 0.4rem; }
        .lb-matchview-budget label strong { color: #B8860B; font-size: 0.85rem; }
        .lb-matchview-budget .lb-mv-count { margin-left: auto; color: #1a1a1a; font-weight: 800; font-size: 0.82rem; }
        /* Histograma de precios (estilo Airbnb) */
        .lb-mvhisto { display: flex; align-items: flex-end; gap: 2px; height: 26px; padding: 0 1px; margin-bottom: 1px; }
        .lb-mvhisto .bar { flex: 1 1 0; min-height: 3px; background: #e6dcc6; border-radius: 2px 2px 0 0; transition: background .12s ease; }
        .lb-mvhisto .bar.in { background: #B8860B; }
        /* Rango doble (mín + máx) estilo Airbnb */
        .lb-range { position: relative; padding-bottom: 18px; }
        .lb-range__rail { position: relative; height: 6px; margin-top: 4px; }
        .lb-range__base { position: absolute; inset: 0; background: #e6dcc6; border-radius: 9999px; }
        .lb-range__fill { position: absolute; top: 0; bottom: 0; left: 0; right: 0; background: #B8860B; border-radius: 9999px; }
        .lb-range input[type=range] { -webkit-appearance: none; appearance: none; position: absolute; left: 0; width: 100%; height: 20px; bottom: 8px; margin: 0; background: transparent; pointer-events: none; }
        .lb-range input[type=range]:focus { outline: none; }
        .lb-range input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; pointer-events: auto; width: 20px; height: 20px; border-radius: 50%; background: #fff; border: 1px solid #d8c79b; box-shadow: 0 1px 4px rgba(0,0,0,0.28); cursor: pointer; }
        .lb-range input[type=range]::-webkit-slider-runnable-track { background: transparent; border: none; }
        .lb-range input[type=range]::-moz-range-thumb { pointer-events: auto; width: 20px; height: 20px; border-radius: 50%; background: #fff; border: 1px solid #d8c79b; box-shadow: 0 1px 4px rgba(0,0,0,0.28); cursor: pointer; }
        .lb-range input[type=range]::-moz-range-track { background: transparent; border: none; }
        .lb-matchview-foot__label { font-size: 0.82rem; font-weight: 700; color: #6b7280; margin: 0 0 0.7rem; }
        .lb-matchview-chips { display: flex; gap: 0.7rem; overflow-x: auto; overflow-y: visible; scrollbar-width: none; padding: 5px 4px 0.4rem; }
        .lb-matchview-chips::-webkit-scrollbar { display: none; }
        /* Tarjetas cuadradas oscuras (estilo home) para los barrios match */
        .lb-mvchip { flex: 0 0 132px; width: 132px; min-height: 132px; box-sizing: border-box; position: relative; display: flex; flex-direction: column; justify-content: flex-end; gap: 0.12rem; padding: 0.6rem; border: none; border-radius: 12px; background: linear-gradient(150deg, #2b3442 0%, #1b212b 58%, #3a2f17 140%); text-decoration: none; color: #fff; white-space: normal; box-shadow: 0 5px 14px rgba(16,24,40,0.18); transition: transform .15s, box-shadow .15s; overflow: hidden; }
        .lb-mvchip:hover { transform: translateY(-3px); box-shadow: 0 12px 24px -10px rgba(16,24,40,0.4); }
        .lb-mvchip__tag { position: absolute; top: 0.5rem; left: 0.5rem; display: inline-flex; align-items: center; font-size: 0.48rem; font-weight: 800; letter-spacing: 0.05em; text-transform: uppercase; color: #1A1A1A; background: #C9A227; border-radius: 9999px; padding: 0.12rem 0.4rem; }
        .lb-mvchip__name { font-size: 0.78rem; font-weight: 800; line-height: 1.15; color: #fff; }
        .lb-mvchip__price { font-size: 0.62rem; font-weight: 800; color: #E7C66B; }
        .lb-mvchip__tagline { font-size: 0.54rem; color: rgba(255,255,255,0.72); line-height: 1.25; }
        .lb-mvchip.is-active { box-shadow: 0 0 0 3px #C9A227, 0 12px 26px rgba(184,134,11,0.28); }
        .lb-mv-empty { padding: 1rem; color: #777; font-size: 0.9rem; }
        .lb-allview-head {
            flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 1rem;
            padding: 1rem 1.25rem; background: #fff; border-bottom: 1px solid #e5e7eb;
            box-shadow: 0 1px 3px rgba(16,24,40,0.05);
        }
        .lb-allview-head h2 { font-size: 1.15rem; font-weight: 800; color: #111827; margin: 0; display: flex; align-items: baseline; gap: 0.5rem; }
        .lb-allview-count { font-size: 0.85rem; font-weight: 600; color: #92702a; }
        .lb-allview-close {
            width: 2.4rem; height: 2.4rem; border-radius: 9999px; border: 1px solid #d8dde5; background: #fff;
            font-size: 1.6rem; line-height: 1; color: #374151; cursor: pointer; display: inline-flex; align-items: center; justify-content: center;
            transition: background .15s, transform .15s;
        }
        .lb-allview-close:hover { background: #111827; color: #fff; transform: scale(1.05); }
        .lb-allview-list {
            flex: 1 1 auto; overflow-y: auto; -webkit-overflow-scrolling: touch;
            padding: 1.25rem 1rem 3rem; display: flex; flex-direction: column; gap: 1.5rem;
            max-width: 40rem; width: 100%; margin: 0 auto;
        }
        /* Barra de herramientas del overlay: filtros + orden + vista */
        .lb-allview-toolbar { flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .55rem 1rem; background: #fff; border-bottom: 1px solid #eef0f3; }
        .lb-av-filters { display: flex; gap: 6px; flex: 1; min-width: 0; overflow-x: auto; scrollbar-width: none; }
        .lb-av-filters::-webkit-scrollbar { display: none; }
        .lb-av-chip { flex: 0 0 auto; border: 1px solid #e5e7eb; background: #fff; border-radius: 9999px; padding: 5px 11px; font: inherit; font-size: .78rem; font-weight: 700; color: #6b7280; cursor: pointer; white-space: nowrap; }
        .lb-av-chip.is-active { background: #111827; color: #fff; border-color: #111827; }
        .lb-av-right { display: flex; align-items: center; gap: .6rem; flex: 0 0 auto; }
        .lb-av-sort { font-size: .7rem; font-weight: 700; color: #6b7280; display: flex; align-items: center; gap: .3rem; white-space: nowrap; }
        .lb-av-sort select { font: inherit; font-size: .8rem; font-weight: 600; border: 1px solid #e5e7eb; border-radius: 8px; padding: 5px 8px; background: #fff; color: #111827; }
        .lb-av-views { display: inline-flex; border: 1px solid #e5e7eb; border-radius: 9px; overflow: hidden; }
        .lb-av-views button { width: 34px; height: 32px; border: 0; background: #fff; color: #9aa1ac; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
        .lb-av-views button + button { border-left: 1px solid #e5e7eb; }
        .lb-av-views button.is-active { background: #111827; color: #fff; }
        .lb-av-views i { width: 16px; height: 16px; }
        /* Vista cuadrícula: tarjetas oscuras compactas, 6 por fila (desktop) */
        .lb-allview-list.view-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; max-width: 56rem; align-items: start; align-content: start; }
        .lb-gcard { position: relative; display: block; aspect-ratio: 1 / 1; border-radius: 14px; text-decoration: none; color: #fff; background: linear-gradient(160deg, #1f2937 0%, #2b3340 60%, #3a3320 135%); box-shadow: 0 3px 12px -6px rgba(16,24,40,.5); overflow: hidden; }
        .lb-gcard::before { content: ''; display: block; padding-top: 100%; }   /* fuerza cuadrado aunque el navegador ignore aspect-ratio */
        .lb-gcard__b { position: absolute; left: 12px; right: 12px; bottom: 12px; display: flex; flex-direction: column; gap: 5px; }
        .lb-gcard__name { font-size: 1rem; font-weight: 800; line-height: 1.1; margin: 0; }
        .lb-gcard__dist { display: inline-flex; align-items: center; gap: 4px; font-size: .72rem; font-weight: 600; color: rgba(255,255,255,.85); }
        .lb-gcard__dist i { width: 13px; height: 13px; }
        .lb-gcard__chips { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 2px; }
        .lb-gcard__chip { background: rgba(255,255,255,.13); border-radius: 9999px; padding: 3px 9px; font-size: .66rem; font-weight: 800; color: #fff; white-space: nowrap; }
        .lb-gcard__chip small { font-weight: 600; opacity: .72; }
        .lb-gcard .lb-big-tier { position: absolute; top: 7px; left: 7px; font-size: .55rem; padding: .18rem .42rem; }
        .lb-gcard .lb-big-heart { position: absolute; top: 6px; right: 6px; width: 22px; height: 22px; border-radius: 0; background: none; border: 0; display: flex; align-items: center; justify-content: center; cursor: pointer; color: #fff; padding: 0; filter: drop-shadow(0 1px 2px rgba(0,0,0,0.45)); }
        .lb-gcard .lb-big-heart.is-on { color: #C9A227; }
        .lb-gcard .lb-big-heart.is-on i { fill: currentColor; }
        .lb-gcard .lb-big-heart i { width: 16px; height: 16px; fill: none; }
        @media (max-width: 768px) {
            /* Espacio inferior para que las tarjetas no queden tapadas por el tab bar de 5 iconos */
            .lb-allview-list { padding-bottom: calc(78px + env(safe-area-inset-bottom)); }
            .lb-allview-list.view-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
            .lb-gcard__b { left: 9px; right: 9px; bottom: 9px; gap: 4px; }
            .lb-gcard__name { font-size: .85rem; }
            .lb-gcard__dist { font-size: .64rem; }
            .lb-gcard__chip { font-size: .58rem; padding: 2px 7px; }
        }
        /* Vista lista */
        .lb-allview-list.view-list { display: flex; flex-direction: column; gap: 6px; max-width: 46rem; }
        .lb-lrow { display: flex; align-items: center; gap: 10px; padding: 11px 12px; background: #fff; border: 1px solid #eef0f3; border-radius: 12px; text-decoration: none; color: #111827; }
        .lb-lrow__main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
        .lb-lrow__main strong { font-size: .92rem; line-height: 1.2; }
        .lb-lrow__main small { font-size: .74rem; color: #8a8f98; }
        .lb-lrow__tier { position: static !important; backdrop-filter: none; }
        .lb-lrow__price { font-size: .85rem; font-weight: 800; color: #111827; white-space: nowrap; }
        .lb-lrow__price small { font-weight: 600; color: #8a8f98; margin-left: 2px; }

        .lb-big-card { flex: 0 0 auto; background: #fff; border-radius: 1.25rem; overflow: hidden; box-shadow: 0 4px 18px -8px rgba(16,24,40,0.25); }
        .lb-big-media { position: relative; height: clamp(17rem, 78vw, 24rem); min-height: 17rem; }
        .lb-big-panels { display: flex; height: 100%; min-height: 17rem; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
        .lb-big-panels::-webkit-scrollbar { display: none; }
        .lb-big-panel { flex: 0 0 100%; height: 100%; min-height: 17rem; scroll-snap-align: center; position: relative; overflow-y: auto; }
        /* Panel foto */
        .lb-big-panel--foto { background-size: cover; background-position: center; display: flex; align-items: flex-end; overflow: hidden; }
        .lb-big-foto-info { position: relative; z-index: 2; padding: 1.1rem 1.2rem; width: 100%; }
        .lb-big-foto-name { font-size: 1.5rem; font-weight: 800; color: #fff; margin: 0; line-height: 1.1; text-shadow: 0 1px 5px rgba(0,0,0,0.4); }
        .lb-big-foto-dist { display: inline-flex; align-items: center; gap: 0.3rem; margin-top: 0.25rem; font-size: 0.82rem; font-weight: 600; color: rgba(255,255,255,0.9); }
        .lb-big-foto-dist i { width: 0.9em; height: 0.9em; }
        .lb-big-tier { position: absolute; top: 0.9rem; left: 0.9rem; z-index: 2; padding: 0.3rem 0.7rem; font-size: 0.68rem; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; border-radius: 9999px; backdrop-filter: blur(4px); }
        /* Paneles de datos */
        .lb-big-panel--data { background: linear-gradient(165deg, #fbfcfe 0%, #eef1f6 100%); padding: 1.3rem 1.4rem; display: flex; flex-direction: column; }
        .lb-big-panel-lbl { font-size: 0.68rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: #92702a; margin-bottom: 0.9rem; display: flex; align-items: center; gap: 0.4rem; }
        .lb-big-panel-lbl i { width: 1em; height: 1em; }
        /* Filas precio */
        .lb-big-bignum { display: flex; align-items: baseline; gap: 0.35rem; }
        .lb-big-bignum strong { font-size: 2rem; font-weight: 900; color: #111827; line-height: 1; }
        .lb-big-bignum span { font-size: 0.95rem; font-weight: 700; color: #6b7280; }
        .lb-big-sub { font-size: 0.84rem; color: #6b7280; margin-top: 0.4rem; }
        /* Barra comparativa */
        .lb-big-bar-wrap { margin-top: 1rem; }
        .lb-big-bar-row { display: flex; align-items: center; gap: 0.6rem; margin-bottom: 0.55rem; }
        .lb-big-bar-name { flex: 0 0 5.5rem; font-size: 0.78rem; font-weight: 600; color: #475569; }
        .lb-big-bar-track { flex: 1; height: 0.55rem; background: #e2e6ee; border-radius: 9999px; overflow: hidden; }
        .lb-big-bar-fill { height: 100%; border-radius: 9999px; background: linear-gradient(90deg, #c9a24a, #8a6914); }
        .lb-big-bar-val { flex: 0 0 1.6rem; text-align: right; font-size: 0.76rem; font-weight: 800; color: #111827; }
        /* Gauge rentab */
        .lb-big-gauge { display: flex; align-items: baseline; gap: 0.5rem; margin-bottom: 0.6rem; }
        .lb-big-gauge strong { font-size: 2.4rem; font-weight: 900; color: #15803d; line-height: 1; }
        /* Chips */
        .lb-big-chips { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.3rem; }
        .lb-big-chip { font-size: 0.74rem; font-weight: 700; color: #475569; background: #fff; border: 1px solid #dfe4ec; border-radius: 9999px; padding: 0.25rem 0.65rem; }
        .lb-big-life { font-size: 0.88rem; line-height: 1.55; color: #374151; margin: 0.2rem 0 0.7rem; }
        .lb-big-note { font-size: 0.82rem; line-height: 1.5; color: #475569; margin: 0.25rem 0 0; }
        .lb-big-note b { color: #111827; }
        /* Corazón */
        .lb-big-heart { position: absolute; top: 0.8rem; right: 0.8rem; z-index: 6; width: 2rem; height: 2rem; border-radius: 0; border: none; padding: 0; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; background: none; color: #fff; filter: drop-shadow(0 1px 2px rgba(0,0,0,0.45)); transition: transform .15s, color .15s; }
        .lb-big-heart:hover { transform: scale(1.12); }
        .lb-big-heart i { width: 1.3em; height: 1.3em; fill: none; }
        .lb-big-heart.is-on { color: #C9A227; }
        .lb-big-heart.is-on i { fill: currentColor; }
        /* Dots (visibles sobre foto y sobre paneles claros) */
        .lb-big-dots { position: absolute; bottom: 0.7rem; left: 0; right: 0; z-index: 5; display: flex; justify-content: center; gap: 0.4rem; }
        .lb-big-dot { width: 7px; height: 7px; border-radius: 9999px; background: rgba(255,255,255,0.6); box-shadow: 0 0 0 1px rgba(17,24,39,0.35); cursor: pointer; transition: all .2s; }
        .lb-big-dot.is-active { background: #92702a; width: 9px; box-shadow: 0 0 0 1px rgba(255,255,255,0.7); }
        /* Pie */
        .lb-big-foot { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.95rem 1.2rem; }
        .lb-big-foot-name { font-size: 1.05rem; font-weight: 800; color: #111827; margin: 0; }
        .lb-big-foot-dist { font-size: 0.78rem; color: #6b7280; }
        .lb-big-cta { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.6rem 1.1rem; border-radius: 9999px; background: #1f2937; color: #fff; font-size: 0.85rem; font-weight: 700; text-decoration: none; transition: background .15s, transform .15s; }
        .lb-big-cta:hover { background: #111827; transform: translateY(-1px); }
        .lb-big-cta i { width: 1em; height: 1em; }
        @media (max-width: 640px) {
            .lb-big-foto-name { font-size: 1.3rem; }
            .lb-big-bignum strong { font-size: 1.7rem; }
        }
        /* ===================== Header estilo HOME (lb-stickybar) portado a barrios.php ===================== */
        /* display:contents saca a <header.lb-site-header> del árbol de cajas para que
           .lb-stickybar quede como hijo DIRECTO de <body> — igual que en vida-de-barrio
           (includes/header.php), donde el sticky pinea correctamente. Con display:block
           el header sólo medía la altura del propio stickybar, así que su bloque
           contenedor no dejaba recorrido y el sticky se soltaba al primer scroll. */
        .lb-site-header { display: contents; }
        .lb-stickybar {
            --color-ink:#1A1A1A; --color-ink-soft:#555555; --color-gold:#B89758; --color-gold-dark:#9a7d44;
            --color-line:#E7E4DD; --radius:10px; --shadow-sm:0 1px 3px rgba(26,26,26,.06);
            position: sticky; top: 0; z-index: 90;
            background: rgba(255,255,255,0.97); -webkit-backdrop-filter: saturate(180%) blur(8px); backdrop-filter: saturate(180%) blur(8px);
            border-bottom: 1px solid var(--color-line);
        }
        .lb-stickybar__inner { display: flex; align-items: center; gap: 1.25rem; padding: 0.5rem 1.25rem; max-width: 1200px; margin: 0 auto; }
        .lb-stickybar__logo { display: flex; align-items: center; flex: 0 0 auto; }
        .lb-stickybar__logo img { height: 34px; width: auto; display: block; }
        .lb-stickybar__actions { flex: 0 0 auto; display: flex; align-items: center; gap: 0.55rem; }
        .lb-stickybar .btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; padding: .8rem 1.4rem; border-radius: var(--radius); font-weight: 600; font-size: .95rem; text-decoration: none; transition: background .18s ease, color .18s ease, border-color .18s ease, transform .18s ease; white-space: nowrap; }
        .lb-stickybar .btn:active { transform: translateY(1px); }
        .lb-stickybar .btn--primary { background: var(--color-gold); color: #fff; }
        .lb-stickybar .btn--primary:hover { background: var(--color-gold-dark); }
        .lb-stickybar .btn--ghost { border: 1px solid var(--color-line); color: var(--color-ink); background: #fff; }
        .lb-stickybar .btn--ghost:hover { border-color: var(--color-gold); }
        .lb-stickybar__login { font-size: .82rem; color: #64748b; text-decoration: none; align-self: center; margin-left: .35rem; white-space: nowrap; }
        .lb-stickybar__lang { align-self: center; margin-right: .35rem; }
        .lb-home-search { position: relative; display: flex; align-items: center; gap: 0.5rem; margin: 0; background: #fff; border: 1px solid var(--color-line); border-radius: 9999px; padding: 0.4rem 0.45rem 0.4rem 1.05rem; box-shadow: var(--shadow-sm); text-decoration: none; color: inherit; }
        .lb-home-search__icon { display: flex; color: var(--color-ink-soft); flex: 0 0 auto; }
        .lb-home-search--icon { width: 42px; height: 42px; padding: 0; border-radius: 9999px; justify-content: center; }
        .lb-home-search--icon .lb-home-search__ph { display: none; }
        .lb-home-search--icon .lb-home-search__icon { color: var(--color-ink); }
        .lb-home-search--icon:hover { background: #f6f3ec; }
        .lb-cat-strip__rail { flex: 1 1 auto; display: flex; align-items: flex-end; gap: 1.6rem; min-width: 0; overflow-x: auto; scrollbar-width: none; }
        .lb-cat-strip__rail::-webkit-scrollbar { display: none; }
        .lb-cat-item { flex: 0 0 auto; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 0.4rem; font-weight: 600; color: var(--color-ink-soft); text-decoration: none; padding: 0 0.2rem 0.5rem; border: 0; border-bottom: 2px solid transparent; transition: color .2s ease; background: none; cursor: pointer; font-family: inherit; }
        .lb-cat-item__lbl { font-size: 0.82rem; line-height: 1; display: block; }
        .lb-cat-item .lb-cat-ico { display: flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 46px; height: 46px; border-radius: 50%; overflow: hidden; box-shadow: 0 2px 8px rgba(16,24,40,0.08), inset 0 0 0 1px rgba(255,255,255,0.45); transition: height .34s cubic-bezier(.4,0,.2,1), opacity .24s ease, transform .26s ease, box-shadow .2s ease, margin .32s cubic-bezier(.4,0,.2,1); }
        .lb-cat-item .lb-cat-ico svg { width: 28px; height: 28px; transition: transform .28s ease; }
        .lb-cat-strip__rail > .lb-cat-item:nth-child(1) .lb-cat-ico { color: #B8860B; background: linear-gradient(145deg, rgba(184,134,11,0.22), rgba(184,134,11,0.06)); }
        .lb-cat-strip__rail > .lb-cat-item:nth-child(2) .lb-cat-ico { color: #2563eb; background: linear-gradient(145deg, rgba(37,99,235,0.22), rgba(37,99,235,0.06)); }
        .lb-cat-strip__rail > .lb-cat-item:nth-child(3) .lb-cat-ico { color: #16a34a; background: linear-gradient(145deg, rgba(22,163,74,0.22), rgba(22,163,74,0.06)); }
        .lb-cat-strip__rail > .lb-cat-item:nth-child(4) .lb-cat-ico { color: #7c3aed; background: linear-gradient(145deg, rgba(124,58,237,0.22), rgba(124,58,237,0.06)); }
        .lb-cat-item:hover .lb-cat-ico { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(16,24,40,0.16), inset 0 0 0 1px rgba(255,255,255,0.5); }
        .lb-cat-item:hover .lb-cat-ico svg { transform: scale(1.08); }
        .lb-stickybar.is-scrolled .lb-cat-ico { height: 0; opacity: 0; transform: translateY(-4px); margin: 0; box-shadow: none; }
        .lb-stickybar.is-scrolled .lb-cat-item { gap: 0; padding-bottom: 0.5rem; }
        .lb-stickybar.is-scrolled .lb-cat-item__lbl { font-size: 0.9rem; }
        .lb-stickybar.is-scrolled .lb-cat-strip__rail { gap: 2rem; }
        .lb-cat-item:hover { color: var(--color-ink); }
        .lb-cat-item.is-active { color: var(--color-ink); border-bottom-color: var(--color-ink); }
        .lb-cat-item--btn { background: none; border: none; cursor: pointer; font-family: inherit; }
        .lb-cat-submenu { --color-line:#E7E4DD; --color-ink:#1A1A1A; border-top: 1px solid var(--color-line); background: rgba(255,255,255,0.99); }
        .lb-cat-submenu[hidden] { display: none; }
        .lb-cat-submenu__inner { display: flex; justify-content: center; flex-wrap: nowrap; gap: 1.4rem; padding: 0.5rem 1rem; overflow-x: auto; scrollbar-width: none; max-width: 1200px; margin: 0 auto; }
        .lb-cat-submenu__inner::-webkit-scrollbar { display: none; }
        .lb-cat-submenu a { display: inline-flex; align-items: center; gap: 0.45rem; white-space: nowrap; font-size: 0.85rem; font-weight: 600; color: var(--color-ink); text-decoration: none; padding: 0.3rem 0.7rem; border-radius: 9px; }
        .lb-cat-submenu a:hover { background: #f6f3ec; }
        .lb-cat-submenu a svg { color: #B8860B; flex: 0 0 auto; }
        @media (min-width: 769px) {
            .lb-cat-strip__rail { justify-content: center; gap: 1.9rem; overflow: visible; }
        }
        @media (max-width: 768px) {
            /* Móvil: replicar EXACTAMENTE la cabecera de la home (index.php).
               Solo se muestran: buscador (arriba) + 3 iconos de categoría (abajo),
               apilados en columna. Logo, contacto, test, idioma y acceso se ocultan
               (en barrios el idioma/acceso los gestionan el globo FAB de idioma y el
               panel de cuenta). */
            .lb-stickybar__inner { flex-direction: column; align-items: stretch; gap: 0.5rem; padding: 0.55rem 1rem; max-width: 100%; overflow: hidden; }
            .lb-stickybar__logo { display: none !important; }
            /* !important: la regla base '.lb-stickybar .btn { display: inline-flex }'
               tiene más especificidad y, si no, vuelve a mostrar contacto/test. */
            .lb-stickybar__contact, .lb-stickybar__test { display: none !important; }
            .lb-stickybar__lang, .lb-stickybar__login { display: none !important; }
            /* Acciones (buscador) en su propia fila, a todo el ancho */
            .lb-stickybar__actions {
                order: 0;
                width: 100%;
                max-width: 100%;
                margin: 0;
                gap: 0.4rem 0.5rem;
                display: flex;
                flex-wrap: wrap;
                align-items: center;
                justify-content: space-between;
                min-width: 0;
            }
            .lb-stickybar__actions .lb-home-search--icon {
                flex: 1 1 100%;
                width: 100%;
                min-width: 0;
                height: auto;
                padding: 0.55rem 0.95rem 0.55rem 1.15rem;
                border-radius: 9999px;
                justify-content: flex-start;
                order: 2;
            }
            .lb-stickybar__actions .lb-home-search--icon .lb-home-search__ph {
                display: block;
                white-space: nowrap;
                overflow: hidden;
                text-overflow: ellipsis;
                min-width: 0;
            }
            /* Iconos: 3 repartidos parejos ocupando el ancho, debajo del buscador */
            .lb-cat-strip__rail { order: 1; flex-basis: 100%; gap: 0.2rem; padding-bottom: 2px; overflow-x: visible; justify-content: space-between; }
            .lb-cat-strip__rail .lb-cat-item { flex: 1 1 0; min-width: 0; max-width: none; text-align: center; }
            .lb-cat-strip__rail .lb-cat-item__lbl { font-size: 0.62rem; }
            .lb-cat-strip__rail .lb-cat-item .lb-cat-ico svg { width: 22px; height: 22px; }
            /* En móvil no agrandamos el texto al scrollear (espacio reducido) */
            .lb-stickybar.is-scrolled .lb-cat-item__lbl { font-size: 0.62rem; }
            .lb-stickybar.is-scrolled .lb-cat-item { padding-bottom: 0.25rem; }
            .lb-stickybar.is-scrolled .lb-cat-strip__rail { gap: 0.2rem; }
            .lb-cat-submenu__inner { gap: 0.8rem; padding: 0.45rem 0.6rem; }
            .lb-cat-submenu a { font-size: 0.78rem; padding: 0.25rem 0.4rem; }
        }
    