@charset "utf-8";
/* CSS Document */
body {
    margin: 0;
    padding: 0;
    font-family: 'Open Sans', sans-serif;
    font-size: 16px;
    color: #666;
    background: #FFF;
    letter-spacing: 0.04em;
}

.clearfix:after {
    visibility: hidden;
    display: block;
    font-size: 0;
    content: " ";
    clear: both;
    height: 0;
}

.clearfix {
    display: inline-block;
}

/* start commented backslash hack \*/
* html .clearfix {
    height: 1%;
}

.clearfix {
    display: block;
}

/* close commented backslash hack */

* {
    -webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
    -moz-box-sizing: border-box; /* Firefox, other Gecko */
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

/* El reset de arriba (* { padding: 0 }) le saca el sangrado a TODA lista, y por
   eso los bullets quedan fuera del margen en cualquier texto cargado desde el
   CMS. En vez de restaurarlo contenedor por contenedor (que garantiza olvidarse
   de alguno), se restaura acá una sola vez para todo el sitio.
   Las listas que son estructura y no texto (menús, tarjetas, chips) declaran su
   propio `list-style: none` y `padding-left: 0`; ver #navmobile, ul#nav, etc. */
ul,
ol {
    padding-left: 24px;
    list-style-position: outside;
}

ul { list-style: disc; }
ol { list-style: decimal; }

*:focus {
    outline: none;
}

.newsdetailcontent img {
    max-width: 100%;
    object-fit: contain;
    height: auto !important;
}

a {
    color: #e41770;
    text-decoration: none;
    transition: color 1s ease;
}

a:hover {
    color: #000e62;
    transition: color 1s ease;
}

p {
    text-align: justify;
    margin: 10px 0;
}

h1 {
    font-size: 1.6em;
    margin: 0 0 30px 0;
    border-bottom: none;
    color: #10597F;
    text-transform: uppercase;
    padding-top: 4px;
}

h2 {
    font-size: 1em;
    margin: 0;
    font-weight: 600;
    padding: 0;
    margin-bottom: 4px;
}

h3 {
    font-size: 1.2em;
    color: #333;
    text-transform: uppercase;
    text-align: left;
    margin-bottom: 10px;
}

#wrapper {
    width: 100%;
    margin: 0 auto;
}

.invisible {
    visibility: hidden;
}

.fr {
    float: right;
}

.fl {
    float: left;
}

.gochi {
    font-family: 'Gochi Hand', cursive;
}

.julius {
    font-family: 'Julius Sans One', sans-serif;
}

.quango {
    font-family: 'Quango', sans-serif;
}

.upperbold {
    text-transform: uppercase;
    font-weight: bold;
}

.error {
    color: #f00 !important;
}

.success {
    color: #093 !important;
}

.bglight {
    background: rgba(66, 116, 190, 0.1) !important;
}

.bgcolor {
    background: #1D9FE3 !important;
}

/* Celeste */
.bgcolor2 {
    background: #000e62 !important;
}

/* Violeta */
.bgcolor3 {
    background: #e41770 !important;
}

/* Rosa */
.bgcolor4 {
    background: #10597F !important;
}

/* Celeste2 */
.txtcolor {
    color: rgba(66, 116, 190, 1) !important;
}

.white {
    color: #fff !important;
}

.outbox {
    border: 1px solid #ddd;
}

.ucase {
    text-transform: uppercase;
}

.uline {
    text-decoration: underline;
}

.txtita {
    font-style: italic;
}

.alert {
    color: red !important;
    font-style: normal !important;
}

.mid {
    margin: 0 auto;
    position: relative;
    width: 96%;
    max-width: 1200px;
}

.flexcol {
    display: flex;
    flex-direction: column;
}

.flexcenter {
    align-items: center;
    align-content: center;
    justify-content: center;
    display: flex;
    flex-wrap: wrap;
}

.spaceitemstb > * {
    margin-top: 5% !important;
    margin-bottom: 5% !important;
}

.flexstart {
    align-items: center;
    align-content: center;
    justify-content: flex-start;
    display: flex;
    flex-wrap: wrap;
}

.flexsb {
    align-items: center;
    align-content: center;
    justify-content: center;
    display: flex;
    flex-wrap: wrap;
}

.flexsa {
    align-items: center;
    align-content: center;
    justify-content: space-around;
    display: flex;
    flex-wrap: wrap;
}

.col350 {
    margin: auto;
    height: 250px;
    width: 260px;
    flex-direction: column;
}

.col10 {
    width: 83.3%;
}

.col9 {
    width: 75%;
}

.col8 {
    width: 66.7%;
}

.col7 {
    width: 58.3%;
}

.col6 {
    width: 50%;
}

.col6b {
    width: 49%;
}

.col6b:nth-child(2n+1) {
    margin-right: 1%;
}

.col6b:nth-child(2n) {
    margin-left: 1%;
}

.col5 {
    width: 41.6%;
}

.col4 {
    width: 33.3%;
}

.col3b {
    width: 31%;
}

.col3 {
    width: 25%;
}

.col2 {
    width: 16.6%;
}


header {
    position: fixed;
    width: 100%;
    height: 120px;
    background: #fff;
    z-index: 10;
    box-shadow: 0 6px 12px rgba(0, 0, 0, .075);
    transition: height .4s cubic-bezier(.4, 0, .2, 1);
}

#headerfix {
    height: 120px;
}

header > div#header {
    height: 100%;
}

/* Los dos logos se apilan en la misma celda para poder hacer cross-fade
   (opacidad + alto) en vez de un cambio brusco con display. */
#logo {
    display: grid;
    place-items: center;
}

#logo img {
    grid-area: 1 / 1;
    transition: opacity .4s ease, height .4s cubic-bezier(.4, 0, .2, 1);
}

#logo .logo-full { height: calc(100px + 1.5vw); opacity: 1; }
#logo .logo-mini { height: 52px; opacity: 0; }

/* Estado "scrolleado": header mas bajo, se desvanece el logo grande y
   aparece el chico (logoICsolo.png). */
header.scrolled { height: 70px; }
header.scrolled #logo .logo-full { height: 52px; opacity: 0; }
header.scrolled #logo .logo-mini { opacity: 1; }

#logo p {
    text-align: center;
    color: #000e62;
    font-size: 12px;
    margin: 3px;
}

#social {
    flex: 1 1 auto;
    max-width: 180px;
    flex-direction: row;
}

#social img {
    height: 25px;
}

.lang {
    font-size: 12px;
    color: #e41770;
}

ul#nav {
    text-transform: uppercase;
    list-style: none;
    padding-left: 0;
    flex-direction: row;
    margin-left: auto;
    margin-right: auto;
    flex: 1 1 auto;
}

ul#nav li {
    flex-direction: column;
    position: relative;
    display: block;
}

ul#nav li a {
    display: block;
    color: #000e62;
    font-size: calc(10px + 0.2vw);
    font-weight: 400;
    transition: color 0.85s ease;
    padding: 10px 0;
}

ul#nav li:hover > a {
    color: #1D9FE3;
    transition: color 0.85s ease;
}

ul#nav li.active > a {
    color: #1D9FE3;
}

/*header_menu_second*/
ul#nav li ul {
    display: none;
    opacity: 0;
    top: 35px;
    transition: opacity 2.7s ease;
    flex-direction: column;
    position: absolute;
    z-index: 9;
    list-style: none;
    padding-left: 0;
    height: auto;
    overflow: hidden;
    box-shadow: 0 6px 12px rgba(0, 0, 0, .075);
}

ul#nav li:hover ul {
    display: flex;
    opacity: 1;
    transition: opacity 2.7s ease;
}

ul#nav li ul li {
    margin: 0;
    z-index: 99;
    display: block;
    background: #fff;
    height: auto;
    padding: 0;
}

ul#nav li ul li a {
    text-align: left;
    font-size: 0.7em;
    text-transform: uppercase;
    border: none !important;
    padding: 12px !important;
    white-space: nowrap;
}

ul#nav li ul li a:hover {
    background: rgba(0, 0, 0, 0.04);
    border: none;
}

/* El menú mobile son <ul> sin clase: es estructura, no texto. */
#navmobile ul {
    list-style: none;
    padding-left: 0;
}

#navmobile {
    display: none;
    background: #eee;
}

#navmobile ul li a {
    display: block;
    margin: 0px;
    font-size: 0.7em;
    font-weight: 400;
    color: #000;
    text-decoration: none;
    padding: 8px 14px;
    text-transform: uppercase;
}

#navmobile ul li ul li a {
    display: block;
    margin: 0px;
    font-size: 0, 65em;
    margin-left: 30px;
    font-weight: 400;
    text-decoration: none;
    padding: 8px 14px;
    text-transform: uppercase;
}

a.menutoggle {
    display: none;
    color: #FFF;
    padding: 16px 0 16px 50px;
    background: url(../images/menu.png) no-repeat left 2px / 30px;
    font-size: 0.9em;
}

#homewrap {
    box-shadow: 0 -6px 12px rgba(0, 0, 0, .075);
}

#mainhome {
    flex-wrap: wrap;
    padding: 40px 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(0, min(100%/1, max(250px, 95%/2))));
    justify-content: center;
    align-content: center;
    grid-gap: 20px;
}

.buttonhome {
    background-color: #10597F;
    /*background: rgb(0,14,98,0.7);*/
}

.buttonhome img {
    width: 90px;
}

.buttonhome h2 {
    text-transform: uppercase;
    color: #fff;
    font-size: 16px;
    text-align: center;
    width: 80%;
}

#slideshowwrap {
    height: calc(200px + 12vw);
    /*  background: linear-gradient(
        to right,
        #1D9FE3 0%,
        #1D9FE3 75%,
        #e41770 75%,
        #e41770 100%
      ); */
    overflow: hidden;
    /*background: rgb(29,159,227,0.2);*/
    /*border-bottom: 1px solid #1D9FE3;  */
}

#slidewrap {
    height: 100%;
}

.slide {
    height: calc(200px + 12vw);
    color: #222;
}

.slide > div {
    width: 47%;
    /*  min-width: 300px;*/
    height: 100%;
    overflow: hidden;
    display: inline-block;
}

.slide > div:first-child {
    margin-right: 2%;
    padding: 40px 20px;
}

.slide > div:last-child {
    margin-left: 2%;
}

.slide h2 {
    font-size: calc(10px + 1vw);
    text-transform: uppercase;
    margin: 20px 0;
    font-weight: bold;
}

.slide span {
    font-size: calc(10px + 0.2vw);
    text-transform: uppercase;
    font-weight: normal;
}

.slide .description {
    font-size: calc(12px + 0.2vw);
    font-weight: normal;
    margin: 40px 0;
}

.slide > div > * {
    height: 100%;
    overflow: hidden;
}

.slide img {
    height: 100%;
    float: right;
}

.slick-prev, .slick-next, .slick-prev:before, .slick-next:before {
    color: #10597F;
    background: transparent;
}

.slick-prev {
    left: -50px;
}

.slick-next {
    right: -50px;
}

.slick-prev, .slick-next {
    width: 40px;
    height: 40px;
}

.slick-prev:before, .slick-next:before {
    font-size: 40px;
}

#bread {
    margin: 30px 0;
    padding: 10px;
    font-size: 14px;
}

#main {
    padding-bottom: 20px;
    margin-bottom: 20px;
    display: flex;
    flex-direction: column;
    position: relative;
    padding-top: 42px;
}

/* Sombra suave que diluye el corte del header sobre el contenido,
   esfumándose hacia abajo y también hacia los lados (todas las páginas). */
#main::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 28px;
    background: radial-gradient(ellipse 75% 28px at 50% 0, rgba(0, 0, 0, 0.06), rgba(0, 0, 0, 0) 70%);
    pointer-events: none;
}

/* Título de página con acento al ancho del texto */
#main > h1 {
    width: fit-content;
    max-width: 100%;
    align-self: flex-start;
    margin-bottom: 30px;
    padding-bottom: 12px;
    border-bottom: 3px solid #10597F;
}

#main > img {
    width: 20%;
}

