/* ============================================================
   JUST REAL ESTATE PRO — Frontend CSS v2.1
   Three skins: zillow-clean | sothebys-luxury | serhant-modern
   ============================================================ */

/* ---- Reset & Base ---- */
.jre-property-card *,
.jre-zillow-widget *,
.jre-gallery-widget * {
    box-sizing: border-box;
}

/* ---- Property Card Base ---- */
.jre-property-card {
    position: relative;
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    background: #fff;
}
.jre-card-link {
    display: block;
    text-decoration: none;
    color: inherit;
}
.jre-card-image-wrap {
    position: relative;
    overflow: hidden;
    aspect-ratio: 4/3;
}
.jre-card-thumb {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.3s ease;
}
.jre-card-no-image {
    width: 100%;
    height: 100%;
    background: #f0f0f0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #aaa;
    font-size: 13px;
}
.jre-card-body {
    padding: 12px;
}
.jre-card-price {
    font-size: 16pt;
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: 4px;
}
.jre-card-title {
    font-size: 12pt;
    font-weight: 700;
    margin: 0 0 4px;
    line-height: 1.3;
}
.jre-card-tagline {
    font-size: 11px;
    margin: 0 0 4px;
    font-style: italic;
}
.jre-card-address {
    font-size: 11px;
    margin: 0 0 8px;
}
.jre-card-specs {
    font-size: 11px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 2px;
}
.jre-spec-sep {
    color: #ccc;
    padding: 0 2px;
}
.jre-badge {
    position: absolute;
    top: 8px;
    padding: 3px 8px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-radius: 2px;
}
.jre-badge-featured {
    left: 8px;
    background: #f0b429;
    color: #fff;
}
.jre-badge-operation {
    right: 8px;
    background: rgba(0,0,0,0.65);
    color: #fff;
}

/* ---- Grid Layout ---- */
.jre-grid-container {
    display: grid;
    grid-template-columns: repeat(var(--jre-cols, 3), 1fr);
    gap: 20px;
    margin-top: 20px;
}
@media (max-width: 1024px) {
    .jre-grid-container {
        grid-template-columns: repeat(var(--jre-cols-tablet, 2), 1fr);
    }
}
@media (max-width: 767px) {
    .jre-grid-container {
        grid-template-columns: repeat(var(--jre-cols-mobile, 1), 1fr);
    }
}

/* ---- Filter Bar ---- */
.jre-filter-bar {
    background: #f8f9fa;
    border: 1px solid #e5e5e5;
    border-radius: 6px;
    padding: 16px;
    margin-bottom: 8px;
}
.jre-filter-form {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: flex-end;
}
.jre-filter-group {
    display: flex;
    flex-direction: column;
    gap: 4px;
    flex: 1;
    min-width: 140px;
}
.jre-filter-group label {
    font-size: 11px;
    font-weight: 600;
    color: #555;
    text-transform: uppercase;
}
.jre-filter-select,
.jre-filter-input {
    height: 38px;
    padding: 0 10px;
    border: 1px solid #d1d1d6;
    border-radius: 4px;
    font-size: 13px;
    background: #fff;
    color: #333;
    width: 100%;
}
.jre-btn-search {
    height: 38px;
    padding: 0 20px;
    background: #006AFF;
    color: #fff;
    border: none;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.2s;
}
.jre-btn-search:hover { background: #0055cc; }

/* ---- Pagination ---- */
.jre-pagination {
    margin-top: 32px;
    text-align: center;
}
.jre-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border: 1px solid #d1d1d6;
    border-radius: 4px;
    margin: 0 2px;
    font-size: 13px;
    color: #333;
    text-decoration: none;
}
.jre-pagination .page-numbers.current {
    background: #006AFF;
    border-color: #006AFF;
    color: #fff;
}

/* ---- No results ---- */
.jre-no-results {
    grid-column: 1/-1;
    text-align: center;
    padding: 40px;
    color: #888;
    font-size: 15px;
}

/* ================================================================
   SKIN 1: ZILLOW CLEAN
   ================================================================ */
