
@font-face{font-family:"Archivo";src:url("/a/archivo-wdth.e3a28eade2.woff2") format("woff2");font-weight:100 900;font-stretch:62% 125%;font-display:swap}
@font-face{font-family:"Plex Mono";src:url("/a/plex-mono-400.08949f728d.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Plex Mono";src:url("/a/plex-mono-500.01d2854474.woff2") format("woff2");font-weight:500;font-display:swap}
:root{
  --bg:#0A0706;--bg2:#0F0B09;--s1:#15100D;--warm:#110D0A;--s2:#1C1612;--s3:#272019;
  --fg:#F7F0EB;--fg2:#EEE6E0;--fg3:#E3DBD4;--fg4:#D2C9C1;
  --line:rgba(247,240,235,.08);--line2:rgba(247,240,235,.14);--line3:rgba(247,240,235,.26);
  --sig:#FF7B30;--ok:#FFA266;
  --grad:linear-gradient(112deg,#FF7010,#FA3A32 52%,#F00A4F);
  --sans:"Archivo",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"Archivo",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--code:"Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --pad:clamp(20px,4.2vw,72px);
  /* el ritmo vertical. Tres huecos y nada mas: pie de bloque, bloque a
     bloque y encabezado a contenido. Entre secciones son 216 px, asi que
     un hueco interno de 36 se leia como si no hubiera ninguno. */
  --v1:clamp(16px,1.6vw,22px);
  --v2:clamp(44px,6.2vw,92px);
  --v3:clamp(52px,7.4vw,110px);
  --ease:cubic-bezier(.22,1,.36,1);--snap:cubic-bezier(.75,0,.15,1);
}

/* ==================================================================
   LA ATMÓSFERA
   Medido: el 94.2 % de la superficie vertical del sitio no declara
   fondo y cae al negro del body. La portada son 17,029 px de una sola
   mancha plana. Esto le da respiración sin agregar color al texto.

   OJO CON EL ORDEN: este bloque vive en la hoja más temprana, sin
   !important y con especificidad baja, A PROPÓSITO. Cualquier sección
   que declare su propio fondo (portadas de color, bleed, hero) tiene
   que ganarle, y le gana por venir después. Es la inversa del piso de
   tipografía.
   ================================================================== */

/* ---- EL PULSO. De cada cuatro secciones, dos levantan. Franja por
   sección serían ocho rayas en una página larga y se vería inquieto;
   el pulso lento da tres o cuatro transiciones, que es respirar. */
/* (el relleno plano se reemplazo por el degradado sin borde) */

/* ---- LA CALIDEZ, en los dos momentos ancla que existen en todas las
   páginas: la banda intermedia y el cierre. Radio mayor que el
   elemento y anclaje arriba, para que nunca se vea un borde. */
.ctab,.cta{position:relative;isolation:isolate}
.ctab::before,.cta::before{
  content:"";position:absolute;inset:-40% 0 -10%;z-index:-1;pointer-events:none;
  background:radial-gradient(120% 78% at 50% 26%,rgba(255,123,48,.16),transparent 64%)}

/* El contenido siempre por encima del campo. */
.ctab>*,.cta>*{position:relative;z-index:1}

@media (prefers-reduced-motion:no-preference){
  /* nada que animar: el campo es estático a propósito */
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--sans);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}
img,video,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
:focus-visible{outline:2px solid var(--sig);outline-offset:3px;border-radius:4px}
::selection{background:var(--sig);color:#fff}
.px{padding-inline:var(--pad)}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

.lab{font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg3);font-weight:500;display:inline-flex;align-items:center;gap:10px}
.lab i{width:6px;height:6px;border-radius:50%;background:var(--sig);box-shadow:0 0 0 4px rgba(255,123,48,.16)}
.lab .n{color:var(--fg)}
.d1{font-weight:600;font-stretch:94%;font-size:clamp(36px,4.9vw,86px);line-height:1;letter-spacing:-.04em;margin:0}
.d2{font-weight:600;font-stretch:94%;font-size:clamp(32px,4.1vw,68px);line-height:1.02;letter-spacing:-.035em;margin:0}
.en{font-weight:700;font-stretch:76%;letter-spacing:-.05em}
.lead{font-size:clamp(16.5px,1.25vw,20px);line-height:1.5;color:var(--fg2);max-width:34em;margin:0}
.fig{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.mut{color:var(--fg3)}
.beat{margin-top:var(--v2);font-size:clamp(20px,1.9vw,32px);letter-spacing:-.025em;line-height:1.2;font-weight:500;max-width:24em}
.beat span{color:var(--fg3)}

.btn{--h:52px;height:var(--h);white-space:nowrap;display:inline-flex;align-items:center;gap:12px;padding:0 22px 0 24px;border-radius:999px;font-weight:600;font-size:15.5px;letter-spacing:-.01em;position:relative;overflow:hidden;isolation:isolate;transition:color .25s}
.btn svg{width:16px;height:16px;transition:transform .3s var(--ease)}
.btn:hover svg{transform:translateX(3px)}
.btn--p{background:var(--grad);color:#fff;box-shadow:0 10px 30px -12px rgba(250,58,50,.5)}
.btn--p::before{content:"";position:absolute;inset:0;background:#fff;z-index:-1;transform:translateY(101%);transition:transform .3s var(--ease)}
.btn--p:hover{color:var(--bg)}.btn--p:hover::before{transform:none}
.btn--g{border:1px solid var(--line3);color:var(--fg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:rgba(10,7,6,.25);transition:border-color .25s}
.btn--g:hover{border-color:var(--fg)}
.btn--s{--h:40px;padding:0 16px 0 18px;font-size:14px}

/* reveal: 320ms, una sola vez */
.rv{opacity:0;transform:translateY(16px);transition:opacity .32s ease-out,transform .38s var(--ease)}
.rv.in{opacity:1;transform:none}
.rv.t1{transition-delay:.06s}.rv.t2{transition-delay:.12s}.rv.t3{transition-delay:.18s}.rv.t4{transition-delay:.24s}
.ln{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.ln>span{display:inline-block;transform:translateY(105%);transition:transform .42s var(--ease)}
.in .ln>span{transform:none}
.in .ln:nth-child(2)>span{transition-delay:.06s}.in .ln:nth-child(3)>span{transition-delay:.12s}

.nav{position:fixed;inset:0 0 auto;z-index:50;height:74px;display:flex;align-items:center;justify-content:space-between;gap:24px;transition:background .3s,border-color .3s,height .3s,transform .35s var(--ease);border-bottom:1px solid transparent}
.nav.solid{background:rgba(10,7,6,.76);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);border-color:var(--line);height:62px}
.nav.hide{transform:translateY(-100%)}
.nav__logo img{height:25px;width:auto}
.nav__links{display:flex;gap:4px;align-items:center}
.nav__links>a,.nav__links>button{font-size:14.5px;font-weight:500;color:var(--fg2);padding:8px 14px;border-radius:999px;transition:color .2s,background .2s}
.nav__links>a:hover,.nav__links>button:hover,.nav__links>button[aria-expanded=true]{color:var(--fg);background:rgba(247,240,235,.06)}
.nav__cta{display:flex;gap:10px;align-items:center}
.nav__cta .ghost{font-size:14.5px;font-weight:500;color:var(--fg2);padding:8px 12px}
.nav__cta .ghost:hover{color:var(--fg)}
.mega{position:fixed;left:0;right:0;top:62px;z-index:49;background:rgba(12,9,7,.97);backdrop-filter:blur(20px);border-bottom:1px solid var(--line);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .22s,transform .28s var(--ease),visibility .22s}
.mega.open{opacity:1;visibility:visible;transform:none}
.mega__in{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:40px;padding-block:36px 44px}
.mega h6{margin:0 0 16px;font:500 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--fg3)}
.mega a{display:block;padding:7px 0;color:var(--fg2);font-size:15.5px;transition:color .2s,transform .25s var(--ease)}
.mega a:hover{color:var(--fg);transform:translateX(4px)}
.mega .feat{border:1px solid var(--line2);border-radius:18px;padding:26px;background:var(--s1)}
.mega .feat b{display:block;font-size:21px;letter-spacing:-.02em;margin:10px 0 8px;font-weight:600}
.mega .feat p{margin:0 0 18px;color:var(--fg2);font-size:15px}
.burger{display:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--line2);align-items:center;justify-content:center}
.burger span{width:16px;height:1.5px;background:var(--fg);position:relative;display:block}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;width:16px;height:1.5px;background:var(--fg)}
.burger span::before{top:-5px}.burger span::after{top:5px}

.hero{position:relative;height:100svh;min-height:620px;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end}
.hero__media{position:absolute;inset:-6% 0 0;will-change:transform}
.hero__media video{width:100%;height:100%;object-fit:cover;filter:saturate(.55) contrast(1.05) brightness(.88)}
.hero__tint{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,7,6,.5) 0%,transparent 24%,transparent 48%,rgba(10,7,6,.6) 80%,var(--bg) 100%)}
.hero__tint::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,7,6,.66),rgba(10,7,6,.2) 62%,transparent)}
.hero__in{position:relative;z-index:2;padding-bottom:clamp(32px,4.5vh,60px)}
.hero__top{margin-bottom:clamp(20px,3vh,34px)}
/* la etiqueta es larga: en pantallas chicas se ajusta el tipo para que caiga en dos renglones */
@media (max-width:480px){.hero__top .lab{font-size:10px;letter-spacing:.06em;gap:8px;align-items:flex-start;line-height:1.45}
  .hero__top .lab i{margin-top:5px;flex:0 0 auto}}
.hero .lab{color:rgba(247,240,235,.94);font-weight:600;text-shadow:0 1px 14px rgba(10,7,6,.75)}
.hero__foot span{color:var(--fg2);text-shadow:0 1px 12px rgba(10,7,6,.7)}
.hero h1{max-width:15em}
.hero__row{display:grid;grid-template-columns:1fr auto;align-items:end;gap:40px;margin-top:clamp(24px,4vh,44px)}
.hero__row p{margin:0;max-width:34em;color:var(--fg);font-size:clamp(16px,1.15vw,18.5px);line-height:1.55}
.hero__row p b{color:var(--fg);font-weight:500}
.hero__btns{display:flex;gap:12px;flex-wrap:wrap}
.hero__foot{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line2);margin-top:clamp(20px,3.4vh,40px);padding-top:16px;gap:20px}
.hero__foot span{font:500 11px/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--fg3)}
.hero__foot .sig{font:600 13px var(--sans);letter-spacing:-.01em;text-transform:none;color:var(--fg2)}
.hero__foot .sc{display:flex;align-items:center;gap:10px}
.hero__foot .sc i{width:1px;height:20px;background:var(--line3);position:relative;overflow:hidden}
.hero__foot .sc i::after{content:"";position:absolute;inset:0;background:var(--sig);animation:drip 1.8s var(--ease) infinite}
@keyframes drip{0%{transform:translateY(-100%)}100%{transform:translateY(100%)}}

.logos{padding-block:clamp(34px,4.4vh,52px);display:grid;grid-template-columns:auto 1fr;gap:48px;align-items:center}
.logos__row{display:flex;justify-content:space-between;align-items:center;gap:clamp(24px,3vw,48px);flex-wrap:wrap}
/* Una sola altura para los seis: ya vienen igualados por area de tinta, asi que
   no hace falta parchar ninguno a mano. */
.logos__row img{height:62px;width:auto;opacity:.68;filter:grayscale(1) brightness(1.6);transition:opacity .25s}
.logos__row img:hover{opacity:1}
/* La cifra es el ancla de la banda: el numero cubre a las setenta y los seis
   logotipos dicen quienes son los de distribucion, cada uno en su alt. */
.logos__n{display:flex;align-items:baseline;gap:14px}
.logos__n b{font-size:clamp(34px,3.4vw,50px);font-weight:600;letter-spacing:-.045em;line-height:.9;font-variant-numeric:tabular-nums}
.logos__n span{color:var(--fg3);font-size:14px;line-height:1.4;letter-spacing:-.005em}



/* el sistema */
.sys{padding-block:clamp(56px,8vh,96px) 0;position:relative}
.sys__h{display:flex;justify-content:space-between;align-items:end;gap:32px;margin-bottom:clamp(24px,3.5vh,40px)}
.sys__h p{margin:0;color:var(--fg2);max-width:38em;font-size:clamp(16px,1.2vw,19px)}
.sys__stage{position:relative;display:flex;justify-content:center;perspective:2200px}
.sys__stage::before{content:"";position:absolute;top:4%;left:50%;transform:translateX(-50%);width:min(60vw,860px);height:62%;background:radial-gradient(60% 60% at 50% 40%,rgba(255,123,48,.22),transparent 70%);filter:blur(54px);z-index:-1}
.sys__frame{width:min(1120px,100%);margin-inline:auto;aspect-ratio:16/9;position:relative;overflow:hidden;border-radius:16px;border:1px solid var(--line2);background:#0B0908;box-shadow:0 60px 110px -40px rgba(0,0,0,.92);transform-origin:50% 0%;will-change:transform}
.dash{position:absolute;top:0;left:0;width:1024px;height:576px;transform-origin:top left;transform:scale(var(--ds,1));display:flex;background:linear-gradient(160deg,#100C0A,#0A0807);font-size:11px}
.dash *{box-sizing:border-box}
.dash-side{width:21%;border-right:1px solid var(--line);padding:12px 0;background:rgba(0,0,0,.25)}
.dash-logo{display:flex;align-items:center;gap:8px;padding:0 14px 12px;font-weight:700;font-size:13px;letter-spacing:-.02em}
.dash-logo img{height:16px;width:auto}
.dash-search{margin:0 12px 12px;height:24px;border-radius:7px;border:1px solid var(--line2);background:rgba(247,240,235,.02);display:flex;align-items:center;padding:0 9px;color:var(--fg4);font:500 9.5px var(--mono)}
.dash-nav{display:flex;flex-direction:column;gap:1px;padding:0 8px}
.dash-ni{display:flex;align-items:center;gap:9px;padding:6px 8px;border-radius:7px;color:var(--fg3);font-size:10px;font-weight:500;white-space:nowrap}
.dash-ni svg{width:13px;height:13px;flex:none;opacity:.8}
.dash-ni.on{background:rgba(247,240,235,.07);color:var(--fg);font-weight:600}
.dash-ni.on svg{color:var(--sig);opacity:1}
.dash-main{flex:1;min-width:0;display:flex;flex-direction:column}
.dash-top{height:34px;display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:0 16px;border-bottom:1px solid var(--line)}
.dash-top .ask{background:var(--grad);color:#fff;font:600 9.5px var(--sans);padding:5px 11px;border-radius:7px}
.dash-top .lk{color:var(--fg3);font-size:9.5px;font-weight:500}
.dash-content{flex:1;display:flex;flex-direction:column;padding:14px 16px}
.dash-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.dash-head h3{margin:0;font-size:16px;font-weight:700;letter-spacing:-.025em}
.dash-chips{display:flex;gap:8px}
.dash-chip{font:500 9px var(--mono);color:var(--fg3);border:1px solid var(--line2);border-radius:7px;padding:5px 9px}
.dash-cards{display:flex;gap:9px;margin-bottom:12px}
.dash-card{flex:1;min-width:0;border:1px solid var(--line);border-radius:11px;padding:11px;background:rgba(247,240,235,.02)}
.dash-card .cl{font:500 7.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dash-card .cv{font-size:24px;font-weight:700;font-stretch:88%;letter-spacing:-.035em;margin:6px 0 8px;font-variant-numeric:tabular-nums}
.dash-delta{display:inline-flex;align-items:center;gap:3px;font:600 8px var(--mono);padding:2px 6px;border-radius:5px;color:#FFC49E;background:rgba(255,162,102,.12)}
.dash-card.o{background:var(--grad);border:0}
.dash-card.o .cl{color:rgba(255,255,255,.85)}
.dash-card.o .dash-delta{color:#fff;background:rgba(255,255,255,.22)}
.dash-chart{flex:1;min-height:0;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:11px;padding:12px 13px;background:rgba(247,240,235,.012)}
.dash-chart-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.dash-chart-h h4{margin:0;font-size:12px;font-weight:600}
.dash-legend{display:flex;gap:11px}
.dash-legend span{display:inline-flex;align-items:center;gap:4px;font:500 8.5px var(--mono);color:var(--fg3)}
.dash-legend i{width:6px;height:6px;border-radius:50%}
.dash-chart svg{flex:1;min-height:0;width:100%;display:block}
.dash-bottom{display:flex;gap:11px;margin-top:11px}
.dash-panel{flex:1;min-width:0;border:1px solid var(--line);border-radius:11px;padding:11px 12px;background:rgba(247,240,235,.012)}
.dash-panel h5{margin:0 0 9px;font-size:11px;font-weight:700;display:flex;align-items:center;gap:6px}
.dash-panel h5 svg{width:12px;height:12px;color:var(--sig)}
.dash-pe{font-size:9.5px;color:var(--fg3);display:flex;align-items:center;gap:7px}
.dash-pe svg{width:13px;height:13px;color:var(--ok);flex:none}
.dash-row{display:flex;align-items:center;gap:8px;padding:6px 7px;border-radius:8px;background:rgba(247,240,235,.03);margin-bottom:5px}
.dash-row:last-child{margin-bottom:0}
.dash-row.in{animation:rowin .4s var(--ease)}
@keyframes rowin{from{opacity:0;transform:translateY(-6px)}}
.dash-row .cn{font:500 7.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg3);border:1px solid var(--line2);border-radius:999px;padding:3px 7px;flex:none}
.dash-row .info{flex:1;min-width:0}
.dash-row .nm{font-size:9.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dash-row .ac{font:400 8px var(--mono);color:var(--fg3)}
.dash-row .ck{width:13px;height:13px;color:var(--ok);flex:none}
/* y además cobra: el ciclo no termina en la cotización */
.pago{margin-top:clamp(40px,5vh,68px);padding-top:clamp(28px,3.5vh,44px);border-top:1px solid var(--line2);display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(24px,4vw,64px);align-items:start}
.pago__t{margin:18px 0 0;font-size:clamp(22px,2.3vw,34px);font-weight:600;letter-spacing:-.03em;line-height:1.12;max-width:16em}
.pago__t span{color:var(--fg3)}
.pago__l{list-style:none;margin:0;padding:0}
.pago__l li{padding:15px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:4px}
.pago__l li:first-child{padding-top:0}
.pago__l li:last-child{border-bottom:0;padding-bottom:0}
.pago__l b{font-size:16px;font-weight:600;letter-spacing:-.02em}
.pago__l span{color:var(--fg3);font-size:14.5px;line-height:1.55}
@media (max-width:900px){.pago{grid-template-columns:1fr;gap:26px}}
/* 03. El mismo mostrador en tres momentos, con la respuesta quieta encima. Lo que
   se repite es la escena, no el texto: el argumento se ve en vez de leerse. */
.tn{margin-top:clamp(32px,4.5vh,56px)}
.tn__st{position:relative;display:grid;grid-template-columns:1.28fr .72fr;gap:2px;height:clamp(330px,44vh,430px)}
.tn__f{position:relative;overflow:hidden;background:var(--s1)}
.tn__f figure{position:absolute;inset:0;margin:0;opacity:0;transition:opacity .7s cubic-bezier(.4,0,.2,1)}
.tn__f figure.on{opacity:1}
.tn__f img{width:100%;height:100%;object-fit:cover;display:block}
.tn__f::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;background:linear-gradient(0deg,rgba(10,7,6,.88),rgba(10,7,6,.15) 46%,transparent 72%)}
.tn__lb{position:absolute;z-index:2;left:clamp(18px,2vw,28px);bottom:clamp(16px,2vh,24px);max-width:22em}
.tn__lb b{display:block;font:500 14px var(--mono);letter-spacing:.02em;line-height:1.3}
.tn__lb span{display:block;margin-top:6px;color:var(--fg2);font-size:14px;line-height:1.5}
.tn__r{position:relative;background:var(--s1);padding:clamp(22px,2.2vw,34px);display:flex;flex-direction:column}
.tn__r::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--sig);opacity:.9}
.tn__r.hit::before{animation:tnhit .9s cubic-bezier(.4,0,.2,1)}
@keyframes tnhit{0%{transform:scaleX(0);transform-origin:left}100%{transform:scaleX(1);transform-origin:left}}
.tn__k{display:block;font:500 9.5px var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--sig);margin-bottom:10px}
.tn__r p{margin:0;font-size:clamp(17px,1.5vw,22px);line-height:1.42;letter-spacing:-.018em}
.tn__fix{display:inline-block;margin-top:auto;padding-top:18px;opacity:0;transition:opacity .6s ease .2s;font:500 9.5px var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--fg4)}
.tn__r.seen .tn__fix{opacity:1}
.tn__nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;margin-top:2px}
.tn__n{appearance:none;background:var(--s1);border:0;text-align:left;padding:13px clamp(14px,1.6vw,22px) 15px;cursor:pointer;color:inherit;font:inherit;display:block}
.tn__n i{display:block;height:2px;background:var(--line2);overflow:hidden}
.tn__n i b{display:block;height:100%;width:100%;background:var(--sig);transform:scaleX(0);transform-origin:left}
.tn__n.on i b{animation:tnbar 3.8s linear forwards}
@keyframes tnbar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.tn__n span{display:block;margin-top:10px;font:500 11.5px var(--mono);letter-spacing:.06em;color:var(--fg4);transition:color .3s}
.tn__n.on span{color:var(--fg)}
.tn__n:hover span{color:var(--fg2)}
.tn__n:focus-visible{outline:2px solid var(--sig);outline-offset:-2px}
@media (prefers-reduced-motion:reduce){.tn__n.on i b{transform:scaleX(1)}}
@media (max-width:900px){
  .tn__st{grid-template-columns:1fr;height:auto}
  .tn__f{aspect-ratio:4/3}
  .tn__f::after{background:linear-gradient(0deg,rgba(10,7,6,.95),rgba(10,7,6,.15) 58%),linear-gradient(90deg,rgba(10,7,6,.55),transparent 62%)}
  .tn__r{padding:22px clamp(16px,5vw,24px) 24px}
  .tn__n{padding:12px 10px 14px}
  .tn__n span{font-size:10.5px;letter-spacing:.03em}
}
@media (max-width:820px){.sys__stage{overflow-x:auto;justify-content:flex-start;-webkit-overflow-scrolling:touch}.sys__frame{width:640px;flex:none;border-radius:12px;transform:none!important}.sys__stage::before{display:none}}

/* 01 hoy */
.hoy{position:relative;height:170vh}
.hoy__stick{position:sticky;top:0;height:100svh;overflow:hidden;display:flex;align-items:center}
.hoy__img{position:absolute;inset:0}
.hoy__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% 50%;transition:opacity .5s ease-out}
.hoy__img .b{opacity:0}
.hoy.after .hoy__img .b{opacity:1}
.hoy__img::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,7,6,.92) 0%,rgba(10,7,6,.55) 38%,transparent 62%),linear-gradient(0deg,var(--bg) 0%,transparent 22%,transparent 85%,rgba(10,7,6,.6))}
.hoy__txt{position:relative;z-index:2;width:100%}
.hoy__txt .lab{margin-bottom:24px}
.qs{position:relative;height:calc(clamp(34px,4.6vw,84px)*3.2);width:min(56vw,960px)}
.qs p{position:absolute;left:0;right:0;top:0;margin:0;font-weight:500;font-stretch:90%;font-size:clamp(34px,4.6vw,84px);line-height:1.04;letter-spacing:-.04em;opacity:0;transform:translateY(18px);transition:opacity .28s ease-out,transform .34s var(--ease)}
.qs p.on{opacity:1;transform:none}
.qs p.gone{opacity:0;transform:translateY(-18px)}
.qs p.fin{font-weight:600;font-size:clamp(30px,3.9vw,72px)}
.hoy__meter{display:flex;gap:6px;margin-top:30px}
.hoy__meter i{height:2px;width:40px;background:var(--line2);position:relative;overflow:hidden}
.hoy__meter i b{position:absolute;inset:0;background:var(--fg);transform-origin:left;transform:scaleX(0)}
.hoy__who{margin-top:20px;min-height:2.6em;font:500 11px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg3)}
.hoy__cap{position:absolute;right:var(--pad);bottom:clamp(24px,4vh,48px);z-index:2;display:flex;gap:10px;align-items:center;font:500 11px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg2)}
.hoy__cap i{width:8px;height:8px;border-radius:50%;background:var(--fg4);transition:background .3s}
.hoy.after .hoy__cap i{background:var(--ok);box-shadow:0 0 0 4px rgba(255,162,102,.18)}

.sec{padding-block:clamp(88px,12vh,150px);position:relative}
.sec__h{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.62fr);gap:clamp(32px,5vw,96px);align-items:end;margin-bottom:var(--v3)}
.sec__h .lab{margin-bottom:22px}
/* en la portada la separacion la hace el aire, no una linea: el hueco
   entre secciones ya es de 216 px y la raya solo cortaba la pagina */
.bt{border-top:0}

/* 02 motor */
/* Una pantalla, no dos y media: la seccion ya no se clava mientras el
   visitante baja. Eran 1080 px de desplazamiento con la pagina detenida. */
.motor{position:relative}
.motor__stick{position:relative;padding-block:clamp(72px,10vh,120px);display:flex;flex-direction:column;justify-content:center;overflow:hidden}
.rail{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:clamp(24px,4vh,44px)}
.rail div{font:500 11px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--fg4);transition:color .25s}
.rail div i{display:block;height:2px;background:var(--line2);margin-bottom:12px;position:relative;overflow:hidden}
.rail div i b{position:absolute;inset:0;background:var(--fg);transform-origin:left;transform:scaleX(var(--p,0))}
.rail div.on{color:var(--fg)}
.motor__g{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(32px,5vw,88px);align-items:center}
.stage{position:relative;height:clamp(74px,8.4vw,140px)}
.stage b{position:absolute;left:0;top:0;font-weight:700;font-stretch:76%;font-size:clamp(58px,7.6vw,140px);line-height:.95;letter-spacing:-.05em;opacity:0;transform:translateY(16%);transition:opacity .22s var(--snap),transform .3s var(--snap)}
.stage b.on{opacity:1;transform:none}
.stage b.gone{opacity:0;transform:translateY(-16%)}
.stage__d{position:relative;min-height:4.2em;margin-top:20px;max-width:26em}
.stage__d p{position:absolute;inset:0;margin:0;font-size:clamp(17px,1.35vw,21px);line-height:1.4;color:var(--fg2);opacity:0;transition:opacity .25s}
.stage__d p.on{opacity:1}
.motor__h{margin-bottom:16px;display:flex;justify-content:space-between;align-items:baseline;gap:20px}
/* como los paneles de la 07: superficie plana, sin recuadro ni sombra. Un
   panel es una zona de la pagina, no un objeto que flota encima. */
