/*
Theme Name: Anivo
Theme URI: https://example.com/anivo
Author: Tu Estudio
Author URI: https://example.com
Description: Tema de WordPress para catálogos de video (anime SFW, series, cursos). Incluye sidebar colapsable, carruseles de episodios, géneros, y ficha de episodio.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: anivo
*/

/* -------------------------------------------------
   Design tokens
   ------------------------------------------------- */
:root{
  --bg: #0e1013;
  --surface: #15181d;
  --surface-2: #1d2129;
  --surface-3: #262b33;
  --border: #262b33;
  --line-accent: #6c5ce7;
  --text: #edeff3;
  --text-2: #b7bdc9;
  --muted: #8b93a3;
  --accent-1: #6c5ce7;
  --accent-2: #ff6f91;
  --accent-3: #38e1c6;
  --accent-soft: rgba(108,92,231,.14);
  --accent-text: #b7aeff;
  --radius-lg: 18px;
  --radius-md: 12px;
  --radius-sm: 8px;
  --font-display: "Fraunces", Georgia, serif;
  --font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --shadow-card: 0 1px 2px rgba(0,0,0,.4), 0 8px 24px -12px rgba(0,0,0,.6);
  --shadow-poster: 0 10px 30px -10px rgba(108,92,231,.35);
  --header-h: 64px;
  --sidebar-w: 240px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
button{ font-family:inherit; cursor:pointer; }
::selection{ background:var(--accent-1); color:#fff; }

.grad-fill{
  background:linear-gradient(135deg, var(--accent-1), var(--accent-2) 70%, var(--accent-3));
}



.h2-section{
  font-family:var(--font-display);
  font-size:1.6rem;
  font-weight:600;
  letter-spacing:-.01em;
  margin:0;
}
.eyebrow{
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.08em;
  color:var(--muted);
  margin:0;
}

.pill{
  display:inline-flex;
  align-items:center;
  gap:6px;
  border:1px solid var(--border);
  background:var(--surface-2);
  color:var(--text-2);
  border-radius:999px;
  padding:8px 14px;
  font-size:.8rem;
  font-weight:500;
  transition:border-color .2s, background .2s, color .2s;
}
.pill:hover{
  border-color:var(--line-accent);
  background:var(--accent-soft);
  color:var(--accent-text);
}
.pill .count{
  font-size:.68rem;
  color:var(--muted);
}

.btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  border-radius:999px;
  padding:9px 18px;
  font-size:.85rem;
  font-weight:600;
  border:1px solid transparent;
  transition:transform .15s, filter .2s, background .2s;
}
.btn-ghost{
  background:transparent;
  color:var(--text-2);
}
.btn-ghost:hover{ color:var(--text); }
.btn-outline{
  border-color:var(--border);
  background:var(--surface-2);
  color:var(--text-2);
}
.btn-outline:hover{
  border-color:var(--line-accent);
  color:var(--accent-text);
  background:var(--accent-soft);
}
.btn-primary{
  color:#fff;
  box-shadow:0 6px 20px -8px rgba(108,92,231,.6);
}
.btn-primary:hover{ filter:brightness(1.08); transform:translateY(-1px); }

/* -------------------------------------------------
   Layout shell
   ------------------------------------------------- */
.site-shell{ display:flex; min-height:100vh; }

.app-sidebar{
  width:var(--sidebar-w);
  flex-shrink:0;
  position:sticky;
  top:0;
  align-self:flex-start;
  height:100dvh;
  padding:10px;
  display:none;
}
@media (min-width:1024px){ .app-sidebar{ display:flex; flex-direction:column; } }
[data-sidebar="collapsed"] .app-sidebar{ width:76px; }

.sidebar-panel{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:22px;
  height:100%;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.sidebar-header{
  height:64px;
  display:flex;
  align-items:center;
  gap:8px;
  padding:0 18px;
  border-bottom:1px solid var(--border);
  flex-shrink:0;
}
.sidebar-header .logo-mark{
  width:32px; height:32px; border-radius:9px;
  display:grid; place-items:center;
  color:#fff; font-weight:700; font-size:.8rem;
  flex-shrink:0;
}
.sidebar-header .logo-text{ font-family:var(--font-display); font-weight:700; font-size:1.05rem; }
[data-sidebar="collapsed"] .sidebar-header .logo-text{ display:none; }

.sidebar-nav{ flex:1; overflow-y:auto; padding:16px 8px; }
.sidebar-group{ margin-bottom:20px; }
.sidebar-group-label{
  padding:0 12px 6px;
  font-size:.68rem;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted);
}
[data-sidebar="collapsed"] .sidebar-group-label{ display:none; }

.sidebar-item{
  display:flex;
  align-items:center;
  gap:12px;
  padding:10px 12px;
  border-radius:12px;
  color:var(--text-2);
  font-size:.88rem;
  font-weight:500;
  transition:background .2s,color .2s;
}
.sidebar-item svg{ flex-shrink:0; width:19px; height:19px; }
.sidebar-item:hover{ background:var(--surface-2); color:var(--text); }
.sidebar-item.is-active{ background:var(--accent-soft); color:var(--accent-text); }
[data-sidebar="collapsed"] .sidebar-item span{ display:none; }

/* -------------------------------------------------
   Header
   ------------------------------------------------- */
.site-header{
  position:sticky; top:0; z-index:40;
  background:rgba(14,16,19,.85);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--border);
}
.header-inner{
  height:var(--header-h);
  display:flex;
  align-items:center;
  gap:14px;
}
.sidebar-toggle{
  display:none;
  width:38px; height:38px;
  align-items:center; justify-content:center;
  border-radius:10px;
  background:transparent;
  border:none;
  color:var(--muted);
}
.sidebar-toggle:hover{ background:var(--surface-2); color:var(--text); }
@media (min-width:1024px){ .sidebar-toggle{ display:inline-flex; } }

