/* ══════════════════════════════════════════════
   ROOT TOKENS — RED · BLUE · WHITE HACKER
══════════════════════════════════════════════ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --void:#000305;
  --surface:#04080f;
  --surface-2:#060d18;
  --surface-3:#0a1220;
  --blue:#0af;
  --blue-dim:rgba(0,170,255,.09);
  --blue-border:rgba(0,170,255,.2);
  --red:#ff1a3a;
  --red-dim:rgba(255,26,58,.08);
  --red-border:rgba(255,26,58,.25);
  --white:#f0faff;
  --w70:rgba(240,250,255,.7);
  --w40:rgba(240,250,255,.4);
  --r:12px;
}
html{scroll-behavior:smooth}
body{
  font-family:'Rajdhani',sans-serif;
  background:var(--void);
  color:var(--white);
  overflow-x:hidden;
  line-height:1.6;
  cursor:none;
}
/* Fondo scan-line */
body::after{
  content:'';position:fixed;inset:0;z-index:2;pointer-events:none;
  background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,170,255,.03) 2px,rgba(0,170,255,.03) 4px);
  animation:scanMove 8s linear infinite;
}
@keyframes scanMove{from{background-position:0 0}to{background-position:0 40px}}

/* Canvas */
#rain-canvas{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.6}
.page{position:relative;z-index:3}

/* Cursor */
#cur,#curR,#curCross{position:fixed;pointer-events:none;z-index:9999}
#cur{width:8px;height:8px;border-radius:50%;background:var(--red);transform:translate(-50%,-50%);mix-blend-mode:screen;transition:width .15s,height .15s;box-shadow:0 0 8px var(--red)}
#curR{width:32px;height:32px;border-radius:50%;border:1px solid rgba(255,26,58,.5);transform:translate(-50%,-50%);transition:width .22s,height .22s}
#curCross{transform:translate(-50%,-50%);opacity:.35}
#curCross::before,#curCross::after{content:'';position:absolute;background:var(--blue)}
#curCross::before{width:20px;height:1px;top:0;left:-10px}
#curCross::after{width:1px;height:20px;top:-10px;left:0}

/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:800;display:flex;align-items:center;justify-content:space-between;padding:22px 6%;transition:all .4s}
nav.solid{background:rgba(0,3,5,.92);backdrop-filter:blur(20px);border-bottom:1px solid var(--blue-border);padding:14px 6%}
.nav-logo{font-family:'Orbitron',monospace;font-size:1.2rem;font-weight:900;letter-spacing:.12em;color:var(--white)}
.nav-logo .r{color:var(--red)}.nav-logo .b{color:var(--blue)}
.nav-links{display:flex;gap:32px;list-style:none}
.nav-links a{font-family:'Share Tech Mono',monospace;font-size:.78rem;color:var(--w40);letter-spacing:.08em;transition:color .2s}
.nav-links a::before{content:'// ';color:var(--blue);opacity:.5}
.nav-links a:hover{color:var(--white)}
.nav-cta{display:flex;gap:10px}
.ham{display:none;flex-direction:column;gap:4px;cursor:pointer}
.ham span{width:20px;height:1px;background:var(--white);display:block}