.card{position:relative;background:var(--s1);padding:clamp(20px,2vw,28px);height:clamp(540px,72vh,680px);overflow:hidden}
.card__v{position:absolute;inset:0;opacity:0;transition:opacity .5s ease-out}
.card__v video{width:100%;height:100%;object-fit:cover;filter:brightness(.5) saturate(.7)}
.card.look .card__v{opacity:.4}
.card__in{position:relative;z-index:2;height:100%;display:flex;flex-direction:column}
.card__top{display:flex;justify-content:space-between;align-items:center;padding:0 4px 14px;border-bottom:1px solid var(--line)}
.card__top .who{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600}
.card__top .who img{width:24px;height:24px}
.card__top .st{font:500 10.5px var(--mono);letter-spacing:.12em;color:var(--fg3);display:flex;gap:8px;align-items:center;text-transform:uppercase}
.card__top .st i{width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 4px rgba(255,162,102,.14)}
.card__b{padding:14px 4px 0;display:flex;flex-direction:column;gap:10px}
.msg{background:var(--s3);border-radius:16px;border-bottom-left-radius:5px;padding:13px 16px;font-size:15px;line-height:1.45;max-width:92%}
.msg small{display:block;font:500 10px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg3);margin-bottom:5px}
.caret{display:inline-block;width:2px;height:1em;background:var(--fg);vertical-align:-2px;margin-left:2px;animation:blink 1s steps(2) infinite}
@keyframes blink{50%{opacity:0}}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 11px;border-radius:999px;border:1px solid var(--line2);font:500 11.5px var(--mono);color:var(--fg3);opacity:0;transform:scale(.94);transition:opacity .2s,transform .24s var(--snap),color .2s,border-color .2s,background .2s}
.chip.on{opacity:1;transform:none}
.chip.lk{color:var(--fg);border-color:rgba(247,240,235,.4);background:rgba(247,240,235,.06)}
.chip svg{width:12px;height:12px;display:none}
.chip.lk svg{display:block;color:var(--ok)}
.cnt{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:13px 16px;background:var(--s2);opacity:0;transform:translateY(8px);transition:opacity .25s,transform .3s var(--ease)}
.cnt.on{opacity:1;transform:none}
.cnt b{font-weight:700;font-stretch:80%;font-size:28px;letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums}
.cnt span{font:500 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg3)}
.sol{background:var(--s2);padding:6px 16px;margin-top:2px;opacity:0;transform:translateY(10px);transition:opacity .25s,transform .3s var(--ease)}
.sol.on{opacity:1;transform:none}
.row{display:grid;grid-template-columns:34px 1fr auto;gap:12px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line);opacity:0;transform:translateX(-8px);transition:opacity .22s,transform .26s var(--snap)}
.row:last-of-type{border-bottom:0}
.row.on{opacity:1;transform:none}
.row figure{margin:0;width:34px;height:34px;border-radius:9px;background:radial-gradient(circle at 50% 40%,#30261e,#17110d);display:grid;place-items:center;overflow:hidden}
.row figure img{width:88%;height:88%;object-fit:contain}
.row b{display:block;font-size:14px;font-weight:500;letter-spacing:-.01em}
.row span{font:400 11px var(--mono);color:var(--fg3)}
.row .pr{font:500 12.5px var(--mono);color:var(--fg);text-align:right;opacity:0;transition:opacity .25s}
.sol.q .row .pr{opacity:1}
.sol__t{display:flex;justify-content:space-between;padding:10px 0 8px;border-top:1px solid var(--line2);font:500 12px var(--mono);letter-spacing:.06em;opacity:0;transition:opacity .25s}
.sol.q .sol__t{opacity:1}
.sol__t b{font-size:15px}
.erp{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;margin-top:2px;background:rgba(255,162,102,.09);border-left:2px solid var(--sig);opacity:0;transform:translateY(8px);transition:opacity .25s,transform .3s var(--ease)}
.erp.on{opacity:1;transform:none}
.erp span{font:500 11.5px var(--mono);color:#FFC49E;display:flex;align-items:center;gap:8px}
.erp span svg{width:14px;height:14px}
.erp em{font-style:normal;font:500 11px var(--mono);color:var(--fg3)}
.erp .send{display:none;--h:34px;pointer-events:none}
.erp.done em{display:none}.erp.done .send{display:inline-flex}
.rule{margin:clamp(22px,3.4vh,34px) 0 0;max-width:26em;padding-top:18px;border-top:1px solid var(--line2);font-size:15px;line-height:1.5;color:var(--fg3)}
.rule b{display:block;color:var(--fg);font-weight:600;font-size:clamp(18px,1.5vw,22px);letter-spacing:-.02em;margin-bottom:6px}
.conv{display:flex;flex-direction:column;gap:8px;max-height:260px;transition:max-height .4s var(--ease),opacity .25s}
.conv.min{max-height:0;opacity:0;overflow:hidden;margin-bottom:-10px}
.ask{align-self:flex-end;max-width:86%;background:rgba(255,123,48,.1);border:1px solid rgba(255,123,48,.35);border-radius:16px;border-bottom-right-radius:5px;padding:11px 15px;font-size:14.5px;line-height:1.45;opacity:0;transform:translateY(6px);transition:opacity .25s,transform .3s var(--snap)}
.ask small{display:block;font:500 10px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--sig);margin-bottom:4px}
.ask.on,.msg.ans.on{opacity:1;transform:none}
.msg.ans{opacity:0;transform:translateY(6px);transition:opacity .25s,transform .3s var(--snap)}
.fun{display:flex;flex-direction:column;background:var(--s2);padding:6px 16px;margin-top:2px;max-height:0;opacity:0;overflow:hidden;transition:max-height .45s var(--ease),opacity .25s}
.fun.on{max-height:360px;opacity:1}
.fun.min{max-height:0;opacity:0;padding-block:0;border-width:0}
.fun>div{display:grid;grid-template-columns:74px 1fr;gap:12px;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--line);opacity:0;transform:translateX(-8px);transition:opacity .22s,transform .26s var(--snap);transition-delay:calc(var(--i)*190ms)}
.fun.on>div{opacity:1;transform:none}
.fun>div:last-child{border-bottom:0}
.fun b{font-weight:700;font-stretch:80%;font-size:22px;letter-spacing:-.03em;font-variant-numeric:tabular-nums;text-align:right}
.fun>div:nth-child(5) b{color:var(--sig)}
.fun span{font:500 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--fg2)}
.fun .x{grid-template-columns:1fr;gap:2px}
.fun .x s{font-size:13.5px;color:var(--fg3)}
.fun .x em{font:500 10.5px var(--mono);font-style:normal;letter-spacing:.06em;color:var(--fg3)}
.card__note{position:absolute;left:22px;bottom:18px;font:500 10px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--fg4);z-index:3}

/* 03 por que ahora */
.inev{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:clamp(32px,5vw,88px);align-items:center}
.stream{position:relative;height:clamp(380px,56vh,540px);overflow:hidden;-webkit-mask:linear-gradient(transparent,#000 18%,#000 82%,transparent);mask:linear-gradient(transparent,#000 18%,#000 82%,transparent)}
.stream__col{display:flex;flex-direction:column;gap:12px;animation:up 34s linear infinite}
.stream__col+.stream__col{position:absolute;top:0;right:0;width:48%;animation-duration:28s;animation-delay:-9s}
.stream__col:first-child{width:48%}
@keyframes up{to{transform:translateY(-50%)}}
.bub{align-self:flex-start;background:var(--s2);border:1px solid var(--line);border-radius:16px;border-bottom-left-radius:5px;padding:12px 16px;font-size:15px;line-height:1.4}
.bub small{display:block;font:500 10px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg3);margin-bottom:4px}
/* la misma regla que el resto de la portada: separa el aire, no una raya */
.inev__pov{margin-top:clamp(56px,8vh,104px);display:grid;grid-template-columns:auto 1fr;gap:clamp(24px,4vw,64px);align-items:end;padding-top:0}
.inev__pov .en{font-size:clamp(40px,5.4vw,96px);line-height:.9}
.inev__pov p{margin:0 0 .5em;max-width:26em;color:var(--fg2);font-size:clamp(16.5px,1.25vw,19px)}

/* 04 frentes */
/* 04 especialista */
.esp__tabs{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--line2);border-radius:999px;margin-bottom:22px}
.esp__tabs button{position:relative;overflow:hidden;height:38px;padding:0 18px;border-radius:999px;font:500 12px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--fg3);background:none;border:0;cursor:pointer}
.esp__tabs button[aria-selected=true]{color:var(--fg);background:var(--s3)}
.esp__tabs button i{position:absolute;left:14px;right:14px;bottom:5px;height:2px;background:var(--sig);transform-origin:left;transform:scaleX(var(--p,0))}
.esp__tabs button:focus-visible{outline:2px solid var(--sig);outline-offset:2px}
.esp__g{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2px;background:var(--line);border:1px solid var(--line2);border-radius:22px;overflow:hidden}
.esp__ph{margin:0;position:relative;min-height:480px;background:var(--s1)}
.esp__ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .4s ease-out}
.esp__ph img.on{opacity:1}
.esp__ph figcaption{position:absolute;left:18px;bottom:16px;font:500 10.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg);background:rgba(10,7,6,.7);padding:7px 11px;border-radius:999px}
.esp__chat{background:var(--s1);display:flex;flex-direction:column;min-height:480px}
.esp__hd{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line)}
.esp__hd img{width:26px;height:26px}
.esp__hd b{display:block;font-size:14px}
.esp__hd small{font:500 10px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg3)}
.esp__bd{position:relative;flex:1;display:grid;padding:18px 20px}
.esp__c{grid-area:1/1;display:flex;flex-direction:column;gap:10px;opacity:0;visibility:hidden;transition:opacity .3s}
.esp__c.on{opacity:1;visibility:visible}
.esp__c p{margin:0;max-width:88%;padding:11px 15px;border-radius:16px;font-size:14.5px;line-height:1.45;opacity:0;transform:translateY(6px);transition:opacity .3s,transform .34s var(--snap);transition-delay:calc(var(--i)*650ms)}
.esp__c.go p{opacity:1;transform:none}
.esp__c p small{display:block;font:500 10px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg3);margin-bottom:4px}
.esp__c .e{align-self:flex-start;background:var(--s3);border-bottom-left-radius:5px}
.esp__c .k{align-self:flex-end;background:rgba(255,123,48,.09);border:1px solid rgba(255,123,48,.3);border-bottom-right-radius:5px}
.esp__c .k small{color:var(--sig)}
.esp__c .k.ok{background:rgba(255,162,102,.07);border-color:rgba(255,162,102,.3)}
.esp__c .k.ok small{color:var(--ok)}
.esp__pts{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,48px);margin-top:clamp(28px,4vh,44px)}
.esp__pts b{display:block;font-size:17px;font-weight:600;letter-spacing:-.015em;margin-bottom:6px}
.esp__pts p{margin:0;color:var(--fg2);font-size:15.5px;line-height:1.5;max-width:26em}
@media (max-width:900px){.esp__g{grid-template-columns:1fr}.esp__ph{min-height:0;aspect-ratio:16/10}.esp__chat{min-height:560px}.esp__pts{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.esp__c p{transition:none}.esp__ph img{transition:none}}
.fr{display:grid;grid-template-columns:repeat(4,1fr);gap:2px}
.fr article{position:relative;background:var(--s1);display:flex;flex-direction:column;overflow:hidden}
.fr figure{margin:0;aspect-ratio:16/9;overflow:hidden;position:relative}

.fr figure::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,var(--s1),transparent 55%)}
.fr .bd{padding:0 clamp(24px,2.45vw,36px) clamp(24px,2.45vw,36px);margin-top:-34px;position:relative;z-index:2;display:flex;flex-direction:column;flex:1}
.fr .n{font:500 10.5px var(--mono);letter-spacing:.14em;color:var(--fg3)}
.fr h3{margin:8px 0 16px;font-size:clamp(20px,1.55vw,25px);font-weight:600;letter-spacing:-.025em;line-height:1.1}
.fr q{display:block;font-size:15.5px;color:var(--fg3);quotes:none;text-decoration:line-through;text-decoration-color:rgba(247,240,235,.3);text-decoration-thickness:1px;margin-bottom:12px}
.fr p{margin:auto 0 0;padding-top:12px;border-top:1px solid var(--line2);font-size:15.5px;line-height:1.45}
.fr small{display:block;font:500 10px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--fg4);margin-bottom:6px}

/* 05 industrias */
.ind{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,4vw,72px);align-items:stretch}
.seg2{display:inline-grid;grid-template-columns:1fr 1fr;border:1px solid var(--line2);border-radius:999px;padding:4px;margin-bottom:20px;position:relative;background:var(--s1)}
.seg2 button{position:relative;z-index:2;height:40px;padding:0 18px;border-radius:999px;font-size:14px;font-weight:600;color:var(--fg3);transition:color .25s}
.seg2 button.on{color:var(--bg)}
.seg2 .th{position:absolute;z-index:1;top:4px;bottom:4px;left:4px;width:calc(50% - 4px);border-radius:999px;background:var(--fg);transition:transform .35s var(--snap)}
.ilist{list-style:none;margin:0;padding:0;border-top:1px solid var(--line2)}
.ilist li button{width:100%;text-align:left;display:grid;grid-template-columns:36px 1fr 14px;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--line);font-size:clamp(16.5px,1.3vw,20px);font-weight:500;letter-spacing:-.02em;color:var(--fg3);transition:color .2s,padding .25s var(--ease)}
.ilist li button small{font:500 10.5px var(--mono);color:var(--fg4)}
.ilist li button i{width:6px;height:6px;border-radius:50%;background:transparent;justify-self:end;transition:background .2s}
.ilist li button:hover{color:var(--fg2)}
.ilist li button.on{color:var(--fg);padding-left:10px}
.ilist li button.on i{background:var(--sig)}
.ilist .nw{font:500 9.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--line3);color:var(--fg2);padding:3px 7px;border-radius:999px;margin-left:10px;vertical-align:3px}
.istage{position:relative;overflow:hidden;background:var(--s1);min-height:clamp(392px,50vh,508px);display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(24px,2.45vw,36px)}
/* al quitarle el nombre repetido y el epigrafe, entre la foto y el texto
   quedaba un hueco muerto: la foto lo ocupa, con un desvanecido abajo para
   que el texto siga separandose */
.istage__ph{position:absolute;inset:0 0 auto;height:72%;background-size:cover;background-position:52% 55%;transition:opacity .28s var(--ease);-webkit-mask-image:linear-gradient(180deg,#000 62%,transparent);mask-image:linear-gradient(180deg,#000 62%,transparent)}
.istage__ph::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#0C0907 4%,rgba(12,9,7,.25) 55%,transparent 100%)}
.istage.chg .istage__ph{opacity:0}
.istage__txt{position:relative;z-index:2;max-width:32em}
.istage__txt .nm{font-weight:600;letter-spacing:-.035em;line-height:1;font-size:clamp(28px,3vw,50px);margin:12px 0 20px}
.istage__txt .rq{display:inline-block;background:var(--s3);border-radius:16px;border-bottom-left-radius:5px;padding:12px 16px;font-size:16px;margin-bottom:14px}
.istage__txt .rq small,.istage__txt .rs small{display:block;font:500 10px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg3);margin-bottom:4px}
.istage__txt .rs{display:flex;gap:10px;align-items:flex-start;font-size:16px;color:var(--fg2)}
.istage__txt .rs svg{width:16px;height:16px;color:var(--ok);flex:none;margin-top:4px}
.istage__txt .tag{font:500 10.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg3)}
.istage .swap{transition:opacity .22s,transform .3s var(--ease)}
.istage.chg .swap{opacity:0;transform:translateY(8px)}
.ibar{position:absolute;left:0;right:0;top:0;height:2px;background:var(--line)}
.ibar b{position:absolute;inset:0;background:var(--fg);transform-origin:left;transform:scaleX(0)}

/* 06 resultados */
.res{display:grid;grid-template-columns:1.25fr 1fr 1fr;border-top:1px solid var(--line2)}
.res article{padding:34px 32px 38px 0;border-right:1px solid var(--line)}
.res article+article{padding-left:32px}
.res article:last-child{border-right:0}
.res .v{font-weight:600;font-stretch:84%;font-size:clamp(46px,5.2vw,92px);letter-spacing:-.05em;line-height:.9;display:flex;align-items:baseline;gap:6px}
.res .v small{font-size:.32em;letter-spacing:-.01em;color:var(--fg3);font-weight:500;font-stretch:100%}
.res p{margin:20px 0 16px;color:var(--fg2);font-size:15.5px;line-height:1.5;max-width:26em}
.res .who{font:500 11px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--fg3);display:flex;align-items:center;gap:10px}
.res .who i{width:14px;height:1px;background:var(--fg3)}
.show{display:grid;grid-template-columns:1fr 1fr;gap:2px;margin-top:var(--v2)}
.show__c{position:relative;aspect-ratio:16/11;overflow:hidden;background:#000}
.show__c video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.6)}
.show__c::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,7,6,.95) 8%,rgba(10,7,6,.55) 55%,rgba(10,7,6,.2))}
.show__t{position:absolute;left:clamp(20px,3vw,46px);right:clamp(20px,3vw,46px);bottom:clamp(24px,4vw,48px);z-index:2}
.show__t .en{font-size:clamp(30px,3.4vw,62px);line-height:.92;display:block;margin:12px 0}
.show__t p{margin:0;color:var(--fg);max-width:28em;font-size:15.5px}
.mex{margin-top:2px;background:var(--s1);display:grid;grid-template-columns:auto 1fr auto;gap:40px;align-items:center;padding:30px clamp(20px,3vw,46px)}
.mex img{height:28px;width:auto;opacity:.8}
.mex p{margin:0;font-size:clamp(17px,1.5vw,22px);letter-spacing:-.02em;font-weight:500}

/* 07 integraciones */
.erpwall{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
.erpwall>a:not(.mk){position:relative;background:var(--s1);border:1px solid var(--line);border-radius:14px;height:112px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:14px;transition:background .25s,border-color .25s,transform .25s var(--ease)}
.erpwall>a:not(.mk):hover{background:var(--s2);border-color:var(--line2);transform:translateY(-2px)}
.erpwall>a:not(.mk) .lg{height:26px;display:grid;place-items:center}
.erpwall>a:not(.mk) .lg img{max-height:26px;width:auto;opacity:.82;transition:opacity .25s}
.erpwall>a:not(.mk):hover .lg img{opacity:1}
.erpwall>a:not(.mk) .tx{font-weight:600;font-stretch:104%;font-size:16px;text-align:center;line-height:1.1;letter-spacing:-.02em;color:var(--fg2)}
.erpwall>a:not(.mk) b{font:500 10.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg3);text-align:center;line-height:1.3}
.erpwall i{position:absolute;right:12px;top:12px;width:6px;height:6px;border-radius:50%;background:var(--fg4)}
.erpwall i.c{background:var(--sig);box-shadow:0 0 0 4px rgba(255,123,48,.16)}
.erpwall i.p{background:transparent;border:1px solid var(--fg3)}
.legend{display:flex;gap:22px;flex-wrap:wrap;font:500 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg3);margin-top:20px}
.legend span{display:flex;align-items:center;gap:8px}
.legend i{width:7px;height:7px;border-radius:50%;background:var(--fg4)}
.legend i.c{background:var(--sig)}.legend i.p{background:transparent;border:1px solid var(--fg3)}
.apps{display:flex;flex-wrap:wrap;gap:10px;margin-top:36px;align-items:center}
.pill{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 14px;border-radius:999px;font:500 12px var(--mono);letter-spacing:.04em;border:1px solid var(--line2);color:var(--fg2)}
.pill svg{width:14px;height:14px;fill:currentColor}

/* 08 control */
.ctl{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(32px,5vw,88px);align-items:center}
.seg{position:relative;display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line2);border-radius:999px;padding:5px;background:var(--s1)}
.seg button{position:relative;z-index:2;height:48px;border-radius:999px;font-weight:600;font-size:15px;color:var(--fg3);transition:color .25s}
.seg button.on{color:var(--bg)}
.seg .th{position:absolute;z-index:1;top:5px;bottom:5px;left:5px;width:calc((100% - 10px)/3);border-radius:999px;background:var(--fg);transition:transform .35s var(--snap)}
.ctl__txt{margin-top:26px;min-height:11em}
.tray__f span{min-height:1.1em;display:block}
.ctl__txt .tag{font:500 10.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--sig);display:block;margin-bottom:10px;min-height:1.2em}
.ctl__txt b{display:block;font-size:clamp(28px,2.6vw,42px);font-weight:600;letter-spacing:-.035em;line-height:1;margin-bottom:12px}
.ctl__txt p{margin:0;color:var(--fg2);font-size:clamp(16.5px,1.25vw,19px);max-width:25em}
.ctl__stats{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line2);margin-top:22px}
.ctl__stats div{padding:14px 0}
.ctl__stats div+div{padding-left:20px;border-left:1px solid var(--line)}
.ctl__stats small{display:block;font:500 10.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg3);margin-bottom:6px}
.ctl__stats span{font-size:23px;font-weight:600;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.diag{position:relative;border:1px solid var(--line2);border-radius:24px;background:radial-gradient(80% 70% at 50% 50%,#1A1410,#0D0A08);aspect-ratio:16/11;overflow:hidden}
.diag svg{position:absolute;inset:0;width:100%;height:100%}
.diag .path{fill:none;stroke:rgba(247,240,235,.12);stroke-width:1.5}
.node{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.node .c{width:60px;height:60px;border-radius:50%;border:1px solid var(--line3);background:var(--s2);display:grid;place-items:center;transition:box-shadow .2s,border-color .2s}
.node .c svg{position:static;width:24px;height:24px;color:var(--fg)}
.node.pk .c{width:80px;height:80px;background:#fff;border:0}
.node.pk .c img{width:38px;height:38px}
.node b{font-size:13.5px;font-weight:600;letter-spacing:-.01em}
.node small{font:500 10px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg3);margin-top:-6px}
.node.pulse .c{box-shadow:0 0 0 8px rgba(247,240,235,.08);border-color:var(--fg)}
.guard{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;margin-top:clamp(36px,5vh,64px)}
.guard div{background:var(--s1);padding:22px 20px 24px}
.guard svg{width:20px;height:20px;color:var(--fg2);margin-bottom:20px}
.guard b{display:block;font-size:17px;font-weight:600;letter-spacing:-.02em;margin-bottom:6px}
.guard p{margin:0;color:var(--fg3);font-size:14.5px;line-height:1.5}


.opstage{display:grid;grid-template-columns:minmax(0,1.62fr) minmax(0,1fr);gap:clamp(20px,2.4vw,34px);align-items:stretch;margin-bottom:var(--v2)}
.opstage .sys__stage{display:block;perspective:none}
.opstage .sys__stage::before{display:none}
.opstage .sys__frame{width:100%;margin:0;transform:none!important;box-shadow:0 40px 90px -40px rgba(0,0,0,.9)}
.opstage .tray{display:flex;flex-direction:column;background:transparent}
/* La bandeja tiene altura propia y fija. Nada de lo que pase adentro mueve la página. */
.opstage .tray{height:var(--th,auto);overflow:hidden}
.opstage .tray__l{flex:1 1 auto;height:auto;min-height:0;max-height:none;overflow:hidden}
#operacion{overflow-anchor:none}
.opg{display:none}
@media (max-width:1180px){
  .opstage{grid-template-columns:1fr}
  .opstage .tray{height:auto}
  .opstage .tray__l{flex:0 0 auto;height:340px}
}
/* con la bandeja angosta el estado va bajo el texto: así el renglón no se parte en tres líneas */
@media (max-width:1499px){
  .opstage .tr{grid-template-columns:auto minmax(0,1fr);gap:8px 14px;align-items:start}
  .opstage .tr .ch{grid-column:1;grid-row:1;align-self:center}
  .opstage .tr>div{grid-column:2;grid-row:1}
  .opstage .tr .stt{grid-column:2;grid-row:2;justify-content:flex-start;white-space:normal;font-size:10.5px}
  .opstage .tr{padding:13px 15px;gap:5px 12px;min-height:0}
  .opstage .tr em{margin-top:3px}
  .opstage .tray__l{gap:2px}
}
@media (max-width:820px){
  .opstage .sys__stage{display:none}
}
.opl{grid-template-columns:repeat(4,1fr)!important;gap:2px}
.opl article{flex-direction:column}
@media (max-width:1180px){.opl{grid-template-columns:1fr 1fr!important}}
@media (max-width:820px){.opl{grid-template-columns:1fr!important}}

/* 09 quienes somos */
.acc{display:flex;gap:2px;height:clamp(440px,62vh,620px)}
.acc__p{position:relative;flex:1;min-width:0;overflow:hidden;background:var(--s1);cursor:pointer;transition:flex .5s var(--snap)}
.acc__p.on{flex:3.4}
.acc__p .bg{position:absolute;inset:0;opacity:.35;transition:opacity .4s}
.acc__p.on .bg{opacity:1}
.acc__p .bg img{width:100%;height:100%;object-fit:cover}
.acc__p .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,7,6,.95) 5%,rgba(10,7,6,.35) 55%,rgba(10,7,6,.2))}
.acc__p .n{position:absolute;left:26px;top:24px;z-index:2;font:500 11px var(--mono);letter-spacing:.14em;color:var(--fg2)}
.acc__p .tt{position:absolute;left:26px;right:26px;bottom:28px;z-index:2}
.acc__p h3{margin:0;font-weight:600;letter-spacing:-.03em;line-height:1;font-size:clamp(21px,1.9vw,28px);transition:font-size .4s var(--snap)}
.acc__p.on h3{font-size:clamp(28px,3vw,50px)}
.acc__p p{margin:12px 0 0;max-width:24em;color:var(--fg2);font-size:clamp(15.5px,1.15vw,18px);opacity:0;transition:opacity .25s}
.acc__p.on p{opacity:1;transition-delay:.18s}
.acc__p .bar{position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--line2);z-index:3}
.acc__p .bar b{position:absolute;inset:0;background:var(--fg);transform-origin:left;transform:scaleX(0)}
.acc__p.on .bar b{animation:fill 7s linear forwards}
@keyframes fill{to{transform:scaleX(1)}}
.metr{position:absolute;inset:0;display:flex;align-items:flex-end;gap:6px;padding:80px 26px 140px}
.metr i{flex:1;background:rgba(247,240,235,.12);border-radius:2px;height:var(--h)}
.metr i.hi{background:var(--grad)}

/* 10 formas */
.ways{display:grid;grid-template-columns:repeat(4,1fr);gap:2px}
.ways a{position:relative;background:var(--s1);padding:28px 24px 30px;min-height:320px;display:flex;flex-direction:column;overflow:hidden;transition:background .25s}
.ways a:hover{background:var(--s2)}
.ways .n{font:500 11px var(--mono);letter-spacing:.14em;color:var(--fg3)}
.ways b{font-size:clamp(21px,1.8vw,28px);font-weight:600;letter-spacing:-.03em;line-height:1.05;margin:auto 0 12px}
.ways p{margin:0 0 20px;color:var(--fg2);font-size:15px}
.ways .k{font:500 11px var(--mono);letter-spacing:.08em;color:var(--fg3);border-top:1px solid var(--line2);padding-top:14px;display:flex;justify-content:space-between;align-items:center}
.ways .k svg{width:16px;height:16px;transition:transform .25s var(--ease)}
.ways a:hover .k svg{transform:translateX(4px)}

