/* ── VARIABLES & RESET ── */
:root {
  --black: #050507;
  --deep: #0a0a0f;
  --gold: #00c3ff;
  --gold2: #0077ff;
  --white: #f5f0e8;
  --gray: #1a1a22;
  --muted: #6b6b7a;
  --accent: #00c3ff;
  --ease: cubic-bezier(0.16, 1, 0.3, 1);
}
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior: smooth; }
body { background:var(--black); color:var(--white); font-family:'DM Sans',sans-serif; overflow-x:hidden; cursor:none; }
body.intro-active { overflow:hidden; }

@media(prefers-reduced-motion:reduce){
  *, *::before, *::after { animation-duration:.01ms !important; transition-duration:.01ms !important; }
  .cursor,.cursor-ring { display:none; } body { cursor:auto; }
}

/* ── CURSOR ── */
.cursor { position:fixed; width:12px; height:12px; background:var(--gold); border-radius:50%; pointer-events:none; z-index:9999; transform:translate(-50%,-50%); transition:width .3s,height .3s,transform .3s; mix-blend-mode:difference; will-change:left,top; }
.cursor-ring { position:fixed; width:40px; height:40px; border:1px solid rgba(240,180,41,.5); border-radius:50%; pointer-events:none; z-index:9998; transform:translate(-50%,-50%); transition:width .3s,height .3s,transform .3s var(--ease); will-change:left,top; }

/* ── INTRO OVERLAY ── */
#intro-overlay {
  position:fixed; inset:0; z-index:10000;
  background:#000;
  display:flex; align-items:center; justify-content:center; flex-direction:column;
  transition: opacity 1.2s var(--ease), visibility 1.2s;
}
#intro-overlay.hidden { opacity:0; visibility:hidden; pointer-events:none; }
#intro-canvas { position:absolute; inset:0; width:100%; height:100%; }

.intro-beam {
  position:absolute; bottom:0; width:3px; height:0;
  background:linear-gradient(to top,rgba(240,180,41,.22),transparent);
  filter:blur(5px); opacity:0; transform-origin:bottom center;
  animation:beamRise 2.5s ease forwards;
}
.intro-beam:nth-child(2){ left:12%; transform:rotate(-20deg); animation-delay:.3s; }
.intro-beam:nth-child(3){ left:28%; transform:rotate(-8deg); animation-delay:.5s; }
.intro-beam:nth-child(4){ left:50%; width:6px; animation-delay:.15s; background:linear-gradient(to top,rgba(240,180,41,.4),transparent); }
.intro-beam:nth-child(5){ left:72%; transform:rotate(8deg); animation-delay:.5s; }
.intro-beam:nth-child(6){ left:88%; transform:rotate(20deg); animation-delay:.35s; }
@keyframes beamRise { 0%{opacity:0;height:0;} 20%{opacity:1;} 100%{opacity:.5;height:78vh;} }

.intro-logo {
  position:relative; z-index:2;
  font-family:'Bebas Neue',sans-serif; font-size:clamp(60px,10vw,110px);
  letter-spacing:20px; color:transparent;
  -webkit-text-stroke:1px rgba(240,180,41,.2);
  opacity:0; transform:translateY(20px);
  transition:opacity 1.2s var(--ease), transform 1.2s var(--ease), letter-spacing 1.2s var(--ease);
}
.intro-logo.visible { opacity:1; transform:translateY(0); letter-spacing:20px; }
.intro-logo span { color:var(--gold); -webkit-text-stroke:none; text-shadow:0 0 50px rgba(240,180,41,.8), 0 0 120px rgba(240,180,41,.2); }

.intro-sub {
  position:relative; z-index:2;
  font-size:11px; letter-spacing:5px; text-transform:uppercase; color:var(--muted); margin-top:16px;
  opacity:0; transform:translateY(8px);
  transition:opacity .8s var(--ease) .4s, transform .8s var(--ease) .4s;
}
.intro-sub.visible { opacity:1; transform:translateY(0); }

