html, body{ overflow: visible !important; }
html, body{ overflow-x: hidden !important; overflow-y: auto; }
/* Evita que wrappers de legacy rompan sticky SOLO dentro de V2 */
.isp-v2, 
.isp-v2 *{
  margin: 0px;
  filter: none !important;
  perspective: none !important;
  contain: none !important;
}

.isp-v2 .scroll-wrapper,
.isp-v2 .b21,
.isp-v2 .ispv2-body,
.isp-v2 .ispv2-layout
.isp-v2 .ispv2-shell,
  .isp-v2 .isp-container{
  overflow: visible !important;
}

.isp-v2{
  --fixed-header-h: 92px;  
  --sticky-gap: 14px;
}

/* =========================
   ISP V2 BASE (encapsulado)
========================= */
.isp-v2{
  --container: 1200px;
  --pad: clamp(16px, 4vw, 40px);
  --gap: clamp(14px, 2.5vw, 28px);
  --r: 18px;
  --shadow: 0 10px 30px rgba(0,0,0,.08);
}

.isp-v2{
  --container-max: 1200px;
  --aside-w: 360px;
  --header-h: 104px;
  --tabs-h: 64px;
  --gap-top: 12px;
}

.isp-v2 .isp-container{
  width: min(100%, var(--container));
  margin-inline: auto;
  padding-inline: var(--pad);
}

.isp-v2 .isp-section{
  padding-block: clamp(22px, 4vw, 56px);
}

.isp-v2 h1{
  font-size: clamp(26px, 3.2vw, 44px);
  line-height: 1.1;
  margin: 0 0 10px;
}

.isp-v2 p{
  margin: 0 0 12px;
  line-height: 1.5;
}

/* =========================
   ISP V2 FORM (Lead)
========================= */
.ispv2-formcard{
  width: 360px;
  background: #fff;
  padding: 38px;
  border: 1px solid rgba(255,140,0,.55);
  box-shadow: 0 10px 25px rgba(0,0,0,.06);
}

.ispv2-formcard__title{
  font-family: 'Nunito';
  line-height: 1.2em;
  margin: 0 0 4px;
  font-size: 22px;
  font-weight: 700;
  color: #2a0a4a;
}
.ispv2-formcard__sub{
  margin: 0 0 20px;
  text-align: center;
  color: #8f8f8f;
  font-weight: 700;
  font-size: 15px;
  font-family: 'Nunito-Regular';
  letter-spacing: 0.02em;
  opacity: .75;
}

.ispv2-lead__head{
  text-align: center;
  margin-bottom: 12px;
}

.ispv2-lead__title{
  margin: 0 0 4px;
  line-height: 1.15;
  font-size: 20px;
  font-weight: 800;
  color: #400578;
  font-family: 'Nunito-Black';
  letter-spacing: 0.02em;
}

.ispv2-lead__sub{
  color: #000;
  font-family: 'Nunito-SemiBold';
  margin: 0;
  font-size: 13px;
  opacity: .75;
}

.ispv2-lead__grid{
  display: grid;
  gap: 10px;
}

.ispv2-lead__field input,
.ispv2-lead__field select{
  width: 100%;
  height: 42px;
  border-radius: 10px;
  border: 1px solid rgba(0, 0, 0, .12);
  font-size: 16px;
  padding: 0 14px;
  background: #fff;
  outline: none;
  font-family: 'Nunito';
}

.ispv2-lead__field select{
  appearance: none;
}

.ispv2-lead__check{
  color: #000;
  display: grid;
  grid-template-columns: 16px 1fr;
  gap: 10px;
  align-items: flex-start;
  font-size: 12px;
  opacity: .9;
  margin-top: 6px;
  font-family: 'Nunito-SemiBold';
}

.ispv2-lead__check a{
  text-decoration: underline;
  font-size: 12px;
  font-weight: 800;
  color: #8145ec;
}

.ispv2-lead__submit{
  margin-top: 8px;
  height: 44px;
  border-radius: 12px;
  border: 0;
  background: linear-gradient(90deg, #400578, #8145ec);
  color: #fff;
  font-weight: 800;
  cursor: pointer;
}

.ispv2-lead__msg{
  margin: 0;
  font-size: 12px;
  min-height: 16px;
  opacity: .9;
}

/* =========================
   GRID + CARD (reutilizable)
========================= */
.isp-v2 .isp-grid{
  display: grid;
  gap: var(--gap);
  grid-template-columns: 1fr;
}

@media (min-width: 768px){
  .isp-v2 .isp-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px){
  .isp-v2 .isp-grid{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1280px){
  .isp-v2 .isp-grid{ grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.isp-v2 .isp-card{
  border-radius: var(--r);
  overflow: hidden;
  background: #fff;
  box-shadow: var(--shadow);
  display: flex;
  flex-direction: column;
  min-height: 100%;
}

.isp-v2 .isp-card__media{
  aspect-ratio: 16 / 9;
  background: #f2f2f2;
}

.isp-v2 .isp-card__media img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.isp-v2 .isp-card__body{
  padding: clamp(14px, 2vw, 18px);
  display: grid;
  gap: 10px;
}

.isp-v2 .isp-card__meta{
  font-size: 14px;
  opacity: .8;
  margin: 0;
}

.isp-v2 .isp-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 10px 14px;
  border-radius: 12px;
  text-decoration: none;
  font-weight: 600;
  border: 1px solid rgba(0,0,0,.12);
}

/* =========================
   CARRERAS V2 (mockup)
========================= */

.isp-v2 .isp-container{
  width: min(100%, 1200px);
  margin-inline: auto;
  padding-inline: clamp(16px, 4vw, 40px);
}

.isp-v2 .ispv2-hero{
  background: linear-gradient(180deg, #3d0577 0%, #73078C 100%);
  color: #fff;
  padding: clamp(44px, 7vw, 96px) 0;
  text-align: center;
}

.isp-v2 .ispv2-hero__title{
  font-family: "Bebas Neue", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  text-transform: uppercase;
  line-height: 1;
  margin-bottom: 12px;
  text-align: center;
  letter-spacing: .5px;
  font-size: clamp(34px, 6vw, 56px);
}

.isp-v2 .ispv2-hero__underline{
  display: block;
  width: 56px;              
  height: 3px;
  border-radius: 999px;
  margin: 14px auto 16px;   
  background: rgba(255,255,255,.9);
}

.isp-v2 .ispv2-hero__text{
  font-family: "Nunito", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-size: clamp(14px, 1.6vw, 18px);
  line-height: 1.4;
  max-width: 780px;
  margin: 0 auto;
  text-align: center;
  opacity: .92;
}

.isp-v2 .ispv2-body{
  background: #fff;
  padding: clamp(26px, 5vw, 54px) 0;
}

.isp-v2 .ispv2-tabs{
  display: inline-flex !important;
  justify-content: flex-start !important;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  width: auto !important;
  max-width: 100%;
  margin: 0 0 22px;  
  margin-bottom: 30px;
}

.isp-v2 .ispv2-tab{
  flex: 0 0 auto !important;
  width: auto !important;
  min-width: 0 !important;
  white-space: nowrap;
  font-family: 'Nunito-Bold';
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 10px 16px;
  border-radius: 10px;
  border: 1px solid #502F9F;
  text-decoration: none;
  font-weight: 700;
  color:#502F9F;
  background: #fff;
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}

.isp-v2 .ispv2-tab.is-active,
.isp-v2 .ispv2-tab:hover{
  background: #9260E8;
  color: #fff;
  border-color: #9260E8;
}

/* =============================
   LAYOUT GENERAL (Carreras V2)
============================= */
.ispv2-shell,
.ispv2-body,
.ispv2-layout-wrap,
.ispv2-aside{
  overflow: visible !important;
  transform: none !important;
  contain: none !important;
}

.ispv2-layout-wrap{
 display: block;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 28px;
  align-items: start;
}

.ispv2-main{
  width: 100%;
  max-width: 100%;
  flex:0 0 100%;
}
.ispv2-formcard{
  position: sticky;
  top: calc(var(--ispv2-header-h, 110px) + 20px);
  z-index: 5;
}

.ispv2-aside{
  position: relative;
  align-self: start;
  min-width: 0;
}
.ispv2-formcard.is-fixed{
  position: fixed;
  top: 130px;
  z-index: 50;
}

.ispv2-formcard.is-abs{
  position: absolute;
  top: 0;
  z-index: 10;
}


@media (max-width: 1023px){
  .ispv2-formcard,
  .ispv2-formcard.is-fixed,
  .ispv2-formcard.is-abs{
    position: static !important;
    top: auto !important;
    width: 100% !important;
  }
  .ispv2-layout-wrap{
    grid-template-columns: 1fr;
  }

  .ispv2-formcard{
    position: static;
    top: auto;
  }
}

.isp-v2 .ispv2-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 3fr));
  gap: 24px;
  width: 100%;
}

@media (max-width: 700px){
  .isp-v2 .ispv2-grid{
    grid-template-columns: repeat(2, minmax(0, 2fr));
    gap: 16px; }
}

@media (max-width: 400px){
  .isp-v2 .ispv2-grid{
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 16px; }
}


.isp-v2 .ispv2-card{
  width: 100%;
  margin: 0px;
  border-radius: 18px;
  overflow: hidden;
  background: #f4effb;
  box-shadow: 0 10px 28px rgba(28,18,51,.08);
  height: auto;
  transition: transform .28s ease, box-shadow .28s ease;
}

.ispv2-card:hover{
  transform: translateY(-6px);
  box-shadow: 0 18px 40px rgba(28, 18, 51, .14);
}

.isp-v2 .ispv2-card__link{
  display: block;
  text-decoration: none;
  color: inherit;
  height: 100%;
}

.isp-v2 .ispv2-card__media{
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #eee;
}

.isp-v2 .ispv2-card__media img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .5s ease;
}

.ispv2-card:hover .ispv2-card__media img{
  transform: scale(1.04);
}