.mobile-menu-btn{
  width:38px; height:38px;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:999px; border:none; background:transparent; color:var(--text-2);
}
@media (min-width:1024px){ .mobile-menu-btn{ display:none; } }

.header-logo-mobile{ display:flex; align-items:center; }
@media (min-width:1024px){ .header-logo-mobile{ display:none; } }
.header-logo-mobile img, .header-logo-mobile .logo-fallback{ height:32px; }

.header-search{
  flex:1;
  display:flex;
  justify-content:center;
}
.search-form{
  position:relative;
  width:100%;
  max-width:520px;
  display:none;
}
@media (min-width:768px){ .search-form{ display:block; } }
.search-form input{
  width:100%;
  height:38px;
  border-radius:999px;
  border:1px solid var(--border);
  background:var(--surface-2);
  color:var(--text);
  padding:0 40px 0 38px;
  font-size:.85rem;
}
.search-form input:focus{ outline:none; border-color:var(--line-accent); }
.search-form .icon-search{
  position:absolute; left:12px; top:50%; transform:translateY(-50%);
  color:var(--muted); pointer-events:none;
}
.search-form button{
  position:absolute; right:4px; top:4px;
  width:30px; height:30px; border-radius:999px; border:none;
  display:grid; place-items:center; color:#fff;
}
.search-icon-mobile{
  width:38px; height:38px;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:999px; color:var(--muted); background:transparent; border:none;
}
@media (min-width:768px){ .search-icon-mobile{ display:none; } }

.header-auth{ display:flex; align-items:center; gap:6px; flex-shrink:0; }
.header-auth .btn-primary{ display:none; }
@media (min-width:480px){ .header-auth .btn-primary{ display:inline-flex; } }

/* -------------------------------------------------
   Main content spacing
   ------------------------------------------------- */
.site-main{
  flex:1;
  min-width:0;
  padding:28px 0 70px;
}
@media (min-width:768px){ .site-main{ padding:34px 0 40px; } }
.sections-stack{ display:flex; flex-direction:column; gap:52px; }

.section-head{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  margin-bottom:18px;
}
.section-view-all{
  display:inline-flex; align-items:center; gap:6px;
  border:1px solid var(--border);
  background:var(--surface);
  border-radius:999px;
  padding:8px 16px;
  font-size:.82rem;
  color:var(--text-2);
}
.section-view-all:hover{ border-color:var(--line-accent); color:var(--accent-text); }

/* -------------------------------------------------
   Carousels & grids
   ------------------------------------------------- */
.rail{
  display:flex;
  gap:16px;
  overflow-x:auto;
  padding:4px 4px 10px;
  scroll-snap-type:x proximity;
}
.rail::-webkit-scrollbar{ height:6px; }
.rail::-webkit-scrollbar-thumb{ background:var(--surface-3); border-radius:99px; }
.rail > *{ flex-shrink:0; scroll-snap-align:start; width:46%; }
@media (min-width:480px){ .rail > *{ width:31%; } }
@media (min-width:768px){ .rail > *{ width:23%; } }
@media (min-width:1024px){ .rail > *{ width:19%; } }
@media (min-width:1280px){ .rail > *{ width:15.5%; } }
@media (min-width:1600px){ .rail > *{ width:13%; } }

