/* =========================================================
   GCCI — Soporte Técnico & Seguridad
   Paleta: negro azulado profundo + cian eléctrico + plateado
   ========================================================= */

:root{
  --bg:            #060a10;
  --panel:         #0b121a;
  --panel-alt:     #0f1822;
  --panel-border:  #1c2b3a;
  --cyan:          #2fd8ff;
  --cyan-dim:      #1a8fb0;
  --blue:          #3b6fd6;
  --silver:        #b9c6d3;
  --text:          #e8eef4;
  --muted:         #7f909f;
  --danger:        #ff5d5d;
  --ok:            #34e7a1;

  --font-display: 'Rajdhani', 'Segoe UI', sans-serif;
  --font-body:    'Inter', 'Segoe UI', sans-serif;

  --radius: 4px;
  --nav-w: 300px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }

body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

img{ max-width:100%; display:block; }
a{ color:var(--cyan); text-decoration:none; }
a:hover{ color:#fff; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{
  outline:2px solid var(--cyan);
  outline-offset:3px;
}

h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:700;
  letter-spacing:.02em;
  margin:0 0 .5em;
  color:#fff;
}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.6em;
  font-family:var(--font-display);
  font-weight:600;
  font-size:.8rem;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--cyan);
  margin-bottom:1em;
}
.eyebrow::before{
  content:'';
  width:28px; height:2px;
  background:var(--cyan);
  display:inline-block;
}

.section-lead{
  max-width:640px;
  color:var(--muted);
  font-size:1.05rem;
  margin-bottom:2.4em;
}

/* ---------- Fondo con retícula de circuito ---------- */
#bg{
  position:fixed; inset:0;
  z-index:0;
  background:
    radial-gradient(ellipse at 18% 10%, rgba(47,216,255,.10), transparent 45%),
    radial-gradient(ellipse at 85% 85%, rgba(59,111,214,.12), transparent 50%),
    var(--bg);
}
#bg::before{
  content:'';
  position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(47,216,255,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(47,216,255,.05) 1px, transparent 1px);
  background-size:42px 42px;
  mask-image:radial-gradient(ellipse at center, rgba(0,0,0,.9), transparent 75%);
}
#bg .scan{
  position:absolute; left:0; right:0; height:2px;
  background:linear-gradient(90deg, transparent, rgba(47,216,255,.55), transparent);
  animation:scan 7s linear infinite;
  opacity:.55;
}
@keyframes scan{
  0%{ top:-2%; }
  100%{ top:102%; }
}
@media (prefers-reduced-motion: reduce){
  #bg .scan{ animation:none; display:none; }
}

/* ---------- Layout: nav lateral fija + contenido ---------- */
#wrapper{ position:relative; z-index:1; }

#header{
  position:fixed;
  top:0; left:0; bottom:0;
  width:var(--nav-w);
  padding:2.6em 2.2em;
  background:linear-gradient(180deg, var(--panel) 0%, #080d13 100%);
  border-right:1px solid var(--panel-border);
  display:flex; flex-direction:column;
  z-index:10;
  overflow-y:auto;
}

.brand{
  margin-bottom:.9em;
}
.brand .mark{
  width:100%;
  max-width:180px;
  height:auto;
  filter:drop-shadow(0 0 18px rgba(47,216,255,.18));
}
.brand-sub{
  font-family:var(--font-display);
  font-weight:600;
  font-size:.68rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--cyan);
  margin:0 0 2em;
}

#header .tagline{
  color:var(--muted);
  font-size:.92rem;
  margin-bottom:2.2em;
}

#nav ul{ list-style:none; margin:0; padding:0; }
#nav li{ margin-bottom:.2em; }
#nav a{
  display:flex; align-items:center; gap:.7em;
  padding:.6em .2em;
  color:var(--silver);
  font-family:var(--font-display);
  font-size:.98rem;
  font-weight:600;
  letter-spacing:.03em;
  border-left:2px solid transparent;
  padding-left:.9em;
  transition:.2s;
}
#nav a .num{
  font-size:.72rem;
  color:var(--cyan-dim);
  font-family:var(--font-body);
}
#nav a:hover, #nav a.active{
  color:#fff;
  border-left-color:var(--cyan);
  background:rgba(47,216,255,.06);
}

