:root{
  --bg1:#05060a;
  --bg2:#0b1020;
  --text:#e5e7eb;
  --muted:rgba(229,231,235,.72);
  --line:rgba(255,255,255,.12);
  --neon1: rgba(34,211,238,.55);
  --neon2: rgba(217,70,239,.55);
  --neon3: rgba(99,102,241,.55);
}

*{ box-sizing:border-box; }

html,body{
  margin:0;
  padding:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--text);
  background: linear-gradient(180deg, var(--bg1), var(--bg2));
}

/* =========================
   FONDO CYBER (canvas + overlay + ruido)
   ========================= */
#bg-canvas{
  position:fixed;
  inset:0;
  width:100vw;
  height:100vh;
  z-index:0;
  pointer-events:none;
}

.bg-overlay{
  position:fixed;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    radial-gradient(900px 520px at 18% 16%, rgba(99,102,241,.18), transparent 60%),
    radial-gradient(900px 520px at 82% 24%, rgba(34,211,238,.14), transparent 60%),
    radial-gradient(900px 620px at 52% 84%, rgba(217,70,239,.12), transparent 60%),
    linear-gradient(180deg, rgba(0,0,0,.32), rgba(0,0,0,.70));
}

/* Ruido suave para look “sci-fi” */
.bg-overlay::after{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.25'/%3E%3C/svg%3E");
  opacity:.08;
  mix-blend-mode: overlay;
}

/* Todo el contenido encima del fondo */
body > *{
  position:relative;
  z-index:2;
}

/* =========================
   SECCIONES
   ========================= */
section{
  width:min(1100px,92vw);
  margin:0 auto;
  padding:64px 0;
}

.hidden{ display:none; }

/* =========================
   HERO (glass + neon)
   ========================= */
.hero{
  min-height:80vh;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  gap:18px;
  padding: 70px 16px 40px; /* deja espacio al navbar */
}

.hero-title{
  margin:0;
  font-size:clamp(34px,5vw,62px);
  letter-spacing:.08em;
  text-shadow: 0 0 18px rgba(34,211,238,.18), 0 0 26px rgba(217,70,239,.12);
}

.subtitle{
  max-width:780px;
  color:var(--muted);
  line-height:1.55;
}

#btn-universo{
  margin-top:0;
  padding:14px 22px;
  border-radius:14px;
  border:1px solid rgba(34,211,238,.35);
  background: linear-gradient(135deg, rgba(34,211,238,.16), rgba(217,70,239,.12));
  color:var(--text);
  font-weight:900;
  letter-spacing:.06em;
  cursor:pointer;
  position:relative;
  box-shadow: 0 10px 30px rgba(0,0,0,.35);
  transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease;
}

#btn-universo:hover{
  transform: translateY(-1px);
  border-color: rgba(34,211,238,.55);
  box-shadow: 0 14px 36px rgba(0,0,0,.45);
}

#btn-universo::after{
  content:"";
  position:absolute;
  inset:-2px;
  border-radius:16px;
  background: radial-gradient(circle at 30% 30%, rgba(34,211,238,.35), transparent 60%);
  filter: blur(10px);
  opacity:.55;
  z-index:-1;
}

/* =========================
   ABOUT (glass cards sin cambiar tu HTML)
   ========================= */
.about{
  padding-top: 0;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.05);
  backdrop-filter: blur(10px);
  border-radius: 22px;
  padding: 26px 22px;
  box-shadow: 0 18px 60px rgba(0,0,0,.40);
}

.about h2{ margin:0 0 12px; }

.about p{
  margin:0 0 10px;
  color: rgba(229,231,235,.78);
  line-height: 1.6;
  max-width: 860px;
}

/* =========================
   UNIVERSO (glass + órbitas limpias)
   ========================= */
.universo h2{ margin: 0 0 14px; }

.universe-wrap{
  position:relative;
  width:min(980px,96vw);
  height:720px;
  margin:20px auto 0;
  border-radius:26px;
  background:
    radial-gradient(900px 520px at 50% 40%, rgba(255,255,255,.06), transparent 60%),
    radial-gradient(900px 520px at 50% 40%, rgba(96,165,250,.10), transparent 60%);
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 22px 80px rgba(0,0,0,.55);
  overflow:hidden;
  backdrop-filter: blur(10px);
}