/* Buttons */
.btn{font-family:'Orbitron',monospace;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:12px 26px;border-radius:8px;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:all .25s}
.btn-red{background:var(--red);color:#fff;box-shadow:0 0 20px rgba(255,26,58,.25)}
.btn-red:hover{background:#ff3352;transform:translateY(-2px)}
.btn-blue{background:transparent;color:var(--blue);border:1px solid var(--blue-border)}
.btn-blue:hover{background:var(--blue-dim);color:#fff;transform:translateY(-2px)}
.btn-sm{padding:8px 18px;font-size:.65rem}

/* Hero */
#hero{min-height:100vh;display:flex;align-items:center;padding:150px 6% 100px;position:relative}
.orb{position:absolute;border-radius:50%;pointer-events:none}
.orb-r{width:600px;height:600px;top:-150px;right:-200px;background:radial-gradient(circle,rgba(255,26,58,.07) 0%,transparent 65%);animation:orb 14s infinite}
.orb-b{width:700px;height:700px;bottom:-250px;left:-200px;background:radial-gradient(circle,rgba(0,170,255,.06) 0%,transparent 65%);animation:orb 18s infinite reverse}
@keyframes orb{0%,100%{transform:translate(0,0)}50%{transform:translate(15px,-15px)}}
.hero-inner{max-width:1160px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.hero-left{position:relative;z-index:2}
.hero-sys{font-family:'Share Tech Mono',monospace;font-size:.7rem;color:var(--red);letter-spacing:.18em;margin-bottom:18px}
h1{font-family:'Orbitron',monospace;font-size:clamp(1.9rem,4.2vw,3.5rem);font-weight:900;line-height:1.08;margin-bottom:22px}
.h1-red{color:var(--red);text-shadow:0 0 30px rgba(255,26,58,.4)}
.h1-blue{color:var(--blue);text-shadow:0 0 30px rgba(0,170,255,.3)}
.hero-sub{font-size:1.1rem;color:var(--w70);max-width:480px;margin-bottom:38px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:52px}
.hero-stats{display:flex;gap:40px;padding-top:30px;border-top:1px solid rgba(255,26,58,.15)}
.hs-val{font-family:'Orbitron',monospace;font-size:1.6rem;font-weight:700;display:block}
.hs-val.rv{color:var(--red)}.hs-val.bv{color:var(--blue)}.hs-val.wv{color:var(--white)}
.hs-lbl{font-family:'Share Tech Mono',monospace;font-size:.65rem;color:var(--w40);margin-top:3px}

/* Terminal */
.term{background:var(--surface-2);border:1px solid var(--blue-border);border-radius:var(--r);overflow:hidden;box-shadow:0 0 40px rgba(0,170,255,.08)}
.term-bar{display:flex;align-items:center;gap:8px;padding:12px 18px;background:var(--surface-3);border-bottom:1px solid var(--blue-border)}
.td{width:9px;height:9px;border-radius:50%}
.td.tr{background:#ff5f57}.td.ty{background:#febc2e}.td.tg{background:#28c840}
.term-label{font-family:'Share Tech Mono',monospace;font-size:.7rem;color:var(--w40);margin-left:8px}
.term-status{margin-left:auto;font-family:'Share Tech Mono',monospace;font-size:.65rem;color:var(--red)}
.term-status::before{content:'● ';animation:blinkRed 1s infinite}
@keyframes blinkRed{0%,100%{opacity:1}50%{opacity:.3}}
.term-body{padding:22px;font-family:'Share Tech Mono',monospace;font-size:.75rem;line-height:1.9}
.tp{color:var(--red)}.tc{color:var(--white)}.to{color:rgba(0,170,255,.65)}.tg2{color:#00ff9d}.tw{color:var(--w70)}
.tcur{display:inline-block;width:7px;height:14px;background:var(--blue);animation:blink 1s step-end infinite;vertical-align:middle}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--blue-border);border-top:1px solid var(--blue-border)}
.kpi{background:var(--surface-2);padding:16px 14px}
.kv{font-family:'Orbitron',monospace;font-size:1rem;font-weight:700}
.kl{font-size:.6rem;color:var(--w40);margin-top:4px}
.kb{display:inline-block;font-size:.6rem;padding:2px 6px;border-radius:2px;margin-top:6px}
.kb-r{background:rgba(255,26,58,.12);color:var(--red);border:1px solid rgba(255,26,58,.25)}
.kb-b{background:rgba(0,170,255,.1);color:var(--blue);border:1px solid rgba(0,170,255,.2)}
.kb-g{background:rgba(0,255,157,.08);color:#00ff9d;border:1px solid rgba(0,255,157,.2)}

/* Secciones generales */
section{padding:110px 6%;position:relative;z-index:3}
.inner{max-width:1160px;margin:0 auto}
.sec-head{text-align:center;margin-bottom:64px}
h2{font-family:'Orbitron',monospace;font-size:clamp(1.5rem,3vw,2.4rem);font-weight:900;letter-spacing:.04em;margin-bottom:14px}
.h2-r{color:var(--red)}.h2-b{color:var(--blue)}
.sec-lead{font-size:1rem;color:var(--w70);max-width:500px;margin:0 auto}
.div-r{width:100%;height:1px;background:linear-gradient(90deg,transparent,var(--red),transparent);opacity:.25}
.div-b{width:100%;height:1px;background:linear-gradient(90deg,transparent,var(--blue),transparent);opacity:.25}

/* Services */
#services{background:var(--surface)}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--blue-border);border:1px solid var(--blue-border);border-radius:var(--r);overflow:hidden}
.svc{background:var(--surface-2);padding:36px 30px;position:relative;transition:background .3s}
.svc::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--red),var(--blue));transform:scaleX(0);transition:transform .4s}
.svc:hover{background:var(--surface-3)}
.svc:hover::after{transform:scaleX(1)}
.svc-num{font-family:'Share Tech Mono',monospace;font-size:.68rem;color:var(--blue);margin-bottom:16px}
.svc-ico{width:44px;height:44px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;margin-bottom:18px;border:1px solid var(--blue-border);background:var(--blue-dim);transition:all .3s}
.svc:hover .svc-ico{border-color:var(--red-border);background:var(--red-dim);box-shadow:0 0 16px var(--red-dim)}
.svc h3{font-family:'Orbitron',monospace;font-size:.88rem;font-weight:700;margin-bottom:10px}
.svc p{font-size:.9rem;color:var(--w70);line-height:1.68}
.svc-link{display:inline-flex;align-items:center;gap:5px;font-size:.72rem;color:var(--blue);margin-top:16px;opacity:0;transform:translateX(-6px);transition:all .3s}
.svc:hover .svc-link{opacity:1;transform:none}
.svc.hot{border-top:2px solid var(--red)}
.svc.hot .svc-num{color:var(--red)}

/* Benefits */
#benefits{background:var(--void)}
.ben-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px}
.ben-list{display:flex;flex-direction:column;gap:12px}
.ben-item{display:flex;align-items:flex-start;gap:14px;padding:18px 20px;background:var(--surface);border:1px solid var(--blue-border);border-left:3px solid var(--red);border-radius:8px}
.ben-item:hover{background:var(--surface-2);transform:translateX(5px)}
.ben-ico{width:36px;height:36px;border-radius:6px;display:flex;align-items:center;justify-content:center;background:var(--red-dim);border:1px solid var(--red-border)}
.ben-item h4{font-family:'Orbitron',monospace;font-size:.78rem;margin-bottom:4px}
.ben-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;position:sticky;top:100px}
.st-card{background:var(--surface);border:1px solid var(--blue-border);border-radius:var(--r);padding:28px 22px;text-align:center}
.st-card:first-child{grid-column:span 2}
.st-num{font-family:'Orbitron',monospace;font-size:2rem;font-weight:900}
.st-num .ru{color:var(--red)}.st-num .bu{color:var(--blue)}
.st-desc{font-family:'Share Tech Mono',monospace;font-size:.65rem;color:var(--w40);margin-top:8px}

