/* ==========================================================================
   BENER · FICHA DE PROPIEDAD — SKIN
   Overrides sobre el HTML servido por ficha.amaira.com.ar
   Todo scopeado a body.fichaama para no afectar el resto del sitio.
   ========================================================================== */

/* --------------------------------------------------------------------------
   0. VARIABLES + RESET DE BASE
   -------------------------------------------------------------------------- */
body.fichaama {
    --fx-rojo: #d1331d;
    --fx-rojo-dark: #a82715;
    --fx-rojo-soft: rgba(209, 51, 29, 0.08);
    --fx-crema: #faf7f2;
    --fx-crema-2: #f2ede5;
    --fx-negro: #1a1a1a;
    --fx-gris-900: #1a1a1a;
    --fx-gris-700: #3a3a3a;
    --fx-gris-600: #555;
    --fx-gris-500: #6b6b6b;
    --fx-gris-400: #8a8a8a;
    --fx-gris-300: #d6d1c7;
    --fx-gris-200: #ebe6dc;
    --fx-gris-100: #f2ede5;
    --fx-border: 1px solid #e5dfd3;
    --fx-shadow-sm: 0 1px 3px rgba(26,26,26,0.05);
    --fx-shadow-md: 0 4px 16px rgba(26,26,26,0.08);
    --fx-shadow-lg: 0 12px 40px rgba(26,26,26,0.12);
    --fx-radius: 12px;
    --fx-radius-sm: 8px;

    background: var(--fx-crema) !important;
    font-family: 'DM Sans', sans-serif !important;
    color: var(--fx-gris-900) !important;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-size: 15px;
    line-height: 1.55;
    /* El header de Bener es fixed (120px de alto). Forzamos el padding-top 
       aquí porque el CSS externo de Amaira (ficha.css) pisa el del header-ajax. */
    padding-top: 120px !important;
}

@media (max-width: 1100px) {
    body.fichaama { padding-top: 110px !important; }
}
@media (max-width: 768px) {
    body.fichaama { padding-top: 100px !important; }
}

body.fichaama *,
body.fichaama *::before,
body.fichaama *::after {
    box-sizing: border-box;
}

body.fichaama #general {
    font-family: 'DM Sans', sans-serif;
}
/* NOTA: NO usamos "#general *" porque eso pisaría el font-family: FontAwesome 
   de los <i class="fa">, rompiendo los íconos. En su lugar, targeteamos 
   elementos específicos que sabemos que tienen fonts legacy (Montserrat/Roboto). */
body.fichaama #general h1,
body.fichaama #general h2,
body.fichaama #general h3,
body.fichaama #general h4,
body.fichaama #general h5,
body.fichaama #general p,
body.fichaama #general span,
body.fichaama #general a,
body.fichaama #general li,
body.fichaama #general strong,
body.fichaama #general em,
body.fichaama #general div,
body.fichaama #general button,
body.fichaama #general input,
body.fichaama #general textarea {
    font-family: 'DM Sans', sans-serif;
}
/* Excepciones: íconos y títulos Fraunces */
body.fichaama #general .fa,
body.fichaama #general i[class*="fa-"],
body.fichaama #general i.fa {
    font-family: 'FontAwesome' !important;
}

/* Matar franjas rotadas "Retasada / Promoción / A Estrenar" — estética vintage */
body.fichaama .franjarenta::before,
body.fichaama .franjapromo::before,
body.fichaama .franjaestrenar::before,
body.fichaama .franjacimas {
    display: none !important;
}

/* --------------------------------------------------------------------------
   1. CONTENEDOR PRINCIPAL
   -------------------------------------------------------------------------- */
body.fichaama #general.generalficha {
    background: var(--fx-crema);
    max-width: 1280px;
    margin: 0 auto;
    padding: 40px 30px 80px;
}

body.fichaama #general .cont {
    max-width: 100%;
    width: 100%;
    padding: 0;
    margin: 0;
}

body.fichaama #general .cbi {
    clear: both;
    height: 0;
}

/* --------------------------------------------------------------------------
   2. BARRA DE UBICACIÓN (#cab) — OCULTA
   La info (operación · ciudad · barrio · dirección · código) ya aparece
   en el hero (#tit), no hace falta duplicarla arriba.
   -------------------------------------------------------------------------- */
body.fichaama #cab {
    display: none !important;
}


/* --------------------------------------------------------------------------
   3. HERO DE LA FICHA (#tit) — título, precio, íconos
   -------------------------------------------------------------------------- */
body.fichaama #tit {
    background: #fff;
    border-radius: var(--fx-radius);
    border: var(--fx-border);
    padding: 36px 40px;
    margin-bottom: 24px;
    box-shadow: var(--fx-shadow-sm);
    position: relative;
    z-index: 1;
}

body.fichaama #tit .lepdiv {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    grid-template-rows: auto auto;
    gap: 24px 40px;
    grid-template-areas:
        "tipo precio"
        "icos icos";
}

body.fichaama #tit .tipoinfo { grid-area: tipo; }
body.fichaama #tit .precioinfo { grid-area: precio; }
body.fichaama #tit .icoinfo { grid-area: icos; }

body.fichaama #tit .col-tri {
    float: none;
    width: auto;
    padding: 0;
    margin: 0;
    border: 0;
}

/* Títulos */
body.fichaama #tit .tipoinfo h1 {
    font-family: 'DM Sans', sans-serif;
    font-size: 36px;
    font-weight: 600;
    line-height: 1.1;
    color: var(--fx-negro);
    margin: 0 0 10px;
    letter-spacing: -0.02em;
}
body.fichaama #tit .tipoinfo h1 .tipofic {
    font-family: 'DM Sans', sans-serif;
    font-weight: 600;
    color: var(--fx-negro);
    text-transform: none;
}
body.fichaama #tit .tipoinfo h1 .opefic {
    font-family: 'Fraunces', serif;
    font-style: italic;
    font-weight: 400;
    color: var(--fx-rojo) !important;
    text-transform: none;
    padding-left: 4px;
}

body.fichaama #tit .tipoinfo h2 {
    font-family: 'DM Sans', sans-serif;
    font-size: 17px;
    font-weight: 500;
    color: var(--fx-gris-700);
    margin: 0 0 6px;
    text-transform: none;
    letter-spacing: 0;
}
body.fichaama #tit .tipoinfo h2 span {
    color: var(--fx-gris-700);
}
body.fichaama #tit .tipoinfo h2 .barfic {
    color: var(--fx-negro);
    font-weight: 700;
}
body.fichaama #tit .tipoinfo h2 .locfic::after {
    content: " · ";
    color: var(--fx-gris-300);
    margin: 0 4px;
}

body.fichaama #tit .tipoinfo h3 {
    font-family: 'DM Sans', sans-serif;
    font-size: 15px;
    font-weight: 400;
    color: var(--fx-gris-500);
    margin: 0;
    text-transform: none;
    letter-spacing: 0;
}
body.fichaama #tit .tipoinfo h3 .calfic {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
body.fichaama #tit .tipoinfo h3 .calfic::before {
    content: "📍";
    font-size: 14px;
}

/* Precio */
body.fichaama #tit .precioinfo {
    text-align: right;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-end;
    gap: 10px;
}
body.fichaama #tit .preciogen {
    width: 100%;
}
body.fichaama #tit .preciogen h3 {
    font-family: 'DM Sans', sans-serif;
    margin: 0 0 8px;
    padding: 0;
    border: 0;
    background: transparent;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    line-height: 1.15;
    text-transform: none;
    letter-spacing: 0;
    color: var(--fx-negro);
}
body.fichaama #tit .preciogen h3 span {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--fx-rojo);
    order: -1;
    margin-bottom: 6px;
}
body.fichaama #tit .preciogen h3 strong {
    font-family: 'DM Sans', sans-serif;
    font-size: 36px;
    font-weight: 700;
    color: var(--fx-negro);
    letter-spacing: -0.02em;
}
body.fichaama #tit .preciogen h3 em {
    font-style: normal;
    font-size: 13px;
    font-weight: 500;
    color: var(--fx-gris-500);
    margin-top: 4px;
}
body.fichaama #tit .preciogen h3.precioalq em.perialq {
    font-size: 13px;
    font-weight: 500;
    color: var(--fx-gris-500);
    padding: 0;
    margin-top: 4px;
}
body.fichaama #tit .preciogen .financiacion {
    color: var(--fx-rojo);
    font-size: 11px;
    font-weight: 700;
    /* text-transform: uppercase; ← removido: queremos minúsculas */
}
body.fichaama #tit .preciogen h3.promocion { display: none; }
/* Si ambos precios están vacíos/$0, ocultar */
body.fichaama #tit .preciogen h3.precioalq[style*="display: none"] { display: none !important; }

/* Íconos de características */
body.fichaama #tit .icoinfo {
    border-top: var(--fx-border);
    padding-top: 24px;
    margin-top: 4px;
}
body.fichaama #tit .icoinfo ul {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    list-style: none;
    padding: 0;
    margin: 0;
    justify-content: flex-start;
}
body.fichaama #tit .icoinfo ul li {
    display: flex;
    align-items: center;
    gap: 10px;
    background: var(--fx-crema-2);
    padding: 10px 18px;
    border-radius: 50px;
    border: 1px solid transparent;
    list-style: none;
    float: none;
    width: auto;
    transition: background .2s, border-color .2s;
}
body.fichaama #tit .icoinfo ul li:hover {
    background: var(--fx-rojo-soft);
    border-color: rgba(209, 51, 29, 0.2);
}
body.fichaama #tit .icoinfo ul li svg {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    fill: var(--fx-rojo);
}
body.fichaama #tit .icoinfo ul li svg [fill]:not([fill="none"]) { fill: var(--fx-rojo) !important; }
body.fichaama #tit .icoinfo ul li svg [stroke]:not([stroke="none"]) { stroke: var(--fx-rojo) !important; }
body.fichaama #tit .icoinfo ul li strong {
    font-family: 'DM Sans', sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: var(--fx-negro);
    margin: 0;
}
body.fichaama #tit .icoinfo ul li span {
    font-family: 'DM Sans', sans-serif;
    font-size: 13px;
    color: var(--fx-gris-500);
    font-weight: 500;
}

/* Ocultar chips sin datos.
   Amaira renderiza TODOS los chips (Sup. terreno, Garage, Cocheras, etc.)
   aunque la propiedad no tenga ese dato. Detectamos los vacíos así:
   1) <strong> sin contenido (el dato numérico es lo que importa)
   2) style="display:none" inline (que Amaira a veces pone)
   Nota: usamos :has() — soportado en Chrome 105+, Safari 15.4+, Firefox 121+
   (cubre prácticamente todo el tráfico actual). */
