/* Edicons Group — sistema visual "mixta"
   Base azul Edicons (#0E1034, fondo del logo) + secciones blancas (.lt) + un solo acento dorado.
   Lenguaje de lámina de arquitectura: ángulos rectos, hairlines, datos en mono, cotas. */
:root{
  --ground:#0e1034; --ground-deep:#080a24; --surface:#161940; --ink:#f2f2f0; --ink-muted:#a7a9c4; --line:#2c3063;
  --gold:#e5b447; --gold-light:#fede74; --gold-deep:#a06a24; --on-gold:#0e1034;
  --display:"Archivo","Helvetica Neue",Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  --ease:cubic-bezier(.2,.7,.1,1);
  --header-h:72px;
  color-scheme:dark;
}
/* secciones blancas: mismo sistema, tokens en claro */
.lt{--ground:#ffffff;--ground-deep:#f6f6f3;--surface:#f1f1ee;--ink:#0e1034;--ink-muted:#5d5f78;--line:#e4e5eb;--gold:#8a5d1a;--gold-light:#e5b447;--gold-deep:#6f4a12;--on-gold:#ffffff;background:var(--ground);color:var(--ink);color-scheme:light}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:var(--header-h)}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--display);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:#0e1034}
img{max-width:100%}
a{color:inherit}
h1,h2,h3,h4{margin:0;font-weight:300;text-wrap:balance}
p{margin:0}
.gut{padding-left:max(24px,env(safe-area-inset-left,0px));padding-right:max(24px,env(safe-area-inset-right,0px))}
.wrap{max-width:1280px;margin:0 auto}
.x{font-stretch:125%}
.mono{font-family:var(--mono)}
.ann{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted)}
.wide{font-size:12px;font-weight:500;letter-spacing:.38em;text-transform:uppercase;color:var(--gold)}
.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:16px;z-index:99;background:var(--gold);color:var(--on-gold);padding:8px 12px}

