/* ============================================================
   CENTRAL VALLEY — TEMA WORDPRESS
   ESQUEMA TIPOGRÁFICO
   · Athena — display de marca, auto-alojada. Titulares de ficha,
     cifras, wordmark. Requiere licencia web comercial.
   · Avenir Light — auto-alojada y declarada, pero sin aplicar. Se probó
     en bloques verdes y subtítulos y se revirtió. Requeriría licencia
     web comercial (Linotype / Monotype).
   · Mulish — sustituto de Avenir con licencia abierta (OFL) para el
     cuerpo de texto corrido.
   Cambiar de sustituto = editar solo la variable --texto.
   ============================================================ */
@font-face{font-family:'Athena';src:url('../fonts/athena-regular.woff2') format('woff2');
  font-weight:400;font-style:normal;font-display:swap}
/* Avenir Light queda declarada pero SIN USAR: el navegador no descarga
   una @font-face que ninguna regla aplica, así que no cuesta nada.
   Para retomarla, basta con aplicar var(--avenir) donde corresponda.
   Requeriría licencia web comercial de Linotype/Monotype. */
@font-face{font-family:'Avenir Light';src:url('../fonts/avenir-light.woff2') format('woff2');
  font-weight:300;font-style:normal;font-display:swap}

:root{
  --hueso:#F7F5EF; --hueso-2:#EFEBE2; --hueso-3:#E4DFD2;
  --verde:#2A371D; --oliva:#616D3B; --piedra:#84806E;
  --grafito:#211F1A; --terracota:#A16D2F;
  --linea:rgba(33,31,26,.14); --linea-suave:rgba(33,31,26,.07);
  --display:'Athena',Georgia,serif;
  --texto:'Mulish',system-ui,-apple-system,sans-serif;
  /* Disponible, sin aplicar. Ver la nota del @font-face de arriba. */
  --avenir:'Avenir Light','Mulish',system-ui,-apple-system,sans-serif;
  --max:1320px; --pad:clamp(20px,5vw,64px); --header-h:82px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --logo-b:url('../img/logo-blanco.png');
  --logo-v:url('../img/logo-verde.png');
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}
/* Safari/macOS pinta selects, inputs, textareas y botones con su propio
   chrome (esquinas redondeadas, sombra interior, flecha nativa).
   Sin este reset el sitio se ve distinto en Mac que en Chrome/Windows. */
input,select,textarea,button{-webkit-appearance:none;appearance:none;border-radius:0;
  background-clip:padding-box}
textarea{-webkit-appearance:none}
body{background:var(--hueso);color:var(--grafito);font-family:var(--texto);font-weight:300;
  font-size:15.5px;line-height:1.78;-webkit-font-smoothing:antialiased;overflow-x:hidden;
  font-synthesis-weight:none}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--oliva);outline-offset:3px}

h1,h2,h3,h4{font-family:var(--display);font-weight:400;line-height:1.14;letter-spacing:0}
h1{font-size:clamp(38px,6vw,72px)}
h2{font-size:clamp(27px,3.7vw,44px)}
h3{font-size:clamp(19px,2.1vw,26px)}

.eyebrow{font-size:10.5px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;
  color:var(--piedra);display:block;margin-bottom:18px}
.lead{font-size:clamp(15px,1.35vw,17px);line-height:1.88;color:#3a382f;max-width:70ch}
/* La descripción de la propiedad usa un cuerpo algo menor e interlineado
   más ajustado, para que el bloque «La propiedad» no ocupe tanto alto en
   la ficha. Los demás usos de .lead (la zona) mantienen su tamaño. */
/* La descripción de la propiedad usa un cuerpo más pequeño e interlineado
   ceñido, para que ocupe menos alto en la ficha. Se apunta también a los
   párrafos internos que genera el editor (the_content los envuelve en <p>),
   con especificidad suficiente para ganar a la regla base .lead. */
/* La descripción de la propiedad: fuente de cuerpo (Mulish), igual que las
   secciones de abajo (amenidades, la zona). Se usa !important y también un
   estilo inline en el HTML para vencer cualquier formato que traiga el
   contenido guardado desde el editor. Cubre tanto el contenido del editor
   (.lead--descripcion) como el campo Resumen (.resumen-descripcion), que es
   donde el cliente suele escribir el texto largo. */
.lead--descripcion,
.lead--descripcion p,
.lead--descripcion span,
.resumen-descripcion{font-family:var(--texto) !important;font-weight:300 !important;
  font-size:clamp(14px,1.15vw,15px) !important;line-height:1.8 !important;
  font-style:normal !important;color:#3a382f !important}
.lead--descripcion p+p{margin-top:1em}
.mono-dato{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--piedra)}
/* Athena no trae itálica: el navegador la sintetiza. Pendiente licenciar
   Athena Italic o Vonca para reemplazar estos acentos editoriales. */
.italica{font-family:var(--display);font-style:italic}

.wrap{max-width:var(--max);margin:0 auto;padding-inline:var(--pad)}
.bloque{padding-block:clamp(64px,9vw,124px)}
.bloque--corto{padding-block:clamp(44px,6vw,76px)}
.fondo-2{background:var(--hueso-2)}
.fondo-verde{background:var(--verde);color:var(--hueso)}
.fondo-verde .eyebrow{color:rgba(247,245,239,.55)}
.fondo-verde .lead{color:rgba(247,245,239,.82)}
.titulo-linea{display:flex;flex-direction:column;gap:22px;margin-bottom:clamp(34px,5vw,58px)}
.titulo-linea .rule{width:56px;height:1px;background:var(--oliva);opacity:.6}

/* ---------- HEADER ---------- */
.header{position:fixed;inset:0 0 auto 0;z-index:80;height:var(--header-h);display:flex;align-items:center;
  transition:background .45s var(--ease),border-color .45s var(--ease),height .45s var(--ease);
  border-bottom:1px solid transparent}
/* El header usa su propio ancho, más amplio que el resto del sitio: así
   el logo y el botón de WhatsApp se apoyan en los costados y el nav
   central gana espacio horizontal sin tener que achicar la letra. */
.header .wrap{display:flex;align-items:center;justify-content:space-between;gap:clamp(24px,3vw,48px);
  width:100%;max-width:1600px;padding-inline:clamp(20px,3vw,40px)}
.header--claro{color:var(--hueso)}
.header--solido{background:rgba(247,245,239,.95);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  border-bottom-color:var(--linea);color:var(--grafito);height:70px}
.marca{display:flex;align-items:center;gap:13px}
.marca .iso{width:34px;height:42px;position:relative;flex:none}
.marca .iso img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:opacity .4s var(--ease)}
.marca .iso .v{opacity:0}
.header--solido .marca .iso .b{opacity:0}
.header--solido .marca .iso .v{opacity:1}
.marca .nombre{font-family:var(--display);font-size:17px;letter-spacing:.17em;line-height:1;display:block}
.marca .sub{font-family:var(--display);font-size:9.5px;letter-spacing:.09em;opacity:.62;display:block;margin-top:5px}
.nav{display:flex;align-items:center;gap:clamp(16px,2.3vw,32px)}
.nav a{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;position:relative;padding-block:6px;opacity:.9}
.nav a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:currentColor;transition:width .4s var(--ease)}
.nav a:hover::after,.nav a.activo::after{width:100%}

/* Submenús del menú principal (Compra / Alquiler). El menú se imprime sin
   <ul> contenedor (items_wrap %3$s), así que los <li> de primer nivel van
   sueltos; el submenú de WordPress sí viene como <ul class="sub-menu">. */
.nav > li{position:relative;list-style:none}
.nav .sub-menu{position:absolute;top:100%;left:0;min-width:180px;
  padding:8px 0;margin:0;list-style:none;opacity:0;visibility:hidden;transform:translateY(6px);
  transition:opacity .25s var(--ease),transform .25s var(--ease),visibility .25s,background .3s;z-index:90}