.intro-progress { position:absolute; bottom:50px; left:50%; transform:translateX(-50%); width:240px; height:1px; background:rgba(255,255,255,.05); z-index:2; }
.intro-progress-bar { height:100%; width:0; background:linear-gradient(90deg,var(--gold2),var(--gold)); box-shadow:0 0 10px var(--gold); transition:width 2.8s cubic-bezier(.4,0,.2,1) .4s; }
.intro-progress-bar.go { width:100%; }

/* ── NAV ── */
nav {
  position:fixed; top:0; left:0; right:0; z-index:100;
  padding:24px 60px; display:flex; align-items:center; justify-content:space-between;
  background:linear-gradient(to bottom,rgba(5,5,7,.95),transparent);
  backdrop-filter:blur(10px);
  transition:background .4s, padding .4s;
}
.nav-links a{
  color:var(--white);
}
nav.scrolled { background:rgba(5,5,7,.97); padding:16px 60px; border-bottom:1px solid rgba(240,180,41,.06); }
/* Contenedor del logo */
.logo {
  display: inline-flex;
  align-items: center;
  padding: 8px 16px;
  border-radius: 6px;
  transition: all 0.3s ease;
  text-decoration: none;
}

.logo:hover {
  background-color: rgba(0, 0, 0, 0.05);
  transform: scale(1.02);
}

/* Imagen del logo */
.logo-img {
  height: 90px;
  width: auto;
  object-fit: contain;
  display: block;
}

/* Responsive */
@media (max-width: 768px) {
  .logo-img {
    height: 32px;
  }
}
.nav-links { display:flex; gap:40px; list-style:none; }
.nav-links a { color:var(--white); text-decoration:none; font-size:13px; letter-spacing:2px; text-transform:uppercase; transition:color .3s; }
.nav-links a:hover { color:var(--gold); }
.nav-cta { background:var(--gold); color:var(--black); padding:10px 26px; font-size:12px; font-weight:700; letter-spacing:2px; text-transform:uppercase; text-decoration:none; transition:background .3s,transform .2s; }
.nav-cta:hover { background:var(--gold2); transform:translateY(-1px); }

#navbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 2rem;
}

.logo {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
}

.logo-img {
  height: 60px;
  width: auto;
}

.logo-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.logo-main {
  font-size: 1.8rem;
  font-weight: 700;
  color: #ffffff;
  letter-spacing: 2px;
  line-height: 1;
}

.logo-sub {
  font-size: 0.9rem;
  font-weight: 500;
  color: #666;
  letter-spacing: 3px;
  line-height: 1;
}

.nav-links {
  display: flex;
  list-style: none;
  gap: 2rem;
}

.nav-links a {
  text-decoration: none;
  color: var(--white);
  font-weight: 500;
  transition: color 0.3s;
}

.nav-links a:hover {
  color: #00b4d8;
}

.nav-cta {
  padding: 0.6rem 1.5rem;
  background-color: #00b4d8;
  color: white;
  text-decoration: none;
  border-radius: 5px;
  font-weight: 600;
  transition: background-color 0.3s;
}

.nav-cta:hover {
  background-color: #0096c7;
}

/* ── HERO ── */
.hero {
  position:relative;
  height:100vh;
  height:100dvh; /* Fix real para móviles modernos */
  min-height:700px;
  display:flex;
  align-items:center;
  overflow:hidden;
  background:var(--black);
  opacity:0;
  transition:opacity 1.5s var(--ease);
}
.hero.ready { opacity:1; }

.hero-video-wrap { position:absolute; inset:0; z-index:0; overflow:hidden; }
.hero-video-wrap video {
  width:100%; height:100%; object-fit:cover;
  opacity:0; transition:opacity 2.5s ease;
  filter:brightness(.38) saturate(.85);
}
.hero-video-wrap video.loaded { opacity:1; }
.hero-video-overlay {
  position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(to right, rgba(5,5,7,.9) 35%, rgba(5,5,7,.2) 100%),
    linear-gradient(to top, rgba(5,5,7,.8) 0%, transparent 50%),
    linear-gradient(to bottom, rgba(5,5,7,.4) 0%, transparent 30%);
}

