/* ===== vh-clientify-lazy-css ===== */

/* CLS reservations v1.0.2: PSI midio CLS 0.119 en .hero — subir generosamente */
.hero-form-card { min-height: 640px; }
.clientify-embed-hero { min-height: 460px; display: block; }
/* Reservar tambien la altura del hero left (h1 + sub + cta) para que no se mueva al cargar fonts */
.hero-left { min-height: 360px; }
/* Placeholder skeleton */
.vh-form-placeholder { padding: .5rem 0; }
.vh-form-placeholder .vh-ph-row { height: 44px; background: #f0f4f8; border-radius: 8px; margin-bottom: 12px; animation: vh-ph-pulse 1.4s ease-in-out infinite; }
.vh-form-placeholder .vh-ph-btn { height: 48px; background: #c5d9ed; border-radius: 8px; margin-top: 16px; animation: vh-ph-pulse 1.4s ease-in-out infinite; }
@keyframes vh-ph-pulse { 0%,100%{opacity:1} 50%{opacity:.55} }
@media (max-width: 768px) {
    .hero-form-card { min-height: 580px; }
    .clientify-embed-hero { min-height: 440px; }
    .hero-left { min-height: 320px; }
}

/* ===== vh-skip-link-css ===== */

.skip-link{position:absolute;top:-100%;left:1rem;background:#0575E0;color:#fff;padding:.5rem 1rem;border-radius:0 0 8px 8px;text-decoration:none;font-family:Poppins,Arial,sans-serif;font-weight:600;font-size:.92rem;z-index:10000;transition:top .2s ease;line-height:1.2}
.skip-link:focus,.skip-link:focus-visible{top:0;outline:2px solid #fff;outline-offset:2px;color:#fff}
.skip-link.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link.screen-reader-text:focus{clip:auto;width:auto;height:auto;top:0;left:1rem;background:#0575E0;color:#fff;padding:.5rem 1rem;border-radius:0 0 8px 8px;font-family:Poppins,Arial,sans-serif;z-index:10000}

/* ===== joinchat-button-style-inline-css ===== */

.wp-block-joinchat-button{align-items:center;display:flex;flex-flow:row nowrap}.wp-block-joinchat-button.is-vertical{flex-direction:column}.wp-block-joinchat-button.is-vertical.is-content-justification-left{align-items:flex-start}.wp-block-joinchat-button.is-vertical.is-content-justification-center{align-items:center}.wp-block-joinchat-button.is-vertical.is-content-justification-right{align-items:flex-end}.wp-block-joinchat-button:not(.is-vertical).is-content-justification-left{justify-content:flex-start}.wp-block-joinchat-button:not(.is-vertical).is-content-justification-center{justify-content:center}.wp-block-joinchat-button:not(.is-vertical).is-content-justification-right{justify-content:flex-end}.wp-block-joinchat-button:not(.is-vertical).is-content-justification-space-between{justify-content:space-between}.wp-block-joinchat-button figure{align-items:center;display:flex;flex-direction:column;flex-shrink:0;margin:0;padding:0}.wp-block-joinchat-button figcaption{font:normal normal 400 .6em/2em var(--wp--preset--font-family--system-font,sans-serif);margin:0;padding:0}.wp-block-joinchat-button .joinchat-button__qr{background-color:#fff;box-sizing:content-box;display:block;height:200px;overflow:hidden;padding:10px;width:200px}.wp-block-joinchat-button .joinchat-button__qr canvas,.wp-block-joinchat-button .joinchat-button__qr img{display:block;margin:auto}.wp-block-joinchat-button .wp-block-buttons{flex:1 1 auto;margin:0;max-width:100%;min-width:0;width:100%}.wp-block-joinchat-button .wp-block-button.wp-block-button__width-25{min-width:25%;width:calc(25% - var(--wp--style--block-gap, .5em)*.75)}.wp-block-joinchat-button .wp-block-button.wp-block-button__width-50{min-width:50%;width:calc(50% - var(--wp--style--block-gap, .5em)*.5)}.wp-block-joinchat-button .wp-block-button.wp-block-button__width-75{min-width:75%;width:calc(75% - var(--wp--style--block-gap, .5em)*.25)}.wp-block-joinchat-button .wp-block-button.wp-block-button__width-100{min-width:100%;width:100%}.wp-block-joinchat-button .joinchat-button__link,.wp-block-joinchat-button .wp-block-button__link{align-items:center;display:inline-flex;flex-flow:row nowrap;justify-content:center;width:100%}.wp-block-joinchat-button .joinchat-button__link:before,.wp-block-joinchat-button .wp-block-button__link:before{background:transparent var(--joinchat-ico) no-repeat center;background-size:100%;content:"";display:block;height:1.5em;margin:-.75em .75em -.75em 0;width:1.5em}.wp-block-joinchat-button .joinchat-button__link{width:auto}.wp-block-joinchat-button:has(.joinchat-button__link){border:none!important;display:flex;flex-direction:column}@media (orientation:landscape)and (height >= 481px),(orientation:portrait)and (width >= 481px){.wp-block-joinchat-button.joinchat-button--qr-only .wp-block-buttons{display:none}}@media (orientation:landscape)and (height <= 480px),(width <= 480px){.wp-block-joinchat-button figure{display:none}}

/*# sourceURL=https://vivenziahome.com/wp-content/plugins/creame-whatsapp-me/gutenberg/build/style-index.css */

/* ===== wpcode-═════════════ ===== */
/* ═══════════════════════════════════════════════════
   VIVENZIA HOME — Estilos Globales de Marca
   Versión: 1.0 | Abril 2026
   ═══════════════════════════════════════════════════ */

/* ── Variables CSS de marca ── */
:root {
  --vz-azul: #0575E0;
  --vz-celeste: #75D1F2;
  --vz-hielo: #E8F1FC;
  --vz-profundo: #052F5C;
  --vz-blanco: #FFFFFF;
  --vz-gris-50: #F8FAFC;
  --vz-gris-100: #F1F5F9;
  --vz-gris-200: #E2E8F0;
  --vz-gris-300: #CBD5E1;
  --vz-gris-500: #64748B;
  --vz-gris-700: #334155;
  --vz-gris-900: #0F172A;
  --vz-verde: #10B981;
  --vz-rojo: #EF4444;
  --vz-naranja: #F59E0B;
  --vz-radius: 12px;
  --vz-radius-sm: 8px;
  --vz-shadow: 0 4px 24px rgba(5,117,224,0.08);
  --vz-shadow-lg: 0 8px 40px rgba(5,117,224,0.12);
  --vz-transition: 0.3s cubic-bezier(0.4,0,0.2,1);
}

/* ── Tipografía Google Fonts ── */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap');

/* ── Reset tipográfico global ── */
body,
.elementor-widget-text-editor,
.elementor-widget-heading .elementor-heading-title,
.elementor *,
.entry-content,
.page-content {
  font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
}

/* ── Headings ── */
h1, h2, h3, h4, h5, h6,
.elementor-heading-title {
  font-family: 'Poppins', sans-serif !important;
  color: var(--vz-profundo);
  line-height: 1.2;
}

/* ── Botones de marca ── */
.vz-btn,
.elementor-button.vz-btn {
  background: var(--vz-azul) !important;
  color: var(--vz-blanco) !important;
  border: none !important;
  border-radius: var(--vz-radius) !important;
  font-family: 'Poppins', sans-serif !important;
  font-weight: 600 !important;
  padding: 14px 32px !important;
  font-size: 15px !important;
  cursor: pointer;
  transition: var(--vz-transition);
  text-decoration: none !important;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.vz-btn:hover,
.elementor-button.vz-btn:hover {
  background: var(--vz-profundo) !important;
  transform: translateY(-2px);
  box-shadow: var(--vz-shadow-lg);
}

.vz-btn-outline {
  background: transparent !important;
  color: var(--vz-azul) !important;
  border: 2px solid var(--vz-azul) !important;
  border-radius: var(--vz-radius) !important;
  font-family: 'Poppins', sans-serif !important;
  font-weight: 600 !important;
  padding: 12px 30px !important;
  transition: var(--vz-transition);
}
.vz-btn-outline:hover {
  background: var(--vz-azul) !important;
  color: var(--vz-blanco) !important;
}

/* ── Tarjetas ── */
.vz-card {
  background: var(--vz-blanco);
  border-radius: var(--vz-radius);
  box-shadow: var(--vz-shadow);
  overflow: hidden;
  transition: var(--vz-transition);
}
.vz-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--vz-shadow-lg);
}

/* ── Secciones alternas ── */
.vz-section {
  padding: 80px 0;
}
.vz-section-hielo {
  background: var(--vz-hielo);
}
.vz-section-azul {
  background: linear-gradient(135deg, var(--vz-profundo), var(--vz-azul));
  color: var(--vz-blanco);
}

/* ── Badge/Etiqueta ── */
.vz-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 16px;
  border-radius: 100px;
  font-size: 13px;
  font-weight: 600;
  background: var(--vz-hielo);
  color: var(--vz-azul);
}

/* ── Formularios ── */
.vz-input,
.vz-form input[type="text"],
.vz-form input[type="email"],
.vz-form input[type="tel"],
.vz-form select,
.vz-form textarea {
  width: 100%;
  padding: 14px 18px;
  border: 2px solid var(--vz-gris-200);
  border-radius: var(--vz-radius-sm);
  font-family: 'Poppins', sans-serif;
  font-size: 15px;
  transition: var(--vz-transition);
  background: var(--vz-blanco);
  color: var(--vz-gris-900);
}
.vz-input:focus,
.vz-form input:focus,
.vz-form select:focus,
.vz-form textarea:focus {
  border-color: var(--vz-azul);
  outline: none;
  box-shadow: 0 0 0 3px rgba(5,117,224,0.15);
}

/* ── Utilidades ── */
.vz-text-azul { color: var(--vz-azul) !important; }
.vz-text-profundo { color: var(--vz-profundo) !important; }
.vz-text-celeste { color: var(--vz-celeste) !important; }
.vz-bg-hielo { background: var(--vz-hielo) !important; }
.vz-bg-azul { background: var(--vz-azul) !important; }
.vz-text-center { text-align: center; }
.vz-container { max-width: 1200px; margin: 0 auto; padding: 0 24px; }

/* ── Links de marca ── */
a.vz-link {
  color: var(--vz-azul);
  text-decoration: none;
  font-weight: 500;
  transition: var(--vz-transition);
}
a.vz-link:hover {
  color: var(--vz-profundo);
}

/* ── Responsive ── */
@media (max-width: 768px) {
  .vz-section { padding: 48px 0; }
  h1 { font-size: 28px !important; }
  h2 { font-size: 24px !important; }
  .vz-container { padding: 0 16px; }
}
/* /comprar/ ocultar buscador duplicado del listado (ya hay uno arriba) */
body.page-id-32 #vivenzia-inmuebles .viz-search { display:none !important; }


/* Sprint 2 — fixes auditoría */
/* #15 Contraste cards Zonas — texto blanco al 100% (no opacity) */
body.page-id-2114 .viz-zone-meta,
body.page-id-2114 .viz-zone-card small,
body.page-id-2114 [class*="zone"] [class*="meta"]{
    color: #ffffff !important;
    opacity: 1 !important;
}

/* #05 Cargo Joaquín — truncate elegante si se mantiene en 1 línea */
body.page-id-24 .elementor-element [data-cargo*="Director Oficina Nervi"],
body.page-id-24 .vh-team-card .role{
    overflow: hidden;
    text-overflow: ellipsis;
}


/* #14 Cards Zonas — gradient + icono + hover */
/* Aplicar a cards de la grid de Zonas */
.vh-zon-card{
    position:relative;
    display:flex !important;
    flex-direction:column;
    background:linear-gradient(135deg, #0575E0 0%, #2A8DE8 65%, #75D1F2 100%) !important;
    border-radius:14px !important;
    padding:32px 24px 24px !important;
    overflow:hidden;
    transition: transform .25s ease, box-shadow .25s ease;
    box-shadow:0 2px 10px rgba(5,117,224,.12);
}
.vh-zon-card::before{
    /* icono ubicación SVG en la esquina superior derecha */
    content:"";
    position:absolute;
    top:18px;
    right:18px;
    width:32px;
    height:32px;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/><circle cx='12' cy='10' r='3'/></svg>");
    background-size:contain;
    background-repeat:no-repeat;
    opacity:.4;
    transition:opacity .25s ease;
}
.vh-zon-card:hover{
    transform:translateY(-4px);
    box-shadow:0 12px 28px rgba(5,117,224,.28);
    text-decoration:none;
}
.vh-zon-card:hover::before{ opacity:.85; }
.vh-zon-card-tag{
    display:inline-block;
    background:rgba(255,255,255,.22);
    color:#fff !important;
    font-size:.7rem !important;
    font-weight:600;
    letter-spacing:.08em;
    text-transform:uppercase;
    padding:4px 10px;
    border-radius:20px;
    margin-bottom:14px;
    width:fit-content;
}
.vh-zon-card-h{
    color:#fff !important;
    font-size:1.4rem !important;
    font-weight:700 !important;
    margin:0 0 8px !important;
    line-height:1.2;
}
.vh-zon-card-t{
    color:#fff !important;
    opacity:1 !important;
    font-size:.92rem !important;
    line-height:1.5;
    margin:0 0 16px !important;
    flex-grow:1;
}
.vh-zon-card-link{
    display:inline-block;
    color:#fff !important;
    font-size:.9rem;
    font-weight:600;
    margin-top:auto;
    border-top:1px solid rgba(255,255,255,.25);
    padding-top:10px;
    transition:transform .2s;
}
.vh-zon-card:hover .vh-zon-card-link{ transform:translateX(4px); }


/* Sprint 3 — Cards /comprar/ */
/* #10/#13 Contraste de iconos m²/hab/baños y referencia */
.viz-op-card .viz-op-specs,
.viz-op-card .viz-specs,
.viz-op .specs{
    color: #0c1e3a !important;
    font-size: .92rem !important;
}
.viz-op-card .viz-op-specs svg,
.viz-op-card .viz-specs svg,
.viz-op .specs svg,
.viz-op-card .viz-op-specs i,
.viz-op-card .viz-specs i{
    color: #0575E0 !important;
    fill: #0575E0 !important;
    opacity: 1 !important;
}
.viz-op-card .viz-op-ref,
.viz-op-card .ref,
.viz-op .ref{
    color: #5b6b85 !important;
    font-size: .78rem !important;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .05em;
}

/* #15 Títulos largos: line-clamp 2 líneas + altura uniforme */
.viz-op-card .viz-op-title,
.viz-op-card h3.title,
.viz-op .title{
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: calc(1.3em * 2);
    line-height: 1.3;
    font-size: 1.05rem !important;
}

/* #09 capitalización direcciones (cap inicial) — fallback CSS, no resuelve mayúsculas */
.viz-op-card .viz-op-loc,
.viz-op-card .address,
.viz-op .address{
    text-transform: lowercase !important;
}
.viz-op-card .viz-op-loc::first-letter,
.viz-op-card .address::first-letter,
.viz-op .address::first-letter{
    text-transform: uppercase !important;
}
/* Mejor: usar Title Case via CSS — no soportado por todos navegadores. La solución completa requiere limpiar Inmovilla back. */

/* #11 €/m² — necesita JS, no se puede sólo con CSS. Pendiente */

/* ===== vivenzia-titulares-fix ===== */

/* Color de titulares según manual de marca Vivenzia
 * - Azul Vivenzia #0575E0 sobre fondos claros
 * - Blanco puro sobre fondos azules (hero, casos)
 */
h1, h2, h3, h4 {
  color: #0575E0 !important;
}
/* Hero principal: titular blanco sobre fondo azul saturado */
.hero h1,
.hero h2,
.hero h3,
.hero .h1,
.hero-left h1,
.hero-left h2 {
  color: #FFFFFF !important;
}
/* Sección casos de éxito (fondo azul Vivenzia) */
.casos-inner h1,
.casos-inner h2,
.casos-inner h3,
section[style*="background-color: #0575E0"] h1,
section[style*="background-color: #0575E0"] h2,
section[style*="background-color: #0575E0"] h3 {
  color: #FFFFFF !important;
}
/* CTA final azul */
.cta-final h1,
.cta-final h2,
.cta-final h3 {
  color: #FFFFFF !important;
}

/* Fix contraste textos sobre fondo azul Vivenzia y fallback elementor-invisible */
.elementor-element[style*="background-color:#0575E0"] *:not(a),
.elementor-element[style*="background-color: #0575E0"] *:not(a),
.elementor-element[style*="background-color:#0676e3"] *:not(a),
.elementor-element[style*="background-color: rgb(6, 118"] *:not(a),
.elementor-element[style*="background-color:rgb(5, 117"] *:not(a),
.elementor-element[style*="background-color: rgb(5, 117"] *:not(a) {
    color: #fff !important;
}
/* Fallback: nunca dejar texto invisible si JS de scroll no carga */
.elementor-invisible { visibility: visible !important; opacity: 1 !important; }

/* Excepción: heros con fondo azul corporativo deben pintar texto blanco */
.elementor-element-a691b98 .elementor-heading-title,
.elementor-element-88fa24c .elementor-heading-title,
.elementor-element-88fa24c h4,
.elementor-635 .elementor-element-e59fffb h1,
.elementor-635 .elementor-element-e59fffb h2,
.elementor-635 .elementor-element-e59fffb .elementor-heading-title,
.elementor-635 .elementor-element-e59fffb p { color: #fff !important; }

/* ===== vh-sprint2-css ===== */

/* CTA bloque /nosotros/ y /servicios/ */
.vh-cta-block{background:#0575E0;color:#fff;padding:64px 24px;text-align:center;margin:48px 0 0;font-family:"Poppins",-apple-system,sans-serif;}
.vh-cta-block h2{color:#fff !important;font-size:2.4rem;margin:0 0 12px;font-weight:700;line-height:1.15;}
.vh-cta-block p{color:#fff;font-size:1.1rem;margin:0 auto 28px;max-width:620px;opacity:.95;line-height:1.5;}
.vh-cta-block .vh-cta-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.vh-cta-block a{padding:14px 28px;border-radius:8px;text-decoration:none !important;font-weight:600;display:inline-block;transition:all .2s;font-size:1rem;}
.vh-cta-block a.vh-cta-primary{background:#fff;color:#0575E0 !important;}
.vh-cta-block a.vh-cta-primary:hover{background:#75D1F2;color:#0575E0 !important;}
.vh-cta-block a.vh-cta-secondary{background:transparent;color:#fff !important;border:2px solid #fff;}
.vh-cta-block a.vh-cta-secondary:hover{background:#fff;color:#0575E0 !important;}
@media(max-width:640px){.vh-cta-block{padding:44px 18px;}.vh-cta-block h2{font-size:1.8rem;}}

/* Narrativa /nosotros/ */
.vh-historia{padding:64px 24px;max-width:900px;margin:0 auto;font-family:"Poppins",-apple-system,sans-serif;text-align:left;}
.vh-historia .vh-section-tag{color:#0575E0;font-size:.85rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;margin:0 0 8px;}
.vh-historia h2{color:#0575E0;font-size:2.2rem;margin:0 0 24px;font-weight:700;line-height:1.2;}
.vh-historia p{color:#333;font-size:1.05rem;line-height:1.7;margin:0 0 16px;}
.vh-historia strong{color:#0575E0;}

.vh-principios{background:#f5fafe;padding:64px 24px;font-family:"Poppins",-apple-system,sans-serif;}
.vh-principios-inner{max-width:1100px;margin:0 auto;}
.vh-principios .vh-section-tag{color:#0575E0;font-size:.85rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;margin:0 0 8px;text-align:center;}
.vh-principios h2{color:#0575E0;font-size:2.2rem;margin:0 0 48px;font-weight:700;text-align:center;line-height:1.2;}
.vh-principios-grid{display:grid;grid-template-columns:repeat(3, 1fr);gap:32px;}
.vh-pri{background:#fff;border-radius:12px;padding:32px 24px;text-align:center;box-shadow:0 2px 12px rgba(5,117,224,.08);}
.vh-pri .vh-icon{width:48px;height:48px;border-radius:50%;background:#0575E0;color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.4rem;font-weight:700;margin:0 auto 16px;}
.vh-pri h3{color:#0575E0;font-size:1.2rem;margin:0 0 12px;font-weight:600;}
.vh-pri p{color:#555;font-size:.95rem;line-height:1.55;margin:0;}
@media(max-width:768px){.vh-principios-grid{grid-template-columns:1fr;gap:20px;}.vh-historia h2,.vh-principios h2{font-size:1.7rem;}}

/* #01 Bloque "En números" — extensión visual del hero /nosotros/ */
.vh-stats{background:#0575E0;color:#fff;padding:48px 24px;font-family:"Poppins",-apple-system,sans-serif;}
.vh-stats-inner{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center;}
.vh-stat{padding:0 8px;}
.vh-stat .vh-num{font-size:3rem;font-weight:700;line-height:1;margin:0 0 6px;color:#fff;}
.vh-stat .vh-num small{font-size:1.5rem;opacity:.85;}
.vh-stat .vh-label{font-size:.95rem;color:#fff;opacity:.9;margin:0;line-height:1.3;}
@media(max-width:768px){.vh-stats-inner{grid-template-columns:repeat(2,1fr);gap:32px 16px;}.vh-stat .vh-num{font-size:2.4rem;}}
@media(max-width:420px){.vh-stats-inner{grid-template-columns:1fr;}}

/* Foto del equipo en /nosotros/ — ocupa columna derecha del hero (visualmente la cierra) */
.vh-team-photo{padding:48px 24px;max-width:1200px;margin:0 auto;font-family:"Poppins",-apple-system,sans-serif;}
.vh-team-photo figure{margin:0;border-radius:14px;overflow:hidden;box-shadow:0 8px 28px rgba(5,117,224,.15);}
.vh-team-photo img{display:block;width:100%;height:auto;}
.vh-team-photo figcaption{margin-top:14px;text-align:center;color:#666;font-size:.9rem;font-style:italic;}

/* ===== vh-lead-zone-css ===== */

.vh-lead-zone{margin:32px 0;display:flex;justify-content:center;}
.vh-lead-zone-inner{
  max-width:680px;width:100%;
  background:#EAF5FE;
  border-top:6px solid #0575E0;
  border-radius:14px;
  padding:32px 28px;
  text-align:center;
  box-shadow:0 4px 18px rgba(5,117,224,.08);
  font-family:Poppins,system-ui,sans-serif;
}
.vh-lead-zone h3{
  font-size:1.5rem;line-height:1.25;color:#0575E0;
  margin:0 0 12px;font-weight:700;
}
.vh-lead-zone-name{color:#0575E0;}
.vh-lead-zone p{
  color:#1A1A1A;font-size:1rem;line-height:1.55;
  margin:0 auto 22px;max-width:540px;
}
.vh-lead-zone-cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}
.vh-lead-zone-btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:12px 22px;border-radius:8px;
  font-weight:600;font-size:.95rem;
  text-decoration:none;transition:transform .15s,box-shadow .15s,filter .15s;
}
.vh-lead-zone-btn:hover{transform:translateY(-1px);filter:brightness(1.05);}
.vh-lead-zone-primary{background:#0575E0;color:#fff;}
.vh-lead-zone-wa{background:#25D366;color:#fff;}
@media(max-width:520px){
  .vh-lead-zone h3{font-size:1.25rem;}
  .vh-lead-zone-inner{padding:26px 18px;}
}

/* ===== vh-sprint4-css ===== */

/* #11 — Microcopy 'OBRA NUEVA · SEVILLA' visible y con identidad */
.elementor-34 .epigrafe, .elementor-34 [class*="epigrafe"], .elementor-34 .pre-titulo,
.elementor-34 .hero-eyebrow, .elementor-34 .seccion-pre {
  font-size: 13px !important;
  font-weight: 500 !important;
  color: #0575E0 !important;
  letter-spacing: 0.16em !important;
}
/* #09 — "Sin compromiso" sobre fondo azul */
.elementor-34 .form-disclaimer, .elementor-34 .sin-compromiso,
.elementor-34 form + p, .elementor-34 form + small,
[class*="banda-azul"] small, [class*="banda-azul"] .compromiso {
  color: rgba(255,255,255,0.85) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
}
/* #12 — Breadcrumb */
.vh-breadcrumb {
  font-size: 12px;
  color: #6b7280;
  margin: 14px 0 8px;
  letter-spacing: 0.02em;
}
.vh-breadcrumb a { color: inherit; text-decoration: none; }
.vh-breadcrumb a:hover { color: #0575E0; }
.vh-breadcrumb .sep { color: #75D1F2; margin: 0 6px; }
@media (max-width: 600px) { .vh-breadcrumb .sep, .vh-breadcrumb .home { display: none; } .vh-breadcrumb .back { display: inline; } }
.vh-breadcrumb .back { display: none; color: #0575E0; }
@media (max-width: 600px) { .vh-breadcrumb .back { display: inline; } }

/* ===== vh-rgpd-css ===== */

.vh-rgpd-row { margin: 12px 0 6px; font-size: 13px; line-height: 1.4; display: flex; align-items: flex-start; gap: 8px; }
.vh-rgpd-row input[type="checkbox"] { margin-top: 2px; cursor: pointer; flex-shrink: 0; }
.vh-rgpd-row label { cursor: pointer; color: inherit; }
.vh-rgpd-row a { color: inherit; text-decoration: underline; }
.vh-rgpd-row a:hover { color: #0575E0; }
.vh-rgpd-note { font-size: 11px; opacity: 0.8; margin: 4px 0 8px 22px; }
/* Sobre fondos azules */
[class*="banda-azul"] .vh-rgpd-row, [style*="background"][style*="#0575E0"] .vh-rgpd-row {
  color: rgba(255,255,255,0.95);
}

/* ===== vh-on-blocks-css ===== */

/* ====== /obra-nueva/ — bloques estructurales ====== */
.vh-on-section { padding: 64px 24px; max-width: 1200px; margin: 0 auto; }
.vh-on-section h2 { font-size: clamp(28px, 4vw, 40px); color: #052F5C; font-weight: 800; margin: 0 0 16px; line-height: 1.15; }
.vh-on-section .vh-on-eyebrow { font-size: 13px; font-weight: 500; color: #0575E0; letter-spacing: 0.16em; text-transform: uppercase; margin-bottom: 12px; }
.vh-on-section .vh-on-sub { font-size: 17px; color: #4789C4; line-height: 1.5; max-width: 720px; margin: 0 0 32px; }

/* Cómo trabajamos — 3 columnas */
.vh-on-howwework { background: #F5F9FE; }
.vh-on-howwework .grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 24px; }
.vh-on-howwework .col { background: #fff; border-radius: 14px; padding: 28px 24px; box-shadow: 0 2px 14px rgba(5, 47, 92, 0.06); border-top: 4px solid #0575E0; }
.vh-on-howwework .col h3 { font-size: 20px; color: #0575E0; margin: 0 0 12px; font-weight: 700; }
.vh-on-howwework .col p { font-size: 15px; color: #1A2A44; line-height: 1.55; margin: 0; }
@media (max-width: 860px) { .vh-on-howwework .grid { grid-template-columns: 1fr; } }

/* BS70 teaser */
.vh-on-bs70 { background: linear-gradient(135deg, #EAF5FE 0%, #DCEAFA 100%); border-radius: 18px; padding: 48px 32px; margin: 48px auto; max-width: 1100px; }
.vh-on-bs70-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }
.vh-on-bs70 .badge-soon { display: inline-block; background: #0575E0; color: #fff; font-size: 12px; font-weight: 600; padding: 5px 12px; border-radius: 999px; letter-spacing: 0.06em; margin-bottom: 14px; }
.vh-on-bs70 .placeholder-img { background: linear-gradient(135deg, #75D1F2 0%, #0575E0 100%); border-radius: 14px; aspect-ratio: 4/3; display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,0.7); font-size: 14px; font-style: italic; }
.vh-on-bs70 ul { list-style: none; padding: 0; margin: 16px 0 24px; }
.vh-on-bs70 ul li { padding: 6px 0 6px 26px; position: relative; font-size: 15px; color: #1A2A44; }
.vh-on-bs70 ul li:before { content: '✓'; position: absolute; left: 0; color: #0575E0; font-weight: 700; }
.vh-on-bs70 .cta { display: inline-flex; align-items: center; gap: 8px; padding: 14px 26px; background: #0575E0; color: #fff; border-radius: 8px; text-decoration: none; font-weight: 600; transition: background .15s; }
.vh-on-bs70 .cta:hover { background: #052F5C; }
@media (max-width: 860px) { .vh-on-bs70-grid { grid-template-columns: 1fr; gap: 24px; } }

/* ¿Eres promotor? expandido */
.vh-on-promotor { background: #fff; border: 2px solid #75D1F2; border-radius: 18px; padding: 48px 32px; margin: 48px auto; max-width: 1100px; }
.vh-on-promotor-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 40px; align-items: center; }
.vh-on-promotor ul { list-style: none; padding: 0; margin: 16px 0 24px; }
.vh-on-promotor ul li { padding: 8px 0 8px 30px; position: relative; font-size: 16px; color: #1A2A44; line-height: 1.45; }
.vh-on-promotor ul li:before { content: '▸'; position: absolute; left: 0; color: #0575E0; font-weight: 700; }
.vh-on-promotor .ctas { display: flex; flex-wrap: wrap; gap: 12px; }
.vh-on-promotor .cta-primary { padding: 14px 26px; background: #0575E0; color: #fff; border-radius: 8px; text-decoration: none; font-weight: 600; }
.vh-on-promotor .cta-secondary { padding: 14px 26px; background: transparent; color: #0575E0; border: 2px solid #0575E0; border-radius: 8px; text-decoration: none; font-weight: 600; }
.vh-on-promotor .placeholder-img { background: linear-gradient(135deg, #DCEAFA 0%, #75D1F2 100%); border-radius: 14px; aspect-ratio: 1/1; display: flex; align-items: center; justify-content: center; color: rgba(5, 47, 92, 0.5); font-size: 13px; font-style: italic; padding: 20px; text-align: center; }
@media (max-width: 860px) { .vh-on-promotor-grid { grid-template-columns: 1fr; } }

/* FAQ acordeón */
.vh-on-faq { background: #fff; }
.vh-on-faq details { border-bottom: 1px solid #DCEAFA; padding: 18px 0; }
.vh-on-faq summary { font-size: 17px; color: #052F5C; font-weight: 600; cursor: pointer; list-style: none; padding-right: 30px; position: relative; transition: color .15s; }
.vh-on-faq summary::-webkit-details-marker { display: none; }
.vh-on-faq summary:after { content: '+'; position: absolute; right: 0; top: 0; font-size: 24px; color: #0575E0; font-weight: 300; transition: transform .2s; }
.vh-on-faq details[open] summary:after { content: '−'; }
.vh-on-faq summary:hover { color: #0575E0; }
.vh-on-faq .answer { padding-top: 14px; font-size: 15px; line-height: 1.6; color: #1A2A44; }

/* Card Huertas horizontal full-width — forzar cuando solo hay 1 .promo-card */
.elementor-34 [class*="promo-grid"]:has(> :only-child),
.elementor-34 .promociones-grid:has(> :only-child),
.elementor-34 [class*="grid"]:has(.promo-card:only-child) {
  grid-template-columns: 1fr !important;
}

/* Ocultar la línea vieja "¿Eres promotor?" duplicada con el bloque nuevo */
.elementor-34 [class*="promotor"]:not(#vh-on-promotor):not(.vh-on-promotor),
.elementor-34 [class*="hablamos"]:not(.vh-on-section *):not(#vh-on-promotor *) {
  display: none !important;
}

/* Banda azul compactada */
.elementor-34 [class*="banda-azul"], 
.elementor-34 [class*="proxima-promocion"] {
  max-height: 480px;
  padding-top: 64px !important;
  padding-bottom: 64px !important;
}

/* Ocultar línea vieja "¿Eres promotor?" duplicada */
.elementor-34 [class*="promotor-line"]:not(#vh-on-promotor):not(.vh-on-promotor),
.elementor-34 .vh-old-promotor { display: none !important; }

/* ===== wpcode-VH-Sprint-#144-—-Bug-3-+-Bug-5-(2026-0 ===== */
/* VH Sprint #144 — Bug 3 + Bug 5 (2026-05-05) */

/* Bug 3 — H1 ficha controlado */
.vh-h1-ficha, h1.vh-h1-ficha, article h1.vh-h1-ficha, .entry-title.vh-h1-ficha, main h1.vh-h1-ficha {
  font-size: clamp(1.3rem, 2.2vw, 1.6rem) !important;
  line-height: 1.25 !important;
  color: #0575E0 !important;
  font-weight: 700 !important;
  margin: 0 0 8px !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  word-break: break-word;
}
@media (max-width: 600px) {
  .vh-h1-ficha, h1.vh-h1-ficha { font-size: 1.15rem !important; line-height: 1.2 !important; }
}

/* Bug 5 — Logo legible en fichas (header blanco) */
body.single-post header img[src*='Vivenzia-Horizontal'],
body.single-post .site-logo img[src*='Vivenzia-Horizontal'],
body.single-post .header-logo img[src*='Vivenzia-Horizontal'],
body[class*='single'] header img[src*='Vivenzia-Horizontal-Negativo'],
body[class*='single'] header img[src*='Vivenzia-Horizontal-Blanco'],
body.elementor-page header img[src*='Vivenzia-Horizontal-Negativo'],
body.elementor-page header img[src*='Vivenzia-Horizontal-Blanco'] {
  filter: brightness(0) saturate(100%) invert(28%) sepia(96%) saturate(2050%) hue-rotate(199deg) brightness(96%) contrast(101%) !important;
}

/* ===== wpcode-Home:-invertir-orden-—-BS70-(próxima) ===== */
.vh-on-bs70 .vh-on-bs70-grid,
#vh-on-bs70 .vh-on-bs70-grid{
grid-template-columns:1fr !important;
width:100% !important;
gap:16px !important;
}

/* Home: invertir orden — BS70 (próxima) primero, Huertas J34 (vendida) segundo */
.carousel-track .obra-card-bs70{order:1 !important}
.carousel-track .obra-card-link-wrap:not(.obra-card-bs70){order:2 !important}

/* Home: BS70 image cuadrada (1:1) — mostrar completa con contain (sin recorte) */
.carousel-track .obra-card-bs70 .obra-card-img{object-fit:cover !important;object-position:center 30% !important;background-color:transparent !important}

/* === BS70 card redesign — /obra-nueva/ === */
/* Imagen completa con fondo cream */
body.page-id-34 .on-listado .promo-card-bs70 .promo-img-wrap{
  background:oklch(0.96 0.012 80) !important;
  display:block !important;
  aspect-ratio:auto !important;
}
body.page-id-34 .on-listado .promo-card-bs70 .promo-img-wrap img.promo-img{
  object-fit:contain !important;
  width:100% !important;
  height:auto !important;
  max-height:480px !important;
  background:oklch(0.96 0.012 80) !important;
  display:block !important;
}
/* Badge LISTA PREFERENTE — fondo cream, texto carbón */
.promo-card-bs70 .promo-badge.badge-soon{
  background:oklch(0.96 0.012 80) !important;
  color:#1a1a1a !important;
  letter-spacing:0.08em;
  font-size:0.72rem;
  font-weight:600;
  text-transform:uppercase;
  padding:6px 12px;
  border-radius:6px;
}
/* Eyebrow uppercase */
.promo-card-bs70 .promo-zona{
  text-transform:uppercase;
  letter-spacing:0.06em;
  font-size:0.78rem;
  color:#5a7088;
  font-weight:600;
  margin-bottom:8px;
}
/* Title Instrument Serif */
h3.promo-name-bs70{
  font-family:'Instrument Serif', Georgia, 'Times New Roman', serif !important;
  font-size:56px !important;
  line-height:1.05 !important;
  font-weight:400 !important;
  margin:8px 0 12px !important;
  color:#1A2A44 !important;
}
h3.promo-name-bs70 em{
  font-style:italic;
  color:oklch(0.55 0.13 65);
}
@media (max-width: 768px){
  h3.promo-name-bs70{font-size:40px !important;line-height:1.1 !important}
}
/* Meta */
.promo-card-bs70 .promo-details{
  font-size:0.95rem;
  color:#4A5670;
  margin:0;
}
/* Hover suave (sin link) */
.promo-card-bs70{
  display:block;
  background:#fff;
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 4px 20px rgba(7,117,224,.12);
  transition:box-shadow .25s ease;
}
.promo-card-bs70 .promo-body{padding:20px 24px}

/* ===== wpcode-VH-Zona-Pages-v1.0.0 ===== */
/* VH Zona Pages v1.0.0 */
.vh-zona-content{max-width:900px;margin:0 auto;padding:32px 20px 64px;font-family:Poppins,sans-serif;color:#1a1a2e}
.vh-zona-hero{margin-bottom:48px}
.vh-zona-eyebrow{font-size:.8rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#0575E0;margin:0 0 12px}
.vh-zona-h1{font-size:clamp(1.6rem,4vw,2.4rem);font-weight:700;line-height:1.2;margin:0 0 16px;color:#0a1f44}
.vh-zona-intro{font-size:1.05rem;line-height:1.7;color:#333;margin:0 0 28px;max-width:720px}
.vh-zona-hero-ctas{display:flex;gap:12px;flex-wrap:wrap}
.vh-btn-primary,.vh-btn-secondary{display:inline-block;padding:12px 24px;border-radius:6px;font-weight:600;font-size:.9rem;text-decoration:none;transition:opacity .15s}
.vh-btn-primary{background:#0575E0;color:#fff}
.vh-btn-primary:hover{opacity:.85;color:#fff}
.vh-btn-secondary{background:#f0f6ff;color:#0575E0;border:1.5px solid #0575E0}
.vh-btn-secondary:hover{background:#e0edff;color:#0575E0}
.vh-zona-section,.vh-zona-market,.vh-zona-services,.vh-zona-work,.vh-zona-ops,.vh-zona-faq-wrap,.vh-zona-search,.vh-zona-cta-final{margin-bottom:48px}
.vh-zona-h2{font-size:clamp(1.2rem,3vw,1.6rem);font-weight:700;color:#0a1f44;margin:0 0 16px;padding-bottom:8px;border-bottom:2px solid #e8f0fb}
.vh-zona-table-wrap{overflow-x:auto;margin-bottom:20px}
.vh-zona-table{width:100%;border-collapse:collapse;font-size:.9rem}
.vh-zona-table th{background:#0575E0;color:#fff;text-align:left;padding:10px 14px;font-weight:600}
.vh-zona-table td{padding:9px 14px;border-bottom:1px solid #e8f0fb;color:#222}
.vh-zona-table tr:nth-child(even) td{background:#f7faff}
.vh-zona-list{padding-left:20px;margin:0 0 16px;line-height:1.8}
.vh-zona-list-num{padding-left:20px;margin:0 0 16px;line-height:1.8}
.vh-zona-list li,.vh-zona-list-num li{margin-bottom:6px}
.vh-zona-faq{display:flex;flex-direction:column;gap:8px}
.vh-faq-item{border:1px solid #e0e8f5;border-radius:8px;overflow:hidden}
.vh-faq-q{display:block;cursor:pointer;padding:14px 18px;font-weight:600;font-size:.95rem;background:#f7faff;list-style:none;user-select:none}
.vh-faq-q::marker,.vh-faq-q::-webkit-details-marker{display:none}
.vh-faq-item[open] .vh-faq-q{color:#0575E0;background:#edf4ff}
.vh-faq-a{padding:14px 18px;font-size:.93rem;line-height:1.65;border-top:1px solid #e0e8f5}
.vh-faq-a p:last-child{margin:0}
.vh-zona-search-ctas{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}
.vh-zona-search-note{font-size:.85rem;color:#666;margin-top:8px}
.vh-zona-search-note a{color:#0575E0}
.vh-zona-cta-final{background:#f0f6ff;border-radius:12px;padding:32px 28px;text-align:center}
.vh-cta-headline{font-size:clamp(1.1rem,2.5vw,1.4rem);font-weight:700;color:#0a1f44;margin:0 0 10px}
.vh-cta-subtitle{color:#444;margin:0 0 20px;font-size:.95rem}
.vh-cta-buttons{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
@media(max-width:600px){
  .vh-zona-hero-ctas,.vh-zona-search-ctas,.vh-cta-buttons{flex-direction:column}
  .vh-btn-primary,.vh-btn-secondary{text-align:center}
}
/* Hide WP entry-title on zona pages (duplicate H1) */
body:has(.vh-zona-content) .entry-title,
body:has(.vh-zona-content) .entry-header,
body:has(.vh-zona-content) .page-header{display:none!important}
/* ===== vh-contacto-form-css ===== */

/* === H2 del card de formulario === */
body.page-id-38 .elementor-form > h2,
body.page-id-38 .elementor-widget-form h2,
body.page-id-38 .vh-form-card h2{
	font-family:'Poppins',Arial,sans-serif!important;
	font-weight:700!important;
	color:#0575E0!important;
	font-size:1.9rem!important;
	line-height:1.25!important;
	margin:0 0 1.5rem!important;
	letter-spacing:-.01em!important;
}

/* === Labels === */
body.page-id-38 .elementor-form .elementor-field-group > label,
body.page-id-38 .elementor-form .elementor-field-label{
	font-family:'Poppins',Arial,sans-serif!important;
	font-weight:600!important;
	font-size:.92rem!important;
	color:#333!important;
	margin-bottom:.4rem!important;
}

/* === Inputs, textarea, select === */
body.page-id-38 .elementor-form input[type="text"],
body.page-id-38 .elementor-form input[type="email"],
body.page-id-38 .elementor-form input[type="tel"],
body.page-id-38 .elementor-form input[type="url"],
body.page-id-38 .elementor-form textarea,
body.page-id-38 .elementor-form select,
body.page-id-38 .elementor-form .elementor-field{
	font-family:'Poppins',Arial,sans-serif!important;
	font-size:1rem!important;
	color:#222!important;
	background:#fff!important;
	border:1.5px solid #75D1F2!important;
	border-radius:8px!important;
	padding:.85rem 1rem!important;
	transition:border-color .2s ease, box-shadow .2s ease!important;
	box-shadow:none!important;
	width:100%!important;
}

body.page-id-38 .elementor-form input:focus,
body.page-id-38 .elementor-form textarea:focus,
body.page-id-38 .elementor-form select:focus{
	border-color:#0575E0!important;
	box-shadow:0 0 0 3px rgba(5,117,224,.15)!important;
	outline:none!important;
}

body.page-id-38 .elementor-form textarea{
	min-height:120px!important;
	resize:vertical!important;
}

/* === Placeholder === */
body.page-id-38 .elementor-form ::placeholder{
	color:#999!important;
	opacity:1!important;
	font-family:'Poppins',Arial,sans-serif!important;
}

/* === Checkbox política privacidad === */
body.page-id-38 .elementor-form .elementor-field-type-acceptance label,
body.page-id-38 .elementor-form .elementor-field-type-checkbox label{
	font-family:'Poppins',Arial,sans-serif!important;
	font-size:.9rem!important;
	color:#555!important;
	font-weight:400!important;
}

body.page-id-38 .elementor-form .elementor-field-type-acceptance a,
body.page-id-38 .elementor-form .elementor-field-type-checkbox a{
	color:#0575E0!important;
	text-decoration:underline!important;
}

/* === Botón submit === */
body.page-id-38 .elementor-form button[type="submit"],
body.page-id-38 .elementor-form .elementor-button{
	font-family:'Poppins',Arial,sans-serif!important;
	font-weight:600!important;
	font-size:1.05rem!important;
	background:#0575E0!important;
	color:#fff!important;
	border:1.5px solid #0575E0!important;
	border-radius:8px!important;
	padding:.95rem 1.5rem!important;
	letter-spacing:.01em!important;
	cursor:pointer!important;
	transition:all .25s ease!important;
	box-shadow:0 2px 8px rgba(5,117,224,.20)!important;
	text-transform:none!important;
	width:100%!important;
}

body.page-id-38 .elementor-form button[type="submit"]:hover,
body.page-id-38 .elementor-form .elementor-button:hover{
	background:#fff!important;
	color:#0575E0!important;
	border-color:#0575E0!important;
	box-shadow:0 4px 14px rgba(5,117,224,.28)!important;
	transform:translateY(-1px)!important;
}

body.page-id-38 .elementor-form button[type="submit"]:active,
body.page-id-38 .elementor-form .elementor-button:active{
	transform:translateY(0)!important;
	box-shadow:0 1px 4px rgba(5,117,224,.20)!important;
}

/* === Mensaje de subtítulo y respuesta tras submit === */
body.page-id-38 .elementor-form .elementor-form-fields-wrapper > p,
body.page-id-38 .elementor-message{
	font-family:'Poppins',Arial,sans-serif!important;
	color:#555!important;
}

body.page-id-38 .elementor-message-success{
	background:#e8f4fc!important;
	color:#0575E0!important;
	border:1.5px solid #75D1F2!important;
	border-radius:8px!important;
	padding:1rem!important;
}

body.page-id-38 .elementor-message-danger{
	background:#fef0f0!important;
	color:#c0392b!important;
	border:1.5px solid #ffaaaa!important;
	border-radius:8px!important;
	padding:1rem!important;
}

/* === Required asterisk === */
body.page-id-38 .elementor-form .elementor-mark-required{
	color:#0575E0!important;
}

/* === Responsive === */
@media (max-width:768px){
	body.page-id-38 .elementor-form > h2,
	body.page-id-38 .elementor-widget-form h2,
	body.page-id-38 .vh-form-card h2{
		font-size:1.5rem!important;
	}
	body.page-id-38 .elementor-form input[type="text"],
	body.page-id-38 .elementor-form input[type="email"],
	body.page-id-38 .elementor-form input[type="tel"],
	body.page-id-38 .elementor-form textarea,
	body.page-id-38 .elementor-form select{
		font-size:16px!important; /* Evita zoom iOS */
	}
}

/* === Esconder el embed Clientify viejo si todavía está renderizándose
       durante la transición (mientras el swap del widget no se haya hecho) === */
body.page-id-38 .clientify-superform,
body.page-id-38 [class*="clientify-superform"],
body.page-id-38 iframe[src*="clientify.net/web-marketing/superforms"]{
	display:none!important;
}

/* ===== vh-home-cleanup-css ===== */

/* === Home: ocultar seccion Casos de exito === */
body.home section.casos-section { display: none !important; }

/* === Sitewide: quitar telefono del header === */
.nav-tel,
.mobile-nav-tel,
.cta-final-tel { display: none !important; }
header .nav-menu li a.nav-tel,
header a.nav-tel { display: none !important; }

/* === /obra-nueva/: hide cards Naranjos+Alameda === */
html body.page-id-34 .promo-card[href*="los-naranjos"],
html body.page-id-34 .promo-card[href*="/alameda"],
html body.page-id-34 .promo-card[href*="alameda/"],
html body.page-id-34 .on-grid > a[href*="los-naranjos"],
html body.page-id-34 .on-grid > a[href*="alameda"] {
    display: none !important;
    visibility: hidden !important;
}
html body[class].page-id-34 .on-listado,
body.page-id-34 .on-listado {
    display: block !important;
    width: 100% !important;
    max-width: 1280px !important;
    margin: 0 auto !important;
    box-sizing: border-box !important;
}
html body[class].page-id-34 .on-listado .on-grid,
body.page-id-34 .on-listado .on-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 1.5rem !important;
    max-width: 1100px !important;
    margin: 0 auto !important;
    align-items: stretch !important;
    width: 100% !important;
}
body.page-id-34 .on-listado .on-grid > .promo-card:not([href*="los-naranjos"]):not([href*="alameda"]),
body.page-id-34 .on-listado .on-grid > a.promo-card:not([href*="los-naranjos"]):not([href*="alameda"]) {
    height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
}
body.page-id-34 .on-listado .promo-img-wrap {
    aspect-ratio: 16/10 !important;
    width: 100% !important;
    overflow: hidden !important;
}
body.page-id-34 .vh-on-bs70.on-listado.vh-bs70-listado { display: none !important; }
body.page-id-34 .on-listado .on-grid > .promo-card-bs70 {
    height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
}
body.page-id-34 .on-listado .on-grid > .promo-card-bs70 .promo-img-wrap {
    aspect-ratio: 16/10 !important;
    width: 100% !important;
    overflow: hidden !important;
    flex-shrink: 0 !important;
}
body.page-id-34 .on-listado .on-grid > .promo-card-bs70 .promo-img-wrap img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
}

/* === Footer tel links blancos sitewide === */
html body[class] .footer-oficina-tel a,
html body[class] .footer-oficina-tel a:link,
html body[class] .footer-oficina-tel a:visited,
html body[class] .footer-oficina-tel a:hover,
html body[class] .footer-oficina-tel a:active {
    color: #FFFFFF !important;
    text-decoration: none !important;
}


/* === OSM Static Map (v1.18.0) sitewide — reemplaza iframe Google Maps === */
.vh-map-static {
    position: relative;
    min-height: 220px;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid #DCE8F8;
    background: #F4F8FD;
    box-sizing: border-box;
}
.vh-map-tiles {
    position: absolute;
    inset: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: 100%;
    height: 100%;
}
.vh-map-tiles img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    filter: saturate(.92) contrast(.96);
}
.vh-map-static .vh-map-pin {
    position: absolute;
    font-size: 2rem;
    line-height: 1;
    transform: translate(-50%, -100%);
    filter: drop-shadow(0 2px 4px rgba(0,0,0,.5));
    z-index: 3;
    pointer-events: none;
}
.vh-map-static .vh-map-label {
    position: absolute;
    top: 0; left: 0; right: 0;
    padding: .65rem 1rem;
    background: linear-gradient(to bottom, rgba(255,255,255,.96), rgba(255,255,255,.78) 70%, transparent);
    color: #1F2937;
    font-size: .875rem;
    font-weight: 500;
    margin: 0;
    line-height: 1.4;
    z-index: 2;
}
.vh-map-static a.vh-map-cta {
    position: absolute;
    bottom: 14px; right: 14px;
    padding: .55rem 1.1rem;
    background: #fff;
    color: #0575E0 !important;
    border-radius: 9999px;
    font-size: .8125rem;
    font-weight: 600;
    text-decoration: none;
    box-shadow: 0 2px 10px rgba(0,0,0,.18);
    z-index: 3;
    transition: background .15s, color .15s;
}
.vh-map-static a.vh-map-cta:hover { background: #0575E0; color: #fff !important; box-shadow: 0 4px 14px rgba(5,117,224,.35); }
.vh-map-static a.vh-map-attrib {
    position: absolute;
    bottom: 6px; left: 6px;
    font-size: .625rem;
    color: #4B5563;
    background: rgba(255,255,255,.85);
    padding: 2px 6px;
    border-radius: 3px;
    text-decoration: none;
    z-index: 3;
    line-height: 1;
}
.vh-map-static a.vh-map-attrib:hover { background: #fff; color: #0575E0; }

/* === Contacto hero subtitle (page-id-38) sitewide rule === */
body.page-id-38 section.hero p { color: rgba(255,255,255,.92) !important; }



/* ===== vh-canonical-hf-css ===== */
/* VH Canonical Header/Footer v2 (2026-05-06) */
header{position:fixed;top:0;left:0;right:0;background:#fff;padding:0 2.5rem;display:flex;align-items:center;justify-content:space-between;height:72px;box-shadow:0 1px 8px rgba(5,117,224,0.08);z-index:1000}
header .logo{font-size:1.4rem;font-weight:700;text-decoration:none;display:flex;align-items:center;flex-shrink:0}
header .nav-menu{display:flex;list-style:none;gap:0;margin:0 0 0 2rem;padding:0;flex:1}
header .nav-menu li{margin:0}
header .nav-menu li a{text-decoration:none;color:#4789C4;font-size:0.85rem;font-weight:500;padding:0.5rem 0.9rem;transition:color 0.2s;white-space:nowrap}
header .nav-menu li a:hover{color:#0575E0}
header .nav-menu li a.nav-destacado{color:#0575E0;font-weight:600;background:rgba(5,117,224,0.06);border-radius:6px}
header .nav-menu li a .dropdown-arrow{font-size:0.6rem;margin-left:3px;opacity:0.6}
header .nav-right{display:flex;align-items:center;gap:1rem;flex-shrink:0}
header .nav-tel{color:#0575E0;text-decoration:none;font-weight:600;font-size:0.95rem;white-space:nowrap}
header .hamburger{display:none;background:none;border:none;cursor:pointer;padding:0.5rem;z-index:1002}
header .hamburger span{display:block;width:22px;height:2px;background:#0575E0;margin:5px 0;transition:all 0.3s ease}
header .hamburger.active span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
header .hamburger.active span:nth-child(2){opacity:0}
header .hamburger.active span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}
.nav-menu.open{display:flex !important;position:fixed;top:72px;left:0;right:0;bottom:0;background:#fff;flex-direction:column;padding:2rem;margin:0;z-index:999}

.footer{background:#052F5C !important;color:rgba(255,255,255,0.6);font-size:0.78rem}
.footer .logo{color:#fff}
.footer-inner{max-width:1280px;margin:0 auto;padding:3rem 2.5rem 2rem;display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:3rem}
.footer-brand p{color:rgba(255,255,255,0.55);font-size:0.78rem;line-height:1.7;margin:1rem 0 0}
.footer-col-title{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:0.7rem;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;color:rgba(255,255,255,0.65);margin:0 0 1rem}
.footer-links{list-style:none;display:flex;flex-direction:column;gap:0.5rem;padding:0;margin:0}
.footer-links a{color:rgba(255,255,255,0.7);text-decoration:none;font-size:0.85rem;transition:color 0.2s}
.footer-links a:hover{color:#fff}
.footer-bottom{max-width:1280px;margin:0 auto;padding:1.5rem 2.5rem;border-top:1px solid rgba(255,255,255,0.08);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;font-size:0.74rem;color:rgba(255,255,255,0.5)}
.footer-bottom a{color:rgba(255,255,255,0.6);text-decoration:underline}
.footer-cif{font-size:.74rem;opacity:.85;letter-spacing:.02em}

.footer-rrss{list-style:none !important;display:flex;flex-wrap:wrap;gap:10px;padding:0;margin:1.25rem 0 0}
.footer-rrss li{margin:0}
.footer-rrss a{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,0.08);color:#fff !important;transition:all .25s ease}
.footer-rrss a:hover{background:#75D1F2;color:#052F5C !important;transform:translateY(-2px)}
.footer-rrss svg{width:18px;height:18px;display:block;fill:currentColor}

.footer-oficinas{max-width:1280px;margin:0 auto;padding:2rem 2.5rem;border-top:1px solid rgba(255,255,255,0.18);border-bottom:1px solid rgba(255,255,255,0.18);display:grid;grid-template-columns:repeat(2,1fr);gap:2.5rem}
.footer-oficina-title{font-family:'JetBrains Mono',ui-monospace,monospace !important;font-size:0.78rem !important;letter-spacing:0.16em !important;text-transform:uppercase !important;color:#75D1F2 !important;margin:0 0 0.85rem !important;font-weight:700 !important}
.footer-oficina-addr,.footer-oficina-tel,.footer-oficina-hours{color:rgba(255,255,255,0.92) !important;margin:0 0 0.5rem !important;line-height:1.5 !important;font-size:0.88rem !important}
.footer-oficina-tel a{color:#fff !important;text-decoration:none !important;font-weight:600 !important;font-size:1rem !important}
.footer-oficina-tel a:hover{color:#75D1F2 !important}
.footer-oficina-hours{color:rgba(255,255,255,0.72) !important;font-size:0.8rem !important}

body{padding-top:72px}
body.page-id-22,body.page-id-32,body.page-id-30,body.page-id-24,body.page-id-34,body.page-id-1337,body.elementor-canvas-template{padding-top:0}

@media (max-width:768px){
  header{padding:0 1.25rem}
  header .nav-menu{display:none}
  header .nav-tel{display:none}
  header .hamburger{display:block}
  .footer-inner{grid-template-columns:1fr 1fr;gap:2rem;padding:2.5rem 1.25rem 1.5rem}
  .footer-oficinas{grid-template-columns:1fr;gap:2rem;padding:2rem 1.25rem}
  .footer-bottom{padding:1.5rem 1.25rem;flex-direction:column;align-items:flex-start}
}
@media (max-width:600px){
  .footer-inner{grid-template-columns:1fr;gap:1.5rem}
}
/* ===== vh-global-fixes-css ===== */
.vh-cta-primary,a.vh-cta-primary{background:rgba(255,255,255,.12) !important;color:#fff !important;border:1.5px solid rgba(255,255,255,.6) !important;padding:.7rem 1.4rem !important;border-radius:8px !important;font-weight:600 !important;font-size:.92rem !important;text-decoration:none !important;box-shadow:none !important;transition:all .25s ease !important;letter-spacing:.01em;}.vh-cta-primary:hover,a.vh-cta-primary:hover{background:#fff !important;color:#0575E0 !important;border-color:#fff !important;transform:translateY(-1px);box-shadow:0 4px 14px rgba(0,0,0,.18) !important;}.joinchat,.joinchat__button{display:none !important;visibility:hidden !important;pointer-events:none !important;}body .hero-form-card,body section .hero-form-card,body .elementor .hero-form-card{max-width:380px !important;padding:1.5rem 1.5rem !important;margin-left:auto !important;margin-right:0 !important;}@media(max-width:768px){body .hero-form-card,body section .hero-form-card,body .elementor .hero-form-card{max-width:100% !important;margin-left:0 !important;padding:1.25rem !important;}}.footer-rrss{list-style:none !important;display:flex;flex-wrap:wrap;gap:10px;padding:0;margin:1.25rem 0 0 0;}.footer-rrss li{margin:0}.footer-rrss a{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.08);color:#fff;transition:all .25s ease;}.footer-rrss a:hover{background:#75D1F2;color:#052F5C;transform:translateY(-2px);}.footer-rrss svg{width:18px;height:18px;display:block}.footer-oficinas{max-width:1200px;margin:2.5rem auto 0;padding:2rem 1.5rem 0;border-top:1px solid rgba(255,255,255,.12);display:grid;grid-template-columns:repeat(2,1fr);gap:2rem;}.footer-oficina{padding:0}.footer-oficina-title{color:#75D1F2 !important;font-family:"Poppins",sans-serif;font-size:.92rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin:0 0 .85rem 0 !important;}@media(max-width:768px){.footer-oficinas{grid-template-columns:1fr;gap:1.5rem;padding:2rem 1.25rem 0}}.form-group input,.form-group select,.form-group textarea{background:#fff !important;border:1.5px solid #c5d9ed !important;border-radius:8px !important;padding:.85rem 1rem !important;transition:border-color .2s, box-shadow .2s !important;}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#0575E0 !important;box-shadow:0 0 0 3px rgba(7,117,224,.15) !important;outline:none !important;}.form-group label{font-weight:600 !important;color:#1A2A44 !important;font-size:.82rem !important;margin-bottom:.45rem !important;}.form-group{margin-bottom:1.1rem !important}.form-submit{border-radius:8px !important;padding:1rem 1.5rem !important;font-weight:700 !important;box-shadow:0 4px 14px rgba(7,117,224,.25) !important;transition:all .25s ease !important;margin-top:.5rem;}.form-submit:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(7,117,224,.35) !important;}.form-title{font-size:1.35rem !important;font-weight:700 !important;margin-bottom:.5rem !important}
/* ===== vh-wa-bubble-css ===== */

.vh-wa-bubble{position:fixed;right:18px;bottom:22px;width:54px;height:54px;border-radius:50%;background:#25d366;color:#fff !important;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px rgba(0,0,0,.22);z-index:9998;text-decoration:none !important;opacity:0;transform:translateY(16px) scale(.9);pointer-events:none;transition:opacity .25s ease,transform .25s ease,background .2s ease;}
.vh-wa-bubble.is-visible{opacity:1;transform:translateY(0) scale(1);pointer-events:auto;}
.vh-wa-bubble:hover{background:#1ebe5d;}
.vh-wa-bubble svg{width:28px;height:28px;display:block;}
.vh-wa-bubble::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid #25d366;opacity:.55;animation:vh-wa-pulse 2.2s ease-out infinite;pointer-events:none;}
@keyframes vh-wa-pulse{0%{transform:scale(.85);opacity:.55;}70%{transform:scale(1.35);opacity:0;}100%{transform:scale(1.35);opacity:0;}}
@media (max-width:768px){.vh-wa-bubble{right:14px;bottom:78px;}}
@media print{.vh-wa-bubble{display:none !important;}}

/* ===== vh-tb-header-azul-css ===== */

/* === HEADER FONDO AZUL === */
body header:not(.fusion-header-wrapper){background:#0575E0!important;box-shadow:0 2px 8px rgba(5,117,224,.18)!important;border-bottom:none!important}

/* === LOGO BLANCO (filter solo sobre <img>, NO sobre el header) === */
body header:not(.fusion-header-wrapper) img{filter:brightness(0) invert(1)!important}
/* Override WPCode #2193 "Bug 5 logo contraste" que aplica filter azul sobre azul
   (especificidad 0,2,3). Esta regla tiene especificidad 0,3,3 → gana post-lazyload. */
body.elementor-page header:not(.fusion-header-wrapper) img[src*="Vivenzia"],
body.elementor-page header:not(.fusion-header-wrapper) img[data-src*="Vivenzia"]{filter:brightness(0) invert(1)!important}
body header:not(.fusion-header-wrapper) .logo,body header:not(.fusion-header-wrapper) a.logo{color:#fff!important}

/* === MENÚ ITEMS BLANCOS === */
body header:not(.fusion-header-wrapper) .nav-menu li a,body header:not(.fusion-header-wrapper) nav a{color:#fff!important;font-weight:500!important}
body header:not(.fusion-header-wrapper) .nav-menu li a:hover,body header:not(.fusion-header-wrapper) nav a:hover{color:rgba(255,255,255,.78)!important}

/* === "Vender" — solo color blanco; el pill (cuando /vender/) lo pone JS === */
body header:not(.fusion-header-wrapper) .nav-menu li a.nav-destacado{color:#fff!important}
body header:not(.fusion-header-wrapper) .nav-menu li a.nav-destacado:hover{color:rgba(255,255,255,.78)!important}

/* === Dropdown arrow (Zonas, Servicios) === */
body header:not(.fusion-header-wrapper) .nav-menu li a .dropdown-arrow{color:#fff!important;opacity:.78!important}

/* === Teléfono === */
body header:not(.fusion-header-wrapper) .nav-tel{color:#fff!important}
body header:not(.fusion-header-wrapper) .nav-tel:hover{color:rgba(255,255,255,.85)!important}

/* === CTA "Valora tu casa" — texto plano blanco === */
body header:not(.fusion-header-wrapper) a.nav-cta[data-vh-fix="cta-header"]{background:transparent!important;color:#fff!important;border:none!important;box-shadow:none!important;padding:.7rem 0!important;font-weight:700!important;letter-spacing:.01em!important;display:inline-flex!important;align-items:center!important;gap:6px!important}
body header:not(.fusion-header-wrapper) a.nav-cta[data-vh-fix="cta-header"]::after{content:'\2192'!important;color:#fff!important;font-weight:700!important;font-size:1em!important;margin-left:6px!important;display:inline-block!important;transition:transform .2s ease!important}
body header:not(.fusion-header-wrapper) a.nav-cta[data-vh-fix="cta-header"] .arrow{display:none!important}
body header:not(.fusion-header-wrapper) a.nav-cta[data-vh-fix="cta-header"]:hover{background:transparent!important;color:rgba(255,255,255,.82)!important;border:none!important;box-shadow:none!important;transform:none!important}
body header:not(.fusion-header-wrapper) a.nav-cta[data-vh-fix="cta-header"]:hover::after{transform:translateX(3px)!important}

/* === Mobile: hamburger blanco === */
body header:not(.fusion-header-wrapper) .hamburger,body header:not(.fusion-header-wrapper) .hamburger span,body header:not(.fusion-header-wrapper) button.hamburger{color:#fff!important;background:transparent!important;border-color:#fff!important}
body header:not(.fusion-header-wrapper) .hamburger span,body header:not(.fusion-header-wrapper) .hamburger::before,body header:not(.fusion-header-wrapper) .hamburger::after{background:#fff!important}

