:root{--azul:#0b1b2b;--azul2:#102538;--azul3:#16304a;--reticula:rgba(120,170,220,.08);--acero:#9fb0c0;--blanco:#e8eef4;--amarillo:#ffc21a;--linea:rgba(159,176,192,.22);--g:'Space Grotesk',system-ui,sans-serif;--m:'JetBrains Mono',ui-monospace,monospace}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:72px;-webkit-text-size-adjust:100%}
html.sin-scroll{overflow:hidden}
body{margin:0;background:var(--azul);color:var(--blanco);font:400 16px/1.6 var(--g);background-image:linear-gradient(var(--reticula) 1px,transparent 1px),linear-gradient(90deg,var(--reticula) 1px,transparent 1px);background-size:32px 32px}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
code{font-family:var(--m);font-size:.78rem;color:var(--amarillo);letter-spacing:.04em}
h1,h2,h3{font-weight:600;line-height:1.08;letter-spacing:-.02em;margin:0 0 .5em}
h2{font-size:clamp(2rem,4.5vw,3.2rem)}
h3{font-size:1.25rem}
:focus-visible{outline:2px solid var(--amarillo);outline-offset:2px}
.saltar{position:absolute;left:-999px;background:var(--amarillo);color:var(--azul);padding:.6em 1em;z-index:100}
.saltar:focus{left:8px;top:8px}
.aviso-demo{font:400 .74rem var(--m);text-align:center;padding:.4em 1em;background:#06111c;color:var(--acero)}
.aviso-demo a{color:var(--blanco)}
.cab{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:1.4rem;padding:.7rem clamp(1rem,3vw,2.5rem);background:rgba(11,27,43,.94);backdrop-filter:blur(6px);border-bottom:1px solid var(--linea)}
.marca{display:grid;grid-template-columns:auto auto;column-gap:.6rem;align-items:center;text-decoration:none}
.marca svg{grid-row:span 2}
.marca span{font-weight:700;letter-spacing:.16em;line-height:1}
.marca small{font:400 .58rem var(--m);color:var(--acero);letter-spacing:.12em}
.nav{display:none;gap:1.5rem;margin-left:auto}
.nav a{text-decoration:none;font-size:.92rem;color:var(--acero);transition:color .2s}
.nav a:hover{color:var(--blanco)}
.cab-btn{display:none}
.hamb{margin-left:auto;width:46px;height:46px;border:1px solid var(--linea);background:none;display:grid;place-content:center;gap:5px;cursor:pointer}
.hamb span{display:block;width:20px;height:2px;background:var(--blanco)}
.hamb[aria-expanded="true"]{border-color:var(--amarillo)}
.menu-movil{position:fixed;inset:0;z-index:45;background:var(--azul);padding:100px 1.25rem 2rem;display:flex;flex-direction:column;transform:translateX(100%);visibility:hidden;transition:transform .35s ease,visibility .35s}
.menu-movil.abierto{transform:none;visibility:visible}
.menu-movil a:not(.btn){display:flex;gap:1rem;align-items:baseline;font-size:1.8rem;font-weight:600;padding:.8rem 0;border-bottom:1px solid var(--linea);text-decoration:none}
.menu-movil .btn{margin-top:1.5rem}
@media (min-width:1000px){.nav,.cab-btn{display:flex}.cab-btn{margin-left:0}.hamb,.menu-movil{display:none}}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.75rem 1.3rem;font:600 .92rem var(--g);text-decoration:none;cursor:pointer;border:1px solid transparent;transition:background .2s,color .2s,box-shadow .2s;clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px))}
.btn-amarillo{background:var(--amarillo);color:var(--azul)}
.btn-amarillo:hover{background:#ffd457}
.btn-linea{border-color:var(--acero);color:var(--blanco);background:transparent;clip-path:none}
.btn-linea:hover{background:var(--blanco);color:var(--azul)}
.btn[aria-busy="true"]{opacity:.7;cursor:progress}
.link{background:none;border:0;padding:.4rem 0;min-height:44px;color:var(--amarillo);font:600 .9rem var(--g);cursor:pointer;text-align:left}
.link:hover{text-decoration:underline}
.nota{font-size:.84rem;color:var(--acero);border-left:2px solid var(--amarillo);padding-left:.7rem}
.hero{display:grid;gap:2rem;padding:clamp(2.5rem,7vw,5rem) clamp(1rem,3vw,2.5rem);max-width:1400px;margin:0 auto}
@media (min-width:980px){.hero{grid-template-columns:1fr 1fr;align-items:center}.kpis{grid-column:1/-1}}
.coord{font:400 .75rem var(--m);color:var(--acero);letter-spacing:.1em;margin:0 0 1.2rem}
.hero h1{font-size:clamp(2.6rem,6.5vw,5rem)}
.hero h1 span{color:var(--acero);font-weight:400}
.hero-p{color:#c5d1dc;font-size:1.1rem;max-width:34rem}
.hero-acc{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.4rem}
.hero-fig{margin:0;border:1px solid var(--linea);padding:.6rem;background:var(--azul2);position:relative}
.hero-fig::before,.hero-fig::after{content:"";position:absolute;width:18px;height:18px;border:2px solid var(--amarillo)}
.hero-fig::before{top:-6px;left:-6px;border-right:0;border-bottom:0}
.hero-fig::after{bottom:-6px;right:-6px;border-left:0;border-top:0}
.hero-fig img{aspect-ratio:3/2;object-fit:cover;width:100%}
figcaption{font-size:.8rem;color:var(--acero);margin-top:.5rem}
.kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--linea);border:1px solid var(--linea);margin:0}
@media (min-width:760px){.kpis{grid-template-columns:repeat(4,1fr)}}
.kpis div{background:var(--azul);padding:1.1rem 1.2rem}
.kpis dt{font:400 .7rem var(--m);text-transform:uppercase;color:var(--acero);letter-spacing:.08em}
.kpis dd{margin:.2rem 0 0;font-size:1.9rem;font-weight:600}
.kpis small{display:block;font:400 .68rem var(--m);color:var(--acero)}
.sec{padding:clamp(3.5rem,8vw,6rem) clamp(1rem,3vw,2.5rem);max-width:1400px;margin:0 auto}
.sec-banda{background:var(--azul2);max-width:none;border-top:1px solid var(--linea);border-bottom:1px solid var(--linea)}
.sec-banda>*{max-width:1336px;margin-left:auto;margin-right:auto}
.sec-cab{max-width:760px;margin-bottom:2.4rem}
.sec-cab code{display:block;margin-bottom:.6rem}
.sec-cab p{color:#c5d1dc}
.sol-grid{display:grid;gap:1px;background:var(--linea);border:1px solid var(--linea)}
@media (min-width:760px){.sol-grid{grid-template-columns:1fr 1fr}}
.sol{display:grid;grid-template-columns:110px 1fr;gap:1.2rem;background:var(--azul);padding:1.3rem;transition:background .25s}
.sol:hover{background:var(--azul3)}
.sol img{aspect-ratio:1;object-fit:cover;width:100%;filter:grayscale(.6) contrast(1.1);transition:filter .3s}
.sol:hover img{filter:none}
.sol p{color:#c5d1dc;margin:.2rem 0;font-size:.95rem}
@media (max-width:420px){.sol{grid-template-columns:1fr}.sol img{aspect-ratio:16/9}}
.sectores{list-style:none;padding:0;margin:0;display:grid;gap:0;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.sectores li{padding:1.3rem 1.3rem 1.3rem 0;border-top:1px solid var(--linea)}
.sectores b{display:block;font-size:1.15rem;margin-bottom:.2rem}
.sectores b::before{content:"▸ ";color:var(--amarillo)}
.sectores span{color:var(--acero);font-size:.92rem}
.cap-filtro{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:1rem}
.chip{min-height:42px;padding:.4rem 1rem;border:1px solid var(--linea);background:transparent;color:var(--blanco);font:400 .8rem var(--m);cursor:pointer;text-transform:uppercase;letter-spacing:.06em}
.chip.activo{background:var(--amarillo);color:var(--azul);border-color:var(--amarillo)}
.tabla-envoltura{overflow-x:auto;border:1px solid var(--linea)}
.tabla{width:100%;min-width:640px;border-collapse:collapse;font-size:.92rem}
.tabla th,.tabla td{text-align:left;padding:.85rem 1rem;border-bottom:1px solid var(--linea)}
.tabla thead th{font:600 .72rem var(--m);text-transform:uppercase;letter-spacing:.08em;color:var(--acero);background:var(--azul2)}
.tabla tbody th{font-weight:600}
.tabla td:nth-child(3){font-family:var(--m);color:var(--amarillo);font-size:.85rem}
.tabla tbody tr:hover{background:var(--azul3)}
.proceso{list-style:none;padding:0;margin:0;display:grid;gap:1px;background:var(--linea);counter-reset:p}
@media (min-width:860px){.proceso{grid-template-columns:repeat(4,1fr)}}
.proceso li{background:var(--azul2);padding:1.5rem;position:relative}
.proceso code{font-size:2rem;display:block;margin-bottom:.8rem}
.proceso p{color:var(--acero);margin:0;font-size:.93rem}
@media (min-width:860px){.proceso li:not(:last-child)::after{content:"→";position:absolute;right:-.6rem;top:1.6rem;color:var(--amarillo);z-index:1;background:var(--azul2)}}
.proy-grid{display:grid;gap:1.2rem}
@media (min-width:900px){.proy-grid{grid-template-columns:repeat(3,1fr)}}
.proy{border:1px solid var(--linea);background:var(--azul2);display:flex;flex-direction:column}
.proy img{aspect-ratio:16/10;object-fit:cover;width:100%;filter:grayscale(.4)}
.proy>div{padding:1.3rem}
.proy-tag{font:400 .7rem var(--m);color:var(--amarillo);letter-spacing:.08em;margin:0 0 .5rem}
.proy p{color:#c5d1dc;font-size:.93rem}
.proy b{color:var(--blanco)}
.rfq{max-width:1000px}
.rfq-pasos{list-style:none;padding:0;display:flex;gap:.4rem;flex-wrap:wrap;margin:0 0 1.5rem;counter-reset:r}
.rfq-pasos a{display:inline-flex;align-items:center;min-height:40px;padding:.3rem .8rem;border:1px solid var(--linea);text-decoration:none;font:400 .78rem var(--m)}
.rfq-pasos a:hover{border-color:var(--amarillo)}
.rfq-form fieldset{min-width:0;border:1px solid var(--linea);background:rgba(16,37,56,.85);padding:1.4rem clamp(1rem,3vw,1.8rem) .6rem;margin:0 0 1.2rem}
.rfq-form legend{font-weight:600;font-size:1.1rem;padding:0 .5rem;display:flex;gap:.6rem;align-items:center}
.grid2{display:grid;gap:0 1.2rem}
@media (min-width:700px){.grid2{grid-template-columns:1fr 1fr}}
.campo{margin-bottom:1rem}
.campo label{display:block;font-size:.86rem;margin-bottom:.35rem;color:#c5d1dc}
.campo input:not([type=checkbox]),.campo select,.campo textarea{width:100%;min-height:48px;background:var(--azul);border:1px solid #2e4a66;color:var(--blanco);padding:.6rem .8rem;font:400 1rem var(--g);border-radius:0}
.campo input[type=file]{padding:.7rem;font-size:.9rem}
.campo input:focus,.campo select:focus,.campo textarea:focus{outline:none;border-color:var(--amarillo);box-shadow:0 0 0 3px rgba(255,194,26,.2)}
.campo [aria-invalid="true"]{border-color:#ff7a6b!important}
input[type=date]{color-scheme:dark}
.ayuda{font:400 .74rem var(--m);color:var(--acero);margin:.3rem 0 0}
.error{color:#ff9a8d;font-size:.84rem;margin:.3rem 0 0}
.error:empty{display:none}
.checks{border:0!important;background:none!important;padding:0!important;margin:0 0 1rem!important;display:grid;gap:.2rem}
@media (min-width:700px){.checks{grid-template-columns:1fr 1fr}}
.checks legend{font-size:.86rem!important;font-weight:400!important;color:#c5d1dc;padding:0!important;margin-bottom:.4rem}
.checks label{display:flex;gap:.6rem;align-items:center;min-height:42px;cursor:pointer}
input[type=checkbox]{width:20px;height:20px;accent-color:var(--amarillo);flex:none}
.campo-check{display:grid;grid-template-columns:22px 1fr;gap:.7rem;align-items:start}
.campo-check label{margin:0}
.campo-check .error{grid-column:2}
.lista-arch{list-style:none;padding:0;margin:.4rem 0 0;font-size:.85rem}
.lista-arch code{color:var(--blanco)}
.form-estado{margin-top:1.2rem}
.form-estado:empty{display:none}
.form-estado.es-error{color:#ff9a8d;font-weight:600}
.form-estado.es-carga{font-family:var(--m);color:var(--acero)}
.form-estado.es-ok{border:1px solid var(--amarillo);background:var(--azul2);padding:1.4rem}
.resumen{display:grid;gap:0;margin:1rem 0;font-size:.9rem}
.resumen div{display:grid;grid-template-columns:150px 1fr;gap:1rem;padding:.45rem 0;border-bottom:1px solid var(--linea)}
.resumen dt{font:400 .72rem var(--m);color:var(--acero);text-transform:uppercase}
.resumen dd{margin:0;word-break:break-word}
@media (max-width:520px){.resumen div{grid-template-columns:1fr;gap:0}}
.ficha{border:1px solid var(--amarillo);background:var(--azul2);color:var(--blanco);padding:0;max-width:820px;width:calc(100% - 2rem);max-height:calc(100dvh - 2rem)}
.ficha::backdrop{background:rgba(3,10,18,.8)}
#ficha-c{display:grid}
@media (min-width:720px){#ficha-c{grid-template-columns:.8fr 1.2fr}#ficha-c img{height:100%;object-fit:cover}}
.ficha-txt{padding:1.5rem}
.ficha dl{margin:1rem 0}
.ficha dl div{display:grid;grid-template-columns:120px 1fr;gap:.8rem;padding:.5rem 0;border-bottom:1px solid var(--linea);font-size:.92rem}
.ficha dt{font:400 .72rem var(--m);color:var(--acero);text-transform:uppercase}
.ficha dd{margin:0}
.ficha form{padding:0 1.5rem 1.5rem}
.pie{border-top:1px solid var(--linea);padding:2.5rem clamp(1rem,3vw,2.5rem);color:var(--acero);font-size:.88rem;display:grid;gap:1rem;background:var(--azul)}
.marca-pie{font-weight:700;letter-spacing:.16em;color:var(--blanco);margin:0}
.pie p{max-width:680px}
.creditos summary{cursor:pointer;min-height:44px;display:inline-flex;align-items:center;color:var(--blanco)}
.creditos ul{font-size:.76rem;padding-left:1rem}
.creditos a{word-break:break-word}
html.js-rv .rv{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
html.js-rv .rv.visto{opacity:1;transform:none}
.error404{min-height:70vh;display:grid;place-content:center;text-align:center;padding:2rem}
.error404 h1{font:600 clamp(4rem,16vw,9rem) var(--m);color:var(--amarillo)}
