
:root{
    --cm-ink:#1b0750;
    --cm-purple:#6d35ff;
    --cm-pink:#ff0f7b;
    --cm-muted:#696274;
    --cm-line:#ebe7f5;
    --cm-soft:#f6f3ff;
    --cm-blue:#eefaff;
}

/* =========================================================
   RESET TIPOGRÁFICO LOCAL
   Dentro de Carrera manda Inter + la lógica de curso-landing.css
   style.css queda afuera para header/menu del sitio
   ========================================================= */

.cm-page,
.cm-page *{
    box-sizing:border-box;
}

.cm-page{
    font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    color:var(--cm-ink);
    line-height:1.55;
    font-weight:400;
}

.cm-page h1,
.cm-page h2,
.cm-page h3,
.cm-page p,
.cm-page a,
.cm-page span,
.cm-page strong,
.cm-page button,
.cm-page input,
.cm-page select,
.cm-page label,
.cm-page summary{
    font-family:inherit;
}

.cm-page h1,
.cm-page h2,
.cm-page h3,
.cm-page p{
    Margin-top:15px;
}

/* EXACTA LÓGICA DE curso-landing.css */
.cm-page h1{
    font-size:clamp(2.5rem,10vw,5.4rem);
    line-height:.97;
    letter-spacing:-.055em;
    margin-bottom:20px;
}

.cm-page h2{
    font-size:clamp(2rem,7vw,3.7rem);
    line-height:1.03;
    letter-spacing:-.04em;
    margin-bottom:18px;
}

.cm-page h3{
    font-size:1.18rem;
    line-height:1.2;
}

.cm-eyebrow{
    display:inline-block;
    margin-bottom:10px;
    font-size:1rem;
    letter-spacing:.12em;
    font-weight:950;
    color:var(--cm-purple);
}