/* Header sólido (con scroll o en páginas internas): fondo hueso opaco. */
.header--solido .nav .sub-menu{background:var(--hueso);border:1px solid rgba(42,55,29,.12);
  box-shadow:0 14px 34px rgba(20,24,16,.12)}
/* Header claro (home, sobre la foto): fondo traslúcido con desenfoque, para
   no cortar la imagen con un recuadro blanco. */
.header--claro .nav .sub-menu{background:rgba(20,24,16,.42);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.nav li:hover > .sub-menu,.nav li:focus-within > .sub-menu{opacity:1;visibility:visible;transform:translateY(0)}
.nav .sub-menu li{list-style:none}
.nav .sub-menu a{display:block;padding:8px 18px;font-size:11px;letter-spacing:.14em;opacity:.85}
.nav .sub-menu a::after{display:none}
.nav .sub-menu a:hover{opacity:1}
.header--solido .nav .sub-menu a:hover{background:var(--hueso-2)}
.header--claro .nav .sub-menu a{color:var(--hueso)}
.header--claro .nav .sub-menu a:hover{background:rgba(247,245,239,.14)}
.header-acciones{display:flex;align-items:center;gap:14px}
.idioma{display:flex;align-items:center;gap:2px;font-size:10.5px;letter-spacing:.14em}
.idioma button{background:none;border:0;cursor:pointer;padding:4px 5px;opacity:.5;transition:opacity .3s}
.idioma button.on{opacity:1;text-decoration:underline;text-underline-offset:4px}
.btn-wa{display:inline-flex;align-items:center;gap:8px;border:1px solid currentColor;padding:9px 16px;
  font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;background:none;
  transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease)}
.btn-wa:hover{background:var(--verde);border-color:var(--verde);color:var(--hueso)}
.menu-movil{display:none;background:none;border:0;cursor:pointer;padding:8px}
.menu-movil span{display:block;width:22px;height:1px;background:currentColor;margin:5px 0}
.nav-movil{position:fixed;inset:0;z-index:79;background:var(--verde);color:var(--hueso);
  display:none;flex-direction:column;justify-content:center;gap:6px;padding:var(--pad)}
.nav-movil.abierto{display:flex}
.nav-movil a{font-family:var(--display);font-size:30px;padding-block:10px;border-bottom:1px solid rgba(247,245,239,.15)}
/* En móvil los submenús se muestran siempre, indentados y más pequeños. */
.nav-movil .sub-menu{list-style:none;margin:0;padding:0 0 6px 18px}
.nav-movil .sub-menu a{font-size:18px;opacity:.85;border-bottom:none;padding-block:6px}

/* ---------- HERO ---------- */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden}
.hero-media{position:absolute;inset:0;background:#2b3327}
.hero-media img,.hero-media video{width:100%;height:100%;object-fit:cover;object-position:center 62%}
/* Banner en vídeo: fondo, no reproductor. El respaldo es la imagen de
   cartel; solo aparece si el vídeo no puede o no debe reproducirse. */
.banner-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.banner-respaldo{display:none}
@media (prefers-reduced-motion:reduce){
  .banner-video{display:none}
  .banner-respaldo{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
}
.hero-media::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(24,28,20,.52) 0%,rgba(24,28,20,.14) 38%,rgba(24,30,18,.72) 78%,rgba(24,30,18,.92) 100%)}
.hero-inner{position:relative;z-index:2;width:100%;padding-bottom:clamp(76px,11vw,150px);color:var(--hueso)}
/* La ubicación cierra el hero: línea fina, tamaño mayor y separada del
   titular, para que se lea sin competir con él. */
.hero-pie{position:absolute;left:0;right:0;bottom:0;z-index:3;
  padding-block:clamp(18px,2.4vw,30px);color:var(--hueso);
  border-top:1px solid rgba(247,245,239,.28)}
.hero-lugar{display:block;font-size:clamp(13px,1.5vw,19px);letter-spacing:.34em;
  text-transform:uppercase;font-weight:400;text-shadow:0 1px 12px rgba(24,28,20,.5)}
.hero h1{max-width:15ch;text-wrap:balance}
.hero .eyebrow{color:rgba(247,245,239,.7)}
.hero-frase{font-family:var(--display);font-size:clamp(16px,1.6vw,20px);opacity:.9;margin-top:22px;max-width:46ch;line-height:1.5}
.hero-scroll{position:absolute;right:var(--pad);bottom:clamp(86px,12vw,168px);z-index:3;
  color:var(--hueso);font-size:10px;letter-spacing:.2em;text-transform:uppercase;opacity:.6;writing-mode:vertical-rl}

/* ---------- BUSCADOR ---------- */
.buscador{position:relative;z-index:5;background:var(--hueso);border-top:3px solid var(--verde)}
.buscador-grid{display:grid;grid-template-columns:repeat(4,1fr) auto;align-items:stretch}
.campo{padding:20px 24px;border-right:1px solid var(--linea-suave)}
.campo:first-child{padding-left:0}
.campo label{display:block;font-size:9.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--piedra);margin-bottom:6px}
.campo select{width:100%;border:0;background:none;font-size:14px;cursor:pointer;-webkit-appearance:none;appearance:none;padding-right:18px;
  background-image:linear-gradient(45deg,transparent 50%,var(--grafito) 50%),linear-gradient(135deg,var(--grafito) 50%,transparent 50%);
  background-position:calc(100% - 9px) calc(50% + 1px),calc(100% - 5px) calc(50% + 1px);
  background-size:4px 4px,4px 4px;background-repeat:no-repeat}
.btn-buscar{background:var(--verde);color:var(--hueso);border:0;cursor:pointer;
  padding-inline:clamp(24px,3vw,46px);font-size:11px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;transition:background .35s var(--ease)}
.btn-buscar:hover{background:var(--oliva)}

/* ---------- BOTONES ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;cursor:pointer;border:0;background:none;
  font-size:11px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;padding:15px 30px;transition:all .38s var(--ease);text-align:center}
.btn--solido{background:var(--verde);color:var(--hueso)}
.btn--solido:hover{background:var(--oliva)}
.btn--linea{border:1px solid var(--linea);color:var(--grafito)}
.btn--linea:hover{border-color:var(--verde);background:var(--verde);color:var(--hueso)}
.btn--claro{border:1px solid rgba(247,245,239,.45);color:var(--hueso)}
.btn--claro:hover{background:var(--hueso);color:var(--verde);border-color:var(--hueso)}
.btn--hueso{background:var(--hueso);color:var(--verde)}
.btn--hueso:hover{background:var(--hueso-3)}
.enlace-texto{display:inline-flex;align-items:center;gap:10px;font-size:11px;letter-spacing:.18em;
  text-transform:uppercase;border-bottom:1px solid var(--linea);padding-bottom:5px;background:none;border-top:0;border-inline:0;cursor:pointer;
  transition:border-color .35s var(--ease),gap .35s var(--ease)}
.enlace-texto:hover{border-bottom-color:var(--verde);gap:16px}
.fondo-verde .enlace-texto,.pag-hero .enlace-texto{border-bottom-color:rgba(247,245,239,.3)}
.fondo-verde .enlace-texto:hover,.pag-hero .enlace-texto:hover{border-bottom-color:var(--hueso)}

/* ---------- POP-UP DE INVERSIÓN ---------- */
.overlay{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;padding:20px;
  background:rgba(247,245,239,.94);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}