.header-footer{
  margin-top:auto;
  padding-top:2em;
  border-top:1px solid var(--panel-border);
  font-size:.82rem;
  color:var(--muted);
}
.header-footer a{ color:var(--silver); }
.header-footer .status{
  display:flex; align-items:center; gap:.5em;
  margin-top:.8em;
  color:var(--ok);
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.header-footer .status .dot{
  width:7px; height:7px; border-radius:50%;
  background:var(--ok);
  box-shadow:0 0 8px var(--ok);
}

/* Toggle móvil */
#nav-toggle{
  display:none;
  position:fixed; top:1.1em; right:1.1em; z-index:20;
  width:46px; height:46px;
  background:var(--panel);
  border:1px solid var(--panel-border);
  border-radius:var(--radius);
  align-items:center; justify-content:center;
  cursor:pointer;
}
#nav-toggle span, #nav-toggle span::before, #nav-toggle span::after{
  content:''; display:block;
  width:20px; height:2px; background:#fff;
  position:relative; transition:.2s;
}
#nav-toggle span::before{ position:absolute; top:-6px; }
#nav-toggle span::after{ position:absolute; top:6px; }

#main{
  margin-left:var(--nav-w);
  position:relative; z-index:1;
}

section{
  min-height:100vh;
  padding:6.5em 5.5em;
  border-bottom:1px solid var(--panel-border);
  display:flex; flex-direction:column; justify-content:center;
}
section:last-of-type{ border-bottom:none; }

/* ---------- Hero ---------- */
#inicio{
  background:
    radial-gradient(ellipse at 75% 20%, rgba(47,216,255,.08), transparent 55%);
}
#inicio .hero-tag{
  font-family:var(--font-display);
  color:var(--cyan);
  letter-spacing:.3em;
  text-transform:uppercase;
  font-size:.85rem;
  margin-bottom:1.2em;
}
#inicio h1{
  font-size:clamp(2.4rem, 5vw, 4rem);
  line-height:1.05;
  max-width:15ch;
}
#inicio h1 .accent{ color:var(--cyan); }
#inicio .lead{
  max-width:560px;
  color:var(--silver);
  font-size:1.15rem;
  margin:1.1em 0 2em;
}
.hero-actions{ display:flex; gap:1em; flex-wrap:wrap; margin-bottom:3em; }

.btn{
  display:inline-flex; align-items:center; gap:.6em;
  font-family:var(--font-display);
  font-weight:700; letter-spacing:.04em;
  font-size:.95rem;
  padding:.95em 1.8em;
  border-radius:var(--radius);
  border:1px solid transparent;
  cursor:pointer;
  transition:.2s;
}
.btn-primary{
  background:var(--cyan); color:#031017;
  box-shadow:0 0 0 0 rgba(47,216,255,.5);
}
.btn-primary:hover{ background:#7fe8ff; color:#031017; box-shadow:0 0 22px rgba(47,216,255,.35); }
.btn-outline{
  border-color:var(--panel-border); color:var(--text);
  background:rgba(255,255,255,.02);
}
.btn-outline:hover{ border-color:var(--cyan); color:#fff; }

.hero-stats{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:2em; max-width:640px;
  border-top:1px solid var(--panel-border);
  padding-top:1.8em;
}
.hero-stats .n{
  font-family:var(--font-display);
  font-size:1.8rem; font-weight:700; color:#fff;
}
.hero-stats .n .accent{ color:var(--cyan); }
.hero-stats .l{
  font-size:.78rem; letter-spacing:.05em; color:var(--muted);
  text-transform:uppercase; margin-top:.3em;
}

/* ---------- Servicios ---------- */
.services-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:1.4em;
}
.service-card{
  background:linear-gradient(180deg, var(--panel-alt), var(--panel));
  border:1px solid var(--panel-border);
  border-radius:var(--radius);
  padding:2.1em;
  position:relative;
  overflow:hidden;
  transition:.25s;
}
.service-card::before{
  content:'';
  position:absolute; top:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg, var(--cyan), transparent);
  opacity:0; transition:.25s;
}
.service-card:hover{
  border-color:var(--cyan-dim);
  transform:translateY(-3px);
}
.service-card:hover::before{ opacity:1; }

