:root{
  --bg:#06080F; --bg2:#0A0E1C; --panel:#0C1326; --panel2:#0F1730;
  --line:rgba(124,224,255,0.12); --line2:rgba(255,255,255,0.07);
  --cream:#F3EBDD; --muted:rgba(243,235,221,0.62); --faint:rgba(243,235,221,0.40);
  --cyan:#21D4FD; --blue:#2A6CF6; --accentgrad:linear-gradient(120deg,#21D4FD,#2A6CF6);
  --maxw:1200px;
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--bg); color:var(--cream);
  font-family:'Archivo',system-ui,sans-serif; line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none;}
img,svg{display:block;}
.mono{font-family:'Space Mono',monospace;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}

/* ── Vórtice mark ── */
.vx{overflow:visible;}
.vx-arcs{transform-origin:center;}
.vx.spin .vx-arcs{animation:vspin 8s linear infinite;}
@keyframes vspin{to{transform:rotate(360deg);}}

/* ── kickers / headings ── */
.kicker{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.28em;
  text-transform:uppercase;color:var(--cyan);margin:0 0 16px;}
.kicker b{color:var(--cream);font-weight:400;}
h1,h2,h3,h4{margin:0;letter-spacing:-.02em;font-weight:800;}
h2{font-size:clamp(28px,4vw,44px);line-height:1.05;}
h2 em,h1 em{font-style:italic;font-weight:800;
  background:var(--accentgrad);-webkit-background-clip:text;background-clip:text;color:transparent;}
.lead{font-size:17px;color:var(--muted);max-width:620px;}
section{padding:96px 0;border-top:1px solid var(--line2);position:relative;}

/* ── nav ── */
header{position:sticky;top:0;z-index:50;backdrop-filter:blur(14px);
  background:rgba(6,8,15,0.72);border-bottom:1px solid var(--line2);}
.nav{display:flex;align-items:center;justify-content:space-between;height:68px;}
.brand{display:flex;align-items:center;gap:12px;}
.brand .name{font-weight:800;font-size:16px;letter-spacing:.06em;text-transform:uppercase;}
.brand .name b{font-weight:800;}
.brand .name span{font-weight:500;opacity:.6;}
.navlinks{display:flex;gap:28px;align-items:center;}
.navlinks a{font-size:13.5px;color:var(--muted);transition:color .2s;}
.navlinks a:hover{color:var(--cream);}
.btn{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:13.5px;
  padding:11px 20px;border-radius:9px;cursor:pointer;border:none;transition:transform .15s,box-shadow .2s;}
.btn-primary{background:var(--accentgrad);color:#04060f;box-shadow:0 6px 20px rgba(33,212,253,.28);}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 10px 30px rgba(33,212,253,.4);}
.btn-ghost{background:transparent;color:var(--cream);border:1px solid var(--line);}
.btn-ghost:hover{border-color:var(--cyan);}
.menu-toggle{display:none;background:none;border:none;color:var(--cream);font-size:22px;cursor:pointer;}

/* ── hero ── */
.hero{padding:90px 0 70px;overflow:hidden;}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center;}
.hero h1{font-size:clamp(40px,6vw,68px);line-height:1.0;margin:18px 0 24px;}
.hero-cta{display:flex;gap:14px;margin-top:32px;flex-wrap:wrap;}
.hero-art{position:relative;display:flex;justify-content:center;align-items:center;}
.hero-art::before{content:"";position:absolute;width:120%;height:120%;
  background:radial-gradient(circle at 50% 50%,rgba(33,212,253,.18),transparent 62%);}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line2);
  border:1px solid var(--line2);border-radius:14px;overflow:hidden;margin-top:64px;}
.stat{background:var(--bg);padding:26px 24px;}
.stat .v{font-size:34px;font-weight:800;background:var(--accentgrad);
  -webkit-background-clip:text;background-clip:text;color:transparent;letter-spacing:-.02em;}
.stat .l{font-family:'Space Mono',monospace;font-size:10px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--faint);margin-top:8px;}

/* ── generic cards ── */
.grid{display:grid;gap:16px;}
.g2{grid-template-columns:repeat(2,1fr);}
.g3{grid-template-columns:repeat(3,1fr);}
.g4{grid-template-columns:repeat(4,1fr);}
.card{background:var(--panel);border:1px solid var(--line2);border-radius:14px;padding:26px;
  transition:transform .18s,border-color .2s,background .2s;}
