:root{
    /* Color principal: intenta usar el tema; si no existe, usa azul profesional seguro */
    --vivesol-primary: var(--wp--preset--color--primary, #1e73be);

    /* Superficies */
    --vivesol-surface: var(--wp--preset--color--base, #ffffff);
    --vivesol-soft-surface: color-mix(in srgb, currentColor 4%, transparent);

    /* Textos */
    --vivesol-text: currentColor;
    --vivesol-text-muted: color-mix(in srgb, currentColor 65%, transparent);

    /* Bordes */
    --vivesol-border: color-mix(in srgb, currentColor 18%, transparent);
    --vivesol-button-border: color-mix(in srgb, #000 22%, transparent);

    /* Botones */
    --vivesol-shadow:0 2px 10px rgba(0,0,0,.12);
    --vivesol-button-text: #ffffff;

    /* Estados */
    --vivesol-hover-opacity: .92;
    --vivesol-focus-ring: color-mix(in srgb, var(--vivesol-primary) 28%, transparent);
}

.vivesol-grid,
.vivesol-card,
.vivesol-filters,
.vivesol-pagination,
.vivesol-single-listing,
.vivesol-agency,
.vivesol-featured-wrapper {
    box-sizing: border-box;
    color: inherit;
}

.vivesol-grid *,
.vivesol-card *,
.vivesol-filters *,
.vivesol-pagination *,
.vivesol-single-listing *,
.vivesol-agency *,
.vivesol-featured-wrapper * {
    box-sizing: border-box;
}

#vivesol-map {
    width: 100%;
    height: 500px;
    border-radius: 12px;
    border: 1px solid #ddd;
    position: relative;
}

/* =========================
   POPUP MAPA
========================= */
.leaflet-popup-content {
    font-size: 14px;
    min-width: 220px;
    max-width: 260px;
    line-height: 1.4;
    color: inherit;
}

.leaflet-popup-content b {
    font-size: 15px;
    display: block;
    margin-bottom: 5px;
}

/* Botón dentro del popup */
.vivesol-popup-link {
    display: inline-block;
    margin-top: 8px;
    padding: 6px 10px;
    background: var(--vivesol-primary);
    color: var(--vivesol-button-text) !important;
    border: 1px solid var(--vivesol-button-border);
    border-radius: 6px;
    text-decoration: none !important;
    transition: 0.2s ease;
    box-shadow: inset 0 0 0 999px rgba(0,0,0,.04);
}

.vivesol-popup-link:hover {
    opacity: 0.92;
    text-decoration: none !important;
}

.vivesol-popup-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block; /* 👈 evita solapes */
}

/* BOTÓN A LA DERECHA popup*/
.vivesol-popup-footer {
    display: flex;
    justify-content: flex-end;
}

/*Burbuja precio mapa*/
.vivesol-price-bubble {
    background: #fff;
    padding: 5px 10px;
    border-radius: 8px;
    font-weight: 600;
    font-size: 13px;
    color: #111;
    box-shadow: 0 2px 10px rgba(0,0,0,0.25);
    white-space: nowrap;
    transform: translateY(-12px);
    border: 1px solid #eee;
    text-align: center;
}

.vivesol-price-bubble.office {
    background: #e74c3c;
    color: #fff;
    border: none;
}

/* =========================
   BRANDING GLOBAL
========================= */
#vivesol-branding {
    margin-top: 8px;
    display: inline-block;
    background: rgba(255,255,255,0.9);
    padding: 6px 10px;
    border-radius: 6px;
    font-size: 9px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.15);
}

#vivesol-branding a{
    color: inherit;
    text-decoration: none !important;
    font-weight: 600;
}

/* =========================
   ADMIN INPUTS
========================= */
#vivesol_meta input[type="text"],
#vivesol_meta input[type="number"],
#vivesol_meta select {
    width: 100%;
    padding: 8px;
    margin-top: 5px;
    border-radius: 6px;
    border: 1px solid #dcdcde;
}

/* =========================
   NUEVO LAYOUT ADMIN
========================= */

.vivesol-admin-wrapper {
    display: flex;
    gap: 25px;
    align-items: flex-start;
}

.vivesol-admin-left {
    flex: 1;
    min-width: 0;
}

.vivesol-admin-right {
    width: 260px;
    flex-shrink: 0;
}

.vivesol-admin-ad {
    position: sticky;
    top: 20px;
}

