
:root{--verde-900:#0B211A;--verde-800:#103127;--verde-700:#175040;--marfil:#F5F1E8;--marfil-2:#EDE7DA;--tinta:#13251E;--naranja:#E7641C;--piedra:#9DB2A8;--linea:rgba(19,37,30,.14);--linea-dark:rgba(245,241,232,.14);--radius:14px;--max:1180px}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Instrument Sans',system-ui,sans-serif;background:var(--marfil);color:var(--tinta);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:'Bricolage Grotesque',sans-serif;line-height:1.08;letter-spacing:-.02em}
.mono{font-family:'IBM Plex Mono',monospace}
a{color:inherit}
img{max-width:100%;height:auto}
.wrap{max-width:var(--max);margin:0 auto;padding:0 28px}
.eyebrow{font-family:'IBM Plex Mono',monospace;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;display:inline-flex;align-items:center;gap:10px}
:focus-visible{outline:2px solid var(--naranja);outline-offset:3px;border-radius:4px}
header{position:sticky;top:0;z-index:50;background:rgba(245,241,232,.9);backdrop-filter:blur(12px);border-bottom:1px solid var(--linea)}
.nav{display:flex;align-items:center;justify-content:space-between;height:76px;gap:20px}
.logo img{height:34px;width:auto;display:block}
nav ul{display:flex;gap:30px;list-style:none;align-items:center}
nav a{text-decoration:none;font-weight:500;font-size:15.5px;color:var(--tinta)}
nav a:hover,nav a[aria-current]{color:var(--verde-700)}
.btn{display:inline-block;text-decoration:none;font-weight:600;font-size:15.5px;padding:13px 26px;border-radius:999px;transition:transform .15s ease,background .15s ease}
.btn:hover{transform:translateY(-1px)}
.btn-naranja{background:var(--naranja);color:#fff}
.btn-naranja:hover{background:#cf5716}
.btn-ghost{border:1.5px solid var(--linea-dark);color:var(--marfil)}
.btn-ghost:hover{border-color:var(--marfil)}
.btn-verde{border:1.5px solid var(--verde-700);color:var(--verde-700)}
.nav .btn{padding:11px 22px}
.menu-btn{display:none;background:none;border:none;font-size:26px;color:var(--verde-700);cursor:pointer}
#menu-movil{display:none;background:var(--marfil);border-bottom:1px solid var(--linea)}
#menu-movil ul{list-style:none;padding:10px 28px 22px}
#menu-movil a{display:block;padding:11px 0;text-decoration:none;font-weight:500}
.hero{background:var(--verde-900);color:var(--marfil);position:relative;overflow:hidden}
.hero .wrap{padding-top:100px;padding-bottom:120px;position:relative;z-index:2}
.hero .eyebrow{color:var(--piedra)}
.hero h1{font-size:clamp(40px,5.6vw,72px);font-weight:600;max-width:16ch;margin:26px 0 26px}
.hero h1 em{font-style:normal;position:relative;white-space:nowrap}
.hero h1 em .subrayado{position:absolute;left:-2%;bottom:-.08em;width:104%;height:.32em;overflow:visible}
.hero p{max-width:58ch;font-size:19px;color:var(--piedra);margin-bottom:38px}
.hero p strong{color:var(--marfil);font-weight:500}
.hero-ctas{display:flex;gap:16px;flex-wrap:wrap}
.hero-sub{padding-top:80px!important;padding-bottom:88px!important}
.hero-sub h1{font-size:clamp(36px,4.6vw,58px)}
.miga{font-family:'IBM Plex Mono',monospace;font-size:12.5px;letter-spacing:.1em;color:var(--piedra);margin-bottom:26px}
.miga a{color:var(--piedra);text-decoration:none}
.miga a:hover{color:var(--marfil)}
.spark-bg{position:absolute;right:-4%;bottom:0;width:58%;min-width:520px;z-index:1;opacity:.9;pointer-events:none}
.spark-line{fill:none;stroke:var(--naranja);stroke-width:3;stroke-linecap:round;stroke-dasharray:1600;stroke-dashoffset:1600;animation:draw 2.2s .3s ease-out forwards}
.spark-dot{fill:var(--naranja);opacity:0;animation:aparece .4s 2.3s ease forwards}
.spark-label{font-family:'IBM Plex Mono',monospace;font-size:13px;fill:var(--piedra);opacity:0;animation:aparece .4s 2.5s ease forwards}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes aparece{to{opacity:1}}
.trazo{fill:none;stroke:var(--naranja);stroke-width:5;stroke-linecap:round;stroke-dasharray:400;stroke-dashoffset:400;animation:draw 1s 1.4s ease-out forwards}
.logos{border-bottom:1px solid var(--linea)}
.logos .wrap{padding:34px 28px;display:flex;align-items:center;gap:42px;flex-wrap:wrap;justify-content:space-between}
.logos p{font-size:14px;color:#5c6b63;max-width:26ch}
.logos-fila{display:flex;gap:46px;flex-wrap:wrap;align-items:center}
.logos-fila img{width:auto;opacity:.8}
.foto-sobre{width:100%;border-radius:14px;margin-top:28px;display:block}
.logo-caso{width:auto!important;max-width:80%;object-fit:contain;opacity:.85;align-self:flex-start}
.foto-caso{width:100%;height:230px;object-fit:cover;object-position:center 30%;border-radius:10px}
.logo-cliente{font-family:'Bricolage Grotesque';font-weight:600;font-size:17px;color:#5c6b63;letter-spacing:.02em;opacity:.85}
section{padding:100px 0}
.sec-head{max-width:780px;margin-bottom:54px}
.sec-head h2{font-size:clamp(30px,4vw,46px);font-weight:600;margin-top:20px}
.sec-head .intro{margin-top:18px;font-size:18px;color:#40514a}
.claro .eyebrow{color:var(--verde-700)}
.centrado{text-align:center;margin-inline:auto}
.grid-2{display:grid;grid-template-columns:1.05fr 1fr;gap:70px;align-items:start}
.col-texto p{margin-bottom:20px;color:#3a4a43}
.col-texto p strong{color:var(--tinta)}
.col-texto h2{font-size:clamp(30px,3.8vw,44px);font-weight:600;margin-top:20px}
.col-texto ul{margin:0 0 20px 20px;color:#3a4a43}
.col-texto li{margin-bottom:10px}
.dato-linea{margin-top:34px;padding-top:26px;border-top:1px solid var(--linea);display:flex;gap:48px;flex-wrap:wrap}
.dato-linea .n{font-family:'IBM Plex Mono';font-size:52px;font-weight:500;color:var(--verde-700);line-height:1.1;display:block}
.dato-linea .n b{color:var(--naranja);font-weight:500}
.dato-linea small{display:block;font-size:13.5px;color:#5c6b63;margin-top:4px;max-width:22ch}
.oscuro{background:var(--verde-900);color:var(--marfil)}
.oscuro .eyebrow{color:var(--piedra)}
.serv-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:18px}
.serv{grid-column:span 2;background:var(--verde-800);border:1px solid var(--linea-dark);border-radius:var(--radius);padding:34px 30px;text-decoration:none;color:var(--marfil);display:flex;flex-direction:column;gap:14px;min-height:250px;transition:transform .18s ease,border-color .18s ease}
.serv:hover{transform:translateY(-4px);border-color:var(--naranja)}
.serv:nth-child(4),.serv:nth-child(5){grid-column:span 3}
.serv .num{font-family:'IBM Plex Mono';font-size:12.5px;color:var(--piedra);letter-spacing:.12em}
.serv h3{font-size:23px;font-weight:600}
.serv p{font-size:15.5px;color:var(--piedra);flex:1}
.serv .link{font-weight:600;font-size:15px;color:var(--naranja)}
.serv.destacado{background:linear-gradient(140deg,#1a4a3a,var(--verde-800));border-color:rgba(231,100,28,.45)}
.serv.destacado .tag{font-family:'IBM Plex Mono';font-size:11.5px;color:var(--naranja);border:1px solid rgba(231,100,28,.5);border-radius:999px;padding:3px 10px;width:fit-content;letter-spacing:.1em}
.tarjetas-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.tarjeta{background:#fff;border:1px solid var(--linea);border-radius:var(--radius);padding:36px 32px}
.tarjeta .p-num{font-family:'IBM Plex Mono';font-size:13px;color:var(--naranja);letter-spacing:.12em;display:block;margin-bottom:18px}
.tarjeta h3{font-size:23px;margin-bottom:12px;font-weight:600}
.tarjeta p{font-size:15.5px;color:#3a4a43}
.suave{background:var(--marfil-2)}
.tabla-vs{background:#fff;border:1px solid var(--linea);border-radius:var(--radius);overflow:hidden}
.tabla-vs .fila{display:grid;grid-template-columns:1.2fr 1fr;padding:18px 26px;border-bottom:1px solid var(--linea);font-size:15.5px}
.tabla-vs .fila:last-child{border:none}
.tabla-vs .fila span:first-child{color:#5c6b63}
.tabla-vs .fila span:last-child{font-weight:600;color:var(--verde-700)}
.tabla-vs .cab{background:var(--verde-900);color:var(--marfil);font-family:'IBM Plex Mono';font-size:12.5px;letter-spacing:.12em;text-transform:uppercase}
.tabla-vs .cab span:first-child{color:var(--piedra)}
.tabla-vs .cab span:last-child{color:var(--naranja)}
.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.caso{background:#fff;border:1px solid var(--linea);border-radius:var(--radius);padding:38px 34px;display:flex;flex-direction:column;gap:18px}
.metricas{display:flex;gap:36px;flex-wrap:wrap}
.metricas .n{font-family:'IBM Plex Mono';font-size:34px;color:var(--naranja);font-weight:500}
.metricas small{display:block;font-size:13px;color:#5c6b63;margin-top:2px;max-width:16ch}
.caso blockquote{font-size:16.5px;color:#3a4a43;border-left:3px solid var(--verde-700);padding-left:18px}
.caso cite{font-style:normal;font-weight:600;font-size:14.5px;color:var(--verde-700)}
.caso h3{font-size:22px}
.faq{max-width:820px;margin:0 auto}
details{border-bottom:1px solid var(--linea);padding:22px 4px}
summary{cursor:pointer;font-family:'Bricolage Grotesque';font-weight:600;font-size:19px;list-style:none;display:flex;justify-content:space-between;gap:20px}
summary::after{content:"+";color:var(--naranja);font-size:24px;font-weight:400;flex:none}
details[open] summary::after{content:"–"}
details p{margin-top:14px;color:#3a4a43;max-width:64ch}
.incluye{display:grid;grid-template-columns:1fr 1fr;gap:14px 30px;list-style:none;margin-top:10px}
.incluye li{padding:16px 18px;background:#fff;border:1px solid var(--linea);border-radius:10px;font-size:15.5px;color:#3a4a43;display:flex;gap:12px;align-items:flex-start}
.incluye li::before{content:"→";color:var(--naranja);font-weight:700;flex:none}
.cta-final{background:var(--verde-900);color:var(--marfil);text-align:center;position:relative;overflow:hidden}
.cta-final h2{font-size:clamp(32px,4.6vw,54px);font-weight:600;max-width:18ch;margin:22px auto 20px}
.cta-final p{color:var(--piedra);max-width:52ch;margin:0 auto 40px}
.cta-final .eyebrow{color:var(--piedra)}
.formulario{max-width:640px;margin:0 auto;display:grid;gap:18px}
.formulario label{font-weight:600;font-size:15px;display:block;margin-bottom:8px}
.formulario input,.formulario textarea{width:100%;padding:14px 16px;border:1px solid var(--linea);border-radius:10px;font:inherit;background:#fff}
.formulario textarea{min-height:150px;resize:vertical}
.formulario input:focus,.formulario textarea:focus{outline:2px solid var(--verde-700)}
.contacto-datos{display:flex;gap:40px;justify-content:center;flex-wrap:wrap;margin-top:44px;font-size:16px}
.contacto-datos a{color:var(--verde-700);font-weight:600;text-decoration:none}
footer{background:var(--verde-900);color:var(--piedra);border-top:1px solid var(--linea-dark);font-size:14.5px}
footer .wrap{padding:54px 28px 40px;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px}
footer h4{font-family:'IBM Plex Mono';font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--marfil);margin-bottom:16px;font-weight:500}
footer ul{list-style:none}
footer li{margin-bottom:10px}
footer a{text-decoration:none}
footer a:hover{color:var(--marfil)}
.f-logo img{height:36px;width:auto}
.f-bajo{border-top:1px solid var(--linea-dark)}
.f-bajo .wrap{display:flex;justify-content:space-between;padding:20px 28px;font-size:13px;gap:20px;flex-wrap:wrap}
.legal{max-width:820px;margin:0 auto;padding:70px 28px}
.legal h1{font-size:38px;margin-bottom:26px}
.legal h2{font-size:24px;margin:34px 0 12px}
.legal p,.legal li{color:#3a4a43;margin-bottom:14px}
.legal ul{margin-left:22px}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease}
.reveal.visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-delay:0s!important;transition:none!important}.spark-line,.trazo{stroke-dashoffset:0}.spark-dot,.spark-label{opacity:1}.reveal{opacity:1;transform:none}}
@media (max-width:920px){nav ul{display:none}.menu-btn{display:block}.hero .wrap{padding-top:64px;padding-bottom:84px}.spark-bg{opacity:.35;width:110%;min-width:0}.grid-2{grid-template-columns:1fr;gap:40px}.serv-grid{grid-template-columns:1fr}.serv,.serv:nth-child(4),.serv:nth-child(5){grid-column:span 1;min-height:0}.tarjetas-3,.result-grid,.incluye{grid-template-columns:1fr}footer .wrap{grid-template-columns:1fr 1fr}section{padding:70px 0}}
