img{height:auto}
:root{--navy:#0E2A47;--navy2:#123659;--or:#F26B1D;--con:#C9CDD2;--ink:#1E2833;--mut:#5B6B7C;--light:#F3F4F6;--line:#DDE1E6;--h:'Archivo',sans-serif;--b:'Source Sans 3',system-ui,sans-serif}
*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}
body{font:400 17px/1.65 var(--b);color:var(--ink);background:#fff;overflow-x:clip}
a{color:inherit;text-decoration:none}img{display:block;max-width:100%;height:auto}button{font:inherit;cursor:pointer}
.container{max-width:1240px;margin:0 auto;padding:0 clamp(1rem,4vw,2rem)}
.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;z-index:99;background:var(--or);color:#fff;padding:.5rem 1rem}
:focus-visible{outline:3px solid var(--or);outline-offset:2px}
h1,h2,h3,h4{font-family:var(--h);font-stretch:108%;line-height:1.1;letter-spacing:-.01em;color:var(--navy)}
h2{font-size:clamp(1.7rem,3.2vw,2.6rem);font-weight:800}
.kicker{font:700 .78rem var(--h);letter-spacing:.18em;text-transform:uppercase;color:var(--or);display:flex;align-items:center;gap:.6rem;margin-bottom:.9rem}
.kicker::before{content:"";width:28px;height:3px;background:var(--or)}
.kicker.light{color:#FFB98F}.lead{font-size:1.18rem;color:var(--mut);max-width:60ch}.lead.light{color:#D6DEE7}
.tiny{font-size:.8rem;color:var(--mut);margin-top:1.2rem}
.btn{display:inline-flex;align-items:center;gap:.5rem;white-space:nowrap;padding:.95rem 1.5rem;font:700 .92rem var(--h);letter-spacing:.04em;text-transform:uppercase;border:2px solid transparent;transition:.2s}
.btn-orange{background:var(--or);color:#fff}.btn-orange:hover{background:#d85a10}
.btn-line{border-color:#fff;color:#fff}.btn-line:hover{background:#fff;color:var(--navy)}
.link-arrow{font:700 .9rem var(--h);color:var(--or);letter-spacing:.03em;text-transform:uppercase;display:inline-block;margin-top:1.2rem}.link-arrow:hover{text-decoration:underline}
/* topbar & header */
.topbar{background:var(--navy);color:#C9D3DD;font-size:.85rem}
.tb-in{display:flex;gap:1.6rem;align-items:center;height:40px}.tb-right{margin-left:auto}.tb-right:hover{color:#fff}.tb-cta{background:var(--or);color:#fff;padding:0 1rem;height:100%;display:flex;align-items:center;font-weight:600}
.header{position:sticky;top:0;z-index:40;background:#fff;border-bottom:1px solid var(--line);transition:box-shadow .2s}
.header.sc{box-shadow:0 8px 24px -16px rgba(14,42,71,.4)}
.h-in{display:flex;align-items:center;gap:2rem;height:84px}
.logo img{height:46px;width:auto}
.menu{display:flex;list-style:none;gap:.2rem;margin-left:auto}
.menu>li{position:relative;display:flex;align-items:center}
.menu>li>a{font:600 .95rem var(--h);color:var(--navy);padding:1.9rem .8rem;position:relative}
.menu>li>a::after{content:"";position:absolute;left:.8rem;right:.8rem;bottom:1.4rem;height:3px;background:var(--or);transform:scaleX(0);transition:.25s}
.menu>li>a:hover::after,.menu>li>a[aria-current]::after{transform:scaleX(1)}
.sub-toggle{background:none;border:0;color:var(--navy);margin-left:-.5rem;padding:.4rem;display:flex}
.sub{position:absolute;top:100%;left:0;min-width:250px;background:#fff;border-top:3px solid var(--or);box-shadow:0 20px 40px -10px rgba(14,42,71,.25);list-style:none;padding:.5rem 0;opacity:0;visibility:hidden;transform:translateY(10px);transition:.2s}
.has-sub:hover .sub,.has-sub:focus-within .sub,.has-sub.open .sub{opacity:1;visibility:visible;transform:none}
.sub a{display:block;padding:.6rem 1.2rem;font-weight:600;color:var(--ink);border-left:3px solid transparent}.sub a:hover{background:var(--light);border-color:var(--navy);color:var(--navy)}
.burger{display:none;margin-left:auto;background:none;border:0;width:44px;height:44px;flex-direction:column;justify-content:center;gap:6px;align-items:center}.burger span{width:26px;height:3px;background:var(--navy);transition:.25s}
/* hero */
.hero{position:relative;color:#fff;padding-top:clamp(5rem,10vw,8rem)}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,42,71,.94) 0%,rgba(14,42,71,.75) 45%,rgba(14,42,71,.2) 100%);z-index:-1}
.hero-in{padding-bottom:7rem}
.hero h1{color:#fff;font-size:clamp(2.6rem,6.2vw,5.2rem);font-weight:800;font-stretch:115%;text-transform:uppercase;max-width:14ch;margin-bottom:1.2rem;line-height:1}
.hero h1 span{color:var(--or)}
.hero-btns{display:flex;gap:.8rem;margin-top:2rem;flex-wrap:wrap}
.stats{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;color:var(--ink);box-shadow:0 30px 60px -30px rgba(14,42,71,.5);transform:translateY(50%);border-top:4px solid var(--or)}
.stats div{padding:1.8rem 1.5rem;border-right:1px solid var(--line)}.stats div:last-child{border:0}
.stats b{display:block;font:800 clamp(2rem,3.6vw,3rem)/1 var(--h);color:var(--navy);font-stretch:110%}.stats span{color:var(--mut);font-size:.95rem}
.hero+.sec{padding-top:9rem}
/* page hero */
.phero{position:relative;color:#fff;padding:5rem 0 4rem;background:linear-gradient(90deg,rgba(14,42,71,.95),rgba(14,42,71,.65)),var(--img) center/cover}
.phero h1{color:#fff;font-size:clamp(2.2rem,5vw,4rem);font-weight:800;text-transform:uppercase;margin-bottom:.8rem}.phero .lead{color:#D6DEE7}
.crumb{font-size:.88rem;color:#AFC0D1;margin-bottom:2rem}.crumb a:hover{color:#fff}
/* sections */
.sec{padding:clamp(4rem,8vw,6.5rem) 0}.gray{background:var(--light)}
.split{display:grid;grid-template-columns:1fr 1.2fr;gap:4rem;align-items:start}
.split.media{align-items:center}.split.media img{width:100%;aspect-ratio:3/2;object-fit:cover;box-shadow:24px 24px 0 var(--light)}
.svc-row:nth-child(odd) .split.media{direction:rtl}.svc-row:nth-child(odd) .split.media>*{direction:ltr}
.svc-row:nth-child(odd) .split.media img{box-shadow:-24px 24px 0 var(--light)}
.checks{list-style:none;margin-top:1.2rem;display:grid;gap:.55rem}.checks li{padding-left:1.8rem;position:relative}.checks li::before{content:"";position:absolute;left:0;top:.45em;width:12px;height:12px;background:var(--or);clip-path:polygon(0 0,100% 50%,0 100%)}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:2.5rem;flex-wrap:wrap}.sec-head .link-arrow{margin:0}
.svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.svc{background:#fff;padding:2.2rem 1.6rem;position:relative;transition:.25s;min-height:300px;display:flex;flex-direction:column}
.svc .num{font:800 .85rem var(--h);color:var(--con)}
.svc svg{width:52px;height:52px;fill:none;stroke:var(--navy);stroke-width:1.6;stroke-linecap:square;margin:1.4rem 0}
.svc h3{font-size:1.3rem;margin-bottom:.5rem}.svc p{color:var(--mut);font-size:.98rem}
.svc::after{content:"→";position:absolute;right:1.4rem;bottom:1.2rem;font-size:1.4rem;color:var(--or);transition:.25s}
.svc:hover{background:var(--navy)}.svc:hover h3,.svc:hover svg{color:#fff;stroke:#fff}.svc:hover p{color:#C9D3DD}.svc:hover::after{transform:translateX(6px)}
.proj-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
.proj{background:#fff;border:1px solid var(--line);transition:.3s}.proj:hover{box-shadow:0 24px 40px -24px rgba(14,42,71,.4);transform:translateY(-4px)}
.proj.hide{display:none}
.proj-btn{all:unset;display:block;position:relative;overflow:hidden;cursor:zoom-in;width:100%}
.proj-btn img{width:100%;aspect-ratio:3/2;object-fit:cover;transition:transform .6s}.proj:hover .proj-btn img{transform:scale(1.06)}
.proj-btn:focus-visible{outline:3px solid var(--or);outline-offset:-3px}
.pcat{position:absolute;left:0;top:1rem;background:var(--or);color:#fff;font:700 .72rem var(--h);letter-spacing:.12em;text-transform:uppercase;padding:.35rem .8rem}
.pbody{padding:1.3rem 1.4rem 1.6rem}.pbody h3{font-size:1.2rem}.ploc{color:var(--or);font-size:.88rem;font-weight:600;margin:.3rem 0 .6rem}.ploc b{color:var(--navy)}.pbody p:last-child{color:var(--mut);font-size:.95rem}
.band{background:var(--navy);color:#fff;padding:5rem 0;background-image:repeating-linear-gradient(-45deg,transparent 0 40px,rgba(255,255,255,.03) 40px 80px)}
.band h2{color:#fff;max-width:18ch}.band-in{display:grid;grid-template-columns:1fr 1.2fr;gap:3rem;align-items:center}
.band-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.band-cards div{border:1px solid rgba(255,255,255,.2);padding:1.5rem;border-top:3px solid var(--or)}.band-cards b{display:block;font:800 2.2rem var(--h);color:#fff}.band-cards span{color:#C9D3DD;font-size:.92rem}
.clients{display:grid;grid-template-columns:repeat(6,1fr);border:1px solid var(--line)}.clients span{padding:2rem 1rem;text-align:center;font:800 .85rem var(--h);font-stretch:115%;color:#9AA6B2;border-right:1px solid var(--line);letter-spacing:.05em}.clients span:last-child{border:0}
.cta-band{background:var(--or);color:#fff;padding:3.5rem 0}.cta-in{display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap}.cta-band h2{color:#fff;max-width:26ch}.cta-band .btn-orange{background:var(--navy)}.cta-band .btn-orange:hover{background:#071b30}
/* empresa */
.timeline{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);margin-top:3.5rem;border-top:3px solid var(--navy)}
.timeline li{padding:1.6rem 1.2rem 0 0;position:relative}.timeline li::before{content:"";position:absolute;top:-10px;left:0;width:16px;height:16px;background:var(--or);border:3px solid #fff;box-shadow:0 0 0 2px var(--or)}
.timeline b{font:800 1.6rem var(--h);color:var(--navy)}.timeline p{color:var(--mut);font-size:.95rem}
.mv{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:1.4rem}.card{background:#fff;padding:2rem;border-top:4px solid var(--navy)}.card h3{margin-bottom:.7rem;font-size:1.3rem}.card p,.card li{color:var(--mut)}.values ul{list-style:none;display:grid;gap:.5rem}.values b{color:var(--navy)}.card.values{border-color:var(--or)}
.team{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem}.member{border:1px solid var(--line);padding:1.8rem;text-align:center}.av{width:96px;height:96px;margin:0 auto 1rem;background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;display:grid;place-items:center;font:800 1.6rem var(--h);clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}.member h3{font-size:1.1rem}.member p{color:var(--mut);font-size:.92rem}
.mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.6rem}.mini-stats div{background:#fff;padding:1.2rem;border-left:4px solid var(--or)}.mini-stats b{display:block;font:800 1.8rem var(--h);color:var(--navy)}.mini-stats span{font-size:.88rem;color:var(--mut)}
/* proyectos */
.filters{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:2rem}
.fbtn{background:#fff;border:2px solid var(--line);padding:.65rem 1.2rem;font:700 .85rem var(--h);letter-spacing:.06em;text-transform:uppercase;color:var(--navy);transition:.2s}
.fbtn em{font-style:normal;background:var(--light);padding:0 .45rem;margin-left:.3rem}
.fbtn:hover{border-color:var(--navy)}.fbtn.on{background:var(--navy);border-color:var(--navy);color:#fff}.fbtn.on em{background:var(--or)}
.lightbox{border:0;padding:0;background:transparent;max-width:min(1100px,94vw);width:100%;margin:auto}
.lightbox::backdrop{background:rgba(7,20,35,.92)}
.lightbox figure{background:#fff}.lightbox img{width:100%;max-height:72vh;object-fit:cover}.lightbox figcaption{padding:1.2rem 1.4rem;font-size:1rem}.lightbox figcaption b{display:block;font:800 1.3rem var(--h);color:var(--navy)}
.lb-close{position:fixed;top:1rem;right:1.4rem;background:var(--or);color:#fff;border:0;width:48px;height:48px;font-size:2rem;line-height:1}
.lb-nav{position:fixed;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.15);color:#fff;border:0;width:52px;height:72px;font-size:2.4rem}.lb-nav:hover{background:var(--or)}.prev{left:1rem}.next{right:1rem}
/* certs */
.certs{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem}.cert{border:1px solid var(--line);padding:2rem 1.6rem;text-align:center;transition:.25s}.cert:hover{border-color:var(--navy);box-shadow:0 20px 40px -24px rgba(14,42,71,.4)}
.cert svg{width:120px;height:120px;margin:0 auto 1.2rem}.cert h3{font-size:1.15rem;margin-bottom:.4rem}.cert p{color:var(--mut);font-size:.95rem}.valid{display:inline-block;margin-top:1rem;font:700 .75rem var(--h);letter-spacing:.1em;text-transform:uppercase;color:#1f9d55;background:#e8f7ee;padding:.3rem .7rem}
/* contacto */
.contact-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:3rem}
.qform{display:grid;gap:1.1rem;background:var(--light);padding:clamp(1.5rem,4vw,2.5rem);border-top:4px solid var(--or)}
.qform h2{margin-bottom:.4rem}.row2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.qform label{display:grid;gap:.35rem;font-weight:600;font-size:.92rem;color:var(--navy)}
.qform input,.qform select,.qform textarea{font:400 1rem var(--b);padding:.8rem .9rem;border:1px solid var(--con);background:#fff;border-radius:0;width:100%}
.qform input:focus,.qform select:focus,.qform textarea:focus{outline:2px solid var(--navy);border-color:var(--navy)}
.qform .chk{display:flex;gap:.6rem;align-items:center;font-weight:400;color:var(--ink)}.qform .chk input{width:auto}
.qform .btn{justify-self:start}.fmsg{font-weight:600;color:#1f9d55}
.offices h3{font-size:1.4rem;margin-bottom:1rem}.office{border-left:4px solid var(--or);padding:.4rem 0 .4rem 1rem;margin-bottom:1.2rem}.office b{color:var(--navy);font-family:var(--h)}.office p{color:var(--mut);font-size:.95rem}
.map{background:var(--light);padding:1rem;margin-top:1rem}.map svg{max-height:260px;margin:auto;display:block}
/* footer */
.footer{background:#0A1F35;color:#AFC0D1;padding-top:4rem;font-size:.95rem}
.f-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:2.5rem}.f-logo{height:44px;width:auto;margin-bottom:1rem}
.footer h4{color:#fff;font-size:1rem;margin-bottom:1rem;text-transform:uppercase;letter-spacing:.08em}.f-grid a{display:block;margin-bottom:.5rem}.f-grid a:hover{color:#fff}.f-grid p{margin-bottom:.8rem}
.isos{display:flex;gap:.5rem;flex-wrap:wrap}.isos span{border:1px solid rgba(255,255,255,.25);padding:.25rem .6rem;font:700 .72rem var(--h);color:#fff}
.f-bot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.8rem;border-top:1px solid rgba(255,255,255,.1);margin-top:3rem;padding:1.4rem clamp(1rem,4vw,2rem);font-size:.82rem}.f-bot a{text-decoration:underline}
.fict{opacity:.75}
.reveal{opacity:0;transform:translateY(30px);transition:.8s ease}.reveal.in{opacity:1;transform:none}
@media (max-width:1100px){.h-cta{display:none}.menu>li>a{padding:1.9rem .55rem}}
@media (max-width:960px){
 .burger{display:flex}
 .menu{position:fixed;top:124px;left:0;right:0;bottom:0;background:#fff;flex-direction:column;gap:0;padding:1rem clamp(1rem,4vw,2rem);overflow:auto;transform:translateX(100%);transition:transform .3s}
 .menu.open{transform:none}
 .menu>li{flex-wrap:wrap;border-bottom:1px solid var(--line)}.menu>li>a{padding:1rem 0;flex:1}.menu>li>a::after{display:none}
 .sub-toggle{margin:0;padding:.8rem}
 .sub{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;display:none;width:100%;padding:0 0 .6rem}.has-sub.open .sub{display:block}
 .has-sub:hover .sub{display:none}.has-sub.open:hover .sub{display:block}
 .split,.band-in,.contact-grid{grid-template-columns:1fr;gap:2rem}
 .svc-grid,.certs,.team{grid-template-columns:1fr 1fr}.proj-grid{grid-template-columns:1fr 1fr}
 .stats{grid-template-columns:1fr 1fr;transform:translateY(30%)}.stats div:nth-child(2){border-right:0}.stats div{border-bottom:1px solid var(--line)}
 .clients{grid-template-columns:repeat(3,1fr)}.timeline{grid-template-columns:1fr;border-top:0;border-left:3px solid var(--navy);padding-left:1.4rem}.timeline li{padding:0 0 1.4rem}.timeline li::before{left:-2.05rem;top:.4rem}
 .mv{grid-template-columns:1fr}.f-grid{grid-template-columns:1fr 1fr}.tb-hide,.tb-right{display:none}
 .svc-row:nth-child(odd) .split.media{direction:ltr}
}
@media (max-width:600px){
 .tb-in span:nth-child(2){display:none}.tb-cta{margin-left:auto}
 .svc-grid,.certs,.team,.proj-grid,.band-cards,.mini-stats,.row2,.f-grid{grid-template-columns:1fr}
 .stats b{font-size:1.8rem}.stats div{padding:1.2rem 1rem}
 .logo img{height:38px}
 .lb-nav{display:none}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}.reveal{opacity:1;transform:none}}