.service-icon{
  width:52px; height:52px;
  margin-bottom:1.2em;
  color:var(--cyan);
}
.service-card h3{
  font-size:1.25rem;
  margin-bottom:.5em;
}
.service-card p{
  color:var(--muted);
  font-size:.95rem;
  margin-bottom:1.1em;
}
.service-card ul{
  list-style:none; margin:0; padding:0;
  font-size:.88rem;
}
.service-card ul li{
  color:var(--silver);
  padding:.32em 0 .32em 1.3em;
  position:relative;
  border-top:1px dashed var(--panel-border);
}
.service-card ul li:first-child{ border-top:none; }
.service-card ul li::before{
  content:'';
  position:absolute; left:0; top:1em;
  width:6px; height:6px;
  background:var(--cyan);
  transform:rotate(45deg);
}

/* ---------- Apps a medida (destacado) ---------- */
.apps-panel{
  margin-top:2.2em;
  border:1px solid var(--panel-border);
  background:var(--panel-alt);
  border-radius:var(--radius);
  padding:2.4em;
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:2.4em;
  align-items:center;
}
.apps-panel h3{ font-size:1.5rem; }
.apps-panel p{ color:var(--muted); }
.apps-list{ list-style:none; margin:1.2em 0 0; padding:0; display:grid; gap:.6em; }
.apps-list li{
  display:flex; align-items:center; gap:.7em;
  font-size:.92rem; color:var(--silver);
}
.apps-list li svg{ width:18px; height:18px; color:var(--cyan); flex:none; }

.qr-mock{
  border:1px solid var(--panel-border);
  border-radius:var(--radius);
  background:#081019;
  padding:1.6em;
}
.qr-mock .row{
  display:flex; justify-content:space-between; align-items:center;
  padding:.65em 0;
  border-bottom:1px dashed var(--panel-border);
  font-size:.82rem;
}
.qr-mock .row:last-child{ border-bottom:none; }
.qr-mock .row .tag{
  color:var(--ok); font-family:var(--font-display); font-weight:700; font-size:.72rem;
  letter-spacing:.05em; text-transform:uppercase;
}
.qr-mock .row .id{ color:var(--muted); }
.qr-mock .head{
  display:flex; justify-content:space-between; align-items:center;
  margin-bottom:.6em; font-family:var(--font-display); font-weight:700;
  font-size:.82rem; letter-spacing:.05em; color:var(--cyan); text-transform:uppercase;
}

/* ---------- Nosotros / proceso ---------- */
.about-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:3em; align-items:start;
}
.about-grid p{ color:var(--silver); margin-bottom:1.1em; }
.process{ list-style:none; margin:0; padding:0; display:grid; gap:1.4em; }
.process li{
  display:grid; grid-template-columns:40px 1fr; gap:1em;
  padding-bottom:1.4em; border-bottom:1px solid var(--panel-border);
}
.process li:last-child{ border-bottom:none; padding-bottom:0; }
.process .step-n{
  font-family:var(--font-display); font-weight:700;
  color:var(--cyan); font-size:1rem;
}
.process h4{ margin-bottom:.25em; font-size:1.02rem; }
.process p{ color:var(--muted); font-size:.9rem; margin:0; }