/* Sol */
.sun{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:180px;
  height:180px;
  border-radius:50%;
  background:
    radial-gradient(circle at 28% 28%, #fff, #ffe6a8 28%, #fbbf24 55%, #f59e0b 70%);
  display:flex;
  align-items:center;
  justify-content:center;
  filter: drop-shadow(0 0 44px rgba(245,158,11,.22));
  z-index:3;

  /* ✅ CLAVE: el sol no roba clicks */
  pointer-events:none;
}

/* ✅ también el logo */
.sun-logo{
  width:92%;
  height:92%;
  object-fit:contain;
  pointer-events:none;
}

/* Órbitas visuales */
.orbit{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  border-radius:50%;
  border: 1px dashed rgba(255,255,255,.10);
  pointer-events:none;
  z-index:1;
}

.orbit1{ width:520px; height:520px; }
.orbit2{ width:760px; height:760px; opacity:.75; }

/* Rings que rotan */
.orbit-ring{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:520px;
  height:520px;
  border-radius:50%;
  animation:orbit-rotate 46s linear infinite;
  z-index:2;
  pointer-events:none;
}

.orbit-ring.ring2{
  width:760px;
  height:760px;
  animation-duration:72s;
  animation-direction:reverse;
}

@keyframes orbit-rotate{
  from{ transform:translate(-50%,-50%) rotate(0deg); }
  to{ transform:translate(-50%,-50%) rotate(360deg); }
}

/* Planetas */
.planet{
  position:absolute;
  left:50%;
  top:0;
  transform:translate(-50%,-50%);
  width:155px;
  height:155px;
  border-radius:50%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:14px;
  text-decoration:none;
  color:var(--text);

  background: radial-gradient(circle at 30% 30%, rgba(34,211,238,.18), rgba(15,23,42,.92));
  border: 1px solid rgba(255,255,255,.14);
  box-shadow: 0 18px 40px rgba(0,0,0,.30);

  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;

  animation:keep-upright 46s linear infinite;

  pointer-events:auto;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  z-index:5;
}

/* Ring2 contra-rotación del planeta */
.orbit-ring.ring2 .planet{
  animation-duration:72s;
  animation-direction:reverse;
}

@keyframes keep-upright{
  from{ transform:translate(-50%,-50%) rotate(0deg); }
  to{ transform:translate(-50%,-50%) rotate(-360deg); }
}

.planet:hover{
  transform: translate(-50%,-50%) scale(1.03);
  border-color: rgba(34,211,238,.45);
  box-shadow: 0 22px 60px rgba(0,0,0,.45);
}

.planet-logo{
  width:56px;
  height:56px;
  border-radius:14px;
  background:rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.10);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  pointer-events:none;
}

.planet-logo img{
  width:100%;
  height:100%;
  object-fit:contain;
  pointer-events:none;
}

.planet-name,
.planet-tag{
  pointer-events:none;
}

.planet-name{
  font-weight:900;
  text-align:center;
  font-size:14px;
  letter-spacing:.02em;
}

.planet-tag{
  font-size:12px;
  color:var(--muted);
  text-align:center;
}

/* Hint */
.universe-hint{
  position:absolute;
  left:50%;
  bottom:14px;
  transform:translateX(-50%);
  font-size:12px;
  color: rgba(229,231,235,.60);
  z-index:4;
  pointer-events:none;
}

/* =========================
   NUEVO: NAV + BOTONES + PANELES
   ========================= */
html{ scroll-behavior:smooth; }

.topbar{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:20;
  padding:10px 0;
  pointer-events:auto;
}

.nav{
  width:min(1100px,92vw);
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:10px 12px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(10,14,26,.55);
  backdrop-filter: blur(12px);
  box-shadow: 0 14px 50px rgba(0,0,0,.35);
}

.brand{
  display:flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
  color:var(--text);
  font-weight:900;
  letter-spacing:.08em;
}

.brand-dot{
  width:10px;
  height:10px;
  border-radius:99px;
  background: rgba(34,211,238,.75);
  box-shadow: 0 0 18px rgba(34,211,238,.35);
}

.brand-text{ font-size:12px; opacity:.95; }

.nav-links{
  display:flex;
  align-items:center;
  gap:14px;
}

.nav-links a{
  color: rgba(229,231,235,.78);
  text-decoration:none;
  font-size:13px;
  padding:10px 10px;
  border-radius:12px;
  border:1px solid transparent;
  transition: .14s ease;
}

.nav-links a:hover{
  color: var(--text);
  border-color: rgba(255,255,255,.10);
  background: rgba(255,255,255,.05);
}

