/* ──────────────────────────────────────────────────────────────────────
 *  StudiaHub Course Pitch — shortcode [studiahub_course_pitch]
 *
 *  Variante "pitch" / DTC. Mismas vars que coursepage (--shub-accent,
 *  --shub-secondary, --shub-cta-grad, etc) inyectadas inline en el
 *  wrapper desde el branding del payload. Layout más agresivo:
 *  hero gigante, sticky CTA, bonos con valor visible, sello de garantía,
 *  más uso del secondary color como acento.
 * ────────────────────────────────────────────────────────────────────── */

.slc-coursepitch {
    /* Mismos defaults que coursepage — se sobreescriben inline */
    --shub-accent: #7950F2;
    --shub-accent-dark: #5F3DC4;
    --shub-accent-soft: rgba(121, 80, 242, 0.10);
    --shub-accent-rgb: 121, 80, 242;
    --shub-secondary: #845EF7;
    --shub-secondary-rgb: 132, 94, 247;
    --shub-cta-grad: linear-gradient(135deg, #7950F2 0%, #5F3DC4 100%);
    --shub-hero-grad: linear-gradient(135deg, rgba(121,80,242,0.06) 0%, rgba(132,94,247,0.10) 60%, rgba(121,80,242,0.04) 100%);
    --shub-avatar-grad: linear-gradient(135deg, #845EF7, #5C7CFA);

    --shub-text-title: #0B1226;
    --shub-text-body: #475569;
    --shub-text-muted: #64748B;
    --shub-bg-app: #FFFFFF;
    --shub-bg-soft: #EEF2F7;
    --shub-border: #E2E8F0;

    --shub-radius: 16px;
    --shub-radius-lg: 24px;
    --shub-radius-pill: 999px;
    --shub-wrap: 1200px;
    --shub-wrap-narrow: 920px;
    --shub-section-y: clamp(88px, 10vw, 132px);
    --shub-title-gap: 52px;
    --shub-border-subtle: #EDF2F7;

    font-family: var(--e-global-typography-text-font-family, var(--shub-font, inherit)) !important;
    color: var(--shub-text-body);
    line-height: 1.65;
    width: 100%;
    /* El article es la boundary: un block theme (Twenty Twenty-*) mete el
     * article como hijo directo de .is-layout-constrained y le clava el
     * content-size (~645px) + margin-inline:auto, aplastando TODO el landing
     * a una columna centrada angosta. Rompemos ese content-size acá. La hoja
     * del plugin carga DESPUÉS de los global-styles del theme, así que esta
     * regla (misma specificity 0,1,0) gana por orden — sin !important. En
     * Hello Elementor no hay .is-layout-constrained, así que es no-op. El
     * ancho real del contenido lo sigue comandando .slc-cpitch__wrap (1200px). */
    max-width: none;
    margin-inline: 0;
    -webkit-font-smoothing: antialiased;
}
.slc-coursepitch *, .slc-coursepitch *::before, .slc-coursepitch *::after { box-sizing: border-box; }
/* Reset agresivo contra Elementor/theme injections.
 * Usamos :where() para que el reset tenga specificity 0 — así cualquier
 * regla con clase propia (.slc-cpitch__hero-title) la sobreescribe sin
 * tener que ser más específica.
 * Sin este reset, los h1/h2/h3 heredan line-heights y margins del theme
 * y la jerarquía visual se rompe. */
:where(.slc-coursepitch) h1,
:where(.slc-coursepitch) h2,
:where(.slc-coursepitch) h3,
:where(.slc-coursepitch) h4,
:where(.slc-coursepitch) h5,
:where(.slc-coursepitch) h6,
:where(.slc-coursepitch) p,
:where(.slc-coursepitch) ul,
:where(.slc-coursepitch) ol,
:where(.slc-coursepitch) li {
    margin: 0;
    padding: 0;
}
/* Headings con line-height tight propio — sino heredan 1.65 del body y los
 * títulos de varias líneas quedan con MUCHO aire interno. */
:where(.slc-coursepitch) h1,
:where(.slc-coursepitch) h2,
:where(.slc-coursepitch) h3,
:where(.slc-coursepitch) h4,
:where(.slc-coursepitch) h5,
:where(.slc-coursepitch) h6 { line-height: 1.15; }
:where(.slc-coursepitch) ul,
:where(.slc-coursepitch) ol { list-style: none; }
.slc-coursepitch a { text-decoration: none; }
/* Default text-align del wrapper para que ningún hijo herede left/center del theme */
.slc-coursepitch { text-align: left; }

/* ── Immunity al content-size del block theme ────────────────────────────
 * Un block theme opinado (Twenty Twenty-*) mete los elementos de contenido
 * bajo .is-layout-constrained y les clava el content-size (~645px), que
 * descuadra el hero. Ya lo rompimos en el root (.slc-coursepitch); esto es
 * belt-and-suspenders sobre los elementos de contenido, NO sobre los wrappers
 * de layout (.slc-cpitch__wrap declara su propio max-width y no está en la
 * lista, así que sobrevive intacto).
 *
 * Especificidad 0,1,0 (viene del .slc-coursepitch) → le gana al :where() de
 * bajo peso del theme, pero empata-pierde con los componentes del landing (que
 * declaran su propio max-width y vienen después). No-op en Hello Elementor. */
.slc-coursepitch :where(h1, h2, h3, h4, h5, h6, p, ul, ol, li, figure, blockquote, dl, dd, a) {
    max-width: none;
}
.slc-coursepitch :where(img, svg, video) { max-width: 100%; }

/* ── TIPOGRAFÍA: cuerpo = Text de Elementor, títulos = Accent de Elementor ──
 * La landing hereda la tipografía global del sitio (Elementor → Site Settings →
 * Typography). Los títulos (h1–h6) toman la Accent font con su peso, así no
 * quedan con un bold hardcodeado. Fallback: la font del branding del LMS
 * (--shub-font) y, si no hay, la del tema. !important para ganarle al
 * theme-style del tema sobre los headings. */
.slc-coursepitch h1, .slc-coursepitch h2, .slc-coursepitch h3,
.slc-coursepitch h4, .slc-coursepitch h5, .slc-coursepitch h6 {
    font-family: var(--e-global-typography-accent-font-family, var(--shub-font, inherit)) !important;
    font-weight: var(--e-global-typography-accent-font-weight, 700) !important;
}

.slc-cpitch__wrap { max-width: var(--shub-wrap); margin: 0 auto; padding: 0 32px; width: 100%; }
.slc-cpitch__wrap--narrow { max-width: var(--shub-wrap-narrow); }

/* ── TOP BAR — countdown inicio del curso (fija al scrollear) ─────────── */
.slc-cpitch__topbar {
    background: var(--shub-cta-grad);
    color: var(--shub-on-cta);
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 50;
    /* Oculta abajo hasta que el hero sale de vista (ver JS). Se fija abajo,
       no arriba, porque el menú sticky del sitio del cliente taparía la de
       arriba y la barra perdería su función. */
    transform: translateY(100%);
    transition: transform 0.35s ease;
    box-shadow: 0 -6px 24px -8px rgba(15, 23, 42, 0.25);
}
.slc-cpitch__topbar--docked { transform: translateY(0); }
.slc-cpitch__topbar-inner {
    max-width: var(--shub-wrap);
    margin: 0 auto;
    padding: 14px 32px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px 20px;
    font-size: 14px;
}
.slc-cpitch__topbar-center {
    display: inline-flex;
    align-items: center;
    gap: 14px;
}
.slc-cpitch__topbar-live {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-weight: 800;
    font-size: 11.5px;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    color: #fff;
    background: rgba(22, 199, 132, 0.18);
    border: 1px solid rgba(22, 199, 132, 0.35);
    border-radius: var(--shub-radius-pill);
    padding: 4px 12px 4px 10px;
}
.slc-cpitch__topbar-label { font-weight: 600; color: var(--shub-on-cta); opacity: 0.9; }
.slc-cpitch__topbar-timer {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-variant-numeric: tabular-nums;
}
.slc-cpitch__cd-unit {
    display: inline-flex;
    align-items: baseline;
    gap: 2px;
    background: rgba(255, 255, 255, 0.12);
    border-radius: 8px;
    padding: 4px 8px;
}
.slc-cpitch__cd-unit b { font-size: 15px; font-weight: 800; }
.slc-cpitch__cd-unit i { font-style: normal; font-size: 11px; font-weight: 600; opacity: 0.7; }
.slc-cpitch__topbar-cta {
    color: var(--shub-accent-dark);
    background: #fff;
    font-weight: 800;
    font-size: 13px;
    border-radius: 14px;
    padding: 6px 16px;
    white-space: nowrap;
    transition: transform 150ms ease;
}
.slc-cpitch__topbar-cta:hover { transform: translateY(-1px); color: var(--shub-accent-dark); }
@media (max-width: 640px) {
    /* En mobile la barra se apila y queda todo centrado; el botón se muestra. */
    .slc-cpitch__topbar-inner {
        flex-direction: column;
        justify-content: center;
        gap: 8px;
        padding: 10px 16px;
        font-size: 12.5px;
    }
    .slc-cpitch__topbar-live { display: none; }
    .slc-cpitch__topbar-center { flex-wrap: wrap; justify-content: center; gap: 4px 10px; }
    .slc-cpitch__topbar-cta { display: inline-block; }
}

.slc-cpitch__section { padding: var(--shub-section-y) 0; background: var(--shub-bg-app); }
.slc-cpitch__section--soft { background: var(--shub-bg-soft); }

/* Sección ¿Es para vos? — degradé con parallax fixed */
.slc-cpitch__section--audience {
    padding: var(--shub-section-y) 0;
    position: relative;
    background:
        radial-gradient(ellipse 90% 70% at 95% 10%, rgba(var(--shub-accent-rgb), 0.18), transparent 60%),
        radial-gradient(ellipse 70% 60% at 5% 90%, rgba(var(--shub-secondary-rgb), 0.13), transparent 60%),
        #fff;
    background-attachment: fixed;
}
.slc-cpitch__section--audience > * { position: relative; z-index: 1; }

/* Reveal animation — estado inicial oculto */
.slc-reveal-item {
    opacity: 0;
    transform: translateY(-12px);
    transition: opacity 0.7s cubic-bezier(0.4, 0, 0.2, 1), transform 0.7s cubic-bezier(0.4, 0, 0.2, 1);
}
.slc-reveal-item.slc-revealed {
    opacity: 1;
    transform: translateY(0);
}

/* Header de sección — DEFAULT left-aligned.
 * Se ve coherente con contenido tipo lista/grid/cards (que casi siempre
 * son left-aligned). Para secciones cuyo contenido es realmente centrado
 * (hero, CTA final, banner sobre fondo oscuro) usamos el modifier --center. */
.slc-cpitch__section-head { margin-bottom: var(--shub-title-gap); text-align: left; }
.slc-cpitch__section-head--center { text-align: center; }
.slc-cpitch__eyebrow {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.6px;
    color: var(--shub-accent);
    padding: 0;
    margin: 0 0 18px;
}
.slc-cpitch__eyebrow--accent {
    color: #fff;
    background: var(--shub-accent);
}
.slc-cpitch__eyebrow--on-dark {
    color: #fff;
    background: rgba(255,255,255,0.15);
}
.slc-cpitch__h2 {
    font-size: clamp(28px, 3.4vw, 42px);
    font-weight: 900;
    color: var(--shub-text-title);
    letter-spacing: -0.035em;
    line-height: 1.1;
    max-width: 28ch;
    margin: 0;
}
/* Cuando el header está centrado, el h2 también se auto-centra horizontalmente. */
.slc-cpitch__section-head--center .slc-cpitch__h2 { margin-left: auto; margin-right: auto; }

/* ── HERO ASYMMETRIC (2 cols: texto izq + card derecha) ────────────────
 * Robusto con o sin trailer: la card derecha se autoajusta a:
 *   trailer + price block, o thumbnail + price block, o solo price block.
 * El "skin DTC" sigue: bg radial multi-color (accent + secondary), card
 * con sombra marcada y radius lg, gradient pill arriba, garantía sticker.
 * ──────────────────────────────────────────────────────────────────── */
.slc-cpitch__hero {
    position: relative;
    padding: clamp(64px, 8vw, 112px) 0;
    background: #fff;
    overflow: hidden;
}
.slc-cpitch__hero-bg {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 80% 50% at 50% 0%, rgba(var(--shub-accent-rgb), 0.10), transparent 70%),
        radial-gradient(ellipse 60% 40% at 15% 70%, rgba(var(--shub-secondary-rgb), 0.07), transparent 70%),
        radial-gradient(ellipse 50% 50% at 90% 80%, rgba(var(--shub-accent-rgb), 0.06), transparent 70%);
    pointer-events: none;
}
.slc-cpitch__hero-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1.15fr 0.95fr;
    gap: clamp(40px, 5vw, 72px);
    align-items: center;
}
.slc-cpitch__hero-main { text-align: left; }

