: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);
}

.nym-grid,
.nym-card,
.nym-filters,
.nym-pagination,
.nym-single-listing,
.vivesol-agency,
.vivesol-featured-wrapper {
    box-sizing: border-box;
    color: inherit;
}

.nym-grid *,
.nym-card *,
.nym-filters *,
.nym-pagination *,
.nym-single-listing *,
.vivesol-agency *,
.vivesol-featured-wrapper * {
    box-sizing: border-box;
}

#nym-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 */
.nym-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);
}

.nym-popup-link:hover {
    opacity: 0.92;
    text-decoration: none !important;
}

.nym-popup-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block; /* 👈 evita solapes */
}

/* BOTÓN A LA DERECHA popup*/
.nym-popup-footer {
    display: flex;
    justify-content: flex-end;
}

/*Burbuja precio mapa*/
.nym-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;
}

.nym-price-bubble.office {
    background: #e74c3c;
    color: #fff;
    border: none;
}

/* =========================
   BRANDING GLOBAL
========================= */
#nym-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);
}

#nym-branding a{
    color: inherit;
    text-decoration: none !important;
    font-weight: 600;
}

/* =========================
   ADMIN INPUTS
========================= */
#nym_meta input[type="text"],
#nym_meta input[type="number"],
#nym_meta select {
    width: 100%;
    padding: 8px;
    margin-top: 5px;
    border-radius: 6px;
    border: 1px solid #dcdcde;
}

/* =========================
   NUEVO LAYOUT ADMIN
========================= */

.nym-admin-wrapper {
    display: flex;
    gap: 25px;
    align-items: flex-start;
}

.nym-admin-left {
    flex: 1;
    min-width: 0;
}

.nym-admin-right {
    width: 260px;
    flex-shrink: 0;
}

.nym-admin-ad {
    position: sticky;
    top: 20px;
}

.nym-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
========================= */

.nym-row {
    display: flex;
    gap: 15px;
    margin-bottom: 15px;
}

.nym-col {
    flex: 1;
}

.nym-col label {
    display: block;
    margin-bottom: 5px;
    font-weight: 600;
}

/* =========================
   URL EXTERNA
========================= */

.nym-url-row {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
}

.nym-url-check {
    display: flex;
    align-items: center;
    gap: 5px;
    white-space: nowrap;
    margin-top: 22px;
}

.nym-url-disabled {
    background: #f5f5f5 !important;
    opacity: 0.7;
    cursor: not-allowed;
}

/* =========================
   PREVIEW IMAGENES
========================= */

.nym-gallery-preview {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 12px;
}

.nym-gallery-preview img {
    width: 90px;
    height: 90px;
    object-fit: cover;
    border-radius: 8px;
    border: 1px solid #ddd;
    background: #fff;
    display: block;
}

/* =========================
   ADMIN MAPA
========================= */
#nym-admin-map {
    width: 100%;
    height: 300px;
    margin-top: 15px;
    border-radius: 8px;
    border: 1px solid #ddd;
}

/* Botón admin */
#nym_meta button {
    transition: 0.2s ease;
}

#nym_meta button:hover {
    opacity: 0.9;
}

/* =========================
   CUADRICULA PUBLICACIONES
========================= */
.nym-grid {
    display: grid;
    gap: 20px;
    margin-top: 20px;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    justify-content: center;
}

.nym-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;
}

.nym-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(0,0,0,0.12);
}

/* =========================
   IMAGEN TARJETA INMUEBLE
========================= */

.nym-card-image {
    width: 100%;
    height: 200px;
    object-fit: cover;
    display: block;
    border-radius: 10px;
    margin-bottom: 12px;
}

/* efecto zoom elegante */

.nym-card:hover .nym-card-image img{
    transform:scale(1.06);
}

.nym-title {
    font-size: 16px;
    margin: 0 0 10px 0;
}

.nym-price {
    font-size: 20px;
    font-weight: 700;
    margin: 6px 0 8px;
}

/*Boton listado*/
.nym-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;
}

.nym-button:hover {
    opacity: 0.92;
    text-decoration: none !important;
}

.nym-card-body {
    padding: 14px;
    display: flex;
    flex-direction: column;
}

