/* VAB · Fase 1b · Jerarquia tipografica de contenido (H1-H4 y parrafos).
   Selectores especificos: no tocan iconos, widgets de terceros ni el megamenu. */
:root{
  --vabc-ink:#142C40;
  --vabc-h1:30px; --vabc-h2:24px; --vabc-h3:20px; --vabc-h4:17px; --vabc-p:15px;
}
@media (max-width:1024px){:root{--vabc-h1:28px;--vabc-h2:22px;--vabc-h3:19px;--vabc-h4:17px}}
@media (max-width:640px){:root{--vabc-h1:25px;--vabc-h2:21px;--vabc-h3:18px;--vabc-h4:16px}}

/* H1 */
body .vab-program-hero h1,
body .elementor-widget-heading h1.elementor-heading-title,
body h1.vab-titulo-pagina{
  font-family:var(--vab-font-heading);font-size:var(--vabc-h1);font-weight:800;line-height:1.2;letter-spacing:-.01em;color:var(--vabc-ink)}
/* H2 */
body .elementor .vab-titulo-seccion,
body .vab-horario__titulo,
body .vab-curr h2, body .vab-malla__titulo,
body .elementor-widget-heading h2.elementor-heading-title{
  font-family:var(--vab-font-heading);font-size:var(--vabc-h2);font-weight:700;line-height:1.25;letter-spacing:-.005em;color:var(--vabc-ink)}
/* H3 */
body .elementor .vab-subtitulo,
body .vab-curr h3,
body .elementor-widget-heading h3.elementor-heading-title{
  font-family:var(--vab-font-heading);font-size:var(--vabc-h3);font-weight:700;line-height:1.3;color:var(--vabc-ink)}
/* H4 (y titulos de item que hacen de H4: competencias del perfil) */
body .elementor .vab-perfil-item-titulo,
body .vab-curr h4,
body .elementor-widget-heading h4.elementor-heading-title,
body footer h4{
  font-family:var(--vab-font-heading);font-size:var(--vabc-h4);font-weight:700;line-height:1.35;color:var(--vabc-ink)}
/* Margenes de encabezados dentro del contenido */
body .elementor .vab-titulo-seccion,body .elementor .vab-subtitulo,body .elementor .vab-perfil-item-titulo{margin-block:0 .4em}

/* Parrafos */
body .elementor .vab-texto,
body .elementor p.e-paragraph-base:not(.vab-antetitulo):not(.vab-nota):not(.vab-grafico-titulo):not(.vab-perfil-item-titulo){
  font-family:var(--vab-font-body);font-size:var(--vabc-p);font-weight:400;line-height:1.55}
body .elementor .vab-texto{margin-block:0 .75em}
body .vab-program-hero__lead{font-family:var(--vab-font-body);font-size:var(--vabc-p);line-height:1.55;margin-block:0 .75em}
body .elementor .vab-perfil-item-desc{font-family:var(--vab-font-body);font-size:14px;line-height:1.5;margin-block:0}

/* Hero de programa: texto en Inter (iconos intactos) */
body .vab-program-hero :is(a,span,p,dt,dd,li,div,strong,small):not([class*="icon"]):not([class*="fa-"]){font-family:var(--vab-font-body)}
body .vab-program-hero__sheet-head{font-family:var(--vab-font-heading)}
/* Antetitulos, notas y avisos */
body .elementor .vab-antetitulo,body .elementor .vab-nota,body .elementor .vab-grafico-titulo{font-family:var(--vab-font-body)}

/* Especificidad reforzada frente a clases atomicas de Elementor y CoreVAB */
body .elementor .vab-titulo-seccion.vab-titulo-seccion,
body .elementor h2.vab-subtitulo.vab-subtitulo,
body .elementor .e-697b8a5e-b247.vab-subtitulo,
body .vab-horario .vab-horario__titulo.vab-horario__titulo,
body .vab-docentes .vab-docentes__titulo.vab-docentes__titulo,
body .vab-docl .vab-docl__titulo.vab-docl__titulo{
  font-family:var(--vab-font-heading);font-size:var(--vabc-h2);font-weight:700;line-height:1.25;letter-spacing:-.005em;color:var(--vabc-ink)}
