
:root{
  --fondo:#F7F7F5; --fondo-2:#FFFFFF; --fondo-3:#EFEFEB;
  --tinta:#11110F; --tinta-2:#55554F; --tinta-3:#8A8A85;
  --linea:#E2E2DD; --acento:#E11146;
  --txt:'Inter',system-ui,-apple-system,sans-serif; --mono:'JetBrains Mono',ui-monospace,monospace;
  --s1:8px;--s2:16px;--s3:22px;--s4:34px;
  --s5:clamp(40px,4.4vw,58px); --s6:clamp(56px,6vw,84px); --s7:clamp(64px,7.2vw,108px);
  --lado:clamp(22px,4.2vw,68px);
  --max:1160px; --ease:cubic-bezier(.22,.61,.36,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--fondo);color:var(--tinta);font-family:var(--txt);line-height:1.6;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--lado)}
section{padding:var(--s7) 0}

h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.035em;line-height:1}
h1{font-size:clamp(2.25rem,4.4vw,3.8rem);line-height:1.01}
h2{font-size:clamp(1.7rem,2.8vw,2.45rem)}
h3{font-size:clamp(1.12rem,1.45vw,1.42rem);letter-spacing:-.03em;line-height:1.16}
.suave{color:var(--tinta-3)}
.kicker{font-size:13px;font-weight:600;color:var(--acento);margin:0 0 var(--s3);letter-spacing:.005em}
.lede{font-size:clamp(.96rem,1vw,1.06rem);color:var(--tinta-2);max-width:52ch;line-height:1.6}
.dato{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--tinta-3)}

.btn{display:inline-flex;align-items:center;gap:9px;padding:12px 24px;border-radius:999px;font-size:14.5px;font-weight:500;transition:transform .35s var(--ease),background .35s var(--ease),opacity .35s var(--ease)}
.btn-1{background:var(--tinta);color:#fff}
.btn-1:hover{transform:translateY(-2px);opacity:.88}
.btn-2{padding:12px 4px;border-bottom:1px solid var(--linea);border-radius:0}
.btn-2:hover{border-bottom-color:var(--tinta)}
.btn-3{border:1px solid var(--linea);background:var(--fondo-2)}
.btn-3:hover{border-color:var(--tinta);transform:translateY(-2px)}

/* nav */
header{position:fixed;inset:0 0 auto 0;z-index:60;transition:background .4s var(--ease),border-color .4s var(--ease);border-bottom:1px solid transparent}
header.fijo{background:rgba(247,247,245,.82);backdrop-filter:saturate(180%) blur(16px);border-bottom-color:var(--linea)}
.nav{display:flex;align-items:center;justify-content:space-between;height:62px;gap:var(--s3)}
.marca{display:flex;align-items:center;gap:11px}
.marca img{height:24px;width:auto}
.marca span{font-size:9px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--tinta-3);line-height:1.3;max-width:74px;display:none}
@media(min-width:660px){.marca span{display:block}}
.logo-pie{height:30px;width:auto;margin-bottom:var(--s3)}
.menu{display:none;gap:clamp(18px,2.2vw,32px)}
@media(min-width:940px){.menu{display:flex}}
.menu a{font-size:13.8px;color:var(--tinta-2);font-weight:450}
.menu a:hover{color:var(--tinta)}
.nav-d{display:flex;align-items:center;gap:var(--s3)}
.lang{font-size:13px;color:var(--tinta-3)}
.lang b{color:var(--tinta);font-weight:600}
.nav .btn{padding:9.5px 19px;font-size:13.5px}

/* hero */
.hero{padding:calc(64px + var(--s5)) 0 var(--s6)}
.hero-g{display:grid;gap:var(--s5);align-items:center}
@media(min-width:1000px){.hero-g{grid-template-columns:1.02fr .98fr;gap:var(--s6)}}
.hero p.lede{margin:var(--s3) 0 var(--s4)}
.acc{display:flex;gap:var(--s2);flex-wrap:wrap;align-items:center}
.marco{margin:0;border-radius:18px;overflow:hidden;aspect-ratio:4/5;background:var(--fondo-3);box-shadow:0 26px 64px -30px rgba(17,17,15,.3);width:100%}
@media(min-width:1000px){.marco{height:min(60vh,520px);width:auto;margin-left:auto}}
.marco img{width:100%;height:100%;object-fit:cover}
.pie{margin:var(--s2) 0 0;font-size:13px;color:var(--tinta-3)}

/* cifras */
.cifras{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s4);margin-top:var(--s6);padding-top:var(--s4);border-top:1px solid var(--linea)}
@media(min-width:760px){.cifras{grid-template-columns:repeat(4,1fr)}}
.cifras b{display:block;font-size:clamp(1.65rem,2.3vw,2.15rem);font-weight:600;letter-spacing:-.04em;line-height:1}
.cifras span{display:block;margin-top:9px;font-size:12.8px;color:var(--tinta-3)}