.vivesol-admin-ad img {
    width: 100%;
    height: auto;
    border-radius: 12px;
    border: 1px solid #ddd;
    box-shadow: 0 2px 10px rgba(0,0,0,0.08);
}

/* =========================
   FILAS ADMIN
========================= */

.vivesol-row {
    display: flex;
    gap: 15px;
    margin-bottom: 15px;
}

.vivesol-col {
    flex: 1;
}

.vivesol-col label {
    display: block;
    margin-bottom: 5px;
    font-weight: 600;
}

/* =========================
   URL EXTERNA
========================= */

.vivesol-url-row {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
}

.vivesol-url-check {
    display: flex;
    align-items: center;
    gap: 5px;
    white-space: nowrap;
    margin-top: 22px;
}

.vivesol-url-disabled {
    background: #f5f5f5 !important;
    opacity: 0.7;
    cursor: not-allowed;
}

/* =========================
   PREVIEW IMAGENES
========================= */

.vivesol-gallery-preview {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 12px;
}

.vivesol-gallery-preview img {
    width: 90px;
    height: 90px;
    object-fit: cover;
    border-radius: 8px;
    border: 1px solid #ddd;
    background: #fff;
    display: block;
}

/* =========================
   ADMIN MAPA
========================= */
#vivesol-admin-map {
    width: 100%;
    height: 300px;
    margin-top: 15px;
    border-radius: 8px;
    border: 1px solid #ddd;
}

/* Botón admin */
#vivesol_meta button {
    transition: 0.2s ease;
}

#vivesol_meta button:hover {
    opacity: 0.9;
}

/* =========================
   CUADRICULA PUBLICACIONES
========================= */
.vivesol-grid {
    display: grid;
    gap: 20px;
    margin-top: 20px;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    justify-content: center;
}

.vivesol-card {
    background: var(--vivesol-surface);
    color: inherit;
    border-radius: 14px;
    overflow: hidden;
    border: 1px solid var(--vivesol-border);
    box-shadow: 0 6px 18px rgba(0,0,0,0.07);
    transition: all 0.25s ease;
}

.vivesol-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(0,0,0,0.12);
}

/* =========================
   IMAGEN TARJETA INMUEBLE
========================= */

.vivesol-card-image {
    width: 100%;
    height: 200px;
    object-fit: cover;
    display: block;
    border-radius: 10px;
    margin-bottom: 12px;
}

/* efecto zoom elegante */

.vivesol-card:hover .vivesol-card-image img{
    transform:scale(1.06);
}

.vivesol-title {
    font-size: 16px;
    margin: 0 0 10px 0;
}

.vivesol-price {
    font-size: 20px;
    font-weight: 700;
    margin: 6px 0 8px;
}

/*Boton listado*/
.vivesol-button {
    display: inline-block;
    padding: 8px 14px;
    border-radius: 6px;
    text-decoration: none !important;
    font-size: 13px;
    font-weight: 500;

    background: var(--vivesol-primary);
    color: var(--vivesol-button-text) !important;
    border: 1px solid var(--vivesol-button-border);

    box-shadow: inset 0 0 0 999px rgba(0,0,0,.04);

    align-self: flex-end;
    margin-top: 10px;
}

.vivesol-button:hover {
    opacity: 0.92;
    text-decoration: none !important;
}

.vivesol-card-body {
    padding: 14px;
    display: flex;
    flex-direction: column;
}

/* =========================
   FILTROS LISTADO
========================= */
.vivesol-filters {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 12px;
    margin: 25px auto;
    max-width: 1100px;
}

/* Selects y botón */

.vivesol-filters select,
.vivesol-filters button {
    padding: 10px 12px;
    border-radius: 8px;
    font-size: 14px;
    min-width: 140px;
}

.vivesol-filters select {
    background: var(--vivesol-surface);
    color: inherit;
    border: 1px solid var(--vivesol-border);
}

.vivesol-filters button {
    cursor: pointer;
    background: var(--vivesol-primary);
    color: var(--vivesol-button-text);
    border: 1px solid var(--vivesol-button-border);
    font-weight: 600;
    box-shadow: inset 0 0 0 999px rgba(0,0,0,.04);
    transition:
        background .2s ease,
        border-color .2s ease,
        opacity .2s ease;
}

.vivesol-filters button:hover {
    opacity: var(--vivesol-hover-opacity);
}

