/* ── tipografía y base ─────────────────────────────────────────────── */
*{box-sizing:border-box}
html,body{margin:0}
body{font-family:'Space Grotesk',system-ui,sans-serif;-webkit-font-smoothing:antialiased}
.mono{font-family:'JetBrains Mono',ui-monospace,Menlo,monospace}

/* ── paleta «Puerto de noche» ── */
.site{--bg:#0B0E14;--bg2:#11161F;--bg3:#161C27;--line:#1E2733;--line2:#2A3545;--tx:#E6EAF0;--tx2:#A3AEBD;--tx3:#6B7786;
  --ac:#FF7A45;--ac2:#C4603C;--data:#3DD6FF;--ok:#C6FF3D;--warn:#FFB547;--bad:#FF6B5B}


.site{background:var(--bg);color:var(--tx);min-height:100vh}
.wrap{max-width:1140px;margin:0 auto;padding:0 24px}

/* ── cabecera ────────────────────────────────────────────────────────── */
header{border-bottom:1px solid var(--line)}
header .wrap{display:flex;align-items:center;justify-content:space-between;height:68px}
.marca{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--tx)}
.marca b{font-weight:700;letter-spacing:4px;font-size:15px}
.marca span{font-size:11px;color:var(--tx3);letter-spacing:1.5px;text-transform:uppercase}
nav a{color:var(--tx2);text-decoration:none;font-size:14px;margin-left:26px}
nav a.btn{color:var(--bg);background:var(--ac);padding:9px 16px;border-radius:8px;font-weight:600}

/* ── hero ────────────────────────────────────────────────────────────── */
.hero{padding:84px 0 60px;position:relative;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.05fr 1fr;gap:48px;align-items:center}
.kicker{font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--ac);letter-spacing:2px;text-transform:uppercase;margin:0 0 18px}
h1{font-size:54px;line-height:1.04;letter-spacing:-1.5px;margin:0 0 22px;font-weight:700}
h1 em{font-style:normal;color:var(--ac)}
.lead{font-size:18px;line-height:1.55;color:var(--tx2);max-width:540px;margin:0 0 30px}
.cta{display:flex;gap:12px;flex-wrap:wrap}
.btn{display:inline-block;padding:13px 22px;border-radius:9px;font-weight:600;text-decoration:none;font-size:15px}
.btn.pri{background:var(--ac);color:var(--bg)}
.btn.sec{border:1px solid var(--line2);color:var(--tx)}
.ticks{display:flex;gap:28px;margin-top:38px;font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--tx3)}
.ticks b{display:block;color:var(--tx);font-size:22px;font-weight:500;margin-bottom:2px}

/* el grafo del hero */
.grafo{background:var(--bg2);border:1px solid var(--line);border-radius:16px;padding:18px;position:relative}
.grafo .cab{display:flex;justify-content:space-between;font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--tx3);margin-bottom:8px}
.grafo .cab i{color:var(--ok);font-style:normal}
.grafo svg{width:100%;height:auto;display:block}
.grafo .n{fill:var(--bg3);stroke:var(--line2);stroke-width:1.2}
.grafo .n.decl{fill:var(--ac);stroke:var(--ac)}
.grafo .n.tac{fill:var(--bg2);stroke:var(--ac);stroke-dasharray:4 3;stroke-width:1.6}
.grafo .n.nom{fill:none;stroke:var(--data);stroke-width:1.8}
.grafo .e{stroke:var(--line2);stroke-width:1.1}
.grafo .e.hot{stroke:var(--data);stroke-width:1.4;stroke-dasharray:3 4;animation:flujo 2.4s linear infinite}
@keyframes flujo{to{stroke-dashoffset:-28}}
.grafo text{font-family:'JetBrains Mono',monospace;font-size:10.5px;fill:var(--tx2)}
.grafo .ley{display:flex;gap:18px;font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--tx3);margin-top:10px}
.grafo .ley i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;vertical-align:-1px}

