:root{
  --navy:#0e2a47;
  --navy-2:#173d63;
  --gold:#0284c7;
  --gold-light:#bed62b;
  --text-dark:#1c2430;
  --text-muted:#5b6472;
  --line:#e3e6ea;
  --bg-soft:#f7f9fa;
  --serif: Georgia, 'Iowan Old Style', 'Palatino Linotype', 'Times New Roman', serif;
  --sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}
*{box-sizing:border-box;}
html,body{margin:0; padding:0;}
body{font-family:var(--sans); color:var(--text-dark); background:#fff; line-height:1.55; -webkit-font-smoothing:antialiased;}
a{text-decoration:none; color:inherit;}
img{max-width:100%; display:block;}
h1,h2,h3{font-family:var(--serif); font-weight:400; color:var(--navy); letter-spacing:-.01em; margin:0 0 .4em;}
p{color:var(--text-muted); margin:0 0 1em;}
.container{max-width:1180px; margin:0 auto; padding:0 28px;}
section{padding:64px 0;}
.section-head{max-width:640px; margin-bottom:40px;}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}
.eyebrow{color:var(--gold); font-size:13.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase;}

/* Idioma: selector ES/EN */
.en{display:none;}
body.lang-en .es{display:none;}
body.lang-en .en{display:inline;}

