@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600;800&display=swap');

:root{
  --bg:#0b0f17;
  --card:#121826;
  --ink:#e8eefc;
  --muted:#9fb0d4;
  --accent:#20cffc;
  --accent-2:#ac4bfc;
  --brand:#ff2d55;
  --ring: rgba(32,207,252,0.3);
}

*{box-sizing:border-box}
html,body{
  margin:0;
  padding:0;
  background:var(--bg);
  color:var(--ink);
  font-family:Montserrat,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  min-height:100vh;
  display:flex;
  flex-direction:column;
}
img{max-width:100%;display:block}

/* === HEADER === */
.topbar{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.06);
  background: linear-gradient(180deg, rgba(255,255,255,0.02), transparent);
  position:sticky;top:0;backdrop-filter: blur(6px);z-index:10;
}
.brand{display:flex;gap:12px;align-items:center}
.logo{width:44px;height:44px;object-fit:contain;filter:drop-shadow(0 2px 6px rgba(0,0,0,.4))}
.brand-text h1{font-size:18px;margin:0;font-weight:800;letter-spacing:.3px}
.brand-text span{font-size:12px;color:var(--muted)}

.socials{display:flex;align-items:center;gap:12px}
.icon{color:var(--ink);opacity:.8;transition:.2s}
.icon:hover{opacity:1;transform:translateY(-1px)}
.install-btn{
  display:none;padding:8px 12px;border:1px solid rgba(255,255,255,.2);
  background:transparent;color:var(--ink);border-radius:12px;cursor:pointer
}
.install-btn.show{display:inline-block}

/* === MAIN === */
.wrap{
  flex:1; /* ocupa todo el espacio restante */
  display:flex;
  flex-direction:column;
  justify-content:center; /* centra verticalmente todo el contenido */
  align-items:center;
  max-width:1500px;
  margin:0 auto;
  padding:24px 16px;
}

.cards{
  display:grid;
  grid-template-columns:1fr;
  gap:20px;
  width:100%;
}
@media(min-width:900px){
  .cards{grid-template-columns:repeat(3,1fr);}
}

/* === Tarjetas === */
.card{
  background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.00));
  border:1px solid rgba(255,255,255,.07);
  border-radius:18px;
  padding:20px;
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
  position:relative;
  isolation:isolate;
  transition: transform .25s ease, box-shadow .25s ease;
  display:flex;
  flex-direction:column;
  justify-content:flex-start; /* título arriba */
}
.card:hover{
  transform: translateY(-4px);
  box-shadow: 0 10px 35px rgba(0,0,0,.35);
}
.card::after{
  content:"";
  position:absolute;inset:-1px;border-radius:18px;
  background: radial-gradient(800px 200px at 0% 0%, rgba(32,207,252,0.09), transparent 40%),
              radial-gradient(800px 200px at 100% 0%, rgba(172,75,252,0.06), transparent 40%);
  z-index:-1;
}

.card-head{
  display:flex;
  gap:12px;
  align-items:center;
  justify-content:center;
  margin-bottom:16px;
  text-align:center;
}
.station-logo{width:70px;height:70px;object-fit:contain}
.card h2{margin:0 0 4px 0;font-size:20px}
.card p{margin:0;color:var(--muted);font-size:14px;text-align:center}

/* === Cuerpo centrado verticalmente === */
.card-body{
  flex:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:12px;
  padding:10px 0;
}

.card-body audio,
.card-body video{
  width:100%;
  max-width:380px;
  outline:none;
  border-radius:12px;
  background:#0f141f;
}
.video-wrap{
  aspect-ratio:16/9;
  background:#0f141f;
  border-radius:12px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.08);
}

/* === Botones === */
.controls{
  display:flex;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
}
.btn{
  display:inline-block;
  padding:12px 24px;
  border:none;
  border-radius:10px;
  cursor:pointer;
  font-weight:600;
  font-size:15px;
  color:#fff;
  background:linear-gradient(135deg, var(--brand), var(--accent));
  box-shadow:0 4px 12px rgba(0,0,0,0.3);
  transition:transform 0.15s ease, box-shadow 0.15s ease;
}
.btn:hover{
  transform:scale(1.08);
  box-shadow:0 6px 18px rgba(0,0,0,0.35);
}
.btn.ghost{
  background:transparent;
  color:var(--accent);
  border:2px solid var(--accent);
}
.btn.ghost:hover{
  background:var(--accent);
  color:#000;
  transform:scale(1.05);
}

/* === Efecto pulse === */
@keyframes pulse {
  0% { box-shadow:0 0 0 0 rgba(32,207,252,0.4); }
  70% { box-shadow:0 0 0 10px rgba(32,207,252,0); }
  100% { box-shadow:0 0 0 0 rgba(32,207,252,0); }
}
.btn.primary { animation: pulse 2.5s infinite; }

/* === Estadísticas === */
.stats{
  display:flex;align-items:center;justify-content:space-between;margin:18px 0
}
.stat-box{
  padding:12px 14px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:12px;
  background:rgba(255,255,255,.02);
}
.stat-label{display:block;color:var(--muted);font-size:12px}
.stat-value{font-size:20px;letter-spacing:.5px}

/* === Footer fijo === */
.footer{
  text-align:center;
  margin-top:auto;
  padding:20px 0;
  color:var(--muted);
  border-top:1px solid rgba(255,255,255,.05);
}

/* === PWA, WhatsApp, Marquesina, Popup === */
.install-prompt{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:50}
.install-prompt.hidden{display:none}
.prompt-card{width:min(92vw,420px);background:var(--card);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:16px;box-shadow:0 20px 60px rgba(0,0,0,.5);}
.prompt-card h3{margin:0 0 6px 0}
.prompt-card p{margin:0 0 12px 0;color:var(--muted)}
.prompt-card .actions{display:flex;gap:10px;justify-content:flex-end}

.whatsapp-float{position:fixed;bottom:20px;right:20px;width:60px;height:60px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(0,0,0,.4);transition:.2s;z-index:999;}
.whatsapp-float:hover{transform:scale(1.1)}
.whatsapp-float img{width:36px;height:36px}

.marquesina{overflow:hidden;white-space:nowrap;background:#111b2c;color:#20cffc;font-weight:600;font-size:15px;padding:8px 0;text-transform:none;border-bottom:1px solid rgba(255,255,255,.08);}
.scroll-text{display:inline-block;padding-left:100%;animation:scroll 25s linear infinite;}
@keyframes scroll{0%{transform:translateX(0)}100%{transform:translateX(-100%)}}
.marquesina:hover .scroll-text{animation-play-state:paused}

.popup-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease;}
.popup-box{position:relative;background:#000;border-radius:10px;box-shadow:0 0 20px rgba(0,0,0,.6);overflow:hidden;max-width:90%;max-height:90%;}
.popup-img{display:block;width:100%;height:auto;max-height:90vh;object-fit:contain}
.popup-close{position:absolute;top:8px;right:12px;font-size:28px;color:#fff;cursor:pointer;background:rgba(0,0,0,.6);border-radius:50%;padding:0 10px;transition:.2s;}
.popup-close:hover{background:rgba(255,255,255,.2)}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