/* clientes */
.clientes{background:var(--fondo-2);border-block:1px solid var(--linea);padding:var(--s5) 0}
.nombres{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);margin-top:var(--s3)}
.nombres span{font-size:13.8px;color:var(--tinta-2)}

/* casos */
.caso{display:grid;gap:var(--s4);align-items:center;padding:var(--s6) 0;border-top:1px solid var(--linea)}
@media(min-width:960px){.caso{grid-template-columns:1fr 1fr;gap:var(--s6)}.caso:nth-child(even) .caso-img{order:-1}}
.caso-img{margin:0;border-radius:14px;overflow:hidden;aspect-ratio:5/4;max-height:min(44vh,380px);background:var(--fondo-3)}
.caso-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.caso:hover .caso-img img{transform:scale(1.04)}
.caso h3{margin:var(--s2) 0 var(--s2)}
.caso p{color:var(--tinta-2);margin:0;max-width:46ch}
.cartela{margin:var(--s4) 0 0;padding-top:var(--s3);border-top:1px solid var(--linea);display:grid;gap:9px}
.cartela div{display:grid;grid-template-columns:100px 1fr;gap:13px}
.cartela dt{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--acento)}
.cartela dd{margin:0;font-size:13.4px;color:var(--tinta-2)}
.mas{margin-top:var(--s6);text-align:center}

/* productos */
.prod-wrap{background:var(--fondo-2);border-block:1px solid var(--linea)}
.prods{display:grid;gap:var(--s3);margin-top:var(--s5)}
@media(min-width:880px){.prods{grid-template-columns:1fr 1fr;gap:var(--s4)}}
.prod{border:1px solid var(--linea);border-radius:16px;padding:var(--s4);background:var(--fondo);display:flex;flex-direction:column;transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.prod:hover{transform:translateY(-4px);box-shadow:0 26px 60px -34px rgba(17,17,15,.3)}
.prod h3{margin:var(--s3) 0 var(--s2)}
.prod p{color:var(--tinta-2);margin:0;font-size:14.8px}
.prod .cartela{border-top-color:var(--linea)}
.prod-pie{margin-top:auto;padding-top:var(--s4);display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s3);flex-wrap:wrap}
.precio{font-size:1.4rem;font-weight:600;letter-spacing:-.04em;line-height:1}
.precio small{display:block;font-size:12.5px;font-weight:400;color:var(--tinta-3);margin-top:8px;letter-spacing:0}