/* HERO */
.cm-hero{
    padding:52px 0 48px;
    background:linear-gradient(180deg,#fff 0%,#fbfaff 100%);
}

.cm-hero__grid{
    display:grid;
    gap:32px;
}

.cm-hero h1{
    letter-spacing:-.04em;
}

.cm-hero__lead,
.cm-hero-lead{
    max-width:720px;
    font-size:1.18rem;
    color:var(--cm-muted);
}

.cm-hero__description,
.cm-hero-description{
    color:var(--cm-muted);
}

.cm-hero__proof{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:22px;
}

.cm-hero__proof span{
    padding:7px 10px;
    background:#f7f4ff;
    border-radius:999px;
    font-size:.82rem;
    font-weight:850;
}

.cm-hero__proof strong{
    line-height:1.18;
}

.cm-hero__actions,
.cm-final__actions{
    display:flex;
    flex-direction:column;
    gap:10px;
    margin-top:24px;
}

.cm-hero__micro{
    margin:12px 0 0;
    color:var(--cm-muted);
}

.cm-hero__art{
    position:relative;
    overflow:hidden;
    border-radius:30px;
    aspect-ratio:4/5;
    background:var(--cm-soft);
    box-shadow:0 30px 70px rgba(27,7,80,.13);
}

.cm-hero__art img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.cm-hero__art-caption{
    position:absolute;
    left:16px;
    right:16px;
    bottom:16px;
    padding:14px 16px;
    border-radius:16px;
    background:rgba(27,7,80,.88);
    color:#fff;
}

.cm-hero__art-caption span{
    font-size:.72rem;
    color:#c9bbff;
}

/* BOTONES - misma lógica de cursos */
.cm-btn{
    min-height:50px;
    display:inline-flex;
    justify-content:center;
    align-items:center;
    padding:0 20px;
    border-radius:14px;
    border:1px solid transparent;
    font-weight:950;
    cursor:pointer;
    text-decoration:none;
}

.cm-btn--primary{
    background:var(--cm-purple);
    color:#fff;
}

.cm-btn--secondary{
    background:#fff;
    border-color:#ddd6ef;
    color:var(--cm-ink);
}

.cm-btn--light{
    background:#fff;
    color:var(--cm-ink);
}

.cm-btn--ghost{
    border-color:rgba(255,255,255,.35);
    color:#fff;
}

.cm-full{width:100%}

/* RITMO DE SECCIONES - curso landing */
.cm-work,
.cm-identify,
.cm-teacher,
.cm-path,
.cm-benefits,
.cm-wacom,
.cm-nucleosis,
.cm-testimonials,
.cm-stories,
.cm-pricing,
.cm-faq,
.cm-final{
    padding:68px 0;
}

.cm-heading{
    max-width:950px;
    margin-bottom:30px;
}

.cm-heading--center{
    margin-left:auto;
    margin-right:auto;
    text-align:center;
}

.cm-heading p{
    color:var(--cm-muted);
}

/* TRABAJOS */
.cm-work__grid{
    display:grid;
    gap:12px;
}

.cm-work__item{
    position:relative;
    overflow:hidden;
    margin:0;
    border-radius:20px;
    aspect-ratio:4/3;
    background:var(--cm-soft);
}

.cm-work__item img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.cm-work__item figcaption{
    position:absolute;
    left:10px;
    right:10px;
    bottom:10px;
    padding:10px 12px;
    border-radius:13px;
    background:rgba(27,7,80,.84);
    color:#fff;
}

.cm-work__item strong,
.cm-work__item span{
    display:block;
}

.cm-work__item span{
    font-size:.72rem;
    color:#d8d0ef;
}

/* PUBLICOS */
.cm-identify__grid{
    display:grid;
    gap:14px;
}

.cm-identify article{
    padding:20px;
    border:1px solid var(--cm-line);
    border-radius:20px;
    background:#fff;
}

.cm-identify article > span{
    color:var(--cm-pink);
    font-size:.78rem;
    font-weight:950;
}

.cm-identify h3{
    margin:14px 0 7px;
}

.cm-identify p{
    margin:0;
    color:var(--cm-muted);
}

.cm-section-close{
    max-width:760px;
    margin:28px auto 0;
    text-align:center;
    font-weight:750;
}

/* PROFESOR */
.cm-teacher{
    background:var(--cm-ink);
    color:#fff;
}

.cm-teacher .cm-eyebrow{
    color:#c8b9ff;
}

.cm-teacher p{
    color:#ded8ef;
    font-size:1.05rem;
}

.cm-teacher__grid{
    display:grid;
    gap:32px;
}

.cm-teacher__image{
    overflow:hidden;
    border-radius:28px;
    min-height:380px;
    background:rgba(255,255,255,.06);
}

.cm-teacher__image img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.cm-text-link{
    display:inline-block;
    margin-top:18px;
    color:#fff;
    font-weight:900;
}

/* MODULOS */
.cm-path{
    background:var(--cm-blue);
}

.cm-path__grid{
    display:grid;
    gap:16px;
}

.cm-module{
    padding:20px;
    border:1px solid rgba(27,7,80,.1);
    border-radius:20px;
    background:#fff;
}

.cm-module__top{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    margin-bottom:14px;
}

.cm-module__number{
    
    display:grid;
    place-items:center;
    border-radius:12px;
    
    color:#000;
    font-size:.78rem;
    font-weight:950;
}

.cm-module__level{
    padding:7px 10px;
    border-radius:999px;
    background:#f7f4ff;
    color:var(--cm-purple);
    font-size:.82rem;
    font-weight:850;
}

.cm-module__image{
    display:block;
    overflow:hidden;
    margin-bottom:17px;
    border-radius:16px;
    aspect-ratio:16/10;
}

.cm-module__image img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.cm-module h3{
    margin:0 0 9px;
}

.cm-module p{
    margin:0 0 14px;
    color:var(--cm-muted);
}

.cm-module__link{
    color:var(--cm-purple);
    font-weight:900;
    text-decoration:none;
}

/* BENEFICIOS */
.cm-benefits__grid{
    display:grid;
    gap:13px;
}

.cm-benefits article{
    padding:20px;
    border:1px solid var(--cm-line);
    border-radius:20px;
}

.cm-benefits p{
    margin:8px 0 0;
    color:var(--cm-muted);
}

/* WACOM */
.cm-wacom__box{
    padding:26px;
    border-radius:24px;
    background:var(--cm-soft);
    text-align:center;
}

.cm-wacom__box p{
    max-width:850px;
    margin:8px auto 0;
    color:var(--cm-muted);
}

/* NUCLEOSIS */
.cm-nucleosis{
    background:var(--cm-soft);
}

.cm-nucleosis__grid{
    display:grid;
    gap:32px;
}

.cm-nucleosis p{
    color:var(--cm-muted);
    font-size:1.05rem;
}

.cm-nucleosis__items{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:22px;
}

.cm-nucleosis__items span{
    padding:7px 10px;
    border-radius:999px;
    background:#fff;
    border:1px solid var(--cm-line);
    font-size:.82rem;
    font-weight:850;
}

.cm-nucleosis__image{
    overflow:hidden;
    border-radius:26px;
    min-height:320px;
    background:#fff;
}

.cm-nucleosis__image img{
    width:100%;
    height:100%;
    object-fit:cover;
}

/* TESTIMONIOS */
.cm-testimonials__grid{
    display:grid;
    gap:14px;
}

.cm-testimonial{
    padding:24px;
    border:1px solid var(--cm-line);
    border-radius:20px;
    background:var(--cm-soft);
}

.cm-testimonial__stars{
    margin-bottom:14px;
    color:var(--cm-pink);
}

.cm-testimonial strong,
.cm-testimonial span{
    display:block;
}

.cm-testimonial span{
    color:var(--cm-muted);
    font-size:.72rem;
}

/* HISTORIAS */
.cm-stories{
    background:var(--cm-blue);
}

.cm-stories__grid{
    display:grid;
    gap:16px;
    margin-bottom:24px;
}

.cm-story{
    overflow:hidden;
    border-radius:20px;
    background:#fff;
}

.cm-story img{
    width:100%;
    aspect-ratio:16/10;
    object-fit:cover;
}

.cm-story div{
    padding:20px;
}

.cm-story h3{
    margin:0 0 8px;
}

.cm-story p{
    color:var(--cm-muted);
}

.cm-story a{
    color:var(--cm-purple);
    font-weight:900;
    text-decoration:none;
}

/* PRECIO */
.cm-pricing__grid{
    display:grid;
    gap:28px;
    align-items:center;
}

.cm-pricing p{
    color:var(--cm-muted);
}

.cm-pricing__card{
    padding:26px;
    border:1px solid var(--cm-line);
    border-radius:28px;
    background:var(--cm-soft);
    box-shadow:0 24px 60px rgba(27,7,80,.1);
}

.cm-pricing__label{
    display:block;
    margin-bottom:20px;
    color:var(--cm-purple);
    font-size:.74rem;
    font-weight:950;
    letter-spacing:.12em;
}

.cm-pricing__installments{
    padding:20px;
    border-radius:18px;
    background:#fff;
}

.cm-pricing__installments span,
.cm-pricing__installments strong,
.cm-pricing__installments small,
.cm-pricing__total span,
.cm-pricing__total strong{
    display:block;
}

.cm-pricing__installments strong,
.cm-pricing__total strong{
    font-size:2.25rem;
    line-height:1;
    font-weight:950;
    letter-spacing:-.04em;
}

.cm-pricing__total{
    margin:18px 0;
}

.cm-pricing__promo{
    display:flex;
    align-items:center;
    gap:13px;
    margin:14px 0 20px;
    padding:16px;
    border-radius:18px;
    color:#fff;
    background:var(--cm-ink);
}

.cm-pricing__discount{
    padding:8px 10px;
    border-radius:10px;
    background:var(--cm-pink);
    font-size:.78rem;
    font-weight:950;
}

.cm-pricing__promo strong,
.cm-pricing__promo span{
    display:block;
}

/* FAQ */
.cm-faq{
    background:var(--cm-soft);
}

.cm-faq__list{
    max-width:900px;
    margin:auto;
}

.cm-faq details{
    padding:18px 0;
    border-bottom:1px solid var(--cm-line);
}

.cm-faq summary{
    cursor:pointer;
    font-weight:900;
}

.cm-faq details p{
    color:var(--cm-muted);
}

/* CIERRE */
.cm-final__box{
    display:grid;
    gap:24px;
    padding:32px;
    border-radius:30px;
    color:#fff;
    background:
        radial-gradient(circle at 90% 10%,rgba(255,15,123,.27),transparent 28%),
        linear-gradient(135deg,#1b0750,#4b1f9f);
}

.cm-final .cm-eyebrow{
    color:#c9bbff;
}

.cm-final p{
    color:#ded8ef;
}

/* MOBILE CTA · PREVENTA 2026 */
.cm-mobile-cta{
    position:fixed;
    left:10px;
    right:10px;
    bottom:10px;
    z-index:50;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:10px;
    padding:8px 8px 8px 12px;
    border:1px solid var(--cm-line);
    border-radius:16px;
    background:rgba(255,255,255,.97);
    box-shadow:0 18px 50px rgba(27,7,80,.2);
    font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

.cm-mobile-cta__copy{
    min-width:0;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:1px;
}

.cm-mobile-cta .cm-mobile-cta__eyebrow{
    display:block;
    margin:0;
    color:var(--cm-purple);
    font-size:.61rem;
    line-height:1.1;
    font-weight:950;
    letter-spacing:.11em;
    white-space:nowrap;
}

.cm-mobile-cta .cm-mobile-cta__price{
    display:block;
    margin:0;
    color:var(--cm-ink);
    font-size:.91rem;
    line-height:1.15;
    font-weight:950;
    white-space:nowrap;
}

.cm-mobile-cta .cm-btn{
    flex:0 0 auto;
    min-height:42px;
    padding:0 14px;
    border-radius:12px;
    font-size:.84rem;
    line-height:1;
    white-space:nowrap;
}

@media (max-width:359.98px){
    .cm-mobile-cta{
        left:7px;
        right:7px;
        bottom:7px;
        gap:7px;
        padding:7px 7px 7px 10px;
    }

    .cm-mobile-cta .cm-mobile-cta__eyebrow{
        font-size:.56rem;
        letter-spacing:.08em;
    }

    .cm-mobile-cta .cm-mobile-cta__price{
        font-size:.82rem;
    }

    .cm-mobile-cta .cm-btn{
        min-height:40px;
        padding:0 11px;
        font-size:.78rem;
    }
}

/* MODAL */
.cm-modal{
    position:fixed;
    inset:0;
    z-index:100;
    display:none;
    align-items:flex-end;
    padding:18px;
    background:rgba(13,5,35,.64);
}

.cm-modal.is-open{
    display:flex;
}

.cm-modal__dialog{
    position:relative;
    width:100%;
    max-width:540px;
    max-height:90vh;
    overflow:auto;
    margin:auto;
    padding:25px;
    border-radius:25px;
    background:#fff;
}

.cm-modal__close{
    position:absolute;
    right:13px;
    top:8px;
    border:0;
    background:none;
    font-size:2rem;
    cursor:pointer;
}

.cm-modal label{
    display:block;
    margin:13px 0 6px;
    font-weight:850;
}

.cm-modal input,
.cm-modal select{
    width:100%;
    padding:13px;
    border:1px solid #d8d2e7;
    border-radius:12px;
    background:#fff;
    font:inherit;
}

.cm-message{
    margin-top:12px;
    font-weight:850;
}

/* DESKTOP */
@media(min-width:760px){
    .cm-hero{
        padding:84px 0 76px;
    }

    .cm-hero__grid,
    .cm-teacher__grid,
    .cm-nucleosis__grid,
    .cm-pricing__grid{
        grid-template-columns:1.05fr .95fr;
        align-items:center;
    }

    .cm-hero__actions,
    .cm-final__actions{
        flex-direction:row;
    }

    .cm-work__grid{
        grid-template-columns:repeat(4,1fr);
    }

    .cm-identify__grid--three{
        grid-template-columns:repeat(3,1fr);
    }

    .cm-path__grid{
        grid-template-columns:repeat(2,1fr);
    }

    .cm-benefits__grid{
        grid-template-columns:repeat(3,1fr);
    }

    .cm-testimonials__grid{
        grid-template-columns:repeat(3,1fr);
    }

    .cm-stories__grid{
        grid-template-columns:repeat(3,1fr);
    }

    .cm-final__box{
        grid-template-columns:1fr auto;
        align-items:center;
        padding:46px;
    }

    .cm-mobile-cta{
        display:none;
    }

    .cm-modal{
        align-items:center;
    }

    .cm-pricing__card{
        padding:32px;
    }
}

@media(min-width:1080px){
    .cm-path__grid{
        grid-template-columns:repeat(4,1fr);
    }
}


/* =========================================================
   AJUSTE FINAL: MISMA FUENTE REAL QUE CURSO.PHP
   curso-landing.css declara Inter pero NO la carga.
   Por eso usa la fuente del sistema cuando Inter no está instalada.
   Carrera replica exactamente ese comportamiento.
   ========================================================= */

.cm-page{
    font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

.cm-page h1,
.cm-page h2,
.cm-page h3{
    font-weight:revert;
}

/* Lead y descripción igual que cursos: peso normal heredado */
.cm-hero__lead,
.cm-hero-lead,
.cm-hero__description,
.cm-hero-description,
.cm-hero__micro,
.cm-heading p,
.cm-identify p,
.cm-module p,
.cm-benefits p,
.cm-wacom__box p,
.cm-nucleosis p,
.cm-testimonial p,
.cm-story p,
.cm-pricing p,
.cm-faq details p,
.cm-final p{
    font-weight:400;
}

/* =========================================================
   SEGUNDA PASADA · ESCALA Y AIRE DEL HERO
   Mantiene la tipografía/fuente ya corregida.
   ========================================================= */

/* Lead con presencia similar a Fundamentos */
.cm-hero__lead,
.cm-hero-lead {
    font-size: 1.22rem;
    line-height: 1.58;
    max-width: 760px;
    margin-bottom: 0;
}

/* Más aire entre texto, datos y CTA */
.cm-hero__proof {
    margin-top: 28px;
    gap: 10px;
}

.cm-hero__actions {
    margin-top: 30px;
    gap: 12px;
}

/* Pills un poco más generosas */
.cm-hero__proof span {
    padding: 9px 14px;
    font-size: .88rem;
    border-radius: 999px;
}

/* CTA principal con la presencia del botón de Fundamentos */
.cm-hero .cm-btn {
    min-height: 58px;
    padding: 0 30px;
    font-size: 1.08rem;
    border-radius: 15px;
}

/* El texto posterior al CTA respira más */
.cm-hero__micro {
    margin-top: 16px;
    font-size: .95rem;
    line-height: 1.55;
    max-width: 760px;
}

/* Encabezados de sección: un poco más de aire debajo */
.cm-heading {
    margin-bottom: 34px;
}

/* Botones generales ligeramente más presentes, sin alterar el peso */
.cm-page .cm-btn {
    min-height: 54px;
    padding-left: 24px;
    padding-right: 24px;
    font-size: 1.04rem;
}

/* El hero conserva el CTA un poco mayor que el resto */
.cm-page .cm-hero .cm-btn {
    min-height: 58px;
    padding-left: 30px;
    padding-right: 30px;
    font-size: 1.08rem;
}

/* Pills de Nucleosis y niveles con tamaño más cómodo */
.cm-module__level,
.cm-nucleosis__items span {
    font-size: .86rem;
    padding: 8px 12px;
}

/* Responsive: evitamos que los CTA queden apretados en móvil */
@media (max-width: 759px) {
    .cm-hero .cm-btn,
    .cm-page .cm-hero .cm-btn {
        width: 100%;
        min-height: 56px;
        padding-left: 22px;
        padding-right: 22px;
        font-size: 1.05rem;
    }

    .cm-hero__proof span {
        padding: 8px 12px;
        font-size: .84rem;
    }

    .cm-hero__lead,
    .cm-hero-lead {
        font-size: 1.16rem;
    }

    .cm-hero__micro {
        font-size: .9rem;
    }
}

\n\n/* HERO 2027 · stats + inscripción */
.cm-hero__proof{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:28px}
.cm-hero__stat{min-width:0;min-height:82px;padding:14px 13px;display:flex;align-items:center;gap:11px;background:#f6f3ff;border-radius:18px}
.cm-hero__stat>i{flex:0 0 auto;font-size:1.8rem;line-height:1;color:var(--cm-purple)}
.cm-hero__stat>div{min-width:0;display:flex;align-items:baseline;gap:5px;flex-wrap:wrap}
.cm-hero__stat strong{font-size:1.32rem;line-height:1.05;font-weight:950;color:var(--cm-ink)}
.cm-hero__stat span{padding:0;background:none;border-radius:0;font-size:.86rem;font-weight:750;color:var(--cm-ink)}
.cm-hero__enrollment{display:flex;align-items:center;gap:15px;margin-top:20px;padding-top:18px;border-top:1px solid var(--cm-line)}
.cm-hero__enrollment>i{flex:0 0 auto;font-size:2rem;color:var(--cm-purple)}
.cm-hero__enrollment div{min-width:0}
.cm-hero__enrollment strong,.cm-hero__enrollment span{display:block}
.cm-hero__enrollment strong{font-size:.94rem;line-height:1.25;letter-spacing:.08em;color:var(--cm-purple)}
.cm-hero__enrollment span{margin-top:3px;font-size:.92rem;line-height:1.35;color:var(--cm-muted)}
.cm-hero__actions{margin-top:18px}
.cm-hero__actions .cm-btn--primary{width:100%}
@media(min-width:760px){.cm-hero__proof{grid-template-columns:repeat(4,minmax(0,1fr))}.cm-hero__stat{min-height:86px}.cm-hero__actions{display:block}.cm-hero__actions .cm-btn--primary{width:100%}}
@media(max-width:420px){.cm-hero__proof{gap:8px}.cm-hero__stat{min-height:74px;padding:11px 9px;gap:8px;border-radius:15px}.cm-hero__stat>i{font-size:1.45rem}.cm-hero__stat strong{font-size:1.08rem}.cm-hero__stat span{font-size:.76rem}.cm-hero__enrollment{gap:11px}.cm-hero__enrollment>i{font-size:1.65rem}.cm-hero__enrollment strong{font-size:.78rem;letter-spacing:.055em}.cm-hero__enrollment span{font-size:.84rem}}


/* =========================================================
   HERO 2027 · métricas visuales v2
   ========================================================= */
.cm-hero__proof{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  margin-top:20px;
}
.cm-hero__stat{
  min-width:0;
  min-height:88px;
  padding:13px 10px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  background:#f5f1ff;
  border-radius:16px;
}
.cm-hero__icon{
  width:29px;
  height:29px;
  flex:0 0 29px;
  color:var(--cm-purple);
}
.cm-hero__icon svg,
.cm-hero__enrollment-icon svg{
  display:block;
  width:100%;
  height:100%;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.cm-hero__stat>div{
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:1px;
}
.cm-hero__stat strong{
  display:block;
  margin:0;
  font-size:1.32rem;
  line-height:1;
  font-weight:950;
  letter-spacing:-.035em;
  color:var(--cm-ink);
  white-space:nowrap;
}
.cm-hero__stat span:not(.cm-hero__icon){
  display:block;
  padding:0;
  background:none;
  border-radius:0;
  font-size:.76rem;
  line-height:1.1;
  font-weight:750;
  color:var(--cm-ink);
}
.cm-hero__stat--mode strong{
  max-width:72px;
  white-space:normal;
  font-size:.98rem;
  line-height:1.08;
  letter-spacing:-.02em;
}

.cm-hero__enrollment{
  margin-top:16px;
  padding:13px 2px 0;
  border-top:1px solid rgba(40,13,103,.09);
  display:flex;
  align-items:center;
  gap:13px;
}
.cm-hero__enrollment-icon{
  width:38px;
  height:38px;
  flex:0 0 38px;
  color:var(--cm-purple);
}
.cm-hero__enrollment>div{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.cm-hero__enrollment strong{
  font-size:.82rem;
  line-height:1.15;
  font-weight:900;
  letter-spacing:.065em;
  color:var(--cm-purple);
}
.cm-hero__enrollment span{
  font-size:.84rem;
  line-height:1.25;
  color:var(--cm-muted);
}
.cm-hero__actions{
  margin-top:14px;
}
.cm-hero__actions .cm-btn--primary{
  width:100%;
}

@media(max-width:991.98px){
  .cm-hero__proof{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
  }
  .cm-hero__stat{
    justify-content:flex-start;
    min-height:82px;
    padding:13px 15px;
  }
  .cm-hero__stat--mode strong{
    max-width:none;
  }
}

@media(max-width:575.98px){
  .cm-hero__proof{
    gap:8px;
    margin-top:18px;
  }
  .cm-hero__stat{
    min-height:76px;
    padding:11px 10px;
    gap:8px;
    border-radius:14px;
  }
  .cm-hero__icon{
    width:25px;
    height:25px;
    flex-basis:25px;
  }
  .cm-hero__stat strong{
    font-size:1.12rem;
  }
  .cm-hero__stat span:not(.cm-hero__icon){
    font-size:.71rem;
  }
  .cm-hero__stat--mode strong{
    font-size:.88rem;
    line-height:1.05;
  }
  .cm-hero__enrollment{
    align-items:flex-start;
    gap:10px;
    padding-top:12px;
  }
  .cm-hero__enrollment-icon{
    width:31px;
    height:31px;
    flex-basis:31px;
  }
  .cm-hero__enrollment strong{
    font-size:.74rem;
    letter-spacing:.045em;
  }
  .cm-hero__enrollment span{
    font-size:.79rem;
  }
}


/* =========================================================
   HERO 2027 · ajuste final de proporciones
   ========================================================= */
@media (min-width: 992px){
  .cm-hero__proof{
    margin-top:24px;
    gap:9px;
  }

  .cm-hero__stat{
    min-height:98px;
    padding:15px 11px;
  }

  .cm-hero__icon{
    width:32px;
    height:32px;
    flex-basis:32px;
  }

  .cm-hero__stat strong{
    font-size:1.43rem;
  }

  .cm-hero__stat span:not(.cm-hero__icon){
    font-size:.79rem;
  }

  .cm-hero__stat--mode strong{
    font-size:1.02rem;
    line-height:1.08;
  }

  .cm-hero__enrollment{
    margin-top:18px;
    padding-top:15px;
    gap:15px;
  }

  .cm-hero__enrollment-icon{
    width:45px;
    height:45px;
    flex-basis:45px;
  }

  .cm-hero__enrollment strong{
    font-size:.88rem;
    line-height:1.18;
  }

  .cm-hero__enrollment span{
    font-size:.87rem;
  }

  .cm-hero__actions{
    margin-top:15px;
  }
}

/* En tablet/móvil mantenemos el 2×2 ya definido,
   pero damos un poco más de aire respecto de la descripción. */
@media (max-width: 991.98px){
  .cm-hero__proof{
    margin-top:22px;
  }
}


/* =========================================================
   HERO 2027 · ajuste mobile final
   ========================================================= */
@media (max-width: 575.98px){

  /* Compactamos levemente el sector de texto para equilibrarlo
     con la imagen, sin alterar desktop. */
  .cm-hero__content h1{
    font-size:clamp(2.15rem, 10.3vw, 2.75rem);
    line-height:.98;
    letter-spacing:-.045em;
  }

  .cm-hero__lead{
    margin-top:15px;
  }

  .cm-hero__proof{
    margin-top:18px;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
  }

  /* Las cuatro tarjetas usan la misma lógica horizontal:
     icono + contenido en una sola línea. */
  .cm-hero__stat{
    min-height:58px;
    padding:9px 9px;
    gap:7px;
    justify-content:flex-start;
    border-radius:13px;
    color:var(--cm-purple);
  }

  .cm-hero__icon{
    width:22px;
    height:22px;
    flex:0 0 22px;
    color:var(--cm-purple);
  }

  .cm-hero__stat > div{
    min-width:0;
    flex-direction:row;
    align-items:baseline;
    justify-content:flex-start;
    gap:4px;
    flex-wrap:nowrap;
  }

  .cm-hero__stat strong{
    display:inline;
    flex:0 0 auto;
    font-size:.98rem;
    line-height:1;
    color:var(--cm-purple);
    white-space:nowrap;
  }

  .cm-hero__stat span:not(.cm-hero__icon){
    display:inline;
    flex:0 0 auto;
    font-size:.70rem;
    line-height:1;
    font-weight:800;
    color:var(--cm-purple);
    white-space:nowrap;
  }

  /* La modalidad ya es texto completo: misma alineación horizontal. */
  .cm-hero__stat--mode > div{
    display:block;
  }

  .cm-hero__stat--mode strong{
    display:block;
    max-width:none;
    font-size:.76rem;
    line-height:1.05;
    color:var(--cm-purple);
    white-space:nowrap;
  }

  .cm-hero__enrollment{
    margin-top:12px;
  }

  .cm-hero__actions{
    margin-top:10px;
  }

  /* Menos separación antes de la imagen para equilibrar ambas mitades. */
  .cm-hero__media{
    margin-top:18px;
  }
}


/* =========================================================
   HERO 2027 · traslado del lenguaje mobile a desktop
   + columna de texto ~15% más angosta
   ========================================================= */
@media (min-width: 992px){

  /* Damos más espacio a la imagen y reducimos aprox. 15% la columna
     izquierda respecto del reparto anterior. */
  .cm-hero__grid{
    grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
    gap:52px;
    align-items:center;
  }

  /* Tarjetas compactas y horizontales, como en mobile. */
  .cm-hero__proof{
    margin-top:22px;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:8px;
  }

  .cm-hero__stat{
    min-height:66px;
    padding:10px 9px;
    gap:7px;
    justify-content:flex-start;
    border-radius:14px;
    color:var(--cm-purple);
  }

  .cm-hero__icon{
    width:25px;
    height:25px;
    flex:0 0 25px;
    color:var(--cm-purple);
  }

  .cm-hero__stat > div{
    min-width:0;
    flex-direction:row;
    align-items:baseline;
    justify-content:flex-start;
    gap:4px;
    flex-wrap:nowrap;
  }

  .cm-hero__stat strong{
    display:inline;
    flex:0 0 auto;
    font-size:1.08rem;
    line-height:1;
    color:var(--cm-purple);
    white-space:nowrap;
  }

  .cm-hero__stat span:not(.cm-hero__icon){
    display:inline;
    flex:0 0 auto;
    font-size:.72rem;
    line-height:1;
    font-weight:800;
    color:var(--cm-purple);
    white-space:nowrap;
  }

  .cm-hero__stat--mode > div{
    display:block;
  }

  .cm-hero__stat--mode strong{
    display:block;
    max-width:none;
    font-size:.78rem;
    line-height:1.08;
    color:var(--cm-purple);
    white-space:normal;
  }

  /* Evitamos que el título vuelva a dominar demasiado al estrechar
     la columna izquierda. */
  .cm-hero__title,
  .cm-hero__content h1{
    font-size:clamp(3.25rem,4.25vw,4.65rem);
    line-height:.98;
  }

  .cm-hero__enrollment{
    margin-top:15px;
    padding-top:13px;
  }

  .cm-hero__enrollment-icon{
    width:39px;
    height:39px;
    flex-basis:39px;
  }

  .cm-hero__actions{
    margin-top:13px;
  }

  /* La imagen aprovecha la nueva proporción sin deformarse. */
  .cm-hero__media{
    width:100%;
    max-width:none;
  }

  .cm-hero__media img{
    width:100%;
    height:auto;
    display:block;
  }
}


/* =========================================================
   HERO 2027 · proporción desktop corregida
   Reducción suave (~5%) de la columna de texto
   ========================================================= */
@media (min-width: 992px){
  .cm-hero__grid{
    grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
    gap:48px;
  }
}

/* =========================================================
   CARRERA 2027 · PREVENTA / PRICING
   Scoped: no modifica otros bloques de la landing.
   ========================================================= */

.cm-pricing--preventa{
  padding:88px 0 72px;
  background:#fff;
  color:#210861;
}
.cm-pricing--preventa .cm-pricing__head{
  max-width:980px;
  margin:0 auto 38px;
  text-align:center;
}
.cm-pricing--preventa .cm-eyebrow{
  display:block;
  margin-bottom:18px;
  color:#6c35ff;
  font-size:.86rem;
  font-weight:800;
  letter-spacing:.24em;
  text-transform:uppercase;
}
.cm-pricing--preventa .cm-pricing__head h2{
  max-width:820px;
  margin:0 auto;
  color:#160443;
  font-size:clamp(2.6rem,4.7vw,4.7rem);
  line-height:.98;
  letter-spacing:-.045em;
  font-weight:800;
}
.cm-pricing--preventa .cm-pricing__head p{
  max-width:940px;
  margin:22px auto 0;
  color:#33295a;
  font-size:clamp(1.08rem,1.7vw,1.5rem);
  line-height:1.45;
}
.cm-pricing--preventa .cm-pricing__options{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  max-width:1040px;
  margin:0 auto;
}
.cm-pricing--preventa .cm-pricing__option{
  display:grid;
  grid-template-columns:82px minmax(0,1fr);
  gap:24px;
  min-height:280px;
  padding:34px;
  border:1px solid rgba(108,53,255,.16);
  border-radius:24px;
  background:linear-gradient(145deg,#fff 0%,#fbf9ff 100%);
  box-shadow:0 18px 45px rgba(44,18,99,.055);
}
.cm-pricing--preventa .cm-pricing__option-icon,
.cm-pricing--preventa .cm-pricing__fullpay-icon{
  display:grid;
  place-items:center;
  width:70px;
  height:70px;
  border-radius:50%;
  background:#f0e8ff;
  color:#5e27d8;
}
.cm-pricing--preventa .cm-pricing__option-icon svg,
.cm-pricing--preventa .cm-pricing__fullpay-icon svg{
  width:34px;
  height:34px;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.cm-pricing--preventa .cm-pricing__option h3{
  margin:2px 0 8px;
  color:#1e075c;
  font-size:1.45rem;
  line-height:1.15;
  font-weight:800;
}
.cm-pricing--preventa .cm-pricing__amount{
  display:block;
  margin:0 0 12px;
  color:#31117c;
  font-size:clamp(2.55rem,4vw,4.15rem);
  line-height:.98;
  letter-spacing:-.045em;
  font-weight:850;
}
.cm-pricing--preventa .cm-pricing__option p{
  margin:0;
  color:#352b57;
  font-size:1rem;
  line-height:1.45;
}
.cm-pricing--preventa .cm-pricing__option .cm-pricing__emphasis{
  margin-bottom:10px;
  color:#160443;
  font-weight:800;
}
.cm-pricing--preventa .cm-pricing__cta{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  width:min(680px,100%);
  min-height:68px;
  margin:24px auto 0;
  border-radius:18px;
  font-size:1.08rem;
  font-weight:800;
}
.cm-pricing--preventa .cm-pricing__arrow{
  font-size:1.8rem;
  line-height:1;
}
.cm-pricing--preventa .cm-pricing__fullpay{
  display:grid;
  grid-template-columns:70px minmax(0,1fr) auto auto;
  align-items:center;
  gap:22px;
  max-width:1120px;
  margin:26px auto 0;
  padding:24px 30px;
  border:1px solid rgba(222,167,38,.32);
  border-radius:22px;
  background:#fffaf0;
}
.cm-pricing--preventa .cm-pricing__fullpay-icon{
  width:60px;
  height:60px;
  background:#ffedbd;
  color:#9b5c00;
}
.cm-pricing--preventa .cm-pricing__fullpay-copy h3{
  margin:0 0 5px;
  color:#17112e;
  font-size:1.2rem;
  font-weight:800;
}
.cm-pricing--preventa .cm-pricing__fullpay-copy p{
  margin:0;
  color:#49425b;
  font-size:1rem;
}
.cm-pricing--preventa .cm-pricing__fullpay-price{
  min-width:160px;
  padding-left:26px;
  border-left:1px solid rgba(99,77,44,.25);
}
.cm-pricing--preventa .cm-pricing__fullpay-price del{
  display:block;
  margin-bottom:2px;
  color:#77717e;
  font-size:1rem;
}
.cm-pricing--preventa .cm-pricing__fullpay-price strong{
  display:block;
  color:#17112e;
  font-size:2rem;
  line-height:1;
  white-space:nowrap;
}
.cm-pricing--preventa .cm-pricing__badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:98px;
  min-height:44px;
  padding:8px 14px;
  border:1px solid #e3a817;
  border-radius:999px;
  background:#ffefbf;
  color:#815000;
  font-size:.9rem;
  font-weight:850;
  white-space:nowrap;
}
.cm-pricing--preventa .cm-pricing__note{
  display:flex;
  align-items:flex-start;
  justify-content:center;
  gap:9px;
  max-width:1050px;
  margin:18px auto 0;
  color:#6c6878;
  font-size:.9rem;
  line-height:1.4;
  text-align:center;
}

/* Tablet */
@media (max-width:991.98px){
  .cm-pricing--preventa{padding:68px 0 58px}
  .cm-pricing--preventa .cm-pricing__options{gap:14px}
  .cm-pricing--preventa .cm-pricing__option{
    grid-template-columns:58px minmax(0,1fr);
    gap:16px;
    min-height:0;
    padding:26px;
  }
  .cm-pricing--preventa .cm-pricing__option-icon{
    width:54px;height:54px;
  }
  .cm-pricing--preventa .cm-pricing__option-icon svg{width:28px;height:28px}
  .cm-pricing--preventa .cm-pricing__fullpay{
    grid-template-columns:58px minmax(0,1fr) auto;
  }
  .cm-pricing--preventa .cm-pricing__badge{
    grid-column:3;
  }
}

/* Mobile */
@media (max-width:767.98px){
  .cm-pricing--preventa{
    padding:54px 0 48px;
  }
  .cm-pricing--preventa .cm-pricing__head{
    margin-bottom:26px;
    text-align:left;
  }
  .cm-pricing--preventa .cm-eyebrow{
    margin-bottom:12px;
    font-size:.75rem;
    letter-spacing:.18em;
  }
  .cm-pricing--preventa .cm-pricing__head h2{
    font-size:clamp(2.2rem,10.5vw,3.15rem);
  }
  .cm-pricing--preventa .cm-pricing__head p{
    margin-top:16px;
    font-size:1rem;
  }
  .cm-pricing--preventa .cm-pricing__options{
    grid-template-columns:1fr;
    gap:12px;
  }
  .cm-pricing--preventa .cm-pricing__option{
    grid-template-columns:52px minmax(0,1fr);
    gap:14px;
    padding:22px 18px;
    border-radius:18px;
  }
  .cm-pricing--preventa .cm-pricing__option-icon{
    width:48px;height:48px;
  }
  .cm-pricing--preventa .cm-pricing__option-icon svg{width:25px;height:25px}
  .cm-pricing--preventa .cm-pricing__option h3{
    font-size:1.12rem;
  }
  .cm-pricing--preventa .cm-pricing__amount{
    font-size:2.65rem;
  }
  .cm-pricing--preventa .cm-pricing__cta{
    min-height:58px;
    margin-top:16px;
    padding-inline:18px;
    border-radius:14px;
    font-size:.94rem;
  }
  .cm-pricing--preventa .cm-pricing__fullpay{
    grid-template-columns:50px minmax(0,1fr);
    gap:14px;
    margin-top:18px;
    padding:20px 18px;
    border-radius:18px;
  }
  .cm-pricing--preventa .cm-pricing__fullpay-icon{
    width:48px;height:48px;
  }
  .cm-pricing--preventa .cm-pricing__fullpay-copy h3{font-size:1.05rem}
  .cm-pricing--preventa .cm-pricing__fullpay-price{
    grid-column:2;
    min-width:0;
    padding:14px 0 0;
    border-left:0;
    border-top:1px solid rgba(99,77,44,.2);
  }
  .cm-pricing--preventa .cm-pricing__fullpay-price strong{
    font-size:1.85rem;
  }
  .cm-pricing--preventa .cm-pricing__badge{
    grid-column:2;
    justify-self:start;
    min-height:38px;
  }
  .cm-pricing--preventa .cm-pricing__note{
    justify-content:flex-start;
    margin-top:14px;
    font-size:.82rem;
    text-align:left;
  }
}

/* =========================================================
   CARRERA 2027 · CARDS DE MÓDULOS · REDISEÑO FINAL
   Imagen a sangre + nivel superpuesto + sin enlaces/numeración
   ========================================================= */

.cm-path__grid{
  align-items: stretch;
}

.cm-module.cm-module--editorial{
  position: relative;
  overflow: hidden;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 22px !important;
  background: #fff;
  box-shadow: 0 10px 30px rgba(31, 7, 91, .07);
  transition: transform .22s ease, box-shadow .22s ease;
}

.cm-module--editorial .cm-module__image{
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  margin: 0 !important;
  overflow: hidden;
  border-radius: 0 !important;
  background: #eeeaf8;
}

.cm-module--editorial .cm-module__image img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .35s ease;
}

.cm-module--editorial .cm-module__level{
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 6px 11px;
  border-radius: 999px;
  background: rgba(255,255,255,.94);
  color: #7137ff;
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
  box-shadow: 0 5px 16px rgba(31,7,91,.10);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.cm-module--editorial .cm-module__content{
  padding: 20px 20px 23px;
}

.cm-module--editorial .cm-module__content h3{
  margin: 0 0 10px !important;
}

.cm-module--editorial .cm-module__content p{
  margin: 0 !important;
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 5;
}

.cm-module--editorial .cm-module__level-only{
  position: relative;
  min-height: 52px;
}

.cm-module--editorial .cm-module__level-only .cm-module__level{
  top: 14px;
  right: 14px;
}

@media (hover:hover) and (pointer:fine){
  .cm-module.cm-module--editorial:hover{
    transform: translateY(-4px);
    box-shadow: 0 17px 40px rgba(31,7,91,.11);
  }

  .cm-module--editorial:hover .cm-module__image img{
    transform: scale(1.035);
  }
}

@media (max-width: 767.98px){
  .cm-module.cm-module--editorial{
    border-radius: 18px !important;
  }

  .cm-module--editorial .cm-module__image{
    aspect-ratio: 16 / 9;
  }

  .cm-module--editorial .cm-module__content{
    padding: 17px 17px 20px;
  }

  .cm-module--editorial .cm-module__level{
    top: 11px;
    right: 11px;
    min-height: 28px;
    padding: 6px 10px;
    font-size: 11px;
  }

  .cm-module--editorial .cm-module__content p{
    -webkit-line-clamp: 4;
  }
}

/* =========================================================
   CARRERA 2027 · MODAL MOBILE / RESPUESTA TÁCTIL
   ========================================================= */

/* El modal vive fuera de .cm-page, por eso necesita su propio box-sizing. */
.cm-modal,
.cm-modal *,
.cm-modal *::before,
.cm-modal *::after{
    box-sizing:border-box;
}

.cm-modal{
    overflow-x:hidden;
}

.cm-modal__dialog{
    max-width:min(540px,100%);
    overflow-x:hidden;
    overscroll-behavior:contain;
}

.cm-modal input,
.cm-modal select,
.cm-modal textarea,
.cm-modal button{
    max-width:100%;
}

.cm-modal input,
.cm-modal select,
.cm-modal textarea{
    min-width:0;
}

/* Respuesta inmediata y estable en pantallas táctiles. */
.js-open-career,
#careerSend,
.cm-mobile-cta .cm-btn{
    touch-action:manipulation;
    -webkit-tap-highlight-color:transparent;
}

@media(max-width:759.98px){
    .cm-modal{
        padding:10px;
    }

    .cm-modal__dialog{
        width:100%;
        max-width:100%;
        padding:22px 16px 18px;
        border-radius:20px;
    }

    .cm-modal input,
    .cm-modal select{
        width:100%;
        max-width:100%;
    }
}

/* =========================================================
   CARRERA 2027 · MODAL MOBILE · FIX DEFINITIVO DE ANCHO
   Evita overflow horizontal de campos dentro del modal.
   ========================================================= */
.cm-modal__dialog form,
.cm-modal__dialog .form-group,
.cm-modal__dialog label{
    width:100%;
    max-width:100%;
    min-width:0;
}

.cm-modal__dialog input,
.cm-modal__dialog select,
.cm-modal__dialog textarea{
    display:block;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
}

@media(max-width:759.98px){
    .cm-modal__dialog{
        width:calc(100vw - 20px);
        max-width:calc(100vw - 20px);
        margin:auto;
        overflow-x:hidden;
    }

    .cm-modal__dialog form{
        overflow-x:hidden;
    }
}


/* =========================================================
   CARRERA 2027 · MODAL MOBILE · ESPACIADO FINAL
   Más aire antes del CTA + texto del botón más legible.
   ========================================================= */
@media(max-width:759.98px){
    .cm-modal__dialog select{
        margin-bottom:14px !important;
    }

    .cm-modal__dialog button[type="submit"],
    .cm-modal__dialog #careerSend{
        font-size:1.05rem !important;
        line-height:1.2 !important;
        font-weight:800 !important;
    }
}

/* =========================================================
   CARRERA 2027 · BENEFICIOS + WACOM · REDISEÑO VISUAL
   Mantiene todo el contenido administrable existente.
   ========================================================= */
.cm-benefits{
    padding:82px 0 30px;
    background:#fff;
}

.cm-benefits .cm-heading{
    margin-bottom:38px;
}

.cm-benefits__grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
}

.cm-benefit-card{
    min-width:0;
    min-height:178px;
    display:grid;
    grid-template-columns:94px minmax(0,1fr);
    align-items:center;
    gap:18px;
    padding:24px 25px 24px 18px !important;
    border:1px solid rgba(82,45,169,.13) !important;
    border-radius:22px !important;
    background:linear-gradient(145deg,#fff 0%,#fdfcff 100%);
    box-shadow:0 10px 28px rgba(38,13,92,.035);
}

.cm-benefit-card__icon{
    width:86px;
    height:86px;
    display:grid;
    place-items:center;
    border-radius:45% 55% 52% 48% / 50% 44% 56% 50%;
    background:#f2edff;
    color:#351078;
    transform:rotate(-2deg);
}

.cm-benefit-card__icon svg{
    width:55px;
    height:55px;
    fill:none;
    stroke:currentColor;
    stroke-width:2.2;
    stroke-linecap:round;
    stroke-linejoin:round;
    transform:rotate(2deg);
}

.cm-benefit-card__copy{
    min-width:0;
}

.cm-benefit-card__copy strong{
    display:block;
    margin:0 0 8px;
    color:var(--cm-ink);
    font-size:1.03rem;
    line-height:1.2;
    font-weight:850;
}

.cm-benefits .cm-benefit-card__copy p{
    margin:0;
    color:#5f5870;
    font-size:.94rem;
    line-height:1.48;
}

.cm-wacom{
    padding:28px 0 78px;
    background:#fff;
}

.cm-wacom__box{
    display:grid;
    grid-template-columns:220px minmax(0,1fr) 180px;
    align-items:center;
    gap:30px;
    padding:24px 34px !important;
    border:1px solid rgba(82,45,169,.12);
    border-radius:22px;
    background:linear-gradient(110deg,#f7f3ff 0%,#fbfaff 58%,#f3efff 100%) !important;
    text-align:left !important;
    overflow:hidden;
}

.cm-wacom__visual{
    min-width:0;
    height:112px;
    display:flex;
    align-items:center;
    justify-content:center;
}

.cm-wacom__visual svg{
    width:190px;
    max-width:100%;
    height:auto;
    overflow:visible;
}

.cm-wacom__tablet{
    fill:#261052;
    stroke:#6540b4;
    stroke-width:2;
}

.cm-wacom__tablet rect:nth-child(2){
    fill:#3d2370;
    stroke:#8160cf;
}

.cm-wacom__tablet circle{
    fill:#a98cf0;
    stroke:none;
}

.cm-wacom__pen{
    fill:#6d35ff;
    stroke:#321171;
    stroke-width:2;
    stroke-linejoin:round;
}

.cm-wacom__copy{
    min-width:0;
}

.cm-wacom__copy strong{
    display:block;
    color:var(--cm-ink);
    font-size:1.08rem;
    line-height:1.25;
    font-weight:850;
}

.cm-wacom .cm-wacom__copy p{
    max-width:none;
    margin:8px 0 0;
    color:#625b72;
    font-size:.94rem;
    line-height:1.5;
}

.cm-wacom__brand{
    min-height:74px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding-left:28px;
    border-left:1px solid rgba(71,40,137,.14);
    color:#17121e;
    font-family:Arial,Helvetica,sans-serif;
    font-size:2rem;
    font-weight:700;
    letter-spacing:-.08em;
    text-transform:lowercase;
}

@media(max-width:991.98px){
    .cm-benefits__grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .cm-wacom__box{
        grid-template-columns:150px minmax(0,1fr) 125px;
        gap:20px;
        padding:22px 24px !important;
    }

    .cm-wacom__brand{
        padding-left:20px;
        font-size:1.65rem;
    }
}

@media(max-width:767.98px){
    .cm-benefits{
        padding:58px 0 20px;
    }

    .cm-benefits .cm-heading{
        margin-bottom:26px;
        text-align:left;
    }

    .cm-benefits__grid{
        grid-template-columns:1fr;
        gap:10px;
    }

    .cm-benefit-card{
        min-height:0;
        grid-template-columns:72px minmax(0,1fr);
        gap:14px;
        padding:18px 17px !important;
        border-radius:18px !important;
    }

    .cm-benefit-card__icon{
        width:68px;
        height:68px;
    }

    .cm-benefit-card__icon svg{
        width:43px;
        height:43px;
    }

    .cm-benefit-card__copy strong{
        margin-bottom:5px;
        font-size:.98rem;
    }

    .cm-benefits .cm-benefit-card__copy p{
        font-size:.88rem;
        line-height:1.42;
    }

    .cm-wacom{
        padding:18px 0 58px;
    }

    .cm-wacom__box{
        grid-template-columns:84px minmax(0,1fr);
        gap:14px;
        padding:18px !important;
        border-radius:18px;
    }

    .cm-wacom__visual{
        height:82px;
    }

    .cm-wacom__visual svg{
        width:105px;
    }

    .cm-wacom__copy strong{
        font-size:.96rem;
    }

    .cm-wacom .cm-wacom__copy p{
        margin-top:5px;
        font-size:.83rem;
        line-height:1.4;
    }

    .cm-wacom__brand{
        grid-column:1 / -1;
        min-height:auto;
        justify-content:flex-start;
        padding:13px 0 0;
        border-left:0;
        border-top:1px solid rgba(71,40,137,.12);
        font-size:1.45rem;
    }
}


/* =========================================================
   CARRERA 2027 · PARA QUIÉN ES
   Cierre administrable integrado al encabezado + cards sin numeración
   ========================================================= */
.cm-identify .cm-heading{
    margin-bottom:30px;
}

.cm-identify__highlight{
    max-width:760px;
    margin:12px auto 0 !important;
    text-align:center;
    color:var(--cm-pink) !important;
    font-size:1.12rem;
    font-weight:800;
    line-height:1.45;
}

.cm-identify article h3{
    margin:0 0 7px;
}

@media(max-width:759.98px){
    .cm-identify__highlight{
        margin-top:10px !important;
        font-size:1.04rem;
        font-weight:800;
    }
}

.cm-identify__grid article{
    background:#f5f1ff;
}

/* =========================================================
   CARRERA 2027 · MÓDULOS · DESCRIPCIÓN CORTA COMPLETA
   ========================================================= */
.cm-module--editorial .cm-module__content p{
    display:block !important;
    overflow:visible !important;
    -webkit-box-orient:initial !important;
    -webkit-line-clamp:unset !important;
    line-clamp:unset !important;
    max-height:none !important;
}


/* =========================================================
   CARRERA 2027 · CONSOLIDADO MAESTRO
   BENEFICIOS + WACOM
   Mantener este bloque al final del archivo.
   ========================================================= */

/* BENEFICIOS */
.cm-benefits{
    padding:84px 0 34px;
    background:#fff;
}
.cm-benefits__grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
    margin-top:34px;
}
.cm-benefit-card{
    display:flex;
    align-items:flex-start;
    gap:18px;
    min-height:154px;
    padding:25px 24px;
    border:1px solid rgba(109,40,217,.16);
    border-radius:22px;
    background:#fff;
    box-shadow:0 12px 34px rgba(53,32,91,.06);
}
.cm-benefit-card__icon{
    flex:0 0 66px;
    width:66px;
    height:66px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:rgba(109,40,217,.09);
    color:#6d28d9;
}
.cm-benefit-card__icon .bi{
    display:block;
    color:#6d28d9;
    font-size:31px;
    line-height:1;
}
.cm-benefit-card__content{
    min-width:0;
    padding-top:3px;
}
.cm-benefit-card__content strong{
    display:block;
    margin-bottom:8px;
    color:#191525;
    font-size:1.05rem;
    line-height:1.25;
}
.cm-benefit-card__content p{
    margin:0;
    color:#686275;
    line-height:1.55;
}

/* WACOM */
.cm-wacom{
    padding:18px 0 84px;
    background:#fff;
}
.cm-wacom__box{
    display:grid;
    grid-template-columns:minmax(180px,260px) minmax(0,1fr) minmax(130px,190px);
    align-items:center;
    gap:34px;
    padding:30px 38px;
    border:1px solid rgba(109,40,217,.16);
    border-radius:26px;
    background:linear-gradient(135deg,#fbf9ff 0%,#f5f0ff 100%);
    box-shadow:0 16px 42px rgba(53,32,91,.07);
    text-align:left;
}
.cm-wacom__visual{
    min-width:0;
}
.cm-wacom__visual img{
    display:block;
    width:100%;
    max-width:260px;
    max-height:170px;
    margin:0 auto;
    object-fit:contain;
}
.cm-wacom__content{
    min-width:0;
}
.cm-wacom__content strong{
    display:block;
    margin-bottom:8px;
    color:#21172e;
    font-size:1.35rem;
    line-height:1.2;
}
.cm-wacom__content p{
    margin:0;
    color:#665e70;
    line-height:1.6;
}
.cm-wacom__brand{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    min-width:0;
}
.cm-wacom__brand img{
    display:block;
    width:100%;
    max-width:165px;
    max-height:82px;
    object-fit:contain;
}

@media(max-width:991.98px){
    .cm-benefits__grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .cm-wacom__box{
        grid-template-columns:180px minmax(0,1fr);
    }
    .cm-wacom__brand{
        grid-column:2;
        justify-content:flex-start;
    }
}

@media(max-width:759.98px){
    .cm-benefits{
        padding:58px 0 24px;
    }
    .cm-benefits__grid{
        grid-template-columns:1fr;
        gap:12px;
        margin-top:24px;
    }
    .cm-benefit-card{
        min-height:0;
        padding:19px 18px;
        gap:14px;
        border-radius:18px;
    }
    .cm-benefit-card__icon{
        flex:0 0 54px;
        width:54px;
        height:54px;
    }
    .cm-benefit-card__icon .bi{
        font-size:25px;
    }
    .cm-benefit-card__content strong{
        font-size:1rem;
    }
    .cm-benefit-card__content p{
        font-size:.94rem;
    }

    .cm-wacom{
        padding:12px 0 62px;
    }
    .cm-wacom__box{
        grid-template-columns:96px minmax(0,1fr);
        gap:16px;
        padding:20px 18px;
        border-radius:20px;
    }
    .cm-wacom__visual img{
        max-width:96px;
        max-height:100px;
    }
    .cm-wacom__content strong{
        font-size:1.08rem;
    }
    .cm-wacom__content p{
        font-size:.92rem;
        line-height:1.5;
    }
    .cm-wacom__brand{
        grid-column:2;
        justify-content:flex-start;
    }
    .cm-wacom__brand img{
        max-width:115px;
        max-height:48px;
    }
}

/* =========================================================
   CARRERA 2027 · PRECIO · AJUSTE PAGO TOTAL
   ========================================================= */

/* Mensaje de congelamiento / aumento de cuota */
.cm-pricing__note{
    font-size:calc(1em + 1px);
    font-weight:900;
}

/* Agrupación de beneficios del pago total */
.cm-pricing__fullpay-badges{
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    justify-content:center;
    gap:7px;
}

.cm-pricing__fullpay-badges .cm-pricing__badge{
    position:static;
    margin:0;
}

.cm-pricing__badge--inscripcion{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    white-space:nowrap;
}

.cm-pricing__badge--inscripcion del{
    opacity:.78;
    font-weight:800;
}

@media(max-width:759.98px){
    .cm-pricing__note{
        font-size:calc(1em + 1px);
        font-weight:900;
    }

    .cm-pricing__fullpay-badges{
        align-items:flex-start;
        width:100%;
    }
}


/* =========================================================
   CARRERA 2027 · PREVENTA · PAGO TOTAL · REDISEÑO FINAL
   Sólo CSS: conserva el PHP y la estructura administrable.
   ========================================================= */

.cm-pricing--preventa .cm-pricing__fullpay{
    grid-template-columns:auto minmax(0,1fr) auto auto;
    align-items:center;
    column-gap:22px;
    row-gap:8px;
    padding:22px 26px;
}

.cm-pricing--preventa .cm-pricing__fullpay-copy{
    min-width:0;
}

.cm-pricing--preventa .cm-pricing__fullpay-copy h3{
    margin-bottom:4px;
}

.cm-pricing--preventa .cm-pricing__fullpay-copy p{
    margin:0;
    max-width:560px;
}

.cm-pricing--preventa .cm-pricing__fullpay-price{
    min-width:150px;
    padding-left:22px;
    border-left:1px solid rgba(156,111,17,.18);
}

.cm-pricing--preventa .cm-pricing__fullpay-price del{
    display:block;
    margin-bottom:1px;
}

.cm-pricing--preventa .cm-pricing__fullpay-badges{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    justify-content:center;
    gap:7px;
    min-width:126px;
}

.cm-pricing--preventa .cm-pricing__fullpay-badges .cm-pricing__badge{
    position:static;
    width:100%;
    min-height:34px;
    margin:0;
    padding:7px 12px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    line-height:1;
    text-align:center;
    white-space:nowrap;
}

.cm-pricing--preventa .cm-pricing__badge--inscripcion{
    gap:5px;
    background:#fff8e6;
    border:1px solid #efbd45;
    font-size:.74rem;
}

.cm-pricing--preventa .cm-pricing__badge--inscripcion del{
    opacity:.65;
    font-weight:800;
}

/* Aclaración inferior solicitada */
.cm-pricing--preventa .cm-pricing__note{
    display:flex;
    align-items:flex-start;
    justify-content:center;
    gap:9px;
    max-width:1050px;
    margin:18px auto 0;
    color:#6c6878;
    line-height:1.4;
    text-align:center;
    font-weight:900;
    font-size:16px;
}

@media(max-width:759.98px){
    .cm-pricing--preventa .cm-pricing__fullpay{
        display:grid;
        grid-template-columns:46px minmax(0,1fr);
        column-gap:14px;
        row-gap:14px;
        padding:18px 16px;
    }

    .cm-pricing--preventa .cm-pricing__fullpay-icon{
        grid-column:1;
        grid-row:1;
        align-self:start;
    }

    .cm-pricing--preventa .cm-pricing__fullpay-copy{
        grid-column:2;
        grid-row:1;
    }

    .cm-pricing--preventa .cm-pricing__fullpay-price{
        grid-column:1 / -1;
        grid-row:2;
        min-width:0;
        padding:13px 0 0;
        border-left:0;
        border-top:1px solid rgba(156,111,17,.18);
    }

    .cm-pricing--preventa .cm-pricing__fullpay-price del{
        font-size:.82rem;
    }

    .cm-pricing--preventa .cm-pricing__fullpay-badges{
        grid-column:1 / -1;
        grid-row:3;
        display:flex;
        flex-direction:row;
        align-items:center;
        justify-content:flex-start;
        gap:8px;
        width:100%;
        min-width:0;
    }

    .cm-pricing--preventa .cm-pricing__fullpay-badges .cm-pricing__badge{
        width:auto;
        min-height:31px;
        padding:6px 11px;
        font-size:.72rem;
    }

    .cm-pricing--preventa .cm-pricing__note{
        margin-top:18px;
        padding:0 4px;
        font-size:16px;
        font-weight:900;
        line-height:1.4;
    }
}