body.fichaama #tit .icoinfo ul li:has(strong:empty) {
    display: none !important;
}
body.fichaama #tit .icoinfo ul li[style*="display: none"],
body.fichaama #tit .icoinfo ul li[style*="display:none"] {
    display: none !important;
}

/* Si TODOS los chips quedan ocultos (la propiedad no tiene datos de superficie
   cargados en Xintel — pasa con algunos deptos), el contenedor .icoinfo igual
   ocupa espacio por su border-top + padding-top, dejando un hueco con dos
   líneas finitas. Acá ocultamos el contenedor entero cuando NO hay ni un solo
   <strong> con contenido — así no queda el hueco. */
body.fichaama #tit .icoinfo:not(:has(ul li strong:not(:empty))) {
    display: none !important;
}

/* --------------------------------------------------------------------------
   4. GALERÍA DE FOTOS Y TABS (#ficha, .menuficha, .fichaimg)
   -------------------------------------------------------------------------- */
body.fichaama #ficha {
    background: transparent;
    padding: 0;
    border: 0;
    float: none;
    width: 100%;
}

body.fichaama #ficha .fichainfo {
    background: #fff;
    border-radius: var(--fx-radius);
    border: var(--fx-border);
    padding: 0;
    overflow: hidden;
    margin-bottom: 24px;
    box-shadow: var(--fx-shadow-sm);
}

/* Tabs (Fotos / Plano / PDF / Video / Tour / Street / Mapa) */
body.fichaama .menuficha {
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    padding: 14px 20px;
    margin: 0;
    gap: 6px;
    background: var(--fx-crema-2);
    border-bottom: var(--fx-border);
    align-items: center;
}
body.fichaama .menuficha li {
    float: none;
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    list-style: none;
}
body.fichaama .menuficha li a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 16px;
    font-family: 'DM Sans', sans-serif;
    font-size: 13px;
    font-weight: 600;
    color: var(--fx-gris-700);
    background: transparent;
    border-radius: 50px;
    text-decoration: none;
    text-transform: none;
    letter-spacing: 0;
    transition: background .2s, color .2s;
    border: 1px solid transparent;
}
body.fichaama .menuficha li a:hover {
    background: #fff;
    color: var(--fx-rojo);
    border-color: var(--fx-gris-300);
}
body.fichaama .menuficha li.activo a {
    background: var(--fx-rojo);
    color: #fff;
    border-color: var(--fx-rojo);
}
body.fichaama .menuficha li a .fa {
    font-size: 13px;
}
body.fichaama .menuficha li.infolin {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 14px;
    background: #fff;
    border: 1px solid #c8e6c9;
    border-radius: 50px;
    color: #2e7d32;
    font-size: 12px;
    font-weight: 600;
    margin-left: auto;
}
body.fichaama .menuficha li.infolin + li.infolin { margin-left: 6px; }
body.fichaama .menuficha li.infolin .fa { color: #2e7d32; }

/* ====================================================================
   GALERÍA DE FOTOS, PLANO, etc.
   
   IMPORTANTE: NO forzamos dimensiones en los slides/tracks/lists de Slick.
   Amaira lo maneja bien por su cuenta. Solo aplicamos estilos cosméticos
   (fondos, colores). Si forzamos alturas, Slick se descalibra y las 
   imágenes quedan recortadas o fuera de lugar.
   ==================================================================== */

/* Container común — solo fondo */
body.fichaama .fichacont {
    padding: 0;
    margin: 0;
    position: relative;
    background: var(--fx-gris-100);
}
body.fichaama .fichaimg {
    width: 100%;
    background: var(--fx-gris-100);
}

/* NUCLEAR: ocultar TODOS los spinners de carga de Amaira. */
body.fichaama .contcargaficha,
body.fichaama .cargaficha,
body.fichaama .fichacont .contcargaficha,
body.fichaama .fichacont .cargaficha,
body.fichaama #fic-fotos .contcargaficha,
body.fichaama #fic-plano .contcargaficha,
body.fichaama #fic-mapa .contcargaficha,
body.fichaama #fic-pdf .contcargaficha,
body.fichaama #fic-video .contcargaficha,
body.fichaama #fic-tour .contcargaficha,
body.fichaama #fic-stview .contcargaficha {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    height: 0 !important;
    width: 0 !important;
    overflow: hidden !important;
    position: absolute !important;
    pointer-events: none !important;
}

/* ============================================================================
   FIX DEFINITIVO: #fic-mapa por default está SIN style="display: none" en el
   HTML de Amaira (bug de ellos), por eso aparece como bloque blanco gigante
   debajo de las fotos. Lo ocultamos siempre — solo se muestra cuando el JS
   activa el tab (al clickear "Mapa", el JS le agrega display:block inline).
   ============================================================================ */
body.fichaama #fic-mapa:not([style*="display: block"]):not([style*="display:block"]) {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Cuando el tab mapa SÍ está activo (tiene display:block inline) → mostrar bien */
body.fichaama #fic-mapa[style*="display: block"],
body.fichaama #fic-mapa[style*="display:block"] {
    display: block !important;
    min-height: 600px !important;
    height: 600px !important;
}

/* Ocultar bloque de impresión (queda visible en pantalla a veces) */
body.fichaama .fichaimpr,
body.fichaama .fichaimgimp,
body.fichaama .fichamapaimp,
body.fichaama #mapafichaimp {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    overflow: hidden !important;
}

/* Ocultar calendario de disponibilidad si no hay datos */
body.fichaama #disponiblidad:not([style*="display: block"]) {
    display: none !important;
}

/* Ocultar templates de calendario que no se deberían ver */
body.fichaama script[type="html/template"] {
    display: none !important;
}

/* Ocultar cualquier .fichacont que tenga style="display:none" inline */
body.fichaama .fichacont[style*="display: none"],
body.fichaama .fichacont[style*="display:none"] {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
}

/* === FOTOS y PLANO usan la nueva galería .bener-gallery (custom) === */
body.fichaama #fic-fotos {
    background: var(--fx-crema);
}
body.fichaama #fic-plano {
    background: #fff;
}
body.fichaama #fic-pdf {
    background: #fff;
}

/* APPROACH EXTERNAL GALLERY:
   La galería propia vive en un wrapper #bener-gallery-fotos / #bener-gallery-plano
   insertado DESPUÉS del .fichacont original. Ocultamos completamente los .fichacont
   originales de fotos y plano (el carrusel de Amaira) y mostramos solo nuestras
   galerías externas. */

/* Ocultar contenido original de Fotos y Plano (Slick de Amaira) */
body.fichaama #fic-fotos,
body.fichaama #fic-plano {
    display: none !important;
}

/* Cuando hay una galería externa al lado, mostrarla en su lugar */
body.fichaama .bener-external-gallery {
    width: 100%;
    background: var(--fx-crema);
}
body.fichaama .bener-external-gallery[data-tipo="plano"] {
    background: #fff;
}

/* La galería en sí */
body.fichaama .bener-gallery {
    position: relative;
    width: 100%;
    height: 520px;
    overflow: hidden;
    user-select: none;
    outline: none;
}
body.fichaama .bener-gallery-stage {
    position: relative;
    width: 100%;
    height: 100%;
}
body.fichaama .bener-slide {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center center;
    opacity: 0;
    transition: opacity 0.4s ease-in-out;
    pointer-events: none;
    background: inherit;
}
body.fichaama .bener-slide.is-active {
    opacity: 1;
    pointer-events: auto;
    z-index: 1;
}
body.fichaama .bener-gallery[data-fit="cover"] .bener-slide {
    object-fit: cover;
}

/* Flechas */
body.fichaama .bener-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(255,255,255,0.95);
    border: 0;
    cursor: pointer;
    z-index: 5;
    box-shadow: 0 2px 12px rgba(0,0,0,0.25);
    font-size: 28px;
    line-height: 1;
    color: var(--fx-negro);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s, color 0.2s;
    padding: 0;
    font-family: inherit;
}
body.fichaama .bener-arrow:hover {
    background: var(--fx-rojo);
    color: #fff;
}
body.fichaama .bener-prev { left: 16px; }
body.fichaama .bener-next { right: 16px; }

/* Dots */
body.fichaama .bener-dots {
    position: absolute;
    bottom: 16px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 6px;
    z-index: 5;
}
body.fichaama .bener-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 0;
    background: rgba(255,255,255,0.6);
    cursor: pointer;
    padding: 0;
    transition: background 0.2s, transform 0.2s;
    box-shadow: 0 1px 3px rgba(0,0,0,0.4);
}
body.fichaama .bener-dot:hover {
    background: rgba(255,255,255,0.9);
}
body.fichaama .bener-dot.is-active {
    background: var(--fx-rojo);
    transform: scale(1.3);
}

/* Botón Ampliar (esquina inferior derecha) */
body.fichaama .bener-fullscreen {
    position: absolute;
    bottom: 16px;
    right: 16px;
    background: rgba(0,0,0,0.7);
    color: #fff;
    border: 0;
    padding: 8px 16px;
    border-radius: 50px;
    font-family: 'DM Sans', sans-serif;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    z-index: 5;
    transition: background 0.2s;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}
body.fichaama .bener-fullscreen:hover {
    background: var(--fx-rojo);
}