/* ── franjas ─────────────────────────────────────────────────────────── */
section{padding:72px 0;border-top:1px solid var(--line)}
.sec-k{font-family:'JetBrains Mono',monospace;font-size:11.5px;color:var(--ac);letter-spacing:2px;text-transform:uppercase;margin:0 0 12px}
h2{font-size:34px;letter-spacing:-.8px;margin:0 0 14px;line-height:1.15}
.sub{color:var(--tx2);font-size:16.5px;max-width:680px;line-height:1.55;margin:0 0 36px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.card{background:var(--bg2);border:1px solid var(--line);border-radius:14px;padding:22px}
.card .k{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--tx3);margin-bottom:12px}
.card h3{margin:0 0 8px;font-size:18px}
.card p{margin:0;color:var(--tx2);font-size:14.5px;line-height:1.55}
.card .tag{display:inline-block;font-family:'JetBrains Mono',monospace;font-size:10.5px;padding:3px 8px;border-radius:999px;border:1px solid var(--line2);color:var(--tx2);margin:12px 6px 0 0}
.card .tag.ok{color:var(--ok);border-color:var(--ok)}

/* contraste con un tablero */
.vs{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.vs > div{padding:26px}
.vs > div + div{border-left:1px solid var(--line);background:var(--bg2)}
.vs h4{margin:0 0 14px;font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--tx3)}
.vs > div + div h4{color:var(--ac)}
.vs ul{margin:0;padding:0;list-style:none}
.vs li{padding:9px 0;border-top:1px solid var(--line);color:var(--tx2);font-size:14.5px}
.vs > div + div li{color:var(--tx)}

/* cómo funciona */
.pasos{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.pasos div{padding:22px;border-left:1px solid var(--line)}
.pasos div:first-child{border-left:0}
.pasos .num{font-family:'JetBrains Mono',monospace;color:var(--ac);font-size:12px;margin-bottom:10px}
.pasos h3{margin:0 0 6px;font-size:16.5px}
.pasos p{margin:0;color:var(--tx2);font-size:13.5px;line-height:1.5}

/* consola de corridas (una muestra de la app) */
.consola{background:var(--bg2);border:1px solid var(--line);border-radius:14px;overflow:hidden;font-family:'JetBrains Mono',monospace;font-size:12.5px}
.consola .barra{display:flex;gap:14px;padding:12px 18px;border-bottom:1px solid var(--line);color:var(--tx3)}
.consola .barra b{color:var(--tx);font-weight:500}
.consola table{width:100%;border-collapse:collapse}
.consola th{text-align:left;color:var(--tx3);font-weight:500;padding:10px 18px;font-size:11px;letter-spacing:1.2px;text-transform:uppercase}
.consola td{padding:11px 18px;border-top:1px solid var(--line);color:var(--tx2)}
.consola td:first-child{color:var(--tx)}
.est{padding:2px 9px;border-radius:999px;border:1px solid;font-size:11px}
.est.lista{color:var(--ok);border-color:var(--ok)}.est.corriendo{color:var(--data);border-color:var(--data)}.est.cola{color:var(--warn);border-color:var(--warn)}
.consola a{color:var(--ac);text-decoration:none}

/* precios */
.planes{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.plan{background:var(--bg2);border:1px solid var(--line);border-radius:14px;padding:26px;position:relative}
.plan.pro{border-color:var(--ac)}
.plan .nom{font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--ac);letter-spacing:2px;text-transform:uppercase}
.plan .precio{font-size:38px;font-weight:700;letter-spacing:-1px;margin:12px 0 2px}
.plan .precio small{font-size:14px;color:var(--tx3);font-weight:400;letter-spacing:0}
.plan .para{color:var(--tx2);font-size:14px;margin-bottom:16px}
.plan ul{margin:0 0 18px;padding:0;list-style:none}
.plan li{padding:7px 0;border-top:1px solid var(--line);font-size:14px;color:var(--tx2)}
.plan li::before{content:"—";color:var(--ac);margin-right:8px}
.boot{margin-top:16px;background:var(--bg2);border:1px dashed var(--line2);border-radius:14px;padding:22px;display:flex;justify-content:space-between;align-items:center;gap:20px}
.boot b{font-size:18px}
.boot p{margin:4px 0 0;color:var(--tx2);font-size:14px}
.boot .precio{font-family:'JetBrains Mono',monospace;font-size:20px;color:var(--ac);white-space:nowrap}

/* cierre */
.cierre{text-align:center;padding:90px 0}
.cierre h2{font-size:40px}
footer{border-top:1px solid var(--line);padding:26px 0;color:var(--tx3);font-size:12.5px;font-family:'JetBrains Mono',monospace}
footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}