/*botones grid*/
.vivesol-card-actions{
    display:flex;
    gap:10px;
    margin-top:12px;
}

.vivesol-card-actions .vivesol-button{
    flex:1;
    text-align:center;
    margin-top:0;
}

/* =========================
   POPUP INMOBILIARIO
========================= */
.vivesol-popup-image {
    width: 100%;
    height: 160px;
    overflow: hidden;
    border-radius: 8px;
    margin-bottom: 10px;
}

.vivesol-popup-price {
    font-size: 19px;
    font-weight: bold;
    color: inherit;
    margin: 8px 0;
}

.vivesol-popup-meta {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin: 8px 0;
    font-size: 13px;
    color: #555;
}

.vivesol-popup-meta span {
    background: #f5f5f5;
    padding: 4px 8px;
    border-radius: 6px;
}

.vivesol-popup-type {
    margin-top: 6px;
    font-size: 13px;
    color: #555;
    font-weight: 500;
}

/*DESTACADO*/
.vivesol-popup-featured {
    background: rgba(231, 76, 60, 0.1);
    color: #e74c3c;
    font-size: 13px;
    font-weight: 700;
    padding: 4px 8px;
    border-radius: 6px;
    display: inline-block;
    margin-bottom: 8px;
}

/* =========================
   PAGINACION
========================= */

.vivesol-pagination{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:8px;
    margin-top:45px;
    flex-wrap:wrap;
	margin-bottom: 60px;
}

.vivesol-pagination a,
.vivesol-pagination span{
    min-width:40px;
    height:40px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0 14px;
    border-radius:10px;
    text-decoration:none !important;
    font-size:14px;
    border:1px solid var(--vivesol-border);
    background:var(--vivesol-surface);
    color:inherit;
    transition:.25s ease;
}

.vivesol-pagination a{
    backdrop-filter: blur(5px);
}

.vivesol-pagination a:hover{
    background: var(--vivesol-primary);
    color:#fff;
    border-color: transparent;
    transform: translateY(-2px);
}

.vivesol-pagination .current{
    background:var(--vivesol-primary);
    color:var(--wp--preset--color--base, #fff);
    border-color:transparent;
    font-weight:600;
}

.vivesol-pagination .active{
    background: var(--vivesol-primary);
    color:#fff;
    border-color: transparent;
    font-weight:600;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

/* =========================
   RESPONSIVE MOVIL
========================= */
@media (max-width: 900px) {

    .vivesol-admin-wrapper {
        flex-direction: column;
    }

    .vivesol-admin-right {
        width: 100%;
    }

    .vivesol-admin-ad {
        position: relative;
        top: 0;
    }
}

@media (max-width: 768px) {

    #vivesol-map {
        height: 420px;
    }

    .vivesol-grid {
        grid-template-columns: 1fr;
    }

    .vivesol-card {
        padding: 14px;
    }

    .vivesol-title {
        font-size: 15px;
    }

    .vivesol-popup-price {
        font-size: 16px;
    }

    .leaflet-popup-content {
        min-width: 180px;
        max-width: 220px;
    }

    .vivesol-row {
        flex-direction: column;
        gap: 0;
    }
}

/* =========================
   FIX CHECKBOX BACKEND
========================= */
#vivesol_meta input[type="checkbox"]{
    appearance: checkbox !important;
    -webkit-appearance: checkbox !important;

    width: 16px !important;
    height: 16px !important;

    min-width: 16px !important;
    max-width: 16px !important;

    padding: 0 !important;
    margin: 0 !important;

    display: inline-block !important;
    vertical-align: middle !important;
    flex: 0 0 16px !important;
}

/* LABELS CHECKBOX */

.vivesol-checkbox-label,
.vivesol-checkbox-inline{
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

/* =========================
   SINGLE PROPERTY PAGE
========================= */

.vivesol-single-listing{
    max-width:1200px;
    margin:40px auto;
    background:var(--vivesol-surface);
    color:inherit;
    border-radius:16px;
    overflow:hidden;
    box-shadow:0 4px 20px rgba(0,0,0,.08);
}

.vivesol-single-layout{
    display:grid;
    grid-template-columns:minmax(0, 1.15fr) minmax(320px, 0.85fr);
    gap:30px;
    align-items:start;
}

.vivesol-single-layout.no-gallery{
    grid-template-columns:1fr;
    max-width:900px;
}

.vivesol-single-gallery,
.vivesol-single-content{
    min-width:0;
}

/* ✅ QUITAMOS sticky para evitar solapes */
.vivesol-single-gallery{
    position:relative;
    top:0;
    padding:20px 0 20px 20px;
}

/* Imagen principal estable */
.vivesol-single-main-image{
    width:100%;
    height:clamp(280px, 38vw, 460px);
    overflow:hidden;
    border-radius:12px;
    background:var(--vivesol-soft-surface);
	position:relative;
}

.vivesol-single-main-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;

    aspect-ratio: 4 / 3;   /* ✅ estabiliza proporción */
}