.slc-cpitch__pretitle { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 24px; }
.slc-cpitch__pretitle-pill {
    background: var(--shub-cta-grad);
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    padding: 8px 16px;
    border-radius: var(--shub-radius-pill);
    box-shadow: 0 8px 22px -8px rgba(var(--shub-accent-rgb), 0.6);
}
.slc-cpitch__pretitle-cat {
    background: rgba(var(--shub-accent-rgb), 0.08);
    color: var(--shub-accent-dark);
    font-size: 13px;
    font-weight: 600;
    padding: 8px 16px;
    border-radius: var(--shub-radius-pill);
}

.slc-cpitch__hero-title {
    font-size: clamp(36px, 5.2vw, 62px);
    font-weight: 900;
    color: var(--shub-text-title);
    line-height: 1.05;
    letter-spacing: -0.035em;
    margin: 0 0 20px;
    max-width: 18ch;
}
.slc-cpitch__hero-sub {
    font-size: clamp(16px, 1.6vw, 19px);
    color: var(--shub-text-body);
    max-width: 52ch;
    margin: 0 0 32px;
    line-height: 1.6;
}
.slc-cpitch__hero-proof {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--shub-text-title);
    font-size: 14px;
    font-weight: 500;
    margin: 0 0 24px;
}
.slc-cpitch__stars { display: inline-flex; color: #FAB005; }
.slc-cpitch__proof-sep { display: none; }
.slc-cpitch__proof-date {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(var(--shub-accent-rgb), 0.08);
    padding: 5px 12px;
    border-radius: var(--shub-radius-pill);
    border: 1px solid rgba(var(--shub-accent-rgb), 0.20);
    font-weight: 600;
}
.slc-cpitch__proof-cal { display: inline-flex; color: var(--shub-accent); }

.slc-cpitch__hero-meta { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; }
.slc-cpitch__meta-chip { display: inline-flex; align-items: center; gap: 8px; background: transparent; color: var(--shub-text-muted); font-size: 13px; font-weight: 500; padding: 8px 14px; border-radius: var(--shub-radius-pill); border: 1px solid var(--shub-border); }
.slc-cpitch__meta-icon { display: inline-flex; color: var(--shub-accent); }
/* Chip de fecha de inicio destacado con el tono clarito del color del cliente */
.slc-cpitch__meta-chip--date {
    background: rgba(var(--shub-accent-rgb), 0.08);
    border-color: rgba(var(--shub-accent-rgb), 0.20);
    color: var(--shub-text-title);
    font-weight: 600;
}

/* Botones del hero */
.slc-cpitch__hero-ctas {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 36px;
}

/* Visual derecho — foto + floating cards */
.slc-cpitch__hero-visual {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}
.slc-cpitch__hero-photo-wrap {
    position: relative;
    width: 100%;
    max-width: 520px;
    /* SIN aspect-ratio forzado: el wrap envuelve la imagen a su tamaño natural.
       Forzar un ratio (ej. 4/3) escalaba/recortaba la foto del tenant —que puede
       tener otra proporción (la del genograma es ~3/2)— y se veía pixelada. Al
       no forzar ratio, la imagen se muestra nítida y el wrap coincide con ella,
       así las cajitas flotantes (ancladas al wrap) quedan en su lugar. */
}
.slc-cpitch__hero-photo {
    width: 100%;
    height: auto;
    /* border-radius con !important: el tema del cliente resetea estilos de <img>. */
    border-radius: var(--shub-radius-lg) !important;
    display: block;
    box-shadow: 0 32px 80px -20px rgba(15,23,42,0.22);
}

/* Cajitas flotantes */
.slc-cpitch__hero-float {
    position: absolute;
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 8px 32px -8px rgba(15,23,42,0.18);
    border: 1px solid rgba(255,255,255,0.9);
    padding: 12px 16px;
    display: flex;
    align-items: center;
    gap: 10px;
    max-width: 220px;
    backdrop-filter: blur(8px);
    will-change: transform;
}
.slc-cpitch__hero-float--1 { top: -16px; left: -24px; }
.slc-cpitch__hero-float--2 { bottom: 32px; right: -24px; }
.slc-cpitch__hero-float--3 { bottom: -16px; left: 32px; }
.slc-cpitch__hero-float-icon {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: rgba(var(--shub-accent-rgb), 0.10);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--shub-accent);
    font-size: 17px;
}
.slc-cpitch__hero-float-icon svg { width: 16px; height: 16px; }
.slc-cpitch__hero-float-text {
    font-size: 12px;
    font-weight: 600;
    color: var(--shub-text-title);
    line-height: 1.35;
}