/* === LIGHTBOX === */
.bener-lightbox {
    position: fixed;
    inset: 0;
    background: rgba(10,10,10,0.97);
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    animation: bener-lb-fade-in 0.25s ease;
}
@keyframes bener-lb-fade-in {
    from { opacity: 0; }
    to { opacity: 1; }
}
.bener-lightbox-stage {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.bener-lightbox-slide {
    position: absolute;
    max-width: 92vw;
    max-height: 92vh;
    object-fit: contain;
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
}
.bener-lightbox-slide.is-active {
    opacity: 1;
    pointer-events: auto;
}
.bener-lightbox-close {
    position: fixed;
    top: 20px;
    right: 20px;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(255,255,255,0.95);
    color: #1a1a1a;
    border: 0;
    cursor: pointer;
    font-size: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 100000;
    box-shadow: 0 4px 16px rgba(0,0,0,0.4);
    transition: background 0.2s, color 0.2s, transform 0.2s;
}
.bener-lightbox-close:hover {
    background: #d1331d;
    color: #fff;
    transform: scale(1.05);
}
.bener-lightbox-arrow {
    position: fixed;
    top: 50%;
    transform: translateY(-50%);
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: rgba(255,255,255,0.95);
    color: #1a1a1a;
    border: 0;
    cursor: pointer;
    font-size: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 16px rgba(0,0,0,0.4);
    transition: background 0.2s, color 0.2s;
    z-index: 100000;
    line-height: 1;
    padding: 0;
}
.bener-lightbox-arrow:hover {
    background: #d1331d;
    color: #fff;
}
.bener-lightbox-prev { left: 24px; }
.bener-lightbox-next { right: 24px; }
.bener-lightbox-counter {
    position: fixed;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    color: #fff;
    background: rgba(0,0,0,0.6);
    padding: 8px 18px;
    border-radius: 50px;
    font-family: 'DM Sans', sans-serif;
    font-size: 13px;
    font-weight: 600;
    z-index: 100000;
}

/* Mobile responsive */
@media (max-width: 768px) {
    body.fichaama .bener-gallery {
        height: 380px;
    }
    body.fichaama .bener-arrow {
        width: 36px;
        height: 36px;
        font-size: 22px;
    }
    body.fichaama .bener-prev { left: 8px; }
    body.fichaama .bener-next { right: 8px; }
    .bener-lightbox-arrow { width: 40px; height: 40px; font-size: 24px; }
    .bener-lightbox-prev { left: 8px; }
    .bener-lightbox-next { right: 8px; }
}

/* Slick carousel — flechas siempre estables, sin scale en hover */
body.fichaama .slick-prev,
body.fichaama .slick-next {
    width: 44px !important;
    height: 44px !important;
    background: rgba(255,255,255,0.95) !important;
    border-radius: 50% !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.25) !important;
    z-index: 10 !important;
    transition: background .2s, opacity .2s !important;
    transform: translateY(-50%) !important;  /* posicionamiento estable, NO scale */
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    top: 50% !important;
    opacity: 0.9 !important;
}
body.fichaama .slick-prev { left: 16px !important; }
body.fichaama .slick-next { right: 16px !important; }
body.fichaama .slick-prev:hover,
body.fichaama .slick-next:hover {
    background: var(--fx-rojo) !important;
    transform: translateY(-50%) !important;  /* mantener Y centrado, no escalar */
    opacity: 1 !important;
}
body.fichaama .slick-prev:focus,
body.fichaama .slick-next:focus {
    background: rgba(255,255,255,0.95) !important;
    transform: translateY(-50%) !important;
}
body.fichaama .slick-prev::before,
body.fichaama .slick-next::before {
    font-family: 'slick', 'FontAwesome', sans-serif !important;
    color: var(--fx-negro) !important;
    font-size: 18px !important;
    opacity: 1 !important;
    transition: color .2s !important;
    line-height: 1 !important;
}
body.fichaama .slick-prev:hover::before,
body.fichaama .slick-next:hover::before {
    color: #fff !important;
}
body.fichaama .slick-dots {
    bottom: 16px !important;
    z-index: 10;
}
body.fichaama .slick-dots li button::before {
    font-size: 10px !important;
    color: #fff !important;
    opacity: 0.5 !important;
}
body.fichaama .slick-dots li.slick-active button::before {
    color: var(--fx-rojo) !important;
    opacity: 1 !important;
}

/* Spinner "Cargando" */
body.fichaama .contcargaficha {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 5;
}
body.fichaama .cargaficha {
    width: 48px;
    height: 48px;
    border: 3px solid rgba(255,255,255,0.2);
    border-top-color: var(--fx-rojo);
    border-radius: 50%;
    animation: fx-spin 0.8s linear infinite;
}
@keyframes fx-spin {
    to { transform: rotate(360deg); }
}

/* "Ampliar fotos" botón inferior */
body.fichaama .verplano {
    position: absolute;
    bottom: 16px;
    left: 50%;
    transform: translateX(-50%);
    width: auto !important;
    z-index: 11;
}
body.fichaama .verplano span {
    display: inline-block;
    background: rgba(0,0,0,0.7) !important;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    color: #fff !important;
    padding: 8px 18px !important;
    border-radius: 50px !important;
    font-family: 'DM Sans', sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    box-shadow: 0 4px 16px rgba(0,0,0,0.3) !important;
    transition: background .2s !important;
}
body.fichaama .verplano span:hover {
    background: var(--fx-rojo) !important;
}

/* ============================================================================
   MODO FULLSCREEN: cuando se hace click en "Ampliar fotos", Amaira agrega 
   .fullplano al .fichacont, lo expande a viewport completo y necesita 
   estilos limpios.
   ============================================================================ */
body.fichaama .fichacont.fullplano,
body.fichaama #fic-plano.fullplano,
body.fichaama #fic-fotos.fullplano,
body.fichaama #fic-pdf.fullplano,
body.fichaama #fic-tour.fullplano {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    z-index: 99999 !important;
    background: rgba(10,10,10,0.97) !important;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
}

/* Imagen en fullscreen: ocupa toda la pantalla con contain */
body.fichaama .fichacont.fullplano .fichaimg,
body.fichaama .fullplano .fichaimg {
    height: 100vh !important;
    background: transparent !important;
}
body.fichaama .fichacont.fullplano .fichaimg .sliprop,
body.fichaama .fullplano .fichaimg .sliprop {
    height: 100vh !important;
    min-height: 100vh !important;
    background-color: transparent !important;
}

/* Botón "Cerrar" en fullscreen — Amaira lo renderiza como .close_r o como
   botón nativo. Lo estilizamos para que coincida con la identidad Bener. */
body.fichaama .fichacont.fullplano .verplano,
body.fichaama .fullplano .verplano,
body.fichaama .fichacont.fullplano .close_r,
body.fichaama .fullplano .close_r {
    position: fixed !important;
    top: 20px !important;
    right: 20px !important;
    bottom: auto !important;
    left: auto !important;
    transform: none !important;
    z-index: 100000 !important;
    opacity: 1 !important;
    pointer-events: auto !important;
}

/* El .close_r de Amaira es un span con el texto "Cerrar" o un X */
body.fichaama .fichacont.fullplano .close_r,
body.fichaama .fullplano .close_r {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,0.95) !important;
    color: var(--fx-negro) !important;
    padding: 10px 20px !important;
    font-family: 'DM Sans', sans-serif !important;
    font-weight: 700 !important;
    font-size: 12px !important;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-radius: 50px !important;
    cursor: pointer !important;
    line-height: 1 !important;
    height: auto !important;
    width: auto !important;
    margin: 0 !important;
    box-shadow: 0 4px 16px rgba(0,0,0,0.4) !important;
    transition: background .2s, color .2s !important;
    border: 0 !important;
    float: none !important;
}
body.fichaama .fichacont.fullplano .close_r:hover,
body.fichaama .fullplano .close_r:hover {
    background: var(--fx-rojo) !important;
    color: #fff !important;
}

/* Flechas en fullscreen — más grandes y bien estilizadas (no cajas grises) */
body.fichaama .fichacont.fullplano .slick-prev,
body.fichaama .fullplano .slick-prev {
    left: 24px !important;
    width: 56px !important;
    height: 56px !important;
    background: rgba(255,255,255,0.95) !important;
    border-radius: 50% !important;
    box-shadow: 0 4px 16px rgba(0,0,0,0.4) !important;
    border: 0 !important;
    transform: translateY(-50%) !important;
    top: 50% !important;
    opacity: 1 !important;
}
body.fichaama .fichacont.fullplano .slick-next,
body.fichaama .fullplano .slick-next {
    right: 24px !important;
    width: 56px !important;
    height: 56px !important;
    background: rgba(255,255,255,0.95) !important;
    border-radius: 50% !important;
    box-shadow: 0 4px 16px rgba(0,0,0,0.4) !important;
    border: 0 !important;
    transform: translateY(-50%) !important;
    top: 50% !important;
    opacity: 1 !important;
}
body.fichaama .fichacont.fullplano .slick-prev:hover,
body.fichaama .fullplano .slick-prev:hover,
body.fichaama .fichacont.fullplano .slick-next:hover,
body.fichaama .fullplano .slick-next:hover {
    background: var(--fx-rojo) !important;
    transform: translateY(-50%) !important;
}
body.fichaama .fichacont.fullplano .slick-prev::before,
body.fichaama .fullplano .slick-prev::before,
body.fichaama .fichacont.fullplano .slick-next::before,
body.fichaama .fullplano .slick-next::before {
    color: var(--fx-negro) !important;
    font-size: 22px !important;
    line-height: 1 !important;
    opacity: 1 !important;
    font-family: 'slick', 'FontAwesome', sans-serif !important;
}
body.fichaama .fichacont.fullplano .slick-prev:hover::before,
body.fichaama .fullplano .slick-prev:hover::before,
body.fichaama .fichacont.fullplano .slick-next:hover::before,
body.fichaama .fullplano .slick-next:hover::before {
    color: #fff !important;
}

/* Dots en fullscreen — blanco visible sobre fondo oscuro */
body.fichaama .fichacont.fullplano .slick-dots,
body.fichaama .fullplano .slick-dots {
    bottom: 30px !important;
}
body.fichaama .fichacont.fullplano .slick-dots li button::before,
body.fichaama .fullplano .slick-dots li button::before {
    color: rgba(255,255,255,0.5) !important;
    font-size: 12px !important;
    opacity: 1 !important;
}
body.fichaama .fichacont.fullplano .slick-dots li.slick-active button::before,
body.fichaama .fullplano .slick-dots li.slick-active button::before {
    color: var(--fx-rojo) !important;
}

/* Mapa — reemplazamos el Leaflet roto de Amaira por un iframe de Google Maps */
body.fichaama #fic-mapa {
    min-height: 600px !important;
    height: 600px !important;
    background: var(--fx-gris-100) !important;
    position: relative !important;
    overflow: hidden !important;
    display: block !important;
    padding: 0 !important;
    margin: 0 !important;
}
body.fichaama #fic-mapa #mapaficha {
    width: 100% !important;
    height: 600px !important;
    min-height: 600px !important;
    position: relative !important;
    overflow: hidden !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    padding: 0 !important;
    margin: 0 !important;
}
/* El iframe de Google Maps inyectado por nuestro JS — MÁXIMA prioridad */
body.fichaama #fic-mapa iframe,
body.fichaama #fic-mapa iframe.bener-gmap,
body.fichaama iframe.bener-gmap {
    width: 100% !important;
    height: 600px !important;
    min-height: 600px !important;
    max-height: 600px !important;
    border: 0 !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: relative !important;
    z-index: 10 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
}
/* Ocultar el spinner cuando hay iframe ya cargado */
body.fichaama #fic-mapa:has(iframe.bener-gmap) .contcargaficha,
body.fichaama #fic-mapa:has(iframe) .contcargaficha {
    display: none !important;
}