/* =========================
   GALERÍA CON FLECHAS
========================= */

.vivesol-single-thumbs-wrap{
    display:flex;
    align-items:center;
    gap:10px;
    margin-top:12px;
}

.vivesol-single-thumbs{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:10px;
    flex:1;
	display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}

.vivesol-single-thumbs .vivesol-thumb{
    width:100%;
    height:72px;
    object-fit:cover;
    display:block;
    border-radius:8px;
    cursor:pointer;
    border:2px solid transparent;
    transition:border-color .2s ease, transform .2s ease, opacity .2s ease;
    opacity:.9;
}

.vivesol-single-thumbs .vivesol-thumb:hover{
    opacity:1;
    transform:scale(1.02);
    border-color:var(--vivesol-primary);
	background:var(--vivesol-soft-surface);
}

.vivesol-single-thumbs img {
    width: 100%;
    height: 70px;
    object-fit: cover;
}

.vivesol-single-thumbs .vivesol-thumb.is-active{
    opacity:1;
    border-color:var(--vivesol-primary);
    box-shadow:0 0 0 2px rgba(30,115,190,.15);
}

.vivesol-thumbs-arrow{
    width:40px;
    height:40px;
    border-radius:50%;
    background:var(--vivesol-surface);
    color:inherit;
    border:1px solid var(--vivesol-border);
    box-shadow:0 2px 8px rgba(0,0,0,.12);
    cursor:pointer;
    font-size:24px;
    line-height:1;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
}

/* opcional: por seguridad */
.vivesol-single-thumbs .vivesol-thumb {
    display: none;
}
/*contador imagenes*/
.vivesol-image-counter {
    position: absolute;
    left: 12px;
    bottom: 12px;
    background: rgba(0,0,0,0.6);
    color: #fff;
    padding: 5px 10px;
    border-radius: 6px;
    font-size: 13px;
}
.vivesol-image-zoom{
    position:absolute;
    right:12px;
    bottom:12px;
    width:42px;
    height:42px;
    border:none;
    border-radius:50%;
    background:rgba(255,255,255,.92);
    box-shadow:0 2px 10px rgba(0,0,0,.15);
    cursor:pointer;
    font-size:20px;
    display:flex;
    align-items:center;
    justify-content:center;	
	color:#333;
}

.vivesol-image-zoom:hover{
    background:var(--vivesol-soft-surface);
    color:#1e73be;
}


/* Lightbox */
.vivesol-lightbox{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.88);
    display:none;
    align-items:center;
    justify-content:center;
    z-index:9999;
    padding:20px;
}

.vivesol-lightbox.is-open{
    display:flex;
}

.vivesol-lightbox img{
    max-width:95vw;
    max-height:90vh;
    border-radius:12px;
    display:block;
}

.vivesol-lightbox-close{
    position:absolute;
    top:20px;
    right:20px;
    width:44px;
    height:44px;
    border-radius:50%;
    background:var(--vivesol-surface);
    color:inherit;
    border:1px solid var(--vivesol-border);
    box-shadow:0 2px 8px rgba(0,0,0,.12);
    cursor:pointer;
    font-size:28px;
    display:flex;
    align-items:center;
    justify-content:center;
}

.vivesol-single-content{
    padding:30px 30px 30px 0;
    background:transparent;
}

.vivesol-single-top{
    display:flex;
    gap:10px;
    margin-bottom:20px;
    flex-wrap:wrap;
}

.vivesol-single-featured{
    background:#fff3cd;
    color:#856404;
    padding:8px 14px;
    border-radius:999px;
    font-size:13px;
    font-weight:600;
}