/* Card precio (keep for compatibility) */
.slc-cpitch__hero-card {
    background: #fff;
    border: 1px solid var(--shub-border);
    border-radius: var(--shub-radius-lg);
    overflow: hidden;
    box-shadow: 0 30px 72px -28px rgba(15,23,42,0.28);
}
.slc-cpitch__hero-media { position: relative; background: #000; }
.slc-cpitch__hero-media .slc-cpitch__trailer-facade { aspect-ratio: 16 / 9; }
.slc-cpitch__hero-thumb { width: 100%; display: block; aspect-ratio: 16 / 9; object-fit: cover; }

.slc-cpitch__trailer-facade {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    background-color: #000;
    background-size: cover;
    background-position: center;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.2s ease;
}
.slc-cpitch__trailer-facade:hover { transform: scale(1.005); }
.slc-cpitch__play { display: inline-flex; }
.slc-cpitch__trailer-facade--active { cursor: default; }

.slc-cpitch__hero-cardbody { padding: 28px; }
.slc-cpitch__hero-price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 12px; margin-bottom: 22px; }
.slc-cpitch__price-old { color: rgba(255,255,255,0.4); text-decoration: line-through; font-size: 18px; }
.slc-cpitch__price-now { font-size: clamp(22px, 2.4vw, 28px); font-weight: 700; color: #fff; line-height: 1; letter-spacing: -0.02em; }
.slc-cpitch__price-inst { color: rgba(255,255,255,0.5); font-size: 14px; flex-basis: 100%; margin: 0; }

.slc-cpitch__btn {
    display: inline-block;
    background: var(--shub-cta-grad);
    color: var(--shub-on-cta, #fff);
    font-weight: 700;
    text-align: center;
    border-radius: 14px;
    box-shadow: 0 16px 36px -10px rgba(var(--shub-accent-rgb), 0.6);
    transition: transform 150ms ease, box-shadow 150ms ease;
}
.slc-cpitch__btn:hover { transform: translateY(-2px); box-shadow: 0 22px 44px -12px rgba(var(--shub-accent-rgb), 0.7); color: var(--shub-on-cta, #fff); }
.slc-cpitch__btn--xl { font-size: 18px; padding: 20px 44px; min-width: 280px; }
.slc-cpitch__btn--lg { font-size: 16px; padding: 16px 40px; }
.slc-cpitch__bonuses-cta { display: flex; justify-content: center; margin-top: 40px; }
.slc-cpitch__bonuses-section .slc-cpitch__btn {
    background: #fff;
    color: var(--shub-accent-dark);
    box-shadow: 0 16px 40px -10px rgba(0,0,0,0.4);
}
.slc-cpitch__bonuses-section .slc-cpitch__btn:hover {
    color: var(--shub-accent-dark);
    box-shadow: 0 22px 50px -10px rgba(0,0,0,0.5);
}
.slc-cpitch__btn--md { font-size: 14px; padding: 12px 24px; }
.slc-cpitch__btn--block { display: block; width: 100%; font-size: 17px; padding: 17px 24px; }
/* Botón secundario — sin fondo, solo borde */
.slc-cpitch__btn.slc-cpitch__btn--outline {
    background: transparent;
    color: var(--shub-text-title);
    border: 1.5px solid var(--shub-border);
    box-shadow: none;
}
.slc-cpitch__btn.slc-cpitch__btn--outline:hover {
    background: var(--shub-bg-soft);
    color: var(--shub-text-title);
    border-color: var(--shub-text-muted);
    box-shadow: none;
    transform: none;
}
.slc-cpitch__btn--on-dark { background: #fff; color: var(--shub-accent-dark); box-shadow: 0 16px 36px -10px rgba(0,0,0,0.4); }
.slc-cpitch__btn--on-dark:hover { color: var(--shub-accent-dark); box-shadow: 0 22px 44px -12px rgba(0,0,0,0.5); }

.slc-cpitch__deadline { display: inline-flex; align-items: center; gap: 8px; color: #E8590C; font-size: 14px; font-weight: 600; margin-top: 14px; }
.slc-cpitch__deadline--center { display: flex; justify-content: center; }
.slc-cpitch__deadline-dot { width: 9px; height: 9px; border-radius: 50%; background: #FD7E14; box-shadow: 0 0 0 0 rgba(253,126,20,0.5); animation: slc-cpitch-pulse 1.8s infinite; }
@keyframes slc-cpitch-pulse { 0% { box-shadow: 0 0 0 0 rgba(253,126,20,0.5); } 70% { box-shadow: 0 0 0 10px rgba(253,126,20,0); } 100% { box-shadow: 0 0 0 0 rgba(253,126,20,0); } }

.slc-cpitch__hero-guarantee {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--shub-text-muted);
    font-size: 13px;
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid var(--shub-border);
}
.slc-cpitch__hero-guarantee svg { color: #12B886; flex-shrink: 0; }

/* ── CHECKS (outcomes) — left-aligned, coherente con header left ─── */
.slc-cpitch__checks {
    max-width: var(--shub-wrap-narrow);
    margin: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px 28px;
}
.slc-cpitch__check { display: flex; align-items: flex-start; gap: 14px; font-size: 16.5px; color: var(--shub-text-body); line-height: 1.55; }
.slc-cpitch__check-icon { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; background: var(--shub-cta-grad); color: #fff; font-weight: 700; font-size: 16px; flex-shrink: 0; margin-top: 1px; box-shadow: 0 6px 16px -6px rgba(var(--shub-accent-rgb), 0.5); }

/* ── OUTCOMES — cards estilo referencia ──────────────────────────────── */
.slc-cpitch__outcomes-sub {
    font-size: 16px;
    color: var(--shub-text-body);
    max-width: 60ch;
    margin: 16px auto 0;
    line-height: 1.6;
    text-align: center;
}
.slc-cpitch__outcomes-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 20px;
    margin-top: var(--shub-title-gap);
}
.slc-cpitch__outcome-card {
    background: #fff;
    border: 1px solid var(--shub-border);
    border-radius: var(--shub-radius-lg);
    padding: 28px 24px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    transition: border-color 150ms ease, transform 150ms ease;
}
.slc-cpitch__outcome-card:hover {
    border-color: rgba(var(--shub-accent-rgb), 0.3);
    transform: translateY(-2px);
}
.slc-cpitch__outcome-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: var(--shub-cta-grad);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    flex-shrink: 0;
    box-shadow: 0 8px 20px -8px rgba(var(--shub-accent-rgb), 0.55);
}
.slc-cpitch__outcome-icon svg {
    width: 22px;
    height: 22px;
}
.slc-cpitch__outcome-title {
    font-size: 17px;
    font-weight: 700;
    color: var(--shub-text-title);
    line-height: 1.3;
    margin: 0;
}
.slc-cpitch__outcome-desc {
    font-size: 14px;
    color: var(--shub-text-body);
    line-height: 1.6;
    margin: 0;
}
@media (max-width: 640px) {
    .slc-cpitch__outcomes-grid { grid-template-columns: 1fr 1fr; }
}

/* ── MATERIALES con ícono Flaticon uicons ────────────────────────────── */
.slc-cpitch__materials-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px 32px;
}
.slc-cpitch__material {
    display: flex;
    align-items: center;
    gap: 16px;
    background: var(--shub-bg-soft);
    border: 1px solid var(--shub-border);
    border-radius: var(--shub-radius);
    padding: 16px 20px;
    transition: border-color 150ms ease, transform 150ms ease;
}
.slc-cpitch__material:hover {
    border-color: rgba(var(--shub-accent-rgb), 0.3);
    transform: translateY(-2px);
}
.slc-cpitch__material-icon {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: rgba(var(--shub-accent-rgb), 0.10);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--shub-accent);
}
.slc-cpitch__material-icon svg {
    width: 18px;
    height: 18px;
}
.slc-cpitch__material-text {
    font-size: 15px;
    color: var(--shub-text-body);
    line-height: 1.45;
}
@media (max-width: 640px) {
    .slc-cpitch__materials-list { grid-template-columns: 1fr; }
}

/* ── BAND (social proof bar) ─────────────────────────────────────────── */
.slc-cpitch__band {
    background: var(--shub-text-title);
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    padding: 0;
    position: relative;
}
.slc-cpitch__band::before { display: none; }
.slc-cpitch__band-grid {
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    position: relative;
    z-index: 1;
    /* Más ancha que el wrap normal (1200px) para que entren hasta 5 stats en
       una sola línea. Pisa el max-width de .slc-cpitch__wrap. */
    max-width: min(1440px, 94vw);
}
/* Cada stat es una celda con padding generoso y separador vertical */
.slc-cpitch__band-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 28px 24px;
    position: relative;
    gap: 6px;
}
/* Separador vertical entre items */
.slc-cpitch__band-item + .slc-cpitch__band-item::before {
    content: '';
    position: absolute;
    left: 0;
    top: 25%;
    height: 50%;
    width: 1px;
    background: rgba(255, 255, 255, 0.14);
}
/* Ícono — oculto por ahora */
.slc-cpitch__band-icon { display: none; }
.slc-cpitch__band-num {
    font-size: clamp(22px, 2.6vw, 32px);
    font-weight: 800;
    color: color-mix(in srgb, var(--shub-accent), white 70%);
    line-height: 1;
    letter-spacing: -0.03em;
    text-align: center;
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 0.5s ease, transform 0.5s ease;
}
.slc-cpitch__band-num.slc-band-visible {
    opacity: 1;
    transform: translateY(0);
}
.slc-cpitch__band-label {
    font-size: 11px;
    font-weight: 600;
    color: color-mix(in srgb, var(--shub-accent), white 45%);
    margin-top: 2px;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    text-align: center;
}

/* ── PROSE (long description) ────────────────────────────────────────── */
/* Sección unificada por qué + outcomes */
.slc-cpitch__whyoutcomes .slc-cpitch__section-head { margin-bottom: 36px; }

/* Grid video izq + texto der — mismo ancho que las cards */
.slc-cpitch__longdesc-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: start;
}
/* Sin video ni imagen → el texto ocupa todo el ancho del contenedor. */
.slc-cpitch__longdesc-grid--no-media {
    grid-template-columns: 1fr;
}
.slc-cpitch__longdesc-img-wrap {
    border-radius: var(--shub-radius-lg);
    overflow: hidden;
    aspect-ratio: 16 / 10;
}
/* Columna izquierda (título + video): queda fija mientras el texto scrollea.
   top deja lugar a la barra sticky del countdown cuando existe. */
.slc-cpitch__longdesc-left {
    position: sticky;
    top: 100px;
    align-self: start;
}
/* Sin media → 1 columna, el bloque izquierdo (solo título) no es sticky. */
.slc-cpitch__longdesc-grid--no-media .slc-cpitch__longdesc-left {
    position: static;
}
.slc-cpitch__longdesc-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.slc-cpitch__longdesc-trailer {
    width: 100%;
    height: 100%;
    min-height: 240px;
    border-radius: var(--shub-radius-lg);
    overflow: hidden;
}

/* Bloque outcomes dentro de la sección unificada */
.slc-cpitch__outcomes-block { margin-top: 56px; }
.slc-cpitch__outcomes-h3 {
    font-size: clamp(20px, 2.4vw, 28px);
    font-weight: 700;
    color: var(--shub-text-title);
    letter-spacing: -0.02em;
    margin: 0 0 28px;
}
@media (max-width: 960px) {
    .slc-cpitch__longdesc-grid { grid-template-columns: 1fr; gap: 32px; }
    /* En mobile las columnas se apilan: sin sticky. */
    .slc-cpitch__longdesc-img-wrap { aspect-ratio: 16 / 7; }
    .slc-cpitch__longdesc-left { position: static; }
}
.slc-cpitch__prose { font-size: 16.5px; color: var(--shub-text-body); line-height: 1.75; }
.slc-cpitch__prose p { margin-bottom: 18px; }
.slc-cpitch__prose p:last-child { margin-bottom: 0; }
/* Restauramos los marcadores dentro de la descripción larga: el reset global
 * (`:where(.slc-coursepitch) ul,ol { list-style: none }`) los apaga en toda la
 * landing, pero la prosa del admin sí escribe listas con bullets/números y hay
 * que respetarlas. `:where()` tiene specificity 0, así que estos selectores
 * ganan sin !important. */
.slc-cpitch__prose ul,
.slc-cpitch__prose ol { margin: 0 0 18px; padding-left: 1.5em; }
.slc-cpitch__prose ul { list-style: disc; }
.slc-cpitch__prose ol { list-style: decimal; }
.slc-cpitch__prose li { margin-bottom: 6px; }
.slc-cpitch__prose ul:last-child,
.slc-cpitch__prose ol:last-child { margin-bottom: 0; }

/* ── PERSONAS (para quién es) — left-aligned ─────────────────────── */
.slc-cpitch__personas { max-width: var(--shub-wrap-narrow); margin: 0; display: flex; flex-direction: column; gap: 12px; }
.slc-cpitch__persona {
    display: flex;
    align-items: center;
    gap: 18px;
    background: #fff;
    border: 1px solid var(--shub-border);
    border-radius: var(--shub-radius);
    padding: 20px 24px;
    font-size: 16px;
    color: var(--shub-text-body);
    transition: border-color 150ms ease, transform 150ms ease;
}
.slc-cpitch__persona > span:not(.slc-cpitch__persona-mark) { flex: 1; }
.slc-cpitch__persona:hover { border-color: var(--shub-accent); transform: translateX(4px); }
/* Check verde al inicio — mismo estilo que .slc-cpitch__check-icon pero verde */
.slc-cpitch__persona-mark {
    flex-shrink: 0;
    order: -1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: linear-gradient(135deg, #22c55e 0%, #16a34a 100%);
    color: #fff;
    font-weight: 700;
    font-size: 16px;
    margin-top: 1px;
    box-shadow: 0 6px 16px -6px rgba(34, 197, 94, 0.5);
}
.slc-cpitch__persona-mark svg { width: 15px; height: 15px; }

/* ── OUTLINE ─────────────────────────────────────────────────────────── */
.slc-cpitch__outline-meta { display: flex; align-items: center; justify-content: flex-start; flex-wrap: wrap; gap: 10px; margin-top: calc(var(--shub-title-gap) * -1 + 24px); margin-bottom: var(--shub-title-gap); }
.slc-cpitch__dot { opacity: 0.5; }
.slc-cpitch__modules { display: flex; flex-direction: column; gap: 14px; }
.slc-cpitch__module {
    background: #fff;
    border: 1px solid var(--shub-border);
    border-radius: var(--shub-radius);
    overflow: hidden;
    transition: border-color 150ms, box-shadow 150ms;
}
.slc-cpitch__module[open] {
    border-color: var(--shub-accent);
    box-shadow: 0 10px 24px -12px rgba(var(--shub-accent-rgb), 0.25);
}
.slc-cpitch__module-head {
    list-style: none;
    display: grid;
    grid-template-columns: auto 1fr auto auto;
    align-items: center;
    gap: 18px;
    padding: 20px 24px;
    cursor: pointer;
    user-select: none;
}
.slc-cpitch__module-head::-webkit-details-marker { display: none; }
.slc-cpitch__module-num {
    font-size: 14px;
    font-weight: 800;
    color: #fff;
    background: var(--shub-cta-grad);
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    letter-spacing: 0.5px;
    flex-shrink: 0;
}
.slc-cpitch__module-title { font-size: 17px; font-weight: 700; color: var(--shub-text-title); margin: 0; line-height: 1.3; }
/* Badge "EN VIVO" con puntito titilante */
.slc-cpitch__live-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    vertical-align: middle;
    margin-left: 10px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    color: #0E9F6E;
    background: rgba(18, 184, 134, 0.12);
    border: 1px solid rgba(18, 184, 134, 0.30);
    border-radius: var(--shub-radius-pill);
    padding: 3px 10px 3px 8px;
    white-space: nowrap;
}
.slc-cpitch__live-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #16C784;
    box-shadow: 0 0 0 0 rgba(22, 199, 132, 0.6);
    animation: slc-live-pulse 1.4s ease-out infinite;
}
/* Badge en vivo a nivel lección — más compacto que el del módulo. */
.slc-cpitch__live-badge--sm {
    font-size: 10px;
    gap: 5px;
    margin-left: 8px;
    letter-spacing: 0.4px;
    padding: 2px 8px 2px 6px;
}
.slc-cpitch__live-badge--sm .slc-cpitch__live-dot {
    width: 6px;
    height: 6px;
}
@keyframes slc-live-pulse {
    0%   { box-shadow: 0 0 0 0 rgba(22, 199, 132, 0.6); opacity: 1; }
    70%  { box-shadow: 0 0 0 6px rgba(22, 199, 132, 0); opacity: 0.85; }
    100% { box-shadow: 0 0 0 0 rgba(22, 199, 132, 0); opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
    .slc-cpitch__live-dot { animation: none; }
}
.slc-cpitch__module-meta { font-size: 13px; color: var(--shub-text-muted); white-space: nowrap; }
.slc-cpitch__chevron { width: 10px; height: 10px; border-right: 2px solid var(--shub-text-muted); border-bottom: 2px solid var(--shub-text-muted); transform: rotate(-45deg); transition: transform 200ms; flex-shrink: 0; }
.slc-cpitch__module[open] > .slc-cpitch__module-head .slc-cpitch__chevron,
.slc-cpitch__faq-item[open] > .slc-cpitch__faq-q .slc-cpitch__chevron { transform: rotate(45deg); border-color: var(--shub-accent); }
.slc-cpitch__lessons { border-top: 1px solid var(--shub-border); padding: 8px 0 12px; }
.slc-cpitch__lesson { display: flex; align-items: center; gap: 12px; padding: 12px 24px 12px 78px; font-size: 15px; color: var(--shub-text-body); }
.slc-cpitch__lesson + .slc-cpitch__lesson { border-top: 1px solid var(--shub-bg-soft); }
.slc-cpitch__lesson-icon { display: inline-flex; color: var(--shub-text-muted); flex-shrink: 0; }
.slc-cpitch__lesson-icon--live { color: #12B886; }
.slc-cpitch__lesson > span:nth-child(2) { flex: 1; }
.slc-cpitch__lesson-dur { font-size: 13px; color: var(--shub-text-muted); white-space: nowrap; }
.slc-cpitch__lesson-date { color: #0E9F6E; font-weight: 600; }

/* ── BONOS (valor visible, vibe pitch) ───────────────────────────────── */
.slc-cpitch__bonuses-section {
    background: var(--shub-text-title);
    position: relative;
}
.slc-cpitch__bonuses-section .slc-cpitch__eyebrow--accent {
    background: rgba(var(--shub-accent-rgb), 0.25);
    color: rgba(255,255,255,0.9);
}
.slc-cpitch__bonuses-section .slc-cpitch__h2 {
    color: #fff;
}
.slc-cpitch__bonuses { display: flex; flex-direction: column; gap: 16px; }
.slc-cpitch__bonus {
    display: grid;
    grid-template-columns: 220px 1fr;
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.10);
    border-radius: var(--shub-radius-lg);
    overflow: hidden;
    transition: transform 150ms ease, background 150ms ease;
}
/* Sin imagen: una sola columna */
.slc-cpitch__bonus:not(:has(.slc-cpitch__bonus-img-wrap)) {
    grid-template-columns: 1fr;
}
.slc-cpitch__bonus:hover {
    transform: translateY(-2px);
    background: rgba(255,255,255,0.09);
}
/* Foto izquierda — cubre el contenedor si la card es baja; si el texto la
 * estira mucho, la imagen frena en max-height y queda centrada (margin auto)
 * en lugar de deformarse a lo largo. */
.slc-cpitch__bonus-img-wrap {
    overflow: hidden;
    min-height: 160px;
    display: flex;
}
.slc-cpitch__bonus-img {
    width: 100%;
    height: 100%;
    max-height: 300px;
    object-fit: cover;
    margin: auto;
    display: block;
    transition: transform 300ms ease;
}
.slc-cpitch__bonus:hover .slc-cpitch__bonus-img { transform: scale(1.04); }
/* Columna derecha: título+desc a la izq, valor a la der */
.slc-cpitch__bonus-body {
    padding: 24px 28px;
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto;
    column-gap: 32px;
    align-items: center;
}
.slc-cpitch__bonus-title { font-size: 17px; font-weight: 700; color: #fff; margin: 0 0 6px; grid-column: 1; grid-row: 1; min-width: 0; overflow-wrap: anywhere; }
.slc-cpitch__bonus-desc { font-size: 14px; color: rgba(255,255,255,0.6); margin: 0; line-height: 1.55; grid-column: 1; grid-row: 2; min-width: 0; overflow-wrap: anywhere; }
/* Valor: columna derecha, ocupa las dos filas, centrado verticalmente */
.slc-cpitch__bonus-value {
    grid-column: 2;
    grid-row: 1 / 3;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    border-left: 1px solid rgba(255,255,255,0.12);
    padding-left: 28px;
    white-space: nowrap;
}
.slc-cpitch__bonus-value-label {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: rgba(255,255,255,0.4);
}
.slc-cpitch__bonus-value-num {
    font-size: 16px;
    font-weight: 600;
    color: rgba(255,255,255,0.4);
    text-decoration: line-through;
}
.slc-cpitch__bonus-free {
    font-size: 12px;
    font-weight: 700;
    color: #0CA678;
    background: rgba(18,184,134,0.10);
    border: 1px solid rgba(18,184,134,0.2);
    border-radius: var(--shub-radius-pill);
    padding: 4px 12px;
}
@media (max-width: 640px) {
    .slc-cpitch__bonus { grid-template-columns: 1fr; }
    .slc-cpitch__bonus-img-wrap { min-height: 180px; aspect-ratio: 16/7; }
}

/* ── INSTRUCTORES ────────────────────────────────────────────────────── */
.slc-cpitch__instructors { display: flex; flex-direction: column; gap: 24px; }
.slc-cpitch__instructor {
    display: grid;
    grid-template-columns: 96px 1fr;
    gap: 24px;
    align-items: center;
    background: #fff;
    border: 1px solid var(--shub-border);
    border-radius: var(--shub-radius-lg);
    padding: 24px 28px;
}
.slc-cpitch__instructor-photo {
    width: 96px;
    height: 96px;
    border-radius: 50%;
    overflow: hidden;
    background: var(--shub-avatar-grad);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 12px 28px -12px rgba(var(--shub-accent-rgb), 0.5);
}
.slc-cpitch__instructor-photo img { width: 100%; height: 100%; object-fit: cover; }
.slc-cpitch__instructor-initial { font-size: 38px; font-weight: 700; color: #fff; }
.slc-cpitch__instructor-body { padding-top: 0; }
.slc-cpitch__instructor-name { font-size: 19px; font-weight: 700; color: var(--shub-text-title); margin: 0; }
.slc-cpitch__instructor-role { font-size: 12.5px; color: var(--shub-accent); font-weight: 700; margin: 4px 0 8px; text-transform: uppercase; letter-spacing: 0.8px; }
.slc-cpitch__instructor-bio { font-size: 14.5px; color: var(--shub-text-body); line-height: 1.6; margin: 0; }

/* ── RESEÑAS ─────────────────────────────────────────────────────────── */
/* ── MARQUEE DE TESTIMONIOS ──────────────────────────────────────────── */
@keyframes slc-marquee-left {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}
@keyframes slc-marquee-right {
    0%   { transform: translateX(-50%); }
    100% { transform: translateX(0); }
}
.slc-cpitch__reviews-section { overflow: hidden; }
.slc-cpitch__marquee {
    overflow: hidden;
    margin-top: 20px;
    -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 12%, #000 88%, transparent 100%);
    mask-image: linear-gradient(to right, transparent 0%, #000 12%, #000 88%, transparent 100%);
}
.slc-cpitch__marquee-track {
    display: flex;
    gap: 16px;
    width: max-content;
    will-change: transform;
}
.slc-cpitch__marquee[data-direction="left"]  .slc-cpitch__marquee-track {
    animation: slc-marquee-left 35s linear infinite;
}
.slc-cpitch__marquee[data-direction="right"] .slc-cpitch__marquee-track {
    animation: slc-marquee-right 42s linear infinite;
}
.slc-cpitch__marquee:hover .slc-cpitch__marquee-track,
.slc-cpitch__marquee:focus-within .slc-cpitch__marquee-track {
    animation-play-state: paused;
}

/* Card individual */
.slc-cpitch__marquee .slc-cpitch__review {
    width: 340px;
    flex-shrink: 0;
}
/* Grid estático cuando hay pocas reseñas (sin marquee): centrado, sin repetir. */
.slc-cpitch__reviews-static {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 20px;
}
.slc-cpitch__reviews-static .slc-cpitch__review {
    flex: 0 1 340px;
    max-width: 340px;
}
.slc-cpitch__review {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 14px;
    background: var(--shub-bg-soft);
    border: none;
    border-radius: var(--shub-radius-lg);
    padding: 28px 28px 24px;
    overflow: hidden;
    transition: transform 150ms ease, box-shadow 150ms ease;
}
.slc-cpitch__review:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 24px -8px rgba(15,23,42,0.10);
}
/* Comilla SVG — arriba izquierda, color del acento */
.slc-cpitch__review-quote {
    display: block;
    color: var(--shub-accent);
    margin-bottom: 8px;
    user-select: none;
}
.slc-cpitch__review-quote svg {
    width: 24px;
    height: auto;
    display: block;
}
/* Texto: no itálica, semibold, oscuro */
.slc-cpitch__review-text {
    font-size: 15px;
    font-style: normal;
    font-weight: 500;
    color: var(--shub-text-title);
    flex: 1;
    line-height: 1.6;
}
/* Autor + estrellas a la derecha */
.slc-cpitch__review-author {
    display: flex;
    align-items: center;
    gap: 10px;
    padding-top: 16px;
    border-top: 1px solid var(--shub-border);
    margin-top: auto;
}
.slc-cpitch__review-stars {
    display: inline-flex;
    color: #FAB005;
    margin-left: auto;
    font-size: 13px;
    gap: 1px;
}

/* Pill de rating — reemplaza el eyebrow */
.slc-cpitch__reviews-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--shub-text-title);
    border-radius: var(--shub-radius-pill);
    padding: 7px 16px;
    margin-bottom: 20px;
}
.slc-cpitch__reviews-big {
    font-size: 14px;
    font-weight: 700;
    color: #fff;
    line-height: 1;
}
.slc-cpitch__reviews-pill .slc-cpitch__stars {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    color: #FAB005;
}
.slc-cpitch__reviews-count {
    font-size: 13px;
    color: #fff;
    white-space: nowrap;
}

/* Grid de cards */
.slc-cpitch__reviews-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.slc-cpitch__review {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 12px;
    background: #fff;
    border: 1px solid var(--shub-border);
    border-radius: var(--shub-radius);
    padding: 24px;
    overflow: hidden;
    transition: border-color 150ms ease, transform 150ms ease;
}
.slc-cpitch__review:hover {
    border-color: rgba(var(--shub-accent-rgb), 0.25);
    transform: translateY(-2px);
}
.slc-cpitch__review-author {
    display: flex;
    align-items: center;
    gap: 10px;
    border-top: 1px solid var(--shub-border-subtle);
    padding-top: 14px;
    margin-top: auto;
    position: relative;
    z-index: 1;
}
/* Avatar: color pleno del acento, letra en violeta oscuro */
.slc-cpitch__avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: rgba(var(--shub-accent-rgb), 0.15);
    color: var(--shub-accent-dark);
    font-weight: 700;
    font-size: 14px;
    flex-shrink: 0;
    overflow: hidden;
}
.slc-cpitch__avatar--img { object-fit: cover; background: #F1F5F9; }
.slc-cpitch__review-name { font-weight: 600; color: var(--shub-text-title); font-size: 14px; }

/* ── PRICING BLOCK ───────────────────────────────────────────────────── */
.slc-cpitch__pricing-section {
    position: relative;
    background:
        radial-gradient(ellipse 90% 70% at 95% 10%, rgba(var(--shub-accent-rgb), 0.18), transparent 60%),
        radial-gradient(ellipse 70% 60% at 5% 90%, rgba(var(--shub-secondary-rgb), 0.13), transparent 60%),
        #fff;
    background-attachment: fixed;
}
.slc-cpitch__pricing-section > * { position: relative; z-index: 1; }

/* Card central de precio */
.slc-cpitch__pricing-card {
    background: #fff;
    border: 1px solid var(--shub-border);
    border-radius: var(--shub-radius-lg);
    overflow: hidden;
    max-width: 520px;
    margin: 0 auto 32px;
    box-shadow: 0 4px 32px -8px rgba(15,23,42,0.10);
}
.slc-cpitch__pricing-hero-img {
    width: 100%;
    aspect-ratio: 16 / 10;
    overflow: hidden;
}
.slc-cpitch__pricing-hero-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
/* Título del curso dentro de la card */
.slc-cpitch__pricing-course-title {
    font-size: clamp(20px, 2.2vw, 26px);
    font-weight: 800;
    color: var(--shub-text-title);
    letter-spacing: -0.02em;
    line-height: 1.2;
    text-align: center;
    margin: 0;
    padding: 28px 36px 0;
}
.slc-cpitch__pricing-start {
    display: flex;
    align-items: center;
    gap: 7px;
    width: fit-content;
    margin: 24px auto 0;
    padding: 6px 16px;
    font-size: 13px;
    font-weight: 600;
    color: var(--shub-text-body);
    background: rgba(var(--shub-accent-rgb), 0.08);
    border: 1px solid rgba(var(--shub-accent-rgb), 0.20);
    border-radius: var(--shub-radius-pill);
}
.slc-cpitch__pricing-start-ico { display: inline-flex; color: var(--shub-accent); }
/* Cuando la fecha va arriba del título, dejamos aire entre ambos */
.slc-cpitch__pricing-start + .slc-cpitch__pricing-course-title { padding-top: 20px; }

/* Checklist */
.slc-cpitch__pricing-checklist {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    margin: 0 0 28px;
    padding: 18px 36px 0;
    list-style: none;
}
.slc-cpitch__pricing-check {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 14px;
    color: var(--shub-text-body);
    line-height: 1.5;
}
.slc-cpitch__pricing-check-icon {
    color: var(--shub-accent);
    font-weight: 700;
    flex-shrink: 0;
    margin-top: 2px;
}
.slc-cpitch__pricing-check-icon svg { width: 14px; height: 14px; display: block; }

/* Precio */
.slc-cpitch__pricing-price {
    text-align: center;
    margin-bottom: 24px;
    padding: 0 36px;
}
.slc-cpitch__pricing-original {
    font-size: 13px;
    color: var(--shub-text-muted);
    display: block;
    margin-bottom: 6px;
}
.slc-cpitch__pricing-original s { opacity: 0.6; }
.slc-cpitch__pricing-now {
    font-size: clamp(22px, 2.4vw, 28px);
    font-weight: 700;
    color: var(--shub-text-title);
    letter-spacing: -0.02em;
    line-height: 1;
    margin: 4px 0;
}
.slc-cpitch__pricing-inst {
    font-size: 13px;
    color: var(--shub-text-muted);
    display: block;
    margin-top: 4px;
}
.slc-cpitch__pricing-offer-timer {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-top: 14px;
    padding: 7px 14px;
    background: rgba(232, 89, 12, 0.10);
    border-radius: var(--shub-radius-pill);
    font-size: 13.5px;
    color: #C2410C;
    font-weight: 600;
}
.slc-cpitch__pricing-offer-timer strong { font-weight: 800; }
.slc-cpitch__pricing-offer-timer--live strong { font-variant-numeric: tabular-nums; letter-spacing: 0.3px; }

/* CTA */
.slc-cpitch__pricing-cta {
    display: block;
    width: auto;
    box-sizing: border-box;
    text-align: center;
    font-size: 15px;
    padding: 16px 24px;
    letter-spacing: 0.02em;
    margin: 0 36px 20px;
}
.slc-cpitch__pricing-cta--closed {
    background: var(--shub-bg-soft) !important;
    color: var(--shub-text-muted) !important;
    cursor: not-allowed;
    pointer-events: none;
}

/* Logos de pago */
.slc-cpitch__pricing-logos {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 16px;
    padding: 0 36px;
}
.slc-cpitch__pricing-logos img {
    height: 22px;
    width: auto;
    object-fit: contain;
    filter: grayscale(20%);
    opacity: 0.8;
}

/* Trust badges */
.slc-cpitch__pricing-trust {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
    padding: 0 36px 32px;
}
.slc-cpitch__pricing-trust-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: var(--shub-text-muted);
    background: var(--shub-bg-soft);
    border: 1px solid var(--shub-border);
    border-radius: var(--shub-radius-pill);
    padding: 5px 12px;
}
.slc-cpitch__trust-ico { color: var(--shub-accent); flex-shrink: 0; }

/* Banner garantía */
.slc-cpitch__pricing-guarantee {
    max-width: 520px;
    margin: 40px auto 0;
    background: linear-gradient(135deg, rgba(18,184,134,0.07), rgba(32,201,151,0.12));
    border: 1px solid rgba(18,184,134,0.28);
    border-radius: var(--shub-radius-lg);
    padding: 22px 26px;
    display: flex;
    align-items: center;
    gap: 18px;
}
.slc-cpitch__pricing-guarantee-icon {
    flex-shrink: 0;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: #fff;
    color: #12B886;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 8px 20px -8px rgba(18,184,134,0.5), inset 0 0 0 2px rgba(18,184,134,0.25);
}
.slc-cpitch__pricing-guarantee-title {
    font-size: 15px;
    font-weight: 700;
    color: var(--shub-text-title);
    display: block;
    margin-bottom: 6px;
}
.slc-cpitch__pricing-guarantee-text {
    font-size: 14px;
    color: var(--shub-text-body);
    line-height: 1.6;
    margin: 0;
}

/* Bonos en versión light (dentro del pricing) */
.slc-cpitch__bonuses--light .slc-cpitch__bonus {
    background: #fff;
    border-color: var(--shub-border);
}
.slc-cpitch__bonuses--light .slc-cpitch__bonus:hover {
    background: var(--shub-bg-soft);
}
.slc-cpitch__bonuses--light .slc-cpitch__bonus-title { color: var(--shub-text-title); }
.slc-cpitch__bonuses--light .slc-cpitch__bonus-desc  { color: var(--shub-text-body); }
.slc-cpitch__bonuses--light .slc-cpitch__bonus-value-label { color: var(--shub-text-muted); }
.slc-cpitch__bonuses--light .slc-cpitch__bonus-value-num   { color: var(--shub-text-muted); }
.slc-cpitch__bonuses--light .slc-cpitch__bonus-value { border-left-color: var(--shub-border); }

/* Grid de features incluidas */
.slc-cpitch__pricing-features { max-width: var(--shub-wrap-narrow); margin: 44px auto 0; }
.slc-cpitch__pricing-features-label {
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 1.4px;
    color: var(--shub-accent);
    text-align: center;
    margin-bottom: 30px;
}
.slc-cpitch__pricing-features-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
.slc-cpitch__pricing-feature {
    background: #fff;
    border: 1px solid var(--shub-border);
    border-radius: var(--shub-radius);
    padding: 16px 18px;
    display: flex;
    align-items: center;
    gap: 14px;
    font-size: 14px;
    color: var(--shub-text-body);
    line-height: 1.45;
}
.slc-cpitch__pricing-feature-icon {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: rgba(var(--shub-accent-rgb), 0.08);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--shub-accent);
}
.slc-cpitch__pricing-feature-icon svg { width: 16px; height: 16px; }
@media (max-width: 640px) {
    .slc-cpitch__pricing-features-grid { grid-template-columns: 1fr; }
    .slc-cpitch__pricing-course-title { padding: 24px 24px 0; }
    .slc-cpitch__pricing-checklist { padding: 16px 24px 0; }
    .slc-cpitch__pricing-price { padding: 0 24px; }
    .slc-cpitch__pricing-cta { margin: 0 24px 20px; }
    .slc-cpitch__pricing-logos { padding: 0 24px; }
    .slc-cpitch__pricing-trust { padding: 0 24px 24px; }
}

/* ── GARANTÍA — sello circular ───────────────────────────────────────── */
.slc-cpitch__guarantee {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 36px;
    align-items: center;
    background: linear-gradient(135deg, rgba(18,184,134,0.06), rgba(32,201,151,0.10));
    border: 1px solid rgba(18,184,134,0.25);
    border-radius: var(--shub-radius-lg);
    padding: 40px;
}
.slc-cpitch__seal {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    background: linear-gradient(135deg, #20C997, #12B886);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 18px 40px -12px rgba(18,184,134,0.5), inset 0 0 0 5px rgba(255,255,255,0.25), inset 0 0 0 8px rgba(255,255,255,0.6), inset 0 0 0 9px #12B886;
    flex-shrink: 0;
    position: relative;
}
.slc-cpitch__seal::before {
    content: '';
    position: absolute;
    inset: -8px;
    border-radius: 50%;
    border: 2px dashed rgba(18,184,134,0.5);
}
.slc-cpitch__seal-inner { text-align: center; }
.slc-cpitch__seal-top { font-size: 9px; font-weight: 800; letter-spacing: 1.4px; opacity: 0.9; }
.slc-cpitch__seal-mid { font-size: 32px; font-weight: 900; line-height: 1; margin: 2px 0; }
.slc-cpitch__seal-bot { font-size: 8.5px; font-weight: 800; letter-spacing: 1.2px; opacity: 0.9; }
.slc-cpitch__guarantee-body { text-align: left; }
.slc-cpitch__guarantee-title { font-size: 24px; font-weight: 700; color: var(--shub-text-title); margin: 0 0 10px; }
.slc-cpitch__guarantee-text { font-size: 16px; color: var(--shub-text-body); line-height: 1.65; margin: 0; }

/* ── FAQ ─────────────────────────────────────────────────────────────── */
.slc-cpitch__faq { display: flex; flex-direction: column; gap: 12px; }
.slc-cpitch__faq-item { background: #fff; border: 1px solid var(--shub-border); border-radius: var(--shub-radius); overflow: hidden; }
.slc-cpitch__faq-item[open] { border-color: var(--shub-accent); }
.slc-cpitch__faq-q { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 22px 24px; cursor: pointer; user-select: none; font-size: 16.5px; font-weight: 600; color: var(--shub-text-title); }
.slc-cpitch__faq-q::-webkit-details-marker { display: none; }
.slc-cpitch__faq-a { padding: 0 24px 22px; font-size: 15.5px; color: var(--shub-text-body); line-height: 1.65; }
/* Contenido HTML del FAQ (faq[].a viene del LMS con formato): restauramos el
   estilo de listas/párrafos que el reset general (:where) deja sin viñetas. */
.slc-cpitch__faq-a p { margin: 0 0 12px; }
.slc-cpitch__faq-a p:last-child { margin-bottom: 0; }
.slc-cpitch__faq-a ul, .slc-cpitch__faq-a ol { margin: 0 0 12px; padding-left: 1.4em; }
.slc-cpitch__faq-a ul { list-style: disc; }
.slc-cpitch__faq-a ol { list-style: decimal; }
.slc-cpitch__faq-a li { margin: 0 0 6px; }
.slc-cpitch__faq-a li:last-child { margin-bottom: 0; }
.slc-cpitch__faq-a a { color: var(--shub-accent); text-decoration: underline; }
.slc-cpitch__faq-a strong, .slc-cpitch__faq-a b { font-weight: 700; }

/* ── REQUISITOS ──────────────────────────────────────────────────────── */
/* Grid 2 columnas: foto izq + texto der */
.slc-cpitch__reqs-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px;
    align-items: center;
}
.slc-cpitch__reqs-img-wrap {
    border-radius: var(--shub-radius-lg);
    overflow: hidden;
    aspect-ratio: 4 / 3;
}
.slc-cpitch__reqs-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.slc-cpitch__reqs-body { display: flex; flex-direction: column; }
.slc-cpitch__reqs { display: flex; flex-direction: column; gap: 14px; margin: 0; }
.slc-cpitch__reqs li { display: flex; align-items: flex-start; gap: 14px; font-size: 16px; color: var(--shub-text-body); }
.slc-cpitch__req-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--shub-accent); flex-shrink: 0; margin-top: 10px; }

