.pv{--marron:#3e2b1a;--terra:#d16724;--verde:#3b8d47;--verde-o:#0d4a3d;--gris:#676766;--blanco:#fff;--cemento:#f3f3f1;
--forma:44px 0 88px 0;--forma-s:22px 4px 32px 4px;
font-family:'Montserrat','Lato','Open Sans',system-ui,sans-serif;color:var(--gris);font-size:16px;line-height:1.65;
background-color:var(--cemento);background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='300'%20height='300'%3E%3Cfilter%20id='n'%3E%3CfeTurbulence%20type='fractalNoise'%20baseFrequency='.8'%20numOctaves='2'%20stitchTiles='stitch'/%3E%3CfeColorMatrix%20values='0%200%200%200%20.4%200%200%200%200%20.4%200%200%200%200%20.4%200%200%200%20.10%200'/%3E%3C/filter%3E%3Crect%20width='100%25'%20height='100%25'%20filter='url(%23n)'/%3E%3C/svg%3E");position:relative;overflow:hidden}
.pv *{box-sizing:border-box}
.pv img{max-width:100%;display:block}
.pv a{color:inherit;text-decoration:none}
.pv h1,.pv h2,.pv h3{font-family:'Montserrat',sans-serif!important;color:var(--verde-o)!important;margin:0!important;line-height:1.12!important;padding:0!important}
.pv-cierre h2{color:#fff!important}
.pv p{font-family:inherit}
.pv-top{position:relative}
.pv .wrap{max-width:1160px;margin:0 auto;padding:0 24px;position:relative}
.pv a:focus-visible{outline:3px solid var(--terra);outline-offset:3px}
/* hojas decorativas (manual de marca) */
.pv .hojas{position:absolute;top:0;left:0;width:240px;height:auto;pointer-events:none;z-index:0}
/* botones: terracota = llamado a la acción */
.pv .btn{display:inline-block;padding:14px 30px;border-radius:999px;font-weight:700;font-size:1.05rem;border:2px solid transparent;transition:transform .15s,background .15s}
.pv .btn:hover{transform:translateY(-2px)}
.pv .btn-t{background:var(--terra);color:#fff}
.pv .btn-t:hover{background:#b9561a}
.pv .btn-l{border-color:var(--verde-o);color:var(--verde-o)}
/* header sobre blanco */
.pv-top{background:#fff;border-bottom:1px solid #dcdcd9;position:relative;z-index:2}
.pv-top .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:10px;padding-bottom:10px}
.pv-top .logo{height:64px;width:auto}
.pv-top nav{display:flex;gap:26px;font-weight:600;font-size:.95rem;color:var(--verde-o)}
.pv-top nav a:hover{color:var(--verde)}
.pv-top .btn{padding:10px 22px;font-size:.95rem}
/* hero */
.pv-hero{position:relative}
.pv-hero .wrap{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:center;padding-top:88px;padding-bottom:88px}
.pv-hero h1{font-size:clamp(2.2rem,4.6vw,3.7rem);font-weight:800;letter-spacing:-.015em}
.pv-hero p{margin:20px 0 24px;max-width:32em;font-size:1.05rem}
.pv-hero .precio{font-weight:800;font-size:clamp(1.9rem,3.4vw,2.6rem);color:var(--terra);line-height:1.1;margin-bottom:28px}
.pv-hero .precio small{display:block;font-size:.9rem;font-weight:600;color:var(--gris)}
.pv-hero .acciones{display:flex;gap:14px;flex-wrap:wrap}
.pv-hero .foto{border-radius:var(--forma);overflow:hidden;aspect-ratio:4/5;border:3px solid var(--verde);animation:pvIn .8s ease both}
.pv-hero .foto img{width:100%;height:100%;object-fit:cover}
.pv-hero .txt{animation:pvIn .8s ease both}
@keyframes pvIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
/* secciones */
.pv-sec{padding:84px 0;position:relative}
.pv-sec h2,.pv-cierre h2{text-align:center;text-transform:uppercase;font-size:clamp(1.5rem,3vw,2.2rem);font-weight:900;letter-spacing:.01em;max-width:22em;margin:0 auto}
.pv-sec .intro{text-align:center;margin:14px auto 44px;max-width:38em;letter-spacing:.03em}
/* tarjetas de proyecto */
.pv-proy{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.pv-card{background:#fff;border:2px solid var(--verde);border-radius:var(--forma);overflow:hidden;display:flex;flex-direction:column}
.pv-card .img{aspect-ratio:16/9;overflow:hidden}
.pv-card .img img{width:100%;height:100%;object-fit:cover}
.pv-card .cuerpo{padding:26px 30px 32px;display:flex;flex-direction:column;gap:10px;flex:1}
.pv-card .tag{align-self:flex-start;background:var(--verde-o);color:#fff;font-weight:700;font-size:.85rem;padding:4px 14px;border-radius:999px}
.pv-card .tag.v{background:var(--verde)}
.pv-card h3{font-size:1.7rem;font-weight:800}
.pv-card .dato{margin:0}
.pv-card .dato b{color:var(--terra);font-size:1.35rem;font-weight:800}
.pv-card .links{margin-top:auto;padding-top:14px;display:flex;gap:12px;flex-wrap:wrap}
.pv-card .btn{padding:10px 22px;font-size:.95rem}
/* cifras: gris para divisiones */
.pv-cifras{padding:54px 0;border-top:1px solid #cfcfcc;border-bottom:1px solid #cfcfcc;background:rgba(255,255,255,.6)}
.pv-cifras .wrap{display:grid;grid-template-columns:repeat(3,1fr);text-align:center}
.pv-cifras .wrap>div+div{border-left:1px solid #cfcfcc}
.pv-cifras strong{display:block;font-size:clamp(2.4rem,5vw,3.6rem);color:var(--verde-o);font-weight:900;line-height:1}
.pv-cifras span{display:block;margin-top:8px;font-weight:600}
/* valores con iconos contorneados */
.pv-val{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;text-align:center}
.pv-val .ico{width:88px;height:88px;margin:0 auto 16px;background:#fff;border:2px solid var(--verde);border-radius:var(--forma-s);display:grid;place-items:center}
.pv-val svg{width:46px;height:46px;fill:none;stroke:var(--verde);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.pv-val h3{font-size:1.1rem;font-weight:800;margin-bottom:6px}
.pv-val p{margin:0;font-size:.95rem}
/* trayectoria */
.pv-hist{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}
.pv-hist figure{margin:0}
.pv-hist img{border-radius:24px 0 40px 0;aspect-ratio:1;object-fit:cover;width:100%;border:2px solid var(--verde)}
.pv-hist figcaption{margin-top:10px;font-weight:700;font-size:.9rem;text-align:center;color:var(--verde-o)}
/* cierre */
.pv-cierre{background:var(--verde-o);color:#e3efe9;text-align:center;padding:88px 0;position:relative;overflow:hidden}
.pv-cierre h2{color:#fff}
.pv-cierre p{margin:18px auto 30px;max-width:34em}
.pv-cierre .tel{margin-top:22px;font-weight:600}
/* pie en marrón */
.pv-pie{background:var(--marron);color:#e8dfd6;padding:44px 0;font-size:.92rem}
.pv-pie .wrap{display:flex;justify-content:space-between;gap:28px;flex-wrap:wrap;align-items:center}
.pv-pie .logo{height:64px;width:auto}
.pv-pie nav{display:flex;gap:22px;flex-wrap:wrap;font-weight:600}
.pv-pie a:hover{color:#fff}
.pv-pie p{margin:6px 0 0}
.pv-menu{display:none}
.pv-menu summary{list-style:none;cursor:pointer;width:46px;height:46px;border:2px solid var(--verde-o);border-radius:14px 2px 20px 2px;display:grid;place-items:center}
.pv-menu summary::-webkit-details-marker{display:none}
.pv-menu summary span,.pv-menu summary span::before,.pv-menu summary span::after{content:"";display:block;width:20px;height:2px;background:var(--verde-o);position:relative}
.pv-menu summary span::before{position:absolute;top:-6px}.pv-menu summary span::after{position:absolute;top:6px}
.pv-menu>div{position:absolute;right:16px;top:78px;background:#fff;border:2px solid var(--verde);border-radius:22px 0 32px 0;padding:10px;min-width:230px;box-shadow:0 12px 30px rgba(0,0,0,.14);z-index:10}
.pv-menu a{display:block;padding:12px 16px;font-weight:600;color:var(--verde-o);border-radius:12px}
.pv-menu a:hover{background:var(--cemento)}
@media(max-width:860px){
.pv{font-size:15.5px;--forma:30px 0 56px 0}
.pv-top nav{display:none}
.pv-menu{display:block}
.pv-top .wrap{padding-left:16px;padding-right:16px}
.pv-top .logo{height:57px}
.pv-top .btn{padding:9px 16px;font-size:.85rem}
.pv-hero .wrap,.pv-proy{grid-template-columns:1fr}
.pv-hero .wrap{padding-top:52px;padding-bottom:48px;gap:32px}
.pv-hero h1{font-size:2rem}
.pv-hero .acciones .btn{flex:1 1 100%;text-align:center}
.pv-hero .foto{aspect-ratio:4/3}
.pv-sec{padding:56px 0}
.pv-sec .intro{margin-bottom:32px}
.pv-sec h2,.pv-cierre h2{font-size:1.35rem}
.pv-card .cuerpo{padding:22px 22px 26px}
.pv-card h3{font-size:1.45rem}
.pv-card .links .btn{flex:1 1 100%;text-align:center}
.pv-cifras{padding:40px 0}
.pv-cifras .wrap{grid-template-columns:1fr;gap:26px}
.pv-cifras .wrap>div+div{border-left:0;border-top:1px solid #cfcfcc;padding-top:26px}
.pv-val{grid-template-columns:1fr 1fr;gap:26px 16px}
.pv-val .ico{width:72px;height:72px}
.pv-val svg{width:38px;height:38px}
.pv-val h3{font-size:1rem}
.pv-val p{font-size:.88rem}
.pv-hist{grid-template-columns:repeat(2,1fr);gap:18px 14px}
.pv-hist figcaption{font-size:.85rem}
.pv-cierre{padding:64px 0}
.pv-cierre .btn{display:block;max-width:340px;margin:0 auto}
.pv-pie .wrap{flex-direction:column;text-align:center}
.pv-pie nav{justify-content:center}
.pv .hojas{width:130px}
}
@media(prefers-reduced-motion:reduce){.pv-hero .txt,.pv-hero .foto{animation:none}.pv .btn{transition:none}}
Construimos espacios que impulsan vidas
Casas nuevas en Terranova, Jamundí. Un proyecto diseñado para ti, construido por una promotora del Valle del Cauca con hogares ya entregados.
Casas desde$128.700.000
Dos formas de estrenar casa en Topacio IV
Elige la casa que crece contigo o las últimas casas listas para habitar.
Nuevo lanzamiento
Topacio Crece IV B
Casa Crece · Entrega 2026
Bono de descuento: $ XX COP
Últimas casas
Topacio IV A
Casas listas para estrenar en Terranova, Jamundí
Desde $128.700.000
XXCasas entregadas en Topacio IV
XXCasas construidas en el Valle del Cauca
XXAños de experiencia
Así construimos
Un enfoque humano, con eficiencia constructiva y accesibilidad.
Empatía
Diseñamos pensando en cómo vive tu familia.
Confianza
Proyectos entregados y familias viviendo en ellos.
Calidad humana
Te acompañamos desde la primera visita hasta la entrega.
Crecimiento
Casa Crece: una base que puede ampliarse contigo.
Un proyecto diseñado para ti
Escríbenos y un asesor te cuenta qué casa se ajusta a tu familia: precios, bono de descuento y forma de pago.
Escribir por WhatsApp
Sala de ventas: 312 839 99 66
/* Contadores: anima solo los que tengan data-n con número */
(function(){
var els=document.querySelectorAll('.pv-cifras strong[data-n]');
var reduce=window.matchMedia('(prefers-reduced-motion: reduce)').matches;
function run(el){
var n=parseInt(el.getAttribute('data-n'),10);
if(isNaN(n))return;
var pre=el.getAttribute('data-pre')||'';
if(reduce){el.textContent=pre+n;return}
var t0=null;
function step(t){
if(!t0)t0=t;
var p=Math.min((t-t0)/1200,1);
el.textContent=pre+Math.round(n*p);
if(p<1)requestAnimationFrame(step);
}
requestAnimationFrame(step);
}
if(!('IntersectionObserver' in window)){els.forEach(run);return}
var io=new IntersectionObserver(function(es){
es.forEach(function(e){if(e.isIntersecting){run(e.target);io.unobserve(e.target)}});
},{threshold:.4});
els.forEach(function(el){io.observe(el)});
})();