/* Video YouTube y embeds (tour 360, street view) — responsive 16:9 */
body.fichaama #fic-video,
body.fichaama #fic-tour,
body.fichaama #fic-stview {
    background: #1a1a1a;
}
body.fichaama #fic-video iframe,
body.fichaama #fic-video video,
body.fichaama #fic-tour iframe,
body.fichaama #fic-stview iframe,
body.fichaama #fic-stview > div iframe {
    width: 100% !important;
    height: 520px !important;
    min-height: 520px !important;
    border: 0 !important;
    display: block;
    background: #000;
}

/* PDF embebido */
body.fichaama #fic-pdf embed,
body.fichaama #fic-pdf object,
body.fichaama #fic-pdf iframe {
    width: 100% !important;
    height: 520px !important;
    min-height: 520px !important;
    border: 0 !important;
    background: #fff;
}

/* --------------------------------------------------------------------------
   5. CARD DE CTAs "¿Te interesa esta propiedad?"
   
   Los 3 botones "Quiero..." van adentro de una card con título editorial,
   primer botón rojo como CTA principal, los otros outline, con íconos
   SVG masked (se tiñen con currentColor, siguen el color del texto).
   -------------------------------------------------------------------------- */
body.fichaama #general .btnscont {
    display: flex !important;
    flex-wrap: wrap;
    gap: 10px !important;
    margin: 0 0 24px !important;
    padding: 24px 28px !important;
    background: #fff !important;
    border: 1px solid var(--fx-gris-200) !important;
    border-radius: var(--fx-radius) !important;
    box-shadow: var(--fx-shadow-sm) !important;
    align-items: center;
    position: relative;
    text-align: left;
    width: 100%;
    float: none !important;
}

/* Título editorial "¿Te interesa esta propiedad?" */
body.fichaama #general .btnscont::before {
    content: "¿Te interesa esta propiedad?";
    display: block;
    width: 100%;
    font-family: 'Fraunces', serif;
    font-style: italic;
    font-weight: 500;
    font-size: 20px;
    color: var(--fx-negro);
    margin: 0 0 12px;
    letter-spacing: -0.01em;
}

/* Reset + estilo base de los 3 botones */
body.fichaama #general .btnscont a.quiero,
body.fichaama #general .btnscont .quiero {
    display: inline-flex !important;
    align-items: center;
    gap: 8px;
    padding: 11px 22px !important;
    font-family: 'DM Sans', sans-serif !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    text-decoration: none !important;
    border-radius: 50px !important;
    cursor: pointer;
    transition: all .2s;
    background-image: none !important;
    text-shadow: none !important;
    box-shadow: none !important;
    float: none !important;
    width: auto !important;
    height: auto !important;
    line-height: 1.2 !important;
    margin: 0 !important;
}

/* Primer botón: CTA primario ROJO SÓLIDO */
body.fichaama #general .btnscont a.quiero:nth-of-type(1),
body.fichaama #general .btnscont .quiero:nth-of-type(1) {
    background: var(--fx-rojo) !important;
    color: #fff !important;
    border: 2px solid var(--fx-rojo) !important;
}
body.fichaama #general .btnscont a.quiero:nth-of-type(1):hover,
body.fichaama #general .btnscont .quiero:nth-of-type(1):hover {
    background: var(--fx-rojo-dark) !important;
    border-color: var(--fx-rojo-dark) !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(209,51,29,0.25) !important;
}

/* Botones 2 y 3: outline (secundarios) */
body.fichaama #general .btnscont a.quiero:nth-of-type(2),
body.fichaama #general .btnscont .quiero:nth-of-type(2),
body.fichaama #general .btnscont a.quiero:nth-of-type(3),
body.fichaama #general .btnscont .quiero:nth-of-type(3) {
    background: #fff !important;
    color: var(--fx-negro) !important;
    border: 2px solid var(--fx-gris-300) !important;
}
body.fichaama #general .btnscont a.quiero:nth-of-type(2):hover,
body.fichaama #general .btnscont .quiero:nth-of-type(2):hover,
body.fichaama #general .btnscont a.quiero:nth-of-type(3):hover,
body.fichaama #general .btnscont .quiero:nth-of-type(3):hover {
    background: var(--fx-rojo) !important;
    color: #fff !important;
    border-color: var(--fx-rojo) !important;
    transform: translateY(-1px);
}

/* Íconos: usamos FontAwesome (ya cargado por Amaira) — más confiable que mask-image */
body.fichaama #general .btnscont a.quiero::before,
body.fichaama #general .btnscont .quiero::before {
    content: "" !important;
    display: inline-block !important;
    font-family: 'FontAwesome' !important;
    font-style: normal !important;
    font-weight: normal !important;
    font-variant: normal !important;
    text-transform: none !important;
    line-height: 1 !important;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-size: 14px !important;
    width: auto !important;
    height: auto !important;
    background: transparent !important;
    background-image: none !important;
    mask-image: none !important;
    -webkit-mask-image: none !important;
    color: inherit !important;
    flex-shrink: 0 !important;
    vertical-align: middle;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
}

/* Botón 1 "Quiero visitar" → ícono ojo (fa-eye) */
body.fichaama #general .btnscont a.quiero:nth-of-type(1)::before,
body.fichaama #general .btnscont .quiero:nth-of-type(1)::before {
    content: "\f06e" !important; /* fa-eye */
}

/* Botón 2 "Quiero que me llamen" → ícono teléfono (fa-phone) */
body.fichaama #general .btnscont a.quiero:nth-of-type(2)::before,
body.fichaama #general .btnscont .quiero:nth-of-type(2)::before {
    content: "\f095" !important; /* fa-phone */
}

/* Botón 3 "Quiero saber más" → ícono info (fa-info-circle) */
body.fichaama #general .btnscont a.quiero:nth-of-type(3)::before,
body.fichaama #general .btnscont .quiero:nth-of-type(3)::before {
    content: "\f05a" !important; /* fa-info-circle */
}

/* --------------------------------------------------------------------------
   6. LAYOUT PRINCIPAL: #ficha (galería + datos) + .contactocont (sidebar)
   
   Estructura real del HTML:
   #general > .cont > { #ficha, <style>, <style>, .contactocont }
   
   #ficha y .contactocont son HERMANOS, no padre-hijo. Hacemos grid en el
   .cont contenedor, ubicamos #ficha en col 1 (1fr) y .contactocont en col 2
   (ancho fijo), sticky para que acompañe el scroll.
   -------------------------------------------------------------------------- */
body.fichaama #general > .cont {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 28px;
    align-items: start;
    padding: 0;
    margin: 0;
    max-width: none;
    width: 100%;
    float: none;
}

/* #ficha ocupa toda la columna izquierda con su contenido normal */
body.fichaama #general > .cont > #ficha {
    grid-column: 1;
    min-width: 0;   /* clave: evita que imágenes desborden el grid */
    float: none !important;
    width: auto !important;
    padding: 0;
    margin: 0;
    display: block;
}

/* .contactocont es hermano de #ficha, lo anclamos a columna 2, fila 1 */
body.fichaama #general > .cont > .contactocont {
    grid-column: 2;
    grid-row: 1;
    position: sticky;
    top: 140px;
    align-self: start;
    float: none !important;
    width: 100% !important;
    max-width: none;
    padding: 0;
    margin: 0 !important;
    top: 140px;
    max-height: calc(100vh - 160px);
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--fx-gris-300) transparent;
}
body.fichaama #general > .cont > .contactocont::-webkit-scrollbar {
    width: 6px;
}
body.fichaama #general > .cont > .contactocont::-webkit-scrollbar-thumb {
    background: var(--fx-gris-300);
    border-radius: 3px;
}

/* Los <style> hermanos que Amaira inyecta no ocupan espacio visual */
body.fichaama #general > .cont > style {
    display: none !important;
}

/* --------------------------------------------------------------------------
   7. BLOQUES DE CONTENIDO (.infofic)
   -------------------------------------------------------------------------- */
body.fichaama .fichacarac {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* ORDEN VISUAL de los bloques (orden deseado por Bener):
   1. Descripción (infodesc)
   2. Detalles de la propiedad (infoficgen)
   3. Medidas (infomedid)
   4. Características (infocarac)
   5. Disponibilidad (calendario)
   6. Leyenda disponibilidad (infodisponib)
   
   Usamos order: porque .fichacarac es flex-column. Amaira sirve un orden
   distinto y esto lo reordena sin tocar HTML. */
body.fichaama .fichacarac .infodesc { order: 1; }
body.fichaama .fichacarac .infoficgen { order: 2; }
body.fichaama .fichacarac .infomedid { order: 3; }
body.fichaama .fichacarac .infocarac { order: 4; }
body.fichaama .fichacarac #disponiblidad { order: 5; }
body.fichaama .fichacarac .infodisponib { order: 6; }

body.fichaama .infofic {
    background: #fff;
    border-radius: var(--fx-radius);
    border: var(--fx-border);
    padding: 32px 36px;
    box-shadow: var(--fx-shadow-sm);
    float: none;
    width: 100%;
    margin: 0;
}

body.fichaama .infofic h4 {
    font-family: 'Fraunces', serif;
    font-size: 24px;
    font-weight: 500;
    font-style: italic;
    color: var(--fx-negro);
    margin: 0 0 20px;
    padding: 0 0 16px;
    border-bottom: 2px solid var(--fx-crema-2);
    position: relative;
    text-transform: none;
    letter-spacing: 0;
}
body.fichaama .infofic h4::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -2px;
    width: 40px;
    height: 2px;
    background: var(--fx-rojo);
}
body.fichaama .infofic h4 span {
    color: var(--fx-negro);
    background: transparent;
    padding: 0;
    border: 0;
}

/* 7.1 Descripción */
body.fichaama .infodesc .txtobs,
body.fichaama .infodesc .txtobs2 {
    font-family: 'DM Sans', sans-serif;
    font-size: 15px;
    line-height: 1.75;
    color: var(--fx-gris-700);
    margin: 0;
}
body.fichaama .infodesc .txtobs p,
body.fichaama .infodesc .txtobs2 p {
    margin: 0 0 14px;
}
body.fichaama .infodesc .txtobs p:last-child,
body.fichaama .infodesc .txtobs2 p:last-child {
    margin-bottom: 0;
}

/* Idioma ES/EN — Amaira muestra esto solo cuando hay traducción (por default 
   está oculto con style="display:none" inline). NO forzamos visibilidad. */
