:root{
  --bg-0:#0e0e0f; /* fondo base */
  --bg-1:#151517; /* capa */
  --text-0:#f5f5f5; /* texto principal */
  --muted:#b5b5b8; /* texto secundario */
  --accent:#ff4d2e; /* rojo/naranja neón */
  --accent-2:#2ee5ff; /* cian de contraste */
  --card:#1b1c1f; /* tarjetas */
  --glass:rgba(255,255,255,0.06);
  --border:rgba(255,255,255,0.08);
  --shadow:0 10px 30px rgba(0,0,0,.5);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; color:var(--text-0);
  background: radial-gradient(1200px 700px at 70% -10%, rgba(255,77,46,.12), transparent 60%),
              radial-gradient(800px 500px at 0% 100%, rgba(46,229,255,.08), transparent 60%),
              linear-gradient(180deg, var(--bg-0), var(--bg-1));
  font-family: Roboto, system-ui, -apple-system, Segoe UI, Helvetica, Arial, sans-serif;
}

.container{width:min(1150px, 92%); margin-inline:auto}
.section{padding: clamp(56px, 8vw, 100px) 0}
.section-title{font-family:"Space Grotesk", system-ui, sans-serif; font-weight:700; letter-spacing:.5px}
.section-title.center{text-align:center}

/* Header */
.site-header{position:sticky; top:0; z-index:20; backdrop-filter: blur(10px); background: rgba(10,10,12,.4); border-bottom:1px solid var(--border)}
.nav{display:flex; align-items:center; justify-content:space-between; padding:14px 0}
.brand{display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--text-0)}
.brand-logo{width:36px; height:36px; object-fit:contain; filter: drop-shadow(0 0 10px rgba(255,77,46,.4))}
.brand-name{font-family:"Space Grotesk"; font-weight:700; letter-spacing:.6px}
.menu{display:flex; gap:20px}
.nav-link{color:var(--muted); text-decoration:none; transition:color .2s}
.nav-link:hover{color:var(--text-0)}
.cta-inline{color:var(--accent)}