.vivesol-single-operation{
    background:#e8f2ff;
    color:#1e73be;
    padding:8px 14px;
    border-radius:999px;
    font-size:13px;
    font-weight:600;
}

.vivesol-single-price{
    font-size:36px;
    font-weight:700;
    color:inherit;
    margin-bottom:25px;
}

.vivesol-single-meta{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    margin-bottom:25px;
}

.vivesol-single-meta span{
    background:var(--vivesol-soft-surface);
    padding:10px 14px;
    border-radius:8px;
    font-size:14px;
}

.vivesol-single-description{
    margin-top:20px;
    font-size:15px;
    line-height:1.6;
    color:inherit;
    background:var(--vivesol-soft-surface);
    padding:15px;
    border-radius:10px;
}

.vivesol-single-phone{
    font-size:20px;
    font-weight:600;
    margin:25px 0;
}

.vivesol-single-actions{
    margin-bottom:15px;
}

.vivesol-single-contact{
    margin-top:20px;
}

.vivesol-single-contact .vivesol-button{
    width:100%;
    text-align:center;
    padding:14px;
    font-size:16px;
    font-weight:600;
}

.vivesol-single-contact .vivesol-button:hover{
    transform:translateY(-1px);
}

/* =========================
   RESPONSIVE FICHA INMUEBLE
========================= */
@media (max-width:900px){

    /* Layout general */
    .vivesol-single-layout{
        grid-template-columns:1fr;
        gap:20px;
    }

    .vivesol-single-gallery{
        padding:20px 20px 0 20px;
    }

    .vivesol-single-main-image{
        height:280px;
    }

    .vivesol-single-content{
        padding:20px;
    }

    .vivesol-single-price{
        font-size:30px;
    }

    /* GALERÍA (flechas) */
    .vivesol-single-thumbs-wrap{
        gap:8px;
    }

    .vivesol-thumbs-arrow{
        width:36px;
        height:36px;
        font-size:22px;
    }

    .vivesol-single-thumbs{
        gap:8px;
    }

    .vivesol-single-thumbs .vivesol-thumb{
        height:58px;
    }

}

/* =========================
   enlace simulador hipotecas
========================= */
.vivesol-single-mortgage{
    margin-bottom:20px;
}

.vivesol-mortgage-link{
    color:inherit;
    font-weight:600;
    text-decoration:none !important;
}

.vivesol-mortgage-link:hover{
    opacity:.85;
    text-decoration:none !important;
}

/* =========================
   PAGINA DATA-AGENCY
========================= */
.vivesol-agency{
    max-width:1100px;
    margin:40px auto;
    padding:0 20px;
    color:inherit;
}

.vivesol-agency-card{
    background:transparent;
    padding:0;
    box-shadow:none;
    margin-bottom:20px;
}

.vivesol-agency-grid{
    display:grid;
    grid-template-columns:1.1fr 0.9fr;
    gap:40px;
}

.vivesol-agency-title{
    margin:0 0 15px;
    font-size:26px;
}

.vivesol-agency-info p{
    margin:10px 0;
}

.vivesol-social{
    margin-top:20px;
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}

.vivesol-social-link{
    display:inline-flex;
    align-items:center;
    gap:8px;
    text-decoration:none !important;
    padding:8px 12px;
    border-radius:8px;
    background:var(--vivesol-soft-surface);
    color:inherit;
}

.vivesol-social-link:hover{
    opacity:.9;
    text-decoration:none !important;
}

.vivesol-icon{
    width:18px;
    height:18px;
    fill:currentColor;
}

.vivesol-contact-form{
    display:flex;
    flex-direction:column;
    gap:14px;
    background:var(--vivesol-soft-surface);
    padding:18px;
    border-radius:10px;
}

.vivesol-contact-form input,
.vivesol-contact-form textarea{
    width:100%;
    padding:12px;
    border:1px solid var(--vivesol-border);
    border-radius:8px;
    transition: all 0.2s ease;
}

.vivesol-contact-form input:focus,
.vivesol-contact-form textarea:focus{
    border-color:#1e73be;
    outline:none;
    box-shadow:0 0 0 2px rgba(30,115,190,.1);
}

.vivesol-contact-form button{
    background:var(--vivesol-primary);
    color:var(--vivesol-button-text);
    font-weight:600;
    padding:12px;
    border-radius:8px;
    cursor:pointer;
    transition:0.2s ease;
    border:1px solid var(--vivesol-button-border);
    box-shadow: inset 0 0 0 999px rgba(0,0,0,.04);
}