body.fichaama .idioma_obs {
    margin-top: 20px;
    gap: 8px;
}
body.fichaama .idioma_obs[style*="display: none"],
body.fichaama .idioma_obs[style*="display:none"] {
    display: none !important;
}
body.fichaama .idioma_en,
body.fichaama .idioma_es {
    background: var(--fx-crema-2) !important;
    border: 1px solid var(--fx-gris-300) !important;
    padding: 4px 8px !important;
    margin: 0 !important;
    border-radius: var(--fx-radius-sm) !important;
    box-shadow: none !important;
    cursor: pointer;
    transition: background .2s;
}
body.fichaama .idioma_en:hover,
body.fichaama .idioma_es:hover {
    background: var(--fx-rojo-soft) !important;
    border-color: var(--fx-rojo) !important;
}
body.fichaama .idioma_en img,
body.fichaama .idioma_es img {
    width: 24px !important;
    height: auto;
    display: block;
    margin: 0;
}

/* 7.2 Detalles de la propiedad (infoficgen)
   IMPORTANTE: Amaira pone border-bottom en cada <strong> y <span>. Los reseteamos. */
body.fichaama .infoficgen ul {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2px;
    list-style: none;
    padding: 0 !important;
    margin: 0 !important;
}
body.fichaama .infoficgen ul li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 12px 16px !important;
    background: var(--fx-crema) !important;
    border-radius: var(--fx-radius-sm) !important;
    border: 0 !important;
    border-bottom: 0 !important;
    list-style: none;
    float: none !important;
    width: auto !important;
    margin: 0 !important;
    font-size: 14px;
    box-shadow: none !important;
}
body.fichaama .infoficgen ul li:nth-child(even) {
    background: var(--fx-crema-2) !important;
}

/* Ocultar items vacíos — Amaira trae muchos items preformateados con 
   style="display:none" inline cuando no tienen datos. Por si nuestro CSS 
   los piso, los forzamos a quedar ocultos. */
body.fichaama .infoficgen ul li[style*="display: none"],
body.fichaama .infoficgen ul li[style*="display:none"] {
    display: none !important;
}
body.fichaama .infoficgen ul li:has(> span:empty) {
    display: none !important;
}
body.fichaama .infoficgen ul li strong,
body.fichaama .infoficgen ul li > strong {
    font-family: 'DM Sans', sans-serif !important;
    font-weight: 500 !important;
    color: var(--fx-gris-500) !important;
    font-size: 13px !important;
    display: inline-flex !important;
    align-items: center;
    gap: 8px;
    text-transform: none !important;
    letter-spacing: 0 !important;
    flex-shrink: 0;
    /* RESET DE LÍNEAS que Amaira pone */
    border: 0 !important;
    border-bottom: 0 !important;
    text-decoration: none !important;
    box-shadow: none !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
}
body.fichaama .infoficgen ul li strong .fa {
    color: var(--fx-rojo) !important;
    font-size: 13px !important;
    width: 16px;
    text-align: center;
    border: 0 !important;
}
body.fichaama .infoficgen ul li span,
body.fichaama .infoficgen ul li > span {
    font-family: 'DM Sans', sans-serif !important;
    font-weight: 600 !important;
    color: var(--fx-negro) !important;
    text-align: right;
    font-size: 14px !important;
    /* RESET DE LÍNEAS que Amaira pone */
    border: 0 !important;
    border-bottom: 0 !important;
    text-decoration: none !important;
    box-shadow: none !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* 7.3 Medidas (infomedid) — DISEÑO EDITORIAL
   Estilo tipo "menú de restaurante": label a la izquierda, valor a la derecha,
   línea punteada sutil entre medio. Dos columnas en desktop, una en mobile. */
body.fichaama .infomedid ul {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 0 40px !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 0 12px !important;
    float: none !important;
    width: 100% !important;
}
body.fichaama .infomedid ul li {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: baseline;
    gap: 10px;
    padding: 12px 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px solid var(--fx-gris-200) !important;
    border-radius: 0 !important;
    border-left: 0 !important;
    list-style: none !important;
    float: none !important;
    width: auto !important;
    margin: 0 !important;
    font-size: 14px;
    box-shadow: none !important;
}

/* IMPORTANTE: Amaira oculta items sin datos con style="display: none" inline.
   Respetamos ese display:none — no los mostramos. También ocultamos cualquier
   <li> cuyo <span> de valor esté vacío (por si Amaira no lo marca). */
body.fichaama .infomedid ul li[style*="display: none"],
body.fichaama .infomedid ul li[style*="display:none"] {
    display: none !important;
}
body.fichaama .infomedid ul li:has(> span:empty) {
    display: none !important;
}

/* Label a la izquierda */
body.fichaama .infomedid ul li strong {
    font-family: 'DM Sans', sans-serif !important;
    font-weight: 500 !important;
    color: var(--fx-gris-500) !important;
    font-size: 12px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    border: 0 !important;
    border-bottom: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    text-decoration: none !important;
}
/* "Leaders" punteados entre label y valor */
body.fichaama .infomedid ul li::before {
    content: "";
    grid-column: 2;
    align-self: baseline;
    height: 1px;
    background-image: linear-gradient(to right, var(--fx-gris-300) 40%, transparent 0%);
    background-size: 6px 1px;
    background-repeat: repeat-x;
    background-position: bottom;
    transform: translateY(-4px);
    min-width: 20px;
}
/* Valor a la derecha */
body.fichaama .infomedid ul li span {
    font-family: 'DM Sans', sans-serif !important;
    font-weight: 700 !important;
    color: var(--fx-negro) !important;
    font-size: 15px !important;
    text-align: right;
    justify-self: end;
    border: 0 !important;
    border-bottom: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    text-decoration: none !important;
    white-space: nowrap;
    max-width: 220px;
    overflow: hidden;
    text-overflow: ellipsis;
}
body.fichaama .infomedid > p {
    font-size: 12px;
    color: var(--fx-gris-500);
    font-style: italic;
    margin: 16px 0 0;
    padding-top: 12px;
    border-top: 1px solid var(--fx-gris-200);
}

/* El HTML duplica el bloque .infomedid — ocultamos el primero (oculto por Amaira) */
body.fichaama .fichacarac .infomedid[style*="display:none"],
body.fichaama .fichacarac .infomedid[style*="display: none"] {
    display: none !important;
}

/* 7.4 Características (infocarac) — DISEÑO COMPACTO
   
   Los wrappers intermedios (span/div/figure) que usa Amaira para armar
   el círculo gris se colapsan con display: contents, así el img/svg queda
   directamente como hijo del <li> y el texto de al lado también. Todo
   flex-align correctamente.
   ======================================================================== */

body.fichaama .infocarac > ul,
body.fichaama .infocarac ul.caracgen {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
    gap: 6px !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    float: none !important;
    width: 100% !important;
}

/* Chip compacto pill */
body.fichaama .infocarac ul li {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 6px 14px 6px 6px !important;
    background: #fff !important;
    background-image: none !important;
    border: 1px solid var(--fx-gris-200) !important;
    border-radius: 50px !important;
    margin: 0 !important;
    list-style: none !important;
    float: none !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    color: var(--fx-gris-900) !important;
    font-family: 'DM Sans', sans-serif !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    line-height: 1.2 !important;
    text-align: left !important;
    box-shadow: none !important;
    transition: background .2s, border-color .2s, transform .2s;
    position: relative;
    overflow: visible !important;  /* VISIBLE para que el texto no se corte */
}
body.fichaama .infocarac ul li:hover {
    background: var(--fx-crema) !important;
    border-color: var(--fx-rojo) !important;
    transform: translateY(-1px);
}

/* Matar pseudo-elementos decorativos */
body.fichaama .infocarac ul li::before,
body.fichaama .infocarac ul li::after {
    content: none !important;
    display: none !important;
    background: none !important;
}

/* COLAPSAR wrappers del ícono: el span/div/figure que envuelve al img/svg
   desaparece del layout con display:contents, así el ícono queda directo. */
body.fichaama .infocarac ul li > span,
body.fichaama .infocarac ul li > div,
body.fichaama .infocarac ul li > figure,
body.fichaama .infocarac ul li > a {
    display: contents !important;
    background: transparent !important;
    background-image: none !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    width: auto !important;
    height: auto !important;
    box-shadow: none !important;
}

/* Con los wrappers colapsados, el img/svg queda hijo directo del li.
   Lo convertimos en el círculo chico con fondo rojo suave e ícono rojo. */
body.fichaama .infocarac ul li img,
body.fichaama .infocarac ul li svg {
    width: 34px !important;
    height: 34px !important;
    min-width: 34px !important;
    min-height: 34px !important;
    max-width: 34px !important;
    max-height: 34px !important;
    padding: 8px !important;
    background: var(--fx-rojo-soft) !important;
    background-image: none !important;
    border-radius: 50% !important;
    flex-shrink: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
    object-fit: contain !important;
    filter: brightness(0) saturate(100%) invert(24%) sepia(94%) saturate(2394%) hue-rotate(356deg) brightness(88%) contrast(92%) !important;
    margin: 0 !important;
    display: inline-block !important;
}

/* SVG fills/strokes forzados como backup */
body.fichaama .infocarac ul li svg [fill]:not([fill="none"]) { fill: var(--fx-rojo) !important; }
body.fichaama .infocarac ul li svg [stroke]:not([stroke="none"]) { stroke: var(--fx-rojo) !important; }

/* Si las dos listas están vacías, ocultar el bloque */
body.fichaama .infocarac:has(ul.caracgen:empty):has(> ul:empty) {
    display: none;
}

/* --------------------------------------------------------------------------
   8. CALENDARIO DE DISPONIBILIDAD (lo dejamos oculto por default — Amaira 
      lo muestra solo cuando corresponde)
   -------------------------------------------------------------------------- */
body.fichaama #disponiblidad {
    background: #fff;
    border-radius: var(--fx-radius);
    border: var(--fx-border);
    padding: 24px;
    box-shadow: var(--fx-shadow-sm);
    margin-bottom: 20px;
}
body.fichaama .infodisponib {
    background: #fff;
    border-radius: var(--fx-radius);
    border: var(--fx-border);
    padding: 16px 20px;
    box-shadow: var(--fx-shadow-sm);
    margin-bottom: 20px;
}
body.fichaama .infodisponib h4 {
    font-family: 'DM Sans', sans-serif;
    font-size: 13px;
    font-weight: 600;
    color: var(--fx-gris-500);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin: 0 0 10px;
    padding: 0;
    border: 0;
}
body.fichaama .infodisponib h4::after { display: none; }
body.fichaama .infodisponib h4 em {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    font-style: normal;
}
body.fichaama .infodisponib h4 em strong {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 500;
    color: var(--fx-gris-700);
    text-transform: none;
    letter-spacing: 0;
}
body.fichaama .infodisponib h4 em strong:nth-child(1) .fa { color: #4caf50; }
body.fichaama .infodisponib h4 em strong:nth-child(2) .fa { color: #ff9800; }
body.fichaama .infodisponib h4 em strong:nth-child(3) .fa { color: #e53935; }

/* Si no hay precios de alquiler, ocultar bloque */
body.fichaama .listapreciosalq:has(ul.preciosalq:empty) { display: none; }

/* --------------------------------------------------------------------------
   9. SIDEBAR DE CONTACTO (.contactocont)
   -------------------------------------------------------------------------- */
body.fichaama .contactocont {
    top: auto;
    float: none;
    width: 100%;
    padding: 0;
    margin: 0;
    background: transparent;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

body.fichaama .contactocont .contactoform {
    background: #fff;
    border-radius: var(--fx-radius);
    border: var(--fx-border);
    padding: 24px;
    box-shadow: var(--fx-shadow-sm);
    float: none;
    width: 100%;
    margin: 0;
}

/* Form de contacto a la inmobiliaria */
body.fichaama #contactoinmo h5 {
    font-family: 'Fraunces', serif;
    font-style: italic;
    font-weight: 500;
    font-size: 22px;
    color: var(--fx-negro);
    margin: 0 0 16px;
    padding: 0;
    border: 0;
    text-transform: none;
    letter-spacing: 0;
    background: transparent;
}

body.fichaama .contactoform h5 {
    font-family: 'DM Sans', sans-serif;
    font-size: 13px;
    font-weight: 600;
    color: var(--fx-gris-500);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin: 0 0 14px;
    padding: 0;
    border: 0;
    background: transparent;
}

body.fichaama #contactoinmo h5 {
    font-family: 'Fraunces', serif;
    font-style: italic;
    font-weight: 500;
    font-size: 22px;
    color: var(--fx-negro);
    text-transform: none;
    letter-spacing: 0;
}

body.fichaama .infoinmo {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 12px;
    background: var(--fx-crema);
    border-radius: var(--fx-radius-sm);
    margin-bottom: 16px;
}
body.fichaama .infoinmo img {
    width: 48px !important;
    height: 48px !important;
    object-fit: contain;
    flex-shrink: 0;
    border-radius: 8px;
    background: #fff;
    padding: 4px;
}
body.fichaama .descinmo {
    flex: 1;
    min-width: 0;
}
body.fichaama .descinmo p {
    margin: 0 0 4px;
    font-size: 12px !important;
    color: var(--fx-gris-700);
    line-height: 1.4;
    word-break: break-word;
}
body.fichaama .descinmo p a {
    color: var(--fx-rojo);
    text-decoration: none;
}
body.fichaama .descinmo p a:hover { text-decoration: underline; }
body.fichaama .descinmo .fa-spin { color: var(--fx-gris-400); }

/* Mensaje enviado + error */
body.fichaama .fichaenviado,
body.fichaama .fichafotoenviado {
    background: #e8f5e9;
    color: #2e7d32;
    padding: 12px 16px;
    border-radius: var(--fx-radius-sm);
    font-size: 14px;
    margin-bottom: 12px;
    border-left: 3px solid #2e7d32;
}
body.fichaama .fichafotoenviado.nodesc {
    background: #ffebee;
    color: #c62828;
    border-left-color: #c62828;
}
body.fichaama form .error {
    font-size: 13px !important;
    color: #c62828 !important;
    margin-bottom: 8px;
}

/* Inputs */
body.fichaama .datosfic {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
body.fichaama .datosfic input,
body.fichaama .datosfic textarea {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid var(--fx-gris-300);
    border-radius: var(--fx-radius-sm);
    font-family: 'DM Sans', sans-serif;
    font-size: 14px;
    color: var(--fx-negro);
    background: #fff;
    outline: none;
    transition: border-color .2s, box-shadow .2s;
}
body.fichaama .datosfic input:focus,
body.fichaama .datosfic textarea:focus {
    border-color: var(--fx-rojo);
    box-shadow: 0 0 0 3px var(--fx-rojo-soft);
}
body.fichaama .datosfic textarea {
    min-height: 90px;
    resize: vertical;
    line-height: 1.5;
}

/* Botón principal del form — Amaira tiene estilos turquesa por default, 
   los pisamos con especificidad + !important */
body.fichaama .contactocont .btncontacta,
body.fichaama #contactogen .btncontacta,
body.fichaama button.btncontacta,
body.fichaama a.btncontacta {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100% !important;
    padding: 13px 20px !important;
    background: var(--fx-rojo) !important;
    background-image: none !important;
    color: #fff !important;
    border: 0 !important;
    border-radius: 50px !important;
    font-family: 'DM Sans', sans-serif !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    cursor: pointer;
    text-decoration: none !important;
    transition: background .2s, transform .2s;
    margin-top: 4px !important;
    box-shadow: none !important;
    text-shadow: none !important;
    height: auto !important;
    line-height: 1.2 !important;
}
body.fichaama .contactocont .btncontacta:hover,
body.fichaama #contactogen .btncontacta:hover,
body.fichaama a.btncontacta:hover {
    background: var(--fx-rojo-dark) !important;
    transform: translateY(-1px);
}
body.fichaama .contactocont .btncontacta:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none;
}

/* Botón WhatsApp operador — blanco con borde verde, no verde pleno */
body.fichaama .contactocont .btncontactawsp,
body.fichaama a.btncontactawsp {
    background: #fff !important;
    background-image: none !important;
    color: #25D366 !important;
    border: 2px solid #25D366 !important;
    margin-top: 8px !important;
}
body.fichaama .contactocont .btncontactawsp:hover,
body.fichaama a.btncontactawsp:hover {
    background: #25D366 !important;
    color: #fff !important;
    transform: translateY(-1px);
}
body.fichaama .btncontactawsp .fa-whatsapp { font-size: 16px; }

/* Form descargar imágenes */
body.fichaama #contactofotos .datosfic {
    flex-direction: row;
    gap: 8px;
}
body.fichaama #contactofotos .datosfic input {
    flex: 1;
}
body.fichaama #contactofotos .datosfic button {
    padding: 12px 18px;
    background: var(--fx-negro);
    color: #fff;
    border: 0;
    border-radius: var(--fx-radius-sm);
    cursor: pointer;
    font-size: 14px;
    transition: background .2s;
}
body.fichaama #contactofotos .datosfic button:hover {
    background: var(--fx-rojo);
}