.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:13px 26px; border-radius:2px; font-size:14px; font-weight:600;
  letter-spacing:.02em; cursor:pointer; border:1px solid transparent;
  transition:all .2s ease; background:none;
}
.btn-primary{background:var(--navy); color:#fff;}
.btn-primary:hover{background:var(--navy-2);}
.btn-outline{border-color:var(--line); color:var(--navy);}
.btn-outline:hover{background:var(--bg-soft);}
.btn-gold{background:var(--gold); color:#fff;}
.btn-gold:hover{background:#0270a8;}
.btn-sm{padding:8px 14px; font-size:12.5px;}
.btn svg{width:16px; height:16px; flex:none;}

/* Botones secundarios de navegación del admin (volver, cancelar, ver sitio,
   cerrar sesión) — cada uno con su propio color e ícono para que se
   distingan de un vistazo del botón principal (dorado) y entre sí. */
.btn-ghost{background:var(--bg-soft); border-color:var(--line); color:var(--text-dark);}
.btn-ghost:hover{background:#eef0f2; border-color:#c9cfd6;}
.btn-teal{background:#e6f6f4; border-color:#bfe8e3; color:#0e8478;}
.btn-teal:hover{background:#d8f0ec;}
.btn-logout{background:#fdeeec; border-color:#f3c7c0; color:#a83f30;}
.btn-logout:hover{background:#fbe0dc;}
/* Versión del botón "Cerrar sesión" para cuando vive sobre el header azul
   (poco contraste con el rosado claro de arriba, así que se aclara). */
.admin-header .btn-logout{background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.22); color:#f3a89d;}
.admin-header .btn-logout:hover{background:rgba(255,255,255,.16);}

/* Header */
header{background:var(--navy); position:sticky; top:0; z-index:50;}
header.header-transparent{position:fixed; top:0; left:0; right:0; width:100%; background:transparent; box-shadow:none; transition:background .25s ease, box-shadow .25s ease;}
header.header-transparent.scrolled{background:var(--navy); box-shadow:0 6px 20px rgba(0,0,0,.2);}
.nav-wrap{display:grid; grid-template-columns:auto 1fr minmax(38px,auto); align-items:center; padding:20px 0;}
.logo-wrap{display:flex; align-items:center; gap:10px;}
.logo-full{height:88px; width:auto; display:block;}
nav#mainNav{justify-self:end; margin-right:28px;}
nav#mainNav ul{list-style:none; display:flex; gap:30px; margin:0; padding:0;}
nav#mainNav a{color:#d7dce3; font-size:13.5px; font-weight:600; text-transform:uppercase; letter-spacing:.08em;}
nav#mainNav a:hover, nav#mainNav a.active{color:var(--gold-light);}
.mobile-lang{display:none;}
.mobile-login-item{display:none;}
.nav-right{display:flex; align-items:center; gap:12px; margin-left:22px;}

/* Selector de idioma desplegable */
.lang-dd{position:relative;}
.lang-toggle{display:flex; align-items:center; gap:7px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); border-radius:999px; padding:7px 12px; cursor:pointer; color:#fff; font-size:12.5px; font-weight:700;}
.lang-toggle:hover{background:rgba(255,255,255,.14);}
.lang-toggle .flag-ico{width:18px; height:13px; border-radius:2px; overflow:hidden; display:block;}
.lang-toggle .flag-ico svg{display:block;}
.lang-toggle .chev{width:10px; height:10px; opacity:.8; transition:transform .15s ease;}
.lang-toggle[aria-expanded="true"] .chev{transform:rotate(180deg);}
.lang-menu{position:absolute; top:calc(100% + 10px); right:0; background:#fff; border-radius:14px; box-shadow:0 18px 40px rgba(14,42,71,.22); padding:8px; min-width:190px; opacity:0; visibility:hidden; transform:translateY(-6px); transition:opacity .15s ease, transform .15s ease; z-index:80;}
.lang-menu.open{opacity:1; visibility:visible; transform:translateY(0);}
.lang-item{display:flex; align-items:center; gap:10px; width:100%; background:none; border:none; text-align:left; padding:10px 12px; border-radius:9px; cursor:pointer; font-size:14.5px; font-weight:600; color:var(--text-dark); font-family:inherit;}
.lang-item:hover:not(.disabled){background:var(--bg-soft);}
.lang-item .flag-ico{width:22px; height:16px; border-radius:3px; overflow:hidden; flex:none;}
.lang-item .flag-ico svg{display:block;}
.lang-item .lang-name{flex:1;}
.lang-item .check{width:16px; height:16px; color:var(--gold); flex:none; visibility:hidden;}
.lang-item.active{color:var(--gold);}
.lang-item.active .check{visibility:visible;}
.lang-item.disabled{opacity:.45; cursor:not-allowed;}
.lang-item .soon{font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--text-muted); background:var(--bg-soft); border-radius:999px; padding:2px 7px; flex:none;}

/* Botón + panel de inicio de sesión (admin) */
.login-dd{position:relative;}
.login-toggle{display:flex; align-items:center; gap:8px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); border-radius:999px; padding:8px 16px 8px 12px; cursor:pointer; color:#fff; font-size:13px; font-weight:600; font-family:inherit;}
.login-toggle:hover{background:rgba(255,255,255,.14);}
.login-toggle svg{width:18px; height:18px; flex:none;}
.login-panel{position:absolute; top:calc(100% + 12px); right:0; width:320px; background:#fff; border-radius:16px; box-shadow:0 22px 48px rgba(14,42,71,.28); padding:26px 22px 22px; opacity:0; visibility:hidden; transform:translateY(-8px); transition:opacity .18s ease, transform .18s ease; z-index:90;}
.login-panel.open{opacity:1; visibility:visible; transform:translateY(0);}
.login-panel-close{position:absolute; top:14px; right:14px; width:26px; height:26px; border-radius:50%; border:none; background:var(--bg-soft); color:var(--text-muted); cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:13px; line-height:1;}
.login-panel-logo{height:28px; width:auto; margin-bottom:14px;}
.login-hello{font-size:14px; color:var(--text-muted); margin:0 0 4px;}
.login-title{font-family:var(--serif); font-size:19px; color:var(--navy); margin:0 0 16px; line-height:1.3; font-weight:400;}
.login-field{margin-bottom:12px;}
.login-field label{display:block; font-size:12.5px; font-weight:700; color:var(--text-dark); margin-bottom:5px;}
.login-field input{width:100%; padding:11px 13px; border:1px solid var(--line); border-radius:9px; font-size:14px; font-family:inherit; color:var(--text-dark);}
.login-field input:focus{outline:none; border-color:var(--gold);}
.login-error{display:none; color:#c0392b; font-size:12.5px; margin:-4px 0 12px;}
.login-error.show{display:block;}
.login-submit{width:100%; padding:12px; border:none; border-radius:9px; background:var(--navy); color:#fff; font-size:14.5px; font-weight:700; cursor:pointer; margin-top:4px; font-family:inherit;}
.login-submit:hover{background:var(--navy-2);}
.login-submit:disabled{opacity:.6; cursor:default;}
.burger{display:none; flex-direction:column; align-items:center; justify-content:center; gap:4px; cursor:pointer; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); width:38px; height:38px; border-radius:10px;}
.burger span{width:17px; height:2px; background:#fff; border-radius:1px;}

/* Hero + búsqueda */
.search-hero{position:relative; overflow:hidden; background-color:var(--navy); background-position:center 72%; background-size:cover; color:#fff; padding:170px 0 60px;}
.search-hero::before{
  content:''; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(6,14,26,.55) 0%, rgba(6,14,26,.15) 32%, rgba(6,14,26,.1) 60%, rgba(6,14,26,.4) 100%);
}
.search-hero > .container{position:relative; z-index:2;}
.search-hero .eyebrow{color:var(--gold-light); text-shadow:0 2px 10px rgba(0,0,0,.55);}
.search-hero h1{color:#fff; font-size:clamp(34px,4.6vw,52px); margin-bottom:12px; text-shadow:0 2px 16px rgba(0,0,0,.55);}
.search-hero p{color:#f1f3f5; max-width:560px; text-shadow:0 1px 10px rgba(0,0,0,.6);}
.search-bar{
  background:#fff; border-radius:14px; padding:18px; margin-top:34px;
  display:grid; grid-template-columns:1fr 1fr 1fr auto; gap:12px; align-items:end;
  box-shadow:0 24px 50px -20px rgba(0,0,0,.4);
}
.search-field label{display:block; font-size:11.5px; font-weight:700; color:var(--text-muted); text-transform:uppercase; letter-spacing:.05em; margin-bottom:6px;}
.search-field select, .search-field input{
  width:100%; padding:11px 12px; border:1px solid var(--line); border-radius:8px; font-size:14px; color:var(--text-dark); background:#fff;
}
.search-bar .btn{justify-content:center; height:44px; white-space:nowrap;}

/* Grilla de propiedades */
.results-bar{display:flex; align-items:center; justify-content:space-between; margin-bottom:26px; flex-wrap:wrap; gap:12px;}
.results-count{font-size:14px; color:var(--text-muted);}
.property-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
.property-card{
  background:#fff; border:1px solid var(--line); border-radius:14px; overflow:hidden;
  transition:transform .2s ease, box-shadow .2s ease; display:flex; flex-direction:column;
}
.property-card:hover{transform:translateY(-4px); box-shadow:0 24px 44px -20px rgba(14,42,71,.28);}
.property-photo{position:relative; aspect-ratio:4/3; background:var(--bg-soft) center/cover no-repeat; overflow:hidden;}
.property-photo img{width:100%; height:100%; object-fit:cover;}
.property-photo .no-photo{display:flex; align-items:center; justify-content:center; height:100%; color:#aab3bf; font-size:13px;}
.property-badge{
  position:absolute; top:14px; right:14px; background:var(--navy); color:#fff;
  font-size:11px; font-weight:700; letter-spacing:.06em; padding:6px 12px; border-radius:3px;
}
.property-badge.arriendo{background:var(--gold);}
.property-body{padding:20px 22px 22px; display:flex; flex-direction:column; gap:6px; flex:1;}
.property-title{font-family:var(--serif); font-size:17px; color:var(--navy); line-height:1.3; margin:0;}
.property-comuna{font-size:13px; color:var(--gold); font-weight:600;}
.property-price{font-size:16px; font-weight:700; color:var(--text-dark); margin-top:2px;}
.property-price .clp{font-weight:500; color:var(--text-muted); font-size:14px;}
.property-specs{display:flex; gap:18px; border-top:1px solid var(--line); margin-top:12px; padding-top:14px;}
.property-specs div{display:flex; flex-direction:column; align-items:center; gap:4px; font-size:12px; color:var(--text-muted); flex:1; text-align:center;}
.property-specs strong{color:var(--navy); font-size:14px;}
.property-specs svg{width:20px; height:20px; color:var(--text-dark);}
.empty-state{text-align:center; padding:70px 20px; color:var(--text-muted); border:1px dashed var(--line); border-radius:14px;}

/* Detalle de propiedad */
.property-hero-photo{aspect-ratio:16/8; background:var(--bg-soft) center/cover no-repeat; border-radius:16px; overflow:hidden; margin-bottom:14px;}
.property-hero-photo img{width:100%; height:100%; object-fit:cover;}
.thumb-strip{display:flex; gap:10px; overflow-x:auto; padding-bottom:6px;}
.thumb-strip img{width:96px; height:72px; object-fit:cover; border-radius:8px; cursor:pointer; border:2px solid transparent; flex:0 0 auto;}
.thumb-strip img.active{border-color:var(--gold);}
.detail-grid{display:grid; grid-template-columns:1.6fr 1fr; gap:48px; margin-top:36px; align-items:start;}
.spec-list{display:grid; grid-template-columns:1fr 1fr; column-gap:32px; row-gap:16px; margin:18px 0 28px; padding:22px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.spec-list-item{display:flex; align-items:center; gap:12px; font-size:14.5px; color:var(--text-muted);}
.spec-list-item strong{color:var(--navy); font-weight:600;}
.spec-list-item svg{width:22px; height:22px; color:var(--text-dark); flex:0 0 auto;}
@media (max-width:640px){ .spec-list{grid-template-columns:1fr;} }
.sidebar-card{background:var(--bg-soft); border:1px solid var(--line); border-radius:16px; padding:26px; position:sticky; top:96px;}

/* Migaja de pan */
.crumbs{display:flex; align-items:center; flex-wrap:wrap; gap:6px; font-size:13px; color:var(--text-muted); margin-bottom:8px;}
.crumbs a{color:var(--text-muted);}
.crumbs a:hover{color:var(--gold); text-decoration:underline;}
.crumbs .sep{color:#c3c9d1; padding:0 1px;}
.crumbs .current{color:var(--navy); font-weight:600;}

/* Título + acciones (compartir / guardar) */
.title-row{display:flex; align-items:flex-start; justify-content:space-between; gap:20px;}
.title-actions{display:flex; gap:10px; flex:0 0 auto; padding-top:6px;}
.action-btn{display:inline-flex; align-items:center; gap:7px; background:#fff; border:1px solid var(--line); border-radius:999px; padding:9px 16px; font-size:13.5px; font-weight:600; color:var(--navy); cursor:pointer; white-space:nowrap;}
.action-btn:hover{border-color:var(--gold); color:var(--gold);}
.action-btn svg{width:16px; height:16px;}
.action-btn#saveBtn.active{background:#fdece9; border-color:#f3b6ac; color:#c0392b;}
.action-btn#saveBtn.active svg{fill:#c0392b; stroke:#c0392b;}
.address-line{display:flex; align-items:center; gap:6px; color:var(--text-muted); font-size:14.5px; margin:6px 0 22px;}
.address-line svg{width:16px; height:16px; flex:0 0 auto; color:var(--text-muted);}
@media (max-width:640px){
  .title-row{flex-direction:column; gap:12px;}
  .title-actions{width:100%;}
  .action-btn{flex:1; justify-content:center;}
}

/* Galería */
.gallery{display:grid; grid-template-columns:1.4fr 1fr; grid-template-rows:440px; gap:10px; height:440px; margin-bottom:8px;}
.gallery.gallery-single{grid-template-columns:1fr; grid-template-rows:none; height:auto;}
.gallery.gallery-single .gallery-main{aspect-ratio:16/8;}
.gallery-main{border-radius:14px; overflow:hidden; position:relative; cursor:pointer;}
.gallery-main img{width:100%; height:100%; object-fit:cover; display:block;}
.gallery-side{display:grid; grid-template-columns:1fr 1fr; grid-template-rows:1fr 1fr; gap:10px;}
.gallery-tile{border-radius:12px; overflow:hidden; position:relative; cursor:pointer;}
.gallery-tile img{width:100%; height:100%; object-fit:cover; display:block;}
.gallery-tile.more::after{content:''; position:absolute; inset:0; background:rgba(6,14,26,.6);}
.more-count{position:absolute; inset:0; z-index:2; display:flex; align-items:center; justify-content:center; gap:8px; color:#fff; font-weight:700; font-size:14px; text-align:center;}
.more-count svg{width:20px; height:20px;}
@media (max-width:760px){
  .gallery{grid-template-columns:1fr; height:auto;}
  .gallery-side{grid-template-columns:1fr 1fr; grid-template-rows:1fr; height:150px;}
  .gallery-main{height:260px;}
}

/* Badge + precio */
.eyebrow-row{margin-bottom:6px;}
.badge-pill{display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; padding:5px 12px; border-radius:999px;}
.badge-pill.featured{background:#eaf6da; border:1px solid #d3ecab; color:#5c7a1e;}
.price-block{margin:6px 0 4px;}
.price-block .price-uf{font-size:28px; font-weight:700; color:var(--navy); display:flex; align-items:baseline; gap:8px;}
.price-block .op-label{font-size:14px; font-weight:600; color:var(--text-muted); text-transform:none;}
.price-block .price-clp{font-size:15px; color:var(--text-muted); margin-top:2px;}

/* CTA secundarios bajo la ficha técnica */
.cta-row{display:flex; gap:12px; margin-bottom:30px; flex-wrap:wrap;}
.cta-row .btn{flex:0 0 auto; white-space:nowrap;}
.cta-row .btn svg{width:18px; height:18px; flex:0 0 auto;}
@media (max-width:480px){ .cta-row .btn{white-space:normal; text-align:left;} }

/* Formulario de consulta en la sidebar */
.sidebar-greeting{font-size:15px; color:var(--navy); font-weight:600; margin-bottom:16px;}
.sidebar-whatsapp{display:flex; align-items:center; justify-content:center; gap:8px; width:100%; background:#25D366; color:#fff; padding:12px; border-radius:8px; font-weight:600; font-size:14px; margin-bottom:14px;}
.sidebar-whatsapp svg{width:18px; height:18px;}
.sidebar-divider{display:flex; align-items:center; gap:10px; color:var(--text-muted); font-size:12px; margin:4px 0 16px;}
.sidebar-divider::before, .sidebar-divider::after{content:''; flex:1; height:1px; background:var(--line);}
.sidebar-card input, .sidebar-card textarea{
  width:100%; padding:11px 14px; border:1px solid var(--line); border-radius:8px; margin-bottom:12px; font-family:var(--sans); font-size:14px; background:#fff; color:var(--text-dark);
}
.sidebar-card textarea{min-height:80px; resize:vertical;}
.phone-row{display:flex; gap:8px;}
.phone-row .cc{flex:0 0 74px; display:flex; align-items:center; justify-content:center; gap:4px; border:1px solid var(--line); border-radius:8px; background:#fff; font-size:13px; height:44px;}
.phone-row input{margin-bottom:0;}
.consent-row{display:flex; align-items:flex-start; gap:8px; font-size:12px; color:var(--text-muted); margin-bottom:16px;}
.consent-row input{width:auto; margin:2px 0 0;}
.consent-row a{color:var(--gold); text-decoration:underline;}

/* Propiedades similares */
.similar-section{margin-top:60px; padding-top:40px; border-top:1px solid var(--line);}
.section-title{font-size:20px; margin:0;}

/* Lightbox de fotos */
.lightbox{display:none; position:fixed; inset:0; background:rgba(6,10,18,.94); z-index:200; align-items:center; justify-content:center;}
.lightbox.open{display:flex;}
.lightbox img{max-width:88vw; max-height:82vh; object-fit:contain; border-radius:6px;}
.lightbox-close{position:absolute; top:22px; right:26px; background:none; border:none; color:#fff; font-size:34px; line-height:1; cursor:pointer;}
.lightbox-nav{position:absolute; top:50%; transform:translateY(-50%); background:rgba(255,255,255,.12); border:none; color:#fff; font-size:32px; width:52px; height:52px; border-radius:50%; cursor:pointer; line-height:1;}
.lightbox-nav:hover{background:rgba(255,255,255,.22);}
.lightbox-prev{left:20px;}
.lightbox-next{right:20px;}
.lightbox-counter{position:absolute; bottom:22px; left:50%; transform:translateX(-50%); color:#d7dce3; font-size:13px;}
@media (max-width:640px){
  .lightbox-nav{width:42px; height:42px; font-size:26px;}
  .lightbox-close{top:14px; right:16px; font-size:28px;}
}

/* Nosotros */
.about-grid{display:grid; grid-template-columns:1.1fr 1fr; gap:56px; align-items:center;}
.about-photo{border-radius:16px; overflow:hidden; aspect-ratio:4/5; box-shadow:0 30px 60px -24px rgba(14,42,71,.35);}
.about-photo img{width:100%; height:100%; object-fit:cover;}
.about-stats{background:var(--bg-soft); padding:48px 0;}
.about-stats-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:16px;}
.about-stat{text-align:center;}
.about-stat-icon{width:56px; height:56px; margin:0 auto 12px; display:block;}
.about-stat strong{display:block; font-family:var(--serif); font-size:26px; color:var(--gold); margin-bottom:8px;}
.about-stat span{font-size:13.5px; color:var(--text-muted); line-height:1.4;}
.about-stat-img{display:block; width:100%; height:auto; border-radius:14px; box-shadow:0 6px 24px rgba(14,42,71,.1);}

/* Filtros: móviles */
@media (max-width:920px){
  .logo-full{height:64px;}
  .logo-wrap{margin-left:8px;}
  nav#mainNav{display:none;}
  nav#mainNav.open{
    display:block; position:fixed; top:var(--header-h,84px); left:0; right:0;
    justify-self:stretch; width:auto; margin-right:0;
    background:var(--navy); padding:10px 4px 20px; z-index:60; box-shadow:0 20px 40px rgba(0,0,0,.25);
    max-height:calc(100vh - var(--header-h,84px)); overflow-y:auto;
  }
  nav#mainNav.open ul{flex-direction:column; gap:2px; padding:0 20px;}
  nav#mainNav.open ul li a{display:block; padding:14px 4px; border-bottom:1px solid rgba(255,255,255,.08);}
  /* El botón de "Iniciar sesión" fuera del menú se oculta: ahora vive como ítem del menú */
  .login-toggle{display:none;}
  .mobile-login-item{display:block;}
  #mobileLoginTrigger{
    display:flex; align-items:center; gap:10px; width:100%; text-align:left;
    padding:14px 4px; border-bottom:1px solid rgba(255,255,255,.08);
    background:none; border-left:none; border-right:none; border-top:none;
    color:#d7dce3; font-size:14px; font-weight:500; font-family:inherit; cursor:pointer;
  }
  #mobileLoginTrigger svg{width:18px; height:18px; flex:none;}
  /* El selector de idioma se muestra dentro del menú hamburguesa, no en la botonera */
  .lang-dd{display:none;}
  nav#mainNav.open .mobile-lang{display:block; margin-top:14px; padding-top:14px; border-top:1px solid rgba(255,255,255,.12); padding-left:20px; padding-right:20px;}
  .mobile-lang-label{font-size:11.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#9fb0c3; margin-bottom:10px;}
  .mobile-lang-row{display:flex; gap:10px; flex-wrap:wrap;}
  .mobile-lang-btn{display:flex; align-items:center; gap:8px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.16); border-radius:999px; padding:8px 14px; color:#fff; font-size:13.5px; font-weight:600; cursor:pointer;}
  .mobile-lang-btn .flag-ico{width:20px; height:14px; border-radius:2px; overflow:hidden; flex:none;}
  .mobile-lang-btn .flag-ico svg{display:block;}
  .mobile-lang-btn.active{background:var(--gold-light); border-color:var(--gold-light); color:var(--navy);}
  .burger{display:flex; border-radius:50%; margin-left:auto;}
  header{position:relative;}
  .search-hero{padding:140px 0 44px;}
  .search-bar{grid-template-columns:1fr 1fr;}
  .property-grid{grid-template-columns:1fr 1fr;}
  .detail-grid{grid-template-columns:1fr;}
  .sidebar-card{position:static;}
  .about-grid{grid-template-columns:1fr; gap:32px;}
  .about-photo{order:-1; aspect-ratio:16/9;}
  .about-stats-grid{grid-template-columns:repeat(2,1fr); gap:24px;}
}
@media (max-width:720px){
  .login-panel{position:fixed; top:auto; bottom:0; left:0; right:0; width:100%; border-radius:20px 20px 0 0;}
}
@media (max-width:600px){
  .nav-right{gap:6px;}
  .login-toggle span{display:none;}
  .login-toggle{padding:8px; width:38px; height:38px; justify-content:center;}
  .lang-toggle span:nth-child(2){display:none;}
  .lang-toggle{padding:7px 9px;}
}
@media (max-width:640px){
  .search-bar{grid-template-columns:1fr;}
  .property-grid{grid-template-columns:1fr;}
  section{padding:44px 0;}
  .about-stats-grid{grid-template-columns:1fr;}
}

/* Contacto / formularios */
.form-card{background:#fff; border:1px solid var(--line); border-radius:16px; padding:32px;}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
input,textarea,select{font-family:var(--sans); font-size:14px;}
.form-card input, .form-card textarea{
  width:100%; padding:11px 14px; border:1px solid var(--line); border-radius:8px; margin-bottom:16px; color:var(--text-dark);
}
.form-card label{font-size:12.5px; color:var(--text-muted); margin-bottom:6px; display:block;}
.form-card textarea{resize:vertical; min-height:110px;}
@media (max-width:640px){ .form-row{grid-template-columns:1fr;} }

.contact-layout{
  display:grid; grid-template-columns:380px 1fr; gap:44px; align-items:start;
}
.contact-side{
  background:var(--navy); color:#fff; border-radius:18px; padding:44px 36px;
}
.contact-side-eyebrow{color:var(--gold-light);}
.contact-side-title{color:#fff; font-size:clamp(26px,2.6vw,32px);}
.contact-side-text{color:#c7d2e0; font-size:14.5px; line-height:1.65; margin-bottom:36px;}
.contact-side-list{list-style:none; margin:0; padding:24px 0 0; border-top:1px solid rgba(255,255,255,.14); display:flex; flex-direction:column; gap:26px;}
.contact-side-item{display:flex; align-items:flex-start; gap:14px;}
.contact-side-icon{
  width:42px; height:42px; border-radius:50%; background:rgba(255,255,255,.1);
  display:flex; align-items:center; justify-content:center; flex:none;
}
.contact-side-icon svg{width:19px; height:19px; color:var(--gold-light);}
.contact-side-label{display:block; font-size:11px; font-weight:700; color:#93a3b8; text-transform:uppercase; letter-spacing:.06em; margin-bottom:3px;}
.contact-side-item p{margin:0; font-size:14.5px; color:#fff; line-height:1.5;}
.contact-side-item a{color:#fff; text-decoration:none;}
.contact-side-item a:hover{color:var(--gold-light);}
.contact-form-col{margin:0;}
@media (max-width:820px){
  .contact-layout{grid-template-columns:1fr; gap:32px;}
  .contact-side{padding:36px 28px;}
}

.whatsapp-float{
  position:fixed; right:26px; bottom:26px; z-index:70;
  width:58px; height:58px; border-radius:50%; background:#25D366;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 24px rgba(0,0,0,.25);
}
.whatsapp-float svg{width:28px; height:28px;}

footer{background:var(--navy); color:#9aa5b3; padding:56px 0 0; margin-top:40px;}
footer a{color:#aab3bf;}
footer a:hover{color:var(--gold-light);}
.footer-grid{display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:40px; padding-bottom:40px; border-bottom:1px solid rgba(255,255,255,.1);}
.footer-logo{height:44px; width:auto; margin-bottom:16px;}
.footer-brand p{color:#9aa5b3; font-size:13.5px; max-width:320px; margin:0;}
.footer-col h4{color:#fff; font-family:var(--sans); font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; margin:0 0 16px;}
.footer-col ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px;}
.footer-col ul li{font-size:14px;}
.footer-address{color:#9aa5b3;}
.footer-bottom{display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; align-items:center; padding:22px 0; font-size:13px;}
@media (max-width:920px){
  .footer-grid{grid-template-columns:1fr 1fr; row-gap:32px;}
  .footer-brand{grid-column:1 / -1;}
}
@media (max-width:640px){
  .footer-grid{grid-template-columns:1fr;}
}

/* ---- Admin ---- */
.admin-body{background:var(--bg-soft); min-height:100vh;}
.admin-header{background:var(--navy); color:#fff; padding:16px 0;}
.admin-header .container{display:flex; align-items:center; justify-content:space-between;}
.admin-header .logo-full{height:52px;}
.admin-header a.logout{color:#c6cdd6; font-size:13px;}
.admin-wrap{max-width:1080px; margin:0 auto; padding:36px 28px;}
.admin-card{background:#fff; border:1px solid var(--line); border-radius:14px; padding:28px; margin-bottom:24px;}
table.admin-table{width:100%; border-collapse:collapse;}
table.admin-table th{text-align:left; font-size:12px; text-transform:uppercase; letter-spacing:.05em; color:var(--text-muted); padding:10px 12px; border-bottom:2px solid var(--line);}
table.admin-table td{padding:12px; border-bottom:1px solid var(--line); font-size:14px; vertical-align:middle;}
table.admin-table img.thumb{width:64px; height:48px; object-fit:cover; border-radius:6px;}
.badge{display:inline-block; padding:4px 10px; border-radius:999px; font-size:11.5px; font-weight:700;}
.badge.pub{background:rgba(176,141,62,.14); color:var(--gold);}
.badge.draft{background:rgba(91,100,114,.12); color:var(--text-muted);}

/* Switch Activa/Inactiva en el listado del admin (activar_desactivar propiedad) */
.status-toggle{display:inline-flex; align-items:center; gap:9px; background:none; border:none; cursor:pointer; padding:4px 10px 4px 4px; border-radius:999px; font-size:12.5px; font-weight:700; color:var(--text-muted); font-family:var(--sans);}
.status-toggle:hover{background:var(--bg-soft);}
.status-toggle-track{width:34px; height:19px; border-radius:999px; background:#d7dce3; position:relative; transition:background .18s ease; flex:none;}
.status-toggle-thumb{position:absolute; top:2px; left:2px; width:15px; height:15px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.3); transition:transform .18s ease;}
.status-toggle.is-on{color:#3f7a3f;}
.status-toggle.is-on .status-toggle-track{background:#5fa25f;}
.status-toggle.is-on .status-toggle-thumb{transform:translateX(15px);}

/* Editor de texto enriquecido para "Descripción" (admin) */
.rich-editor-wrap{margin-bottom:16px;}
.rich-editor-wrap .ql-toolbar.ql-snow{border:1px solid var(--line); border-radius:8px 8px 0 0; background:var(--bg-soft);}
.rich-editor-wrap .ql-container.ql-snow{border:1px solid var(--line); border-top:none; border-radius:0 0 8px 8px; font-family:var(--sans); font-size:14px;}
.rich-editor-wrap .ql-editor{min-height:140px;}
.char-counter{font-size:12px; color:var(--text-muted); margin-top:6px;}

/* Descripción de la propiedad (público): ahora puede traer HTML del editor
   (párrafos, listas, negrita, enlaces) en vez de solo texto plano — por
   eso el toggle ES/EN acá se hace a nivel de bloque (div), no como el
   .es/.en genérico (que asume texto inline dentro de un span). */
.property-description .en{display:none;}
body.lang-en .property-description .es{display:none;}
body.lang-en .property-description .en{display:block;}
.property-description p{margin:0 0 12px;}
.property-description p:last-child{margin-bottom:0;}
.property-description ul, .property-description ol{margin:0 0 12px 20px; padding:0;}
.property-description li{margin-bottom:4px;}
.property-description a{color:var(--gold); text-decoration:underline;}
.login-wrap{min-height:100vh; display:flex; align-items:center; justify-content:center; background:var(--navy);}
.login-card{background:#fff; border-radius:16px; padding:40px; width:100%; max-width:360px;}
.login-card img{height:40px; margin:0 auto 24px; display:block;}
.error-msg{background:#fdecea; color:#c0392b; padding:10px 14px; border-radius:8px; font-size:13.5px; margin-bottom:16px;}
.success-msg{background:#faf3e2; color:#8a6c2f; padding:10px 14px; border-radius:8px; font-size:13.5px; margin-bottom:16px;}
/* Secciones del formulario de propiedad (admin) */
/* Un color de acento por sección del formulario (barrita izquierda + fondo
   del ícono), para que cada bloque se reconozca de un vistazo al recorrer
   un formulario largo. */
.form-section{position:relative; padding:4px 4px 26px 22px; margin-bottom:26px; border-bottom:1px solid var(--line);}
.form-section:last-of-type{border-bottom:none; margin-bottom:0; padding-bottom:4px;}
.form-section::before{content:''; position:absolute; left:0; top:2px; bottom:28px; width:4px; border-radius:4px; background:var(--accent, var(--line));}
.form-section:last-of-type::before{bottom:6px;}
.form-section-head{display:flex; align-items:center; gap:12px; margin-bottom:20px;}
.form-section-icon{width:36px; height:36px; border-radius:10px; background:var(--accent-bg, var(--bg-soft)); color:var(--accent, var(--text-muted)); display:flex; align-items:center; justify-content:center; flex:none;}
.form-section-icon svg{width:19px; height:19px;}
.form-section-title{font-family:var(--sans); font-size:15px; font-weight:700; color:var(--text-dark); margin:0;}
.form-section-sub{font-size:12.5px; color:var(--text-muted); margin:1px 0 0;}

.form-section--general{--accent:#5b6ee1; --accent-bg:#eef0fd;}
.form-section--ubicacion{--accent:#0e9488; --accent-bg:#e6f6f4;}
.form-section--precio{--accent:#b08d3e; --accent-bg:#faf3e2;}
.form-section--caracteristicas{--accent:#7c5cd1; --accent-bg:#f2eefb;}
.form-section--descripcion{--accent:#c0568a; --accent-bg:#fbecf3;}
.form-section--fotos{--accent:#d9822b; --accent-bg:#fdf1e4;}
.form-section--visibilidad{--accent:#3f9d5c; --accent-bg:#eaf7ee;}

/* Barra de acciones (Guardar/Cancelar) fija arriba mientras se recorre el
   formulario, además de la que ya existía al final. */
.form-actions-top{position:sticky; top:0; z-index:20; display:flex; align-items:center; gap:10px; justify-content:space-between; background:rgba(247,249,250,.94); backdrop-filter:blur(6px); padding:10px 0; margin-bottom:8px; flex-wrap:wrap;}
.form-actions-top .btn-group{display:flex; gap:10px; flex-wrap:wrap;}
.form-title-row{display:flex; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; gap:14px;}

/* Fila de botones del listado admin (Ver sitio / Cerrar sesión / Agregar),
   a la misma altura que el título — reemplaza los links de texto que antes
   vivían sueltos en el header. */
.admin-title-row{display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-bottom:22px;}
.admin-title-row .btn-group{display:flex; gap:10px; flex-wrap:wrap;}

/* Fotos: grilla compartida entre las fotos ya guardadas (arrastrables,
   con botón de eliminar y badge de portada) y la vista previa de las
   fotos nuevas recién elegidas (antes de subirlas). */
.photo-grid, .photo-preview-grid{display:flex; flex-wrap:wrap; gap:12px; margin-bottom:16px;}
.photo-item{position:relative; width:120px; height:90px; border-radius:8px; overflow:hidden; border:1px solid var(--line); background:var(--bg-soft);}
.photo-item img{width:100%; height:100%; object-fit:cover; display:block;}
#existingPhotoGrid .photo-item{cursor:grab;}
#existingPhotoGrid .photo-item.dragging{opacity:.4; cursor:grabbing;}
.photo-item.marked-delete{opacity:.35;}
.photo-item.marked-delete img{filter:grayscale(1);}
.photo-cover-badge{position:absolute; top:6px; left:6px; background:var(--gold); color:#fff; font-size:10.5px; font-weight:700; letter-spacing:.03em; text-transform:uppercase; padding:3px 8px; border-radius:999px; z-index:1;}
.photo-delete-btn{position:absolute; top:5px; right:5px; width:24px; height:24px; border-radius:50%; border:none; background:rgba(20,26,38,.62); color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; padding:0; z-index:1; transition:background .15s ease;}
.photo-delete-btn:hover{background:rgba(192,57,43,.85);}
.photo-delete-btn svg{width:13px; height:13px;}
.photo-item.marked-delete .photo-delete-btn{background:rgba(192,57,43,.85);}
.photo-item-new{border-style:dashed;}

.photo-upload-zone{border:2px dashed var(--line); border-radius:12px; padding:32px 20px; text-align:center; cursor:pointer; transition:border-color .15s ease, background .15s ease; color:var(--text-muted);}
.photo-upload-zone:hover{border-color:var(--gold); background:var(--bg-soft);}
.photo-upload-zone.is-dragover{border-color:var(--gold); background:rgba(176,141,62,.08);}
.photo-upload-zone p{margin:0 0 4px; color:var(--text-dark); font-size:14px;}
.photo-upload-icon{color:var(--text-muted); margin-bottom:10px;}
.photo-upload-icon svg{width:34px; height:34px;}
.photo-upload-hint{font-size:12px; color:var(--text-muted);}

/* Toggles "Publicada" / "Destacada" (reutiliza el look del switch
   Activa/Inactiva del listado, pero el estado real lo maneja el checkbox). */
/* Visibilidad: "Publicada" y "Destacada" como tarjetas separadas, cada
   una con su ícono, explicación corta y switch — en vez de dos casilleros
   sueltos uno junto al otro. */
.visibility-cards{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
.vis-card{position:relative; display:flex; align-items:flex-start; gap:14px; border:1.5px solid var(--line); border-radius:12px; padding:16px; cursor:pointer; transition:border-color .15s ease, background .15s ease; background:#fff;}
.vis-card:hover{border-color:#c9cfd6;}
.vis-card input[type=checkbox]{position:absolute; opacity:0; width:0; height:0; pointer-events:none;}
.vis-card-icon{width:40px; height:40px; border-radius:10px; background:var(--bg-soft); color:var(--text-muted); display:flex; align-items:center; justify-content:center; flex:none; transition:background .15s ease, color .15s ease;}
.vis-card-icon svg{width:20px; height:20px;}
.vis-card-body{flex:1;}
.vis-card-body strong{display:block; font-size:14.5px; color:var(--text-dark); margin-bottom:2px;}
.vis-card-body span{font-size:12.5px; color:var(--text-muted); line-height:1.4;}
.vis-switch{position:relative; width:38px; height:22px; border-radius:999px; background:#d7dce3; flex:none; transition:background .18s ease; margin-top:2px;}
.vis-switch::after{content:''; position:absolute; top:2px; left:2px; width:18px; height:18px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.25); transition:transform .18s ease;}

.vis-card--publicada:has(input:checked){border-color:#3f9d5c; background:#eaf7ee;}
.vis-card--publicada:has(input:checked) .vis-card-icon{background:#3f9d5c; color:#fff;}
.vis-card--publicada:has(input:checked) .vis-switch{background:#3f9d5c;}
.vis-card--destacada:has(input:checked){border-color:var(--gold); background:var(--bg-soft);}
.vis-card--destacada:has(input:checked) .vis-card-icon{background:var(--gold); color:#fff;}
.vis-card--destacada:has(input:checked) .vis-switch{background:var(--gold);}
.vis-card:has(input:checked) .vis-switch::after{transform:translateX(16px);}
@media (max-width:640px){ .visibility-cards{grid-template-columns:1fr;} }

.form-actions{display:flex; gap:12px; margin-top:8px; flex-wrap:wrap;}
@media (max-width:480px){
  .form-actions{flex-direction:column;}
  .form-actions .btn{width:100%; justify-content:center;}
  .form-actions-top{flex-direction:column; align-items:stretch;}
  .form-actions-top .btn-group{flex-direction:column;}
  .form-actions-top .btn, .admin-title-row .btn{width:100%; justify-content:center;}
  .admin-title-row .btn-group{flex-direction:column; width:100%;}
}

/* ---- Catálogo completo (/propiedades) ---- */
.catalog-head{padding:36px 0 8px;}
.catalog-head h1{font-size:clamp(26px,3.2vw,36px); margin-bottom:10px;}
.catalog-head p{max-width:640px; margin:0;}

.catalog-layout{display:grid; grid-template-columns:296px 1fr; gap:32px; align-items:start; padding-top:14px;}

.filters-sidebar{position:sticky; top:20px; display:flex; flex-direction:column; gap:16px;}
.filters-head{display:flex; align-items:center; justify-content:space-between; padding:0 2px;}
.filters-head h2{font-family:var(--sans); font-size:15px; font-weight:700; color:var(--navy); margin:0; text-transform:uppercase; letter-spacing:.04em;}
.filters-head .filter-clear-all{font-size:13px; font-weight:600; color:var(--text-muted); text-decoration:underline;}
.filters-sidebar form{display:flex; flex-direction:column; gap:16px;}

/* Oculta visualmente los inputs reales; el checkbox/radio sigue funcionando
   (el <label> que lo envuelve delega el click), solo se le rediseña la piel. */
.chip input, .chip-round input, .pill-row input, .toggle-input{
  position:absolute; opacity:0; width:0; height:0; pointer-events:none;
}

.toggle-card{background:#fff; border:1px solid var(--line); border-radius:14px; padding:16px 18px; display:flex; align-items:flex-start; gap:12px; cursor:pointer;}
.toggle-switch{position:relative; flex:0 0 auto; width:42px; height:24px; border-radius:999px; background:var(--line); transition:background .15s ease; margin-top:2px;}
.toggle-switch::after{content:''; position:absolute; top:3px; left:3px; width:18px; height:18px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.3); transition:transform .15s ease;}
.toggle-card:has(.toggle-input:checked) .toggle-switch{background:var(--gold);}
.toggle-card:has(.toggle-input:checked) .toggle-switch::after{transform:translateX(18px);}
.toggle-copy strong{display:block; font-size:14px; color:var(--text-dark); margin-bottom:2px;}
.toggle-copy span{font-size:12.5px; color:var(--text-muted); line-height:1.4;}

.filter-card{background:#fff; border:1px solid var(--line); border-radius:14px; padding:18px;}
.filter-card.dismissed{display:none;}
.filter-card-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:14px;}
.filter-card-head h3{font-family:var(--sans); font-size:14px; font-weight:700; color:var(--text-dark); margin:0;}
.filter-dismiss{background:none; border:none; color:#aab3bf; cursor:pointer; padding:2px; display:flex; line-height:0;}
.filter-dismiss svg{width:16px; height:16px;}
.filter-dismiss:hover{color:var(--text-muted);}

.chip-row{display:flex; flex-wrap:wrap; gap:8px;}
.chip{
  display:inline-flex; align-items:center; gap:7px; border:1px solid var(--line); background:#fff;
  border-radius:999px; padding:8px 14px; font-size:13.5px; font-weight:600; color:var(--text-dark);
  cursor:pointer; transition:all .12s ease;
}
.chip svg{width:16px; height:16px; color:var(--text-muted); flex:none;}
.chip .count{color:var(--text-muted); font-weight:500;}
.chip:hover{border-color:var(--gold);}
.chip:has(input:checked){background:var(--navy); border-color:var(--navy); color:#fff;}
.chip:has(input:checked) svg{color:#fff;}
.chip:has(input:checked) .count{color:#c7d2de;}

.chip-round{
  width:42px; height:42px; border-radius:50%; border:1px solid var(--line); background:#fff;
  display:flex; align-items:center; justify-content:center; font-size:14px; font-weight:700; color:var(--text-dark);
  cursor:pointer;
}
.chip-round:hover{border-color:var(--gold);}
.chip-round:has(input:checked){background:var(--gold); border-color:var(--gold); color:#fff;}

.pill-list{display:flex; flex-direction:column; gap:2px;}
.pill-row{
  display:flex; align-items:center; gap:10px; padding:9px 6px; border-radius:9px; cursor:pointer;
  font-size:13.5px; color:var(--text-dark); font-weight:500;
}
.pill-row:hover{background:var(--bg-soft);}
.pill-row .pname{flex:1;}
.pill-row .pcount{color:var(--text-muted); font-size:12.5px;}
.pill-row:has(input:checked){background:rgba(2,132,199,.08); color:var(--gold);}
.pill-row .check-box{width:16px; height:16px; border-radius:4px; border:1.5px solid var(--line); flex:none; display:flex; align-items:center; justify-content:center;}
.pill-row:has(input:checked) .check-box{background:var(--gold); border-color:var(--gold);}
.pill-row .check-box svg{width:10px; height:10px; color:#fff; visibility:hidden;}
.pill-row:has(input:checked) .check-box svg{visibility:visible;}
.ver-mas{background:none; border:none; color:var(--gold); font-size:13px; font-weight:700; cursor:pointer; padding:8px 6px 0; text-align:left; font-family:inherit;}

.price-range-card .filter-range{display:flex; align-items:center; gap:8px;}
.price-range-card .filter-range input{width:100%; padding:10px 12px; border:1px solid var(--line); border-radius:8px; font-size:13.5px; font-family:inherit; color:var(--text-dark);}
.price-range-card .filter-range span{color:var(--text-muted); font-size:12.5px; flex:0 0 auto;}

.promo-card{background:var(--navy); border-radius:14px; padding:22px; color:#fff;}
.promo-card h3{color:#fff; font-family:var(--serif); font-weight:400; font-size:17px; margin:0 0 8px;}
.promo-card p{color:#c7d2de; font-size:13px; margin:0 0 16px;}
.promo-card .btn{width:100%; justify-content:center;}

.catalog-controls{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  flex-wrap:wrap; padding-bottom:22px; border-bottom:1px solid var(--line); margin-bottom:26px;
}
.view-toggle{display:flex; background:var(--bg-soft); border:1px solid var(--line); border-radius:999px; padding:4px;}
.view-toggle button{
  display:flex; align-items:center; gap:7px; border:none; background:none; cursor:pointer;
  padding:9px 16px; border-radius:999px; font-size:13.5px; font-weight:600; color:var(--text-muted);
  font-family:inherit;
}
.view-toggle button svg{width:16px; height:16px;}
.view-toggle button.active{background:var(--navy); color:#fff;}
.view-toggle button.disabled{cursor:not-allowed; opacity:.55;}
.view-toggle button .soon{font-size:9.5px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; background:var(--gold-light); color:var(--navy); border-radius:999px; padding:1px 6px; margin-left:2px;}

.controls-right{display:flex; align-items:center; gap:14px; flex-wrap:wrap;}
.sort-field{display:flex; align-items:center; gap:8px; margin:0;}
.sort-field label{font-size:13px; color:var(--text-muted); white-space:nowrap;}
.sort-field select{
  padding:9px 30px 9px 12px; border:1px solid var(--line); border-radius:8px; font-size:13.5px;
  color:var(--text-dark); background:#fff; font-family:inherit; cursor:pointer;
}

/* Columnas del catálogo (con la barra lateral al lado, hay menos ancho
   disponible que en la grilla normal de 3 columnas del resto del sitio):
   2 columnas mientras el contenedor todavía no llega a su ancho máximo
   (1180px, ver .container), 3 columnas desde ahí en adelante — pasado ese
   punto el contenedor ya no crece más aunque la ventana sea más ancha, así
   que el ancho de cada tarjeta queda fijo (~248px) y no se sigue apretando.
   Antes el corte estaba en 1320px, más ancho de lo necesario: en pantallas
   de ~1280-1300px de ancho (frecuentes en notebooks) se quedaban en 2
   columnas a pesar de que ya entraban 3 cómodas. Por debajo de 980px la
   barra lateral se apila arriba y usa el mismo .property-grid responsivo
   del resto del sitio (3 → 2 → 1). */
@media (min-width:981px){
  .catalog-layout .property-grid{grid-template-columns:repeat(2,1fr);}
}
@media (min-width:1160px){
  .catalog-layout .property-grid{grid-template-columns:repeat(3,1fr);}
}

.pagination{display:flex; align-items:center; justify-content:center; gap:6px; margin-top:40px;}
.pagination a{
  min-width:38px; height:38px; padding:0 10px; border-radius:9px; border:1px solid var(--line); background:#fff;
  color:var(--navy); font-size:13.5px; font-weight:600; cursor:pointer; display:inline-flex; align-items:center; justify-content:center;
}
.pagination a:hover:not(.disabled){border-color:var(--gold); color:var(--gold);}
.pagination a.active{background:var(--navy); border-color:var(--navy); color:#fff; cursor:default;}
.pagination a.disabled{opacity:.4; cursor:not-allowed; pointer-events:none;}
.pagination a svg{width:15px; height:15px; display:block;}

@media (max-width:980px){
  .catalog-layout{grid-template-columns:1fr;}
  .filters-sidebar{position:static;}
}
@media (max-width:640px){
  .catalog-controls{flex-direction:column; align-items:flex-start;}
  .controls-right{width:100%; justify-content:space-between;}
}

/* ---- Sección "Lo que hacemos" (página /somos) ---- */
.services-section{background:var(--bg-soft); padding:72px 0;}
.services-head{max-width:640px; margin:0 auto 48px; text-align:center;}
.services-head .eyebrow{display:block; margin-bottom:10px;}

.services-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:0;
  border-top:1px solid var(--line); border-left:1px solid var(--line);
}
.service-item{
  border-right:1px solid var(--line); border-bottom:1px solid var(--line);
  background:#fff; overflow:hidden;
}
/* Versión en español: la imagen (con número, ícono, título y texto ya incluidos
   en el diseño) ocupa toda la tarjeta. Versión en inglés: como esas imágenes
   traen el texto incrustado en español, en inglés se arma la tarjeta con el
   ícono/título/texto reales (traducidos) para no romper el selector de idioma. */
.service-visual.en{display:none; padding:36px 40px;}
body.lang-en .service-visual.es{display:none;}
body.lang-en .service-visual.en{display:block;}
.service-visual.es img{display:block; width:100%; height:auto;}
.service-num{
  font-family:var(--serif); font-size:15px; font-weight:700; color:var(--gold-light);
  -webkit-text-stroke:.4px var(--navy); letter-spacing:.02em; margin-bottom:14px; display:block;
}
.service-icon{
  width:56px; height:56px; border-radius:50%; background:var(--bg-soft);
  display:flex; align-items:center; justify-content:center; margin-bottom:18px; flex:none;
}
.service-icon svg{width:26px; height:26px; color:var(--navy);}
.service-item h3{font-family:var(--sans); font-size:16px; font-weight:700; color:var(--navy); text-transform:uppercase; letter-spacing:.02em; margin:0 0 12px;}
.service-item p{font-size:14px; line-height:1.6; margin:0 0 12px;}
.service-item p:last-child{margin-bottom:0;}

.services-image-panel{
  margin-top:8px; border-radius:18px; overflow:hidden; position:relative;
  box-shadow:0 30px 60px -24px rgba(14,42,71,.35);
}
.services-image-panel img{width:100%; height:420px; object-fit:cover; display:block;}
.services-image-panel::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(0deg, rgba(14,42,71,.82) 0%, rgba(14,42,71,.15) 55%, rgba(14,42,71,0) 100%);
}
.services-image-caption{
  position:absolute; left:0; right:0; bottom:0; z-index:2; padding:32px 40px;
  color:#fff; display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap;
}
.services-image-caption h3{color:#fff; font-family:var(--serif); font-weight:400; font-size:24px; margin:0 0 8px; max-width:480px; text-transform:none;}
.services-image-caption p{color:#dbe3ec; font-size:14px; margin:0; max-width:420px;}
.services-image-caption .btn{flex:none;}

@media (max-width:920px){
  .services-grid{grid-template-columns:1fr;}
  .service-item{border-right:none;}
  .services-image-panel img{height:320px;}
  .services-image-caption{padding:24px;}
}
@media (max-width:560px){
  .service-visual.en{padding:28px 22px;}
  .services-image-caption{flex-direction:column; align-items:flex-start;}
}

/* ===== /somos: Quiénes somos, Misión/Visión y Valores (prefijo nv-) ===== */
.nv-about{padding:72px 0 56px; background:#fff;}
.nv-about-top{display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(32px,5vw,72px); align-items:center;}
.nv-about h1{font-size:clamp(2.3rem,4.2vw,3.9rem); line-height:1.05; margin:16px 0 20px;}
.nv-about h1 em{font-style:normal; color:var(--gold);}
.nv-about h1 .en{display:none;}
body.lang-en .nv-about h1 .en{display:inline;}
.nv-lead{font-size:18px; line-height:1.55; color:var(--navy);}
.nv-about-copy p{font-size:15.5px; line-height:1.75; color:var(--text-muted); margin:0 0 14px;}
.nv-about-copy .nv-lead{color:var(--navy); margin-bottom:18px;}
.nv-about-panel{background:var(--navy); color:#fff; border-radius:14px; padding:44px 40px; min-height:380px; display:flex; flex-direction:column; justify-content:space-between; gap:34px; position:relative; overflow:hidden;}
.nv-about-panel:before{content:""; position:absolute; right:-90px; top:-90px; width:300px; height:300px; border:1px solid rgba(255,255,255,.14); border-radius:50%;}
.nv-about-panel:after{content:""; position:absolute; right:-40px; top:-40px; width:200px; height:200px; border:1px solid rgba(190,214,43,.35); border-radius:50%;}
.nv-panel-quote{position:relative; z-index:1; font:italic clamp(1.5rem,2.4vw,2.1rem)/1.25 var(--serif); margin:0; max-width:340px;}
.nv-panel-facts{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:16px; position:relative; z-index:1; border-top:1px solid rgba(255,255,255,.2); padding-top:26px;}
.nv-panel-facts strong{display:block; font:400 2.1rem/1 var(--serif); color:var(--gold-light); margin-bottom:6px;}
.nv-panel-facts span{font-size:13.5px; line-height:1.35; color:rgba(255,255,255,.88);}
.nv-purpose{display:grid; grid-template-columns:1fr 1fr; margin-top:48px; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.nv-purpose-card{display:grid; grid-template-columns:44px 1fr; gap:18px; padding:30px 32px 30px 0; align-items:start;}
.nv-purpose-card + .nv-purpose-card{border-left:1px solid var(--line); padding-left:32px; padding-right:0;}
.nv-purpose-icon{color:var(--gold);}
.nv-purpose-icon svg{width:36px; height:36px;}
.nv-purpose-card h3{font-size:1.4rem; margin:0 0 8px;}
.nv-purpose-card p{font-size:14.5px; line-height:1.7; color:var(--text-muted); margin:0;}

.nv-values{padding:64px 0; background:#fff;}
.nv-values-intro{display:grid; grid-template-columns:1.1fr .9fr; gap:0; border-radius:14px; overflow:hidden; background:var(--bg-soft); margin-bottom:28px;}
.nv-values-copy{padding:44px clamp(26px,4vw,56px);}
.nv-values-copy h2{font-size:clamp(2rem,3.4vw,3.2rem); line-height:1.05; margin:16px 0 14px;}
.nv-values-copy h2 .en{display:none;}
body.lang-en .nv-values-copy h2 .en{display:inline;}
.nv-values-copy p{font-size:15.5px; line-height:1.7; color:var(--text-muted); margin:0; max-width:520px;}
.nv-values-quote{margin:0; padding:44px clamp(26px,4vw,52px); background:var(--navy); color:#fff; font:italic clamp(1.25rem,2vw,1.7rem)/1.35 var(--serif); display:flex; align-items:center; position:relative;}
.nv-values-quote:before{content:"\201C"; position:absolute; top:14px; left:clamp(22px,3.5vw,44px); font:700 64px/1 Georgia,serif; color:var(--gold-light);}
.nv-values-quote > span{padding-top:34px;}
.nv-values-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px;}
.nv-value{position:relative; background:#fff; border:1px solid var(--line); border-radius:12px; padding:30px 26px 28px; text-align:left;}
.nv-value-num{position:absolute; top:18px; right:22px; font:400 1.5rem/1 var(--serif); color:#9fb0c2;}
.nv-value-icon{width:58px; height:58px; border-radius:50%; background:#e8f3fa; color:var(--gold); display:grid; place-items:center; margin-bottom:18px;}
.nv-value-icon svg{width:28px; height:28px;}
.nv-value h3{font-size:1.25rem; margin:0 0 8px;}
.nv-value p{font-size:14.5px; line-height:1.65; color:var(--text-muted); margin:0;}

@media (max-width:900px){
  .nv-about{padding:48px 0 40px;}
  .nv-about-top{grid-template-columns:1fr; gap:28px;}
  .nv-about-panel{min-height:0; padding:34px 28px;}
  .nv-purpose{grid-template-columns:1fr; margin-top:34px;}
  .nv-purpose-card + .nv-purpose-card{border-left:0; border-top:1px solid var(--line); padding-left:0;}
  .nv-purpose-card{padding:26px 0;}
  .nv-values{padding:44px 0;}
  .nv-values-intro{grid-template-columns:1fr;}
  .nv-values-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:560px){
  .nv-panel-facts{grid-template-columns:1fr; gap:14px;}
  .nv-panel-facts li{display:flex; align-items:baseline; gap:12px;}
  .nv-panel-facts strong{margin:0; min-width:64px;}
  .nv-values-grid{grid-template-columns:1fr;}
}
.nv-about-panel .nv-panel-quote,.nv-about-panel .nv-panel-quote span{color:#fff;}

/* ===== /servicios (prefijo sv-) ===== */
.sv-services{padding:72px 0 56px; background:#fff;}
.sv-head{display:grid; grid-template-columns:1.2fr .8fr; gap:36px; align-items:end; margin-bottom:34px;}
.sv-head h1{font-size:clamp(2.1rem,3.8vw,3.4rem); line-height:1.08; margin:14px 0 0;}
.sv-head h1 .en{display:none;}
body.lang-en .sv-head h1 .en{display:inline;}
.sv-head-side{border-left:2px solid var(--gold); padding-left:18px; margin:0; font-size:15.5px; line-height:1.65; color:var(--text-muted);}
.sv-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px;}
.sv-card{position:relative; background:#fff; border:1px solid var(--line); border-radius:12px; padding:28px 26px; display:flex; flex-direction:column;}
.sv-num{position:absolute; top:18px; right:22px; font:400 1.5rem/1 var(--serif); color:#9fb0c2;}
.sv-icon{width:58px; height:58px; border-radius:50%; background:#e8f3fa; color:var(--gold); display:grid; place-items:center; margin-bottom:18px;}
.sv-icon svg{width:28px; height:28px;}
.sv-card h3{font-size:1.25rem; line-height:1.25; margin:0 0 10px;}
.sv-card p{font-size:14.5px; line-height:1.65; color:var(--text-muted); margin:0 0 14px;}
.sv-details{margin-top:auto; border-top:1px solid var(--line); padding-top:12px;}
.sv-details summary{cursor:pointer; list-style:none; font-size:13.5px; font-weight:700; color:var(--gold); display:flex; align-items:center; justify-content:space-between; gap:8px;}
.sv-details summary::-webkit-details-marker{display:none;}
.sv-details summary:after{content:"+"; font-size:20px; line-height:1; font-weight:400;}
.sv-details[open] summary:after{content:"\2212";}
.sv-details p{margin:12px 0 0; font-size:14px;}
.sv-card:has(.sv-details[open]){border-color:#bcd9ec;}

.sv-value{padding:64px 0; background:var(--bg-soft);}
.sv-value-intro{display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,64px); align-items:start; margin-bottom:34px;}
.sv-value-intro h2{font-size:clamp(2rem,3.4vw,3.1rem); line-height:1.06; margin:14px 0 0;}
.sv-value-intro h2 em{font-style:normal; color:var(--gold);}
.sv-value-intro h2 .en{display:none;}
body.lang-en .sv-value-intro h2 .en{display:inline;}
.sv-value-lead p{font-size:15.5px; line-height:1.75; color:var(--text-muted); margin:0 0 14px;}
.sv-pillars{display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:16px; margin-bottom:28px;}
.sv-pillar{position:relative; background:#fff; border:1px solid var(--line); border-radius:12px; padding:26px 16px 22px; text-align:center;}
.sv-pillar-num{position:absolute; top:12px; left:16px; font:400 1.1rem/1 var(--serif); color:#9fb0c2;}
.sv-pillar-icon{width:56px; height:56px; border-radius:50%; background:#e8f3fa; color:var(--gold); display:grid; place-items:center; margin:0 auto 14px;}
.sv-pillar-icon svg{width:27px; height:27px;}
.sv-pillar h3{font-size:1.05rem; margin:0;}
.sv-diff{display:grid; grid-template-columns:.8fr 1.2fr; background:#fff; border:1px solid var(--line); border-radius:14px; overflow:hidden;}
.sv-diff-head{background:var(--navy); color:#fff; padding:38px 34px;}
.sv-kicker{display:block; font-size:12.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-light); margin-bottom:12px;}
.sv-diff-head h3{color:#fff; font-size:1.6rem; line-height:1.2; margin:0 0 14px;}
.sv-diff-head p{color:rgba(255,255,255,.88); font-size:15px; line-height:1.65; margin:0;}
.sv-diff-head .en{color:inherit;}
.sv-diff-list{list-style:none; margin:0; padding:30px 34px; display:grid; grid-template-columns:1fr 1fr; gap:18px 28px;}
.sv-diff-list li{display:flex; gap:12px; align-items:flex-start; font-size:14.5px; line-height:1.55; color:var(--text-muted);}
.sv-diff-list strong{display:block; color:var(--navy); font-size:15px; margin-bottom:2px;}
.sv-diff-list strong .en{display:none;}
body.lang-en .sv-diff-list strong .en{display:inline;}
.sv-check{flex:0 0 24px; width:24px; height:24px; border-radius:50%; background:var(--gold); color:#fff; display:grid; place-items:center; margin-top:1px;}
.sv-check svg{width:14px; height:14px; stroke-width:2.4;}

.sv-cta{padding:56px 0; background:#fff;}
.sv-cta-inner{display:flex; align-items:center; justify-content:space-between; gap:28px; background:var(--navy); border-radius:14px; padding:38px 42px;}
.sv-cta h2{color:#fff; font-size:clamp(1.5rem,2.4vw,2.1rem); margin:0 0 6px;}
.sv-cta h2 .en{display:none;}
body.lang-en .sv-cta h2 .en{display:inline;}
.sv-cta p{color:rgba(255,255,255,.85); font-size:15.5px; margin:0;}
.sv-cta-actions{display:flex; gap:12px; flex-wrap:wrap;}
.sv-cta .btn{white-space:nowrap;}
.sv-wa{background:#25d366; color:#fff; border-color:#25d366;}
.sv-wa:hover{background:#1ebe5a;}
.sv-wa svg{width:18px; height:18px;}

@media (max-width:1000px){
  .sv-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .sv-pillars{grid-template-columns:repeat(3,minmax(0,1fr));}
  .sv-diff{grid-template-columns:1fr;}
}
@media (max-width:700px){
  .sv-services{padding:48px 0 36px;}
  .sv-head,.sv-value-intro{grid-template-columns:1fr; gap:18px;}
  .sv-grid{grid-template-columns:1fr;}
  .sv-pillars{grid-template-columns:repeat(2,minmax(0,1fr));}
  .sv-diff-list{grid-template-columns:1fr; padding:24px 22px;}
  .sv-diff-head{padding:28px 24px;}
  .sv-value{padding:44px 0;}
  .sv-cta-inner{flex-direction:column; align-items:flex-start; padding:30px 24px;}
}

/* ===== Buscador de ubicación (autocompletado) ===== */
.search-hero{overflow:visible;}
.search-field-loc{position:relative;}
.loc-box{position:relative;}
.loc-box .loc-ico{position:absolute; left:11px; top:50%; transform:translateY(-50%); width:18px; height:18px; color:var(--gold); pointer-events:none;}
.search-field .loc-box input[type=text]{padding-left:38px; padding-right:34px;}
.search-field .loc-box input[type=text]:focus{outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(2,132,199,.15);}
.loc-clear{position:absolute; right:6px; top:50%; transform:translateY(-50%); width:26px; height:26px; border:0; background:transparent; color:#8a94a3; font-size:20px; line-height:1; cursor:pointer; border-radius:50%;}
.loc-clear:hover{background:var(--bg-soft); color:var(--navy);}
.loc-clear[hidden]{display:none;}
.loc-list{position:absolute; z-index:50; left:0; right:0; top:calc(100% + 6px); margin:0; padding:6px; list-style:none; background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:0 18px 40px -12px rgba(14,42,71,.3); max-height:340px; overflow-y:auto; min-width:300px;}
.loc-list[hidden]{display:none;}
.loc-item{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 12px; border-radius:8px; cursor:pointer; color:var(--text-dark);}
.loc-item.on,.loc-item:hover{background:#e8f3fa;}
.loc-main{display:flex; flex-direction:column; min-width:0;}
.loc-main strong{font-size:14.5px; font-weight:600; color:var(--navy);}
.loc-main span{font-size:12.5px; color:var(--text-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.loc-tag{flex:none; font-style:normal; font-size:11.5px; font-weight:600; color:#5b6472; background:#eef0f3; padding:3px 9px; border-radius:6px;}
.loc-empty{padding:12px; font-size:13.5px; color:var(--text-muted);}

/* ===== Propiedad vendida / arrendada (rojo) ===== */
.property-badge.cerrada{background:#c62828;}
.op-cerrada{color:#c62828 !important; font-weight:800;}
.vis-card--cerrada:has(input:checked){border-color:#c62828; background:#fdecec;}
.vis-card--cerrada:has(input:checked) .vis-card-icon{background:#c62828; color:#fff;}
.vis-card--cerrada:has(input:checked) .vis-switch{background:#c62828;}
.badge-cerrada{display:inline-block; margin-left:6px; padding:2px 9px; border-radius:999px; font-size:11.5px; font-weight:700; background:#fdecec; color:#c62828; border:1px solid #f4c4c4;}
.closed-notice{text-align:center; border-top:4px solid #c62828;}
.closed-notice strong{display:block; font:400 1.25rem/1.3 var(--serif); color:#c62828; margin-bottom:8px;}
.closed-notice p{font-size:14.5px; color:var(--text-muted); margin:0 0 16px;}

/* ===== Selector de operación (Venta | Arriendo) ===== */
.seg{display:grid; grid-template-columns:1fr 1fr; height:42px; border:1px solid var(--line); border-radius:8px; overflow:hidden; background:#fff;}
.seg-btn{border:0; background:#fff; color:var(--text-dark); font:inherit; font-size:14px; padding:0 14px; text-align:left; cursor:pointer; transition:background .15s, color .15s;}
.seg-btn + .seg-btn{border-left:1px solid var(--line);}
.seg-btn:hover{background:var(--bg-soft);}
.seg-btn.on{background:#e8f3fa; color:var(--navy); font-weight:700; box-shadow:inset 0 -3px 0 var(--gold);}
.seg-btn:focus-visible{outline:2px solid var(--gold); outline-offset:-2px;}
.seg-btn .en{display:none;}
body.lang-en .seg-btn .es{display:none;}
body.lang-en .seg-btn .en{display:inline;}

/* Botón Buscar (index): píldora con lupa */
.btn-buscar{display:inline-flex; align-items:center; justify-content:center; gap:10px; border-radius:999px; padding:0 28px; height:48px; font-size:17px; font-weight:500;}
.btn-buscar svg{flex:none;}

/* Tarjeta: píldoras de características */
.property-specs.property-pills{display:flex; flex-wrap:wrap; justify-content:flex-start; gap:8px; border-top:0; padding-top:0; margin-top:14px;}
.property-pills .pill{display:inline-flex; flex-direction:row; flex:none; align-items:center; gap:6px; background:#eef5fa; border:1px solid #d9e8f2; border-radius:999px; padding:5px 12px; font-size:13px;}
.property-pills .pill svg{width:16px; height:16px; color:var(--gold); flex:none;}
.property-pills .pill strong{font-size:13px; color:var(--navy); font-weight:600;}