/* 11 equipo */
.team__big{display:grid;grid-template-columns:auto 1fr;gap:clamp(24px,4vw,64px);align-items:end}
.team__big .v{font-weight:700;font-stretch:70%;font-size:clamp(100px,15vw,280px);line-height:.8;letter-spacing:-.06em}
.team__big p{margin:0 0 .6em;font-size:clamp(17px,1.4vw,21px);line-height:1.4;max-width:24em}
.tl{position:relative;display:grid;grid-template-columns:repeat(5,1fr);margin-top:clamp(48px,7vh,88px)}
.tl::before{content:"";position:absolute;left:0;right:0;top:7px;height:1px;background:var(--line2)}
.tl .prog{position:absolute;left:0;top:7px;height:1px;background:var(--fg);width:0;transition:width 1.2s var(--ease)}
.tl.in .prog{width:100%}
.tl div{position:relative;padding-right:20px}
.tl div::before{content:"";display:block;width:15px;height:15px;border-radius:50%;background:var(--bg);border:1px solid var(--line3);margin-bottom:22px;transition:background .25s,border-color .25s}
.tl.in div::before{background:var(--fg);border-color:var(--fg)}
.tl.in div:nth-child(3)::before{transition-delay:.25s}.tl.in div:nth-child(4)::before{transition-delay:.5s}.tl.in div:nth-child(5)::before{transition-delay:.75s}.tl.in div:nth-child(6)::before{transition-delay:1s}
.tl small{font:500 11px var(--mono);color:var(--fg3);letter-spacing:.1em}
.tl b{display:block;font-size:18px;font-weight:600;letter-spacing:-.02em;margin:10px 0 6px}
.tl span{font-size:15px;color:var(--fg3);line-height:1.45;display:block;max-width:15em}

.faq{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,5vw,88px)}
.faq details{border-bottom:1px solid var(--line2)}
.faq details:first-child{border-top:1px solid var(--line2)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:24px;padding:24px 0;font-size:clamp(18px,1.4vw,22px);font-weight:500;letter-spacing:-.02em}
.faq summary::-webkit-details-marker{display:none}
.faq summary i{flex:none;width:30px;height:30px;border-radius:50%;border:1px solid var(--line3);position:relative;transition:transform .25s var(--ease),background .2s}
.faq summary i::before,.faq summary i::after{content:"";position:absolute;left:50%;top:50%;width:10px;height:1.5px;background:var(--fg);transform:translate(-50%,-50%)}
.faq summary i::after{transform:translate(-50%,-50%) rotate(90deg)}
.faq details[open] summary i{transform:rotate(45deg);background:var(--fg)}
.faq details[open] summary i::before,.faq details[open] summary i::after{background:var(--bg)}
.faq details p{margin:0 0 26px;color:var(--fg2);max-width:40em}

.fin{position:relative;height:135vh}
.fin__stick{position:sticky;top:0;height:100svh;overflow:hidden;display:flex;align-items:center;justify-content:center;text-align:center}
.fin__bg{position:absolute;inset:0;opacity:0;transition:opacity .6s ease-out}
.fin__bg img{width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.fin.last .fin__bg{opacity:1}
.fin__bg::after{content:"";position:absolute;inset:0;background:radial-gradient(55% 45% at 50% 50%,rgba(10,7,6,.8),rgba(10,7,6,.4) 80%),linear-gradient(180deg,var(--bg),transparent 25%,transparent 75%,var(--bg))}
.fin__w{position:relative;z-index:2;width:100%}
.words{position:relative;height:clamp(96px,13vw,240px)}
.words b{position:absolute;left:0;right:0;top:50%;font-weight:700;font-stretch:76%;font-size:clamp(50px,9.4vw,180px);line-height:.92;letter-spacing:-.05em;opacity:0;transform:translateY(-50%) scale(1.08);transition:opacity .22s var(--snap),transform .3s var(--snap)}
.words b.on{opacity:1;transform:translateY(-50%)}
.words b.gone{opacity:0;transform:translateY(-50%) scale(.96)}
.words b.yg{font-size:clamp(62px,12vw,230px)}
.fin__cta{margin-top:clamp(24px,4vh,48px);opacity:0;transform:translateY(12px);transition:opacity .4s ease-out,transform .45s var(--ease);pointer-events:none}
.fin.last .fin__cta{opacity:1;transform:none;pointer-events:auto;transition-delay:.15s}
.fin__cta .lab{margin-bottom:16px;color:var(--fg)}
.fin__cta p{margin:0 auto 30px;color:var(--fg);max-width:32em;font-size:clamp(16.5px,1.25vw,19px)}
.fin__cta .hero__btns{justify-content:center}

.foot{border-top:1px solid var(--line);padding-top:64px;overflow:hidden}
.foot__g{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:40px}
.foot h5{margin:0 0 16px;font:500 11px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--fg3)}
.foot ul{list-style:none;margin:0;padding:0}
.foot li a{display:block;padding:5px 0;color:var(--fg2);font-size:15px}
.foot li a:hover{color:var(--fg)}
.foot__tag{color:var(--fg2);max-width:22em;margin:16px 0 24px}
.foot__big{margin-top:64px;opacity:.07;pointer-events:none;user-select:none}
.foot__big img{width:100%;height:auto}
.foot__seo{color:var(--fg4);font-size:13px;line-height:1.6;max-width:70em;margin:0 0 26px}
.foot__legal{display:flex;justify-content:space-between;gap:20px;padding-block:20px 26px;border-top:1px solid var(--line);font:500 11px var(--mono);letter-spacing:.08em;color:var(--fg4);text-transform:uppercase}

dialog{border:0;padding:0;background:transparent;color:var(--fg);max-width:none;max-height:none;width:100%;height:100%}
dialog::backdrop{background:rgba(5,3,2,.72);backdrop-filter:blur(8px)}
.dlg{position:absolute;right:0;top:0;bottom:0;width:min(560px,100%);background:var(--bg2);border-left:1px solid var(--line2);padding:32px clamp(22px,3vw,44px);overflow:auto;animation:slin .35s var(--ease)}
@keyframes slin{from{transform:translateX(100%)}}
.dlg__x{position:absolute;right:22px;top:22px;width:40px;height:40px;border-radius:50%;border:1px solid var(--line2);display:grid;place-items:center}
.dlg__x svg{width:14px;height:14px}
.dlg h3{font-size:33px;font-weight:600;letter-spacing:-.035em;line-height:1.02;margin:46px 0 12px}
.dlg>div>p{color:var(--fg2);margin:0 0 28px}
.fld{display:block;margin-bottom:14px}
.fld span{display:block;font:500 11px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg3);margin-bottom:8px}
.fld input{width:100%;height:52px;border-radius:12px;border:1px solid var(--line2);background:var(--s1);color:var(--fg);font:inherit;padding:0 16px;transition:border-color .2s}
.fld input:focus{outline:0;border-color:var(--fg)}
.days,.slots{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:18px}
.slots{grid-template-columns:repeat(3,1fr)}
.days button,.slots button{border:1px solid var(--line2);border-radius:12px;padding:12px 6px;text-align:center;font-size:14px;transition:border-color .2s,background .2s}
.days button small{display:block;font:500 10px var(--mono);color:var(--fg3);letter-spacing:.1em;text-transform:uppercase}
.days button b{font-size:20px;font-weight:600}
.days button.on,.slots button.on{border-color:var(--fg);background:rgba(247,240,235,.08)}
.stp{display:none}.stp.on{display:block;animation:fu .3s var(--ease)}
@keyframes fu{from{opacity:0;transform:translateY(8px)}}
.ok-big{font-weight:700;font-stretch:76%;font-size:72px;letter-spacing:-.05em;line-height:.9;margin:36px 0 16px}

/* CTA intermedios y barra móvil */
.ctab{padding-block:clamp(64px,8.2vw,118px)}
/* un llamado no es un objeto: es una pausa. Sin recuadro y con el aire
   que antes se gastaba en el borde */
.ctab__in{display:flex;justify-content:space-between;align-items:center;gap:22px 48px;flex-wrap:wrap;padding:0}
.ctab__in b{display:block;font-size:clamp(19px,1.6vw,24px);font-weight:600;letter-spacing:-.02em}
.ctab__in span{display:block;margin-top:6px;color:var(--fg2);font-size:15.5px;line-height:1.5;max-width:40em}
.sub__cta{margin-top:26px}
@media (max-width:720px){
 .ctab__in .hero__btns{width:100%;flex-direction:column}.ctab__in .hero__btns .btn{justify-content:center}
}


.more{display:flex;align-items:center;gap:24px;margin-top:clamp(28px,4vh,44px);flex-wrap:wrap}
.more>span{font:500 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg4);max-width:52em;line-height:1.7}
/* el renglón de industria: el botón abre la ficha, la flecha lleva a la página */
.ilist li{position:relative}
.il__go{position:absolute;right:0;top:50%;transform:translateY(-50%);width:44px;height:44px;display:grid;place-items:center;color:var(--fg4);z-index:2;transition:color .2s}
.il__go svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.5}
.il__go:hover{color:var(--sig)}
.ilist li button{padding-right:48px}
#iname a{color:inherit;text-decoration:none;display:inline-flex;align-items:baseline;gap:12px;transition:color .2s}
#iname a:hover{color:var(--sig)}
#iname a svg{width:.5em;height:.5em;fill:none;stroke:currentColor;stroke-width:2;flex:none}
.cred p{margin:0;font-size:clamp(17px,1.45vw,22px);line-height:1.35;letter-spacing:-.02em;max-width:34em;font-weight:500}
.cred div{display:flex;flex-direction:column;gap:6px}
.cred div:first-child{flex-direction:row;align-items:baseline;gap:16px}
/* el <b> que abre el párrafo hereda su tamaño; los 16px eran para el otro
   uso de .cred, y aquí hacían que la frase en negritas saliera más chica */
.cred div b{font-size:16px;font-weight:600;letter-spacing:-.02em;max-width:18em}
.cred p b{font-size:inherit;font-weight:650}
.cred span:not(.v){color:var(--fg3);font-size:14.5px;max-width:34em}
/* Sin superficie propia: los renglones flotan sobre el fondo de la seccion.
   Quitarle el borde no bastaba porque la caja seguia estando ahi. */
