/* ==================== VARIABLES / BASE ==================== */
.ls-root {
  --ls-header-height: 72px;
  --ls-adminbar-offset: 0px;
  --ls-max: 1280px;
  --ls-primary: #6A21BF;
  --ls-secondary: #EA9350;
  --ls-grad: linear-gradient(90deg,#6A21BF,#EA9350);
  --ls-bg: #f4f6fb;
  --ls-text: #1f2734;
  --ls-soft: #5b6471;
  --ls-radius: 20px;
  --ls-ease: cubic-bezier(.4,0,.2,1);
  --ls-league-title-color:#ffffff;
  font-family: 'Inter', system-ui, sans-serif;
  color: var(--ls-text);
  position: relative;
}
.ls-root * { box-sizing:border-box; }

body.page-template-page-ligas #primary,
body.page-template-page-ligas .site-main,
body.page-template-page-ligas .entry-content {
  max-width:none !important;
  width:100% !important;
}

/* ==================== SCREENS ==================== */
.ls-screen { display:none; width:100%; background:var(--ls-bg); min-height:calc(100vh - var(--ls-adminbar-offset)); }
.ls-screen.ls-active { display:block; animation: lsFade .45s var(--ls-ease); }
@keyframes lsFade { from{opacity:0;transform:translateY(10px);} to{opacity:1;transform:none;} }

.ls-screen-inner {
  max-width: var(--ls-max);
  margin:0 auto;
  padding: calc(var(--ls-header-height) + var(--ls-adminbar-offset) + 40px) 2rem 90px;
}
@media (max-width:900px){
  .ls-screen-inner { padding: calc(var(--ls-header-height) + var(--ls-adminbar-offset) + 30px) 1.2rem 70px; }
}

/* ==================== SEARCH ==================== */
.ls-search-wrap { margin:0 0 1.8rem; }
.ls-search-bar {
  position:relative;
  background:#fff;
  border:1px solid #e3e6ec;
  border-radius:60px;
  display:flex;
  align-items:center;
  gap:.75rem;
  padding:.75rem 1.6rem;
  box-shadow:0 4px 14px -6px rgba(0,0,0,.15);
}
.ls-search-bar:focus-within { border-color: var(--ls-primary); box-shadow:0 4px 18px -6px rgba(106,33,191,.35); }
.ls-icon-search { width:20px;height:20px; stroke:#7d8590; stroke-width:2; fill:none; }
.ls-search-bar input { flex:1; border:0; background:transparent; outline:none; font-size:.95rem; }
.ls-search-clear { border:0;background:transparent;cursor:pointer;padding:.3rem;display:flex;align-items:center;justify-content:center; }
.ls-search-clear svg { width:18px;height:18px; stroke:#7d8590; stroke-width:2; fill:none; }
.ls-search-results {
  position:absolute; left:0; top:calc(100% + 6px); width:100%;
  background:#fff; border:1px solid #e3e6ec; border-radius:22px;
  box-shadow:0 14px 40px -14px rgba(0,0,0,.30); overflow:hidden; z-index:10;
}
.ls-search-results button {
  all:unset; width:100%; display:flex; justify-content:space-between; align-items:center;
  padding:.75rem 1rem; font-size:.85rem; cursor:pointer; color:var(--ls-text); transition:.25s;
}
.ls-search-results button small { opacity:.55; margin-left:.75rem; font-size:.6rem; letter-spacing:.5px; text-transform:uppercase; }
.ls-search-results button:hover { background:linear-gradient(90deg,rgba(106,33,191,.08),rgba(234,147,80,.08)); }

/* ==================== HEADERS ==================== */
.ls-head { text-align:center; max-width:860px; margin:0 auto 2.2rem; }
.ls-title-gradient {
  font-size:clamp(2.2rem,3.5vw,3.1rem);
  font-weight:800;
  background:var(--ls-grad);
  -webkit-background-clip:text;
  color:transparent;
  line-height:1.1;
  letter-spacing:.5px;
}
.ls-subtitle { margin:.9rem auto 0; font-size:1rem; line-height:1.55; color:var(--ls-soft); max-width:740px; }
.ls-subtitle-sm { margin:.25rem 0 0; font-size:.8rem; letter-spacing:.5px; text-transform:uppercase; color:var(--ls-soft); }

/* ==================== CONTINENTES ==================== */
.ls-cards-continent {
  display:grid;
  gap:2rem;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  margin-bottom:2.2rem;
}
@media (min-width:1100px){
  .ls-cards-continent { grid-template-columns:repeat(4,1fr); }
}
.ls-card-continent {
  position:relative;
  border-radius:28px;
  overflow:hidden;
  cursor:pointer;
  height:230px;
  background:#ffffff;
  box-shadow:0 14px 34px -16px rgba(0,0,0,.25),0 2px 6px -1px rgba(0,0,0,.08);
  transition:.55s var(--ls-ease);
  isolation:isolate;
}
.ls-card-continent:hover {
  transform:translateY(-8px);
  box-shadow:0 26px 60px -18px rgba(0,0,0,.35);
}
.ls-ctn-overlay { position:absolute; inset:0; z-index:0; opacity:.85; transition:.6s; }
.ls-color-europe  { background:linear-gradient(135deg,#1d4ed8,#2563eb 65%,#3b82f6); }
.ls-color-america { background:linear-gradient(135deg,#0f9d58,#047857); }
.ls-color-asia    { background:linear-gradient(135deg,#d00032,#b40026); }
.ls-color-africa  { background:linear-gradient(135deg,#ea7a17,#d97706); }
.ls-card-continent:hover .ls-ctn-overlay { opacity:.9; }
.ls-ctn-img { position:absolute; inset:0; z-index:1; display:flex; align-items:center; justify-content:center; padding:18px; }
.ls-ctn-img img { width:85%; height:85%; object-fit:contain; opacity:.95; filter:drop-shadow(0 6px 14px rgba(0,0,0,.18)); transition:.6s; transform:scale(1); }
.ls-card-continent:hover .ls-ctn-img img { transform:scale(1.05); opacity:1; }
.ls-ctn-content { position:relative; z-index:2; height:100%; display:flex; flex-direction:column; justify-content:flex-end; padding:1.4rem 1.3rem 1.2rem; color:#fff; text-shadow:0 2px 6px rgba(0,0,0,.35); }
.ls-ctn-logo img { width:50px; height:50px; object-fit:contain; filter:drop-shadow(0 4px 10px rgba(0,0,0,.35)); }
.ls-card-continent h3 { margin:1rem 0 .35rem; font-size:1.25rem; font-weight:700; letter-spacing:.4px; color:#fff; }
.ls-confed { margin:0; font-size:.62rem; font-weight:600; letter-spacing:.7px; text-transform:uppercase; color:#fff; opacity:.92; }

.ls-inline-stats { display:flex; align-items:center; justify-content:center; gap:1rem; font-size:.75rem; color:var(--ls-soft); }
.ls-line { width:100px; height:1px; background:linear-gradient(to right,transparent,#cbd2da,transparent); }

/* ==================== BACK BUTTON ==================== */
.ls-back-row { margin-bottom:.5rem; }
.ls-back-btn {
  background:transparent;
  border:0;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  font-size:.8rem;
  font-weight:600;
  color:var(--ls-soft);
  padding:.45rem .8rem .45rem .4rem;
  border-radius:10px;
  transition:.3s;
}
.ls-back-btn svg { width:18px;height:18px; stroke:currentColor; stroke-width:2; fill:none; }
.ls-back-btn:hover { color:var(--ls-primary); background:#fff; box-shadow:0 4px 16px -8px rgba(0,0,0,.2); }

/* ==================== LIGAS ==================== */
.ls-cards-league { display:grid; gap:2rem 1.8rem; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); }
.ls-card-league {
  position:relative; height:240px; border-radius:28px; overflow:hidden;
  background:#0d0f14; color:#fff; padding:1.05rem 1.05rem 1.1rem;
  display:flex; flex-direction:column; justify-content:flex-end;
  box-shadow:0 18px 46px -20px rgba(0,0,0,.5);
  cursor:pointer; transition:.55s var(--ls-ease); isolation:isolate;
}
.ls-card-league:hover { transform:translateY(-8px); box-shadow:0 30px 70px -24px rgba(0,0,0,.65); }
.ls-league-media { position:absolute; inset:0; z-index:0; overflow:hidden; }
.ls-league-bg { position:absolute; inset:0; background-size:cover; background-position:center; filter:brightness(.65) saturate(1.1); transition:.6s; }
.ls-card-league:hover .ls-league-bg { filter:brightness(.75) saturate(1.25); }
.ls-league-overlay { position:absolute; inset:0; background:linear-gradient(to bottom, rgba(0,0,0,.15), rgba(0,0,0,.85)); z-index:2; transition:.5s; }
.ls-league-trophy { position:absolute; bottom:-12%; right:-10%; width:70%; max-width:210px; opacity:.18; z-index:1; transform:rotate(-6deg) scale(1); filter:drop-shadow(0 8px 18px rgba(0,0,0,.45)); transition:.6s var(--ls-ease); pointer-events:none; object-fit:contain; }
.ls-card-league:hover .ls-league-trophy { opacity:.26; transform:rotate(-2deg) scale(1.05); }
.ls-league-logo-inline {
  position:absolute; top:14px; left:14px; z-index:6;
  width:64px; height:64px; background:#ffffff; border:1px solid #e3e6ec;
  border-radius:18px; display:flex; align-items:center; justify-content:center;
  overflow:hidden; box-shadow:0 8px 20px -10px rgba(0,0,0,.35); padding:8px;
}
.ls-league-logo-inline img { width:100%; height:100%; object-fit:contain; }
.ls-league-top { position:relative; z-index:7; margin-top:70px; padding:0 .2rem; }
.ls-card-league .ls-league-top h3 {
  margin:0 0 .45rem; font-size:1.2rem; font-weight:700; letter-spacing:.45px;
  line-height:1.1; color:var(--ls-league-title-color) !important;
  text-shadow:0 3px 8px rgba(0,0,0,.6), 0 1px 2px rgba(0,0,0,.4);
}
.ls-league-country { font-size:.66rem; letter-spacing:.7px; font-weight:600; margin:0 0 .2rem; text-transform:uppercase; color:#f1f5f9; text-shadow:0 2px 4px rgba(0,0,0,.45); }

/* CTA */
.ls-league-cta-inline, .ls-league-cta-text {
  position:relative; z-index:8; margin-top:.85rem; font-size:.7rem; font-weight:600;
  display:inline-flex; align-items:center; gap:.45rem; letter-spacing:.5px;
  cursor:pointer; color:#fff; padding:.55rem .95rem; border-radius:30px;
  background:rgba(255,255,255,.12); backdrop-filter:blur(4px); transition:.4s;
}
.ls-league-cta-text { background:transparent; padding:.4rem 0; }
.ls-league-cta-inline .ls-arrow, .ls-league-cta-text .ls-arrow { transition:.4s; transform:translateX(0); }
.ls-card-league:hover .ls-league-cta-inline .ls-arrow, .ls-card-league:hover .ls-league-cta-text .ls-arrow { transform:translateX(6px); }
.ls-league-cta-inline:hover { background:rgba(255,255,255,.22); }

/* ==================== TEMPORADAS ==================== */
.ls-season-simple {
  display:grid; gap:1.8rem; grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  max-width:720px; margin:0 auto;
}
.ls-season-simple-card {
  background:#fff; border:1px solid #e3e6ec; border-radius:20px;
  padding:1.4rem 1.3rem 1.6rem; box-shadow:0 12px 28px -16px rgba(0,0,0,.15);
  cursor:pointer; position:relative; transition:.45s var(--ls-ease);
  display:flex; flex-direction:column; gap:.6rem;
}
.ls-season-simple-card:hover { transform:translateY(-6px); box-shadow:0 22px 44px -20px rgba(0,0,0,.30); border-color:var(--ls-primary); }
.ls-season-simple-card h3 { margin:0; font-size:1.4rem; font-weight:700; letter-spacing:.5px; background:var(--ls-grad); -webkit-background-clip:text; color:transparent; }
.ls-season-meta { margin:0; font-size:.7rem; letter-spacing:.6px; font-weight:600; color:var(--ls-soft); text-transform:uppercase; }
.ls-season-link { margin-top:auto; font-size:.7rem; font-weight:600; letter-spacing:.5px; color:var(--ls-primary); display:inline-flex; align-items:center; gap:.45rem; }
.ls-season-link .ls-arrow { transition:.35s; transform:translateX(0); }
.ls-season-simple-card:hover .ls-season-link .ls-arrow { transform:translateX(5px); }

/* ===== SEASON LOGO HERO (nuevo) ===== */
#ls-season-hero { margin:0 0 1.8rem; }
.ls-season-logo-outer {
  width:100%; display:flex; justify-content:center;
  animation: lsHeroFade .6s var(--ls-ease);
}
@keyframes lsHeroFade { from{opacity:0; transform:translateY(10px) scale(.95);} to{opacity:1; transform:none;} }

.ls-season-logo-inner {
  --hero-size: clamp(140px, 30vw, 260px);
  width:var(--hero-size);
  aspect-ratio:1/1;
  background:#fff;
  background-image:
    radial-gradient(circle at 35% 30%, rgba(106,33,191,.08), transparent 70%),
    radial-gradient(circle at 70% 65%, rgba(234,147,80,.10), transparent 75%);
  border:1px solid #e5e8ee;
  border-radius:40px;
  padding:clamp(18px,3.2vw,34px);
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 18px 48px -20px rgba(0,0,0,.18), 0 4px 10px -2px rgba(0,0,0,.08);
  position:relative;
  overflow:hidden;
}
.ls-season-logo-inner:after {
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.25),rgba(255,255,255,0) 65%);
  mix-blend-mode:overlay;
  pointer-events:none;
}
.ls-season-logo-inner img {
  width:100%;
  height:100%;
  object-fit:contain;
  filter:drop-shadow(0 4px 10px rgba(0,0,0,.18));
  transition:.4s var(--ls-ease);
}
.ls-season-logo-inner:hover img { transform:scale(1.04); }

/* ==================== TOAST ==================== */
.ls-toast-container {
  position:fixed;
  top:calc(var(--ls-header-height) + var(--ls-adminbar-offset) + 16px);
  left:50%;
  transform:translateX(-50%);
  z-index:400;
  pointer-events:none;
}
.ls-toast {
  background:#fff;
  border:1px solid rgba(106,33,191,.25);
  padding:.7rem 1rem;
  font-size:.75rem;
  border-radius:12px;
  font-weight:600;
  box-shadow:0 10px 28px -16px rgba(0,0,0,.35);
  margin-bottom:.5rem;
  animation: lsToastIn .35s var(--ls-ease);
  pointer-events:auto;
}
@keyframes lsToastIn { from{opacity:0;transform:translateY(-6px);} to{opacity:1;transform:none;} }

/* ==================== ACCESIBILIDAD ==================== */
.ls-card-continent:focus-visible,
.ls-card-league:focus-visible,
.ls-season-simple-card:focus-visible,
.ls-back-btn:focus-visible,
.ls-league-cta-text:focus-visible,
.ls-league-cta-inline:focus-visible {
  outline:3px solid var(--ls-secondary);
  outline-offset:3px;
}

/* ==================== REDUCED MOTION ==================== */
@media (prefers-reduced-motion:reduce){
  .ls-screen,.ls-card-continent,.ls-card-league,.ls-season-simple-card,
  .ls-season-logo-outer { transition:none !important; animation:none !important; }
}