/* Ferocity · grupo de software. Sistema Ferocity: casi negro, acento cian, botones píldora, sin cristal ni degradados. */
@font-face{font-family:"Instrument Serif";src:url(/fuentes/instrument-serif.woff2) format("woff2");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Instrument Serif";src:url(/fuentes/instrument-serif-italic.woff2) format("woff2");font-style:italic;font-weight:400;font-display:swap}
@font-face{font-family:"Inter Tight";src:url(/fuentes/inter-tight.woff2) format("woff2");font-weight:400 700;font-display:swap}

:root{
  --bg:#0A0A0B; --bg-2:#101012; --panel:#141417;
  --line:#26262B; --line-2:#1B1B1F;
  --ink:#F4F4F5; --muted:#A1A1AA; --soft:#71717A;
  --cyan:#22D3EE; --cyan-h:#1FC0DA; --cyan-ink:#0A0A0B;
  --ok:#4ADE80; --warn:#FBBF24; --bad:#F87171;
  --serif:"Instrument Serif",Georgia,serif;
  --sans:"Inter Tight",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --r:10px; --r-l:16px;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:400 16px/1.6 var(--sans);-webkit-font-smoothing:antialiased;text-wrap:pretty}
a{color:inherit}
h1,h2,h3{font-weight:400;margin:0;letter-spacing:-.01em}
em{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--cyan)}
p{margin:0}
.wrap{max-width:1200px;margin:0 auto;padding:0 28px}
.muted{color:var(--muted)} .soft{color:var(--soft)}
.eyebrow{font:600 12px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--cyan)}
:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:6px}
.salta{position:absolute;left:-9999px}.salta:focus{left:16px;top:12px;z-index:50;background:var(--cyan);color:var(--cyan-ink);padding:10px 16px;border-radius:980px}

/* botones */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:980px;padding:11px 21px;font:400 16px/1 var(--sans);letter-spacing:-.015em;text-decoration:none;border:1px solid transparent;cursor:pointer;transition:background .24s cubic-bezier(.4,0,.6,1),color .24s,border-color .24s;min-height:44px;white-space:nowrap}
.btn-p{background:var(--cyan);color:var(--cyan-ink)} .btn-p:hover{background:var(--cyan-h)}
.btn-s{border-color:var(--cyan);color:var(--cyan);background:transparent} .btn-s:hover{background:var(--cyan);color:var(--cyan-ink)}
.btn-sm{padding:8px 16px;font-size:14px;min-height:36px}

/* cabecera */
header.top{position:sticky;top:0;z-index:20;background:rgba(10,10,11,.96);border-bottom:1px solid var(--line-2)}
header.top .wrap{display:flex;align-items:center;gap:24px;height:68px}
.marca{display:inline-flex;align-items:baseline;gap:10px;text-decoration:none}
.marca b{font:400 26px/1 var(--serif);letter-spacing:-.01em}
.marca small{font:500 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--soft)}
nav.menu{margin-left:auto;display:flex;align-items:center;gap:4px}
nav.menu a{color:var(--muted);text-decoration:none;font-size:14.5px;padding:8px 12px;border-radius:8px}
nav.menu a:hover,nav.menu a.on{color:var(--ink)}
nav.menu a.btn{color:var(--cyan-ink);margin-left:10px;padding:8px 16px}
.menu .it-m{position:relative}
.menu .it-m > a,.menu .it-m > button{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;color:var(--muted);text-decoration:none;font:400 14.5px var(--sans);border-radius:8px;background:none;border:0;cursor:pointer}
.menu .it-m > a:hover,.menu .it-m > button:hover,.menu .it-m.abierto > button,.menu .it-m > a.on{color:var(--ink)}
.menu .it-m > button::after{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);opacity:.7}
.desp{position:absolute;top:calc(100% + 8px);left:-12px;min-width:560px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-l);padding:10px;display:none;grid-template-columns:1fr 1fr;gap:2px;box-shadow:0 30px 60px -20px rgba(0,0,0,.6);z-index:30}
.it-m.abierto .desp{display:grid}
.desp::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}
.desp a{display:block;padding:12px 14px;border-radius:10px;text-decoration:none}
.desp a:hover{background:var(--bg-2)}
.desp a b{display:block;font:500 14.5px var(--sans);color:var(--ink)}
.desp a span{display:block;font-size:13px;color:var(--soft);margin-top:2px;line-height:1.4}
.hamb{display:none;margin-left:auto;background:none;border:1px solid var(--line);color:var(--ink);border-radius:980px;padding:8px 16px;font:inherit;font-size:14px;min-height:44px;cursor:pointer}