/* =========================
   FILTROS LISTADO
========================= */
.nym-filters {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 12px;
    margin: 25px auto;
    max-width: 1100px;
}

/* Selects y botón */

.nym-filters select,
.nym-filters button {
    padding: 10px 12px;
    border-radius: 8px;
    font-size: 14px;
    min-width: 140px;
}

.nym-filters select {
    background: var(--vivesol-surface);
    color: inherit;
    border: 1px solid var(--vivesol-border);
}

.nym-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;
}

.nym-filters button:hover {
    opacity: var(--vivesol-hover-opacity);
}

/* =========================
   POPUP INMOBILIARIO
========================= */
.nym-popup-image {
    width: 100%;
    height: 160px;
    overflow: hidden;
    border-radius: 8px;
    margin-bottom: 10px;
}

.nym-popup-price {
    font-size: 19px;
    font-weight: bold;
    color: inherit;
    margin: 8px 0;
}

.nym-popup-meta {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin: 8px 0;
    font-size: 13px;
    color: #555;
}

.nym-popup-meta span {
    background: #f5f5f5;
    padding: 4px 8px;
    border-radius: 6px;
}

.nym-popup-type {
    margin-top: 6px;
    font-size: 13px;
    color: #555;
    font-weight: 500;
}

/*DESTACADO*/
.nym-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
========================= */

.nym-pagination{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:8px;
    margin-top:45px;
    flex-wrap:wrap;
	margin-bottom: 60px;
}

.nym-pagination a,
.nym-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;
}

.nym-pagination a{
    backdrop-filter: blur(5px);
}

.nym-pagination a:hover{
    background: var(--vivesol-primary);
    color:#fff;
    border-color: transparent;
    transform: translateY(-2px);
}

.nym-pagination .current{
    background:var(--vivesol-primary);
    color:var(--wp--preset--color--base, #fff);
    border-color:transparent;
    font-weight:600;
}

.nym-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) {

    .nym-admin-wrapper {
        flex-direction: column;
    }

    .nym-admin-right {
        width: 100%;
    }

    .nym-admin-ad {
        position: relative;
        top: 0;
    }
}

@media (max-width: 768px) {

    #nym-map {
        height: 420px;
    }

    .nym-grid {
        grid-template-columns: 1fr;
    }

    .nym-card {
        padding: 14px;
    }

    .nym-title {
        font-size: 15px;
    }

    .nym-popup-price {
        font-size: 16px;
    }

    .leaflet-popup-content {
        min-width: 180px;
        max-width: 220px;
    }

    .nym-row {
        flex-direction: column;
        gap: 0;
    }
}

/* =========================
   FIX CHECKBOX BACKEND
========================= */
#nym_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 */

.nym-checkbox-label,
.nym-checkbox-inline{
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

/* =========================
   SINGLE PROPERTY PAGE
========================= */

.nym-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);
}

.nym-single-layout{
    display:grid;
    grid-template-columns:minmax(0, 1.15fr) minmax(320px, 0.85fr);
    gap:30px;
    align-items:start;
}

.nym-single-layout.no-gallery{
    grid-template-columns:1fr;
    max-width:900px;
}

.nym-single-gallery,
.nym-single-content{
    min-width:0;
}

/* ✅ QUITAMOS sticky para evitar solapes */
.nym-single-gallery{
    position:relative;
    top:0;
    padding:20px 0 20px 20px;
}

/* Imagen principal estable */
.nym-single-main-image{
    width:100%;
    height:clamp(280px, 38vw, 460px);
    overflow:hidden;
    border-radius:12px;
    background:var(--vivesol-soft-surface);
	position:relative;
}

.nym-single-main-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;

    aspect-ratio: 4 / 3;   /* ✅ estabiliza proporción */
}

/* =========================
   GALERÍA CON FLECHAS
========================= */

.nym-single-thumbs-wrap{
    display:flex;
    align-items:center;
    gap:10px;
    margin-top:12px;
}

.nym-single-thumbs{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:10px;
    flex:1;
	display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}

.nym-single-thumbs .nym-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;
}