.hero-bg { position:absolute; inset:0; overflow:hidden; z-index:2; pointer-events:none; }
.grid-lines {
  position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(240,180,41,.03) 1px,transparent 1px),
    linear-gradient(90deg,rgba(240,180,41,.03) 1px,transparent 1px);
  background-size:80px 80px;
  animation:gridMove 20s linear infinite;
}
@keyframes gridMove {
  0%{ transform:perspective(800px) rotateX(10deg) translateY(0); }
  100%{ transform:perspective(800px) rotateX(10deg) translateY(80px); }
}

.sound-wave { position:absolute; right:0; top:0; bottom:0; width:50%; display:flex; align-items:center; justify-content:center; gap:5px; opacity:.12; }
.bar { width:3px; background:linear-gradient(to top,var(--gold2),var(--gold)); border-radius:2px; animation:wave 1.5s ease-in-out infinite; }
@keyframes wave { 0%,100%{height:20px;} 50%{height:120px;} }

.spotlight {
  position:absolute;
  width:min(700px, 120vw);
  height:min(700px, 120vw);
  border-radius:50%;
  background:radial-gradient(circle,rgba(240,180,41,.07) 0%,transparent 70%);
  top:50%;
  left:40%;
  transform:translate(-50%,-50%);
  transition:transform .08s ease-out;
}

#hero-canvas { position:absolute; inset:0; width:100%; height:100%; z-index:1; opacity:0; transition:opacity 2s ease; pointer-events:none; }
#hero-canvas.visible { opacity:1; }

.hero-grain {
  position:absolute; inset:0; z-index:2; pointer-events:none; opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:180px 180px; animation:grain .5s steps(2) infinite;
}
@keyframes grain { 0%{transform:translate(0,0);} 25%{transform:translate(-2px,2px);} 50%{transform:translate(2px,-2px);} 75%{transform:translate(-1px,-1px);} 100%{transform:translate(1px,1px);} }

/* Hero content */
.hero-content { position:relative; z-index:3; padding:0 60px; max-width:900px; }
.hero-tag {
  display:inline-flex; align-items:center; gap:10px; font-size:11px;
  letter-spacing:4px; text-transform:uppercase; color:var(--gold); margin-bottom:30px;
  opacity:0; transform:translateY(20px);
  transition:opacity .9s var(--ease) .5s, transform .9s var(--ease) .5s;
}
.hero-tag::before { content:''; display:block; width:30px; height:1px; background:var(--gold); }
.hero-tag.visible { opacity:1; transform:translateY(0); }

.hero-title {
  font-family:'Bebas Neue',sans-serif; font-size:clamp(80px,12vw,160px);
  line-height:.9; letter-spacing:2px; cursor:default;
  opacity:0; transform:translateY(30px);
  transition:opacity 1s var(--ease) .7s, transform 1s var(--ease) .7s;
}
.hero-title.visible { opacity:1; transform:translateY(0); }
.hero-title .gold { color:var(--gold); }
.hero-title .outline { -webkit-text-stroke:1px rgba(245,240,232,.25); color:transparent; }

/* Scramble / glitch state — JS añade la clase */
.hero-title.glitching {
  text-shadow:-4px 0 var(--gold2), 4px 0 rgba(240,180,41,.5);
  filter:brightness(1.4);
  transform:translate(-2px,1px) skewX(-1deg) !important;
  transition:none !important;
}

.hero-sub {
  margin-top:30px; font-size:16px; font-weight:300; color:var(--muted); max-width:480px; line-height:1.7;
  opacity:0; transform:translateY(20px);
  transition:opacity .9s var(--ease) .9s, transform .9s var(--ease) .9s;
}
.hero-sub.visible { opacity:1; transform:translateY(0); }

.hero-actions {
  margin-top:50px; display:flex; gap:20px; align-items:center;
  opacity:0; transform:translateY(20px);
  transition:opacity .9s var(--ease) 1.1s, transform .9s var(--ease) 1.1s;
}
.hero-actions.visible { opacity:1; transform:translateY(0); }