.overlay.abierto{display:flex;animation:fade .45s var(--ease)}
@keyframes fade{from{opacity:0}to{opacity:1}}
.popup{position:relative;width:min(940px,100%);background:var(--verde);color:var(--hueso);
  display:grid;grid-template-columns:.92fr 1.08fr;box-shadow:0 30px 80px rgba(33,31,26,.28);
  animation:sube .6s var(--ease)}
@keyframes sube{from{transform:translateY(18px);opacity:0}to{transform:none;opacity:1}}
.popup-media{position:relative;overflow:hidden;min-height:420px}
.popup-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.popup-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(42,55,29,.12),rgba(42,55,29,.42))}
.popup-cuerpo{padding:clamp(30px,4vw,52px);display:flex;flex-direction:column;justify-content:center;gap:16px}
.popup-cuerpo .eyebrow{color:rgba(247,245,239,.55);margin-bottom:4px}
.popup-cuerpo h2{font-size:clamp(26px,3vw,38px);line-height:1.15}
.popup-cuerpo p{font-size:15px;opacity:.85;max-width:38ch}
.popup-cierre{font-family:var(--display);font-size:clamp(16px,1.7vw,20px);line-height:1.5;
  opacity:.95;padding-top:6px;border-top:1px solid rgba(247,245,239,.22);margin-top:6px}
.popup .btn{margin-top:10px;align-self:flex-start}

/* Formulario corto dentro del pop-up. Sobre verde, los campos son solo
   una línea inferior: el mismo lenguaje del formulario largo, sin cajas
   que compitan con el panel. */
.popup-form{display:grid;gap:14px;margin-top:4px}
.popup-campo{display:flex;flex-direction:column;gap:5px}
.popup-campo label{font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:rgba(247,245,239,.6)}
.popup-campo input{background:transparent;border:0;border-bottom:1px solid rgba(247,245,239,.3);
  color:var(--hueso);padding:7px 0 9px;font-size:15px;border-radius:0;-webkit-appearance:none;appearance:none}
.popup-campo input::placeholder{color:rgba(247,245,239,.4)}
.popup-campo input:focus{outline:0;border-bottom-color:var(--hueso)}
.popup-campo input:-webkit-autofill{-webkit-text-fill-color:var(--hueso);
  -webkit-box-shadow:0 0 0 60px #2A371D inset;caret-color:var(--hueso)}
.popup-form .btn{margin-top:6px;align-self:start}
.popup-form.enviando{opacity:.55;pointer-events:none}
.popup-nota{font-size:13px;line-height:1.55;margin:0;min-height:0}
.popup-nota.error{color:#f0c9a6}
.popup-gracias{font-size:15.5px;line-height:1.6;padding-top:14px;
  border-top:1px solid rgba(247,245,239,.22)}
.popup-x{position:absolute;top:16px;right:16px;z-index:3;width:44px;height:44px;border-radius:50%;
  background:var(--hueso);color:var(--verde);border:0;cursor:pointer;display:grid;place-items:center;
  font-size:17px;line-height:1;box-shadow:0 4px 14px rgba(33,31,26,.22);transition:transform .3s var(--ease),background .3s}
.popup-x:hover{transform:rotate(90deg);background:#fff}

/* ---------- INTRO ---------- */
.intro-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(32px,6vw,90px);align-items:start}
.servicios{display:flex;flex-wrap:wrap;gap:10px;margin-top:34px}
.servicios li{list-style:none;font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;
  border:1px solid var(--linea);padding:8px 14px;color:var(--piedra)}

/* ---------- ZONAS ---------- */
.zonas{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--linea-suave)}
.zona{position:relative;background:var(--hueso);min-height:clamp(280px,32vw,400px);overflow:hidden;
  display:flex;align-items:flex-end;cursor:pointer}
.zona img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.zona::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(42,55,29,.05) 28%,rgba(24,28,20,.86) 100%);transition:background .5s var(--ease)}
.zona:hover img{transform:scale(1.06)}
.zona:hover::after{background:linear-gradient(180deg,rgba(42,55,29,.3) 18%,rgba(42,55,29,.92) 100%)}
.zona-info{position:relative;z-index:2;padding:26px;color:var(--hueso);width:100%}
.zona-info .meta{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;opacity:.75;margin-top:8px;display:block}
.zona-info .desc{font-size:13px;opacity:0;max-height:0;overflow:hidden;
  transition:opacity .45s var(--ease),max-height .55s var(--ease),margin .45s var(--ease)}
.zona:hover .desc{opacity:.88;max-height:90px;margin-top:10px}

/* ---------- TARJETAS ---------- */
.grid-props{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(22px,2.6vw,38px)}
.prop{background:var(--hueso);cursor:pointer;display:flex;flex-direction:column;transition:transform .5s var(--ease)}
/* En secciones con fondo hueso-2 (p. ej. «Otros apartamentos» en la ficha),
   la tarjeta debe fundirse con la sección: sin este ajuste queda un borde
   visible del cuerpo de la tarjeta contra el fondo, más claro. */
.fondo-2 .prop{background:var(--hueso-2)}
.prop:hover{transform:translateY(-5px)}
.prop-media{position:relative;aspect-ratio:4/3.05;overflow:hidden;background:var(--hueso-3)}
.prop-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.3s var(--ease)}
.prop:hover .prop-media img{transform:scale(1.05)}
.etiqueta{position:absolute;top:14px;left:14px;z-index:2;background:var(--hueso);color:var(--verde);
  font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;padding:6px 11px}
.etiqueta--reservado{background:var(--terracota);color:var(--hueso)}
.prop-cuerpo{padding-top:20px;display:flex;flex-direction:column;gap:9px;flex:1}
.prop-zona{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--oliva)}
.prop h3{font-size:22px}
.prop-specs{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--piedra);margin-top:2px}
.prop-specs span{position:relative;padding-right:14px}
.prop-specs span:not(:last-child)::after{content:"·";position:absolute;right:3px;opacity:.7}
.prop-precio{margin-top:auto;padding-top:16px;border-top:1px solid var(--linea-suave);
  display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.prop-precio strong{font-family:var(--display);font-size:21px;font-weight:400}
.prop-precio .ver{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--piedra)}

/* ---------- CITA / PILARES / NOTAS ---------- */
.cita{text-align:center;max-width:56ch;margin-inline:auto}
.cita p{font-family:var(--display);font-size:clamp(20px,2.6vw,31px);line-height:1.45}
.cita .firma{margin-top:26px;font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;opacity:.6;display:block}
.pilares{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(26px,3.4vw,58px)}
.pilar .num{font-family:var(--display);font-size:15px;color:var(--oliva);display:block;margin-bottom:14px}
.pilar h3{font-size:21px;margin-bottom:12px}
.pilar p{font-size:14px;color:#45433a}
.notas{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(22px,2.6vw,38px)}
.nota{cursor:pointer}
.nota-media{aspect-ratio:16/10;overflow:hidden;margin-bottom:18px;background:var(--hueso-3)}
.nota-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.nota:hover img{transform:scale(1.05)}
.nota .cat{font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--oliva)}
.nota h3{font-size:19px;margin-block:10px 8px}
.nota p{font-size:13.5px;color:var(--piedra)}

/* ---------- FORM ---------- */
.form-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(32px,6vw,86px);align-items:start}
.form{display:grid;grid-template-columns:1fr 1fr;gap:26px 24px}
.campo-form{display:flex;flex-direction:column;gap:7px}
.campo-form.ancho{grid-column:1/-1}
.campo-form label{font-size:9.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--piedra)}
.campo-form input,.campo-form select,.campo-form textarea{border:0;border-bottom:1px solid var(--linea);
  background:none;padding:9px 0;font-size:14.5px;transition:border-color .35s var(--ease)}