/* ---------- header ---------- */
header.site{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:#0e1034;border-bottom:1px solid #2c3063;color:#f2f2f0}
header.site .nav{display:flex;align-items:center;gap:32px;height:var(--header-h);transition:height .3s var(--ease)}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;flex:none}
.brand .iso{height:46px;width:auto;transition:height .3s var(--ease)}
header.site.compact .iso{height:34px}
.brand .wm{height:19px;transition:opacity .3s}
header.site.compact .wm{opacity:0}
nav.menu{display:flex;gap:24px;margin-left:auto}
nav.menu a{font-size:12px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;padding-top:8px;border-top:1px solid transparent;white-space:nowrap;transition:color .24s,border-color .24s}
nav.menu a:hover,nav.menu a.on{color:#e5b447;border-color:#e5b447}
.menu-btn{display:none;margin-left:auto;background:none;border:1px solid #2c3063;color:#f2f2f0;font:500 11px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;padding:10px 12px;cursor:pointer}
.mobile-menu{display:none}
@media (max-width:1100px){
  nav.menu{display:none}.menu-btn{display:block}
  .mobile-menu.open{display:grid;position:fixed;inset:calc(var(--header-h) + env(safe-area-inset-top,0px)) 0 0;background:#0e1034;z-index:49;align-content:start;gap:4px;padding:32px max(24px,env(safe-area-inset-left,0px)) 48px;overflow:auto}
  .mobile-menu a{font-size:32px;font-weight:300;font-stretch:125%;text-decoration:none;padding:10px 0;border-bottom:1px solid #2c3063;color:#f2f2f0}
  .mobile-menu .ann{margin-top:24px}
}
@media (max-width:820px){.brand .wm{display:none}}

/* ---------- secciones ---------- */
section.band{padding-block:128px}
.label-row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:64px;flex-wrap:wrap}
.split{display:grid;grid-template-columns:7fr 5fr;gap:32px;align-items:end;margin-bottom:56px}
.split h2{font-size:clamp(32px,4.4vw,60px);line-height:.98;letter-spacing:-.01em}
.split p{color:var(--ink-muted)}
.lead{font-size:18px;color:var(--ink-muted);max-width:60ch}
@media (max-width:820px){section.band{padding-block:96px}.split{grid-template-columns:1fr}}

/* botones */
.btn{display:inline-block;background:var(--gold);color:var(--on-gold);border:0;border-radius:0;padding:18px 30px;font:500 13px/1 var(--display);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background .24s}
.btn:hover{background:var(--gold-deep);color:#fff}
.btn.navy{background:#0e1034;color:#fff}.btn.navy:hover{background:var(--gold)}
.btn.ghost{background:none;color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink-muted)}.btn.ghost:hover{box-shadow:inset 0 0 0 1px var(--gold);color:var(--gold)}
.go{font-size:13px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;position:relative;padding-bottom:4px;justify-self:start;text-decoration:none;display:inline-block}
.go::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:24px;background:var(--gold);transition:width .24s var(--ease)}
.go:hover::after,.obra:hover .go::after{width:100%}
:focus-visible{outline:1px solid var(--gold);outline-offset:3px}

/* estados (convención de plano) */
.mk{display:inline-block;width:10px;height:10px;flex:none;border:1.2px solid var(--gold);vertical-align:-1px}
.mk.terminado{background:var(--gold)}
.mk.construccion{background:repeating-linear-gradient(45deg,var(--gold) 0 1px,transparent 1px 3px)}
.mk.pozo{background:none}
.legend{display:flex;flex-wrap:wrap;gap:24px;margin-top:48px;padding-top:16px;border-top:1px solid var(--line)}
.legend span{display:inline-flex;align-items:center;gap:8px}

/* tarjeta de obra */
.obra{display:grid;gap:14px;align-content:start;min-width:0;text-decoration:none;color:var(--ink)}
.ph{position:relative;overflow:hidden;background:var(--surface);aspect-ratio:4/3;clip-path:inset(0 0 0 0);transition:clip-path 1.1s var(--ease)}
.pre .ph,.ph.pre{clip-path:inset(100% 0 0 0)}
.ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s var(--ease)}
.obra:hover .ph img{transform:scale(1.03)}
.ph svg{position:absolute;inset:0;width:100%;height:100%}
.ph .tag{position:absolute;left:12px;bottom:10px}
.ph .badge{position:absolute;right:0;top:0;background:var(--gold);color:var(--on-gold);font:500 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:7px 10px}
.obra h3{font-size:22px;font-weight:500}
dl.ficha{margin:0;border-top:1px solid var(--line);font-family:var(--mono);font-size:13px;text-transform:uppercase}
dl.ficha div{display:grid;grid-template-columns:110px 1fr;gap:8px;padding:8px 0;border-bottom:1px solid var(--line)}
dl.ficha dt{color:var(--ink-muted)}dl.ficha dd{margin:0;display:flex;align-items:center;gap:8px;min-width:0}

/* grilla de obras con filtros */
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:40px}
.filters button{background:none;border:1px solid var(--line);color:var(--ink);font:500 11px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;padding:10px 14px;cursor:pointer;display:inline-flex;gap:8px;align-items:center}
.filters button[aria-pressed="true"]{border-color:var(--ink);background:var(--ink);color:var(--ground)}
.filters button[aria-pressed="true"] .mk{border-color:var(--ground)}
.filters .count{opacity:.6}
.obras-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:56px 32px}
.obras-grid .obra{grid-column:span 4}
.obras-grid .obra.w8{grid-column:span 8}.obras-grid .obra.w6{grid-column:span 6}
.obras-grid .obra.w8 .ph{aspect-ratio:16/10}
.obras-grid .obra.sm{grid-column:span 3}.obras-grid .obra.sm h3{font-size:18px}
.obras-grid .obra.sm .ph{aspect-ratio:1/1}
@media (max-width:1000px){.obras-grid .obra,.obras-grid .obra.sm{grid-column:span 6}.obras-grid .obra.w8{grid-column:1/-1}}
@media (max-width:640px){.obras-grid .obra,.obras-grid .obra.sm,.obras-grid .obra.w6{grid-column:1/-1}}
.more{margin-top:48px;display:flex;justify-content:center}