.btn-primary {
  background:var(--gold); color:var(--black); padding:16px 40px;
  font-family:'Syne',sans-serif; font-weight:700; font-size:13px;
  letter-spacing:2px; text-transform:uppercase; text-decoration:none;
  position:relative; overflow:hidden; transition:transform .2s; display:inline-block; border:none; cursor:pointer;
}
.btn-primary::after { content:''; position:absolute; inset:0; background:var(--gold2); transform:translateX(-101%); transition:transform .35s var(--ease); }
.btn-primary:hover::after { transform:translateX(0); }
.btn-primary:hover { transform:translateY(-2px); }
.btn-primary span { position:relative; z-index:1; }
.btn-ghost { color:var(--white); text-decoration:none; font-size:13px; letter-spacing:2px; text-transform:uppercase; display:flex; align-items:center; gap:10px; transition:color .3s; }
.btn-ghost::after { content:'→'; transition:transform .3s; }
.btn-ghost:hover { color:var(--gold); }
.btn-ghost:hover::after { transform:translateX(6px); }

.scroll-indicator {
  position:absolute; bottom:40px; left:60px;
  display:flex; align-items:center; gap:15px;
  font-size:11px; letter-spacing:3px; text-transform:uppercase; color:var(--muted);
  opacity:0; transition:opacity 1s 2.5s;
}
.scroll-indicator.visible { opacity:1; }
.scroll-line { width:1px; height:60px; background:linear-gradient(to bottom,transparent,var(--gold)); animation:scrollDown 2s ease-in-out infinite; }
@keyframes scrollDown { 0%{transform:scaleY(0);transform-origin:top;} 50%{transform:scaleY(1);transform-origin:top;} 51%{transform-origin:bottom;} 100%{transform:scaleY(0);transform-origin:bottom;} }

/* ── STATS BAR ── */
.stats-bar {
  background:var(--gray);
  border-top:1px solid rgba(240,180,41,.1); border-bottom:1px solid rgba(240,180,41,.1);
  padding:30px 60px; display:grid; grid-template-columns:repeat(4,1fr);
}
.stat-item { text-align:center; border-right:1px solid rgba(255,255,255,.05); padding:10px; }
.stat-item:last-child{ border-right:none; }
.stat-num { font-family:'Bebas Neue',sans-serif; font-size:52px; color:var(--gold); display:block; line-height:1; }
.stat-label { font-size:11px; letter-spacing:2px; text-transform:uppercase; color:var(--muted); margin-top:5px; }

/* ── MARQUEE ── */
.marquee-banner {
  overflow:hidden; padding:22px 0;
  border-top:1px solid rgba(255,255,255,.05); border-bottom:1px solid rgba(255,255,255,.05);
}
.marquee-track { display:flex; gap:60px; width:max-content; animation:marquee 18s linear infinite; }
.marquee-track:hover { animation-play-state:paused; }
.m-item { font-family:'Bebas Neue',sans-serif; font-size:clamp(36px,5vw,70px); white-space:nowrap; color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.12); }
.m-item.lit { color:var(--white); -webkit-text-stroke:none; }
@keyframes marquee { from{transform:translateX(0);} to{transform:translateX(-50%);} }