.vivesol-contact-form button:hover{
    opacity:.9;
    transform:translateY(-1px);
}

.vivesol-success{
    padding:12px;
    border-radius:8px;
    margin-bottom:12px;
    background:#e8f8ec;
    border:1px solid #b6e6c5;
    color:#256d34;
}

.vivesol-error{
    padding:12px;
    border-radius:8px;
    margin-bottom:12px;
    background:#fdecec;
    border:1px solid #f5bcbc;
    color:#a94442;
}

.vivesol-agency-left h3,
.vivesol-agency-right h3{
    margin-top:25px;
    margin-bottom:10px;
}

#vivesol-agency-map{
    height:300px;
    width:100%;
    border-radius:12px;
    overflow:hidden;
    border:1px solid var(--vivesol-border); /* ✅ más suave */
}

#vivesol-branding{
    margin-top:8px;
    text-align:right;
    font-size:11px;
}

@media (max-width:768px){

    .vivesol-agency-grid{
        grid-template-columns:1fr;
    }

}
/*CAPTCHA NUMERICO*/
.vivesol-captcha{
    margin:10px 0;
    padding:10px 12px;
    background:#fff;
    border-radius:8px;
    border:1px solid var(--vivesol-border);
    font-size:14px;
}

.vivesol-captcha input {
    margin-top: 8px;
    width: 100%;
    padding: 8px;
}

.vivesol-whatsapp-button{
    display:inline-flex;
    align-items:center;
    gap:8px;
}

.vivesol-whatsapp-icon{
    width:18px;
    height:18px;
    flex-shrink:0;
}

.vivesol-agency-schedule{
    margin:18px 0;
}

.vivesol-agency-schedule h4{
    margin:0 0 12px;
}

.vivesol-agency-schedule p{
    margin:0 0 12px;
    padding-left:14px;
}

.vivesol-agency-schedule p strong{
    display:block;
    margin-bottom:4px;
}

/* =========================
   featured-carousel
========================= */
.vivesol-featured-wrapper{

    position:relative;
    max-width:100%;
    overflow:hidden;
    margin:30px auto;
}

.vivesol-carousel-track{

    display:flex;
    transition:transform .4s ease;
}

.vivesol-slide{

    min-width:100%;
    background:var(--vivesol-surface);
    color:inherit;
    border:1px solid var(--vivesol-border);
    border-radius:12px;
    overflow:hidden;
}

.vivesol-slide img{

    width:100%;
    height:320px;
    object-fit:cover;
    display:block;
}

.vivesol-slide-content{

    padding:20px;
}

.vivesol-price{

    font-weight:700;
    margin-bottom:10px;
	font-size:40px;
}

.vivesol-type{

    font-size:18px;
    font-weight:600;
    margin-bottom:10px;
}

.vivesol-meta{

    display:flex;
    gap:15px;
    flex-wrap:wrap;
    margin-bottom:20px;
    color:inherit;
    opacity:.75;
}

.vivesol-featured-btn{

    display:inline-block;
    padding:.75rem 1.25rem;
    background:var(--vivesol-primary);
    color:var(--vivesol-button-text) !important;
    border:1px solid var(--vivesol-button-border);
    border-radius:6px;
    text-decoration:none !important;
    box-shadow: inset 0 0 0 999px rgba(0,0,0,.04);
}

.vivesol-featured-btn:hover{

    opacity:.92;
    text-decoration:none !important;
}

.vivesol-arrow{

    position:absolute;
    top:50%;
    transform:translateY(-50%);
    z-index:10;

    width:48px;
    height:48px;

    border:1px solid var(--vivesol-border);
    border-radius:50%;

    background:var(--vivesol-surface);
    color:inherit;

    cursor:pointer;

    font-size:24px;
    font-weight:bold;

    box-shadow:0 2px 10px rgba(0,0,0,.15);
}

.vivesol-arrow:hover{

    background:var(--vivesol-soft-surface);
    color:inherit;
}

.vivesol-arrow.prev{

    left:15px;
}

.vivesol-arrow.next{

    right:15px;
}

.vivesol-arrow:hover{

    transform:translateY(-50%) scale(1.05);
}

@media(max-width:768px){

    .vivesol-slide img{

        height:220px;
    }

    .vivesol-price{

        font-size:22px;
    }
}