.card:hover{transform:translateY(-3px);border-color:var(--line);background:var(--panel2);}
.card .idx{font-family:'Space Mono',monospace;font-size:12px;color:var(--cyan);}
.card h4{font-size:17px;margin:14px 0 8px;}
.card p{margin:0;font-size:13.5px;color:var(--muted);}
.card.link h4::after{content:" ↗";color:var(--cyan);font-weight:400;}

.head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:44px;flex-wrap:wrap;}
.head .lead{margin-top:14px;}

/* ── terminal / code ── */
.term{background:#070B16;border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-top:36px;}
.term-bar{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line2);
  font-family:'Space Mono',monospace;font-size:11px;color:var(--faint);}
.dot{width:10px;height:10px;border-radius:50%;}
.term-tag{margin-left:auto;color:var(--cyan);}
.term pre{margin:0;padding:22px 22px;overflow-x:auto;font-family:'Space Mono',monospace;
  font-size:12.5px;line-height:1.7;color:#A9C7E8;}
.term .cmt{color:#5f7da0;} .term .kw{color:#21D4FD;} .term .str{color:#9BE8A0;} .term .fn{color:#E6CC8A;}

/* ── integration hub · malla de datos ── */
.hub{position:relative;width:100%;max-width:900px;aspect-ratio:8/5;margin:44px auto 0;}
.hub svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;}
.hub-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:1;}
.hub-node{position:absolute;left:0;top:0;background:var(--panel2);
  border:1px solid var(--line);border-radius:10px;padding:9px 14px;font-size:13px;font-weight:600;
  white-space:nowrap;display:flex;align-items:center;gap:9px;z-index:2;will-change:transform,opacity;
  box-shadow:0 8px 22px rgba(0,0,0,.4);transition:border-color .2s;}
.hub-node:hover{border-color:var(--cyan);}
.hub-node::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--cyan);
  box-shadow:0 0 12px var(--cyan);animation:nodepulse 2.6s ease-in-out infinite;animation-delay:var(--d,0s);}
@keyframes nodepulse{0%,100%{opacity:.45;transform:scale(.8);}50%{opacity:1;transform:scale(1.35);}}
.hub-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3;
  background:var(--accentgrad);color:#04060f;font-weight:800;font-size:14px;letter-spacing:.05em;
  padding:18px 24px;border-radius:14px;text-align:center;line-height:1.25;
  box-shadow:0 0 50px rgba(33,212,253,.5),0 10px 30px rgba(0,0,0,.4);}
.hub-center small{display:block;font-family:'Space Mono',monospace;font-weight:400;font-size:9px;
  letter-spacing:.22em;opacity:.7;margin-top:3px;}
@media(max-width:760px){
  .hub{max-width:none;aspect-ratio:1/1;}
  .hub-node{font-size:11px;padding:7px 10px;}
  .hub-center{font-size:11px;padding:13px 16px;}
}

/* ── domains ── */
.domain{background:var(--panel);border:1px solid var(--line2);border-radius:14px;padding:26px;}
.domain .idx{font-family:'Space Mono',monospace;font-size:11px;color:var(--faint);}
.domain h4{font-size:18px;margin:8px 0 10px;}
.domain p{margin:0 0 14px;font-size:13px;color:var(--muted);}
.domain ul{margin:0;padding:0;list-style:none;}
.domain li{font-family:'Space Mono',monospace;font-size:11.5px;color:var(--cream);padding:6px 0;
  border-top:1px solid var(--line2);}
.domain li::before{content:"› ";color:var(--cyan);}

/* ── soporte / SLA ── */
.support-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.tier{position:relative;background:var(--panel);border:1px solid var(--line2);border-radius:16px;
  padding:30px 28px;display:flex;flex-direction:column;gap:16px;transition:transform .18s,border-color .2s;}