.campo-form textarea{resize:vertical;min-height:76px}
.campo-form input:focus,.campo-form select:focus,.campo-form textarea:focus{outline:0;border-bottom-color:var(--oliva)}
.form-pie{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin-top:6px}
.aviso{font-size:11.5px;color:var(--piedra);max-width:36ch;line-height:1.6}
.form-ok{grid-column:1/-1;border:1px solid var(--oliva);padding:16px 20px;font-size:13.5px;color:var(--verde);
  background:rgba(97,109,59,.07);display:none}
.form-ok.visible{display:block}
.miel{position:absolute;left:-9999px}

/* ---------- FICHA ---------- */
.ficha-hero{position:relative;height:clamp(360px,58vh,600px);overflow:hidden;background:var(--verde)}
.ficha-hero img{width:100%;height:100%;object-fit:cover}
.ficha-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(24,28,20,.5),rgba(30,40,22,.85))}
.ficha-hero-txt{position:absolute;z-index:2;bottom:0;left:0;right:0;padding-bottom:clamp(28px,4vw,52px);color:var(--hueso)}
.migas{font-size:10px;letter-spacing:.18em;text-transform:uppercase;opacity:.75;margin-bottom:18px}
.migas a:hover{text-decoration:underline;text-underline-offset:3px}
.ficha-grid{display:grid;grid-template-columns:minmax(0,1fr) 372px;gap:clamp(36px,5vw,72px);align-items:start}
.specs{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--linea);border-bottom:1px solid var(--linea)}
.spec{padding:22px 8px 22px 0}
.spec .v{font-family:var(--display);font-size:27px;line-height:1;display:block}
.spec .k{font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--piedra);margin-top:9px;display:block}
/* Galería de la ficha: la primera imagen ocupa todo el ancho respetando su
   proporción horizontal original; el resto va en una fila de miniaturas
   debajo. Todas abren el visor (lightbox) al hacer clic. */
.galeria{display:flex;flex-direction:column;gap:10px;margin-block:clamp(30px,4vw,52px)}
.galeria figure{overflow:hidden;background:var(--hueso-3);margin:0}
.galeria-abrir{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in;line-height:0}
/* La imagen principal se muestra a lo ancho, con su alto natural: nunca se
   recorta ni se fuerza a cuadrado. */
.galeria-principal img,.galeria-principal-img{width:100%;height:auto;display:block;object-fit:contain;transition:transform 1.2s var(--ease)}
.galeria-mini-fila{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.galeria-mini{aspect-ratio:4/3}
.galeria-mini img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.galeria figure:hover img{transform:scale(1.04)}
/* Sección de amenidades: separada de la galería de la propiedad, con su
   propio rótulo. */
.galeria-amenidades{margin-top:clamp(30px,4vw,52px);padding-top:clamp(26px,3vw,40px);border-top:1px solid var(--linea-suave)}
.galeria-amenidades .eyebrow{margin-bottom:18px;display:block}
.galeria-amenidades .galeria{margin-block:0}
/* Miniatura de video: fondo verde con un triángulo de play centrado. */
.galeria-video button{position:relative;width:100%;height:100%;min-height:120px;background:var(--verde);display:flex;align-items:center;justify-content:center}
.galeria-video.galeria-principal button{min-height:0;aspect-ratio:16/9}
.galeria-play{width:0;height:0;border-style:solid;border-width:14px 0 14px 24px;border-color:transparent transparent transparent var(--hueso);margin-left:4px}
.cv-visor-video{width:min(1200px,92vw);aspect-ratio:16/9;max-height:82vh}
.cv-visor-video[hidden]{display:none}
.cv-visor-video iframe{width:100%;height:100%;display:block;background:#000}

/* Visor de imágenes (lightbox) */
body.cv-visor-abierto{overflow:hidden}
.cv-visor{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;
  background:rgba(20,24,16,.92);padding:clamp(16px,4vw,56px)}
.cv-visor[hidden]{display:none}
.cv-visor-marco{margin:0;max-width:100%;max-height:100%;display:flex;flex-direction:column;align-items:center;gap:14px}
.cv-visor-img{max-width:min(1400px,92vw);max-height:82vh;width:auto;height:auto;object-fit:contain;
  box-shadow:0 20px 60px rgba(0,0,0,.4)}
.cv-visor-contador{font-family:var(--texto);font-size:12px;letter-spacing:.14em;color:rgba(247,245,239,.7)}
.cv-visor-nav,.cv-visor-cerrar{position:absolute;border:0;background:rgba(247,245,239,.1);color:var(--hueso);
  cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .25s}
.cv-visor-nav:hover,.cv-visor-cerrar:hover{background:rgba(247,245,239,.22)}
.cv-visor-nav{top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;font-size:30px;line-height:1}
.cv-visor-prev{left:clamp(10px,3vw,40px)}
.cv-visor-next{right:clamp(10px,3vw,40px)}
.cv-visor-cerrar{top:clamp(12px,3vw,30px);right:clamp(12px,3vw,30px);width:44px;height:44px;border-radius:50%;font-size:26px;line-height:1}
@media(max-width:700px){
  .cv-visor-nav{width:42px;height:42px;font-size:24px}
  .cv-visor-img{max-height:74vh}
}
.amenidades{display:grid;grid-template-columns:repeat(2,1fr);gap:12px 30px;margin-top:22px}
.amenidades li{list-style:none;font-size:14px;padding-bottom:11px;border-bottom:1px solid var(--linea-suave);display:flex;gap:10px}
.amenidades li::before{content:"";width:5px;height:5px;background:var(--oliva);border-radius:50%;margin-top:9px;flex:none}
.aside-cv{position:sticky;top:96px;border:1px solid var(--linea);padding:30px;background:var(--hueso)}
.aside-precio{font-family:var(--display);font-size:34px;line-height:1;margin-block:6px 4px}
.asesor{display:flex;gap:14px;align-items:center;margin-block:26px;padding-block:22px;border-block:1px solid var(--linea-suave)}
.asesor .av{width:46px;height:46px;border-radius:50%;background:var(--verde);flex:none;overflow:hidden;display:grid;place-items:center}
.asesor .av img{width:66%;height:66%;object-fit:contain}
.asesor .n{font-family:var(--display);font-size:16px;display:block}
.asesor .r{font-size:10.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--piedra)}
/* Lista de los tres socios: un bloque con divisiones, cada socio enlaza a
   su WhatsApp. La foto (si existe) llena el círculo. */
.asesores{margin-block:26px;border-block:1px solid var(--linea-suave)}
.asesores .asesor{margin:0;padding-block:16px;border-block:0;border-bottom:1px solid var(--linea-suave)}
.asesores .asesor:last-child{border-bottom:0}
.asesores .asesor--enlace{text-decoration:none;color:inherit;transition:opacity .25s}
.asesores .asesor--enlace:hover{opacity:.7}
.asesor-wa{margin-left:auto;color:var(--verde);flex:none;display:grid;place-items:center}
.aside-cv .btn{width:100%;margin-bottom:10px}
.aside-nota{font-size:11.5px;color:var(--piedra);line-height:1.6;margin-top:14px}
.plano{border:1px solid var(--linea);padding:clamp(20px,3vw,38px);background:var(--hueso-2);margin-top:14px}
.plano svg{width:100%;height:auto;max-height:300px}

/* ---------- PÁGINAS INTERNAS ---------- */
.pag-hero{position:relative;padding-top:calc(var(--header-h) + clamp(46px,7vw,92px));
  padding-bottom:clamp(40px,6vw,80px);background:var(--verde);color:var(--hueso);overflow:hidden}
.pag-hero .eyebrow{color:rgba(247,245,239,.55)}
.pag-hero h1{font-size:clamp(34px,5.2vw,64px);max-width:18ch}
.pag-hero .bajada{font-size:clamp(15px,1.4vw,17.5px);opacity:.82;max-width:56ch;margin-top:22px}
.pag-hero .iso-fondo{position:absolute;right:-40px;top:50%;transform:translateY(-45%);
  width:clamp(240px,34vw,460px);opacity:.07;pointer-events:none}

/* Cabecera de página con fotografía: la imagen se ve arriba y se funde
   hacia el verde de marca abajo, donde vive el texto. Mismo tono del
   manual (#2A371D), sin filtros ni virados. */
.pag-hero--foto{background:var(--verde);min-height:clamp(250px,37vh,385px);
  display:flex;align-items:flex-end;padding-bottom:clamp(24px,2.6vw,36px);
  padding-top:clamp(88px,9vw,112px)}
/* Un 40% menos de alto que el original (640 → 385 px) y el titular de
   72 a 42 px. El banner presenta la sección; la cuadrícula de
   apartamentos tiene que verse sin bajar. */
.pag-hero--foto h1{font-size:clamp(26px,3.2vw,42px);max-width:17ch;line-height:1.1}
.pag-hero--foto .eyebrow{margin-bottom:8px}
.pag-hero--foto .bajada{font-size:clamp(13px,1.05vw,14.5px);line-height:1.58;max-width:54ch;margin-top:8px}
.pag-hero--foto .bajada + .bajada{margin-top:5px}
/* Los botones también se aprietan: son parte del alto del bloque. */
.pag-hero--foto .btn{padding:12px 24px;font-size:10px}
.pag-hero-media{position:absolute;inset:0;overflow:hidden;background:var(--verde)}
.pag-hero-media img,.pag-hero-media video{width:100%;height:100%;object-fit:cover;object-position:center 58%}
.pag-hero-media::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(42,55,29,.42) 0%,rgba(42,55,29,.55) 34%,rgba(42,55,29,.86) 72%,rgba(42,55,29,.97) 100%)}
.pag-hero--foto .wrap{position:relative;z-index:2;width:100%}