.rail-wide > *{ width:78%; }
@media (min-width:480px){ .rail-wide > *{ width:48%; } }
@media (min-width:768px){ .rail-wide > *{ width:38%; } }
@media (min-width:1024px){ .rail-wide > *{ width:30%; } }
@media (min-width:1280px){ .rail-wide > *{ width:24%; } }
@media (min-width:1600px){ .rail-wide > *{ width:15%; } }

.grid-cards{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:18px;
}
@media (min-width:560px){ .grid-cards{ grid-template-columns:repeat(3,1fr); } }
@media (min-width:768px){ .grid-cards{ grid-template-columns:repeat(4,1fr); } }
@media (min-width:1024px){ .grid-cards{ grid-template-columns:repeat(5,1fr); } }
@media (min-width:1400px){ .grid-cards{ grid-template-columns:repeat(6,1fr); } }

/* -------------------------------------------------
   Episode card (poster)
   ------------------------------------------------- */
.ep-card{ display:block; group:card; }
.ep-card-poster{
  position:relative;
  aspect-ratio:2/3;
  border-radius:var(--radius-md);
  overflow:hidden;
  background:var(--surface-2);
  border:1px solid var(--border);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.ep-card:hover .ep-card-poster{
  transform:translateY(-4px);
  box-shadow:var(--shadow-poster);
  border-color:var(--line-accent);
}
.ep-card-poster img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
}
.ep-card-poster .fade{
  position:absolute; inset-inline:0; bottom:0; height:33%;
  background:linear-gradient(to top, rgba(0,0,0,.75), transparent);
  pointer-events:none;
}
.ep-card-poster .play-overlay{
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  background:rgba(0,0,0,.4);
  opacity:0; transition:opacity .2s;
  pointer-events:none;
}
.ep-card:hover .play-overlay{ opacity:1; }
.play-btn{
  width:48px; height:48px; border-radius:999px;
  display:grid; place-items:center; color:#fff;
  transform:scale(.8); transition:transform .2s;
}
.ep-card:hover .play-btn{ transform:scale(1); }
.badge-micro{
  position:absolute;
  background:rgba(0,0,0,.6);
  color:#fff;
  font-size:.65rem;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  padding:3px 7px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.15);
  backdrop-filter:blur(3px);
  display:inline-flex; align-items:center; gap:4px;
}
.badge-micro svg{ width:11px; height:11px; }
.badge-ep{ top:8px; left:8px; }
.badge-views{ bottom:8px; right:8px; }
.rank-number{
  position:absolute; bottom:0; left:8px;
  font-family:var(--font-display);
  font-size:3rem; font-weight:700; line-height:1;
  color:rgba(255,255,255,.95);
  text-shadow:0 2px 16px rgba(0,0,0,.85);
}
.badge-views-top{ top:8px; right:8px; bottom:auto; }

.ep-card-title{
  padding-top:10px;
  font-size:.86rem;
  font-weight:600;
  line-height:1.3;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  color:var(--text);
}
.ep-card:hover .ep-card-title{ color:var(--accent-text); }
.ep-card-title.one-line{ -webkit-line-clamp:1; }

/* Wide (video-aspect) card variant, used in Top10 / recientes destacadas */
.ep-card-wide .ep-card-poster{ aspect-ratio:16/9; }
.ep-card-wide .fade{ background:linear-gradient(to top right, rgba(0,0,0,.85), rgba(0,0,0,.25) 55%, transparent); inset:0; height:auto; }

/* -------------------------------------------------
   Genre pills row
   ------------------------------------------------- */
.genre-row{ display:flex; flex-wrap:wrap; gap:8px; }

/* -------------------------------------------------
   Pagination
   ------------------------------------------------- */