@media(max-width:900px){.hero .wrap,.grid3,.grid2,.planes,.vs,.pasos{grid-template-columns:1fr}.pasos div{border-left:0;border-top:1px solid var(--line)}.vs > div + div{border-left:0;border-top:1px solid var(--line)}h1{font-size:40px}nav a:not(.btn){display:none}}

/* ── páginas interiores ─────────────────────────────────────────────── */
.pagina{padding:64px 0 40px}
.pagina h1{font-size:44px}
.pagina .lead{max-width:640px}
nav a.on{color:var(--tx)}
.prosa{max-width:720px;color:var(--tx2);font-size:16px;line-height:1.65}
.prosa h3{color:var(--tx);font-size:19px;margin:30px 0 8px}
.prosa p{margin:0 0 14px}
.prosa ul{margin:0 0 14px;padding-left:20px}
.prosa li{margin:4px 0}
.faq{border:1px solid var(--line);border-radius:14px;overflow:hidden}
.faq details{border-top:1px solid var(--line);padding:0 22px}
.faq details:first-child{border-top:0}
.faq summary{cursor:pointer;padding:18px 0;font-weight:600;font-size:16px;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"+";color:var(--ac);font-family:'JetBrains Mono',monospace;margin-right:12px}
.faq details[open] summary::before{content:"–"}
.faq p{margin:0 0 18px;color:var(--tx2);font-size:14.5px;line-height:1.6}
.tabla{width:100%;border-collapse:collapse;background:var(--bg2);border:1px solid var(--line);border-radius:14px;overflow:hidden;font-size:14px}
.tabla th{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--tx3);font-weight:500;text-align:left;padding:12px 16px}
.tabla td{padding:12px 16px;border-top:1px solid var(--line);color:var(--tx2)}
.tabla td:first-child{color:var(--tx)}
.tabla .si{color:var(--ok)}.tabla .no{color:var(--tx3)}
.form{background:var(--bg2);border:1px solid var(--line);border-radius:14px;padding:26px;max-width:620px}
.form label{display:block;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--tx3);margin:0 0 14px}
.form input,.form textarea,.form select{display:block;width:100%;margin-top:6px;font-family:'Space Grotesk',system-ui,sans-serif;font-size:15px;padding:11px 12px;border:1px solid var(--line2);border-radius:9px;background:var(--bg);color:var(--tx)}
.form input:focus,.form textarea:focus,.form select:focus{outline:none;border-color:var(--ac)}
.form select option{background:var(--bg2)}
.form .dos{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form button{border:0;cursor:pointer;font-family:inherit}
.ok{background:var(--bg2);border:1px solid var(--ok);border-radius:14px;padding:26px;max-width:620px}
.ok b{color:var(--ok)}
.capas{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.capa{background:var(--bg2);border:1px solid var(--line);border-radius:14px;padding:24px;position:relative}
.capa .n{font-family:'JetBrains Mono',monospace;color:var(--ac);font-size:12px;letter-spacing:2px;margin-bottom:12px}
.capa h3{margin:0 0 8px;font-size:19px}
.capa p{margin:0;color:var(--tx2);font-size:14.5px;line-height:1.55}
.capa.dos{border-color:var(--ac)}
@media(max-width:900px){.capas,.form .dos{grid-template-columns:1fr}.pagina h1{font-size:34px}.tabla{display:block;overflow-x:auto;white-space:nowrap}.consola{overflow-x:auto}.consola table{min-width:640px}}
