/* ============================================================
   Hub. Cybersecurity — grupo-hub.com
   Hoja de estilos principal
============================================================ */
:root{
  --ink:#08080A; --ink2:#0C0D0F; --panel:#121316; --glass:rgba(20,21,25,.55);
  --line:#232529; --line2:#2E3136;
  --orange:#F4511E; --orange-soft:#FF8A5C; --orange-dim:#FFD9CB;
  --paper:#F5F6F7; --body:#C9CDD4; --muted:#A0A7AF; --dim:#6E747C;
  --display:'Space Grotesk','Segoe UI',Roboto,Arial,sans-serif;
  --mono:'IBM Plex Mono',Consolas,Menlo,monospace;
  --sans:'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
  --r:24px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--ink);color:var(--body);font-family:var(--sans);font-size:16.5px;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
::selection{background:var(--orange);color:#140A06}
::-webkit-scrollbar{width:10px}
::-webkit-scrollbar-track{background:var(--ink)}
::-webkit-scrollbar-thumb{background:#232529;border-radius:8px}
::-webkit-scrollbar-thumb:hover{background:var(--orange)}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
:focus-visible{outline:2px solid var(--orange);outline-offset:3px;border-radius:6px}
.container{max-width:1220px;margin:0 auto;padding:0 28px}
section{scroll-margin-top:80px}

/* ===== Marca ===== */
.logo{display:inline-flex;align-items:baseline;gap:2px;font-family:var(--display);font-weight:700;font-size:1.65rem;color:#fff;letter-spacing:-.5px;line-height:1}
.logo .pt{width:.4em;height:.4em;background:var(--orange);border-radius:50%;transform:translateY(-.04em)}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:var(--mono);font-size:.76rem;letter-spacing:.26em;color:var(--orange-soft);text-transform:uppercase}
.eyebrow::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--orange);flex:none;box-shadow:0 0 12px rgba(244,81,30,.8)}
h2{font-family:var(--display);font-weight:700;color:var(--paper);font-size:clamp(2rem,4.2vw,3.2rem);line-height:1.08;letter-spacing:-1px;margin:18px 0 16px}
.lead{max-width:660px;color:var(--muted);font-size:1.08rem}

/* ===== Barra de progreso ===== */
#progress{position:fixed;top:0;left:0;height:2px;width:0;background:linear-gradient(90deg,var(--orange),var(--orange-soft));z-index:99;box-shadow:0 0 10px rgba(244,81,30,.7)}

/* ===== Header ===== */
header{position:fixed;top:0;left:0;right:0;z-index:90;transition:background .35s,border-color .35s;border-bottom:1px solid transparent;background:linear-gradient(180deg,rgba(8,8,10,.92) 0%,rgba(8,8,10,.55) 55%,rgba(8,8,10,0) 100%)}
header.scrolled{background:rgba(8,8,10,.82);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-color:var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:74px}
.nav ul{display:flex;gap:30px;list-style:none}
.nav ul a{font-size:.92rem;color:#E6E9EC;text-shadow:0 1px 10px rgba(0,0,0,.85);transition:color .2s}
.nav ul a:hover{color:#fff}
.m-cta{display:none}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--display);font-weight:700;font-size:.98rem;padding:14px 28px;border-radius:999px;border:1px solid transparent;cursor:pointer;transition:transform .18s,box-shadow .25s,border-color .2s,color .2s;position:relative;overflow:hidden}
.btn-primary{background:var(--orange);color:#140A06}
.btn-primary::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translateX(-120%);transition:transform .55s}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 36px rgba(244,81,30,.4)}
.btn-primary:hover::after{transform:translateX(120%)}
.btn-ghost{border-color:var(--line2);color:var(--paper);backdrop-filter:blur(6px)}
.btn-ghost:hover{border-color:var(--orange);color:var(--orange-soft)}
.btn-sm{padding:11px 20px;font-size:.88rem}
.burger{display:none;background:none;border:1px solid var(--line2);border-radius:10px;color:var(--paper);font-size:1.15rem;padding:6px 13px;cursor:pointer}