#content_wrapper figure.fr {
    float: right;
    margin: 40px 0 40px 40px;
}

#content_wrapper figure.fl {
    float: left;
    margin: 0px 40px 40px 40px;
}

#content_wrapper figcaption {
    font-size: 12px;
}

#content_wrapper h1 {
    width: 100%;
    clear: both;
    font-weight: 600;
    text-transform: uppercase;
    margin: 30px 0 10px 0;
    font-size: 1.3em;
}

#content_wrapper h2 {
    width: 100%;
    clear: both;
    text-transform: uppercase;
    margin: 30px 0 10px 0;
    color: #333;
}

#content_wrapper h2:first-child {
    margin-top: 0;
}

#content_wrapper h3 {
    width: 100%;
    clear: both;
    text-transform: none;
    font-size: 1em;
    font-weight: 600;
    color: #444;
    margin: 18px 0 6px 0;
}

/* El sangrado y los bullets salen del default global de ul/ol (arriba de todo).
   Acá sólo el ritmo vertical propio de este contenedor. */
#content_wrapper ul,
#content_wrapper ol {
    margin: 12px 0;
}

#content_wrapper li {
    margin: 6px 0;
    text-align: justify;
}

#twocol {
    display: flex;
}

#content_left {
    width: 49%;
    margin: 0 10px;
}

#content_right {
    width: 49%;
    margin: 0 10px;
}

.colpd + .colpd {
    padding-left: 70px;
}

.col h2 {
    color: rgba(66, 116, 190, 1);
    text-align: center;
    font-weight: 100;
    padding: 10px 0;
    font-size: 1.5em;
    font-family: 'quango';
    text-transform: uppercase;
    margin: 0;
}

.col img {
    position: absolute;
    top: -100%;
    left: 0;
    right: 0;
    bottom: -100%;
    margin: auto;
    width: 100%;
    height: auto;
}

.col .coloroverlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    text-align: center;
    background: rgba(0, 0, 0, 0);
    height: 100%;
    transition: all 1.0s;
    -webkit-transition: all 1.0s;
}

.col .coloroverlay p {
    position: relative;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1em;
    color: #fff;
    line-height: 25px;
    padding: 10px;
    color: transparent;
    transition: all 1.0s;
    -webkit-transition: all 1.0s;
    overflow: hidden;
}

.col .colimg {
    position: relative;
    height: 200px;
    overflow: hidden;
}

.col:hover .coloroverlay {
    background: rgba(66, 116, 190, 0.8);
}

.col:hover .coloroverlay p {
    color: #fff;
}


/* AREAS */

#areaswrap {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    padding: 40px 0;
    justify-content: space-around;
}

#areaswrap .areaitem {
    height: 200px;
    width: 190px;
    min-width: 190px;
    margin-top: 25px;
    flex-direction: column;
    background: #10597F;
}

#areaswrap .areaitem h2 {
    font-size: 13px;
    height: auto;
    margin: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

#areaswrap .areaitem div {
    width: 60px;
    height: 60px;
}

#areaswrap .areaitem div img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* AREAS END */


/* VINCULACION: texto + novedades al lado */

.vinc-top {
    display: flex;
    flex-wrap: wrap;
    gap: 34px;
    align-items: flex-start;
    margin-bottom: 10px;
}

.vinc-intro {
    flex: 1 1 380px;
    min-width: 300px;
}

.vinc-novedades {
    flex: 0 0 320px;
    max-width: 340px;
    background: #faf7fe;
    border: 1px solid #e7ddf2;
    border-top: 4px solid #7a52b3;
    border-radius: 12px;
    box-shadow: 0 6px 20px rgba(31, 41, 55, .07);
    padding: 16px 18px 14px;
}

.vinc-novedades h2 {
    margin: 0 0 8px;
    padding-bottom: 8px;
    font-size: 16px;
    font-weight: 700;
    color: #7a52b3;
    border-bottom: 2px solid #cdb8e6;
    text-transform: none;
}

.vinc-nov-empty {
    color: #888;
    font-size: 13px;
    margin: 6px 2px;
}

.vinc-nov-item {
    display: flex;
    gap: 11px;
    align-items: flex-start;
    padding: 10px 4px;
    border-bottom: 1px solid #ece4f5;
    text-decoration: none;
    color: #333;
    transition: background .12s;
}