/* Compartir */
body.fichaama .contactocont .redesficha,
body.fichaama .redesficha {
    display: flex !important;
    flex-wrap: wrap;
    gap: 8px;
    list-style: none;
    padding: 0 !important;
    margin: 0 !important;
}
body.fichaama .contactocont .redesficha li,
body.fichaama .redesficha li {
    list-style: none;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    width: auto !important;
    height: auto !important;
}
body.fichaama .contactocont .redesficha li a,
body.fichaama .redesficha li a {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 40px !important;
    height: 40px !important;
    background: var(--fx-crema) !important;
    color: var(--fx-gris-700) !important;
    border-radius: 50% !important;
    text-decoration: none !important;
    font-size: 16px !important;
    transition: background .2s, color .2s, transform .2s;
    border: 1px solid var(--fx-gris-200) !important;
}
body.fichaama .contactocont .redesficha li a:hover,
body.fichaama .redesficha li a:hover {
    background: var(--fx-rojo) !important;
    color: #fff !important;
    border-color: var(--fx-rojo) !important;
    transform: translateY(-2px);
}
/* El ícono dentro debe mantener font-family: FontAwesome */
body.fichaama .redesficha li a .fa,
body.fichaama .redesficha li a i {
    font-family: 'FontAwesome' !important;
    font-style: normal !important;
    font-weight: normal !important;
}

/* --------------------------------------------------------------------------
   10. BARRA FLOTANTE MOBILE (#contactowsp)
   -------------------------------------------------------------------------- */
body.fichaama #contactowsp {
    display: none; /* oculta en desktop, se muestra en mobile */
}

/* --------------------------------------------------------------------------
   11. FRANJAS DE CATEGORÍA (A Estrenar, Retasada, Promoción) — si aparecen,
       las mostramos como pills sutiles en lugar de banderas rotadas
   -------------------------------------------------------------------------- */
body.fichaama .franjarenta,
body.fichaama .franjapromo,
body.fichaama .franjaestrenar {
    position: relative;
}
body.fichaama .franjarenta::after,
body.fichaama .franjapromo::after,
body.fichaama .franjaestrenar::after {
    position: absolute;
    top: 16px;
    left: 16px;
    padding: 6px 14px;
    border-radius: 50px;
    font-family: 'DM Sans', sans-serif;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #fff;
    z-index: 5;
}
body.fichaama .franjarenta::after { content: "Retasada"; background: #e61923; }
body.fichaama .franjapromo::after { content: "En promoción"; background: #8BC34A; }
body.fichaama .franjaestrenar::after { content: "A estrenar"; background: #1965e6; }

/* --------------------------------------------------------------------------
   12. IMPRESIÓN
   -------------------------------------------------------------------------- */
body.fichaama .fichaimpr {
    display: none;
}

/* --------------------------------------------------------------------------
   13. MODAL / POPUPS varios que Amaira puede abrir
   -------------------------------------------------------------------------- */
body.fichaama .modalfic,
body.fichaama .popfic {
    background: rgba(26,26,26,0.8);
}
body.fichaama .modalfic > div,
body.fichaama .popfic > div {
    background: #fff;
    border-radius: var(--fx-radius);
    box-shadow: var(--fx-shadow-lg);
}

/* --------------------------------------------------------------------------
   14. RESPONSIVE
   -------------------------------------------------------------------------- */
@media (max-width: 1024px) {
    body.fichaama #general.generalficha {
        padding: 24px 20px 60px;
    }
    /* Volver a una sola columna: sidebar debajo del contenido */
    body.fichaama #general > .cont {
        grid-template-columns: 1fr;
    }
    body.fichaama #general > .cont > .contactocont {
        grid-column: 1;
        grid-row: auto;
        position: static;
        max-height: none;
        overflow: visible;
        top: auto;
    }
    body.fichaama #tit .lepdiv {
        grid-template-columns: 1fr;
        grid-template-areas:
            "tipo"
            "precio"
            "icos";
        gap: 16px;
    }
    body.fichaama #tit .precioinfo {
        text-align: left;
        align-items: flex-start;
    }
    body.fichaama #tit .preciogen h3 {
        align-items: flex-start;
    }
    body.fichaama .fichaimg,
    body.fichaama .fichaimg .sliprop,
    body.fichaama .fichacont,
    body.fichaama #fic-mapa #mapaficha {
        height: 420px;
        min-height: 420px;
    }
}

