
.column-header {
    height: 100px;
    background-color: black;
    padding: 15px;
    text-transform: uppercase;
    font-weight: 600;
    font-size: 20px;
    line-height: 1.15;
    display: flex;
    align-items: center;
    justify-content: center;
}

.w3 .column-header {
    font-size: 18px;
}

.column-header span {
    vertical-align: middle;
}

.cell-header span {
    font-size: 16px;
    color: rgba(255, 255, 255, 0.7);
    font-weight: 500;
}

.height-1 .cell-header span {
}

.timetable-column h2 {
    font-size: 16px;
    font-weight: 500;
    text-transform: none;
}

.timetable-column .timetable-cell.height-1 h2 {
    display: inline-block;
    margin-right: 3px;
    margin-bottom: 0px;
}

.timetable-column .timetable-cell.height-2 h2 {
    margin-bottom: 1px;
}

.timetable-column.main h2 {
    font-size: 18px;
    font-weight: 500; /*text-transform:uppercase;*/
}

.keynote, .keynote-stream {
    display: flex;
    align-items: center;
    justify-content: center;
}

.keynote .cell-header h2 {
    font-size: 40px;
    font-weight: 600;
}


.timetable-cell {
    padding: 15px;
    padding-top: 18px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
}

.height-1.timetable-cell { /*padding-top:13px;*/
}

.timetable-column {
    border-right: 2px solid black;
}

.has-content {
    box-shadow: 0px -1px 0px rgba(255, 255, 255, 0.15);
}

.timetable-column a:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: -2px;
}

.main .has-content, .main .column-header {
    background-color: var(--color-cobalt-bright);
}

.cs .has-content, .cs .column-header {
    background-color: var(--color-cobalt);
}

.ws .has-content, .ws .column-header {
    background-color: var(--color-cobalt-deep);
}

/*.w2 .has-content, .w2 .column-header{ background-color: rgba(0, 149, 255, 0.5); }
.w3 .has-content, .w3 .column-header{ background-color: rgba(0, 15, 81, 0.48); }*/

.empty {
    height: 50px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    background-color: rgba(15, 15, 15, 0.9);
}

.time-label-slot {
    height: 50px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.15);
    background-color: rgba(0, 0, 0, 1);
    padding: 15px;
}

.time-label-slot.has-time-label {
    border-top: 1px solid rgba(255, 255, 255, 0.5);
}

.mobile-date {
    display: none;
}

.mobile-day-label {
    display: none;
}

@media only screen and (max-width: 790px) {
    /* Override Foundation grid to stack columns at 790px instead of 640px */
    .grid-x > .timetable-column.cell[class*="medium-"] {
        width: 100%;
        flex: 0 0 100%;
    }

    .timetable-column {
        border-right: none;
    }

    .empty {
        display: none;
    }

    .has-content {
        height: auto !important;
        min-height: 100px;
        display: flex;
    }

    .time-column {
        display: none;
    }

    .mobile-date {
        display: block;
        float: left;
        height: 100%;
        background-color: black;
        padding: 20px;
        flex: 0 0 auto;
        position: relative;
        color: white;
    }

    .cell-header {
        padding-left: 10px;
        padding-right: 0px;
        flex: 1 1 auto;
    }

    .mobile-day-label {
        display: block;
        position: absolute;
        top: -6px;
        left: -9px;
        font-size: 12px;
        z-index: 1;
        color: var(--color-cobalt-deep);
        background-color: var(--color-accent);
        border-radius: 50%;
        padding: 3px 5px;
    }
}

.height-1 {
    height: 50px;
}

.height-2 {
    height: 100px;
}

.height-3 {
    height: 150px;
}

.height-4 {
    height: 200px;
}

.height-5 {
    height: 250px;
}

.height-6 {
    height: 300px;
}

.height-7 {
    height: 350px;
}

.height-8 {
    height: 400px;
}

.height-9 {
    height: 450px;
}

.height-10 {
    height: 500px;
}

.height-11 {
    height: 550px;
}

.height-12 {
    height: 600px;
}

.height-13 {
    height: 650px;
}

.height-14 {
    height: 700px;
}

.height-15 {
    height: 750px;
}

.height-16 {
    height: 800px;
}

.height-28 {
    height: 1400px;
}

@media only screen and (max-width: 1300px) {
    .empty {
        height: 75px;
    }

    .time-label-slot {
        height: 75px;
    }

    .timetable-column h2 {
        font-size: 14px;
    }

    .height-1 {
        height: 75px;
    }

    .height-2 {
        height: 150px;
    }

    .height-3 {
        height: 225px;
    }

    .height-4 {
        height: 300px;
    }

    .height-5 {
        height: 375px;
    }

    .height-6 {
        height: 450px;
    }

    .height-7 {
        height: 525px;
    }

    .height-8 {
        height: 600px;
    }

    .height-9 {
        height: 675px;
    }

    .height-10 {
        height: 750px;
    }

    .height-11 {
        height: 825px;
    }

    .height-12 {
        height: 900px;
    }

    .height-13 {
        height: 975px;
    }

    .height-14 {
        height: 1050px;
    }

    .height-15 {
        height: 1125px;
    }

    .height-16 {
        height: 1200px;
    }

    .height-28 {
        height: 2100px;
    }
}

/* Sticky program navigation */
.program-tabs {
    position: sticky;
    top: 68px;
    z-index: 100;
    display: flex;
    justify-content: center;
    align-items: stretch;
    background-color: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(10px);
    margin: 0 0 40px 0;
    padding: 0;
    width: 100vw;
    margin-left: calc(-50vw + 50%);
    min-height: 55px;
}

.program-tabs a {
    padding: 0 50px;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
    font-size: 16px;
    font-weight: 500;
    letter-spacing: 0.05em;
    color: white;
    border: none;
    transition: background-color 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
}

.program-tabs a:hover {
    color: white;
    background-color: rgba(255, 255, 255, 0.1);
    border: none;
}

.program-tabs a.active {
    color: var(--color-cobalt-deep);
    background-color: var(--color-accent);
}

.program-tabs a:focus-visible {
    outline: 2px solid white;
    outline-offset: -2px;
}

/* Section scroll offset */
.program-section {
    scroll-margin-top: 140px;
}

/* When hamburger menu is visible */
@media screen and (max-width: 1210px) {
    .program-tabs {
        top: 0;
        padding-right: 55px;
        height: 55px;
        align-items: stretch;
    }

    .program-tabs a {
        flex: 1;
        padding: 0 20px;
        font-size: 14px;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .program-section {
        scroll-margin-top: 75px;
    }
}
