body, html {
    font-family: "Hubot Sans", sans-serif;
    background-color: #050505;
}

:root {
    --accent-blue: #0B00DA;
    --accent-green: #B1FA15;
    --bs-gutter-x: 3rem;

    --c-blue:#5aa6da;       /* C1 */
    --c-pink:#f0b7b7;       /* C2/C6 */
    --c-green:#8ac78a;      /* C3/C5 */
    --c-purple:#9a90c8;     /* C4/C7 */
    --c-yellow:#ead17a;     /* Charlas/Posgrado */
    --c-gray:#dfe3e8;       /* Posters/otros */
}

/* DESKTOP GRID (md and up) */
.schedule-grid{
    display:grid;
    grid-template-columns: 130px repeat(5, 1fr);
    grid-auto-rows: 70px;               /* each timeslot row */
    gap:6px;
    align-items: stretch;
}
.grid-header{
    grid-column: 1 / -1;
    text-align:center;
    font-weight:700;
    font-size:1.15rem;
    padding:6px 0;
}
.cell{
    background:#111;
    border:1px solid #222;
    border-radius:.5rem;
    padding:.5rem;
    display:flex;
    justify-content:center;
    align-items:center;
    text-align:center;
    font-weight:600;
}
.time {
    background: #393939;
    font-weight: 700;
    color: #c7c7c7;
}
.break{ background: #a4a4a4; border:1px dashed #333; font-weight:700; text-transform:lowercase; }

/* Color helpers */
.c1{ background:var(--c-blue); color:#0b2230; }
.c26{ background:var(--c-pink); color:#2b0d0d; }
.c35{ background:var(--c-green); color:#0d2b0d; }
.c47{ background:var(--c-purple); color:#120e24; }
.charla{ background:var(--c-yellow); color:#332b00; }
.neutral{ background:var(--c-gray); color:#1b1f24; }

/* Mobile tweaks: reduce cell padding on small screens just in case */
@media (max-width: 767.98px){
    .legend dd{ margin-bottom:.75rem; }
}



.row>* {
    padding-right: calc(3.6rem * .5);
    padding-left: calc(3.6rem * .5);
 }

#schedule .nav-link {
    color: var(--accent-blue);
}

#schedule .nav-tabs .nav-item.show .nav-link, .nav-tabs .nav-link.active {
    color: #fff!important;
    background-color: #000000;
    padding: 8px 40px;
}

.navbar-nav .nav-link.active, .navbar-nav .nav-link.show {
    color: #A6CB36;
    font-weight: 500;
}

.bg-dark {
    --bs-bg-opacity: 1;
    background-color: rgb(23 25 41) !important;
}

.hero-image {
    position: relative;
    width: 100%;
    height: auto;
    overflow: hidden;
}

.hero-image picture,
.hero-image img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover; /* or `contain` if you want to avoid cropping */
}

#infographic {
    padding: 60px 0;
    background-color: #050505;
}

.info-icon {
    text-align: center;
    margin-bottom: 16px;
}

.info-graph-title {
    font-size: 20px;
    font-weight: bold;
    line-height: 23px;
    letter-spacing: 0;
    text-align: center;
    color: var(--accent-green);
}

.info-graph-subtitle {
    font-size: 16px;
    line-height: 18px;
    letter-spacing: -0.01em;
    text-align: center;
    color: #FFFFFF;
    margin-top: 4px;
}

#intro {
    padding: 24px 0;
    background-color: #050505;
    /*
    max-width: 700px;        !* limits line length *!
    */
    margin: 0 auto;          /* centers horizontally */
    font-size: 1.125rem;     /* comfortable reading size */
    line-height: 1.7;        /* good vertical spacing */
}

#intro h1,
#intro h2,
#intro h3 {
    text-align: center;      /* center headings */
    line-height: 1.3;
    margin-bottom: 1rem;
}


#intro h1 {
    font-size: 34px;
    font-weight: 500;
    /*max-width: 600px;*/
    line-height: 42px;
    text-align: left;
    margin: 12px 0 20px 0;
    color: white;
}

.content {
    text-align: left;
    font-size: 20px;
    font-weight: 400;
    line-height: 28px;
    margin-bottom: 12px;
    color: white;
}

#cursos {
    background-color: #050505;
}

#schedule h1 {
    font-size: 32px;
    font-weight: bold;
    color: white;
}

.courses-container {
    font-size: 20px;
    color: #FFFFFF;
}

.courses-container a {
    color: var(--accent-green);
    text-decoration: underline;
}