.nav-cta{
  border-color: rgba(34,211,238,.28) !important;
  background: linear-gradient(135deg, rgba(34,211,238,.14), rgba(217,70,239,.10));
  color: var(--text) !important;
  font-weight:900;
}

.nav-toggle{
  display:none;
  width:44px;
  height:40px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  cursor:pointer;
}
.nav-toggle span{
  display:block;
  height:2px;
  margin:6px 9px;
  background: rgba(229,231,235,.75);
  border-radius:2px;
}

.hero-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:center;
  margin-top:10px;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:13px 18px;
  border-radius:14px;
  font-weight:900;
  letter-spacing:.05em;
  text-decoration:none;
  cursor:pointer;
  border:1px solid rgba(255,255,255,.12);
  transition:.14s ease;
}

.btn-ghost{
  background: rgba(255,255,255,.05);
  color: rgba(229,231,235,.88);
}
.btn-ghost:hover{ transform: translateY(-1px); background: rgba(255,255,255,.07); }

.btn-solid{
  border-color: rgba(34,211,238,.30);
  background: linear-gradient(135deg, rgba(34,211,238,.16), rgba(217,70,239,.12));
  color: var(--text);
  box-shadow: 0 10px 30px rgba(0,0,0,.30);
}
.btn-solid:hover{ transform: translateY(-1px); border-color: rgba(34,211,238,.55); }

.hero-mini{
  margin:10px 0 0;
  color: rgba(229,231,235,.55);
  font-size:12px;
}

.panel h2{ margin:0 0 10px; }
.lead{
  margin:0 0 20px;
  color: rgba(229,231,235,.72);
  line-height:1.6;
  max-width: 920px;
}

.grid{
  display:grid;
  gap:14px;
}
.cards{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
.card{
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.05);
  backdrop-filter: blur(10px);
  border-radius: 18px;
  padding: 18px 16px;
  box-shadow: 0 18px 60px rgba(0,0,0,.25);
}
.card h3{ margin:0 0 8px; font-size:16px; }
.card p{ margin:0 0 8px; color: rgba(229,231,235,.72); line-height:1.55; }
.card p b{ color: rgba(229,231,235,.92); }

.bullets{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
.bullet{
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  border-radius: 16px;
  padding: 14px 14px;
  color: rgba(229,231,235,.80);
}

.steps{
  display:grid;
  gap:12px;
}
.step{
  display:flex;
  gap:12px;
  align-items:flex-start;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  border-radius: 18px;
  padding: 16px 14px;
}
.step-num{
  width:34px;
  height:34px;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
  border: 1px solid rgba(34,211,238,.22);
  background: rgba(34,211,238,.10);
}
.step-body h3{ margin:0 0 6px; font-size:16px; }
.step-body p{ margin:0; color: rgba(229,231,235,.72); line-height:1.55; }

.companies{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
.company{
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.05);
  backdrop-filter: blur(10px);
  border-radius: 18px;
  padding: 16px;
  box-shadow: 0 18px 60px rgba(0,0,0,.25);
  display:flex;
  flex-direction:column;
  gap:12px;
}
.company-top{
  display:flex;
  gap:12px;
  align-items:center;
}
.company-logo{
  width:54px;
  height:54px;
  border-radius:14px;
  background: rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.10);
  object-fit:contain;
  padding:6px;
}
.muted{ color: rgba(229,231,235,.60); margin:0; }

/* =========================
   NUEVO: CONTACTO
   ========================= */
.contact-grid{
  display:grid;
  grid-template-columns: 1.4fr .9fr;
  gap:14px;
}

.contact-form, .contact-box{
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.05);
  backdrop-filter: blur(10px);
  border-radius: 18px;
  padding: 16px;
  box-shadow: 0 18px 60px rgba(0,0,0,.25);
}

.field{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin-bottom:12px;
}
.field label{
  font-size:12px;
  color: rgba(229,231,235,.70);
}
.field input, .field textarea{
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(10,14,26,.55);
  color: var(--text);
  padding: 12px 12px;
  outline:none;
}
.field input:focus, .field textarea:focus{
  border-color: rgba(34,211,238,.35);
  box-shadow: 0 0 0 3px rgba(34,211,238,.10);
}
.form-note{
  margin:10px 0 0;
  font-size:12px;
  color: rgba(229,231,235,.55);
}