.tier:hover{transform:translateY(-3px);border-color:var(--line);}
.tier.feat{border-color:var(--cyan);background:linear-gradient(180deg,rgba(33,212,253,.08),var(--panel) 55%);}
.tier .badge{position:absolute;top:-11px;left:28px;background:var(--accentgrad);color:#04060f;
  font-family:'Space Mono',monospace;font-size:9px;letter-spacing:.18em;text-transform:uppercase;
  font-weight:700;padding:5px 12px;border-radius:20px;}
.tier .tname{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--cyan);}
.tier h4{font-size:23px;}
.tier .sla{display:flex;align-items:baseline;gap:8px;}
.tier .sla .t{font-size:40px;font-weight:800;letter-spacing:-.03em;
  background:var(--accentgrad);-webkit-background-clip:text;background-clip:text;color:transparent;}
.tier .sla .u{font-size:13px;color:var(--muted);}
.tier ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px;}
.tier li{font-size:13.5px;color:var(--cream);padding-left:24px;position:relative;}
.tier li::before{content:"✓";position:absolute;left:0;color:var(--cyan);font-weight:700;}
.tier .tfoot{margin-top:auto;padding-top:8px;}
.support-feats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line2);
  border:1px solid var(--line2);border-radius:14px;overflow:hidden;margin-top:16px;}
.sfeat{background:var(--bg);padding:24px 22px;}
.sfeat .si{font-family:'Space Mono',monospace;font-size:11px;color:var(--cyan);}
.sfeat h5{margin:12px 0 6px;font-size:14.5px;font-weight:700;}
.sfeat p{margin:0;font-size:12.5px;color:var(--muted);line-height:1.55;}
@media(max-width:880px){
  .support-grid{grid-template-columns:1fr;}
  .support-feats{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:560px){ .support-feats{grid-template-columns:1fr;} }

/* ── IA section ── */
.ai{position:relative;overflow:hidden;}
.ai-panel{position:relative;border-radius:24px;border:1px solid var(--line);
  background:linear-gradient(160deg,rgba(33,212,253,.10),rgba(42,108,246,.04) 45%,transparent 75%),var(--panel);
  padding:54px 48px;overflow:hidden;}
.ai-panel::before{content:"";position:absolute;top:-120px;right:-120px;width:360px;height:360px;
  background:radial-gradient(circle,rgba(33,212,253,.22),transparent 65%);pointer-events:none;}
.ai-head{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center;position:relative;margin-bottom:40px;}
.ai-head h2{font-size:clamp(28px,3.6vw,40px);max-width:560px;}
.ai-head .lead{margin-top:14px;}
.ai-mark{display:flex;justify-content:center;}
.ai-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;position:relative;}
.ai-card{background:rgba(7,11,22,.55);border:1px solid var(--line2);border-radius:14px;padding:24px;
  transition:transform .18s,border-color .2s;}
.ai-card:hover{transform:translateY(-3px);border-color:var(--line);}
.ai-card .ic{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,rgba(33,212,253,.18),rgba(42,108,246,.1));border:1px solid var(--line);
  font-family:'Space Mono',monospace;color:var(--cyan);font-size:15px;font-weight:700;margin-bottom:16px;}
.ai-card h4{font-size:16px;margin:0 0 8px;}
.ai-card p{margin:0;font-size:13px;color:var(--muted);line-height:1.55;}
@media(max-width:880px){
  .ai-panel{padding:36px 26px;}
  .ai-head{grid-template-columns:1fr;}
  .ai-mark{display:none;}
  .ai-cards{grid-template-columns:1fr;}
}

/* ── service detail page ── */
.svc-hero{padding:70px 0 50px;border-top:none;}
.svc-index{display:flex;flex-wrap:wrap;gap:10px;margin-top:36px;}
.svc-index a{display:inline-flex;align-items:center;gap:9px;padding:10px 16px;border-radius:30px;
  border:1px solid var(--line2);font-size:13px;color:var(--muted);transition:border-color .2s,color .2s,background .2s;}
.svc-index a:hover{border-color:var(--cyan);color:var(--cream);background:var(--panel);}
.svc-index a .n{font-family:'Space Mono',monospace;font-size:10px;color:var(--cyan);}