.instructor-card {
    margin: 8px 0;
    padding: 20px;
    border-radius: 8px;
}

.avatar { width:80px; height:80px; border-radius:50%; object-fit:cover; }
/* optional sizes */
.avatar-sm{ width:48px; height:48px; }
.avatar-lg{ width:112px; height:112px; }

.instructor-card:hover {
    background-color: #333333;
}

.course {
    margin-bottom: 24px;
    padding: 24px;
}

.course:hover {
    background-color: #333333;
}

.course-title {
    font-weight: 700;
    font-size: 24px;
    color: #FFFFFF;
    margin-bottom: 8px;
    margin-top: 32px;
    max-width: 720px;
}

.instructor-line {
    color: #7a7a7a;
    max-width: 700px;
}

.professor {
    font-size: 18px;
    font-weight: 800;
    color: white;
}

.family-name {
    font-weight: 300;
}

.university {
    color: #8d8d8d;
    font-size: 18px;
}

.abstract {
    font-weight: 400;
    font-size: 16px;
    line-height: 26px;
    color: #d1d1d1;
    margin-top: 12px;
    margin-bottom: 24px;
    /*text-align: justify;*/
}

#schedule {
    padding: 70px 0;
    background-color: #050505;
}


.schedule-day {

}

.schedule-time {
    padding: 4px 16px;
    min-width: 120px;
    font-size: 14px;
}

.schedule-event {
    border-bottom: 1px solid #e9ecef;
    padding: 16px 0;
}

.schedule-talk {
    padding: 4px 16px;
}

.schedule-title {
    font-size: 16px;
    font-weight: 700;
    line-height: 21px;
    letter-spacing: 0;
    text-align: left;
    margin-bottom: 8px;
    color: #333333;
}

.schedule-magenta {
    border-left: #8336cb 4px solid;
}

.schedule-green {
    border-left: #42982c 4px solid;
}

.schedule-blue {
    border-left: #3659cb 4px solid;
}

.schedule-yellow {
    border-left: #cbbf36 4px solid;
}

.schedule-red {
    border-left: #cb3636 4px solid;
}

.schedule-grey {
    border-left: #7a7a7a 4px solid;
}


#schedule .nav-tabs .nav-item.show .nav-link, .nav-tabs .nav-link.active {
    color: #fff;
    background-color: #000000;
    padding: 8px 12px;
}

#schedule .nav-tabs .nav-link {
    padding: 8px 12px;
}

#schedule .professor {
    font-size: 18px;
    font-weight: 800;
    color: var(--accent-green);
}

#registro {
    padding: 70px 0;
    background-color: #f7f7f7;
}

.registro {
    background-color: #3E1DFF;
    color: #F0F0F0;
    padding: 20px 20px;
}

#sede {
    color: white;
}

#comites {
    padding: 70px 0;
    background-color: #050505;
    font-size: 18px;
}

#comites h1 {
    color: white;
}

.organizador {
    color: white;
}

.organizador-adscripcion {
    color: #8d8d8d;
}

.contacto {
    font-size: 22px;
    color: white;
}

.contacto-email {
    font-size: 22px;
    color: var(--accent-green);
}

#footer {
    padding: 72px 0;
    background-color: #050505;
}

.green {
    color: #A6CB36;
}

.gray {
    color: gray;
}

.white {
    color: white;
}

.sponsor {
    margin-bottom: 4rem;
}

.copyright {
    color: white;
    font-size: 12px;
    padding: 2px;
}

@media (min-width: 768px) {

    H1 {
        font-size: 36px;
    }

    .border-l {
        border-left: none;
    }

    .border-l {
        border-left: 4px solid #A6CB36;
    }

    .content {
        /*max-width: 700px;*/
        font-size: 18px;
        font-weight: 400;
        line-height: 24px;
        letter-spacing: 0;
    }

    .organizador-adscripcion {
        color: #8d8d8d;
        margin-left: 12px;
    }

    #schedule .nav-tabs .nav-item.show .nav-link, .nav-tabs .nav-link.active {
        color: #fff;
        background-color: #000000;
        padding: 8px 40px;
    }

    #schedule .nav-tabs .nav-link {
        padding: 8px 40px;
    }

    .schedule-time {
        padding: 4px 16px;
        min-width: 180px;
    }

    .schedule-title {
        font-size: 20px;
        font-weight: 700;
        line-height: 21px;
        letter-spacing: 0;
        text-align: left;
        margin-bottom: 8px;
        color: #333333;
    }

    .registro {
        background-color: #3E1DFF;
        color: #F0F0F0;
        padding: 40px 40px;
    }
}