:root{color-scheme:dark;--bg:#11100f;--panel:#1b1917;--panel2:#24211e;--ink:#f4eee4;--muted:#b8afa2;--line:#403930;--gold:#e3b45d;--red:#b54432;--max:1120px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.65 system-ui,-apple-system,"Segoe UI",sans-serif}
a{color:inherit}
a:hover{color:var(--gold)}
img{max-width:100%;height:auto}
.site-header{border-bottom:1px solid var(--line);background:#0b0a09}
.header-inner{max-width:var(--max);margin:auto;padding:14px 22px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:block;text-decoration:none;line-height:1}
.brand img{display:block;width:min(100%,650px);max-height:145px;object-fit:cover;object-position:center}
.brand-fallback{font-family:Georgia,serif;font-weight:900;font-size:clamp(1.7rem,4vw,3rem);letter-spacing:.04em;text-transform:uppercase;color:var(--gold);line-height:1.05;text-shadow:2px 2px 0 #4e2418}
.brand-fallback small{display:block;color:var(--ink);font:700 .7rem/1.5 system-ui,sans-serif;letter-spacing:.38em;text-align:center}
nav{display:flex;gap:18px;flex-shrink:0}
nav a{text-decoration:none;text-transform:uppercase;font-size:.82rem;font-weight:800;letter-spacing:.08em;padding:8px 0;border-bottom:2px solid transparent}
nav a[aria-current=page],nav a:hover{border-color:var(--gold);color:var(--gold)}
main{max-width:var(--max);margin:auto;padding:34px 22px 60px}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;line-height:1.15}
h1{font-size:clamp(2.2rem,5vw,3.5rem);margin:.2em 0 .35em}
h2{font-size:clamp(1.45rem,3vw,2rem)}
p{max-width:75ch}
.lead{font-size:1.06rem;color:#e1d8ca}
.hero-banner{display:block;width:100%;aspect-ratio:1000/180;object-fit:cover;margin:0 0 28px;border:1px solid #423629;background:#17120e}
.kicker{color:var(--gold);text-transform:uppercase;font-size:.76rem;font-weight:800;letter-spacing:.17em}
.rule{height:1px;background:var(--line);margin:28px 0}
.home-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:30px;align-items:start}
.panel{background:var(--panel);border:1px solid var(--line);padding:22px}
.panel h2{margin-top:0}
.btn{display:inline-block;padding:10px 16px;background:var(--gold);color:#17110a;text-decoration:none;font-weight:850;text-transform:uppercase;font-size:.82rem;letter-spacing:.05em;border:0;cursor:pointer}
.btn:hover{background:#f2cf87;color:#17110a}
.ivoox{width:100%;min-height:270px;border:0;background:#211e1a}
.season-list{display:grid;gap:14px;margin-top:26px}
.season{border:1px solid var(--line);background:var(--panel)}
.season-head{display:grid;grid-template-columns:180px 1fr auto;align-items:center;gap:20px;padding:16px}
.season-cover{display:block;width:180px;aspect-ratio:560/343;object-fit:cover;background:#302922;border:1px solid #4b4035}
.season-title{margin:0 0 6px;font-size:1.55rem}
.season-meta{color:var(--muted);font-size:.9rem;margin:0}
.season-toggle{border:1px solid var(--line);background:var(--panel2);color:var(--ink);padding:9px 12px;font:inherit;font-weight:750;cursor:pointer;white-space:nowrap}
.season-toggle:hover{border-color:var(--gold);color:var(--gold)}
.episodes{border-top:1px solid var(--line);padding:12px 16px 16px}
.episode{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,320px) auto;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid #342e28}
.episode:last-child{border-bottom:0}
.episode-title{font-weight:750;line-height:1.35}
.episode-subtitle{font-size:.8rem;color:var(--muted);margin-top:3px}
.audio{display:block;width:100%;height:36px;accent-color:var(--gold)}
.download{font-size:.82rem;text-decoration:none;color:var(--gold);white-space:nowrap}
.search-row{display:flex;gap:10px;max-width:620px;margin:20px 0}
.search-row input{min-width:0;flex:1;background:#201d19;color:var(--ink);border:1px solid var(--line);padding:12px 14px;font:inherit}
.search-row input:focus{outline:2px solid var(--gold);outline-offset:1px}
.empty{color:var(--muted);padding:16px 0}
.site-footer{border-top:1px solid var(--line);color:var(--muted);text-align:center;padding:24px 20px;font-size:.85rem}
@media(max-width:760px){.header-inner{align-items:flex-start;flex-direction:column}.brand img{max-height:110px}nav{width:100%;justify-content:flex-start}.home-grid{grid-template-columns:1fr}.season-head{grid-template-columns:110px 1fr;gap:14px}.season-cover{width:110px}.season-toggle{grid-column:1/-1;width:100%}.episode{grid-template-columns:1fr;gap:7px}.audio{max-width:100%}.download{justify-self:start}.search-row{flex-direction:column}}
@media(max-width:420px){main{padding:24px 14px 42px}.header-inner{padding:12px 14px}.season-head{grid-template-columns:85px 1fr;padding:12px}.season-cover{width:85px}.season-title{font-size:1.25rem}.episodes{padding:8px 12px 12px}}

.cover-fallback{display:flex;align-items:center;justify-content:center;text-align:center;padding:8px;background:linear-gradient(135deg,#2b2118,#100f0e);color:var(--gold);font:800 .9rem/1.2 Georgia,serif;letter-spacing:.08em}

/* =================================
   PORTADA Y ESPACIADO GENERAL
   ================================= */

.brand img {
    width: min(100%, 430px);
    max-height: 110px;
    object-fit: contain;
    object-position: left center;
}

main {
    padding: 44px 26px 72px;
}

.hero-banner {
    display: block;
    width: 100%;
    aspect-ratio: 3 / 1;
    object-fit: cover;
    margin: 0 0 38px;
}

h1 {
    margin: 0 0 22px;
}

h2 {
    margin: 0 0 16px;
}

h3 {
    margin: 0 0 12px;
}

.lead {
    font-size: 1.1rem;
    line-height: 1.85;
    margin: 0 0 24px;
}

.kicker {
    margin: 0 0 12px;
    color: var(--gold);
    text-transform: uppercase;
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .17em;
}

.rule {
    height: 1px;
    background: var(--line);
    margin: 36px 0;
}

/* =================================
   PANELES Y TARJETAS
   ================================= */

.panel {
    background: var(--panel);
    border: 1px solid var(--line);
    padding: 30px;
    border-radius: 3px;
}

.panel h2 {
    margin: 0 0 16px;
}

.home-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 28px;
    align-items: stretch;
}

.home-card {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 28px;
}

.home-card h2 {
    margin: 0 0 4px;
}

.home-card p {
    margin: 0;
    line-height: 1.75;
}

.card-image {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: contain;
    margin: 0 0 8px;
    background: #171512;
}

.bottom-image {
    display: block;
    width: 100%;
    height: auto;
    margin: 32px auto 0;
}

/* =================================
   BOTONES
   ================================= */

.btn {
    display: inline-block;
    padding: 13px 20px;
    background: var(--gold);
    color: #17110a;
    text-decoration: none;
    font-weight: 850;
    text-transform: uppercase;
    font-size: .82rem;
    letter-spacing: .06em;
    border: 0;
    cursor: pointer;
    transition: background .2s ease, transform .2s ease;
}

.btn:hover {
    background: #f2cf87;
    color: #17110a;
    transform: translateY(-2px);
}

/* =================================
   SECCIÓN IVOOX
   ================================= */

.ivoox-section {
    margin-bottom: 34px;
    padding: 32px;
}

.ivoox-header-img {
    display: block;
    width: 100%;
    max-height: 140px;
    object-fit: contain;
    margin-bottom: 20px;
}

.ivoox-section > * + * {
    margin-top: 18px;
}

.ivoox-section iframe,
iframe.ivoox {
    display: block;
    width: 100%;
    height: 400px !important;
    min-height: 400px !important;
    border: 0;
    overflow: hidden;
    background: #000;
}

/* =================================
   ARCHIVO Y TEMPORADAS
   ================================= */

.season-list {
    display: grid;
    gap: 18px;
    margin-top: 30px;
}

.season-head {
    gap: 22px;
    padding: 20px;
}

.episodes {
    padding: 16px 20px 20px;
}

.episode {
    gap: 18px;
    padding: 16px 0;
}

/* =================================
   PIE DE PÁGINA
   ================================= */

.site-footer {
    padding: 30px 20px;
}

/* =================================
   TABLET
   ================================= */

@media (max-width: 960px) {
    .home-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 22px;
    }

    .home-card:first-child {
        grid-column: 1 / -1;
    }
}

/* =================================
   MÓVIL
   ================================= */

@media (max-width: 760px) {
    .header-inner {
        align-items: flex-start;
        flex-direction: column;
    }

    .brand img {
        max-height: 100px;
    }

    nav {
        width: 100%;
        justify-content: flex-start;
        gap: 22px;
    }

    .home-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .home-card:first-child {
        grid-column: auto;
    }

    .season-head {
        grid-template-columns: 110px 1fr;
        gap: 14px;
    }

    .season-cover {
        width: 110px;
    }

    .season-toggle {
        grid-column: 1 / -1;
        width: 100%;
    }

    .episode {
        grid-template-columns: 1fr;
        gap: 9px;
    }

    .audio {
        max-width: 100%;
    }

    .download {
        justify-self: start;
    }

    .search-row {
        flex-direction: column;
    }

    .hero-banner {
        aspect-ratio: 16 / 6;
    }

    .ivoox-section {
        padding: 24px;
    }
}

/* =================================
   MÓVILES PEQUEÑOS
   ================================= */

@media (max-width: 420px) {
    main {
        padding: 26px 14px 44px;
    }

    .header-inner {
        padding: 12px 14px;
    }

    .brand img {
        width: min(100%, 360px);
        max-height: 90px;
    }

    .panel,
    .home-card {
        padding: 20px;
    }

    .ivoox-section {
        padding: 18px;
    }

    .ivoox-section iframe,
    iframe.ivoox {
        height: 400px !important;
        min-height: 400px !important;
    }

    .home-card .btn {
        width: 100%;
        text-align: center;
    }

    .season-head {
        grid-template-columns: 85px 1fr;
        padding: 12px;
    }

    .season-cover {
        width: 85px;
    }

    .season-title {
        font-size: 1.25rem;
    }

    .episodes {
        padding: 10px 12px 14px;
    }
}