.trust-grid{
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:1em; margin-top:2.4em;
}
.trust-item{
  text-align:center; padding:1.4em .6em;
  border:1px solid var(--panel-border); border-radius:var(--radius);
  background:rgba(255,255,255,.015);
}
.trust-item svg{ width:26px; height:26px; color:var(--cyan); margin:0 auto .6em; }
.trust-item span{ display:block; font-size:.8rem; color:var(--muted); }

/* ---------- Contacto ---------- */
.contact-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:3em;
}
.field{ margin-bottom:1.2em; }
.field label{
  display:block; font-size:.8rem; letter-spacing:.05em;
  text-transform:uppercase; color:var(--muted); margin-bottom:.5em;
}
.field input, .field select, .field textarea{
  width:100%;
  background:var(--panel-alt);
  border:1px solid var(--panel-border);
  border-radius:var(--radius);
  color:var(--text);
  padding:.85em 1em;
  font-family:var(--font-body);
  font-size:.95rem;
}
.field input:focus, .field select:focus, .field textarea:focus{
  border-color:var(--cyan); outline:none;
}
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:1em; }

.contact-info{ display:grid; gap:1.6em; align-content:start; }
.contact-item{ display:flex; gap:1em; }
.contact-item svg{ width:22px; height:22px; color:var(--cyan); flex:none; margin-top:.2em; }
.contact-item h4{ font-size:.95rem; margin-bottom:.2em; }
.contact-item p, .contact-item a{ color:var(--muted); font-size:.92rem; margin:0; display:block; }

.social-row{ display:flex; gap:.8em; margin-top:1em; }
.social-row a{
  width:38px; height:38px; display:flex; align-items:center; justify-content:center;
  border:1px solid var(--panel-border); border-radius:var(--radius);
  color:var(--silver);
}
.social-row a:hover{ border-color:var(--cyan); color:var(--cyan); }
.social-row svg{ width:17px; height:17px; }

#footer{
  padding:2.4em 5.5em;
  color:var(--muted);
  font-size:.85rem;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:1em;
}

/* ---------- Botón flotante WhatsApp ---------- */
.whatsapp-fab{
  position:fixed;
  right:1.6em; bottom:1.6em;
  z-index:30;
  display:flex; align-items:center; gap:.6em;
  background:var(--ok);
  color:#04150e;
  font-family:var(--font-display);
  font-weight:700; font-size:.9rem;
  padding:.85em 1.2em;
  border-radius:40px;
  box-shadow:0 6px 24px rgba(52,231,161,.35);
  transition:.2s;
}
.whatsapp-fab:hover{ transform:translateY(-2px); color:#04150e; box-shadow:0 10px 30px rgba(52,231,161,.5); }
.whatsapp-fab svg{ width:20px; height:20px; flex:none; }
@media (max-width:520px){
  .whatsapp-fab span{ display:none; }
  .whatsapp-fab{ padding:.9em; }
}

/* ---------- Responsive ---------- */
@media (max-width:1080px){
  .services-grid{ grid-template-columns:1fr; }
  .apps-panel{ grid-template-columns:1fr; }
  .about-grid{ grid-template-columns:1fr; }
  .contact-grid{ grid-template-columns:1fr; }
  .trust-grid{ grid-template-columns:repeat(2,1fr); }
}

@media (max-width:860px){
  :root{ --nav-w: 260px; }
  #header{
    left:calc(-1 * var(--nav-w));
    transition:left .25s ease;
    box-shadow:20px 0 40px rgba(0,0,0,.4);
  }
  #header.open{ left:0; }
  #nav-toggle{ display:flex; }
  #main{ margin-left:0; }
  section{ padding:6em 1.6em 4em; }
  .hero-stats{ grid-template-columns:1fr 1fr; }
  #footer{ padding:2em 1.6em; flex-direction:column; }
}

@media (max-width:520px){
  .field-row{ grid-template-columns:1fr; }
  .trust-grid{ grid-template-columns:1fr 1fr; }
}