/* indicadores con cota */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:64px}
.stat{display:grid;gap:12px;min-width:0}
.stat .n{font-size:clamp(56px,6.4vw,96px);font-weight:200;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.stat .n em{font-style:normal;color:var(--gold)}
.cota{position:relative;height:9px;width:var(--w);transition:width 1.1s var(--ease)}
.cota::before{content:"";position:absolute;left:0;right:0;top:4px;height:1px;background:var(--gold)}
.cota::after{content:"";position:absolute;inset:0;border-left:1px solid var(--gold);border-right:1px solid var(--gold)}
.pre .cota{width:12px}
@media (max-width:820px){.stats{grid-template-columns:1fr;gap:48px}}

/* listas tipo plano */
.checks{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.checks li{display:flex;gap:16px;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--line)}
.checks li::before{content:"";width:10px;height:10px;background:var(--gold);flex:none;transform:translateY(1px)}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.step{display:grid;gap:12px;border-top:1px solid var(--gold);padding-top:16px;align-content:start}
.step h3{font-size:22px;font-weight:400}
.step p{color:var(--ink-muted)}
.params{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
@media (max-width:820px){.steps,.params{grid-template-columns:1fr}}

/* equipo */
.team{display:grid;grid-template-columns:repeat(4,1fr);gap:32px}
.person{display:grid;gap:10px;align-content:start}
.person .ph{aspect-ratio:500/525;background:var(--surface)}
.person img{filter:grayscale(1);transition:filter .6s}
.person:hover img{filter:none}
.person h3{font-size:20px;font-weight:500}
@media (max-width:900px){.team{grid-template-columns:repeat(2,1fr)}}

/* constructora: scroll horizontal */
.hz{position:relative;height:320vh;background:var(--ground)}
.hz .pin{position:sticky;top:calc(var(--header-h) + env(safe-area-inset-top,0px));height:calc(100vh - var(--header-h));height:calc(100svh - var(--header-h));min-height:520px;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr);align-content:start;padding-top:clamp(24px,6vh,64px)}
.hz .label-row{margin-bottom:clamp(16px,3vh,32px)}
.hz .split{margin-bottom:clamp(16px,4vh,40px)}
.hz .split h2{font-size:clamp(28px,min(4vw,6.5vh),56px)}
.track{min-width:0;display:flex;gap:32px;padding-left:max(24px,calc((100vw - 1280px)/2 + 24px));padding-right:24px;will-change:transform;align-items:flex-start}
.track::before{content:"";flex:0 0 1px}
.hcard{flex:none;width:min(400px,78vw)}
.hcard .ph{aspect-ratio:auto;height:clamp(150px,28vh,300px)}
.hcard dl.ficha div{padding:6px 0}
@media (max-height:720px) and (min-width:821px){.hz .split p{display:none}.hcard dl.ficha div:nth-child(3){display:none}}
.hcard .num{font-family:var(--mono);font-size:11px;color:var(--gold);letter-spacing:.06em}
.hz .end{flex:none;width:min(360px,70vw);align-self:stretch;display:grid;align-content:center;gap:16px;border-left:1px solid var(--line);padding-left:32px}
.hz .end p{font-size:24px;font-weight:300}
@media (max-width:820px){.hz{height:auto}.hz .pin{position:relative;top:0;height:auto;padding-block:96px}.track{overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-left:24px;padding-bottom:16px;padding-left:24px;transform:none!important}.track::before{display:none}.hcard{scroll-snap-align:start}}

/* participaciones: registro */
.register{border-top:1px solid var(--ink)}
.rrow{display:grid;grid-template-columns:64px 2.2fr 1.6fr 1.8fr 80px;gap:16px;align-items:baseline;padding:22px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink);position:relative;transition:padding .3s var(--ease),background .3s}
.rrow span{min-width:0}
.rrow .o{font-size:22px}
.rrow .m{font-family:var(--mono);font-size:13px;text-transform:uppercase}
.rrow .n{font-family:var(--mono);font-size:12px;color:var(--gold)}
.rhead{padding:10px 0;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted)}
a.rrow:hover{padding-left:16px;background:var(--ground-deep)}
.empty{display:grid;grid-template-columns:auto 1fr;gap:24px;align-items:center;padding:40px 0;border-bottom:1px solid var(--line)}
.empty .box{width:72px;height:72px;border:1px dashed var(--ink-muted);display:grid;place-items:center;font-family:var(--mono);font-size:11px;color:var(--ink-muted)}
.empty p{color:var(--ink-muted);max-width:60ch}
@media (max-width:820px){.rrow{grid-template-columns:40px 1fr;row-gap:4px}.rrow span:nth-child(n+3){grid-column:2}.rhead{display:none}}