body .elementor h3.vab-subtitulo.vab-subtitulo:not(.e-697b8a5e-b247){
  font-family:var(--vab-font-heading);font-size:var(--vabc-h3);font-weight:700;line-height:1.3;color:var(--vabc-ink)}
body .elementor .vab-perfil-item-titulo.vab-perfil-item-titulo,
body .elementor .vab-ciclo-titulo.vab-ciclo-titulo{
  font-family:var(--vab-font-heading);font-size:var(--vabc-h4);font-weight:700;line-height:1.35;color:var(--vabc-ink)}
body .elementor .vab-perfil-item-desc.vab-perfil-item-desc{font-family:var(--vab-font-body);font-size:14px;line-height:1.5}
body .elementor .vab-texto.vab-texto{font-size:var(--vabc-p);line-height:1.55}

/* Titulo de seccion 'Perfil del egresado' (h3 con estilo atomico propio) */
body .elementor .vab-subtitulo.e-697b8a5e-b247{font-size:var(--vabc-h2)!important;font-weight:700!important;line-height:1.25!important;color:var(--vabc-ink)!important;font-family:var(--vab-font-heading)!important}

body .vab-program-hero h1{margin-block:0 .45em}

/* ===== Plantilla de programas (vab-program-hero) ===== */
/* Excepcion: titulo del hero del programa */
body .vab-program-hero h1{font-size:34px;font-weight:800;line-height:1.18;color:var(--vabc-ink)}
@media (max-width:1024px){body .vab-program-hero h1{font-size:31px}}
@media (max-width:640px){body .vab-program-hero h1{font-size:28px;line-height:1.2}}
/* Separacion parrafo -> boton */
body .vab-program-hero .vab-program-hero__lead{margin-block-end:0}
body .vab-program-hero .vab-program-hero__cta{margin-block-start:30px}
/* Ficha del programa */
body .vab-program-hero .vab-program-hero__sheet-head{font-size:14px;font-weight:600;line-height:1.4;color:var(--vabc-ink)}
body .vab-program-hero .vab-program-hero__sheet-head *{font-family:var(--vab-font-heading)}
body .vab-program-hero .vab-program-hero__sheet-row{padding-block:10px;border-color:rgba(20,44,64,.09)}
body .vab-program-hero .vab-program-hero__sheet-row dt{font-size:12px;font-weight:500;line-height:1.45;color:#5E6B76}
body .vab-program-hero .vab-program-hero__sheet-row dd{font-size:13px;font-weight:400;line-height:1.45;color:var(--vabc-ink);margin:0}

/* ===== Perfil del egresado ===== */
body .elementor .vab-perfil.vab-perfil{padding:24px}
body .elementor .vab-perfil-item.vab-perfil-item{gap:8px}
body .elementor .vab-perfil-item-titulo.vab-perfil-item-titulo{display:flex;align-items:flex-start;gap:10px}
body .elementor .vab-perfil-item-titulo > span{flex:none}
@media (min-width:1025px){body .elementor .vab-perfil-item.vab-perfil-item{padding-inline:0}}

/* Nombres de ciclo (acordeon de malla): peso 600 */
body .elementor .vab-ciclo-titulo.vab-ciclo-titulo{font-weight:600}



/* Pie de pagina (fondo oscuro): encabezados en blanco, misma familia y escala H4 */
body .noxiy-builder-footer :is(h2,h3,h4,h5).elementor-heading-title{font-family:var(--vab-font-heading);font-size:var(--vabc-h4);font-weight:700;line-height:1.35;color:#fff}
body .vab-docentes__ctx{font-size:14px}

body .noxiy-builder-footer .elementor-heading-title{font-family:var(--vab-font-heading)!important;font-size:var(--vabc-h4)!important;font-weight:700!important;line-height:1.35!important}

/* ===== Widgets de Elementor (Home y paginas): solo familia tipografica; tamanos y colores del diseno se conservan.
   !important unicamente en font-family: Elementor genera la fuente por elemento con selectores de alta especificidad. ===== */
body .elementor .elementor-widget-heading .elementor-heading-title,
body .elementor .elementor-widget-icon-box .elementor-icon-box-title,
body .elementor .elementor-widget-icon-box .elementor-icon-box-title a,
body .elementor .elementor-widget-counter .elementor-counter-title{font-family:var(--vab-font-heading)!important}
body .elementor .elementor-widget-text-editor,
body .elementor .elementor-widget-text-editor :is(p,span,strong,em,li,a,div),
body .elementor .elementor-widget-icon-box .elementor-icon-box-description,
body .elementor .elementor-widget-icon-list .elementor-icon-list-text{font-family:var(--vab-font-body)!important}

/* Tablas Ninja Tables: 13 px (escala de tablas 12-13) */
body[class] table.ninja_footable.ninja_footable :is(td,th){font-family:var(--vab-font-body);font-size:13px;line-height:1.45}
body[class] table.ninja_footable.ninja_footable th{font-weight:600}

/* Ficha del programa: etiquetas en 600 */
body .vab-program-hero .vab-program-hero__sheet-row dt{font-weight:600}

/* ===== Barra superior movil: una sola fila (misma informacion y accesos), objetivos tactiles de 40 px ===== */
@media (max-width:480px){
  body .vab-topbar .vab-topbar-inner{flex-wrap:nowrap;min-height:40px;padding:0 14px;row-gap:0;gap:8px}
  body .vab-menubar .vab-menubar-inner{padding-inline:14px;gap:8px}
  body .vab-topbar{font-size:12px}
  body .vab-topbar .vab-topbar-left{gap:0;min-width:0}
  body .vab-topbar .vab-topbar-left span{gap:6px;min-height:40px}
  body .vab-topbar .vab-topbar-right{gap:6px}
  body .vab-topbar .vab-topbar-right a{min-height:40px;padding-inline:4px}
  body .vab-topbar .vab-topbar-menu-btn{padding:0 6px;min-height:40px}
}
@media (max-width:380px){
  body .vab-topbar .vab-topbar-inner{padding:0 10px;gap:4px}
  body .vab-topbar .vab-topbar-right a{padding-inline:2px}
  body .vab-topbar .vab-topbar-menu-btn{padding:0 4px}
}


/* ===== Home · iconografia de programas: iconos lineales Lucide (ISC, locales, inline) con trazo y tamano uniformes.
   Mismo significado que el icono previo; el color sigue siendo el del widget (currentColor). ===== */
body.home .elementor-element-e27eaf1 .elementor-widget-icon-box .elementor-icon i{font-size:0;line-height:0;display:flex;align-items:center;justify-content:center}
body.home .elementor-element-e27eaf1 .elementor-widget-icon-box .elementor-icon i::before{content:"";display:block;width:56px;height:56px;background:currentColor;-webkit-mask:var(--vabi) center/contain no-repeat;mask:var(--vabi) center/contain no-repeat}
body.home .elementor-element-e27eaf1 .elementor-widget-icon-box .elementor-icon i[class*="icofont-abc"]{--vabi:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.5%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect width=%227%22 height=%227%22 x=%2214%22 y=%223%22 rx=%221%22 /%3E %3Cpath d=%22M10 21V8a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-5a1 1 0 0 0-1-1H3%22 /%3E%3C/svg%3E")}
body.home .elementor-element-e27eaf1 .elementor-widget-icon-box .elementor-icon i[class*="la-pencil-ruler"]{--vabi:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.5%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M13 7 8.7 2.7a2.41 2.41 0 0 0-3.4 0L2.7 5.3a2.41 2.41 0 0 0 0 3.4L7 13%22 /%3E %3Cpath d=%22m8 6 2-2%22 /%3E %3Cpath d=%22m18 16 2-2%22 /%3E %3Cpath d=%22m17 11 4.3 4.3c.94.94.94 2.46 0 3.4l-2.6 2.6c-.94.94-2.46.94-3.4 0L11 17%22 /%3E %3Cpath d=%22M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z%22 /%3E %3Cpath d=%22m15 5 4 4%22 /%3E%3C/svg%3E")}
body.home .elementor-element-e27eaf1 .elementor-widget-icon-box .elementor-icon i[class*="lnr-bicycle"]{--vabi:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.5%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2218.5%22 cy=%2217.5%22 r=%223.5%22 /%3E %3Ccircle cx=%225.5%22 cy=%2217.5%22 r=%223.5%22 /%3E %3Ccircle cx=%2215%22 cy=%225%22 r=%221%22 /%3E %3Cpath d=%22M12 17.5V14l-3-3 4-3 2 3h2%22 /%3E%3C/svg%3E")}
body.home .elementor-element-e27eaf1 .elementor-widget-icon-box .elementor-icon i[class*="la-palette"]{--vabi:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.5%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2213.5%22 cy=%226.5%22 r=%22.5%22 /%3E %3Ccircle cx=%2217.5%22 cy=%2210.5%22 r=%22.5%22 /%3E %3Ccircle cx=%228.5%22 cy=%227.5%22 r=%22.5%22 /%3E %3Ccircle cx=%226.5%22 cy=%2212.5%22 r=%22.5%22 /%3E %3Cpath d=%22M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z%22 /%3E%3C/svg%3E")}
body.home .elementor-element-e27eaf1 .elementor-widget-icon-box .elementor-icon i[class*="ti-write"]{--vabi:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.5%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M13.4 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7.4%22 /%3E %3Cpath d=%22M2 6h4%22 /%3E %3Cpath d=%22M2 10h4%22 /%3E %3Cpath d=%22M2 14h4%22 /%3E %3Cpath d=%22M2 18h4%22 /%3E %3Cpath d=%22M21.378 5.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z%22 /%3E%3C/svg%3E")}
body.home .elementor-element-e27eaf1 .elementor-widget-icon-box .elementor-icon i[class*="icofont-read-book"]{--vabi:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.5%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 7v14%22 /%3E %3Cpath d=%22M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z%22 /%3E%3C/svg%3E")}
body.home .elementor-element-e27eaf1 .elementor-widget-icon-box .elementor-icon i[class*="lnr-earth"]{--vabi:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.5%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%2210%22 /%3E %3Cpath d=%22M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20%22 /%3E %3Cpath d=%22M2 12h20%22 /%3E%3C/svg%3E")}
body.home .elementor-element-e27eaf1 .elementor-widget-icon-box .elementor-icon i[class*="devicons-atom"]{--vabi:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.5%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%221%22 /%3E %3Cpath d=%22M20.2 20.2c2.04-2.03.02-7.36-4.5-11.9-4.54-4.52-9.87-6.54-11.9-4.5-2.04 2.03-.02 7.36 4.5 11.9 4.54 4.52 9.87 6.54 11.9 4.5Z%22 /%3E %3Cpath d=%22M15.7 15.7c4.52-4.54 6.54-9.87 4.5-11.9-2.03-2.04-7.36-.02-11.9 4.5-4.52 4.54-6.54 9.87-4.5 11.9 2.03 2.04 7.36.02 11.9-4.5Z%22 /%3E%3C/svg%3E")}
body.home .elementor-element-e27eaf1 .elementor-widget-icon-box .elementor-icon i[class*="icofont-mathematic"]{--vabi:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.5%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M18 7V5a1 1 0 0 0-1-1H6.5a.5.5 0 0 0-.4.8l4.5 6a2 2 0 0 1 0 2.4l-4.5 6a.5.5 0 0 0 .4.8H17a1 1 0 0 0 1-1v-2%22 /%3E%3C/svg%3E")}
body.home .elementor-element-e27eaf1 .elementor-widget-icon-box .elementor-icon i{width:56px;height:56px}
body.home .elementor-element-e27eaf1 .elementor-widget-icon-box .elementor-icon{display:inline-flex;align-items:center;justify-content:center}


/* ===== Perfil del egresado (final): tipografia contenida + redistribucion de espacios sin aumentar altura ===== */
body .elementor .vab-perfil-item-titulo.vab-perfil-item-titulo{font-size:15px;font-weight:600}
body .elementor .vab-perfil-item-titulo.vab-perfil-item-titulo > span{font-size:24px}
body .elementor .vab-perfil-item-desc.vab-perfil-item-desc.vab-perfil-item-desc{font-size:13px!important;line-height:1.45!important}
body .elementor .vab-perfil > .vab-subtitulo{margin-bottom:0!important}
@media (min-width:641px){body .elementor .vab-perfil-grid.vab-perfil-grid{row-gap:12px!important}}
@media (min-width:1025px){body .elementor .e-con:has(> .vab-perfil){row-gap:0!important}}
@media (max-width:640px){
  body .elementor .vab-perfil-item-titulo.vab-perfil-item-titulo > span{font-size:22px}
  body .elementor .vab-perfil-item-desc.vab-perfil-item-desc.vab-perfil-item-desc{font-size:13.5px!important}
}

/* ===== Home: indicadores institucionales (solo presentacion; cifras, textos, colores, franja y radios intactos) ===== */
body.home .elementor-element-24f7e8c > .e-con-inner{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;align-items:stretch}
body.home .elementor-element-24f7e8c > .e-con-inner > .elementor-element{display:grid;grid-template-columns:64px minmax(0,1fr);column-gap:12px;align-content:center;align-items:start;justify-items:start;align-self:stretch;width:auto;min-width:0;min-height:0;margin:0;padding:22px 18px;box-sizing:border-box;text-align:left}
body.home .elementor-element-24f7e8c > .e-con-inner > .elementor-element > .e-con-inner{display:contents}
body.home .elementor-element-24f7e8c > .e-con-inner > .elementor-element > .e-con,body.home .elementor-element-24f7e8c > .e-con-inner > .elementor-element > .e-con-inner > .e-con{width:auto;min-width:0;margin:0;padding:0}
body.home .elementor-element-24f7e8c > .e-con-inner > .elementor-element > .e-con + .e-con,body.home .elementor-element-24f7e8c > .e-con-inner > .elementor-element > .e-con-inner > .e-con + .e-con{padding-top:12px}
body.home .elementor-element-24f7e8c .elementor-heading-title{font-size:44px!important;line-height:1!important}
body.home .elementor-element-24f7e8c .elementor-widget-text-editor,body.home .elementor-element-24f7e8c .elementor-widget-text-editor p{font-size:14px;line-height:1.35;margin-block:0;text-align:left}
@media (max-width:1024px){body.home .elementor-element-24f7e8c > .e-con-inner{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}}
@media (max-width:767px){
  body.home .elementor-element-24f7e8c > .e-con-inner{gap:12px;padding-inline:16px;max-width:100%}
  body.home .elementor-element-24f7e8c > .e-con-inner > .elementor-element{grid-template-columns:minmax(0,1fr);row-gap:6px;justify-items:center;padding:18px 10px;text-align:center}
  body.home .elementor-element-24f7e8c > .e-con-inner > .elementor-element > .e-con + .e-con,body.home .elementor-element-24f7e8c > .e-con-inner > .elementor-element > .e-con-inner > .e-con + .e-con{padding-top:0}
  body.home .elementor-element-24f7e8c .elementor-heading-title{font-size:36px!important;text-align:center}
  body.home .elementor-element-24f7e8c .elementor-widget-text-editor,body.home .elementor-element-24f7e8c .elementor-widget-text-editor p{font-size:13.5px;text-align:center}
}
@media (max-width:340px){body.home .elementor-element-24f7e8c > .e-con-inner{grid-template-columns:1fr}}

/* ===== Home: transicion indicadores -> Programas de Estudios ===== */
body.home .elementor-element-3898c775 > .e-con-inner{padding-bottom:48px!important}
body.home .elementor-element-e27eaf1 > .e-con-inner{padding-top:56px!important}
@media (max-width:767px){body.home .elementor-element-3898c775 > .e-con-inner{padding-bottom:36px!important}body.home .elementor-element-e27eaf1 > .e-con-inner{padding-top:44px!important}}