.contact-box h3{ margin:0 0 8px; }
.contact-meta{
  margin-top:14px;
  display:grid;
  gap:10px;
}
.meta-k{ color: rgba(229,231,235,.60); }
.meta-v{ color: rgba(229,231,235,.86); }

/* =========================
   NUEVO: FOOTER REAL
   ========================= */
.footer{
  width:100%;
  border-top: 1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.10);
  padding: 26px 0 10px;
}

.footer-wrap{
  width:min(1100px,92vw);
  margin:0 auto;
  display:grid;
  grid-template-columns: 1.2fr .8fr .8fr;
  gap:16px;
  padding-bottom:14px;
}

.footer-col{
  display:flex;
  flex-direction:column;
  gap:8px;
  color: rgba(229,231,235,.70);
}
.footer-col a{
  color: rgba(229,231,235,.65);
  text-decoration:none;
}
.footer-col a:hover{ color: rgba(229,231,235,.92); }

.footer-brand{
  display:flex;
  gap:10px;
  align-items:flex-start;
}

.footer-bottom{
  width:min(1100px,92vw);
  margin:0 auto;
  padding: 12px 0 20px;
  color: rgba(229,231,235,.55);
  font-size:12px;
}

/* Botón flotante WhatsApp */
.wa-float{
  position:fixed;
  right:16px;
  bottom:16px;
  z-index:30;
  width:54px;
  height:54px;
  border-radius:18px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  color: var(--text);
  font-weight:900;
  letter-spacing:.02em;
  border:1px solid rgba(34,211,238,.30);
  background: linear-gradient(135deg, rgba(34,211,238,.16), rgba(217,70,239,.12));
  box-shadow: 0 18px 60px rgba(0,0,0,.45);
}
.wa-float:hover{ transform: translateY(-1px); border-color: rgba(34,211,238,.55); }

/* Footer simple viejo (ya no aplica, pero lo dejo sin estorbar) */
footer p{ margin:0; }

/* Shooting stars desactivadas (las dejo apagadas como las traes) */
.shooting-layer{ display:none; }

/* =========================
   RESPONSIVE
   ========================= */
@media (max-width:920px){
  .cards{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bullets{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contact-grid{ grid-template-columns: 1fr; }
  .footer-wrap{ grid-template-columns: 1fr; }
}

@media (max-width:720px){
  .nav-toggle{ display:block; }
  .nav-links{
    position:absolute;
    top:64px;
    right: calc((100vw - min(1100px,92vw))/2);
    left: calc((100vw - min(1100px,92vw))/2);
    display:none;
    flex-direction:column;
    gap:6px;
    padding:10px;
    border-radius:18px;
    border:1px solid rgba(255,255,255,.10);
    background: rgba(10,14,26,.75);
    backdrop-filter: blur(12px);
  }
  .nav-links.open{ display:flex; }
  .nav-links a{ padding:12px 12px; }
}

@media (max-width:520px){
  section{ padding:44px 0; }

  .sun{ width:150px; height:150px; }
  .sun-logo{ width:92%; height:92%; }

  .orbit1{ width:380px; height:380px; }
  .orbit2{ width:540px; height:540px; }

  .orbit-ring{ width:380px; height:380px; animation-duration:50s; }
  .orbit-ring.ring2{ width:540px; height:540px; animation-duration:78s; }

  .planet{
    width:128px;
    height:128px;
    padding:10px;
    animation-duration:50s;
  }
  .orbit-ring.ring2 .planet{ animation-duration:78s; }

  .planet-logo{ width:44px; height:44px; border-radius:14px; }
  .planet-name{ font-size:12px; }
  .planet-tag{ font-size:10px; }

  .about{
    padding: 20px 16px;
    border-radius: 18px;
  }

  .cards{ grid-template-columns: 1fr; }
  .bullets{ grid-template-columns: 1fr; }
  .companies{ grid-template-columns: 1fr; }
}

.brand-logo{
  height: 40px;      /* ajusta si lo quieres más grande */
  width: auto;
  display: block;
}

.hero-logo{
  margin: 18px auto 12px;
  max-width: 430px;   /* ajusta aquí el tamaño */
  width: 100%;
  display: block;
  opacity: 0.95;
}

/* =========================
   ✅ NUEVO: Login visible en desktop (sin tocar lógica)
   ========================= */
.nav-login{
  white-space: nowrap;
}

@media (max-width:720px){
  .nav-login{
    margin-left:auto;
  }
}