/* ── PAGO SEGURO (estilos compartidos logos) ─────────────────────────── */
.slc-cpitch__payment-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 16px 40px;
}
.slc-cpitch__payment-label {
    font-family: var(--e-global-typography-text-font-family, var(--shub-font, inherit)) !important;
    font-size: 15px;
    font-weight: 600;
    color: var(--shub-text-body);
    letter-spacing: 0.01em;
    white-space: nowrap;
}
.slc-cpitch__payment-logos {
    display: flex;
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    gap: 0 28px;
}
.slc-cpitch__payment-item {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
}
.slc-cpitch__payment-logo {
    display: block;
    height: 32px;
    width: 32px;
    object-fit: contain;
    opacity: 1;
}
.slc-cpitch__payment-name {
    font-family: var(--e-global-typography-text-font-family, var(--shub-font, inherit)) !important;
    font-size: 13px;
    font-weight: 700;
    color: var(--shub-text-body);
    letter-spacing: 0.02em;
}

/* ── CTA FINAL GIGANTE ───────────────────────────────────────────────── */
.slc-cpitch__final {
    background: linear-gradient(135deg, var(--shub-text-title) 0%, #1E293B 100%);
    padding: clamp(56px, 8vw, 96px) 0 0;
    text-align: center;
    color: #fff;
    position: relative;
    overflow: hidden;
}
.slc-cpitch__final::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 60% 60% at 30% 0%, rgba(var(--shub-accent-rgb), 0.3), transparent 60%),
        radial-gradient(ellipse 60% 60% at 75% 100%, rgba(var(--shub-secondary-rgb), 0.2), transparent 60%);
    pointer-events: none;
}
.slc-cpitch__final-inner {
    position: relative;
    z-index: 1;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
}
.slc-cpitch__final-title {
    font-size: clamp(26px, 3.2vw, 36px);
    font-weight: 800;
    color: #fff;
    letter-spacing: -0.02em;
    margin: 14px 0 28px;
    line-height: 1.1;
    white-space: nowrap;
}
/* Precio apilado: tachado arriba, real abajo */
.slc-cpitch__final-price {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    margin-bottom: 20px;
}
.slc-cpitch__price-old--lg {
    font-size: 16px;
    font-weight: 400;
    color: rgba(255,255,255,0.5);
    text-decoration: line-through;
}
.slc-cpitch__final-now {
    font-size: clamp(28px, 3.6vw, 38px);
    font-weight: 800;
    color: #fff;
    line-height: 1;
    letter-spacing: -0.02em;
}
.slc-cpitch__final-inst {
    font-size: 13px;
    color: rgba(255,255,255,0.6);
    margin-top: 4px;
}
.slc-cpitch__final-trust {
    font-size: 13px;
    color: rgba(255,255,255,0.55);
    margin-top: 20px;
}
/* Pago seguro integrado al pie del bloque oscuro */
.slc-cpitch__final-payment {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 12px 24px;
    margin-top: 36px;
    padding: 20px 32px;
    border-top: 1px solid rgba(255,255,255,0.1);
    width: 100%;
}
.slc-cpitch__final-payment-label {
    font-size: 12px;
    font-weight: 600;
    color: rgba(255,255,255,0.5);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    white-space: nowrap;
}
.slc-cpitch__payment-logo--light {
    filter: brightness(0) invert(1);
    opacity: 0.55;
}
.slc-cpitch__payment-name--light {
    color: rgba(255,255,255,0.55);
}