/* ---------- CATÁLOGO ---------- */
.filtros{position:sticky;top:70px;z-index:40;background:var(--hueso);border-block:1px solid var(--linea);
  display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding-block:14px;margin-bottom:clamp(28px,4vw,46px)}
.chip{border:1px solid var(--linea);background:none;cursor:pointer;padding:8px 15px;
  font-size:10.5px;letter-spacing:.15em;text-transform:uppercase;transition:all .3s var(--ease)}
.chip:hover{border-color:var(--oliva)}
.chip.on{background:var(--verde);color:var(--hueso);border-color:var(--verde)}
.chip-quitar{border:1px solid var(--oliva);color:var(--verde);background:rgba(97,109,59,.09);
  display:inline-flex;align-items:center;gap:8px;cursor:pointer;padding:8px 13px;
  font-size:10.5px;letter-spacing:.13em;text-transform:uppercase}
.chip-quitar b{font-weight:400;opacity:.6}
.filtros .cuenta{margin-left:auto;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--piedra)}
.filtros-activos{display:flex;flex-wrap:wrap;gap:8px;width:100%}
/* Botón de filtros: solo visible en móvil (se activa en el breakpoint). */
.filtros-toggle{display:none;align-items:center;gap:10px;width:100%;
  border:1px solid var(--linea);background:var(--hueso);cursor:pointer;
  padding:13px 16px;margin-bottom:18px;font-size:11px;letter-spacing:.15em;
  text-transform:uppercase;color:var(--grafito)}
.filtros-toggle-icono{width:18px;height:12px;position:relative;flex:none}
.filtros-toggle-icono::before,.filtros-toggle-icono::after{content:"";position:absolute;left:0;width:100%;height:1.5px;background:currentColor}
.filtros-toggle-icono::before{top:0;box-shadow:0 5.25px 0 currentColor}
.filtros-toggle-icono::after{bottom:0}

/* Filtros plegables en móvil. Va DESPUÉS de las reglas base de .filtros para
   ganar en la cascada: en móvil el botón aparece, los filtros se ocultan y
   pierden el comportamiento sticky, y solo se muestran con .abierto. */
@media(max-width:700px){
  .filtros-toggle{display:flex}
  .filtros{display:none;position:static;top:auto;z-index:auto;
    border:0;padding-block:0;margin-bottom:28px}
  .filtros.abierto{display:flex}
  .filtros-toggle[aria-expanded="true"] .filtros-toggle-icono::before{box-shadow:none;transform:rotate(45deg);top:5px}
  .filtros-toggle[aria-expanded="true"] .filtros-toggle-icono::after{transform:rotate(-45deg);bottom:5px}
}
.sin-resultados{padding:70px 0;text-align:center;color:var(--piedra)}

/* ---------- FIRMA ---------- */
.socios{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(24px,3vw,48px)}
.socio{border-top:1px solid var(--linea);padding-top:24px}
.socio .retrato{aspect-ratio:4/5;background:var(--hueso-3);overflow:hidden;margin-bottom:22px}
.socio .retrato img{width:100%;height:100%;object-fit:cover}
.socio .rol{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--oliva);display:block;margin-bottom:8px}
.valores{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(18px,2.4vw,38px)}
.valor{border-top:1px solid rgba(247,245,239,.25);padding-top:20px}
.valor .n{font-family:var(--display);font-size:26px;display:block;margin-bottom:12px;opacity:.55}
.valor h3{font-size:18px;margin-bottom:10px}
.valor p{font-size:13px;opacity:.78;line-height:1.7}
.cifras{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--linea)}
.cifra{background:var(--hueso);padding:clamp(22px,3vw,38px) 20px}
.cifra .v{font-family:var(--display);font-size:clamp(32px,4vw,50px);line-height:1;display:block}
.cifra .k{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--piedra);margin-top:12px;display:block}
.paso{display:grid;grid-template-columns:64px 1fr 1fr;gap:clamp(16px,3vw,44px);
  padding-block:clamp(24px,3vw,38px);border-top:1px solid var(--linea);align-items:start}
.paso:last-child{border-bottom:1px solid var(--linea)}
.paso .n{font-family:var(--display);font-size:19px;color:var(--oliva)}
.paso h3{font-size:22px}
.paso p{font-size:14px;color:#45433a}

/* ---------- EDITORIAL ---------- */
.destacada{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(24px,4vw,64px);align-items:center}
.destacada .media{aspect-ratio:16/11;overflow:hidden;background:var(--hueso-3)}
.destacada .media img{width:100%;height:100%;object-fit:cover}
.pilares-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:clamp(28px,4vw,44px)}
.nota-fila{display:grid;grid-template-columns:130px 1fr 190px;gap:clamp(16px,3vw,40px);align-items:center;
  padding-block:26px;border-top:1px solid var(--linea);cursor:pointer;transition:padding-inline .4s var(--ease),background .4s}
.nota-fila:last-child{border-bottom:1px solid var(--linea)}
.nota-fila:hover{padding-inline:10px;background:var(--hueso-2)}
.nota-fila .fecha{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--piedra)}
.nota-fila h3{font-size:21px}
.nota-fila .pilar-tag{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--oliva);text-align:right}
.suscribir{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end}
.suscribir .campo-form{flex:1;min-width:220px}
.marcador{display:inline-block;font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  border:1px dashed var(--terracota);color:var(--terracota);padding:5px 11px;margin-bottom:18px}

/* ---------- FOOTER ---------- */
.footer{background:var(--verde);color:var(--hueso);padding-block:clamp(56px,7vw,92px) 34px}
.footer-top{display:grid;grid-template-columns:1.35fr repeat(3,1fr);gap:clamp(28px,4vw,56px);
  padding-bottom:52px;border-bottom:1px solid rgba(247,245,239,.15)}
.footer h4{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;font-family:var(--texto);
  font-weight:500;opacity:.55;margin-bottom:20px}
