/* Sistema de diseño uchile.cl. Generado por herramientas/generar.py desde sistema/: no editar aquí.
   Quiebres (CSS no admite var() en @media, se escriben a mano): quiebre-movil-chico 425px, quiebre-movil 767px, quiebre-tableta 1024px, quiebre-escritorio 1200px, quiebre-amplio 1350px. */
:root {
  /* Color: base y roles */
  --azul-uchile: #024a93;
  --azul-profundo: #00254a;
  --azul-tinta: #0a3b6b;
  --azul-medio: #005ba3;
  --celeste: #0084b4;
  --amarillo-uchile: #f9cb4d;
  --amarillo-claro: #fee580;
  --naranjo: #ff9000;
  --blanco: #ffffff;
  --gris-fondo: #f9f9f9;
  --gris-claro: #f2f2f2;
  --linea: #dddddd;
  --linea-fuerte: #cccccc;
  --texto: #333333;
  --texto-suave: #666666;
  --negro: #000000;
  --postular: #c64831;
  --especial-verde: #006649;
  --especial-morado: #59277f;
  --especial-coral: #f35d3a;
  --especial-noche: #12304f;
  --enlace: var(--azul-tinta);
  --enlace-activo: var(--celeste);
  --acento: var(--azul-uchile);
  --filete: var(--amarillo-uchile);
  --fondo-bloque: var(--gris-fondo);
  /* Familias */
  --font-texto: "PT Sans", Arial, sans-serif;
  --font-titulo: Raleway, "PT Sans", Arial, sans-serif;
  --font-serif: "Crimson Text", Georgia, serif;
  --font-iconos: icomoon;
  /* Espacio */
  --espacio-5: 5px;
  --espacio-10: 10px;
  --espacio-15: 15px;
  --espacio-20: 20px;
  --espacio-30: 30px;
  --espacio-40: 40px;
  --espacio-60: 60px;
  /* Radio */
  --radio-0: 0;
  --radio-4: 4px;
  --radio-circulo: 50%;
  /* Sombra */
  --sombra-tarjeta: 2px 2px 4px 0 rgba(0,0,0,.25);
  /* Anchos */
  --ancho-sitio: 1350px;
  --ancho-especial: 1290px;
  --ancho-texto: 856px;
}

/* Sistema de diseño uchile.cl: hoja de componentes.
   Se carga después de tokens.css. Usa el mismo marcado que generan las plantillas de Magnolia
   (div.mod + tipo + clase del editor), así que funciona igual en cualquier subportada:
   una clase del sistema ya no depende de la hoja de la plantilla A, E o I.
   Los @media usan los quiebres del sistema escritos a mano (767px, 1024px): CSS no admite var() ahí. */

/* Base */
.mod { box-sizing: border-box; font-family: var(--font-texto); color: var(--texto); }
.mod *, .mod *::before, .mod *::after { box-sizing: inherit; }
.mod a { color: var(--enlace); text-decoration: none; transition: color .2s ease-out, background-color .2s ease-out; }
.mod a:hover { color: var(--enlace-activo); }
.mod a:focus-visible { outline: 2px solid var(--azul-uchile); outline-offset: 2px; }
.mod .mod__title { font-family: var(--font-titulo); font-weight: 700; font-size: 15px; line-height: 1.15; color: var(--texto); margin: 6px 0 .83em; }
.mod img { max-width: 100%; display: block; }
.mod ol.carousel-indicators, .mod .extra, .mod .fecha, .mod .carousel-control-prev, .mod .carousel-control-next { display: none; }
.mod .mod__list, .mod .bxslider { margin: 0; padding: 0; }
.icono::before, .mod .i::before { font-family: var(--font-iconos); speak: never; font-style: normal; font-weight: normal; line-height: 1; -webkit-font-smoothing: antialiased; }