.vinc-nov-item:hover { background: #f3edfa; }
.vinc-nov-item:last-child { border-bottom: 0; }

.vinc-nov-date {
    flex: 0 0 auto;
    width: 48px;
    text-align: center;
    background: #efe7f8;
    border-radius: 7px;
    padding: 5px 2px;
    color: #7a52b3;
    line-height: 1.05;
}

.vinc-nov-date b { display: block; font-size: 18px; font-weight: 700; }
.vinc-nov-date i { display: block; font-size: 10px; font-style: normal; text-transform: uppercase; letter-spacing: .02em; color: #8a6fb0; }
.vinc-nov-date--none { display: flex; align-items: center; justify-content: center; color: #b6a3d1; font-size: 18px; }

.vinc-nov-body { min-width: 0; }
.vinc-nov-ttl { display: block; font-size: 13.5px; font-weight: 600; line-height: 1.3; color: #1f2937; }
.vinc-nov-meta { display: block; font-size: 12px; color: #6b7280; margin-top: 2px; }

@media (max-width: 820px) {
    .vinc-top { flex-direction: column; gap: 22px; }
    .vinc-novedades { flex-basis: auto; max-width: none; width: 100%; }
}



/* PEOPLE */

.flex-column {
    flex-direction: column;
}

.peoplecontainer {
    display: flex;
}

.peoplecontainer h1 {
    text-transform: none;
    border-bottom: 1px solid #ddd;
    font-size: 1.2em;
    margin: 10px 0;
}

.peoplewrap {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 300px));
    grid-auto-rows: 300px;
    justify-content: flex-start;
    align-items: center;
    justify-items: center;
    margin-bottom: 30px;
}

.peoplewrap h1 {
    margin: 20px 0;
    display: block;
}

.peoplewrap .item {
    height: 260px;
    width: 85%;
    min-width: 260px;
    margin-top: 25px;
    /*background: rgb(29,159,227,0.05);*/
    border-radius: 0 0 10px 10px;
    box-shadow: 0 6px 12px rgba(0, 0, 0, .045)
}

.peoplewrap.affiliated {
    grid-template-columns: repeat(auto-fit, minmax(360px, 360px));
    grid-auto-rows: 350px;
}

.peoplewrap.affiliated .item {
    height: 85%;
}

.peoplewrap .item div:first-child {
    width: 100%;
    height: 65%;
}

.peoplewrap .item div img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 10px 10px 0 0;
}

.peoplewrap .item div:last-child {
    width: 100%;
    height: 35%;
    padding: 10px 0 10px 20px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.peopdlewrap .item h2, .peopldewrap .item h3 {
    margin: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

.peoplewrap .item h2 {
    font-size: 16px;
    font-weight: bold;
    color: #111;
}

.peoplewrap .item h3 {
    text-transform: none;
    font-size: 13px;
    font-weight: normal;
    color: #555;
    height: 40px;
}

.peoplewrap.detail {
    display: flex;
    flex-wrap: wrap;
}

.peoplewrap.detail img {
    width: 170px;
    border-radius: 100%;
    height: 170px;
    margin: auto;
    display: block;
    object-fit: cover;
}

.peoplewrap.detail .title {
    font-size: 22px;
    font-weight: bold;
    color: #000;
}

.peoplewrap.detail .category {
    font-size: 16px;
    font-weight: normal;
    font-style: italic;
}

.peoplewrap.detail .content {
    font-size: 14px;
    font-weight: normal;
}

.peoplewrap.detail .contact {
    font-size: 14px;
    font-weight: normal;
    margin: 10px 0;
}

.peoplewrap.detail .contact span {
    font-weight: bold;
}

.peoplewrap.detail .contact span.areas {
    font-weight: bold;
    font-size: 16px;
    margin: 30px 0 0 0;
    display: block;
}

.peoplewrap.detail .oa {
    margin: 20px 0;
}

/* PEOPLE DETAIL - CABECERA (card con foto + datos) */

.peoplewrap.detail.peopleheader {
    align-items: flex-start;
    gap: 32px;
    background: #fff;
    border: 1px solid #e3e7ea;
    border-radius: 12px;
    box-shadow: 0 3px 14px rgba(16, 89, 127, .07);
    padding: 30px 32px;
    margin-bottom: 22px;
}

.peopleheader_photo {
    flex: 0 0 auto;
}

.peoplewrap.detail .peopleheader_photo img {
    width: 190px;
    height: 190px;
    border-radius: 50%;
    object-fit: cover;
    display: block;
    margin: 0;
    box-shadow: 0 0 0 6px #eaf2f6;
}

.peopleheader_info {
    flex: 1 1 320px;
    min-width: 0;
}

.peopleheader_name {
    margin: 0 0 8px;
    font-size: 26px;
    line-height: 1.2;
    font-weight: 700;
    color: #10597F;
    text-transform: none;
    border-bottom: none;
}

.peopleheader_role {
    font-size: 15px;
    color: #555;
    font-style: italic;
    margin-bottom: 4px;
}

.peopleheader_role.secondary {
    color: #888;
    font-size: 14px;
}

.peopleheader_contact {
    list-style: none;
    padding: 0;
    margin: 18px 0 0;
}

.peopleheader_contact li {
    font-size: 14px;
    color: #444;
    margin: 5px 0;
    line-height: 1.5;
}

.peopleheader_contact .lbl {
    font-weight: 600;
    color: #10597F;
    margin-right: 6px;
}

.peopleheader_contact .lbl::after {
    content: ":";
}

.peopleheader_contact a {
    overflow-wrap: anywhere;
}

.peopleheader_areas {
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid #eef1f3;
}

.peopleheader_areas_label {
    display: block;
    font-weight: 600;
    color: #10597F;
    font-size: 14px;
    margin-bottom: 10px;
}

.peopleheader_areas .areagroup {
    margin-bottom: 8px;
}

.peopleheader_areas .areagroup_cat {
    display: inline-block;
    font-size: 12px;
    color: #999;
    text-transform: uppercase;
    letter-spacing: .03em;
    margin-right: 8px;
    vertical-align: middle;
}

.peopleheader_areas .areachip {
    display: inline-block;
    background: #eaf2f6;
    color: #10597F;
    border-radius: 999px;
    padding: 3px 12px;
    margin: 0 6px 6px 0;
    font-size: 13px;
}

/* Chips de categorías de integrantes (listado plano y ficha) */
.peoplechips {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-top: 6px;
}

.peopleheader_role.peoplechips {
    font-style: normal;
    margin-top: 0;
}

.peoplechip {
    display: inline-block;
    background: #eaf2f6;
    color: #10597F;
    border-radius: 999px;
    padding: 1px 8px;
    font-size: 11px;
    font-style: normal;
    line-height: 1.45;
}

/* Los colores por grupo (.peoplechip.chip-tN) ya no van fijos acá: los emite
   head.php desde la tabla team_category_types (ver team_chip_css() en
   includes/inc-functions.php), y se editan en el CMS → Integrantes → Grupos.
   Un grupo sin color definido usa el estilo base de .peoplechip. */

/* Listado plano de integrantes: la card crece según las categorías */
.peoplewrap.people-flat {
    grid-auto-rows: auto;
    align-items: stretch;
}

.peoplewrap.people-flat .item {
    height: auto;
}

.peoplewrap.people-flat .item div:first-child {
    height: 200px;
}

.peoplewrap.people-flat .item div:last-child {
    height: auto;
    padding: 12px 16px 16px;
    justify-content: flex-start;
}

/* El contenedor de chips es un div anidado: hay que anular el width:100% y
   flex-direction:column que hereda de ".peoplewrap .item div:last-child". */
.peoplewrap.people-flat .item div.peoplechips {
    width: auto;
    height: auto;
    padding: 0;
    margin-top: 6px;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 4px;
}

.peoplewrap.people-flat .item div.peoplechips .peoplechip {
    width: auto;
    flex: 0 0 auto;
}

@media (max-width: 600px) {
    .peoplewrap.detail.peopleheader {
        flex-direction: column;
        align-items: center;
        text-align: center;
        padding: 24px 20px;
    }
    .peopleheader_contact { text-align: left; }
    .peopleheader_areas { text-align: left; }
}

/* PEOPLE DETAIL - SECCIONES (cards modernas, siempre visibles) */

.peoplesection {
    width: 100%;
    background: #fff;
    border: 1px solid #e3e7ea;
    border-radius: 12px;
    box-shadow: 0 3px 14px rgba(16, 89, 127, .07);
    padding: 22px 28px;
    margin: 0 0 22px;
}

/* OJO: el <summary> NO debe llevar display:flex/grid; rompe el toggle nativo
   en varios navegadores. Usamos display:block y posicionamos el acento y el
   chevron con position:absolute. */
.peoplesection_title {
    display: block;
    position: relative;
    margin: 0 0 16px;
    padding: 0 28px 11px 14px;
    font-size: 1.15rem;
    font-weight: 600;
    color: #10597F;
    background: none;
    text-transform: none;
    border-bottom: 2px solid #eef1f3;
    cursor: pointer;
    list-style: none;          /* oculta el triangulo por defecto (Firefox) */
    user-select: none;
}

/* oculta el marcador por defecto (Chrome/Safari) */
.peoplesection_title::-webkit-details-marker {
    display: none;
}

/* acento corto a la izquierda del titulo */
.peoplesection_title::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.15em;
    width: 4px;
    height: 1.05em;
    background: #10597F;
    border-radius: 2px;
}

/* chevron a la derecha que indica plegar/desplegar */
.peoplesection_title::after {
    content: "";
    position: absolute;
    right: 4px;
    top: 0.3em;
    width: 9px;
    height: 9px;
    border-right: 2px solid #10597F;
    border-bottom: 2px solid #10597F;
    transform: rotate(45deg);          /* abierto: apunta hacia abajo */
    transition: transform .2s ease;
}

.peoplesection:not([open]) .peoplesection_title {
    margin-bottom: 0;                  /* sin contenido visible, sin borde inferior */
    border-bottom: none;
    padding-bottom: 0;
}

.peoplesection:not([open]) .peoplesection_title::after {
    transform: rotate(-45deg);         /* cerrado: apunta hacia la derecha */
}

.peoplesection_title:hover {
    color: #0c4761;
}

.peoplesection_content {
    font-size: 14px;
    color: #333;
    line-height: 1.6;
}

/* Sangrado y bullets: default global de ul/ol. Acá sólo los márgenes. */
.peoplesection_content ul,
.peoplesection_content ol {
    margin: 8px 0;
}

.peoplesection_content li { margin: 4px 0; }
.peoplesection_content p  { margin: 8px 0; }

/* Materias y cursos */

.academiccourses .courses-year {
    margin-bottom: 20px;
}

.academiccourses .courses-year-title {
    display: inline-block;
    margin: 0 0 12px;
    padding: 0 2px 5px;
    font-size: 1.15rem;
    font-weight: 700;
    letter-spacing: .01em;
    color: #10597F;
    background: none;
    border-radius: 0;
    border-bottom: 2px solid #10597F;
    text-transform: none;
}

.academiccourses .courseslist {
    list-style: none;
    padding-left: 0;
    margin: 4px 0 8px;
}

.academiccourses .courseslist li {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 8px 12px;
    border-radius: 8px;
    transition: background-color .15s ease;
}

/* badge de cuatrimestre inline, antes del nombre de la materia */
.academiccourses .cuatri-badge {
    flex: 0 0 auto;
    min-width: 42px;
    text-align: center;
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1;
    padding: 4px 8px;
    border-radius: 999px;
    color: #fff;
    letter-spacing: .02em;
    position: relative;
    top: -1px;
}

.academiccourses .cuatri-badge.c1 { background: #3a93b8; }  /* primer cuatrimestre */
.academiccourses .cuatri-badge.c2 { background: #10597F; }  /* segundo cuatrimestre */
.academiccourses .cuatri-badge.cv { background: #d98324; }  /* verano */

/* chip de categoria (Materia / Seminario / ...), colores de la leyenda del CMS */
.academiccourses .catchip {
    flex: 0 0 auto;
    text-align: center;
    font-size: 0.66rem;
    font-weight: 700;
    line-height: 1;
    padding: 4px 9px;
    border-radius: 999px;
    letter-spacing: .02em;
    position: relative;
    top: -1px;
    color: #2b3a42;
    background: #e4e4e4;
}
.academiccourses .catchip-2 { background: #cfe4f7; }  /* Materias */
.academiccourses .catchip-3 { background: #d8edc4; }  /* Seminarios */
.academiccourses .catchip-4 { background: #ece1f7; }  /* Posgrados */
.academiccourses .catchip-5 { background: #fbe6cc; }  /* Workshops/escuelas/congresos */
.academiccourses .catchip-1 { background: #e4e4e4; }  /* Materias viejo */

.academiccourses .course-main {
    flex: 1 1 auto;
    min-width: 0;
}

.academiccourses .courseslist li:hover {
    background-color: #f5f8fa;
}

.academiccourses .courseslist li + li {
    margin-top: 2px;
}

.academiccourses .courseslist a {
    font-weight: 500;
}

.academiccourses .coursemeta {
    color: #8a8a8a;
    font-size: 0.82em;
    margin-left: 6px;
}

.academiccourses .courserole {
    color: #aaa;
    font-size: 0.82em;
    font-style: italic;
    margin-left: 4px;
}

/* PEOPLE END */

/* NEWS */

#newswrap {
    display: flex;
}

.newspost {
    margin: 20px 40px;
    width: 300px;
    max-width: 300px;
    flex-direction: column;
    flex-wrap: nowrap;
    height: 350px;
    color: #222;
    border: 1px solid #eee;
}

.newspost .newsimg {
    height: 50%;
    width: 100%;
    overflow: hidden;
}

.newspost .newsimg img {
    object-fit: cover;
    width: 100%;
    height: 100%;
}

.newspost .newsinfo {
    padding: 10px 15px;
    overflow: hidden;
    width: 100%;
    height: 50%;
    flex-direction: column;
    align-items: flex-start;
}

.newspost .newsinfo .newsdate {
    font-size: 0.8em;
    display: flex;
    justify-content: space-between;
    width: 100%;
}

.newspost .newsinfo .newstitle {
    color: #222;
    margin: 0;
    border: none;
    text-transform: none;
    overflow: hidden;
    max-height: 100px;
}

.newsrm {
    padding: 5px;
    width: 100px;
    text-align: center;
    align-self: flex-end;
    text-transform: uppercase;
    font-size: 14px;
}

/* --- Tarjetas del listado de noticias (vista grilla) --- */
#newswrap:not(.detail) .newspost {
    border: 1px solid #e9edf1;
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 2px 10px rgba(16, 89, 127, .06);
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

#newswrap:not(.detail) .newspost:hover {
    transform: translateY(-5px);
    box-shadow: 0 14px 28px rgba(16, 89, 127, .16);
    border-color: #cfe0ee;
}

#newswrap:not(.detail) .newspost .newsimg img {
    transition: transform .45s ease;
}

#newswrap:not(.detail) .newspost:hover .newsimg img {
    transform: scale(1.06);
}

#newswrap:not(.detail) .newspost .newsinfo {
    padding: 14px 16px 16px;
    justify-content: flex-start;
    gap: 9px;
}

#newswrap:not(.detail) .newspost .newsdate {
    align-items: center;
    color: #6b7280;
}

#newswrap:not(.detail) .newspost .newsdate .ucase {
    color: #1D9FE3;
    font-weight: 700;
    letter-spacing: .03em;
}

#newswrap:not(.detail) .newspost .newstitle {
    font-size: 1.05em;
    font-weight: 700;
    line-height: 1.3;
    color: #1f2937;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}

#newswrap:not(.detail) .newspost .newsrm {
    margin-top: auto;
    width: auto;
    border-radius: 999px;
    padding: 7px 18px;
    font-size: 12px;
    letter-spacing: .05em;
    transition: background .2s ease;
}

#newswrap:not(.detail) .newspost:hover .newsrm {
    background: #10597F !important;
}

/* ACADEMIC */

.academicwrap {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 280px));
    grid-auto-rows: 280px;
    grid-gap: 20px;
    justify-content: flex-start;
    align-items: center;
    justify-items: center;
}

.academicwrap.grid500 {
    grid-auto-rows: 500px;
}

.academicitem {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 100%;
    height: 100%;
    padding: 20px;
    border: 1px solid #ddd;
    overflow: hidden;
}

.academicitem .teachericon {
    height: 50px;
}

.academicitem div:not(.newsrm) {
    width: 100%;
}

.academicitem .academictitle {
    font-size: 1em;
    color: #222;
    font-weight: bold;
}

.academicitem .academicinfo {
    font-size: 0.8em;
    color: #222;
}

.academicinfo.intro {
    height: 35%;
    overflow: hidden;
}

.detailimage {
    width: 550px;
    max-width: 100%;
}

.academicinfo.image {
    object-fit: contain;
    width: 100%;
    height: 40%;
}

.academicrm {
    padding: 10px;
    text-align: center;
    align-self: flex-end;
    text-transform: uppercase;
    font-size: 14px;
}

/* ---- Encabezado con imagen ilustrativa (banner + título) ---- */
.academic-hero {
    position: relative;
    border-radius: 18px;
    overflow: hidden;
    margin: 0 0 6px;
    min-height: 300px;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    display: flex;
    align-items: flex-end;
    box-shadow: 0 18px 40px rgba(16, 89, 127, 0.16);
}
.academic-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(8, 30, 46, 0.86) 0%, rgba(8, 30, 46, 0.45) 42%, rgba(8, 30, 46, 0.04) 100%);
}
.academic-hero-inner {
    position: relative;
    z-index: 1;
    width: 100%;
    padding: 34px 38px 30px;
}
.academic-hero-inner h1,
.academic-hero-inner h2 {
    margin: 0;
    color: #fff;
    font-size: clamp(26px, 3.6vw, 40px);
    font-weight: 700;
    letter-spacing: -0.01em;
    text-shadow: 0 2px 14px rgba(0, 0, 0, 0.45);
    line-height: 1.14;
}
@media (max-width: 700px) {
    .academic-hero { min-height: 200px; border-radius: 12px; }
    .academic-hero-inner { padding: 22px 20px 18px; }
}