/* Sectors */
#sectors{background:var(--surface)}
.sec-tiles{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}
.stile{background:var(--surface-2);border:1px solid var(--blue-border);border-radius:var(--r);padding:28px 14px;text-align:center;transition:all .35s}
.stile:hover{transform:translateY(-6px);border-color:var(--red-border);box-shadow:0 16px 40px rgba(255,26,58,.1)}
.stile em{font-size:1.8rem;display:block;margin-bottom:10px}
.stile span{font-family:'Share Tech Mono',monospace;font-size:.72rem;color:var(--w40)}

/* About */
#about{background:var(--void)}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.about-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.atag{font-family:'Share Tech Mono',monospace;font-size:.7rem;padding:6px 14px;border:1px solid var(--blue-border);color:var(--w40);border-radius:2px}
.about-cards{display:flex;flex-direction:column;gap:12px}
.acard{background:var(--surface);border:1px solid var(--blue-border);border-right:3px solid var(--blue);border-radius:8px;padding:20px;display:flex;align-items:center;gap:16px}
.acard:hover{border-right-color:var(--red);transform:translateX(-5px)}
.acard-ico{width:42px;height:42px;border-radius:6px;background:var(--blue-dim);border:1px solid var(--blue-border);display:flex;align-items:center;justify-content:center;font-size:1.1rem}
.acard-title{font-family:'Orbitron',monospace;font-size:.78rem;font-weight:700}