.isp-v2 .ispv2-card__body{
  padding: 20px 20px 18px;
  background: #f4effb;
  min-height: 146px;
  display: flex;
  flex-direction: column;
}

.isp-v2 .ispv2-card__title{
  font-size: 18px;
  font-family: 'Nunito';
  line-height: 1.3;
  font-weight: 800;
  color: #34126b;
  margin: 0 0 10px;
}

.isp-v2 .ispv2-card__meta{
  font-family: 'Nunito-SemiBold';
  font-size: 14px;
  line-height: 1.5;
  color: #5e4b7f;
  margin: 0;
}

.isp-v2 .ispv2-card__cta{
  margin-top: auto;
  margin-left: auto;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  color: #4b1488;
  font-size: 20px;
  box-shadow: 0 6px 14px rgba(75, 20, 136, .12);
  transition: all .25s ease;
}
.ispv2-card:hover .ispv2-card__cta{
  transform: translateX(2px);
  background: #4b1488;
  color: #fff;
}

/* placeholders del form (hasta que pongas shortcode real) */
.isp-v2 .ispv2-form-placeholder{ display: grid; gap: 10px; }
.isp-v2 .ispv2-input{ height: 38px; border: 1px solid #ddd; border-radius: 10px; background: #fafafa; }
.isp-v2 .ispv2-check{ height: 18px; width: 70%; border-radius: 6px; background: #f2f2f2; }
.isp-v2 .ispv2-btn{ height: 42px; border-radius: 12px; background: #7d4cff; }

/* Convenios */
.isp-v2 .ispv2-convenios{
  background: #fff;
  padding: clamp(26px, 5vw, 60px) 0;
}
.isp-v2 .ispv2-convenios__title{
  margin: 0 0 8px;
  font-size: clamp(22px, 3vw, 34px);
  font-weight: 900;
  color: #2a0a4a;
}
.isp-v2 .ispv2-convenios__sub{
  margin: 0 0 18px;
  opacity: .8;
}

.isp-v2 .ispv2-logos{
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (min-width: 768px){
  .isp-v2 .ispv2-logos{ grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.isp-v2 .ispv2-logo{
  height: 56px;
  border-radius: 12px;
  background: #f2f2f2;
}

html{
  overflow-x: clip;   /* mejor que hidden para evitar scroll horizontal */
}

body{
  overflow-x: clip;
  overflow-y: visible; /* deja que el scroll sea normal */
}


/* =========================
   CRV2 - AISLADO
========================= */

.crv2{
  font-family: Nunito, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color: #1b1b1b;
}

/* TITULARES */
.crv2 .crv2-h1,
.crv2 .crv2-h2{
  font-family: "Bebas Neue", BebasNeue, Impact, sans-serif;
  letter-spacing: .5px;
  color: #3b0a74;
}
.crv2 .crv2-h1{
  font-size: 55px;
}
.crv2 .crv2-h2{
  font-size: 45px;
}
/* -------------------------
   HERO (full width)
------------------------- */

.crv2 .isp-container{
  width: min(1400px, 100%);
  margin: 0 auto;
  padding-left: clamp(16px, 7vw, 48px);
  padding-right: clamp(16px, 7vw, 48px);
}

.crv2-hero{
  margin-top: 100px;
  position: relative;
  width: 100%;
  overflow: hidden;
}

.crv2-hero__bg picture,
.crv2-hero__bg img{
  display:block;
  width:100%;
  height:100%;
}

.crv2-hero__bg{
  position:absolute;
  inset:0;
  z-index: 0;
}

.crv2-hero__bg img{
  object-fit: cover;
}

.crv2-hero .isp-container{
  position: relative;
  z-index: 2;
}

.crv2-hero__grid{
  display: grid;
  grid-template-columns: 1fr 2.5fr;
  gap: clamp(16px, 3vw, 36px);
  align-items: start;
  min-height: clamp(420px, 52vw, 610px);
  padding-top: clamp(28px, 6vw, 80px);
  padding-bottom: clamp(22px, 4vw, 60px);
}

.crv2-hero__copy{
  max-width: 400px;
  color: #fff;
}

.crv2 .crv2-hero__copy{
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
}

.crv2-back{
  display: inline-block;
  color: rgba(255,255,255,.85);
  text-decoration: none;
  font-family: Nunito, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-size: 14px;
  margin-bottom: 12px;
}

.crv2-back:hover{ color: #fff; text-decoration: underline; }

.crv2 .crv2-back{
  display: block !important;
  width: 100%;
  margin: 0 0 12px 0 !important;
}

.crv2 .crv2-pill{
  display: inline-flex !important; /* el pill sigue siendo “pill” */
  margin: 50px 0 16px 0 !important;
}

.crv2-pill{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 18px;
  border-radius: 999px;
  background: rgba(255,255,255,.92);
  color: #4a148c;
  font-family: Nunito, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 800;
  letter-spacing: .04em;
  margin-bottom: 16px;
}

.crv2-h1{
  margin: 0px;
  font-family: "Bebas Neue", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 400;
  line-height: .95;
  font-size: clamp(44px, 6.2vw, 78px);
  letter-spacing: .01em;
  color: #fff !important;
}

.crv2-hero__underline{
  width: 38px;
  height: 3px;
  background: rgba(255,255,255,.9);
  border-radius: 99px;
  margin: 0 0 16px;
}

.crv2-hero__desc{
  margin: 0;
  max-width: 520px;
  color: rgba(255,255,255,.92);
  font-family: Nunito, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.45;
}

/* Columna visual “slot” para que se entienda el espacio del form en hero */
.crv2-hero__slot{
  height: 1px;
}

/* Mobile hero */
@media (max-width: 1023px){
  .crv2-hero__grid{
    grid-template-columns: 1fr;
    min-height: 420px;
  }
  .crv2-back{ color:#fff; }
}

/* -------------------------
   LAYOUT BODY
------------------------- */
.crv2-body{
  padding: 46px 0 70px;
}

.crv2-layout{
  display:grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 28px;
  align-items: start;
}

/* MAIN */
.crv2-main{
  min-width: 0;
}

.crv2-block{
  padding: 10px 0 45px;
  border-bottom: 1px solid rgba(75, 0, 130, .12);
}

.crv2-h2{
  font-size: clamp(42px, 4.4vw, 52px);
  line-height: 1;
  margin: 0 0 12px;
}

.crv2-p{
  margin: 0 0 18px;
  max-width: 720px;
  color: #4a4a4a;
  line-height: 1.6;
}

/* -------------------------
   FORM ASIDE (sticky)
------------------------- */
.crv2-aside{
  display: flex;
  justify-content: flex-end;
  position: relative;
  width: 360px;
  min-width: 0;
}

.crv2-formcard{
  width: min(420px, 100%);
  position: sticky;
  top: 130px;
}

/* Si tu tema mete estilos raros al form, al menos mantenemos un marco */
.crv2-formcard .g4_form_general,
.crv2-formcard form{
  width: 100%;
}

/* Mobile: el aside se va abajo (luego haremos el botón sticky inferior) */
@media (max-width: 1023px){
  .crv2-layout{
    grid-template-columns: 1fr;
  }
  .crv2-aside{
    width: 100%;
  }
  .crv2-formcard{
    position: static;
  }
}

@media (max-width: 980px){
  .crv2-hero__grid{
    grid-template-columns: 1fr;
    min-height: clamp(380px, 70vw, 520px);
  }
  .crv2-aside{ display:none; }
  .crv2-hero::before{
    background: linear-gradient(180deg,
      rgba(64, 5, 120, 0.82) 0%,
      rgba(64, 5, 120, 0.35) 55%,
      rgba(64, 5, 120, 0.00) 100%
    );
  }
}





/* mini cards */
.crv2-mini3{
  display:grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 16px;
  margin: 18px 0;
}

.crv2-mini{
  border: 1px solid #d9c5ff;
  border-radius: 16px;
  padding: 14px 34px;
  min-height: 92px;
}

.crv2-mini__ico{
  width: 38px;
  height: 38px;
  object-fit: contain;
  display:inline-flex;
  margin-bottom: 10px;
}

.crv2-mini__title{
  font-weight: 800;
  color:#3b0a74;
  margin-bottom: 6px;
}

.crv2-mini__desc{
  color:#5a5a5a;
  font-size: 13px;
  line-height: 1.35;
}

.crv2-cta{
  margin-top: 16px;
  background: #f07a18;
  color:#fff;
  border-radius: 14px;
  text-align:center;
  font-weight: 800;
  padding: 14px 18px;
  font-size: 18px;
}

/* Plan */
.crv2-plan{
  margin-top: 40px;
  border-radius: 26px;
  padding: 40px 40px;
  background:linear-gradient(135deg,#6e00a8,#4b0078);
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 20px;
  color:#fff;
  box-shadow:0 5px 1px rgba(75,0,120,.25);
}

.crv2-plan__left{
  font-weight: 700;
  font-size: 20px;
}

.crv2-plan__btn{
  background:#fff;
  color:#4b0078;
  padding:12px 24px;
  border-radius:10px;
  font-weight:700;
  font-size:16px;
  text-decoration:none;
  transition:all .25s ease;
}

.crv2-plan__btn:hover{
  background:#f4f4f4;
  transform:translateY(-2px);
}
@media(max-width:768px){
.crv2-plan{
  flex-direction:column;
  text-align:center;
}}
/* Video */
.crv2-video{
  margin-top: 16px;
  position: relative;
  border-radius: 18px;
  overflow:hidden;
  background:#000;
  min-height: 220px;
}

.crv2-video img{
  width:100%;
  height:100%;
  object-fit: cover;
  display:block;
  opacity:.92;
}

.crv2-video__play{
  position:absolute;
  inset:auto 14px 14px auto;
  width: 56px;
  height: 56px;
  border-radius: 999px;
  border: none;
  background:#fff;
  cursor:pointer;
  font-size: 18px;
}

/* Responsive blocks */
@media (max-width: 767px){
 
  .crv2-mini3{
    grid-template-columns: 1fr;
  }
}


.crv2-iframe{
  position: relative;
  width: 100%;
  padding-top: 56.25%;
}
.crv2-iframe iframe{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.crv2-grade{
  display:grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(320px, 420px);
  align-items:center;
  gap:40px;
  padding:34px 38px;
  margin-top:34px;
  background:#fff;
  border:1.5px solid #d9c5ff;
  border-radius:24px;
  box-shadow:none;
}

.crv2-grade__left{
  display:grid;
  grid-template-columns: 62px 1fr;
  align-items:start;
  column-gap:18px;
  row-gap:10px;           
}

.crv2-grade__ico{
  width:76px;
  height:76px;
  object-fit:contain;
  grid-column:1;
  grid-row:1 / span 3;
  margin-top:-10px;
}

/* ✅ quita el empuje rígido */
.crv2-grade__title{
  grid-column:2;
  font-family:'Nunito', sans-serif;
  font-size:24px;
  line-height:1.35;
  font-weight:800;
  color:#2d1164;
  margin:0;
}

.crv2-grade__list{
  grid-column:2;
  margin:8px 0 0;
  padding:0;
  list-style:none;
}

.crv2-grade__list li{
  position:relative;
  padding-left:18px;
  margin-bottom:10px;
  font-family:'Nunito', sans-serif;
  font-size:18px;
  line-height:1.6;
  color:#400578;
}

.crv2-grade__list li:last-child{
  margin-bottom:0;
}

.crv2-grade__list li::before{
  content:"";
  position:absolute;
  left:0;
  top:.72em;
  width:7px;
  height:7px;
  border-radius:999px;
  background:#f27321;
  transform:translateY(-50%);
}


.crv2-grade__right{
  width:100%;
}

.crv2-grade__right img{
  width:100%;
  height:auto;
  display:block;
  border-radius:18px;
  object-fit:cover;
  aspect-ratio: 16 / 9;
}

@media (max-width: 1023px){
  .crv2-grade{
    flex-direction: column;   /* ✅ en vez de grid-template-columns */
    align-items: stretch;
    gap: 18px;
  }

  .crv2-grade__left{
    min-height: 0;
    padding-left: 52px;
    padding-top: 18px;
  }

  .crv2-grade__ico{
    left: -10px;
    top: -10px;
    width: 56px;
    height: 56px;
  }

  .crv2-grade__right{
    justify-content: flex-start;
  }

  .crv2-grade__right img{
    max-height: 260px;
  }
}

/* =========================
   CRV2 CONVENIOS MARQUEE
========================= */

.crv2-block--convenios{
  overflow: hidden;
  padding: 8px 0 4px;
}

.crv2-marquee{
  position: relative;
  overflow: hidden;
  width: 100%;
  padding: 14px 0;
  --crv2-marquee-duration: 45s;
  --crv2-marquee-distance: 1200px;
   mask-image: linear-gradient(to right, transparent 0, black 8%, black 92%, transparent 100%);
  -webkit-mask-image: linear-gradient(to right, transparent 0, black 8%, black 92%, transparent 100%);
}

.crv2-marquee__track{
  display: flex;
  align-items: center;
  gap: 26px;
  width: max-content;
  will-change: transform;
  transform: translate3d(0,0,0);
}

.crv2-marquee__item{
  flex: 0 0 auto;
  width: 170px;
  height: 54px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.crv2-marquee__link{
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}

.crv2-marquee__img{
  display: block;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

/* Fila izquierda -> derecha */
.crv2-marquee--ltr .crv2-marquee__track{
  animation: crv2MarqueeLTR var(--crv2-marquee-duration) linear infinite;
}

/* Fila derecha -> izquierda */
.crv2-marquee--rtl .crv2-marquee__track{
  animation: crv2MarqueeRTL var(--crv2-marquee-duration) linear infinite;
}

.crv2-marquee:hover .crv2-marquee__track{
  animation-play-state: paused;
}

@keyframes crv2MarqueeLTR{
  from{
    transform: translate3d(calc(var(--crv2-marquee-distance) * -1),0,0);
  }
  to{
    transform: translate3d(0,0,0);
  }
}

@keyframes crv2MarqueeRTL{
  from{
    transform: translate3d(0,0,0);
  }
  to{
    transform: translate3d(calc(var(--crv2-marquee-distance) * -1),0,0);
  }
}

@media (max-width: 600px){
  .crv2-marquee__item{
    width: 140px;
    height: 48px;
  }

  .crv2-marquee__track{
    gap: 18px;
  }
}

@media (prefers-reduced-motion: reduce){
  .crv2-marquee__track{
    animation: none !important;
  }
}
/*
@media (min-width: 1024px){
  .crv2-aside{
    position: relative;
  }

  .crv2-formcard{
    position: fixed;
    top: 130px;           
    right: 40px;          
    width: 380px;
    z-index: 90;
  }

  .crv2-layout{
    display: grid;
    grid-template-columns: minmax(0,1fr) 360px;
    gap: 32px;
    align-items: start;
  }
}
*/
/*
@media (max-width: 1023px){
  .crv2-layout{ grid-template-columns: 1fr; }
  .crv2-formcard{
    position: static;
    width: 100%;
  }
}


/* =========================
   CRV2 Lead: Desktop fixed
========================= */
/*
@media (min-width: 1024px){

  .crv2-aside{
    position: relative;
  }

  .crv2-formwrap{
    position: relative;
    min-height: 1px;
  }

}*/




/* =========================
   CRV2 Lead (BASE)
========================= */

/* Panel siempre con fondo/borde *//*
.crv2--programa #crv2LeadPanel{
  background: #fff;
  border: 1px solid #dfd3ff;
  box-shadow: 0 10px 25px rgba(0,0,0,.06);
}

.crv2--programa #crv2LeadPanel .ispv2-lead__close{
  display: none;
}

.crv2--programa #crv2LeadPanel{
    position: fixed;
    top: 220px;
    right: max(24px, calc((90vw - 1240px)/2));
    transform: translateX(-40px);
    width: 380px;
    padding: 40px;
    z-index: 120;
  }

  .crv2--programa #crv2LeadPanel .ispv2-lead__close{
    display: none !important;
  }

/* =========================
   DESKTOP: panel fijo
========================= */
/*@media (min-width: 1023px){
  #crv2LeadPanel{
    position: fixed;
    top: 220px;
    right: max(24px, calc((90vw - 1240px)/2));
    transform: translateX(-40px);
    width: 380px;
    padding: 40px;
    z-index: 120;
  }

  #crv2LeadPanel .ispv2-lead__close{
    display: none !important;
  }

 
  #crv2LeadOverlay,
  .crv2-lead-bar{
    display: none !important;
  }
}*/


/* =========================
   MOBILE / TABLET: modal con overlay
========================= */


/*
@media (max-width: 1200px)and (min-width:0px){
  .crv2--programa .crv2-layout{
    display: block !important;
    grid-template-columns: 1fr !important;
    gap: 0 !important;
  }

  .crv2--programa .crv2-main{
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    min-width: 0;
  }

  .crv2--programa .crv2-aside{
    width: 0 !important;
    max-width: 0 !important;
    flex: 0 0 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    min-height: 0 !important;
    overflow: visible !important;
  }

  .crv2--programa .crv2-formwrap{
    width: 0 !important;
    max-width: 0 !important;
    min-width: 0 !important;
    height: 0 !important;
    overflow: visible !important;
    position: static !important;
  }

  .crv2--programa .crv2-lead-bar{
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    height: 64px;
    z-index: 3;
    box-sizing: border-box;
    display: block !important;
  }

  .crv2--programa .crv2-lead-bar__btn{
    width: 100%;
    height: 100%;
    border: 0;
    cursor: pointer;
    font-weight: 900;
    font-family: 'Nunito', sans-serif;
    font-size: 16px;
    color: #fff;
    background: linear-gradient(90deg, #400578, #8145EC);
  }

  .crv2--programa #crv2LeadOverlay{
    position: fixed;
    left: 0;
    right: 0;
    top: 74px;
    bottom: 0;
    background: #fff;
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s ease;
    z-index: 4;
    display: block !important;
  }

  .crv2--programa #crv2LeadOverlay.is-active{
    opacity: 1;
    pointer-events: auto;
  }

  .crv2--programa #crv2LeadPanel{
    display: none !important;
    position: fixed !important;
    left: 50% !important;
    top: calc(50% + 6px) !important;
    right: auto !important;
    bottom: auto !important;
    transform: translate(-50%, -50%) !important;
    width: min(520px, calc(100vw - 40px)) !important;
    max-width: 520px !important;
    max-height: calc(100vh - 170px) !important;
    overflow: auto !important;
    padding: 28px 22px 34px !important;
    margin: 0 !important;
    background: #fff !important;
    border: 1px solid #dfd3ff !important;
    border-radius: 16px !important;
    box-shadow: 0 10px 25px rgba(0,0,0,.06) !important;

    z-index: 5 !important;
  }


  .crv2--programa #crv2LeadPanel.is-active{
    display: block !important;
    width: 420px !important;
    padding: 40px 40px !important;
    top: 20vw !important;
    transform: none !important;
    left: 30% !important;

  }

  .crv2--programa #crv2LeadPanel .ispv2-lead__close{
    display: block !important;
    position: absolute;
    top: 10px;
    right: 10px;
    width: 38px;
    height: 38px;
    border: 1px solid #dfd3ff;
    border-radius: 10px;
    background: #fff;
    cursor: pointer;
    font-size: 20px;
    line-height: 1;
    z-index: 6;
  }
}

html.no-scroll,
body.no-scroll{
  overflow: hidden !important;
}



*/
/* =========================
   OVERLAY (mobile/tablet)
   Blanco opaco, no se ve nada detrás
========================= */
/*#crv2LeadOverlay{
  position: fixed;
  inset: 0;
  background: #fff;
  opacity: 0;
  pointer-events: none;
  z-index: 9998;
  transition: opacity .2s ease;
}

#crv2LeadOverlay.is-visible{
  opacity: 1;
  pointer-events: auto;
}


html.crv2-no-scroll,
body.crv2-no-scroll{
  overflow: hidden !important;
}*/

/* =========================
   MOBILE/TABLET
========================= */
/*
@media (max-width: 1023px){

  .crv2-lead-bar{
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    height: 64px;
    z-index: 9997; 
    padding: 10px 14px;
    box-sizing: border-box;
    display: block;
    background: linear-gradient(90deg, #400578, #8145EC);
    box-shadow: 0 18px 50px rgba(0,0,0,.18);
  }

  .crv2-lead-bar__btn{
    width: 100%;
    height: 100%;
    border: 0;
    cursor: pointer;
    font-weight: 900;
    font-family: 'Nunito', sans-serif;
    font-size: 16px;
    color: #fff;
    background: transparent;
  }
/*
  
  #crv2LeadPanel{
    position: fixed !important;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: min(520px, calc(100vw - 28px));
    max-height: calc(100vh - 120px);
    overflow: auto;
    padding: 28px 22px;
    z-index: 9999;
    display: none; 
  }


  #crv2LeadPanel.is-open{
    display: block;
  }


  #crv2LeadPanel .ispv2-lead__close{
    display: block !important;
    position: absolute;
    top: 10px;
    right: 10px;
    width: 38px;
    height: 38px;
    border: 1px solid #dfd3ff;
    border-radius: 10px;
    background: #fff;
    cursor: pointer;
    font-size: 20px;
    line-height: 1;
    z-index: 1;
  }
}*/
/*
.crv2-lead-overlay{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.55);
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s ease;
  z-index: 90;
}

.crv2-lead-overlay.is-active{
  opacity: 1;
  pointer-events: auto;
}

@media (max-width: 1023px){
  .ispv2-lead{
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 100;
    transform: translateY(100%);
    transition: transform .3s ease;
    max-height: 88vh;
    overflow-y: auto;
    border-radius: 22px 22px 0 0;
  }

  .ispv2-lead.is-active{
    transform: translateY(0);
  }
}

*/



.crv2-swiper{
  position: relative;
  width: 100%;
}

.crv2-swiper-el.swiper{
  width: 100%;
  overflow: hidden;
}

.crv2-swiper-el .swiper-wrapper{
  display: flex !important;
  align-items: stretch;
}

.crv2-swiper--learn .swiper-slide,
.crv2-swiper--work .swiper-slide{
  width: 100% !important;
  flex: 0 0 100% !important;
}

.crv2-nav{
  display: flex;
  justify-content: center;
  gap: 12px;
  margin-top: 18px;
}

.crv2-marquee{
  position: relative;
  overflow: hidden;
  width: 100%;
  padding: 10px 0;
  --crv2-marquee-duration: 45s;
  --crv2-marquee-distance: 1200px;
}

.crv2-marquee__track{
  display: flex;
  align-items: center;
  gap: 26px;
  width: max-content;
  will-change: transform;
}

.crv2-marquee__item{
  flex: 0 0 auto;
  width: 170px;
  height: 54px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.crv2-marquee__link{
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}

.crv2-marquee__img{
  display: block;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.crv2-marquee--ltr .crv2-marquee__track{
  animation: crv2MarqueeLTR var(--crv2-marquee-duration) linear infinite;
}

.crv2-marquee--rtl .crv2-marquee__track{
  animation: crv2MarqueeRTL var(--crv2-marquee-duration) linear infinite;
}

@keyframes crv2MarqueeLTR{
  from{ transform: translate3d(calc(var(--crv2-marquee-distance) * -1),0,0); }
  to{ transform: translate3d(0,0,0); }
}

@keyframes crv2MarqueeRTL{
  from{ transform: translate3d(0,0,0); }
  to{ transform: translate3d(calc(var(--crv2-marquee-distance) * -1),0,0); }
}

.crv2-nav{
  display:flex;
  justify-content:center;
  gap:14px;
  margin-top:18px;
}

.crv2-prev,
.crv2-next{
  width:42px;
  height:42px;
  border-radius:50%;
  border:none;
  background:#400578;
  color:#fff;
  font-size:22px;
  cursor:pointer;
}
.crv2-swiper{
  position: relative;
  width: 100%;
  overflow: hidden;
}

.crv2-swiper-el.swiper{
  width: 100%;
  overflow: hidden !important;
}

.crv2-swiper-el .swiper-wrapper{
  display: flex !important;
  flex-wrap: nowrap !important;
  transition-property: transform !important;
  transform: translate3d(0,0,0);
}

.crv2-swiper-el .swiper-slide{
  flex: 0 0 100% !important;
  max-width: 100% !important;
  width: 100% !important;
  box-sizing: border-box;
}
.crv2-swiper{
  position: relative;
  width: 100%;
  overflow: hidden;
}

.crv2-swiper-el.swiper{
  width: 100%;
  overflow: hidden !important;
}

.crv2-swiper-el .swiper-wrapper{
  display: flex !important;
  flex-wrap: nowrap !important;
  will-change: transform;
}

.crv2-swiper-el .swiper-slide{
  flex: 0 0 100% !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box;
}

/* =========================
   CRV2 - BASE GENERAL
========================= */
.crv2{
  --crv2-purple: #400578;
  --crv2-purple-2: #5b19a6;
  --crv2-orange: #f27321;
  --crv2-text: #262626;
  --crv2-muted: #6b7280;
  --crv2-radius-lg: 24px;
  --crv2-radius-md: 18px;
  --crv2-shadow: 0 14px 40px rgba(0,0,0,.08);
}

.crv2-block{
  margin-bottom: 72px;
}

.crv2-h2{
  font-family: 'Bebas Neue', sans-serif;
  font-size: clamp(2rem, 4vw, 3.5rem);
  line-height: 1;
  color: var(--crv2-purple);
  margin: 0 0 14px;
  letter-spacing: .01em;
}

.crv2-p{
  font-family: 'Nunito', sans-serif;
  font-size: 17px;
  line-height: 1.65;
  color: var(--crv2-text);
  margin: 0 0 28px;
  max-width: 900px;
}

/* =========================
   SLIDERS
========================= */
.crv2-swiper{
  position: relative;
  width: 100%;
}

.crv2-swiper-el.swiper{
  width: 100%;
  overflow: hidden;
  border-radius: var(--crv2-radius-lg);
}

.crv2-swiper-el .swiper-wrapper{
  align-items: stretch;
}

.crv2-swiper-el .swiper-slide{
  height: auto;
  box-sizing: border-box;
}

/* =========================
   CARD BASE LEARN / WORK
========================= */
.crv2-slide{
  background: #fff;
  border-radius: var(--crv2-radius-lg);
  overflow: hidden;
  box-shadow: var(--crv2-shadow);
  height: 100%;
}

.crv2-slide__media{
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

.crv2-slide__media img{
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}


/* =========================
   CARD WHY
========================= */
.crv2-why{
 background:#fff;
  border:1.5px solid #400578;
  border-radius:18px;
  padding:22px 18px;
  min-height:160px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  box-shadow:none;
  transition:transform .2s ease, border-color .2s ease;
}

.crv2-why__ico{
  width: 60px;
  height: 60px;
  margin-bottom: 5px;
}

.crv2-why__txt{
  font-family:'Nunito', sans-serif;
  font-size:15.5px;
  line-height:1.5;
  color:#444;
  max-width:210px;
}

/* =========================
   NAV
========================= */
.crv2-nav{
  display: flex;
  justify-content: center;
  gap: 14px;
  margin-top: 20px;
}

.crv2-prev,
.crv2-next{
  width: 48px;
  height: 48px;
  border: none;
  border-radius: 999px;
  background: var(--crv2-purple);
  color: #fff;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
  box-shadow: 0 10px 24px rgba(64, 5, 120, .18);
}

.crv2-prev:hover,
.crv2-next:hover{
  background: var(--crv2-purple-2);
  transform: translateY(-2px);
}

.crv2-prev:active,
.crv2-next:active{
  transform: translateY(0);
}

.crv2-prev.swiper-button-disabled,
.crv2-next.swiper-button-disabled{
  opacity: .45;
  cursor: not-allowed;
  box-shadow: none;
}

/* =========================
   DOTS
========================= */
.crv2-dots{
  display:flex;
  justify-content:center;
  gap:10px;
  margin-top:20px;
}

.crv2-dots .swiper-pagination-bullet{
  width:10px;
  height:10px;
  margin:0 !important;
  background:rgba(64,5,120,.22);
  opacity:1;
}

.crv2-dots .swiper-pagination-bullet-active{
  background:#f27321;
}

/* =========================
   MINI CARDS
========================= */
.crv2-mini3{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  margin-top: 28px;
}

.crv2-mini{
  background: #fff;
  border-radius: 18px;
  padding: 22px 18px;
  text-align: center;
}

.crv2-mini__ico{
  width: 54px;
  height: 54px;
  object-fit: contain;
  margin: 0 auto 14px;
}

.crv2-mini__title{
  font-family: 'Nunito', sans-serif;
  font-size: 18px;
  font-weight: 800;
  color: var(--crv2-purple);
  margin-bottom: 8px;
}

.crv2-mini__desc{
  font-family: 'Nunito', sans-serif;
  font-size: 16px;
  line-height: 1.55;
  color: var(--crv2-text);
}

/* =========================
   CTA
========================= */
.crv2-cta{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px 28px;
  margin-top:28px;
  border-radius:18px;
  border:none;
  font-family:'Nunito', sans-serif;
  font-size:20px;
  font-weight:700;
  text-align:center;
  color:#fff;
  background:linear-gradient(135deg,#f27321,#d95d16);
  box-shadow:0 10px 1px rgba(242,115,33,.35);
  transition:
    transform .2s ease,
    box-shadow .2s ease,
    background .2s ease;
  cursor:pointer;
}
.crv2-cta:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 36px rgba(242,115,33,.45);
  background:linear-gradient(135deg,#ff7e2e,#e5671e);
}
.crv2-cta:active{
  transform:translateY(0);
  box-shadow:0 8px 16px rgba(242,115,33,.35);
}
@media (max-width:768px){
.crv2-cta{
  font-size:17px;
  padding:16px 18px;
  border-radius:14px;
}}
/* =========================
   CONVENIOS
========================= */
.crv2-block--convenios{
  overflow: hidden;
}

.crv2-marquee{
  position: relative;
  overflow: hidden;
  width: 100%;
  padding: 10px 0;
  --crv2-marquee-duration: 45s;
  --crv2-marquee-distance: 1200px;
}

.crv2-marquee__track{
  display: flex;
  align-items: center;
  gap: 26px;
  width: max-content;
  will-change: transform;
}

.crv2-marquee__item{
  flex: 0 0 auto;
  width: 170px;
  height: 54px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.crv2-marquee__link{
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}

.crv2-marquee__img{
  display: block;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.crv2-marquee--ltr .crv2-marquee__track{
  animation: crv2MarqueeLTR var(--crv2-marquee-duration) linear infinite;
}

.crv2-marquee--rtl .crv2-marquee__track{
  animation: crv2MarqueeRTL var(--crv2-marquee-duration) linear infinite;
}

.crv2-marquee:hover .crv2-marquee__track{
  animation-play-state: paused;
}

@keyframes crv2MarqueeLTR{
  from{ transform: translate3d(calc(var(--crv2-marquee-distance) * -1),0,0); }
  to{ transform: translate3d(0,0,0); }
}

@keyframes crv2MarqueeRTL{
  from{ transform: translate3d(0,0,0); }
  to{ transform: translate3d(calc(var(--crv2-marquee-distance) * -1),0,0); }
}

/* =========================
   VIDEO TESTIMONIO
========================= */
.crv2-video{
  position: relative;
  overflow: hidden;
  border-radius: 24px;
  box-shadow: var(--crv2-shadow);
  cursor: pointer;
  background: #000;
  aspect-ratio: 16 / 9;
}

.crv2-video img,
.crv2-video iframe{
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.crv2-video__play{
  position: absolute;
  inset: 50% auto auto 50%;
  transform: translate(-50%, -50%);
  width: 74px;
  height: 74px;
  border: none;
  border-radius: 999px;
  background: rgba(255,255,255,.92);
  color: var(--crv2-purple);
  font-size: 28px;
  cursor: pointer;
  box-shadow: 0 16px 40px rgba(0,0,0,.18);
}

/* =========================
   TABLET <= 1024
========================= */
@media (max-width: 1024px){
  .crv2-block{
    margin-bottom: 60px;
  }

  .crv2-p{
    font-size: 17px;
    margin-bottom: 24px;
  }

  .crv2-slide__text{
    font-size: 17px;
    min-height: 84px;
    padding: 20px;
  }

  .crv2-why{
    min-height: 230px;
    padding: 24px 18px;
  }

  .crv2-why__ico{
    width: 64px;
    height: 64px;
    margin-bottom: 14px;
  }

  .crv2-why__txt{
    font-size: 16px;
  }

  .crv2-mini3{
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .crv2-mini{
    text-align: left;
    display: grid;
    grid-template-columns: 56px 1fr;
    gap: 14px;
    align-items: start;
  }

  .crv2-mini__ico{
    margin: 0;
    width: 48px;
    height: 48px;
  }

  .crv2-cta{
    width: 100%;
    text-align: center;
  }

  .crv2-marquee__item{
    width: 150px;
    height: 48px;
  }
}

/* =========================
   MOBILE <= 767
========================= */
@media (max-width: 767px){
  .crv2-block{
    margin-bottom: 48px;
  }

  .crv2-h2{
    font-size: clamp(1.8rem, 10vw, 2.5rem);
    margin-bottom: 10px;
  }

  .crv2-p{
    font-size: 15px;
    line-height: 1.6;
    margin-bottom: 20px;
  }

  .crv2-swiper-el.swiper{
    border-radius: 18px;
  }

  .crv2-slide{
    border-radius: 18px;
  }

  .crv2-slide__media{
    aspect-ratio: 4 / 3;
  }

  .crv2-slide__text{
    padding: 16px;
    font-size: 15px;
    min-height: auto;
    align-items: flex-start;
  }

  .crv2-why{
    min-height: auto;
    border-radius: 18px;
    padding: 22px 16px;
  }

  .crv2-why__ico{
    width: 56px;
    height: 56px;
  }

  .crv2-why__txt{
    font-size: 15px;
    max-width: 100%;
  }

  .crv2-nav{
    gap: 10px;
    margin-top: 16px;
  }

  .crv2-prev,
  .crv2-next{
    width: 42px;
    height: 42px;
    font-size: 20px;
  }

  .crv2-mini{
    padding: 16px;
    border-radius: 16px;
    grid-template-columns: 44px 1fr;
  }

  .crv2-mini__title{
    font-size: 16px;
  }

  .crv2-mini__desc{
    font-size: 14px;
  }

  .crv2-cta{
    padding: 14px 16px;
    min-height: 52px;
    font-size: 15px;
    border-radius: 14px;
  }

  .crv2-marquee__track{
    gap: 18px;
  }

  .crv2-marquee__item{
    width: 132px;
    height: 44px;
  }

  .crv2-video{
    border-radius: 18px;
  }

  .crv2-video__play{
    width: 62px;
    height: 62px;
    font-size: 24px;
  }
}

/* ===== SLIDE LAYOUT ===== */

.crv2-slide{
  display:flex;
  gap:30px;
  align-items:center;
}

/* imagen */
.crv2-slide__media{
  flex:0 0 58%;
  border-radius:24px;
  overflow:hidden;
}

.crv2-slide__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}


/* ===== BOTONES ===== */

.crv2-swiper--learn .crv2-nav{
  position:absolute;
  right:0;
  bottom:0;
  display:flex;
  gap:10px;
}

/* botones */
.crv2-prev,
.crv2-next{
  width:48px;
  height:48px;
  border-radius:50%;
  border:none;
  background:#400578;
  color:#fff;
  font-size:20px;
  cursor:pointer;
}

/* ===== WRAPPER ===== */

.crv2-swiper--learn{
  position:relative;
  padding-bottom:60px;
}

/* =========================
   LEARN / WORK SLIDE HORIZONTAL
========================= */
.crv2-swiper--learn .swiper-slide.crv2-slide,
.crv2-swiper--work .swiper-slide.crv2-slide{
  display: grid !important;
  grid-template-columns: minmax(0, 45%) minmax(480px, 1fr);
  align-items: center !important;
  gap: 28px !important;
  background: #fff;
  border-radius: 24px;
  box-shadow: 0 14px 40px rgba(0,0,0,.08);
  overflow: hidden;
  padding: 0 !important;
  min-height: 420px;
}

.crv2-swiper--learn .crv2-slide__media,
.crv2-swiper--work .crv2-slide__media{
  width: 90% !important;
  height: 90% !important;
  min-height: 420px;
  border-radius: 0 !important;
  overflow: hidden;
  flex: unset !important;
  aspect-ratio: auto !important;
}

.crv2-swiper--learn .crv2-slide__media img,
.crv2-swiper--work .crv2-slide__media img{
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  display: block;
}

.crv2-swiper--learn .crv2-slide__text,
.crv2-swiper--work .crv2-slide__text{
  display: flex !important;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  min-height: auto !important;
  padding: 40px 32px 40px 32px !important;
  font-family: 'Nunito', sans-serif;
  font-size: 18px !important;
  line-height: 1.35 !important;
  font-weight: 600;
  color: #400578;
  text-align: center;
  border: 1px solid #d9c5ff;
  border-radius: 20px;
}

/* contenedor del slider para ubicar flechas */
.crv2-swiper--learn,
.crv2-swiper--work{
  position: relative;
  padding-bottom: 0 !important;
}

/* flechas abajo al borde derecho */
.crv2-swiper--learn .crv2-nav,
.crv2-swiper--work .crv2-nav{
  position: absolute;
  right: 28px;
  bottom: 24px;
  display: flex !important;
  justify-content: flex-end;
  gap: 12px;
  margin-top: 0 !important;
  z-index: 3;
}

.crv2-swiper--learn .crv2-prev,
.crv2-swiper--learn .crv2-next,
.crv2-swiper--work .crv2-prev,
.crv2-swiper--work .crv2-next{
  width: 48px;
  height: 48px;
  border: none;
  border-radius: 999px;
  background: #400578;
  color: #fff;
  font-size: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 10px 24px rgba(64,5,120,.18);
}

/* =========================
   TABLET <= 1024
========================= */
@media (max-width: 1024px){
  .crv2-swiper--learn .swiper-slide.crv2-slide,
  .crv2-swiper--work .swiper-slide.crv2-slide{
    grid-template-columns: minmax(0, 52%) minmax(0, 1fr);
    gap: 22px !important;
    min-height: 360px;
  }

  .crv2-swiper--learn .crv2-slide__media,
  .crv2-swiper--work .crv2-slide__media{
    min-height: 360px;
  }

  .crv2-swiper--learn .crv2-slide__text,
  .crv2-swiper--work .crv2-slide__text{
    font-size: 22px !important;
    padding: 22px 22px 82px 0 !important;
  }

  .crv2-swiper--learn .crv2-nav,
  .crv2-swiper--work .crv2-nav{
    right: 22px;
    bottom: 20px;
  }
}

/* =========================
   MOBILE <= 767
========================= */
@media (max-width: 767px){
  .crv2-swiper--learn .swiper-slide.crv2-slide,
  .crv2-swiper--work .swiper-slide.crv2-slide{
    display: flex !important;
    flex-direction: column !important;
    min-height: auto;
    gap: 0 !important;
  }

  .crv2-swiper--learn .crv2-slide__media,
  .crv2-swiper--work .crv2-slide__media{
    min-height: auto;
    height: auto !important;
    aspect-ratio: 4 / 3 !important;
  }

  .crv2-swiper--learn .crv2-slide__text,
  .crv2-swiper--work .crv2-slide__text{
    width: 100%;
    font-size: 18px !important;
    line-height: 1.4 !important;
    padding: 16px 16px 72px !important;
  }

  .crv2-swiper--learn .crv2-nav,
  .crv2-swiper--work .crv2-nav{
    right: 16px;
    bottom: 16px;
    gap: 10px;
  }

  .crv2-swiper--learn .crv2-prev,
  .crv2-swiper--learn .crv2-next,
  .crv2-swiper--work .crv2-prev,
  .crv2-swiper--work .crv2-next{
    width: 42px;
    height: 42px;
    font-size: 20px;
  }
}

@media (max-width:1024px){
.crv2-slide__text{
  font-size:20px;
  padding:22px;
}
}

@media (max-width:768px){
.crv2-slide__text{
  font-size:17px;
  padding:18px;
}
}

/* =========================
   WHY: permitir 1 / 2 / 3 cards
========================= */
.crv2-swiper--why .swiper-slide{
  width: auto !important;
  flex: 0 0 auto !important;
  height: auto ;
  display: flex !important;
}

.crv2-swiper--why .swiper-wrapper{
  align-items: stretch;
}

.crv2-swiper--why .crv2-why{
  height: 180px;
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 12px;
  padding: 22px 18px;
  border: 1px solid #d9c5ff;
  border-radius: 18px;
  background: #fff;
  text-align: center;
}
.crv2-swiper--why{
  max-width:900px;
  margin:auto;
}

@media (max-width: 1024px){
  .crv2-grade{
    grid-template-columns: 1fr;
    gap:28px;
    padding:28px 26px;
  }

  .crv2-grade__title{
    font-size:22px;
  }

  .crv2-grade__list li{
    font-size:17px;
  }

  .crv2-grade__right img{
    max-width:100%;
  }
}

@media (max-width: 767px){
  .crv2-grade{
    padding:22px 18px;
    border-radius:18px;
    gap:22px;
  }

  .crv2-grade__left{
    grid-template-columns: 48px 1fr;
    column-gap:14px;
  }

  .crv2-grade__ico{
    width:42px;
    height:42px;
  }

  .crv2-grade__title{
    font-size:18px;
    line-height:1.4;
  }

  .crv2-grade__list li{
    font-size:15px;
    line-height:1.55;
    padding-left:16px;
  }

  .crv2-grade__list li::before{
    width:6px;
    height:6px;
  }

  .crv2-grade__right img{
    border-radius:14px;
    aspect-ratio: 4 / 3;
  }
}

/* Footer por encima del form */
.site-footer,
footer{
  position: relative;
  z-index: 30;
  background-color: white;
}

/* El aside del form por debajo del footer */
.crv2-aside{
  position: relative;
  z-index: 5;
}

.crv2-formwrap{
  z-index: 6;
}

.crv2-formwrap.is-fixed,
.crv2-formwrap.is-abs{
  z-index: 6;
}
/*HERO SPACE*/
.crv2{
  padding-top: 40px;
}
@media (max-width: 767px){
  .crv2{
  padding-top: 0px;
}
.crv2-hero{
  margin-top: 80px;
}
}


@media (max-width: 767px){

  .crv2-mini{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;

    padding:20px 18px;
    border-radius:18px;
  }

  .crv2-mini__ico{
    width:40px;
    height:40px;
    margin:0 auto 12px;
    display:block;
  }

  .crv2-mini__title{
    font-size:17px;
    margin-bottom:6px;
  }

  .crv2-mini__desc{
    font-size:15px;
    line-height:1.45;
    max-width:240px;
    margin:0 auto;
  }

}

/* WHY slider: viewport limpio */
.crv2-swiper--why .crv2-swiper-el.swiper{
  overflow: hidden !important;
}


.crv2-swiper--why .swiper-slide{
  box-sizing: border-box;
}

@media (max-width: 767px){
  .crv2-why{
    min-height: 132px;
    padding: 16px 14px;
    border: 1.5px solid #400578;
    border-radius: 18px;
    box-shadow: none;
  }

  .crv2-why__ico{
    width: 34px;
    height: 34px;
    margin-bottom: 10px;
  }

  .crv2-why__txt{
    font-size: 14px;
    line-height: 1.4;
    max-width: 220px;
    margin: 0 auto;
  }

  .crv2-dots{
    margin-top: 14px;
    gap: 8px;
  }

  .crv2-dots .swiper-pagination-bullet{
    width: 9px;
    height: 9px;
  }
}


@media (max-width: 767px){

  .crv2-swiper--why{
    overflow: hidden;
  }

  .crv2-swiper--why .crv2-swiper-el,
  .crv2-swiper--why .crv2-swiper-el.swiper{
    overflow: hidden !important;
    width: 100% !important;
  }

  .crv2-swiper--why .swiper-wrapper{
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
  }

  .crv2-swiper--why .swiper-slide{
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    box-sizing: border-box;
  }

  .crv2-swiper--why .crv2-why{
    min-height: 128px;
    padding: 14px 12px;
    border: 1.5px solid #400578;
    border-radius: 18px;
    box-shadow: none;
  }

  .crv2-swiper--why .crv2-why__ico{
    width: 32px;
    height: 32px;
    margin-bottom: 8px;
  }

  .crv2-swiper--why .crv2-why__txt{
    font-size: 14px;
    line-height: 1.35;
    max-width: 210px;
    margin: 0 auto;
  }

  .crv2-swiper--why .crv2-dots{
    margin-top: 12px;
    gap: 8px;
  }
}


@media (max-width: 767px){

  .crv2-grade{
    text-align: center;
  }

  .crv2-grade__left{
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
  }

  .crv2-grade__ico{
    margin: 0 auto;
  }

  .crv2-grade__title{
    text-align: center;
    max-width: 260px;
    margin: 0 auto;
  }

  .crv2-grade__list{
    width: 100%;
    max-width: 270px;
    margin: 6px auto 0;
    text-align: left;
  }

  .crv2-grade__list li{
    margin-bottom: 10px;
  }
  .crv2-grade__left{
    padding-left: 0px;
  }
}

.crv2-video{
  width:100%;
  max-width:680px;
  margin:20px auto 0;
  aspect-ratio:16/9;
}
@media (max-width:767px){

  .crv2-video{
    max-width:100%;
    margin-top:16px;
    border-radius:18px;
  }

}

.crv2-video img,
.crv2-video iframe{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  border-radius:inherit;
}
@media (max-width:767px){

  .crv2-video__play{
    width:64px;
    height:64px;
    font-size:22px;
  }

}

@media (min-width: 768px) and (max-width: 1024px){
/*HERO SPACE*/
 .crv2{
    padding-top: 92px;
  }

  .crv2-hero{
    margin-top: 0 !important;
  }

  .crv2-hero__grid{
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 24px;
    align-items: center;
  }

  .crv2-hero__copy{
    padding: 36px 28px;
  }

  .crv2-back{
    font-size: 14px;
    margin-bottom: 18px;
    display: inline-block;
  }

  .crv2-pill{
    font-size: 15px;
    padding: 8px 18px;
    border-radius: 999px;
    margin-bottom: 18px;
  }

  .crv2-h1{
    font-size: clamp(3rem, 5vw, 4.2rem);
    line-height: .95;
    margin-bottom: 14px;
  }

  .crv2-hero__underline{
    width: 46px;
    margin-bottom: 18px;
  }

  .crv2-hero__desc{
    font-size: 17px;
    line-height: 1.55;
    max-width: 100%;
  }

  .crv2-hero__bg img{
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .crv2-aside{
    align-self: start;
  }

  .crv2-formwrap,
  .ispv2-lead{
    width: 100%;
    max-width: 320px;
  }

  /* layout general */
  .crv2-layout{
   /* display: grid;
    grid-template-columns: minmax(0, 1.25fr) 320px;
    gap: 28px;*/
    align-items: start;
  }

  .crv2-main{
    min-width: 0;
  }

  .crv2-aside{
    min-width: 0;
  }

  /* formulario */
  .crv2-formwrap,
  .ispv2-lead{
    width: 100%;
    max-width: 320px;
  }

  .ispv2-lead{
    padding: 22px 18px;
  }

  .ispv2-lead__title{
    font-size: 20px;
    line-height: 1.2;
    text-align: center;
  }

  .ispv2-lead__sub{
    font-size: 15px;
    text-align: center;
    margin-bottom: 14px;
  }

  .ispv2-lead__field input,
  .ispv2-lead__field select{
    min-height: 48px;
    font-size: 16px;
  }

  .ispv2-lead__submit{
    min-height: 48px;
    font-size: 17px;
  }

  .crv2-mini3{
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-top: 22px;
  }

  .crv2-mini{
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 18px 14px;
    min-height: 170px;
    border-radius: 18px;
    gap: 5px;
  }

  .crv2-mini__ico{
    width: 50px;
    height: 50px;
    margin: 0 auto;
  }

  .crv2-mini__title{
    margin: 0 0 8px;
    font-size: 17px;
    line-height: 1.25;
    font-weight: 800;
  }

  .crv2-mini__desc{
    margin: 0;
    font-size: 15px;
    line-height: 1.45;
    text-align: center;
    white-space: normal;
    word-break: normal;
    overflow-wrap: break-word;
  }

  /* CTA naranja */
  .crv2-cta{
    width: 100%;
    min-height: 58px;
    font-size: 18px;
    padding: 16px 18px;
    border-radius: 18px;
    text-align: center;
  }

  /* slider learn/work */
  .crv2-swiper--learn .swiper-slide.crv2-slide,
  .crv2-swiper--work .swiper-slide.crv2-slide{
    grid-template-columns: minmax(0, 50%) minmax(0, 1fr);
    gap: 18px !important;
    min-height: 320px;
  }

  .crv2-swiper--learn .crv2-slide__media,
  .crv2-swiper--work .crv2-slide__media{
    min-height: 320px;
  }

  .crv2-swiper--learn .crv2-slide__text,
  .crv2-swiper--work .crv2-slide__text{
    font-size: 18px !important;
    line-height: 1.35 !important;
    padding: 40px 18px 40px 18px !important;
  }

  .crv2-swiper--learn .crv2-nav,
  .crv2-swiper--work .crv2-nav{
    right: 18px;
    bottom: 18px;
  }

  /* why cards */
  .crv2-swiper--why{
    max-width: 100%;
  }

  .crv2-why{
    min-height: 180px;
    padding: 20px 16px;
  }

  .crv2-why__ico{
    width: 42px;
    height: 42px;
    margin-bottom: 10px;
  }

  .crv2-why__txt{
    font-size: 15px;
    line-height: 1.45;
    max-width: 210px;
    margin: 0 auto;
  }

  /* bloque grade */
  .crv2-grade{
    grid-template-columns: 1fr;
    gap: 22px;
    padding: 24px 22px;
  }

  .crv2-grade__title{
    font-size: 21px;
  }

  .crv2-grade__list li{
    font-size: 16px;
    line-height: 1.5;
  }

  .crv2-grade__right img{
    max-width: 100%;
    border-radius: 16px;
  }

  /* testimonios */
  .crv2-video{
    max-width: 100%;
    border-radius: 20px;
  }

  .crv2-video__play{
    width: 68px;
    height: 68px;
    font-size: 24px;
  }
}

@media (min-width: 768px) and (max-width: 1024px){

  .crv2-hero__grid{
    display: grid;
    grid-template-columns: 320px minmax(0, 1fr) 320px;
    gap: 0;
    align-items: stretch;
  }

  .crv2-hero__copy{
    grid-column: 1;
    width: 100%;
    max-width: 325px;
    padding: 34px 22px 34px 22px;
    box-sizing: border-box;
    overflow: hidden;
  }

  .crv2-back{
    display: inline-block;
    font-size: 14px;
    line-height: 1.3;
    margin-bottom: 18px;
  }

  .crv2-pill{
    margin-bottom: 18px;
  }

  .crv2-h1{
    font-size: 64px;
    line-height: 0.95;
    margin-bottom: 14px;
    word-break: normal;
    overflow-wrap: normal;
  }

  .crv2-hero__underline{
    margin-bottom: 18px;
  }

  .crv2-hero__desc{
    max-width: 100%;
    width: 100%;
    font-size: 16px;
    line-height: 1.55;
    margin: 0;
  }

  .crv2-hero__slot{
    grid-column: 3;
  }
}

.isp-container .al2-inner {
  margin-top: 50px;
}

/* ===== RESPONSIVE CONVENIOS ===== */

/* TABLET */
@media (max-width: 991px) {
    .al2-section .al2-inner {
        width: min(100%, calc(100% - 40px));
    }

    .al2-section .al2-header {
        margin-bottom: 32px;
        text-align: center;
    }

    .al2-section .al2-title {
        font-size: clamp(2rem, 5vw, 3rem);
        line-height: 1.1;
    }

    .al2-section .al2-pill,
    .al2-section .al2-rest {
        display: inline;
        font-size: 48px;
    }


    .al2-section .al2-subtitle {
        max-width: 700px;
        margin: 14px auto 0;
        font-size: 1rem;
        line-height: 1.6;
        margin-top: 15px;
        font-size: 15px;
    }

    .al2-section .al2-marquee {
        margin-bottom: 0px;
        padding: 0px;
    }

    .al2-section .al2-track {
        gap: 18px;
    }

    .al2-section .al2-item {
        min-width: 180px;
        height: 65px;
        padding: 10px 10px;
        border-radius: 16px;
    }

    .al2-section .al2-item img {
        max-height: 42px;
        width: auto;
    }
}

/* MOBILE */
@media (max-width: 767px) {
    .al2-section {
        padding: 56px 0;
    }

    .al2-section .al2-inner {
        width: min(100%, calc(100% - 32px));
    }

    .al2-section .al2-header {
        margin-bottom: 5px;
        text-align: center;
    }

    .al2-section .al2-title {
        font-size: clamp(1.7rem, 8vw, 2.4rem);
        line-height: 1.5;
    }

    .al2-section .al2-pill,
    .al2-section .al2-rest {
        display: inline;
    }

    .al2-section .al2-subtitle {
        margin-top: 20px;
        font-size: 0.98rem;
        line-height: 1.55;
    }

    .al2-section .al2-marquee {
        margin-bottom: 0px;
        overflow: hidden;
    }

    .al2-section .al2-track {
        gap: 14px;
    }

    .al2-section .al2-item {
        min-width: 140px;
        height: 78px;
        padding: 14px 16px;
        border-radius: 14px;
    }

    .al2-section .al2-item img {
        max-width: 100%;
        max-height: 50px;
        object-fit: contain;
    }
}

/* MOBILE PEQUEÑO */
@media (max-width: 480px) {
    .al2-section {
        padding: 48px 0;
    }

    .al2-section .al2-inner {
        width: min(100%, calc(100% - 24px));
    }

    .al2-section .al2-title {
        font-size: clamp(1.5rem, 8vw, 2rem);
    }

    .al2-section .al2-subtitle {
        font-size: 0.9rem;
        line-height: 1.5;
    }

    .al2-section .al2-track {
        gap: 12px;
    }

    .al2-section .al2-item {
        min-width: 120px;
        height: 70px;
        padding: 12px 14px;
    }

    .al2-section .al2-item img {
        max-height: 40px;
    }
}


/* contenedor */
.crv2-swiper--why .swiper-wrapper{
  align-items: stretch;
}

/* cada slide */
.crv2-swiper--why .swiper-slide{
  width: 240px !important;
  flex: 0 0 240px;
  display: flex;
}

/* tarjeta */
.crv2-why{
  width: 100%;
  height: 160px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:12px;

  padding:22px 18px;

  border:2px solid #6E2DBB;
  border-radius:22px;

  text-align:center;
  background:#fff;
}


/* =========================================
   PERFIL DEL EGRESADO
========================================= */

.crv2-block--perfil{
  padding-top: 10px;
}

.crv2-profile{
  display: grid;
  grid-template-columns: minmax(320px, 460px) minmax(0, 1fr);
  gap: 34px;
  align-items: stretch;
  margin-top: 34px;
}

.crv2-profile__left img{
  width: 100%;
  height: 100%;
  min-height: 420px;
  max-height: 420px;
  object-fit: contain;
  border-radius: 20px;
  display: block;
  border: 1px solid #d9c5ff;
}

.crv2-profile__right{
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.crv2-profile__box{
  position: relative;
  display: flex;
  align-items: center;
  min-height: 120px;
  padding: 26px 28px 26px 34px;
  border-radius: 20px;
  border: 1px solid #d9c5ff;
  font-family: 'Nunito', sans-serif;
  font-size: 18px;
  line-height: 1.35;
  font-weight: 700;
  color: #4A2C82;
}

.crv2-profile__box::before{
  content: "";
  position: absolute;
  left: 16px;
  top: 18px;
  bottom: 18px;
  width: 4px;
  border-radius: 999px;
  background: #8145EC;
}

/* tablet */
@media (max-width: 1024px){
  .crv2-profile{
    gap: 24px;
  }

  .crv2-profile__left img{
    min-height: 320px;
    max-height: 420px;
  }

  .crv2-profile__box{
    min-height: 126px;
    font-size: 18px;
    padding: 22px 22px;
    font-weight: 600;
  }
  .crv2-profile__box::before{
    left: 10px;
  }

}

@media (max-width: 768px) {
  .crv2-profile{
    grid-template-columns: 1fr;
  }
}

/* mobile */
@media (max-width: 640px){
  .crv2-profile{
    margin-top: 24px;
    gap: 18px;
  }

  .crv2-profile__left img{
    min-height: 240px;
    max-height: 300px;
    border-radius: 18px;
  }

  .crv2-profile__box{
    min-height: 88px;
    font-size: 17px;
    line-height: 1.4;
    padding: 18px 16px;
    border-radius: 18px;
  }
}



/* =========================================
   SINGLE CURSO - META
========================================= */

.crv2-course-meta{
  margin-top: 30px;
}

.crv2-course-meta__grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.crv2-course-meta__item{
  padding: 24px 22px;
  border: 1px solid rgba(129,69,236,.18);
  border-radius: 20px;
  background: #fff;
}

.crv2-course-meta__label{
  font-family: 'Nunito', sans-serif;
  font-size: 18px;
  font-weight: 800;
  color: #400578;
  margin-bottom: 10px;
}

.crv2-course-meta__schedule{
  margin-top: 18px;
  padding: 24px 22px;
  border: 1px solid rgba(129,69,236,.18);
  border-radius: 20px;
  background: #fff;
}

.crv2-course-meta__tags{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.crv2-tag{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 8px 14px;
  border-radius: 999px;
  background: #F4F1F8;
  border: 1px solid rgba(129,69,236,.22);
  font-family: 'Nunito', sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: #4A2C82;
}

.crv2-course-meta__item,
.crv2-course-meta__schedule{
  display:flex;
  align-items:flex-start;
  gap:16px;
}

.crv2-course-meta__icon{
  width:36px;
  flex-shrink:0;
}

.crv2-course-meta__icon img{
  width:100%;
  height:auto;
  display:block;
}

.crv2-course-meta__content{
  flex:1;
}

/* =========================================
   CURSO META (Modalidad / Duración / Inicio)
========================================= */
/* tarjeta */

.crv2-course-meta__item,
.crv2-course-meta__schedule{
  display:flex;
  align-items:flex-start;
  gap:16px;
  padding:20px 22px;
  border-radius:18px;
  background:#fff;
  border:1px solid #d9c5ff;
  transition:.25s;
}


/* icono */

.crv2-course-meta__icon{
  width:44px;
  height:44px;

  border-radius:12px;
  background:#f3ecff;

  display:flex;
  align-items:center;
  justify-content:center;

  flex-shrink:0;
}

.crv2-course-meta__icon img{
  width:24px;
  height:auto;
}

.crv2-course-meta__value{
  font-size:16px;
  color:#333;
}

/* horario bloque */

.crv2-course-meta__schedule{
  margin-top:18px;
}

/* =========================================
   RESPONSIVE
========================================= */

@media (max-width:1024px){

  .crv2-course-meta__grid{
    grid-template-columns:1fr;
  }

}

@media (max-width:640px){

  .crv2-course-meta__item,
  .crv2-course-meta__schedule{
    padding:16px;
  }

  .crv2-course-meta__icon{
    width:38px;
    height:38px;
  }

  .crv2-course-meta__icon img{
    width:20px;
  }

}

/* =========================================
   SINGLE CURSO - TESTIMONIOS CON MODAL
========================================= */

.crv2-block--curso-testimonios .crv2-p{
  max-width: 760px;
}

.crv2-course-testimony{
  max-width: 720px;
  margin: 28px auto 0;
}

.crv2-course-testimony__thumb{
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 28px;
  overflow: hidden;
  background: #12071f;
  box-shadow: 0 18px 40px rgba(0,0,0,.12);
  cursor: pointer;
}

.crv2-course-testimony__thumb img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.crv2-course-testimony__play{
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 78px;
  height: 78px;
  border: 0;
  border-radius: 999px;
  background: rgba(64,5,120,.88);
  color: #fff;
  font-size: 30px;
  cursor: pointer;
  box-shadow: 0 12px 30px rgba(0,0,0,.22);
}

/* Tipo */

.crv2-course-testimony__cta{
  position: absolute;
  left: 50%;
  bottom: 18px;
  transform: translateX(-50%);
  z-index: 3;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,.94);
  color: #400578;
  font-family: 'Nunito', sans-serif;
  font-size: 13px;
  font-weight: 800;
  line-height: 1;
  pointer-events: none;
}

/* Modal */
.crv2-course-modal{
  position: fixed;
  inset: 0;
  display: none;
  z-index: 99999;
}

.crv2-course-modal.is-active{
  display: flex;
  align-items: center;
  justify-content: center;
}

.crv2-course-modal__backdrop{
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.72);
}

.crv2-course-modal__dialog{
  position: relative;
  z-index: 2;
  width: min(420px, calc(100vw - 32px));
  max-height: calc(100vh - 40px);
  display: flex;
  align-items: center;
  justify-content: center;
}

.crv2-course-modal__close{
  position: absolute;
  top: -8px;
  right: -8px;
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 999px;
  background: #fff;
  color: #400578;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  z-index: 3;
}

.crv2-course-modal__media{
  width: 100%;
  aspect-ratio: 9 / 16;
  border-radius: 24px;
  overflow: hidden;
  background: #000;
}

.crv2-course-modal__media iframe,
.crv2-course-modal__media video{
  width: 100%;
  height: 100%;
  display: block;
  border: 0;
}

@media (max-width: 640px){
  .crv2-course-testimony{
    margin-top: 22px;
  }

  .crv2-course-testimony__thumb{
    border-radius: 20px;
  }

  .crv2-course-testimony__play{
    width: 64px;
    height: 64px;
    font-size: 24px;
  }

  .crv2-course-modal__dialog{
    width: min(340px, calc(100vw - 24px));
  }

  .crv2-course-modal__media{
    border-radius: 18px;
  }

  .crv2-course-modal__close{
    width: 38px;
    height: 38px;
    font-size: 24px;
    top: -6px;
    right: -4px;
  }
}

html.crv2-course-no-scroll,
body.crv2-course-no-scroll{
  overflow: hidden !important;
}











/* SINGLE CURSO: quitar compensación extra */
.single-curso .crv2{
  padding-top: 0 !important;
}

.single-curso .crv2-hero{
  margin-top: 0 !important;
}













/* =========================
   FORMULARIO PROGRAMAS
========================= */

html.no-scroll,
body.no-scroll{
  overflow: hidden !important;
}

/* Desktop */
@media (min-width: 1200px){
  .crv2--programa #crv2LeadOverlay,
  .crv2--programa .crv2-lead-bar{
    display: none !important;
  }

  .crv2--programa #crv2LeadPanel{
    display: block !important;
    position: fixed !important;
    top: 220px;
    right: max(24px, calc((90vw - 1240px)/2));
    transform: translateX(-40px) !important;
    width: 380px !important;
    max-width: 380px !important;
    padding: 40px !important;
    z-index: 120 !important;
    background: #fff !important;
    border: 1px solid #dfd3ff !important;
    box-shadow: 0 10px 25px rgba(0,0,0,.06) !important;
  }

  .crv2--programa #crv2LeadPanel .ispv2-lead__close{
    display: none !important;
  }
}

/* Tablet + mobile */
@media (max-width: 1199px){
  .crv2--programa .crv2-layout{
    display: block !important;
  }

  .crv2--programa .crv2-main{
    width: 100% !important;
    max-width: 100% !important;
  }

  .crv2--programa .crv2-aside,
  .crv2--programa .crv2-formwrap{
    width: 0 !important;
    max-width: 0 !important;
    height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    position: static !important;
  }

  .crv2--programa .crv2-lead-bar{
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    height: 64px !important;
    z-index: 9998 !important;
    display: block !important;
  }

  .crv2--programa .crv2-lead-bar__btn{
    width: 100% !important;
    height: 100% !important;
    border: 0 !important;
    font-weight: 900 !important;
    font-family: 'Nunito', sans-serif !important;
    font-size: 16px !important;
    color: #fff !important;
    background: linear-gradient(90deg, #400578, #8145EC) !important;
  }

  .crv2--programa #crv2LeadOverlay{
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    top: 5px !important;
    bottom: 0 !important;
    background: #fff !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transition: opacity .25s ease !important;
    z-index: 9999 !important;
    display: block !important;
  }

  .crv2--programa #crv2LeadOverlay.is-active{
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  /* importante: modal real */
  body > #crv2LeadPanel{
    display: none !important;
    position: fixed !important;
    left: 50% !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
    width: min(420px, calc(100vw - 32px)) !important;
    max-width: 420px !important;
    max-height: calc(100vh - 150px) !important;
    overflow: auto !important;
    padding: 62px 62px 52px !important;
    margin: 0 !important;
    background: #fff !important;
    border: 1px solid #dfd3ff !important;
    box-shadow: 0 10px 25px rgba(0,0,0,.06) !important;
    z-index: 10000 !important;
  }

  body > #crv2LeadPanel.is-active{
    display: block !important;
    opacity: 1 !important;
  }

  body > #crv2LeadPanel .ispv2-lead__close{
    display: block !important;
    position: absolute !important;
    top: 10px !important;
    right: 10px !important;
    width: 38px !important;
    height: 38px !important;
    border: 1px solid #dfd3ff !important;
    border-radius: 10px !important;
    background: #fff !important;
    cursor: pointer !important;
    font-size: 20px !important;
    line-height: 1 !important;
    z-index: 10001 !important;
  }
  body > #crv2LeadPanel .ispv2-lead__grid{
    display: grid !important;
    gap: 12px !important;
  }
  body > #crv2LeadPanel .ispv2-lead__field{
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
  }
  body > #crv2LeadPanel .ispv2-lead__field input,
  body > #crv2LeadPanel .ispv2-lead__field select {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 48px !important;
    box-sizing: border-box !important;
    padding: 0 16px !important;
    margin: 0 !important;
  }
  body > #crv2LeadPanel .ispv2-lead__submit{
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
    height: 48px !important;
    margin: 8px 0 0 !important;
  }
  body > #crv2LeadPanel .ispv2-lead__check {
    width: 100% !important;
    box-sizing: border-box !important;
    margin: 0 !important;
  }
}

@media (max-width: 640px){
  body > #crv2LeadPanel{
    width: calc(90vw - 24px) !important;
    max-width: none !important;
    padding: 32px 26px 30px !important;
    max-height: calc(100vh - 135px) !important;
  }
}





/* =========================
   OVERRIDE DEL CONFLICTO 981px - 1024px
========================= */
@media (max-width: 1024px) and (min-width: 981px){

  body > #crv2LeadPanel.ispv2-lead{
    display: none !important;
    position: fixed !important;
    left: 50% !important;
    right: auto !important;
    top: 50% !important;
    bottom: auto !important;
    transform: translate(-50%, -50%) !important;
    width: min(420px, calc(100vw - 32px)) !important;
    max-width: 420px !important;
    max-height: calc(100vh - 150px) !important;
    overflow: auto !important;
    padding: 62px 62px 52px !important;
    margin: 0 !important;
    background: #fff !important;
    border: 1px solid #dfd3ff !important;
    box-shadow: 0 10px 25px rgba(0,0,0,.06) !important;
    z-index: 10000 !important;
  }

  body > #crv2LeadPanel.ispv2-lead.is-active{
    display: block !important;
  }

  body > #crv2LeadPanel .ispv2-lead__close{
    display: block !important;
    position: absolute !important;
    top: 10px !important;
    right: 10px !important;
    width: 38px !important;
    height: 38px !important;
    border: 1px solid #dfd3ff !important;
    border-radius: 10px !important;
    background: #fff !important;
    cursor: pointer !important;
    font-size: 20px !important;
    line-height: 1 !important;
    z-index: 10001 !important;
  }

  body > #crv2LeadPanel .ispv2-lead__field{
    display: block !important;
    width: 100% !important;
  }

  body > #crv2LeadPanel .ispv2-lead__field input,
  body > #crv2LeadPanel .ispv2-lead__field select,
  body > #crv2LeadPanel .ispv2-lead__submit{
    width: 100% !important;
    box-sizing: border-box !important;
  }
}


.isp-v2 .al2-item{
  width: 150px !important;
}
.isp-v2 .al2-pill{
  font-size: 50px !important;
}
.isp-v2 .al2-title{
  font-size: 50px !important;
}