/* Bloque: mod_content */
.mod_content { background-color: var(--fondo-bloque); border-top: 1px solid var(--filete); padding: 8px var(--espacio-20) var(--espacio-20); }
.mod_content.sin-borde { border-top: 0; }
.mod_content.sin-fondo { background-color: transparent; }
.mod_content ul { list-style: none; margin: 0; padding: 0; font-size: 14px; line-height: 1.15; }
.mod_content ul > li { position: relative; padding-left: 14px; margin-bottom: var(--espacio-10); }
.mod_content ul > li:last-child { margin-bottom: 0; }
.mod_content ul > li::before { content: ""; position: absolute; left: 0; top: .35em; width: 5px; height: 5px; background-color: var(--filete); }
.mod_content .mod__aside_header p { font-size: 16px; line-height: 1.5; margin: 0 0 1em; }
.titulo-sro .mod__titles { clip: rect(0 0 0 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }
.mod.bajada { background: transparent; border-top: 0; padding: 0 0 var(--espacio-20); max-width: var(--ancho-texto); }
.mod.bajada p { font-size: 16px; line-height: 1.5; color: var(--texto-suave); }
.mod.bajada::after { content: ""; display: block; width: 96px; height: 2px; background: var(--azul-uchile); margin-top: var(--espacio-10); }
.mod.col-2 .mod__aside_header > ul, .mod.col-3 .mod__aside_header > ul, .mod.col-4 .mod__aside_header > ul { display: grid; gap: var(--espacio-10) var(--espacio-30); }
.mod.col-2 .mod__aside_header > ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.mod.col-3 .mod__aside_header > ul { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mod.col-4 .mod__aside_header > ul { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.mod.col-2 .mod__aside_header > ul > li, .mod.col-3 .mod__aside_header > ul > li, .mod.col-4 .mod__aside_header > ul > li { margin-bottom: 0; }
@media (max-width: 767px) {
  .mod.col-2 .mod__aside_header > ul, .mod.col-3 .mod__aside_header > ul, .mod.col-4 .mod__aside_header > ul { grid-template-columns: 1fr; }
}

/* Enlace Más: mod__more */
.mod .mod__more { width: 100%; text-align: right; margin-top: 12px; }
.mod .mod__more .mod__more-link { font-size: 13px; line-height: 1.5; color: var(--enlace); }
.mod .mod__more .mod__more-link::after { content: "\e906"; font-family: var(--font-iconos); display: inline-block; margin-left: 6px; font-size: 9px; color: var(--filete); }

/* Botonera: mod_highlight botones (celeste) y botones amarillo (naranjo) */
.mod_highlight.botones { border-top: 0; background: transparent; padding: 0; }
.botones .mod__item { background-color: var(--gris-fondo); border: 1px solid var(--celeste); margin-bottom: 8px; }
.botones .mod__item-title { margin: 0; font-family: var(--font-texto); font-size: 14px; font-weight: 700; line-height: 1.15; text-transform: uppercase; }
.botones .mod__item-title a { display: flex; align-items: center; justify-content: space-between; gap: var(--espacio-10); padding: 12px 14px; color: var(--celeste); }
.botones .mod__item-title a::after { content: "\ea3c"; font-family: var(--font-iconos); font-size: 16px; font-weight: normal; }
.botones .mod__item-title a[target=_blank]::after { content: "\e915"; }
.botones .mod__item:hover .mod__item-title a, .botones .mod__item-title a:focus-visible { background-color: var(--celeste); color: var(--blanco); }
.botones.amarillo .mod__item { border-color: var(--naranjo); }
.botones.amarillo .mod__item-title a { color: var(--naranjo); }
.botones.amarillo .mod__item:hover .mod__item-title a { background-color: var(--naranjo); color: var(--blanco); }

/* Botón con borde: btn-borde (subportadas especiales) */
.btn-borde .bxslider { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--espacio-30) var(--espacio-20); }
.btn-borde .mod__item { margin: 0; }
.btn-borde .mod__item-title { margin: 0; }
.btn-borde .mod__item-link { display: flex; align-items: center; justify-content: center; gap: var(--espacio-10); min-height: 52px; padding: var(--espacio-10); text-align: center; font-family: var(--font-titulo); font-size: 17px; font-weight: 500; color: var(--azul-profundo); background: var(--blanco); border: 1px solid var(--azul-uchile); border-radius: var(--radio-4); }
.btn-borde .mod__item-link:hover { background: var(--azul-uchile); color: var(--blanco); }
@media (max-width: 767px) {
  .btn-borde .bxslider { grid-template-columns: 1fr; gap: var(--espacio-20); }
  .btn-borde .mod__item-link { font-size: 16px; }
}

/* Botón con foto: btn-azul-foto, btn-blanco-foto */
.btn-azul-foto, .btn-blanco-foto { background: transparent; border-top: 0; }
.btn-azul-foto .mod__title, .btn-blanco-foto .mod__title { text-align: center; }
.btn-azul-foto .bxslider, .btn-blanco-foto .bxslider { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--espacio-20); }
.btn-azul-foto.col-3 .bxslider, .btn-blanco-foto.col-3 .bxslider { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.btn-azul-foto.col-2 .bxslider, .btn-blanco-foto.col-2 .bxslider { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.btn-azul-foto .mod__item, .btn-blanco-foto .mod__item { border-radius: var(--radio-4); box-shadow: var(--sombra-tarjeta); overflow: hidden; display: flex; flex-direction: column; }
.btn-azul-foto .mod__src, .btn-blanco-foto .mod__src { width: 100%; aspect-ratio: 300 / 140; object-fit: cover; transition: transform .3s ease-out; }
.btn-azul-foto .mod__item:hover .mod__src, .btn-blanco-foto .mod__item:hover .mod__src { transform: scale(1.05); }
.btn-azul-foto .carousel-caption, .btn-blanco-foto .carousel-caption { flex: 1; display: flex; position: relative; z-index: 1; }
.btn-azul-foto .mod__item-title, .btn-blanco-foto .mod__item-title { margin: 0; flex: 1; display: flex; }
.btn-azul-foto .mod__item-link, .btn-blanco-foto .mod__item-link { flex: 1; display: flex; align-items: center; justify-content: center; text-align: center; min-height: 100px; padding: var(--espacio-20); font-family: var(--font-titulo); font-size: 20px; font-weight: 600; line-height: 1.2; color: var(--blanco); background: var(--azul-uchile); }
.btn-azul-foto .mod__item-link:hover { color: var(--blanco); background: var(--azul-profundo); }
.btn-blanco-foto .mod__item-link { color: var(--azul-uchile); background: var(--blanco); }
.btn-blanco-foto .mod__item-link:hover { color: var(--azul-profundo); }
@media (max-width: 1024px) {
  .btn-azul-foto .bxslider, .btn-blanco-foto .bxslider { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .btn-azul-foto .mod__item-link, .btn-blanco-foto .mod__item-link { min-height: 80px; padding: var(--espacio-15); font-size: 18px; }
}
@media (max-width: 767px) {
  .btn-azul-foto .bxslider, .btn-blanco-foto .bxslider { grid-template-columns: 1fr; }
}

/* Destacados: mod_highlight destacados */
.mod_highlight.destacados { position: relative; background: var(--amarillo-claro); color: var(--texto); padding: 8px 16px 16px; border-top: 0; }
.destacados .mod__title { font-size: 16px; text-transform: uppercase; color: var(--texto); margin: 6px 0 14px; }
.destacados .mod__item { display: flex; flex-direction: row-reverse; align-items: center; justify-content: space-between; gap: 6px; margin-bottom: var(--espacio-20); }
.destacados .mod__item:last-child { margin-bottom: 0; }
.destacados .mod__src { width: 84px; height: 84px; flex: none; border-radius: var(--radio-circulo); object-fit: cover; }
.destacados .carousel-caption { width: calc(100% - 90px); }
.destacados .mod__item-title { margin: 0; font-family: var(--font-texto); font-size: 16px; font-weight: 400; line-height: 1.25; }
.destacados .mod__item-title a { color: var(--azul-tinta); }
.destacados .mod__item-title a:hover { color: var(--azul-profundo); text-decoration: underline; }
.destacados .controles { position: absolute; top: 8px; right: 8px; display: flex; gap: 1px; }
.destacados .controles button { width: 26px; height: 26px; border: 0; padding: 0; background: var(--texto); color: var(--blanco); font-family: var(--font-iconos); font-size: 12px; cursor: pointer; }

/* Lista de noticias: mod_linked noticias y mod_last-news */
.mod_linked.noticias, .mod_last-news { background: var(--fondo-bloque); border-top: 1px solid var(--filete); padding: 8px var(--espacio-20) var(--espacio-20); }
.mod_linked.noticias.destacada { background: transparent; }
.noticias .mod__item, .mod_last-news .mod__item { display: flex; flex-direction: row-reverse; justify-content: space-between; gap: var(--espacio-10); margin-bottom: var(--espacio-20); }
.noticias .mod__img, .mod_last-news .mod__img { width: 70px; height: 70px; flex: none; overflow: hidden; margin: 0; background: var(--gris-claro); }
.noticias .mod__img img, .mod_last-news .mod__img img { width: 100%; height: 100%; object-fit: cover; }
.noticias .mod__content, .mod_last-news .mod__content { width: calc(100% - 80px); }
.noticias .mod__item-title, .mod_last-news .mod__item-title { margin: 0; font-family: var(--font-texto); font-size: 16px; font-weight: 400; line-height: 1.25; }
.noticias .mod__item-epigraph, .noticias .mod__item-teaser, .noticias .mod__item-extra, .noticias .mod__item-chip, .noticias .mod__empty-filters { display: none; }

/* Enlaces con ícono: enlaces-icono */
.mod.enlaces-icono { background: transparent; border-top: 0; padding: 0; }
.enlaces-icono h2 { font-family: var(--font-titulo); font-size: 30px; font-weight: 600; line-height: 1.15; color: var(--texto); margin: 0 0 var(--espacio-10); }
.enlaces-icono ul { list-style: none; margin: 0; padding: 0; font-size: 17px; line-height: 1.3; }
.enlaces-icono ul li { padding: 0; margin: 0; }
.enlaces-icono ul li::before { content: none; }
.enlaces-icono ul li a { position: relative; display: flex; align-items: center; justify-content: space-between; gap: var(--espacio-10); padding: var(--espacio-20) 0; color: var(--azul-uchile); font-weight: 700; border-bottom: 1px solid var(--texto); }
.enlaces-icono ul li a::before { content: ""; position: absolute; left: 0; right: 100%; bottom: -1px; height: 2px; background: var(--azul-uchile); transition: right .3s ease-out; }
.enlaces-icono ul li a:hover { color: var(--azul-uchile); border-bottom-color: var(--azul-uchile); }
.enlaces-icono ul li a:hover::before { right: 0; }
.enlaces-icono ul li a::after { content: "\ea3c"; font-family: var(--font-iconos); font-weight: normal; font-size: 18px; color: var(--azul-uchile); }
.enlaces-icono ul li a[target=_blank]::after { content: "\e915"; }
@media (max-width: 767px) {
  .enlaces-icono h2 { font-size: 26px; }
  .enlaces-icono ul li a { padding: var(--espacio-15) 0; }
}

/* Agenda: mod-cal-date */
.mod.mod-cal-date { background: var(--fondo-bloque); border-top: 1px solid var(--filete); padding: 8px var(--espacio-20) var(--espacio-20); }
.mod-cal-date .mod__list { list-style: none; }
.mod-cal-date .mod__item { display: block; margin-bottom: var(--espacio-20); font-size: 16px; line-height: 1.5; }
.mod-cal-date .mod__item::before { content: none; }
.mod-cal-date .mod__item-hour { font-weight: 700; color: var(--texto); margin-right: var(--espacio-5); }
.mod-cal-date .ver-mas { text-align: right; font-size: 13px; }
.mod-cal-date .ver-mas a::after { content: "\e906"; font-family: var(--font-iconos); display: inline-block; margin-left: 6px; font-size: 9px; color: var(--filete); }
/* Agenda especial: el interlineado de arriba deja la fecha más alta que el enlace (min-height: 100px en
   subportada-especiales.css), y el fondo que se despliega al pasar el cursor dejaba una franja abajo.
   El enlace ocupa todo el alto del ítem. */
.especiales .mod-cal-date .mod__item-title { display: flex; }
.especiales .mod-cal-date .mod__item-title a { flex: 1; box-sizing: border-box; }

/* Menú ancla: menu-ancla */
.mod.menu-ancla { background: var(--blanco); border: 1px solid var(--linea); border-radius: var(--radio-4); padding: var(--espacio-20) 24px; max-width: 300px; }
.menu-ancla .mod__titles:empty { display: none; }
.menu-ancla .mod__aside_header > p:first-child { margin: 0 0 var(--espacio-10); font-family: var(--font-titulo); font-size: 18px; font-weight: 500; text-transform: uppercase; color: var(--texto); display: flex; justify-content: space-between; align-items: center; }
.menu-ancla .mod__aside_header > p:first-child::after { content: "\ea3c"; font-family: var(--font-iconos); transform: rotate(90deg); font-size: 18px; }
/* La plantilla E flota al 43 % todo lo que va en la zona uno (.subportada__uno .mod__aside_footer):
   el Menú ancla se deja entero, con el mismo peso que esa regla y cargado después. */
.mod.menu-ancla .mod__aside_header, .mod.menu-ancla .mod__aside_footer { float: none; width: auto; margin: 0; }
.mod.menu-ancla .mod__aside_footer li { width: auto; }
.menu-ancla ul { list-style: none; margin: 0; padding: 0; }
.menu-ancla ul > li { padding: 0; margin: 0; }
.menu-ancla ul > li::before { content: none; }
.menu-ancla ul > li a { display: block; padding: 6px 0; font-family: var(--font-titulo); font-size: 20px; line-height: 1.2; color: var(--azul-uchile); }
.menu-ancla ul > li a:hover { color: var(--azul-profundo); text-decoration: underline; }
@media (max-width: 767px) { .mod.menu-ancla { max-width: 100%; } }

/* Redes sociales: rrss */
.mod_content.rrss { border-top: 0; }
.rrss ul { display: flex; flex-wrap: wrap; gap: var(--espacio-15); margin-top: var(--espacio-15); }
.rrss ul li { padding: 0; margin: 0; }
.rrss ul li::before { content: none; }
.rrss ul li a { display: inline-flex; width: 40px; height: 40px; align-items: center; justify-content: center; font-size: 30px; color: var(--azul-profundo); }
.rrss ul li a:hover { color: var(--azul-uchile); }
/* main20.css le da tamaño y colores de marca al <i> (Instagram con degradado recortado al texto); el sistema los
   lleva al color del componente. [title] sube la especificidad sobre .subportada .mod_content.rrss i[title=...] */
.subportada .mod_content.rrss a i[title], .subportada .mod_content.rrss a i { font-size: 30px; color: inherit; background: none; -webkit-text-fill-color: currentColor; opacity: 1; }
.rrss .icono-texto { clip: rect(0 0 0 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }

/* Cifras: mod_highlight cifras */
.mod_highlight.cifras { background: transparent; border-top: 0; padding: var(--espacio-60) 0; }
.cifras .mod__title { font-family: var(--font-serif); font-size: 50px; font-weight: 400; line-height: 1; text-align: center; color: var(--texto); margin: 0 0 var(--espacio-40); }
.cifras .bxslider { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--espacio-30) var(--espacio-40); }
.cifras .mod__item { width: 180px; }
.cifras .carousel-caption { display: flex; flex-direction: column-reverse; align-items: center; gap: var(--espacio-20); text-align: center; }
.cifras .mod__item-teaser { margin: 0; width: 160px; height: 160px; display: flex; align-items: center; justify-content: center; border-radius: var(--radio-circulo); background-color: var(--azul-uchile); box-shadow: var(--sombra-tarjeta); color: var(--blanco); font-family: var(--font-titulo); font-size: 40px; font-weight: 500; font-variant-numeric: tabular-nums; }
.cifras .mod__item:nth-child(4n+1) .mod__item-teaser { background-color: var(--especial-verde); }
.cifras .mod__item:nth-child(4n+2) .mod__item-teaser { background-color: var(--especial-morado); }
.cifras .mod__item:nth-child(4n+3) .mod__item-teaser { background-color: var(--especial-coral); }
.cifras .mod__item:nth-child(4n+4) .mod__item-teaser { background-color: var(--especial-noche); }
.cifras .mod__item-title { margin: 0; font-family: var(--font-texto); font-size: 16px; font-weight: 400; line-height: 1.3; }
.cifras .mod__item-title a { color: var(--texto); pointer-events: none; }
@media (max-width: 1024px) { .cifras .mod__title { font-size: 42px; margin-bottom: var(--espacio-30); } }
@media (max-width: 767px) { .cifras .mod__title { font-size: 34px; margin-bottom: var(--espacio-20); } }

/* Título especial: título de bloque en subportadas especiales */
.especial .mod .mod__title, .especiales .mod .mod__title, .mod .mod__title.titulo-especial { font-family: var(--font-serif); font-size: 50px; font-weight: 400; line-height: 1; color: var(--texto); margin: 0 0 var(--espacio-40); }
.titulo-centrado .mod__title { text-align: center; }
@media (max-width: 1024px) { .especial .mod .mod__title, .especiales .mod .mod__title, .mod .mod__title.titulo-especial { font-size: 42px; margin-bottom: var(--espacio-30); } }
@media (max-width: 767px) { .especial .mod .mod__title, .especiales .mod .mod__title, .mod .mod__title.titulo-especial { font-size: 34px; margin-bottom: var(--espacio-20); } }

/* Título de página interior: content__title */
.content__title { font-family: var(--font-titulo); color: var(--azul-medio); font-weight: 600; font-size: 30px; line-height: 1.15; margin: 8px 0 .67em; max-width: var(--ancho-texto); text-wrap: balance; }
.content__description { font-family: var(--font-texto); font-size: 16px; line-height: 1.5; color: var(--negro); max-width: var(--ancho-texto); }
.content__description a { color: var(--azul-uchile); text-decoration: underline; }

/* Grilla de zonas de las subportadas E e I: las zonas pareadas (dos y tres, cinco y seis...) van en dos
   columnas sobre 767px, y una sola si la otra está vacía. Hoy cada subsistema la repite bajo su clase
   (cev, igualdad, investigacion, doctorado); :where() deja esta regla con menos peso que esas. */
:where(.subportada-e, .subportada-i) .subportada__cols > .container { display: grid; grid-template-columns: 1fr 1fr; gap: 0 var(--espacio-30); }
:where(.subportada-e, .subportada-i) .subportada__cols > .container:has(> :empty) { grid-template-columns: 1fr; }
:where(.subportada-e, .subportada-i) .subportada__cols > .container > :empty { display: none; }
@media (max-width: 767px) { :where(.subportada-e, .subportada-i) .subportada__cols > .container { grid-template-columns: 1fr; } }