/* CTA */
#cta{background:var(--surface);text-align:center;padding:130px 6%;position:relative}
.cta-bg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:800px;height:400px;background:radial-gradient(ellipse at 35% 50%,rgba(255,26,58,.1) 0%,transparent 60%)}
.cta-btns{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;position:relative;z-index:2}

/* Contact */
#contact{background:var(--void)}
.contact-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:80px}
.cdet{display:flex;align-items:center;gap:12px;font-family:'Share Tech Mono',monospace;font-size:.75rem;margin-bottom:14px}
.cdet-ico{width:34px;height:34px;border-radius:6px;background:var(--red-dim);border:1px solid var(--red-border);display:flex;align-items:center;justify-content:center}
.form-wrap{background:var(--surface);border:1px solid var(--blue-border);border-radius:var(--r);padding:36px;position:relative}
.form-wrap::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--red),var(--blue),var(--red));background-size:200% 100%;animation:shift 4s linear infinite}
@keyframes shift{from{background-position:0 0}to{background-position:200% 0}}
.fgrid{display:flex;flex-direction:column;gap:16px}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.fg{display:flex;flex-direction:column;gap:6px}
.fg label{font-family:'Share Tech Mono',monospace;font-size:.65rem;color:var(--w40);letter-spacing:.12em;text-transform:uppercase}
.fg input,.fg select,.fg textarea{background:var(--surface-2);border:1px solid var(--blue-border);border-radius:8px;padding:12px 15px;color:var(--white);font-family:'Rajdhani',sans-serif;outline:none}
.fg input:focus,.fg select:focus,.fg textarea:focus{border-color:var(--red);box-shadow:0 0 0 2px rgba(255,26,58,.12)}
.fsub{width:100%;padding:14px;justify-content:center;margin-top:4px}
#form-ok{display:none;text-align:center;padding:60px 20px}
.ok-ico{font-size:2.8rem;margin-bottom:14px}
.ok-t{font-family:'Orbitron',monospace;font-size:1rem;font-weight:700;color:var(--blue)}

/* Footer */
footer{background:var(--surface);border-top:1px solid var(--blue-border);padding:60px 6% 28px}
.ft-top{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px;margin-bottom:44px}
.ft-brand p{font-size:.72rem;color:var(--w40);margin-top:12px;font-family:'Share Tech Mono',monospace}
.ft-col h5{font-family:'Share Tech Mono',monospace;font-size:.68rem;letter-spacing:.15em;color:var(--red);margin-bottom:18px}
.ft-col ul{list-style:none;display:flex;flex-direction:column;gap:10px}
.ft-col ul a{font-family:'Share Tech Mono',monospace;font-size:.72rem;color:var(--w40);letter-spacing:.04em}
.ft-col ul a::before{content:'> ';color:var(--blue);opacity:.5}
.ft-col ul a:hover{color:var(--white)}
.ft-bot{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--blue-border);padding-top:22px;flex-wrap:wrap}
.ft-bot p,.ft-bot a{font-family:'Share Tech Mono',monospace;font-size:.68rem;color:var(--w40)}
.ft-bot a{color:var(--red)}

/* Mobile menu */
.mob{display:none;position:fixed;inset:0;z-index:900;background:rgba(0,3,5,.97);backdrop-filter:blur(20px);flex-direction:column;align-items:center;justify-content:center;gap:24px}
.mob.on{display:flex}
.mob-x{position:absolute;top:20px;right:6%;font-size:1.4rem;cursor:pointer;background:none;border:none;color:var(--white)}
.mob a{font-family:'Orbitron',monospace;font-size:1.3rem;font-weight:700;color:var(--white)}
.mob a:hover{color:var(--red)}

/* Scroll reveal */
.sr,.srl,.srr{opacity:0;transition:opacity .6s ease,transform .6s ease}
.sr{transform:translateY(24px)}.srl{transform:translateX(-24px)}.srr{transform:translateX(24px)}
.sr.v,.srl.v,.srr.v{opacity:1;transform:none}