/* hero */
.hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.9fr);gap:64px;align-items:end;padding:104px 0 88px;border-bottom:1px solid var(--line-2)}
.hero h1{font:400 clamp(44px,6.4vw,84px)/.98 var(--serif);letter-spacing:-.025em;margin-top:22px}
.hero .sub{color:var(--muted);font-size:19px;line-height:1.55;margin-top:26px;max-width:620px}
.ctas{display:flex;gap:12px;flex-wrap:wrap;margin-top:34px}
.ficha{border:1px solid var(--line);border-radius:var(--r-l);background:var(--bg-2);padding:26px 26px 10px}
.ficha h2{font:500 13px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--soft);margin-bottom:12px}
.ficha dl{margin:0}
.ficha dl div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:16px;padding:14px 0;border-top:1px solid var(--line-2)}
.ficha dt{color:var(--soft);font-size:13.5px}
.ficha dd{margin:0;font-size:15px}
.ficha .pie{display:block;padding:14px 0;border-top:1px solid var(--line-2);font-size:14px;color:var(--cyan);text-decoration:none}

/* secciones */
.sec{padding:112px 0;border-bottom:1px solid var(--line-2)}
.sec:last-of-type{border-bottom:0}
.tit{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:56px;align-items:end;margin-bottom:56px}
.tit h2{font:400 clamp(34px,4.4vw,56px)/1.02 var(--serif);letter-spacing:-.02em;margin-top:16px}
.tit p{color:var(--muted);font-size:17px}
.tit.solo{grid-template-columns:minmax(0,1fr);max-width:760px}

/* principios: lista editorial numerada */
.principios{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:64px}
.principios li{display:grid;grid-template-columns:64px minmax(0,1fr);gap:8px;padding:30px 0;border-top:1px solid var(--line)}
.principios .n{font:400 40px/1 var(--serif);color:var(--cyan)}
.principios h3{font:500 20px/1.3 var(--sans);letter-spacing:-.015em;margin-bottom:8px}
.principios p{color:var(--muted)}

/* proceso: línea horizontal */
.proceso{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border-top:1px solid var(--ink);counter-reset:p}
.proceso li{padding:22px 20px 0 0;counter-increment:p;position:relative}
.proceso li+li{padding-left:20px;border-left:1px solid var(--line)}
.proceso li::before{content:"0" counter(p);display:block;font:400 15px/1 var(--serif);color:var(--cyan);margin-bottom:14px}
.proceso h3{font:500 17px/1.3 var(--sans);margin-bottom:8px}
.proceso p{color:var(--muted);font-size:14.5px}
.proceso.largo{grid-template-columns:minmax(0,1fr);border-top:0}
.proceso.largo li{display:grid;grid-template-columns:90px minmax(0,.8fr) minmax(0,1.2fr);gap:24px;padding:30px 0;border-left:0;border-top:1px solid var(--line)}
.proceso.largo li::before{font-size:44px;margin:0}
.proceso.largo h3{font-size:22px}
.proceso.largo ul{margin:0;padding-left:18px;color:var(--muted)} .proceso.largo li ul li{display:list-item;padding:3px 0;border:0}
.proceso.largo li ul li::before{content:none}