/* ---- Detalle de actividad: layout moderno (contenido + tarjeta de datos) ---- */
.actdetail-figure {
    margin: 0;
    height: 240px;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 18px 40px rgba(16, 89, 127, 0.16);
}
.actdetail-figure img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
@media (max-width: 700px) {
    .actdetail-figure { height: 170px; border-radius: 12px; }
}
.actdetail-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 310px;
    gap: 40px;
    margin-top: 30px;
    align-items: start;
}
.actdetail-main { min-width: 0; }
.actdetail-content {
    font-size: 17px;
    line-height: 1.75;
    color: #344450;
}
.actdetail-content p { margin: 0 0 1.1em; }
.actdetail-content img { max-width: 100%; height: auto; border-radius: 10px; }
.actdetail-content a { color: var(--accent, #10597F); }
.actdetail-cta { margin: 24px 0 0; }
.actdetail-cta a { display: inline-block; }

/* Offset = alto del header fijo (120px) + un respiro, para que la tarjeta no
   quede tapada por el header sticky al hacer scroll. */
.actdetail-side { position: sticky; top: 136px; }
.actcard {
    background: #fff;
    border: 1px solid #e6edf3;
    border-radius: 18px;
    padding: 24px 24px 8px;
    box-shadow: 0 10px 30px rgba(16, 89, 127, 0.08);
}
.actcard-row {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    padding: 0 0 18px;
}
.actcard-ico {
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: color-mix(in srgb, var(--accent, #10597F) 10%, #fff);
    color: var(--accent, #10597F);
}
.actcard-ico svg { width: 20px; height: 20px; }
.actcard-row > div { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.actcard-label {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #8aa0b0;
    font-weight: 700;
}
.actcard-val {
    font-size: 15.5px;
    color: #243640;
    font-weight: 600;
    line-height: 1.4;
    word-wrap: break-word;
}
.actcard-val a { color: var(--accent, #10597F); }

.actdetail-back { margin-top: 32px; }
.actdetail-back a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
    font-size: 15px;
    color: var(--accent, #10597F);
    text-decoration: none;
    padding: 9px 18px;
    border: 1px solid color-mix(in srgb, var(--accent, #10597F) 28%, #fff);
    border-radius: 999px;
    transition: background 0.16s, color 0.16s, border-color 0.16s;
}
.actdetail-back a:hover {
    background: var(--accent, #10597F);
    border-color: var(--accent, #10597F);
    color: #fff;
}

@media (max-width: 860px) {
    .actdetail-grid { grid-template-columns: 1fr; gap: 26px; }
    .actdetail-side { position: static; }
}

.academicwrapdetail {
    display: flex;
}

.academicwrapdetail .academicdetailitem {
    height: 100px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin: 20px 0;
    color: #fff;
    align-items: center;
}

.academicwrapdetail .academiccontent {
    margin: 20px 0;
}

.academiccontent * {
    max-width: 100%;
}

.academiccontent img {
    max-width: 60%;
}

/* Sangrado y bullets: default global de ul/ol. Acá sólo los márgenes. */
.academiccontent ul,
.academiccontent ol {
    margin: 12px 0;
}

.academiccontent li {
    margin: 6px 0;
}


.academicwrapdetail h3 {
    margin: 30px 0 10px 0;
    font-size: 1.1em;
    text-transform: none;
    color: #555;
}

.academicwrapdetail h4 {
    margin: 20px 0 10px 0;
}

.academicwrapdetail p {
    margin: 10px 0;
}

.academicwrapdetail h4, .academicwrapdetail p span {
    color: #777;
    font-weight: 600;
    font-style: italic;
}

.academicwrapdetail a {
    display: inline-flex;
    align-items: center;
    flex-direction: row;
}

.academicwrapdetail a img {
    width: 21px;
    margin-left: 10px;
}

.teachericon {
    background-image: url("../images/icons/academic-teacher.png");
}

.dateicon {
    background-image: url("../images/icons/academic-date.png");
}

.placeicon {
    background-image: url("../images/icons/academic-place.png");
}

.pruebaicon {
    background-image: url("../images/icons/prueba.png");
}

.regicon {
    background-image: url("../images/icons/inscripcion.png");
}

.formicon {
    background-image: url("../images/icons/form.png");
}

.toolicon {
    background-image: url("../images/icons/tool.png");
}

.reglamentoicon {
    background-image: url("../images/icons/reglamento.png");
}

.titularesicon {
    background-image: url("../images/icons/titulares.png");
}

.suplentesicon {
    background-image: url("../images/icons/suplentes.png");
}

.dictamenicon {
    background-image: url("../images/icons/dictamen.png");
}

.lefticon {
    min-height: 21px;
    padding-left: 50px;
    background-position: 10px 0;
    background-size: 21px;
    background-repeat: no-repeat;
}

/* ============================================================
   SEMINARIOS — estilo tipo SP LMS (portado de web.dm.uba.ar),
   adaptado a la paleta de IC (#10597F). Autocontenido: no depende
   de Bootstrap ni de FontAwesome; el date box usa color (no imagen).
   ============================================================ */

.seminars-section-title {
    color: #10597F;
    font-size: 22px;
    margin: 34px 0 18px;
    padding-bottom: 8px;
    border-bottom: 2px solid #e4eef3;
}
.seminars-section-title:first-of-type { margin-top: 14px; }
.seminars-back { margin: 0 0 12px; }
.seminars-back a { color: #1D9FE3; text-decoration: none; }
.seminars-empty { color: #777; }

/* ---- Lista de reuniones (eventos) ---- */
.splms.splms-view-events .splms-event { margin-bottom: 22px; }
.splms.splms-view-events .splms-event .splms-row {
    display: flex;
    flex-wrap: nowrap;
    width: 100%;
}
.splms.splms-view-events .splms-col-sm-3 {
    flex: 0 0 120px;
    max-width: 120px;
}
.splms.splms-view-events .splms-col-sm-9 {
    flex: 1 1 auto;
    min-width: 0;
}
.splms.splms-view-events .event-date-wrape { height: 100%; }
.splms.splms-view-events .event-date-wrape a {
    display: flex;
    height: 100%;
    text-decoration: none;
}
.splms.splms-view-events .event-date {
    flex: 1;
    min-height: 104px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #10597F;
    color: #fff;
    text-align: center;
    border-radius: 4px 0 0 4px;
}
.splms.splms-view-events .event-date h1 {
    color: #fff;
    margin: 0;
    font-size: 50px;
    font-weight: 600;
    line-height: 1;
}
.splms.splms-view-events .event-date h1 span {
    display: block;
    margin-top: 6px;
    font-size: 15px;
    font-weight: 400;
    text-transform: uppercase;
}
.splms.splms-view-events .event-date.event-date--text { background: #2e7d92; }
/* Extension: las actividades suelen ser periodos (ej. "28-30"), asi que la
   caja de fecha es mas ancha para que el rango entre en un renglon. */
.splms-extension.splms-view-events .splms-col-sm-3 { flex: 0 0 168px; max-width: 168px; }
.splms-extension.splms-view-events .event-date h1 { white-space: nowrap; }
.splms.splms-view-events .event-date.event-date--text span {
    font-size: 14px;
    font-weight: 500;
    line-height: 1.3;
    padding: 10px;
    text-transform: none;
}
.splms.splms-view-events .splms-event-details {
    background: #fff;
    box-shadow: 0 3px 5px rgba(0,0,0,0.1);
    padding: 22px 26px;
    border-radius: 0 4px 4px 0;
    transition: box-shadow .3s;
}
.splms.splms-view-events .splms-row:hover .splms-event-details {
    box-shadow: 0 12px 26px rgba(0,0,0,0.12);
}
.splms.splms-view-events .splms-event-title { margin: 0 0 6px; }
.splms.splms-view-events .splms-event-title a {
    color: #252525;
    font-size: 20px;
    line-height: 1.25;
    text-decoration: none;
}
.splms.splms-view-events .splms-event-title a:hover { color: #10597F; }
.splms.splms-view-events .splms-event-series { margin: 0 0 10px; }
.splms.splms-view-events .splms-event-series a {
    color: #1D9FE3;
    font-size: 13px;
    letter-spacing: .5px;
    text-transform: uppercase;
    text-decoration: none;
}
.splms.splms-view-events .splms-event-info-list { list-style: none; padding: 0; margin: 0; }
.splms.splms-view-events .splms-event-info-list li {
    display: block;
    margin: 4px 0;
    color: #555;
    font-size: 14px;
    background-size: 18px;
    padding-left: 28px;
    background-position: 0 2px;
}

/* ---- Tarjetas de series (event categories) ---- */
.splms.splms-view-event-categories .splms-row {
    display: flex;
    flex-wrap: wrap;
    margin: 0 -12px;
}
.splms.splms-view-event-categories .splms-col-lg-4 {
    flex: 0 0 33.333%;
    max-width: 33.333%;
    padding: 0 12px;
    box-sizing: border-box;
    display: flex;
}
.splms.splms-view-event-categories .splms-event-category {
    display: flex;
    width: 100%;
    margin-bottom: 24px;
}
.splms.splms-view-event-categories .splms-event-category-info {
    display: flex;
    flex-direction: column;
    flex: 1;
    background: #fff;
    box-shadow: 0 3px 5px rgba(0,0,0,0.1);
    padding: 26px 26px 24px;
    border-radius: 4px;
    border-top: 4px solid #10597F;
    transition: box-shadow .3s;
}
.splms.splms-view-event-categories .splms-event-category:hover .splms-event-category-info {
    box-shadow: 0 12px 26px rgba(0,0,0,0.12);
}
.splms.splms-view-event-categories .splms-event-category-info h2 {
    margin: 0 0 10px;
    color: #252525;
    font-size: 19px;
    line-height: 1.2;
    font-weight: 500;
    text-transform: uppercase;
}
.splms.splms-view-event-categories .splms-event-category-count {
    margin: 0 0 18px;
    color: #888;
    font-size: 13px;
}
.splms.splms-view-event-categories .more-details { margin-top: auto; }

/* ---- Boton ---- */
.splms .sppb-btn-primary {
    display: inline-block;
    background: #10597F;
    color: #fff;
    border: 0;
    border-radius: 3px;
    padding: 9px 20px;
    font-size: 15px;
    text-decoration: none;
    transition: background .2s;
}
.splms .sppb-btn-primary:hover,
.splms .sppb-btn-primary:focus { background: #1D9FE3; color: #fff; }
.splms .sppb-btn-primary .sem-arrow { margin-left: 4px; font-weight: 700; }

/* ---- Responsive ---- */
@media (max-width: 767px) {
    .splms.splms-view-event-categories .splms-col-lg-4 { flex: 0 0 100%; max-width: 100%; }
    .splms.splms-view-events .splms-col-sm-3 { flex: 0 0 86px; max-width: 86px; }
    .splms-extension.splms-view-events .splms-col-sm-3 { flex: 0 0 116px; max-width: 116px; }
    .splms.splms-view-events .event-date { min-height: 92px; }
    .splms.splms-view-events .event-date h1 { font-size: 36px; }
    .splms.splms-view-events .event-date h1 span { font-size: 12px; }
    .splms.splms-view-events .splms-event-details { padding: 16px 18px; }
}

/* ============================================================
   CONCURSOS — reusa la estetica de seminarios (splms-*), agregando
   una leyenda sobre la caja de fecha (Cierre / Finalizado) y un acento
   de color segun el estado de la inscripcion.
   ============================================================ */
.splms-concursos .event-date-wrape a { flex-direction: column; }
.splms-concursos .conc-datecaption {
    width: 100%;
    box-sizing: border-box;
    background: #0d4a6b;
    color: #fff;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    text-align: center;
    padding: 5px 6px;
    border-radius: 4px 0 0 0;
}
.splms-concursos .conc-datecaption + .event-date { border-radius: 0 0 0 4px; min-height: 84px; }

/* Inscripcion abierta = verde; finalizada = gris */
.splms-concursos .concurso-event.is-open .conc-datecaption { background: #155c39; }
.splms-concursos .concurso-event.is-open .event-date { background: #1f7a4d; }
.splms-concursos .concurso-event.is-closed .conc-datecaption { background: #55616b; }
.splms-concursos .concurso-event.is-closed .event-date { background: #6c7a86; }
.splms-concursos .concurso-event.is-closed .event-date.event-date--text { background: #6c7a86; }

.splms-concursos .splms-event-info-list li { margin: 6px 0; line-height: 1.45; }
.splms-concursos .splms-event-info-list li strong { color: #333; font-weight: 600; }

/* Descripcion larga en el detalle del concurso */
.concurso-descripcion {
    margin: 6px 0 22px;
    padding-bottom: 18px;
    border-bottom: 1px solid #e2e2e2;
    line-height: 1.55;
}
.concurso-descripcion ul,
.concurso-descripcion ol { margin: 8px 0 12px; }
.concurso-descripcion li { margin: 5px 0; }
.concurso-descripcion p { margin: 0 0 10px; }

/* Detalle de reunion: serie a la que pertenece + volver a la serie */
.seminar-series {
    margin: 2px 0 14px;
    font-size: 15px;
}
.seminar-series .seminar-series-lbl {
    color: #777;
    margin-right: 4px;
}
.seminar-series a {
    color: #10597F;
    font-weight: 600;
    text-decoration: none;
}
.seminar-series a:hover { color: #1D9FE3; }

/* ACADEMIC END */

/* NEWS DETAIL AND TEAM TRAIN*/

.newsdetailimg {
    overflow: hidden;
    width: 100%;
}

.newsdetailimg img {
    width: 100%;
}

.newsdetailinfo {
    font-size: 0.8em;
    color: #888;
    margin: 5px 0 0 0;
}

.newsdetailtitle {
    font-size: 1.2em;
    text-transform: uppercase;
    line-height: normal;
    font-weight: 600;
    margin: 0 0 10px 0;
    border-bottom: 0;
}

.newsdetailcontent {
    font-size: 1em;
    text-align: justify;
    color: #222;
    background: #fff;
    padding: 10px 0px;
}

.oa {
    font-size: 0.8em;
    display: flex;
    justify-content: space-between;
    margin-bottom: 20px;
}

.detail .newspost {
    background: transparent;
    height: 100px;
    width: 100%;
    max-width: 100%;
    display: flex;
    flex-direction: row;
    margin-bottom: 30px;
    justify-content: center;
    align-items: center;
    margin-right: 0;
    margin-left: 0;
}


.detail .newspost .newsinfo {
    flex: 1 1 60%;
    height: inherit;
    padding: 4px 10px;
    overflow: hidden;
}

.detail .newspost .newsimg {
    height: 100%;
    flex: 1 1 40%;
    overflow: hidden;
}

.detail.areas .newspost .newsimg {
    height: 50%;
    flex: 0 0 40%;
    overflow: hidden;
}

.detail.areas .newspost .newsinfo {
    flex: 0 0 60%;
    height: 50%;
    overflow: hidden;
    padding: 0;
    align-items: center;
    justify-content: flex-start;
}

.detail.areas .newspost .newsinfo .newstitle {
    display: flex;
    align-items: center;
    height: 100%;
    margin: 0;
}

.detail.areas .newspost .newsimg img {
    object-fit: contain;
}

.detail .newspost .newsinfo .newsdate {
    font-size: 0.6em;
}

.detail .newspost .newsinfo .newstitle {
    font-size: 0.8em;
    text-transform: none;
    line-height: normal;
    height: auto;
    font-weight: 600;
    margin: 2px 0;
}

/* --- Tarjetas "Últimas novedades" (panel derecho del detalle) --- */
.detail:not(.areas) .newspost {
    border: 1px solid #e9edf1;
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 2px 10px rgba(16, 89, 127, .06);
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.detail:not(.areas) .newspost:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 24px rgba(16, 89, 127, .15);
    border-color: #cfe0ee;
}

.detail:not(.areas) .newspost .newsinfo {
    padding: 8px 14px;
}

.detail:not(.areas) .newspost .newsimg img {
    transition: transform .45s ease;
}

.detail:not(.areas) .newspost:hover .newsimg img {
    transform: scale(1.07);
}

.detail:not(.areas) .newspost .newsinfo .newsdate .ucase {
    color: #1D9FE3;
    font-weight: 700;
}

.newsgal {
    margin-bottom: 30px;
    text-align: center;
    display: flex;
    flex-direction: row;
}

.galimg {
    margin-right: 10px;
}

/**/


.galphoto {
    display: inline-block;
    width: 66px;
    border: 1px solid #CCC;
    margin-right: 10px;
    margin-bottom: 10px;
}

.galphoto a {
    color: #FFF;
}

.galpic {
    width: 100%;
    height: 61px;
}

.galpic img {
    width: 100%;
    height: 61px
}

.exmainmic {
    margin-bottom: 8px;
}

.excphotoscroll {
    position: relative;
    width: 92%;
    margin: 0 auto;
}

.rpprev {
    position: absolute;
    top: 20px;
    left: -20px;
    z-index: 99;
}

.rpnext {
    position: absolute;
    top: 20px;
    right: -20px;
    z-index: 99;
}


/*form contact */
form.mainform {
    margin-top: 67px;
}

form.mainform > div {
    clear: both;
    overflow: hidden;
    padding: 1px;
    margin: 0 0 10px 0;
}

form.mainform > div > fieldset > div > div {
    margin: 0 0 5px 0;
}

form.mainform > div > label,
legend {

    float: left;
    padding-right: 10px;
}

form.mainform > div > div,
form.mainform > div > fieldset > div {
}

form.mainform > div > fieldset label {
    /* font-size: 90%; */
}

fieldset {
    border: 0;
    padding: 0;
}

form.mainform input,
form.mainform textarea, form.mainform select {
    width: 100%;
    border: 1px solid #B2B2B2;
    padding: 10px;
    color: #666;
    resize: none;
    font-family: inherit;
    font-size: 0.9em;
}

.leftformfield {
    width: 48%;
    float: left;
    margin: 0 2% 0 0;
}

.rightformfield {
    width: 48%;
    float: right;
    margin: 0 0 0 2%;
}

form.mainform input[type=submit] {
    width: auto;
    cursor: pointer;
    background: #e41770;
    color: #FFF;
    text-transform: uppercase;
    padding: 6px 10px !important;
    transition: background 0.85s ease;
    border: none;
    -webkit-appearance: none;
}

form.mainform input[type=submit]:hover {
    background: #000e62;
    transition: background 0.85s ease;
    -webkit-appearance: none;
}

.tar {
    text-align: right;
}

form.mainform label.error {
    background: transparent;
    padding: 3px;
    color: #FFF;
    font-size: 1em;
}

form.mainform input[type=text]:focus,
form.mainform input[type=email]:focus,
form.mainform input[type=url]:focus,
form.mainform input[type=password]:focus,
form.mainform textarea:focus {
    outline: 0;
    /*  border-color: #4697e4;*/
}

form.mainform select {
    padding: 3px;
    width: 100%;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    background: url(../images/seldd.png) no-repeat right center #FFF;

}

form.mainform select::-ms-expand {
    display: none;
}

form.mainform .calicon {
    background: url(../images/calicon.png) no-repeat right center #FFF;
    cursor: pointer;
}


footer {
    background-color: #ddd;
    color: #222;
    font-size: 0.8em;
    margin-top: 20px;
}

footer > div {
    padding: 10px 0;
    text-align: center;
    display: flex;
    flex-direction: row;
}

footer p {
    text-align: center;
}

footer .logos {
    background: #eee;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
}

footer .logos a {
    margin: 10px 30px;
    color: #FFF;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
}

footer .logos a img {
    width: 80px;
    height: auto;
}

footer .logos a div {
    width: 100px;
    color: #333;
    font-size: 11px;
    margin: 10px;
}

#footer_items {
    background: #333333;
    min-height: 130px;
    color: #FFF;
    padding: 32px 0 2px 0;
    color: #999999;
    font-size: 0.55em;
    line-height: 1.65;
    text-align: center;
}

#footer_items a {
    color: #999999;
}

#footer_items a:hover {
    color: #CCC;
}

#fi1 {
    display: inline-block;
    width: 244px;
    margin-bottom: 20px;
    text-align: left;
}

#fi2 {
    display: inline-block;
    width: 244px;
    margin-left: 20px;
    margin-bottom: 20px;
    text-align: left;
}

#fi3 {
    display: inline-block;
    width: 150px;
    margin-left: 40px;
    margin-bottom: 20px;
    text-align: left;
}

#fi4 {
    display: inline-block;
    width: 150px;
    margin-left: 10px;
    margin-bottom: 20px;
    text-align: left;
}

#fi1 a {
    color: #F26D23;
}

#fi1 a:hover {
    color: #F26D23;
    text-decoration: underline;
}

#fi2 span {
    color: #0b7cb6;
}

.fititle {
    color: #FFF;
    font-weight: bold;
}

.fiphone {
    background: url(../images/whatsapp.png) no-repeat left center;
    padding: 20px 0 20px 20px;
    display: inline-block;
}

.fiaddress {
    background: url(../images/marker.png) no-repeat left center;
    padding: 20px 0 20px 20px;
    display: inline-block;
}

#footer_items ul {
    list-style: none;
    padding-left: 0;
}

#footer_items ul li {
    border-bottom: 1px solid #404040;
    padding: 3px 0;
}

#footer_items ul li:last-child {
    border-bottom: none;
}

#footer_items #fi3 ul li {
    background: url(../images/bullblue.png) no-repeat left center;
    padding-left: 16px;
}

#footer_items #fi3 ul li.download {
    background: url(../images/download.png) no-repeat left center !important;
    padding-left: 16px;
}

#footer_items #fi4 ul li {
    background: url(../images/bullog.png) no-repeat left center;
    padding-left: 16px;
}


/* sidebox */

.sidebox {
    position: relative;
    padding: 0;
}

.sidebox iframe {
    height: 283px;
    width: 100%;
}

.sidebox p {
    font-size: 14px;
}

.sidebox span {
    color: #008751;
}

p.fiatc {
    color: #FFF !important;
    font-size: 18px;
    background: url(../images/phonebl.png) no-repeat left center;
    padding-left: 42px;
    line-height: 38px;
}

.fiskype {
    background: url(../images/skype.png) no-repeat left center;
    padding-left: 20px;
    display: block;
}

.fititle {
    color: #FFF;
    font-weight: bold;
}

.fiphone {
    position: absolute;
    left: 0;
    top: -52px;
    width: 40%;
    background: url(../images/phone.png) no-repeat left center;
    background-size: 18px;
    padding: 5px 0 5px 30px;
}

.fimail {
    position: absolute;
    right: 0;
    left: 0;
    width: 30%;
    margin: auto;
    top: -52px;
    background: url(../images/mail.png) no-repeat left center;
    background-size: 18px;
    padding: 5px 0 5px 30px;
}

.fiaddress {
    width: 100%;
    background: url(../images/marker.png) no-repeat left center;
    background-size: 18px;
    padding: 5px 0 5px 30px;
}

.registration_req {
    position: absolute;
    margin: auto;
    z-index: 1;
    background: rgba(0, 0, 0, 0.5);
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    font-size: 20px;
    color: #fff;
    text-align: center;
}

.registration_req p {
    position: absolute;
    margin: auto;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
}

/* ACCORDION */

.accordion .accordion_title {
    display: flex;
    align-items: center;
    font-size: 1rem;
    cursor: pointer;
    margin: 0;
    padding: 5px 0 5px 20px;
    text-transform: unset;
    background-color: #777;
    color: #fff;
    border-bottom: 1px solid #ddd;
    width: 100%;
    font-weight: 100;
}

.accordion > .accordion_title:after {
    margin-left: auto;
    padding-right: 15px;
    content: "+";
    width: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.accordion.open {
    margin-bottom: 20px;
}

.accordion.open > .accordion_title:after {
    content: "-";
}

.accordion .accordion_content {
    max-height: 0;
    transition: all 0.3s ease-in-out;
    color: #222;
    overflow: hidden;
    height:auto;
}

.accordion.open > .accordion_content {
    max-height: initial;
    overflow: visible;
    margin: 10px 0;
}

.accordion > .accordion_content .accordion_title {
    background: #999;
    padding-left: 30px;
    font-size: 0.8rem;
}

/* ACCORDION END */

/* MATERIAS (listado plano, siempre visible) */

.materias-year {
    margin-bottom: 40px;
}

.materias-year-title {
    margin: 0 0 18px;
    padding: 0 0 8px;
    font-size: 1.7rem;
    font-weight: 700;
    color: #10597F;
    border-bottom: 2px solid #e1e9ef;
}

.materias-cuatri-title {
    margin: 34px 0 16px;
    padding: 2px 0 2px 12px;
    font-size: 1.1rem;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    color: #2e7d32;
    border-left: 4px solid #2e7d32;
}

.materias-cuatri-title:first-of-type {
    margin-top: 15px;
}

/* Etiquetas (nivel / bimestre) dentro del título de cada materia */
.academicitem .materias-tag {
    display: inline-block;
    background: #eaf2f6;
    color: #10597F;
    border-radius: 999px;
    padding: 1px 8px;
    margin-left: 6px;
    font-size: 11px;
    font-weight: 600;
    vertical-align: middle;
    text-transform: none;
    letter-spacing: 0;
}

.materias-type {
    margin-bottom: 25px;
    padding-left: 12px;
}

.materias-type-title {
    margin: 0 0 12px;
    padding: 0 0 4px;
    font-size: 1.05rem;
    font-weight: 600;
    color: #333;
    text-transform: none;
    border-bottom: 2px solid #ddd;
}

.materias-type-content {
    margin: 0 0 10px;
}

/* ---- Cards de materias mas vistosos (solo en la pagina de materias) ---- */
.materias-type-content .academicwrap {
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
    grid-auto-rows: auto;
    gap: 18px;
    justify-content: stretch;
    align-items: stretch;
    justify-items: stretch;
}

.materias-type-content .academicitem {
    position: relative;
    height: 100%;
    min-height: 150px;
    padding: 22px 20px 16px;
    border: 1px solid #e6edf2;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 1px 3px rgba(16, 89, 127, 0.06);
    overflow: hidden;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

/* franja de acento arriba */
.materias-type-content .academicitem::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, #10597F, #1D9FE3);
}

.materias-type-content .academicitem:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 24px rgba(16, 89, 127, 0.15);
    border-color: #c9dded;
}

.materias-type-content .academicitem .academictitle {
    margin-top: 4px;
    font-size: 1.05rem;
    line-height: 1.3;
    font-weight: 700;
    color: #16384a;
}

.materias-type-content .academicitem:hover .academictitle {
    color: #10597F;
}

.materias-type-content .academicitem .academicinfo {
    margin-top: 8px;
    font-size: 0.82rem;
    color: #5a6b75;
}

.materias-type-content .academicitem .teachericon {
    height: auto;
}

.materias-type-content .academicitem .newsrm {
    align-self: flex-start;
    width: auto;
    margin-top: 14px;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 12px;
    letter-spacing: .03em;
}

.materias-back {
    margin: 25px 0 5px;
}

/* Botón "volver al cuatrimestre" al pie de la ficha de una materia */
.materias-back-bottom {
    margin-top: 40px;
    padding-top: 20px;
    border-top: 1px solid #ddd;
}

.materias-archive {
    margin-top: 45px;
    padding-top: 20px;
    border-top: 1px solid #ddd;
}

.materias-archive-title {
    margin: 0 0 14px;
    font-size: 1.1rem;
    font-weight: 600;
    color: #333;
}

.materias-archive-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.materias-archive-list li {
    margin: 0;
}

.materias-archive-list a,
.materias-archive-list strong {
    display: inline-block;
    padding: 6px 16px;
    border: 1px solid #2e7d32;
    border-radius: 20px;
    color: #2e7d32;
    text-decoration: none;
    font-size: 0.95rem;
    line-height: 1.2;
}

.materias-archive-list a:hover {
    background-color: #2e7d32;
    color: #fff;
}

.materias-archive-list .current strong {
    background-color: #2e7d32;
    color: #fff;
}

.academicmeta {
    margin: -10px 0 22px;
    font-size: 1rem;
    font-weight: 600;
    color: #2e7d32;
}

/* Chip de carrera (abreviatura) — listado y detalle de materias */
.materia-carrera {
    display: inline-block;
    background: #eaf2f6;
    color: #10597F;
    border-radius: 999px;
    padding: 1px 8px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .02em;
    vertical-align: middle;
}

/* Carrera(s) entre paréntesis, inline junto al nombre de la materia (listado y
   título del detalle). Hereda el color del título (funciona sobre fondo claro y
   sobre el hero con título blanco), apenas atenuado. */
.materia-carrera-inline {
    color: inherit;
    opacity: .78;
    font-weight: 600;
}

/* Auxiliares en la línea de docentes del listado de materias */
.materia-aux {
    opacity: .8;
    font-style: italic;
}

/* Separador entre los distintos nombres de una misma materia (punto centrado).
   Más visible que una coma, que se pierde cuando los nombres tienen comas. */
.materia-sep {
    opacity: .55;
    font-weight: 700;
    padding: 0 3px;
}

/* Línea de meta (carreras + carácter + horas) en cada card del listado */
.materias-type-content .academicitem .materia-list-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin-top: 6px;
    font-size: 0.78rem;
    color: #5a6b75;
}
.materias-type-content .academicitem .materia-list-meta .materia-list-txt {
    color: #5a6b75;
}

/* Carreras en la página de la materia */
.materia-carreras {
    margin: -8px 0 20px;
    font-size: .95rem;
    line-height: 1.9;
}
.materia-carreras .materia-carreras-lbl,
.materia-carreras .materia-horas-lbl {
    font-weight: 600;
    color: #555;
    margin-right: 4px;
}
.materia-carreras .materia-carrera {
    margin-right: 4px;
    font-size: 12px;
}

/* Formulario de contacto en la página de la materia */
.materia-contacto {
    margin: 34px 0 10px;
    padding: 24px;
    border: 1px solid #e6edf2;
    border-radius: 12px;
    background: #f7fafc;
}
.materia-contacto h3 {
    margin: 0 0 4px;
    font-size: 1.15rem;
    color: #10597F;
}
.materia-contacto .materia-contacto-intro {
    margin: 0 0 16px;
    color: #5a6b75;
    font-size: .92rem;
}
.materia-contacto .mc-row {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}
.materia-contacto .mc-row input { flex: 1 1 200px; }
.materia-contacto input[type="text"],
.materia-contacto input[type="email"],
.materia-contacto textarea {
    width: 100%;
    padding: 10px 12px;
    margin-bottom: 12px;
    border: 1px solid #cdd9e2;
    border-radius: 8px;
    font: inherit;
    box-sizing: border-box;
}
.materia-contacto textarea { resize: vertical; }
.materia-contacto button {
    border: 0;
    padding: 10px 26px;
    border-radius: 999px;
    font-weight: 600;
    cursor: pointer;
}
.materia-contacto .materia-contacto-msg {
    margin: 0 0 14px;
    padding: 10px 14px;
    border-radius: 8px;
    font-size: .92rem;
}
.materia-contacto .materia-contacto-msg.ok  { background: #e6f6ec; color: #2e7d32; }
.materia-contacto .materia-contacto-msg.err { background: #fdecea; color: #c0392b; }
/* Honeypot anti-spam: fuera de pantalla, invisible para humanos */
.materia-contacto .mc-hp {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

/* MATERIAS END */

/* CONTACTO DOCENTE (modal) */
.peopleheader_contactbtn { margin: 14px 0 0; }
.btn-contacto {
    border: 0;
    padding: 9px 22px;
    border-radius: 999px;
    font: inherit;
    font-weight: 600;
    cursor: pointer;
}
.contacto-modal { display: none; }
.contacto-modal.is-open {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 1000;
}
.contacto-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(16, 35, 48, .55);
}
body.contacto-modal-lock { overflow: hidden; }
.contacto-modal-box {
    position: relative;
    z-index: 1;
    width: calc(100% - 32px);
    max-width: 520px;
    margin: 7vh auto 0;
    max-height: 86vh;
    overflow: auto;
    padding: 28px 26px;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 18px 50px rgba(0, 0, 0, .3);
}
.contacto-modal-x {
    position: absolute;
    top: 10px;
    right: 14px;
    border: 0;
    background: none;
    font-size: 28px;
    line-height: 1;
    color: #7a8a94;
    cursor: pointer;
}
.contacto-modal-box h3 {
    margin: 0 0 6px;
    font-size: 1.2rem;
    color: #10597F;
}
.contacto-modal-box .contacto-intro {
    margin: 0 0 16px;
    color: #5a6b75;
    font-size: .92rem;
}
.contacto-modal-box .mc-row {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}
.contacto-modal-box .mc-row input { flex: 1 1 200px; }
.contacto-modal-box input[type="text"],
.contacto-modal-box input[type="email"],
.contacto-modal-box textarea {
    width: 100%;
    padding: 10px 12px;
    margin-bottom: 12px;
    border: 1px solid #cdd9e2;
    border-radius: 8px;
    font: inherit;
    box-sizing: border-box;
}
.contacto-modal-box textarea { resize: vertical; }
.contacto-modal-box button[type="submit"] {
    border: 0;
    padding: 10px 26px;
    border-radius: 999px;
    font-weight: 600;
    cursor: pointer;
}
.contacto-modal-box .contacto-msg {
    margin: 0 0 14px;
    padding: 10px 14px;
    border-radius: 8px;
    font-size: .92rem;
}
.contacto-modal-box .contacto-msg.ok  { background: #e6f6ec; color: #2e7d32; }
.contacto-modal-box .contacto-msg.err { background: #fdecea; color: #c0392b; }
.contacto-modal-box .mc-hp {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}
/* CONTACTO DOCENTE END */

@media screen and (max-width: 1360px) {
    #slidewrap {
        width: 87%;
    }
}

@media screen and (max-width: 991px) {

    #twocol {
        flex-direction: column;
    }

    #content_left, #content_right {
        width: 100%;
    }

    .mid {
        width: 96%;
    }

    #nav {
        display: none;
    }

    a.menutoggle {
        display: flex;
    }

    .academicwrap {
        justify-content: center;
    }

    .slide .description {
        margin: 0;
    }

    .academiccontent img {
        max-width: 100%;
    }

}


@media screen and (max-width: 768px) {

    .peoplecontainer {
        flex-direction: column;
    }

    .peoplewrap {
        justify-content: space-around;
    }

    .colpd + .colpd {
        padding-left: 0px;
    }

    #mainhome, #newswrap, #flexcenter, #flexse, #flexsb, .academicwrapdetail {
        flex-direction: column;
    }

    #slideshowwrap {
        height: 400px;
        text-align: center;
        width: 100%;
        background: none;
    }

    #slidewrap, .slide {
        height: 400px;
        text-align: center;
        width: 400px;
    }

    .slide > div:first-child {
        height: 25%;
        padding: 10px 0 0 0;
        width: 100%;
        margin: 0;
    }

    .slide > div:first-child > div {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
    }

    .slide > div:first-child > div > span, .slide .description {
        display: none;
    }

    .slide > div:first-child > div > h2 {
        color: #111;
        margin: 0;
        font-size: 16px;
        width: 80%;
    }


    .slide > div:last-child {
        height: auto;
        width: 100%;
        margin: 0;
    }

    .slide img {
        float: none;
        height: 100%;
        width: 100%;
        object-fit: contain;
    }


    .detail .newspost {
        height: calc(50px + 12vw);
        margin-left: 0;
        margin-right: 0;
    }

    .col1, .col2, .col3, .col4, .col5, .col6, .col7, .col8, .col9, .col10, .col11, .col12 {
        margin: 10px 0;
        width: 100%;
    }

    footer .logos a {
        flex-direction: column;
    }
}


@media screen and (max-width: 480px) {

    #slideshowwrap, #slidewrap, .slide {
        height: 320px;
    }

    #logo p {
        font-size: 12px;
        margin-left: 5px;
    }

    #social {
        max-width: 120px;
    }

    .lang {
        width: 100%;
        margin-bottom: 15px
    }

    .slick-next {
        right: -40px;
    }

    .slick-prev {
        left: -40px;
    }

    .slide > div:first-child > div > h2 {
        width: 100%;
        font-size: 14px;
    }

    #slidewrap {
        width: 76%;
    }

    footer .logos a {
        margin: 0;
    }

    footer .logos a img {
        width: 60px;
    }

}