/* Responsive */
@media(max-width:1024px){
  .svc-grid{grid-template-columns:repeat(2,1fr)}
  .sec-tiles{grid-template-columns:repeat(3,1fr)}
  .ben-grid,.about-grid,.contact-grid{grid-template-columns:1fr;gap:48px}
  .ben-stats{position:static}
}
@media(max-width:768px){
  .nav-links,.nav-cta{display:none}
  .ham{display:flex}
  .hero-inner{grid-template-columns:1fr;text-align:center}
  .svc-grid{grid-template-columns:1fr}
  .sec-tiles{grid-template-columns:repeat(2,1fr)}
  .frow{grid-template-columns:1fr}
  .ft-top{grid-template-columns:1fr}
  .kpi-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:480px){
  section{padding:80px 5%}
  h1{font-size:1.7rem}
}

/* ===== BOTONES FLOTANTES (FAB) RESPONSIVE ===== */
.fab-container {
    position: fixed;
    bottom: 25px;
    right: 25px;
    z-index: 1000;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 12px;
}

/* Botón principal (solo visible en móvil) */
.fab-main-button {
    background: var(--red, #ff1a3a);
    width: 56px;
    height: 56px;
    border-radius: 50%;
    display: none; /* Oculto por defecto en escritorio */
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 4px 15px rgba(0,0,0,0.3);
    transition: all 0.3s ease;
    z-index: 1001;
}
.fab-main-button:hover {
    transform: scale(1.05);
}
.fab-icon-main, .fab-icon-close {
    font-size: 28px;
    color: white;
}

/* Contenedor de las opciones (en escritorio: visible y en fila) */
.fab-options {
    display: flex;
    flex-direction: row;
    gap: 15px;
    transition: all 0.3s ease;
}

/* Estilo base para cada botón de opción */
.fab-option {
    background: var(--surface-2, #060d18);
    backdrop-filter: blur(8px);
    border: 1px solid var(--blue-border, rgba(0,170,255,.3));
    color: var(--white, #f0faff);
    padding: 12px 24px;
    border-radius: 50px;
    text-decoration: none;
    font-family: 'Outfit', sans-serif;
    font-weight: 600;
    font-size: 0.85rem;
    letter-spacing: 0.5px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    white-space: nowrap;
    transition: all 0.2s ease;
    box-shadow: 0 2px 8px rgba(0,0,0,0.2);
}
.fab-option:hover {
    transform: translateY(-3px);
    filter: brightness(1.05);
}

/* Botón específico de Newsletter (Rojo) */
.fab-option-newsletter {
    background: var(--red, #ff1a3a);
    border-color: var(--red-border, rgba(255,26,58,.5));
    color: white;
}
.fab-option-newsletter:hover {
    background: #ff3352;
    box-shadow: 0 0 15px rgba(255,26,58,.4);
}

/* Botón específico de WhatsApp (Verde) */
.fab-option-whatsapp {
    background: #25D366;
    border-color: #25D366;
    color: white;
}
.fab-option-whatsapp:hover {
    background: #20b859;
    box-shadow: 0 0 15px rgba(37,211,102,.4);
}

/* --- RESPONSIVE: EN MÓVIL SE PLIEGA --- */
@media (max-width: 768px) {
    .fab-container {
        bottom: 20px;
        right: 20px;
    }
    
    /* Mostrar botón principal circular */
    .fab-main-button {
        display: flex;
    }
    
    /* Ocultar las opciones por defecto en móvil */
    .fab-options {
        display: none;
        flex-direction: column;
        gap: 12px;
        margin-bottom: 10px;
    }
    
    /* Cuando el contenedor tiene la clase 'open', se muestran las opciones */
    .fab-container.open .fab-options {
        display: flex;
    }
    
    /* Ajuste de los botones de opción para móvil */
    .fab-option {
        white-space: nowrap;
        padding: 10px 18px;
        font-size: 0.8rem;
        backdrop-filter: blur(12px);
        background: var(--surface, #04080f);
        border: 1px solid var(--blue-border);
    }
    /* Forzamos los colores específicos aunque tengan fondo por defecto */
    .fab-option-newsletter {
        background: var(--red, #ff1a3a);
    }
    .fab-option-whatsapp {
        background: #25D366;
    }
}