/* ecosistema: filas */
.eco{border-top:1px solid var(--line)}
.eco a,.eco div.fila{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr) minmax(0,.6fr) 28px;gap:24px;align-items:baseline;padding:26px 0;border-bottom:1px solid var(--line);text-decoration:none}
.eco a:hover .nom{color:var(--cyan)}
.eco .nom{font:400 32px/1 var(--serif);transition:color .24s}
.eco .que{color:var(--muted)}
.eco .tag{font-size:13px;color:var(--soft)}
.eco .fl{color:var(--soft);text-align:right}
.eco .vacia .nom{color:var(--soft);font-style:italic}

/* ficha (quienes-somos) */
.crit{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid var(--line)}
.crit div{padding:28px 28px 28px 0;border-bottom:1px solid var(--line)}
.crit div:nth-child(3n+2),.crit div:nth-child(3n+3){padding-left:28px;border-left:1px solid var(--line)}
.crit dt{font-size:13px;color:var(--soft);letter-spacing:.04em}
.crit dd{margin:8px 0 0;font:400 28px/1.15 var(--serif)}
.crit dd small{display:block;font:400 14.5px/1.5 var(--sans);color:var(--muted);margin-top:8px}

/* herramienta de encaje */
.encaje{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:40px;align-items:start;border:1px solid var(--line);border-radius:var(--r-l);background:var(--bg-2);padding:32px}
.campo{display:flex;flex-direction:column;gap:8px;margin-bottom:18px}
.campo label{font-size:14px;color:var(--muted)}
.campo input,.campo select,.campo textarea{background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:var(--r);padding:11px 13px;font:inherit;min-height:46px;width:100%}
.campo textarea{min-height:120px;resize:vertical}
.campo input:focus,.campo select:focus,.campo textarea:focus{outline:0;border-color:var(--cyan)}
.campo .ayuda{font-size:12.5px;color:var(--soft)}
.dos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}
.res{position:sticky;top:96px}
.res .veredicto{font:400 40px/1.05 var(--serif);letter-spacing:-.02em}
.res .veredicto.si{color:var(--cyan)} .res .veredicto.quizas{color:var(--warn)} .res .veredicto.no{color:var(--muted)}
.res ul{list-style:none;margin:20px 0 0;padding:0}
.res li{padding:10px 0;border-top:1px solid var(--line-2);font-size:14.5px;display:grid;grid-template-columns:22px minmax(0,1fr);gap:8px}
.res li b{font-weight:500}
.res li .i-ok{color:var(--ok)} .res li .i-no{color:var(--bad)} .res li .i-q{color:var(--warn)}
.res .nota{font-size:12.5px;color:var(--soft);margin-top:16px}

/* preguntas */
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:22px 40px 22px 0;font:500 18px/1.4 var(--sans);position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:18px;font:300 26px/1 var(--sans);color:var(--cyan);transition:transform .24s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{color:var(--muted);padding:0 0 24px;max-width:780px}

/* cita / bloque destacado */
.franja{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:56px;align-items:center}
.franja blockquote{margin:0;font:400 clamp(28px,3.4vw,42px)/1.15 var(--serif);letter-spacing:-.015em}
.franja .quien{color:var(--soft);font-size:14px;margin-top:18px}