/* ============================================================
   Home: tres columnas de "próximos" debajo del slider
   (seminarios / concursos / extensión). Estilo compacto basado
   en el bloque de eventos de la página de seminarios.
   ============================================================ */
/* Banda de seccion: fondo distinto + sombra interior arriba para separarla
   del slider (sin texto adicional, solo color y sombra). */
#home-cols { background: #eef2f6; padding: 40px 0 46px; box-shadow: inset 0 9px 16px -10px rgba(31,41,55,.28); }
#home-cols .hc-grid { display: flex; gap: 24px; flex-wrap: wrap; }
/* Cada columna es una tarjeta blanca con sombra. */
#home-cols .hc-col { flex: 1 1 0; min-width: 260px; background: #fff; border-radius: 12px; box-shadow: 0 6px 20px rgba(31,41,55,.10); padding: 18px 20px 20px; }
#home-cols .hc-head { display: flex; align-items: center; gap: 9px; border-bottom: 2px solid #75aadb; padding-bottom: 8px; margin-bottom: 10px; }
#home-cols .hc-head .hc-ic { font-size: 22px; line-height: 1; }
#home-cols .hc-head h2 { font-size: 16px; margin: 0; color: #10597F; font-weight: 600; line-height: 1.25; }
#home-cols .hc-ev { display: flex; gap: 11px; align-items: flex-start; padding: 9px 6px; border-bottom: 1px solid #e7ebef; text-decoration: none; color: #333; transition: background .12s; }
#home-cols .hc-ev:hover { background: #f3f8fd; }
#home-cols .hc-ev:last-child { border-bottom: 0; }
#home-cols .hc-date { flex: 0 0 auto; width: 46px; text-align: center; background: #eaf2fb; border-radius: 7px; padding: 5px 2px; color: #10597F; line-height: 1.05; }
#home-cols .hc-date b { display: block; font-size: 18px; font-weight: 700; }
#home-cols .hc-date i { display: block; font-size: 10px; font-style: normal; text-transform: uppercase; letter-spacing: .02em; color: #5a7f99; }
#home-cols .hc-date--none { display: flex; align-items: center; justify-content: center; color: #9bb3c4; font-size: 18px; }
#home-cols .hc-body { min-width: 0; }
#home-cols .hc-ttl { display: block; font-size: 13.5px; font-weight: 600; line-height: 1.3; color: #1f2937; }
#home-cols .hc-meta { display: block; font-size: 12px; color: #6b7280; margin-top: 2px; }
/* Etiqueta con la serie de seminario a la que pertenece la reunión. */
#home-cols .hc-serie { display: block; width: fit-content; margin: 0 auto 3px 0; font-size: 11px; font-weight: 600; line-height: 1.25; color: #3f7cbb; background: rgba(63, 124, 187, 0.1); border-radius: 6px; padding: 2px 8px; }
#home-cols .hc-who { display: block; }
#home-cols .hc-empty { color: #888; font-size: 13px; padding: 8px 6px; }
#home-cols .hc-all { display: inline-block; margin-top: 10px; font-size: 13px; color: #3f7cbb; font-weight: 600; text-decoration: none; }
#home-cols .hc-all:hover { text-decoration: underline; }
/* Club de Go: reunión recurrente, última del listado y separada por una línea más gruesa. */
#home-cols .hc-go { margin-top: 12px; padding-top: 12px; border-top: 3px solid #75aadb; }
/* Sub-sección colgante dentro de una columna (Vinculación bajo Seminarios). */
#home-cols .hc-sub { margin-top: 14px; padding-top: 12px; border-top: 3px solid #75aadb; }
#home-cols .hc-sub-head { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
#home-cols .hc-sub-head .hc-ic { font-size: 18px; line-height: 1; }
#home-cols .hc-sub-head h3 { font-size: 14px; margin: 0; color: #10597F; font-weight: 600; line-height: 1.25; }
/* Guiño del 24 de junio (cumple de Messi): dedicatoria dentro del ítem del Club de Go. */
#home-cols .hc-bday {
    display: flex; align-items: center; gap: 6px;
    margin-top: 3px;
    font-size: 11.5px; font-style: italic; color: #8a97a3;
}
#home-cols .hc-bday .hc-flag { flex: 0 0 auto; border-radius: 2px; box-shadow: 0 0 0 .5px rgba(0,0,0,.08); }
@media (max-width: 820px) {
    #home-cols .hc-grid { flex-direction: column; gap: 26px; }
}