/* ===== Hero ===== */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;padding:150px 0 90px;overflow:hidden;
  background:
    linear-gradient(180deg,rgba(8,8,10,.55) 0%,rgba(8,8,10,.82) 55%,var(--ink) 100%),
    radial-gradient(70% 60% at 75% 20%,rgba(244,81,30,.18),transparent 60%),
    url("../img/hero-datacenter.jpg") center/cover no-repeat,
    url("https://images.unsplash.com/photo-1558494949-ef010cbdcc31?w=2000&q=80&auto=format&fit=crop") center/cover no-repeat,
    var(--ink);
}
.hero::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 1.2px 1.2px,#ffffff0d 1px,transparent 0);background-size:30px 30px;mix-blend-mode:overlay;pointer-events:none}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:60px;align-items:center;position:relative;z-index:2;width:100%}
.hero h1{font-family:var(--display);font-weight:700;color:#fff;font-size:clamp(3rem,8vw,6.6rem);line-height:.98;letter-spacing:-3px;margin:22px 0 26px}
.hero h1 .thin{font-weight:300;letter-spacing:-2px;display:block;font-size:.42em;color:var(--muted);margin-bottom:14px}
.hero h1 .dotend{display:inline-block;width:.22em;height:.22em;background:var(--orange);border-radius:50%;margin-left:.06em;box-shadow:0 0 30px rgba(244,81,30,.9);animation:pulse 2.6s ease-in-out infinite}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.35)}}
.hero p{max-width:560px;color:var(--body);font-size:1.12rem}
.hero-ctas{display:flex;gap:16px;flex-wrap:wrap;margin:36px 0 18px}
.hero-tags{font-family:var(--mono);font-size:.78rem;color:var(--dim);letter-spacing:.06em}
.stats{display:flex;gap:0;margin-top:52px;border-top:1px solid rgba(255,255,255,.12)}
.stat{padding:26px 44px 0 0;margin-right:44px;border-right:1px solid rgba(255,255,255,.1)}
.stat:last-child{border-right:none;margin-right:0}
.stat b{display:block;font-family:var(--display);font-weight:700;font-size:2.6rem;color:#fff;line-height:1;letter-spacing:-1px}
.stat b i{font-style:normal;color:var(--orange)}
.stat span{font-size:.84rem;color:var(--muted)}
.scroll-hint{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);z-index:2;font-family:var(--mono);font-size:.68rem;letter-spacing:.3em;color:var(--dim);display:flex;flex-direction:column;align-items:center;gap:10px}
.scroll-hint::after{content:"";width:1px;height:44px;background:linear-gradient(180deg,var(--orange),transparent);animation:drop 2s ease-in-out infinite}
@keyframes drop{0%{transform:scaleY(0);transform-origin:top}55%{transform:scaleY(1);transform-origin:top}56%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* Radar */
.radar-wrap{display:flex;justify-content:center}
.radar{position:relative;width:min(420px,80vw);aspect-ratio:1;filter:drop-shadow(0 0 60px rgba(244,81,30,.15))}
.ring{position:absolute;border:1px solid rgba(255,255,255,.12);border-radius:50%}
.ring:nth-child(1){inset:0}.ring:nth-child(2){inset:13%}.ring:nth-child(3){inset:26%}.ring:nth-child(4){inset:39%}
.sweep{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,rgba(244,81,30,.35),transparent 75deg);animation:spin 7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.core{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center}
.core .logo{font-size:2.6rem}
.core small{font-family:var(--mono);font-size:.64rem;letter-spacing:.3em;color:var(--muted)}
.blip{position:absolute;width:9px;height:9px;border-radius:50%;background:var(--orange);box-shadow:0 0 16px rgba(244,81,30,1);animation:blink 3s infinite}
@keyframes blink{0%,100%{opacity:.12}50%{opacity:1}}
.blip:nth-of-type(6){top:16%;left:64%}
.blip:nth-of-type(7){top:40%;left:11%;animation-delay:.7s}
.blip:nth-of-type(8){top:70%;left:80%;animation-delay:1.3s}
.blip:nth-of-type(9){top:83%;left:32%;animation-delay:2s}

/* ===== Marquesina de aliados ===== */
.trust{padding:38px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--ink2);overflow:hidden}
.trust p{font-family:var(--mono);font-size:.7rem;letter-spacing:.28em;color:var(--dim);text-transform:uppercase;text-align:center;margin-bottom:26px}
.marquee{display:flex;width:max-content;gap:70px;animation:slide 30s linear infinite}
.marquee:hover{animation-play-state:paused}
@keyframes slide{to{transform:translateX(-50%)}}
.mq-track{display:flex;gap:70px;align-items:center;padding-right:70px}
.plogo{height:44px;display:flex;align-items:center;flex:none}
.plogo img{height:100%;width:auto;filter:grayscale(1) brightness(1.7) contrast(.85);opacity:.6;transition:.3s}
.plogo img:hover{filter:none;opacity:1}
.plogo span{display:none;font-family:var(--mono);font-size:.8rem;color:var(--dim);border:1px solid var(--line2);padding:9px 16px;border-radius:10px;white-space:nowrap}
.plogo.fallback img{display:none}
.plogo.fallback span{display:inline-block}