.skin-zillow-clean.jre-property-card {
    background: #FFFFFF;
    border-radius: 4px;
    border: 1px solid #D1D1D6;
    box-shadow: none;
}
.skin-zillow-clean .jre-card-link:hover .jre-property-card,
.skin-zillow-clean.jre-property-card:hover {
    border-color: #006AFF;
    box-shadow: 0 0 0 2px #006AFF;
}
.skin-zillow-clean .jre-card-thumb {
    border-radius: 0;
}
.skin-zillow-clean .jre-card-price {
    color: #2A2A33;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Inter', sans-serif;
    font-size: 16pt;
    font-weight: 700;
}
.skin-zillow-clean .jre-card-title {
    color: #2A2A33;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Inter', sans-serif;
    font-size: 12pt;
    font-weight: 700;
}
.skin-zillow-clean .jre-card-address {
    color: #767676;
    font-size: 11px;
}
.skin-zillow-clean .jre-card-specs {
    color: #555;
    border-top: 1px solid #D1D1D6;
    padding-top: 8px;
    margin-top: 8px;
}
.skin-zillow-clean .jre-spec-sep { color: #D1D1D6; }

/* ================================================================
   SKIN 2: SOTHEBY'S LUXURY
   ================================================================ */
.skin-sothebys-luxury.jre-property-card {
    background: #F9F8F6;
    border-radius: 0;
    border: none;
    box-shadow: none;
}
.skin-sothebys-luxury .jre-card-image-wrap {
    aspect-ratio: 16/10;
}
.skin-sothebys-luxury .jre-card-body {
    padding: 30px;
    border-bottom: 0.5px solid #E5E2DC;
}
.skin-sothebys-luxury .jre-card-price {
    color: #0C192C;
    font-family: 'Playfair Display', 'Cormorant Garamond', Georgia, serif;
    font-size: 18pt;
    font-weight: 400;
    letter-spacing: 0.5px;
    margin-bottom: 8px;
}
.skin-sothebys-luxury .jre-card-title {
    color: #0C192C;
    font-family: 'Playfair Display', 'Cormorant Garamond', Georgia, serif;
    font-size: 14pt;
    font-weight: 600;
    letter-spacing: 1.5px;
    margin-bottom: 12px;
}
.skin-sothebys-luxury .jre-card-address {
    color: #7a7469;
    font-size: 11px;
    letter-spacing: 1px;
    text-transform: uppercase;
}
.skin-sothebys-luxury .jre-card-specs {
    color: #888;
    font-size: 11px;
    letter-spacing: 0.5px;
    margin-top: 12px;
}
.skin-sothebys-luxury .jre-spec-sep { color: #B49A6C; }
.skin-sothebys-luxury .jre-badge-featured {
    background: #B49A6C;
    color: #fff;
    border-radius: 0;
}
.skin-sothebys-luxury .jre-card-link:hover .jre-card-thumb {
    transform: scale(1.02);
}

/* ================================================================
   SKIN 3: SERHANT MODERN
   ================================================================ */
.skin-serhant-modern.jre-property-card {
    background: #111215;
    border-radius: 0;
    border: none;
    box-shadow: none;
}
.skin-serhant-modern .jre-card-body {
    padding: 16px;
    background: #111215;
}
.skin-serhant-modern .jre-card-price {
    color: #00E5FF;
    font-family: 'Montserrat', 'Archivo Black', 'Bebas Neue', sans-serif;
    font-size: 18pt;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
}
.skin-serhant-modern .jre-card-title {
    color: #F5F5F7;
    font-family: 'Montserrat', 'Archivo Black', sans-serif;
    font-size: 12pt;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
}
.skin-serhant-modern .jre-card-address {
    color: #888;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.skin-serhant-modern .jre-card-specs {
    color: #aaa;
    font-size: 11px;
    margin-top: 8px;
}
.skin-serhant-modern .jre-spec-sep { color: #00E5FF; }
.skin-serhant-modern .jre-badge-featured {
    background: #00E5FF;
    color: #111215;
    border-radius: 0;
    font-weight: 900;
}
.skin-serhant-modern .jre-card-link:hover .jre-card-thumb {
    transform: scale(1.05);
}

/* ================================================================
   ZILLOW SPLIT SCREEN WIDGET
   ================================================================ */
.jre-zillow-widget {
    display: flex;
    flex-direction: column;
    position: relative;
    width: 100%;
}
.jre-zillow-top-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    padding: 12px;
    background: #fff;
    border-bottom: 1px solid #e5e5e5;
    z-index: 10;
}
.jre-zillow-search-box {
    display: flex;
    flex: 1;
    min-width: 200px;
    gap: 0;
}
.jre-zillow-search-input {
    flex: 1;
    height: 42px;
    padding: 0 14px;
    border: 2px solid #006AFF;
    border-right: none;
    border-radius: 4px 0 0 4px;
    font-size: 14px;
    outline: none;
}
.jre-zillow-search-btn {
    height: 42px;
    padding: 0 18px;
    background: #006AFF;
    color: #fff;
    border: 2px solid #006AFF;
    border-radius: 0 4px 4px 0;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}
.jre-zillow-quick-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}
.jre-quick-filter,
.jre-price-filter {
    height: 38px;
    padding: 0 10px;
    border: 1px solid #d1d1d6;
    border-radius: 4px;
    font-size: 13px;
    background: #fff;
}
.jre-zillow-split {
    display: flex;
    width: 100%;
    position: relative;
}
.jre-zillow-list-panel {
    width: 50%;
    min-width: 320px;
    display: flex;
    flex-direction: column;
    border-right: 1px solid #e5e5e5;
    background: #fff;
    overflow: hidden;
}
.jre-zillow-list-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 16px;
    border-bottom: 1px solid #e5e5e5;
    flex-shrink: 0;
}
.jre-results-count {
    font-size: 13px;
    font-weight: 600;
    color: #555;
}
.jre-btn-search-zone {
    height: 34px;
    padding: 0 14px;
    background: #006AFF;
    color: #fff;
    border: none;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s;
    white-space: nowrap;
}
.jre-btn-search-zone:hover { background: #0055cc; }
.jre-zillow-list-results {
    flex: 1;
    overflow-y: auto;
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    scroll-behavior: smooth;
}
.jre-scrollable::-webkit-scrollbar { width: 4px; }
.jre-scrollable::-webkit-scrollbar-thumb { background: #ccc; border-radius: 2px; }
.jre-zillow-pagination {
    padding: 8px;
    text-align: center;
    border-top: 1px solid #e5e5e5;
    flex-shrink: 0;
}
.jre-zillow-map-panel {
    flex: 1;
    position: sticky;
    top: 0;
    height: 100%;
}
.jre-zillow-map-container {
    width: 100%;
    height: 100%;
}

/* Cards inside zillow list */
.jre-zillow-list-results .jre-property-card {
    display: flex;
    flex-direction: row;
    cursor: pointer;
    transition: border-color 0.15s, box-shadow 0.15s;
}
.jre-zillow-list-results .jre-card-image-wrap {
    width: 130px;
    min-width: 130px;
    aspect-ratio: auto;
    height: 110px;
}
.jre-zillow-list-results .jre-card-body {
    flex: 1;
    padding: 10px;
}
.jre-zillow-list-results .jre-card-price {
    font-size: 14pt;
}
.jre-zillow-list-results .jre-card-title {
    font-size: 11pt;
}
.jre-property-card.jre-card-active {
    border-color: #006AFF !important;
    box-shadow: 0 0 0 2px #006AFF !important;
}

/* Leaflet marker price labels */
.jre-price-marker {
    background: #fff;
    border: 2px solid #2A2A33;
    border-radius: 4px;
    padding: 2px 6px;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
    cursor: pointer;
    box-shadow: 0 2px 4px rgba(0,0,0,0.15);
    transition: background 0.15s, border-color 0.15s, transform 0.15s;
}
.jre-price-marker:hover,
.jre-price-marker.jre-marker-active {
    background: #006AFF;
    border-color: #006AFF;
    color: #fff;
    transform: scale(1.15);
    z-index: 999 !important;
}

/* Skin overrides for Zillow widget */
.skin-sothebys-luxury .jre-zillow-search-input,
.skin-sothebys-luxury .jre-zillow-search-btn {
    border-color: #0C192C;
}
.skin-sothebys-luxury .jre-zillow-search-btn { background: #0C192C; }
.skin-sothebys-luxury .jre-btn-search-zone { background: #0C192C; }
.skin-sothebys-luxury .jre-price-marker {
    font-family: 'Playfair Display', Georgia, serif;
    border-color: #0C192C;
}
.skin-sothebys-luxury .jre-price-marker.jre-marker-active {
    background: #B49A6C;
    border-color: #B49A6C;
    color: #fff;
}
.skin-serhant-modern .jre-zillow-top-bar { background: #111215; border-color: #333; }
.skin-serhant-modern .jre-zillow-search-input { background: #1e2025; border-color: #00E5FF; color: #F5F5F7; }
.skin-serhant-modern .jre-zillow-search-btn { background: #00E5FF; border-color: #00E5FF; color: #111215; font-weight: 900; text-transform: uppercase; }
.skin-serhant-modern .jre-zillow-list-panel { background: #111215; border-color: #333; }
.skin-serhant-modern .jre-zillow-list-header { border-color: #333; }
.skin-serhant-modern .jre-btn-search-zone { background: #00E5FF; color: #111215; font-weight: 900; text-transform: uppercase; }
.skin-serhant-modern .jre-price-marker {
    background: #111215;
    border-color: #00E5FF;
    color: #00E5FF;
    font-family: 'Montserrat', sans-serif;
    font-weight: 900;
    text-transform: uppercase;
    border-radius: 0;
}
.skin-serhant-modern .jre-price-marker.jre-marker-active {
    background: #00E5FF;
    color: #111215;
}

/* ================================================================
   GALLERY WIDGET
   ================================================================ */
.jre-gallery-widget { width: 100%; }
.jre-gallery-grid {
    display: grid;
    grid-template-columns: repeat(var(--jre-gallery-cols, 3), 1fr);
    gap: 8px;
}
.jre-gallery-item {
    position: relative;
    overflow: hidden;
    aspect-ratio: 4/3;
    cursor: pointer;
}
.jre-gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.3s ease;
}
.jre-gallery-item:hover img { transform: scale(1.03); }
.jre-gallery-zoom-icon {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.25);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 22px;
    opacity: 0;
    transition: opacity 0.2s;
}
.jre-gallery-item:hover .jre-gallery-zoom-icon { opacity: 1; }
.jre-gallery-masonry .jre-gallery-grid {
    grid-template-rows: masonry;
    align-items: start;
}
.jre-gallery-full_bleed .jre-gallery-grid {
    grid-template-columns: 1fr;
    gap: 0;
}
.jre-gallery-full_bleed .jre-gallery-item {
    aspect-ratio: 21/9;
}
.jre-gallery-slider .jre-gallery-grid {
    grid-template-columns: 1fr;
    overflow: hidden;
}
.jre-gallery-empty {
    color: #aaa;
    padding: 20px;
    text-align: center;
    font-style: italic;
}

/* ================================================================
   LEAD CONTACT FORM
   ================================================================ */
.jre-contact-form {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.jre-contact-form input,
.jre-contact-form textarea {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid #d1d1d6;
    border-radius: 4px;
    font-size: 14px;
    font-family: inherit;
    transition: border-color 0.2s;
}
.jre-contact-form input:focus,
.jre-contact-form textarea:focus {
    outline: none;
    border-color: #006AFF;
}
.jre-contact-form textarea { min-height: 90px; resize: vertical; }
.jre-contact-form button[type="submit"] {
    padding: 12px 24px;
    background: #006AFF;
    color: #fff;
    border: none;
    border-radius: 4px;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.2s;
}
.jre-contact-form button[type="submit"]:hover { background: #0055cc; }
.jre-form-message {
    padding: 10px 14px;
    border-radius: 4px;
    font-size: 13px;
    display: none;
}
.jre-form-message.success { background: #d4edda; color: #155724; }
.jre-form-message.error { background: #f8d7da; color: #721c24; }

/* ================================================================
   SINGLE PROPERTY TEMPLATE
   ================================================================ */
.jre-single-property { max-width: 1140px; margin: 0 auto; padding: 0 20px; }
.jre-single-gallery-hero { margin-bottom: 24px; }
.jre-single-main {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 32px;
    align-items: start;
}
@media (max-width: 900px) {
    .jre-single-main { grid-template-columns: 1fr; }
}
.jre-single-info {}
.jre-single-header { margin-bottom: 20px; }
.jre-single-price {
    font-size: 28px;
    font-weight: 800;
    color: #2A2A33;
    margin-bottom: 8px;
}
.jre-single-title {
    font-size: 22px;
    font-weight: 700;
    margin: 0 0 8px;
}
.jre-single-address {
    font-size: 14px;
    color: #767676;
    margin-bottom: 12px;
}
.jre-single-specs {
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
    padding: 16px 0;
    border-top: 1px solid #D1D1D6;
    border-bottom: 1px solid #D1D1D6;
    margin-bottom: 24px;
}
.jre-single-spec {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    text-align: center;
    min-width: 60px;
}
.jre-single-spec-value {
    font-size: 20px;
    font-weight: 700;
    color: #2A2A33;
}
.jre-single-spec-label {
    font-size: 10px;
    color: #888;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.jre-single-description { line-height: 1.7; color: #444; margin-bottom: 24px; }
.jre-single-sidebar {}
.jre-sidebar-card {
    background: #fff;
    border: 1px solid #D1D1D6;
    border-radius: 6px;
    padding: 24px;
    margin-bottom: 20px;
    position: sticky;
    top: 20px;
}
.jre-sidebar-card h3 { margin: 0 0 16px; font-size: 16px; }
.jre-map-wrapper {
    margin-bottom: 24px;
    border-radius: 6px;
    overflow: hidden;
    height: 300px;
}
.jre-video-wrapper {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
    margin-bottom: 24px;
    border-radius: 6px;
}
.jre-video-wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

/* ================================================================
   RESPONSIVE
   ================================================================ */
@media (max-width: 767px) {
    .jre-zillow-split { flex-direction: column; }
    .jre-zillow-list-panel { width: 100%; }
    .jre-zillow-list-results .jre-property-card { flex-direction: column; }
    .jre-zillow-list-results .jre-card-image-wrap { width: 100%; height: 180px; }
    .jre-zillow-map-panel { height: 300px !important; }
    .jre-filter-form { flex-direction: column; }
}

/* ================================================================
   v2.2 — Iconos, favoritos, formularios nativos, variantes de plantilla
   ================================================================ */
.jre-icon { display:inline-block; vertical-align:middle; flex-shrink:0; }

/* Spec rows con iconos */
.jre-specs-icons { display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
.jre-specs-icons .jre-spec { display:inline-flex; align-items:center; gap:5px; }
.jre-specs-icons .jre-spec-sep { width:1px; height:14px; background:#d8d8df; display:inline-block; }
.jre-card-address .jre-icon { opacity:.7; margin-right:2px; }

/* Typology badge en tarjeta */
.jre-card-typology {
    display:inline-block; font-size:10px; font-weight:700; text-transform:uppercase;
    letter-spacing:.6px; color:var(--jre-primary,#006AFF); margin-bottom:4px;
}

/* Favoritos / herramientas */
.jre-fav-btn {
    position:absolute; top:8px; right:8px; z-index:3; width:34px; height:34px; border-radius:50%;
    background:rgba(255,255,255,.92); border:none; cursor:pointer; display:flex; align-items:center;
    justify-content:center; color:#2A2A33; box-shadow:0 1px 4px rgba(0,0,0,.18); transition:transform .15s, background .15s;
}
.jre-fav-btn:hover { transform:scale(1.1); }
.jre-fav-btn.is-fav svg { fill:#ff4757; stroke:#ff4757; }
.jre-tool-btn {
    width:38px; height:38px; border-radius:50%; border:1px solid #e1e1e6; background:#fff;
    cursor:pointer; display:inline-flex; align-items:center; justify-content:center; color:#2A2A33;
    transition:background .15s, color .15s;
}
.jre-tool-btn:hover { background:var(--jre-primary,#006AFF); color:#fff; border-color:var(--jre-primary,#006AFF); }
.jre-fav-btn.is-fav.jre-tool-btn svg { fill:#ff4757; stroke:#ff4757; }
.jre-share-btn.jre-copied::after { content:'¡Copiado!'; position:absolute; font-size:10px; margin-top:-44px; background:#000; color:#fff; padding:2px 6px; border-radius:3px; }

/* Botones de la ficha */
.jre-btn-whatsapp, .jre-btn-brochure {
    display:flex; align-items:center; justify-content:center; gap:8px; width:100%;
    padding:12px; border-radius:var(--jre-radius,6px); font-weight:700; text-decoration:none; margin-bottom:12px;
}
.jre-btn-whatsapp { background:#25D366; color:#fff; }
.jre-btn-whatsapp:hover { background:#1ebe5b; }
.jre-btn-brochure { background:#f4f4f4; color:#333; border:1px solid #ddd; font-weight:600; }
.jre-btn-brochure:hover { background:#ececec; }

/* Badges inline / chips */
.jre-badge-inline { position:relative; top:auto; left:auto; right:auto; display:inline-flex; align-items:center; gap:4px; }
.jre-badge-typology { background:var(--jre-primary,#006AFF); color:#fff; }
.jre-chip {
    display:inline-flex; align-items:center; gap:4px; background:#f0f0f3; color:#555;
    padding:4px 10px; border-radius:14px; font-size:11px;
}
.jre-single-badges-top { display:flex; align-items:center; gap:8px; margin-bottom:10px; flex-wrap:wrap; }
.jre-single-tools { margin-left:auto; display:flex; gap:8px; }
.jre-single-taxbadges { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px; }
.jre-single-specs .jre-icon { color:var(--jre-primary,#006AFF); margin-bottom:4px; }

/* Formularios nativos con iconos */
.jre-form-field { position:relative; display:flex; align-items:center; }
.jre-field-icon-wrap {
    position:absolute; left:12px; color:#9a9aa2; display:flex; pointer-events:none;
}
.jre-form-field .jre-field-icon-wrap + input,
.jre-form-field .jre-field-icon-wrap + textarea { padding-left:38px; }
.jre-form-field.jre-field-type-checkbox { display:block; }
.jre-check-label { font-size:13px; display:flex; gap:8px; align-items:center; }
.jre-external-form-wrap { width:100%; }

/* ================================================================
   VARIANTES DE PLANTILLA SINGLE (#7) — 8 diseños vía clase wrapper
   ================================================================ */

/* Classic Portal: barra de specs azul, precio grande */
.jre-tpl-classic .jre-single-price { color:var(--jre-primary,#006AFF); font-size:32px; }
.jre-tpl-classic .jre-single-specs { background:#f7f9fc; border-radius:10px; border:none; padding:18px 16px; }

/* Luxury Editorial: serif, crema, mucho aire */
.jre-tpl-luxury { background:#F9F8F6; padding-top:30px; }
.jre-tpl-luxury .jre-single-title { font-family:'Playfair Display',Georgia,serif; font-weight:500; letter-spacing:1px; font-size:30px; }
.jre-tpl-luxury .jre-single-price { font-family:'Playfair Display',Georgia,serif; font-weight:400; color:#0C192C; }
.jre-tpl-luxury .jre-single-specs { border-color:#E5E2DC; }
.jre-tpl-luxury .jre-chip { background:transparent; border:0.5px solid #c8c2b6; border-radius:0; }
.jre-tpl-luxury .jre-single-spec-value { font-family:'Playfair Display',Georgia,serif; }

/* Modern Dark: fondo carbón, acentos neón */
.jre-tpl-modern { background:#111215; color:#F5F5F7; padding:24px; border-radius:14px; }
.jre-tpl-modern .jre-single-title { text-transform:uppercase; letter-spacing:1px; font-weight:900; color:#fff; }
.jre-tpl-modern .jre-single-price { color:#00E5FF; font-weight:900; }
.jre-tpl-modern .jre-single-specs { border-color:#333; }
.jre-tpl-modern .jre-single-spec-value { color:#fff; }
.jre-tpl-modern .jre-single-spec-label { color:#8b8b93; }
.jre-tpl-modern .jre-single-description { color:#cfcfd6; }
.jre-tpl-modern .jre-chip { background:#1e2025; color:#bcbcc4; }
.jre-tpl-modern .jre-single-specs .jre-icon { color:#00E5FF; }
.jre-tpl-modern .jre-sidebar-card { background:#1a1c20; border-color:#2c2f36; color:#eee; }

/* Compact: dos columnas más estrechas, todo más denso */
.jre-tpl-compact .jre-single-specs { gap:12px; padding:10px 0; }
.jre-tpl-compact .jre-single-spec-value { font-size:16px; }
.jre-tpl-compact .jre-single-price { font-size:22px; }
.jre-tpl-compact .jre-single-gallery-hero .jre-gallery-hero-grid { max-height:320px; }

/* Full-width Hero: galería a sangre completa */
.jre-tpl-fullwidth .jre-single-gallery-hero { margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); width:100vw; }
.jre-tpl-fullwidth .jre-single-gallery-hero .jre-gallery-hero-grid { max-height:70vh; }
.jre-tpl-fullwidth .jre-single-price { font-size:34px; }

/* Magazine: título enorme, layout editorial */
.jre-tpl-magazine .jre-single-title { font-size:38px; line-height:1.1; font-weight:800; }
.jre-tpl-magazine .jre-single-header { border-bottom:3px solid var(--jre-accent,#0C192C); padding-bottom:16px; margin-bottom:20px; }
.jre-tpl-magazine .jre-single-description { font-size:17px; line-height:1.9; column-gap:32px; }

/* Developer / Preventa: destaca estado de obra y CTA */
.jre-tpl-developer .jre-single-price { color:var(--jre-accent,#0C192C); }
.jre-tpl-developer .jre-single-specs { background:linear-gradient(135deg, var(--jre-primary,#006AFF) 0%, var(--jre-accent,#0C192C) 100%); color:#fff; border:none; border-radius:12px; padding:20px; }
.jre-tpl-developer .jre-single-spec-value, .jre-tpl-developer .jre-single-specs .jre-icon { color:#fff; }
.jre-tpl-developer .jre-single-spec-label { color:rgba(255,255,255,.8); }

/* ================================================================
   v2.2 — Plantillas Desarrollo (preventa) y Agente
   ================================================================ */
.jre-development, .jre-agent { max-width:1200px; margin:0 auto; }

/* Hero desarrollo */
.jre-dev-hero {
    min-height:440px; display:flex; align-items:flex-end; background-size:cover; background-position:center;
    border-radius:var(--jre-radius,10px); overflow:hidden; background-color:#0C192C; color:#fff;
}
.jre-dev-hero-inner { padding:40px; width:100%; }
.jre-dev-status {
    display:inline-flex; align-items:center; gap:6px; background:var(--jre-primary,#006AFF); color:#fff;
    padding:6px 14px; border-radius:30px; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; margin-bottom:14px;
}
.jre-dev-status-preventa { background:#f0b429; color:#1a1a1a; }
.jre-dev-status-entrega_inmediata { background:#2ecc71; }
.jre-dev-status-vendido { background:#888; }
.jre-dev-title { color:#fff; font-size:40px; line-height:1.1; margin:0 0 10px; font-weight:800; }
.jre-dev-location { color:rgba(255,255,255,.9); font-size:15px; display:flex; align-items:center; gap:6px; margin:0 0 16px; }
.jre-dev-hero-price { display:flex; flex-direction:column; }
.jre-dev-price-label { font-size:12px; text-transform:uppercase; letter-spacing:1px; opacity:.85; }
.jre-dev-price-value { font-size:30px; font-weight:800; }

/* Datos clave */
.jre-dev-keyfacts {
    display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:1px;
    background:#e6e6ea; border-radius:var(--jre-radius,10px); overflow:hidden; margin:24px 0;
}
.jre-keyfact { background:#fff; padding:22px 16px; display:flex; flex-direction:column; align-items:center; text-align:center; gap:4px; }
.jre-keyfact .jre-icon { color:var(--jre-primary,#006AFF); }
.jre-keyfact-value { font-size:18px; font-weight:800; color:#1a1a1a; }
.jre-keyfact-label { font-size:11px; text-transform:uppercase; letter-spacing:.5px; color:#888; }

/* Layout desarrollo */
.jre-dev-main { display:grid; grid-template-columns:1fr 360px; gap:36px; align-items:start; }
@media (max-width:900px){ .jre-dev-main { grid-template-columns:1fr; } }
.jre-dev-section { margin-bottom:36px; }
.jre-dev-h2 { font-size:22px; font-weight:700; margin:0 0 16px; display:flex; align-items:center; gap:10px; }
.jre-count-pill, .jre-dev-h2 .jre-count-pill { background:var(--jre-primary,#006AFF); color:#fff; font-size:13px; padding:2px 10px; border-radius:20px; }
.jre-dev-description { line-height:1.8; color:#444; }
.jre-dev-sidebar { position:sticky; top:20px; }
.jre-dev-cta-sub { font-size:13px; color:#777; margin:0 0 16px; }

/* Amenidades */
.jre-amenities-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:10px; }
.jre-amenity-item { display:flex; align-items:center; gap:8px; font-size:14px; color:#3a3a40; padding:8px 0; }
.jre-amenity-item .jre-icon { color:#2ecc71; }

/* Tabla de unidades pública */
.jre-units-table-wrap { overflow-x:auto; border:1px solid #e6e6ea; border-radius:var(--jre-radius,10px); }
.jre-units-public { width:100%; border-collapse:collapse; font-size:14px; }
.jre-units-public th { background:#f7f8fa; text-align:left; padding:12px 14px; font-size:12px; text-transform:uppercase; letter-spacing:.4px; color:#666; }
.jre-units-public td { padding:12px 14px; border-top:1px solid #eee; }
.jre-units-public tr.jre-unit-vendido { opacity:.5; }
.jre-unit-badge { display:inline-block; padding:3px 10px; border-radius:20px; font-size:11px; font-weight:700; }
.jre-unit-badge-disponible { background:#e3f9ec; color:#1a7a43; }
.jre-unit-badge-reservado { background:#fff4e0; color:#a96a00; }
.jre-unit-badge-vendido { background:#f0f0f0; color:#999; }

/* Agente */
.jre-agent-header { display:flex; gap:28px; align-items:center; padding:30px 0; flex-wrap:wrap; }
.jre-agent-photo { width:140px; height:140px; border-radius:50%; object-fit:cover; box-shadow:0 4px 18px rgba(0,0,0,.12); }
.jre-agent-name { font-size:30px; margin:0 0 4px; }
.jre-agent-role { color:#888; margin:0 0 16px; font-size:14px; }
.jre-agent-actions { display:flex; gap:12px; flex-wrap:wrap; align-items:center; }
.jre-agent-actions .jre-btn-whatsapp { width:auto; padding:10px 18px; margin:0; }
.jre-agent-contact { display:inline-flex; align-items:center; gap:6px; color:#444; text-decoration:none; font-size:14px; padding:8px 14px; border:1px solid #e1e1e6; border-radius:8px; }
.jre-agent-contact:hover { border-color:var(--jre-primary,#006AFF); color:var(--jre-primary,#006AFF); }
.jre-agent-bio { line-height:1.8; color:#444; margin:10px 0 30px; max-width:760px; }

@media (max-width:600px){
    .jre-dev-hero-inner { padding:24px; }
    .jre-dev-title { font-size:28px; }
    .jre-units-public thead { display:none; }
    .jre-units-public tr { display:block; border-top:6px solid #f0f0f3; padding:6px 0; }
    .jre-units-public td { display:flex; justify-content:space-between; border:none; padding:6px 14px; }
    .jre-units-public td::before { content:attr(data-label); font-weight:700; color:#888; }
}

/* ================================================================
   v2.2 — Refinamientos ficha: breadcrumbs, bloques, hipoteca
   ================================================================ */
.jre-breadcrumbs {
    display:flex; flex-wrap:wrap; align-items:center; gap:8px; font-size:13px; color:#888;
    padding:14px 0; margin-bottom:8px;
}
.jre-breadcrumbs a { color:#888; text-decoration:none; }
.jre-breadcrumbs a:hover { color:var(--jre-primary,#006AFF); }
.jre-bc-sep { color:#c4c4cc; }
.jre-bc-current { color:#2a2a33; font-weight:600; }

.jre-single-block { margin-bottom:32px; }
.jre-single-h3 {
    font-size:17px; font-weight:700; margin:0 0 14px; display:flex; align-items:center; gap:8px;
    padding-bottom:10px; border-bottom:1px solid #ededf0;
}
.jre-single-h3 .jre-icon { color:var(--jre-primary,#006AFF); }

/* Calculadora de hipoteca */
.jre-mortgage { background:#f8f9fc; border:1px solid #eceef3; border-radius:var(--jre-radius,10px); padding:22px; }
.jre-mortgage-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
@media (max-width:520px){ .jre-mortgage-grid { grid-template-columns:1fr; } }
.jre-mortgage-grid label { display:flex; flex-direction:column; gap:6px; font-size:12px; font-weight:600; color:#555; text-transform:uppercase; letter-spacing:.4px; }
.jre-mortgage-grid input {
    padding:10px 12px; border:1px solid #d6d8df; border-radius:8px; font-size:15px; font-weight:600; color:#222; background:#fff;
}
.jre-mortgage-grid input:focus { outline:none; border-color:var(--jre-primary,#006AFF); }
.jre-mortgage-result {
    display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-top:18px;
    padding:16px 18px; background:var(--jre-primary,#006AFF); border-radius:10px; color:#fff; flex-wrap:wrap;
}
.jre-mortgage-label { font-size:13px; opacity:.92; text-transform:uppercase; letter-spacing:.5px; }
.jre-mortgage-value { font-size:26px; font-weight:800; }
.jre-mortgage-note { font-size:11px; color:#999; margin:10px 0 0; }

/* Skins de hipoteca */
.jre-tpl-modern .jre-mortgage { background:#1a1c20; border-color:#2c2f36; }
.jre-tpl-modern .jre-mortgage-grid input { background:#111215; border-color:#333; color:#fff; }
.jre-tpl-modern .jre-mortgage-result { background:#00E5FF; color:#111215; }
.jre-tpl-luxury .jre-mortgage { background:#fff; border-color:#E5E2DC; border-radius:0; }
.jre-tpl-luxury .jre-mortgage-result { background:#0C192C; }

/* ================================================================
   v2.2 — Hero de galería estilo Zillow
   ================================================================ */
.jre-single-gallery-hero { margin-bottom:28px; }
.jre-gallery-hero-grid {
    position:relative; display:grid; grid-template-columns:2fr 1fr 1fr; grid-template-rows:1fr 1fr;
    gap:6px; height:460px; border-radius:var(--jre-radius,10px); overflow:hidden; background:#eceef1;
}
.jre-hero-cell { display:block; overflow:hidden; }
.jre-hero-cell img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s ease; }
.jre-hero-cell:hover img { transform:scale(1.04); }
.jre-hero-main { grid-row:1 / span 2; grid-column:1; }
.jre-hero-hidden { display:none; }
.jre-view-all-photos {
    position:absolute; right:16px; bottom:16px; display:inline-flex; align-items:center; gap:8px;
    background:rgba(255,255,255,.96); color:#1a1a1a; border:none; padding:10px 16px; border-radius:8px;
    font-size:13px; font-weight:700; cursor:pointer; box-shadow:0 2px 10px rgba(0,0,0,.18); transition:transform .15s;
}
.jre-view-all-photos:hover { transform:translateY(-2px); }
@media (max-width:768px){
    .jre-gallery-hero-grid { grid-template-columns:1fr 1fr; grid-template-rows:1fr 1fr; height:300px; }
    .jre-hero-main { grid-column:1 / span 2; grid-row:1; }
    .jre-gallery-hero-grid .jre-hero-cell:nth-child(n+4){ display:none; }
}

/* ================================================================
   v2.3 — Widgets Elementor: hero, carrusel, búsqueda, grids, marketing
   ================================================================ */

/* Hero con buscador */
.jre-hero { position:relative; display:flex; align-items:center; justify-content:center; background-size:cover; background-position:center; padding:40px 20px; border-radius:var(--jre-radius,10px); }
.jre-hero-inner { display:flex; flex-direction:column; width:100%; max-width:920px; color:#fff; }
.jre-hero-title { color:#fff; font-size:clamp(28px,5vw,52px); line-height:1.1; margin:0 0 14px; font-weight:800; text-shadow:0 2px 18px rgba(0,0,0,.3); }
.jre-hero-sub { color:rgba(255,255,255,.95); font-size:clamp(15px,2vw,20px); margin:0 0 28px; text-shadow:0 1px 10px rgba(0,0,0,.3); }
.jre-hero-search { background:rgba(255,255,255,.12); backdrop-filter:blur(6px); padding:10px; border-radius:14px; width:100%; }
.jre-hero-tabs { display:flex; gap:6px; margin-bottom:10px; flex-wrap:wrap; }
.jre-hero-tab { background:rgba(255,255,255,.2); color:#fff; border:none; padding:8px 18px; border-radius:30px; font-size:13px; font-weight:600; cursor:pointer; transition:background .2s; }
.jre-hero-tab.is-active { background:#fff; color:#1a1a1a; }
.jre-hero-fields { display:flex; gap:8px; background:#fff; padding:8px; border-radius:10px; flex-wrap:wrap; }
.jre-hero-field { display:flex; align-items:center; gap:8px; padding:0 12px; flex:1; min-width:140px; border-right:1px solid #eee; color:#888; }
.jre-hero-field:last-of-type { border-right:none; }
.jre-hero-field-grow { flex:2; min-width:200px; }
.jre-hero-field input, .jre-hero-field select { border:none; outline:none; width:100%; height:48px; font-size:14px; color:#222; background:transparent; }
.jre-hero-submit { display:inline-flex; align-items:center; gap:8px; background:var(--jre-primary,#006AFF); color:#fff; border:none; padding:0 26px; height:48px; border-radius:8px; font-weight:700; font-size:15px; cursor:pointer; }
.jre-hero-submit:hover { filter:brightness(.94); }
@media (max-width:680px){ .jre-hero-field { border-right:none; flex-basis:100%; } .jre-hero-submit { width:100%; justify-content:center; } }

/* Carrusel */
.jre-carousel { position:relative; }
.jre-carousel-viewport { overflow:hidden; }
.jre-carousel-track { display:flex; transition:transform .45s ease; }
.jre-carousel-slide { box-sizing:border-box; padding:10px; }
.jre-carousel-arrow { position:absolute; top:40%; z-index:5; width:42px; height:42px; border-radius:50%; border:none; background:#fff; box-shadow:0 2px 10px rgba(0,0,0,.18); cursor:pointer; display:flex; align-items:center; justify-content:center; color:#222; }
.jre-carousel-prev { left:-6px; } .jre-carousel-prev .jre-icon { transform:rotate(180deg); }
.jre-carousel-next { right:-6px; }
.jre-carousel-arrow:hover { background:var(--jre-primary,#006AFF); color:#fff; }

/* Barra de búsqueda */
.jre-searchbar { display:flex; gap:12px; background:#fff; padding:16px; border-radius:var(--jre-radius,10px); box-shadow:0 4px 20px rgba(0,0,0,.06); flex-wrap:wrap; align-items:flex-end; }
.jre-searchbar-vertical { flex-direction:column; align-items:stretch; }
.jre-sb-field { display:flex; flex-direction:column; gap:5px; flex:1; min-width:150px; }
.jre-sb-field label { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.4px; color:#777; }
.jre-sb-field select, .jre-sb-field input { height:42px; padding:0 12px; border:1px solid #d6d8df; border-radius:8px; font-size:14px; background:#fff; }
.jre-sb-amenities { flex-basis:100%; }
.jre-sb-amenity-chips { display:flex; flex-wrap:wrap; gap:8px; }
.jre-sb-chip { display:inline-flex; align-items:center; gap:6px; font-size:12px; padding:6px 12px; border:1px solid #e1e1e6; border-radius:20px; cursor:pointer; }
.jre-sb-submit .jre-btn-search { height:42px; display:inline-flex; align-items:center; gap:8px; }

/* Taxonomy grid */
.jre-taxgrid { display:grid; grid-template-columns:repeat(var(--jre-cols,3),1fr); gap:18px; }
@media (max-width:1024px){ .jre-taxgrid { grid-template-columns:repeat(var(--jre-cols-tablet,2),1fr); } }
@media (max-width:767px){ .jre-taxgrid { grid-template-columns:repeat(var(--jre-cols-mobile,1),1fr); } }
.jre-taxcard { display:block; border-radius:var(--jre-radius,10px); overflow:hidden; text-decoration:none; position:relative; background:#1a1a1a; }
.jre-taxgrid-overlay .jre-taxcard-img { height:220px; background-size:cover; background-position:center; transition:transform .5s; }
.jre-taxgrid-overlay .jre-taxcard:hover .jre-taxcard-img { transform:scale(1.07); }
.jre-taxgrid-overlay .jre-taxcard-body { position:absolute; left:0; right:0; bottom:0; padding:18px; color:#fff; background:linear-gradient(transparent,rgba(0,0,0,.75)); }
.jre-taxgrid-overlay .jre-taxcard-name { display:block; font-size:18px; font-weight:700; }
.jre-taxgrid-overlay .jre-taxcard-count { font-size:13px; opacity:.9; }
.jre-taxgrid-card { }
.jre-taxgrid-card .jre-taxcard { background:#fff; border:1px solid #eceef1; }
.jre-taxgrid-card .jre-taxcard-img { height:160px; background-size:cover; background-position:center; background-color:#eceef1; }
.jre-taxgrid-card .jre-taxcard-body { padding:14px; }
.jre-taxgrid-card .jre-taxcard-name { display:block; font-weight:700; color:#222; }
.jre-taxgrid-card .jre-taxcard-count { font-size:13px; color:#888; }

/* People grid */
.jre-people-grid { display:grid; grid-template-columns:repeat(var(--jre-cols,4),1fr); gap:20px; }
@media (max-width:1024px){ .jre-people-grid { grid-template-columns:repeat(var(--jre-cols-tablet,2),1fr); } }
@media (max-width:767px){ .jre-people-grid { grid-template-columns:repeat(var(--jre-cols-mobile,1),1fr); } }
.jre-person-card { display:block; background:#fff; border:1px solid #eceef1; border-radius:var(--jre-radius,10px); overflow:hidden; text-decoration:none; text-align:center; transition:box-shadow .2s, transform .2s; }
.jre-person-card:hover { box-shadow:0 8px 26px rgba(0,0,0,.1); transform:translateY(-3px); }
.jre-person-photo { height:200px; background-size:cover; background-position:center; background-color:#f0f1f4; display:flex; align-items:center; justify-content:center; }
.jre-person-body { padding:16px; }
.jre-person-name { font-size:16px; margin:0 0 6px; color:#1a1a1a; }
.jre-person-count { display:block; font-size:12px; color:var(--jre-primary,#006AFF); font-weight:600; margin-bottom:4px; }
.jre-person-phone { display:inline-flex; align-items:center; gap:5px; font-size:12px; color:#888; }

/* Stats */
.jre-stats { display:grid; grid-template-columns:repeat(var(--jre-cols,4),1fr); gap:16px; text-align:center; }
@media (max-width:1024px){ .jre-stats { grid-template-columns:repeat(var(--jre-cols-tablet,2),1fr); } }
@media (max-width:480px){ .jre-stats { grid-template-columns:repeat(var(--jre-cols-mobile,2),1fr); } }
.jre-stat { padding:26px 16px; }
.jre-stat-icon { color:var(--jre-primary,#006AFF); margin-bottom:8px; }
.jre-stat-num { font-size:38px; font-weight:800; line-height:1; color:#1a1a1a; }
.jre-stat-label { font-size:13px; color:#888; margin-top:6px; text-transform:uppercase; letter-spacing:.5px; }

/* CTA */
.jre-cta { border-radius:var(--jre-radius,10px); padding:54px 28px; text-align:center; color:#fff; }
.jre-cta-inner { max-width:720px; margin:0 auto; }
.jre-cta-title { color:#fff; font-size:30px; font-weight:800; margin:0 0 10px; }
.jre-cta-text { color:rgba(255,255,255,.9); font-size:16px; margin:0 0 24px; }
.jre-cta-btn { display:inline-flex; align-items:center; gap:8px; background:var(--jre-primary,#006AFF); color:#fff; padding:14px 30px; border-radius:8px; font-weight:700; text-decoration:none; }
.jre-cta-btn:hover { filter:brightness(.93); }

/* Testimonials */
.jre-testimonials { display:grid; grid-template-columns:repeat(var(--jre-cols,3),1fr); gap:20px; }
@media (max-width:1024px){ .jre-testimonials { grid-template-columns:repeat(var(--jre-cols-tablet,2),1fr); } }
@media (max-width:767px){ .jre-testimonials { grid-template-columns:repeat(var(--jre-cols-mobile,1),1fr); } }
.jre-testimonial { background:#fff; border:1px solid #eceef1; border-radius:var(--jre-radius,10px); padding:26px; }
.jre-testimonial-stars { color:#f0b429; display:flex; gap:2px; margin-bottom:12px; }
.jre-testimonial-text { font-size:15px; line-height:1.7; color:#444; font-style:italic; margin:0 0 18px; }
.jre-testimonial-author { display:flex; align-items:center; gap:12px; }
.jre-testimonial-photo { width:48px; height:48px; border-radius:50%; object-fit:cover; }
.jre-testimonial-name { display:block; font-weight:700; font-size:14px; color:#1a1a1a; }
.jre-testimonial-role { font-size:12px; color:#999; }

/* ================================================================
   v2.3 — Archivos, agencia, tarjetas de desarrollo
   ================================================================ */
.jre-archive-wrap { max-width:1200px; margin:0 auto; padding:0 20px; }
.jre-archive-header { padding:24px 0 18px; }
.jre-archive-title { font-size:28px; font-weight:800; margin:0 0 4px; }
.jre-archive-count { color:#888; font-size:14px; margin:0; }

.jre-dev-card .jre-from-label { font-size:11px; font-weight:600; text-transform:uppercase; color:#999; letter-spacing:.4px; }
.jre-badge.jre-dev-status-preventa { background:#f0b429; color:#1a1a1a; }
.jre-badge.jre-dev-status-entrega_inmediata { background:#2ecc71; }
.jre-badge.jre-dev-status-construccion { background:#3498db; }
.jre-badge.jre-dev-status-vendido { background:#888; }

/* Agencia */
.jre-agency { max-width:1200px; margin:0 auto; }
.jre-agency-header { display:flex; gap:24px; align-items:center; padding:30px 0; flex-wrap:wrap; }
.jre-agency-logo { width:120px; height:120px; border-radius:14px; object-fit:cover; box-shadow:0 4px 16px rgba(0,0,0,.1); background:#fff; }
.jre-agency-name { font-size:30px; margin:0 0 10px; }
.jre-agency-meta { display:flex; flex-wrap:wrap; gap:16px; align-items:center; }
.jre-agency-meta span, .jre-agency-meta a { display:inline-flex; align-items:center; gap:6px; font-size:14px; color:#555; text-decoration:none; }
.jre-agency-meta a:hover { color:var(--jre-primary,#006AFF); }
.jre-agency-bio { line-height:1.8; color:#444; margin:0 0 30px; max-width:780px; }