.footer ul{list-style:none;display:grid;gap:11px}
.footer li,.footer li a{font-family:var(--texto);font-size:13.5px;opacity:.85;transition:opacity .3s}
.footer li a:hover{opacity:1;text-decoration:underline;text-underline-offset:4px}
.footer-frase{font-family:var(--display);font-size:17px;opacity:.8;margin-top:22px;max-width:34ch;line-height:1.5}
.footer-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 24px;
  padding-top:26px;font-size:11px;letter-spacing:.1em;color:rgba(247,245,239,.55)}
.footer-copy{display:inline-flex;flex-wrap:wrap;align-items:center;gap:10px}
/* Crédito de diseño y desarrollo, junto al copyright. Solo texto. */
.footer-credito{position:relative;padding-left:11px;color:rgba(247,245,239,.5)}
.footer-credito::before{content:"·";position:absolute;left:0;opacity:.7}
.redes{display:flex;gap:18px}
/* Instagram más visible: icono + texto, con la tipografía del sitio y un
   cuerpo mayor que el resto del pie inferior. */
.redes .red-ig{display:inline-flex;align-items:center;gap:8px;font-family:var(--texto);
  font-size:14px;letter-spacing:.04em;opacity:.9;transition:opacity .3s}
.redes .red-ig:hover{opacity:1}
.redes .red-ig svg{width:19px;height:19px;flex:none}
/* Red social aún sin URL: se muestra el icono y el texto, pero el enlace
   queda inactivo hasta que se pegue la dirección en Ajustes. */
.redes .red-inactiva{opacity:.5;cursor:default;pointer-events:none}
.seo-links{padding-top:34px;display:flex;flex-wrap:wrap;gap:8px 18px}
.seo-links a{font-size:11px;color:rgba(247,245,239,.5);transition:color .3s}
.seo-links a:hover{color:var(--hueso)}

.wa-flotante{position:fixed;right:20px;bottom:20px;z-index:70;width:54px;height:54px;border-radius:50%;
  background:var(--verde);color:var(--hueso);display:grid;place-items:center;cursor:pointer;border:0;
  box-shadow:0 8px 26px rgba(33,31,26,.25);transition:transform .35s var(--ease),background .35s var(--ease)}
.wa-flotante:hover{transform:scale(1.07);background:var(--oliva)}
.wa-flotante svg{width:25px;height:25px}

.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.visto{opacity:1;transform:none}

@media(max-width:1080px){
  .grid-props,.zonas,.notas,.pilares{grid-template-columns:repeat(2,1fr)}
  .ficha-grid{grid-template-columns:1fr}
  .aside-cv{position:static}
  .buscador-grid{grid-template-columns:repeat(2,1fr)}
  .campo{border-bottom:1px solid var(--linea-suave)}
  .btn-buscar{grid-column:1/-1;padding-block:18px}
  .footer-top{grid-template-columns:1fr 1fr}
  .valores,.cifras{grid-template-columns:repeat(2,1fr)}
  .destacada{grid-template-columns:1fr}
}
@media(max-width:820px){
  .nav{display:none}
  .menu-movil{display:block}
  .intro-grid,.form-grid,.socios{grid-template-columns:1fr}
  .form{grid-template-columns:1fr}
  .specs{grid-template-columns:repeat(2,1fr)}
  .galeria-mini-fila{grid-template-columns:repeat(3,1fr)}
  .amenidades{grid-template-columns:1fr}
  .paso{grid-template-columns:40px 1fr}
  .paso p{grid-column:2}
  .nota-fila{grid-template-columns:1fr}
  .nota-fila .pilar-tag{text-align:left}
  .popup{grid-template-columns:1fr;max-height:92vh;max-height:92svh;overflow-y:auto;
    -webkit-overflow-scrolling:touch}
  .popup-media{min-height:150px}
  .popup .btn{align-self:stretch}
  .popup-form .btn{align-self:stretch;justify-content:center}
}
@media(max-width:620px){
  .grid-props,.zonas,.notas,.pilares,.footer-top,.valores{grid-template-columns:1fr}
  .campo:first-child{padding-left:24px}
  .hero-scroll{display:none}
  .marca .sub{display:none}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none}
}


/* ============================================================
   AÑADIDOS DEL TEMA (no existían en el preview estático)
   ============================================================ */

/* Enlaces de accesibilidad */
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;
  clip:rect(1px,1px,1px,1px);white-space:nowrap}
.cv-saltar:focus{position:fixed;top:10px;left:10px;z-index:200;width:auto;height:auto;clip:auto;
  background:var(--verde);color:var(--hueso);padding:12px 18px;font-size:12px;letter-spacing:.14em;text-transform:uppercase}

/* La tarjeta completa es un enlace */
.prop-enlace{display:flex;flex-direction:column;height:100%;color:inherit}
.prop-enlace:hover{color:inherit}

/* Las zonas son enlaces, no artículos */
a.zona{color:var(--hueso)}

/* Marcador de imagen ausente: mantiene la altura de la maqueta */
.cv-sin-imagen{position:absolute;inset:0;display:block;
  background:linear-gradient(135deg,var(--hueso-3),var(--hueso-2))}
.nota-media,.prop-media,.retrato,.destacada .media{position:relative}

/* Menús del pie generados por WordPress */
.footer ul.menu,.footer ul{list-style:none;display:grid;gap:11px;margin:0;padding:0}
.footer .menu-item a{font-size:13.5px;opacity:.85}
.footer-bottom .menu{display:flex;gap:14px}

/* Paginación */
.pagination,.nav-links{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:clamp(36px,5vw,64px)}
.page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;
  padding-inline:12px;border:1px solid var(--linea);font-size:12px;letter-spacing:.1em;
  transition:all .3s var(--ease)}
.page-numbers:hover{border-color:var(--verde)}
.page-numbers.current{background:var(--verde);color:var(--hueso);border-color:var(--verde)}
.nav-links ul{list-style:none;display:flex;gap:8px;flex-wrap:wrap;padding:0;margin:0}

/* Contenido del editor dentro de .lead */
.lead p+p{margin-top:1.1em}
.lead h2,.lead h3{margin-block:1.4em .5em}
.lead ul,.lead ol{margin:1em 0 1em 1.2em}
.lead li{margin-bottom:.4em}
.lead a{border-bottom:1px solid var(--oliva)}
.lead img{margin-block:1.6em}
.lead blockquote{border-left:2px solid var(--oliva);padding-left:22px;margin:1.6em 0;
  font-family:var(--display);font-size:1.15em;line-height:1.5}

/* Los chips del editorial son enlaces */
a.chip{display:inline-flex;align-items:center;color:inherit}
a.chip.on{color:var(--hueso)}

/* Barra de administración: no debe tapar la cabecera fija */
.admin-bar .header{top:32px}
@media(max-width:782px){.admin-bar .header{top:46px}}


/* ------------------------------------------------------------
   Logotipo: por defecto el isotipo del tema; si se sube un logo
   personalizado desde el Personalizador, ese manda.
   ------------------------------------------------------------ */
.marca .logo-personalizado{max-height:46px;width:auto}
.header--solido .marca .logo-personalizado{max-height:40px}

/* Retrato de socio sin foto todavía */
.retrato--pendiente{display:grid;place-items:center;background:var(--verde);position:relative}
.retrato--pendiente::before{content:"";width:44%;aspect-ratio:781/969;
  background:var(--logo-b) center/contain no-repeat;opacity:.5}
.retrato-nota{position:absolute;bottom:20px;font-size:10px;letter-spacing:.2em;
  text-transform:uppercase;color:rgba(247,245,239,.6);text-align:center;padding-inline:12px}