/* ===== Bandas de declaración ===== */
.band{padding:130px 0;text-align:center}
.band .big{font-family:var(--display);font-weight:300;color:var(--muted);font-size:clamp(1.9rem,4.6vw,3.6rem);line-height:1.25;letter-spacing:-1px;max-width:980px;margin:0 auto}
.band b{color:var(--paper);font-weight:700}
.band .naranja{color:var(--orange)}

/* ===== Bento servicios ===== */
#servicios{padding:110px 0 90px}
.bento{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:215px;gap:16px;margin-top:44px}
.tile{position:relative;border-radius:var(--r);border:1px solid var(--line);background:var(--panel);overflow:hidden;padding:28px;display:flex;flex-direction:column;justify-content:flex-end;transition:transform .3s,border-color .3s}
.tile:hover{transform:translateY(-4px);border-color:rgba(244,81,30,.5)}
.tile h3{font-family:var(--display);font-weight:700;color:var(--paper);font-size:1.25rem;letter-spacing:-.3px;margin-bottom:6px}
.tile p{font-size:.9rem;color:var(--muted);max-width:420px}
.tile .ph{position:absolute;inset:0;z-index:0}
.tile .ph img{width:100%;height:100%;object-fit:cover;filter:grayscale(.25) contrast(1.05) brightness(.85);transition:transform .8s ease}
.tile:hover .ph img{transform:scale(1.05)}
.tile .ph::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,8,10,.15) 0%,rgba(8,8,10,.88) 78%)}
.tile>*:not(.ph){position:relative;z-index:1}
.t-red{grid-area:1/1/3/3;background:linear-gradient(160deg,#151014,#0C0D0F)}
.t-term{grid-area:1/3/2/4;background:#0B0C0E;justify-content:flex-start}
.t-24{grid-area:1/4/2/5}
.t-soc{grid-area:2/3/3/5;background:linear-gradient(160deg,#101214,#0C0D0F)}
.t-aware{grid-area:3/1/4/3;background:linear-gradient(135deg,var(--orange),#C93A10);border-color:transparent}
.t-aware h3{color:#160B06}
.t-aware p{color:rgba(22,11,6,.8);max-width:520px}
.t-aware .k{color:rgba(22,11,6,.65)}
.t-iso{grid-area:3/3/4/4}
.t-eye{grid-area:3/4/4/5}
.k{font-family:var(--mono);font-size:.7rem;letter-spacing:.22em;color:var(--orange-soft);text-transform:uppercase;margin-bottom:auto}
.tile .num{font-family:var(--display);font-weight:700;font-size:2.6rem;color:var(--paper);line-height:1;letter-spacing:-1px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{font-family:var(--mono);font-size:.74rem;color:var(--body);border:1px solid var(--line2);border-radius:8px;padding:5px 10px;background:rgba(8,8,10,.4)}
/* terminal */
.term{font-family:var(--mono);font-size:.8rem;line-height:1.9;color:var(--body)}
.term .dots{display:flex;gap:6px;margin-bottom:14px}
.term .dots i{width:9px;height:9px;border-radius:50%;background:#2E3136}
.term .dots i:first-child{background:var(--orange)}
.term .ok{color:#7BD88F}
.term .cursor{display:inline-block;width:8px;height:15px;background:var(--orange);vertical-align:-2px;animation:blink 1s steps(1) infinite}


/* Tarjetas del bento que son enlaces: indicador de que llevan a otra página */
a.tile{text-decoration:none}
a.tile::after{content:"\2192";position:absolute;top:24px;right:26px;z-index:2;font-family:var(--display);font-size:1.2rem;color:var(--orange);opacity:0;transform:translateX(-6px);transition:opacity .25s,transform .25s}
a.tile:hover::after{opacity:1;transform:none}
a.tile.t-aware::after{color:#160B06}

/* Índice de servicios */
.sindex{margin-top:70px}
.sindex h3{font-family:var(--display);color:var(--paper);font-size:1.3rem;margin-bottom:8px}
.srows{display:grid;grid-template-columns:1fr 1fr;gap:0 56px;margin-top:26px}
.srow{display:flex;align-items:baseline;gap:14px;padding:17px 6px;border-bottom:1px solid var(--line);transition:background .2s,padding .2s;position:relative}
.srow::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--line2);flex:none;transform:translateY(-1px);transition:background .2s,box-shadow .2s}
.srow:hover{background:rgba(244,81,30,.05);padding-left:14px}
.srow:hover::before{background:var(--orange);box-shadow:0 0 10px rgba(244,81,30,.8)}
.srow b{font-family:var(--display);font-weight:700;color:var(--paper);font-size:.98rem;white-space:nowrap}
.srow span{font-size:.86rem;color:var(--dim);flex:1}
.srow em{font-style:normal;color:var(--orange);opacity:0;transition:.2s;transform:translateX(-6px)}
.srow:hover em{opacity:1;transform:none}

/* ===== Soluciones ===== */
#soluciones{padding:110px 0;background:var(--ink2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sol-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:44px}
.sol-card{border:1px solid var(--line);border-radius:var(--r);padding:34px;background:linear-gradient(180deg,rgba(255,255,255,.028),transparent 40%),var(--panel);transition:transform .3s,border-color .3s;display:flex;flex-direction:column;gap:14px}
.sol-card:hover{transform:translateY(-4px);border-color:rgba(244,81,30,.5)}
.sol-card .slogo{height:40px;display:flex;align-items:center}
.sol-card .slogo img{height:100%;width:auto;filter:grayscale(1) brightness(1.8);opacity:.85}
.sol-card .slogo span{display:none;font-family:var(--mono);font-size:.85rem;color:var(--muted)}
.sol-card .slogo.fallback img{display:none}
.sol-card .slogo.fallback span{display:inline}
.sol-card b{font-family:var(--mono);font-size:.68rem;letter-spacing:.22em;color:var(--orange-soft);text-transform:uppercase}
.sol-card h3{font-family:var(--display);color:var(--paper);font-size:1.35rem;letter-spacing:-.3px}
.sol-card p{font-size:.94rem;color:var(--muted)}

/* ===== Banda humana ===== */
.human{position:relative;min-height:76vh;display:flex;align-items:center;justify-content:center;overflow:hidden;text-align:center}
.human>img{position:absolute;inset:-12% 0;width:100%;height:124%;object-fit:cover;filter:grayscale(.3) brightness(.5) contrast(1.05);will-change:transform}
.human::after{content:"";position:absolute;inset:0;background:radial-gradient(80% 80% at 50% 50%,rgba(8,8,10,.25),rgba(8,8,10,.92))}
.human .inner{position:relative;z-index:2;padding:0 28px}
.human h2{font-size:clamp(2.4rem,6vw,5rem);letter-spacing:-2px;margin:0 0 16px}
.human h2 i{font-style:normal;color:var(--orange)}
.human p{color:var(--muted);max-width:560px;margin:0 auto;font-size:1.06rem}

/* ===== Certificaciones ===== */
#certificaciones{padding:110px 0}
.cert-marquee{overflow:hidden;margin:40px 0 46px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.cert-marquee .marquee{gap:14px;animation-duration:36s}
.cert-marquee .mq-track{gap:14px;padding-right:14px}
.bigchip{font-family:var(--mono);font-size:.9rem;color:var(--body);border:1px solid var(--line2);border-radius:999px;padding:12px 22px;white-space:nowrap;background:var(--panel)}
.bigchip b{color:var(--orange-soft);font-weight:500}
.cert-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.cert{background:linear-gradient(180deg,rgba(255,255,255,.028),transparent 40%),var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:28px;transition:transform .3s,border-color .3s}
.cert:hover{transform:translateY(-4px);border-color:rgba(244,81,30,.5)}
.cert h3{font-family:var(--display);color:var(--paper);font-size:1.2rem}
.cert small{display:block;font-family:var(--mono);font-size:.66rem;letter-spacing:.18em;color:var(--dim);text-transform:uppercase;margin:5px 0 18px}
.cert-cta{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-top:44px}
.edu-note{flex:1;min-width:300px;border:1px dashed var(--line2);border-radius:14px;padding:16px 20px;font-size:.9rem;color:var(--dim)}
.edu-note b{color:var(--orange-soft);font-weight:600}

/* ===== Nosotros ===== */
#nosotros{padding:120px 0;background:var(--ink2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.hub-letters{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:50px 0 60px}
.hl{border:1px solid var(--line);border-radius:var(--r);padding:30px;background:var(--panel)}
.hl b{display:block;font-family:var(--display);font-weight:700;font-size:3.4rem;line-height:1;color:var(--orange);letter-spacing:-2px}
.hl i{display:block;font-style:normal;font-family:var(--mono);font-size:.72rem;letter-spacing:.24em;color:var(--dim);text-transform:uppercase;margin:8px 0 12px}
.hl p{font-size:.9rem;color:var(--muted)}
.about-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center}
.tagline{font-family:var(--display);font-weight:700;color:var(--paper);font-size:clamp(1.9rem,3.4vw,2.7rem);line-height:1.22;letter-spacing:-1px;margin:16px 0 22px}
.tagline i{font-style:normal;color:var(--orange)}
.about-photo{border-radius:var(--r);overflow:hidden;border:1px solid var(--line);aspect-ratio:4/4.6;position:relative}
.about-photo img{width:100%;height:100%;object-fit:cover;filter:grayscale(.3) brightness(.8) contrast(1.05)}
.about-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(200deg,transparent 40%,rgba(244,81,30,.22))}

/* ===== Presencia ===== */
#presencia{padding:120px 0}
.geo-wrap{display:grid;grid-template-columns:.75fr 1.25fr;gap:70px;align-items:center}
.geo-big{font-family:var(--display);font-weight:700;font-size:clamp(7rem,16vw,13rem);line-height:.85;letter-spacing:-8px;background:linear-gradient(180deg,#fff 20%,rgba(244,81,30,.9));-webkit-background-clip:text;background-clip:text;color:transparent}
.geo-big small{display:block;font-family:var(--mono);font-size:.8rem;letter-spacing:.34em;color:var(--dim);margin-top:18px;text-transform:uppercase;-webkit-text-fill-color:var(--dim)}
.geo-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.geo{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:20px 22px;transition:border-color .25s}
.geo:hover{border-color:rgba(244,81,30,.5)}
.geo b{display:flex;align-items:center;gap:10px;font-family:var(--display);color:var(--paper);font-size:1rem;margin-bottom:4px}
.geo span{font-size:.82rem;color:var(--dim)}

/* ===== Contacto ===== */
#contacto{padding:120px 0;position:relative;overflow:hidden;background:var(--ink2);border-top:1px solid var(--line)}
#contacto::before{content:"";position:absolute;top:-260px;right:-200px;width:700px;height:700px;border-radius:50%;background:radial-gradient(circle,rgba(244,81,30,.16),transparent 65%);pointer-events:none}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start;position:relative;z-index:1}
.check{display:flex;gap:13px;margin:15px 0;font-size:.98rem}
.check::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--orange);flex:none;margin-top:9px;box-shadow:0 0 10px rgba(244,81,30,.8)}
.direct{margin-top:30px;display:grid;gap:11px;font-family:var(--mono);font-size:.9rem}
.direct a{color:var(--orange-soft)}
.direct a:hover{text-decoration:underline}
.form-card{background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--line);border-radius:var(--r);padding:36px}
.form-card label{display:block;font-family:var(--mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);margin:18px 0 7px}
.form-card label:first-child{margin-top:0}
.form-card input,.form-card select,.form-card textarea{width:100%;background:rgba(8,8,10,.6);border:1px solid var(--line2);border-radius:12px;color:var(--paper);padding:13px 15px;font-family:var(--sans);font-size:.96rem;transition:border-color .2s}
.form-card input:focus,.form-card select:focus,.form-card textarea:focus{outline:none;border-color:var(--orange)}
.form-card textarea{min-height:110px;resize:vertical}
.form-card .btn{width:100%;margin-top:26px}
.form-note{font-size:.8rem;color:var(--dim);margin-top:14px;text-align:center}
.form-status{margin-top:14px;font-size:.9rem;text-align:center;color:var(--dim);min-height:1.4em}
.form-status.ok{color:#7BD88F}
.form-status.err{color:var(--orange-soft)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;overflow:hidden}

/* ===== Footer ===== */
footer{background:var(--ink);padding:72px 0 0}
.foot-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.2fr;gap:44px;padding-bottom:50px}
.foot-grid h4{font-family:var(--mono);font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--dim);margin-bottom:18px}
.foot-grid ul{list-style:none;display:grid;gap:10px}
.foot-grid ul a,.foot-grid ul li{font-size:.9rem;color:var(--muted)}
.foot-grid ul a:hover{color:var(--orange-soft)}
.foot-brand p{font-size:.92rem;color:var(--muted);margin:16px 0 20px;max-width:280px}
.social{display:flex;gap:12px}
.social a{width:40px;height:40px;border:1px solid var(--line2);border-radius:12px;display:flex;align-items:center;justify-content:center;color:var(--muted);transition:.2s}
.social a:hover{border-color:var(--orange);color:var(--orange-soft);transform:translateY(-2px)}
.foot-bottom{border-top:1px solid var(--line);padding:22px 0;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.8rem;color:var(--dim)}
.foot-bottom .punto{font-family:var(--mono);color:var(--orange-soft)}

/* WhatsApp */
.wa{position:fixed;right:24px;bottom:24px;z-index:80;width:58px;height:58px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 34px rgba(0,0,0,.55);transition:transform .15s}
.wa:hover{transform:scale(1.09)}

/* Reveal */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.2,.6,.2,1),transform .7s cubic-bezier(.2,.6,.2,1)}
.reveal.in{opacity:1;transform:none}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none}
}
@media (max-width:1000px){
  .hero-grid,.about-grid,.contact-grid,.geo-wrap{grid-template-columns:1fr}
  .radar-wrap{display:none}
  .bento{grid-template-columns:1fr 1fr;grid-auto-rows:205px}
  .t-red{grid-area:auto/span 2/auto/auto;min-height:420px}
  .t-term,.t-24,.t-iso,.t-eye{grid-area:auto/span 1}
  .t-soc,.t-aware{grid-area:auto/span 2}
  .sol-grid,.cert-grid{grid-template-columns:1fr 1fr}
  .hub-letters{grid-template-columns:1fr}
  .srows{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
  .stats{flex-wrap:wrap;gap:22px 0}
  .stat{padding-right:26px;margin-right:26px}
  .nav ul{position:fixed;inset:74px 0 auto 0;background:rgba(10,10,12,.97);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);flex-direction:column;gap:0;padding:8px 28px 22px;display:none;z-index:89}
  .nav ul.open{display:flex}
  .nav ul li{padding:13px 0;border-bottom:1px solid var(--line)}
  .m-cta{display:block}
  .m-cta a{color:var(--orange-soft)!important;font-weight:700}
  .nav>.btn{display:none}
  .burger{display:block}
}
@media (max-width:620px){
  .bento{grid-template-columns:1fr}
  .t-red,.t-soc,.t-aware{grid-area:auto/span 1}
  .t-red{min-height:380px}
  .sol-grid,.cert-grid,.geo-grid,.foot-grid{grid-template-columns:1fr}
  .band{padding:90px 0}
  .stat b{font-size:2.1rem}
}
