/* =====================================================================
   ZP ITEM.CSS - Bloque 1 extraído de item.php línea 104
   /* ===== ZP ITEM GLOBAL UTILITIES ===== */
   ===================================================================== */

/* ===== ZP ITEM GLOBAL UTILITIES ===== */
  .zp-ico{
    display:inline-grid;
    place-items:center;
    min-width:1.15em;
    line-height:1;
    font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
    font-weight:800;
    font-style:normal;
  }
  img,
  video,
  canvas{
    overflow:hidden;
  }
  @supports (overflow:clip){
    img,
    video,
    canvas{
      overflow:clip;
    }
  }


/* =====================================================================
   ZP ITEM.CSS - Bloque 2 extraído de item.php línea 131
   /* ===== Estilos aislados (nn-*) ===== */
   ===================================================================== */

/* ===== Estilos aislados (nn-*) ===== */
      .nn-note{position:relative}
      /* Botón flotante (cámbialo a "inline" si no quieres fixed) */
      .nn-fab{
        position:fixed; right: 198px;bottom: 64px; z-index:40;
        display:inline-flex; align-items:center; gap:8px;
        background:#ff5a00; color:#fff; border:0; border-radius:4px;
        padding:12px 14px; font-weight:900; cursor:pointer;
        box-shadow:0 10px 30px rgba(255,90,0,.35);
      }
      .nn-fab svg{width:18px;height:18px}

      /* Modal */
      .nn-modal{position:fixed; inset:0; display:none; z-index:1000}
      .nn-modal.show{display:block}
      .nn-backdrop{position:absolute; inset:0; background: rgba(2, 6, 23, 0.26)}
      .nn-panel{
        position:absolute; left:50%; transform:translateX(-50%) translateY(24px);
        bottom:24px; width:min(720px, 92%); background:#fff; border:1px solid #e5e7eb;
        border-radius:16px; box-shadow:0 30px 80px rgba(0,0,0,.35); padding:14px;
      }
      @keyframes nnUp{from{transform:translateX(-50%) translateY(36px); opacity:.85} to{transform:translateX(-50%) translateY(24px); opacity:1}}
      .nn-hd{display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:8px}
      .nn-hd b{font-size:1.02rem}
      .nn-x{background:transparent;border:0;cursor:pointer;font-size:20px;line-height:1;color:#475569;padding:6px;border-radius:8px}
      .nn-x:hover{background:#f1f5f9}
      .nn-text{width:100%; padding:10px; border:1px solid #ccd3e0; border-radius:10px; resize:vertical}
      .nn-row{display:flex; justify-content:space-between; align-items:center; gap:8px; margin-top:8px; flex-wrap:wrap}
      .nn-count{color:#64748b; font-size:12px}
      .nn-actions{display:flex; gap:8px; align-items:center}
      .nn-btn{display:inline-grid; place-items:center; padding:10px 12px; border-radius:10px; font-weight:800; cursor:pointer}
      .nn-btn-primary{background:#ff5a00; color:#fff; border:0}
      .nn-btn-ghost{background:#fff; border:1px solid #e5e7eb; color:#0f172a}
      .nn-btn-danger{background:#ef4444; color:#fff; border:0}
      .nn-status{margin-top:6px; color:#64748b; font-size:12px}
      .nn-meta{margin-top:6px; color:#64748b; font-size:12px}

      /* Confirm inline para eliminar */
      .nn-confirm{display:none; margin-top:8px; padding:10px; border:1px solid #fee2e2; background:#fff7f7; color:#7f1d1d; border-radius:10px}
      .nn-confirm .nn-actions{justify-content:flex-end}
      @media (max-width:520px){ .nn-panel{bottom:114px; border-radius:16px 16px 0 0; width:100%; left:0; transform:none} }


/* =====================================================================
   ZP ITEM.CSS - Bloque 3 extraído de item.php línea 514
   .zp-sumBox{
   ===================================================================== */

.zp-sumBox{
  border-radius:14px;
  padding:12px;
  background:#fff;
  box-shadow:0 4px 14px rgba(2,6,23,.04);
  margin:14px 0;
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  max-width: 380px;
}
.zp-sumHead{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
}
.zp-sumTitle{
  margin:0;
  font-weight:900;
  font-size:14px;
  color:#0f172a;
}
.zp-stars svg{width:16px;height:16px;vertical-align:middle}
.zp-stars .on{color:#f59e0b}
.zp-stars .off{color:#e5e7eb}
.zp-rateNum{
  font-weight:900;
  font-size:1.05rem;
  margin-right:6px;
}
.zp-respScale{
  display:flex;
  gap:6px;
  align-items:center;
  margin-top:6px;
}
.zp-respSeg{
  flex:1;
  height:8px;
  border-radius:999px;
  background:#f3f4f6;
}
.zp-respSeg.on-1{background:#fee2e2}
.zp-respSeg.on-2{background:#fed7aa}
.zp-respSeg.on-3{background:#fef3c7}
.zp-respSeg.on-4{background:#bbf7d0}
.zp-respSeg.on-5{background:#22c55e}
.zp-foot{
  margin-top:6px;
  font-size:12px;
  color:#64748b;
}


/* =====================================================================
   ZP ITEM.CSS - Bloque 4 extraído de item.php línea 589
   .botones-accion {
   ===================================================================== */

.botones-accion {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: flex-end;
  }
  .btn-accion {
    flex: 0 1 auto;
    min-width: 120px;
    max-width: 180px;
    padding: 0.6rem 1rem;
    font-size: 1rem;
    border: none;
    border-radius: 4px;
    background-color: #007bff;
    color: #fff;
    cursor: pointer;
    transition: background-color 0.2s ease;
  }
  .btn-accion:hover { background-color: #0056b3; }

  /* Botón Imprimir más pequeño */
  .btn-print { max-width: 120px; padding: 0.4rem 0.8rem; font-size: 0.9rem; }

  .share-wrapper { position: relative; display: inline-block; }
  .ui-pdp-share__content {
    display: none;
    position: absolute;
    top: calc(100% + 0.5rem);
    right: 0;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 4px;
    padding: 0.5rem;
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
    z-index: 10;
    width: auto;
  }

  /* lista horizontal */
  .ui-pdp-share__content__list {
    list-style: none;
    margin: 0; padding: 0;
    display: flex; gap: 0.5rem; flex-wrap: nowrap;
  }

  /* ---- NUEVAS REGLAS PARA AGRUPAR Y HOVER ---- */
  .share-item { flex: 1; }
  .share-item a {
    display: flex; flex-direction: column; align-items: center;
    padding: 0.75rem; border-radius: 4px; text-decoration: none; color: #333;
    transition: background-color 0.3s, color 0.3s;
  }
  .share-item i { font-size: 1.4rem; margin-bottom: 0.25rem; }
  .share-mail-item a:hover { background-color: #555; color: #fff; }
  .share-whatsapp-item a:hover { background-color: #25D366; color: #fff; }
  .share-x-item a:hover { background-color: #1DA1F2; color: #fff; }
  .share-facebook-item a:hover { background-color: #3b5998; color: #fff; }

  /* --------------------------------------------- */
  .ui-pdp-share__content.visible { display: block; }

  /* Móvil: botones alineados y menú centrado con wrap si hace falta */
  @media (max-width: 600px) {
    .botones-accion { flex-wrap: nowrap; justify-content: space-around; }
    .btn-accion { flex: 1 1 45%; min-width: 0; max-width: none; padding: 0.5rem; font-size: 0.9rem; }
    .btn-print { flex: 1 1 30%; max-width: none; }
    .share-wrapper { width: auto; }
    .ui-pdp-share__content { left: -140%; transform: translateX(-50%); max-width: 90vw; }
    .ui-pdp-share__content__list { justify-content: space-around; flex-wrap: wrap; gap: 1rem; }
  }

  /* Duplicado del estilo de botón (respetado) */
  .btn-accion {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    padding: 0.75rem; border: 1px solid #eaeaea; border-radius: 4px; background: #fff; color: #333;
    text-decoration: none; cursor: pointer; transition: background-color 0.3s, color 0.3s;
    min-width: 100px; max-width: 120px; font-size: 0.9rem;
  }
  .btn-accion i { font-size: 1.4rem; line-height: 1; }

  /* Botón Imprimir */
  .btn-print:hover { background-color: #555; color: #fff; }

  /* Botón Compartir */
  .btn-share:hover { background-color: #1DA1F2; color: #fff; }

  /* Ajustes responsivos según tu media query existente */
  @media (max-width: 600px) {
    .botones-accion { flex-wrap: nowrap; justify-content: space-around; }
    .btn-accion { flex: 1 1 45%; min-width: 0; max-width: none; padding: 0.5rem; font-size: 0.9rem; }
    .btn-print { flex: 1 1 30%; }
  }

  .titulo-proyectos-similares {
    margin: 0 0 1rem; font-weight: 400; font-size: 1.5rem; color: rgba(0,0,0,0.9);
    display: inline-block; padding: 0 0.5rem;
  }
  .verified-fa { color: #3897f0; font-size: 14px; vertical-align: middle; }
  .user-with-badge { line-height: 24px; vertical-align: middle; }
  .verified-icon{display:inline-grid;place-items:center;vertical-align:middle;width:18px;height:18px;margin-left:4px;border-radius:50%;background:#1d9bf0;color:#fff;font-size:12px;font-weight:900;line-height:1}
.verified-icon::before{content:'✓'}


/* =====================================================================
   ZP ITEM.CSS - Bloque 5 extraído de item.php línea 776
   /* ===========================
   ===================================================================== */

/* ===========================
   Breadcrumb Zonapropiedades
   =========================== */

#scx-bc.scx-bc {
  --scx-fg: #1f2937;
  --scx-muted: #6b7280;
  --scx-accent: #111827;
  --scx-sep: #9ca3af;
  --scx-bg-hover: #f3f4f6;

  display: block;
  width: 100%;
  padding: .35rem 0;
  margin: 0 0 .35rem 0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  font-size: 13px;
  line-height: 1.35;
  overflow: hidden;
  float: none;
  clear: both;
  height: auto;
  min-width: 0;
  text-align: left;
}

#scx-bc .scx-breadcrumbs {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: .35rem;
  margin: 0;
  padding: 0;
  list-style: none !important;
  white-space: nowrap;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

#scx-bc .scx-breadcrumbs::-webkit-scrollbar {
  display: none;
}

#scx-bc .bread-item {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  margin: 0;
  padding: 0;
  color: var(--scx-muted);
  white-space: nowrap;
}

#scx-bc .bread-item::before,
#scx-bc .bread-item::after {
  background: none !important;
  border: 0 !important;
}

#scx-bc .bread-item:not(:last-child)::after {
  content: "/";
  display: inline-block;
  margin-left: .35rem;
  color: var(--scx-sep);
  font-weight: 400;
}

#scx-bc .bread-item a {
  display: inline-block;
  color: var(--scx-fg);
  text-decoration: none;
  padding: .2rem .15rem;
  border-radius: 4px;
  line-height: 1.25;
}

#scx-bc .bread-item a:hover {
  background: var(--scx-bg-hover);
  text-decoration: underline;
}

#scx-bc .bread-item:first-child a::before {
  content: "🏠";
  margin-right: .25rem;
}

#scx-bc .bread-item:last-child a {
  color: var(--scx-accent);
  font-weight: 700;
  pointer-events: none;
  cursor: default;
}

/* Móvil */
@media screen and (max-width: 750px) {
  #scx-bc.scx-bc {
    display: block;
    padding: .25rem 0 .15rem 0;
    margin: 0 0 .25rem 0;
    font-size: 12px;
    line-height: 1.25;
  }

  #scx-bc .scx-breadcrumbs {
    flex-wrap: nowrap;
    overflow-x: auto;
    white-space: nowrap;
    padding-bottom: 2px;
  }

  #scx-bc .bread-item {
    flex: 0 0 auto;
  }

  #scx-bc .bread-item:last-child {
    max-width: 210px;
    overflow: hidden;
  }

  #scx-bc .bread-item:last-child a {
    display: inline-block;
    max-width: 210px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}

/* Móvil muy pequeño */
@media screen and (max-width: 380px) {
  #scx-bc .bread-item:last-child,
  #scx-bc .bread-item:last-child a {
    max-width: 165px;
  }
}


/* =====================================================================
   ZP ITEM.CSS - Bloque 6 extraído de item.php línea 918
   /* ===== ZPI NAMESPACE (evita choques) ===== */
   ===================================================================== */

/* ===== ZPI NAMESPACE (evita choques) ===== */
:root{
  --zpi-brand:#3483fa; --zpi-brand-600:#1f6fe9;
  --zpi-danger:#ff4d4f;
  --zpi-card:#ffffff; --zpi-text:#0f172a;
  --zpi-muted:#64748b; --zpi-border:rgba(2,6,23,.10);
  --zpi-shadow:0 8px 26px rgba(2,6,23,.08); --zpi-r:14px;
}
.zpi-wrap{max-width:1680px;margin:0 auto;padding:12px}
.zpi-card{background:var(--zpi-card);border-radius:var(--zpi-r);box-shadow:var(--zpi-shadow)}
.zpi-pad{padding:14px}

/* Aviso de revisión */
.zpi-alert{
  display:flex;align-items:center;gap:10px;margin-bottom:12px;
  background:linear-gradient(180deg, rgba(255,77,79,.12), rgba(255,77,79,.06));
  border:1px solid rgba(255,77,79,.35); color:#8b0000;border-radius:12px;padding:12px 14px
}
.zpi-alert i{color:var(--zpi-danger)}

/* Encabezado */
/* Encabezado */
.zpi-header{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:start;
  gap:16px;
  margin-bottom:14px;
}

.zpi-titlebox{
  min-width:0;
}

.product_name{
  display:block;
  font-size:clamp(21px,2.5vw,30px);
  line-height:1.15;
  font-weight:850;
  color:var(--zpi-text);
  margin:0;
}

.zpi-pricebox{
  min-width:230px;
  padding:8px 15px;
  border-radius:4px;
  background:linear-gradient(180deg,#ffffff,#f8fbff);
  box-shadow:0 10px 28px rgba(2,6,23,.08);
  text-align:right;
}

.zpi-price-label{
  display:block;
  font-size:12px;
  font-weight:800;
  color:#64748b;
  text-transform:uppercase;
  letter-spacing:.04em;
  margin-bottom:4px;
}

.zpi-price-main{
  display:block;
  font-size:clamp(25px,3vw,34px);
  line-height:1.05;
  font-weight:300;
  color:#111827;
  white-space:nowrap;
}

.zpi-price-uf{
  display:block;
  margin-top:5px;
  font-size:14px;
  font-weight:700;
  color:#475569;
}

.zpi-price-note{
  display:block;
  margin-top:5px;
  font-size:11px;
  color:#94a3b8;
}

@media (max-width:720px){
  .zpi-header{
    grid-template-columns:1fr;
    gap:10px;
  }

  .zpi-pricebox{
    width:100%;
    min-width:0;
    text-align:left;
    padding:8px 13px;
  }

  .zpi-price-main{
    display:inline;
    font-size:clamp(25px,7vw,31px);
    vertical-align:baseline;
  }

  .zpi-price-uf{
    display:inline;
    margin-top:0;
    margin-left:8px;
    font-size:15px;
    font-weight:800;
    color:#475569;
    white-space:nowrap;
    vertical-align:baseline;
  }

  .zpi-price-note{
    display:block;
    margin-top:3px;
  }
}
.zpi-titleline{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.zpi-ribbon{
  --ribbon-bg:#27c2ca;
  --ribbon-bg-dark:#1195a0;
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  padding:5px 18px 5px 20px;
  margin-right:2px;
  background:linear-gradient(180deg,var(--ribbon-bg) 0%, var(--ribbon-bg) 100%);
  color:#fff;
  font-size:14px;
  line-height:1;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
  border-radius:3px 0 0 3px;
  box-shadow:0 6px 16px rgba(11,43,56,.12);
}
.zpi-ribbon::before{
  content:'';
  position:absolute;
  left:-14px;
  top:0;
  width:0;
  height:0;
  border-top:14px solid transparent;
  border-bottom:14px solid transparent;
  border-right:14px solid var(--ribbon-bg-dark);
}
.zpi-ribbon::after{
  content:'';
  position:absolute;
  right:-16px;
  top:0;
  width:0;
  height:0;
  border-top:14px solid transparent;
  border-bottom:14px solid transparent;
  border-left:16px solid var(--ribbon-bg);
}
.zpi-ribbon__text{position:relative;z-index:1;white-space:nowrap}
/* Colores por tipo de cinta */
.zpi-ribbon--new{
  --ribbon-bg:#2563eb;
  --ribbon-bg-dark:#1e40af;
}
.zpi-ribbon--opportunity{
  --ribbon-bg:#0ea5a4;
  --ribbon-bg-dark:#0f766e;
}
.zpi-ribbon--offer{
  --ribbon-bg:#16a34a;
  --ribbon-bg-dark:#166534;
}
.zpi-ribbon--available{
  --ribbon-bg:#22c55e;
  --ribbon-bg-dark:#15803d;
}
.zpi-ribbon--discounted{
  --ribbon-bg:#f97316;
  --ribbon-bg-dark:#c2410c;
}
.zpi-ribbon--urgent{
  --ribbon-bg:#dc2626;
  --ribbon-bg-dark:#991b1b;
}
.zpi-ribbon--featured{
  --ribbon-bg:#1d4ed8;
  --ribbon-bg-dark:#1e3a8a;
}
.zpi-ribbon--exclusive{
  --ribbon-bg:#6d28d9;
  --ribbon-bg-dark:#4c1d95;
}
.zpi-ribbon--reserved{
  --ribbon-bg:#d97706;
  --ribbon-bg-dark:#92400e;
}
.zpi-ribbon--sold{
  --ribbon-bg:#374151;
  --ribbon-bg-dark:#111827;
}
.zpi-ribbon--rented{
  --ribbon-bg:#475569;
  --ribbon-bg-dark:#1e293b;
}
.zpi-ribbon--last_units{
  --ribbon-bg:#be185d;
  --ribbon-bg-dark:#831843;
}
@media (max-width:720px){
  .zpi-titleline{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:10px;
  }

  .zpi-ribbon{
    font-size:14px;
    min-height:24px;
    padding:4px 14px 4px 16px;
    margin-left:12px;
    margin-right:0;
  }

  .zpi-ribbon::before{
    left:-12px;
    border-top-width:12px;
    border-bottom-width:12px;
    border-right-width:12px;
  }

  .zpi-ribbon::after{
    right:-14px;
    border-top-width:12px;
    border-bottom-width:12px;
    border-left-width:14px;
  }

  .zpi-titleline .product_name{
    width:100%;
    margin-top:0;
  }
}

/* Botones contacto superiores */
.zpi-ctas{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:center;
  margin:6px 0 12px;
}
.zpi-ctas .botonws-telefono,
.zpi-ctas .botonws-whatsapp{
  min-height:46px;
  padding:0 18px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  text-decoration:none;
  font-size:14px;
  font-weight:850;
  line-height:1;
  border:1px solid transparent;
  box-shadow:0 10px 24px rgba(15,23,42,.10);
  transition:transform .16s ease, box-shadow .16s ease, background .16s ease, border-color .16s ease;
}
.zpi-ctas .botonws-telefono{
  background:#0f172a;
  border-color:#0f172a;
  color:#fff;
}
.zpi-ctas .botonws-whatsapp{
  background:#16a34a;
  border-color:#16a34a;
  color:#fff;
}
.zpi-ctas .botonws-telefono:hover,
.zpi-ctas .botonws-whatsapp:hover{
  transform:translateY(-1px);
  box-shadow:0 14px 30px rgba(15,23,42,.16);
  color:#fff;
  text-decoration:none;
}
.zpi-ctas .botonws-telefono:hover{background:#111827;border-color:#111827}
.zpi-ctas .botonws-whatsapp:hover{background:#15803d;border-color:#15803d}
@media (max-width:560px){
  .zpi-ctas{gap:8px;justify-content:flex-start}
  .zpi-ctas .botonws-telefono,
  .zpi-ctas .botonws-whatsapp{
    min-height:44px;
    padding:0 14px;
    font-size:13px;
    flex:1 1 calc(50% - 8px);
  }
  .zpi-ctas a[href*=mis-mensajes],
  .zpi-ctas a[href*=crear-cuenta]{
    flex-basis:100%;
  }
}

/* Descripción + favorito */
.product_description{margin:0 0 10px}
.product_description h3{margin:0}

/* ===== Título y descripción refinada ===== */
.zpi-description-title{
  font-size:24px;
  font-weight:400;
  line-height:1.25;
  color:#111827;
  letter-spacing:-.01em;
}

.product_description{
  position:relative;
  font-family:
    "Inter",
    "Helvetica Neue",
    Arial,
    sans-serif;
  font-size:18px;
  line-height:1.58;
  font-weight:400;
  letter-spacing:.002em;
  color:#737373;
  background:#fff;
  overflow:hidden;
}

.product_description p{
  margin:0 0 22px;
}

.product_description p:last-child{
  margin-bottom:0;
}

.product_description strong,
.product_description b{
  color:#404040;
  font-weight:650;
}

.product_description a{
  color:#0b72ff;
  font-weight:600;
  text-decoration:none;
}

.product_description a:hover{
  text-decoration:underline;
}

/* Estado cerrado */
.product_description.zp-desc-collapsed{
  max-height:350px;
}

/* Degradado inferior cuando está cerrada */
.product_description.zp-desc-collapsed::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:95px;
  pointer-events:none;
  background:linear-gradient(
    180deg,
    rgba(255,255,255,0),
    rgba(255,255,255,.92) 55%,
    #fff 100%
  );
}

/* Estado abierto */
.product_description.zp-desc-expanded{
  max-height:none;
}

/* Botón ver descripción */
.zp-desc-toggle-wrap{
  margin-top:12px;
}

.zp-desc-toggle{
  appearance:none;
  border:0;
  background:transparent;
  color:#0b72ff;
  padding:0;
  font-size:14px;
  line-height:1;
  font-weight:600;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:7px;
}

.zp-desc-toggle:hover{
  color:#005bd1;
  text-decoration:underline;
}

.zp-desc-toggle-icon{
  width:8px;
  height:8px;
  border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:rotate(45deg) translateY(-2px);
}

@media (max-width:720px){
  .zpi-description-title{
    font-size:22px;
  }

  .product_description{
    font-size:14px;
    line-height:1.56;
  }

  .product_description.zp-desc-collapsed{
    max-height:330px;
  }

  .product_description.zp-desc-collapsed::after{
    height:85px;
  }

  .zp-desc-toggle{
    font-size:14px;
  }
}

.favagregar{list-style:none;margin:10px 0 0;padding:0;display:flex;justify-content:center}
.favagregar a{color:var(--zpi-brand);text-decoration:none;font-weight:700}

/* Especificaciones */
.description_item{margin-top:10px}
.zpi-specs{display:grid;grid-template-columns:1fr 1fr;gap:10px;list-style:none;margin:0;padding:0}
.zpi-spec{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border:1px dashed var(--zpi-border);border-radius:10px;background:#fff}
.zpi-spec i{opacity:.7}
@media (max-width:560px){.zpi-specs{grid-template-columns:1fr}}

/* Ubicación */
.zpi-location{text-align:center;margin:8px 0 14px}

/* Reporte */
.zpi-report{margin-top:10px}
.zpi-report .zpi-card{padding:12px}
.zpi-report a{color:var(--zpi-text);text-decoration:none;font-weight:700}
.verified-icon{display:inline-grid;place-items:center;vertical-align:middle;width:18px;height:18px;margin-left:4px;border-radius:50%;background:#1d9bf0;color:#fff;font-size:12px;font-weight:900;line-height:1}
.verified-icon::before{content:'✓'}


.zpi-price-line{
  display:flex;
  align-items:baseline;
  justify-content:flex-end;
  gap:9px;
  flex-wrap:wrap;
}

.zpi-price-actions{
  display:flex;
  justify-content:flex-end;
  gap:7px;
  margin-top:8px;
  flex-wrap:wrap;
}

.zpi-mini-action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:34px;
  padding:7px 10px;
  border:1px solid rgba(15,23,42,.12);
  border-radius:999px;
  background:#fff;
  color:#334155;
  font-size:12px;
  font-weight:850;
  line-height:1;
  text-decoration:none;
  cursor:pointer;
  box-shadow:0 4px 14px rgba(2,6,23,.06);
}

.zpi-mini-action:hover{
  background:#0f172a;
  color:#fff;
}

.zpi-mini-action i{
  font-size:14px;
  line-height:1;
}

.zpi-share-mini{
  position:relative;
  display:inline-flex;
}

.zpi-share-mini .ui-pdp-share__content{
  top:calc(100% + 8px);
  right:0;
  left:auto;
  transform:none;
  z-index:50;
}

@media (max-width:720px){
  .zpi-pricebox{
    width:100%;
    min-width:0;
    text-align:left;
    padding:8px 13px;
  }

  .zpi-price-line{
    justify-content:flex-start;
    gap:8px;
  }

  .zpi-price-main{
    display:inline-block;
    font-size:clamp(24px,7vw,31px);
  }

  .zpi-price-uf{
    display:inline-block;
    margin-left:0;
    font-size:15px;
    color:#475569;
    white-space:nowrap;
  }

  .zpi-price-actions{
    justify-content:flex-start;
    margin-top:7px;
  }

  .zpi-mini-action{
    min-height:32px;
    padding:6px 9px;
    font-size:12px;
  }

  .zpi-price-note{
    margin-top:4px;
  }

  .zpi-share-mini .ui-pdp-share__content{
    left:0;
    right:auto;
    transform:none;
    max-width:92vw;
  }
}


/* =====================================================================
   ZP ITEM.CSS - Bloque 7 extraído de item.php línea 2095
   /* Galería optimizada item.php: pocas imágenes iniciales, resto bajo demanda */
   ===================================================================== */

/* Galería optimizada item.php: pocas imágenes iniciales, resto bajo demanda */
.gallery{
  display:flex;
  flex-wrap:wrap;
  gap:3px;
  justify-content:center;
  margin:10px 0 14px;
}
.gallery a{
  flex:1 0 30%;
  max-width:30%;
  aspect-ratio:3/4;
  overflow:hidden;
  border-radius:8px;
  position:relative;
  background:#eef2f7;
}
.gallery a[hidden]{display:none!important}
.gallery img{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:8px;
  display:block;
  content-visibility:auto;
}
@media (hover:hover) and (pointer:fine){
  .gallery img{transition:transform .22s ease}
  .gallery a:hover img{transform:scale(1.035)}
}
@media (max-width:768px){
  .gallery a{flex:1 0 32%;max-width:32%}
}
.gallery-load-more{
  appearance:none;
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  margin:8px 0 18px;
  min-height:44px;
  border:1px solid #dbe3ef;
  border-radius:999px;
  background:#fff;
  color:#0f172a;
  font-size:14px;
  font-weight:850;
  line-height:1;
  padding:0 16px;
  cursor:pointer;
  box-shadow:0 8px 22px rgba(15,23,42,.08);
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease, background .16s ease;
}
.gallery-load-more::before{
  content:"📷";
  margin-right:9px;
  font-size:15px;
  line-height:1;
}
.gallery-load-more:hover{
  transform:translateY(-1px);
  background:#f8fafc;
  border-color:#cbd5e1;
  box-shadow:0 12px 28px rgba(15,23,42,.12);
}
.gallery-load-more:active{transform:translateY(0) scale(.99)}

/* Lightbox liviano */
#lightbox-overlay{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.92);
  display:none;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  z-index:9999;
  padding:12px;
}
#lightbox-content{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
}
#lightbox-overlay img{
  max-width:min(1100px,92vw);
  max-height:82vh;
  border-radius:10px;
  background:#111;
}
#lightbox-close{
  position:absolute;
  top:16px;
  right:24px;
  font-size:30px;
  color:#fff;
  cursor:pointer;
  background:transparent;
  border:none;
  line-height:1;
}
.lightbox-nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  font-size:38px;
  color:#fff;
  cursor:pointer;
  background:rgba(0,0,0,.45);
  border:none;
  border-radius:999px;
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  user-select:none;
}
#prev-img{left:12px}
#next-img{right:12px}
@media (max-width:560px){
  .lightbox-nav{width:40px;height:40px;font-size:30px}
  #prev-img{left:4px}
  #next-img{right:4px}
}


/* =====================================================================
   ZP ITEM.CSS - Bloque 8 extraído de item.php línea 2477
   /* ===== Vista 360 con activación manual ===== */
   ===================================================================== */

/* ===== Vista 360 con activación manual ===== */
.zp360-section{
  margin-top:18px;
}

.zp360-head{
  margin-bottom:12px;
}

.zp360-title{
  margin:0;
  font-size:20px;
  line-height:1.2;
  font-weight:800;
  color:#0f172a;
}

.zp360-shell{
  position:relative;
  width:100%;
  border-radius:4px;
  overflow:hidden;
  background:#0f172a;
  border:1px solid #e5e7eb;
  box-shadow:0 12px 30px rgba(15,23,42,.08);
}

.zp360-viewer{
  width:100%;
  height:min(58vw,520px);
  min-height:320px;
  border-radius:4px;
  overflow:hidden;
  background:#0f172a;
}

/* Estado bloqueado: permite hacer scroll sobre el visor en móvil */
.zp360-viewer.zp360-locked{
  pointer-events:none;
}

/* Capa inicial */
.zp360-lock-layer{
  position:absolute;
  inset:0;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  background:linear-gradient(
    180deg,
    rgba(15,23,42,.10),
    rgba(15,23,42,.42)
  );
  transition:opacity .28s ease, visibility .28s ease;
}

.zp360-lock-content{
  width:min(280px, 88%);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:14px;
  text-align:center;
  transform:translateY(0) scale(1);
  transition:transform .30s ease, opacity .30s ease;
}

.zp360-lock-logo{
  width:min(150px, 55vw);
  height:auto;
  display:block;
  filter:drop-shadow(0 10px 22px rgba(0,0,0,.28));
  user-select:none;
  -webkit-user-drag:none;
}

/* Botón principal tipo switch */
.zp360-btn{
  width:min(245px, 100%);
  min-height:52px;
  padding:6px 7px 6px 18px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.82);
  background:rgba(255,255,255,.96);
  color:#0f172a;
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  font-size:14px;
  font-weight:900;
  line-height:1;
  cursor:pointer;
  box-shadow:0 16px 34px rgba(15,23,42,.26);
  backdrop-filter:blur(10px);
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
}

.zp360-btn:hover{
  transform:translateY(-1px);
  background:#fff;
  border-color:#fff;
  box-shadow:0 20px 42px rgba(15,23,42,.32);
}

.zp360-btn:active{
  transform:translateY(0) scale(.98);
}

.zp360-btn-label{
  display:inline-flex;
  align-items:center;
  gap:8px;
  white-space:nowrap;
}

.zp360-btn-label::before{
  content:"360°";
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:42px;
  height:26px;
  padding:0 7px;
  border-radius:999px;
  background:#f1f5f9;
  color:#0f172a;
  font-size:12px;
  font-weight:950;
  letter-spacing:-.3px;
}

.zp360-switch{
  position:relative;
  width:52px;
  height:34px;
  border-radius:999px;
  background:#111827;
  flex:0 0 auto;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
}

.zp360-switch::before{
  content:"";
  position:absolute;
  top:4px;
  left:4px;
  width:26px;
  height:26px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 3px 8px rgba(15,23,42,.28);
  transition:transform .22s ease;
}

.zp360-switch::after{
  content:"✓";
  position:absolute;
  top:50%;
  right:10px;
  transform:translateY(-50%);
  color:#fff;
  font-size:13px;
  font-weight:950;
  opacity:.95;
}

.zp360-btn:hover .zp360-switch::before{
  transform:translateX(18px);
}

/* Botón pequeño superior derecho tipo switch */
.zp360-toggle-mini{
  position:absolute;
  top:12px;
  right:12px;
  z-index:20;
  min-height:40px;
  padding:5px 6px 5px 14px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.34);
  background:rgba(255,255,255,.94);
  color:#0f172a;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  font-size:13px;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 14px 32px rgba(15,23,42,.28);
  backdrop-filter:blur(10px);
  opacity:0;
  visibility:hidden;
  transform:translateY(-10px) scale(.88);
  transition:opacity .28s ease, transform .28s ease, visibility .28s ease, background .18s ease, box-shadow .18s ease;
}

.zp360-toggle-mini:hover{
  background:#fff;
  box-shadow:0 18px 40px rgba(15,23,42,.34);
}

.zp360-toggle-mini:active{
  transform:translateY(0) scale(.97);
}

.zp360-mini-switch{
  position:relative;
  width:44px;
  height:28px;
  border-radius:999px;
  background:#111827;
  flex:0 0 auto;
}

.zp360-mini-switch::before{
  content:"";
  position:absolute;
  top:3px;
  right:3px;
  width:22px;
  height:22px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 3px 8px rgba(15,23,42,.25);
}

.zp360-mini-switch::after{
  content:"×";
  position:absolute;
  top:50%;
  left:10px;
  transform:translateY(-52%);
  color:#fff;
  font-size:15px;
  font-weight:950;
  line-height:1;
}

/* Estado activo */
.zp360-section.is-active .zp360-lock-layer{
  opacity:0;
  visibility:hidden;
}

.zp360-section.is-active .zp360-lock-content{
  opacity:0;
  transform:translateY(-12px) scale(.90);
}

.zp360-section.is-active .zp360-toggle-mini{
  opacity:1;
  visibility:visible;
  transform:translateY(0) scale(1);
}

.zp360-section.is-active .zp360-viewer{
  pointer-events:auto;
}

@media (max-width:720px){
  .zp360-viewer{
    height:320px;
    min-height:320px;
  }

  .zp360-title{
    font-size:18px;
  }

  .zp360-lock-content{
    width:min(240px, 84%);
    gap:12px;
  }

  .zp360-lock-logo{
    width:min(120px, 48vw);
  }

  .zp360-btn{
    width:min(220px, 100%);
    min-height:48px;
    padding:5px 6px 5px 15px;
    font-size:13px;
  }

  .zp360-btn-label::before{
    min-width:38px;
    height:24px;
    font-size:11px;
  }

  .zp360-switch{
    width:48px;
    height:31px;
  }

  .zp360-switch::before{
    width:23px;
    height:23px;
  }

  .zp360-btn:hover .zp360-switch::before{
    transform:translateX(17px);
  }

  .zp360-toggle-mini{
    top:10px;
    right:10px;
    min-height:36px;
    padding:4px 5px 4px 11px;
    font-size:12px;
    gap:8px;
  }

  .zp360-mini-switch{
    width:40px;
    height:26px;
  }

  .zp360-mini-switch::before{
    width:20px;
    height:20px;
  }
}


/* =====================================================================
   ZP ITEM.CSS - Bloque 9 extraído de item.php línea 2973
   :root{
   ===================================================================== */

:root{
    --zp-primary: #007bff; /* tu color sólido */
    --zp-grad: linear-gradient(90deg, #01579B 0%, #1998CE 100%); /* tu gradiente */
    --zp-text: #fff;
    --zp-max-w: 1200px;
    --zp-max-h: 700px;
  }

  /* CENTRADO y límites */
  .zp-player-wrap{
    width: 100%;
    max-width: var(--zp-max-w);
    margin: 24px auto;             /* centra horizontal */
    display: flex;
    justify-content: center;
  }

  .zp-player{
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;          /* responsivo */
    max-height: var(--zp-max-h);
    background:#000;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 8px 24px rgba(0,0,0,.15);
  }
  @supports not (aspect-ratio: 16 / 9) {
    .zp-player{ height: 0; padding-top: 56.25%; }
    .zp-player > *{ position:absolute; inset:0; }
  }

  .zp-video{
    width:100%; height:100%; display:block;
    object-fit: cover;             /* sin barras negras, centrado visual */
    background:#000;
  }

  /* Botón de play sin imagen externa */
  .zp-overlay{
    position:absolute; left:50%; top:50%; transform:translate(-50%, -50%);
    display:flex; align-items:center; justify-content:center;
    background: rgba(0,0,0,.35);
    border:2px solid rgba(255,255,255,.65);
    border-radius:999px;
    padding:8px;
    cursor:pointer;
    transition: transform .12s ease;
    z-index: 1;
  }
  .zp-overlay:hover{ transform: translate(-50%, -50%) scale(1.05); }
  .zp-play-ico{
    display:grid;
    place-items:center;
    width:58px;
    height:58px;
    border-radius:999px;
    background:rgba(0,0,0,.58);
    color:#fff;
    font-size:32px;
    line-height:1;
    box-shadow:0 10px 26px rgba(0,0,0,.28);
  }
  .zp-overlay.hidden{ display:none; }

  /* Controles */
  .zp-controls{
    position:absolute; inset:auto 0 0 0;
    display:flex; align-items:center; gap:.75rem;
    padding:.6rem .75rem;
    color:var(--zp-text);
    background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.6) 55%);
    z-index:2;
  }
  .zp-btn{
    appearance:none; border:0; outline:0; cursor:pointer;
    background: var(--zp-primary); color:#fff; font-weight:600;
    border-radius:10px; padding:.35rem .6rem; line-height:1; font-size:.9rem;
    box-shadow: 0 2px 8px rgba(0,0,0,.15);
  }
  .zp-btn:active{ transform: translateY(1px); }

  .zp-time{ font-size:.85rem; opacity:.9; white-space:nowrap; }

  .zp-seekbar{
    position: relative; flex:1; height:8px; border-radius:999px;
    background: #ffffff33; overflow:hidden;
  }
  .zp-seekbar .zp-fill{
    position:absolute; inset:0 auto 0 0; width:0%;
    background: var(--zp-grad); pointer-events:none;
  }
  .zp-seek{
    position:absolute; left:0; top:50%; transform: translateY(-50%);
    width:100%; height:24px; opacity:0; cursor:pointer;
    -webkit-appearance:none; appearance:none; background:transparent;
  }

  .zp-volume{
    width:90px; height:6px; border-radius:999px; appearance:none; background:#ffffff33;
    outline:none; cursor:pointer;
  }
  .zp-volume::-webkit-slider-thumb { -webkit-appearance:none; width:14px; height:14px; border-radius:50%; background:#fff; border:2px solid var(--zp-primary);}
  .zp-volume::-moz-range-thumb { width:14px; height:14px; border-radius:50%; background:#fff; border:2px solid var(--zp-primary);}

  .zp-full{ background:transparent; color:#fff; border:1px solid #ffffff55; }


/* =====================================================================
   ZP ITEM.CSS - Bloque 10 extraído de item.php línea 3253
   .zpi-favbtn{
   ===================================================================== */

.zpi-favbtn{
    --brand:#3483fa; --border:rgba(2,6,23,.10);
    display:inline-flex;align-items:center;gap:10px;
    padding:10px 14px;border-radius:999px;background:#fff;border:1px solid var(--border);
    color:#0f172a;font-weight:700;text-decoration:none;cursor:pointer;
    transition:transform .06s ease, box-shadow .2s ease, border-color .2s ease, background .2s ease;
  }
  .zpi-favbtn:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(2,6,23,.08);border-color:var(--brand)}
  .zpi-favbtn.is-on{background:rgba(52,131,250,.08);border-color:var(--brand)}
  .zpi-favbtn__icon{width:18px;height:18px;display:inline-grid;place-items:center;color:#111}
  .zpi-favbtn.is-on .zpi-favbtn__icon{color:var(--brand)}
  .zpi-favbtn.is-on .zpi-favbtn__label::after{content:" ✓";color:var(--brand);font-weight:800}

  /* Ocultamos el <i> original pero sigue en el DOM para que su JS funcione */
  .zpi-visually-hidden{
    position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
    clip:rect(0,0,0,0); white-space:nowrap; border:0;
  }

  /* Toast */
  .zpi-toast{
    position:fixed;left:50%;bottom:22px;transform:translateX(-50%);
    background:#111827;color:#fff;border-radius:10px;padding:10px 14px;
    box-shadow:0 8px 20px rgba(0,0,0,.25);opacity:0;pointer-events:none;
    transition:opacity .2s ease, transform .2s ease; z-index:99999; font-weight:600
  }
  .zpi-toast.show{opacity:1;transform:translateX(-50%) translateY(-4px)}


/* =====================================================================
   ZP ITEM.CSS - Bloque 11 extraído de item.php línea 3364
   /* ===== CONTENEDOR HÉROE ===== */
   ===================================================================== */

/* ===== CONTENEDOR HÉROE ===== */
  .zp-building-shell{
    margin-top:18px;
    padding:14px 16px;
    border-radius:18px;
    background:
      radial-gradient(circle at 0% 0%,#e0f2fe,transparent 55%),
      linear-gradient(135deg,#f9fafb,#e5e7eb);
    overflow:hidden;
  }

  .zp-building-shell::before{
    content:"Resumen del Inmueble";
    display:block;
    font-size:13px;
    font-weight:600;
    color:#111827;
    margin-bottom:8px;
  }

  /* ===== CONTENEDOR GENERAL ===== */
  .zp-building{
    margin-top:6px;
    display:flex;
    align-items:center;
    gap:16px;
    flex-wrap:nowrap;
    font-family:-apple-system,BlinkMacSystemFont,system-ui,"Segoe UI",sans-serif;
    opacity:0;
    transform:translateY(8px);
    animation:zp-building-enter .45s ease-out forwards;
  }

  /* ===== COLUMNA ASCENSOR ===== */
  .zp-building__shaft{
    flex:0 0 12px;
    width:12px;
    height:200px;
    border-radius:999px;
    border:1px solid rgba(15,23,42,.12);
    background:linear-gradient(to bottom,#e5e7eb,#f9fafb);
    position:relative;
    overflow:hidden;
    box-shadow:0 4px 10px rgba(15,23,42,.15);
  }

  .zp-building__elevator{
    position:absolute;
    left:2px;
    width:8px;
    height:calc(100% / var(--zp-floors, 12));
    border-radius:999px;
    background:#0ea5e9;
    box-shadow:0 0 10px rgba(14,165,233,.8);
    bottom:calc((var(--zp-floor, 1) - 1) * (100% / var(--zp-floors, 12)));
    animation:zp-elevator-pulse 1.3s infinite;
  }

  /* ===== CUERPO DEL EDIFICIO ===== */
  .zp-building__body{
    flex:0 0 82px;
    width:82px;
    height:200px;
    border-radius:14px;
    border:1px solid rgba(15,23,42,.12);
    background:linear-gradient(to bottom,#e5e7eb,#f9fafb);
    display:flex;
    flex-direction:column-reverse;
    padding:4px;
    box-shadow:0 6px 14px rgba(15,23,42,.18);
    overflow:hidden;
  }

  .zp-building__floor{
    flex:1;
    min-height:8px;
    margin:1px 0;
    border-radius:6px;
    background:#d4d4d8;
    position:relative;
  }

  .zp-building__floor::before{
    content:"";
    position:absolute;
    inset:2px;
    border-radius:5px;
    box-shadow:inset 0 0 0 1px rgba(15,23,42,.08);
  }

  .zp-building__floor span{
    position:absolute;
    right:6px;
    top:3px;
    font-size:9px;
    color:#9ca3af;
  }

  .zp-building__floor.is-active{
    background:#2563eb;
    animation:zp-floor-pulse 1.4s infinite;
  }

  .zp-building__floor.is-active::before{
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.25);
  }

  .zp-building__floor.is-active span{
    color:#f9fafb;
    font-weight:600;
  }

  /* ===== TEXTO PRINCIPAL ===== */
  .zp-building__label{
    flex:1 1 auto;
    min-width:0;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:5px;
  }

  .zp-building__chip{
    display:inline-flex;
    align-items:center;
    padding:3px 10px;
    border-radius:999px;
    background:#2563eb;
    color:#fff;
    font-size:12px;
    font-weight:600;
    box-shadow:0 6px 14px rgba(37,99,235,.35);
  }

  .zp-building__chip-icon{
    width:10px;
    height:10px;
    border-radius:3px;
    margin-right:6px;
    background:linear-gradient(135deg,#bfdbfe,#1d4ed8);
  }

  .zp-building__caption{
    font-size:12px;
    color:#6b7280;
    line-height:1.25;
  }

  .zp-building__score{
    font-size:11px;
    color:#4b5563;
    margin-top:2px;
  }

  /* ===== BADGE ASCENSOR ===== */
  .zp-building__badge{
    display:inline-flex;
    align-items:center;
    padding:3px 8px;
    border-radius:999px;
    font-size:11px;
    font-weight:500;
    margin-top:2px;
  }

  .zp-building__badge--ok{
    background:#e0f2fe;
    color:#1d4ed8;
  }

  .zp-building__badge--warn{
    background:#fee2e2;
    color:#b91c1c;
  }

  .zp-building__badge-dot{
    width:7px;
    height:7px;
    border-radius:999px;
    margin-right:6px;
    background:currentColor;
    box-shadow:0 0 0 3px rgba(255,255,255,.6);
  }

  /* ===== AMENITIES DIBUJADOS ===== */
  .zp-building__amenities{
    width:100%;
    max-width:100%;
    display:flex;
    flex-direction:row;
    align-items:stretch;
    gap:8px;
    flex-wrap:wrap;
    overflow-x:hidden;
    overflow-y:hidden;
    padding:4px 0 2px;
    margin:4px 0 0;
  }

  @supports (overflow: clip){
    .zp-building__amenities{
      overflow-x:clip;
      overflow-y:clip;
    }
  }

  .zp-amenityCard{
    flex:0 0 82px;
    width:82px;
    height:82px;
    border-radius:4px;
    padding:8px;
    box-shadow:0 6px 14px rgba(15,23,42,.2);
    position:relative;
    overflow:hidden;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    transform-origin:center bottom;
    background:linear-gradient(135deg,#e5e7eb,#9ca3af);
    opacity:0;
    transform:translateY(6px) scale(.97);
    animation:zp-amenity-pop .35s ease-out forwards;
  }

  .zp-building__amenities .zp-amenityCard:nth-child(1){ animation-delay:.10s; }
  .zp-building__amenities .zp-amenityCard:nth-child(2){ animation-delay:.16s; }
  .zp-building__amenities .zp-amenityCard:nth-child(3){ animation-delay:.22s; }
  .zp-building__amenities .zp-amenityCard:nth-child(4){ animation-delay:.28s; }
  .zp-building__amenities .zp-amenityCard:nth-child(5){ animation-delay:.34s; }
  .zp-building__amenities .zp-amenityCard:nth-child(6){ animation-delay:.40s; }
  .zp-building__amenities .zp-amenityCard:nth-child(7){ animation-delay:.46s; }
  .zp-building__amenities .zp-amenityCard:nth-child(8){ animation-delay:.52s; }

  .zp-amenityCard__iconBubble{
    width:66px;
    height:40px;
    border-radius:8px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:rgba(15,23,42,.25);
    backdrop-filter:blur(2px);
    font-size:26px;
    color:#f9fafb;
  }

  .zp-amenityCard__label{
    font-size:10px;
    font-weight:500;
    color:#f9fafb;
    text-shadow:0 1px 2px rgba(15,23,42,.6);
    line-height:1.15;
  }

  .zp-amenityCard__sub{
    font-size:9px;
    color:#e5e7eb;
    opacity:.85;
    line-height:1.1;
  }

  /* ===== FONDOS ESPECIALES POR AMENITY ===== */
  .zp-amenityCard--piscinaxp{
    background:
      radial-gradient(circle at 20% 0%,#e0f2fe,transparent 55%),
      radial-gradient(circle at 80% 120%,#1d4ed8,transparent 55%),
      linear-gradient(to bottom,#0ea5e9,#1d4ed8);
  }

  .zp-amenityCard--piscinaxp::before{
    content:"";
    position:absolute;
    inset:40% -20% -10% -20%;
    background:
      repeating-linear-gradient(
        -45deg,
        rgba(255,255,255,.35) 0,
        rgba(255,255,255,.35) 2px,
        transparent 2px,
        transparent 6px
      );
    opacity:.3;
  }

  .zp-amenityCard--quinchoxp{
    background:
      radial-gradient(circle at 10% 0%,#fed7aa,transparent 55%),
      linear-gradient(to bottom,#f97316,#b91c1c);
  }

  .zp-amenityCard--gimnasioxp{
    background:
      radial-gradient(circle at 0% 0%,#4b5563,transparent 55%),
      linear-gradient(to bottom,#111827,#1f2937);
  }

  .zp-amenityCard--jardinxp{
    background:
      radial-gradient(circle at 0% 0%,#bbf7d0,transparent 55%),
      linear-gradient(to bottom,#22c55e,#15803d);
  }

  .zp-amenityCard--terrazaxp{
    background:
      radial-gradient(circle at 0% 0%,#fee2e2,transparent 55%),
      linear-gradient(to bottom,#f97316,#4b5563);
  }

  .zp-amenityCard--juegosinfantilxp{
    background:
      radial-gradient(circle at 0% 0%,#f9a8d4,transparent 55%),
      radial-gradient(circle at 80% 120%,#60a5fa,transparent 55%),
      linear-gradient(to bottom,#ec4899,#6366f1);
  }

  .zp-amenityCard--mascotasxp{
    background:
      radial-gradient(circle at 0% 0%,#fed7aa,transparent 55%),
      linear-gradient(to bottom,#f97316,#7c2d12);
  }

  .zp-amenityCard--lavadorasxp{
    background:
      radial-gradient(circle at 0% 0%,#e5e7eb,transparent 55%),
      linear-gradient(to bottom,#0f172a,#475569);
  }

  .zp-amenityCard--bodegaxp{
    background:
      radial-gradient(circle at 0% 0%,#fef9c3,transparent 55%),
      linear-gradient(to bottom,#f97316,#92400e);
  }

  .zp-amenityCard--unicoaccesoxp{
    background:
      radial-gradient(circle at 0% 0%,#fee2e2,transparent 55%),
      linear-gradient(to bottom,#f97316,#111827);
  }

  .zp-amenityCard--contraincendioxp{
    background:
      radial-gradient(circle at 0% 0%,#fecaca,transparent 55%),
      linear-gradient(to bottom,#dc2626,#7f1d1d);
  }

  .zp-amenityCard--concerjeriaxp{
    background:
      radial-gradient(circle at 0% 0%,#e0f2fe,transparent 55%),
      linear-gradient(to bottom,#0ea5e9,#1d4ed8);
  }

  .zp-amenityCard--estacionamientoszp,
  .zp-amenityCard--area,
  .zp-amenityCard--area_build,
  .zp-amenityCard--room,
  .zp-amenityCard--broom,
  .zp-amenityCard--gastocomunzp,
  .zp-amenityCard--orientacionxp{
    background:
      radial-gradient(circle at 0% 0%,#e5e7eb,transparent 55%),
      linear-gradient(to bottom,#4b5563,#111827);
  }

  /* ===== ANIMACIONES ===== */
  @keyframes zp-building-enter{
    0%{opacity:0;transform:translateY(8px);}
    100%{opacity:1;transform:translateY(0);}
  }

  @keyframes zp-floor-pulse{
    0%{transform:scale(1);box-shadow:0 0 0 0 rgba(37,99,235,.7);}
    60%{transform:scale(1.03);box-shadow:0 0 0 10px rgba(37,99,235,0);}
    100%{transform:scale(1);box-shadow:0 0 0 0 rgba(37,99,235,0);}
  }

  @keyframes zp-elevator-pulse{
    0%{transform:scale(1);}
    50%{transform:scale(1.05);}
    100%{transform:scale(1);}
  }

  @keyframes zp-amenity-pop{
    0%{transform:translateY(6px) scale(.97);opacity:0;}
    100%{transform:translateY(0) scale(1);opacity:1;}
  }

  /* ===== MODO CELULAR ===== */
  @media (max-width:640px){
    .zp-building-shell{
      padding:12px;
      border-radius:16px;
    }

    .zp-building{
      align-items:flex-start;
      gap:10px;
      flex-wrap:nowrap;
    }

    .zp-building__shaft{
      flex:0 0 10px;
      width:10px;
      height:170px;
    }

    .zp-building__elevator{
      left:2px;
      width:6px;
    }

    .zp-building__body{
      flex:0 0 72px;
      width:72px;
      height:170px;
      border-radius:12px;
    }

    .zp-building__floor span{
      right:5px;
      top:2px;
      font-size:8px;
    }

    .zp-building__label{
      flex:1 1 auto;
      min-width:0;
      max-width:calc(100% - 10px);
      padding-top:0;
    }

    .zp-building__chip{
      font-size:11px;
      padding:3px 9px;
    }

    .zp-building__caption{
      font-size:11px;
    }

    .zp-building__badge{
      font-size:10.5px;
      padding:3px 7px;
    }

    .zp-building__score{
      font-size:10.5px;
    }

    .zp-building__amenities{
      display:flex;
      flex-direction:row;
      align-items:stretch;
      gap:8px;
      width:100%;
      max-width:100%;
      overflow-x:auto;
      overflow-y:hidden;
      padding:3px 0 8px;
      margin-top:4px;
      -webkit-overflow-scrolling:touch;
      scroll-snap-type:x proximity;
      scrollbar-width:none;
    }

    .zp-building__amenities::-webkit-scrollbar{
      display:none;
    }

    .zp-amenityCard{
      flex:0 0 78px;
      width:78px;
      height:80px;
      padding:7px;
      scroll-snap-align:start;
    }

    .zp-amenityCard__iconBubble{
      width:64px;
      height:39px;
      font-size:24px;
    }

    .zp-amenityCard__label{
      font-size:9.5px;
    }
  }

  /* ===== ACCESIBILIDAD / PERFORMANCE ===== */
  @media (prefers-reduced-motion:reduce){
    .zp-building,
    .zp-building__elevator,
    .zp-building__floor.is-active,
    .zp-amenityCard{
      animation:none !important;
      opacity:1;
      transform:none;
    }
  }


/* =====================================================================
   ZP ITEM.CSS - Bloque 12 extraído de item.php línea 4313
   /* =================== ZP TOUR INTERACTIVO PRO (namespaced zptintv) =================== */
   ===================================================================== */

/* =================== ZP TOUR INTERACTIVO PRO (namespaced zptintv) =================== */
  .zptintv{margin:16px 0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial}
  .zptintv *{box-sizing:border-box}

  .zptintv-card{
    border:1px solid #e5e7eb;
    border-radius:18px;
    overflow:hidden;
    background:#fff;
    box-shadow:0 12px 30px rgba(2,6,23,.08);
  }

  .zptintv-hd{
    padding:12px 14px;
    display:flex;
    gap:12px;
    align-items:flex-start;
    justify-content:space-between;
    border-bottom:1px solid #eef2f7;
    flex-wrap:wrap;
  }
  .zptintv-title{margin:0;font-weight:950;color:#0f172a;font-size:15px;letter-spacing:-.2px}
  .zptintv-sub{margin:4px 0 0;color:#475569;font-size:12px;line-height:1.25}

  /* Buttons “social” */
  .zptintv-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
  .zptintv-btn{
    appearance:none;
    border:1px solid rgba(15,23,42,.12);
    background:rgba(248,250,252,.92);
    color:#0f172a;
    border-radius:999px;
    padding:9px 12px;
    font-weight:950;
    font-size:13px;
    cursor:pointer;
    display:inline-flex;
    gap:8px;
    align-items:center;
    box-shadow:0 8px 18px rgba(2,6,23,.08);
    transition:transform .12s ease, box-shadow .12s ease, background .12s ease;
    touch-action:manipulation;
  }
  .zptintv-btn:hover{transform:translateY(-1px);box-shadow:0 12px 24px rgba(2,6,23,.12);background:#fff}
  .zptintv-btn.primary{background:#0f172a;color:#fff;border-color:#0f172a}
  .zptintv-btn.primary:hover{background:#111827}
  .zptintv-btn:focus-visible{outline:3px solid rgba(37,99,235,.55);outline-offset:3px}

  /* Layout: sidebar + view */
  .zptintv-layout{
    display:grid;
    grid-template-columns: 300px 1fr;
    min-height: 380px;
  }
  @media (max-width: 1024px){
    .zptintv-layout{grid-template-columns:1fr;}
  }

  /* Sidebar */
  .zptintv-side{
    border-right:1px solid #eef2f7;
    background:linear-gradient(180deg,#ffffff,#f8fafc);
    padding:12px 10px;
    overflow:auto;
  }
  @media (max-width: 1024px){
    .zptintv-side{border-right:0;border-bottom:1px solid #eef2f7; max-height: 240px;}
  }

  .zptintv-sideTitle{font-weight:950;color:#0f172a;font-size:13px;margin:0 0 10px;padding:0 6px}
  .zptintv-baseCard{
    display:flex; gap:10px; align-items:center;
    padding:10px; margin:0 6px 10px;
    border-radius:16px;
    background:#fff;
    border:1px solid rgba(15,23,42,.08);
    box-shadow:0 10px 22px rgba(2,6,23,.06);
  }
  .zptintv-thumb{
    width:52px;height:52px;border-radius:14px;overflow:hidden;
    background:#e5e7eb;flex:0 0 auto;
    box-shadow:0 10px 22px rgba(2,6,23,.10);
  }
  .zptintv-thumb img{width:100%;height:100%;object-fit:cover;display:block}
  .zptintv-baseTxt{min-width:0}
  .zptintv-baseName{font-weight:950;color:#0f172a;font-size:13px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .zptintv-baseSub{margin-top:4px;color:#64748b;font-size:11px;font-weight:900}
  .zptintv-baseBtn{
    margin-left:auto;
    appearance:none;border:1px solid rgba(15,23,42,.12);
    background:rgba(248,250,252,.95);
    border-radius:999px;
    padding:8px 10px;
    font-weight:950;font-size:12px;
    cursor:pointer;
  }
  .zptintv-baseBtn:hover{background:#fff}

  .zptintv-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
  .zptintv-li{
    display:flex;align-items:center;gap:10px;
    padding:10px 10px;border-radius:16px;
    background:#fff;
    border:1px solid rgba(15,23,42,.08);
    box-shadow:0 8px 18px rgba(2,6,23,.06);
    cursor:pointer;
    transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease;
    user-select:none;
  }
  .zptintv-li:hover{transform:translateY(-1px);box-shadow:0 12px 24px rgba(2,6,23,.10)}
  .zptintv-li.is-active{border-color:rgba(37,99,235,.55);box-shadow:0 0 0 3px rgba(37,99,235,.12), 0 14px 28px rgba(2,6,23,.10)}
  .zptintv-li:focus-visible{outline:3px solid rgba(37,99,235,.55);outline-offset:3px}

  .zptintv-badgeN{
    width:26px;height:26px;border-radius:999px;
    display:grid;place-items:center;
    background:rgba(56,189,248,.14);
    border:1px solid rgba(56,189,248,.22);
    color:#0f172a;font-weight:950;font-size:12px;
    flex:0 0 auto;
  }
  .zptintv-liTxt{min-width:0; flex:1}
  .zptintv-liName{font-weight:950;color:#0f172a;font-size:13px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .zptintv-liSub{margin-top:3px;font-size:11px;color:#64748b;font-weight:900}
  .zptintv-liMini{
    width:46px;height:46px;border-radius:14px;overflow:hidden;
    background:#e5e7eb;flex:0 0 auto;
    border:1px solid rgba(15,23,42,.08);
    box-shadow:0 10px 22px rgba(2,6,23,.10);
  }
  .zptintv-liMini img{width:100%;height:100%;object-fit:cover;display:block}

  /* View */
  .zptintv-view{
    position:relative;
    background:#0b1220;
    aspect-ratio:16/9;
    max-height:620px;
    width:100%;
    overflow:hidden;
  }
  @media (max-width:720px){
    .zptintv-view{aspect-ratio:4/3; max-height:520px;}
  }

  .zptintv-img{
    position:absolute; inset:0;
    width:100%; height:100%;
    object-fit:cover;
    object-position:50% 50%;
    display:block;
    user-select:none;
    will-change: object-position, transform, opacity;
    transition: opacity .18s ease, transform .28s ease;
    transform: scale(1);
  }
  .zptintv-img.is-switching{
    opacity:.18;
    transform:scale(1.02);
  }

  /* Overlay + dots */
  .zptintv-overlay{position:absolute; inset:0; pointer-events:none}
  .zptintv-dotWrap{position:absolute; transform:translate(-50%,-50%); pointer-events:auto}

  .zptintv-dot{
    width:22px;height:22px;border-radius:999px;border:0;cursor:pointer;
    background:#38bdf8; position:relative;
    box-shadow:0 10px 22px rgba(0,0,0,.28);
    touch-action:manipulation;
  }
  .zptintv-dot span{position:absolute; inset:6px; border-radius:999px; background:#0b1220; display:block}
  .zptintv-dot::before{content:""; position:absolute; inset:-14px; border-radius:999px; background:transparent}

  /* Aura GPS intermitente */
  .zptintv-dot::after{
    content:""; position:absolute; inset:-6px; border-radius:999px;
    border:2px solid rgba(56,189,248,.95);
    transform:scale(.55); opacity:.9;
    animation:zptintv-ripple 1.25s infinite;
  }
  .zptintv-dotWrap::after{
    content:""; position:absolute; left:50%; top:50%;
    width:44px; height:44px; border-radius:999px;
    transform:translate(-50%,-50%) scale(.35);
    border:2px solid rgba(56,189,248,.55);
    opacity:.6; animation:zptintv-ripple2 1.25s infinite;
    pointer-events:none;
  }
  @keyframes zptintv-ripple{
    0%{transform:scale(.55);opacity:.85}
    70%{transform:scale(1.45);opacity:0}
    100%{transform:scale(1.45);opacity:0}
  }
  @keyframes zptintv-ripple2{
    0%{transform:translate(-50%,-50%) scale(.35);opacity:.55}
    70%{transform:translate(-50%,-50%) scale(1.65);opacity:0}
    100%{transform:translate(-50%,-50%) scale(1.65);opacity:0}
  }

  .zptintv-dotWrap.is-active .zptintv-dot{background:#2563eb}
  .zptintv-dotWrap.is-active::after{border-color:rgba(37,99,235,.55)}
  .zptintv-dotWrap.is-active .zptintv-dot::after{border-color:rgba(37,99,235,.95)}

  /* Pulse extra al seleccionar desde lista */
  .zptintv-dotWrap.is-pulse{
    animation:zptintv-pulse .55s ease-out;
  }
  @keyframes zptintv-pulse{
    0%{transform:translate(-50%,-50%) scale(1)}
    40%{transform:translate(-50%,-50%) scale(1.18)}
    100%{transform:translate(-50%,-50%) scale(1)}
  }

  /* Label SIEMPRE visible (nítido) */
  .zptintv-tip{
    margin-top:9px;
    display:inline-flex;
    align-items:center;
    max-width:min(72vw, 320px);
    padding:6px 9px;
    border-radius:999px;
    background:rgba(11,18,32,.92);
    border:1px solid rgba(255,255,255,.14);
    color:#fff;
    font-size:11px;
    font-weight:950;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    box-shadow:0 10px 22px rgba(0,0,0,.25);
    pointer-events:none;
    text-shadow:0 1px 2px rgba(0,0,0,.35);
  }

  /* Pan buttons */
  .zptintv-pan{
    position:absolute; right:12px; top:50%;
    transform:translateY(-50%);
    display:flex; flex-direction:column; gap:10px;
    z-index:5; pointer-events:none;
  }
  .zptintv-panBtn{
    pointer-events:auto;
    width:42px;height:42px;border-radius:999px;
    border:1px solid rgba(255,255,255,.18);
    background:rgba(11,18,32,.75);
    color:#fff; display:grid; place-items:center;
    cursor:pointer; box-shadow:0 14px 30px rgba(0,0,0,.25);
    transition: transform .12s ease, background .12s ease;
    touch-action:manipulation;
  }
  .zptintv-panBtn:hover{transform:translateY(-1px);background:rgba(11,18,32,.88)}
  .zptintv-panHint{
    margin-top:6px; font-size:11px; font-weight:950;
    color:rgba(255,255,255,.92);
    background:rgba(11,18,32,.55);
    border:1px solid rgba(255,255,255,.12);
    padding:6px 9px; border-radius:999px; text-align:center;
    pointer-events:none;
  }

  /* Pan indicator */
  .zptintv-panInd{
    position:absolute;
    left:12px;
    top:12px;
    bottom:12px;
    width:12px;
    border-radius:999px;
    background:rgba(255,255,255,.14);
    border:1px solid rgba(255,255,255,.16);
    box-shadow: inset 0 0 0 1px rgba(0,0,0,.18);
    backdrop-filter: blur(6px);
    pointer-events:none;
    display:none;
    z-index:5;
  }
  .zptintv-panInd .thumb{
    position:absolute;
    left:50%;
    transform:translateX(-50%);
    width:8px;
    height:44px;
    border-radius:999px;
    background:rgba(56,189,248,.92);
    box-shadow:0 10px 22px rgba(0,0,0,.25);
  }
  .zptintv-panInd .pct{
    position:absolute;
    left:20px;
    top:0;
    padding:5px 8px;
    border-radius:999px;
    background:rgba(11,18,32,.72);
    border:1px solid rgba(255,255,255,.14);
    color:#fff;
    font-size:11px;
    font-weight:950;
    text-shadow:0 1px 2px rgba(0,0,0,.35);
    white-space:nowrap;
  }

  /* Onboarding */
  .zptintv-hint{
    position:absolute;
    left:50%;
    bottom:14px;
    transform:translateX(-50%);
    background:rgba(255,255,255,.92);
    border:1px solid rgba(15,23,42,.10);
    box-shadow:0 16px 40px rgba(2,6,23,.18);
    border-radius:999px;
    padding:10px 12px;
    color:#0f172a;
    font-weight:950;
    font-size:12px;
    display:flex;
    gap:10px;
    align-items:center;
    z-index:6;
  }
  .zptintv-hint .dot{
    width:10px;height:10px;border-radius:999px;background:#38bdf8;
    box-shadow:0 0 0 6px rgba(56,189,248,.22);
  }

  /* Footer */
  .zptintv-ft{
    padding:10px 14px;
    border-top:1px solid #eef2f7;
    color:#475569;
    font-size:12px;
    display:flex;
    gap:10px;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
  }
  .zptintv-ft b{color:#0f172a}
  .zptintv-state{opacity:.95}
  .zptintv-state[aria-live]{min-height:16px}

  .zptintv-view.canPan{cursor:ns-resize}
  .zptintv-view.dragging{cursor:grabbing}

  @media (prefers-reduced-motion: reduce){
    .zptintv-img{transition:none}
    .zptintv-dot::after,.zptintv-dotWrap::after{animation:none}
    .zptintv-btn,.zptintv-li{transition:none}
    .zptintv-dotWrap.is-pulse{animation:none}
  }


/* =====================================================================
   ZP ITEM.CSS - Bloque 13 extraído de item.php línea 5318
   /* === Esfuerzo de arriendo (card clara, estilo similar al widget de precios) === */
   ===================================================================== */

/* === Esfuerzo de arriendo (card clara, estilo similar al widget de precios) === */
.zpi-effort{
  margin:12px 0 0;
  padding:14px 16px;
  border-radius:16px;
  background:#ffffff;
  border:1px solid #e5e7eb;
  box-shadow:0 8px 20px rgba(15,23,42,.04);
  max-width: 520px;
}
.zpi-effort-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
  margin-bottom:8px;
}
.zpi-effort-title{
  font-size:14px;
  font-weight:700;
  color:#111827;
}
.zpi-effort-head p{
  margin:2px 0 0;
  font-size:12px;
  color:#6b7280;
}

/* Pill de estado */
.zpi-effort-pill{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:4px 10px;
  border-radius:999px;
  font-size:11px;
  font-weight:600;
  white-space:nowrap;
}
.zpi-effort-pill-dot{
  width:8px;
  height:8px;
  border-radius:999px;
  background:#9ca3af;
}

/* Estados de la pill */
.zpi-effort-pill--neutral{
  background:#f3f4f6;
  color:#4b5563;
}
.zpi-effort-pill--neutral .zpi-effort-pill-dot{
  background:#9ca3af;
}
.zpi-effort-pill--low{
  background:rgba(34,197,94,.12);
  color:#15803d;
}
.zpi-effort-pill--low .zpi-effort-pill-dot{
  background:#22c55e;
}
.zpi-effort-pill--mid{
  background:rgba(250,204,21,.14);
  color:#92400e;
}
.zpi-effort-pill--mid .zpi-effort-pill-dot{
  background:#facc15;
}
.zpi-effort-pill--high{
  background:rgba(248,113,113,.16);
  color:#b91c1c;
}
.zpi-effort-pill--high .zpi-effort-pill-dot{
  background:#ef4444;
}

/* Control de ingreso */
.zpi-effort-control label{
  font-size:11px;
  color:#4b5563;
}
.zpi-effort-inputWrap{
  margin-top:4px;
  display:flex;
  align-items:center;
  gap:4px;
  background:#f9fafb;
  border-radius:999px;
  padding:5px 11px;
  border:1px solid #d1d5db;
}
.zpi-effort-inputWrap span{
  font-size:12px;
  color:#6b7280;
}

/* Input como texto para poder formatear con puntos */
.zpi-effort-inputWrap input{
  border:none;
  outline:none;
  background:transparent;
  color:#111827;
  font-size:13px;
  width:100%;
}

/* Stepper personalizado (flechas grandes) */
.zpi-effort-stepper{
  display:flex;
  flex-direction:column;
  margin-left:4px;
}
.zpi-effort-stepper button{
  border:none;
  outline:none;
  cursor:pointer;
  width:22px;
  height:16px;
  font-size:11px;
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#e5e7eb;
  color:#374151;
  padding:0;
}
.zpi-effort-stepper button:first-child{
  border-radius:999px 999px 0 0;
  border-bottom:1px solid #d1d5db;
}
.zpi-effort-stepper button:last-child{
  border-radius:0 0 999px 999px;
}

/* Resultado */
.zpi-effort-result{
  margin-top:10px;
}
.zpi-effort-bar{
  width:100%;
  height:6px;
  border-radius:999px;
  background:#e5e7eb;
  overflow:hidden;
}
.zpi-effort-fill{
  height:100%;
  width:0;
  border-radius:inherit;
  background:linear-gradient(90deg,#22c55e,#eab308,#ef4444);
  transition:width .2s ease;
}
.zpi-effort-labels{
  margin-top:4px;
  display:flex;
  justify-content:space-between;
  font-size:11px;
  color:#6b7280;
}
.zpi-effort-labels span:first-child{
  font-weight:600;
  color:#111827;
}
.zpi-effort-foot{
  margin-top:4px;
  font-size:11px;
  color:#9ca3af;
}

/* Ajustes mobile */
@media (max-width:640px){
  .zpi-effort{
    margin:10px 0;
    border-radius:14px;
  }
  .zpi-effort-head{
    flex-direction:column;
    align-items:flex-start;
  }
}


/* =====================================================================
   ZP ITEM.CSS - Bloque 14 extraído de item.php línea 5673
   /* ===== ESPACIADO Y LAYOUT EXTERNO ===== */
   ===================================================================== */

/* ===== ESPACIADO Y LAYOUT EXTERNO ===== */
    .agent-card-wrapper{
        max-width: 480px;
        width: 100%;
        margin: 24px auto 32px auto;   /* separa de arriba/abajo */
        padding: 0 12px;
    }

    /* ============ CARD DEL AGENTE ============ */
    .agent-card {
        --card-radius: 1rem;
        --border-color: rgba(0,0,0,.06);
        --text-main: #1a1a1a;
        --text-dim: #6b6b6b;
        --bg-soft: #f9f9f9;
        --accent: #0057ff;
        --accent-hover: #0043c4;
        --border-radius-btn: .6rem;

        font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
        display: flex;
        background-color: #fff;
        border: 1px solid var(--border-color);
        border-radius: var(--card-radius);
        box-shadow:
            0 24px 48px rgba(0,0,0,.07),
            0 4px 10px rgba(0,0,0,.04);
        overflow: hidden;
    }

    .agent-card__photo {
        flex-shrink: 0;
        width: 120px;
        min-width: 120px;
        background-color: var(--bg-soft);
        position: relative;
    }
    .agent-card__photo img {
        width: 100%;
        height: 100%;
        display: block;
        object-fit: cover;
    }

    .agent-card__body {
        flex: 1;
        padding: 1rem 1.25rem 1.25rem;
        display: flex;
        flex-direction: column;
        min-width: 0;
    }

    .agent-card__header h2 {
        margin: 0;
        font-size: 1rem;
        font-weight: 600;
        color: var(--text-main);
        line-height: 1.2;
        word-break: break-word;
    }
    .agent-card__role {
        margin: .25rem 0 0;
        font-size: .8rem;
        line-height: 1.2;
        font-weight: 500;
        color: var(--text-dim);
    }

    .agent-card__contact {
        display: grid;
        grid-template-columns: 1fr;
        row-gap: .5rem;
        margin-top: .9rem;
        font-size: .8rem;
        color: var(--text-main);
    }

    .agent-card__row {
        display: flex;
        align-items: flex-start;
        column-gap: .5rem;
        line-height: 1.3;
        word-break: break-word;
    }

    .agent-card__icon {
        flex-shrink: 0;
        width: 16px;
        height: 16px;
        opacity: .7;
    }

    .agent-card__label {
        font-weight: 500;
        color: var(--text-dim);
        font-size: .75rem;
        line-height: 1.2;
        margin-bottom: .15rem;
    }

    .agent-card__value {
        font-size: .8rem;
        color: var(--text-main);
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: .5rem;
    }

    .agent-card__value a {
        color: var(--text-main);
        text-decoration: none;
        word-break: break-word;
    }
    .agent-card__value a:hover {
        text-decoration: underline;
    }

    /* Botón "Ver correo" */
    .agent-reveal-btn{
        background-color: transparent;
        border: 1px solid var(--border-color);
        color: var(--text-main);
        font-size: .7rem;
        line-height: 1.2;
        font-weight: 500;
        border-radius: .5rem;
        padding: .4rem .6rem;
        cursor: pointer;
        transition: background-color .15s ease, box-shadow .15s ease;
    }
    .agent-reveal-btn:hover{
        background-color: var(--bg-soft);
        box-shadow: 0 4px 10px rgba(0,0,0,.07);
    }

    .agent-email-text{
        min-width: 140px;
        font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace;
        font-size: .75rem;
        line-height: 1.2;
        color: var(--text-main);
        word-break: break-word;
    }
    .agent-email-text.-blurred{
        filter: blur(4px);
        user-select: none;
    }

    /* acciones inferiores */
    .agent-card__actions {
        margin-top: 1rem;
        display: flex;
        flex-wrap: wrap;
        gap: .5rem;
    }

    .agent-btn {
        appearance: none;
        border: 0;
        cursor: pointer;
        font-size: .8rem;
        font-weight: 500;
        line-height: 1.2;
        border-radius: var(--border-radius-btn);
        padding: .6rem .8rem;
        min-width: 90px;
        text-align: center;
        text-decoration: none;
        user-select: none;
        transition: all .15s ease;
        display: inline-block;
    }

    .agent-btn--outline {
        background-color: transparent;
        border: 1px solid var(--border-color);
        color: var(--text-main);
        display: none; /* se muestra recién cuando revelan el correo */
    }
    .agent-btn--outline.show {
        display: inline-block;
    }
    .agent-btn--outline:hover {
        background-color: var(--bg-soft);
    }

    .agent-btn--primary {
        background-color: var(--accent);
        color: #fff;
        box-shadow: 0 8px 16px rgba(0,87,255,.28);
    }
    .agent-btn--primary:hover {
        background-color: var(--accent-hover);
        box-shadow: 0 6px 12px rgba(0,67,196,.4);
    }

    @media (max-width:280px){
        .agent-card{
            flex-direction: column;
            text-align: center;
            width:100%;
        }
        .agent-card__photo{
            width:100%;
            min-width:auto;
            height:200px;
        }
        .agent-card__body{
            padding:1rem 1rem 1.25rem;
        }
        .agent-card-wrapper{
            margin:20px auto 28px auto;
            padding:0 16px;
            max-width:420px;
        }
        .agent-card__contact{
            justify-content:center;
            text-align:left;
            max-width:260px;
            margin-left:auto;
            margin-right:auto;
        }
        .agent-card__actions{
            justify-content:center;
        }
    }


/* =====================================================================
   ZP ITEM.CSS - Bloque 15 extraído de item.php línea 6054
   /* ================= MÓDULO CLIMA (ESTILO MODERNO + DESPLEGABLE) ================= */
   ===================================================================== */

/* ================= MÓDULO CLIMA (ESTILO MODERNO + DESPLEGABLE) ================= */
/* Nota: ahora el contenedor principal es <details>, y el “botón” es el <summary>. */

.zp-clima-card{
  --wx-bg: #ffffff;
  --wx-soft: #f6f7fb;
  --wx-soft-2: #f2f4f8;
  --wx-border: rgba(15, 23, 42, .10);
  --wx-muted: #64748b;
  --wx-text: #0f172a;
  --wx-shadow: 0 18px 55px rgba(2, 6, 23, .12);
  --wx-radius: 20px;

  display:block;
  background: linear-gradient(180deg, #ffffff 0%, #fbfcff 100%);
  border: 1px solid var(--wx-border);
  border-radius: var(--wx-radius);
  box-shadow: var(--wx-shadow);
  overflow: hidden;
  margin-bottom: 18px;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--wx-text);
}

/* ====== ACCORDION (details/summary) ====== */
.zp-clima-accordion{ position:relative; }
.zp-clima-accordion > summary{
  list-style:none;
  cursor:pointer;
  user-select:none;
  padding:0;
  margin:0;
}
.zp-clima-accordion > summary::-webkit-details-marker{ display:none; }
.zp-clima-accordion > summary:focus{ outline:none; }
.zp-clima-accordion > summary:focus-visible{
  box-shadow: 0 0 0 3px rgba(37,99,235,.28);
  border-radius: var(--wx-radius);
}

@keyframes zpWxIn{
  from{ opacity:0; transform: translateY(-4px); }
  to{ opacity:1; transform: translateY(0); }
}
.zp-clima-accordion[open] .zp-clima-accordion-panel{
  animation: zpWxIn .18s ease-out;
}

/* Header */
.zp-clima-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  padding: 14px 16px 10px 16px;
}

.zp-clima-eyebrow{
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #94a3b8;
  margin-bottom: 2px;
}

.zp-clima-title{
  margin:0;
  font-size: 16px;
  font-weight: 800;
  line-height: 1.15;
}

.zp-clima-periodo{
  margin-top: 4px;
  font-size: 12px;
  color: var(--wx-muted);
}

.zp-clima-head-actions{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap: 8px;
}

.zp-clima-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(37,99,235,.07);
  border: 1px solid rgba(37,99,235,.18);
  color: #1d4ed8;
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
}

.zp-clima-badge-dot{
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: radial-gradient(circle at 35% 35%, #86efac 0%, #22c55e 60%, #16a34a 100%);
  box-shadow: 0 8px 18px rgba(34,197,94,.35);
}

/* Botón “Abrir/Cerrar perfil del tiempo” */
.zp-clima-toggle{
  display:inline-flex;
  align-items:center;
  gap: 10px;
  padding: 7px 10px;
  border-radius: 999px;
  background: rgba(15,23,42,.06);
  border: 1px solid rgba(15,23,42,.10);
  font-size: 12px;
  font-weight: 900;
  color: #334155;
  white-space: nowrap;
}

.zp-clima-toggle .when-open{ display:none; }
.zp-clima-accordion[open] .zp-clima-toggle .when-open{ display:inline; }
.zp-clima-accordion[open] .zp-clima-toggle .when-closed{ display:none; }

.zp-clima-chev{
  width: 16px;
  height: 16px;
  display:inline-block;
  transition: transform .18s ease;
  opacity: .85;
}
.zp-clima-accordion[open] .zp-clima-chev{ transform: rotate(180deg); }

/* ====== BODY LAYOUT ====== */
.zp-clima-body{
  display:grid;
  grid-template-columns: minmax(240px, 1fr) minmax(320px, 1.5fr);
  gap: 0;
  border-top: 1px solid rgba(15,23,42,.06);
}

.zp-clima-now{
  padding: 14px 16px 14px 16px;
  background: #ffffff;
}

.zp-clima-now-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 10px;
  margin-bottom: 10px;
}

.zp-clima-now-label{
  font-size: 12px;
  font-weight: 700;
  color: #475569;
}

.zp-clima-now-pill{
  font-size: 11px;
  color: #475569;
  background: var(--wx-soft);
  border: 1px solid rgba(15,23,42,.08);
  padding: 5px 10px;
  border-radius: 999px;
  font-weight: 700;
}

.zp-clima-now-main{
  display:grid;
  grid-template-columns: 56px 1fr;
  gap: 12px;
  align-items:center;
  margin-bottom: 10px;
}

.zp-clima-icon{
  width: 56px;
  height: 56px;
  border-radius: 16px;
  background: radial-gradient(circle at 30% 30%, #ffffff 0%, #dbeafe 35%, #60a5fa 65%, #2563eb 100%);
  box-shadow: 0 16px 40px rgba(37,99,235,.28);
  display:flex;
  align-items:center;
  justify-content:center;
  border: 1px solid rgba(37,99,235,.18);
}

.zp-clima-icon span{
  font-size: 28px;
  transform: translateY(-1px);
}

.zp-clima-temp{
  display:flex;
  align-items:baseline;
  gap: 6px;
  font-weight: 900;
  line-height: 1;
}

.zp-clima-temp .v{
  font-size: 34px;
  letter-spacing: -0.02em;
}

.zp-clima-temp .u{
  font-size: 13px;
  color: var(--wx-muted);
  font-weight: 800;
}

.zp-clima-resumen{
  font-size: 12px;
  color: #475569;
  line-height: 1.55;
  margin-top: 6px;
}

.zp-clima-metrics{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 10px;
}

.zp-clima-metric{
  background: var(--wx-soft);
  border: 1px solid rgba(15,23,42,.08);
  border-radius: 14px;
  padding: 10px 10px;
}

.zp-clima-metric .k{
  font-size: 11px;
  color: var(--wx-muted);
  margin-bottom: 4px;
  font-weight: 700;
}

.zp-clima-metric .val{
  font-size: 14px;
  font-weight: 900;
  color: #0f172a;
}

/* Chips */
.zp-clima-chips{
  display:flex;
  flex-wrap:wrap;
  gap: 6px;
  margin-top: 10px;
}

.zp-clima-chip{
  font-size: 11px;
  border-radius: 999px;
  padding: 4px 9px;
  background: #ffffff;
  color: #334155;
  border: 1px solid rgba(15,23,42,.10);
  display:inline-flex;
  align-items:center;
  gap: 6px;
  font-weight: 800;
}

.zp-clima-chip i{
  width: 8px;
  height: 8px;
  border-radius: 999px;
  display:inline-block;
}

.zp-clima-chip .c-seco{ background:#f97316; }
.zp-clima-chip .c-calor{ background:#ef4444; }
.zp-clima-chip .c-humedad{ background:#3b82f6; }
.zp-clima-chip .c-viento{ background:#06b6d4; }

/* ====== PANEL DERECHO (4 “tarjetas” tipo forecast) ====== */
.zp-clima-panels-wrap{
  background: var(--wx-soft);
  border-left: 1px solid rgba(15,23,42,.06);
  padding: 12px 12px 12px 12px;
}

.zp-clima-panels-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 10px;
  margin-bottom: 10px;
}

.zp-clima-panels-top .t{
  font-size: 12px;
  font-weight: 900;
  color: #334155;
}

.zp-clima-panels-top .s{
  font-size: 11px;
  color: var(--wx-muted);
  font-weight: 700;
}

.zp-clima-panels{
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  background: #ffffff;
  border: 1px solid rgba(15,23,42,.08);
  border-radius: 16px;
  overflow: hidden;
}

.zp-clima-panel{
  padding: 10px 10px 12px 10px;
  text-align:center;
}

.zp-clima-panel + .zp-clima-panel{
  border-left: 1px solid rgba(15,23,42,.06);
  background: linear-gradient(180deg, #ffffff 0%, #fbfbfe 100%);
}

.zp-clima-panel-cap{
  display:inline-block;
  padding: 6px 10px;
  border-radius: 12px;
  background: #334155;
  color: #ffffff;
  font-size: 11px;
  font-weight: 900;
  margin-bottom: 10px;
}

.zp-clima-panel-ico{
  font-size: 22px;
  margin-bottom: 6px;
}

.zp-clima-panel-val{
  font-size: 20px;
  font-weight: 950;
  letter-spacing: -0.01em;
}

.zp-clima-panel-sub{
  margin-top: 6px;
  font-size: 11px;
  color: var(--wx-muted);
  font-weight: 800;
  line-height: 1.2;
  min-height: 14px;
}

/* ====== DISTRIBUCIÓN ====== */
.zp-clima-dist{
  border-top: 1px solid rgba(15,23,42,.06);
  padding: 12px 16px 14px 16px;
  background: #ffffff;
}

.zp-clima-dist-title{
  font-size: 12px;
  font-weight: 900;
  color: #334155;
  margin-bottom: 8px;
}

.zp-clima-dist-bar{
  height: 10px;
  border-radius: 999px;
  overflow:hidden;
  background: var(--wx-soft-2);
  border: 1px solid rgba(15,23,42,.08);
}

.zp-clima-dist-seg{ height:100%; display:block; float:left; }

.zp-clima-dist-sol{ background: linear-gradient(90deg, #facc15, #f97316); }
.zp-clima-dist-nublado{ background: #9ca3af; }
.zp-clima-dist-lluvia{ background: #3b82f6; }
.zp-clima-dist-nieve{ background: #a5b4fc; }

.zp-clima-legend{
  display:flex;
  flex-wrap:wrap;
  gap: 10px;
  margin-top: 8px;
  font-size: 11px;
  color: #475569;
  font-weight: 800;
}

.zp-clima-legend span{
  display:inline-flex;
  align-items:center;
  gap: 6px;
}

.zp-clima-legend i{
  width: 9px;
  height: 9px;
  border-radius: 999px;
  display:inline-block;
}

.zp-clima-note{
  margin: 10px 0 0 0;
  font-size: 11px;
  color: var(--wx-muted);
  line-height: 1.55;
}

/* ====== RESPONSIVE ====== */
@media (max-width: 920px){
  .zp-clima-body{ grid-template-columns: 1fr; }
  .zp-clima-panels-wrap{ border-left: 0; border-top: 1px solid rgba(15,23,42,.06); }
}

@media (max-width: 640px){
  .zp-clima-head{ padding: 12px 12px 10px 12px; }
  .zp-clima-now{ padding: 12px; }
  .zp-clima-dist{ padding: 12px; }
  .zp-clima-panels-wrap{ padding: 12px; }

  .zp-clima-panels{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .zp-clima-panel:nth-child(3){ border-left: 0; border-top: 1px solid rgba(15,23,42,.06); }
  .zp-clima-panel:nth-child(4){ border-top: 1px solid rgba(15,23,42,.06); }

  .zp-clima-head-actions{ gap:6px; }
  .zp-clima-toggle{ padding: 6px 9px; }
}


/* =====================================================================
   ZP ITEM.CSS - Bloque 16 extraído de item.php línea 6835
   .itp[data-itp="item-specs-card"]{--itp-bg:#fff;--itp-txt:#0f172a;--itp-sub:#475569;--itp-brd:#e2e8f0;--itp-card:#f8fafc;--itp-shadow:0 12px 28px rgba(2,6,23,.08);--itp-r:18px;--itp-rs:12px}
   ===================================================================== */

.itp[data-itp="item-specs-card"]{--itp-bg:#fff;--itp-txt:#0f172a;--itp-sub:#475569;--itp-brd:#e2e8f0;--itp-card:#f8fafc;--itp-shadow:0 12px 28px rgba(2,6,23,.08);--itp-r:18px;--itp-rs:12px}
    .itp .itp-card{background:var(--itp-bg);border:1px solid var(--itp-brd);box-shadow:var(--itp-shadow);overflow:hidden}
    .itp .itp-hero{position:relative;height:240px;background:#c7d2fe center/cover no-repeat}
    .itp .itp-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(15,23,42,.06))}
    /* Sin portada: no fondo y sin overlay */
    .itp .itp-hero.no-cover{background:none}
    .itp .itp-hero.no-cover:after{display:none}
    .itp .itp-avatar{position:absolute;left:18px;bottom:-42px;width:112px;height:112px;border-radius:14px;border:5px solid var(--itp-bg);background:#fff center/cover no-repeat;box-shadow:0 10px 22px rgba(2,6,23,.2)}
    .itp .itp-body{display:grid;grid-template-columns:1fr;gap:22px;padding:64px 18px 18px}
    .itp .itp-main h2{margin:0 0 22px;font:600 1.25rem/1.2 system-ui,Segoe UI,Roboto;color:var(--itp-txt)}
    .itp .itp-main h2 a{color:inherit;text-decoration:none}
    .itp .itp-meta{color:var(--itp-sub);margin:0 0 12px}
    .itp .itp-specs{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
    @media (max-width:560px){.itp .itp-specs{grid-template-columns:1fr}}
    .itp .itp-spec{background:var(--itp-card);border-radius:var(--itp-rs);padding:10px 12px;color:var(--itp-sub)}
    .itp .itp-spec i{margin-right:8px;opacity:.8}
    .itp .itp-spec b{color:var(--itp-txt);font-weight:700}
    .itp .itp-spec--id{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:nowrap}
    .itp .itp-report-inline{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:5px;
      flex:0 0 auto;
      padding:5px 9px;
      border-radius:999px;
      border:1px solid #e5e7eb;
      background:#fff;
      color:#64748b;
      font-size:12px;
      font-weight:850;
      line-height:1;
      text-decoration:none;
      transition:background .15s ease, color .15s ease, border-color .15s ease;
    }
    .itp .itp-report-inline:hover{
      background:#fff7ed;
      border-color:#fed7aa;
      color:#c2410c;
      text-decoration:none;
    }
    .itp .itp-loc{margin:14px 0 0;color:var(--itp-sub)}
    .itp .itp-loc i{margin-right:8px}
    .itp .itp-address{margin:8px 0 0;padding:10px 12px;border:1px dashed var(--itp-brd);border-radius:10px;background:#fff;color:var(--itp-sub)}
    .itp .itp-address b{color:var(--itp-txt)}
    .itp .itp-badges{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap}
    .itp .itp-badge{padding:4px 10px;border:1px dashed var(--itp-brd);border-radius:999px;font:.8rem/1 system-ui,Segoe UI,Roboto;color:var(--itp-sub);background:var(--itp-bg)}
    #ad-gmap{height:340px;border-radius:12px;border:1px solid rgba(0,0,0,.08);margin:.5rem 0}
    .itp .itp-logo{
  display:block;
  max-height:68px;
  max-width:100%;
  object-fit:contain;
  margin:6px 0 10px;
  padding:6px;
}


/* =====================================================================
   ZP ITEM.CSS - Bloque 17 extraído de item.php línea 7267
   .zp-e360v6{
   ===================================================================== */

.zp-e360v6{
    --e360-border:#e5eaf185;
    --e360-ink:#152033;
    --e360-text:#5f6f84;
    --e360-muted:#8793a6;
    --e360-soft:#f8fbff;
    --e360-soft2:#f5f8fc;
    --e360-accent:#8b5cf6;
    --e360-accent2:#38bdf8;
    --e360-shadow:0 16px 38px rgba(15,23,42,.065);
    margin:22px 0;
    font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
    color:var(--e360-ink);
    width:100%;
    max-width:100%;
    min-width:0;
  }

  .zp-e360v6 *{box-sizing:border-box}

  .zp-e360v6-shell{
    position:relative;
    width:100%;
    max-width:100%;
    min-width:0;
    overflow:hidden;
    border:1px solid var(--e360-border);
    border-radius:26px;
    background:rgba(255,255,255,.96);
    box-shadow:var(--e360-shadow);
  }

  .zp-e360v6-shell::before{
    content:"";
    position:absolute;
    right:-52px;
    top:-58px;
    width:148px;
    height:148px;
    border-radius:999px;
    background:linear-gradient(135deg,rgba(139,92,246,.10),rgba(56,189,248,.06));
    pointer-events:none;
  }

  .zp-e360v6-summary{
    display:block;
    width:100%;
    max-width:100%;
    min-width:0;
    position:relative;
    z-index:1;
    outline:none;
  }

  .zp-e360v6-summary.is-clickable{
    cursor:pointer;
  }

  .zp-e360v6-summary.is-clickable:focus-visible{
    box-shadow:inset 0 0 0 3px rgba(139,92,246,.22);
    border-radius:26px;
  }

  .zp-e360v6-summary.is-clickable:hover .zp-e360v6-resume{
    border-color:#d9e2ee;
    box-shadow:0 15px 32px rgba(15,23,42,.060);
  }

  .zp-e360v6-head{
    position:relative;
    min-width:0;
    z-index:1;
    padding:18px 20px 10px;
  }

  .zp-e360v6-brand{
    display:inline-flex;
    align-items:center;
    width:max-content;
    max-width:100%;
    gap:7px;
    padding:8px 12px;
    border:1px solid var(--e360-border);
    border-radius:999px;
    background:rgba(255,255,255,.84);
    color:#334155;
    font-size:11px;
    line-height:1;
    font-weight:950;
    letter-spacing:.055em;
    text-transform:uppercase;
    box-shadow:0 8px 18px rgba(15,23,42,.028);
  }

  .zp-e360v6-headRow{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    flex-wrap:wrap;
  }

  .zp-e360v6-cta{
    margin-left:auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    min-height:30px;
    max-width:100%;
    padding:8px 12px;
    border:1px solid var(--e360-border);
    border-radius:999px;
    background:rgba(248,250,252,.96);
    color:#172033;
    font-size:11.4px;
    line-height:1;
    font-weight:950;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    box-shadow:0 8px 18px rgba(15,23,42,.030);
    transition:background .16s ease,border-color .16s ease,transform .16s ease;
  }

  .zp-e360v6-summary.is-clickable:hover .zp-e360v6-cta{
    background:#fff;
    border-color:#d8e0ec;
    transform:translateY(-1px);
  }

  .zp-e360v6-ctaIcon{
    color:#64748b;
    font-size:12px;
    font-weight:950;
    transition:transform .18s ease;
  }

  .zp-e360v6.is-open .zp-e360v6-ctaIcon{
    transform:rotate(180deg);
  }

  .zp-e360v6-title{
    margin:11px 0 0;
    color:#162033;
    font-size:23px;
    line-height:1.12;
    font-weight:950;
    letter-spacing:-.035em;
    overflow-wrap:anywhere;
  }

  .zp-e360v6-meta{
    margin:6px 0 0;
    color:#6b7b91;
    font-size:12.8px;
    line-height:1.35;
    font-weight:750;
  }

  .zp-e360v6-resume{
    position:relative;
    min-width:0;
    z-index:1;
    margin:0 20px 14px;
    padding:15px;
    border:1px solid var(--e360-border);
    border-radius:21px;
    background:rgba(255,255,255,.92);
    box-shadow:0 12px 28px rgba(15,23,42,.043);
  }

  .zp-e360v6-resumeTop{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:12px;
  }

  .zp-e360v6-resumeTitle{
    display:flex;
    align-items:center;
    min-width:0;
    gap:8px;
    margin:0;
    color:#172033;
    font-size:14.2px;
    line-height:1.2;
    font-weight:950;
    letter-spacing:-.012em;
  }

  .zp-e360v6-resumeTitle span:last-child{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }

  .zp-e360v6-resumePill{
    flex:0 0 auto;
    max-width:150px;
    padding:7px 10px;
    border-radius:999px;
    border:1px solid #e6edf7;
    background:#f8fafc;
    color:#334155;
    font-size:11px;
    line-height:1;
    font-weight:950;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }

  .zp-e360v6-meter{
    position:relative;
    width:100%;
    height:13px;
    border-radius:999px;
    overflow:hidden;
    background:#f2f5f9;
    border:1px solid #e8eef6;
  }

  .zp-e360v6-meter::before,
  .zp-e360v6-meter::after{
    content:"";
    position:absolute;
    top:0;
    bottom:0;
    width:1px;
    background:rgba(51,65,85,.42);
    z-index:2;
  }

  .zp-e360v6-meter::before{left:33.333%}
  .zp-e360v6-meter::after{left:66.666%}

  .zp-e360v6-meterFill{
    display:block;
    position:relative;
    z-index:1;
    width:var(--pct);
    min-width:10px;
    height:100%;
    border-radius:999px;
    background:linear-gradient(90deg,#A3D7FF,#1998CE);
  }

  .zp-e360v6-scale{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    margin-top:7px;
    color:#64748b;
    font-size:11.3px;
    line-height:1;
    font-weight:850;
  }


  .zp-e360v6-details{
    display:none;
    position:relative;
    z-index:1;
    padding:0 20px 18px;
  }

  .zp-e360v6.is-open .zp-e360v6-details{
    display:block;
  }

  .zp-e360v6-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
  }

  .zp-e360v6-card{
    min-width:0;
    border:1px solid var(--e360-border);
    border-radius:20px;
    background:rgba(255,255,255,.94);
    padding:15px;
    box-shadow:0 11px 24px rgba(15,23,42,.040);
  }

  .zp-e360v6-context{
    grid-column:1 / -1;
    background:linear-gradient(180deg,rgba(248,251,255,.96),rgba(255,255,255,.96));
  }

  .zp-e360v6-cardTitle{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin:0 0 10px;
    color:#172033;
    font-size:14px;
    line-height:1.2;
    font-weight:950;
  }

  .zp-e360v6-cardTitle small{
    flex:0 0 auto;
    max-width:130px;
    padding:6px 9px;
    border-radius:999px;
    background:#f8fafc;
    border:1px solid #edf2f7;
    color:#475569;
    font-size:10.8px;
    line-height:1;
    font-weight:950;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }

  .zp-e360v6-cardDesc{
    margin:0 0 11px;
    color:#6b7b91;
    font-size:12.4px;
    line-height:1.44;
    font-weight:620;
  }

  .zp-e360v6-tags{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    margin-top:12px;
  }

  .zp-e360v6-tag{
    display:inline-flex;
    align-items:center;
    max-width:100%;
    min-height:29px;
    padding:6px 9px;
    border:1px solid var(--e360-border);
    border-radius:999px;
    background:#fff;
    color:#4b5c72;
    font-size:11.2px;
    line-height:1.1;
    font-weight:850;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }

  .zp-e360v6-info{
    display:grid;
    gap:8px;
  }

  .zp-e360v6-infoRow{
    display:grid;
    grid-template-columns:minmax(0,.95fr) minmax(0,1.25fr);
    gap:10px;
    padding:9px 0;
    border-bottom:1px solid #edf2f7;
  }

  .zp-e360v6-infoRow:last-child{border-bottom:0}

  .zp-e360v6-infoRow span{
    color:#738196;
    font-size:12.3px;
    line-height:1.35;
    font-weight:850;
  }

  .zp-e360v6-infoRow strong{
    color:#1f2937;
    font-size:12.5px;
    line-height:1.35;
    font-weight:900;
    text-align:right;
    overflow-wrap:anywhere;
  }

  .zp-e360v6-textCard p{
    margin:0;
    color:#5f6f84;
    font-size:12.7px;
    line-height:1.5;
    font-weight:620;
    overflow-wrap:anywhere;
  }

  .zp-e360v6-note{
    grid-column:1 / -1;
    padding:11px 13px;
    border:1px solid var(--e360-border);
    border-radius:16px;
    background:rgba(248,250,252,.78);
    color:#7a8799;
    font-size:11.5px;
    line-height:1.42;
    font-weight:650;
  }

  @media (max-width:820px){
    .zp-e360v6-grid{
      grid-template-columns:1fr;
    }
  }

  @media (max-width:640px){
    .zp-e360v6{
      width:100%;
      max-width:100%;
      min-width:0;
      margin:16px 0;
      transform:none;
      overflow:hidden;
    }

    .zp-e360v6-shell{
      border-radius:21px;
      width:100%;
      max-width:100%;
      overflow:hidden;
      box-shadow:0 13px 28px rgba(15,23,42,.062);
    }

    .zp-e360v6-shell::before{display:none}

    .zp-e360v6-head{
      padding:14px 13px 9px;
    }

    .zp-e360v6-brand{
      padding:7px 10px;
      font-size:10.4px;
      min-width:0;
      max-width:100%;
      overflow:hidden;
      text-overflow:ellipsis;
      white-space:nowrap;
    }

    .zp-e360v6-headRow{
      display:grid;
      grid-template-columns:minmax(0,1fr) auto;
      align-items:center;
      gap:8px;
      width:100%;
    }

    .zp-e360v6-cta{
      min-height:28px;
      max-width:142px;
      padding:7px 9px;
      font-size:10.2px;
      gap:5px;
      overflow:hidden;
      text-overflow:ellipsis;
      white-space:nowrap;
    }

    .zp-e360v6-title{
      margin-top:9px;
      font-size:20px;
      line-height:1.14;
      letter-spacing:-.025em;
    }

    .zp-e360v6-meta{
      font-size:12px;
      line-height:1.32;
    }

    .zp-e360v6-resume{
      margin:0 8px 12px;
      padding:12px;
      border-radius:18px;
    }

    .zp-e360v6-resumeTop{
      gap:8px;
      margin-bottom:10px;
      min-width:0;
    }

    .zp-e360v6-resumeTitle{
      font-size:13px;
      gap:6px;
    }

    .zp-e360v6-resumePill{
      max-width:128px;
      padding:6px 8px;
      font-size:10.3px;
    }

    .zp-e360v6-meter{
      height:12px;
    }

    .zp-e360v6-scale{
      font-size:10.3px;
    }


    .zp-e360v6-details{
      padding:0 8px 12px;
    }

    .zp-e360v6-grid{
      gap:10px;
    }

    .zp-e360v6-card{
      padding:12px;
      border-radius:17px;
    }

    .zp-e360v6-cardTitle{
      align-items:flex-start;
      margin-bottom:8px;
      font-size:13.2px;
    }

    .zp-e360v6-cardTitle small{
      max-width:118px;
      font-size:10.1px;
      padding:5px 8px;
    }

    .zp-e360v6-cardDesc{
      font-size:11.8px;
      line-height:1.38;
    }

    .zp-e360v6-infoRow{
      grid-template-columns:1fr;
      gap:4px;
      padding:8px 0;
    }

    .zp-e360v6-infoRow strong{
      text-align:left;
    }

    .zp-e360v6-note{
      padding:10px 11px;
      border-radius:15px;
      font-size:10.8px;
    }
  }


  @media (max-width:380px){
    .zp-e360v6-headRow{
      grid-template-columns:1fr;
      align-items:start;
    }

    .zp-e360v6-cta{
      justify-self:start;
      max-width:100%;
    }

    .zp-e360v6-resumeTop{
      align-items:flex-start;
      flex-direction:column;
    }

    .zp-e360v6-resumePill{
      max-width:100%;
    }
  }


/* =====================================================================
   ZP ITEM.CSS - Bloque 18 extraído de item.php línea 8099
   .ad-map-lazy{margin:.75rem 0 1rem;border-radius:12px;overflow:hidden;border:1px solid rgba(0,0,0,.08);background:#f1f5f9}
   ===================================================================== */

.ad-map-lazy{margin:.75rem 0 1rem;border-radius:12px;overflow:hidden;border:1px solid rgba(0,0,0,.08);background:#f1f5f9}
  .ad-map-placeholder{min-height:20px;display:grid;place-items:center;text-align:center;padding:22px;background:linear-gradient(135deg,rgba(52,131,250,.14),rgba(25,178,142,.10)),#f8fafc}
  .ad-map-placeholder strong{display:block;color:#0f172a;font-size:20px;margin-bottom:6px}
  .ad-map-placeholder span{display:block;color:#64748b;font-size:14px;margin-bottom:14px}
  .ad-map-btn{border:0;border-radius:4px;padding:12px 18px;background:#3483fa;color:#fff;font-weight:900;cursor:pointer}
  .ad-map-btn:disabled{opacity:.65;cursor:wait}
  #ad-gmap{height:340px;width:100%;border:0;margin:0}


/* =====================================================================
   ZP ITEM.CSS - Bloque 19 extraído de item.php línea 8225
   /* ===== Botones flotantes inferiores item.php ===== */
   ===================================================================== */

/* ===== Botones flotantes inferiores item.php ===== */
.zp-floating-contact{
  position:fixed;
  right:4px;
  bottom:15px;
  z-index:999;
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  max-width:calc(100vw - 12px);
  pointer-events:none;
}

.zp-floating-contact a{
  pointer-events:auto;
}

.zp-floating-contact .botonws-telefono,
.zp-floating-contact .botonws-whatsapp{
  min-width:46px;
  height:46px;
  padding:0 14px;
  border-radius:4px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  font-size:14px;
  font-weight:800;
  line-height:1;
  text-decoration:none;
  color:#fff;
  border:0;
  box-shadow:0 8px 22px rgba(15,23,42,.20);
  transition:transform .15s ease, box-shadow .15s ease, filter .15s ease;
  white-space:nowrap;
}

.zp-floating-contact .botonws-telefono:hover,
.zp-floating-contact .botonws-whatsapp:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 28px rgba(15,23,42,.26);
  filter:brightness(.97);
}

.zp-floating-contact .botonws-telefono{
  background:#007bff;
}

.zp-floating-contact .botonws-telefono:hover{
  background:#0056b3;
}

.zp-floating-contact .botonws-whatsapp{
  background:#25D366;
}

.zp-floating-contact .botonws-whatsapp:hover{
  background:#1ebe5d;
}

.zp-floating-contact .botonws-favorito{
  background:#007bff;
}

.zp-floating-contact .botonws-favorito.is-on{
  background:#f97316;
}

/* Ajuste móvil */
@media (max-width:720px){
  .zp-floating-contact{
    right:4px;
    bottom:10px;
    gap:5px;
  }

  .zp-floating-contact .botonws-telefono,
  .zp-floating-contact .botonws-whatsapp{
    min-width:43px;
    height:43px;
    padding:0 12px;
    font-size:13px;
  }
}

/* Pantallas muy angostas: conserva la fila, pero compacta textos */
@media (max-width:420px){
  .zp-floating-contact{
    right:4px;
    bottom:8px;
    gap:4px;
  }

  .zp-floating-contact .botonws-telefono,
  .zp-floating-contact .botonws-whatsapp{
    min-width:41px;
    height:41px;
    padding:0 10px;
    font-size:13px;
  }

  .zp-floating-contact .botonws-favorito .label{
    font-size:13px;
  }
}


/* =====================================================================
   ZP ITEM.CSS - Bloque 20 extraído de item.php línea 8370
   .botonws-favorito .fa{ margin-right:4px; }
   ===================================================================== */

.botonws-favorito .fa{ margin-right:4px; }
  .botonws-favorito.is-on .label::after{ content:" ✓"; }
