 :root{
  --bg:#f4f2ed;--text:#111315;--muted:#555b60;--line:#cbc8c0;
  --dark:#101316;--dark-2:#111417;--dark-line:#2c3237;
  --dark-muted:#aeb6bb;--accent:#5e6e79;--max:1240px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;overflow-x:hidden}
a{color:inherit;text-decoration:none} button{font:inherit}
.wrap{width:min(var(--max),calc(100% - 48px));margin:0 auto}
.site-header{position:sticky;top:0;z-index:50;transition:background .3s ease,border-color .3s ease}
.site-header .nav{transition:padding .3s ease}
.site-header.scrolled{background:rgba(244,242,237,.82);-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);border-bottom:1px solid var(--line)}
.site-header.scrolled .nav{padding:15px 0}
section[id]{scroll-margin-top:88px}
.nav{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 0}
.brand{font-size:30px;line-height:1;font-weight:850;letter-spacing:-.06em}
.navlinks{display:flex;align-items:center;gap:26px;font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.navlinks a{opacity:.66;transition:.2s ease}.navlinks a:hover{opacity:1}
.nav-actions{display:flex;gap:10px;align-items:center}
.lang,.menu-btn{min-height:44px;border:1px solid var(--line);border-radius:999px;background:transparent;cursor:pointer}
.lang{padding:0 15px}.menu-btn{display:none;width:44px;align-items:center;justify-content:center}
.mobile-menu{display:none;padding:8px 0 22px}
.mobile-menu a{display:block;padding:14px 0;border-bottom:1px solid var(--line);font-size:15px}
.hero{padding:72px 0 92px}
.eyebrow,.section-label{font-size:12px;letter-spacing:.18em;text-transform:uppercase;opacity:.48}
.eyebrow{margin-bottom:24px}
h1{margin:0;max-width:1080px;font-size:clamp(58px,9vw,132px);line-height:.88;letter-spacing:-.075em;font-weight:780}
.accent{color:var(--accent);font-weight:430}
.hero-bottom{margin-top:52px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:36px;align-items:end}
.lead{max-width:670px;font-size:clamp(18px,2vw,26px);line-height:1.45;color:#52565a}
.cta,.contact-link,.outline-btn{min-height:50px;padding:0 22px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;transition:.2s ease}
.cta{background:var(--dark);color:white}.cta:hover,.contact-link:hover,.outline-btn:hover{transform:translateY(-2px)}
.visual{width:min(1380px,calc(100% - 32px));min-height:540px;margin:0 auto;border-radius:28px;position:relative;overflow:hidden;background:#10161a}
.mosaic{position:absolute;inset:0;display:grid;grid-template-columns:1.25fr .75fr 1fr;grid-template-rows:1fr 1fr;gap:1px;background:rgba(255,255,255,.08)}
.tile{position:relative;overflow:hidden}.tile:nth-child(1){grid-row:1/3}
.tile{background:#0e1316}
.tile::before{content:"";position:absolute;inset:0;opacity:.92;transition:transform 1.8s cubic-bezier(.2,.7,.2,1)}
.tile::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(10,14,17,0) 34%,rgba(10,14,17,.72))}
.visual:hover .tile::before{transform:scale(1.06)}
/* Tecnología — retícula de precisión */
.tile-tech::before{background:radial-gradient(120% 95% at 80% 20%,rgba(94,110,121,.30),transparent 55%),repeating-linear-gradient(90deg,rgba(255,255,255,.055) 0 1px,transparent 1px 34px),repeating-linear-gradient(0deg,rgba(255,255,255,.05) 0 1px,transparent 1px 34px),linear-gradient(145deg,#18232a,#0b1013)}
/* Cuidado personal — degradado sereno */
.tile-wellness::before{background:radial-gradient(95% 85% at 28% 24%,rgba(122,134,142,.32),transparent 62%),linear-gradient(150deg,#212a2f,#0d1214)}
/* Salud — arcos concéntricos, pulso sereno */
.tile-health::before{background:repeating-radial-gradient(circle at 50% 125%,rgba(255,255,255,.05) 0 1px,transparent 1px 42px),linear-gradient(145deg,#1a2426,#0c1113)}
/* Construcción — líneas arquitectónicas */
.tile-build::before{background:repeating-linear-gradient(135deg,rgba(255,255,255,.055) 0 1px,transparent 1px 30px),radial-gradient(90% 90% at 20% 15%,rgba(94,110,121,.20),transparent 55%),linear-gradient(145deg,#1c2327,#0c0f12)}
/* Alimentación — campo/horizonte */
.tile-food::before{background:radial-gradient(110% 130% at 50% 145%,rgba(94,110,121,.24),transparent 55%),repeating-linear-gradient(0deg,rgba(255,255,255,.04) 0 1px,transparent 1px 22px),linear-gradient(160deg,#1b2225,#0c1012)}
.tile span{position:absolute;z-index:2;left:22px;bottom:18px;color:white;opacity:.78;font-size:12px;letter-spacing:.12em;text-transform:uppercase}
.visual:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(0,0,0,.58));pointer-events:none}
.visual-copy{position:absolute;z-index:3;left:clamp(26px,5vw,72px);right:clamp(26px,5vw,72px);bottom:36px;display:flex;align-items:end;justify-content:space-between;gap:30px;color:white}
.visual-copy strong{max-width:680px;font-size:clamp(30px,4.2vw,60px);line-height:.98;letter-spacing:-.05em}
.visual-copy small{max-width:350px;font-size:13px;line-height:1.6;opacity:.72}
.section{padding:128px 0}
.section-grid{display:grid;grid-template-columns:.65fr 1.35fr;gap:64px}
.section-label{padding-top:12px}
h2{margin:0;font-size:clamp(42px,6vw,84px);line-height:.98;letter-spacing:-.06em;font-weight:650}
.copy{margin:34px 0 0;max-width:760px;font-size:19px;line-height:1.65;color:var(--muted)}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:54px}
.stat{border-top:1px solid var(--line);padding-top:18px}.stat b{display:block;font-size:42px;letter-spacing:-.05em}.stat span{display:block;margin-top:6px;font-size:13px;opacity:.58}
.eco{padding:116px 0;background:var(--dark);color:#f4f2ed}
.eco-head{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:60px}.eco h2{max-width:780px}.eco p{max-width:390px;margin:0;color:var(--dark-muted);line-height:1.6}
.companies{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--dark-line)}
.company{min-width:0;padding:28px 6px;border-bottom:1px solid var(--dark-line);display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;transition:.2s ease}
.company:nth-child(odd){padding-right:30px;border-right:1px solid var(--dark-line)}.company:nth-child(even){padding-left:30px}
.company:hover{background:rgba(255,255,255,.025)}.company strong{font-size:clamp(24px,3vw,40px);letter-spacing:-.045em}.company span{display:block;margin-top:6px;color:#8f9aa1;font-size:13px}.arrow{font-size:27px;color:#8fa4b1}
.history{border-bottom:1px solid var(--line)}
.timeline{margin-top:58px;border-top:1px solid var(--line)}
.timeline-item{display:grid;grid-template-columns:72px 1fr;gap:20px;padding:26px 0;border-bottom:1px solid var(--line)}
.timeline-item>span{font-size:12px;opacity:.45;padding-top:5px}.timeline-item b{font-size:24px;letter-spacing:-.03em}.timeline-item p{max-width:660px;color:var(--muted);line-height:1.6;margin:8px 0 0}
.philosophy{background:#ece9e2}.values-grid{margin-top:60px;display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.value{padding:30px 18px 36px 0;border-right:1px solid var(--line)}.value:last-child{border-right:0}.value b{display:block;margin-bottom:30px;font-size:12px;opacity:.48}.value strong{font-size:24px;letter-spacing:-.035em}
.job-filter{display:flex;flex-wrap:wrap;gap:10px;margin:42px 0 28px}
.job-chip{min-height:42px;padding:0 15px;border:1px solid var(--line);border-radius:999px;background:transparent;cursor:pointer}
.job-chip.active{background:var(--dark);color:white;border-color:var(--dark)}
.jobs-list{border-top:1px solid var(--line)}
.job-row{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line)}
.job-row strong{font-size:22px;letter-spacing:-.03em}.job-row span{display:block;margin-top:5px;color:var(--muted);font-size:13px}
.job-empty{padding:28px 0;color:var(--muted);border-bottom:1px solid var(--line)}
.talent-open{margin-top:36px;padding:26px;border:1px solid var(--line);border-radius:20px;display:flex;align-items:center;justify-content:space-between;gap:30px}
.talent-open strong{font-size:20px}.talent-open p{margin:6px 0 0;color:var(--muted);line-height:1.5}.outline-btn{border:1px solid var(--dark);color:var(--dark)}
.closing{padding:120px 0 56px;background:#0b0d0f;color:#f5f3ee}.closing h2{max-width:980px}.closing-row{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-top:56px}.closing p{max-width:560px;margin:0;color:#aeb6bb;line-height:1.6}.contact-link{background:#f5f3ee;color:#101316}
.footer{padding-top:70px;margin-top:80px;border-top:1px solid #252a2f;display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;color:#7d878e;font-size:12px}
@media(max-width:900px){
  .wrap{width:min(var(--max),calc(100% - 28px))}.navlinks,.lang{display:none}.menu-btn{display:inline-flex}.mobile-menu.open{display:block}
  .hero{padding:48px 0 66px}h1{font-size:clamp(54px,16vw,88px)}.hero-bottom{grid-template-columns:1fr;align-items:start;margin-top:34px}.cta{width:100%}
  .visual{width:calc(100% - 16px);min-height:590px;border-radius:22px}.mosaic{grid-template-columns:1fr 1fr;grid-template-rows:1.25fr 1fr 1fr}.tile:nth-child(1){grid-row:1/2;grid-column:1/3}
  .visual-copy{display:block;bottom:28px}.visual-copy small{display:block;margin-top:14px}
  .section{padding:92px 0}.section-grid{grid-template-columns:1fr;gap:24px}.stats{grid-template-columns:1fr 1fr}
  .eco{padding:90px 0}.eco-head{display:block}.eco p{margin-top:24px}.companies{grid-template-columns:1fr}.company:nth-child(odd),.company:nth-child(even){padding:24px 0;border-right:none}
  .values-grid{grid-template-columns:1fr 1fr}.value{border-bottom:1px solid var(--line)}
  .talent-open,.closing-row{display:block}.outline-btn,.contact-link{width:100%;margin-top:28px}
  .closing{padding:90px 0 44px}
}
@media(max-width:520px){
  .brand{font-size:26px}.lead{font-size:17px}.visual{min-height:535px}.stats{grid-template-columns:1fr}.values-grid{grid-template-columns:1fr}.value{border-right:0}
  .company strong{font-size:28px}.footer{display:block}.footer div+div{margin-top:12px}.job-row{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* ---------- GNSS 2.0 · contenido real (stats, empresas enlazadas, testimonios, contacto) ---------- */
.stats.four{grid-template-columns:repeat(4,1fr)}
.stats.four .stat b{font-size:clamp(30px,3.4vw,42px)}
.company{cursor:pointer}
.company .arrow{transition:transform .2s ease}
.company:hover .arrow{transform:translate(3px,-3px)}
.company-soon{cursor:default}
.company-soon:hover{background:transparent}
.soon{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#8f9aa1;border:1px solid var(--dark-line);border-radius:999px;padding:6px 12px;white-space:nowrap}

.testimonials{border-bottom:1px solid var(--line)}
.testi-grid{margin-top:56px;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}
.testi{margin:0;padding:32px 26px 34px 0;border-right:1px solid var(--line)}
.testi:last-child{border-right:0;padding-right:0}
.testi p{margin:0 0 22px;font-size:19px;line-height:1.5;letter-spacing:-.01em;color:var(--text)}
.testi cite{font-style:normal;font-size:13px;color:var(--muted)}
.testi cite b{color:var(--text);font-weight:600}

.contact-details{margin-top:64px;display:grid;grid-template-columns:repeat(3,1fr);gap:28px;border-top:1px solid #252a2f;padding-top:40px}
.contact-details .cd-label{display:block;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#7d878e;margin-bottom:12px}
.contact-details .cd-val,.contact-details a{color:#f5f3ee;font-size:16px;line-height:1.7}
.contact-details a{transition:opacity .2s ease}.contact-details a:hover{opacity:.7}

@media(max-width:900px){
  .stats.four{grid-template-columns:1fr 1fr}
  .testi-grid{grid-template-columns:1fr}
  .testi{padding:26px 0;border-right:0;border-bottom:1px solid var(--line)}
  .testi:last-child{border-bottom:0}
  .contact-details{grid-template-columns:1fr;gap:22px}
  .company-soon{grid-template-columns:1fr auto}
}
@media(max-width:520px){
  .stats.four{grid-template-columns:1fr 1fr}
}

/* ---------- GNSS 2.0 · movimiento, presencia y craft ---------- */
/* Barra de progreso de lectura */
.scroll-progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--accent);z-index:100;transition:width .08s linear}

/* Aparición al hacer scroll (solo si hay JS) */
.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .75s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0)*70ms);will-change:opacity,transform}
.js .reveal.in{opacity:1;transform:none}

/* Contadores estables */
.stat b,.pstat b,.stats .stat b{font-variant-numeric:tabular-nums}

/* Ciudad de cada empresa (revela en hover) */
.company-loc{display:block;max-height:0;opacity:0;overflow:hidden;color:#8f9aa1;font-size:12px;font-style:normal;letter-spacing:.09em;text-transform:uppercase;transition:max-height .3s ease,opacity .3s ease,margin-top .3s ease}
.company:hover .company-loc{max-height:24px;opacity:.85;margin-top:9px}

/* ---- Presencia nacional ---- */
.presence{border-bottom:1px solid var(--line)}
.pmap{position:relative;margin-top:60px;width:100%;aspect-ratio:8/5;min-height:340px}
.pmap-line{position:absolute;inset:0;width:100%;height:100%}
.pmap-line path{stroke-dasharray:1;stroke-dashoffset:1;opacity:.5;transition:stroke-dashoffset 1.7s ease .15s}
.pmap.draw .pmap-line path{stroke-dashoffset:0}
.pnode{position:absolute;transform:translate(-50%,-50%)}
.pdot{display:block;width:12px;height:12px;border-radius:50%;background:var(--accent);margin:0 auto;position:relative}
.pdot::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:1px solid var(--accent);opacity:.5;animation:pping 2.6s ease-out infinite}
.is-hq .pdot{width:16px;height:16px;background:var(--dark)}
.is-hq .pdot::after{border-color:var(--dark)}
.plabel{position:absolute;left:50%;top:18px;transform:translateX(-50%);text-align:center;white-space:nowrap}
.plabel b{display:block;font-size:14px;letter-spacing:-.02em}
.plabel i{display:block;font-style:normal;font-size:11px;color:var(--muted);margin-top:3px}
.align-end .plabel{left:auto;right:0;transform:none;text-align:right}
.align-start .plabel{left:0;right:auto;transform:none;text-align:left}
.is-usa .pdot{width:14px;height:14px;background:var(--accent)}
.is-usa .plabel b{color:var(--accent)}
@keyframes pping{0%{transform:scale(1);opacity:.5}70%{transform:scale(2.2);opacity:0}100%{opacity:0}}
.pcities{position:absolute;width:1px;height:1px;padding:0;margin:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.presence-stats{display:flex;gap:48px;margin-top:64px;border-top:1px solid var(--line);padding-top:30px}
.pstat b{display:block;font-size:44px;letter-spacing:-.045em;line-height:1}
.pstat span{display:block;margin-top:6px;font-size:13px;color:var(--muted)}

@media(max-width:760px){
  .pmap{display:none}
  .pcities{position:static;width:auto;height:auto;clip:auto;white-space:normal;list-style:none;margin-top:44px;border-top:1px solid var(--line)}
  .pcities li{padding:20px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:5px}
  .pcities li b{font-size:18px;letter-spacing:-.02em}
  .pcities li span{font-size:13px;color:var(--muted)}
  .presence-stats{gap:26px;flex-wrap:wrap}
  .pstat b{font-size:38px}
}
@media(max-width:900px){
  .company-loc{max-height:24px;opacity:.7;margin-top:9px}
}
@media(prefers-reduced-motion:reduce){
  .js .reveal{opacity:1!important;transform:none!important;transition:none}
  .pmap-line path{stroke-dashoffset:0;transition:none}
  .pdot::after{animation:none}
  .scroll-progress{transition:none}
}

/* ---------- GNSS 2.0 · logo, fichas con foto, formulario, footer legal ---------- */
/* Logo / brand mark */
.brand{display:inline-flex;align-items:center;gap:11px}
.brand-mark{width:25px;height:25px;flex:none;color:var(--text)}

/* Ecosistema: foto tratada al hover + ficha (dato clave) */
.company{position:relative;overflow:hidden}
.company>*{position:relative;z-index:1}
.company::before{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(100deg,rgba(94,110,121,.16),transparent 68%);opacity:0;transition:opacity .4s ease;pointer-events:none}
.company:hover::before{opacity:1}
.company-fact{display:block;max-height:0;opacity:0;overflow:hidden;color:#9aa6ac;font-size:12.5px;font-style:normal;letter-spacing:.01em;transition:max-height .3s ease,opacity .3s ease,margin-top .3s ease}
.company:hover .company-fact{max-height:26px;opacity:.95;margin-top:10px}

/* Formulario de contacto (sobre fondo oscuro .closing) */
.contact-form{margin-top:60px;max-width:760px}
.cf-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}
.cf-field{display:block}
.cf-field>span{display:block;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#7d878e;margin-bottom:9px}
.cf-field input,.cf-field select,.cf-field textarea{width:100%;background:transparent;border:1px solid #2b3237;border-radius:12px;color:#f5f3ee;font:inherit;font-size:16px;padding:13px 15px;transition:border-color .2s ease}
.cf-field textarea{resize:vertical;min-height:110px}
.cf-field input:focus,.cf-field select:focus,.cf-field textarea:focus{outline:none;border-color:#f5f3ee}
.cf-field select{appearance:none;-webkit-appearance:none;cursor:pointer}
.cf-field option{color:#111}
.cf-hp{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0}
.cf-actions{display:flex;align-items:center;gap:22px;margin-top:26px;flex-wrap:wrap}
.cf-submit{min-height:52px;padding:0 26px;border-radius:999px;border:0;background:#f5f3ee;color:#101316;font:inherit;font-weight:600;cursor:pointer;transition:transform .2s ease,opacity .2s ease}
.cf-submit:hover{transform:translateY(-2px)}
.cf-submit:disabled{opacity:.55;cursor:default;transform:none}
.cf-status{margin:0;font-size:14px;color:#aeb6bb}
.cf-status.ok{color:#93c4a3}
.cf-status.err{color:#d99a8f}

/* Footer legal */
.footer-legal{display:flex;align-items:center;gap:12px;flex-wrap:wrap;width:100%;margin-top:6px;color:#6b747b}
.footer-legal a{color:#aeb6bb;border-bottom:1px solid transparent;transition:border-color .2s ease}
.footer-legal a:hover{border-color:#aeb6bb}

@media(max-width:900px){
  .company-fact{max-height:26px;opacity:.9;margin-top:9px}
}
@media(max-width:640px){
  .cf-row{grid-template-columns:1fr;gap:0}
  .cf-row .cf-field{margin-bottom:20px}
}

/* ---------- Botón flotante de idioma (control único ES/EN) ---------- */
.lang{display:none}               /* se reemplaza por el flotante */
.navlinks{margin-left:auto}        /* re-alinea el nav a la derecha en desktop */
.lang-float{position:fixed;right:20px;bottom:calc(22px + env(safe-area-inset-bottom,0px));z-index:80;display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:0 18px;border-radius:999px;border:1px solid rgba(255,255,255,.16);background:rgba(16,19,22,.9);-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);color:#f4f2ed;font:inherit;font-size:13px;letter-spacing:.08em;cursor:pointer;box-shadow:0 10px 30px rgba(0,0,0,.32);transition:transform .2s ease,box-shadow .2s ease}
.lang-float:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(0,0,0,.2)}
.lang-float span[data-lang]{opacity:.42;transition:opacity .2s ease}
.lang-float span[data-lang].on{opacity:1;font-weight:700}
.lang-float .lf-sep{opacity:.3}
@media(max-width:520px){.lang-float{right:16px;bottom:calc(18px + env(safe-area-inset-bottom,0px))}}

/* ---------- Dirección y gobernanza (institucional) ---------- */
.governance{border-bottom:1px solid var(--line)}
.gov-grid{margin-top:56px;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.gov-item{background:var(--bg);padding:30px 26px 34px}
.gov-item b{display:block;font-size:12px;opacity:.42;margin-bottom:24px;letter-spacing:.08em}
.gov-item strong{display:block;font-size:20px;letter-spacing:-.02em;margin-bottom:11px}
.gov-item p{margin:0;color:var(--muted);font-size:15px;line-height:1.6}
@media(max-width:760px){.gov-grid{grid-template-columns:1fr}}