/* ============================================================
   Home: pilares (tarjetas Docencia / Investigación / Extensión / Vinculación)
   Reemplazan a los viejos .buttonhome azules planos.
   ============================================================ */
#homewrap { box-shadow: 0 -6px 12px rgba(0, 0, 0, .075); }
.phome-grid {
    width: 96%; max-width: 1200px; margin: 0 auto;
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px;
    padding: 40px 0 44px;
}
.phome-card {
    position: relative; display: flex; flex-direction: column; align-items: flex-start;
    background: #fff; border: 1px solid #e9eef3; border-top: 4px solid var(--accent, #10597F);
    border-radius: 14px; padding: 22px 20px 20px; text-decoration: none;
    box-shadow: 0 6px 20px rgba(31, 41, 55, .08);
    transition: transform .16s ease, box-shadow .16s ease;
}
.phome-card:hover { transform: translateY(-5px); box-shadow: 0 14px 30px rgba(31, 41, 55, .16); }
.phome-ic {
    display: inline-flex; align-items: center; justify-content: center;
    width: 84px; height: 84px; border-radius: 16px; margin-bottom: 16px;
    color: var(--accent, #10597F);
    background: #f1f5f9;
    background: color-mix(in srgb, var(--accent, #10597F) 12%, #fff);
}
.phome-ic svg { width: 50px; height: 50px; stroke-width: 1.6; }
.phome-ic img { width: 56px; height: 56px; object-fit: contain; }
.phome-card h2 { margin: 0 0 6px; font-size: 17px; font-weight: 700; color: #1f2937; text-transform: none; }
.phome-desc { margin: 0; font-size: 13px; color: #6b7280; line-height: 1.4; }
.phome-go {
    position: absolute; right: 18px; bottom: 16px;
    width: 30px; height: 30px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 16px; line-height: 1; color: var(--accent, #10597F);
    background: #f1f5f9;
    background: color-mix(in srgb, var(--accent, #10597F) 10%, #fff);
    transition: background .16s ease, color .16s ease, transform .16s ease;
}
.phome-card:hover .phome-go { background: var(--accent, #10597F); color: #fff; transform: translateX(3px); }
@media (max-width: 980px) { .phome-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .phome-grid { grid-template-columns: 1fr; } }

/* ============================================================
   Home: franja "El IC en los medios" (logos de prensa)
   ============================================================ */
#home-media { background: #fff; padding: 34px 0 44px; }
#home-media .hm-head {
    display: flex; align-items: baseline; justify-content: space-between;
    border-bottom: 2px solid #75aadb; padding-bottom: 8px; margin-bottom: 18px;
}
#home-media .hm-head h2 { margin: 0; font-size: 18px; color: #10597F; font-weight: 700; }
#home-media .hm-all { font-size: 13px; color: #3f7cbb; font-weight: 600; text-decoration: none; }
#home-media .hm-all:hover { text-decoration: underline; }
/* Carrusel: auto-scroll + flechas + arrastre (manejado por JS, ver home-media.php).
   El viewport tiene el ancho fijo de .mid y la máscara difumina los bordes. */
#home-media .hm-viewport { position: relative; }
#home-media .hm-strip {
    overflow: hidden; padding: 4px 0 6px; cursor: grab;
    touch-action: pan-y; user-select: none; -webkit-user-select: none;
    -webkit-mask-image: linear-gradient(to right, transparent 0, #000 6%, #000 94%, transparent 100%);
            mask-image: linear-gradient(to right, transparent 0, #000 6%, #000 94%, transparent 100%);
}
#home-media .hm-strip.hm-grabbing { cursor: grabbing; }
#home-media .hm-track { display: flex; width: max-content; }
#home-media .hm-item { flex: 0 0 auto; width: 230px; margin-right: 22px; text-decoration: none; text-align: center; }
#home-media .hm-item img { -webkit-user-drag: none; user-drag: none; }
/* Flechas de navegación, sobre los bordes difuminados. */
#home-media .hm-nav {
    position: absolute; top: 50%; transform: translateY(-50%); z-index: 2;
    width: 38px; height: 38px; border-radius: 50%; border: 1px solid #e0e6ec;
    background: #fff; color: #10597F; font-size: 22px; line-height: 1; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 3px 12px rgba(31, 41, 55, .16);
    transition: background .15s ease, color .15s ease;
}
#home-media .hm-nav:hover { background: #10597F; color: #fff; }
#home-media .hm-prev { left: 0; }
#home-media .hm-next { right: 0; }
#home-media .hm-logo {
    display: flex; align-items: center; justify-content: center;
    width: 230px; height: 140px; padding: 16px; box-sizing: border-box;
    background: #fff; border: 1px solid #e7ebef; border-radius: 10px;
    box-shadow: 0 3px 10px rgba(31, 41, 55, .06);
    transition: box-shadow .15s ease, transform .15s ease;
}
#home-media .hm-logo img {
    max-width: 100%; max-height: 100%; object-fit: contain;
    filter: grayscale(100%); opacity: .78; transition: filter .15s ease, opacity .15s ease;
}
#home-media .hm-item:hover .hm-logo { box-shadow: 0 8px 20px rgba(31, 41, 55, .14); transform: translateY(-3px); }
#home-media .hm-item:hover .hm-logo img { filter: none; opacity: 1; }
#home-media .hm-cap { display: block; margin-top: 4px; font-size: 12px; color: #5a6b7a; line-height: 1.25; }
/* Fragmento del titular (arriba del renglón medio · fecha), recortado a 2 líneas
   con puntos suspensivos. */
#home-media .hm-title {
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2;
    overflow: hidden; text-overflow: ellipsis;
    margin-top: 10px; font-size: 13px; color: #1f2d3a; font-weight: 600; line-height: 1.3;
}

/* ============================================================
   Home: franja "Docencia" (bajada institucional + materias del cuatrimestre)
   ============================================================ */
#home-docencia { --dc-accent: #2f73b8; background: #f4f8fc; padding: 44px 0 50px; }
#home-docencia .dc-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: 44px; align-items: start;
}
#home-docencia .dc-intro h2 {
    margin: 0 0 14px; font-size: 24px; color: #10597F; font-weight: 700;
    position: relative; padding-bottom: 10px;
}
#home-docencia .dc-intro h2::after {
    content: ''; position: absolute; left: 0; bottom: 0; width: 54px; height: 3px;
    background: var(--dc-accent); border-radius: 2px;
}
#home-docencia .dc-intro p { margin: 0; font-size: 15px; line-height: 1.65; color: #41505e; }

#home-docencia .dc-panel {
    background: #fff; border: 1px solid #e9eef3; border-top: 4px solid var(--dc-accent);
    border-radius: 14px; padding: 22px 24px 18px; box-shadow: 0 6px 20px rgba(31, 41, 55, .08);
    position: relative;
}
#home-docencia .dc-panel-head { border-bottom: 2px solid #75aadb; padding-bottom: 10px; margin-bottom: 12px; }
#home-docencia .dc-panel-head h3 { margin: 0; font-size: 17px; color: #10597F; font-weight: 700; }
#home-docencia .dc-term { display: block; margin-top: 3px; font-size: 12.5px; color: #6b7280; }

#home-docencia .dc-list { list-style: none; margin: 0; padding: 0; }
#home-docencia .dc-item {
    padding: 5px 0; font-size: 12px; line-height: 1.9; color: #1f2937;
}
/* Chips de carrera inline, antes de cada nombre (no en columna). El nivel
   grado/posgrado se deduce de la carrera, por eso ya no se muestra. */
#home-docencia .dc-chip {
    display: inline-block; font-size: 9px; font-weight: 700; text-transform: uppercase;
    letter-spacing: .03em; padding: 1px 6px; border-radius: 999px; line-height: 1.5;
    vertical-align: 1px; margin-right: 3px; white-space: nowrap;
}
/* Color por defecto (carreras sin color propio) y uno distinto por carrera_id. */
#home-docencia .dc-chip--carrera { background: #eef0f2; color: #556070; }
#home-docencia .dc-chip--c1 { background: #e6f0fa; color: #2f73b8; } /* LCD */
#home-docencia .dc-chip--c2 { background: #e7f4ec; color: #2e7d55; } /* Matemática */
#home-docencia .dc-chip--c3 { background: #f8ece1; color: #b5651f; } /* Química */
#home-docencia .dc-chip--c4 { background: #efe9f7; color: #7a52b3; } /* DOC */
#home-docencia .dc-chip--c5 { background: #e3f1f1; color: #268080; } /* PROF */
#home-docencia .dc-name { font-size: 12px; color: #1f2937; }
#home-docencia .dc-opt {
    font-size: 9.5px; font-style: italic; color: #9ca3af; margin-left: 4px;
}