/* Hero */
.hero{position:relative; isolation:isolate}
.hero-inner{display:grid; grid-template-columns:1.1fr .9fr; gap:40px; align-items:center}
.headline{font-size:clamp(32px, 5vw, 58px); line-height:1.05; margin:0 0 14px; text-shadow:0 0 18px rgba(255,77,46,.25)}
.headline .accent{color:var(--accent)}
.subheadline{color:var(--muted); margin:0 0 26px; font-size:clamp(16px, 1.6vw, 18px)}
.actions{display:flex; gap:14px; margin: 0 0 16px}
.trust-badges{display:flex; gap:18px; padding:0; margin:0; list-style:none; color:#d7d7da; flex-wrap:wrap}
.hero-logo{width:100%; max-width:420px; filter: drop-shadow(0 0 25px rgba(255,77,46,.35))}

/* Buttons */
.btn{display:inline-flex; align-items:center; justify-content:center; padding:12px 18px; border-radius:12px; text-decoration:none; font-weight:600; letter-spacing:.3px; transition: transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease; border:1px solid var(--border)}
.btn-primary{background:linear-gradient(180deg, rgba(255,77,46,.95), rgba(255,77,46,.8)); color:#fff; box-shadow:0 10px 25px rgba(255,77,46,.35)}
.btn-primary:hover{transform:translateY(-1px); box-shadow:0 16px 40px rgba(255,77,46,.45)}
.btn-secondary{background:rgba(255,255,255,.06); color:#fff}
.btn-secondary:hover{background:rgba(255,255,255,.1)}

/* Cards / Grid */
.grid-2{display:grid; grid-template-columns:1fr 1fr; gap:24px}
.card{background:var(--card); border:1px solid var(--border); border-radius:16px; padding:24px; box-shadow:var(--shadow)}
.glass{background:linear-gradient(180deg, var(--glass), rgba(255,255,255,0.02)); backdrop-filter: blur(10px)}

.features{display:grid; grid-template-columns:repeat(4, 1fr); gap:18px; margin-top:22px}
.feature{padding:20px; border:1px solid var(--border); border-radius:14px; background:rgba(255,255,255,0.03)}
.feature h3{margin:0 0 8px; font-size:18px}
.feature p{margin:0; color:var(--muted)}

/* Tech */
.tech-list{display:grid; grid-template-columns:repeat(5, 1fr); gap:10px; padding:0; list-style:none; margin:14px 0 0}
.tech-list li{border:1px dashed var(--border); border-radius:12px; padding:14px; text-align:center; background:rgba(255,255,255,.02)}

/* CTA */
.cta .cta-inner{display:flex; flex-direction:column; align-items:center; text-align:center}
.contact-form{display:flex; flex-direction:column; gap:12px; width:min(680px, 100%)}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:12px}
input, textarea{background:#121315; border:1px solid var(--border); color:var(--text-0); padding:12px 14px; border-radius:12px; font:inherit}
input:focus, textarea:focus{outline:none; border-color:rgba(46,229,255,.5); box-shadow:0 0 0 3px rgba(46,229,255,.15)}
.form-status{min-height:22px; color:var(--accent-2)}

/* Footer */
.site-footer{border-top:1px solid var(--border); background:rgba(0,0,0,.35)}
.footer-inner{display:flex; align-items:center; justify-content:space-between; padding:18px 0; color:#d3d3d6}
.footer-inner a{color:#d3d3d6; text-decoration:none}
.footer-inner a:hover{color:#fff}
.links{display:flex; align-items:center; gap:12px}
.links a svg{width:20px; height:20px; display:block}
.links a.linkedin{display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; border-radius:6px; background:#0A66C2; box-shadow:0 4px 14px rgba(10,102,194,.45)}
.links a.linkedin:hover{transform:translateY(-1px); box-shadow:0 8px 20px rgba(10,102,194,.6)}
.links a.linkedin svg{width:14px; height:14px; color:#fff}

/* Footer extras */
.links{display:flex; align-items:center; gap:12px}
.links .cookie-prefs{background:rgba(255,255,255,.06); color:#fff; border:1px solid var(--border); border-radius:8px; padding:8px 10px; cursor:pointer}
.links .cookie-prefs:hover{background:rgba(255,255,255,.1)}

/* Cookie banner */
.cookie-banner{position:fixed; inset:auto 0 16px 0; z-index:50; display:flex; justify-content:center; padding:0 12px}
.cookie-banner__content{width:min(900px, 94%); background:rgba(18,19,21,.96); border:1px solid var(--border); border-radius:14px; box-shadow:var(--shadow); padding:14px; display:flex; gap:14px; align-items:center}
.cookie-banner__content p{margin:0; color:#ddd}
.cookie-banner__content a{color:var(--accent-2)}
.cookie-banner__actions{margin-left:auto; display:flex; gap:8px}
.cookie-banner[hidden]{display:none}

/* Cookie modal */
.cookie-modal{border:none; border-radius:16px; padding:0; background:transparent}
.cookie-modal::backdrop{background:rgba(0,0,0,.55)}
.cookie-modal__inner{background:#121315; color:#fff; border:1px solid var(--border); border-radius:16px; padding:18px; width:min(560px, 92%)}
.cookie-modal__inner h3{margin-top:0}
.cookie-modal__inner fieldset{border:none; padding:0; margin:12px 0; display:grid; gap:8px}
.cookie-modal__actions{display:flex; gap:8px; justify-content:flex-end}

/* Background canvas */
#bg-canvas{position:fixed; inset:0; z-index:-1}

/* Reveal on scroll */
[data-animate]{opacity:0; transform: translateY(14px); transition: opacity .6s ease, transform .6s ease}
[data-animate].visible{opacity:1; transform:none}

/* Cursor */
#cursor, #cursor-outline{position:fixed; pointer-events:none; z-index:1000; left:0; top:0; transform:translate(-50%, -50%)}
#cursor{width:10px; height:10px; background:var(--accent); border-radius:50%; box-shadow:0 0 10px rgba(255,77,46,.8), 0 0 24px rgba(255,77,46,.5)}
#cursor-outline{width:36px; height:36px; border-radius:50%; border:2px solid rgba(255,77,46,.45); box-shadow:0 0 24px rgba(255,77,46,.35)}

/* Responsive */
@media (max-width: 950px){
  .hero-inner{grid-template-columns:1fr; text-align:center}
  .actions{justify-content:center}
  .grid-2{grid-template-columns:1fr}
  .features{grid-template-columns:1fr 1fr}
  .tech-list{grid-template-columns:1fr 1fr}
  .footer-inner{flex-direction:column; gap:8px}
}
@media (max-width: 540px){
  .features{grid-template-columns:1fr}
  .tech-list{grid-template-columns:1fr}
  .form-row{grid-template-columns:1fr}
}

.highlight-email{margin-top:18px}
.email-link{display:inline-block; color:#fff; background:linear-gradient(180deg, rgba(255,77,46,1), rgba(255,77,46,.85)); padding:14px 18px; border-radius:12px; text-decoration:none; font-weight:700; letter-spacing:.3px; box-shadow:0 10px 25px rgba(255,77,46,.35)}
.email-link:hover{transform:translateY(-1px); box-shadow:0 16px 40px rgba(255,77,46,.45)}

.lang-select, .lang-switcher{appearance:none; -webkit-appearance:none; -moz-appearance:none; background:rgba(255,255,255,.06); border:1px solid var(--border); color:#fff; padding:8px 28px 8px 12px; border-radius:12px; font:inherit; line-height:1; height:36px; min-width:72px; box-shadow:0 6px 18px rgba(0,0,0,.25); background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%232ee5ff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>"); background-repeat:no-repeat; background-position:right 10px center; background-size:14px}
.lang-select:focus, .lang-switcher:focus{outline:none; border-color:rgba(46,229,255,.5); box-shadow:0 0 0 3px rgba(46,229,255,.15)}