.socios--tres{grid-template-columns:repeat(3,1fr)}
@media(max-width:900px){.socios--tres{grid-template-columns:1fr}}

/* ============================================================
   CAMBIOS DEL CLIENTE (ago. 2026)
   Buscador de texto en cabecera · slider de precio ·
   estabilidad de tarjetas en todos los dispositivos.
   ============================================================ */

/* ---------- Cabecera: grupo izquierdo + buscador de texto ---------- */
.header-izq{display:flex;align-items:center;gap:14px;min-width:0}

.cv-buscar{position:relative;flex:none}
.cv-buscar > summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;
  width:36px;height:36px;color:inherit;opacity:.85;transition:opacity .3s var(--ease)}
.cv-buscar > summary::-webkit-details-marker{display:none}
.cv-buscar > summary:hover,.cv-buscar[open] > summary{opacity:1}
.cv-buscar-panel{position:absolute;left:0;top:calc(100% + 12px);z-index:90;display:flex;align-items:center;
  background:var(--hueso);border:1px solid var(--linea);box-shadow:0 18px 46px rgba(33,31,26,.16);
  padding:5px;width:min(330px,78vw)}
.cv-buscar-panel input[type=search]{flex:1;min-width:0;border:0;background:none;padding:9px 11px;
  font-size:14px;color:var(--grafito)}
.cv-buscar-panel button{flex:none;background:var(--verde);color:var(--hueso);border:0;cursor:pointer;
  width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;
  transition:background .3s var(--ease)}
.cv-buscar-panel button:hover{background:var(--oliva)}

/* Buscador dentro del menú móvil */
.cv-buscar--movil{display:flex;width:100%;max-width:520px;margin-bottom:22px;
  border:1px solid rgba(247,245,239,.32)}
.cv-buscar--movil input[type=search]{flex:1;min-width:0;background:none;border:0;color:var(--hueso);
  padding:14px 16px;font-size:17px}
.cv-buscar--movil input[type=search]::placeholder{color:rgba(247,245,239,.6)}
.cv-buscar--movil button{flex:none;background:var(--hueso);color:var(--verde);border:0;width:54px;
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
@media(max-width:820px){ .header .cv-buscar{display:none} }

/* ---------- Slider de precio (mín–máx) ---------- */
.campo--precio{min-width:0}
.cv-slider{position:relative}
.cv-slider-lectura{display:block;font-size:14px;color:var(--grafito);margin-bottom:4px}
.cv-slider-carril{position:relative;height:28px;display:flex;align-items:center}
.cv-slider-pista{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);height:3px;
  background:var(--linea)}
.cv-slider-relleno{position:absolute;top:0;bottom:0;left:0;right:0;background:var(--verde)}
.cv-rango{position:absolute;left:0;top:0;width:100%;height:28px;margin:0;background:none;
  pointer-events:none;-webkit-appearance:none;appearance:none}
.cv-rango:focus-visible{outline:none}
.cv-rango:focus-visible::-webkit-slider-thumb{outline:2px solid var(--oliva);outline-offset:2px}
.cv-rango::-webkit-slider-runnable-track{background:none;border:0;height:28px}
.cv-rango::-moz-range-track{background:none;border:0;height:28px}
.cv-rango::-webkit-slider-thumb{pointer-events:auto;-webkit-appearance:none;appearance:none;
  width:16px;height:16px;margin-top:6px;border-radius:50%;background:var(--verde);
  border:2px solid var(--hueso);box-shadow:0 1px 4px rgba(33,31,26,.32);cursor:pointer}
.cv-rango::-moz-range-thumb{pointer-events:auto;width:16px;height:16px;border:2px solid var(--hueso);
  border-radius:50%;background:var(--verde);box-shadow:0 1px 4px rgba(33,31,26,.32);cursor:pointer}

/* ---------- Estabilidad de tarjetas en todos los dispositivos ---------- */
/* Reserva de proporción para navegadores sin aspect-ratio (Safari < 15).
   Sin esto la caja de imagen colapsa a 0 y la tarjeta se ve «cortada». */
@supports not (aspect-ratio: 1 / 1){
  .prop-media,.nota-media,.destacada .media{height:0;padding-bottom:76%}
  .zona{height:clamp(280px,32vw,400px)}
  .socio .retrato{height:0;padding-bottom:125%}
  .galeria-mini{height:0;padding-bottom:75%}
  .prop-media > img,.prop-media > .cv-sin-imagen,
  .nota-media > img,.nota-media > .cv-sin-imagen,
  .destacada .media > img,.socio .retrato > img,
  .galeria-mini > .galeria-abrir{position:absolute;inset:0;width:100%;height:100%}
  .galeria-mini > .galeria-abrir img{width:100%;height:100%;object-fit:cover}
}

/* El cuerpo de la tarjeta no debe desbordar ni recortar el precio en
   columnas angostas: los hijos flex pueden encogerse y el precio parte
   línea si hace falta. */
.prop,.prop-enlace,.prop-cuerpo{min-width:0}
.prop-enlace{display:flex;flex-direction:column;flex:1;color:inherit}
.prop h3{overflow-wrap:anywhere}
.prop-precio{flex-wrap:wrap}
.prop-precio strong{min-width:0;overflow-wrap:anywhere}
.prop-zona{overflow-wrap:anywhere}

/* ============================================================
   v1.5.0 — Estados, Beyond the Collection y transición al form
   ============================================================ */

/* ---- Marcas de estado (una o varias por propiedad) ---- */
.estados{display:flex;flex-wrap:wrap;gap:6px}
.prop-media .estados{position:absolute;top:14px;left:14px;z-index:2;max-width:calc(100% - 28px)}
.estado-marca{display:inline-flex;align-items:center;background:var(--hueso);
  color:var(--marca,#2A371D);border:1px solid color-mix(in srgb,var(--marca,#2A371D) 30%,transparent);
  font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:5px 10px;line-height:1;
  border-radius:1px;white-space:nowrap}
/* Estados oscuros: se rellenan para que el texto claro resalte */
.estado--vendido .estado-marca,.estado-marca.estado--vendido,
.estado--reservado .estado-marca,.estado-marca.estado--reservado{color:var(--hueso);background:var(--marca)}
.estado-marca.estado--vendido,.estado-marca.estado--reservado{border-color:transparent}
/* En la ficha, las marcas van bajo el título, en línea */
.ficha-hero-txt .estados{margin-top:16px}
.ficha-hero-txt .estado-marca{background:rgba(247,245,239,.92)}

/* ---- Chips de filtro por estado (multi-selección) ---- */
.chips-estado{display:flex;flex-wrap:wrap;gap:8px;width:100%;margin-top:14px;
  padding-top:14px;border-top:1px solid var(--linea)}
.chip-estado{font-family:var(--sans);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;
  padding:7px 13px;border:1px solid var(--linea);background:none;color:var(--grafito);cursor:pointer;
  transition:all .3s var(--ease);line-height:1}
.chip-estado:hover{border-color:var(--oliva)}
.chip-estado.on{background:var(--verde);color:var(--hueso);border-color:var(--verde)}

/* ---- Cabecera: área de respeto amplia por categoría ----
   El header ensanchado (ver .header .wrap) da el ancho para separar los
   ítems sin encoger la letra. Mantiene el tamaño pleno (11.5px) y sube
   el espacio entre categorías. La letra solo cede en pantallas medianas,
   donde el nav se comprime antes de pasar al menú móvil. */
.nav{gap:clamp(22px,2.4vw,40px)}
.nav a{font-size:11.5px;letter-spacing:.16em;white-space:nowrap;padding-inline:2px}
.header-acciones{gap:clamp(12px,1.4vw,20px)}
@media(max-width:1280px){
  .nav{gap:clamp(16px,1.8vw,28px)}
}
@media(max-width:1180px){
  .nav{gap:clamp(12px,1.3vw,20px)}
  .nav a{font-size:10.5px;letter-spacing:.1em}
  .idioma{font-size:10.5px}
  .btn-wa .txt{display:none} /* deja solo el icono de WhatsApp en pantallas medianas */
}

/* ---- Transición limpia hacia el formulario ---- */
/* El ancla no queda tapada por la cabecera fija */
html{scroll-padding-top:96px}

/* ============================================================
   v1.6.0 — Calendario «Book a Viewing»
   ============================================================ */
.cv-cita-noscript{color:var(--piedra);font-size:14px}
.cv-cita-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(18px,3vw,32px);align-items:start;margin-top:8px}
@media(max-width:820px){.cv-cita-grid{grid-template-columns:1fr}}