/* ── SECTION GLOBALS ── */
.section { padding:120px 60px; }
.section-label { font-size:11px; letter-spacing:4px; text-transform:uppercase; color:var(--gold); display:flex; align-items:center; gap:15px; margin-bottom:20px; }
.section-label::before { content:''; display:block; width:40px; height:1px; background:var(--gold); }
.reveal { opacity:0; transform:translateY(40px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.visible { opacity:1; transform:translateY(0); }

/* ── ABOUT ── */
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.big-title { font-family:'Syne',sans-serif; font-size:clamp(38px,5vw,64px); font-weight:800; line-height:1.1; margin-bottom:30px; }
.big-title em { font-style:normal; color:transparent; -webkit-text-stroke:1px var(--gold); }
.body-text { color:var(--muted); font-size:16px; line-height:1.8; margin-bottom:20px; }

.about-visual { position:relative; height:500px; }
.av-box { position:absolute; background:var(--gray); border:1px solid rgba(240,180,41,.08); }
.av-box.main { inset:0 0 60px 60px; background:linear-gradient(135deg,#0f0f18,#181825); display:flex; align-items:center; justify-content:center; overflow:hidden; }
.av-box.accent { bottom:0; left:0; width:180px; height:140px; background:var(--gold); display:flex; align-items:center; justify-content:center; flex-direction:column; }
.av-box.accent .n { font-family:'Bebas Neue',sans-serif; font-size:48px; color:var(--black); line-height:1; }
.av-box.accent .l { font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--black); opacity:.6; text-align:center; }
.waveform-svg { width:100%; opacity:.35; }

/* ── SERVICES ── */
.services-section {
  background:var(--deep); padding:120px 60px;
  position:relative; overflow:hidden;
}
.services-section::after {
  content:'SERVICIOS'; position:absolute; font-family:'Bebas Neue',sans-serif;
  font-size:280px; color:rgba(255,255,255,.015);
  top:50%; left:50%; transform:translate(-50%,-50%);
  white-space:nowrap; pointer-events:none; letter-spacing:10px;
}
.services-header { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:60px; }
.section-big { font-family:'Bebas Neue',sans-serif; font-size:clamp(50px,7vw,90px); line-height:.9; }

.services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; }
.service-card {
  background:var(--gray); padding:50px 38px;
  position:relative; overflow:hidden;
  transition:transform .4s var(--ease), background .4s;
  cursor:pointer;
}
.service-card::before {
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg,var(--gold),var(--gold2));
  transform:scaleX(0); transform-origin:left; transition:transform .45s var(--ease);
}
.service-card:hover::before { transform:scaleX(1); }
.service-card:hover { background:#1c1c26; transform:translateY(-5px) perspective(600px) rotateX(2deg); }
.svc-icon { font-size:38px; margin-bottom:24px; display:block; filter:grayscale(1) brightness(.55); transition:filter .4s; }
.service-card:hover .svc-icon { filter:none; }
.svc-num { position:absolute; top:28px; right:28px; font-family:'Bebas Neue',sans-serif; font-size:56px; color:rgba(255,255,255,.04); transition:color .4s; }
.service-card:hover .svc-num { color:rgba(240,180,41,.07); }
.svc-name { font-family:'Syne',sans-serif; font-size:20px; font-weight:700; margin-bottom:14px; transition:color .3s; }
.service-card:hover .svc-name { color:var(--gold); }
.svc-desc { color:var(--muted); font-size:14px; line-height:1.75; }
.svc-link { display:inline-flex; align-items:center; gap:8px; margin-top:24px; font-size:12px; letter-spacing:2px; text-transform:uppercase; color:var(--gold); text-decoration:none; opacity:0; transform:translateY(6px); transition:opacity .3s,transform .3s; }
.service-card:hover .svc-link { opacity:1; transform:translateY(0); }

/* Iconos SVG profesionales */
.svc-icon svg,
.feat-icon svg,
.ci-ico svg {
  display: block;
  color: var(--gold); /* o el color que uses para los iconos */
  transition: transform 0.3s ease, color 0.3s ease;
}

.service-card:hover .svc-icon svg {
  transform: scale(1.15) rotate(-5deg);
  color: #fff;
}

.ci-ico {
  display: flex;
  align-items: center;
  justify-content: center;
}


/* ── STREAMING ── */
.tech-section { padding:120px 60px; }
.tech-grid { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.tech-visual { position:relative; height:500px; display:flex; align-items:center; justify-content:center; }

.orbit { position:absolute; width:480px; height:480px; border:1px dashed rgba(240,180,41,.1); border-radius:50%; animation:spin 18s linear infinite; }
.orbit-dot { position:absolute; width:8px; height:8px; background:var(--gold); border-radius:50%; top:-4px; left:50%; transform:translateX(-50%); box-shadow:0 0 12px var(--gold); }
.orbit2 { position:absolute; width:360px; height:360px; border:1px dashed rgba(240,180,41,.06); border-radius:50%; animation:spin 12s linear infinite reverse; }
.orbit2-dot { position:absolute; width:5px; height:5px; background:var(--gold2); border-radius:50%; bottom:-3px; left:50%; transform:translateX(-50%); box-shadow:0 0 8px var(--gold2); }
@keyframes spin { from{transform:rotate(0deg);} to{transform:rotate(360deg);} }

.led-screen {
  width:360px; height:230px; background:#000;
  border:2px solid rgba(240,180,41,.25); position:relative; overflow:hidden;
  box-shadow:0 0 60px rgba(240,180,41,.08), 0 0 120px rgba(240,180,41,.03), inset 0 0 30px rgba(0,0,0,.8);
}
.led-inner { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,#06000f,#000d18); }
.led-text { font-family:'Bebas Neue',sans-serif; font-size:52px; color:var(--gold); text-align:center; animation:ledPulse 2.5s ease-in-out infinite; text-shadow:0 0 20px var(--gold),0 0 60px rgba(240,180,41,.4); }
.led-sub { font-family:'Syne',sans-serif; font-size:11px; color:rgba(240,180,41,.5); letter-spacing:5px; text-align:center; margin-top:4px; }
@keyframes ledPulse { 0%,100%{opacity:1;} 50%{opacity:.65;} }
.scanlines { position:absolute; inset:0; background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.08) 2px,rgba(0,0,0,.08) 4px); pointer-events:none; }
.live-dot { position:absolute; top:14px; right:14px; background:var(--accent); color:#fff; font-size:9px; font-weight:700; letter-spacing:2px; padding:3px 9px; animation:blink 1.4s infinite; }
@keyframes blink { 0%,100%{opacity:1;} 50%{opacity:.3;} }
.sig-bars { position:absolute; bottom:13px; left:14px; display:flex; gap:3px; align-items:flex-end; }
.sb { width:4px; background:var(--gold); border-radius:1px; }

.feat-list { list-style:none; margin-top:40px; }
.feat-list li { display:flex; align-items:flex-start; gap:18px; padding:18px 0; border-bottom:1px solid rgba(255,255,255,.05); }
.feat-icon { width:40px; height:40px; background:rgba(240,180,41,.08); display:flex; align-items:center; justify-content:center; font-size:18px; flex-shrink:0; }
.feat-t { font-family:'Syne',sans-serif; font-weight:700; margin-bottom:4px; }
.feat-d { color:var(--muted); font-size:14px; }

/* ── EVENTS MARQUEE ── */
.events-section { background: var(--deep); padding: 120px 60px; }
.events-reel { overflow: hidden; margin: 60px -60px 0; }
.events-track { display: flex; gap: 16px; width: max-content; animation: marquee 28s linear infinite; }

.event-card {
  width: 300px; 
  height: 200px; 
  flex-shrink: 0; 
  position: relative; 
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .05); 
  cursor: pointer;
  transition: border-color .3s, transform .3s;
}

.event-card:hover { 
  border-color: rgba(240, 180, 41, .3); 
  transform: scale(1.02); 
}

/* --- AJUSTE DE IMAGEN --- */
.event-image {
  position: absolute;
  inset: 0; /* Equivalente a top:0, right:0, bottom:0, left:0 */
  width: 100%;
  height: 100%;
  object-fit: cover; /* Clave: recorta la imagen para llenar el contenedor sin deformar */
  object-position: center;
  transition: transform .5s var(--ease);
  z-index: 1; /* Nivel base */
}

/* Efecto Zoom al hover */
.event-card:hover .event-image { 
  transform: scale(1.08); 
}

/* --- CAPAS SUPERIORES --- */
.event-overlay { 
  position: absolute; 
  inset: 0; 
  background: linear-gradient(to top, rgba(5,5,7,.9) 0%, rgba(5,5,7,.2) 60%, transparent 100%); 
  z-index: 2; /* Sobre la imagen */
  pointer-events: none; /* Permite clicks a través del overlay si fuera necesario */
}

.event-label { 
  position: absolute; 
  bottom: 18px; 
  left: 18px; 
  font-family: 'Bebas Neue', sans-serif; 
  font-size: 18px; 
  letter-spacing: 2px; 
  color: var(--white); 
  z-index: 3; /* Sobre el overlay */
}

.event-year { 
  position: absolute; 
  top: 14px; 
  right: 14px; 
  font-size: 10px; 
  letter-spacing: 2px; 
  text-transform: uppercase; 
  color: rgba(240, 180, 41, .6); 
  z-index: 3; /* Sobre el overlay */
}
/* ── CONTACT ── */
.contact-section { padding:120px 60px; position:relative; overflow:hidden; }
.contact-section::after {
  content:''; position:absolute; width:700px; height:700px; border-radius:50%;
  background:radial-gradient(circle,rgba(240,180,41,.04),transparent 70%);
  right:-250px; bottom:-250px; pointer-events:none;
}
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; }
.contact-title { font-family:'Bebas Neue',sans-serif; font-size:clamp(60px,8vw,120px); line-height:.9; margin-bottom:40px; }
.contact-title span { color:var(--gold); }
.contact-info { list-style:none; }
.contact-info li { display:flex; align-items:center; gap:14px; padding:16px 0; border-bottom:1px solid rgba(255,255,255,.05); font-size:15px; color:var(--muted); transition:color .3s; }
.contact-info li:hover { color:var(--white); }
.ci-ico { width:36px; height:36px; background:rgba(240,180,41,.08); display:flex; align-items:center; justify-content:center; font-size:15px; flex-shrink:0; }
.form-group { margin-bottom:18px; }
.form-group label { display:block; font-size:11px; letter-spacing:2px; text-transform:uppercase; color:var(--muted); margin-bottom:8px; }
.form-group input, .form-group textarea {
  width:100%; background:var(--gray); border:1px solid rgba(255,255,255,.07);
  color:var(--white); padding:14px 18px; font-family:'DM Sans',sans-serif; font-size:15px;
  outline:none; transition:border-color .3s, background .3s;
}
.form-group input:focus, .form-group textarea:focus { border-color:var(--gold); background:rgba(240,180,41,.03); }
.form-group textarea { height:120px; resize:none; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }

/* ── FOOTER ── */
footer { background:var(--deep); border-top:1px solid rgba(255,255,255,.05); padding:40px 60px; display:flex; align-items:center; justify-content:space-between; }
.footer-logo { font-family:'Bebas Neue',sans-serif; font-size:22px; letter-spacing:4px; }
.footer-copy { color:var(--muted); font-size:13px; }
.footer-social { 
  display: flex; 
  gap: 12px; 
}

.soc { 
  width: 36px; 
  height: 36px; 
  border: 1px solid rgba(255,255,255,.1); 
  display: flex; 
  align-items: center; 
  justify-content: center; 
  color: var(--muted); 
  text-decoration: none; 
  font-size: 13px; 
  font-weight: 700; 
  transition: border-color .3s, color .3s; 
  /* Asegura que el SVG no se salga del contenedor */
  line-height: 0; 
}

.soc:hover { 
  border-color: var(--gold); 
  color: var(--gold); 
}

/* NUEVO: Estilos específicos para los SVGs dentro de .soc */
.soc svg {
  width: 18px;  /* Tamaño visual del icono */
  height: 18px;
  fill: currentColor; /* Hereda el color del enlace (muted o gold) */
  display: block;
}

.divider { height:1px; background:linear-gradient(90deg,transparent,rgba(240,180,41,.25),transparent); margin:0 60px; }

@media(max-width:768px){

  .nav-links{ 
    display:none; 
  }

  .hero-content{ 
    padding:0 24px; 
  }

  #intro-overlay {
    display: none !important;
  }

  .section,
  .services-section,
  .tech-section,
  .events-section,
  .contact-section{ 
    padding:80px 24px; 
  }

  .stats-bar{ 
    grid-template-columns:repeat(2,1fr); 
    padding:20px 24px; 
  }

  .about-grid,
  .tech-grid,
  .contact-grid{ 
    grid-template-columns:1fr; 
  }

  .services-grid{ 
    grid-template-columns:1fr; 
  }

  .form-row{ 
    grid-template-columns:1fr; 
  }

  .events-reel{
    margin:60px -24px 0;
  }

  footer{ 
    flex-direction:column; 
    gap:20px; 
    text-align:center; 
  }

  .divider{ 
    margin:0 24px; 
  }
}


/* Móviles pequeños reales */
@media(max-width:480px){

  /* Hero altura correcta en móviles compactos */
  .hero{
    min-height:unset;
  }

  #intro-overlay {
    display: none !important;
  }

  /* Decoración pesada desactivada */
  .orbit,
  .orbit2{
    display:none;
  }

}