@media (max-width: 768px) {
    body.fichaama #general.generalficha {
        padding: 16px 12px 80px;
    }
    body.fichaama #tit {
        padding: 24px 20px;
    }
    body.fichaama #tit .tipoinfo h1 { font-size: 28px; }
    body.fichaama #tit .tipoinfo h2 { font-size: 15px; }
    body.fichaama #tit .preciogen h3 strong { font-size: 28px; }
    body.fichaama #tit .icoinfo ul { gap: 8px; }
    body.fichaama #tit .icoinfo ul li {
        padding: 8px 14px;
        gap: 8px;
    }
    body.fichaama #tit .icoinfo ul li strong { font-size: 14px; }
    body.fichaama #tit .icoinfo ul li span { font-size: 12px; }
    body.fichaama #tit .icoinfo ul li svg { width: 18px; height: 18px; }

    body.fichaama .menuficha {
        padding: 10px 12px;
        overflow-x: auto;
        flex-wrap: nowrap;
        -webkit-overflow-scrolling: touch;
    }
    body.fichaama .menuficha::-webkit-scrollbar { display: none; }
    body.fichaama .menuficha li a {
        white-space: nowrap;
        padding: 8px 14px;
        font-size: 12px;
    }
    body.fichaama .menuficha li.infolin { margin-left: 0; }

    body.fichaama .fichaimg,
    body.fichaama .fichaimg .sliprop,
    body.fichaama .fichacont,
    body.fichaama #fic-mapa #mapaficha {
        height: 320px;
        min-height: 320px;
    }
    body.fichaama .slick-prev { left: 10px; }
    body.fichaama .slick-next { right: 10px; }
    body.fichaama .slick-prev,
    body.fichaama .slick-next { width: 36px; height: 36px; }

    body.fichaama .infofic {
        padding: 24px 20px;
    }
    body.fichaama .infofic h4 { font-size: 20px; }

    body.fichaama .infoficgen ul {
        grid-template-columns: 1fr;
    }

    body.fichaama .btnscont .quiero {
        flex: 1;
        justify-content: center;
        padding: 11px 16px;
        font-size: 12px;
    }

    /* Barra flotante mobile de contacto */
    body.fichaama #contactowsp {
        display: flex !important;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        background: #fff;
        border-top: var(--fx-border);
        padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
        z-index: 100;
        gap: 8px;
        box-shadow: 0 -2px 12px rgba(0,0,0,0.08);
        align-items: center;
    }
    body.fichaama #contactowsp > a {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 44px;
        height: 44px;
        background: #25D366;
        color: #fff;
        border-radius: 50%;
        text-decoration: none;
        font-size: 20px;
        flex-shrink: 0;
    }
    body.fichaama #contactowsp .contbtnc {
        display: flex;
        gap: 6px;
        flex: 1;
    }
    body.fichaama #contactowsp .contbtnc a {
        flex: 1;
        padding: 11px 12px;
        background: var(--fx-crema);
        color: var(--fx-negro);
        border-radius: 50px;
        text-align: center;
        text-decoration: none;
        font-size: 12px;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.05em;
        border: 1px solid var(--fx-gris-300);
    }
    body.fichaama #contactowsp .contbtnc a.llamarinm {
        background: var(--fx-rojo);
        color: #fff;
        border-color: var(--fx-rojo);
    }

    /* Evitar que el contacto fijo tape el final de la ficha */
    body.fichaama #general.generalficha { padding-bottom: 100px; }

    body.fichaama #cab .codfic {
        margin-left: 0;
    }
}

@media (max-width: 480px) {
    body.fichaama #tit .tipoinfo h1 { font-size: 24px; }
    body.fichaama #tit .preciogen h3 strong { font-size: 24px; }
    body.fichaama .fichaimg,
    body.fichaama .fichaimg .sliprop,
    body.fichaama .fichacont,
    body.fichaama #fic-mapa #mapaficha {
        height: 260px;
        min-height: 260px;
    }
    body.fichaama .infofic { padding: 20px 16px; }
    body.fichaama .infofic h4 { font-size: 18px; }
}

/* --------------------------------------------------------------------------
   15. ACCESIBILIDAD
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
    body.fichaama *,
    body.fichaama *::before,
    body.fichaama *::after {
        animation-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
    }
}

body.fichaama a:focus-visible,
body.fichaama button:focus-visible,
body.fichaama input:focus-visible,
body.fichaama textarea:focus-visible {
    outline: 2px solid var(--fx-rojo);
    outline-offset: 2px;
}

/* ============================================================================
   REDISEÑO V2 — ESTILO EDITORIAL BOUTIQUE (mayo 2026)
   Todas las reglas usan prefijo .bnr-v2-* para no chocar con el CSS legacy.
   ============================================================================ */

/* Forzar fondo crema en la página completa (a veces el body no recibe la clase
   .fichaama y queda blanco — este selector cubre ambos escenarios) */
body:has(.bnr-v2-wrap),
body.fichaama {
    background: #faf7f2 !important;
}

.bnr-v2-wrap {
    max-width: 1240px;
    margin: 0 auto;
    padding: 28px 20px 60px;
    font-family: 'DM Sans', 'Helvetica Neue', system-ui, sans-serif;
    color: #1a1a1a;
    line-height: 1.55;
    box-sizing: border-box;
    background: transparent;
}
.bnr-v2-wrap *, .bnr-v2-wrap *::before, .bnr-v2-wrap *::after { box-sizing: border-box; }

/* ====== CARD: estilo común para todos los "boxes" ====== */
.bnr-v2-hero,
.bnr-v2-media,
.bnr-v2-bloque {
    background: #fff;
    border: 1px solid #ebe6dc;
    border-radius: 12px;
    margin-bottom: 18px;
}

/* ====== HERO ====== */
.bnr-v2-hero { padding: 28px 32px; }
.bnr-v2-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
    gap: 32px;
    align-items: start;
}
.bnr-v2-titulo {
    font-family: 'Fraunces', Georgia, serif;
    font-size: 36px;
    font-weight: 400;
    line-height: 1.05;
    letter-spacing: -0.02em;
    margin: 0 0 14px;
    color: #1a1a1a;
}
.bnr-v2-titulo-tipo {
    font-family: 'DM Sans', 'Helvetica Neue', sans-serif;
    font-weight: 500;
    font-style: normal;
    color: #1a1a1a;
}
.bnr-v2-titulo-op {
    color: #d1331d;
    font-style: italic;
    font-weight: 400;
}
.bnr-v2-localidad {
    font-size: 14px;
    color: #1a1a1a;
    margin-bottom: 4px;
}
.bnr-v2-localidad strong {
    font-weight: 500;
}
.bnr-v2-direccion {
    font-size: 13px;
    color: #6b6b6b;
    display: flex;
    align-items: center;
    gap: 8px;
}
.bnr-v2-pin {
    display: inline-block;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #d1331d;
    flex-shrink: 0;
}

/* Precio (columna derecha del HERO) */
.bnr-v2-hero-right { text-align: right; min-width: 0; }
.bnr-v2-precio-block { margin-bottom: 8px; }
.bnr-v2-precio-label {
    font-size: 10px;
    letter-spacing: 0.2em;
    color: #d1331d;
    text-transform: uppercase;
    font-weight: 600;
    margin-bottom: 4px;
}
.bnr-v2-precio-valor {
    font-family: 'DM Sans', sans-serif;
    font-size: 30px;
    font-weight: 500;
    color: #1a1a1a;
    line-height: 1;
    letter-spacing: -0.015em;
}
.bnr-v2-precio-mes {
    font-size: 13px;
    color: #6b6b6b;
    font-weight: 400;
}
.bnr-v2-expensas {
    font-size: 12px;
    color: #d1331d;
    margin-top: 6px;
}

/* ====== DATOS CLAVE (dentro del HERO card) — Estilo D centrado ====== */
.bnr-v2-keydata {
    border-top: 1px solid #ebe6dc;
    padding-top: 22px;
    margin-top: 24px;
    display: flex;
    flex-wrap: wrap;
    gap: 22px 40px;
    align-items: flex-start;
}
.bnr-v2-keydata-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    color: #1a1a1a;
    min-width: 70px;
}
.bnr-v2-keydata-item span {
    font-size: 9px;
    color: #d1331d;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    font-weight: 600;
    margin-bottom: 6px;
    line-height: 1.2;
}
.bnr-v2-keydata-item strong {
    font-size: 19px;
    font-weight: 500;
    color: #1a1a1a;
    line-height: 1;
    letter-spacing: -0.01em;
}
/* Ya no hay separadores · en esta variante; ocultos por si quedaran del HTML viejo */
.bnr-v2-keydata-sep { display: none; }

/* ====== GRID PRINCIPAL ====== */
.bnr-v2-main {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
    gap: 18px;
    align-items: start;
}
.bnr-v2-content { min-width: 0; }
/* El último bloque del content no necesita margin-bottom */
.bnr-v2-content > *:last-child { margin-bottom: 0; }

