/* =========================================================================
   14. Single Download (Tema) — Fase 5
   ========================================================================= */
.hp-single-theme { overflow-x: hidden; }

.hp-st-hero {
    background: linear-gradient(135deg, #0f172a 0%, #1e3a5f 100%);
    color: #fff;
    padding: 5rem 0 4rem;
}

.hp-st-hero__container {
    max-width: var(--hp-container-max);
    margin: 0 auto;
    padding: 0 var(--hp-container-pad);
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: 4rem;
    align-items: center;
}

.hp-st-hero__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: var(--hp-fs-sm);
    font-weight: 600;
    color: #93c5fd;
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-bottom: 1rem;
}

.hp-st-hero__title {
    font-size: clamp(2rem, 4vw, 3.25rem);
    line-height: 1.1;
    letter-spacing: -0.03em;
    color: #fff;
    margin-bottom: 1rem;
}

.hp-st-hero__excerpt { color: rgba(255,255,255,0.8); margin-bottom: 1.5rem; line-height: 1.7; }
.hp-st-hero__excerpt p { margin: 0; }

.hp-st-hero__price {
    margin-bottom: 1.75rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.hp-st-hero__price-label {
    font-size: var(--hp-fs-sm);
    color: rgba(255,255,255,0.6);
}

.hp-st-hero__price .hp-price {
    font-family: var(--hp-font-heading);
    font-size: 2.25rem;
    font-weight: 800;
    color: #fff;
}

.hp-st-hero__actions {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1.5rem;
}

.hp-st-hero__buy { background: var(--hp-color-primary); }
.hp-st-hero__demo { color: #fff; border-color: rgba(255,255,255,0.3); }
.hp-st-hero__demo:hover { border-color: #fff; color: #fff; }

.hp-st-hero__trust {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 1.25rem;
    flex-wrap: wrap;
}

.hp-st-hero__trust li {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: var(--hp-fs-sm);
    color: rgba(255,255,255,0.7);
}

.hp-st-hero__trust i { color: #4ade80; }

.hp-st-hero__img {
    width: 100%;
    border-radius: var(--hp-radius-lg);
    box-shadow: 0 25px 60px rgba(0,0,0,0.4);
}

.hp-st-hero__img-placeholder {
    width: 100%;
    aspect-ratio: 4/3;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: var(--hp-radius-lg);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    color: rgba(255,255,255,0.4);
    font-size: 3rem;
}

/* Secciones internas compartidas */
.hp-st-section-title {
    font-size: var(--hp-fs-2xl);
    letter-spacing: -0.02em;
    margin-bottom: 1.5rem;
    color: var(--hp-color-text);
}

.hp-st-gallery, .hp-st-description, .hp-st-video,
.hp-st-features-benefits, .hp-st-license,
.hp-st-faq, .hp-st-support {
    padding: 4rem 0;
}

.hp-st-gallery:nth-child(even),
.hp-st-features-benefits,
.hp-st-faq { background: #f8fafc; }

.hp-st-gallery__container, .hp-st-description__container,
.hp-st-video__container, .hp-st-features-benefits__container,
.hp-st-license__container, .hp-st-faq__container, .hp-st-support__container {
    max-width: var(--hp-container-max);
    margin: 0 auto;
    padding: 0 var(--hp-container-pad);
}

/* Galería */
.hp-st-gallery__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1rem;
}

.hp-st-gallery__img {
    width: 100%;
    border-radius: var(--hp-radius-md);
    border: 1px solid var(--hp-color-border);
    cursor: pointer;
    transition: transform var(--hp-trans-base), box-shadow var(--hp-trans-base);
}

.hp-st-gallery__img:hover { transform: scale(1.02); box-shadow: var(--hp-shadow-md); }

/* Video */
.hp-st-video__embed { position: relative; aspect-ratio: 16/9; border-radius: var(--hp-radius-lg); overflow: hidden; }
.hp-st-video__embed iframe { width: 100%; height: 100%; position: absolute; inset: 0; }

/* Features + Benefits */
.hp-st-features-benefits__container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
}

.hp-st-features__list, .hp-st-benefits__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.hp-st-features__list li, .hp-st-benefits__list li {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    font-size: var(--hp-fs-base);
    color: var(--hp-color-text);
    line-height: 1.5;
}

.hp-st-features__list i { color: #16a34a; margin-top: 2px; flex-shrink: 0; }
.hp-st-benefits__list i { color: var(--hp-color-primary); margin-top: 2px; flex-shrink: 0; }

/* Licencias */
.hp-st-license__content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
}

.hp-st-license__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.hp-st-license__list li {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    font-size: var(--hp-fs-base);
}

.hp-st-license__list i { color: var(--hp-color-primary); width: 18px; text-align: center; flex-shrink: 0; }

.hp-st-license__how h3 { font-size: var(--hp-fs-lg); margin-bottom: 1rem; }
.hp-st-license__steps {
    padding-left: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    color: var(--hp-color-text-muted);
}

/* FAQ */
.hp-st-faq__list { display: flex; flex-direction: column; gap: 0.75rem; }

.hp-st-faq__item {
    border: 1px solid var(--hp-color-border);
    border-radius: var(--hp-radius-md);
    background: #fff;
    overflow: hidden;
}

.hp-st-faq__question {
    padding: 1.125rem 1.25rem;
    cursor: pointer;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: space-between;
    list-style: none;
    color: var(--hp-color-text);
    user-select: none;
}

.hp-st-faq__question::-webkit-details-marker { display: none; }

.hp-st-faq__question i {
    transition: transform var(--hp-trans-fast);
    flex-shrink: 0;
    color: var(--hp-color-primary);
}

.hp-st-faq__item[open] .hp-st-faq__question i {
    transform: rotate(180deg);
}

.hp-st-faq__answer {
    padding: 0 1.25rem 1.25rem;
    color: var(--hp-color-text-muted);
    line-height: 1.65;
}

.hp-st-faq__answer p { margin: 0; }

/* CTA Final */
.hp-st-cta {
    background: linear-gradient(135deg, #0f172a 0%, #1e3a5f 100%);
    color: #fff;
    padding: 5rem 0;
    text-align: center;
}

.hp-st-cta__container {
    max-width: 640px;
    margin: 0 auto;
    padding: 0 var(--hp-container-pad);
}

.hp-st-cta__title {
    font-size: clamp(1.5rem, 3vw, 2.25rem);
    color: #fff;
    margin-bottom: 1.5rem;
    line-height: 1.2;
}

.hp-st-cta__price {
    margin-bottom: 2rem;
}

.hp-st-cta__price .hp-price {
    font-family: var(--hp-font-heading);
    font-size: 2.5rem;
    font-weight: 800;
    color: #fff;
}

.hp-st-cta__actions {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
    margin-bottom: 1.25rem;
}

.hp-st-cta__buy { font-size: var(--hp-fs-lg); padding: 1rem 2rem; }
.hp-st-cta .hp-btn--ghost { color: #fff; border-color: rgba(255,255,255,0.3); }
.hp-st-cta .hp-btn--ghost:hover { border-color: #fff; color: #fff; }

.hp-st-cta__trust {
    font-size: var(--hp-fs-sm);
    color: rgba(255,255,255,0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    margin: 0;
}

/* Responsive single-download */
@media (max-width: 960px) {
    .hp-st-hero__container,
    .hp-st-features-benefits__container,
    .hp-st-license__content { grid-template-columns: 1fr; gap: 2rem; }
    .hp-st-hero__media { order: -1; }
    .hp-st-hero { padding: 3rem 0; }
}

/* =========================================================================
   15. Sección Videos YouTube — Extra
   ========================================================================= */
.hp-videos {
    padding: 5rem 0;
    background: #fff;
}

.hp-videos__container {
    max-width: var(--hp-container-max);
    margin: 0 auto;
    padding: 0 var(--hp-container-pad);
}

.hp-videos__header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: 2.5rem;
    flex-wrap: wrap;
}

.hp-videos__title {
    font-size: clamp(1.75rem, 3vw, var(--hp-fs-3xl));
    letter-spacing: -0.02em;
    margin: 0 0 .5rem;
    display: flex;
    align-items: center;
    gap: .6rem;
}

.hp-videos__title i { color: #ff0000; font-size: .85em; }

.hp-videos__subtitle {
    color: var(--hp-color-text-muted);
    font-size: var(--hp-fs-lg);
    margin: 0;
}

.hp-videos__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.75rem;
    margin-bottom: 2.5rem;
}

.hp-videos__footer { text-align: center; }

/* Card de video */
.hp-video-card {
    background: #fff;
    border: 1px solid var(--hp-color-border);
    border-radius: var(--hp-radius-md);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform var(--hp-trans-base), box-shadow var(--hp-trans-base);
}

.hp-video-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--hp-shadow-lg);
}

.hp-video-card__thumb {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: #000;
}

.hp-video-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform var(--hp-trans-base), opacity var(--hp-trans-base);
}

.hp-video-card:hover .hp-video-card__img {
    transform: scale(1.04);
    opacity: .85;
}

.hp-video-card__thumb-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #111;
    color: #ff0000;
    font-size: 3rem;
}

/* Botón play overlay */
.hp-video-card__play {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}

.hp-video-card__play-btn {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: rgba(255,0,0,.9);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform var(--hp-trans-base), background var(--hp-trans-fast);
    box-shadow: 0 4px 16px rgba(0,0,0,.4);
}

.hp-video-card__play-btn i {
    color: #fff;
    font-size: 1.25rem;
    margin-left: 3px;
}

.hp-video-card:hover .hp-video-card__play-btn {
    transform: scale(1.1);
    background: #ff0000;
}

.hp-video-card__badge {
    position: absolute;
    top: .6rem;
    left: .6rem;
    background: var(--hp-color-primary);
    color: #fff;
    font-size: var(--hp-fs-xs);
    font-weight: 600;
    padding: .2rem .65rem;
    border-radius: 999px;
}

.hp-video-card__body {
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: .6rem;
}

.hp-video-card__title {
    font-size: var(--hp-fs-lg);
    font-weight: 700;
    line-height: 1.3;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.hp-video-card__title a { color: var(--hp-color-text); text-decoration: none; }
.hp-video-card__title a:hover { color: var(--hp-color-primary); }

.hp-video-card__excerpt {
    font-size: var(--hp-fs-sm);
    color: var(--hp-color-text-muted);
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.hp-video-card__meta {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    margin-top: auto;
}

.hp-video-card__meta-item {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    font-size: var(--hp-fs-xs);
    color: var(--hp-color-text-soft);
}

.hp-video-card__meta-item i { color: var(--hp-color-primary); font-size: .75em; }

.hp-video-card__cta {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .5rem 1rem;
    background: #ff0000;
    color: #fff;
    border-radius: var(--hp-radius-sm);
    font-size: var(--hp-fs-sm);
    font-weight: 600;
    text-decoration: none;
    transition: background var(--hp-trans-fast);
    align-self: flex-start;
}

.hp-video-card__cta:hover { background: #cc0000; color: #fff; text-decoration: none; }

@media (max-width: 960px) { .hp-videos__grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 540px) { .hp-videos__grid { grid-template-columns: 1fr; } }

/* =========================================================================
   16. Single Video — Extra
   ========================================================================= */
.hp-single-video { background: #f8fafc; }

.hp-sv-player-wrap {
    background: #000;
    padding: 1.5rem 0;
}

.hp-sv-container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 var(--hp-container-pad);
}

.hp-sv-player {
    position: relative;
    aspect-ratio: 16 / 9;
    border-radius: var(--hp-radius-lg);
    overflow: hidden;
    box-shadow: 0 20px 60px rgba(0,0,0,.5);
}

.hp-sv-iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.hp-sv-no-video { text-align: center; padding: 2rem 0; }
.hp-sv-fallback-img { max-width: 100%; border-radius: var(--hp-radius-lg); margin: 0 auto; }
.hp-sv-no-video-msg { color: rgba(255,255,255,.7); margin-top: 1rem; }

.hp-sv-content-wrap { padding: 2.5rem 0 4rem; }

.hp-sv-layout {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 2.5rem;
    align-items: start;
}

.hp-sv-breadcrumb {
    font-size: var(--hp-fs-sm);
    color: var(--hp-color-text-soft);
    margin-bottom: 1rem;
    display: flex;
    align-items: center;
    gap: .4rem;
    flex-wrap: wrap;
}

.hp-sv-breadcrumb a { color: var(--hp-color-text-soft); }
.hp-sv-breadcrumb a:hover { color: var(--hp-color-primary); }

.hp-sv-title {
    font-size: clamp(1.5rem, 3vw, 2.25rem);
    letter-spacing: -.02em;
    margin-bottom: 1rem;
}

.hp-sv-meta {
    display: flex;
    align-items: center;
    gap: .75rem;
    flex-wrap: wrap;
    margin-bottom: 1.5rem;
}

.hp-sv-cat-badge {
    background: rgba(59,130,246,.1);
    color: var(--hp-color-primary);
    font-size: var(--hp-fs-xs);
    font-weight: 600;
    padding: .2rem .7rem;
    border-radius: 999px;
    text-decoration: none;
}

.hp-sv-meta-item {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    font-size: var(--hp-fs-sm);
    color: var(--hp-color-text-soft);
}

.hp-sv-yt-link { color: #ff0000; font-weight: 600; }
.hp-sv-yt-link:hover { color: #cc0000; }

.hp-sv-body { margin-top: 1.5rem; }

.hp-sv-nav {
    display: flex;
    gap: 1rem;
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 1px solid var(--hp-color-border);
}

.hp-sv-nav__prev, .hp-sv-nav__next {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: 1rem;
    border: 1px solid var(--hp-color-border);
    border-radius: var(--hp-radius-md);
    text-decoration: none;
    color: var(--hp-color-text);
    transition: border-color var(--hp-trans-fast), box-shadow var(--hp-trans-fast);
    flex: 1;
}

.hp-sv-nav__next { justify-content: flex-end; text-align: right; }
.hp-sv-nav__prev:hover, .hp-sv-nav__next:hover { border-color: var(--hp-color-primary); box-shadow: var(--hp-shadow-sm); }
.hp-sv-nav__prev span, .hp-sv-nav__next span { display: flex; flex-direction: column; gap: .15rem; font-size: var(--hp-fs-sm); font-weight: 600; }
.hp-sv-nav__prev small, .hp-sv-nav__next small { font-size: var(--hp-fs-xs); font-weight: 400; color: var(--hp-color-text-soft); }

/* Sidebar */
.hp-sv-sidebar { position: sticky; top: 80px; }

.hp-sv-sidebar__title {
    font-size: var(--hp-fs-lg);
    margin-bottom: 1rem;
    padding-bottom: .75rem;
    border-bottom: 2px solid var(--hp-color-primary);
}

.hp-sv-related {
    display: flex;
    gap: .75rem;
    text-decoration: none;
    color: var(--hp-color-text);
    padding: .75rem 0;
    border-bottom: 1px solid var(--hp-color-border);
    transition: color var(--hp-trans-fast);
}

.hp-sv-related:hover { color: var(--hp-color-primary); text-decoration: none; }

.hp-sv-related__thumb {
    position: relative;
    width: 120px;
    flex-shrink: 0;
    aspect-ratio: 16/9;
    border-radius: var(--hp-radius-sm);
    overflow: hidden;
    background: #000;
}

.hp-sv-related__thumb img { width: 100%; height: 100%; object-fit: cover; }
.hp-sv-related__placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; color: #ff0000; background: #111; }

.hp-sv-related__play {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0,0,0,.3);
}

.hp-sv-related__play i { color: #fff; font-size: 1rem; }

.hp-sv-related__title { font-size: var(--hp-fs-sm); font-weight: 600; line-height: 1.35; margin: 0 0 .25rem; }
.hp-sv-related__date { font-size: var(--hp-fs-xs); color: var(--hp-color-text-soft); }

@media (max-width: 960px) {
    .hp-sv-layout { grid-template-columns: 1fr; }
    .hp-sv-sidebar { position: static; }
}

/* =========================================================================
   17. Sección Podcasts — Extra
   ========================================================================= */
.hp-podcasts {
    padding: 5rem 0;
    background: #f8fafc;
}

.hp-podcasts__container {
    max-width: var(--hp-container-max);
    margin: 0 auto;
    padding: 0 var(--hp-container-pad);
}

.hp-podcasts__header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: 2.5rem;
    flex-wrap: wrap;
}

.hp-podcasts__title {
    font-size: clamp(1.75rem, 3vw, var(--hp-fs-3xl));
    letter-spacing: -.02em;
    margin: 0 0 .5rem;
    display: flex;
    align-items: center;
    gap: .6rem;
}

.hp-podcasts__title i { color: var(--hp-pod-accent, #3B82F6); }
.hp-podcasts__subtitle { color: var(--hp-color-text-muted); font-size: var(--hp-fs-lg); margin: 0; }

.hp-podcasts__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.25rem;
    margin-bottom: 2.5rem;
}

.hp-podcasts__footer { text-align: center; }

/* Card de podcast */
.hp-podcast-card {
    background: #fff;
    border: 1px solid var(--hp-color-border);
    border-radius: var(--hp-radius-md);
    padding: 1.25rem;
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    transition: box-shadow var(--hp-trans-base), border-color var(--hp-trans-base);
}

.hp-podcast-card:hover {
    box-shadow: var(--hp-shadow-md);
    border-color: rgba(59,130,246,.3);
}

.hp-podcast-card__cover {
    position: relative;
    flex-shrink: 0;
    width: 80px;
    height: 80px;
}

.hp-podcast-card__cover-img {
    width: 80px;
    height: 80px;
    object-fit: cover;
    border-radius: var(--hp-radius-md);
    display: block;
}

.hp-podcast-card__cover-placeholder {
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, var(--hp-pod-accent, #3B82F6), #1d4ed8);
    border-radius: var(--hp-radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    color: rgba(255,255,255,.9);
    font-size: 1.75rem;
}

.hp-podcast-card__ep-badge {
    position: absolute;
    bottom: -6px;
    right: -6px;
    background: var(--hp-pod-accent, #3B82F6);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    padding: 2px 6px;
    border-radius: 999px;
    white-space: nowrap;
}

.hp-podcast-card__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: .5rem; }

.hp-podcast-card__meta {
    display: flex;
    gap: .75rem;
    flex-wrap: wrap;
}

.hp-podcast-card__season,
.hp-podcast-card__date,
.hp-podcast-card__duration {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    font-size: var(--hp-fs-xs);
    color: var(--hp-color-text-soft);
}

.hp-podcast-card__season { color: var(--hp-pod-accent, #3B82F6); font-weight: 600; }
.hp-podcast-card__season i, .hp-podcast-card__date i, .hp-podcast-card__duration i { font-size: .7em; }

.hp-podcast-card__title { font-size: var(--hp-fs-base); font-weight: 700; line-height: 1.3; margin: 0; }
.hp-podcast-card__title a { color: var(--hp-color-text); text-decoration: none; }
.hp-podcast-card__title a:hover { color: var(--hp-pod-accent, #3B82F6); }

.hp-podcast-card__excerpt {
    font-size: var(--hp-fs-sm);
    color: var(--hp-color-text-muted);
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Reproductor inline */
.hp-podcast-card__player { margin-top: .25rem; }

.hp-podcast-card__listen-link {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-size: var(--hp-fs-sm);
    font-weight: 600;
    color: var(--hp-pod-accent, #3B82F6);
    text-decoration: none;
}

.hp-podcast-card__listen-link:hover { text-decoration: underline; }

@media (max-width: 768px) { .hp-podcasts__grid { grid-template-columns: 1fr; } }
@media (max-width: 540px) { .hp-podcast-card { flex-direction: column; } .hp-podcast-card__cover { width: 100%; height: 160px; } .hp-podcast-card__cover-img { width: 100%; height: 160px; } .hp-podcast-card__cover-placeholder { width: 100%; height: 160px; } }

/* =========================================================================
   18. Reproductor de audio compartido (card + single)
   ========================================================================= */
.hp-podcast-card__controls,
.hp-sp-controls {
    display: flex;
    align-items: center;
    gap: .75rem;
}

.hp-pod-play-btn {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--hp-pod-accent, #3B82F6);
    color: #fff;
    border: 0;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background var(--hp-trans-fast), transform var(--hp-trans-fast);
}

.hp-pod-play-btn--lg { width: 52px; height: 52px; font-size: 1.1rem; }
.hp-pod-play-btn:hover { background: #2563eb; transform: scale(1.05); }
.hp-pod-play-btn.is-playing i::before { content: "\f04c"; }

.hp-pod-progress-wrap {
    flex: 1;
    height: 4px;
    background: var(--hp-color-border);
    border-radius: 2px;
    cursor: pointer;
    position: relative;
}

.hp-pod-progress-wrap--lg { height: 6px; }

.hp-pod-progress-fill {
    height: 100%;
    width: 0%;
    background: var(--hp-pod-accent, #3B82F6);
    border-radius: 2px;
    transition: width .1s linear;
    pointer-events: none;
}

.hp-pod-time {
    font-size: var(--hp-fs-xs);
    color: var(--hp-color-text-soft);
    font-variant-numeric: tabular-nums;
    min-width: 32px;
    text-align: right;
}

/* Single podcast extras */
.hp-sp-track { flex: 1; display: flex; flex-direction: column; gap: .4rem; }
.hp-sp-times { display: flex; justify-content: space-between; }
.hp-sp-total-time { font-size: var(--hp-fs-xs); color: var(--hp-color-text-soft); font-variant-numeric: tabular-nums; }

.hp-sp-extra-controls { display: flex; align-items: center; gap: .5rem; }

.hp-sp-speed-btn {
    background: var(--hp-color-border);
    border: 0;
    border-radius: var(--hp-radius-sm);
    padding: .3rem .6rem;
    font-size: var(--hp-fs-xs);
    font-weight: 700;
    cursor: pointer;
    color: var(--hp-color-text);
    transition: background var(--hp-trans-fast);
}

.hp-sp-speed-btn:hover { background: var(--hp-pod-accent, #3B82F6); color: #fff; }

.hp-sp-download-btn {
    display: flex;
    align-items: center;
    color: var(--hp-color-text-soft);
    font-size: 1rem;
    text-decoration: none;
    transition: color var(--hp-trans-fast);
}

.hp-sp-download-btn:hover { color: var(--hp-pod-accent, #3B82F6); }

/* =========================================================================
   19. Single Podcast — Extra
   ========================================================================= */
.hp-single-podcast { background: #fff; }

.hp-sp-hero {
    background: linear-gradient(135deg, #0f172a, #1e3a5f);
    padding: 4rem 0;
    color: #fff;
}

.hp-sp-container {
    max-width: var(--hp-container-max);
    margin: 0 auto;
    padding: 0 var(--hp-container-pad);
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 3rem;
    align-items: start;
}

.hp-sp-cover__img {
    width: 220px;
    height: 220px;
    object-fit: cover;
    border-radius: var(--hp-radius-lg);
    box-shadow: 0 16px 40px rgba(0,0,0,.4);
    display: block;
}

.hp-sp-cover__placeholder {
    width: 220px;
    height: 220px;
    background: rgba(255,255,255,.08);
    border-radius: var(--hp-radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 4rem;
    color: rgba(255,255,255,.4);
}

.hp-sp-breadcrumb {
    font-size: var(--hp-fs-sm);
    color: rgba(255,255,255,.6);
    margin-bottom: 1rem;
    display: flex;
    align-items: center;
    gap: .4rem;
    flex-wrap: wrap;
}

.hp-sp-breadcrumb a { color: rgba(255,255,255,.6); }
.hp-sp-breadcrumb a:hover { color: #fff; }

.hp-sp-badges { display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: .75rem; }

.hp-sp-badge {
    font-size: var(--hp-fs-xs);
    font-weight: 600;
    padding: .25rem .75rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}

.hp-sp-badge--ep { background: var(--hp-pod-accent, #3B82F6); color: #fff; }
.hp-sp-badge--season { background: rgba(255,255,255,.12); color: rgba(255,255,255,.9); text-decoration: none; }
.hp-sp-badge--season:hover { background: rgba(255,255,255,.2); color: #fff; text-decoration: none; }

.hp-sp-title { font-size: clamp(1.5rem, 3vw, 2.25rem); color: #fff; margin-bottom: .75rem; line-height: 1.15; }

.hp-sp-meta { display: flex; gap: 1rem; flex-wrap: wrap; margin-bottom: 1rem; }
.hp-sp-meta span { display: inline-flex; align-items: center; gap: .4rem; font-size: var(--hp-fs-sm); color: rgba(255,255,255,.7); }

.hp-sp-excerpt { color: rgba(255,255,255,.8); line-height: 1.65; margin-bottom: 1.5rem; }

.hp-sp-player {
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: var(--hp-radius-md);
    padding: 1.25rem;
}

.hp-sp-content-wrap { padding: 3rem 0; }
.hp-sp-content-wrap .hp-sp-container { grid-template-columns: 1fr; }

.hp-sp-nav-wrap {
    padding: 0 0 4rem;
    background: #fff;
}

.hp-sp-nav-wrap .hp-sp-container { grid-template-columns: 1fr; }

.hp-sp-nav {
    display: flex;
    gap: 1rem;
}

.hp-sp-nav__item {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: 1rem 1.25rem;
    border: 1px solid var(--hp-color-border);
    border-radius: var(--hp-radius-md);
    text-decoration: none;
    color: var(--hp-color-text);
    flex: 1;
    transition: border-color var(--hp-trans-fast), box-shadow var(--hp-trans-fast);
}

.hp-sp-nav__next { justify-content: flex-end; text-align: right; }
.hp-sp-nav__item:hover { border-color: var(--hp-pod-accent, #3B82F6); box-shadow: var(--hp-shadow-sm); text-decoration: none; }
.hp-sp-nav__item span { display: flex; flex-direction: column; gap: .15rem; }
.hp-sp-nav__item small { font-size: var(--hp-fs-xs); color: var(--hp-pod-accent, #3B82F6); font-weight: 600; }

@media (max-width: 768px) {
    .hp-sp-container { grid-template-columns: 1fr; gap: 1.5rem; }
    .hp-sp-cover__img, .hp-sp-cover__placeholder { width: 160px; height: 160px; }
    .hp-sp-nav { flex-direction: column; }
}

/* =========================================================================
   20. Archive Videos + Archive Podcasts — páginas de listado completo
   ========================================================================= */

/* Hero compartido */
.hp-archive-videos__hero,
.hp-archive-podcast__hero {
    background: linear-gradient(135deg, #0f172a, #1e3a5f);
    color: #fff;
    padding: 3.5rem var(--hp-container-pad);
}

.hp-archive-videos__hero-inner,
.hp-archive-podcast__hero-inner {
    max-width: var(--hp-container-max);
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 1.5rem;
    margin-bottom: 2rem;
}

.hp-archive-videos__hero-icon,
.hp-archive-podcast__hero-icon {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: rgba(255,255,255,.1);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.75rem;
    flex-shrink: 0;
}

.hp-archive-videos__hero-icon { color: #ff0000; }
.hp-archive-podcast__hero-icon { color: var(--hp-pod-accent, #3B82F6); }

.hp-archive-videos__title,
.hp-archive-podcast__title {
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    color: #fff;
    margin: 0 0 .4rem;
    letter-spacing: -.02em;
}

.hp-archive-videos__subtitle,
.hp-archive-podcast__subtitle {
    color: rgba(255,255,255,.75);
    font-size: var(--hp-fs-lg);
    margin: 0;
}

/* Filtros de temporada y categoría */
.hp-archive-podcast__seasons,
.hp-archive-videos__cats {
    max-width: var(--hp-container-max);
    margin: 0 auto;
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
}

.hp-archive-season-btn,
.hp-archive-cat-btn {
    display: inline-block;
    padding: .4rem 1rem;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,.25);
    color: rgba(255,255,255,.8);
    text-decoration: none;
    font-size: var(--hp-fs-sm);
    font-weight: 500;
    transition: background var(--hp-trans-fast), border-color var(--hp-trans-fast), color var(--hp-trans-fast);
}

.hp-archive-season-btn:hover,
.hp-archive-cat-btn:hover {
    background: rgba(255,255,255,.12);
    color: #fff;
    text-decoration: none;
}

.hp-archive-season-btn.is-active,
.hp-archive-cat-btn.is-active {
    background: var(--hp-color-primary);
    border-color: var(--hp-color-primary);
    color: #fff;
}

/* Contenido */
.hp-archive-videos__content,
.hp-archive-podcast__content {
    padding: 3.5rem 0 5rem;
}

.hp-archive-videos__container,
.hp-archive-podcast__container {
    max-width: var(--hp-container-max);
    margin: 0 auto;
    padding: 0 var(--hp-container-pad);
}

/* Estado vacío */
.hp-archive-videos__empty,
.hp-archive-podcast__empty {
    text-align: center;
    padding: 4rem 0;
    color: var(--hp-color-text-muted);
}

.hp-archive-videos__empty i,
.hp-archive-podcast__empty i {
    font-size: 3rem;
    margin-bottom: 1rem;
    display: block;
    opacity: .4;
}

.hp-archive-videos__empty p,
.hp-archive-podcast__empty p {
    font-size: var(--hp-fs-lg);
    margin-bottom: 1.5rem;
}

/* Paginación */
.hp-archive-videos__pagination,
.hp-archive-podcast__pagination {
    margin-top: 3rem;
    display: flex;
    justify-content: center;
}

.hp-archive-videos__pagination .page-numbers,
.hp-archive-podcast__pagination .page-numbers {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: .4rem;
    flex-wrap: wrap;
}

.hp-archive-videos__pagination .page-numbers li a,
.hp-archive-videos__pagination .page-numbers li span,
.hp-archive-podcast__pagination .page-numbers li a,
.hp-archive-podcast__pagination .page-numbers li span {
    display: flex;
    align-items: center;
    gap: .4rem;
    padding: .5rem .9rem;
    border: 1px solid var(--hp-color-border);
    border-radius: var(--hp-radius-sm);
    color: var(--hp-color-text);
    text-decoration: none;
    font-size: var(--hp-fs-sm);
    transition: background var(--hp-trans-fast), border-color var(--hp-trans-fast);
}

.hp-archive-videos__pagination .page-numbers li a:hover,
.hp-archive-podcast__pagination .page-numbers li a:hover {
    background: var(--hp-color-primary);
    border-color: var(--hp-color-primary);
    color: #fff;
}

.hp-archive-videos__pagination .page-numbers li span.current,
.hp-archive-podcast__pagination .page-numbers li span.current {
    background: var(--hp-color-primary);
    border-color: var(--hp-color-primary);
    color: #fff;
}

/* =========================================================================
   21. Archive Cursos — página de listado completo
   ========================================================================= */
.hp-archive-courses__hero {
    background: linear-gradient(135deg, #0f172a, #1e3a5f);
    color: #fff;
    padding: 3.5rem var(--hp-container-pad);
}

.hp-archive-courses__hero-inner {
    max-width: var(--hp-container-max);
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 1.5rem;
    margin-bottom: 1.5rem;
}

.hp-archive-courses__hero-icon {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: rgba(255,255,255,.1);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.75rem;
    flex-shrink: 0;
    color: var(--hp-color-primary);
}

.hp-archive-courses__title {
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    color: #fff;
    margin: 0 0 .4rem;
    letter-spacing: -.02em;
}

.hp-archive-courses__subtitle {
    color: rgba(255,255,255,.75);
    font-size: var(--hp-fs-lg);
    margin: 0;
}

.hp-archive-courses__meta-bar {
    max-width: var(--hp-container-max);
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.hp-archive-courses__count {
    font-size: var(--hp-fs-sm);
    color: rgba(255,255,255,.65);
}

.hp-archive-courses__content {
    padding: 3.5rem 0 5rem;
}

.hp-archive-courses__container {
    max-width: var(--hp-container-max);
    margin: 0 auto;
    padding: 0 var(--hp-container-pad);
}

.hp-archive-courses__empty {
    text-align: center;
    padding: 4rem 0;
    color: var(--hp-color-text-muted);
}

.hp-archive-courses__empty i {
    font-size: 3rem;
    margin-bottom: 1rem;
    display: block;
    opacity: .4;
}

.hp-archive-courses__empty p {
    font-size: var(--hp-fs-lg);
    margin-bottom: 1.5rem;
}

/* =========================================================================
   22. Catálogo de Temas — página completa
   ========================================================================= */
.hp-archive-themes__hero {
    background: linear-gradient(135deg, #0f172a, #1e3a5f);
    color: #fff;
    padding: 3.5rem var(--hp-container-pad);
}

.hp-archive-themes__hero-inner {
    max-width: var(--hp-container-max);
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 1.5rem;
    margin-bottom: 1.25rem;
}

.hp-archive-themes__hero-icon {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: rgba(255,255,255,.1);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.75rem;
    flex-shrink: 0;
    color: #3B82F6;
}

.hp-archive-themes__title {
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    color: #fff;
    margin: 0 0 .4rem;
    letter-spacing: -.02em;
}

.hp-archive-themes__subtitle {
    color: rgba(255,255,255,.75);
    font-size: var(--hp-fs-lg);
    margin: 0;
}

.hp-archive-themes__meta-bar {
    max-width: var(--hp-container-max);
    margin: 0 auto;
}

.hp-archive-themes__count {
    font-size: var(--hp-fs-sm);
    color: rgba(255,255,255,.65);
}

.hp-archive-themes__content {
    padding: 3.5rem 0 5rem;
    background: #f8fafc;
}

.hp-archive-themes__container {
    max-width: var(--hp-container-max);
    margin: 0 auto;
    padding: 0 var(--hp-container-pad);
}

/* Grid de cards (estático, sin slider) */
.hp-archive-themes__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.75rem;
}

/* Card del catálogo (basada en hp-theme-card pero sin flex:0) */
.hp-theme-grid-card {
    background: #fff;
    border: 1px solid var(--hp-color-border);
    border-radius: var(--hp-radius-lg);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform var(--hp-trans-base), box-shadow var(--hp-trans-base);
}

.hp-theme-grid-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--hp-shadow-lg);
}

.hp-theme-grid-card__thumb {
    position: relative;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: #f1f5f9;
}

.hp-theme-grid-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform var(--hp-trans-base);
}

.hp-theme-grid-card:hover .hp-theme-grid-card__img {
    transform: scale(1.04);
}

.hp-theme-grid-card__thumb-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .75rem;
    background: linear-gradient(135deg, #1e293b, #334155);
    color: rgba(255,255,255,.8);
    font-size: 2.5rem;
}

.hp-theme-grid-card__thumb-placeholder span {
    font-size: var(--hp-fs-sm);
    font-weight: 600;
}

.hp-theme-grid-card__price-badge {
    position: absolute;
    top: .75rem;
    right: .75rem;
    background: rgba(0,0,0,.75);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    padding: .3rem .75rem;
    border-radius: 999px;
    font-family: var(--hp-font-heading);
    font-weight: 700;
    font-size: var(--hp-fs-sm);
    color: #fff;
}

.hp-theme-grid-card__price-badge .hp-price {
    color: #fff;
}

.hp-theme-grid-card__body {
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: .6rem;
}

.hp-theme-grid-card__name {
    font-size: var(--hp-fs-xl);
    font-weight: 700;
    margin: 0;
}

.hp-theme-grid-card__name a {
    color: var(--hp-color-text);
    text-decoration: none;
}

.hp-theme-grid-card__name a:hover { color: var(--hp-color-primary); }

.hp-theme-grid-card__description {
    font-size: var(--hp-fs-sm);
    color: var(--hp-color-text-muted);
    margin: 0;
    line-height: 1.55;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.hp-theme-grid-card__author {
    font-size: var(--hp-fs-sm);
    color: var(--hp-color-text-soft);
    margin: 0;
    display: flex;
    align-items: center;
    gap: .4rem;
    margin-top: auto;
}

.hp-theme-grid-card__footer {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding-top: .75rem;
    border-top: 1px solid var(--hp-color-border);
}

.hp-theme-grid-card__cta {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .5rem 1rem;
    background: var(--hp-color-primary);
    color: #fff;
    border-radius: var(--hp-radius-sm);
    font-size: var(--hp-fs-sm);
    font-weight: 600;
    text-decoration: none;
    transition: background var(--hp-trans-fast);
}

.hp-theme-grid-card__cta:hover {
    background: var(--hp-color-primary-dark);
    color: #fff;
    text-decoration: none;
}

.hp-theme-grid-card__demo {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    font-size: var(--hp-fs-sm);
    font-weight: 600;
    color: var(--hp-color-text-soft);
    text-decoration: none;
    transition: color var(--hp-trans-fast);
}

.hp-theme-grid-card__demo:hover {
    color: var(--hp-color-primary);
    text-decoration: none;
}

.hp-archive-themes__empty {
    text-align: center;
    padding: 4rem 0;
    color: var(--hp-color-text-muted);
}

.hp-archive-themes__empty i {
    font-size: 3rem;
    margin-bottom: 1rem;
    display: block;
    opacity: .4;
}

.hp-archive-themes__empty p {
    font-size: var(--hp-fs-lg);
    margin-bottom: 1.5rem;
}

@media (max-width: 960px) {
    .hp-archive-themes__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 540px) {
    .hp-archive-themes__grid { grid-template-columns: 1fr; }
}


/* =========================================================================
   Catálogo de Cursos — page-cursos.php
   ========================================================================= */

.hp-catalog-courses__hero {
	position: relative;
	overflow: hidden;
	padding: 4.5rem 0 3.5rem;
	background:
		radial-gradient(ellipse 60% 55% at 95% 5%, rgba(99,102,241,.12) 0%, transparent 65%),
		radial-gradient(ellipse 50% 60% at 5% 90%, rgba(59,130,246,.1) 0%, transparent 65%),
		linear-gradient(155deg, #f0f4ff 0%, #f8faff 55%, #fffbf0 100%);
}

.hp-catalog-courses__hero-bg {
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(99,102,241,.035) 1px, transparent 1px),
		linear-gradient(90deg, rgba(99,102,241,.035) 1px, transparent 1px);
	background-size: 44px 44px;
	mask-image: radial-gradient(ellipse 80% 80% at 50% 50%, black 0%, transparent 100%);
}

.hp-catalog-courses__hero-inner {
	position: relative;
	z-index: 1;
}

.hp-catalog-courses__body {
	padding: 3.5rem 0 5rem;
}

/* Badge en curso card */
.hp-course-card__badge {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #6366f1;
	background: rgba(99,102,241,.08);
	border: 1px solid rgba(99,102,241,.18);
	border-radius: 99px;
	padding: .2rem .65rem;
	margin-bottom: .6rem;
	align-self: flex-start;
}

/* Breadcrumb en catálogo de cursos */
.hp-catalog-courses__hero .hp-catalog__breadcrumb {
	color: var(--hp-color-text-muted);
	margin-bottom: 1rem;
}

/* Placeholder SVG para cursos */
.hp-course-card__thumb-placeholder {
	width: 100%; height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, #1e3a8a 0%, #3b82f6 55%, #6366f1 100%);
	color: rgba(255,255,255,.5);
}

/* Estado vacío catálogo */
.hp-catalog__empty {
	text-align: center;
	padding: 5rem 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
	color: var(--hp-color-text-muted);
}

.hp-catalog__empty svg { opacity: .2; }
.hp-catalog__empty p { font-size: 1.05rem; margin: 0; }