  /* BASE: Reset, variables globales y utilidades de animación */
  * { margin:0; padding:0; box-sizing:border-box; }
  *{ -webkit-tap-highlight-color:transparent; -webkit-touch-callout:none; }
  a, button, select, input, textarea{ -webkit-tap-highlight-color:transparent; }
  a:focus, button:focus{ outline:none; }
  html, body{ overflow-x:hidden; max-width:100%; }
  :root{
    --primary:#0b1626;        
    --secondary:#d4af37;      
    --secondary-soft:#e8c968; 
    --dark:#111e33;           
    --light:#f5f7fa;          
    --text-light:#ffffff;     
    --gray:#565e6d;           
    --gray-line:#e4e7ec;      
    --card-bg:#ffffff;        
    --input-bg:#fafbfc;       
    --overlay-header-bg:rgba(245,247,250,0.92); 
    --hover-tint:#fff8e8;     
    --text-strong:var(--primary); 
    --secondary-contrast:#8a6d1a;
    --primary-soft:#3f5b7a;
    --serif:'Fraunces', Georgia, serif;     
    --sans:'Inter', 'Segoe UI', sans-serif; 
    --map-cachapoal:#5b7a9c;    
    --map-cardenalcaro:#d4af37; 
    --map-colchagua:#7d92a8;    
    --map-pin:rgb(255,170,0);      
    --map-pin-soft:rgb(255,201,102); 
    --map-pin-actual:var(--secondary); 
    --map-pin-visto:#8b93a3;       
    --favorito-dorado-intenso:#ffb400; 
    --favorito-fuxia:#e6009c;          
    --form-field-bg:#9aa4b4;
    --equipo-contacto-texto-color:var(--gray);
    color-scheme: light dark;
  }
  @media (prefers-color-scheme: dark){
    :root{
      --light:#0b1220;            
      --card-bg:#141f33;          
      --input-bg:#182338;         
      --overlay-header-bg:rgba(11,18,30,0.9); 
      --hover-tint:rgba(212,175,55,0.14);     
      --text-strong:#f5f7fa;      
      --gray:#9aa4b4;             
      --gray-line:rgba(255,255,255,0.12); 
      --secondary-contrast:var(--secondary);
      --equipo-contacto-texto-color:rgba(255,255,255,0.65);
    }
  }
  html{ scroll-behavior:smooth; }
  body{
    font-family:var(--sans);
    color:var(--text-strong);
    line-height:1.1;
    background:var(--light);
    -webkit-font-smoothing:antialiased;
  }
  img{ display:block; max-width:100%; }
  a{ color:inherit; }
  .reveal{ opacity:0; transform:translateY(24px); transition:opacity .8s ease, transform .8s ease; }
  .reveal.in{ opacity:1; transform:translateY(0); }
  /* HEADER Y NAVEGACIÓN */
  header{
    position:fixed; top:0; width:100%; z-index:1000;
    background:rgba(11,22,38,0.85);
    backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
    border-bottom:1px solid rgba(255,255,255,0.06);
  }
  .nav-container{
    max-width:1340px; margin:0 auto; padding:14px 24px;
    display:flex; align-items:center; justify-content:space-between;
    position:relative; 
  }
  .brand-container{ display:flex; flex-direction:column; align-items:flex-start;
    flex-shrink:0;
  }
  .brand-link{ text-decoration:none; cursor:pointer; position:relative; z-index:2; }
  .logo-text{ font-family:var(--serif); font-size:21px; font-weight:500; color:#fff; letter-spacing:1.5px; text-transform:uppercase; line-height:1; }
  .logo-subtext{ font-size:9px; color:var(--secondary-soft); letter-spacing:4px; text-transform:uppercase; margin-top:4px; }
  .nav-menu{
    display:flex; align-items:center;
    flex:1; min-width:0;
    flex-wrap:nowrap;
    justify-content:flex-end;
    gap:clamp(10px,1vw,17px);
  }
  .nav-menu a{
    text-decoration:none; color:rgba(255,255,255,0.75); font-size:clamp(12.5px,1vw,14px); font-weight:600; letter-spacing:.2px; transition:color .25s;
    white-space:nowrap;
  }
  .nav-menu a:hover{ color:var(--secondary); }
  .nav-cta{
    background:var(--secondary); color:var(--primary) !important; padding:9px clamp(14px,1.4vw,20px);
    border-radius:100px; font-weight:600; font-size:13px; flex-shrink:0;
  }
  .nav-cta:hover{ background:var(--secondary-soft); }
  .nav-toggle{
    display:none;                 
    flex-direction:column; align-items:center; justify-content:center;
    gap:5px; width:38px; height:38px; padding:0;
    background:transparent; border:none; cursor:pointer;
  }
  .nav-toggle span{
    display:block; width:24px; height:2px; border-radius:2px;
    background:#fff; transition:transform .25s ease, opacity .25s ease;
  }
  .nav-toggle.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .nav-toggle.open span:nth-child(2){ opacity:0; }
  .nav-toggle.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
  /* ESTRELLA DE FAVORITOS DEL HEADER (CELULAR Y PC) */
  .header-favoritos{
    display:flex;
    position:relative;
    align-items:center; justify-content:center;
    width:38px; height:38px; padding:0; margin:0; border-radius:50%;
    background:var(--card-bg); border:1px solid var(--gray-line);
    box-shadow:0 6px 14px -6px rgba(11,22,38,0.35);
    cursor:pointer;
    flex-shrink:0;
    transition:background .25s ease, border-color .25s ease, transform .15s ease;
  }
  .header-favoritos:active{ transform:scale(0.92); }
  @media (min-width:1281px){
    .header-favoritos{ margin-left:18px; }
  }
  .header-favoritos svg{
    width:18px; height:18px; fill:none; stroke:var(--secondary-contrast);
    transition:fill .25s ease, stroke .25s ease;
  }
  .header-favoritos-contador{
    position:absolute; top:-6px; right:-7px;
    min-width:16px; height:16px; padding:0 4px; border-radius:100px;
    background:var(--secondary); color:var(--primary);
    font-size:10px; font-weight:700; line-height:16px; text-align:center;
    box-shadow:0 0 0 2px var(--card-bg);
    transition:background .25s ease, transform .2s ease;
  }
  .header-favoritos-contador.oculto{ display:none; }
  @keyframes headerFavoritosPulso{
    0%{ transform:scale(1); }
    45%{ transform:scale(1.32); }
    100%{ transform:scale(1); }
  }
  .header-favoritos.anim-agregar svg{
    animation:headerFavoritosPulso .45s ease;
    fill:var(--favorito-dorado-intenso); stroke:var(--favorito-dorado-intenso);
  }
  .header-favoritos.anim-quitar svg{
    animation:headerFavoritosPulso .45s ease;
    fill:none; stroke:var(--favorito-fuxia);
  }
  @keyframes headerFavoritosFlotar{
    0%{ opacity:0; transform:translate(-50%,0) scale(.7); }
    25%{ opacity:1; transform:translate(-50%,-8px) scale(1); }
    100%{ opacity:0; transform:translate(-50%,-30px) scale(1); }
  }
  .header-favoritos-flotante{
    position:absolute; left:50%; top:-8px;
    font-family:var(--sans); font-weight:700; font-size:13px;
    pointer-events:none; white-space:nowrap;
    animation:headerFavoritosFlotar .9s ease forwards;
  }
  .header-favoritos-flotante.suma{ color:var(--favorito-dorado-intenso); }
  .header-favoritos-flotante.resta{ color:var(--favorito-fuxia); }
  .contour-divider{ width:100%; height:36px; display:block; }
  .contour-divider path{ fill:none; stroke:var(--secondary); stroke-width:1; opacity:.35; }
  @media (max-width:1280px){
        .nav-toggle{ display:flex; }
        .header-favoritos{
      display:flex;
      position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
    }
        .header-favoritos:active{ transform:translate(-50%,-50%) scale(0.92); }
        .nav-menu{
      display:none;
      position:absolute; top:100%; left:0; right:0;
      flex-direction:column; align-items:stretch; gap:0;
      background:var(--primary);
      border-top:1px solid rgba(255,255,255,0.08);
      box-shadow:0 16px 30px -10px rgba(0,0,0,0.4);
      max-height:calc(100vh - 60px); overflow-y:auto;
    }
        .nav-menu.open{ display:flex; }
        .nav-menu a{ padding:16px 24px; border-bottom:1px solid rgba(255,255,255,0.07); }
        .nav-menu .nav-cta{ margin:16px 24px; text-align:center; }
  }
  /* HERO (portada) */
  .hero{
    position:relative; min-height:80vh; display:flex; align-items:center; justify-content:center;
    text-align:center; color:#fff; padding:90px 24px 46px;
    background:
      linear-gradient(rgba(9,17,29,0.55), rgba(9,17,29,0.78)),
      url('https://parcelas-tu-refugio.netlify.app/panoramica-fundo-la-puntilla-la-estrella-hero.webp') center/cover no-repeat scroll;
    overflow:hidden;
  }
  @media (min-width:1024px) and (hover:hover) and (pointer:fine){
    .hero{
      background-attachment: fixed;
    }
  }
  .hero-eyebrow{ font-size:13px; letter-spacing:4px; text-transform:uppercase; color:var(--secondary-soft); margin-bottom:12px; font-weight:600; }
  .hero-content h1{
    font-family:var(--serif); font-weight:400; font-size:clamp(38px,6vw,72px); line-height:1.08; letter-spacing:-.5px; margin-bottom:14px;
  }
  .hero-content p{ font-size:clamp(16px,2vw,20px); color:rgba(255,255,255,0.85); max-width:560px; margin:0 auto 20px; }
  .hero-content .hero-title{ color:#fff; font-family:var(--serif); font-size:38px; font-weight:400; letter-spacing:-0.5px; margin:40px 0 4px; }
  .hero-content .hero-price{ color:#fff; font-family:var(--serif); font-size:38px; font-weight:400; letter-spacing:-0.5px; margin:0 0 14px; }
  .hero-content .hero-price-label{ display:block; font-family:var(--serif); font-size:20px; font-weight:400; letter-spacing:-0.9px; margin:0 0 4px; }
  .hero-content .hero-note{ color:var(--secondary-soft); font-size:13px; letter-spacing:4px; text-transform:uppercase; font-weight:600; margin:0 0 24px; }
  .hero-actions{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
  /* COMPONENTES GENÉRICOS: Botones y contenedor de sección */
  .btn{
    display:inline-flex; align-items:center; gap:8px; background:var(--secondary); color:var(--primary);
    padding:14px 32px; text-decoration:none; border-radius:100px; font-weight:600; font-size:14px;
    letter-spacing:.3px; transition:all .3s;
  }
  .btn:hover{ background:var(--secondary-soft); transform:translateY(-2px); }
  .btn-ghost{ background:transparent; color:#fff; border:1px solid rgba(255,255,255,0.35); }
  .btn-ghost:hover{ background:rgba(255,255,255,0.1); border-color:#fff; }
  .btn-dark{ background:var(--primary-soft); color:#fff; }
  .btn-dark:hover{ background:var(--primary); }
  /* Botones que envían a WhatsApp: mismo verde del ícono oficial */
  .btn-whatsapp,
  .nav-cta.btn-whatsapp{ background:#25D366 !important; color:#000000 !important; border-color:transparent; }
  .btn-whatsapp:hover,
  .nav-cta.btn-whatsapp:hover{ background:#1EBE57 !important; color:#000000 !important; }
  .section{ padding:56px 24px; }
  .section-inner{ max-width:1240px; margin:0 auto; }
  .section-eyebrow{ text-align:center; font-size:13px; letter-spacing:4px; text-transform:uppercase; color:var(--secondary-contrast); font-weight:700; margin-bottom:10px; }
  .section-title{ text-align:center; font-family:var(--serif); font-weight:400; font-size:clamp(30px,4vw,48px); color:var(--text-strong); margin-bottom:12px; letter-spacing:-.5px; }
  .section-sub{ text-align:center; color:var(--gray); font-size:17px; max-width:600px; margin:0 auto 26px; }
  @media (max-width:860px){
        .section{ padding:36px 16px; }
  }
  /* SECCIÓN PARCELAS: Filtros de lotes */
  .lote-nav{ display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-bottom:26px; }
  .lote-nav a{
    text-decoration:none; font-size:13px; font-weight:600; color:var(--text-strong);
    border:1px solid var(--gray-line); padding:9px 20px; border-radius:100px; transition:all .25s;
  }
  .lote-nav a:hover{ border-color:var(--secondary); background:var(--hover-tint); }
  .lote-filtros{
    display:flex; flex-direction:column; gap:8px;
    background:var(--card-bg); border:1px solid var(--gray-line); border-radius:16px;
    padding:10px 16px; margin-bottom:16px;
  }
  .filtro-selects{ display:flex; align-items:flex-end; gap:10px; flex-wrap:wrap; justify-content:flex-start; }
  .filtro-campo{ display:flex; flex-direction:column; gap:3px; width:180px; flex:0 0 180px; }
  .filtro-campo label{ font-size:11px; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:var(--gray); }
  .filtro-campo select{
    width:100%; font-family:var(--sans); font-size:14px; color:var(--text-strong); background:var(--light);
    border:1px solid var(--gray-line); border-radius:10px; padding:7px 12px; cursor:pointer;
    text-overflow:ellipsis; white-space:nowrap; overflow:hidden;
  }
  .filtro-campo select:focus{ outline:none; box-shadow:inset 0 0 0 2px var(--secondary); }
  .filtro-toggle{
    display:flex; align-items:center; justify-content:center;
    width:34px; height:34px; border-radius:50%;
    background:var(--light); border:1px solid var(--gray-line); color:var(--text-strong);
    cursor:pointer; flex-shrink:0; transition:background .3s cubic-bezier(.4,0,.2,1), border-color .3s cubic-bezier(.4,0,.2,1);
  }
  .filtro-toggle:hover{ border-color:var(--secondary); background:var(--hover-tint); }
  .filtro-toggle svg{ width:16px; height:16px; transition:transform .35s cubic-bezier(.4,0,.2,1); }
  .filtro-toggle[aria-expanded="true"] svg{ transform:rotate(45deg); }
  .filtro-extra-wrap{
    display:grid; grid-template-rows:0fr;
    transition:grid-template-rows .4s cubic-bezier(.4,0,.2,1);
  }
  .filtro-extra-wrap.abierto{ grid-template-rows:1fr; }
  .filtro-extra{
    overflow:hidden; min-height:0;
    display:flex; align-items:flex-end; gap:10px; flex-wrap:wrap; justify-content:flex-start;
  }
  .filtro-extra-wrap .filtro-extra{ padding-top:8px; }
  .filtro-acciones{
    display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap;
    border-top:1px solid var(--gray-line); padding-top:8px; margin-top:0;
  }
  .filtro-limpiar{
    font-family:var(--sans); font-size:13px; font-weight:600; color:var(--text-strong);
    background:transparent; border:1px solid var(--gray-line); border-radius:100px;
    padding:7px 18px; cursor:pointer; transition:all .25s;
  }
  .filtro-limpiar:hover{ border-color:var(--secondary); background:var(--hover-tint); }
  .filtro-resultado{ font-size:13px; color:var(--gray); }
  .filtro-sin-resultados{ text-align:center; color:var(--gray); font-size:15px; margin:10px 0 30px; }
  /* PANEL "MIS FAVORITOS": Listado vertical de fichas guardadas */
  .favoritos-vacio{
    text-align:center; color:var(--gray); font-size:15px; line-height:1.5;
    max-width:360px; margin:40px auto; padding:0 12px;
  }
  .lote-vista-toggle-box{
    display:none;
    align-items:center; justify-content:flex-end; gap:12px;
    background:var(--card-bg); border:1px solid var(--gray-line); border-radius:16px;
    padding:12px 16px; margin-bottom:16px;
  }
  .lote-vista-toggle-label{ font-size:14px; font-weight:600; color:var(--text-strong); }
  .lote-vista-toggle{
    display:inline-flex;
    align-items:center;
    background:none; border:none; padding:0; cursor:pointer; flex-shrink:0;
  }
  .lote-vista-toggle-track{
    position:relative; display:inline-block;
    width:44px; height:26px; border-radius:100px;
    background:var(--gray-line);
    transition:background .25s cubic-bezier(.4,0,.2,1);
  }
  .lote-vista-toggle-thumb{
    position:absolute; top:2px; left:2px;
    width:22px; height:22px; border-radius:50%;
    background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.3);
    transition:transform .25s cubic-bezier(.4,0,.2,1);
  }
  .lote-vista-toggle[aria-checked="true"] .lote-vista-toggle-track{ background:var(--secondary); }
  .lote-vista-toggle[aria-checked="true"] .lote-vista-toggle-thumb{ transform:translateX(18px); }
  /* SECCIÓN PARCELAS: Tarjetas de lotes y carrusel infinito (mobile) */
  .lote.filtro-oculto{ display:none !important; }
  .lote{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:40px; align-items:center;
    padding:36px 0; border-bottom:1px solid var(--gray-line);
  }
  .lote:last-child{ border-bottom:none; }
  .lote:nth-child(even) .lote-media{ order:2; }
  .lote-photo{
    position:relative; cursor:pointer; border-radius:14px; overflow:hidden;
    box-shadow:0 30px 60px -20px rgba(11,22,38,0.25);
    container-type:inline-size;
  }
  a.lote-photo{ display:block; text-decoration:none; color:inherit; }
  .lote-media img{ width:100%; height:420px; object-fit:cover; display:block; transition:transform .5s ease; }
  .lote-photo:hover img{ transform:scale(1.05); }
  .lote-media iframe{ width:100%; height:220px; border:none; border-radius:10px; margin-top:16px; box-shadow:none; }
  /* BOTÓN DE FAVORITOS (ESTRELLA) DE CADA PROYECTO */
  .lote-favorito-wrap{
    display:none; 
  }
  .lote-carousel-arrow{
    display:none;
  }
  .lote-favorito{
    display:flex; align-items:center; justify-content:center;
    width:38px; height:38px; padding:0; border-radius:50%;
    background:var(--card-bg); border:1px solid var(--gray-line);
    cursor:pointer;
    box-shadow:0 6px 14px -6px rgba(11,22,38,0.35);
    transition:background .25s ease, border-color .25s ease, transform .15s ease;
  }
  .lote-favorito:active{ transform:scale(0.92); }
  .lote-favorito svg{
    width:18px; height:18px;
    fill:none; stroke:var(--secondary-contrast);
    transition:fill .25s ease, stroke .25s ease;
  }
  .lote-favorito.activo{ border-color:var(--secondary); background:var(--hover-tint); }
  .lote-favorito.activo svg{ fill:var(--secondary); stroke:var(--secondary-contrast); }
  /* BOTÓN DE FAVORITOS EN LA VISTA DETALLE (debajo de la galería) */
  .detalle-favorito-wrap{
    display:flex; justify-content:flex-end;
    margin-top:4px;
  }
  /* TEXTO SUPERPUESTO SOBRE LA FOTO DE UN PROYECTO */
  .lote-photo-overlay-btn{
    position:absolute; z-index:1; pointer-events:none;
    --title-size: clamp(18px, 5.4cqw, 32px);
    right: calc(var(--title-size) * 0.78);
    bottom: calc(var(--title-size) * 0.7);
    display:inline-flex; align-items:center;
    gap:calc(var(--title-size) * 0.28);
    background:var(--primary); color:#fff;
    padding:calc(var(--title-size) * 0.42) calc(var(--title-size) * 0.8);
    border-radius:calc(var(--title-size) * 0.3);
    font-family:var(--sans); font-weight:700;
    font-size:calc(var(--title-size) * 0.618);
    letter-spacing:.6px; text-transform:uppercase;
    box-shadow:0 16px 30px -10px rgba(0,0,0,0.6), 0 4px 10px rgba(0,0,0,0.35);
  }
  .lote-photo-overlay-btn svg{
    width:calc(var(--title-size) * 0.618 * 0.618);
    height:calc(var(--title-size) * 0.618 * 0.618);
    stroke:#fff;
  }
  .lote-tag{ display:inline-block; font-size:12px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:var(--secondary-contrast); margin-bottom:3px; line-height:1.2; }
  .lote-title{ font-family:var(--serif); font-size:34px; font-weight:500; margin-bottom:4px; line-height:1.1; }
  .lote-desc{ color:var(--gray); font-size:16px; margin-bottom:16px; }
  .lote-specs{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr); 
    gap:6px 24px; margin-bottom:18px;
  }
  .spec-label{ font-size:11px; letter-spacing:1.5px; text-transform:uppercase; color:var(--gray); margin-bottom:4px; }
  .spec-value{ font-size:16px; font-weight:600; color:var(--text-strong); }
  .spec-fila2{ margin-top:15px; }
  .lote-price{ font-family:var(--serif); font-size:30px; color:var(--text-strong); margin-bottom:10px; line-height:1.1; }
  .lote-price span{ font-size:13px; font-family:var(--sans); font-weight:500; color:var(--gray); display:block; margin-bottom:2px; line-height:1.2; }
  .lote-actions{ display:flex; gap:12px; flex-wrap:wrap; }
  .btn-sm{ padding:11px 24px; font-size:13px; }
  @media (max-width:860px){
        .lote{ display:flex; flex-direction:column; align-items:flex-start; gap:6px; }
        .lote-media, .lote-desc, .lote-specs, .lote-actions{ align-self:stretch; }
        .lote-media{ margin-bottom:0; order:3; position:relative; }
        .lote-body{ display:contents; }
        .lote-tag{ order:1; margin-bottom:0; }
        .lote-title{ order:2; margin-bottom:0; }
        .lote-price{ order:4; margin-bottom:8px; font-size:25px; }
        .lote-desc{ order:5; margin-bottom:14px; }
    .lote-specs{ order:6; margin-bottom:0; gap:6px 24px; }
        .lote-actions{ order:7; margin-top:6px; }
        .lote:nth-child(even) .lote-media{ order:3; }
        .lote-price span{ font-size:12px; }
        .lote-media img{ height:300px; }
    .lote-media iframe{ display:none; }
        /* PUNTO 2: CARRUSEL HORIZONTAL DE PROYECTOS (SOLO CELULAR) */
    #loteCarousel{
      display:flex;
      flex-wrap:nowrap;
      overflow-x:auto;
      overflow-y:hidden;
      scroll-snap-type:x mandatory;
      -webkit-overflow-scrolling:touch; 
      scrollbar-width:none;
      overscroll-behavior-x:contain;
    }
        #loteCarousel::-webkit-scrollbar{ display:none; }
    .lote-carousel-wrap{ position:relative; }
    .lote-carousel-arrow{
      position:absolute; z-index:3;
      width:46px; height:46px; border-radius:50%;
      background:rgba(11,22,38,0.55); border:none; cursor:pointer;
      align-items:center; justify-content:center;
      transition:background .2s;
      transform:translateY(-50%);
    }
    .lote-carousel-arrow.visible{ display:flex; }
    .lote-carousel-arrow:hover{ background:rgba(11,22,38,0.85); }
    .lote-carousel-arrow svg{ width:20px; height:20px; stroke:#fff; }
    .lote-carousel-arrow.prev{ left:18px; }
    .lote-carousel-arrow.next{ right:18px; }
    #loteCarousel.vista-lista ~ .lote-carousel-arrow{ display:none !important; }
    #loteCarousel.lote-carousel-sin-snap{
      scroll-snap-type:none;
    }
    #loteCarousel .lote{
      flex:0 0 100%;
      width:100%;
      border-bottom:none; 
      scroll-snap-align:center;
      scroll-snap-stop:always;
    }
        .lote-favorito-wrap{
      display:block;
      position:absolute;
      right:14px;
      top:100%;
      margin-top:8px;
      z-index:2; 
    }
    .lote-vista-toggle-box{ display:flex; }
    #loteCarousel.vista-lista{
      display:block;
      overflow:visible;
      scroll-snap-type:none;
    }
        #loteCarousel.vista-lista .lote{
      flex:initial;
      width:100%;
      border-bottom:1px solid var(--gray-line);
    }
        #loteCarousel.vista-lista .lote:last-child{ border-bottom:none; }
  }
  /* PANELES OVERLAY: Estructura genérica compartida (detalle, equipo, beneficios, clientes, mapa) */
  .detalle-overlay{
    display:none;
    position:fixed; inset:0; z-index:2000;
    background:var(--light); overflow-y:auto; -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
  }
  .detalle-overlay.open{ display:block; animation:detalleIn .35s ease; }
  #detalleOverlay{ z-index:2010; }
  @keyframes detalleIn{ from{ opacity:0; transform:translateY(30px); } to{ opacity:1; transform:translateY(0); } }
  body.detalle-open{ overflow:hidden; }
  .detalle-header{
    position:sticky; top:0; z-index:5; display:flex; align-items:center; gap:18px;
    padding:9px 24px; background:var(--overlay-header-bg); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
    border-bottom:1px solid var(--gray-line);
  }
  .detalle-back{
    display:inline-flex; align-items:center; gap:8px; background:var(--card-bg); border:1px solid var(--gray-line); cursor:pointer;
    font-family:var(--sans); font-weight:600; font-size:14px; color:var(--text-strong); padding:10px 20px; border-radius:100px;
    transition:all .2s;
  }
  .detalle-back:hover{ border-color:var(--secondary); background:var(--hover-tint); }
  .detalle-back svg{ width:17px; height:17px; stroke:var(--text-strong); }
  .detalle-header-title{ font-family:var(--serif); font-size:17px; color:var(--text-strong); }
  .detalle-header-title span{ color:var(--gray); font-family:var(--sans); font-size:13px; display:block; margin-top:2px; }
  .detalle-inner{ max-width:1140px; margin:0 auto; padding:50px 24px 110px; }
  /* DETALLE DE PROYECTO: Galería de fotos/video, carrusel, zoom y pantalla completa */
  .detalle-gallery-main{
    position:relative; border-radius:16px; overflow:hidden; background:var(--light);
    box-shadow:0 30px 70px -30px rgba(11,22,38,0.3);
    touch-action:pan-y; cursor:zoom-in; user-select:none;
    height:min(74vh, 760px);
  }
  .detalle-gallery-main.detalle-gallery-full:active{ cursor:grabbing; }
  .detalle-gallery-main.detalle-gallery-zoom-activo{ cursor:grab; }
  .detalle-gallery-main.detalle-gallery-zoom-activo:active{ cursor:grabbing; }
  .detalle-gallery-track{
    display:flex; height:100%; width:100%;
    transition:transform .2s cubic-bezier(.22,1,.36,1);
    will-change:transform; 
  }
  .detalle-gallery-track.sin-transicion{ transition:none; }
  .detalle-gallery-slide{
    flex:0 0 100%; width:100%; height:100%; position:relative;
    background:var(--light);
  }
  .detalle-gallery-slide-video{ background:#000; }
  .detalle-gallery-slide img{
    position:absolute; inset:0;
    width:100%; height:100%; object-fit:cover; display:block;
    -webkit-user-drag:none; user-select:none; pointer-events:none;
    transform-origin:center center;
    transition:transform .2s ease-out;
  }
  .detalle-gallery-main.detalle-gallery-zoom-arrastrando .detalle-gallery-slide img{
    transition:none;
  }
  .detalle-gallery-slide video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; background:#000; pointer-events:none; -webkit-user-drag:none; user-select:none; }
  .detalle-gallery-slide-clon{ pointer-events:none; }
  .detalle-gallery-main.detalle-gallery-full{
    position:fixed; inset:0; z-index:3000; border-radius:0; background:#000; height:100vh;
    touch-action:none; cursor:grab;
  }
  .detalle-gallery-main.detalle-gallery-full .detalle-gallery-slide img,
  .detalle-gallery-main.detalle-gallery-full .detalle-gallery-slide video{
    object-fit:contain;
  }
  .detalle-gallery-main.detalle-gallery-full .detalle-gallery-slide{
    background:#000;
  }
  .detalle-gallery-arrow{
    position:absolute; top:50%; transform:translateY(-50%); width:46px; height:46px; border-radius:50%;
    background:rgba(11,22,38,0.55); border:none; cursor:pointer; display:flex; align-items:center; justify-content:center;
    transition:background .2s;
  }
  .detalle-gallery-arrow:hover{ background:rgba(11,22,38,0.85); }
  .detalle-gallery-arrow svg{ width:20px; height:20px; stroke:#fff; }
  .detalle-gallery-arrow.prev{ left:18px; }
  .detalle-gallery-arrow.next{ right:18px; }
  .detalle-gallery-full-header{
    display:none;
    position:absolute; top:0; left:0; right:0; z-index:4;
    align-items:center; gap:14px;
    padding:16px 20px 40px;
    background:linear-gradient(rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.55) 55%, rgba(0,0,0,0) 100%);
  }
  .detalle-gallery-main.detalle-gallery-full .detalle-gallery-full-header{ display:flex; }
  .detalle-gallery-full-volver{
    display:inline-flex; align-items:center; gap:8px; flex-shrink:0;
    background:rgba(8,14,26,0.88); border:1px solid rgba(255,255,255,0.18); cursor:pointer;
    box-shadow:0 2px 10px rgba(0,0,0,0.35);
    font-family:var(--sans); font-weight:600; font-size:14px; color:#fff;
    padding:10px 20px; border-radius:100px;
    transition:background .2s;
  }
  .detalle-gallery-full-volver:hover{ background:rgba(8,14,26,1); }
  .detalle-gallery-full-volver svg{ width:17px; height:17px; stroke:#fff; }
  .detalle-gallery-full-titulo{
    font-family:var(--serif); font-size:16px; color:#fff; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
    text-shadow:0 1px 6px rgba(0,0,0,0.7);
  }
  .detalle-gallery-full-titulo span{
    color:rgba(255,255,255,0.85); font-family:var(--sans); font-size:12px; display:block; margin-top:2px;
    text-shadow:0 1px 6px rgba(0,0,0,0.7);
  }
  .detalle-gallery-counter{
    position:absolute; bottom:18px; right:18px; background:rgba(11,22,38,0.6); color:#fff;
    font-size:12px; font-weight:600; padding:7px 16px; border-radius:100px;
  }
  .detalle-gallery-dots{ display:flex; justify-content:center; align-items:center; gap:10px; margin-top:18px; }
  .detalle-gallery-dot{
    width:7px; height:7px; padding:0; border:none; border-radius:50%;
    background:var(--gray-line); cursor:pointer; transition:all .25s ease;
  }
  .detalle-gallery-dot:hover{ background:var(--gray); }
  .detalle-gallery-dot.active{ width:22px; border-radius:4px; background:var(--secondary); }
  .detalle-gallery-dot.is-video{
    width:0; height:0; background:transparent; border-radius:0;
    border-style:solid; border-width:6px 0 6px 10px;
    border-color:transparent transparent transparent #FF0000;
    opacity:.6;
  }
  .detalle-gallery-dot.is-video:hover{ opacity:.85; }
  .detalle-gallery-dot.is-video.active{ opacity:1; }
  /* DETALLE DE PROYECTO: Ficha de información */
  .detalle-topinfo{ margin-bottom:8px; }
  .detalle-topinfo .lote-price{ margin-top:6px; margin-bottom:0; }
  .detalle-content{
    display:grid;
    grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);
    gap:60px; align-items:start; margin-top:14px;
  }
  .detalle-desc-larga{ color:var(--gray); font-size:16px; margin:6px 0 12px; }
  .detalle-desc-larga p{ margin-bottom:16px; }
  .detalle-specs-title{ font-family:var(--serif); font-size:20px; margin-bottom:20px; }
  .detalle-specs{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr); 
    gap:20px 28px;
  }
  /* DETALLE DE PROYECTO: Acordeón de la descripción larga */
  .detalle-acordeon{
    border-radius:14px;
    overflow:hidden;
    border:1px solid var(--gray-line);
    box-shadow:0 20px 50px -35px rgba(11,22,38,0.25);
    margin-top:22px;
  }
  .detalle-acordeon-item{ border-bottom:1px solid var(--gray-line); background:var(--card-bg); }
  .detalle-acordeon-item:last-child{ border-bottom:none; }
  .detalle-acordeon-header{
    width:100%;
    display:flex;
    align-items:center;
    gap:12px;
    padding:16px 18px;
    background:var(--primary);
    color:var(--text-light);
    border:none;
    cursor:pointer;
    text-align:left;
    font-family:var(--sans);
    font-size:15px;
    font-weight:600;
    transition:background .2s ease;
  }
  .detalle-acordeon-header:hover{ background:var(--primary-soft); }
  .detalle-acordeon-item.abierto .detalle-acordeon-header{ background:var(--primary-soft); }
  .detalle-acordeon-header .num{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:24px; height:24px;
    border-radius:6px;
    background:rgba(255,255,255,0.15);
    font-size:12px;
    flex:none;
  }
  .detalle-acordeon-header .titulo-item{ flex:1; min-width:0; }
  .detalle-acordeon-header .resumen{
    font-weight:400;
    font-size:13px;
    color:var(--secondary-soft);
    white-space:nowrap;
    margin-right:6px;
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .detalle-acordeon-header .chevron{ transition:transform .25s ease; flex:none; }
  .detalle-acordeon-item.abierto .chevron{ transform:rotate(180deg); }
  .detalle-acordeon-body{
    max-height:0;
    overflow:hidden;
    transition:max-height .3s ease;
    background:var(--light);
  }
  .detalle-acordeon-item.abierto .detalle-acordeon-body{ max-height:900px; }
  .detalle-acordeon-body-inner{
    padding:16px 20px 20px 20px;
    font-size:14px;
    line-height:1.55;
    color:var(--text-strong);
  }
  .detalle-acordeon-body-inner p{ margin:0 0 10px 0; }
  .detalle-acordeon-body-inner ul{ margin:0; padding-left:0; list-style:none; }
  .detalle-acordeon-body-inner li{ display:flex; gap:8px; padding:3px 0; }
  .detalle-acordeon-body-inner li .pin{ color:var(--secondary-contrast); flex:none; }
  .detalle-acordeon-body-inner table{ width:100%; border-collapse:collapse; font-size:13.5px; }
  .detalle-acordeon-body-inner td{ padding:5px 0; border-bottom:1px dashed var(--gray-line); }
  .detalle-acordeon-body-inner td:first-child{ color:var(--gray); width:45%; }
  .detalle-acordeon-body-inner td:last-child{ font-weight:600; }
  .detalle-side{
    background:var(--card-bg); border:1px solid var(--gray-line); border-radius:18px; padding:34px;
    position:sticky; top:110px; box-shadow:0 20px 50px -30px rgba(11,22,38,0.2);
  }
  .detalle-side .lote-price{ margin-bottom:10px; }
  .detalle-side .lote-actions{ flex-direction:column; }
  .detalle-side .lote-actions a{ justify-content:center; width:100%; }
  .detalle-side .map-embed{ margin-top:34px; }
  @media (max-width:860px){
    .detalle-gallery-main{ height:min(56vh, 480px); }
    .detalle-content{ grid-template-columns:minmax(0,1fr); gap:40px; }
    .detalle-side{ position:static; }
    .detalle-inner{ padding:30px 18px 80px; }
  }
  /* PANEL «PREGUNTAS FRECUENTES» */
  .faq-toggle-row{
    display:flex; align-items:center; justify-content:flex-end;
    gap:10px; margin-bottom:18px;
  }
  .faq-toggle-label{ font-size:14px; font-weight:600; color:var(--text-strong); }
  .faq-toggle{
    display:inline-flex; align-items:center;
    background:none; border:none; padding:0; cursor:pointer; flex-shrink:0;
  }
  .faq-toggle-track{
    position:relative; display:inline-block;
    width:44px; height:26px; border-radius:100px;
    background:var(--gray-line);
    transition:background .25s cubic-bezier(.4,0,.2,1);
  }
  .faq-toggle-thumb{
    position:absolute; top:2px; left:2px;
    width:22px; height:22px; border-radius:50%;
    background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.3);
    transition:transform .25s cubic-bezier(.4,0,.2,1);
  }
  .faq-toggle[aria-checked="true"] .faq-toggle-track{ background:var(--secondary); }
  .faq-toggle[aria-checked="true"] .faq-toggle-thumb{ transform:translateX(18px); }
  .faq-acordeon{
    border-radius:14px;
    overflow:hidden;
    border:1px solid var(--gray-line);
    box-shadow:0 20px 50px -35px rgba(11,22,38,0.25);
  }
  .faq-item{ border-bottom:1px solid var(--gray-line); background:var(--card-bg); }
  .faq-item:last-child{ border-bottom:none; }
  .faq-header{
    width:100%;
    display:flex;
    align-items:center;
    gap:14px;
    padding:18px 20px;
    background:var(--card-bg);
    color:var(--text-strong);
    border:none;
    border-left:4px solid transparent;
    cursor:pointer;
    text-align:left;
    font-family:var(--sans);
    font-size:15.5px;
    font-weight:600;
    transition:background .2s ease, border-color .2s ease;
  }
  .faq-header:hover{ background:var(--hover-tint); }
  .faq-item.abierto .faq-header{ background:var(--hover-tint); border-left-color:var(--secondary); }
  .faq-header .num{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:26px; height:26px;
    border-radius:7px;
    background:var(--light);
    border:1px solid var(--gray-line);
    color:var(--secondary-contrast);
    font-size:12px;
    font-weight:700;
    flex:none;
  }
  .faq-item.abierto .faq-header .num{ background:var(--card-bg); border-color:var(--secondary); }
  .faq-header .titulo-item{ flex:1; min-width:0; }
  .faq-header .chevron{ transition:transform .25s ease, color .2s ease; flex:none; color:var(--gray); }
  .faq-item.abierto .chevron{ transform:rotate(180deg); color:var(--secondary-contrast); }
  .faq-body{
    max-height:0;
    overflow:hidden;
    transition:max-height .3s ease;
    background:var(--light);
    border-left:4px solid transparent;
  }
  .faq-item.abierto .faq-body{ max-height:900px; border-left-color:var(--gray-line); }
  .faq-body-inner{
    padding:4px 20px 22px 20px;
    max-width:68ch;
    font-size:15px;
    line-height:1.75;
    color:var(--text-strong);
    opacity:0.82;
  }
  .faq-body-inner p{ margin:14px 0 0 0; }
  /* PANEL «NUESTROS CLIENTES»: Collage dinámico de fotos */
  .clientes-collage{
    display:flex; align-items:flex-start; gap:10px;
  }
  .collage-columna{
    flex:1; min-width:0;
    display:flex; flex-direction:column; gap:10px;
  }
  .collage-cell{
    position:relative; overflow:hidden; border-radius:14px;
    background:var(--card-bg); border:1px solid var(--gray-line);
    box-shadow:0 14px 34px -26px rgba(11,22,38,0.3);
    transition:opacity 0.5s ease;
    cursor:pointer;
    width:100%;
  }
  .collage-cell:focus-visible{ outline:2px solid var(--secondary); outline-offset:2px; }
  .collage-cell.reordenando{ opacity:0; }
  .collage-cell img{
    position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
    opacity:0; transition:opacity 0.3s ease;
  }
  .collage-cell img.activa{ opacity:1; }
  .collage-cell.tipo-vertical{ aspect-ratio:3/4; }
  .collage-cell.tipo-horizontal{ aspect-ratio:4/3; }
  @media (max-width:860px){
    .clientes-collage{ gap:8px; }
    .collage-columna{ gap:8px; }
  }
  .clientes-foto-overlay{ background:#000; z-index:2200; }
  .clientes-foto-galeria{
    position:relative; width:100%; height:100vh; background:#000;
    overflow:hidden; touch-action:none; cursor:zoom-in; user-select:none;
  }
  .clientes-foto-galeria.clientes-foto-zoom-activo{ cursor:grab; }
  .clientes-foto-galeria.clientes-foto-zoom-activo:active{ cursor:grabbing; }
  .clientes-foto-galeria .detalle-gallery-track{
    display:flex; height:100%; width:100%;
    transition:transform .2s cubic-bezier(.22,1,.36,1);
    will-change:transform;
  }
  .clientes-foto-galeria .detalle-gallery-track.sin-transicion{ transition:none; }
  .clientes-foto-galeria .detalle-gallery-slide{
    flex:0 0 100%; width:100%; height:100%; position:relative; background:#000;
  }
  .clientes-foto-galeria .detalle-gallery-slide-clon{ pointer-events:none; }
  .clientes-foto-galeria .detalle-gallery-slide img{
    position:absolute; inset:0; width:100%; height:100%; object-fit:contain; display:block;
    -webkit-user-drag:none; user-select:none; pointer-events:none;
    transform-origin:center center; transition:transform .2s ease-out, opacity .25s ease;
    opacity:0;
  }
  .clientes-foto-galeria .detalle-gallery-slide img.cargada{ opacity:1; }
  .clientes-foto-galeria.clientes-foto-zoom-arrastrando .detalle-gallery-slide img{ transition:none; }
  .clientes-foto-galeria .detalle-gallery-arrow{
    position:absolute; top:50%; transform:translateY(-50%); width:46px; height:46px; border-radius:50%;
    background:rgba(11,22,38,0.55); border:none; cursor:pointer; display:flex; align-items:center; justify-content:center;
    transition:background .2s; z-index:3;
  }
  .clientes-foto-galeria .detalle-gallery-arrow:hover{ background:rgba(11,22,38,0.85); }
  .clientes-foto-galeria .detalle-gallery-arrow svg{ width:20px; height:20px; stroke:#fff; }
  .clientes-foto-galeria .detalle-gallery-arrow.prev{ left:18px; }
  .clientes-foto-galeria .detalle-gallery-arrow.next{ right:18px; }
  .clientes-foto-galeria .detalle-gallery-full-header{
    display:flex; position:absolute; top:0; left:0; right:0; z-index:4;
    align-items:center; gap:14px; padding:16px 20px 40px;
    background:linear-gradient(rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.55) 55%, rgba(0,0,0,0) 100%);
  }
  .clientes-foto-galeria .detalle-gallery-full-volver{
    display:inline-flex; align-items:center; gap:8px; flex-shrink:0;
    background:rgba(8,14,26,0.88); border:1px solid rgba(255,255,255,0.18); cursor:pointer;
    box-shadow:0 2px 10px rgba(0,0,0,0.35);
    font-family:var(--sans); font-weight:600; font-size:14px; color:#fff;
    padding:10px 20px; border-radius:100px; transition:background .2s;
  }
  .clientes-foto-galeria .detalle-gallery-full-volver:hover{ background:rgba(8,14,26,1); }
  .clientes-foto-galeria .detalle-gallery-full-volver svg{ width:17px; height:17px; stroke:#fff; }
  .clientes-foto-galeria .detalle-gallery-full-titulo{
    font-family:var(--serif); font-size:16px; color:#fff; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
    text-shadow:0 1px 6px rgba(0,0,0,0.7);
  }
  .clientes-foto-galeria .detalle-gallery-full-titulo span{
    color:rgba(255,255,255,0.85); font-family:var(--sans); font-size:12px; display:block; margin-top:2px;
    text-shadow:0 1px 6px rgba(0,0,0,0.7);
  }
  .clientes-foto-galeria .detalle-gallery-counter{
    position:absolute; bottom:18px; right:18px; background:rgba(11,22,38,0.6); color:#fff;
    font-size:12px; font-weight:600; padding:7px 16px; border-radius:100px; z-index:3;
  }
  .clientes-foto-spinner{
    display:none;
    position:absolute; top:50%; left:50%;
    width:38px; height:38px; border-radius:50%;
    border:3px solid rgba(255,255,255,0.25); border-top-color:#fff;
    transform:translate(-50%,-50%);
    animation:clientesFotoGirar .8s linear infinite; z-index:2;
  }
  .clientes-foto-galeria.cargando .clientes-foto-spinner{ display:block; }
  @keyframes clientesFotoGirar{
    from{ transform:translate(-50%,-50%) rotate(0deg); }
    to{ transform:translate(-50%,-50%) rotate(360deg); }
  }
  /* PANEL «BENEFICIOS» */
  .features{ background:var(--dark); color:#fff; }
  .features .section-title, .features .section-eyebrow{ color:#fff; }
  .features .section-eyebrow{ color:var(--secondary); }
  .features .section-sub{ color:rgba(255,255,255,0.65); }
  .features-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:30px; }
  .feature-item{ text-align:center; }
  .feature-icon{
    width:56px; height:56px; margin:0 auto 14px; border-radius:16px;
    background:rgba(212,175,55,0.12); display:flex; align-items:center; justify-content:center;
  }
  .feature-icon svg{ width:26px; height:26px; stroke:var(--secondary); }
  .feature-item h3{ font-family:var(--serif); font-weight:500; margin-bottom:12px; font-size:20px; }
  .feature-item p{ color:rgba(255,255,255,0.6); font-size:15px; }
  /* PANEL «QUIÉNES SOMOS» (equipo) */
  .equipo-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:36px; }
  .equipo-card{ text-align:center; }
  .equipo-foto{
    width:140px; height:140px; border-radius:50%; object-fit:cover; margin:0 auto 18px;
    border:3px solid var(--secondary-soft); background:var(--gray-line);
  }
  .equipo-nombre{ font-family:var(--serif); font-weight:500; font-size:18px; margin-bottom:4px; }
  .equipo-cargo{ color:var(--gray); font-size:14px; }
  /* MAPA INTERACTIVO */
  .mapa-wrap{
    display:grid;
    grid-template-columns:minmax(280px,380px) minmax(0,1fr);
    gap:44px; align-items:start;
  }
  .mapa-svg-wrap{ background:rgba(255,255,255,0.04); border-radius:20px; padding:16px; }
  .mapa-svg-wrap svg{ width:100%; height:auto; aspect-ratio:610/420; display:block; }
  .comuna{ stroke:rgba(255,255,255,0.55); stroke-width:1; cursor:pointer; transition:fill .2s, stroke-width .2s; }
  .comuna.prov-cachapoal{ fill:var(--map-cachapoal); }
  .comuna.prov-cardenalcaro{ fill:var(--map-cardenalcaro); }
  .comuna.prov-colchagua{ fill:var(--map-colchagua); }
  .comuna:hover{ stroke:#fff; stroke-width:2; opacity:.88; }
  .comuna.activa{ stroke:#fff; stroke-width:2.5; filter:brightness(1.15); }
  .mapa-comuna-tooltip{
    position:fixed; z-index:9999; pointer-events:none;
    background:rgba(11,22,38,0.92); color:#fff; font-size:12.5px; line-height:1.3;
    padding:5px 9px; border-radius:6px; white-space:nowrap;
    opacity:0; transform:translate(-50%,-100%) translateY(-8px);
    transition:opacity .12s ease;
  }
  .mapa-comuna-tooltip.visible{ opacity:1; }
  .mapa-pin{ cursor:pointer; outline:none; -webkit-tap-highlight-color:transparent; }
  .mapa-pin circle{ fill:var(--map-pin); stroke:var(--primary); stroke-width:1.5; }
  .mapa-pin:hover circle{ fill:var(--map-pin-soft); }
  .mapa-pin.visto circle{ fill:var(--map-pin-visto); }
  .mapa-pin.actual circle{ fill:var(--map-pin-actual); stroke:#ffffff; stroke-width:3; }
  .mapa-pin.filtro-oculto{ display:none; }
  .mapa-panel{ color:#fff; }
  .mapa-leyenda{ display:flex; flex-wrap:wrap; gap:16px; margin-bottom:24px; font-size:13px; color:rgba(255,255,255,0.8); }
  .mapa-leyenda-item{ display:flex; align-items:center; gap:8px; }
  .mapa-swatch{ width:13px; height:13px; border-radius:4px; display:inline-block; }
  .sw-cachapoal{ background:var(--map-cachapoal); }
  .sw-cardenalcaro{ background:var(--map-cardenalcaro); }
  .sw-colchagua{ background:var(--map-colchagua); }
  .sw-pin{ background:var(--map-pin); border-radius:50%; }
  .mapa-info{
    background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.1); border-radius:16px;
    padding:22px; min-height:120px;
  }
  .mapa-info-hint{ color:rgba(255,255,255,0.55); font-size:14px; }
  .mapa-info-provincia{ font-size:12px; letter-spacing:2px; text-transform:uppercase; color:var(--secondary-soft); margin-bottom:6px; }
  .mapa-info-nombre{ font-family:var(--serif); font-size:24px; margin-bottom:10px; }
  .mapa-info-proyectos{ font-size:14px; color:rgba(255,255,255,0.8); line-height:1.6; }
  .mapa-info-proyectos a{ color:var(--secondary-soft); text-decoration:underline; }
  .mapa-info-proyectos a.visto{ color:var(--map-pin-visto); }
  .mapa-info-proyectos a.actual{ color:var(--map-pin); font-weight:700; }
  .mapa-nota{ font-size:12.5px; color:rgba(255,255,255,0.45); margin-top:16px; line-height:1.6; }
  @media (max-width:860px){
    .mapa-wrap{
      grid-template-columns:minmax(0,1fr);
      gap:14px;
    }
    #mapaOverlay .detalle-inner{ padding-top:6px; padding-bottom:24px; padding-left:0; padding-right:0; }
    .mapa-svg-wrap{ padding:0; order:2; }
    .mapa-panel{ display:contents; }
    .mapa-info{
      order:1;
      padding:16px; min-height:70px;
      margin-left:18px; margin-right:18px;
    }
    .mapa-leyenda{
      order:3; margin-bottom:0;
      margin-left:18px; margin-right:18px;
      row-gap:8px;      
      column-gap:14px;  
    }
    .mapa-nota{ order:4; }
    .mapa-leyenda-item{ gap:6px; } 
    #mapaOverlay .section-sub{
      font-size:14px;
      margin-bottom:10px;
      margin-left:18px; margin-right:18px;
    }
  }
  #mapaOverlay{ background:var(--dark); }
  #mapaOverlay .section-sub{ color:rgba(255,255,255,0.65); margin-bottom:16px; }
  /* FORMULARIO DE CONTACTO Y BOTÓN FLOTANTE DE WHATSAPP */
  .contact-wrap{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:36px; align-items:start; }
  .contact-wrap > *{ width:100%; min-width:0; }
  .contact-channels{ display:flex; flex-direction:column; gap:14px; margin-bottom:20px; }
  .equipo-contacto-texto{ color:var(--equipo-contacto-texto-color); font-size:15px; margin:28px 0 16px; }
  .contact-channels-equipo{ margin-bottom:0; }
  .channel{
    display:flex; align-items:center; gap:16px; padding:18px 22px;
    background:#141f33;
    border:1px solid rgba(255,255,255,0.12); border-radius:14px;
    text-decoration:none; transition:all .25s;
  }
  .channel:hover{ border-color:var(--secondary); transform:translateX(4px); }
  .channel-icon{
    width:44px; height:44px; border-radius:12px; background:var(--primary);
    display:flex; align-items:center; justify-content:center; flex-shrink:0;
  }
  .channel-icon svg{ width:20px; height:20px; stroke:var(--secondary); }
  .channel-avatar{
    width:52px; height:52px; border-radius:50%; flex-shrink:0; position:relative;
    border:2px solid var(--secondary);
  }
  .channel-avatar img{
    width:100%; height:100%; border-radius:50%; object-fit:cover; display:block;
  }
  .channel-wa-badge{
    position:absolute; bottom:-3px; right:-3px; width:20px; height:20px; border-radius:50%;
    background:#25D366; display:flex; align-items:center; justify-content:center;
    border:2px solid #141f33;
  }
  .channel-wa-badge svg{ width:12px; height:12px; fill:#fff; }
  .channel-text{ min-width:0; }
  .channel-label{ font-size:12px; color:#9aa4b4; text-transform:uppercase; letter-spacing:1px; margin-bottom:2px; }
  .channel-value{
    font-size:16px; font-weight:600; color:#f5f7fa;
    white-space:normal; word-break:break-word; display:block;
  }
  .social-row{ display:flex; gap:12px; margin-top:8px; justify-content:flex-end; }
  .social-row a{
    width:42px; height:42px; border-radius:50%; border:1px solid rgba(255,255,255,0.12);
    display:flex; align-items:center; justify-content:center; text-decoration:none; color:#f5f7fa;
    font-size:13px; font-weight:700; transition:all .25s;
  }
  .social-row a svg{ width:20px; height:20px; fill:currentColor; }
  .social-row a:hover{ background:var(--secondary); color:var(--primary); border-color:var(--secondary); }
  .contact-form{
    width:100%;
    background:#141f33;
    padding:28px;
    border-radius:16px;
    border:1px solid rgba(255,255,255,0.12);
    box-shadow:0 20px 60px -30px rgba(0,0,0,0.35);
    scroll-margin-top:80px;
  }
  .form-group{ margin-bottom:14px; }
  .form-group label{ display:block; margin-bottom:8px; font-weight:600; font-size:13px; color:#f5f7fa; }
  .form-group input, .form-group select, .form-group textarea{
    width:100%; padding:13px 14px; border:1px solid rgba(255,255,255,0.15); border-radius:8px; font-size:15px;
    font-family:var(--sans); background:var(--form-field-bg); color:var(--primary);
  }
  .form-group textarea{ resize:none; }
  .form-group input:focus, .form-group select:focus, .form-group textarea:focus{
    outline:none; border-color:var(--secondary); background:var(--form-field-bg);
  }
  .form-group input::placeholder, .form-group textarea::placeholder{ color:rgba(255,255,255,0.7); opacity:1; }
  .campo-telefono{
    display:flex; align-items:center; gap:8px;
    border:1px solid rgba(255,255,255,0.15); border-radius:8px;
    background:var(--form-field-bg);
  }
  .campo-telefono:focus-within{ border-color:var(--secondary); }
  .campo-telefono-prefijo{
    padding:13px 0 13px 14px; color:var(--primary); font-size:15px; font-weight:600;
    font-family:var(--sans); white-space:nowrap; user-select:none;
  }
  .campo-telefono input{
    flex:1; min-width:0; border:none; background:transparent;
    padding:13px 14px 13px 0; font-size:15px; font-family:var(--sans); color:var(--primary);
  }
  .campo-telefono input:focus{ outline:none; }
  .btn-submit{
    width:100%; background:var(--secondary); color:var(--primary); border:none; padding:15px;
    font-size:14px; font-weight:700; letter-spacing:.5px; text-transform:uppercase;
    border-radius:8px; cursor:pointer; transition:background .3s;
  }
  .btn-submit:hover{ background:var(--secondary-soft); color:var(--primary); }
  .btn-submit:active{ background:var(--secondary-soft); color:var(--primary); }
  .contact-form.enviado .form-group{ display:none; }
  .contact-form.enviado .btn-submit{ background:#1e7a34; cursor:default; }
  .contact-form.enviado .btn-submit:hover{ background:#1e7a34; color:#fff; }
  .map-embed{ margin-top:20px; border-radius:14px; overflow:hidden; border:1px solid var(--gray-line); }
  .map-embed iframe{ width:100%; height:280px; border:none; display:block; }
  .tour-embed iframe{ height:420px; }
  @media (max-width: 640px){
    .tour-embed iframe{ height:300px; }
  }
  .wa-float{
    position:fixed; bottom:26px; right:26px; z-index:900; width:58px; height:58px; border-radius:50%;
    background:#25D366; display:flex; align-items:center; justify-content:center; box-shadow:0 10px 30px rgba(0,0,0,0.25);
    text-decoration:none; transition:transform .25s;
  }
  .wa-float:hover{ transform:scale(1.08); }
  .wa-float svg{ width:28px; height:28px; fill:#fff; }
  @media (max-width:860px){
        .contact-wrap{ grid-template-columns:minmax(0,1fr); }
        .section#contacto{ padding-left:8px; padding-right:8px; }
        .channel{ padding:14px 12px; gap:10px; }
        .channel-icon{ width:38px; height:38px; }
        .channel-icon svg{ width:17px; height:17px; }
        .channel-avatar{ width:44px; height:44px; }
        .channel-wa-badge{ width:17px; height:17px; }
        .channel-wa-badge svg{ width:10px; height:10px; }
        .channel-value{ font-size:14px; }
        .contact-form{ padding:22px 14px; }
  }
  /* FOOTER */
  footer{ background:var(--primary); color:rgba(255,255,255,0.55); padding:36px 24px 20px; }
  .footer-inner{
    max-width:1240px; margin:0 auto;
    display:grid;
    grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); 
    gap:30px; margin-bottom:24px;
  }
  .footer-brand .logo-text{ margin-bottom:10px; }
  .footer-brand p{ font-size:14px; max-width:280px; }
  .footer-col h4{ color:#fff; font-size:13px; text-transform:uppercase; letter-spacing:1.5px; margin-bottom:12px; }
  .footer-col a{ display:block; text-decoration:none; color:rgba(255,255,255,0.55); font-size:14px; margin-bottom:8px; transition:color .2s; }
  .footer-col a:hover{ color:var(--secondary); }
  footer #contacto{
    color:#fff;
    margin-bottom:24px;
    padding:0 24px 24px;
  }
  footer #contacto .section-title{ color:#fff; }
  footer #contacto .section-eyebrow{ color:var(--secondary); }
  footer #contacto .section-sub{ color:rgba(255,255,255,0.65); }
  footer #contacto .spec-label{ color:rgba(255,255,255,0.55); }
  .footer-bottom{ max-width:1240px; margin:0 auto; padding-top:16px; border-top:1px solid rgba(255,255,255,0.1); font-size:13px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; }
  @media (max-width:860px){
        .footer-inner{ grid-template-columns:1fr; }
  }

  /* PLACEHOLDER MAPA INTERACTIVO (carga diferida del iframe) */
  .mapa-placeholder{
    position:relative;
    width:100%;
    border-radius:14px;
    overflow:hidden;
    background:linear-gradient(135deg, #1a2332 0%, #0f1724 100%);
    min-height:280px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:16px;
  }
  .mapa-placeholder::before{
    content:'';
    position:absolute;
    inset:0;
    background-image:
      linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px);
    background-size:40px 40px;
    pointer-events:none;
  }
  .mapa-placeholder-icon{
    width:56px;
    height:56px;
    stroke:var(--secondary);
    stroke-width:1.5;
    fill:none;
    opacity:.55;
    position:relative;
    z-index:1;
  }
  .mapa-placeholder-btn{
    position:relative;
    z-index:2;
    display:inline-flex;
    align-items:center;
    gap:8px;
    background:var(--secondary);
    color:var(--primary);
    padding:12px 24px;
    border-radius:100px;
    font-family:var(--sans);
    font-weight:700;
    font-size:13px;
    letter-spacing:.3px;
    border:none;
    cursor:pointer;
    box-shadow:0 8px 24px rgba(0,0,0,.35);
    transition:background .25s, transform .2s;
  }
  .mapa-placeholder-btn:hover{
    background:var(--secondary-soft);
    transform:translateY(-2px);
  }
  .mapa-placeholder-btn svg{
    width:16px;
    height:16px;
    stroke:currentColor;
    stroke-width:2;
    stroke-linecap:round;
    stroke-linejoin:round;
    fill:none;
  }
  /* COMPARADOR DE PARCELAS: Sección de comparación tipo VS */
  #compara-parcelas{
    padding:80px 0;
  }
  .comparador-container{
    max-width:1240px;
    margin:0 auto;
    padding:0 24px;
  }
  .comparador-titulo{
    text-align:center;
    margin-bottom:60px;
  }
  .comparador-titulo h2{
    font-family:var(--serif);
    font-size:48px;
    font-weight:500;
    margin-bottom:12px;
    color:var(--text-strong);
  }
  .comparador-titulo p{
    font-size:16px;
    color:var(--gray);
    max-width:600px;
    margin:0 auto;
  }
  .comparador-selectores{
    display:flex;
    gap:24px;
    margin-bottom:60px;
    justify-content:center;
    flex-wrap:wrap;
  }
  .comparador-selector{
    flex:1;
    min-width:220px;
    max-width:320px;
  }
  .comparador-selector label{
    display:block;
    font-size:13px;
    font-weight:600;
    letter-spacing:1.5px;
    text-transform:uppercase;
    color:var(--gray);
    margin-bottom:12px;
  }
  .comparador-selector select{
    width:100%;
    padding:14px 16px;
    border:1px solid var(--gray-line);
    border-radius:8px;
    background:var(--input-bg);
    color:var(--text-strong);
    font-family:var(--sans);
    font-size:14px;
    font-weight:500;
    cursor:pointer;
    transition:border-color .25s, box-shadow .25s;
  }
  .comparador-selector select:hover{
    border-color:var(--secondary);
  }
  .comparador-selector select:focus{
    outline:none;
    border-color:var(--secondary);
    box-shadow:0 0 0 3px rgba(212,175,55,0.1);
  }
  .comparador-toggle-wrap{
    display:none;
    justify-content:center;
    align-items:center;
    gap:12px;
    margin-bottom:32px;
  }
  .comparador-favoritos-toggle-wrap{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:8px;
    margin-bottom:28px;
  }
  .comparador-favoritos-vacio{
    display:none;
    font-size:13px;
    color:var(--gray);
    font-style:italic;
    text-align:center;
    max-width:360px;
  }
  .comparador-toggle{
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:10px 18px;
    border:1px solid var(--gray-line);
    border-radius:100px;
    background:var(--card-bg);
    color:var(--text-strong);
    font-family:var(--sans);
    font-size:13px;
    font-weight:600;
    letter-spacing:.2px;
    cursor:pointer;
    transition:border-color .25s, background .25s;
  }
  .comparador-toggle:hover{
    border-color:var(--secondary);
  }
  .comparador-toggle-switch{
    position:relative;
    width:36px; height:20px;
    min-width:36px;
    border-radius:100px;
    background:var(--gray-line);
    transition:background .25s;
  }
  .comparador-toggle-switch::after{
    content:'';
    position:absolute;
    top:2px; left:2px;
    width:16px; height:16px;
    border-radius:50%;
    background:#fff;
    box-shadow:0 1px 3px rgba(0,0,0,.25);
    transition:transform .25s;
  }
  .comparador-toggle.activo{
    border-color:var(--secondary);
    background:var(--hover-tint);
  }
  .comparador-toggle.activo .comparador-toggle-switch{
    background:var(--secondary);
  }
  .comparador-toggle.activo .comparador-toggle-switch::after{
    transform:translateX(16px);
  }
  .comparador-toggle-contador{
    font-size:12px;
    font-weight:500;
    color:var(--gray);
  }
  .comparador-sin-diferencias{
    padding:24px 12px;
    text-align:center;
    font-size:14px;
    color:var(--gray);
    font-style:italic;
  }
  .comparador-tabla{
    border:1px solid var(--gray-line);
    border-radius:14px;
    overflow:hidden;
    background:var(--card-bg);
    box-shadow:0 2px 8px rgba(0,0,0,0.06);
  }
  .comparador-fila{
    display:grid;
    grid-template-columns:minmax(120px,1.5fr) 1fr 1fr;
    align-items:stretch;
    border-bottom:1px solid var(--gray-line);
  }
  .comparador-fila:last-child{
    border-bottom:none;
  }
  .comparador-fila:not(.comparador-fila-header):hover{
    background:var(--hover-tint);
  }
  .comparador-celda{
    padding:18px 16px;
    display:flex;
    flex-direction:column;
    justify-content:center;
  }
  .comparador-celda-label{
    font-size:14px;
    font-weight:600;
    color:var(--text-strong);
    line-height:1.35;
    border-right:1px solid var(--gray-line);
    background:var(--light);
  }
  .comparador-celda-valor{
    align-items:center;
    text-align:center;
    border-right:1px solid var(--gray-line);
    font-size:14px;
    color:var(--text-strong);
    gap:4px;
  }
  .comparador-celda-valor:last-child{
    border-right:none;
  }
  .comparador-fila-header{
    position:sticky;
    top:0;
    z-index:2;
    background:var(--card-bg);
    border-bottom:2px solid var(--secondary);
  }
  .comparador-fila-header .comparador-celda-label{
    background:var(--card-bg);
    border-right:1px solid var(--gray-line);
  }
  .comparador-celda-producto{
    align-items:center;
    text-align:center;
    gap:6px;
    border-right:1px solid var(--gray-line);
    padding:20px 14px;
  }
  .comparador-celda-producto:last-child{
    border-right:none;
  }
  .comparador-nombre{
    font-family:var(--serif);
    font-size:18px;
    font-weight:600;
    color:var(--text-strong);
    line-height:1.25;
  }
  .comparador-ubicacion{
    font-size:12px;
    color:var(--gray);
    font-weight:500;
  }
  .comparador-precio{
    font-family:var(--serif);
    font-size:18px;
    font-weight:600;
    color:var(--secondary);
    margin-top:2px;
  }
  .comparador-cta{
    margin-top:10px;
    display:flex;
    flex-direction:column;
    gap:8px;
    width:100%;
  }
  .comparador-cta .btn{
    width:100%;
    text-align:center;
    padding:10px 12px;
    font-size:12px;
    white-space:nowrap;
  }
  .comparador-check{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:22px;
    height:22px;
    border-radius:50%;
    background:var(--secondary);
    color:var(--primary);
    font-weight:700;
    font-size:12px;
  }
  .comparador-check.vacio{
    background:#f0f0f0;
    color:#bbb;
  }
  .comparador-fila.comparador-fila-vacia .comparador-celda-label{
    color:var(--gray);
    font-weight:500;
    font-style:italic;
  }
  @media (max-width:768px){
    #compara-parcelas{
      padding:60px 0;
    }
    .comparador-titulo h2{
      font-size:32px;
    }
    .comparador-selectores{
      flex-direction:column;
      gap:16px;
    }
    .comparador-selector{
      min-width:auto;
      max-width:none;
    }
    .comparador-fila{
      grid-template-columns:minmax(90px,1fr) 1fr 1fr;
    }
    .comparador-celda{
      padding:12px 8px;
      font-size:12.5px;
    }
    .comparador-celda-producto{
      padding:14px 8px;
    }
    .comparador-nombre{
      font-size:14px;
    }
    .comparador-precio{
      font-size:14px;
    }
    .comparador-cta .btn{
      font-size:10.5px;
      padding:8px 6px;
    }
    .comparador-check{
      width:18px;
      height:18px;
      font-size:10px;
    }
  }
  @media (max-width:420px){
    .comparador-fila{
      grid-template-columns:minmax(76px,1fr) 1fr 1fr;
    }
    .comparador-celda{
      padding:10px 6px;
      font-size:11.5px;
    }
    .comparador-cta .btn{
      font-size:9.5px;
      padding:7px 4px;
    }
  }