/* tecnologias */
.tecs{display:grid;gap:var(--s4);margin-top:var(--s5)}
@media(min-width:860px){.tecs{grid-template-columns:repeat(3,1fr);gap:var(--s5)}}
.tec h3{margin:0 0 var(--s2)}
.tec p{color:var(--tinta-2);margin:0;font-size:14.8px}
.tec .dato{display:block;margin-bottom:var(--s3)}
.tec ul{list-style:none;margin:var(--s3) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.tec li{border:1px solid var(--linea);border-radius:999px;padding:6px 13px;font-size:12.5px;color:var(--tinta-2);background:var(--fondo-2)}

/* estudio */
.est{display:grid;gap:var(--s4)}
@media(min-width:900px){.est{grid-template-columns:1fr 1fr;gap:var(--s6)}}
.est p{color:var(--tinta-2);max-width:50ch}
.est p+p{margin-top:var(--s2)}

/* contacto */
.cont-wrap{background:var(--tinta);color:#fff}
.cont-wrap .lede{color:rgba(255,255,255,.62)}
.cont-wrap .kicker{color:#FF4C77}
.cont{display:grid;gap:var(--s5)}
@media(min-width:960px){.cont{grid-template-columns:1.05fr .95fr;gap:var(--s6)}}
.campo{margin-bottom:var(--s3)}
.campo label{display:block;font-size:13px;color:rgba(255,255,255,.55);margin-bottom:9px}
.campo input,.campo select,.campo textarea{width:100%;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.13);border-radius:11px;color:#fff;font-family:var(--txt);font-size:14.5px;padding:11.5px 14px;transition:border-color .3s var(--ease)}
.campo textarea{min-height:104px;resize:vertical}
.campo :focus{outline:none;border-color:#FF4C77}
.campo select option{background:#11110F}
.dos{display:grid;gap:var(--s3)}
@media(min-width:560px){.dos{grid-template-columns:1fr 1fr}}
.cont .btn-1{background:var(--acento);color:#fff;border:0;cursor:pointer;font-family:var(--txt)}
.ficha{display:grid;gap:var(--s3);align-content:start}
.ficha div{padding-bottom:var(--s3);border-bottom:1px solid rgba(255,255,255,.12)}
.ficha dt{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#FF4C77;margin-bottom:7px}
.ficha dd{margin:0;font-size:14.8px;color:rgba(255,255,255,.9)}

footer{background:var(--tinta);color:rgba(255,255,255,.42);padding:var(--s4) 0;border-top:1px solid rgba(255,255,255,.1)}
.pie-f{display:flex;flex-wrap:wrap;gap:var(--s3);justify-content:space-between;font-size:13px}
.pie-f a:hover{color:#fff}

.rev{opacity:0;transform:translateY(22px);transition:opacity .85s var(--ease),transform .85s var(--ease)}
.rev.on{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rev{opacity:1;transform:none}}
:focus-visible{outline:2px solid var(--acento);outline-offset:3px}
/* video del hero: cuadrado, recortado como un cover */
.marco.marco-video{position:relative;aspect-ratio:1/1;background:#0e0e0c}
.marco-video .poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* El iframe se amplia un 18% por encima de lo necesario: asi la franja superior de YouTube
   (titulo del video) queda fuera del recuadro y no se ve. */
.marco-video iframe{position:absolute;top:50%;left:50%;height:118%;width:209.8%;transform:translate(-50%,-50%);border:0;pointer-events:none;opacity:0;transition:opacity 1.2s var(--ease)}
.marco-video.listo iframe{opacity:1}
/* formulario */
.trampa{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.acepto{display:flex;gap:11px;align-items:flex-start;font-size:13px;color:rgba(255,255,255,.62);margin:6px 0 var(--s3)}
.acepto input{margin-top:3px;accent-color:var(--acento);width:16px;height:16px;flex:none}
.acepto a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.estado{margin:var(--s3) 0 0;font-size:14.5px;min-height:1.4em}
.estado.ok{color:#7ee2a8}.estado.error{color:#ff8fa8}
.cont .btn-1[disabled]{opacity:.55;cursor:wait}


/* =====================================================================
   XRC · componentes compartidos por todas las páginas
   ===================================================================== */
:root{--labs:#E11146;--labs-fondo:#0E0D12;--labs-fondo-2:#16141B;--labs-linea:rgba(255,255,255,.1)}
.vis-oculta{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- navegación ---------- */
.menu a.activo{color:var(--tinta)}
.menu a.lnk-labs{color:var(--acento);font-weight:600;display:inline-flex;align-items:center;gap:7px}
.menu a.lnk-labs::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--acento)}
.menu a.lnk-labs:hover{color:#b80d39}
.burger{display:inline-flex;flex-direction:column;justify-content:center;gap:5px;width:42px;height:42px;border:1px solid var(--linea);border-radius:999px;background:var(--fondo-2);cursor:pointer;padding:0 12px}
.burger span{display:block;height:1.6px;background:var(--tinta);border-radius:2px;transition:transform .3s var(--ease),opacity .3s var(--ease)}
@media(min-width:940px){.burger{display:none}}
.panel-movil{display:none;border-top:1px solid var(--linea);background:rgba(247,247,245,.97);backdrop-filter:blur(16px)}
.panel-movil a{display:block;padding:15px var(--lado);font-size:17px;border-bottom:1px solid var(--linea)}
.panel-movil a.lnk-labs{color:var(--acento);font-weight:600}
header.abierto .panel-movil{display:block}
header.abierto{background:rgba(247,247,245,.97)}
header.abierto .burger span:first-child{transform:translateY(3.3px) rotate(45deg)}
header.abierto .burger span:last-child{transform:translateY(-3.3px) rotate(-45deg)}
@media(min-width:940px){.panel-movil{display:none!important}}
@media(max-width:939px){.nav .btn-1.nav-cta{display:none}}

/* ---------- pie ---------- */
.pie-grande{background:var(--tinta);color:rgba(255,255,255,.62);padding:var(--s6) 0 var(--s4)}
.pie-cols{display:grid;gap:var(--s4)}
@media(min-width:760px){.pie-cols{grid-template-columns:1.4fr 1fr 1fr 1fr}}
.pie-cols h4{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#FF4C77;margin:0 0 var(--s2);font-weight:500}
.pie-cols a{display:block;font-size:14px;padding:4px 0;color:rgba(255,255,255,.78)}
.pie-cols a:hover{color:#fff}
.pie-cols p{font-size:13.5px;line-height:1.6;margin:0}
.pie-cols a.lnk-labs{color:#FF4C77}
.pie-base{margin-top:var(--s5);padding-top:var(--s3);border-top:1px solid rgba(255,255,255,.1);display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s2);font-size:12.5px;color:rgba(255,255,255,.4)}

/* ---------- tarjetas de producto con cabecera ---------- */
.prod{padding:0;overflow:hidden}
.prod-media{margin:0;aspect-ratio:16/9;overflow:hidden;background:#111}
.prod-media img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.prod:hover .prod-media img{transform:scale(1.035)}
.prod-cuerpo{padding:var(--s4);display:flex;flex-direction:column;flex:1}
.prod-cuerpo .prod-pie{margin-top:auto}
.prod-nota{font-size:13px;color:var(--tinta-3)}
.prod-cifras{display:flex;gap:var(--s4);margin:var(--s3) 0 0;padding:0;list-style:none}
.prod-cifras b{display:block;font-size:1.35rem;font-weight:600;letter-spacing:-.03em;color:var(--tinta)}
.prod-cifras span{font-size:12px;color:var(--tinta-3)}

/* ---------- XRC Labs: franja en la home ---------- */
.labs-franja{background:var(--labs-fondo);color:#fff;position:relative;overflow:hidden}
.labs-franja::before{content:"";position:absolute;width:780px;height:780px;right:-14%;top:-38%;border-radius:50%;background:radial-gradient(circle,rgba(225,17,70,.28),transparent 64%);pointer-events:none}
.labs-franja .wrap{position:relative}
.labs-marca{display:inline-flex;align-items:center;gap:12px;margin-bottom:var(--s3)}
.labs-marca img{height:22px;width:auto}
.labs-marca span{font-family:var(--mono);font-size:13px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--labs);padding:5px 11px;border:1px solid rgba(225,17,70,.45);border-radius:999px}
.labs-franja h2 .suave,.labs-pag h1 .suave,.labs-pag h2 .suave{color:rgba(255,255,255,.45)}
.labs-franja .lede{color:rgba(255,255,255,.66)}
.labs-grid{display:grid;gap:14px;margin-top:var(--s5)}
@media(min-width:760px){.labs-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1100px){.labs-grid{grid-template-columns:repeat(4,1fr)}}
.labs-card{border:1px solid var(--labs-linea);background:var(--labs-fondo-2);border-radius:14px;padding:var(--s4) var(--s3);transition:border-color .4s var(--ease),transform .4s var(--ease)}
.labs-card:hover{border-color:rgba(225,17,70,.55);transform:translateY(-3px)}
.labs-card .num{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:var(--labs)}
.labs-card h3{color:#fff;margin:var(--s2) 0 10px;font-size:1.15rem}
.labs-card p{color:rgba(255,255,255,.58);font-size:14.2px;margin:0;line-height:1.55}
.btn-labs{background:var(--labs);color:#fff}
.btn-labs:hover{background:#c40e3d;transform:translateY(-2px)}
.btn-borde-osc{border:1px solid rgba(255,255,255,.2);color:#fff}
.btn-borde-osc:hover{border-color:#fff;transform:translateY(-2px)}

/* ---------- páginas interiores ---------- */
.pag-cab{padding:calc(64px + var(--s5)) 0 var(--s4)}
.migas{font-size:13px;color:var(--tinta-3);margin:0 0 var(--s3)}
.migas a:hover{color:var(--tinta)}
.migas span{margin:0 8px;opacity:.5}
.pag-cab h1{max-width:20ch}
.pag-cab .lede{margin-top:var(--s3)}

/* listado de proyectos */
.filtros{display:flex;flex-wrap:wrap;gap:8px;margin:var(--s4) 0 var(--s5)}
.filtro{border:1px solid var(--linea);background:var(--fondo-2);border-radius:999px;padding:8px 16px;font-size:13.5px;color:var(--tinta-2);cursor:pointer;font-family:var(--txt);transition:all .25s var(--ease)}
.filtro:hover{border-color:var(--tinta)}
.filtro[aria-pressed=true]{background:var(--tinta);color:#fff;border-color:var(--tinta)}
.rejilla-proy{display:grid;gap:var(--s5) var(--s4)}
@media(min-width:680px){.rejilla-proy{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1040px){.rejilla-proy{grid-template-columns:repeat(3,1fr)}}
.tarjeta-proy{display:block}
.tarjeta-proy[hidden]{display:none}
.tarjeta-proy figure{margin:0 0 var(--s3);border-radius:12px;overflow:hidden;aspect-ratio:16/10;background:var(--fondo-3)}
.tarjeta-proy img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.tarjeta-proy:hover img{transform:scale(1.04)}
.tarjeta-proy h2,.tarjeta-proy h3{font-size:1.08rem;line-height:1.3;letter-spacing:-.02em;margin:8px 0 0}
.tarjeta-proy:hover h2,.tarjeta-proy:hover h3{color:var(--acento)}

/* ficha de proyecto */
.ficha-cab{padding:calc(64px + var(--s5)) 0 0}
.ficha-cab h1{font-size:clamp(2rem,3.8vw,3.2rem);max-width:24ch}
.ficha-img{margin:var(--s5) 0 0;border-radius:18px;overflow:hidden;background:var(--fondo-3);max-height:min(66vh,620px)}
.ficha-img img{width:100%;height:100%;max-height:min(66vh,620px);object-fit:cover}
.ficha-cuerpo{display:grid;gap:var(--s5);padding-top:var(--s6);padding-bottom:var(--s6)}
@media(min-width:960px){.ficha-cuerpo{grid-template-columns:1fr 280px;gap:var(--s6)}}
.ficha-cuerpo aside{align-self:start}
@media(min-width:960px){.ficha-cuerpo aside{position:sticky;top:96px}}
.prosa{max-width:68ch;font-size:1.04rem;line-height:1.75;color:var(--tinta-2)}
.prosa h2{font-size:1.5rem;color:var(--tinta);margin:var(--s5) 0 var(--s2);letter-spacing:-.025em;line-height:1.2}
.prosa h3{font-size:1.2rem;color:var(--tinta);margin:var(--s4) 0 var(--s1)}
.prosa p{margin:0 0 var(--s3)}
.prosa ul,.prosa ol{margin:0 0 var(--s3);padding-left:1.2em}
.prosa li{margin:6px 0}
.prosa strong{color:var(--tinta);font-weight:600}
.prosa a{color:var(--acento);text-decoration:underline;text-underline-offset:3px}
.prosa figure{margin:var(--s4) 0;border-radius:12px;overflow:hidden}
.prosa img{width:100%;height:auto;border-radius:12px}
.prosa>p:first-of-type{font-size:1.16rem;color:var(--tinta)}
.cta-banda{background:var(--fondo-2);border-block:1px solid var(--linea);padding:var(--s6) 0}
.cta-banda .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s4)}
.cta-banda h2{max-width:22ch}

/* ---------- página XRC Labs ---------- */
.labs-pag{background:var(--labs-fondo);color:#fff}
.labs-pag .pag-cab{position:relative;overflow:hidden;padding-bottom:var(--s6)}
.labs-pag .pag-cab::before{content:"";position:absolute;width:900px;height:900px;right:-18%;top:-30%;border-radius:50%;background:radial-gradient(circle,rgba(225,17,70,.3),transparent 64%);pointer-events:none}
.labs-pag .pag-cab .wrap{position:relative}
.labs-pag .migas,.labs-pag .migas a{color:rgba(255,255,255,.45)}
.labs-pag .lede{color:rgba(255,255,255,.68)}
.labs-pag section{padding:var(--s6) 0;border-top:1px solid var(--labs-linea)}
.labs-pag h2{color:#fff}
.labs-pag .kicker{color:#FF4C77}
.historia{display:grid;gap:var(--s4)}
@media(min-width:900px){.historia{grid-template-columns:1fr 1fr;gap:var(--s6)}}
.historia p{color:rgba(255,255,255,.66);margin:0 0 var(--s2)}
.datos-rescate{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.datos-rescate div{border:1px solid var(--labs-linea);border-radius:12px;padding:var(--s3);background:var(--labs-fondo-2)}
.datos-rescate b{display:block;font-size:1.9rem;font-weight:600;letter-spacing:-.04em;color:#fff;line-height:1}
.datos-rescate span{display:block;margin-top:8px;font-size:13px;color:rgba(255,255,255,.55);line-height:1.4}
.servicios{display:grid;gap:var(--s3);margin-top:var(--s5)}
@media(min-width:800px){.servicios{grid-template-columns:repeat(2,1fr)}}
.servicio{border:1px solid var(--labs-linea);border-radius:16px;background:var(--labs-fondo-2);padding:var(--s4)}
.servicio .num{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:var(--labs)}
.servicio h3{color:#fff;margin:var(--s2) 0 var(--s2)}
.servicio p{color:rgba(255,255,255,.62);margin:0 0 var(--s3);font-size:15px}
.servicio ul{list-style:none;margin:0;padding:var(--s3) 0 0;border-top:1px solid var(--labs-linea);display:grid;gap:8px}
.servicio li{font-size:14px;color:rgba(255,255,255,.75);padding-left:20px;position:relative}
.servicio li::before{content:"";position:absolute;left:0;top:9px;width:8px;height:1.5px;background:var(--labs)}
.servicio.destacado{border-color:rgba(225,17,70,.5);background:linear-gradient(180deg,rgba(225,17,70,.09),var(--labs-fondo-2) 60%)}
.pasos{display:grid;gap:var(--s3);margin-top:var(--s5);counter-reset:paso}
@media(min-width:860px){.pasos{grid-template-columns:repeat(4,1fr)}}
.paso{border-top:2px solid var(--labs);padding-top:var(--s3)}
.paso b{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--labs);margin-bottom:10px}
.paso h3{color:#fff;font-size:1.08rem;margin:0 0 8px}
.paso p{color:rgba(255,255,255,.6);font-size:14.2px;margin:0}
.pila{display:flex;flex-wrap:wrap;gap:8px;margin-top:var(--s4)}
.pila span{font-family:var(--mono);font-size:11px;letter-spacing:.08em;border:1px solid var(--labs-linea);border-radius:7px;padding:7px 12px;color:rgba(255,255,255,.7)}
.faq{margin-top:var(--s4);border-top:1px solid var(--labs-linea)}
.faq details{border-bottom:1px solid var(--labs-linea);padding:var(--s3) 0}
.faq summary{cursor:pointer;font-size:1.05rem;font-weight:600;color:#fff;list-style:none;display:flex;justify-content:space-between;gap:var(--s3)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--labs);font-weight:400;font-size:1.3rem;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq p{color:rgba(255,255,255,.64);margin:var(--s2) 0 0;max-width:70ch}
.labs-pag .cont-wrap{background:transparent}
/* cabecera oscura en XRC Labs */
body.oscuro{background:var(--labs-fondo)}
body.oscuro header{background:transparent;color:#fff}
body.oscuro header.fijo{background:rgba(14,13,18,.82);border-bottom-color:var(--labs-linea)}
body.oscuro .menu a,body.oscuro .marca span{color:rgba(255,255,255,.7)}
body.oscuro .menu a:hover{color:#fff}
body.oscuro .menu a.lnk-labs{color:#FF4C77}
body.oscuro .nav-cta{background:#fff;color:#11110F}
body.oscuro .burger span:not(.vis-oculta){background:#fff}
body.oscuro .panel-movil{background:#0E0D12}
body.oscuro .panel-movil a{color:#fff;border-color:var(--labs-linea)}
/* vídeo propio del hero (MP4 alojado en el servidor) */
.marco-video video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1s var(--ease)}
.marco-video.listo video{opacity:1}
/* vídeos de producto: botón play sobre la cabecera + ventana */
.prod-media{position:relative}
.prod-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border:0;background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.35));cursor:pointer;padding:0}
.prod-play span{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.94);color:#11110F;font:600 14px/1 Inter,sans-serif;padding:12px 18px 12px 14px;border-radius:999px;box-shadow:0 8px 30px rgba(0,0,0,.25);transition:transform .3s var(--ease)}
.prod-play span::before{content:"";width:0;height:0;border-left:11px solid var(--acento);border-top:7px solid transparent;border-bottom:7px solid transparent;margin-left:4px}
.prod-play:hover span,.prod-play:focus-visible span{transform:scale(1.06)}
.prod-acc{display:flex;gap:10px;flex-wrap:wrap}
dialog.vid{border:0;padding:0;background:transparent;max-width:min(1100px,92vw);width:100%;overflow:visible}
dialog.vid.vert{max-width:min(420px,88vw)}
dialog.vid::backdrop{background:rgba(10,10,12,.86);backdrop-filter:blur(4px)}
dialog.vid .caja{position:relative;aspect-ratio:16/9;background:#000;border-radius:14px;overflow:hidden}
dialog.vid.vert .caja{aspect-ratio:9/16;max-height:86vh;margin:0 auto}
dialog.vid iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
dialog.vid .cerrar{position:absolute;top:-46px;right:0;background:none;border:0;color:#fff;font:500 15px Inter,sans-serif;cursor:pointer;padding:8px}
/* pie del vídeo del hero alineado con el borde izquierdo del vídeo (cuadrado, alineado a la derecha) */
@media(min-width:1000px){.hero .marco-video + .pie{width:min(60vh,520px);margin-left:auto}}
/* galería dentro de las fichas */
.prosa .galeria{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:var(--s4) 0}
.prosa .galeria figure{margin:0;aspect-ratio:4/3}
.prosa .galeria img{width:100%;height:100%;object-fit:cover}
.prosa .galeria figure:only-child{aspect-ratio:auto}
.prosa .galeria figure:only-child img{height:auto}
/* prensa en fichas y franja de medios */
.prosa .prensa{margin-top:var(--s5);padding-top:var(--s4);border-top:1px solid var(--linea)}
.prosa .prensa h2{margin-top:0}
.prosa .prensa ul{list-style:none;padding:0;margin:0}
.prosa .prensa li{margin:0;border-bottom:1px solid var(--linea)}
.prosa .prensa a{display:flex;gap:var(--s2);align-items:baseline;padding:12px 0;text-decoration:none;color:var(--tinta)}
.prosa .prensa a:hover{color:var(--acento)}
.prosa .prensa a span{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--acento);min-width:150px;flex-shrink:0}
.prosa .prensa .nota{font-size:13px;color:var(--tinta-3);margin-top:var(--s2)}
.medios{padding-top:0}
.medios .nombres a{font-size:13.8px;color:var(--tinta-2);text-decoration:underline;text-decoration-color:var(--linea);text-underline-offset:4px}
.medios .nombres a:hover{color:var(--acento)}
@media(max-width:600px){.prosa .prensa a{flex-direction:column;gap:2px}}
/* icono de pulso (constantes vitales) en el enlace de XRC Labs */
.menu a.lnk-labs::before{content:none}
.lnk-labs .ico-pulso{flex-shrink:0;overflow:visible}
.lnk-labs .ico-pulso polyline{stroke-dasharray:40;stroke-dashoffset:0;animation:latido 2.6s ease-in-out infinite}
@keyframes latido{0%,55%{stroke-dashoffset:0}70%{stroke-dashoffset:40}71%{stroke-dashoffset:-40}100%{stroke-dashoffset:0}}
.panel-movil a.lnk-labs{display:flex;align-items:center;gap:8px}
@media (prefers-reduced-motion:reduce){.lnk-labs .ico-pulso polyline{animation:none}}
/* Labs: ventajas, guías */
.ventajas{display:grid;gap:var(--s3);margin-top:var(--s5)}
@media(min-width:760px){.ventajas{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1060px){.ventajas{grid-template-columns:repeat(3,1fr)}}
.ventaja{border:1px solid var(--labs-linea);border-radius:16px;padding:var(--s4);background:var(--labs-fondo-2)}
.ventaja .num{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:#FF4C77}
.ventaja h3{color:#fff;margin:var(--s2) 0}
.ventaja p{color:rgba(255,255,255,.65);font-size:15px;margin:0}
.ventaja a{color:#FF4C77;text-decoration:underline;text-underline-offset:3px}
.guias-grid{display:grid;gap:var(--s3);margin-top:var(--s5)}
@media(min-width:760px){.guias-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1060px){.guias-grid{grid-template-columns:repeat(3,1fr)}}
.guia-card{display:flex;flex-direction:column;border:1px solid var(--labs-linea);border-radius:16px;padding:var(--s4);background:transparent;color:#fff;text-decoration:none;transition:border-color .3s,background .3s}
.guia-card:hover{border-color:rgba(225,17,70,.6);background:rgba(225,17,70,.06)}
.guia-card .num{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:#FF4C77}
.guia-card h3{color:#fff;margin:var(--s2) 0;font-size:1.15rem}
.guia-card p{color:rgba(255,255,255,.6);font-size:14.5px;margin:0 0 var(--s3)}
.guia-card .leer{margin-top:auto;color:#FF4C77;font-size:14px;font-weight:600}
.labs-guias{margin:var(--s3) 0 0;font-size:14px;color:rgba(255,255,255,.6)}
.labs-guias a{color:#FF4C77;text-decoration:underline;text-underline-offset:3px}
/* guía (página clara) */
.prosa .entradilla{font-size:1.15rem;color:var(--tinta);line-height:1.6}
.guia-cta{margin:var(--s5) 0;padding:var(--s4);border-radius:16px;background:#0E0D12;color:#fff}
.guia-cta p{color:rgba(255,255,255,.85);margin:0 0 var(--s3);font-size:1.05rem}
.guia-lateral{border-radius:16px;background:#0E0D12;color:#fff;padding:var(--s4)}
.guia-lateral .dato{color:#FF4C77}
.guia-lateral h3{color:#fff;font-size:1.1rem;margin:var(--s2) 0}
.guia-lateral p{color:rgba(255,255,255,.7);font-size:14px}
.otras-guias{list-style:none;padding:0;margin:var(--s2) 0 0}
.otras-guias li{border-bottom:1px solid var(--linea)}
.otras-guias a{display:block;padding:10px 0;font-size:14px;color:var(--tinta);text-decoration:none}
.otras-guias a:hover{color:var(--acento)}
.faq-claro details{border-bottom:1px solid var(--linea)}
.faq-claro summary{cursor:pointer;padding:14px 0;font-weight:600;color:var(--tinta)}
.faq-claro p{margin:0 0 14px}
/* botones dentro de textos: que no hereden el color de enlace */
.prosa a.btn{text-decoration:none}
.prosa a.btn-labs,.prosa a.btn-1,.guia-lateral a.btn-labs{color:#fff}
.prosa a.btn-2,.prosa a.btn-3{color:var(--tinta)}
.prosa{overflow-wrap:break-word;min-width:0}
/* clientes y medios: carrusel horizontal en móvil */
.nombres .dup{display:none}
@media(max-width:760px){
  .clientes .wrap{padding-left:0;padding-right:0}
  .clientes .dato{padding:0 var(--lado)}
  .clientes .marquesina{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
  .clientes .nombres{flex-wrap:nowrap;width:max-content;gap:0;animation:desfile 70s linear infinite}
  .medios .nombres{animation-duration:40s}
  .clientes .nombres > *{white-space:nowrap;padding:0 18px;border-right:1px solid var(--linea)}
  .nombres .dup{display:contents}
  .clientes .marquesina:hover .nombres,.clientes .marquesina:focus-within .nombres{animation-play-state:paused}
}
@keyframes desfile{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.clientes .nombres{animation:none;flex-wrap:wrap;width:auto}.nombres .dup{display:none}}
/* botón flotante de WhatsApp */
.wa-flotante{position:fixed;right:18px;bottom:18px;z-index:60;display:inline-flex;align-items:center;gap:8px;background:#1FAF55;color:#fff;border-radius:999px;padding:12px 16px 12px 13px;box-shadow:0 10px 30px -8px rgba(0,0,0,.35);font-weight:600;font-size:14px;text-decoration:none;transition:transform .3s var(--ease)}
.wa-flotante:hover{transform:translateY(-2px)}
@media(max-width:600px){.wa-flotante span{display:none}.wa-flotante{padding:13px}}
body.oscuro .burger{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.22)}
/* páginas legales */
.datos-legales{margin:var(--s3) 0 var(--s4);border-top:1px solid var(--linea)}
.datos-legales div{display:grid;grid-template-columns:120px 1fr;gap:var(--s2);padding:10px 0;border-bottom:1px solid var(--linea)}
.datos-legales dt{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--tinta-3);padding-top:3px}
.datos-legales dd{margin:0}
@media(max-width:560px){.datos-legales div{grid-template-columns:1fr;gap:2px}}
.nota-legal{font-size:13px;color:var(--tinta-3);margin-top:var(--s5)}
.legal-cuerpo{max-width:760px}
/* tarjetas de guía con imagen */
.guia-card figure{margin:calc(-1 * var(--s4)) calc(-1 * var(--s4)) var(--s3);aspect-ratio:16/9;overflow:hidden;border-radius:16px 16px 0 0}
.guia-card figure img,.guia-card-clara figure img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.guia-card:hover figure img,.guia-card-clara:hover figure img{transform:scale(1.04)}
.guias-grid.claras{margin-top:0}
.guia-card-clara{display:flex;flex-direction:column;color:var(--tinta);text-decoration:none}
.guia-card-clara figure{margin:0 0 var(--s3);aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:var(--fondo-3)}
.guia-card-clara .num{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:var(--acento)}
.guia-card-clara h3{margin:var(--s1) 0;font-size:1.12rem;line-height:1.3}
.guia-card-clara p{color:var(--tinta-3);font-size:14.5px;margin:0 0 var(--s2)}
.guia-card-clara .leer{margin-top:auto;font-size:14px;font-weight:600}
.guia-card-clara:hover h3{color:var(--acento)}
.guia-lateral.claro{background:var(--fondo-2);color:var(--tinta);border:1px solid var(--linea)}
.guia-lateral.claro .dato{color:var(--acento)}
.guia-lateral.claro h3{color:var(--tinta)}
.guia-lateral.claro p{color:var(--tinta-3)}
.guia-cta.xr{background:var(--tinta)}
/* páginas de sección */
.seccion-bloque{padding:var(--s6) 0;border-top:1px solid var(--linea)}
.lista-cols{list-style:none;padding:0;margin:0 0 var(--s4);display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:0 var(--s4)}
.lista-cols li{padding:12px 0;border-bottom:1px solid var(--linea);display:flex;flex-direction:column}
.lista-cols b{font-weight:600}.lista-cols span{color:var(--tinta-3);font-size:14px}
.bloque-producto{display:grid;gap:var(--s4);align-items:center;background:var(--fondo-2);border:1px solid var(--linea);border-radius:18px;overflow:hidden}
@media(min-width:860px){.bloque-producto{grid-template-columns:1.1fr 1fr}}
.bloque-producto figure{margin:0;height:100%}.bloque-producto img{width:100%;height:100%;object-fit:cover;display:block}
.bloque-producto>div{padding:var(--s4)}
.equipo{display:grid;gap:var(--s3);grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.persona{border:1px solid var(--linea);border-radius:16px;padding:var(--s4);background:var(--fondo-2)}
.persona .inicial{display:inline-flex;width:48px;height:48px;border-radius:50%;background:var(--tinta);color:#fff;align-items:center;justify-content:center;font-weight:700;font-size:20px}
.persona h3{margin:var(--s2) 0 0}.persona p{color:var(--tinta-2);font-size:15px}
.sectores{padding:0 0 var(--s5)}
.sectores-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:var(--s2)}
.sectores-links a{border:1px solid var(--linea);border-radius:999px;padding:10px 18px;font-size:14.5px;font-weight:500;background:var(--fondo-2)}
.sectores-links a:hover{border-color:var(--acento);color:var(--acento)}