/*Destacado*/
.vivesol-badge{

    display:inline-block;
    margin-bottom:.5rem;
    font-size:1.1rem;
    font-weight:700;
    letter-spacing:.02em;
}

/*Focus*/
.vivesol-button:focus,
.vivesol-popup-link:focus,
.vivesol-featured-btn:focus,
.vivesol-contact-form button:focus{

    outline:2px solid var(--vivesol-focus-ring);
    outline-offset:2px;
}

/* =========================
   AGENTES PUBLICOS
========================= */

.vivesol-public-agents {
    box-sizing: border-box;
    color: inherit;
}

.vivesol-public-agents * {
    box-sizing: border-box;
}

.vivesol-public-agents-grid {
    display: grid;
    gap: 24px;
    margin: 32px 0;
}

.vivesol-public-agents-cols-1 {
    grid-template-columns: 1fr;
}

.vivesol-public-agents-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.vivesol-public-agents-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.vivesol-public-agents-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.vivesol-public-agent-card {
    background: var(--vivesol-surface);
    color: inherit;
    border: 1px solid var(--vivesol-border);
    border-radius: 16px;
    padding: 24px;
    text-align: center;
    box-shadow: 0 6px 18px rgba(0,0,0,0.07);
    transition: all 0.25s ease;
}

.vivesol-public-agent-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 30px rgba(0,0,0,0.12);
}

.vivesol-public-agent-photo {
    width: 128px;
    height: 128px;
    margin: 0 auto 18px;
    border-radius: 50%;
    overflow: hidden;
    background: var(--vivesol-soft-surface);
    border: 4px solid var(--vivesol-surface);
    box-shadow: 0 0 0 2px var(--vivesol-primary);
}

.vivesol-public-agent-photo img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.vivesol-public-agent-name {
    margin: 0 0 6px;
    font-size: 21px;
    font-weight: 700;
    color: inherit;
}

.vivesol-public-agent-position {
    margin: 0 0 18px;
    color: var(--vivesol-text-muted);
    font-size: 15px;
}

.vivesol-public-agent-contact {
    display: flex;
    flex-direction: column;
    gap: 9px;
    margin-top: 16px;
}

.vivesol-public-agent-contact a {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: 7px;
    color: inherit;
    text-decoration: none !important;
    font-size: 15px;
    line-height: 1.4;
    word-break: break-word;
}

.vivesol-public-agent-contact a:hover {
    color: var(--vivesol-primary);
    text-decoration: none !important;
}

.vivesol-public-agent-contact a:focus {
    outline: 2px solid var(--vivesol-focus-ring);
    outline-offset: 3px;
    border-radius: 6px;
}

.vivesol-public-agents-empty {
    padding: 18px;
    background: var(--vivesol-soft-surface);
    border: 1px solid var(--vivesol-border);
    border-radius: 10px;
    text-align: center;
    color: inherit;
}

/* Responsive agentes públicos */

@media (max-width: 900px) {
    .vivesol-public-agents-cols-3,
    .vivesol-public-agents-cols-4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    .vivesol-public-agents-grid {
        grid-template-columns: 1fr;
    }

    .vivesol-public-agent-card {
        padding: 20px;
    }

    .vivesol-public-agent-photo {
        width: 112px;
        height: 112px;
    }

    .vivesol-public-agent-name {
        font-size: 19px;
    }
}

/* =========================
   INMUEBLE CERRADO
========================= */

.vivesol-listing-closed{
    max-width:720px;
    margin:60px auto;
    padding:42px 32px;
    border:1px solid #e2e5e8;
    border-top:4px solid var(--vivesol-primary);
    border-radius:14px;
    background:#fff;
    box-shadow:0 8px 28px rgba(0,0,0,.07);
    text-align:center;
}

.vivesol-listing-closed h1{
    margin:0;
    color:#1d2327;
    font-size:28px;
    line-height:1.25;
}

.vivesol-listing-closed p{
    margin:12px 0 0;
    color:#646970;
    font-size:16px;
    line-height:1.6;
}

@media (max-width:782px){

    .vivesol-listing-closed{
        margin:32px 16px;
        padding:30px 20px;
    }

    .vivesol-listing-closed h1{
        font-size:23px;
    }

    .vivesol-listing-closed p{
        font-size:14px;
    }
}
.vivesol-hidden-field {
    display: none;
}
