:root{--dark:#232323;--lime:#C5D82D;--gray:#8C8C8C;--text:#5E5E5E;--line:#E3E3E3;--soft:#F2F2F2;--ease:cubic-bezier(.22,.61,.36,1)}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:Heebo,Arial,sans-serif;color:var(--dark);background:#fff;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
img{display:block;max-width:100%}
.wrap{width:min(1170px,100% - 64px);margin:0 auto}
.arrow{display:inline-block;width:22px;height:10px;margin-left:12px;vertical-align:middle;transition:transform .3s var(--ease)}
.eyebrow{font-style:italic;font-weight:300;font-size:18px;color:var(--gray);margin-bottom:18px}
h2{font-size:46px;line-height:1.12;font-weight:500;letter-spacing:-.5px}
.sl{color:var(--lime);font-weight:300;margin-right:2px}
.sl::before,.stats h2 span::before{content:"\\"}
h2 .lt{font-weight:300;color:var(--gray)}
.lead{font-size:18px;line-height:1.7;color:var(--text);font-weight:300}
.lead em{color:#9DAF1F;font-weight:400}
.label{margin-top:90px;font-size:13px;font-weight:700;letter-spacing:2.4px;text-transform:uppercase}
.label::before{content:"\\ ";color:var(--lime)}

/* HEADER */
.header{position:fixed;inset:0 0 auto;z-index:50;transition:background .4s var(--ease),box-shadow .4s var(--ease)}
.header-in{height:112px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.18);transition:height .4s var(--ease),border-color .4s}
.logo{position:relative;display:block;height:52px;transition:height .4s var(--ease)}
.logo img{height:100%;width:auto}
.logo .logo-d{position:absolute;inset:0;opacity:0;transition:opacity .4s}
.logo .logo-w{transition:opacity .4s}
.nav{display:flex;align-items:center;gap:40px;font-size:15px;color:#fff;transition:color .4s}
.nav > a{position:relative}
.nav > a::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:var(--lime);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.nav > a:hover::after{transform:scaleX(1)}
.sep{width:1px;height:34px;background:currentColor;opacity:.3}
.lang{display:flex;align-items:center;gap:8px;font-size:14px;letter-spacing:.6px}
.lang i{font-style:normal;opacity:.45}
.lang a{opacity:.6;transition:opacity .3s}
.lang a:hover{opacity:1}
.lang .on{font-weight:700;border-bottom:2px solid var(--lime);padding-bottom:2px}
.menu-btn{display:flex;flex-direction:column;align-items:center;gap:5px;font-size:12px}
.bars i{display:block;width:24px;height:2px;background:currentColor;margin:3px 0}
.header.is-solid{background:#fff;box-shadow:0 1px 0 var(--line)}
.header.is-solid .header-in{height:84px;border-color:transparent}
.header.is-solid .logo-w{opacity:0}
.header.is-solid .logo-d{opacity:1}
.header.is-solid .nav{color:var(--dark)}
.menu{position:fixed;inset:84px 0 auto;z-index:49;background:#fff;box-shadow:0 12px 30px rgba(0,0,0,.08);padding:24px 0 32px}
.menu .wrap{display:flex;flex-direction:column;gap:6px}
.menu a{font-size:24px;padding:10px 0;border-bottom:1px solid var(--line)}
.menu a:hover{color:#9DAF1F}
.menu-lang{display:flex;align-items:center;gap:22px;padding-top:18px;font-size:18px}
.menu-lang .ml-label{font-size:12px;letter-spacing:1.8px;text-transform:uppercase;color:var(--gray)}
.menu-lang a{font-size:18px;padding:0;border:0;color:var(--gray)}
.menu-lang .on{font-weight:500;border-bottom:2px solid var(--lime);padding-bottom:2px}

/* HERO */
.hero{position:relative;height:100vh;min-height:760px;max-height:1000px;color:#fff;overflow:hidden;background:#111}
.slides,.slide{position:absolute;inset:0}
.slide{background-size:cover;background-position:center;opacity:0;transform:scale(1.08);transition:opacity 1.6s var(--ease),transform 8s linear}
.slide.is-active{opacity:1;transform:scale(1)}
.hero::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(18,18,18,.86) 0%,rgba(18,18,18,.62) 45%,rgba(18,18,18,.15) 80%,rgba(18,18,18,0) 100%)}
.hero-body{position:relative;z-index:2;padding-top:max(232px,26vh)}
.hero .eyebrow{font-style:normal;color:rgba(255,255,255,.7);font-size:19px;margin-bottom:26px}
.hero h1{font-size:58px;line-height:1.1;font-weight:400;letter-spacing:-.8px}
.hero h1 b{font-weight:500}
.hero-p{margin-top:30px;font-size:18px;line-height:1.7;font-weight:300;color:rgba(255,255,255,.85);max-width:640px}
.in-hero{opacity:0;transform:translateY(28px);animation:up 1s var(--ease) forwards}
h1.in-hero{animation-delay:.2s}
.hero-p.in-hero{animation-delay:.45s}
@keyframes up{to{opacity:1;transform:none}}
.dots-wrap{position:absolute;left:0;right:0;bottom:40px;z-index:2}
.dots{display:flex;gap:8px}
.dot{width:40px;height:14px;display:flex;align-items:center}
.dot span{position:relative;display:block;width:100%;height:3px;background:rgba(255,255,255,.35);overflow:hidden}
.dot span::after{content:"";position:absolute;inset:0;background:var(--lime);transform:scaleX(0);transform-origin:left}
.dot.is-active span::after{animation:fill var(--slide-ms,6500ms) linear forwards}
@keyframes fill{to{transform:scaleX(1)}}
.scroll{position:absolute;z-index:2;left:50%;bottom:36px;transform:translateX(-50%);font-size:12px;letter-spacing:2px;color:rgba(255,255,255,.8);text-align:center}
.scroll svg{display:block;margin:8px auto 0;animation:bob 2s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(5px)}}

/* STATS */
.stats{background:var(--soft);padding:96px 0 104px}
.stats h2{text-align:center;font-size:20px;line-height:normal;letter-spacing:normal;font-weight:400;color:var(--text);margin-bottom:56px}
.stats h2 span{color:var(--lime)}
.stat-row{display:flex;justify-content:space-between}
.stat{flex:1;text-align:center}
.stat .n{font-size:130px;line-height:1;font-weight:400;letter-spacing:-3px;font-variant-numeric:tabular-nums}
.stat .n small{font-size:80px;font-weight:300;color:var(--gray);margin-left:6px;vertical-align:14px}
.stat .l{margin-top:14px;font-size:20px;font-weight:500}
.stat .d{width:40px;height:3px;background:var(--lime);margin:22px auto 0;transition:transform .8s var(--ease) .9s}
.js .stat .d{transform:scaleX(0)}
.js .stat.is-in .d{transform:scaleX(1)}

/* SECTIONS */
.sec{padding-top:130px}
.sec-team{padding-top:150px}
.head2{display:flex;justify-content:space-between;align-items:flex-start;gap:60px}
.head2 .l{flex:0 1 560px}
.head2 .r{flex:0 1 520px;padding-top:44px}

/* STRIP (se arma) */
.strip{display:flex;align-items:center;margin-top:110px;height:540px}
.card{width:25%;height:440px;padding:40px 34px;display:flex;flex-direction:column;color:#fff}
.card .ic{width:40px;height:40px;margin-bottom:34px;flex:none}
.card h3{font-size:19px;line-height:1.35;font-weight:500}
.card p{margin-top:16px;font-size:14.5px;line-height:1.65;color:rgba(255,255,255,.66);font-weight:300}
.c1{background:#111}.c2{background:#2A2A2A}.c4{background:#3A3A3A;justify-content:center}
.cphoto{width:25%;height:540px;background:url(../assets/img/edificio.webp) 62% center/cover;filter:grayscale(1) contrast(1.08)}
.c4 .q{font-size:54px;line-height:.6;color:var(--lime);font-weight:700;height:26px}
.c4 blockquote{font-size:17px;line-height:1.6;font-style:italic;font-weight:300}
.c4 .who{margin-top:22px;font-size:12px;letter-spacing:1.8px;text-transform:uppercase;color:rgba(255,255,255,.55)}
.build > *{transition:clip-path 1s var(--ease)}
.js .build > *{clip-path:inset(100% 0 0 0)}
.build > * > *{transition:opacity .7s var(--ease),transform .7s var(--ease)}
.js .build > * > *{opacity:0;transform:translateY(18px)}
.js .build.is-in > *{clip-path:inset(0 0 0 0)}
.js .build.is-in > * > *{opacity:1;transform:none}
.build > :nth-child(1){transition-delay:0s}
.build > :nth-child(2){transition-delay:.18s}
.build > :nth-child(3){transition-delay:.36s}
.js .build > :nth-child(3){clip-path:inset(0 0 100% 0)}
.build > :nth-child(4){transition-delay:.54s}
.js .build.is-in > :nth-child(3){clip-path:inset(0 0 0 0)}
.build > :nth-child(1) > *{transition-delay:.55s}
.build > :nth-child(2) > *{transition-delay:.75s}
.build > :nth-child(4) > *{transition-delay:1.05s}

/* PERSPECTIVAS */
.persp{display:flex;gap:24px;margin-top:28px}
.pc{position:relative;flex:1;height:380px;background-size:cover;background-position:center;color:#fff;overflow:hidden}
.pc::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 35%,rgba(0,0,0,.78) 100%)}
.pc div{position:absolute;left:28px;right:28px;bottom:28px;z-index:1}
.pc b{display:block;font-size:46px;line-height:1;font-weight:700;color:var(--lime)}
.pc span{display:block;margin-top:10px;font-size:18px;line-height:1.35;font-weight:500}

/* SERVICIOS */
.svc{margin-top:110px;padding-top:70px;border-top:1px solid var(--line)}
.svc h3{font-size:32px;font-weight:500;margin-bottom:36px}
.svc-grid{display:flex;gap:24px}
.box{flex:1;min-height:300px;padding:40px 32px;background:var(--soft)}
.box:nth-child(even){background:#2A2A2A;color:#fff}
.box .bi{width:44px;height:44px;margin-bottom:32px;display:block;fill:none;stroke:var(--lime);stroke-width:2}
.box:nth-child(even) .bi{stroke-width:1.5}
.box .bi .fill{fill:var(--lime);stroke:none}
.box p{font-size:20px;line-height:1.5}

.closing{margin-top:130px;text-align:center}
.closing .bar{width:48px;height:3px;background:var(--lime);margin:0 auto 34px}
.closing p{font-size:48px;line-height:1.18;font-weight:500;letter-spacing:-.6px}
.closing p span{font-weight:300;color:var(--gray)}

/* EQUIPO */
.team{display:flex;gap:24px;margin-top:80px}
.tm{flex:1;min-width:0;display:flex;flex-direction:column}
.flipper{position:relative;display:grid;flex:1 0 auto;perspective:1600px}
.face{grid-area:1/1;position:relative;min-width:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;transition:transform .9s var(--ease)}
.front{overflow:hidden;background:#D9D9D9}
.front::before{content:"";display:block;padding-top:125.67%}
.front img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.tm:hover .front img{transform:scale(1.04)}
.front::after{content:"";position:absolute;left:0;right:0;bottom:0;height:140px;background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.55));pointer-events:none}
.back{transform:rotateY(180deg);background:var(--dark);color:#fff;padding:30px 28px 26px;display:flex;flex-direction:column}
.tm.is-flipped .front{transform:rotateY(-180deg)}
.tm.is-flipped .back{transform:rotateY(0)}
.flip-btn{position:absolute;right:24px;bottom:22px;z-index:1;display:flex;align-items:center;gap:9px;color:#fff;font-size:14px;line-height:16px;font-weight:500;letter-spacing:.3px}
.flip-btn svg{width:16px;height:16px;flex:none;stroke:var(--lime);transform:translateY(-1px);transition:transform .5s var(--ease)}
.flip-btn:hover svg{transform:translateY(-1px) rotate(180deg)}
.back-btn{top:30px;right:26px;bottom:auto;font-size:13px}
.b-name{font-size:19px;font-weight:500;margin-bottom:14px;padding-right:80px}
.b-text{font-size:13.5px;line-height:1.5;font-weight:300;color:rgba(255,255,255,.8)}
.b-pending{color:rgba(255,255,255,.5)}
.b-sub{margin-top:14px;font-size:12px;letter-spacing:1.8px;text-transform:uppercase;color:var(--lime);font-weight:500}
.b-list{list-style:none;margin-top:10px}
.b-list li{font-size:12px;line-height:1.4;color:rgba(255,255,255,.8);font-weight:300;padding:4px 0 4px 16px;border-bottom:1px solid rgba(255,255,255,.1);position:relative}
.b-list li::before{content:"";position:absolute;left:0;top:8px;border-left:6px solid var(--lime);border-top:4px solid transparent;border-bottom:4px solid transparent}
.tm-name{margin-top:26px;font-size:24px;font-weight:500}
.role{margin-top:6px;font-size:15px;color:var(--gray)}

/* CONTACTO */
.contact{margin-top:150px;background:var(--dark);color:#fff;padding-top:120px}
.contact .eyebrow{font-style:normal;color:rgba(255,255,255,.55)}
.contact h2 .lt{color:rgba(255,255,255,.55)}
.tag{margin-top:28px;font-size:17px;font-weight:300;color:rgba(255,255,255,.7)}
.btns{display:flex;align-items:center;flex-wrap:wrap;gap:44px;margin-top:52px}
.btn{display:inline-flex;align-items:center;background:var(--lime);color:var(--dark);font-size:17px;font-weight:500;padding:20px 30px;transition:background .3s}
.btn .arrow{stroke:var(--dark)}
.btn:hover{background:#d4e54a}
.lnk{display:inline-flex;align-items:center;font-size:17px;border-bottom:1px solid rgba(255,255,255,.35);padding-bottom:6px}
.lnk .arrow{stroke:var(--lime)}
.btn:hover .arrow,.lnk:hover .arrow{transform:translateX(5px)}
.foot{margin-top:130px;border-top:1px solid rgba(255,255,255,.14);min-height:120px;display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap;padding:24px 0}
.foot img{height:40px;width:auto}
.info{display:flex;gap:34px;font-size:14px;color:rgba(255,255,255,.7)}
.info a:hover{color:var(--lime)}
.copy{font-size:13px;color:rgba(255,255,255,.45)}

/* REVEAL */
.reveal{transition:opacity .9s var(--ease),transform .9s var(--ease)}
.js .reveal{opacity:0;transform:translateY(34px)}
.js .reveal.is-in{opacity:1;transform:none}
.stat-row .stat:nth-child(2){transition-delay:.12s}
.stat-row .stat:nth-child(3){transition-delay:.24s}
.head2 .r.reveal{transition-delay:.15s}
.seq > *{transition:opacity .9s var(--ease),transform .9s var(--ease)}
.js .seq > *{opacity:0;transform:translateX(-60px)}
.js .team.seq > *{transform:translateY(60px)}
.js .seq.is-in > *{opacity:1;transform:none}
.seq > :nth-child(2){transition-delay:.18s}
.seq > :nth-child(3){transition-delay:.36s}
.seq > :nth-child(4){transition-delay:.54s}

/* RESPONSIVE (base) */
@media (max-width:1100px){
  .nav > a,.sep,.lang{display:none}
  .hero h1{font-size:46px}
  h2,.closing p{font-size:38px}
  .stat .n{font-size:96px}.stat .n small{font-size:60px}
  .strip{flex-wrap:wrap;height:auto}
  .strip > *{width:50%}
  .cphoto{height:440px}
  .persp,.svc-grid{flex-wrap:wrap}
  .pc,.box{flex:1 1 calc(50% - 12px)}
  .team{flex-wrap:wrap}.tm{flex:0 0 calc(50% - 12px)}
}
@media (max-width:720px){
  .header-in{height:84px}.logo{height:40px}
  .hero-body{padding-top:170px}
  .hero h1{font-size:34px}.hero .eyebrow{font-size:16px}.hero-p{font-size:16px}
  .head2{flex-direction:column;gap:24px}.head2 .l,.head2 .r{flex:none;width:100%}.head2 .r{padding-top:0}
  .sec{padding-top:90px}.sec-team{padding-top:100px}.strip{margin-top:56px}.label{margin-top:56px}.svc{margin-top:70px;padding-top:50px}.closing{margin-top:80px}.team{margin-top:48px}.contact{margin-top:100px;padding-top:80px}.foot{margin-top:80px}
  .lnk{align-items:flex-start}.lnk .arrow{margin-top:8px;flex:none}
  h2,.closing p{font-size:30px}
  .stat-row{flex-direction:column;gap:48px}
  .strip > *{width:100%}
  .card{height:auto;min-height:360px}
  .pc,.box{flex-basis:100%}
  .team{flex-direction:column;flex-wrap:nowrap;gap:56px}.tm{flex:none;width:100%;max-width:420px}.front::before{padding-top:152.4%}.back{padding:24px 22px 20px}.back-btn{top:24px;right:20px}.b-text{font-size:13px}
  .info{flex-direction:column;gap:8px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal,.seq > *,.build > *,.build > * > *,.in-hero,.stat .d{opacity:1!important;transform:none!important;clip-path:none!important}
}