/* formulario de contacto */
.contacto{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:64px;align-items:start}
.contacto form{border:1px solid var(--line);border-radius:var(--r-l);padding:30px;background:var(--bg-2)}
.trampa{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.aviso{border-radius:var(--r);padding:14px 16px;margin-bottom:18px;font-size:14.5px}
.aviso.ok{background:rgba(74,222,128,.08);border:1px solid rgba(74,222,128,.35);color:#bbf7d0}
.aviso.err{background:rgba(248,113,113,.08);border:1px solid rgba(248,113,113,.35);color:#fecaca}
.check{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:var(--muted);margin:4px 0 20px}
.check input{width:20px;height:20px;margin-top:2px;accent-color:var(--cyan);flex:none}
.lista-c{list-style:none;margin:28px 0 0;padding:0}
.lista-c li{padding:14px 0;border-top:1px solid var(--line-2);color:var(--muted)}
.lista-c li b{color:var(--ink);font-weight:500;display:block}

/* cierre */
.cierre{padding:120px 0;text-align:left}
.cierre h2{font:400 clamp(40px,5.6vw,72px)/1 var(--serif);letter-spacing:-.025em;max-width:900px}

/* pie */
footer.pie{border-top:1px solid var(--line-2);padding:44px 0 56px;color:var(--soft);font-size:13.5px}
footer.pie .wrap{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:28px}
footer.pie b{color:var(--ink);font-weight:500;display:block;margin-bottom:10px}
footer.pie a{display:block;color:var(--muted);text-decoration:none;padding:3px 0}
footer.pie a:hover{color:var(--ink)}

/* página interior */
.pg{padding:96px 0 72px;border-bottom:1px solid var(--line-2)}
.pg h1{font:400 clamp(42px,5.6vw,72px)/1 var(--serif);letter-spacing:-.025em;margin-top:20px;max-width:980px}
.pg .sub{color:var(--muted);font-size:19px;margin-top:22px;max-width:720px}

/* bandeja (privada) */
.bandeja{padding:56px 0 96px}
.bandeja table{width:100%;border-collapse:collapse;font-size:14px}
.bandeja th,.bandeja td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.bandeja th{color:var(--soft);font-weight:500;font-size:12.5px;letter-spacing:.06em;text-transform:uppercase}
.bandeja td.msg{white-space:pre-wrap;color:var(--muted);max-width:460px}
.chip{display:inline-block;font-size:12px;padding:3px 9px;border-radius:980px;border:1px solid var(--line);color:var(--muted)}
.chip.nuevo{border-color:var(--cyan);color:var(--cyan)}
.login{max-width:420px;margin:96px auto;border:1px solid var(--line);border-radius:var(--r-l);padding:32px;background:var(--bg-2)}

/* aparición suave (solo con movimiento permitido) */
@media (prefers-reduced-motion:no-preference){
  .rev{opacity:0;transform:translateY(14px);transition:opacity .6s cubic-bezier(.2,.7,.2,1),transform .6s cubic-bezier(.2,.7,.2,1)}
  .rev.in{opacity:1;transform:none}
}


/* productos */
.tarjetas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.prod[style] .prod-lema em{color:var(--cyan)}
.tarj{display:flex;flex-direction:column;gap:14px;padding:30px;border:1px solid var(--line);border-radius:var(--r-l);background:var(--bg-2);text-decoration:none;transition:border-color .24s}
.tarj:hover{border-color:var(--cyan)}
.tarj-nom{font:400 48px/1 var(--serif);letter-spacing:-.02em}
.tarj-pie{display:flex;justify-content:space-between;gap:12px;margin-top:auto;padding-top:16px;border-top:1px solid var(--line-2);font-size:14px;color:var(--cyan)}
.prod{scroll-margin-top:90px}
.prod-cab{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap;padding-bottom:36px;border-bottom:1px solid var(--line)}
.prod-nom{font:400 clamp(56px,7vw,96px)/.95 var(--serif);letter-spacing:-.03em;margin-top:14px}
.prod-lema{font-size:19px;color:var(--muted);margin-top:16px;max-width:620px}
.prod-cab .ctas{margin-top:0}
.prod-cuerpo{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:64px;padding-top:40px}
.prod-sub{font:600 12px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--soft);margin:0 0 14px}
.prod-sub+p{margin-bottom:34px}
.prod-lista{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px}
.prod-lista li{padding:16px 0;border-top:1px solid var(--line-2);color:var(--muted);font-size:14.5px}
.prod-lista b{display:block;color:var(--ink);font-weight:500;font-size:16px;margin-bottom:4px}
.prod-planes{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:var(--r-l);background:var(--bg-2)}
.prod-planes li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;padding:18px 22px;border-top:1px solid var(--line-2)}
.prod-planes li:first-child{border-top:0}
.prod-planes b{font-weight:500}
.prod-planes span{font:400 22px/1 var(--serif);color:var(--cyan);text-align:right}
.prod-planes small{grid-column:1/-1;color:var(--soft);font-size:13px}
.prod-nom a{text-decoration:none;transition:color .24s}.prod-nom a:hover{color:var(--cyan)}.prod-nom .fl-nom{font-size:.4em;color:var(--soft);vertical-align:super}
@media (max-width:980px){.tarjetas,.prod-cuerpo,.prod-lista{grid-template-columns:minmax(0,1fr)}.prod-cuerpo{gap:36px}}

@media (max-width:980px){
  .hamb{display:inline-flex;align-items:center}
  nav.menu{display:none;position:absolute;top:68px;left:0;right:0;flex-direction:column;align-items:stretch;background:var(--bg);border-bottom:1px solid var(--line);padding:12px 20px 20px}
  nav.menu.abierto{display:flex}
  nav.menu a{padding:14px 4px;font-size:16px}
  nav.menu a.btn{margin:10px 0 0}
  .menu .it-m > a,.menu .it-m > button{width:100%;justify-content:space-between;padding:14px 4px;font-size:16px;border-bottom:1px solid var(--line-2);border-radius:0}
  .desp{position:static;min-width:0;grid-template-columns:1fr;box-shadow:none;border:0;background:none;padding:4px 0 8px}
  .desp a{padding:10px 8px;border-bottom:0}
  .hero,.tit,.encaje,.franja,.contacto{grid-template-columns:minmax(0,1fr);gap:36px}
  .hero{padding:64px 0 56px}
  .principios{grid-template-columns:minmax(0,1fr)}
  .proceso{grid-template-columns:minmax(0,1fr);border-top:0}
  .proceso li,.proceso li+li{padding:22px 0;border-left:0;border-top:1px solid var(--line)}
  .proceso.largo li{grid-template-columns:minmax(0,1fr);gap:10px}
  .crit{grid-template-columns:minmax(0,1fr)}
  .crit div,.crit div:nth-child(3n+2),.crit div:nth-child(3n+3){padding:22px 0;border-left:0}
  .eco a,.eco div.fila{grid-template-columns:minmax(0,1fr);gap:8px}
  .eco .fl{display:none}
  .res{position:static}
  .dos{grid-template-columns:minmax(0,1fr)}
  .sec{padding:80px 0}
  footer.pie .wrap{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .bandeja table,.bandeja tbody,.bandeja tr,.bandeja td{display:block}.bandeja thead{display:none}.bandeja tr{border-bottom:1px solid var(--line);padding:10px 0}.bandeja td{border:0;padding:4px 0}
}
@media (max-width:560px){.wrap{padding:0 20px}.ficha dl div{grid-template-columns:minmax(0,1fr);gap:4px}footer.pie .wrap{grid-template-columns:minmax(0,1fr)}}

/* ecosistema (ferocity_ecosistema.py) */
.logos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.logos a{display:flex;flex-direction:column;gap:12px;padding:34px 26px;border:1px solid var(--line);border-radius:var(--r-l);background:var(--bg-2);text-decoration:none;transition:border-color .24s}
.logos a:hover{border-color:var(--cyan)}
.wm{font:400 44px/1 var(--serif);letter-spacing:-.02em;color:var(--cyan)}
.logos small{color:var(--soft);font-size:13px}
.eco-grid .tarj-nom,.wm-h{color:var(--cyan)}
.eco-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.ficha dd .chip{margin:0 4px 4px 0}
.am-dos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.am-dos h2{font:400 clamp(32px,3.6vw,44px)/1.05 var(--serif);letter-spacing:-.02em;margin:14px 0 12px}
.am-lista{list-style:none;margin:18px 0 0;padding:0}
.am-lista li{padding:12px 0;border-top:1px solid var(--line-2);color:var(--muted);font-size:14.5px}
@media (max-width:980px){.am-dos{grid-template-columns:minmax(0,1fr)}}
@media (max-width:980px){.logos,.eco-3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.logos,.eco-3{grid-template-columns:minmax(0,1fr)}}