.nym-single-thumbs .nym-thumb:hover{
    opacity:1;
    transform:scale(1.02);
    border-color:var(--vivesol-primary);
	background:var(--vivesol-soft-surface);
}

.nym-single-thumbs img {
    width: 100%;
    height: 70px;
    object-fit: cover;
}

.nym-single-thumbs .nym-thumb.is-active{
    opacity:1;
    border-color:var(--vivesol-primary);
    box-shadow:0 0 0 2px rgba(30,115,190,.15);
}

.nym-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 */
.nym-single-thumbs .nym-thumb {
    display: none;
}
/*contador imagenes*/
.nym-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;
}
.nym-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;
}

.nym-image-zoom:hover{
    background:var(--vivesol-soft-surface);
    color:#1e73be;
}


/* Lightbox */
.nym-lightbox{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.88);
    display:none;
    align-items:center;
    justify-content:center;
    z-index:9999;
    padding:20px;
}

.nym-lightbox.is-open{
    display:flex;
}

.nym-lightbox img{
    max-width:95vw;
    max-height:90vh;
    border-radius:12px;
    display:block;
}

.nym-lightbox-close{
    position:absolute;
    top:20px;
    right:20px;
    width:44px;
    height:44px;
    border:none;
    border-radius:50%;
    background:#fff;
    cursor:pointer;
    font-size:28px;
    line-height:1;
}

.nym-single-content{
    padding:30px 30px 30px 0;
    background:transparent;
}

.nym-single-top{
    display:flex;
    gap:10px;
    margin-bottom:20px;
    flex-wrap:wrap;
}

.nym-single-featured{
    background:#fff3cd;
    color:#856404;
    padding:8px 14px;
    border-radius:999px;
    font-size:13px;
    font-weight:600;
}

.nym-single-operation{
    background:#e8f2ff;
    color:#1e73be;
    padding:8px 14px;
    border-radius:999px;
    font-size:13px;
    font-weight:600;
}

.nym-single-price{
    font-size:36px;
    font-weight:700;
    color:inherit;
    margin-bottom:25px;
}

.nym-single-meta{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    margin-bottom:25px;
}

.nym-single-meta span{
    background:var(--vivesol-soft-surface);
    padding:10px 14px;
    border-radius:8px;
    font-size:14px;
}

.nym-single-description{
    margin-top:20px;
    font-size:15px;
    line-height:1.6;
    color:inherit;
    background:var(--vivesol-soft-surface);
    padding:15px;
    border-radius:10px;
}

.nym-single-phone{
    font-size:20px;
    font-weight:600;
    margin:25px 0;
}

.nym-single-actions{
    margin-bottom:15px;
}

.nym-single-contact{
    margin-top:20px;
}

.nym-single-contact .nym-button{
    width:100%;
    text-align:center;
    padding:14px;
    font-size:16px;
    font-weight:600;
}

.nym-single-contact .nym-button:hover{
    transform:translateY(-1px);
}

/* =========================
   RESPONSIVE FICHA INMUEBLE
========================= */
@media (max-width:900px){

    /* Layout general */
    .nym-single-layout{
        grid-template-columns:1fr;
        gap:20px;
    }

    .nym-single-gallery{
        padding:20px 20px 0 20px;
    }

    .nym-single-main-image{
        height:280px;
    }

    .nym-single-content{
        padding:20px;
    }

    .nym-single-price{
        font-size:30px;
    }

    /* GALERÍA (flechas) */
    .nym-single-thumbs-wrap{
        gap:8px;
    }

    .nym-thumbs-arrow{
        width:36px;
        height:36px;
        font-size:22px;
    }

    .nym-single-thumbs{
        gap:8px;
    }

    .nym-single-thumbs .nym-thumb{
        height:58px;
    }

}

/* =========================
   enlace simulador hipotecas
========================= */
.nym-single-mortgage{
    margin-bottom:20px;
}

.nym-mortgage-link{
    color:inherit;
    font-weight:600;
    text-decoration:none !important;
}

.nym-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 */
}

#nym-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*/
.nym-button:focus,
.nym-popup-link:focus,
.vivesol-featured-btn:focus,
.vivesol-contact-form button:focus{

    outline:2px solid var(--vivesol-focus-ring);
    outline-offset:2px;
}