/* ===================== Portada ===================== */
body.home{
  --margen-home:clamp(16px,4vw,56px);   /* aire a los lados de las secciones */
  background:
    radial-gradient(900px 620px at 106% 16%, #EAC3E0 0%, rgba(234,195,224,0) 62%),
    radial-gradient(800px 560px at -6% 88%, #F0CFE6 0%, rgba(240,207,230,0) 62%),
    #FBF5FC;
}

/* Encabezado transparente encima de la foto */
body.home .pub-header{ position:absolute; top:0; left:0; right:0; background:transparent; border-bottom:none; z-index:30; }
body.home .pub-header-in{ max-width:1400px; }
body.home .pub-nav a{ color:var(--violet-700); }

/* Foto principal */
.home-hero{ position:relative; min-height:610px; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:120px 20px 70px; }
.home-hero-fondo{
  position:absolute; inset:0; border-radius:0 0 64px 64px; overflow:hidden;
  background-image:linear-gradient(135deg,#4D004D 0%,#A3529E 55%,#C93FC0 100%);
  background-size:cover; background-position:center; background-repeat:no-repeat;
}
.home-hero > *:not(.home-hero-fondo){ position:relative; z-index:2; }

/* Video de fondo: aparece suavemente cuando empieza a reproducirse; mientras tanto se ve la imagen de respaldo */
.home-hero-video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .9s ease; }
.home-hero-video.listo{ opacity:1; }

/* Título que cambia */
.titulo-wrap{ box-sizing:border-box; padding:0 10px 36px; text-align:center; font-family:'Montserrat',sans-serif; --violet-400:#A78BFA; }
.titulo-wrap *{ box-sizing:border-box; }
.ti-h1{ margin:0; font-weight:800; font-size:70px; line-height:1.2; color:#fff; display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:.2em; }
.ti-rotador{ position:relative; display:inline-flex; align-items:center; width:3.6em; height:1.2em; overflow:hidden; transition:width .5s cubic-bezier(.4,0,.2,1); }
.ti-rotador span{
  position:absolute; left:0; top:0; width:100%; height:100%; display:flex; align-items:center; justify-content:flex-end; white-space:nowrap;
  background:linear-gradient(100deg,#fff 0%,#fff 35%,var(--violet-400) 50%,#fff 65%,#fff 100%); background-size:250% 100%;
  -webkit-background-clip:text; background-clip:text; color:transparent;
  filter:drop-shadow(0 0 10px rgba(124,58,237,.6));
  opacity:0; transform:translateY(35%);
  transition:opacity .5s ease, transform .5s cubic-bezier(.4,0,.2,1);
  animation:ti-destello 2.8s linear infinite;
}
@keyframes ti-destello{ 0%{ background-position:0% 0%; } 100%{ background-position:250% 0%; } }
.ti-rotador span.activa{ opacity:1; transform:translateY(0); }
.ti-rotador span.saliendo{ opacity:0; transform:translateY(-35%); }
@media (prefers-reduced-motion:reduce){ .ti-rotador span{ animation:none; } }
@media (max-width:600px){ .ti-h1{ font-size:34px; } .titulo-wrap{ padding-bottom:26px; } .home-hero{ min-height:520px; padding-top:100px; } .home-hero-fondo{ border-radius:0 0 36px 36px; } }

/* Aparición "pop" del buscador: entra con un pequeño rebote un instante después de cargar la página.
   Se anima solo la barra (no el contenedor) para no afectar los menús que se abren debajo. */
@keyframes ic-pop{
  0%{   opacity:0; transform:translateY(26px) scale(.86); }
  55%{  opacity:1; transform:translateY(-5px) scale(1.035); }
  78%{  opacity:1; transform:translateY(1px) scale(.992); }
  100%{ opacity:1; transform:none; }
}
.home-hero .ic-bn-barra, .home-hero .icm-barra{ animation:ic-pop .75s cubic-bezier(.3,.6,.35,1) .35s backwards; }
@media (prefers-reduced-motion:reduce){ .home-hero .ic-bn-barra, .home-hero .icm-barra{ animation:none; } }

/* ===================== Secciones ===================== */
.home-seccion{ max-width:1500px; margin:0 auto; padding:0 var(--margen-home); }
.home-titulo{ margin:0 0 26px; text-align:center; font-weight:800; font-size:clamp(24px,3vw,34px); color:#660066; line-height:1.2; }
.home-vacio{ text-align:center; color:#827E99; font-size:14px; margin:0; }
.home-bloque{ margin-top:64px; }

/* ===================== Tarjetas de información ===================== */
.ic-stats-h-wrap{
  --violet-700:#4D004D; --violet-600:#660066; --blue-100:#DBEAFE; --blue-600:#2563EB; --teal-100:#CFF4F0; --teal-600:#0D9488;
  --pink-100:#FCE1EC; --pink-600:#DB2777; --lavender-50:#FAF3FB; --line:rgba(20,15,50,.06); --ink:#1C1533; --muted:#726E85;
  box-sizing:border-box; max-width:1400px; margin:0 auto; padding:10px var(--margen-home); font-family:'Montserrat',sans-serif;
}
.ic-stats-h-wrap *{ box-sizing:border-box; }
.ic-stats-h-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.ic-stats-h-card{ display:flex; align-items:flex-start; gap:14px; background:var(--lavender-50); border:1px solid var(--line); border-radius:18px; padding:20px; transition:transform .2s ease, box-shadow .2s ease; }
.ic-stats-h-card:hover{ transform:translateY(-3px); box-shadow:0 16px 30px -20px rgba(77,0,77,.35); }

/* Aparición "pop": las tarjetas esperan ocultas y entran una tras otra cuando llegas a ellas.
   Si por algo el JavaScript no corriera, aparecen solas a los 4 segundos. */
@keyframes ic-revelar{ to{ opacity:1; } }
.ic-stats-h-card{ opacity:0; animation:ic-revelar .01s linear 4s forwards; }
.ic-stats-h-wrap.ic-pop-visible .ic-stats-h-card{ animation:ic-pop .75s cubic-bezier(.3,.6,.35,1) calc(var(--i,0) * .1s) both; }
.ic-stats-h-card.listo{ opacity:1; animation:none; }   /* al terminar, se libera para que el efecto al pasar el cursor funcione */
@media (prefers-reduced-motion:reduce){ .ic-stats-h-card{ opacity:1; animation:none; } }
.ic-stats-h-icono{ flex:0 0 52px; width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center; }
.ic-stats-h-icono svg{ width:24px; height:24px; }
.ic-stats-h-icono.ic-morado{ background:#EDE4FB; } .ic-stats-h-icono.ic-morado svg{ color:var(--violet-600); }
.ic-stats-h-icono.ic-azul{ background:var(--blue-100); } .ic-stats-h-icono.ic-azul svg{ color:var(--blue-600); }
.ic-stats-h-icono.ic-verde{ background:var(--teal-100); } .ic-stats-h-icono.ic-verde svg{ color:var(--teal-600); }
.ic-stats-h-icono.ic-rosa{ background:var(--pink-100); } .ic-stats-h-icono.ic-rosa svg{ color:var(--pink-600); }
.ic-stats-h-num{ font-size:26px; font-weight:800; color:#9995a5; margin:0 0 2px; line-height:1; }
.ic-stats-h-titulo{ font-size:14.5px; font-weight:800; color:var(--violet-700); margin:0 0 6px; line-height:1.25; }
.ic-stats-h-desc{ font-size:12px; color:var(--muted); line-height:1.5; margin:0; }
@media (max-width:900px){ .ic-stats-h-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .ic-stats-h-grid{ grid-template-columns:1fr; } }

/* ===================== Selector de ubicaciones ===================== */
.ic-zonas-fondo{ width:calc(100% - 2 * var(--margen-home)); max-width:1400px; margin:0 auto; padding:40px 20px; background:rgba(255,255,255,.35); border-radius:32px; }
.ic-zonas-carrusel{
  --violet-700:#4D004D; --violet-600:#660066; --violet-400:#A3529E; --violet-300:#C93FC0; --lavender-50:#FAF0FA; --lavender-100:#F3DFF3;
  --line:#EAD3EA; --ink:#1C1533; --muted:#726E85;
  box-sizing:border-box; max-width:1180px; margin:0 auto; font-family:'Montserrat',sans-serif; position:relative;
}
.ic-zonas-carrusel *{ box-sizing:border-box; }
.ic-zonas-marco{ background:linear-gradient(160deg,var(--lavender-50) 0%,#fff 100%); border:1px solid var(--line); border-radius:28px; padding:34px 34px 26px; }
.ic-zonas-encabezado{ display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:24px; }
.ic-zonas-titulo{ font-size:26px; font-weight:800; color:var(--ink); margin:0; }
.ic-zonas-titulo span{ color:var(--violet-600); }
.ic-zonas-nav{ display:flex; gap:8px; }
.ic-zonas-nav button{ width:40px; height:40px; border-radius:50%; border:1px solid var(--line); background:#fff; color:var(--violet-600); cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .15s ease, transform .15s ease, color .15s ease; }
.ic-zonas-nav button:hover{ background:var(--violet-600); color:#fff; transform:translateY(-1px); }
.ic-zonas-nav svg{ width:18px; height:18px; }
.ic-zonas-track{ display:flex; gap:20px; overflow-x:auto; scroll-behavior:smooth; scroll-snap-type:x mandatory; padding:4px 4px 12px; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.ic-zonas-track::-webkit-scrollbar{ display:none; }
.ic-zona-item{ flex:0 0 190px; scroll-snap-align:start; text-decoration:none; color:inherit; display:block; }
.ic-zona-foto{ position:relative; width:100%; aspect-ratio:4/5; border-radius:20px; overflow:hidden; background-color:var(--violet-700); background-position:center; background-size:cover; background-repeat:no-repeat; box-shadow:0 14px 30px -18px rgba(77,0,77,.35); border:3px solid transparent; transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.ic-zona-foto.sin-foto{ background-image:linear-gradient(160deg,#A3529E,#4D004D); }
.ic-zona-item:hover .ic-zona-foto{ transform:translateY(-4px); box-shadow:0 20px 38px -16px rgba(77,0,77,.45); }
.ic-zona-item.ic-seleccionada .ic-zona-foto{ border-color:var(--violet-600); box-shadow:0 20px 38px -14px rgba(102,0,102,.5); transform:translateY(-2px) scale(1.02); }
.ic-zona-check{ position:absolute; top:12px; left:12px; z-index:1; width:26px; height:26px; border-radius:50%; background:linear-gradient(135deg,var(--violet-300),var(--violet-700)); display:flex; align-items:center; justify-content:center; opacity:0; transform:scale(.7); transition:opacity .2s ease, transform .2s ease; }
.ic-zona-item.ic-seleccionada .ic-zona-check{ opacity:1; transform:scale(1); }
.ic-zona-check svg{ width:13px; height:13px; color:#fff; }
.ic-zona-foto::after{ content:''; position:absolute; inset:0; background:linear-gradient(0deg,rgba(30,10,40,.55) 0%,rgba(30,10,40,0) 55%); }
.ic-zona-nombre{ position:absolute; left:14px; right:14px; bottom:12px; color:#fff; font-size:14.5px; font-weight:700; line-height:1.25; z-index:1; }
.ic-zona-flecha{ position:absolute; top:12px; right:12px; z-index:1; width:26px; height:26px; border-radius:50%; background:rgba(255,255,255,.85); display:flex; align-items:center; justify-content:center; opacity:0; transform:translateX(-4px); transition:opacity .2s ease, transform .2s ease; }
.ic-zona-item:hover .ic-zona-flecha{ opacity:1; transform:translateX(0); }
.ic-zona-flecha svg{ width:13px; height:13px; color:var(--violet-700); }
.ic-zonas-progreso{ height:3px; background:var(--line); border-radius:999px; margin-top:18px; overflow:hidden; }
.ic-zonas-progreso-barra{ height:100%; width:20%; background:linear-gradient(90deg,var(--violet-300),var(--violet-700)); border-radius:999px; transition:width .2s ease, transform .2s ease; }
@media (max-width:900px){ .ic-zona-item{ flex:0 0 42%; } }
@media (max-width:560px){
  .ic-zonas-fondo{ padding:24px 12px; border-radius:24px; }
  .ic-zonas-marco{ padding:24px 18px 20px; border-radius:22px; }
  .ic-zonas-titulo{ font-size:20px; }
  .ic-zonas-nav{ display:none; }
  .ic-zona-item{ flex:0 0 58%; }
}

/* ===================== Carruseles de propiedades ===================== */
.ic-carrusel-web-wrap{
  --violet-700:#4D004D; --violet-600:#660066; --violet-300:#C93FC0; --line:rgba(20,15,50,.08); --ink:#1E1B33; --muted:#726E85; --slide-w:29%;
  box-sizing:border-box; width:100%; max-width:1400px; margin:0 auto; font-family:'Montserrat',sans-serif; position:relative; padding:12px 0;
}
.ic-carrusel-web-wrap *{ box-sizing:border-box; }
.ic-carrusel-web-track{ display:flex; gap:22px; overflow-x:auto; scroll-behavior:smooth; scroll-snap-type:x mandatory; padding:4px 0 14px; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.ic-carrusel-web-track::-webkit-scrollbar{ display:none; }
.ic-carrusel-web-slide{ flex:0 0 calc(var(--slide-w) - 15px); scroll-snap-align:start; }
.ic-carrusel-web-card{ display:block; height:100%; text-decoration:none; color:inherit; background:#fff; border-radius:18px; overflow:hidden; box-shadow:0 10px 26px -16px rgba(20,15,50,.25); transition:transform .25s ease, box-shadow .25s ease; }
a.ic-carrusel-web-card:hover{ transform:translateY(-4px); box-shadow:0 18px 34px -16px rgba(77,0,77,.35); }
.ic-carrusel-web-foto{ position:relative; width:100%; aspect-ratio:4/3; background:var(--violet-700) center/cover no-repeat; }
.ic-carrusel-web-foto.sin-foto{ background:linear-gradient(135deg,#F3DFF3,#E2BDE2); display:flex; align-items:center; justify-content:center; }
.sin-foto-icono{ width:54px; height:54px; color:#A3529E; opacity:.7; }
.ic-carrusel-web-badge{ position:absolute; top:14px; left:14px; background:linear-gradient(135deg,var(--violet-300),var(--violet-700)); color:#fff; font-size:11.5px; font-weight:700; padding:6px 15px; border-radius:999px; text-transform:uppercase; letter-spacing:.03em; }
.ic-carrusel-web-badge.ic-badge-2{ left:auto; right:14px; }
.ic-carrusel-web-info{ padding:16px 16px 14px; }
.ic-carrusel-web-titulo{ font-size:15.5px; font-weight:700; color:var(--ink); margin:0 0 4px; line-height:1.3; display:-webkit-box; -webkit-line-clamp:1; -webkit-box-orient:vertical; overflow:hidden; }
.ic-carrusel-web-ubicacion{ display:flex; align-items:flex-start; gap:4px; font-size:12.5px; color:var(--muted); margin:0 0 10px; line-height:1.4; min-height:2.8em; }
.ic-carrusel-web-ubicacion svg{ width:13px; height:13px; color:var(--violet-600); flex:none; margin-top:2px; }
.ic-carrusel-web-precio{ font-size:20px; font-weight:800; color:var(--violet-700); margin:0 0 12px; white-space:nowrap; }
.ic-carrusel-web-specs{ display:flex; gap:14px; flex-wrap:wrap; padding-top:12px; border-top:1px solid var(--line); }
.ic-carrusel-web-spec{ font-size:12px; color:var(--muted); display:flex; align-items:center; gap:5px; }
.ic-carrusel-web-spec svg{ width:15px; height:15px; color:var(--violet-600); flex:none; }
.ic-carrusel-web-spec strong{ color:var(--ink); font-weight:700; }
.ic-carrusel-web-nav{ position:absolute; top:38%; transform:translateY(-50%); width:48px; height:48px; border-radius:50%; background:#fff; border:1px solid var(--line); box-shadow:0 10px 24px -6px rgba(77,0,77,.4); display:flex; align-items:center; justify-content:center; cursor:pointer; z-index:3; color:var(--violet-600); padding:0; }
.ic-carrusel-web-nav.prev{ left:-20px; }
.ic-carrusel-web-nav.next{ right:-20px; }
.ic-carrusel-web-nav svg{ width:20px; height:20px; }
@media (max-width:1100px){ .ic-carrusel-web-wrap{ --slide-w:32%; } }
@media (max-width:900px){ .ic-carrusel-web-wrap{ --slide-w:72%; } }
@media (max-width:560px){ .ic-carrusel-web-wrap{ --slide-w:84%; } .ic-carrusel-web-nav{ display:none; } .ic-carrusel-web-precio{ font-size:19px; } }

/* ===================== Explora por categoría ===================== */
.home-eyebrow{ margin:0; text-align:center; font-weight:500; font-size:clamp(20px,2.2vw,28px); color:#8A8696; line-height:1.2; }
.home-eyebrow + .home-titulo{ margin-top:2px; }
.ic-cat-section{ background:transparent; padding:24px 64px; font-family:'Montserrat',sans-serif; }
.ic-cat-grid{ max-width:1400px; margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); grid-template-rows:repeat(3,210px); gap:4px; }
.ic-cat-card{ position:relative; overflow:hidden; cursor:pointer; display:block; text-decoration:none; background:linear-gradient(135deg,#A3529E,#4D004D); }
.ic-cat-card img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 1.1s cubic-bezier(.16,1,.3,1); }
.ic-cat-card:hover img{ transform:scale(1.06); }
.ic-cat-scrim{ position:absolute; inset:0; background:linear-gradient(0deg,rgba(20,18,15,.75) 0%,transparent 55%); pointer-events:none; }
.ic-cat-label{ position:absolute; left:20px; right:20px; bottom:20px; pointer-events:none; }
.ic-cat-rule{ display:block; width:20px; height:1.5px; background:#c9a24b; margin-bottom:9px; transition:width .5s ease; }
.ic-cat-card:hover .ic-cat-rule{ width:44px; }
.ic-cat-title{ font-family:'Montserrat',sans-serif; font-weight:600; color:#fff; line-height:1.15; }
.ic-cat-row{ display:flex; align-items:center; justify-content:space-between; }
.ic-cat-arrow{ opacity:0; color:#fff; font-size:18px; transition:transform .35s ease, opacity .35s ease; }
.ic-cat-card:hover .ic-cat-arrow{ opacity:1; transform:translateX(4px); }

/* Posición de cada categoría en el mosaico (escritorio) */
.ic-cat-casas{ grid-column:1 / 3; grid-row:1 / 3; }
.ic-cat-departamentos{ grid-column:3 / 5; grid-row:1 / 2; }
.ic-cat-oficinas{ grid-column:3 / 4; grid-row:2 / 3; }
.ic-cat-locales{ grid-column:4 / 5; grid-row:2 / 3; }
.ic-cat-terrenos{ grid-column:1 / 2; grid-row:3 / 4; }
.ic-cat-industrial{ grid-column:2 / 3; grid-row:3 / 4; }
.ic-cat-campestres{ grid-column:3 / 5; grid-row:3 / 4; }
.ic-cat-casas .ic-cat-title{ font-size:32px; }
.ic-cat-departamentos .ic-cat-title, .ic-cat-campestres .ic-cat-title{ font-size:26px; }
.ic-cat-oficinas .ic-cat-title, .ic-cat-terrenos .ic-cat-title, .ic-cat-industrial .ic-cat-title{ font-size:22px; }
.ic-cat-locales .ic-cat-title{ font-size:20px; }

/* Tableta y celular: el mosaico pasa a 2 columnas */
@media (max-width:900px){
  .ic-cat-section{ padding:16px 20px; }
  .ic-cat-grid{ grid-template-columns:1fr 1fr; grid-template-rows:none; grid-auto-rows:auto; }
  .ic-cat-card{ grid-column:auto !important; grid-row:auto !important; height:170px; }
  .ic-cat-casas, .ic-cat-campestres{ grid-column:1 / -1 !important; height:210px; }
  .ic-cat-casas .ic-cat-title{ font-size:28px; }
  .ic-cat-departamentos .ic-cat-title, .ic-cat-campestres .ic-cat-title{ font-size:22px; }
  .ic-cat-oficinas .ic-cat-title, .ic-cat-terrenos .ic-cat-title, .ic-cat-industrial .ic-cat-title{ font-size:19px; }
  .ic-cat-locales .ic-cat-title{ font-size:18px; }
  .ic-cat-label{ left:14px; right:14px; bottom:14px; }
}
@media (max-width:560px){
  .ic-cat-section{ padding:12px 12px; }
  .ic-cat-card{ height:140px; }
  .ic-cat-casas, .ic-cat-campestres{ height:170px; }
}

/* Tamaños reales de las tarjetas de la portada. */
body.home .ic-carrusel-web-track{gap:18px!important}
body.home .ic-carrusel-web-slide{flex:0 0 300px!important;width:300px!important;min-width:0!important;max-width:300px!important}
body.home .ic-carrusel-web-foto{height:190px!important;min-height:0!important;max-height:190px!important;aspect-ratio:auto!important}
body.home .ic-carrusel-web-info{padding:14px!important}
body.home .ic-carrusel-web-precio{font-size:19px!important;white-space:normal;overflow-wrap:anywhere;margin-bottom:10px}
body.home .ic-carrusel-web-specs{gap:8px 12px;padding-top:10px}
body.home .ic-carrusel-web-spec{flex-wrap:wrap;line-height:1.5}
@media(max-width:560px){body.home .ic-carrusel-web-slide{flex-basis:min(280px,85vw)!important;width:min(280px,85vw)!important;max-width:min(280px,85vw)!important}body.home .ic-carrusel-web-foto{height:170px!important;max-height:170px!important}}