/* ── STICKY CTA ──────────────────────────────────────────────────────── */
.slc-cpitch__sticky {
    position: fixed;
    bottom: 0; left: 0; right: 0;
    background: rgba(255,255,255,0.96);
    backdrop-filter: blur(14px);
    border-top: 1px solid var(--shub-border);
    box-shadow: 0 -8px 30px -10px rgba(15,23,42,0.15);
    padding: 14px 0;
    z-index: 9990;
    transform: translateY(110%);
    transition: transform 280ms cubic-bezier(.2,.8,.2,1);
}
.slc-cpitch__sticky--visible { transform: translateY(0); }
.slc-cpitch__sticky-inner { display: flex; align-items: center; gap: 18px; }
.slc-cpitch__sticky-text { flex: 1; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.slc-cpitch__sticky-title { font-size: 15px; color: var(--shub-text-title); font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.slc-cpitch__sticky-price { font-size: 14px; color: var(--shub-text-title); font-weight: 700; display: flex; align-items: baseline; gap: 8px; }
.slc-cpitch__sticky-price .slc-cpitch__price-old { font-size: 13px; color: var(--shub-text-muted); font-weight: 500; }

/* ── RESPONSIVE ──────────────────────────────────────────────────────── */
@media (max-width: 960px) {
    .slc-cpitch__reqs-grid { grid-template-columns: 1fr; gap: 40px; }
    .slc-cpitch__reqs-img-wrap { aspect-ratio: 16 / 7; }
    .slc-cpitch__hero-grid { grid-template-columns: 1fr; gap: 40px; }
    .slc-cpitch__hero-title { max-width: none; }
    .slc-cpitch__band-grid { gap: 28px 32px; flex-wrap: wrap; }
    .slc-cpitch__reviews-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
    .slc-coursepitch { --shub-title-gap: 28px; }
    .slc-cpitch__wrap { padding: 0 18px; }
    .slc-cpitch__section { padding: 64px 0; }
    .slc-cpitch__checks { grid-template-columns: 1fr; }
    .slc-cpitch__reviews-grid { grid-template-columns: 1fr; }
    .slc-cpitch__hero-cardbody { padding: 22px; }
    .slc-cpitch__btn--xl { min-width: 0; width: 100%; padding: 18px 24px; font-size: 17px; }
    .slc-cpitch__instructor {
        grid-template-columns: 1fr;
        gap: 22px;
        text-align: center;
        padding: 28px 22px;
    }
    .slc-cpitch__instructor-photo { margin: 0 auto; width: 120px; height: 120px; }
    .slc-cpitch__instructor-body { padding-top: 0; }
    .slc-cpitch__bonus {
        grid-template-columns: 1fr;
        gap: 14px;
        text-align: left;
    }
    .slc-cpitch__bonus-value { text-align: left; align-self: flex-start; }
    .slc-cpitch__guarantee {
        grid-template-columns: 1fr;
        text-align: center;
        padding: 32px 22px;
        gap: 24px;
    }
    .slc-cpitch__seal { margin: 0 auto; width: 120px; height: 120px; }
    .slc-cpitch__seal-mid { font-size: 26px; }
    .slc-cpitch__reviews-hero { flex-direction: column; gap: 12px; text-align: center; }
    .slc-cpitch__module-head {
        grid-template-columns: auto 1fr auto;
        gap: 14px;
        padding: 18px;
    }
    .slc-cpitch__module-meta { grid-column: 1 / -1; padding-left: 48px; }
    .slc-cpitch__lesson { padding-left: 60px; padding-right: 18px; }
    .slc-cpitch__sticky-text .slc-cpitch__price-old { display: none; }
    .slc-cpitch__btn--md { padding: 12px 18px; font-size: 13px; }
    /* El parallax fijo es poco fiable en móviles: lo desactivamos para
       evitar saltos y dejamos el degradé como fondo normal. */
    .slc-cpitch__section--audience,
    .slc-cpitch__pricing-section { background-attachment: scroll; }
}

/* ── DEFENSIVE LAYER: overrides contra Elementor / theme injections ─────
 * Cuando la landing se embebe en un widget de Elementor, su CSS sube la
 * specificity con `.elementor-widget-...`. Estas reglas duplicadas con
 * `.elementor-widget` como prefijo ganan la cascade sin necesidad de
 * `!important`. NO afectan landings que no usen Elementor. */
.elementor-widget .slc-coursepitch .slc-cpitch__final-inner { text-align: center; }
.elementor-widget .slc-coursepitch .slc-cpitch__hero-main { text-align: left; }
.elementor-widget .slc-coursepitch .slc-cpitch__hero-title { margin: 0 0 22px; }
.elementor-widget .slc-coursepitch .slc-cpitch__hero-sub { margin: 0 0 26px; }
.elementor-widget .slc-coursepitch .slc-cpitch__pretitle { margin: 0 0 24px; }
.elementor-widget .slc-coursepitch .slc-cpitch__hero-proof { margin: 0 0 28px; }
.elementor-widget .slc-coursepitch .slc-cpitch__section-head { text-align: left; }
.elementor-widget .slc-coursepitch .slc-cpitch__section-head--center { text-align: center; }
.elementor-widget .slc-coursepitch .slc-cpitch__band-grid { justify-content: center; }
.elementor-widget .slc-coursepitch .slc-cpitch__band-grid,
.elementor-widget .slc-coursepitch .slc-cpitch__band-item,
.elementor-widget .slc-coursepitch .slc-cpitch__band-num,
.elementor-widget .slc-coursepitch .slc-cpitch__band-label { text-align: center; }
.elementor-widget .slc-coursepitch p { margin: 0; }
/* El chip de fecha (un <p>) se centra con margin auto; el reset de p de arriba
   se lo pisaba en Elementor y quedaba a la izquierda. Le devolvemos el centrado. */
.elementor-widget .slc-coursepitch .slc-cpitch__pricing-start { margin: 24px auto 0; }
.elementor-widget .slc-coursepitch .slc-cpitch__prose p { margin-bottom: 18px; }
.elementor-widget .slc-coursepitch .slc-cpitch__prose p:last-child { margin-bottom: 0; }
.elementor-widget .slc-coursepitch .slc-cpitch__pricing-features-label { margin: 0 0 30px; }

/* ── DEFENSIVE LAYER: color/fondo de los CTA contra Elementor ───────────
 * Mismo motivo que en coursepage.css: los botones son <a> y Elementor pisa su
 * color con el link-color del kit global. Re-forzamos color y fondo scopeados
 * bajo `.slc-coursepitch` + !important. Las variantes (claro invertido,
 * outline y cerrado) van con mayor specificity para ganarle a la regla base
 * de forma determinista (sin depender del orden). */
.slc-coursepitch .slc-cpitch__btn {
    background: var(--shub-cta-grad) !important;
    color: var(--shub-on-cta, #fff) !important;
}
/* Variantes claras (invertidas sobre fondo de color/oscuro). */
.slc-coursepitch .slc-cpitch__btn.slc-cpitch__btn--on-dark,
.slc-coursepitch .slc-cpitch__bonuses-section .slc-cpitch__btn {
    background: #fff !important;
    color: var(--shub-accent-dark) !important;
}
/* Topbar CTA (no es .slc-cpitch__btn): botón claro sobre la barra de color. */
.slc-coursepitch .slc-cpitch__topbar-cta {
    background: #fff !important;
    color: var(--shub-accent-dark) !important;
}
/* Botón secundario outline: transparente con texto de marca; preservamos su
 * cambio de fondo en hover (por eso el override explícito del :hover). */
.slc-coursepitch .slc-cpitch__btn.slc-cpitch__btn--outline {
    background: transparent !important;
    color: var(--shub-text-title) !important;
}
.slc-coursepitch .slc-cpitch__btn.slc-cpitch__btn--outline:hover {
    background: var(--shub-bg-soft) !important;
}
/* Pricing cerrado (deshabilitado): gris, no degradé. Más específico que la
 * base porque el <span> también lleva `.slc-cpitch__btn`. */
.slc-coursepitch .slc-cpitch__btn.slc-cpitch__pricing-cta--closed {
    background: var(--shub-bg-soft) !important;
    color: var(--shub-text-muted) !important;
}

/* El hero-photo ya no necesita capa defensiva de aspect-ratio: la imagen va a
 * su tamaño natural (height:auto, que es justo lo que el tema espera de las
 * <img>), así que no hay ratio ni height forzados que el tema pueda pisar. El
 * border-radius sí va con !important (arriba) porque el tema resetea <img>. */