.cv-cita-panel{background:#fff;border:1px solid var(--linea)}
.cv-cita-panel-h{padding:14px 18px;border-bottom:1px solid var(--linea);display:flex;
  align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.cv-cita-panel-h h3{font-family:var(--serif,Georgia,serif);font-weight:400;font-size:18px;margin:0;letter-spacing:.02em}
.cv-cita-panel-b{padding:18px}
.cv-cita-paso{font-family:var(--serif,Georgia,serif);font-weight:400;font-size:18px;margin:0}

.cv-cita-nav{display:flex;align-items:center;gap:8px}
.cv-cita-nav button{background:none;border:1px solid var(--linea);width:32px;height:32px;cursor:pointer;
  font-size:16px;color:var(--grafito);transition:border-color .3s var(--ease)}
.cv-cita-nav button:hover{border-color:var(--oliva)}
.cv-cita-mes{font-family:var(--serif,Georgia,serif);font-size:16px;min-width:150px;text-align:center;text-transform:capitalize}

.cv-cal-dow{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-bottom:5px}
.cv-cal-dow span{text-align:center;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--piedra)}
.cv-cal-dias{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.cv-dia{aspect-ratio:1;border:1px solid transparent;background:var(--hueso);cursor:pointer;
  display:flex;align-items:center;justify-content:center;font-size:13.5px;font-family:inherit;color:var(--grafito);
  transition:all .2s var(--ease)}
.cv-dia:hover:not(.off){border-color:var(--oliva)}
.cv-dia.off{color:var(--hueso-3,#E4E0D4);cursor:default;background:transparent}
.cv-dia.sel{background:var(--verde);color:var(--hueso)}
.cv-dia.hoy:not(.sel){box-shadow:inset 0 0 0 1px var(--linea)}

.cv-cita-fecha-sel{font-size:13px;color:var(--piedra);margin:0 0 14px}
.cv-cita-fecha-sel .cv-volver{background:none;border:0;color:var(--oliva);cursor:pointer;font:inherit;padding:0;text-decoration:underline}
.cv-horas{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;max-height:300px;overflow:auto}
@media(max-width:520px){.cv-horas{grid-template-columns:repeat(3,1fr)}}
.cv-horas-cargando{color:var(--piedra);font-size:13px}
.cv-hora{border:1px solid var(--linea);background:none;padding:9px 4px;font-size:13px;cursor:pointer;
  font-variant-numeric:tabular-nums;color:var(--grafito);transition:all .2s var(--ease)}
.cv-hora:hover:not(:disabled){border-color:var(--oliva)}
.cv-hora:disabled{color:var(--hueso-3,#E4E0D4);border-color:var(--hueso-2,#EEEBE2);cursor:not-allowed;text-decoration:line-through}
.cv-hora.sel{background:var(--verde);color:var(--hueso);border-color:var(--verde)}

.cv-cita-resumen{background:var(--hueso-2,#EEEBE2);border:1px solid var(--linea);padding:14px 16px;margin-bottom:16px;font-size:13.5px}
.cv-cita-resumen .fila{display:flex;justify-content:space-between;gap:12px;padding:4px 0}
.cv-cita-resumen .fila span:first-child{color:var(--piedra)}
/* Los campos del calendario comparten la clase .campo con el buscador de
   la portada, que trae padding lateral y un border-right para separar sus
   columnas. Dentro del formulario de la cita eso desalineaba los inputs
   (el primero pegado al borde, los siguientes recorridos). Aquí se anulan
   esas reglas heredadas para que Nombre, Correo y Teléfono queden a ras. */
.cv-cita-form .campo{padding:0;border:0;margin-bottom:12px}
.cv-cita-form .campo:first-child{padding-left:0}
.cv-cita .cv-cita-form .campo label{display:block;font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--piedra);margin-bottom:6px}
.cv-cita .cv-cita-form .campo input{width:100%;box-sizing:border-box;padding:11px 13px;
  border:1px solid var(--linea);background:var(--hueso);font-family:inherit;font-size:14px;
  color:var(--grafito);border-radius:0;margin:0}
.cv-cita .cv-cita-form .campo input:focus{outline:none;border-color:var(--oliva)}
.cv-cita-form .btn{width:100%;margin-top:4px}
.cv-cita-estado{font-size:12px;color:var(--piedra);margin-top:10px}
.cv-cita-ok{padding:26px 18px;text-align:center;color:var(--verde);font-family:var(--serif,Georgia,serif);font-size:18px}

/* ===================================================================
   Página «Consign your property»
   =================================================================== */
.consignar-razones{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(24px,3vw,44px);margin-top:32px}
.consignar-razon h3{font-family:var(--display);font-size:19px;margin-bottom:8px}
.consignar-razon p{font-family:var(--texto);font-weight:300;font-size:14px;line-height:1.7;color:#4a4840;max-width:46ch}
.consignar-pasos{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,44px);margin-top:32px}
.consignar-paso .num{font-family:var(--display);font-size:34px;color:var(--verde);display:block;margin-bottom:10px}
.consignar-paso h3{font-family:var(--display);font-size:18px;margin-bottom:8px}
.consignar-paso p{font-family:var(--texto);font-weight:300;font-size:14px;line-height:1.7;color:#4a4840}

/* Formulario de consignación */
.cv-form-consignar{margin-top:28px;display:flex;flex-direction:column;gap:20px}
.cv-form-consignar .cv-form-fila{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.cv-form-consignar .campo{display:flex;flex-direction:column;gap:7px;padding:0;border:0}
.cv-form-consignar .campo > span{font-size:9.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--piedra)}
.cv-form-consignar input[type="text"],.cv-form-consignar input[type="tel"],
.cv-form-consignar input[type="email"],.cv-form-consignar select,
.cv-form-consignar textarea{width:100%;border:1px solid var(--linea);background:var(--hueso);
  font-family:var(--texto);font-size:14px;padding:12px 14px;color:var(--grafito)}
.cv-form-consignar input[type="file"]{font-family:var(--texto);font-size:13px;padding:10px 0}
.cv-form-consignar textarea{resize:vertical;min-height:80px}
.cv-form-consignar .campo-nota{font-size:11px;color:var(--piedra);letter-spacing:0;text-transform:none;font-weight:300}
.cv-form-consignar .btn{align-self:flex-start;padding:15px 34px;font-size:11px;letter-spacing:.18em;text-transform:uppercase}
.cv-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.consignar-aviso{padding:16px 20px;font-family:var(--texto);font-size:14px;margin-top:20px}
.consignar-aviso--ok{background:rgba(97,109,59,.12);border-left:3px solid var(--oliva);color:var(--verde)}
.consignar-aviso--error{background:rgba(161,109,47,.1);border-left:3px solid var(--terracota,#A16D2F);color:#8a4b1f}
@media(max-width:700px){
  .consignar-razones,.consignar-pasos,.cv-form-consignar .cv-form-fila{grid-template-columns:1fr}
}