.tray{background:transparent;padding:0}
.tray__h{display:flex;justify-content:space-between;align-items:center;padding-bottom:18px;border-bottom:1px solid var(--line)}
.tray__l{display:flex;flex-direction:column;gap:2px;padding-top:18px;height:330px;overflow:hidden}
.tr{min-height:64px}
.tr{display:grid;flex:0 0 auto;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:15px 17px;background:var(--s2);border-left:2px solid transparent;opacity:0;transform:translateY(-10px);transition:opacity .28s,transform .3s var(--ease),border-color .3s,background .3s}
.tr.in{opacity:1;transform:none}
.tr.out{opacity:0;transform:translateY(10px)}
.tr .ch{font:500 10px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg3);border:1px solid var(--line2);border-radius:999px;padding:4px 9px}
.tr p{margin:0;font-size:14px;line-height:1.35}
.tr .stt{font:500 11px var(--mono);letter-spacing:.06em;color:var(--fg3);display:flex;align-items:center;gap:7px;white-space:nowrap}
.tr .stt svg{width:13px;height:13px}
.tr .sp{width:11px;height:11px;border-radius:50%;border:1.5px solid var(--fg4);border-top-color:var(--fg2);animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.tr.ok{border-left-color:rgba(255,162,102,.55);background:rgba(255,162,102,.07)}
.tr.ok .stt{color:#FFC49E}
.tr.hum{border-left-color:var(--sig);background:rgba(255,123,48,.07)}
.tr.hum .stt{color:var(--sig)}
@media (max-width:820px){.cred{grid-template-columns:1fr;gap:18px}.tray__l{height:auto;min-height:340px;max-height:380px}.tr{grid-template-columns:1fr;gap:8px}.tr .ch{justify-self:start}}

.idx{margin-top:var(--v2)}
.idx__h{display:flex;justify-content:space-between;align-items:center;padding:16px 0}
.idx ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:0 2px}
.idx li a{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:15px 16px 15px 0;border-top:1px solid var(--line);color:var(--fg2);transition:color .2s,padding .25s var(--ease),background .2s}
.idx li a small{font:500 10.5px var(--mono);color:var(--fg4)}
.idx li a b{font-size:16px;font-weight:500;letter-spacing:-.02em}
.idx li a svg{width:14px;height:14px;opacity:0;transition:opacity .2s,transform .25s var(--ease)}
.idx li a:hover{color:var(--fg);padding-left:10px;background:var(--s1)}
.idx li a:hover svg{opacity:1;transform:translateX(3px)}
.opg{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(32px,4vw,72px);align-items:start}
.opl{display:grid;gap:2px}
.opl article{background:var(--s1);padding:clamp(24px,2.45vw,36px);display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start;transition:background .25s}
.opl article:hover{background:var(--s2)}
.opl .n{font:500 10.5px var(--mono);letter-spacing:.14em;color:var(--sig);padding-top:4px}
.opl b{font-size:20px;font-weight:600;letter-spacing:-.025em;display:block;margin-bottom:6px}
.opl p{margin:0;color:var(--fg3);font-size:15px;line-height:1.5;max-width:30em}
.seg3{position:relative;display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line2);border-radius:999px;padding:3px;background:rgba(10,7,6,.5)}
.seg3 button{position:relative;z-index:2;height:30px;padding:0 14px;border-radius:999px;font:500 12px var(--mono);letter-spacing:.06em;color:var(--fg3);transition:color .25s}
.seg3 button.on{color:var(--bg)}
.seg3 .th{position:absolute;z-index:1;top:3px;bottom:3px;left:3px;width:calc((100% - 6px)/3);border-radius:999px;background:var(--fg);transition:transform .35s var(--snap)}
.tray__h{gap:16px;flex-wrap:wrap}
.tr{grid-template-columns:auto 1fr auto}
.tr em{font-style:normal;display:block;font:500 11px var(--mono);letter-spacing:.04em;color:var(--fg3);margin-top:4px;min-height:1em}
.tr.ok em{color:#FFC49E}
.tr.hum em{color:var(--sig)}
.tray__f{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);margin-top:18px;padding-top:18px;gap:16px}
.tray__f small{display:block;font:500 10px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg3);margin-bottom:6px}
.tray__f span{font-size:20px;font-weight:600;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.tray__n{margin:12px 0 0;color:var(--fg3);font-size:14px;line-height:1.5}
@media (min-width:821px){.tray__n{min-height:3.1em}}
.erpwall>a:not(.mk) b{font-size:9.5px;color:var(--fg4);transition:color .25s}
.erpwall>a:not(.mk):hover b{color:var(--fg2)}
@media (max-width:1180px){.idx ul{grid-template-columns:repeat(2,1fr)}.opg{grid-template-columns:1fr}}
@media (max-width:820px){.idx ul{grid-template-columns:1fr}.tray__f{grid-template-columns:1fr 1fr}.opl article{grid-template-columns:1fr;gap:8px}}
@media (max-width:1180px){
  .nav__links{display:none}.burger{display:flex}.nav__cta .ghost{display:none}
  .erpwall{grid-template-columns:repeat(4,minmax(0,1fr))}
  .fr{grid-template-columns:repeat(2,1fr)}
  .ways,.guard{grid-template-columns:1fr 1fr}
  .res{grid-template-columns:1fr}.res article{padding:28px 0!important;border-right:0;border-bottom:1px solid var(--line)}
  .foot__g{grid-template-columns:1fr 1fr}
  .ind,.ctl{grid-template-columns:1fr}
}
@media (max-width:820px){
  body{font-size:16px}
  .hero__row{grid-template-columns:1fr}
  .logos{grid-template-columns:1fr;gap:26px}
  /* con seis marcas, tres columnas es la unica particion sin renglon cojo */
  .logos__row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));place-items:center;gap:26px 14px}
  .logos__row img{height:44px;max-width:100%}
  .sec__h,.inev,.faq{grid-template-columns:1fr}
  .hoy{height:auto}.hoy__stick{position:relative;height:auto;padding-block:72px;display:block}
  .hoy__img{position:relative;inset:auto;height:56vh;margin-bottom:28px}
  .hoy__img img{object-position:72% 50%}
  .hoy__img::after{background:linear-gradient(0deg,var(--bg),transparent 55%)}
  .hoy__img .b{opacity:1;clip-path:inset(0 0 0 50%)}
  .qs{width:auto;height:calc(30px*3.9)}
  .qs p{font-size:30px}
  /* el remate es lo mas grande de la secuencia: es a donde llega */
  .qs p.fin{font-size:34px;line-height:1.08}
  .hoy__cap{display:none}
  .hoy__meter i{width:30px}
  .hoy__who{min-height:3em}
  .motor__stick{padding-block:72px}.motor__g{grid-template-columns:1fr}
  .rail div{font-size:9px;letter-spacing:.06em}
  .card{height:auto;min-height:520px}.stage__d{min-height:4.8em}
  .fr{grid-template-columns:1fr}
  .ind{display:flex;flex-direction:column}
  .ind>div:first-child{order:2}
  .ind{display:flex!important;flex-direction:column}
  .ind>div:first-child{order:0}
  .istage{order:1;min-height:0;margin:14px 0 18px;display:block;padding:0;border-radius:18px}
  /* en móvil el escenario sí se ve: la foto arriba y el caso debajo. Es la
     única imagen de la sección y es lo que las pastillas seleccionan. */
  .istage__ph{position:relative;inset:auto;height:auto;aspect-ratio:16/10;width:100%}
  .istage__ph::after{background:linear-gradient(0deg,#0C0907,transparent 55%)}
  .istage__txt{padding:0 18px 20px;max-width:none;margin-top:-26px}
  .istage__txt .nm{font-size:26px;margin:8px 0 14px}
  .istage__txt .rq{font-size:15.5px;padding:11px 14px}
  .istage__txt .rs{font-size:15.5px}
  .ibar{display:none}.istage.open{display:flex}.ilist li>.istage{padding:0 20px 22px;justify-content:flex-start}.ilist li>.istage .istage__ph{position:relative;inset:auto;height:190px;margin:0 -20px 16px}.ibar{display:none}
  .ilist li button{padding:14px 0}
  .erpwall{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ways,.guard,.show{grid-template-columns:1fr}.ways a{min-height:230px}
  .tl{grid-template-columns:1fr;gap:24px}.tl::before,.tl .prog{display:none}
  .team__big,.inev__pov{grid-template-columns:1fr}
  .mex{grid-template-columns:1fr;gap:16px}
  .acc{flex-direction:column;height:auto}.acc__p{flex:none!important;height:110px;transition:height .45s var(--snap)}.acc__p.on{height:400px}
  .fin{height:auto}.fin__stick{position:relative;height:auto;padding-block:96px}
  .words{height:auto}.words b{position:static;opacity:1;transform:none;display:none}.words b.yg{display:block}
  .fin__cta{opacity:1;transform:none;pointer-events:auto}
  .foot__g{grid-template-columns:1fr}.foot__legal{flex-direction:column}
  .hero__foot .hide-m{display:none}
  .erp .hide-m{display:none}.erp .send{white-space:nowrap;flex:none;font:600 13px var(--sans);color:#fff;padding:0 14px}.erp>span:first-child{white-space:nowrap;font-size:11px}.erp{padding:9px 10px 9px 12px}
  .diag{aspect-ratio:4/5}
}
@media (max-width:820px){
  .tr{grid-template-columns:auto 1fr;gap:10px;align-items:start;padding:12px}
  .tr .ch{align-self:start}
  .tr .stt{grid-column:1/-1;justify-content:flex-start;margin-top:2px}
  .tray__l,.opstage .tray__l{height:520px!important;min-height:0!important;max-height:none!important;flex:none!important;overflow:hidden}.tray__n{min-height:4.6em}.tray__f span{min-height:1.2em}#operacion{overflow-anchor:none}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}.ln>span{transform:none}}


@media (max-width:560px){.erpwall{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.erpwall>a:not(.mk){height:92px;padding:10px 6px;gap:9px;border-radius:12px}.erpwall>a:not(.mk) .lg img{max-height:20px;max-width:100%}.erpwall>a:not(.mk) .tx{font-size:13px}.erpwall>a:not(.mk) b{font-size:8.5px;letter-spacing:.06em}.erpwall i{right:8px;top:8px;width:5px;height:5px}}
@media (max-width:560px){.guard{grid-template-columns:1fr 1fr!important;margin-top:28px}.guard div{padding:16px 14px 18px}.guard svg{display:none}.guard b{font-size:15px;line-height:1.25}.guard p{font-size:13px;line-height:1.45}.opl article{padding:20px 18px 22px;gap:14px}}
/* ---- lo que recibe · escenario ---- */
.rxs{--ac:var(--sig)}
.rxs__tabs{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:2px}
@media (max-width:1180px){.rxs__tabs{grid-template-columns:repeat(4,1fr)}}
.rxs__tabs button{appearance:none;border:0;margin:0;background:var(--s1);color:var(--fg3);font:500 14.5px var(--sans);letter-spacing:-.01em;padding:17px 14px 19px;text-align:left;cursor:pointer;position:relative;display:flex;align-items:baseline;gap:10px;transition:color .25s,background .25s}
.rxs__tabs button small{font:500 10px var(--mono);letter-spacing:.12em;color:var(--fg4);transition:color .25s}
.rxs__tabs button:hover{color:var(--fg)}
.rxs__tabs button[aria-selected=true]{color:var(--fg);background:var(--s2)}
.rxs__tabs button[aria-selected=true] small{color:var(--sig)}
.rxs__tabs button:focus-visible{outline:2px solid var(--sig);outline-offset:-2px}
.rxs__tabs button i{position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--line);overflow:hidden}
.rxs__tabs button i::after{content:"";position:absolute;inset:0;background:var(--sig);transform-origin:left;transform:scaleX(var(--p,0))}

.rxs__body{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:2px}
.rxs__stage{background:var(--s1);display:grid;position:relative;overflow:hidden}
.rxs__stage::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(80% 70% at 50% 45%,rgba(247,240,235,.035),transparent 70%)}
.rxs__pane{grid-area:1/1;display:flex;flex-direction:column;padding:clamp(24px,2.45vw,36px);min-height:500px;opacity:0;visibility:hidden;transition:opacity .34s var(--ease),visibility 0s linear .34s;position:relative}
.rxs__pane.on{opacity:1;visibility:visible;transition:opacity .34s var(--ease)}
.rxs__src{display:flex;justify-content:space-between;gap:16px;font:500 10.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg4);margin-bottom:14px}
.rxs__src b{font-weight:500;color:var(--fg3)}
.rxs__art{flex:1;display:grid;place-items:center;min-height:0}

.rxs__out{background:var(--s1);display:flex;flex-direction:column;min-width:0}
.rxs__oh{display:flex;align-items:center;gap:10px;padding:17px 24px;border-bottom:1px solid var(--line);font-weight:600;font-size:15px;letter-spacing:-.01em}
.rxs__oh img{height:18px;width:auto}
.rxs__oh span{margin-left:auto;display:flex;align-items:center;gap:8px;font:500 10px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg3)}
.rxs__oh span::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--sig);box-shadow:0 0 0 3px rgba(255,123,48,.18)}
.rxs__ol{display:grid;flex:1;padding:4px 24px 8px}
.rxs__ol dl{grid-area:1/1;margin:0;visibility:hidden}
.rxs__ol dl.on{visibility:visible}
.rxs__ol dl>div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:14px;padding:14px 0;border-bottom:1px solid var(--line);opacity:0}
.rxs__ol dl.on>div{animation:rxin .36s var(--ease) both;animation-delay:calc(1.05s + var(--i)*.16s)}
.rxs__ol dt{font:500 10px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg);padding-top:4px;display:flex;gap:8px;align-items:flex-start}
.rxs__ol dt u{text-decoration:none;flex:none;width:16px;height:16px;border-radius:50%;background:var(--sig);color:var(--bg);font:700 9.5px var(--mono);display:grid;place-items:center;margin-top:-2px;letter-spacing:0}
.rxs__ol dd{margin:0;font-size:15.5px;line-height:1.4;color:var(--fg);font-weight:500;letter-spacing:-.01em}
.rxs__ol dd em{display:block;font-style:normal;font-weight:400;font-size:13.5px;color:var(--fg3);margin-top:3px}
.rxs__ol dd q{quotes:none;display:inline-block;font:500 9.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--sig);border:1px solid rgba(255,123,48,.45);border-radius:5px;padding:3px 7px;margin-left:8px;vertical-align:2px}
.rxs__of{display:flex;align-items:center;gap:10px;padding:16px 24px;border-top:1px solid var(--line);font-size:14px;color:var(--fg3)}
.rxs__of svg{width:14px;height:14px;color:var(--sig);flex:none}
@keyframes rxin{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes rxfade{from{opacity:0}to{opacity:1}}

/* plano */
.rxp{width:100%;max-width:100%;height:auto;color:rgba(247,240,235,.62);overflow:visible}
.rxp .g{stroke:rgba(247,240,235,.05)}
.rxp .dr{stroke-dasharray:1;stroke-dashoffset:0}
.rxs__pane.on .rxp .dr{animation:rxdraw 1.1s var(--ease) both;animation-delay:.1s}
@keyframes rxdraw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
.rxp .dm{stroke:rgba(247,240,235,.4)}
.rxp text{font-family:var(--mono);fill:rgba(247,240,235,.66);stroke:none;letter-spacing:.04em}
.rxp .tb text{fill:rgba(247,240,235,.8)}
.rxp .tb .k{fill:rgba(247,240,235,.4)}
.rxp .mk circle{fill:var(--sig);stroke:none}
.rxp .mk text{fill:var(--bg);font-weight:700;font-size:10px}
.rxp .mk{transform-box:fill-box;transform-origin:center}
.rxs__pane.on .rxp .mk{animation:rxpop .32s var(--ease) both;animation-delay:calc(.9s + var(--i)*.18s)}
@keyframes rxpop{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}
.rxp .hl{stroke:var(--sig);stroke-width:1.4}

/* pdf */
.rxpdf{width:min(100%,560px);background:#EFE9E3;color:#2A2321;border-radius:3px;box-shadow:0 34px 70px -24px rgba(0,0,0,.9);padding:20px 22px 14px;font-size:11.5px;line-height:1.25}
.rxpdf header{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;border-bottom:2px solid #2A2321;padding-bottom:10px;margin-bottom:4px}
.rxpdf header b{display:block;font-size:13.5px;letter-spacing:.01em}
.rxpdf header small,.rxpdf footer{font:500 9.5px var(--mono);letter-spacing:.06em;color:#7A706A}
.rxpdf table{width:100%;border-collapse:collapse}
.rxpdf th{font:600 8.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#7A706A;text-align:left;padding:7px 6px 5px}
.rxpdf th:last-child,.rxpdf td:last-child{text-align:right}
.rxpdf td{padding:6px;border-top:1px solid #DAD1C9}
.rxpdf td.pn{font-family:var(--mono);font-size:10.5px;color:#4E4540;white-space:nowrap}
.rxpdf td.q{font-family:var(--mono);font-size:10.5px;text-align:right}
.rxpdf td.s{width:108px;white-space:nowrap}
.rxpdf td.s span{display:inline-flex;align-items:center;gap:4px;font:600 8.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;opacity:0}
.rxpdf td.s .ok{color:#C2410C}
.rxpdf td.s .ok::before{content:"";width:7px;height:4px;border:solid #C2410C;border-width:0 0 1.6px 1.6px;transform:rotate(-45deg) translateY(-1px)}
.rxpdf td.s .fl{color:#C2410C;border:1px solid rgba(194,65,12,.5);border-radius:3px;padding:2px 5px}
.rxs__pane.on .rxpdf tbody tr{animation:rxrow .55s var(--ease) both;animation-delay:calc(.25s + var(--i)*.12s)}
.rxs__pane.on .rxpdf tbody tr.f{animation-name:rxrowf}
.rxs__pane.on .rxpdf td.s span{animation:rxfade .25s var(--ease) both;animation-delay:calc(.45s + var(--i)*.12s)}
@keyframes rxrow{0%{background:transparent}35%{background:rgba(255,123,48,.2)}100%{background:transparent}}
@keyframes rxrowf{0%{background:transparent}35%{background:rgba(255,123,48,.26)}100%{background:rgba(255,123,48,.1)}}
.rxpdf footer{display:flex;justify-content:space-between;margin-top:10px}

/* audio */
.rxau{width:min(100%,520px);display:flex;flex-direction:column;gap:22px}
.rxau__v{display:flex;align-items:center;gap:14px;background:var(--s3);border-radius:24px 24px 24px 6px;padding:12px 18px 12px 12px}
.rxau__v .pl{width:44px;height:44px;border-radius:50%;background:var(--fg);display:grid;place-items:center;flex:none}
.rxau__v .pl::before{content:"";margin-left:4px;border-left:12px solid var(--bg);border-top:7px solid transparent;border-bottom:7px solid transparent}
.rxau__v svg{flex:1;height:38px;min-width:0}
.rxau__v rect{fill:rgba(247,240,235,.32)}
.rxs__pane.on .rxau__v rect{animation:rxbar2 .12s linear both;animation-delay:calc(.3s + var(--i)*.04s)}
@keyframes rxbar2{from{fill:rgba(247,240,235,.32)}to{fill:#FF7B30}}
.rxau__v small{font:500 11px var(--mono);color:var(--fg3);flex:none}
.rxau__k{font:500 10px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg4);margin-bottom:-12px}
.rxau__t{margin:0;font-size:clamp(17px,1.45vw,21px);line-height:1.5;letter-spacing:-.01em;color:var(--fg)}
.rxau__t span{opacity:.16}
.rxs__pane.on .rxau__t span{animation:rxword .2s linear both;animation-delay:calc(.3s + var(--i)*.085s)}
@keyframes rxword{from{opacity:.16}to{opacity:1}}
.rxau__t mark{background:none;color:var(--sig)}

/* llamada */
.rxcl{width:min(100%,500px);display:flex;flex-direction:column;gap:12px}
.rxcl__h{display:flex;align-items:center;gap:14px;padding:12px 16px 12px 12px;border:1px solid var(--line2);border-radius:16px;background:var(--s2);margin-bottom:6px}
.rxcl__h .ph{width:40px;height:40px;border-radius:50%;background:rgba(37,211,102,.14);display:grid;place-items:center;flex:none;position:relative}
.rxcl__h .ph::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:1px solid rgba(37,211,102,.35)}
.rxcl__h .ph svg{width:18px;height:18px;fill:none;stroke:#FFA266;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.rxcl__h b{display:block;font-size:14.5px;font-weight:600}
.rxcl__h small{font:500 10px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg3)}
.rxcl__h em{margin-left:auto;font:500 11px var(--mono);font-style:normal;color:#FFA266}
.rxcl p{margin:0;max-width:86%;padding:10px 14px 11px;border-radius:16px;font-size:15px;line-height:1.42;opacity:0}
.rxcl p small{display:block;font:500 9.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg3);margin-bottom:4px}
.rxcl p.c{align-self:flex-start;background:var(--s3);border-bottom-left-radius:5px}
.rxcl p.b{align-self:flex-end;background:rgba(255,123,48,.1);border:1px solid rgba(255,123,48,.3);border-bottom-right-radius:5px}
.rxcl p.b small{color:var(--sig)}
.rxs__pane.on .rxcl p{animation:rxin .36s var(--ease) both;animation-delay:calc(.3s + var(--i)*.34s)}

/* foto */
.rxft{position:relative;width:min(100%,580px);aspect-ratio:4/3;border-radius:14px;overflow:hidden;box-shadow:0 34px 70px -26px rgba(0,0,0,.9);background:#111}
.rxft img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.rxft .bx{position:absolute;opacity:0}
.rxft .bx i{position:absolute;width:18px;height:18px;border:0 solid #fff}
.rxft .bx i:nth-child(1){left:0;top:0;border-width:2px 0 0 2px}
.rxft .bx i:nth-child(2){right:0;top:0;border-width:2px 2px 0 0}
.rxft .bx i:nth-child(3){left:0;bottom:0;border-width:0 0 2px 2px}
.rxft .bx i:nth-child(4){right:0;bottom:0;border-width:0 2px 2px 0}
.rxs__pane.on .rxft .bx{animation:rxframe .5s var(--ease) both;animation-delay:.25s}
@keyframes rxframe{from{opacity:0;transform:scale(1.25)}to{opacity:1;transform:none}}
.rxft .co{position:absolute;display:flex;align-items:center;white-space:nowrap;opacity:0;transform:translateY(-50%)}
.rxft .co::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--sig);box-shadow:0 0 0 3px rgba(255,123,48,.3);flex:none;margin-left:-4.5px}
.rxft .co i{display:block;width:26px;height:1.5px;background:var(--sig)}
.rxft .co b{font:600 10.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--fg);background:rgba(10,7,6,.84);border:1px solid rgba(255,123,48,.45);border-radius:6px;padding:6px 9px;backdrop-filter:blur(4px)}
.rxs__pane.on .rxft .co{animation:rxco .34s var(--ease) both;animation-delay:calc(.8s + var(--i)*.22s)}
@keyframes rxco{from{opacity:0;transform:translate(-6px,-50%)}to{opacity:1;transform:translateY(-50%)}}

/* texto */
/* correo corto de compras, en "Lo que recibe". La mitad de las solicitudes de un
   distribuidor entran por aquí, así que tiene pestaña propia. */
.rxml{width:min(100%,480px);border-radius:22px;background:#0D0A09;border:1px solid var(--line2);overflow:hidden;box-shadow:0 30px 60px -28px rgba(0,0,0,.9)}
.rxml header{display:flex;align-items:center;gap:11px;padding:13px 16px;border-bottom:1px solid var(--line);background:rgba(247,240,235,.02)}
.rxml header>span{width:34px;height:34px;border-radius:50%;background:var(--s3);display:grid;place-items:center;font:600 11.5px var(--sans);color:var(--fg2);flex:none}
.rxml header b{display:block;font-size:14px;font-weight:600}
.rxml header small{font:500 9.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg3)}
.rxml header svg{margin-left:auto;width:18px;height:18px;flex:none;color:#FFA266}
.rxml__s{padding:14px 16px 0}
.rxml__s small{display:block;font:500 9px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg4);margin-bottom:5px}
.rxml__s b{font-size:15.5px;font-weight:600;letter-spacing:-.01em}
.rxml__b{display:flex;flex-direction:column;gap:9px;padding:16px}
.rxml__b p{margin:0;font-size:14.5px;line-height:1.5;color:var(--fg2);opacity:0}
.rxs__pane.on .rxml__b p{animation:rxin .34s var(--ease) both;animation-delay:calc(.3s + var(--i)*.38s)}
@media (max-width:620px){.rxml__b p{font-size:13.5px}}
.rxtx{width:min(100%,420px);border-radius:22px;background:#0D0A09;border:1px solid var(--line2);overflow:hidden;box-shadow:0 30px 60px -28px rgba(0,0,0,.9)}
.rxtx header{display:flex;align-items:center;gap:11px;padding:13px 16px;border-bottom:1px solid var(--line);background:rgba(247,240,235,.02)}
.rxtx header span{width:34px;height:34px;border-radius:50%;background:var(--s3);display:grid;place-items:center;font:600 11.5px var(--sans);color:var(--fg2)}
.rxtx header b{display:block;font-size:14px;font-weight:600}
.rxtx header small{font:500 9.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg3)}
.rxtx header svg{margin-left:auto;width:18px;height:18px;fill:#FFA266}
.rxtx div{display:flex;flex-direction:column;gap:7px;padding:18px 16px 22px}
.rxtx p{align-self:flex-start;margin:0;background:var(--s3);border-radius:16px;border-bottom-left-radius:5px;padding:9px 13px 8px;font-size:15px;line-height:1.35;opacity:0;display:flex;align-items:flex-end;gap:10px}
.rxtx p small{font:500 9px var(--mono);color:var(--fg4);flex:none;margin-bottom:1px}
.rxs__pane.on .rxtx p{animation:rxin .34s var(--ease) both;animation-delay:calc(.3s + var(--i)*.42s)}

@media (max-width:1100px){
 .rxs__body{grid-template-columns:1fr}
 .rxs__pane{min-height:440px}
}
@media (max-width:820px){
 .rxs__tabs{grid-template-columns:repeat(2,1fr)}
 .rxs__tabs button{padding:13px 12px 15px;font-size:14px;gap:7px}
 .rxs__pane{min-height:0;padding:14px 14px 18px}
 .rxs__src{font-size:9.5px;margin-bottom:12px}
 .rxs__src b:last-child{display:none}
 .rxs__oh,.rxs__of{padding-left:16px;padding-right:16px}
 .rxs__ol{padding:2px 16px 6px}
 .rxs__ol dl>div{grid-template-columns:96px minmax(0,1fr);gap:10px;padding:12px 0}
 .rxs__ol dd{font-size:14.5px}
 .rxpdf{padding:14px 12px 10px;font-size:10.5px}
 .rxpdf .pn{display:none}
 .rxpdf td.s{width:74px}
 .rxpdf tbody tr:nth-child(n+8){display:none}
 .rxau__t{font-size:16px}
 .rxcl p{font-size:14px}
 .rxft .co i{width:12px}
 .rxft .co b{font-size:8.5px;padding:4px 6px}
 .rxft .co.x{display:none}
 .rxft .co .lg{display:none}
 .rxtx p{font-size:14px}
}
@media (prefers-reduced-motion:reduce){
 .rxs *{animation:none!important}
 .rxs__ol dl>div,.rxcl p,.rxtx p,.rxml__b p,.rxft .co,.rxft .bx,.rxpdf td.s span{opacity:1}
 .rxau__t span{opacity:1}
 .rxau__v rect{fill:#FF7B30}
}

/* ---- menú: cuatro columnas y menú móvil ---- */
.mega__in{grid-template-columns:1.05fr 1fr 1fr 1fr!important}
#mega-ind .mega__in{grid-template-columns:.92fr 1fr 1fr 1fr 1fr!important;gap:30px}
.mega a{font-size:15px;padding:6px 0}
.mnav{position:fixed;inset:0;z-index:60;background:rgba(10,7,6,.97);backdrop-filter:blur(10px);padding-top:84px;overflow-y:auto;opacity:0;visibility:hidden;transition:opacity .3s var(--ease),visibility 0s linear .3s}
.mnav.open{opacity:1;visibility:visible;transition:opacity .3s var(--ease)}
body.mopen{overflow:hidden}body.mopen .nav{z-index:70!important;transform:none!important}
.mnav__in{display:flex;flex-direction:column;padding-bottom:40px}
.mnav details{border-bottom:1px solid var(--line2)}
.mnav summary{list-style:none;display:flex;justify-content:space-between;align-items:center;padding:20px 0;font-size:24px;font-weight:600;letter-spacing:-.03em;cursor:pointer}
.mnav summary::-webkit-details-marker{display:none}
.mnav summary i{width:12px;height:12px;border-right:1.5px solid var(--fg2);border-bottom:1.5px solid var(--fg2);transform:rotate(45deg) translateY(-3px);transition:transform .25s var(--ease)}
.mnav details[open] summary i{transform:rotate(225deg)}
.mnav details a{display:block;padding:9px 0;color:var(--fg2);font-size:16.5px}
.mnav details a:last-child{padding-bottom:22px}
.mnav__cta{display:flex;flex-direction:column;gap:10px;margin-top:28px}
.mnav__cta .btn{justify-content:center}
body.mopen{overflow:hidden}
.burger.x span{background:transparent}.burger.x span::before{top:0;transform:rotate(45deg)}.burger.x span::after{top:0;transform:rotate(-45deg)}
.burger span::before,.burger span::after{transition:transform .25s var(--ease),top .25s var(--ease)}
.foot__legal a{color:inherit}
.mega .feat a.btn{display:inline-flex;padding:0 16px 0 18px;color:var(--fg);font-size:14px}.mega .feat a.btn:hover{transform:none}.mega .feat a.btn svg{width:14px;height:14px}
@media (min-width:1181px){.mnav{display:none}}
@media (max-width:1180px){.mega{display:none!important}}
.opl article{grid-template-columns:1fr!important}
.gstrip{list-style:none;margin:var(--v2) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:14px clamp(24px,3vw,48px)}
.gstrip li{display:flex;align-items:flex-start;gap:10px;flex:1 1 240px;font-size:14.5px;line-height:1.5;color:var(--fg3)}
.gstrip b{color:var(--fg);font-weight:600}
.gstrip svg{width:18px;height:18px;color:var(--sig);flex:none;margin-top:2px}
.mex--ind{margin-top:clamp(28px,4vh,44px);border-radius:16px}
.esp__c .e .vn{display:flex;align-items:center;gap:9px;margin:2px 0 8px;min-width:200px}
.esp__c .e .vn .pl{width:24px;height:24px;border-radius:50%;background:var(--sig);flex:none;display:grid;place-items:center}
.esp__c .e .vn .pl::before{content:"";margin-left:2px;border-left:7px solid var(--bg);border-top:4px solid transparent;border-bottom:4px solid transparent}
.esp__c .e .vn svg{flex:1;height:18px;min-width:0}.esp__c .e .vn rect{fill:rgba(247,240,235,.45)}
.esp__c .e .vn em{font:500 10px var(--mono);font-style:normal;color:var(--fg3)}
.esp__c .e .tx{font-style:italic;color:var(--fg2)}
.esp__c .e .ph{display:block;width:150px;aspect-ratio:4/3;border-radius:10px;margin:2px 0 8px;background:radial-gradient(120% 90% at 30% 20%,#3a2a20,#15100D 70%);overflow:hidden}
.esp__c .e .ph img{width:100%;height:100%;object-fit:contain;padding:10px;box-sizing:border-box}
.esp__c .e .at{display:flex;align-items:center;gap:8px;margin:2px 0 8px;padding:8px 10px;border:1px solid var(--line2);border-radius:10px;font:500 11px var(--mono);color:var(--fg2)}
.esp__c .e .at svg{width:16px;height:16px;fill:none;stroke:var(--sig);stroke-width:1.6;stroke-linejoin:round}

@media (max-width:640px){.esp__tabs{display:flex;flex-wrap:wrap;border-radius:18px}.esp__tabs button{flex:1 1 40%;padding:0 10px}}
.fr article{position:relative}.fr__lk{position:absolute;inset:0;z-index:2}
.espm{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);grid-template-rows:repeat(2,clamp(220px,22vw,300px));gap:16px}
.espm figure{position:relative;margin:0;border-radius:22px;overflow:hidden;background:var(--s1)}
.espm__a{grid-row:1/3}.espm__w{grid-column:2/4}
.espm img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.espm figure:hover img{transform:scale(1.03)}
.espm figure::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(10,7,6,.9))}
.espm figcaption{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:clamp(18px,2vw,28px);display:flex;flex-direction:column;gap:8px}
.espm small{font:500 10px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--sig)}
.espm b{font-size:clamp(18px,1.6vw,24px);font-weight:600;letter-spacing:-.02em;line-height:1.2;max-width:22ch}
.espm__a b{font-size:clamp(22px,2.2vw,32px)}
@media (max-width:900px){.espm{grid-template-columns:1fr 1fr;grid-template-rows:none;grid-auto-rows:260px}.espm__a{grid-row:auto;grid-column:1/3;height:340px}.espm__w{grid-column:1/3}}
@media (max-width:560px){.espm{grid-template-columns:1fr;grid-auto-rows:auto}.espm figure{height:280px}.espm__a,.espm__w{grid-column:auto}.espm__a{height:320px}.espm__a b,.espm b{font-size:21px;max-width:none}}
/* ============ móvil, segunda vuelta: la regla de las dos familias ============
   Se desliza de lado solo lo que carga una imagen o una cifra grande. El texto
   se vuelve lista compacta: filetes en vez de cajas. Más corto que las tarjetas
   apiladas y más legible que el carrusel. */
@media (max-width:760px){

  /* ---- 1. escala tipográfica. El cuerpo estaba en 15 px en 326 lugares y el
     piso móvil es 16. La base cubre todo párrafo sin clase propia; los que
     tienen clase con medida propia la conservan por especificidad. */
  /* la especificidad tiene que ganarle a las reglas por componente que hoy
     fijan 15 y 15.5; :not(#_) la sube sin cambiar a qué aplica. Los tres
     pies de foto que sí deben ir chicos quedan exentos. */
  /* Solo el parrafo SIN clase es cuerpo: uno con clase ya trae su medida y
     esta regla se la estaba comiendo en 215 titulares de las 86 paginas. Los
     dos titulares que no llevan clase se excluyen por su contenedor. */
  main :not(.qs):not(.rqf__bub) > p:not([class]):not(#_),
  main dd:not([class]):not(#_){font-size:16.5px;line-height:1.55}
  /* El parrafo de cuerpo sube a 16.5; el titular que vive dentro del mismo
     contenedor conserva su clamp. La lista sale de medir cada <p> de main a
     1440 y a 390 y quedarse con los que bajaban de 23 px a 17.5. */
  .sec :not(.rqf__bub)>p:not(.yg):not(.beat):not(.bleed__t):not(.sband__h):not(.eant__t):not(.pz__h):not(.fin),
  .rows :not(.rqf__bub)>p:not(.yg):not(.beat):not(.bleed__t):not(.sband__h):not(.eant__t):not(.pz__h):not(.fin),
  .cards :not(.rqf__bub)>p:not(.yg):not(.beat):not(.bleed__t):not(.sband__h):not(.eant__t):not(.pz__h):not(.fin),
  .tiles :not(.rqf__bub)>p:not(.yg):not(.beat):not(.bleed__t):not(.sband__h):not(.eant__t):not(.pz__h):not(.fin),
  .outc :not(.rqf__bub)>p:not(.yg):not(.beat):not(.bleed__t):not(.sband__h):not(.eant__t):not(.pz__h):not(.fin),
  .edl :not(.rqf__bub)>p:not(.yg):not(.beat):not(.bleed__t):not(.sband__h):not(.eant__t):not(.pz__h):not(.fin),
  .conn :not(.rqf__bub)>p:not(.yg):not(.beat):not(.bleed__t):not(.sband__h):not(.eant__t):not(.pz__h):not(.fin),
  .lnl :not(.rqf__bub)>p:not(.yg):not(.beat):not(.bleed__t):not(.sband__h):not(.eant__t):not(.pz__h):not(.fin),
  .prose :not(.rqf__bub)>p:not(.yg):not(.beat):not(.bleed__t):not(.sband__h):not(.eant__t):not(.pz__h):not(.fin),
  .qls :not(.rqf__bub)>p:not(.yg):not(.beat):not(.bleed__t):not(.sband__h):not(.eant__t):not(.pz__h):not(.fin),
  .crit :not(.rqf__bub)>p:not(.yg):not(.beat):not(.bleed__t):not(.sband__h):not(.eant__t):not(.pz__h):not(.fin),
  .srail :not(.rqf__bub)>p:not(.yg):not(.beat):not(.bleed__t):not(.sband__h):not(.eant__t):not(.pz__h):not(.fin),
  .opl :not(.rqf__bub)>p:not(.yg):not(.beat):not(.bleed__t):not(.sband__h):not(.eant__t):not(.pz__h):not(.fin),
  .esc__e :not(.rqf__bub)>p:not(.yg):not(.beat):not(.bleed__t):not(.sband__h):not(.eant__t):not(.pz__h):not(.fin),
  .ba :not(.rqf__bub)>p:not(.yg):not(.beat):not(.bleed__t):not(.sband__h):not(.eant__t):not(.pz__h):not(.fin),
  .sec li,.dtable td{font-size:16.5px;line-height:1.55}
  .lead{font-size:17.5px;line-height:1.5}
  .figs cite,cite{font-size:12px;line-height:1.4}
  .lab{font-size:11.5px}
  /* el resto del cuerpo que no cayó en la lista de arriba */
  .tline p,.chain p,.docs p,.wds p,.cases p,.bleed__s,.sband__s,.pago__l span,
  .ctab__in span,.cta p,.shot__s,.figs p,.res p,.dtable dd,.opl p{font-size:16.5px;line-height:1.55}
  .lnl p,.links p{font-size:15.5px;line-height:1.5}

  /* ---- 2. lo que se queda deslizable: lleva imagen adentro */
  .icards:has(>*:nth-child(3)),.igrid:has(>*:nth-child(3)){
    display:flex!important;grid-template-columns:none!important;gap:10px;
    overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding-inline:var(--pad);
    scrollbar-width:none;margin-inline:calc(var(--pad) * -1);padding-inline:var(--pad);padding-bottom:4px}
  .icards:has(>*:nth-child(3))::-webkit-scrollbar,.igrid:has(>*:nth-child(3))::-webkit-scrollbar{display:none}
  .icards:has(>*:nth-child(3))>*,.igrid:has(>*:nth-child(3))>*{
    flex:0 0 auto;width:84%;max-width:340px;scroll-snap-align:start;border-bottom:0}

  /* ---- 3. lo que lleva cifra: se apila y la cifra manda */
  .figs,.res,.gr__slabs{display:block!important;grid-template-columns:none!important;
    overflow:visible!important;margin-inline:0!important;padding-inline:0!important}
  .figs>*,.res>*,.gr__slabs>*{width:auto!important;max-width:none!important;
    padding:22px 0!important;border-bottom:1px solid var(--line)!important;scroll-snap-align:none}
  .figs>*:last-child,.res>*:last-child,.gr__slabs>*:last-child{border-bottom:0!important}
  .res .v,.figs b,.gr__sl b{font-size:clamp(46px,13vw,60px)!important;line-height:.95!important}
  .res p,.figs p{margin-top:12px!important}

  /* ---- 4. todo lo demás: lista compacta, sin caja */
  .tiles,.cards,.outc,.srail,.fmt,.conn,.orail,.osteps,.opl,.esc,.rows,.edl{
    display:block!important;grid-template-columns:none!important;
    overflow:visible!important;margin-inline:0!important;padding-inline:0!important;gap:0!important}
  .tiles>*,.cards>*,.outc>*,.srail>*,.fmt>*,.conn>*,.orail>*,.osteps>*,.opl>*,.esc>.esc__r,.rows>*,.edl>*{
    display:block!important;width:auto!important;max-width:none!important;flex:none!important;
    background:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;
    border-bottom:1px solid var(--line)!important;padding:16px 0!important;margin:0!important}
  .tiles>*:last-child,.cards>*:last-child,.outc>*:last-child,.srail>*:last-child,.fmt>*:last-child,
  .conn>*:last-child,.orail>*:last-child,.osteps>*:last-child,.opl>*:last-child,
  .esc>.esc__r:last-child,.rows>*:last-child,.edl>*:last-child{border-bottom:0!important}
  .tiles>*>b,.cards>* h3,.outc>* b,.srail>* b,.fmt>* b,.conn>* b,.orail>* b,.opl b,.rows>* h3,.edl>* h3{
    font-size:17px!important;font-weight:600!important;letter-spacing:-.02em!important;line-height:1.25!important;
    display:block!important;margin:0 0 5px!important;color:var(--fg)!important}
  .tiles>* p,.cards>* p,.outc>* p,.srail>* p,.fmt>* p,.conn>* p,.orail>* p,.opl p,.rows>* p,.edl>* p{
    margin:0!important;color:var(--fg3)!important}
  .fmt>* svg{width:22px;height:22px;margin-bottom:8px}
  .orail>* small,.osteps .ost__s{color:var(--sig)}

  /* la escala de precios, en su forma compacta */
  .esc>.esc__r{padding:18px 0!important}
  .esc__n{font-size:17px!important;margin-bottom:12px}
  .esc__t{display:block!important}
  .esc__e{padding:0 0 0 16px!important;margin-top:12px}
  .esc__e:first-child{margin-top:0}

  /* ---- 5. la 07: trece industrias dejan de ser una lista de 710 px */
  .ilist{display:flex!important;gap:8px;overflow-x:auto;overflow-y:hidden;border-top:0!important;
    scroll-snap-type:x proximity;scroll-padding-inline:var(--pad);scrollbar-width:none;
    margin-inline:calc(var(--pad) * -1)!important;padding:0 var(--pad) 2px!important}
  .ilist::-webkit-scrollbar{display:none}
  .ilist li{flex:0 0 auto;scroll-snap-align:start}
  .ilist li button{display:inline-flex!important;align-items:center;width:auto!important;
    grid-template-columns:none!important;gap:0!important;padding:10px 16px!important;
    border:1px solid var(--line2)!important;border-radius:999px;font-size:14.5px!important;
    white-space:nowrap;color:var(--fg3)}
  .ilist li button small,.ilist li button i,.ilist .il__go{display:none!important}
  .ilist li button span{overflow:visible!important;text-overflow:clip!important;max-width:none!important;white-space:nowrap}
  .ilist li button.on{background:var(--sig)!important;border-color:var(--sig)!important;color:#140A05!important}

  /* ---- 6. la 09: doce logotipos, el resto en su propia página */
  .erpwall>*:nth-child(n+13){display:none}
}
@media (max-width:760px){
  /* la portada: sus rejillas propias, en lista compacta */
  /* estas dos sí traen foto en cada tarjeta, así que van en la familia visual:
     se deslizan. Apiladas medían 1,606 y 1,120 px. */
  .espm,.fr{display:flex!important;grid-template-columns:none!important;gap:10px;
    overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding-inline:var(--pad);
    scrollbar-width:none;margin-inline:calc(var(--pad) * -1)!important;padding-inline:var(--pad)!important;padding-bottom:4px}
  .espm::-webkit-scrollbar,.fr::-webkit-scrollbar{display:none}
  .espm>*,.fr>*{flex:0 0 auto!important;width:84%!important;max-width:330px!important;scroll-snap-align:start}
  .fr>* h3,.espm>* h3,.fr>* b,.espm>* b{font-size:17px;letter-spacing:-.02em}
}
/* 07: la línea de producto y el sistema, uno al lado del otro. Eran dos
   secciones de índice que contestaban la misma pregunta del visitante. */
.enc{display:block;margin-top:var(--v3)}
/* el muro de logotipos pide ancho: en media página son diez filas de tres.
   Las dos respuestas van en bandas completas, una debajo de la otra. */
.enc__b{margin-top:var(--v2)}
/* los hijos de una rejilla crecen con su contenido si no se les dice que no:
   sin esto la fila de pastillas estiraba la sección a 2,491 px */
.enc__a,.enc__b,.enc .ind,.enc .ind>div{min-width:0}
.enc__a>.lab,.enc__b>.lab{display:block;margin-bottom:18px}
.enc__b .erpwall{grid-template-columns:repeat(6,minmax(0,1fr))}
/* en la portada van doce; los veintisiete viven en /integraciones */
.enc__b .erpwall>*:nth-child(n+19){display:none}
.enc__b .erpwall{gap:6px}
.enc__b .more{margin-top:18px}
@media (max-width:1100px){.enc__b .erpwall{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:760px){.enc__b .erpwall{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:2px}
  .enc__b .erpwall>*:nth-child(n+10){display:none}
  .enc{gap:30px}.enc__a>.lab,.enc__b>.lab{margin-bottom:12px}}
/* el muro de ERP en móvil: un logotipo es imagen, así que se desliza */
@media (max-width:760px){
  .enc__b .erpwall{display:grid!important;grid-auto-flow:column!important;grid-template-columns:none!important;
    grid-template-rows:repeat(2,auto);grid-auto-columns:38%;gap:2px;overflow-x:auto;overflow-y:hidden;
    scroll-snap-type:x proximity;scrollbar-width:none;
    margin-inline:calc(var(--pad) * -1);padding-inline:var(--pad)}
  .enc__b .erpwall::-webkit-scrollbar{display:none}
  .enc__b .erpwall>*{scroll-snap-align:start}
  .enc__b .erpwall>*:nth-child(n+10){display:flex}
  .enc__b .erpwall>*:nth-child(n+19){display:none}
.enc__b .erpwall{gap:6px}
}
/* 07 · las fichas de caso. La pieza que vende el cliente es lo que se reconoce
   primero; la cifra es lo segundo. Todo lo demás vive en la página del caso. */
.cz{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;margin-top:var(--v3)}
.cz__c{position:relative;display:flex;flex-direction:column;background:var(--s1);
  transition:background .3s var(--ease)}
.cz__c:hover{background:var(--s2)}
.cz__p{position:relative;margin:0;aspect-ratio:4/3;overflow:hidden;background:var(--s1)}

.cz__g{display:flex;align-items:center;gap:9px;margin-bottom:clamp(16px,2vh,22px);
  font:500 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg3)}
.cz__g i{width:5px;height:5px;border-radius:50%;background:var(--sig);flex:none}
.cz__b{flex:1;display:flex;flex-direction:column;padding:clamp(24px,2.45vw,36px)}
.cz__a{margin:0 0 auto;color:var(--fg2);font-size:clamp(15.5px,1.2vw,17.5px);line-height:1.45;
  letter-spacing:-.012em;max-width:22em}
.cz__n{display:block;margin-top:clamp(20px,2.4vh,30px);font-size:clamp(30px,3vw,44px);
  font-weight:600;letter-spacing:-.045em;line-height:1;white-space:nowrap}
.cz__u{display:block;margin-top:9px;color:var(--fg3);font-size:13.5px;line-height:1.4}
.cz__f{display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin-top:clamp(16px,2vh,22px);padding-top:14px;border-top:1px solid var(--line2)}
.cz__f b{font-size:14px;font-weight:600;letter-spacing:-.01em}
.cz__f span{display:inline-flex;align-items:center;gap:6px;color:var(--fg4);
  font:500 10px var(--mono);letter-spacing:.09em;text-transform:uppercase;transition:color .25s}
.cz__c:hover .cz__f span{color:var(--sig)}
.cz__f svg{width:12px;height:12px}
.cz__lk{position:absolute;inset:0;z-index:2}
.cz__nota{margin:var(--v1) 0 0;color:var(--fg4);font-size:12.5px}
@media (max-width:1180px){.cz{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){
  /* con imagen adentro, la ficha sí admite carrusel: una pantalla en vez de cuatro */
  .cz{display:grid;grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:78%;
    gap:2px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;
    margin-inline:calc(var(--pad) * -1);padding-inline:var(--pad);margin-top:26px}
  .cz::-webkit-scrollbar{display:none}
  .cz__c{scroll-snap-align:start}
  .cz__n{font-size:32px}
}
/* el muro por marca: un logotipo por marca, las variantes debajo. Cuatro veces
   el mismo logotipo de Infor no era una lista, era un tartamudeo. */
.erpwall .mk{position:relative;background:var(--s1);border:1px solid var(--line);border-radius:14px;
  min-height:132px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;
  padding:20px 14px;transition:background .25s,border-color .25s,transform .25s var(--ease)}
.erpwall a.mk:hover{background:var(--s2);border-color:var(--line2);transform:translateY(-2px)}
.erpwall .mk .lg{height:24px;display:grid;place-items:center}
.erpwall .mk .lg{height:30px;width:100%}
.erpwall .mk .lg img{max-height:30px;max-width:100%;width:auto;opacity:.84;transition:opacity .25s}
.erpwall a.mk:hover .lg img{opacity:1}
.erpwall .mk .tx{font-weight:600;font-stretch:104%;font-size:15px;text-align:center;line-height:1.1;
  letter-spacing:-.02em;color:var(--fg2)}
.erpwall .mk b{font:500 9.5px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--fg4);
  text-align:center;line-height:1.45;transition:color .25s;text-wrap:balance}
.erpwall a.mk:hover b{color:var(--fg2)}
.erpwall .mk--p{border-style:dashed}
.erpwall .mk--p .tx{color:var(--sig)}
.erpwall .mk .vs{display:flex;flex-wrap:wrap;gap:4px;justify-content:center}
.erpwall .mk .vr{font:500 10px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--fg3);
  border:1px solid var(--line2);border-radius:999px;padding:4px 9px;transition:color .2s,border-color .2s}
.erpwall .mk .vr:hover{color:var(--sig);border-color:var(--sig)}
@media (max-width:560px){.erpwall .mk{height:96px;padding:11px 7px;gap:8px;border-radius:12px}
  .erpwall .mk .lg img{max-height:19px}.erpwall .mk .tx{font-size:12.5px}
  .erpwall .mk b{font-size:8px;letter-spacing:.04em}}
/* en movil la ficha de variante rompe renglon: con nowrap el mosaico crecia
   por dentro y empujaba la reja, que usaba 1fr (o sea minmax(auto,1fr)) y por
   eso cedia al contenido. Ahora la reja no cede y el texto si parte. */
@media (max-width:560px){
  .erpwall{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .erpwall .mk .vs{gap:4px}
  .erpwall .mk .vr{white-space:normal;text-align:center;font-size:9px;padding:4px 7px;
    letter-spacing:.03em;line-height:1.25}
}
/* .cred vive en _c_style.html, que sirve a las otras 85 paginas. La portada
   lleva su CSS aparte, asi que aqui nunca tuvo reja: el boton caia pegado al
   parrafo. Va sin fondo, que en la portada seria otra caja. */
.cred{display:grid;grid-template-columns:1fr auto;gap:clamp(26px,4vw,64px);align-items:center;
  margin-top:var(--v2)}
.cred p{margin:0}
@media (max-width:820px){.cred{grid-template-columns:1fr;gap:26px;justify-items:start}}
/* la guia sale por la derecha: el volante de la valvula queda pegado al
   filo del encuadre y la etiqueta no cabe a su derecha */
.co--r{flex-direction:row-reverse}
/* 02 · el cierre de cada panel. Entender el mensaje no es un resultado
   comercial: lo que importa es que de ese mensaje sale una cotizacion. */
.rxs__tots{position:relative;border-top:1px solid var(--line)}
.rxs__tot{display:none;align-items:flex-end;justify-content:space-between;gap:16px;
  padding:clamp(16px,1.6vw,22px) clamp(24px,2.45vw,36px)}
.rxs__tot.on{display:flex;animation:totin .4s var(--ease) both;animation-delay:.2s}
.rxs__tot small{display:block;font:500 9.5px var(--mono);letter-spacing:.13em;
  text-transform:uppercase;color:var(--sig);margin-bottom:6px}
.rxs__tot span{display:block;color:var(--fg4);font-size:12.5px;line-height:1.35;max-width:22em}
.rxs__tot b{font-size:clamp(22px,2vw,30px);font-weight:600;letter-spacing:-.035em;
  line-height:1;white-space:nowrap;font-variant-numeric:tabular-nums}
@keyframes totin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.rxs__tot.on{animation:none}}
@media (max-width:760px){.rxs__tot{flex-direction:column;align-items:flex-start;gap:10px}
  .rxs__tot b{font-size:26px}}
/* ---- el hero en movil: centrado, la linea de posicionamiento legible y sin
   la tira de ERP, que se partia en dos renglones y ya esta abajo en el muro. */
@media (max-width:760px){
  .hero__in{text-align:center;padding-bottom:clamp(28px,4vh,44px)}
  .hero h1{max-width:none;margin-inline:auto}
  .hero__row{justify-items:center}
  .hero__row p{margin-inline:auto;max-width:30em}
  .hero__btns{justify-content:center;width:100%}
  .hero__btns .btn{justify-content:center}
  .hero__top{margin-bottom:clamp(16px,2.4vh,26px)}
  /* sin el punto: de primer elemento de un flex centrado quedaba colgando a
     la izquierda de un bloque de dos renglones */
  .hero__top .lab{display:block;text-align:center;font-size:12px;letter-spacing:.08em;
    line-height:1.5;text-shadow:0 1px 16px rgba(10,7,6,.95),0 0 28px rgba(10,7,6,.7)}
  .hero__top .lab i{display:none}
  .hero__foot{justify-content:center;border-top:0;margin-top:clamp(16px,2.4vh,28px);padding-top:0}
  .hero__foot>span:first-child{display:none}
  .hero__foot .sc{justify-content:center}
}
/* ---- el 01: fuera el contador de frases. Anticipaba cuantas faltaban, que es
   justo lo que no conviene decirle a quien esta leyendo la primera. */
@media (max-width:760px){
  .hoy__meter{display:none}
  .hoy__who{margin-top:26px}
}
/* ---- el 04: la etiqueta arriba del titulo. En una pantalla de 390 la
   etiqueta media 95 px y el titulo 235, uno al lado del otro. */
@media (max-width:820px){
  .motor__h{flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:20px}
  .motor__h h2{font-size:15.5px;line-height:1.35}
}
/* ---- las piezas y las escenas despiertan con el cursor.
   Ya no es una deriva de CSS sobre una foto: es el video de la pieza
   trabajando, con la misma imagen de poster para que no haya salto. En reposo
   esta pausado y un poco apagado; con el cursor encima se enciende y corre; al
   salir el cursor se PAUSA, o sea que se queda en el cuadro donde iba. */
.fr figure img,.fr figure video,.cz__p img,.cz__p video{
  width:100%;height:100%;object-fit:cover;display:block;
  filter:brightness(.84);transition:filter .45s var(--ease)}
.cz__p img,.cz__p video{filter:brightness(.88)}
.fr article:hover figure img,.fr article:hover figure video{filter:brightness(1.04)}
.cz__c:hover .cz__p img,.cz__c:hover .cz__p video{filter:brightness(1.02)}
/* ---- El piso de tipografia en escritorio.
   Medido: 1,498 textos por debajo de 16 px en las 86 paginas, en 117 reglas.
   El cuerpo sube a 17 y el lead se queda en 18.9, para que siga habiendo un
   escalon entre la entrada y la prosa. Va dentro de min-width:761px para no
   pelear con la escala de movil, que ya estaba en 16.5. Quedan fuera a
   proposito las maquetas de interfaz, los pies de foto, los controles y las
   etiquetas: ahi el tamano chico es lo que los hace lo que son. */
@media (min-width:761px){
  .cards p,
  .stp4 p,
  .split li p,
  .stats p,
  .reqs li,
  .spec p,
  .otab__r p,
  .lnk p,
  .norms p,
  .norms b,
  .altw,
  .srail p,
  .lnl p,
  .links p,
  .outc p,
  .bento>div p,
  .bento figcaption span,
  .trio p,
  .trio__more,
  .pano__bar p,
  .duo__more p,
  .wide__g p,
  .eng__g p,
  .icards p,
  .rqf__big li,
  .rqt__p p,
  .prs__c p,
  .req3 blockquote,
  .tiles p,
  .qls li p,
  .docs p,
  .cov p,
  .wds p,
  .frows p,
  .fmt p,
  .orail p,
  .conn p,
  .cases p,
  .chain p,
  .tline p,
  .esc__e p,
  .hst__row p,
  .gr__n,
  .gr__t,
  .fch__t span,
  .fr p,
  .fr q,
  .res p,
  .show__t p,
  .ways p,
  .opl p,
  .ctab__in span,
  .guard p,
  .guard b,
  .mega .feat p,
  .rule,
  .gstrip li,
  .cred span:not(.v),
  .esp__c p,
  .esp__pts p,
  .pru__l p,
  .tl span,
  .ost .oin p,
  .chan p,
  .intr p{font-size:17px;line-height:1.55}
  .motor__h h2,
  .ilist li button,
  .erpwall .mk .tx,
  .logos__n span,
  .igrid q{font-size:16px;line-height:1.5}
  /* el pie de una cifra y el de una foto editorial son frases que se leen,
     no creditos: suben, pero se quedan por debajo del cuerpo para que
     sigan leyendose como pie */
  .figs p,.shot figcaption span,.prs__c p{font-size:15.5px;line-height:1.5}
}
/* ---- Movil: el contenido se apila, solo los controles se deslizan.
   Medido a 390 px: .igrid ocupaba 3,982 px de ancho real con 390 visibles, o
   sea que once de trece tarjetas estaban fuera de la pantalla. Cambiar alto
   por contenido escondido fue un mal negocio. */
@media (max-width:760px){
  .icards,.igrid,.icards:has(>*:nth-child(3)),.igrid:has(>*:nth-child(3)){
    display:grid!important;grid-template-columns:1fr!important;gap:2px!important;
    overflow:visible!important;margin-inline:0!important;padding-inline:0!important;
    scroll-snap-type:none!important}
  .icards>*,.igrid>*{width:auto!important;min-width:0!important;scroll-snap-align:none!important}


  /* los ERP: dieciocho marcas en reja de tres, sin texto cortado */
  .enc__b .erpwall{display:grid!important;grid-auto-flow:row!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;grid-template-rows:none!important;
    grid-auto-columns:auto!important;gap:2px!important;overflow:visible!important;
    margin-inline:0!important;padding-inline:0!important;scroll-snap-type:none!important}
  .enc__b .erpwall>*:nth-child(n+10){display:flex!important}
  .enc__b .erpwall>*:nth-child(n+19){display:none!important}
  .enc__b .erpwall .mk b{white-space:normal;text-align:center;line-height:1.35}

  /* la tira de garantias: tres renglones apilados con 14 px entre ellos y
     pegados al bloque de arriba */
  .gstrip{margin-top:var(--v3);gap:28px}
  .gstrip li{flex:1 1 100%}
}
/* ---- La portada: sus dos rejas propias tambien se apilan.
   .fr y .cz llevan foto en cada tarjeta y por eso las habia dejado en
   carrusel. Son las cuatro piezas y los cuatro casos: justo el contenido que
   no puede quedar fuera de pantalla. */
@media (max-width:760px){
  .espm,.fr,.cz{display:grid!important;grid-template-columns:1fr!important;
    grid-auto-flow:row!important;grid-auto-columns:auto!important;gap:2px!important;
    overflow:visible!important;margin-inline:0!important;padding-inline:0!important;
    scroll-snap-type:none!important}
  .espm>*,.fr>*,.cz>*{width:auto!important;min-width:0!important;
    scroll-snap-align:none!important}
  .fr figure{aspect-ratio:16/7}
  .cz__p{aspect-ratio:16/9}
}
@media (hover:none){.ilist li button i{display:none}}
/* ---- La 06 en movil: las listas recortadas, no desplazadas.
   Medido a 390 px: la seccion entera eran 2,640 px (3.1 pantallas), con 517
   de pastillas y 802 de muro de ERP. Se recortan las dos y se despliegan
   hacia abajo con un toque. Recortar hacia abajo no es esconder: se alcanza
   con el mismo gesto que la persona ya esta haciendo. */
@media (max-width:760px){
  #ilist.corta li:nth-child(n+7){display:none}
  .erpwall.corta>*:nth-child(n+10){display:none!important}
  .vermas{display:block;width:100%;margin-top:12px;padding:13px 16px;background:var(--s1);
    border:0;color:var(--fg2);font:500 11.5px var(--mono);letter-spacing:.11em;
    text-transform:uppercase;text-align:left;cursor:pointer;position:relative}
  .vermas::after{content:"";position:absolute;right:18px;top:50%;width:7px;height:7px;
    border-right:1.5px solid var(--sig);border-bottom:1.5px solid var(--sig);
    transform:translateY(-70%) rotate(45deg)}
  /* las celdas de ERP: el renglon de sistemas se queda, pero apretado */
  .enc__b .erpwall .mk{padding:14px 8px}
  .enc__b .erpwall .mk img{max-height:26px}
  .enc__b .erpwall .mk b{font-size:9px;letter-spacing:.04em;line-height:1.3;margin-top:7px}
}
@media (min-width:761px){.vermas{display:none}}
/* ---- El aire entre secciones, medido contra el ancho y no contra el alto.
   El relleno de seccion estaba en 12vh, que en un telefono de 844 px de alto
   da 101 px de cada lado: 202 por seccion, 3,030 px en la portada, 3.6
   pantallas de nada. El aire se percibe contra el ANCHO de la columna, y en
   390 px la columna mide 350, no 1400. Baja a 72. */
@media (max-width:760px){
  .sec,.sec.px{padding-block:clamp(56px,8.5vh,80px)}
  .cta{padding-block:clamp(64px,9.5vh,96px)}
  /* .ctab ya estaba en 64 px y .hoy__stick / .motor__stick en 72: tocarlos
     solo los hacia crecer, asi que se quedan como estaban */
  .sec__h{margin-bottom:clamp(26px,3.4vh,38px)}
}
/* ---- Las lineas de producto: un carril, porque son un selector.
   Un carril sin señal de que sigue no se desplaza: la gente cree que ya vio
   todo. Sangra al borde de la pantalla, lleva velo a la derecha que se apaga
   al llegar al final, y cada pastilla cae en su sitio. */
@media (max-width:760px){
  .ind>div:first-child{position:relative}
  .ilist{display:flex!important;flex-wrap:nowrap!important;gap:8px!important;
    overflow-x:auto!important;overflow-y:hidden!important;
    scroll-snap-type:x proximity!important;scroll-padding-inline:var(--pad)!important;
    scrollbar-width:none!important;-webkit-overflow-scrolling:touch;
    margin-inline:calc(var(--pad) * -1)!important;
    padding:0 var(--pad) 2px!important;
    -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 64px),transparent);
    mask-image:linear-gradient(90deg,#000 calc(100% - 64px),transparent);
    transition:-webkit-mask-image .3s,mask-image .3s}
  .ilist.final{-webkit-mask-image:none;mask-image:none}
  .ilist::-webkit-scrollbar{display:none}
  .ilist li{flex:0 0 auto;scroll-snap-align:start}
  .ilist li button{white-space:nowrap}
}
/* ---- Los botones de las bandas intermedias.
   .hero__btns es el par de botones de TODO el sitio, no solo el del hero. La
   regla flex:1 1 100% que escribi para el hero servia en una fila (da ancho)
   y rompia en una columna (pide alto y colapsa a 24 px). Queda acotada. */
@media (max-width:760px){
  .hero .hero__btns .btn,.fin__cta .hero__btns .btn{flex:1 1 100%}
  .ctab__in .hero__btns .btn,.sub__cta .btn,.ask .btn{flex:0 0 auto;width:100%;height:var(--h)}
  /* una banda pegada al cierre repetiria el mismo llamado dos veces seguidas:
     ahi la frase se queda y los botones salen */
  .ctab:has(+ .fin) .hero__btns,.ctab:has(+ .cta) .hero__btns{display:none}
  .ctab:has(+ .fin) .ctab__in,.ctab:has(+ .cta) .ctab__in{gap:0}
}
/* ---- La banda de ancho completo, con video encima de su propia foto.
   La imagen se queda y sigue cargando en diferido; el video entra en opacidad
   cero y aparece cuando de verdad empieza a reproducir. Arranca al entrar a la
   vista y se pausa al salir, porque una banda puede estar a seis mil pixeles
   de la parte de arriba y no tiene caso gastar datos en lo que nadie ve. */
.bleed__v{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transition:opacity .8s var(--ease);pointer-events:none;z-index:1}
.bleed__v.on{opacity:1}
.bleed::after{z-index:2}
@media (max-width:820px){
  .bleed__v{inset:auto;top:0;left:0;width:100%;height:208px;object-position:62% 50%;
    -webkit-mask-image:linear-gradient(180deg,#000 58%,transparent);
    mask-image:linear-gradient(180deg,#000 58%,transparent)}
}
@media (prefers-reduced-motion:reduce){.bleed__v{display:none}}
/* ---- El degradado del hero, encima del video.
   El video se escribio con z-index 1 y el ::after se quedo en auto, asi que el
   video lo tapaba: mientras corria no habia degradado al pie ni oscurecido a la
   izquierda, y la imagen se cortaba en seco contra la seccion siguiente.
   imagen (0) -> video (1) -> degradado (2) -> texto (3). */
.bhero::after{z-index:2}
.bhero__in{z-index:3}
/* ---- El ciclo completo de una industria: la misma solicitud, hasta el cobro.
   Una espina vertical con el artefacto real de cada paso, para que se lea como
   una conversacion que termina y no como un diagrama de etapas. */
.cyc{list-style:none;margin:0;padding:0}
.cyc li{display:grid;grid-template-columns:minmax(0,152px) minmax(0,1fr) minmax(0,1fr);
  gap:clamp(18px,2.4vw,44px);padding:clamp(24px,2.6vw,36px) 0;
  border-top:1px solid var(--line);position:relative;align-items:start}
.cyc li:last-child{border-bottom:1px solid var(--line)}
.cyc__k{position:relative;padding-left:24px;align-self:stretch}
.cyc__k::before{content:"";position:absolute;left:0;top:.42em;width:9px;height:9px;
  border-radius:50%;border:1.5px solid var(--line3);background:var(--bg)}
.cyc li:last-child .cyc__k::before{background:var(--sig);border-color:var(--sig)}
.cyc__k::after{content:"";position:absolute;left:4px;top:calc(.42em + 13px);
  bottom:calc(clamp(24px,2.6vw,36px) * -1);width:1px;background:var(--line2)}
.cyc li:last-child .cyc__k::after{display:none}
.cyc__k span{font:500 11.5px/1.5 var(--mono);letter-spacing:.11em;
  text-transform:uppercase;color:var(--fg4)}
.cyc__b b{display:block;font-size:clamp(19px,1.45vw,23px);line-height:1.28;
  letter-spacing:-.01em;color:var(--fg)}
.cyc__b>p{margin:14px 0 0;color:var(--fg3);max-width:32em}
.cyc__a{align-self:start;padding-top:2px}
.cyc__chat{display:inline-block;max-width:29em;background:var(--s3);
  border-radius:18px 18px 18px 6px;padding:13px 18px 11px}
.cyc__chat--p{background:var(--s2);border:1px solid var(--line2);
  border-radius:18px 18px 6px 18px}
.cyc__chat p{margin:0;color:var(--fg2)}
.cyc__chat small{display:block;margin-top:7px;font:500 11px var(--mono);
  letter-spacing:.07em;color:var(--fg4)}
.cyc__chips{display:flex;flex-wrap:wrap;gap:8px}
.cyc__chips span{border:1px solid var(--line2);border-radius:999px;padding:8px 14px;
  font-size:15.5px;color:var(--fg2);background:var(--s1)}
.cyc__doc{display:flex;align-items:center;gap:14px;background:var(--s1);
  border:1px solid var(--line2);border-radius:12px;padding:14px 18px;max-width:32em}
.cyc__doc svg{width:20px;height:23px;flex:0 0 auto;fill:none;stroke:var(--sig);
  stroke-width:1.4;stroke-linejoin:round}
.cyc__doc b{font-size:16px;line-height:1.35;color:var(--fg2)}
.cyc__doc small{display:block;margin-top:3px;font-size:15px;color:var(--fg4)}
.cyc__fol{display:inline-flex;align-items:center;gap:12px;background:var(--s1);
  border:1px solid var(--line2);border-radius:999px;padding:10px 18px}
.cyc__fol code{font:500 13.5px var(--mono);letter-spacing:.05em;color:var(--sig)}
.cyc__fol span{font-size:15.5px;color:var(--fg3)}
@media (max-width:1060px){
  .cyc li{grid-template-columns:minmax(0,132px) minmax(0,1fr)}
  .cyc__a{grid-column:2;margin-top:16px;padding-top:0}
}
@media (max-width:760px){
  .cyc li{grid-template-columns:1fr;gap:12px;padding:24px 0}
  .cyc__a{grid-column:1;margin-top:14px}
  .cyc__k::after{display:none}
  .cyc__chat{max-width:100%}
}
/* ---- El texto de la banda, encima de su degradado.
   .bleed__t y .bleed__s ya estaban en z-index 2, y el degradado que puse para
   que ganara al video quedo en el mismo indice: un ::after se genera al final,
   asi que con indice igual pintaba SOBRE las letras y las apagaba.
   imagen (0) -> video (1) -> degradado (2) -> texto (3). */
.bleed__t,.bleed__s{z-index:3}
/* ==== v2 CONVERSACION. El hilo completo como pieza central: una sola columna,
   la etapa como marca delgada al costado y ningun titulo, porque el hilo se
   lee solo. Es lo mas parecido a ensenar la pantalla. */
.cyv{list-style:none;margin:0 auto;padding:0;max-width:800px}
.cyv li{display:grid;grid-template-columns:132px minmax(0,1fr);gap:20px;
  align-items:start;padding:0 0 26px;position:relative}
.cyv li:last-child{padding-bottom:0}
.cyv__k{font:500 11px/1.9 var(--mono);letter-spacing:.11em;text-transform:uppercase;
  color:var(--fg4);text-align:right;padding-top:12px}
.cyv li:last-child .cyv__k{color:var(--sig)}
.cyv__a>*{margin-top:0}
.cyv li:nth-child(2) .cyv__a,.cyv li:nth-child(4) .cyv__a,
.cyv li:nth-child(5) .cyv__a{display:flex;justify-content:flex-end}
.cyv li:nth-child(3) .cyv__a .cyc__chips{justify-content:flex-start}
@media (max-width:760px){
  .cyv li{grid-template-columns:1fr;gap:7px;padding-bottom:20px}
  .cyv__k{text-align:left;padding-top:0}
  .cyv li:nth-child(2) .cyv__a,.cyv li:nth-child(4) .cyv__a,
  .cyv li:nth-child(5) .cyv__a{justify-content:flex-start}
}

/* ==== v3 y v4. Dos columnas y una imagen fija que ocupa la mitad de la
   pantalla mientras se recorre la seccion. v3 usa la foto de la industria a la
   derecha; v4 la pieza recortada sobre negro a la izquierda. */
.cym{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(28px,4vw,72px);align-items:start}
.cym__l{list-style:none;margin:0;padding:0}
.cym__l li{padding:clamp(18px,2vw,26px) 0;border-top:1px solid var(--line)}
.cym__l li:first-child{border-top:0;padding-top:0}
.cym__k{display:block;font:500 11px/1.6 var(--mono);letter-spacing:.11em;
  text-transform:uppercase;color:var(--fg4);margin-bottom:7px}
.cym__l li:last-child .cym__k{color:var(--sig)}
.cym__l b{display:block;font-size:clamp(17.5px,1.25vw,20px);line-height:1.32;
  letter-spacing:-.005em;color:var(--fg)}
.cym__f{margin:0;position:sticky;top:96px;border-radius:14px;overflow:hidden;
  background:var(--s1)}
.cym__f img{display:block;width:100%;height:clamp(420px,58vh,620px);object-fit:cover}
.cym--4 .cym__f img{object-fit:contain;height:clamp(380px,52vh,560px)}
@media (max-width:860px){
  .cym{grid-template-columns:1fr;gap:22px}
  .cym__f{position:static;order:-1}
  .cym__f img{height:230px}
  .cym--4 .cym__f img{height:260px}
}

/* ==== v5 ALTERNANCIA. Renglones de ancho completo que cambian de lado, con un
   corte de imagen a media seccion para que la vista respire. */
.cya{list-style:none;margin:0;padding:0}
.cya>li{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(24px,4vw,64px);align-items:center;
  padding:clamp(22px,2.4vw,32px) 0;border-top:1px solid var(--line)}
.cya>li:first-child{border-top:0;padding-top:0}
.cya>li:nth-child(even) .cya__t{order:2}
.cya>li:nth-child(even) .cya__a{order:1;display:flex;justify-content:flex-start}
.cya>li:nth-child(odd) .cya__a{display:flex;justify-content:flex-end}
.cya__t span{display:block;font:500 11px/1.6 var(--mono);letter-spacing:.11em;
  text-transform:uppercase;color:var(--fg4);margin-bottom:8px}
.cya>li:last-child .cya__t span{color:var(--sig)}
.cya__t b{display:block;font-size:clamp(18px,1.35vw,22px);line-height:1.3;
  letter-spacing:-.008em;color:var(--fg)}
.cya__a>*{margin-top:0}
.cya>li.cya__cut{display:block;padding:clamp(12px,1.6vw,22px) 0;
  border-top:1px solid var(--line)}
.cya__cut img{display:block;width:100%;height:clamp(180px,26vh,280px);
  object-fit:cover;border-radius:14px}
@media (max-width:860px){
  .cya>li{grid-template-columns:1fr;gap:13px;padding:22px 0}
  .cya>li:nth-child(even) .cya__t{order:0}
  .cya>li:nth-child(even) .cya__a,.cya>li:nth-child(odd) .cya__a{justify-content:flex-start}
  .cya__cut img{height:170px}
}
/* ---- Las imagenes que flotan sueltas sobre la pagina.
   Medido: las 26 imagenes de fondo oscuro tienen el borde entre 13 y 29, y el
   fondo del sitio es 10,7,6. No se puede igualar el color porque el fondo de
   esas fotos es degradado, no plano. Lo que si se puede es disolver el borde,
   y entonces ya no hay arista que delate el rectangulo.
   Solo aplica a las que NO van dentro de un marco. */
.pz__f img,.cym--4 .cym__f img{
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent),
                     linear-gradient(180deg,transparent,#000 9%,#000 91%,transparent);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent),
             linear-gradient(180deg,transparent,#000 9%,#000 91%,transparent);
  mask-composite:intersect}
/* la figura de la composicion 4 deja de ser tarjeta: la pieza flota */
.cym--4 .cym__f{background:none;border-radius:0}
.cym--4 .cym__f img{background:none}

/* ---- Aire de movil, medido. El relleno de seccion son 1,548 px en toda la
   pagina. Baja lo justo donde no hace falta y no se toca el de los llamados,
   que si necesitan separarse de lo que va antes. */
@media (max-width:760px){
  .sec,.sec.px{padding-block:clamp(48px,7.4vh,68px)}
  .sec__h{margin-bottom:clamp(22px,2.9vh,32px)}
  .cyc li{padding:20px 0}
  .cyv li{padding-bottom:17px}
  .cym__l li{padding:17px 0}
  .cya>li{padding:19px 0}
}
/* la segunda banda es mas baja que la primera: es un respiro, no un capitulo */
.bleed--b{height:clamp(240px,34vh,380px)}
.bleed--b .bleed__t{font-size:clamp(21px,2.1vw,34px);max-width:15em}
@media (max-width:820px){.bleed--b img{height:176px}}
/* ---- "El criterio" en movil: la foto a media lista.
   Arriba se veia una vez y dejaban 1.7 pantallas de texto seguido detras. En
   escritorio la foto se queda pegada al costado, que es donde si acompaña toda
   la lectura; en movil no hay costado, asi que baja al centro de la lista. */
.crit__mid{display:none}
@media (max-width:860px){
  .crit>figure{display:none}
  .crit__mid{display:block;list-style:none;margin:8px 0 4px;padding:0}
  .crit__mid::before{display:none}
  .crit__mid img{display:block;width:100%;height:214px;object-fit:cover;
    object-position:62% 50%;border-radius:12px}
}
/* ---- El reloj de las paginas de distribuidor.
   Franjas de ancho completo que alternan de tono, con la hora grande a la
   izquierda. Distinta a las cinco composiciones del ciclo de industrias: no es
   espina, ni hilo, ni foto partida, ni pieza, ni alternancia. El ultimo
   renglon no lleva artefacto porque no es un paso, es el remate. */
.rel{list-style:none;margin:0;padding:0;border-radius:16px;overflow:hidden}
.rel__s{display:grid;grid-template-columns:minmax(0,164px) minmax(0,1fr);
  gap:clamp(18px,2.6vw,48px);align-items:start;
  padding:clamp(20px,2.3vw,30px) clamp(18px,2.2vw,34px)}
.rel__s:nth-child(odd){background:var(--s1)}
.rel__h span{display:block;font:500 clamp(21px,1.9vw,29px)/1 var(--mono);
  letter-spacing:-.02em;color:var(--fg2);font-variant-numeric:tabular-nums}
.rel__h small{display:block;margin-top:8px;font:500 11px/1.5 var(--mono);
  letter-spacing:.11em;text-transform:uppercase;color:var(--fg4)}
.rel__b b{display:block;font-size:clamp(17.5px,1.3vw,21px);line-height:1.32;
  letter-spacing:-.005em;color:var(--fg)}
.rel__b>.cyc__chat,.rel__b>.cyc__chips,.rel__b>.cyc__doc,.rel__b>.cyc__fol{margin-top:15px}
/* el remate: la hora se apaga y el renglon se enciende */
.rel__s--fin{background:var(--s2)!important;align-items:center}
.rel__s--fin .rel__h span{color:var(--fg4);font-size:clamp(19px,1.5vw,24px)}
.rel__s--fin .rel__h small{color:var(--sig)}
.rel__s--fin .rel__b b{font-size:clamp(18.5px,1.5vw,24px);color:var(--fg)}
@media (max-width:760px){
  .rel{border-radius:12px}
  .rel__s{grid-template-columns:1fr;gap:10px;padding:20px 17px}
  .rel__h{display:flex;align-items:baseline;gap:12px}
  .rel__h span{font-size:20px}
  .rel__h small{margin-top:0}
  .rel__b>.cyc__chat,.rel__b>.cyc__chips,.rel__b>.cyc__doc,.rel__b>.cyc__fol{margin-top:13px}
}
/* ---- La escala del catalogo, al cierre de la seccion 04.
   Seis celdas de ancho completo separadas por filetes verticales, con el numero
   grande arriba y el criterio en mono abajo. No se parece a ninguna otra
   composicion del sitio: no es tarjeta, ni espina, ni franja alterna. La ultima
   celda se enciende porque es el desenlace, no un paso mas. */
.esc{margin-top:clamp(34px,4.4vw,64px);border-top:1px solid var(--line2);padding-top:clamp(26px,3vw,40px)}
.esc__h{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);
  gap:clamp(20px,4vw,72px);align-items:baseline;margin-bottom:clamp(22px,2.6vw,34px)}
.esc__h .lab{color:var(--fg)}
.esc__h p{margin:0;max-width:62ch;font-size:clamp(16.5px,1.15vw,18.5px);line-height:1.5;color:var(--fg2)}
.esc__l{list-style:none;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));margin:0;padding:0}
.esc__l li{padding:clamp(14px,1.5vw,20px) clamp(12px,1.3vw,20px);border-left:1px solid var(--line)}
.esc__l li:first-child{border-left:0;padding-left:0}
.esc__l b{display:block;font-weight:700;font-stretch:80%;font-size:clamp(25px,3.1vw,42px);
  line-height:1;letter-spacing:-.045em;color:var(--fg);font-variant-numeric:tabular-nums}
.esc__l span{display:block;margin-top:11px;font:500 11px/1.5 var(--mono);
  letter-spacing:.07em;text-transform:uppercase;color:var(--fg4)}
.esc__l .esc__u b{color:var(--sig)}
.esc__l .esc__u span{color:var(--fg2)}
.esc__x{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;
  margin:clamp(18px,2vw,26px) 0 0;padding-top:14px;border-top:1px solid var(--line)}
.esc__x s{font-size:14px;color:var(--fg3)}
.esc__x em{font:500 11px var(--mono);font-style:normal;letter-spacing:.07em;
  text-transform:uppercase;color:var(--fg4)}
@media (max-width:1040px){
  .esc__l{grid-template-columns:repeat(3,minmax(0,1fr))}
  .esc__l li{border-top:1px solid var(--line)}
  .esc__l li:nth-child(-n+3){border-top:0}
  .esc__l li:nth-child(3n+1){border-left:0;padding-left:0}
}
@media (max-width:860px){
  .esc__h{grid-template-columns:1fr;gap:12px}
}
@media (max-width:560px){
  .esc__l{grid-template-columns:repeat(2,minmax(0,1fr))}
  .esc__l li:nth-child(-n+3){border-top:1px solid var(--line)}
  .esc__l li:nth-child(-n+2){border-top:0}
  .esc__l li:nth-child(3n+1){border-left:1px solid var(--line);padding-left:clamp(12px,1.3vw,20px)}
  .esc__l li:nth-child(odd){border-left:0;padding-left:0}
  .esc__l b{font-size:29px}
  .esc__l span{margin-top:8px}
}

/* ---- La tarjeta del 04, sin hueco y sin recorte.
   Traia altura fija (clamp 540..680) calculada cuando el embudo vivia dentro.
   Sin el embudo sobran hasta 160 px de negro debajo del renglon del ERP. Y al
   reves: entre 821 y 1000 px la rejilla seguia en dos columnas, la tarjeta
   quedaba de 390 px de ancho, cada nombre de producto se partia en dos
   renglones y el contenido llegaba a 661 px dentro de una caja de 540 con
   overflow:hidden. Es decir, el total y la cotizacion creada se cortaban. Abajo
   de 1000 px la rejilla pasa a una columna, que es lo que ya hacia en movil, y
   la tarjeta crece con lo que tiene. */
.card{height:clamp(560px,60vh,600px)}
@media (max-width:1000px){
  .motor__g{grid-template-columns:1fr}
  .card{height:auto;min-height:0}
  .motor__h{flex-direction:column;align-items:flex-start;gap:10px}
}
/* ---- El cambio de idioma. Dos letras, sin bandera: una bandera dice pais y
   esto dice idioma, y el comprador de Texas no es el de Londres. Queda del lado
   de "Escribirnos" porque es una utilidad, no una seccion del sitio. */
.nav__lang{display:inline-flex;align-items:center;height:30px;padding:0 10px;
  font:500 11px var(--mono);letter-spacing:.1em;color:var(--fg4);
  border:1px solid var(--line2);border-radius:999px;text-decoration:none;
  transition:color .18s,border-color .18s}
.nav__lang:hover{color:var(--fg);border-color:var(--line3)}
@media (max-width:1100px){.nav__lang{display:none}}
/* ==================================================================
   LA ESCALA DE TEXTO, CORREGIDA
   Medida sobre la pagina renderizada, no sobre la hoja de estilo: lo
   que se lista aqui son los tamaños calculados que resultaron abajo
   del piso de lectura. El criterio: un rotulo en versalitas puede ser
   chico, un renglon de contenido no.
   ================================================================== */

/* ---- Los rotulos. 11.5 px en las 143 paginas era el piso mas repetido
   del sitio. Suben a 12.5, que sigue leyendose como rotulo. */
.lab{font-size:12.5px}
.sec__h .lab,.hero .lab{font-size:12.5px}

/* ---- El heroe. El parrafo que sostiene el titular estaba en el piso
   justo (17.4 px en escritorio, 16 en movil). Sube y con el la
   interlinea, que a este tamaño es la mitad del problema. */
.hero__t p,.hero p.hero__lead,.hero .hero__p{font-size:clamp(17.5px,1.34vw,20.5px);line-height:1.58}

/* ==================================================================
   SECCION 02 · LO QUE RECIBE
   ================================================================== */

/* ---- La pieza ocupa el escenario. Antes: centrada, con tope de ancho,
   dentro de un panel de 500 px de alto. El resultado era una maqueta
   chica flotando en un rectangulo vacio. */
.rxs__art{place-items:stretch;align-content:stretch}
.rxs__pane{padding:clamp(18px,1.7vw,26px)}
.rxpdf{width:100%;max-width:none;padding:clamp(22px,2.2vw,34px) clamp(24px,2.4vw,38px) 20px;
  font-size:clamp(13px,1.05vw,15px);line-height:1.35}
.rxau{width:100%;max-width:none}
.rxp{width:100%;height:100%}
.rxs__art>*{width:100%}

/* ---- Y con mas espacio, la letra sube. */
.rxs__tabs button{font-size:clamp(15px,1.15vw,17px);padding:18px 15px 20px}
.rxs__tabs button small{font-size:11.5px;letter-spacing:.1em}
.rxs__oh{font-size:clamp(15.5px,1.2vw,17.5px)}
.rxs__oh span{font-size:11px}
.rxs__src{font-size:11.5px}
.rxs__ol dt{font-size:11.5px;letter-spacing:.1em}
.rxs__ol dt u{font-size:10.5px;width:17px;height:17px}
.rxs__ol dd{font-size:clamp(16px,1.24vw,18.5px);line-height:1.42}
.rxs__ol dd em{font-size:clamp(14px,1.05vw,15.5px)}
.rxs__ol dd q{font-size:10.5px}
.rxs__of{font-size:15px}
.rxs__ol dl>div{grid-template-columns:132px minmax(0,1fr);padding:15px 0}

/* ---- El PDF de la maqueta: era 11.5 px de base con celdas de 8.5. */
.rxpdf header b{font-size:clamp(15px,1.25vw,17.5px)}
.rxpdf header small,.rxpdf footer{font-size:11px}
.rxpdf th{font-size:10.5px}
.rxpdf td{padding:8px 7px}
.rxpdf td.pn,.rxpdf td.q{font-size:clamp(12px,.98vw,13.5px)}
.rxpdf td.s span{font-size:10px}
.rxpdf td.s{width:124px}

/* ---- El plano y la nota de voz. */
.rxp text{font-size:12px}
.rxp .mk text{font-size:11px}
.rxau__v small{font-size:12.5px}

/* ==================================================================
   LAS OTRAS MAQUETAS
   ================================================================== */

/* ---- El tablero del 07 tenia el texto mas chico de todo el sitio. */
.dash-ni{font-size:11.5px}
.dash-chip{font-size:10.5px}
.dash-pe{font-size:11px}
.cl{font-size:9.5px;letter-spacing:.09em}
.ac{font-size:10px}
.nm{font-size:11.5px}

/* ---- La tira de resultados del 08. */
.cz__g{font-size:12px}
.cz__u{font-size:14.5px}
.cz__nota{font-size:13.5px}

/* ---- La tarjeta de conversacion del 04 y los chips. */
.chip{font-size:12.5px}
.st{font-size:11.5px}

@media (max-width:860px){
  /* En movil el 02 es una columna: el escenario ya no compite con la
     lista, asi que la maqueta puede crecer mas. */
  .rxs__pane{padding:18px 16px;min-height:0}
  .rxpdf{padding:20px 18px 16px;font-size:13px}
  .rxs__ol dl>div{grid-template-columns:1fr;gap:6px;padding:14px 0}
  .rxs__ol dt{padding-top:0}
  .rxs__tabs button{font-size:15px;padding:15px 12px 17px}
}


/* ---- Lo que el bloque anterior no alcanzó por especificidad. Se midió otra
   vez sobre la página renderizada y estos quedaron abajo del piso: el párrafo
   del héroe (su regla vive en .hero__row p) y el tablero del 07, cuyas reglas
   están anidadas en .dash-card y .dash-row. */
.hero__row p{font-size:clamp(17.5px,1.34vw,20.5px);line-height:1.58}
.dash-card .cl{font-size:10px}
.dash-row .ac{font-size:10.5px}
.dash-row .nm{font-size:12px}
.dash-top .lk{font-size:11px}
.dash-top .ask{font-size:11px}
.dash-nav b,.dash-nav span{font-size:11.5px}
.tray__f small{font-size:11.5px}
.rxs__ol dd em{font-size:clamp(14px,1.05vw,15.5px)}
.rxau__v small,.rxs__pane em{font-size:12px}
.hoy__who{font-size:12.5px}
.tn__k{font-size:11px}
.sig{font-size:14px}
.erpwall b,.mq b{font-size:11px}
.pru__n span{font-size:12.5px}
@media (max-width:860px){
  .hero__row p{font-size:17px;line-height:1.55}
}


/* ---- El último corte: los tres nodos que seguían abajo de 10 px, medidos otra
   vez. Son rótulos de maqueta, así que no suben a tamaño de lectura; suben a
   que se puedan leer. Y el lead de sección, que en móvil quedaba en el piso. */
.dash-chart .lg span,.dash-chart span{font-size:10.5px}
.erpwall b,.mq b,.chips a,.chips span{font-size:11px}
.cta .lab,.pru .lab{font-size:11.5px}
.lead{font-size:clamp(17px,1.3vw,20.5px)}
@media (max-width:860px){.lead{font-size:17.5px;line-height:1.52}}


/* ---- Las maquetas de texto y correo del 02: los timestamps y las etiquetas de
   remitente eran lo último abajo de 10 px. */
.rxtx small,.rxml small,.rxml__s small{font-size:11px}
.rxtx p,.rxml p{font-size:clamp(14.5px,1.12vw,16.5px)}
.rxpdf td.s span{font-size:10.5px}

/* ==================================================================
   EL PISO DE LECTURA
   Medido sobre las 143 páginas renderizadas: 6,579 nodos de texto
   estaban por debajo de 13 px, casi todos dentro de las maquetas.
   Dos pisos: 11 px para rótulos en versalitas, 13 px para frases.
   ================================================================== */

/* ---- El panel de cotización del ERP. Es la maqueta más repetida del
   sitio: sale en las 25 páginas de integración y en el recorrido. */
.oq__b span{font-size:11px}
.oq__h i{font-size:11px}
.oq__h b{font-size:15px}
.oq__m dt{font-size:11px}
.oq__m dd{font-size:13.5px}
.oq__hd span,.oq__hd u,.oq__hd s{font-size:11px}
.oq__r span{font-size:14px}
.oq__r span em{font-size:11.5px}
.oq__r u,.oq__r s{font-size:12.5px}
.oq__f small{font-size:11.5px}
.oq__f b{font-size:17px}
.oq__cap,.dq__cap{font-size:11px}

/* ---- El recorrido: "Resultado" salía en 10 px en catorce páginas. */
.oin b{font-size:11px}
.oin p{font-size:14px}
.ost__s{font-size:11.5px}
.ost h3{font-size:15.5px}

/* ---- Las fichas de campo, que son el patrón más común del sitio:
   etiqueta arriba, valor abajo. La etiqueta iba en 10 px. */
dl>div>dt,.fl dt,.tn__k,.tk,.rxft .co b{font-size:11.5px}
dl>div>dd{font-size:14px}

/* ---- Los casos: "Peaking entendió" y "Peaking pregunta" son el
   rótulo que explica la demostración entera, y estaba en 9.5. */
.un small,.ms small,.u small,.m small,.rxcl p small{font-size:11.5px}
.un,.ms,.u,.m{font-size:14.5px}

/* ---- El muro de ERP: el renglón que dice qué es cada sistema. */
.erpwall .mk b,.mk .vs .vr,.bd small{font-size:11px}
.erpwall .mk span,.mk strong{font-size:14px}

/* ---- Pies de foto de las solicitudes reales. */
.rq-ph figcaption{font-size:11px}

/* ---- Las citas de fuente del informe: 39 nodos en trece páginas. */
.figs cite,cite{font-size:11.5px;line-height:1.45}

/* ---- El tablero de conversaciones: el texto más chico de todo el
   sitio estaba aquí, en 7.5 px. */
.dash-row .cn{font-size:10.5px}
.dash-recent .dash-row span{font-size:11px}

/* ---- El bloque de escala y el riel de etapas, que en móvil caían. */
.esc__e b,.esc__h b{font-size:11px}
.rail div{font-size:11.5px}
.fch__col small,.tn__fix,.rxs__tot small{font-size:11.5px}

@media (max-width:860px){
  /* En móvil el ancho aprieta y varias maquetas bajaban otro escalón. */
  .rxft .co b,.rxft .co span{font-size:11.5px}
  .erpwall .mk b,.mk .vs .vr{font-size:11px}
  .rail div{font-size:11.5px}
  .esc__e b,.esc__h b{font-size:11px}
  .oq__r span{font-size:13.5px}
  .oin p{font-size:13.5px}
}

/* ==================================================================
   EL TEXTO DE LECTURA DEJA DE SER TEXTO DE APOYO
   Las descripciones de tarjetas, listas y fichas usaban --fg3, que es
   el tono con el que el sistema marca lo secundario. No son
   secundarias: son el texto que el visitante lee para entender qué
   hace Peaking. Suben a --fg2.
   ================================================================== */
.cards article p,.rows article p,.icards p,.outc p,.srail p,
.tiles p,.bento div p,.trio p,.pano div p,.stk div p,.duo p,
.split ol li p,.ledg p,.wide div p,.eng div p,.pair p,
.lnl p,.links a p,.fr p,.idx p{color:var(--fg2)}

/* ---- Los pies que explican una cifra o una imagen: eran --fg4. */
.figs cite,.stats .src,.pz__s,.bleed__s,.beat span{color:var(--fg3)}

/* ---- El cuerpo de la prosa larga, que es donde más rato pasa el ojo. */
.prs p,.prose p,.lgl__b p,.lgl__b li{color:var(--fg2)}

/* ==================================================================
   EL PISO DE LECTURA · regla de sistema
   Declarado por tipo de elemento y no por selector, porque las reglas
   originales están anidadas y ganan por especificidad. Lleva
   !important a propósito: un piso que pierde no es un piso.
   Medido sobre las 143 páginas: había 6,453 nodos abajo de 13 px.
   ================================================================== */

/* ---- Rótulos, etiquetas de campo y marcas de canal: 12 px. */
main small,
main cite,
main figcaption,
main dt,
main q,
main .ch,
main .cl,
main .k,
main .kk,
main .tag,
main .cn,
main .lk,
main .ask,
main .st,
main .tk,
main .tn__k,
main .tn__fix,
main .rxau__k,
main .dq__st,
main .oq__cap,
main .dq__cap,
main .ost__s,
main .dash-chip,
main .dash-ni,
main .dash-pe,
main .esc__e b,
main .esc__h b,
main .rail div,
main .oin b,
main .oq__b span,
main .oq__h i,
main .oq__hd span,
main .oq__hd u,
main .oq__hd s,
main .oq__m dt,
main .rxpdf th,
main .rxpdf footer,
main .rxpdf header small,
main .erpwall .mk b,
main .mk .vr,
main .vs .vr{font-size:12px!important;line-height:1.45}

/* ---- Lo que es una frase, aunque viva dentro de una maqueta: 13.5 px. */
main .oq__r span,
main main .oin p,
main .cz__f span,
main .cz__g,
main .ac,
main .nm,
main .rxtx p,
main .rxml p,
main .conv .msg,
main .conv .ask,
main .msg,
main .un,
main .ms,
main .u,
main .m,
main .rq p,
main .rs p,
main .bd,
main .rqf__bub{font-size:13.5px!important;line-height:1.45}

/* ---- Las dos excepciones legítimas: un superíndice y la marca de
   agua del panel, que no son texto de lectura. */
main sup,main .oq__r s sup{font-size:.7em!important}

@media (max-width:860px){
  /* En móvil el ancho aprieta, pero el piso no baja. */
  main small,main cite,main figcaption,main dt,main q,
  main .ch,main .cl,main .k,main .cn{font-size:12px!important}
}


/* ---- Segunda pasada del piso. La auditoría volvió a correr y quedaban
   31 grupos entre 10.5 y 11 px que la primera lista no nombraba. Los dos
   más repetidos son navegación: la miga (en las 143 páginas) y el muro de
   ERP (637 nodos). Un enlace en el que hay que hacer clic no puede ir a
   11 px. */
main .crumb a,
main .crumb span,
main .chips a,
main .chips span,
main .erpbadge b,
main .prs__go,
main .cs__go,
main .isrc b,
main .isrc,
main .ba__h span,
main .bd .n,
main .tn__n span,
main .dash-legend span,
main .stats div span,
main .cym__k,
main .cyv__k,
main .cya__t span,
main .esc__l span,
main .row div span,
main thead th,
main td.s span{font-size:12.5px!important;letter-spacing:.07em}

/* ---- Y lo que dentro de esos bloques es una frase, no un rótulo. */
main .isrc{font-size:13px!important;letter-spacing:0;line-height:1.55}
main .row div span{letter-spacing:0}


/* ---- Tercera y última pasada. Quedaban doce nodos en 10.5 y unos
   treinta en 11: los rótulos de las maquetas de solicitud, la insignia
   de compatibilidad, los enlaces "Ver el giro" y los pies de gráfica.
   Con esto el piso del sitio queda en 12 px. */
main .rqf__uh b,
main .badge b,
main .tg,
main .go,
main .dash-panel h5,
main .rxs__oh span,
main .legend span,
main .gr__lg span,
main .hero__foot span,
main .erp em,
main .hoy__cap span,
main .tray__h span,
main .seg3 button{font-size:12.5px!important}
main .hero__foot span,main .legend span{letter-spacing:.07em}


/* ---- El cierre del piso: el rótulo de la banda de cierre sale en las
   138 páginas y estaba en 11.5. Con esto el mínimo del sitio es 12.5. */
main .cta .lab,
main .pru .lab,
main .rxs__src b,
main .rxs__src,
main .rxft .co b,
main .rxft .co span,
main .esc__x em,
main .esc__x s,
main .lgl__d,
main .erp span,
main .rq-at span,
main .oq__r span em{font-size:12.5px!important}

/* ==================================================================
   ARCHIVO EN LOS RÓTULOS, MONO SOLO EN EL DATO
   --mono pasó a ser Archivo. Plex Mono vive ahora en --code y se
   aplica solo donde el dígito tiene que alinearse en columna o donde
   el renglón es dato de máquina y no prosa: número de parte, folio,
   SKU, hora, importe. Ahí la mono no es decoración, es función.
   ================================================================== */
.oq__r span em,
.oq__f b,
.oq__m dd,
.oq__h b,
.rxpdf td.pn,
.rxpdf td.q,
.cyc__fol code,
.rel__h span,
.erp em,
.fl code,
.dq li b,
.pr,
.sol__t b,
.cnt b,
.esc__l b,
.fun b{font-family:var(--code)!important;font-variant-numeric:tabular-nums}

/* ==================================================================
   LOS SIETE PUNTOS, MEDIDOS Y SUBIDOS
   ================================================================== */

/* ---- 1. El renglón que describe el producto en la cotización.
   "12 m · empalme vulcanizado" no es un rótulo: es lo que define
   la banda. Iba en 12.5 px de mono. */
main .sol .row div span,
main .row>div>span{font-size:14px!important;letter-spacing:0;color:var(--fg3)}
.sol .row div b,.row>div>b{font-size:16px!important}

/* ---- 2. El correo del 02. Es texto para leer, no una maqueta
   decorativa: el visitante tiene que poder leer la solicitud. */
main .rxs .rxml__b p,main .rxs .rxml p{font-size:15.5px!important;line-height:1.55}
main .rxs .rxml__s b,main .rxs .rxml__h b{font-size:16.5px!important}
main .rxs .rxml__s span,main .rxs .rxml__h span{font-size:13px!important}
main .rxs .rxtx p{font-size:15px!important;line-height:1.5}

/* ---- 3 y 4. La franja de escala del 04: los criterios y el
   descarte. Con Archivo, el mismo cuerpo ya pesa más; además suben. */
main .esc .esc__l span{font-size:13.5px!important;letter-spacing:.05em;color:var(--fg2)}
main .esc .esc__x em{font-size:13.5px!important;letter-spacing:.04em;text-transform:none;color:var(--fg3)}
main .esc .esc__x s{font-size:15px!important}

/* ---- 5. El riel de etapas del 04. Va junto a un titular de 115 px:
   a 12 px desaparecía. */
main .motor .rail div{font-size:14px!important;letter-spacing:.06em}
.rail div.on{color:var(--fg)}

/* ---- 6. Los enlaces del mega menú. Son navegación, y había
   columnas de ocho a 15 px con poca interlínea. */
body .mega .mega__in a{font-size:16px!important;line-height:1.85}
body .mega .mega__in h6{font-size:12.5px!important;letter-spacing:.09em}
body .mega .feat b{font-size:19px!important}
body .mega .feat p{font-size:14.5px!important;line-height:1.5}

/* ---- 7. Las listas de industrias y de frentes. */
main .idx li a{font-size:16px!important}
.idx li a small{font-size:13px!important}
main .fr .bd b{font-size:18.5px!important}
main .fr .bd p,main .fr p{font-size:14.5px!important;line-height:1.5}
.fr .n,.fr small{font-size:12.5px!important}
main .lnl b{font-size:17px!important}
main .lnl p{font-size:14.5px!important}

/* ---- Y los rótulos en general: con Archivo el mismo cuerpo se lee
   más, así que el espaciado de versalitas se afloja un punto para que
   no quede apretado. */
.lab{letter-spacing:.08em}

@media (max-width:860px){
  body .mega .mega__in a{font-size:16px!important}
  .rxml__b p,.rxml p{font-size:15px!important}
  .esc__l span{font-size:13px!important}
  .rail div{font-size:13.5px!important}
}

/* ==================================================================
   LAS DOS LISTAS QUE QUEDABAN
   ================================================================== */

/* ---- Las trece líneas de producto de la 06. Trece renglones de 16 px
   junto a una foto de 620 px de alto se leen como una nota al pie. */
main .ilist li button span{font-size:17.5px!important}
main .ilist li button{padding-top:15px!important;padding-bottom:15px!important}
main .ilist li button b,main .ilist li button .n{font-size:12.5px!important}

/* ---- Los frentes al pie de la 05. */
main .idx li a{font-size:17px!important;padding-top:18px!important;padding-bottom:18px!important}
main .idx li a small{font-size:13.5px!important}

/* ---- El texto de las tarjetas de la 05: iba suelto dentro de .bd, sin
   párrafo, así que la regla anterior no lo alcanzaba. */
main .fr .bd{font-size:15px!important;line-height:1.5}
main .fr .bd b{font-size:18.5px!important}

/* ==================================================================
   EL RITMO, AJUSTADO A LA LETRA NUEVA
   Solo donde el hueco quedó por debajo del cuerpo que lo rodea.
   ================================================================== */

/* ---- El renglón de la cotización: 6 px de aire para un texto de 16.
   Con el nombre del producto en 16 px, los renglones se tocaban. */
main .sol .row{padding-top:11px;padding-bottom:11px}

/* ---- Las fichas del recorrido y del 02. */
main .rxs__ol dl>div{padding-top:17px;padding-bottom:17px}
main .oq__r{padding-top:11px;padding-bottom:11px}

@media (max-width:860px){
  /* ---- Móvil es donde aprieta. La sección respira y, sobre todo, el
     encabezado deja de estar pegado a su contenido: 24.5 px con el lead
     en 17.5 px era menos de un renglón y medio. */
  .sec,.sec.px,.sec.bt{padding-top:clamp(74px,11vh,96px)!important;padding-bottom:clamp(74px,11vh,96px)!important}
  .sec__h{margin-bottom:38px}
  .sec__h h2{margin-bottom:18px}

  /* Dentro de los bloques: tarjetas, fichas y listas. */
  .cz__b{padding-top:30px;padding-bottom:30px}
  .fr .bd{padding-bottom:30px}
  .cards article,.rows article,.icards article,.icards a,
  .outc div,.tiles div,.trio article,.duo article{padding-top:26px;padding-bottom:26px}
  .split ol li,.stk div>div,.lnl li{padding-top:20px;padding-bottom:20px}
  .esc__l li{padding-top:18px;padding-bottom:18px}
  .rel__s{padding-top:24px;padding-bottom:24px}
  .idx li a{padding-top:20px!important;padding-bottom:20px!important}
  .ilist li button{padding-top:17px!important;padding-bottom:17px!important}

  /* Y el aire entre piezas dentro de una misma sección. */
  .cards,.rows,.icards,.outc,.tiles,.trio,.duo,.srail{row-gap:14px}
  .beat{margin-top:34px;margin-bottom:34px}
  .prs p+p,.prose p+p{margin-top:18px}
}

/* ==================================================================
   EL GROSOR
   Medido en 60 páginas: el peso 600 era el más usado del sitio, con
   2,148 nodos, y casi todos en cuerpos de 15 a 19 px. En una grotesca
   de aperturas cerradas eso se lee macizo. Se afina por tramos.
   ================================================================== */

/* ---- 17 a 22 px: títulos de tarjeta, renglones de lista, enlaces.
   De 600 a 550. Es medio escalón, no un cambio de voz. */
main .links a b,
main .lnl b,
main .idx li a,
main .cards article h3,
main .rows article h3,
main .icards h3,
main .outc b,
main .tiles b,
main .trio h3,
main .duo h3,
main .pano div b,
main .stk h3,
main .bento div b,
main .ledg h3,
main .wide div b,
main .eng div b,
main .pair h3,
main .split ol li b,
main .srail b,
main .fr .bd b,
main .bd b,
main .rel__b b,
main .oin p,
main .figs b,
main .antes li b,
main .docs b,
main .words b,
main .ilist li button span{font-weight:550!important}

/* ---- Los botones. A 15.5 px el semibold los hace ver inflados. */
.btn,.btn--p,.btn--g,.btn--s{font-weight:550}

/* ---- Las pestañas y los conmutadores. */
main .fch__t span,
main .rxs__tabs button,
main .esp__tabs button,
main .seg3 button,
main .tn__n span{font-weight:520!important}

/* ---- 11 a 13 px en versalitas: aquí vivía la textura poco afinada.
   Un rótulo chico en semibold pesa mucho para lo poco que dice. */
main .lab,
main small,
main cite,
main figcaption,
main dt,
main .ch,
main .cl,
main .k,
main .cn,
main th,
main .co b,
main .fl,
main .oq__hd span,
main .oq__hd u,
main .oq__hd s,
main .oq__b span,
main .esc__l span,
main .rail div,
main .oin b,
main .ost__s,
main .erpbadge b,
main .crumb a,
main .crumb span{font-weight:520!important;letter-spacing:.085em}
main .crumb a,main .crumb span,main .esc__l span{letter-spacing:.06em}

/* ---- Texto corrido: 400, sin excepción. Un párrafo en 500 se lee
   como si todo estuviera subrayado. */
main p,
main .rxs__ol dd,
main li p,
main .prs p,
main .lgl__b p,
main .lgl__b li,
main .rxml p,
main .rxtx p{font-weight:400}

/* ---- Y donde el peso SÍ es información, se queda: el importe de una
   cotización, el total, y las cifras de los casos. */
main .oq__f b,
main .sol__t b,
main .pr,
main .figs .v,
main .stats b,
main .cz__f b,
main .cnt b,
main .fun b,
main .esc__l b{font-weight:700!important}

/* ==================================================================
   LA CITA TACHADA
   <q> cayó en el piso de rótulos junto a small y cite. No es un
   rótulo: es la frase que dice cómo suena hoy la operación.
   ================================================================== */
main .bd q,
main .fr q,
main article>q{font-size:15px!important;font-weight:400!important;letter-spacing:0;
  text-transform:none;line-height:1.45}

/* ==================================================================
   EL PISO, EN LA ÚLTIMA CAPA
   Esta hoja se lee después del CSS de la página, así que aquí el
   !important es definitivo. Medido: 183 declaraciones abajo de 12 px
   en la fuente, y en pantalla seguían saliendo nodos en 8 px.

   Dos pisos, el criterio de siempre:
       12 px    rótulos, versalitas, etiquetas de campo, marcas
       13.5 px  cualquier cosa que sea una frase
   ================================================================== */

/* ---- Las maquetas. Son composiciones densas dentro de una caja de
   alto fijo, y ahí nacieron los 7.5 y los 8 px. El visitante tiene que
   poder leerlas: son la prueba de que el producto existe. Se listan los
   elementos, no un comodín: un max(12px,1em) sobre .dash * también
   AGRANDA a un hijo legítimamente menor que su padre. */
/* Y los propios contenedores, que es donde vive el em del que cuelga
   el resto. Un max() sobre 1em no sirve si el padre ya está en 8. */
main .dash-delta,
main .dash-chip,
main .dash-ni,
main .dash-pe,
main .dash-search,
main .dash-logo,
main .dash-legend span,
main .dash-nav b,
main .dash-nav span,
main .dash-card .cl,
main .dash-row .cn,
main .dash-row .ac,
main .dash-recent .dash-row span,
main .dash-top .ask,
main .dash-top .lk,
main .dash-panel h5,
main .erpwall b,
main .erpwall .mk b,
main .erpwall .mk .vr,
main .erpwall>a:not(.mk) b,
main .rxpdf,
main .rxpdf th,
main .rxpdf footer,
main .rxpdf header small,
main .rxpdf td.s span,
main .rxpdf td.pn,
main .rxpdf td.q,
main .rxft .co b,
main .rxcl__h small,
main .rxcl__h em,
main .rxcl p small,
main .rxml header small,
main .rxml header>span,
main .rxml__s small,
main .rxtx header small,
main .rxtx header span,
main .rxtx p small,
main .rxau__k,
main .rxau__v small,
main .rxs__src,
main .rxs__oh span,
main .rxs__ol dt,
main .rxs__ol dt u,
main .rxs__tabs button small,
main .rxs__tot small,
main .rxp .mk text,
main .istage__txt .tag,
main .istage__txt .rq small,
main .istage__txt .rs small,
main .opstage .tr .stt,
main .tray__f small,
main .card__note,
main .card__top .st,
main .bub small,
main .msg small,
main .node small,
main .ctl__txt .tag,
main .ctl__stats small,
main .dc__i em,
main .fch__col small,
main .fch__t i,
main .tiles .tk,
main .esc__h b,
main .esc__e b,
main .dq__cap,
main .dq__st,
main .dq__h small,
main .dq dt,
main .dq__f small,
main .cov__p small,
main .cov__p span,
main .td2 li small,
main .td2 h3,
main .htri__g figcaption small,
main .chain small,
main .orail small,
main .cs__go,
main .gr__lg span,
main .gr__f,
main .tl__n,
main .tl small,
main .cyc__chat small,
main .cyc__k span,
main .cyv__k,
main .cym__k,
main .cya__t span,
main .rel__h small,
main .ilist .nw,
main .ilist li button small,
main .idx li a small,
main .opl .n,
main .acc__p .n,
main .ways .n,
main .ways .k,
main .fld span,
main .more>span,
main .legend,
main .chip,
main .chips a,
main .chips span,
main .hoy__who,
main .hoy__cap,
main .res .who,
main .tr .ch,
main .tr .stt,
main .tr em,
main .tn__k,
main .tn__fix,
main .tn__n span,
main .esp__hd small,
main .esp__c p small,
main .esp__c .e .vn em,
main .esp__c .e .at,
main .esp__ph figcaption,
main .espm small,
main .fun .x em,
main .fun span,
main .cz__f span,
main .cz__g,
main .cnt span,
main .row span,
main .erp em,
main .erp span,
main .erp>span:first-child,
main .days button small,
main .fr small,
main .fr .n,
main .oq__h i,
main .oq__m dt,
main .oq__cap,
main .oq__r span em,
main .oq__f small,
main .ost__s,
main .st,
main .nm,
main .ac,
main .cl,
main .lab,
main .vermas,
main .hero__foot span,
main .hero__top .lab,
main .ask small,
main .esc__l span,
main .esc__x em,
main .rail div{font-size:12px!important}

/* ---- Lo que es una frase: 13.5 px, aunque viva dentro de una maqueta. */
main .rxs__ol dd,
main .rxs__ol dd q,
main .rxml p,
main .rxtx p,
main .dash-row .nm,
main .oq__r span,
main .oq__m dd,
main .msg,
main .bub,
main .rq p,
main .rs p{font-size:13.5px!important}

/* ---- El pie de foto y el superíndice, que no son texto de lectura. */
main sup{font-size:.7em!important}

/* ---- Y el grosor, que también se escapaba en la hoja de página. */
main .dash-logo,
main .dash-panel h5,
main .dash-delta,
main .dash-ni.on,
main .nm,
main .who,
main .res .who,
main .sig,
main .tx{font-weight:520!important}

/* ==================================================================
   LA CITA TACHADA, otra vez y aquí sí definitivo.
   ================================================================== */
main .bd q,
main .fr q,
main article>q{font-size:15px!important;font-weight:400!important;letter-spacing:0;
  text-transform:none;line-height:1.45}

/* ==================================================================
   EL PISO LLEGA AL PIE Y AL MENÚ
   El piso se escribió con prefijo "main", así que nunca tocó el
   encabezado ni el pie. Medido: 1,287 de los 1,316 nodos que seguían
   abajo de 12 px eran exactamente eso.
   ================================================================== */
.foot h5{font-size:12px!important;letter-spacing:.12em}
.foot__legal{font-size:12px!important}
.foot__legal span,.foot__legal a{font-size:12px!important}
.nav__lang{font-size:12px!important;letter-spacing:.08em}

/* ==================================================================
   LOS DOS DE CONTENIDO QUE QUEDABAN
   ================================================================== */

/* ---- La insignia de formato, "PDF", sobre el naranja. Iba en 8.5 px:
   es el dato que dice cómo llegó el pedido. */
main .fl b{font-size:12px!important;font-weight:600!important;letter-spacing:.04em}

/* ---- El monograma del avatar, dentro de un círculo de 34 px. */
main .chatw header span{font-size:12px!important}

/* ---- Y el .tx, que quedó en 16 px con peso 600: es texto corrido. */
main .tx{font-weight:400!important}

/* ==================================================================
   LA TARJETA DEL 04 YA NO CORTA
   Al crecer su tipografía, el contenido llegó a 593 px a 1024 px de
   ancho, contra una caja de 570. Sube el piso del clamp.
   ================================================================== */
main .motor .card,main .card{height:clamp(610px,64vh,650px)}
@media (max-width:1000px){
  main .motor .card,main .card{height:auto;min-height:0}
}

/* ==================================================================
   LOS TRES ÚLTIMOS
   ================================================================== */

/* ---- "POR QUÉ": abre una frase de 15.5 px, iba en 10. */
main .altw b{font-size:12px!important;letter-spacing:.09em}

/* ---- Los números de paso. .fr .n y .opl .n ya tenían piso; estos dos
   comparten la forma y se habían quedado fuera. */
main .steps3 .n,main .cards .n{font-size:12px!important;letter-spacing:.11em}

/* ---- La duración de la nota de voz. */
main .cm-vn em{font-size:12px!important}

/* ==================================================================
   EL NARANJA SOLO DONDE SIGNIFICA
   Medido sobre las 143 páginas: el naranja ya estaba casi todo bien
   puesto (hover, .on, aria-selected, li:last-child). Lo que sobraba
   eran tres índices de orden y un defecto real en .chain, donde las
   DOS columnas de la comparación salían en naranja y por lo tanto el
   color no distinguía nada.
   ================================================================== */

/* ---- El defecto: .chain pintaba "Hoy" y "Con Peaking" igual. El
   último paso ya va en naranja por .chain>div:last-child, así que el
   rótulo general vuelve al gris y la comparación recupera su lado. */
main .chain small{color:var(--fg4)}
main .chain>div:last-child small{color:var(--sig)}

/* ---- Los índices de orden. Un número de secuencia no es un
   resultado; es el mueble donde se apoya el resultado. */
main .steps3 .n,
main .cards .n,
main .opl .n{color:var(--fg4)}

/* ==================================================================
   CORRECCIÓN: la última tarjeta de la cadena va RELLENA de naranja,
   así que su rótulo va oscuro y no naranja. v144 lo dejó del color
   del relleno, o sea invisible (contraste 1:1).
   ================================================================== */
main .chain>div:last-child small{color:#0A0706!important}

/* ==================================================================
   EL PULSO, AHORA SIN BORDE Y CON ESPECIFICIDAD CERO
   Era relleno plano y al terminar la sección dejaba una línea dura:
   rgb(17,13,10) contra rgb(10,7,6), medido a lo ancho de la página.
   Ahora nace y muere en transparente, así que la superficie cambia
   sin que exista una frontera que se pueda señalar.

   VA DENTRO DE :where() A PROPÓSITO. Sin él el selector pesa (0,1,2)
   y le gana a cualquier .bleed--color o .bhero, que pesan (0,1,0):
   el pulso terminaría borrando los fondos puestos a mano. Con
   :where() pesa CERO y pierde contra todo lo declarado, que es lo
   que tiene que pasar. Es la inversa del piso de tipografía.
   ================================================================== */
:where(main>section:nth-of-type(4n+2)),
:where(main>section:nth-of-type(4n+3)){
  background:linear-gradient(180deg,
    transparent 0,
    var(--warm) 13%,
    var(--warm) 87%,
    transparent 100%)}

/* ==================================================================
   EL NARANJA EN LAS ZONAS CLAVE
   Los CTA al 16 % (hay dos por página). Los bloques de cifra al 13 %,
   porque puede haber varios y al 16 % el fondo se volvería ámbar.
   Ninguno lleva borde: el degradado muere en transparente adentro del
   propio bloque.
   ================================================================== */

/* ---- Los bloques de cifra: es el otro momento donde la página
   afirma algo, igual que un CTA. */
.stats,.figs,.cz,.pru__in{position:relative;isolation:isolate}
.stats::before,.figs::before,.cz::before,.pru__in::before{
  content:"";position:absolute;inset:-34% 0 -22%;z-index:-1;pointer-events:none;
  background:radial-gradient(112% 74% at 50% 42%,rgba(255,123,48,.13),transparent 66%)}
.stats>*,.figs>*,.cz>*,.pru__in>*{position:relative;z-index:1}

/* ==================================================================
   EL CORREO DE LA SECCIÓN 02
   El cuerpo iba en 15.5 px rodeado de texto de página en 17. No es
   maqueta decorativa: es la solicitud que hay que poder leer.
   ================================================================== */
main .rxs .rxml__b p,main .rxs .rxml p{font-size:17px!important;line-height:1.58}
main .rxs .rxml__s b{font-size:19px!important;line-height:1.3}
main .rxs .rxml__s small{font-size:12.5px!important}
main .rxs .rxml header>div>b,main .rxs .rxml header b{font-size:15.5px!important}
main .rxs .rxml header>div>small,main .rxs .rxml header small{font-size:13px!important}
main .rxs .rxml header>span{font-size:13px!important}
main .rxs .rxtx p{font-size:16.5px!important;line-height:1.55}
main .rxs .rxs__src b{font-size:14px!important}
main .rxs .rxs__tot>div>span{font-size:13.5px!important}

@media (max-width:860px){
  main .rxs .rxml__b p,main .rxs .rxml p{font-size:16px!important}
  main .rxs .rxml__s b{font-size:17.5px!important}
  main .rxs .rxtx p{font-size:15.5px!important}
}

/* ==================================================================
   EL NARANJA COMO PUNTO, NO COMO ZONA
   Los campos grandes se apagan: un lavado de 1,400 px no señala
   nada, solo tiñe, y se come el negro. El naranja se concentra
   donde la página afirma algo.
   ================================================================== */

/* ---- Se apagan los campos de sección. */
.ctab::before,.cta::before,
.stats::before,.figs::before,.cz::before,.pru__in::before{background:none!important}

/* ---- El halo de la cifra. Va detrás del NÚMERO, no de la tarjeta,
   y muere en transparente adentro de su propio radio. */
/* width:max-content es lo que hace que el halo quede CENTRADO en la
   cifra. Sin eso el <b> ocupa toda la columna, el left:50% se refiere
   a la columna y no al numero, y el brillo aparece a la derecha de la
   cifra como una mancha horizontal. Medido en pantalla, no supuesto. */
main .stats b,
main .figs b,
main .cz__n,
main .pru__n b,
main .logos__n b{position:relative;isolation:isolate;width:max-content;max-width:100%}
main .stats b::before,
main .figs b::before,
main .cz__n::before,
main .pru__n b::before,
main .logos__n b::before{
  content:"";position:absolute;left:50%;top:52%;width:150%;height:210%;
  transform:translate(-50%,-50%);z-index:-1;pointer-events:none;
  background:radial-gradient(closest-side,rgba(255,123,48,.20),transparent 70%)}

/* ---- El halo del botón primario. Una sombra difusa no puede tener
   borde: su caída es continua por construcción. */
.btn--p{box-shadow:0 10px 30px -12px rgba(250,58,50,.5),
                   0 0 46px -6px rgba(255,123,48,.40)}

/* ==================================================================
   LA MONO SALE DE LOS VALORES DE LA FICHA
   .oq__m dd viajaba dentro de la lista de --code de v137, y ahí vive
   el nombre del cliente, el canal, las condiciones y la entrega. Eso
   es prosa, no dato de máquina. El folio (.oq__h b) y el importe
   (.oq__f b) conservan la mono, que ahí sí es función.
   ================================================================== */
main .oq__m dd{font-family:var(--sans)!important;font-variant-numeric:normal}

/* ==================================================================
   2. EL GRIS APAGADO DEJA DE SER COLOR DE TEXTO
   --fg4 (174,162,152) es el tono que se pierde. 440 nodos lo usaban.
   Todo lo que sea texto legible sube a --fg2. --fg3 queda para 17 px
   para arriba, donde la masa de letra ya sostiene el tono.
   ================================================================== */
main .lab,
main small,
main cite,
main figcaption,
main dt,
main .ch,
main .cl,
main .k,
main .cn,
main .st,
main .tk,
main .nm,
main .ac,
main .ost__s,
main .oq__cap,
main .dq__cap,
main .dq__st,
main .oq__m dt,
main .oq__f small,
main .oq__hd span,
main .oq__hd u,
main .oq__b span,
main .fr small,
main .fr .n,
main .cards .n,
main .steps3 .n,
main .opl .n,
main .idx li a small,
main .ilist li button small,
main .chain small,
main .cz__f span,
main .cz__g,
main .cz__nota,
main .ways .n,
main .ways .k,
main .tl small,
main .tl__n,
main .legend,
main .hoy__who,
main .hoy__cap,
main .res .who,
main .card__note,
main .card__top .st,
main .bub small,
main .msg small,
main .node small,
main .ctl__txt .tag,
main .ctl__stats small,
main .istage__txt .tag,
main .tray__f small,
main .erp em,
main .erp span,
main .cnt span,
main .row span,
main .fun span,
main .espm small,
main .esp__hd small,
main .esp__c p small,
main .rxs__src,
main .rxs__ol dt,
main .rxcl__h small,
main .rxcl__h em,
main .rxml header small,
main .rxml header>span,
main .rxml__s small,
main .rxtx header small,
main .rxtx header span,
main .rxau__v small,
main .rxau__k,
main .rxs__oh span,
main .crumb a,
main .crumb span,
main .altw b,
main .cm-vn em,
main .dash-row .ac,
main .dash-card .cl,
main .dash-nav b,
main .dash-nav span,
main .dash-pe,
main .figs cite,
main .stats .src,
main .pz__s,
main .bleed__s,
main .beat span,
main .oq__r span,
main .oq__m dd,
main .rxs__ol dd{color:var(--fg2)!important}

/* ---- Y los rotulos en versalitas, que son los que mas se perdian,
   van en blanco. Es el texto mas chico de la pagina: necesita el
   contraste maximo, no el minimo. */
main .lab,
main .hero__top .lab,
main .sec__h .lab,
main .esc__l span,
main .rail div.on,
main .oq__hd s{color:var(--fg)!important}

/* ---- El pie y el menu siguen la misma regla. */
.foot h5{color:var(--fg2)!important}
.foot__legal,.foot__legal span,.foot__legal a{color:var(--fg2)!important}
.nav__lang{color:var(--fg2)!important}



/* ==================================================================
   EL NARANJA, VISIBLE
   El veredicto fue "no se alcanza a ver para nada". Era correcto:
   al reducir el area a puntos estrategicos deje la intensidad de
   campo grande. Menos area pide mas intensidad, no la misma.
   ================================================================== */

/* ---- El halo de la cifra: de 20 % a 52 %, con el radio cerrado.
   Ahora si hay un resplandor detras del numero. */
main .stats b::before,
main .figs b::before,
main .cz__n::before,
main .pru__n b::before,
main .logos__n b::before{
  width:132%!important;height:180%!important;
  background:radial-gradient(closest-side,rgba(255,123,48,.52),rgba(255,123,48,.16) 52%,transparent 74%)!important}

/* ---- NUEVO: la cifra lleva una barra solida debajo. Es lo unico
   que de verdad se ve a este tamano: un degradado tenue detras de un
   numero no compite con el numero, una barra solida si. */
main .stats b::after,
main .figs b::after,
main .cz__n::after,
main .pru__n b::after{
  content:"";position:absolute;left:0;bottom:-.22em;
  width:2.2em;max-width:100%;height:3px;border-radius:2px;
  background:linear-gradient(90deg,var(--sig),rgba(255,123,48,.25));
  pointer-events:none}

/* ---- El punto naranja del rotulo. OJO: .lab YA trae un <i> que es
   ese punto, con su anillo. No se agrega un ::before, que duplicaba
   la marca; se refuerza el que ya existe y se obliga a mostrarse,
   porque una regla posterior lo apagaba en varios contextos. */
main .lab i{
  display:block!important;width:8px!important;height:8px!important;
  border-radius:50%;background:var(--sig)!important;flex:0 0 auto;
  margin-top:0!important;align-self:center;
  box-shadow:0 0 0 4px rgba(255,123,48,.20),0 0 14px rgba(255,123,48,.75)!important}
main .lab{display:inline-flex!important;align-items:center;gap:10px}

/* ---- El halo del boton primario: de 40 % a 70 %, mas apretado. */
.btn--p{box-shadow:0 10px 30px -12px rgba(250,58,50,.55),
                   0 0 34px -4px rgba(255,123,48,.70)}

/* ---- Y el campo de los dos momentos ancla vuelve, chico y firme:
   detras del bloque de texto del CTA, no de la seccion entera. */
.ctab__in,.cta .ctab__in{position:relative;isolation:isolate}
.ctab__in::before{
  content:"";position:absolute;left:-4%;right:40%;top:-60%;bottom:-60%;
  z-index:-1;pointer-events:none;
  background:radial-gradient(closest-side,rgba(255,123,48,.30),transparent 72%)}

/* ==================================================================
   LAS TRECE INDUSTRIAS, EN CAJAS
   Trece renglones separados por una linea fina no tienen forma: el
   ojo no puede agarrar ninguno y el activo se distingue apenas por
   el peso. Cada industria pasa a ser una caja, y el naranja vive en
   el contorno de la activa, que es donde se pidio.
   ================================================================== */
main .ilist{
  border-top:0!important;
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  align-content:start}

main .ilist li{flex:none!important;min-width:0}

main .ilist li button{
  position:relative;
  display:flex!important;
  flex-direction:column;
  align-items:flex-start!important;
  gap:7px;
  width:100%;
  height:100%;
  text-align:left;
  padding:15px 15px 16px!important;
  border:1px solid var(--line2);
  border-radius:11px;
  background:var(--s1);
  white-space:normal!important;
  transition:border-color .2s var(--ease),background .2s var(--ease),transform .2s var(--ease)}

main .ilist li button span{
  font-size:16px!important;
  font-weight:550!important;
  line-height:1.25;
  white-space:normal!important;
  color:var(--fg)}

/* El numero de orden va a la esquina: es referencia, no contenido. */
main .ilist li button small{
  font-size:12px!important;
  letter-spacing:.1em!important;
  color:var(--fg4);
  order:-1}

main .ilist li button i{display:none!important}

main .ilist li button:hover{
  border-color:var(--line3);
  background:var(--s2);
  transform:translateY(-1px)}

/* ---- La caja activa: el naranja en el contorno, y nada mas. */
main .ilist li button.on{
  border-color:var(--sig)!important;
  background:linear-gradient(180deg,rgba(255,123,48,.10),rgba(255,123,48,.03))!important;
  box-shadow:0 0 0 1px rgba(255,123,48,.35),0 6px 26px -12px rgba(255,123,48,.55)}
main .ilist li button.on span{color:var(--fg)}
main .ilist li button.on small{color:var(--sig)}

@media (max-width:1000px){
  /* En movil vuelven a una sola columna, que es donde caben. */
  main .ilist{grid-template-columns:1fr;gap:9px}
  main .ilist li button{padding:13px 14px 14px!important}
  main .ilist li button span{font-size:15.5px!important}
}

/* ==================================================================
   EL NARANJA SEMANTICO SOBREVIVE AL CAMBIO DE TONO
   La regla de color de esta tanda (main small{color:var(--fg2)})
   piso el naranja de las etiquetas de resultado: "Cotizacion lista",
   "Peaking propone", "Lo que resuelve bien" salieron en gris.

   En vez de listarlas a mano se extrajeron del codigo TODAS las
   reglas que ponen color:var(--sig) y se re-afirman aqui, al final.
   Asi el cambio de tono no puede volver a pisarlas.

   Quedan fuera a proposito los tres indices de orden que v144 mando
   a gris (.cards .n, .steps3 .n, .opl .n) y .chain small, que se
   corrigio para que solo el ultimo paso lleve el color.
   ================================================================== */
#iname a:hover,
main .altc .a2 small,
main .altc>div.ar,
main .ask small,
main .ba__b p::before,
main .ba__h span:last-child,
main .cov__p span,
main .cs__go,
main .ctl__txt .tag,
main .cya>li:last-child .cya__t span,
main .cyc__fol code,
main .cym__l li:last-child .cym__k,
main .cyv li:last-child .cyv__k,
main .cz__c:hover .cz__f span,
main .dash-ni.on svg,
main .dash-panel h5 svg,
main .dq__st,
main .duo .k,
main .erpwall .mk .vr:hover,
main .erpwall .mk--p .tx,
main .esc__e--s b,
main .esc__h b.s,
main .esc__l .esc__u b,
main .esp__c .k small,
main .espm small,
main .fch__col:first-child small,
main .fch__t.on i,
main .fl2__c small,
main .fnt span a:hover,
main .fun>div:nth-child(5) b,
main .gr__f a:hover,
main .gstrip svg,
main .htri__g figcaption small,
main .icards a .go,
main .igrid .go,
main .il__go:hover,
main .isrc a:hover,
main .ledg .k,
main .lnk svg,
main .lnl a:hover b,
main .lnl svg,
main .norms code,
main .oq__h i.ok,
main .orail small,
main .orail>* small,
main .ost.on .ost__s,
main .osteps .ost__s,
main .otab__r .rw.w,
main .pair .k,
main .prs__go,
main .qt__b small,
main .rel__s--fin .rel__h small,
main .req3 .un li svg,
main .reqs li svg,
main .rqf__arr,
main .rqf__ok,
main .rqf__sm .ms b,
main .rqt__p small,
main .rxau__t mark,
main .rxcl p.b small,
main .rxs__of svg,
main .rxs__ol dd q,
main .rxs__tabs button[aria-selected=true] small,
main .rxs__tot small,
main .sband__h span,
main .split li::before,
main .stats span,
main .stp4 div::before,
main .td2 li svg,
main .tiles .tk,
main .tn__k,
main .tr.hum .stt,
main .tr.hum em,
main .trio .k,
main .tt2 li svg,
main .wide figcaption span,
main .chain>div:last-child small,
main .ilist li button.on small{color:var(--sig)!important}

/* ==================================================================
   EL SISTEMA DE ENFASIS
   Una sola gramatica para todo el sitio:
     borde naranja  = esto esta elegido
     se enciende    = esto se puede elegir
   Antes habia seis maneras distintas de decir lo mismo.
   ================================================================== */

/* ---- 1. EL CONMUTADOR Manual / Copiloto / Autopiloto.
   La pildora deslizante era blanca y el texto activo casi negro, lo
   que ademas daba un contraste pesimo. Ahora la pildora es el velo
   naranja del sistema y el texto activo vuelve a ser claro. */
main .seg3 .th{
  background:linear-gradient(180deg,rgba(255,123,48,.16),rgba(255,123,48,.05))!important;
  border:1px solid var(--sig);
  box-shadow:0 0 0 1px rgba(255,123,48,.30),0 6px 22px -12px rgba(255,123,48,.65)}
main .seg3 button.on{color:var(--fg)!important}
main .seg3 button:hover{color:var(--fg)}

/* ---- 2. LOS SIETE CANALES de la seccion 02. */
main .rxs__tabs button[aria-selected=true]{
  border:1px solid var(--sig)!important;
  background:linear-gradient(180deg,rgba(255,123,48,.10),rgba(255,123,48,.03))!important;
  box-shadow:0 0 0 1px rgba(255,123,48,.28),0 6px 22px -12px rgba(255,123,48,.5)}
main .rxs__tabs button{border:1px solid transparent;transition:border-color .2s,background .2s}
main .rxs__tabs button:hover{border-color:var(--line3);background:var(--s2)}

/* ---- 3. LAS FICHAS de alternativas, en su version de pildora. */
@media (max-width:900px){
  main .fch__t.on{
    background:linear-gradient(180deg,rgba(255,123,48,.14),rgba(255,123,48,.04))!important;
    border-color:var(--sig)!important;color:var(--fg)!important;
    box-shadow:0 0 0 1px rgba(255,123,48,.30),0 6px 22px -12px rgba(255,123,48,.6)}
  main .fch__t.on i{color:var(--sig)!important}
}
main .fch__t:hover{color:var(--fg)}

/* ---- 4. EL CONMUTADOR de tonos. */
main .tn__n.on{
  border:1px solid var(--sig)!important;
  background:linear-gradient(180deg,rgba(255,123,48,.10),rgba(255,123,48,.03))!important;
  box-shadow:0 0 0 1px rgba(255,123,48,.28)}
main .tn__n{border:1px solid transparent;transition:border-color .2s,background .2s}
main .tn__n:hover{border-color:var(--line3);background:var(--s2)}

/* ---- 5. LAS TARJETAS DEL PANEL de "sale trabajo asignado".
   Son cinco tarjetas con dato y no tenian ningun estado. */
main .dash-card{transition:border-color .2s var(--ease),background .2s var(--ease),transform .2s var(--ease)}
main .dash-card:hover{
  border-color:var(--sig);
  background:linear-gradient(180deg,rgba(255,123,48,.09),rgba(255,123,48,.02));
  transform:translateY(-1px)}
/* la tarjeta ya destacada del panel toma el borde, no el relleno */
main .dash-card.o{border:1px solid var(--sig)!important}

/* ==================================================================
   LAS PILDORAS PASAN A CAJAS
   755 enlaces de industria eran pildoras de radio 999. Una pildora
   dice "etiqueta"; una caja dice "opcion sobre la que hago clic".
   ================================================================== */
main .chips a{
  border-radius:10px!important;
  padding:11px 15px!important;
  border:1px solid var(--line2);
  background:var(--s1);
  color:var(--fg2);
  transition:border-color .2s var(--ease),background .2s var(--ease),
             color .2s var(--ease),transform .2s var(--ease)}
main .chips a:hover{
  border-color:var(--sig)!important;
  background:linear-gradient(180deg,rgba(255,123,48,.10),rgba(255,123,48,.03))!important;
  color:var(--fg)!important;
  transform:translateY(-1px);
  box-shadow:0 0 0 1px rgba(255,123,48,.28),0 6px 22px -12px rgba(255,123,48,.5)}
main .chips{gap:9px}
/* la que apunta a la pagina en la que ya se esta, marcada */
main .chips a[aria-current]{border-color:var(--sig)!important;
  background:linear-gradient(180deg,rgba(255,123,48,.10),rgba(255,123,48,.03))!important;
  color:var(--fg)!important}

/* ==================================================================
   Y EL RESTO DE LO NAVEGABLE toma el mismo encendido al pasar.
   ================================================================== */
main .wall a,
main .apps .pill,
main .vs .vr,
main .icards a,
main .lnl li a,
main .links a{transition:border-color .2s var(--ease),background .2s var(--ease),transform .2s var(--ease)}
main .wall a:hover,
main .apps .pill:hover,
main .vs .vr:hover,
main .icards a:hover{
  border-color:var(--sig)!important;
  background:linear-gradient(180deg,rgba(255,123,48,.09),rgba(255,123,48,.02))!important;
  transform:translateY(-1px)}

/* ==================================================================
   EL SISTEMA DE ENFASIS, SEGUNDA TANDA
   Las cuatro tarjetas de "sale trabajo asignado" y las rejillas de
   industria. El criterio es uno: si se puede hacer clic o elegir,
   lleva el estado. Lo que solo se lee, no.
   ================================================================== */

/* ---- Las cuatro tarjetas: tenian fondo pero ni borde ni radio. */
main .opl>article{
  border:1px solid var(--line);
  border-radius:12px;
  transition:border-color .2s var(--ease),background .2s var(--ease),transform .2s var(--ease)}
main .opl>article:hover{
  border-color:var(--sig);
  background:linear-gradient(180deg,rgba(255,123,48,.09),rgba(255,123,48,.02));
  transform:translateY(-2px)}

/* ---- Las rejillas de industria relacionada. */
main .igrid a{
  border:1px solid var(--line);
  border-radius:12px;
  transition:border-color .2s var(--ease),background .2s var(--ease),transform .2s var(--ease)}
main .igrid a:hover{
  border-color:var(--sig)!important;
  background:linear-gradient(180deg,rgba(255,123,48,.09),rgba(255,123,48,.02))!important;
  transform:translateY(-2px)}

/* ---- Y cualquier tarjeta que sea enlace. */
main .cards a:hover,
main .rows a:hover,
main .trio a:hover,
main .duo a:hover,
main .tiles a:hover,
main .srail a:hover{
  border-color:var(--sig)!important;
  background:linear-gradient(180deg,rgba(255,123,48,.08),rgba(255,123,48,.02))!important}
main .cards a,main .rows a,main .trio a,main .duo a,main .tiles a,main .srail a{
  transition:border-color .2s var(--ease),background .2s var(--ease)}

/* ==================================================================
   EL TEXTO SOBRE FONDO CLARO
   El sitio es oscuro salvo en las maquetas que imitan papel. Una
   regla global de color de texto tiene que respetar esas islas.
   ================================================================== */

/* ---- La maqueta de PDF: fondo rgb(239,233,227). El resto ya iba
   oscuro a proposito; los small habian quedado en casi blanco. */
main .rxpdf small,
main .rxpdf header small,
main .rxpdf footer,
main .rxpdf footer span,
main .rxpdf cite,
main .rxpdf figcaption{color:rgb(122,112,106)!important}
main .rxpdf b,main .rxpdf td,main .rxpdf p{color:rgb(42,35,33)!important}

/* ---- Y la tarjeta de resultado de .chain, que esta rellena de
   naranja: su rotulo va oscuro, no naranja sobre naranja. */
main .chain>div:last-child small{color:#0A0706!important}

/* ==================================================================
   1. EL FOCO DE LAS CIFRAS PASA A SER UN DEGRADADO DEL BOX
   Era un radial de 139x78 px al 52 % detras del numero: a ese tamano
   se lee como mancha, no como luz. La columna ya tiene un borde
   superior naranja; el degradado nace de ahi y baja.
   ================================================================== */
main .stats b::before,
main .figs b::before,
main .cz__n::before,
main .pru__n b::before,
main .logos__n b::before,
main .stats b::after,
main .figs b::after,
main .cz__n::after,
main .pru__n b::after{display:none!important;content:none!important}

/* El degradado nace del borde naranja del box y muere adentro. */
main .figs>div,
main .stats>div{
  background:linear-gradient(180deg,rgba(255,123,48,.10),rgba(255,123,48,.015) 42%,rgba(255,123,48,0) 62%),var(--s1)!important}
main .cz__b{
  background:linear-gradient(180deg,rgba(255,123,48,.07),rgba(255,123,48,0) 46%)}
main .pru__in{
  background:linear-gradient(180deg,rgba(255,123,48,.06),rgba(255,123,48,0) 40%)}

/* ==================================================================
   2. LA LINEA DE AVANCE DEL 04, EN NARANJA
   Iba en blanco. El naranja marca lo que esta pasando, y esa barra
   es exactamente eso.
   ================================================================== */
main .rail div i b{background:var(--sig)!important}
main .rail div.on i{background:rgba(255,123,48,.22)}

/* ==================================================================
   3. LA MANCHA DEL CTA SE QUITA
   Estaba anclada a la mitad izquierda (inset right 527 px), por eso
   se leia como mancha. Los botones ya traen su propio halo.
   ================================================================== */
.ctab__in::before{display:none!important;content:none!important}

/* ==================================================================
   4. EL PANEL DE ERP ENTRA AL SISTEMA DE ENFASIS
   ================================================================== */
main .erpwall .mk,
main .erpwall>a{
  border:1px solid var(--line);
  transition:border-color .2s var(--ease),background .2s var(--ease),transform .2s var(--ease)}
main .erpwall .mk:hover,
main .erpwall>a:hover{
  border-color:var(--sig)!important;
  background:linear-gradient(180deg,rgba(255,123,48,.09),rgba(255,123,48,.02))!important;
  transform:translateY(-2px)}
main .erpwall .mk:hover .lg img{opacity:1}
/* la celda destacada del muro toma el borde, como las demas del sistema */
main .erpwall .mk--p{border-color:var(--sig)!important;
  background:linear-gradient(180deg,rgba(255,123,48,.08),rgba(255,123,48,.02))!important}

/* ==================================================================
   "YOU'VE GOT THIS" AL TAMANO QUE LE TOCA
   Salio la fila de nombres de ERP del pie del hero: era una lista de
   marcas ajenas en el unico lugar donde la marca debe hablar de si
   misma, y el sitio ya dedica una seccion entera a los ERP. La frase
   de la casa se queda sola y crece.
   ================================================================== */
.hero__foot{align-items:center}
.hero__foot .sig{
  display:block!important;
  font-size:clamp(20px,2.1vw,30px)!important;
  font-weight:600;
  letter-spacing:-.022em;
  line-height:1.1;
  color:var(--fg)!important;
  text-transform:none!important;
  font-family:var(--sans)!important;
  opacity:1}
@media (max-width:860px){
  .hero__foot .sig{font-size:19px!important}
}

/* ==================================================================
   MOVIL: EL CARRIL DEL 04 DEJA DE CORTARSE
   Medido a 390 px: los cinco rotulos piden 452 px en una caja de 350
   y .motor__stick recortaba "CAPTURADO" y "LISTO". Un track 1fr es
   minmax(auto,1fr) y su minimo es la palabra entera. En movil quedan
   las barras; el nombre de la etapa ya esta abajo, en grande.
   ================================================================== */
main .rail{grid-template-columns:repeat(5,minmax(0,1fr))}
@media (max-width:700px){
  main .rail{gap:6px;margin-bottom:clamp(20px,3.4vh,34px)}
  main .rail div{font-size:0!important;letter-spacing:0!important;line-height:0}
  main .rail div i{margin-bottom:0;height:3px;border-radius:2px}
}

/* ==================================================================
   MOVIL: EL PLANO DE LA BRIDA
   El nombre del archivo no se parte y empujaba el panel 20 px fuera
   de su caja; el cajetin se dibujaba a 4.6 px y su texto se salia del
   recuadro. Queda el dibujo con sus cotas, que es lo que se lee.
   ================================================================== */
main .rxs__stage{grid-template-columns:minmax(0,1fr)}
main .rxs__pane{min-width:0}
main .rxs__src{min-width:0;flex-wrap:wrap}
main .rxs__src b{min-width:0;overflow-wrap:anywhere}
@media (max-width:640px){
  main .rxp .tb{display:none}
}

/* ==================================================================
   LAS PILDORAS PASAN A CAJAS
   La regla: redondo es una accion (los botones y la navegacion);
   caja es una opcion o un dato. Una etiqueta redonda imita a un boton
   sin serlo. Y la caja engancha con el sistema de enfasis: borde
   naranja = elegido.
   ================================================================== */

/* ---- lo que se puede apretar o seguir: radio 10 */
main .wall a, main .wall span,
main .pill,
main .mq a,
main .trio__more i,
main .itabs,
main .itabs button,
main .badge,
main .erpbadge{border-radius:10px!important}
main .itabs{padding:3px}
main .itabs button{border-radius:8px!important}

/* ---- etiquetas y datos chicos: radio 7, que a ese tamano una caja
   de radio 10 se lee como un boton vacio */
main .chip,
main .tr .ch,
main .dash-row .cn,
main .ilist .nw,
main .dq__st,
main .req3 .ch,
main .rqr .ch, main .rqf .ch, main .rqt .ch,
main .rqr .chp span,
main .pair figure .k{border-radius:7px!important}

/* ---- el conmutador de tres estados: la pista y la pastilla juntas,
   si no queda una pastilla cuadrada dentro de una pista redonda */
main .seg, main .seg2, main .seg3{border-radius:14px!important}
main .seg button, main .seg2 button, main .seg3 button,
main .seg .th, main .seg2 .th, main .seg3 .th{border-radius:10px!important}

/* ---- las fichas de alternativas, que en movil eran pildoras */
@media (max-width:900px){
  main .fch__t{border-radius:10px!important}
}

/* ==================================================================
   MOVIL: EL FACSIMIL DEL PDF DEJA DE EMPUJAR SU PANEL
   La tabla del facsimil pide 338 px de minimo dentro de un panel de
   318, y empujaba el panel fuera de su caja. Una tabla que no cabe se
   desliza; lo que no puede es mover la pagina.
   ================================================================== */
main .rxs__pane>*{max-width:100%}
main .rxpdf{max-width:100%;overflow-x:auto}

/* ==================================================================
   EL CARRIL DEL 04: QUIEN GANA DE VERDAD
   Medido en el navegador con getComputedStyle: el rotulo seguia en
   9 px y superpuesto. La regla que mandaba no era la del piso sino
   "main .motor .rail div{font-size:14px!important}", de v151, con un
   nivel mas de especificidad (0,3,2) que la que puso este paso
   (0,2,2). Entre dos !important gana la mas especifica, no la
   ultima. Se sube un nivel con :not(#_), que no cambia a quien
   aplica y anade un nivel de id.
   ================================================================== */
@media (max-width:700px){
  main .motor .rail div:not(#_){
    font-size:0!important;letter-spacing:0!important;line-height:0!important}
  main .motor .rail div:not(#_) i{margin-bottom:0!important}
}

/* ==================================================================
   1. EL CARRIL DE ETAPAS EN LISTA COMPACTA
   A 640 px el carril lleva padding-left:28 y el punto va en left:-28.
   A 760 px una pasada posterior lo convierte en lista compacta con
   padding-inline:0!important: el padding se va, el -28 se queda y el
   punto sale 8 px fuera de la pantalla. En lista compacta ya hay
   separadores, asi que el punto y la linea sobran.
   ================================================================== */
@media (max-width:760px){
  main .srail::before,
  main .srail>div::before,
  main .orail::before, main .orail>div::before,
  main .osteps::before, main .osteps>div::before{display:none!important;content:none!important}
}

/* ==================================================================
   2. LA CABECERA DE LA TARJETA DEJA DE ENCIMARSE
   Medido a 360: el rotulo pide 200 px y el nombre 100, y entre los
   dos no caben en 312. space-between no reparte lo que no hay.
   ================================================================== */
@media (max-width:440px){
  main .card__top{flex-wrap:wrap;row-gap:9px;align-items:flex-start}
  main .card__top .who{flex:0 0 auto}
  main .card__top .st{flex:1 0 100%;letter-spacing:.09em}
}

/* ==================================================================
   3. LOS BOTONES, CENTRADOS DE VERDAD
   .btn es display:flex y su justify-content estaba en normal, o sea
   al inicio. En escritorio el boton mide lo que su contenido y no se
   nota; en movil ocupa todo el ancho y el texto queda pegado a la
   izquierda. text-align no manda sobre un contenedor flex.
   ================================================================== */
main .btn, main .btn--p, main .btn--g, main .btn--s,
.hero__btns .btn, .sub__cta .btn, .ctab .btn{
  justify-content:center!important;text-align:center}

/* ==================================================================
   4. EL MURO DE ERP DE LA PORTADA NO SE SALE DE SU TARJETA
   Medido: el texto de variantes mide 128 px dentro de una tarjeta de
   105. En una columna flex centrada el hijo toma su ancho maximo si
   nada lo limita. Con max-width:100% parte por los espacios del
   separador, que para eso los tiene.
   ================================================================== */
main #int .mk b, main #int .mk .tx,
main .erpwall .mk b{max-width:100%;min-width:0;overflow-wrap:break-word}

/* ==================================================================
   5. LAS TRECE INDUSTRIAS, EN CARRUSEL
   En movil eran una columna de trece cajas: 800 px de pila para
   elegir una. Pasa al mismo gesto que ya tienen las fichas y los
   giros: se desliza.
   ================================================================== */
@media (max-width:900px){
  main #ilist{
    display:flex!important;flex-wrap:nowrap!important;
    overflow-x:auto;overflow-y:hidden;
    scroll-snap-type:x proximity;scrollbar-width:none;
    gap:8px;padding-bottom:2px;
    margin-inline:calc(var(--pad) * -1);padding-inline:var(--pad)}
  main #ilist::-webkit-scrollbar{display:none}
  main #ilist>li{flex:0 0 auto;scroll-snap-align:start;width:auto;margin:0}
  main #ilist>li button{white-space:nowrap}
}

/* ==================================================================
   6. LOS 27 SISTEMAS: DOS RENGLONES QUE SE DESLIZAN
   En movil eran 27 cajas apiladas, un muro de 700 px. Dos renglones
   que se deslizan los muestran todos sin esconder ninguno y con el
   mismo gesto del resto del sitio.
   ================================================================== */
@media (max-width:760px){
  main .wall{
    display:grid!important;
    grid-auto-flow:column;
    grid-template-rows:repeat(2,auto);
    grid-auto-columns:max-content;
    gap:8px;
    overflow-x:auto;overflow-y:hidden;
    scroll-snap-type:x proximity;scrollbar-width:none;
    padding-bottom:2px;
    margin-inline:calc(var(--pad) * -1);padding-inline:var(--pad)}
  main .wall::-webkit-scrollbar{display:none}
  main .wall a, main .wall span{
    white-space:nowrap;scroll-snap-align:start;justify-self:start}
}

/* ==================================================================
   7. LAS PILDORAS QUE QUEDABAN
   Las variantes dentro de las tarjetas del muro de ERP. Misma regla
   que en v168: caja, no pildora.
   ================================================================== */
main .erpwall .vr, main .erpwall .vs b, main .erpwall .vs span,
main .vs .vr, main #int .vs b{border-radius:8px!important}

/* ==================================================================
   1. EL MURO DE ERP A DOS COLUMNAS EN PANTALLA ANGOSTA
   A 360 px el muro iba en tres columnas: 89 px de texto por tarjeta
   para un nombre que pide 100, y la palabra se partia. Dos columnas
   dan ~160 y el nombre cabe entero.
   ================================================================== */
main #int .mk b, main #int .mk .tx,
main .erpwall .mk b{overflow-wrap:normal!important;word-break:normal!important}
@media (max-width:440px){
  main .erpwall{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px}
  main .erpwall .mk{height:auto;min-height:96px;padding:12px 10px}
}

/* ==================================================================
   2. LA FLECHA DEL BOTON NO CEDE SU ANCHO
   Medido a 360: el svg media 4 px. Dentro de un boton flex un svg sin
   flex:none encoge antes que el texto, y una flecha de 4 px es un
   borron, no una flecha.
   ================================================================== */
main .btn svg, .nav .btn svg, .btn svg, .nav__cta svg{flex:0 0 auto}

/* ==================================================================
   3. LOS DOS RENGLONES DEL MURO, A ESCUADRA
   Cada caja tomaba su propio ancho y la columna el del mas largo, asi
   que los renglones quedaban desiguales. Estiradas a su columna, los
   dos renglones leen como una rejilla.
   ================================================================== */
@media (max-width:760px){
  main .wall a, main .wall span{justify-self:stretch;justify-content:flex-start}
}

/* ==================================================================
   EL MURO DE ERP: QUIEN GANA, MEDIDO EN EL NAVEGADOR
   La regla anterior no aplico. Se le pregunto al navegador por CSSOM
   y la que mandaba era ".enc__b .erpwall{...repeat(3)!important}",
   con dos clases, o sea (0,2,0). La que puso este paso era
   "main .erpwall", y ahi estaba el error de lectura: main es un
   ELEMENTO, no una clase, asi que esa regla vale (0,1,1) y pierde.
   Se sube un nivel de id con :not(#_), que no cambia a quien aplica.
   ================================================================== */
@media (max-width:440px){
  main .erpwall:not(#_){grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px}
  main .erpwall:not(#_) .mk{height:auto;min-height:92px;padding:12px 10px}
}
main .erpwall:not(#_) .mk b{overflow-wrap:normal!important;word-break:normal!important}
@media (max-width:760px){
  main .wall:not(#_)>a, main .wall:not(#_)>span{justify-self:stretch}
}

/* ==================================================================
   EL PARRAFO DE ENTRADA BAJA UN ESCALON
   Medido: 17.5 px en movil contra un titular de 32, y hasta nueve
   renglones. Dos tamanos que casi pesan lo mismo, uno encima del
   otro. Baja un escalon, no dos: lo que de verdad hace el trabajo es
   que el texto pasa de nueve renglones a cuatro. El color no se toca.
   ================================================================== */
main .hero .lead:not(#_), main .bhero .lead:not(#_),
main .sub .lead:not(#_), .hero .lead:not(#_), .bhero .lead:not(#_){
  font-size:clamp(16.5px,1.25vw,17.5px)!important;
  line-height:1.52;
  max-width:60ch}

/* ==================================================================
   EL 06 NO AVANZA SOLO EN MOVIL
   El candado era matchMedia('(hover:hover)'), que en un telefono
   deberia bastar y no siempre basta: en un navegador de escritorio en
   modo movil, y en algunos Android, da verdadero. Sin avance no hay
   barra de avance que mostrar.
   ================================================================== */
@media (max-width:900px){
  main #ibar, main .ist__bar{display:none!important}
}

/* v174 · el pie con la columna de recursos */
.foot__g{grid-template-columns:1.35fr repeat(5,minmax(0,1fr))}
@media (max-width:1100px){.foot__g{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.foot__g{grid-template-columns:repeat(2,minmax(0,1fr))}}