/* formulario */
.contact{display:grid;grid-template-columns:5fr 6fr;gap:64px}
.contact h2{font-size:clamp(40px,5vw,72px);line-height:.95;font-stretch:125%}
.contact .info{display:grid;gap:24px;align-content:start}
.contact .info .val{font-family:var(--mono);font-size:15px}
.contact .info a{text-decoration:none}.contact .info a:hover{color:var(--gold)}
form.consult{display:grid;gap:28px}
form.consult label{display:grid;gap:6px;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted)}
form.consult input,form.consult select,form.consult textarea{font:inherit;font-family:var(--display);font-size:17px;letter-spacing:0;text-transform:none;color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--ink-muted);border-radius:0;padding:10px 0;outline:none}
form.consult select option{background:#fff;color:#0e1034}
form.consult input:focus,form.consult select:focus,form.consult textarea:focus{border-bottom:2px solid var(--gold);padding-bottom:9px}
form.consult input::placeholder,form.consult textarea::placeholder{color:var(--ink-muted)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.formnote{font-family:var(--mono);font-size:12px;color:var(--ink-muted)}
@media (max-width:820px){.contact{grid-template-columns:1fr}.row2{grid-template-columns:1fr}}

/* footer */
footer.site{background:#080a24;color:#f2f2f0;border-top:1px solid #2c3063;padding-block:64px calc(40px + env(safe-area-inset-bottom,0px))}
footer.site .cols{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:32px}
footer.site h4{font:500 11px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#a7a9c4;margin-bottom:12px}
footer.site p,footer.site a{font-size:14px;color:#f2f2f0;text-decoration:none;line-height:1.8}
footer.site a:hover{color:#e5b447}
footer.site .legal{margin-top:48px;padding-top:16px;border-top:1px solid #2c3063;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
footer.site .legal .ann{color:#a7a9c4}
@media (max-width:820px){footer.site .cols{grid-template-columns:1fr 1fr}}

/* WhatsApp flotante */
.wa{position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:45;background:#e5b447;color:#0e1034;text-decoration:none;font:500 12px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:14px 16px;display:flex;gap:8px;align-items:center}
.wa:hover{background:#fede74}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .ph,.cota,.ph img,.person img{transition:none}
  .hz{height:auto}.hz .pin{position:relative;top:0;height:auto}.track{overflow-x:auto}
}

[hidden]{display:none!important}

/* tarjeta: cover + acciones */
.obra .cover{display:grid;gap:14px;text-decoration:none;color:inherit}
.obra .actions{display:flex;gap:20px;flex-wrap:wrap}
.obra .go.cta{color:var(--gold)}
.ph .badge{z-index:1}
/* visor */
dialog.lb{border:0;padding:0;background:transparent;max-width:min(1200px,94vw);max-height:92vh;color:#f2f2f0}
dialog.lb::backdrop{background:rgba(8,10,36,.92)}
dialog.lb img{display:block;max-width:100%;max-height:82vh;margin:0 auto;object-fit:contain}
dialog.lb p{margin-top:10px;color:#a7a9c4}
dialog.lb .lb-x{position:fixed;top:16px;right:16px;background:#e5b447;color:#0e1034;border:0;font:500 12px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:12px 14px;cursor:pointer}
/* en venta */
.onsale{display:grid;grid-template-columns:auto 1fr auto;gap:24px;align-items:center;border:1px solid var(--gold);padding:20px 24px;margin-bottom:40px}
.onsale .list{font-family:var(--mono);font-size:13px;text-transform:uppercase}
@media (max-width:820px){.onsale{grid-template-columns:1fr}}
/* prensa */
.press{display:grid;grid-template-columns:repeat(12,1fr);gap:40px 32px}
.press figure{margin:0;display:grid;gap:12px;grid-column:span 4;align-content:start}
.press figure.w6{grid-column:span 6}
.press .ph{aspect-ratio:4/3;background:#fff}
.press .ph img{object-fit:cover}
.press figcaption{display:grid;gap:4px}
.press figcaption strong{font-weight:500;font-size:18px}
.partners{display:flex;flex-wrap:wrap;gap:12px 32px;align-items:baseline;margin-top:56px;padding-top:16px;border-top:1px solid var(--line)}
.partners b{font-weight:400;font-size:20px;font-stretch:125%}
@media (max-width:900px){.press figure,.press figure.w6{grid-column:span 6}}
@media (max-width:600px){.press figure,.press figure.w6{grid-column:1/-1}}
.obras-grid .obra.w8 .ph img{object-position:center 30%}

/* oportunidades destacadas */
.opps{display:grid;gap:64px}
.opp{display:grid;grid-template-columns:6fr 5fr;gap:48px;align-items:start}
.opp:nth-child(even) .opp-img{order:2}
.opp-img{position:relative;display:block;overflow:hidden;aspect-ratio:4/5;background:var(--surface)}
.opp-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s var(--ease)}
.opp-img:hover img{transform:scale(1.03)}
.opp-img .badge{position:absolute;left:0;top:0;background:var(--gold);color:var(--on-gold);font:500 12px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:10px 12px}
.opp-body{display:grid;gap:18px;align-content:start;min-width:0}
.opp-body h2{font-size:clamp(40px,5vw,72px);line-height:.95;letter-spacing:-.01em}
.opp-lead{font-size:20px;line-height:1.35;color:var(--ink-muted);max-width:40ch}
.opp-price{display:flex;align-items:baseline;gap:16px;border-top:1px solid var(--ink);padding-top:16px}
.opp-price b{font-size:clamp(36px,4vw,56px);font-weight:300;font-stretch:125%;color:var(--gold)}
.opp-cta{display:flex;flex-wrap:wrap;gap:20px;align-items:center}
.opp-thumbs{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.opp-thumbs img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
@media (max-width:900px){.opp{grid-template-columns:1fr;gap:24px}.opp:nth-child(even) .opp-img{order:0}.opp-img{aspect-ratio:4/3}}
/* pop-up */
dialog.promo{border:0;padding:0;max-width:min(920px,94vw);width:100%;background:#0e1034;color:#f2f2f0;display:none;grid-template-columns:1fr 1fr;box-shadow:0 0 0 1px #2c3063}
dialog.promo[open]{display:grid}
dialog.promo::backdrop{background:rgba(8,10,36,.8)}
.promo-img{position:relative;min-height:100%}
.promo-img img:first-child{width:100%;height:100%;object-fit:cover;display:block}
.promo-logo{position:absolute;left:20px;bottom:20px;width:46%;filter:drop-shadow(0 2px 8px rgba(0,0,0,.4))}
.promo-body{padding:36px 32px;display:grid;gap:16px;align-content:center;--gold:#e5b447;--ink:#f2f2f0;--ink-muted:#a7a9c4;--line:#2c3063;--on-gold:#0e1034}
.promo-body h2{font-size:clamp(30px,3.4vw,44px);line-height:1;color:#f2f2f0}
.promo-body p{color:#a7a9c4}
.promo-body .checks li{font-size:15px}
.promo-cta{display:flex;flex-wrap:wrap;gap:18px;align-items:center;margin-top:6px}
.promo-x{position:absolute;top:10px;right:12px;z-index:2;background:#0e1034;color:#f2f2f0;border:1px solid #2c3063;width:36px;height:36px;font-size:20px;cursor:pointer}
.promo-chip{position:fixed;left:max(16px,env(safe-area-inset-left,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:45;background:#0e1034;color:#e5b447;border:1px solid #e5b447;font:500 12px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:13px 14px;cursor:pointer}
.promo-chip:hover{background:#e5b447;color:#0e1034}
@media (max-width:700px){dialog.promo[open]{grid-template-columns:1fr;max-height:92vh;overflow:auto}.promo-img{height:200px}.promo-body{padding:24px 20px}}
dialog.promo[open]{max-height:94vh;overflow:auto}
@media (max-height:700px) and (min-width:701px){.promo-body{padding:24px 28px;gap:12px}.promo-body .checks li{padding-block:8px}}