.svc{padding:80px 0;border-top:1px solid var(--line2);scroll-margin-top:80px;}
.svc-row{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:start;}
.svc:nth-child(even) .svc-row{grid-template-columns:1.1fr .9fr;}
.svc:nth-child(even) .svc-lead{order:2;}
.svc-num{font-family:Georgia,serif;font-style:italic;font-size:64px;font-weight:800;line-height:.9;
  background:var(--accentgrad);-webkit-background-clip:text;background-clip:text;color:transparent;}
.svc-lead h2{margin:18px 0 16px;font-size:clamp(26px,3.4vw,38px);}
.svc-lead p{font-size:15.5px;color:var(--muted);line-height:1.65;margin:0 0 24px;}
.svc-tags{display:flex;flex-wrap:wrap;gap:8px;}
.svc-tags span{font-family:'Space Mono',monospace;font-size:11px;color:var(--cyan);
  border:1px solid var(--line);border-radius:6px;padding:5px 10px;}
.svc-feats{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.svc-feat{background:var(--panel);border:1px solid var(--line2);border-radius:12px;padding:20px;}
.svc-feat h5{margin:0 0 7px;font-size:14.5px;font-weight:700;}
.svc-feat h5::before{content:"› ";color:var(--cyan);}
.svc-feat p{margin:0;font-size:12.5px;color:var(--muted);line-height:1.55;}
@media(max-width:880px){
  .svc-row,.svc:nth-child(even) .svc-row{grid-template-columns:1fr;gap:28px;}
  .svc:nth-child(even) .svc-lead{order:0;}
}
@media(max-width:560px){ .svc-feats{grid-template-columns:1fr;} }

/* ── process ── */
.phase{position:relative;background:var(--panel);border:1px solid var(--line2);border-radius:14px;padding:26px 22px;}
.phase .ph{font-family:'Space Mono',monospace;font-size:10px;letter-spacing:.16em;color:var(--cyan);}
.phase .num{font-size:30px;font-weight:800;color:var(--line);font-style:italic;margin:6px 0 12px;
  font-family:Georgia,serif;}
.phase h4{font-size:16px;margin:0 0 8px;}
.phase p{margin:0;font-size:13px;color:var(--muted);}

/* ── contact ── */
.contact-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:40px;align-items:start;}
.channels{display:flex;flex-direction:column;gap:12px;margin-top:30px;}
.channel{display:flex;align-items:center;justify-content:space-between;background:var(--panel);
  border:1px solid var(--line2);border-radius:12px;padding:18px 22px;transition:border-color .2s,transform .15s;}
.channel:hover{border-color:var(--cyan);transform:translateX(3px);}
.channel .k{font-family:'Space Mono',monospace;font-size:10px;letter-spacing:.18em;color:var(--faint);}
.channel .v{font-weight:700;font-size:15px;margin-top:4px;}
.channel .arrow{color:var(--cyan);font-size:18px;}
form{background:var(--panel);border:1px solid var(--line2);border-radius:16px;padding:30px;}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;}
label{display:block;font-family:'Space Mono',monospace;font-size:10px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--faint);margin-bottom:7px;}
input,select,textarea{width:100%;background:var(--bg);border:1px solid var(--line2);border-radius:9px;
  padding:12px 14px;color:var(--cream);font-family:'Archivo',sans-serif;font-size:14px;transition:border-color .2s;}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--cyan);}
textarea{min-height:110px;resize:vertical;}
.formtag{font-family:'Space Mono',monospace;font-size:10px;letter-spacing:.18em;color:var(--cyan);margin-bottom:20px;}

/* ── footer ── */
footer{padding:48px 0;border-top:1px solid var(--line2);}
.foot{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;}
.foot .mono{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--faint);}

/* ── responsive ── */
@media(max-width:880px){
  .navlinks{display:none;}
  .menu-toggle{display:block;}
  .hero-grid{grid-template-columns:1fr;}
  .hero-art{order:-1;max-width:280px;margin:0 auto;}
  .g4{grid-template-columns:repeat(2,1fr);}
  .g3{grid-template-columns:repeat(2,1fr);}
  .stats{grid-template-columns:repeat(2,1fr);}
  .contact-grid{grid-template-columns:1fr;}
  section{padding:72px 0;}
}
@media(max-width:560px){
  .wrap{padding:0 20px;}
  .g4,.g3,.g2,.stats{grid-template-columns:1fr;}
  .frow{grid-template-columns:1fr;}
}