/* ====== MEDIA: tabs + galería (card) ====== */
.bnr-v2-media { padding: 18px 22px; }
.bnr-v2-tabs {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 18px;
    padding-bottom: 0;
    border-bottom: 0;
    overflow-x: auto;
    scrollbar-width: thin;
}
.bnr-v2-tab {
    border: 1.5px solid transparent;
    background: transparent;
    padding: 7px 18px;
    font-family: inherit;
    font-size: 13px;
    font-weight: 400;
    color: #6b6b6b;
    cursor: pointer;
    border-radius: 50px;
    margin-bottom: 0;
    white-space: nowrap;
    transition: color .2s, border-color .2s, background .2s, font-weight .2s;
    letter-spacing: 0.005em;
    line-height: 1.4;
}
.bnr-v2-tab span {
    color: inherit;
    opacity: 0.75;
    font-weight: 400;
    margin-left: 2px;
}
.bnr-v2-tab:hover:not(.is-active) {
    color: #d1331d;
    border-color: rgba(209, 51, 29, 0.3);
}
.bnr-v2-tab.is-active {
    color: #d1331d;
    font-weight: 600;
    border-color: #d1331d;
    background: rgba(209, 51, 29, 0.06);
}
.bnr-v2-tab.is-active span { color: #d1331d; opacity: 0.75; }

.bnr-v2-pane { display: none; }
.bnr-v2-pane.is-active { display: block; }

/* Galería principal */
.bnr-v2-gallery {
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    aspect-ratio: 16 / 10;
    background: #2c2926;
    user-select: none;
}
.bnr-v2-gal-stage { width: 100%; height: 100%; position: relative; }
.bnr-v2-slide {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: none;
    cursor: zoom-in;
}
.bnr-v2-gallery--plano .bnr-v2-slide { object-fit: contain; background: #faf7f2; }
.bnr-v2-slide.is-active { display: block; }
.bnr-v2-gal-prev,
.bnr-v2-gal-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: rgba(255,255,255,0.92);
    border: 0;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    line-height: 1;
    color: #1a1a1a;
    z-index: 2;
    transition: background .2s, transform .2s;
    box-shadow: 0 2px 8px rgba(0,0,0,.15);
}
.bnr-v2-gal-prev { left: 14px; }
.bnr-v2-gal-next { right: 14px; }
.bnr-v2-gal-prev:hover,
.bnr-v2-gal-next:hover {
    background: #fff;
    transform: translateY(-50%) scale(1.05);
}
.bnr-v2-gal-counter {
    position: absolute;
    bottom: 14px;
    left: 14px;
    background: rgba(0,0,0,0.6);
    color: #fff;
    padding: 5px 12px;
    border-radius: 50px;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.04em;
    z-index: 2;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}
.bnr-v2-gal-fullscreen {
    position: absolute;
    bottom: 14px;
    right: 14px;
    background: rgba(0,0,0,0.6);
    color: #fff;
    padding: 6px 14px;
    border-radius: 50px;
    border: 0;
    font-family: inherit;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    cursor: pointer;
    z-index: 2;
    transition: background .2s;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}
.bnr-v2-gal-fullscreen:hover { background: rgba(0,0,0,0.8); }

/* Thumbs */
.bnr-v2-thumbs {
    display: flex;
    gap: 6px;
    margin-top: 8px;
    overflow-x: auto;
    padding-bottom: 4px;
    scrollbar-width: thin;
    scrollbar-color: #d6d1c7 transparent;
}
.bnr-v2-thumbs::-webkit-scrollbar { height: 6px; }
.bnr-v2-thumbs::-webkit-scrollbar-thumb { background: #d6d1c7; border-radius: 3px; }
.bnr-v2-thumb {
    flex: 0 0 84px;
    height: 56px;
    object-fit: cover;
    border-radius: 4px;
    cursor: pointer;
    opacity: 0.55;
    outline: 2px solid transparent;
    outline-offset: 2px;
    transition: opacity .2s, outline-color .2s;
    display: block;
}
.bnr-v2-thumb:hover { opacity: 0.85; }
.bnr-v2-thumb.is-active { opacity: 1; outline-color: #d1331d; }

/* Mapa + Video */
.bnr-v2-mapa {
    width: 100%;
    height: 480px;
    border: 0;
    border-radius: 8px;
    display: block;
    background: #faf7f2;
}
.bnr-v2-video-wrap {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    background: #000;
    border-radius: 8px;
    overflow: hidden;
}
.bnr-v2-video-wrap iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}

/* ====== BLOQUES NUMERADOS (cards) ====== */
.bnr-v2-bloque { padding: 24px 28px; }
.bnr-v2-bloque-head {
    display: flex;
    align-items: baseline;
    gap: 14px;
    margin-bottom: 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid #ebe6dc;
}
.bnr-v2-num {
    font-family: 'Fraunces', Georgia, serif;
    font-style: italic;
    font-size: 13px;
    color: #d1331d;
    font-weight: 400;
}
.bnr-v2-bloque-titulo {
    font-family: 'Fraunces', Georgia, serif;
    font-style: italic;
    font-weight: 400;
    font-size: 20px;
    color: #1a1a1a;
    margin: 0;
    letter-spacing: -0.005em;
}

/* Descripción */
.bnr-v2-desc {
    font-size: 14px;
    line-height: 1.75;
    color: #3a3a3a;
}
.bnr-v2-desc p { margin: 0 0 12px; }
.bnr-v2-desc p:last-child { margin-bottom: 0; }
.bnr-v2-desc strong { color: #1a1a1a; font-weight: 500; }

/* Detalles */
.bnr-v2-detalles { margin: 0; font-size: 13px; }
.bnr-v2-fila {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: 9px 0;
    border-bottom: 1px dotted #d6d1c7;
    gap: 16px;
}
.bnr-v2-fila:last-child { border-bottom: 0; }
.bnr-v2-fila dt {
    color: #6b6b6b;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-size: 11px;
    margin: 0;
    flex-shrink: 0;
}
.bnr-v2-fila dd {
    margin: 0;
    font-weight: 500;
    color: #1a1a1a;
    text-align: right;
}

/* Características */
.bnr-v2-carac {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px 16px;
    font-size: 13px;
}
.bnr-v2-carac li {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #3a3a3a;
    padding: 4px 0;
}
.bnr-v2-carac li::before {
    content: "";
    display: inline-block;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: #d1331d;
    flex-shrink: 0;
}

/* ====== SIDEBAR STICKY ====== */
.bnr-v2-sidebar {
    position: sticky;
    top: 140px;
    background: #fff;
    border: 1px solid #ebe6dc;
    border-radius: 12px;
    padding: 22px 20px;
    min-width: 0;
}
.bnr-v2-sidebar-titulo {
    font-family: 'Fraunces', Georgia, serif;
    font-style: italic;
    font-weight: 400;
    font-size: 18px;
    margin: 0 0 16px;
    color: #1a1a1a;
    line-height: 1.3;
}

/* Form */
.bnr-v2-form {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 14px;
}
.bnr-v2-form input,
.bnr-v2-form textarea {
    border: 0;
    border-bottom: 1px solid #d6d1c7;
    padding: 8px 0;
    font-family: inherit;
    font-size: 13px;
    background: transparent;
    outline: none;
    color: #1a1a1a;
    border-radius: 0;
    width: 100%;
}
.bnr-v2-form input:focus,
.bnr-v2-form textarea:focus {
    border-bottom-color: #d1331d;
}
.bnr-v2-form input::placeholder,
.bnr-v2-form textarea::placeholder {
    color: #9a9690;
}
.bnr-v2-form textarea {
    resize: vertical;
    min-height: 60px;
    font-family: inherit;
}

/* Botones */
.bnr-v2-btn {
    display: block;
    width: 100%;
    padding: 11px 20px;
    font-family: 'DM Sans', sans-serif;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    border-radius: 50px;
    transition: opacity .2s, transform .15s, background .2s, color .2s;
    box-sizing: border-box;
    line-height: 1.4;
}
.bnr-v2-btn--rojo {
    background: #d1331d;
    color: #fff !important;
    border: 0;
    margin-top: 4px;
}
.bnr-v2-btn--rojo:hover { opacity: 0.92; transform: translateY(-1px); }
.bnr-v2-btn--rojo:disabled { opacity: 0.6; cursor: not-allowed; }
.bnr-v2-btn--wsp {
    background: #fff;
    color: #1a8c4a !important;
    border: 1.5px solid #1a8c4a;
    margin-top: 8px;
}
.bnr-v2-btn--wsp:hover { background: #1a8c4a; color: #fff !important; }

/* Mensajes ok/error del form */
.bnr-v2-msg {
    padding: 10px 12px;
    border-radius: 8px;
    font-size: 12px;
    margin-bottom: 12px;
    line-height: 1.5;
}
.bnr-v2-msg--ok {
    background: #e8f5e9;
    color: #2e7d32;
    border-left: 3px solid #2e7d32;
}
.bnr-v2-msg--err {
    background: #fae8e4;
    color: #b42a17;
    border-left: 3px solid #b42a17;
}

/* Inmo (logo + datos) */
.bnr-v2-inmo {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid #ebe6dc;
}
.bnr-v2-inmo-logo {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #d1331d;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 8px rgba(209, 51, 29, 0.18);
    overflow: hidden;
    position: relative;
}
.bnr-v2-inmo-logo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
/* Fallback si la imagen falla: dibujamos una "B" en CSS */
.bnr-v2-inmo-logo.is-fallback::after {
    content: "B";
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-family: 'DM Sans', sans-serif;
    font-size: 22px;
    font-weight: 500;
    line-height: 1;
}
.bnr-v2-inmo-datos {
    font-size: 12px;
    line-height: 1.55;
    color: #3a3a3a;
    min-width: 0;
}
.bnr-v2-inmo-dir { color: #1a1a1a; }
.bnr-v2-inmo-mail {
    color: #d1331d;
    text-decoration: none;
    display: block;
}
.bnr-v2-inmo-mail:hover { text-decoration: underline; }
.bnr-v2-inmo-tel { color: #6b6b6b; }

/* ====== LIGHTBOX ====== */
.bnr-v2-lightbox {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.95);
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
}
.bnr-v2-lb-stage {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 60px;
}
.bnr-v2-lb-slide {
    display: none;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}
.bnr-v2-lb-slide.is-active { display: block; }
.bnr-v2-lb-close {
    position: absolute;
    top: 20px;
    right: 20px;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(255,255,255,0.15);
    color: #fff;
    border: 0;
    font-size: 20px;
    cursor: pointer;
    z-index: 2;
    transition: background .2s;
}
.bnr-v2-lb-close:hover { background: rgba(255,255,255,0.3); }
.bnr-v2-lb-prev,
.bnr-v2-lb-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background: rgba(255,255,255,0.15);
    color: #fff;
    border: 0;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
    z-index: 2;
    transition: background .2s;
}
.bnr-v2-lb-prev { left: 20px; }
.bnr-v2-lb-next { right: 20px; }
.bnr-v2-lb-prev:hover,
.bnr-v2-lb-next:hover { background: rgba(255,255,255,0.3); }
.bnr-v2-lb-counter {
    position: absolute;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%);
    color: rgba(255,255,255,0.85);
    font-size: 13px;
    letter-spacing: 0.04em;
    z-index: 2;
}

/* ====== RESPONSIVE ====== */
@media (max-width: 1024px) {
    .bnr-v2-main { grid-template-columns: 1fr; }
    .bnr-v2-sidebar {
        position: static;
        margin-top: 24px;
    }
}
@media (max-width: 768px) {
    .bnr-v2-wrap { padding: 0 14px; margin: 16px auto 40px; }
    .bnr-v2-hero-grid { grid-template-columns: 1fr; gap: 18px; }
    .bnr-v2-hero-right { text-align: left; }
    .bnr-v2-titulo { font-size: 28px; }
    .bnr-v2-precio-valor { font-size: 26px; }
    .bnr-v2-keydata { gap: 10px 18px; padding: 14px 0; font-size: 12px; }
    .bnr-v2-tabs { gap: 18px; }
    .bnr-v2-mapa { height: 320px; }
    .bnr-v2-bloque-titulo { font-size: 18px; }
    .bnr-v2-carac { grid-template-columns: 1fr; }
    .bnr-v2-gal-prev, .bnr-v2-gal-next { width: 36px; height: 36px; font-size: 20px; }
    .bnr-v2-thumb { flex: 0 0 64px; height: 44px; }
    .bnr-v2-lb-stage { padding: 50px 12px; }
}