#home-docencia .dc-foot { display: flex; justify-content: flex-end; margin-top: 16px; }
#home-docencia .dc-go {
    width: 38px; height: 38px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 18px; line-height: 1; color: var(--dc-accent); text-decoration: none;
    background: color-mix(in srgb, var(--dc-accent) 12%, #fff);
    transition: background .16s ease, color .16s ease, transform .16s ease;
}
#home-docencia .dc-go:hover { background: var(--dc-accent); color: #fff; transform: translateX(3px); }

@media (max-width: 860px) {
    #home-docencia .dc-grid { grid-template-columns: 1fr; gap: 30px; }
}

/* ============================================================
   Noticias: paginación del listado + título de la barra lateral
   ============================================================ */
.news-pagination { display: flex; justify-content: center; align-items: center; gap: 6px; flex-wrap: wrap; margin: 30px 0 12px; }
.news-pagination .np-link { display: inline-flex; align-items: center; justify-content: center; min-width: 38px; height: 38px; padding: 0 10px; border: 1px solid #d8dee6; border-radius: 8px; color: #10597F; font-weight: 600; text-decoration: none; background: #fff; transition: background .12s, border-color .12s, color .12s; }
.news-pagination a.np-link:hover { background: #eaf2fb; border-color: #75aadb; text-decoration: none; }
.news-pagination .np-link.is-current { background: #75aadb; border-color: #75aadb; color: #fff; }
.news-pagination .np-link.is-disabled { color: #c2c7d0; background: #f5f7fa; pointer-events: none; }
.news-pagination .np-arrow { font-size: 20px; font-weight: 700; }
.news-pagination .np-gap { padding: 0 4px; color: #9bb3c4; }

/* NEWS — volver al listado (al pie del detalle) */
.news-back { margin: 36px 0 10px; }
.news-back-link { display: inline-flex; align-items: center; gap: 6px; padding: 10px 20px; border: 1px solid #d8dee6; border-radius: 999px; color: #10597F; font-weight: 600; text-decoration: none; background: #fff; transition: background .15s, border-color .15s, color .15s; }
.news-back-link span { font-size: 20px; line-height: 1; transition: transform .15s; }
.news-back-link:hover { background: #10597F; border-color: #10597F; color: #fff; text-decoration: none; }
.news-back-link:hover span { transform: translateX(-3px); }

/* NEWS SEARCH */
.news-search { display: flex; justify-content: center; gap: 8px; margin: 4px 0 22px; flex-wrap: wrap; }
.news-search input[type="search"] { flex: 1 1 320px; max-width: 420px; height: 44px; padding: 0 16px; border: 1px solid #d8dee6; border-radius: 8px; font-size: 16px; color: #222; background: #fff; box-sizing: border-box; }
.news-search input[type="search"]:focus { outline: none; border-color: #75aadb; box-shadow: 0 0 0 3px rgba(117,170,219,.25); }
.news-search button { height: 44px; padding: 0 24px; border: none; border-radius: 8px; background: #75aadb; color: #fff; font-weight: 600; font-size: 15px; cursor: pointer; transition: background .12s; }
.news-search button:hover { background: #10597F; }
.news-search-info { text-align: center; color: #555; margin: 0 0 18px; }
.news-search-info a { color: #10597F; }

.news-sidebar-title { font-size: 18px; color: #10597F; margin: 0 0 14px; padding-bottom: 8px; border-bottom: 2px solid #75aadb; }

/* ===== IC en los medios: listado y detalle ===== */
/* Filas de altura mínima que crecen según el contenido, para no recortar títulos
   largos (los títulos se muestran completos, ocupando las líneas que hagan falta). */
.academicwrap.mediawrap { grid-auto-rows: minmax(320px, auto); align-items: stretch; }
.mediaitem { justify-content: flex-start; gap: 12px; text-decoration: none; transition: border-color .15s, box-shadow .15s; }
.mediaitem:hover { border-color: #75aadb; box-shadow: 0 6px 18px rgba(16,89,127,.10); text-decoration: none; }
.mediaitem .academicinfo.image { height: 176px; flex: 0 0 auto; object-fit: cover; object-position: center; }
.mediaitem .academictitle { font-size: .95em; line-height: 1.3; }
.mediameta { display: flex; flex-direction: column; gap: 2px; margin-top: auto; font-size: .8em; }
.mediameta .mediamedio { color: #10597F; font-weight: 700; }
.mediameta .mediadate { color: #777; }

.mediadetail { max-width: 760px; margin: 0 auto; padding: 10px 0 40px; }
.mediadetail-back { margin: 0 0 18px; font-size: .9em; }
.mediadetail-title { font-size: 1.5em; color: #222; margin: 0 0 10px; line-height: 1.25; }
.mediadetail-meta { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-bottom: 18px; font-size: .95em; }
.mediadetail-meta .mediamedio { color: #10597F; font-weight: 700; }
.mediadetail-meta .mediadate { color: #777; }
.mediadetail-image { display: block; width: 100%; max-width: 550px; height: auto; margin: 0 0 22px; }
.mediadetail-descr { font-size: 1em; line-height: 1.6; color: #333; margin-bottom: 26px; }
.mediadetail-descr img { max-width: 100%; height: auto; }
.mediadetail-link a { display: inline-block; padding: 11px 20px; background: #75aadb; color: #fff; border-radius: 8px; font-weight: 600; text-decoration: none; transition: background .12s; }
.mediadetail-link a:hover { background: #10597F; text-decoration: none; }

/* ===== Grupos de investigación: listado y ficha ===== */
/* Paleta del sitio: #10597F (azul oscuro) y #75aadb (azul claro). */

.rg-empty { color: #666; padding: 20px 0 40px; }

/* --- Listado --- */
.rg-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; padding: 10px 0 44px; }
.rg-card { display: flex; flex-direction: column; background: #fff; border: 1px solid #e9eef3;
           border-top: 4px solid #10597F; border-radius: 14px; overflow: hidden; text-decoration: none;
           box-shadow: 0 6px 20px rgba(31,41,55,.08); transition: transform .16s ease, box-shadow .16s ease; }
.rg-card:hover { transform: translateY(-5px); box-shadow: 0 14px 30px rgba(31,41,55,.16); text-decoration: none; }
.rg-card-img { height: 160px; background: #eef4f9; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.rg-card-img img { width: 100%; height: 100%; object-fit: cover; }
.rg-card-initials { font-size: 2.4em; font-weight: 800; color: #10597F; opacity: .45; letter-spacing: .04em; text-transform: uppercase; }
.rg-card-body { display: flex; flex-direction: column; gap: 8px; padding: 18px 20px 20px; flex: 1 1 auto; }
.rg-card-title { font-size: 1.05em; line-height: 1.3; color: #10597F; margin: 0; }
.rg-card-acronym { font-size: .78em; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #75aadb; }
.rg-card-desc { font-size: .9em; line-height: 1.5; color: #444; margin: 0; }
.rg-card-go { margin-top: auto; padding-top: 6px; font-size: .85em; font-weight: 600; color: #10597F; }
.rg-tag-ext { display: inline-block; margin-left: 8px; padding: 2px 8px; border-radius: 10px; background: #eef4f9;
              color: #33697f; font-style: normal; font-size: .85em; font-weight: 600; }

/* --- Ficha --- */
.rg-detail { padding-bottom: 40px; }
.rg-head { display: flex; gap: 28px; align-items: flex-start; padding: 6px 0 26px; border-bottom: 2px solid #eef2f6; margin-bottom: 26px; }
.rg-head-img { flex: 0 0 280px; border-radius: 12px; overflow: hidden; background: #eef4f9; }
.rg-head-img img { display: block; width: 100%; height: auto; }
.rg-head-info { flex: 1 1 auto; min-width: 0; }
.rg-head-title { font-size: 1.6em; line-height: 1.2; color: #10597F; margin: 0 0 6px; }
.rg-head-acronym { font-size: .82em; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: #75aadb; margin-bottom: 12px; }
.rg-head-summary { font-size: 1.02em; line-height: 1.6; color: #333; }
.rg-head-summary p:last-child { margin-bottom: 0; }

.rg-extbtn-wrap { margin: 20px 0 0; }
.rg-extbtn { display: inline-flex; align-items: center; gap: 10px; padding: 13px 24px; background: #10597F; color: #fff;
             border-radius: 9px; font-weight: 600; font-size: 1em; text-decoration: none; transition: background .12s, transform .12s; }
.rg-extbtn:hover { background: #75aadb; color: #fff; text-decoration: none; transform: translateY(-1px); }
.rg-extbtn-arrow { font-size: 1.15em; line-height: 1; }

.rg-section { margin-bottom: 34px; }
.rg-section-title { font-size: 1.15em; color: #10597F; margin: 0 0 14px; padding-bottom: 8px; border-bottom: 2px solid #75aadb; }
.rg-section-text { font-size: 1em; line-height: 1.65; color: #333; }
.rg-section-text img { max-width: 100%; height: auto; }
.rg-section-text ul { margin: 0 0 12px 18px; list-style: disc; }
.rg-section-text li { margin-bottom: 5px; }

/* Integrantes */
.rg-members { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px 20px; margin-top: 14px; }
.rg-member { display: flex; gap: 12px; align-items: center; }
.rg-member-photo { flex: 0 0 56px; width: 56px; height: 56px; border-radius: 50%; overflow: hidden; background: #eef4f9;
                   display: flex; align-items: center; justify-content: center; }
.rg-member-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.rg-member-initials { font-size: 1.3em; font-weight: 700; color: #10597F; opacity: .5; }
.rg-member-info { display: flex; flex-direction: column; min-width: 0; }
.rg-member-name { font-weight: 600; font-size: .95em; color: #222; }
.rg-member-name a { color: #10597F; }
.rg-member-role { font-size: .82em; color: #555; }
.rg-member-aff { font-size: .8em; color: #888; }

/* Publicaciones */
.rg-pubs { margin-top: 14px; }
.rg-pub-year { margin-bottom: 20px; }
.rg-pub-year h3 { font-size: .95em; font-weight: 700; color: #75aadb; margin: 0 0 8px; }
.rg-pub-list { margin: 0 0 0 20px; padding: 0; list-style: decimal; }
.rg-pub-list li { margin-bottom: 9px; font-size: .92em; line-height: 1.5; color: #333; }
.rg-pub-authors { color: #444; }
.rg-pub-title { color: #222; }
.rg-pub-link { display: inline-block; margin-left: 2px; font-size: .88em; font-weight: 600; color: #10597F; }

/* Eventos */
.rg-events { margin: 14px 0 0; padding: 0; list-style: none; }
.rg-event { display: flex; flex-wrap: wrap; gap: 2px 14px; align-items: baseline; padding: 9px 0; border-bottom: 1px solid #eef2f6; }
.rg-event:last-child { border-bottom: none; }
.rg-event-name { font-size: .95em; font-weight: 600; color: #222; }
.rg-event-name a { color: #10597F; }
.rg-event-meta { font-size: .85em; color: #777; }
.rg-event.is-past { opacity: .6; }

.rg-back { margin-top: 28px; font-size: .9em; }
.rg-back a { color: #10597F; }

@media (max-width: 980px) {
    .rg-grid { grid-template-columns: repeat(2, 1fr); }
    .rg-members { grid-template-columns: repeat(2, 1fr); }
    .rg-head { gap: 20px; }
    .rg-head-img { flex-basis: 220px; }
}
@media (max-width: 640px) {
    .rg-grid { grid-template-columns: 1fr; }
    .rg-members { grid-template-columns: 1fr; }
    .rg-head { flex-direction: column; }
    .rg-head-img { flex-basis: auto; width: 100%; max-width: 360px; }
    .rg-extbtn { width: 100%; justify-content: center; }
}

/* Líneas de investigación (se arman desde research_group_lines) */
.rg-lines { margin: 14px 0 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px 22px; }
.rg-lines li { position: relative; padding: 7px 0 7px 20px; font-size: .97em; line-height: 1.45; color: #333; border-bottom: 1px solid #eef2f6; }
.rg-lines li::before { content: ""; position: absolute; left: 2px; top: 14px; width: 8px; height: 8px; border-radius: 50%; background: #75aadb; }
@media (max-width: 640px) { .rg-lines { grid-template-columns: 1fr; } }