.pagination-wrap{ display:flex; justify-content:center; padding-top:8px; }
.pagination-list{ display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.page-numbers{
  min-width:40px; height:40px;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:11px;
  border:1px solid var(--border);
  background:var(--surface);
  color:var(--text-2);
  font-size:.85rem;
  padding:0 10px;
}
.page-numbers.current{ border-color:transparent; color:#fff; }
.page-numbers:hover:not(.current){ border-color:var(--line-accent); color:var(--accent-text); }
.page-numbers.dots{ border:none; background:none; }

/* -------------------------------------------------
   Load more button
   ------------------------------------------------- */
.load-more-wrap{ display:flex; justify-content:center; padding-top:6px; }
.btn-load-more{
  border-radius:999px;
  padding:14px 30px;
  font-size:.95rem;
  font-weight:600;
  border:1px solid var(--border);
  background:var(--surface-2);
  color:var(--text);
}
.btn-load-more:hover{ border-color:var(--line-accent); }

/* -------------------------------------------------
   Single episode page
   ------------------------------------------------- */
.player-wrap{
  aspect-ratio:16/9;
  background:#000;
  border-radius:var(--radius-lg);
  overflow:hidden;
  border:1px solid var(--border);
  margin-bottom:22px;
}
.player-wrap iframe, .player-wrap video{ width:100%; height:100%; border:0; }
.episode-title{
  font-family:var(--font-display);
  font-size:1.7rem;
  margin:0 0 6px;
}
.episode-meta{ display:flex; flex-wrap:wrap; gap:10px; color:var(--muted); font-size:.85rem; margin-bottom:18px; }
.episode-meta a{ color:var(--accent-text); }
.episode-desc{ color:var(--text-2); line-height:1.7; margin-bottom:26px; }
.ep-nav{ display:flex; justify-content:space-between; gap:12px; margin-bottom:36px; }

/* -------------------------------------------------
   SEO text card / collapsible
   ------------------------------------------------- */
.info-card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  padding:24px;
}
.info-card h1, .info-card h2, .info-card h3{ font-family:var(--font-display); }
.info-card p{ color:var(--text-2); line-height:1.7; }
.info-card .toggle-more{
  margin-top:14px;
  border:1px solid var(--border);
  background:var(--surface-2);
  border-radius:999px;
  padding:7px 16px;
  font-size:.85rem;
  color:var(--text-2);
  display:none;
}
@media (max-width:1023px){
  .info-card.is-collapsed{ max-height:180px; overflow:hidden; position:relative; }
  .info-card.is-collapsed::after{
    content:"";
    position:absolute; inset-inline:0; bottom:0; height:70px;
    background:linear-gradient(to top, var(--surface), transparent);
  }
  .info-card .toggle-more{ display:inline-flex; }
}

/* -------------------------------------------------
   Footer
   ------------------------------------------------- */
.site-footer{ border-top:1px solid var(--border); margin-top:60px; background:var(--surface); }
.footer-grid{
  display:grid;
  gap:40px;
  padding:48px 0;
}
@media (min-width:1024px){ .footer-grid{ grid-template-columns:1.15fr 1fr; } }
.footer-desc{ color:var(--text-2); max-width:60ch; font-size:.9rem; line-height:1.7; }
.footer-links-title{ font-size:.72rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin-bottom:14px; }
.footer-links-list{ columns:2; gap:32px; font-size:.88rem; }
.footer-links-list li{ margin-bottom:10px; }
.footer-links-list a{ color:var(--text-2); }
.footer-links-list a:hover{ color:var(--accent-text); }
.footer-bottom{ border-top:1px solid var(--border); padding:18px 0; font-size:.78rem; color:var(--muted); }

/* -------------------------------------------------
   Mobile bottom nav
   ------------------------------------------------- */
.mobile-bottom-nav{
  position:fixed; inset-inline:0; bottom:0; z-index:40;
  display:grid; grid-template-columns:repeat(5,1fr);
  background:rgba(14,16,19,.9);
  backdrop-filter:blur(12px);
  border-top:1px solid var(--border);
}
@media (min-width:1024px){ .mobile-bottom-nav{ display:none; } }
.mobile-bottom-nav a{
  height:58px;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:3px; font-size:.66rem; font-weight:500; color:var(--muted);
  position:relative;
}
.mobile-bottom-nav a svg{ width:19px; height:19px; }
.mobile-bottom-nav a.is-active{ color:var(--accent-text); }
.mobile-bottom-nav a.is-active::before{
  content:""; position:absolute; top:0; left:20px; right:20px; height:2px;
  border-radius:99px;
}
body{ padding-bottom:0; }
@media (max-width:1023px){ body{ padding-bottom:58px; } }

/* -------------------------------------------------
   Skeleton loading (optional, for AJAX "cargar más")
   ------------------------------------------------- */
.skeleton{ background:var(--surface-2); border-radius:var(--radius-md); animation:pulse 1.4s ease-in-out infinite; }
@keyframes pulse{ 0%,100%{ opacity:1; } 50%{ opacity:.5; } }

/* -------------------------------------------------
   Utility
   ------------------------------------------------- */
.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); border:0; }
.empty-state{ text-align:center; padding:60px 20px; color:var(--muted); }



