/* =========================================
   FUTBOLENVIVO.CL — estilos compartidos
   Lima  #ccff00 -> VER
   Ámbar #ffb020 -> APOSTAR
   Ambos como ACENTO sobre oscuro, nunca como bloque sólido grande.
   ========================================= */

html, body { margin: 0; padding: 0; box-sizing: border-box; }
*, *:before, *::after { box-sizing: inherit; }

:root {
  --ver: #ccff00;
  --ver-hover: #b3e600;
  --ver-tint: #12140c;
  --ver-soft: rgba(204, 255, 0, 0.08);

  --apostar: #ffb020;
  --apostar-hover: #e69c14;
  --apostar-tint: #3d2f14;
  --apostar-dim: #ffc655;

  --l0: #0a0a0a;
  --l1: #1c1c1c;
  --l2: #242424;
  --l3: #383838;

  --line: #383838;
  --line-2: #484848;

  --txt: #f8fafc;
  --txt-2: #b8b8b8;
  --txt-3: #a8a8a8;
  --txt-4: #8a8a8a;
}

body {
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  background-color: var(--l0);
  color: var(--txt);
}

/* ---------- HEADER ---------- */
header { background-color: #131416; border-bottom: 1px solid var(--line); width: 100%; }
.header-container { max-width: 1400px; margin: 0 auto; padding: 15px 20px; display: flex; justify-content: space-between; align-items: center; }
.site-logo { height: 50px; cursor: pointer; user-select: none; object-fit: contain; }
.logo-link { display: flex; align-items: center; text-decoration: none; }

/* ---------- NAV ---------- */
nav.main-menu { background-color: #131416; border-bottom: 1px solid var(--line); width: 100%; }
.nav-container { max-width: 1400px; margin: 0 auto; padding: 12px 20px; display: flex; gap: 15px; align-items: center; flex-wrap: wrap; }
.nav-links { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; justify-content: flex-start; flex-grow: 1; }
nav.main-menu a { display: flex; align-items: center; gap: 8px; color: var(--txt-2); text-decoration: none; font-weight: 600; font-size: 14px; padding: 8px 14px; border-radius: 6px; transition: 0.2s; cursor: pointer; border: 1px solid transparent; }
nav.main-menu a:hover { background-color: var(--l2); color: var(--txt); }
.nav-links a.active { background-color: var(--ver-soft); color: var(--ver); }

.nav-icon-svg { width: 18px; height: 18px; display: flex; align-items: center; justify-content: center; stroke: currentColor; stroke-width: 2; fill: none; color: inherit; }
.nav-icon-svg svg { width: 100%; height: 100%; }

nav.main-menu a.promo-link { background: transparent; color: #29a9eb; border: 1px solid #29a9eb; margin-left: auto; font-weight: 700; justify-content: center; letter-spacing: 0.3px; }
nav.main-menu a.promo-link:hover { background-color: #29a9eb; color: #fff; }

/* ---------- LAYOUT ---------- */
.container { display: flex; flex-wrap: wrap; padding: 25px 20px; gap: 25px; max-width: 1400px; margin: 0 auto; }
.main-content { flex: 3; min-width: 60%; display: flex; flex-direction: column; gap: 22px; }
.content-box { background-color: var(--l1); padding: 26px; border-radius: 12px; border: 1px solid var(--line); }
@keyframes fadeIn { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }

.sidebar { flex: 1; min-width: 300px; display: flex; flex-direction: column; gap: 22px; }
.highlight-media-box { background-color: var(--l1); padding: 14px; border-radius: 12px; border: 1px solid var(--line); display: flex; flex-direction: column; align-items: center; }
.responsive-media { width: 100%; max-width: 500px; aspect-ratio: 1/1; object-fit: cover; border-radius: 8px; background-color: var(--l0); transition: 0.3s; margin: 0 auto; }.responsive-media:hover { opacity: 0.9; }

/* ---------- REPRODUCTOR ---------- */
.video-wrapper { background-color: var(--l1); border-radius: 12px; border: 1px solid var(--line); overflow: hidden; }
.player-header { background-color: var(--l2); padding: 10px 18px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--l0); gap: 12px; }
.ph-left { display: flex; align-items: center; gap: 9px; min-width: 0; }
.ph-live { display: flex; align-items: center; gap: 6px; color: var(--ver); font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.8px; white-space: nowrap; }
.ph-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--ver); animation: pulse 2s infinite; }
@keyframes pulse { 0%,100% { opacity: 1 } 50% { opacity: 0.3 } }
.btn-reload { background: transparent; color: var(--txt-2); border: 1px solid var(--l3); padding: 5px 12px; border-radius: 6px; cursor: pointer; font-size: 12px; font-weight: 600; transition: 0.2s; white-space: nowrap; }
.btn-reload:hover { background-color: var(--l3); color: var(--txt); }

.video-container { width: 100%; padding-top: 56.25%; position: relative; background-color: #000; overflow: hidden; }
.video-container video, .video-container iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; }

/* Capa fantasma: los clics pasan de largo al video */
.ghost-layer { position: absolute; inset: 0; pointer-events: none; z-index: 2; }

/* ---------- ANUNCIO PRE-ROLL ---------- */
.ad-overlay {
  position: absolute;
  inset: 0;
  background: #000;
  z-index: 20;
  display: none;
}
.ad-overlay.on { display: block; }
.ad-overlay > a { display: block; width: 100%; height: 100%; }
.ad-overlay img { width: 100%; height: 100%; object-fit: cover; display: block; }

.ad-controls {
  position: absolute;
  bottom: 14px;
  right: 14px;
  display: flex;
  align-items: center;
  gap: 9px;
  z-index: 2;
}
.ad-timer {
  background: rgba(0, 0, 0, 0.78);
  color: #fff;
  padding: 9px 14px;
  border-radius: 6px;
  font-weight: 700;
  font-size: 14px;
  font-variant-numeric: tabular-nums;
  min-width: 40px;
  text-align: center;
}
.ad-skip {
  display: none;
  background: rgba(0, 0, 0, 0.78);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.35);
  padding: 10px 18px;
  border-radius: 6px;
  font-weight: 700;
  font-size: 13px;
  cursor: pointer;
  transition: 0.15s;
  white-space: nowrap;
}
.ad-skip:hover { background: #fff; color: #000; border-color: #fff; }
.ad-skip.on { display: block; }

/* ---------- AVISO ADBLOCK ---------- */
.adblock-bar {
  display: none;
  align-items: center;
  gap: 12px;
  background: var(--apostar-tint);
  border: 1px solid var(--apostar);
  border-radius: 10px;
  padding: 13px 16px;
  color: var(--apostar);
  font-size: 13px;
  line-height: 1.5;
}
.adblock-bar.on { display: flex; }
.adblock-bar .ab-icon { flex-shrink: 0; font-size: 17px; }
.adblock-bar .ab-text { flex: 1; min-width: 0; }
.adblock-bar .ab-close {
  flex-shrink: 0;
  background: transparent;
  border: 1px solid var(--apostar);
  color: var(--apostar);
  width: 26px;
  height: 26px;
  border-radius: 5px;
  cursor: pointer;
  font-size: 14px;
  line-height: 1;
  transition: 0.15s;
}
.adblock-bar .ab-close:hover { background: var(--apostar); color: #000; }

.info-ticker-wrap { width: 100%; background-color: var(--l1); padding: 8px 0; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; white-space: nowrap; }
.info-ticker { display: inline-block; animation: ticker 30s linear infinite; font-size: 12px; color: var(--txt-2); font-weight: 500; }
@keyframes ticker { 0% { transform: translate3d(100%,0,0); } 100% { transform: translate3d(-100%,0,0); } }

/* ---------- SEÑALES ---------- */
.live-schedule { background-color: var(--l1); border-radius: 12px; border: 1px solid var(--line); overflow: hidden; }
.schedule-row { display: flex; align-items: center; justify-content: space-between; padding: 14px 18px; cursor: pointer; border-left: 3px solid var(--ver); background: var(--ver-tint); }
.schedule-row:hover { background: #171a10; }
.sr-left { display: flex; align-items: center; gap: 11px; }
.time-badge { color: var(--ver); border: 1px solid var(--ver); background: transparent; font-weight: 800; padding: 3px 9px; border-radius: 4px; font-size: 10px; letter-spacing: 0.5px; }
.match-info { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--txt); font-weight: 700; letter-spacing: 0.5px; }
.toggle-icon { font-size: 11px; color: var(--txt-3); transition: transform 0.3s ease; }
.match-container.open .toggle-icon { transform: rotate(180deg); }

.accordion-content { display: none; background-color: var(--l0); border-top: 1px solid var(--line); }
.match-container.open .accordion-content { display: block; animation: fadeIn 0.3s ease-out; }
.signal-item { padding: 13px 18px 13px 34px; color: var(--txt-2); border-bottom: 1px solid var(--l1); cursor: pointer; transition: 0.15s; display: flex; align-items: center; gap: 11px; font-size: 13.5px; font-weight: 500; }
.signal-item:last-child { border-bottom: none; }
.signal-item:hover { background-color: var(--l1); color: var(--txt); }
.signal-item .si-arrow { color: var(--txt-4); font-size: 10px; transition: 0.15s; }
.signal-item:hover .si-arrow { color: var(--ver); }
.signal-item.playing { color: var(--ver); background-color: var(--ver-tint); }
.signal-item.playing .si-arrow { color: var(--ver); }

/* ---------- INSTAGRAM ---------- */
.btn-instagram { display: flex; align-items: center; justify-content: center; background: linear-gradient(45deg,#f09433 0%,#e6683c 25%,#dc2743 50%,#cc2366 75%,#bc1888 100%); color: #fff; text-decoration: none; font-weight: 700; font-size: 14px; padding: 12px 16px; border-radius: 8px; width: 100%; transition: 0.3s; }
.btn-instagram:hover { transform: translateY(-2px); }
.insta-desktop { display: flex; }
.insta-mobile { display: none; }
.insta-icon-wrap { display: flex; align-items: center; justify-content: center; width: 24px; height: 24px; margin-right: 8px; }

/* ---------- CUOTAS (index) ---------- */
.highlight-box { background-color: var(--l1); padding: 16px 18px; border-radius: 12px; border: 1px solid var(--line); }
.highlight-box h2 { margin: 0 0 13px; font-size: 11px; color: var(--txt-3); font-weight: 700; text-transform: uppercase; letter-spacing: 1.2px; }
.flash-deals-container { display: flex; gap: 10px; flex-wrap: wrap; }
.flash-deal-card { flex: 1; min-width: 155px; background: var(--l0); padding: 13px; border-radius: 10px; text-align: center; border: 1px solid var(--line); transition: 0.2s; }
.flash-deal-card:hover { border-color: var(--apostar); }
.flash-badge { color: var(--apostar-dim); font-size: 9px; font-weight: 700; letter-spacing: 1px; display: block; margin-bottom: 7px; text-transform: uppercase; }
.flash-odd { font-size: 25px; font-weight: 800; color: var(--apostar); margin: 3px 0 6px; line-height: 1; font-variant-numeric: tabular-nums; }
.flash-text { color: var(--txt-2); font-size: 11px; margin-bottom: 11px; font-weight: 500; min-height: 28px; display: flex; align-items: center; justify-content: center; line-height: 1.4; }
.action-btn { display: block; border: 1px solid var(--apostar); background: transparent; color: var(--apostar); border-radius: 6px; font-weight: 700; padding: 8px; font-size: 11px; text-decoration: none; transition: 0.2s; text-transform: uppercase; letter-spacing: 0.5px; }
.action-btn:hover { background-color: var(--apostar); color: #000; }

/* ---------- ESCUDOS ---------- */
.team-badge { width: 21px; height: 21px; object-fit: contain; flex-shrink: 0; vertical-align: middle; }
.team-badge.lg { width: 24px; height: 24px; }
.teams-row { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.teams-row .vs { color: var(--txt-4); font-size: 10px; font-weight: 600; padding: 0 1px; }
.teams-tbd { font-style: italic; color: var(--txt-2); font-weight: 600; }

/* ---------- PRÓXIMOS PARTIDOS ---------- */
.next-box { background-color: var(--l1); border-radius: 12px; border: 1px solid var(--line); overflow: hidden; }
.next-head { display: flex; align-items: center; justify-content: space-between; padding: 14px 18px; border-bottom: 1px solid var(--line); gap: 12px; }
.next-head h2 { margin: 0; font-size: 11px; color: var(--txt-3); font-weight: 700; text-transform: uppercase; letter-spacing: 1.2px; display: flex; align-items: center; gap: 8px; }
.next-head h2 .nav-icon-svg { width: 14px; height: 14px; }
.next-head a { color: var(--ver); font-size: 11px; font-weight: 700; text-decoration: none; text-transform: uppercase; white-space: nowrap; letter-spacing: 0.5px; }
.next-head a:hover { text-decoration: underline; }

.next-item { display: flex; align-items: center; gap: 13px; padding: 13px 18px; border-bottom: 1px solid var(--line); transition: 0.15s; }
.next-item:last-child { border-bottom: none; }
.next-item:hover { background: var(--l2); }
.next-time { display: flex; flex-direction: column; align-items: center; gap: 2px; min-width: 60px; flex-shrink: 0; }
.next-time .nt-day { font-size: 10px; font-weight: 700; color: var(--txt-3); text-transform: uppercase; letter-spacing: 0.5px; white-space: nowrap; }
.next-time .nt-hour { font-size: 15px; font-weight: 800; color: var(--txt); font-variant-numeric: tabular-nums; line-height: 1; }
.next-divider { width: 1px; height: 30px; background: var(--l3); flex-shrink: 0; }
.next-mid { flex: 1; min-width: 0; }
.next-teams { font-size: 13.5px; font-weight: 700; color: #fff; }
.next-meta { font-size: 11px; color: var(--txt-3); margin-top: 4px; }

/* ---------- CALENDARIO ---------- */
.calendar-day-header {
  background: var(--ver-tint);
  border-left: 3px solid var(--ver);
  border-radius: 0;
  color: var(--ver);
  padding: 12px 16px;
  font-weight: 800;
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-top: 30px;
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
}
.calendar-day-header:first-of-type { margin-top: 0; }
.cd-year { color: var(--txt-3); font-size: 12px; font-weight: 600; text-transform: none; letter-spacing: 0; }

.calendar-tournament-header {
  background: transparent;
  border: none;
  color: var(--txt-3);
  padding: 16px 4px 9px;
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1.2px;
  display: flex;
  align-items: center;
  gap: 7px;
}
.calendar-tournament-header .nav-icon-svg { width: 14px; height: 14px; color: var(--txt-3); }

.calendar-match {
  background: var(--l1);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 13px 15px;
  margin-bottom: 7px;
  display: flex;
  align-items: center;
  gap: 13px;
  flex-wrap: wrap;
  transition: border-color 0.2s, background 0.2s;
}
.calendar-match:hover { border-color: var(--line-2); background: var(--l2); }

.cal-time {
  background: transparent;
  border: none;
  color: var(--txt);
  font-weight: 800;
  font-size: 15px;
  font-variant-numeric: tabular-nums;
  min-width: 46px;
  text-align: center;
  padding: 0;
  flex-shrink: 0;
}
.cal-divider { width: 1px; height: 30px; background: var(--l3); flex-shrink: 0; }

.cal-details { flex: 1; min-width: 190px; }
.cal-teams { font-size: 14px; font-weight: 700; color: #fff; }
.cal-channels { font-size: 11px; color: var(--txt-3); margin-top: 4px; }

.cal-action { margin-left: auto; flex-shrink: 0; }
.cal-bet-btn {
  border: 1px solid var(--apostar);
  background: transparent;
  color: var(--apostar);
  text-decoration: none;
  padding: 8px 14px;
  border-radius: 6px;
  font-weight: 700;
  font-size: 10.5px;
  transition: 0.2s;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  display: inline-block;
  white-space: nowrap;
}
.cal-bet-btn:hover { background-color: var(--apostar); color: #000; }

.cal-watch-btn {
  border: 1px solid var(--ver);
  background: transparent;
  color: var(--ver);
  text-decoration: none;
  padding: 8px 14px;
  border-radius: 6px;
  font-weight: 700;
  font-size: 10.5px;
  transition: 0.2s;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  display: inline-block;
  white-space: nowrap;
}
.cal-watch-btn:hover { background-color: var(--ver); color: #000; }

/* ---------- PRONÓSTICOS ---------- */
.pronostico-card {
  background: var(--l1);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 0;
  margin-bottom: 12px;
  overflow: hidden;
  transition: border-color 0.2s;
}
.pronostico-card:hover { border-color: var(--line-2); }

.pro-top { padding: 14px 16px 13px; border-bottom: 1px solid var(--line); }
.pro-torneo { color: var(--txt-3); font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 1.2px; margin-bottom: 8px; }
.pro-match { font-size: 15px; font-weight: 700; color: #fff; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }

.pro-row { display: flex; align-items: stretch; border-bottom: 1px solid var(--line); }
.pro-mercado { flex: 1; padding: 13px 16px; min-width: 0; }
.pro-label { color: var(--txt-3); font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 5px; }
.pro-bet-type { color: var(--txt); font-weight: 700; font-size: 14px; }

.pro-vdiv { width: 1px; background: var(--line); flex-shrink: 0; }

.pro-cuota-box {
  padding: 13px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: var(--apostar-tint);
  flex-shrink: 0;
  min-width: 92px;
}
.pro-cuota-label { color: var(--apostar-dim); font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 3px; }
.pro-odd { color: var(--apostar); font-weight: 800; font-size: 22px; font-variant-numeric: tabular-nums; line-height: 1; }

.pro-analysis {
  padding: 14px 16px;
  color: var(--txt-2);
  font-size: 13px;
  line-height: 1.65;
  background: transparent;
  border: none;
}
.pro-footer { padding: 0 16px 16px; }
.pro-cta {
  display: block;
  text-align: center;
  border: 1px solid var(--apostar);
  background: transparent;
  color: var(--apostar);
  padding: 11px;
  border-radius: 6px;
  font-weight: 700;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  text-decoration: none;
  transition: 0.2s;
}
.pro-cta:hover { background: var(--apostar); color: #000; }
.pro-cta.ver { border-color: var(--ver); color: var(--ver); }
.pro-cta.ver:hover { background: var(--ver); color: #000; }

.legal-note { margin-top: 16px; padding: 14px 16px; background: var(--l0); border: 1px solid var(--line); border-radius: 8px; color: var(--txt-3); font-size: 12px; line-height: 1.6; }

/* ---------- SEO ---------- */
.seo-container { max-width: 1400px; margin: 20px auto 40px; padding: 0 20px; }
.seo-btn { background-color: var(--l1); color: var(--txt-2); border: 1px solid var(--line); width: 100%; padding: 15px; border-radius: 8px; font-weight: 600; text-align: left; cursor: pointer; font-size: 13px; transition: 0.2s; }
.seo-btn:hover { background-color: var(--l2); color: var(--txt); }
.seo-content { display: none; background-color: var(--l0); padding: 24px; border: 1px solid var(--line); border-top: none; border-radius: 0 0 8px 8px; color: var(--txt-2); font-size: 12.5px; line-height: 1.7; }
.seo-content.open { display: block; animation: fadeIn 0.3s ease; }
.seo-content h3 { color: #fff; font-size: 14px; margin: 0 0 8px; }
.seo-content p { margin: 0 0 12px; }
.seo-content ul { margin: 0 0 15px; padding-left: 20px; }

/* ---------- LOADER ---------- */
.loader-container { text-align: center; padding: 36px; color: var(--txt-3); font-weight: 500; font-size: 13px; }
.spinner { border: 3px solid var(--l3); width: 32px; height: 32px; border-radius: 50%; border-left-color: var(--ver); animation: spin 1s linear infinite; margin: 0 auto 14px auto; }
@keyframes spin { to { transform: rotate(360deg); } }
.error-box { color: #ef4444; padding: 20px; text-align: center; font-size: 13px; }

/* ---------- PÁGINA INTERNA ---------- */
.page-head { margin-bottom: 24px; }
.page-head h1 { color: #fff; margin: 0 0 6px; font-size: 22px; font-weight: 800; letter-spacing: -0.02em; }
.page-head p { color: var(--txt-3); margin: 0; font-size: 13.5px; }

.foot-upd { max-width: 1400px; margin: 0 auto 30px; padding: 0 20px; color: var(--txt-4); font-size: 11px; text-align: right; }

/* =========================================
   MÓVIL
   ========================================= */
@media (max-width: 768px) {
  .header-container { flex-direction: column; text-align: center; gap: 12px; padding: 15px; }
  .site-logo { height: 40px; }
  .nav-container { padding: 12px; justify-content: center; }
  nav.main-menu a.promo-link { width: 100%; text-align: center; padding: 12px; font-size: 13px; }

  .player-header { padding: 8px 12px; }
  .ph-live { font-size: 10px; }
  #current-signal-title { font-size: 10px !important; }
  .btn-reload { padding: 4px 9px; font-size: 11px; }

  .adblock-bar { font-size: 12px; padding: 11px 13px; gap: 9px; }
  .ad-controls { bottom: 10px; right: 10px; gap: 7px; }
  .ad-skip { padding: 9px 14px; font-size: 12px; }
  .ad-timer { padding: 8px 11px; font-size: 13px; min-width: 34px; }

  .schedule-row { padding: 12px 14px; }
  .signal-item { padding: 11px 15px 11px 26px; font-size: 13px; }

  .insta-desktop { display: none; }
  .insta-mobile { display: flex; }

  .nav-links {
    position: fixed; bottom: 0; left: 0; width: 100%;
    background-color: #0f0f0f; border-top: 1px solid var(--line);
    display: grid !important; grid-template-columns: repeat(4, 1fr) !important;
    padding: 6px 0 10px 0; z-index: 1000; margin: 0; gap: 0 !important;
  }
  nav.main-menu .nav-links a {
    display: flex !important; flex-direction: column !important;
    align-items: center !important; justify-content: center !important; gap: 4px !important;
    width: 100% !important; min-width: 0 !important;
    font-size: 10px !important; padding: 6px 0 !important; color: #666;
    background: transparent !important; border: none !important; border-radius: 0 !important;
    text-align: center !important; white-space: nowrap !important; margin: 0 !important;
  }
  nav.main-menu .nav-links a.active { color: var(--ver) !important; background: transparent !important; }
  .nav-icon-svg { width: 20px !important; height: 20px !important; margin: 0 auto !important; flex-shrink: 0; }
  .nav-text { font-weight: 700; font-size: 10px; display: block; line-height: 1; }

  body { padding-bottom: 75px; }

  .container { padding: 15px 12px; }
  .main-content, .sidebar { flex: 100%; min-width: 100%; }
  .content-box { padding: 18px 14px; }

  .flash-deals-container { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; }
  .flash-deal-card { min-width: 140px; }

  .calendar-match { gap: 11px; padding: 12px 13px; }
  .cal-divider { display: none; }
  .cal-details { min-width: 140px; }
  .cal-teams { font-size: 13px; }
  .cal-action { margin-left: 0; width: 100%; margin-top: 4px; }
  .cal-bet-btn, .cal-watch-btn { display: block; text-align: center; width: 100%; padding: 11px; }
  .team-badge { width: 19px; height: 19px; }

  .pro-match { font-size: 14px; }
  .pro-odd { font-size: 20px; }
  .pro-cuota-box { min-width: 78px; padding: 12px 14px; }

  .next-divider { display: none; }
  .next-item { gap: 11px; padding: 12px 14px; }
  .next-time { min-width: 52px; }

  .page-head h1 { font-size: 19px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
/* ---------- BARRA PATROCINADOR (pegada al player) ---------- */
.video-wrapper.con-banner { border-radius: 12px 12px 0 0; border-bottom: none; }

.bet-bar {
  display: none;
  align-items: center;
  gap: 13px;
  background: var(--l1);
  border: 1px solid var(--line);
  border-top: 1px solid var(--l3);
  border-radius: 0 0 12px 12px;
  padding: 11px 14px;
  text-decoration: none;
  transition: background 0.2s;
}
.bet-bar.on { display: flex; }
.bet-bar:hover { background: var(--l2); }

.bet-logo {
  width: 42px;
  height: 42px;
  border-radius: 8px;
  object-fit: contain;
  background: var(--l3);
  flex-shrink: 0;
}

.bet-txt { flex: 1; min-width: 0; }
.bet-txt .bt-main {
  color: var(--txt);
  font-size: 13.5px;
  font-weight: 700;
  line-height: 1.35;
}
.bet-txt .bt-sub {
  color: var(--txt-3);
  font-size: 11px;
  margin-top: 2px;
}

.bet-cta {
  border: 1px solid var(--apostar);
  color: var(--apostar);
  background: transparent;
  padding: 9px 18px;
  border-radius: 6px;
  font-weight: 700;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  white-space: nowrap;
  flex-shrink: 0;
  transition: 0.2s;
}
.bet-bar:hover .bet-cta { background: var(--apostar); color: #000; }

@media (max-width: 640px) {
  .bet-bar { gap: 11px; padding: 10px 12px; }
  .bet-logo { width: 36px; height: 36px; }
  .bet-txt .bt-main { font-size: 12.5px; }
  .bet-txt .bt-sub { font-size: 10px; }
  .bet-cta { padding: 8px 13px; font-size: 10px; }
}

/* ---------- CONTRASTE: cuotas y pronósticos ---------- */

/* Cuotas del index: botón sólido, número más grande */
.flash-badge { color: var(--apostar-dim); letter-spacing: 0.8px; }
.flash-odd { font-size: 30px; font-weight: 900; margin: 4px 0 8px; }
.flash-text { color: #e4e4e4; font-size: 11.5px; margin-bottom: 12px; min-height: 30px; }
.action-btn {
  background: var(--apostar);
  color: #000;
  border: none;
  padding: 9px;
  font-weight: 800;
}
.action-btn:hover { background: var(--apostar-hover); }

/* Pronósticos: fecha en chip, cuota grande, botón sólido */
.pro-top { background: var(--l2); padding: 14px 16px; }
.pro-meta {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 9px;
  flex-wrap: wrap;
}
.pro-fecha {
  background: var(--ver);
  color: #000;
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  padding: 3px 9px;
  border-radius: 4px;
  letter-spacing: 0.3px;
  white-space: nowrap;
}
.pro-torneo {
  color: var(--txt-2);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  margin: 0;
}
.pro-match { font-size: 17px; font-weight: 800; }
.pro-match .vs { color: var(--txt-4); font-size: 11px; }

.pro-label { color: var(--txt-2); }
.pro-bet-type { font-size: 15px; }

.pro-cuota-box {
  border-left: 2px solid var(--apostar);
  min-width: 96px;
  padding: 12px 20px;
}
.pro-cuota-label { color: var(--apostar-dim); }
.pro-odd { font-size: 27px; font-weight: 900; }

.pro-analysis { color: #e4e4e4; font-size: 13px; }

.pro-cta {
  background: var(--apostar);
  color: #000;
  border: none;
  padding: 12px;
  font-weight: 800;
  font-size: 12px;
}
.pro-cta:hover { background: var(--apostar-hover); }
.pro-cta.ver { background: var(--ver); color: #000; border: none; }
.pro-cta.ver:hover { background: var(--ver-hover); }

/* Calendario: mantiene el botón outline (no compite con pronósticos) */
.cal-bet-btn {
  background: transparent;
  color: var(--apostar);
  border: 1px solid var(--apostar);
}
.cal-bet-btn:hover { background: var(--apostar); color: #000; }

/* Placeholders sin cruce definido: gris, no ámbar */
.teams-tbd { color: var(--txt-3); }
.sidebar { align-items: stretch; }
.highlight-media-box {
  flex: 1;
  justify-content: center;
}
.responsive-media {
  aspect-ratio: auto;
  max-height: 100%;
  object-fit: contain;
}
/* El banner queda arriba del sidebar, sin estirarse */
.sidebar {
  align-items: stretch !important;
  justify-content: flex-start !important;
}
.highlight-media-box {
  flex: 0 0 auto !important;
}
.cupon-box {
  flex: 0 0 auto;
}
/* Móvil: el banner se centra */
@media (max-width: 768px) {
  .highlight-media-box {
    align-items: center !important;
    width: 100% !important;
  }
  .responsive-media {
    margin-left: auto !important;
    margin-right: auto !important;
  }
}
/* Móvil: centrar el botón de Telegram */
@media (max-width: 768px) {
  nav.main-menu a.promo-link {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    gap: 8px !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
  nav.main-menu a.promo-link .nav-icon-svg {
    margin: 0 !important;
    flex-shrink: 0;
  }
}

/* ---------- CUPÓN DE APUESTAS ---------- */
.cupon-box {
  display: none;
  background: var(--l1);
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: hidden;
}
.cupon-box.on { display: block; }

.cupon-head {
  padding: 12px 14px;
  border-bottom: 1px solid var(--line);
  background: var(--l2);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.cupon-head .ch-title {
  color: var(--apostar);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 1px;
}
.cupon-head .ch-count {
  background: var(--apostar-tint);
  color: var(--apostar);
  font-size: 10px;
  font-weight: 800;
  padding: 3px 8px;
  border-radius: 10px;
  min-width: 22px;
  text-align: center;
}

.cupon-list { max-height: none; overflow-y: visible; }

.cupon-match { padding: 11px 12px; border-bottom: 1px solid #2a2a2a; }
.cupon-match:last-child { border-bottom: none; }

.cm-team {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 7px;
}
.cm-team:last-of-type { margin-bottom: 10px; }
.cm-team img { width: 17px; height: 17px; object-fit: contain; flex-shrink: 0; }
.cm-team span {
  font-size: 12px;
  font-weight: 700;
  color: var(--txt);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cm-odds { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 5px; }
.cm-odd {
  background: #0f0f0f;
  border: 1px solid var(--line);
  border-radius: 5px;
  padding: 8px 3px;
  cursor: pointer;
  font-family: inherit;
  transition: 0.15s;
  text-align: center;
}
.cm-odd:hover { border-color: var(--apostar); }
.cm-odd .co-label {
  display: block;
  color: var(--txt-4);
  font-size: 8.5px;
  font-weight: 700;
  letter-spacing: 0.3px;
}
.cm-odd .co-val {
  display: block;
  color: var(--apostar);
  font-size: 14px;
  font-weight: 800;
  margin-top: 2px;
  font-variant-numeric: tabular-nums;
}
.cm-odd.on { background: var(--apostar-tint); border-color: var(--apostar); }
.cm-odd.on .co-label { color: var(--apostar); }

.cupon-foot {
  padding: 12px 14px;
  border-top: 1px solid var(--line);
  background: #161616;
}
.cf-monto {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 10px;
}
.cf-monto label {
  color: var(--txt-2);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  flex-shrink: 0;
}
.cf-monto .peso { color: var(--txt-4); font-size: 13px; font-weight: 700; }
.cf-monto input {
  flex: 1;
  min-width: 0;
  background: var(--l0);
  border: 1px solid var(--line);
  border-radius: 5px;
  color: var(--txt);
  padding: 6px 8px;
  font-size: 13px;
  font-weight: 700;
  font-family: inherit;
}
.cf-monto input:focus { outline: none; border-color: var(--apostar); }

.cf-row {
  display: flex;
  justify-content: space-between;
  padding: 6px 0;
  border-top: 1px solid #2a2a2a;
}
.cf-row span:first-child { color: var(--txt-4); font-size: 11px; }
.cf-row span:last-child { color: var(--txt); font-size: 13px; font-weight: 800; font-variant-numeric: tabular-nums; }

.cf-gana {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 6px 0 11px;
}
.cf-gana span:first-child {
  color: var(--txt-2);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}
.cf-gana span:last-child {
  color: var(--apostar);
  font-size: 21px;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
}

.cf-cta {
  display: block;
  text-align: center;
  background: var(--l3);
  color: var(--txt-4);
  padding: 11px;
  border-radius: 6px;
  font-weight: 800;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  text-decoration: none;
  cursor: not-allowed;
  transition: 0.2s;
}
.cf-cta.on {
  background: var(--apostar);
  color: #000;
  cursor: pointer;
}
.cf-cta.on:hover { background: var(--apostar-hover); }

.cf-legal {
  color: var(--txt-4);
  font-size: 9px;
  text-align: center;
  margin-top: 8px;
  line-height: 1.4;
}

/* Solo desktop */
@media (max-width: 768px) {
  .cupon-box { display: none !important; }
}
/* ---------- PROBABILIDAD DE VICTORIA ---------- */
.prob-box {
  display: none;
  background: var(--l1);
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: hidden;
}
.prob-box.on { display: block; }

.prob-head {
  padding: 11px 13px;
  border-bottom: 1px solid var(--line);
  background: var(--l2);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.prob-head .ph-t {
  color: var(--txt-2);
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 1px;
}
.prob-nav { display: flex; gap: 4px; flex-shrink: 0; }
.prob-nav button {
  background: #0f0f0f;
  border: 1px solid var(--line);
  color: var(--txt-4);
  width: 22px;
  height: 22px;
  border-radius: 4px;
  cursor: pointer;
  font-size: 11px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  transition: 0.15s;
}
.prob-nav button:hover { border-color: var(--ver); color: var(--ver); }

.prob-slide { padding: 14px 13px; }

.ps-fecha {
  color: var(--txt-4);
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  text-align: center;
  margin-bottom: 10px;
}
.ps-teams {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-bottom: 13px;
  flex-wrap: wrap;
}
.ps-teams img { width: 20px; height: 20px; object-fit: contain; flex-shrink: 0; }
.ps-teams .pt-name { color: var(--txt); font-size: 13px; font-weight: 700; }
.ps-teams .pt-vs { color: var(--txt-4); font-size: 10px; }

.ps-nums {
  display: flex;
  justify-content: space-between;
  margin-bottom: 5px;
}
.ps-nums .pn-l { color: var(--ver); font-size: 12px; font-weight: 800; }
.ps-nums .pn-e { color: var(--txt-2); font-size: 12px; font-weight: 700; }
.ps-nums .pn-v { color: var(--apostar); font-size: 12px; font-weight: 800; }

.ps-bar {
  display: flex;
  height: 7px;
  border-radius: 4px;
  overflow: hidden;
  gap: 2px;
}
.ps-bar .pb-l { background: var(--ver); }
.ps-bar .pb-e { background: var(--txt-4); }
.ps-bar .pb-v { background: var(--apostar); }

.ps-labels {
  display: flex;
  justify-content: space-between;
  margin-top: 6px;
}
.ps-labels span {
  color: var(--txt-4);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.3px;
}

.prob-dots {
  display: flex;
  justify-content: center;
  gap: 5px;
  padding: 11px 0 0;
}
.prob-dots span {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--l3);
  transition: 0.2s;
}
.prob-dots span.on { background: var(--ver); }

/* Solo desktop */
@media (max-width: 768px) {
  .prob-box { display: none !important; }
}

.prob-cta {
  display: block;
  margin: 13px 13px;
  text-align: center;
  background: var(--apostar);
  color: #000;
  padding: 10px;
  border-radius: 6px;
  font-weight: 800;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  text-decoration: none;
  transition: 0.2s;
}
.prob-cta:hover { background: var(--apostar-hover); }

@media (max-width: 768px) {
  .calendar-tournament-header {
    justify-content: flex-start !important;
    gap: 7px !important;
  }
  .calendar-tournament-header > * {
    margin: 0 !important;
  }
}

/* ---------- PÁGINA DE BONOS ---------- */
.bonos-lista {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.bono-card {
  position: relative;                          /* para el lazo de ranking */
  background: linear-gradient(145deg, #1f1f1f, #161616);  /* degradado sutil */
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  align-items: stretch;
  box-shadow: 0 4px 14px rgba(0,0,0,0.35);     /* profundidad */
  transition: border-color 0.2s, box-shadow 0.2s;
}
.bono-card:hover {
  border-color: var(--line-2);
  box-shadow: 0 6px 20px rgba(0,0,0,0.45);
}

/* ----- Recuadro del logo (DESKTOP) ----- */
.bono-logo {
  width: 180px;
  height: 120px;                     /* alto fijo: todos igual, no depende del texto */
  flex-shrink: 0;
  align-self: center;                /* centra el recuadro, no se estira */
  background: var(--l0);             /* negro, como te gusta */
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;                  /* recorta lo que sobresalga */
  padding: 0;                        /* la imagen llega al borde */
}
/* Desktop: muestra la gráfica cuadrada y llena el recuadro */
.logo-desktop {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;                 /* llena todo, recorta si hace falta */
}
.logo-movil { display: none; }

.bono-body {
  flex: 1;
  padding: 18px 20px;
  display: flex;
  align-items: center;
  gap: 24px;
  min-width: 0;
}

.bono-main { flex: 1; min-width: 0; }
.bono-casa {
  color: var(--txt);
  font-size: 19px;
  font-weight: 800;
  margin-bottom: 10px;
}
.bono-label {
  color: var(--txt-2);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  margin-bottom: 4px;
}
.bono-texto {
  color: var(--txt);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.35;
}
.bono-monto {
  color: #ffd23f;                    /* dorado brillante: resalta el monto $ */
}

.bono-datos {
  flex-shrink: 0;
  padding-left: 20px;
  border-left: 1px solid var(--line);
}
.bono-datos .bd-val {
  color: var(--txt);
  font-size: 15px;
  font-weight: 800;
  margin-bottom: 12px;
}
.bono-datos .bd-val:last-child { margin-bottom: 0; }
.bono-datos .bd-codigo {
  color: var(--apostar);             /* código en ámbar */
  font-family: monospace;
  font-size: 14px;
  font-weight: 800;
}

.bono-cta-wrap {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 9px;
}
.bono-cta {
  background: var(--apostar);
  color: #000;
  padding: 13px 28px;
  border-radius: 8px;
  font-weight: 800;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  text-decoration: none;
  white-space: nowrap;
  transition: 0.2s;
}
.bono-cta:hover { background: var(--apostar-hover); }
.bono-legal {
  color: var(--txt-4);
  font-size: 10px;
}

/* ---------- LAZO DE RANKING (#1 #2 #3) ---------- */
.bono-rank {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 3;
  background: var(--apostar);
  color: #000;
  font-size: 13px;
  font-weight: 900;
  padding: 5px 12px 6px;
  border-radius: 12px 0 12px 0;
  letter-spacing: 0.3px;
  font-variant-numeric: tabular-nums;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}

/* #1 dorado, #2 plateado, #3 bronce — el podio */
.bono-rank.rank-1 { background: #ffd23f; color: #000; }
.bono-rank.rank-2 { background: #cfd4dc; color: #000; }
.bono-rank.rank-3 { background: #e8a06a; color: #000; }

/* Los destacados con un borde sutil que los separa del resto */
.bono-card.destacado { border-color: var(--line-2); }

/* ---------- MÓVIL: la tarjeta se apila ---------- */
@media (max-width: 768px) {
  .bono-card {
    flex-direction: column;
  }

  /* Recuadro del logo en móvil: banner apaisado, más bajo */
  .bono-logo {
    width: 100%;
    height: 90px;                    /* logo más bajo en móvil */
    padding: 0;
    background: var(--l0);
    overflow: hidden;
    align-self: stretch;
  }
  /* Móvil: oculta la de desktop, muestra el banner apaisado */
  .logo-desktop { display: none; }
  .logo-movil {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;               /* llena el recuadro, recorta si hace falta */
  }

  .bono-body {
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
    padding: 16px;
  }
  .bono-casa {
    text-align: center;
    font-size: 17px;
  }
    .bono-main {
    text-align: center;
  }
  .bono-casa {
    text-align: center;
    font-size: 17px;
  }
  .bono-datos {
    padding-left: 0;
    border-left: none;
    border-top: 1px solid var(--line);
    padding-top: 14px;
    display: flex;
    justify-content: space-around;
    text-align: center;
  }
  .bono-datos .bd-val { margin-bottom: 0; }
  .bono-cta-wrap { width: 100%; }
  .bono-cta { width: 100%; text-align: center; padding: 14px; }

  .bono-rank { font-size: 12px; padding: 4px 10px 5px; }
}

/* ---------- ICONO / BANDERA EN SEÑALES ---------- */
/* Bandera circular junto al texto del canal (las imágenes ya son redondas). */
.signal-item .si-flag {
  width: 24px !important;
  height: 24px !important;
  object-fit: contain !important;   /* muestra la bandera entera sin recortar */
  border-radius: 50% !important;    /* círculo, calza con la imagen redonda */
  flex-shrink: 0;
}
.signal-item .si-tv {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  flex-shrink: 0;
}
.signal-item .si-tv svg {
  display: block;
}
/* El canal activo tiñe el ícono TV de verde para que combine */
.signal-item.playing .si-tv svg {
  stroke: var(--ver);
}

/* ---------- FOOTER ---------- */
.ft {
  background: #0f1114;
  border-top: 1px solid var(--line);
  margin-top: 40px;
  padding: 36px 20px 0;
}

.ft-inner {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.6fr repeat(4, 1fr);
  gap: 32px;
  padding-bottom: 30px;
}

.ft-col h3 {
  color: var(--txt);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 1.2px;
  margin: 0 0 14px;
}

.ft-col a {
  display: block;
  color: var(--txt-3);
  font-size: 13px;
  text-decoration: none;
  padding: 5px 0;
  transition: color 0.15s;
}
.ft-col a:hover { color: var(--ver); }

/* Marca */
.ft-brand .ft-logo {
  height: 42px;
  width: auto;
  object-fit: contain;
  margin-bottom: 12px;
  display: block;
}
.ft-tag {
  color: var(--txt-3);
  font-size: 12.5px;
  line-height: 1.6;
  margin: 0;
  max-width: 260px;
}

/* Redes */
.ft-social {
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
}
.ft-social a {
  width: 38px;
  height: 38px;
  padding: 0;
  border-radius: 8px;
  background: var(--l2);
  border: 1px solid var(--line);
  color: var(--txt-2);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: 0.15s;
}
.ft-social a:hover {
  background: var(--ver);
  border-color: var(--ver);
  color: #000;
}
.ft-social svg { width: 19px; height: 19px; }

/* Línea final */
.ft-bottom {
  max-width: 1400px;
  margin: 0 auto;
  border-top: 1px solid var(--line);
  padding: 18px 0 22px;
  text-align: center;
  color: var(--txt-4);
  font-size: 12px;
}

/* Móvil: columnas apiladas */
@media (max-width: 768px) {
  .ft { padding: 28px 16px 0; margin-top: 28px; }
  .ft-inner {
    grid-template-columns: 1fr 1fr;
    gap: 24px 20px;
    padding-bottom: 22px;
  }
  .ft-brand { grid-column: 1 / -1; }
  .ft-tag { max-width: none; }
  .ft-bottom { padding: 16px 0 20px; font-size: 11.5px; }
}

/* ---------- GRUPOS DE LIGA (acordeón de 2do nivel) ---------- */
/* Estilo minimal: sin fondo, solo el nombre y una línea divisoria. */

.liga-group { padding-bottom: 4px; }

.liga-head {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 13px 18px 8px;
  cursor: pointer;
  transition: opacity 0.15s;
}
.liga-head:hover { opacity: 0.75; }

/* Línea divisoria bajo el nombre de la liga */
.liga-head::after { content: none; }
.liga-group .liga-head + .liga-body::before {
  content: '';
  display: block;
  height: 1px;
  background: #2a2a2a;
  margin: 0 18px 4px;
}
.liga-group:not(.open) .liga-head {
  padding-bottom: 13px;
}

.liga-head .lg-flag {
  width: 22px;
  height: 22px;
  object-fit: contain;
  border-radius: 50%;
  flex-shrink: 0;
}

.liga-head .lg-name {
  color: var(--txt);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.7px;
  flex: 1;
  min-width: 0;
}

.liga-head .lg-count {
  color: var(--txt-4);
  background: var(--l0);
  border: 1px solid var(--line);
  font-size: 10px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 10px;
  flex-shrink: 0;
}

.liga-head .lg-toggle {
  color: var(--txt-4);
  font-size: 10px;
  flex-shrink: 0;
  transition: transform 0.25s ease;
}
.liga-group.open .lg-toggle { transform: rotate(180deg); }

/* Cuerpo: canales de esa liga */
.liga-body { display: none; }
.liga-group.open .liga-body {
  display: block;
  animation: fadeIn 0.25s ease-out;
}

/* Canales dentro de una liga: sangría y bandera más chica */
.liga-body .signal-item {
  padding-left: 26px;
  border-bottom: none;
}
.liga-body .signal-item .si-flag {
  width: 16px !important;
  height: 16px !important;
}
.liga-body .signal-item .si-tv {
  width: 16px;
}
.liga-body .signal-item .si-tv svg {
  width: 15px;
  height: 15px;
}

/* Encabezado fijo de SEÑALES (ya no se cierra) */
.schedule-row.fijo { cursor: default; }
.schedule-row.fijo:hover { background: var(--ver-tint); }

@media (max-width: 768px) {
  .liga-head { padding: 12px 14px 7px; gap: 8px; }
  .liga-group .liga-head + .liga-body::before { margin: 0 14px 4px; }
  .liga-body .signal-item { padding-left: 20px; }
}
/* ---------- FOOTER ---------- */
.ft {
  background: var(--l1);            /* un poco más claro que el fondo, lo separa */
  border-top: 1px solid var(--line);
  margin-top: 40px;
  padding: 36px 20px 0;
}

.ft-inner {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  /* La marca fija, las demás se reparten todo el ancho restante */
  grid-template-columns: 300px repeat(3, 1fr);
  gap: 32px;
  padding-bottom: 30px;
}

.ft-col h3 {
  color: var(--txt);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 1.2px;
  margin: 0 0 14px;
}

.ft-col a {
  display: block;
  color: var(--txt-3);
  font-size: 13px;
  text-decoration: none;
  padding: 5px 0;
  transition: color 0.15s;
}
.ft-col a:hover { color: var(--ver); }

/* Marca */
.ft-brand .ft-logo {
  height: 42px;
  width: auto;
  object-fit: contain;
  margin-bottom: 12px;
  display: block;
}
.ft-tag {
  color: var(--txt-3);
  font-size: 12.5px;
  line-height: 1.6;
  margin: 0;
  max-width: 260px;
}

/* Redes */
.ft-social {
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
}
.ft-social a {
  width: 38px;
  height: 38px;
  padding: 0;
  border-radius: 8px;
  background: var(--l2);
  border: 1px solid var(--line);
  color: var(--txt-2);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: 0.15s;
}
.ft-social a:hover {
  background: var(--ver);
  border-color: var(--ver);
  color: #000;
}
.ft-social svg { width: 19px; height: 19px; }

/* Línea final */
.ft-bottom {
  max-width: 1400px;
  margin: 0 auto;
  border-top: 1px solid var(--line);
  padding: 18px 0 22px;
  text-align: center;
  color: var(--txt-4);
  font-size: 12px;
}

/* Móvil: columnas apiladas */
@media (max-width: 768px) {
  .ft { padding: 28px 16px 0; margin-top: 28px; }
  .ft-inner {
    grid-template-columns: 1fr 1fr;
    gap: 24px 20px;
    padding-bottom: 22px;
  }
  .ft-brand { grid-column: 1 / -1; }
  .ft-tag { max-width: none; }
  .ft-bottom { padding: 16px 0 20px; font-size: 11.5px; }
}

/* .nav-links se va fixed abajo: el contenedor no debe reservar su hueco */
  .nav-container {
    gap: 0;
  }

/* ---------- POP-UP GIROS GRATIS (anclado al nav) ---------- */
.promo-fab {
  position: relative;
  flex-shrink: 0;
  margin-left: 10px;          /* separación del botón de Telegram */
}

/* Botón de regalo */
.pf-btn {
  position: relative;
  width: 42px;
  height: 42px;
  background: var(--apostar, #ffb020);
  border: none;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 3px 10px rgba(0,0,0,0.35);
  transition: transform 0.15s;
}
.pf-btn:hover { transform: scale(1.06); }

/* Puntito pulsante */
.pf-ping {
  position: absolute;
  top: -3px;
  right: -3px;
  width: 11px;
  height: 11px;
  background: #ff4444;
  border-radius: 50%;
  border: 2px solid var(--l0, #0a0a0a);
  animation: pfPulse 1.6s infinite;
}
@keyframes pfPulse {
  0%   { box-shadow: 0 0 0 0 rgba(255,68,68,0.6); }
  70%  { box-shadow: 0 0 0 7px rgba(255,68,68,0); }
  100% { box-shadow: 0 0 0 0 rgba(255,68,68,0); }
}

/* Tarjeta desplegable */
.pf-card {
  position: absolute;
  top: 52px;
  right: 0;               /* se ancla a la derecha del ícono y crece hacia la izquierda */
  width: 290px;
  max-width: calc(100vw - 24px);
  background: linear-gradient(155deg, #1a1f26, #12151a);
  border: 1px solid #2e3540;
  border-radius: 14px;
  padding: 18px;
  box-shadow: 0 12px 34px rgba(0,0,0,0.55);
  opacity: 0;
  transform: translateY(-8px) scale(0.97);
  pointer-events: none;
  transition: opacity 0.2s, transform 0.2s;
  z-index: 10000;
}
.promo-fab.open .pf-card {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

/* Flechita apuntando al ícono */
.pf-card::before {
  content: '';
  position: absolute;
  top: -7px;
  right: 15px;
  width: 13px;
  height: 13px;
  background: #1a1f26;
  border-left: 1px solid #2e3540;
  border-top: 1px solid #2e3540;
  transform: rotate(45deg);
}

.pf-close {
  position: absolute;
  top: 10px;
  right: 13px;
  color: #6b7280;
  font-size: 15px;
  cursor: pointer;
  line-height: 1;
}
.pf-close:hover { color: #fff; }

.pf-top {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}
.pf-logo {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: var(--l0, #0a0a0a);
  border: 1px solid #2e3540;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 22px;
  overflow: hidden;
}
.pf-title {
  color: #fff;
  font-size: 19px;
  font-weight: 900;
  line-height: 1.1;
}
.pf-game {
  color: var(--apostar, #ffb020);
  font-size: 13px;
  font-weight: 700;
}
.pf-detail {
  color: #b8c0cc;
  font-size: 12.5px;
  line-height: 1.5;
  margin-bottom: 14px;
}
.pf-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: var(--apostar, #ffb020);
  color: #000 !important;
  padding: 12px;
  border-radius: 9px;
  font-weight: 800;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  text-decoration: none;
}
.pf-cta:hover { filter: brightness(1.08); }
.pf-legal {
  color: #6b7280;
  font-size: 10px;
  text-align: center;
  margin-top: 9px;
}

/* ---------- MÓVIL ----------
   El ícono se DESPEGA del nav y flota fijo arriba a la derecha.
   Arranca cerrado (el JS no le pone 'open' en móvil). */
@media (max-width: 768px) {
  .promo-fab {
    position: fixed;
    top: 14px;              /* a la altura del logo */
    right: 12px;
    margin-left: 0;
    z-index: 9999;
  }
  .pf-btn { width: 40px; height: 40px; }
  .pf-card {
    position: fixed;
    top: 62px;              /* debajo del ícono flotante */
    right: 12px;
    left: auto;
    width: 250px;           /* compacta, no de borde a borde */
    max-width: calc(100vw - 24px);
    padding: 15px;
  }
  .pf-card::before {
    right: 14px;            /* la flechita apunta al ícono */
  }
  /* Textos un poco más chicos en móvil */
  .pf-title { font-size: 17px; }
  .pf-game { font-size: 12px; }
  .pf-detail { font-size: 11.5px; margin-bottom: 12px; }
  .pf-logo { width: 40px; height: 40px; }
  .pf-cta { padding: 10px; font-size: 12px; }
}
/* ---------- DÓNDE VER A TU EQUIPO ---------- */
.equipos-box {
  background: var(--l1);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 18px 20px;
  margin-bottom: 14px;
}
.equipos-box h2 {
  color: var(--txt);
  font-size: 15px;
  font-weight: 800;
  margin: 0 0 14px;
}
.eq-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.eq-grid a {
  display: inline-block;
  background: var(--l0);
  border: 1px solid var(--line);
  color: var(--txt-2);
  font-size: 13px;
  font-weight: 600;
  padding: 8px 16px;
  border-radius: 8px;
  text-decoration: none;
  transition: 0.15s;
}
.eq-grid a:hover {
  background: var(--ver);
  border-color: var(--ver);
  color: #000;
}

@media (max-width: 768px) {
  .equipos-box { padding: 15px 16px; }
  .eq-grid a { font-size: 12.5px; padding: 7px 13px; }
}
/* ---------- CUOTA ORIGINAL TACHADA + FLECHA ---------- */
.flash-odd-wrap {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 7px;
  margin: 4px 0 8px;
  flex-wrap: wrap;
}
.flash-odd-wrap .flash-odd {
  margin: 0;
}
.flash-odd-old {
  color: var(--txt-4);
  font-size: 16px;
  font-weight: 600;
  text-decoration: line-through;
  font-variant-numeric: tabular-nums;
}
.flash-odd-arrow {
  color: var(--txt-4);
  font-size: 13px;
}

/* Tarjetas del mismo alto con el botón siempre abajo */
.flash-deals-container { align-items: stretch; }
.flash-deal-card {
  display: flex;
  flex-direction: column;
}
.flash-deal-card .flash-text {
  flex: 1;
}
.flash-deal-card .action-btn {
  margin-top: auto;
}

@media (max-width: 768px) {
  .flash-odd-wrap { gap: 5px; margin: 2px 0 6px; }
  .flash-odd-old { font-size: 13px; }
  .flash-odd-arrow { font-size: 11px; }
}