:root, :host {
    --font-sans: var(--font-inter), ui-sans-serif, system-ui, sans-serif;
    --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    --color-black: #000;
    --color-white: #fff;
    --spacing: .25rem;
    --container-xs: 20rem;
    --container-sm: 24rem;
    --container-md: 28rem;
    --container-xl: 36rem;
    --container-2xl: 42rem;
    --text-xs: .75rem;
    --text-xs--line-height: calc(1 / .75);
    --text-sm: .875rem;
    --text-sm--line-height: calc(1.25 / .875);
    --text-base: 1rem;
    --text-base--line-height: calc(1.5 / 1);
    --text-lg: 1.125rem;
    --text-lg--line-height: calc(1.75 / 1.125);
    --text-xl: 1.25rem;
    --text-xl--line-height: calc(1.75 / 1.25);
    --text-2xl: 1.5rem;
    --text-2xl--line-height: calc(2 / 1.5);
    --text-3xl: 1.875rem;
    --text-3xl--line-height: calc(2.25 / 1.875);
    --text-4xl: 2.25rem;
    --text-4xl--line-height: calc(2.5 / 2.25);
    --text-6xl: 3.75rem;
    --text-6xl--line-height: 1;
    --text-7xl: 4.5rem;
    --text-7xl--line-height: 1;
    --font-weight-normal: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --font-weight-extrabold: 800;
    --tracking-tighter: -.05em;
    --tracking-tight: -.025em;
    --tracking-normal: 0em;
    --tracking-wide: .025em;
    --tracking-wider: .05em;
    --tracking-widest: .1em;
    --leading-tight: 1.25;
    --leading-snug: 1.375;
    --leading-relaxed: 1.625;
    --radius-sm: .25rem;
    --radius-md: .375rem;
    --radius-lg: .5rem;
    --radius-xl: .75rem;
    --ease-out: cubic-bezier(0, 0, .2, 1);
    --ease-in-out: cubic-bezier(.4, 0, .2, 1);
    --animate-pulse: pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;
    --blur-sm: 8px;
    --blur-md: 12px;
    --blur-xl: 24px;
    --aspect-video: 16 / 9;
    --default-transition-duration: .15s;
    --default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);
    --default-font-family: var(--font-sans);
    --default-mono-font-family: var(--font-mono);
    --breakpoint-3xl: 120rem;
    --color-bg: #0a0a0c;
    --color-surface: #141418;
    --color-surface-2: #1c1c22;
    --color-border: #26262e;
    --color-text: #f2f2f5;
    --color-muted: #9a9aa6;
    --color-accent: #7c3aed;
    --color-accent-hover: #8b5cf6;
    --color-accent-text: #a78bfa;
    --color-accent-soft: #7c3aed26;
    --color-txt-2: #f2f2f59e;
    --color-txt-3: #f2f2f566;
    --color-success: #2bd576;
    --color-danger: #ff4d4d;
    --font-display: var(--font-sora), ui-sans-serif, system-ui, sans-serif;
    --font-body: var(--font-inter), ui-sans-serif, system-ui, sans-serif;
    --radius-card: 12px;
    --radius-panel: 16px;
    --radius-popover: 14px;
    --color-line-accent: #4d2f84;
}


html[data-sidebar=collapsed] .app-sidebar .sidebar-secondary, .sidebar-when-collapsed
Specificity: (0,3,1)
 {
    display: none;
}

@supports (color:color-mix(in lab, red, red)) {
    .bg-surface\/50 {
        background-color: 
color-mix(in oklab, var(--color-surface) 50%, transparent);
    }
}

@media (min-width: 64rem) {
    .lg\:px-8 {
        padding-inline: calc(var(--spacing) * 8);
    }
}

* {
    border-color: var(--color-border);
}

@media (min-width: 64rem) {
    .lg\:justify-self-end
Specificity: (0,1,0)
 {
        justify-self: flex-end;
    }
}

* {
    border-color: var(--color-border);
}