@import url('https://fonts.googleapis.com/css2?family=Fira+Sans:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');

/* General styles */

* {
    box-sizing: border-box;
    padding: 0; margin: 0;
}
body {
    font-family: "Fira Sans", sans-serif;
    color: #2E3E4D;
    line-height: 1.5;
}

.img-superfluid {
    width: 100%;
}

h1, h2, h3, h4, h5 {
    text-transform: uppercase;
    margin-bottom: 0.5rem;
    line-height: 1.4;
    font-weight: normal
}

h1 {
    font-size: 2rem;
}
h2 {
    font-size: 2rem;
    font-weight:normal;
}

h3 {
    font-size: 1.75rem;
    font-weight:normal;
}

h4 {
    font-size: 1.5rem;
}
h5 {
    font-size: 1.25rem;
}

p {
    margin-top: 0;
    margin-bottom: 1rem;
}

a {
    color: #36404D;
}

/* Header / Menu */

header#main-header {
    background-color: #A5ECDE;
}

#main-nav { /* flex container */
    display: flex;
    margin: 0 auto;
    max-width: 1150px;
    padding: 1rem 1.5rem;
    align-items: center;
}

#booster-logo {
    width: 270px;
}

#wide-menu {
    display: flex;
}

#thin-menu {
    display: none;
}

#thin-menu[open] .main-menu {
    position: absolute;
    top: 130px;
    left: 0;
    right: 0;
    z-index: 1;
}

#thin-menu summary::marker {
    display: none;
}

#thin-menu summary::-webkit-details-marker {
    display: none;
}

#thin-menu summary {
    width: 30px;
    height: 30px;
    list-style: none;
}

.hamburger {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.hamburger div {
    border: 1px solid black;
}

.main-menu {
    display: flex;
    flex-direction: row;
    justify-content: space-around;
    list-style-type: none;
    align-items: baseline;
}

.main-menu .nav-item.current {
    font-weight: 500;
    border-bottom: 3px solid #DD9B77;
}

.main-menu .nav-item a {
    display: block;
    padding: 5px 8px;
    line-height: 40px;
    font-size: 20px;
    color: #2E3E4D;
    text-decoration: none;
}

.description img {
    width: 100%;
}

/* Footer with partners */
#sponsor-area {
    background-color: #F2F2F2;
    margin-top: 10px;
    padding: 4rem 2rem;
    text-align: center;
}

    #sponsor-area .sponsorlogos {
        width: 80%;
        margin: 0 auto;
        display: flex;
        list-style: none;
        flex-wrap: wrap;
        justify-content: space-around;
        align-items: center;
        margin-bottom: 1rem;
        
    }
        #sponsor-area .sponsorlogos li {
            flex-basis: 25%;
            margin-top: 15px;
            margin-bottom: 15px;
            padding: 0px 20px 0px 20px;
        }

footer {
    height: 350px;
    background-color: #2E3E4D;
    position: relative;
    text-align: center;
    padding-top: 100px;
}
    footer h2 {
        font-size: 34px;
        color: white;
        text-transform: none;
    }

    footer p {
        color: white;
    }

    footer a {
        color: white;
    }

/* Article styles */

article {
    padding-bottom: 3rem;
}

    article > * {
        max-width: 900px;
        margin-left: auto;
        margin-right: auto;
        padding: 0 1rem;
    }
    article .header-join, article .program-header-join {
        max-width: 100% !important;
        background: #2E3E4D;
        margin-bottom: 3rem;
    }
        article .header-join h1 {
            max-width: 900px;
            margin: 0 auto;
            padding: 1rem 1rem;
            color: white;
            font-weight: 300;
        }
        article .program-header-join h1 {
            max-width: 1200px;
            margin: 0 auto;
            padding: 1rem 1rem;
            color: white;
            font-weight: 300;
        }

        article .program-header-join ul {
            max-width: 1200px;
            margin: 0 auto;
            background: #2E3E4D;
            display: flex;
            flex-direction: row;
            justify-content: flex-start;
            list-style: none;
        }
        article .program-header-join ul li {
            margin: 0 1rem;
        }
        article .program-header-join ul li a {
            display: block;
            color: inherit;
            padding: 0.5rem 1rem;
        }
        article .program-header-join ul li {
            color: white;
        }
        article .program-header-join ul li.active {
            background: white;
            color: #2E3E4D;
        }
        article .program-header-join ul li:hover {
            background-color:#F6AB6F
           }
    article h4 {
        font-weight: 400;
    }

    /* This is done to make map have a relative height based on the width. This is done to make it responsive */
    article .map {
        position: relative;
        max-width: 900px;
        padding-bottom: 40%;
    }
        article .map iframe {
            position: absolute;
            top: 0;
            bottom: 0;
            left: 0;
            width: 100%;
            height: 100%;
            border: 0;
        }
/* Organizers styling */
#organizers {
    display:flex;
    flex-flow: row wrap;
    justify-content: space-around;
    align-items: flex-start;
    list-style: none;
}

    #organizers .organizer {
        flex-basis: 33%;
        margin-bottom: 1rem;
    }
        #organizers .organizer img {
            max-width: 200px;
        }
        #organizers .organizer .name {
            display: block;
            font-weight: 400;
        }
        #organizers .organizer .twitter-handle {
            display: block;
            font-weight: 400;
        }
/* Front styling */
.rocket {
    height: 80%;
    position: relative;
    background-color: #A5ECDE;
    background-size: 100% auto;
    background-repeat: no-repeat;
    background-position: center 100px;
    overflow: hidden;
}
    .rocket .middle-of-image {
        width: 70%;
        max-width: 900px;
        color: #2E3E4D;
        margin: auto;
        margin-bottom: 10%;
    }
        .rocket .middle-of-image h1 {
            font-size: 48px;
            font-weight: 300;
            text-align: center;
        }
        .rocket .middle-of-image .dates-location {
            margin-top: 50px;
        }
        .rocket .middle-of-image .dates-location .font-page-conference-dates {
        
            font-size: 30px;
        
        }
        .rocket .middle-of-image .dates-location .front-page-location {
            font-size: 20px;
        }
        .rocket .middle-of-image .dates-location span {
        
            display: block;
            letter-spacing: 1px;
            text-transform: uppercase;
            text-align: center;
        
        }
        .rocket .middle-of-image .dates-location {
            margin-top: 50px;
        }
    .rocket .bottom-image {
        position: absolute;
        bottom: 0;
        padding: 0 10px;
    }
        .rocket .bottom-image .img-superfluid {
            width: 100%;
            height: auto;
            display: block;
        }

.call-to-action {
    padding: 3em 0;
    background: #F2F2F2;
    text-align: center;
}

.call-to-action__link {
    font-size: 1.5rem;
    color: #E25554;
    text-decoration: underline;
    font-weight: bold;
}

.call-to-action__link:hover {
    color: #2E3E4D;
}

.imagetron-2 {
    display: flex;
    flex-direction: column;
    padding: 80px;

    color: white;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    text-align: center;
}

.image-n-contents {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-auto-flow: dense;
}

.image-n-contents__content {
    align-self: center;
    padding: 40px;
}

.image-n-contents__content:nth-of-type(2n) {
    grid-column: 2;
}

.image-n-contents__image:nth-of-type(2n) {
    grid-column: 1;
}

@media (max-width: 720px) {
    #wide-menu {
        display: none;
    }
    #thin-menu {
        display: flex;
    }
    #main-nav {
        flex-direction: row;
    }
    #booster-logo {
        flex: 1;
    }
    #booster-logo img {
        max-height: 93px;
    }
    .main-menu .nav-item {
        width: 100%;
    }
    .main-menu {
        flex-direction: column;
        background-color: white;
    }
    #booster-logo {
        width: 170px;
    }
    .imagetron-2 {
        padding: 30px;
    }
    .image-n-contents {
        display: block;
    }
    .image-n-contents__content {
        padding: 30px;
    }
}

.program {
 max-width:1200px;
}

/* NEW STYLE START */
.program .period {
    margin-bottom: 16px;
}
.program .period>header{
    background-color: #2E3E4D;
    color: #ffffff;
    padding: 1rem 1rem;
}
.program .period .rooms {
    display: flex;
    gap: 10px;
    overflow: auto;
}

.program .period .rooms.grabbable {
    cursor: grab;
}

.program .period .room {
    width: 100%;
    min-width: 22%;
    background-color: #F2F2F2;
}
.program .period .room>header {
    background-color: #A5ECDE;
    color: #2E3E4D;
    padding: 1rem 1rem;
}
.program .talk {
    display: block;
    background-color: #F2F2F2;
}
.program .talk:nth-child(2n) {
    background-color: #E5E5E5;
}

.talk .description {
    font-size: 14px;
    padding: 1rem 1rem;
    font-weight: normal;
    display: block;
}
.program .author {
 display: block;
 font-size:14px !important
}

.program .period {
    line-height:1.2em
   }
   .program .period .talk {
    font-size:14px;
    padding:0 1rem 1rem 1rem;
    font-weight:normal;
   }
   .program .period .talk .talk-type {
    color:#2E3E4D;
    font-style:italic;
    font-size: 9px;
    padding: 0.5rem 0 0 0;
   }
   .program .period .talk .author {
    color:#2E3E4D;
    font-size: 9px;
    font-style:italic
   }
   .program .period .talk .description {
    padding:5px 0;
    color:#2E3E4D
   }
   .program .period .talk .description p {
    margin-bottom:10px
   }

a.talk:hover {
cursor:pointer;
background-color:#e2e0d9
}
/* NEW STYLE END */

.program header.time {
 padding:1rem 1rem
}
.program .nav-tabs li a {
 background-color:transparent;
 color:#2E3E4D
}
.program .nav-tabs li.active a {
 background-color:#d3d1cb
}
.program .nav-tabs li a:hover {
 background-color:#F6AB6F
}
.program .period .plenary-type {
 padding:5px 10px 5px 10px
}
.program .period>header {
 padding:1rem 1rem
}
.program .period>header>span> a {
 color: inherit;
}
.program h2 {
 padding:1rem 1rem 1rem 1rem;
 margin-bottom:0
}

.program .day1,
.program .day2,
.program .day3 {
    margin-top: 3rem;
}

.program h3,
.program h4,
.program h5 {
 font-family:"Siri Core", 'Lucida Sans Unicode', 'Lucida Sans', Verdana, sans-serif;
 font-weight:bold;
 font-size:14px;
 text-transform:none;
 font-style:normal;
 color:#2E3E4D;
 margin-bottom:2px
}
.program .program-column h3 {
 line-height:1
}
.program .lightning-talk h3 {
 line-height:1
}
.program .slot a,
.program section.period a, .program section.period a {
 color:#757470
}

.program .follow-me {
 padding:1rem 1rem;
 background:#2E3E4D;
 color:white
}
.program .location-small {
 margin-top:7px;
 color:#2E3E4D;
 text-transform:uppercase;
 font-size:13px
}
.program .follow-wrapper .time {
 padding:1rem 1rem
}
.program .lightning-talk.period header {
 background-color:#A5ECDE
}
.program .lightning-talk.period header .location {
 color:#2E3E4D
}
.speakers-body .speaker {
    background-color: #F2F2F2;
    display: inline-block;
    display: -webkit-flex;
    display: flex;
    padding-bottom: 0px;
    padding-top: 0px;
    margin-top: 1rem;
}
    .speakers-body .speaker .left {
        width: 100%;
        flex: 0 0 50%;
    }
        .speakers-body .speaker .left .speaker-image {
            display: block;
            margin-left: 1rem;
            margin-right: 2rem;
            margin-top: 50px;
            margin-bottom: 50px;
        }
.speakers-body .speaker .right {
    margin-top: 50px;
    flex: 0 0 50%;
}

    .speakers-body .speaker .right .speaker-bio p {
        padding-right: 4rem;
    }

@media (min-width: 1200px) {
    .follow-wrapper {
     margin-bottom:1rem
    }
    .break {
     margin-top:1rem
    }
    header.time {
     background-color:transparent
    }
    .program-column {
     width:400px;
     float:left;
     margin-left:10px
    }
    .lightning-sections {
     display:-webkit-box;
     display:-moz-box;
     display:-ms-flexbox;
     display:-webkit-flex;
     display:flex;
     -webkit-flex-flow:row
    }
    .workshop-slot {
     display:-webkit-box;
     display:-moz-box;
     display:-ms-flexbox;
     display:-webkit-flex;
     display:flex;
     -webkit-flex-flow:row
    }
    .lightning-talk header {
     font-size:110%
    }
    .lightning-talk-slot .author,
    .plenary-type .author {
     font-size:larger
    }
    .program-column:first-of-type {
     margin-left:0
    }
    .program-column header {
     display:block
    }
    .program-column .talk {
     min-height:100px
    }
    .lightning-talk {
     width:400px;
     float:left;
     margin-left:30px
    }
    .lightning-talk:first-of-type {
     margin-left:0
    }
    .location-small {
     display:none
    }
   }

   .kids-intro {
        text-align: center;
   }

   .kids-program {
       display: flex;
       flex-flow: row wrap;
       gap: 20px;
   }
   .kids-program .kids-course {
       flex: 40%;
   }
   @media (min-width: 768px) and (max-width: 978px) {
    .location-small {
     display:block
    }
    .program-column:first-of-type,
    .program-column-8:first-of-type {
     margin-left:0
    }
    .program-column header,
    .program-column-8 header {
     display:none
    }
    .program header.time {
     display:block;
     padding:5px;
     background-color:#2E3E4D;
     color:#ffffff;
     margin:0
    }
   }
   @media (max-width: 767px) {
    .program a {
     text-decoration:none
    }
    .location-small {
     display:block
    }
    .program-column:first-of-type,
    .program-column-8:first-of-type {
     margin-left:0
    }
    .program-column header {
     display:none
    }
    .program header.time {
     display:block;
     background-color:#2E3E4D;
     color:#ffffff;
     margin:0
    }
    .follow-me.fixed {
     position:fixed;
     top:0;
     width:100%;
     box-sizing:border-box;
     z-index:2
    }
    .follow-me.fixed.absolute {
     position:absolute;
     z-index:2
    }
    .program .follow-wrapper {
     margin-bottom:0
    }
   }

.tv {
    padding-left: 25px;
    padding-right: 25px;
    font-size: 1.8em;
}
    .tv .tv-day {}
    .tv .tv-timeslot {
        margin: 25px 0;
        border-radius: 5px;
        padding: 40px;
        background: #2E3E4D;
        color: white;
    }
    .tv .tv-timeslot-info {
        font-size: 1.3em;
    }
    .tv .tv-talks {
        
    }
    .tv li {
        margin-bottom: 20px;
        margin-left: 30px;
    }
    .tv li:only-child {
        list-style: none;
        margin-left: 0px;
    }
    .tv li > div {
        display: inline-block;
        vertical-align: text-top;
    }
    .tv .tv-now-text, .tv .tv-next-text {
        display: none;
    }
    .tv .tv-timeslot.tv-now .tv-now-text {
        display: inline;
    }
    .tv .tv-timeslot:not(.tv-now) {
        opacity: 0.8;
    }
    .tv .tv-timeslot-info .location {
        font-size: 0.7em;
    }
    .tv .tv-rooms {
        display: flex;
        flex-direction: row;
        align-items: stretch;
        flex-wrap: wrap;
    }
    .tv .tv-room {
        margin-top: 15px;
        min-width: 170px;
        display: inline-flex;
        flex-direction: column;
        width: 32.3%;
        margin-right: 10px;
    }
    .tv .tv-room > h2 {
        font-size: 0.8em;
    }
    .tv .tv-talks {
        background: white;
        color: black;
        border-radius: 5px;
        padding: 10px 30px;
        margin: 15px;
        margin-left: 0;
        height: 100%;
    }
    .tv .tv-talk i {
        font-size: 0.8em;
    }

    .splash {
        padding: 4vh 3vw;
        background-color: #eee;
        width: 100vw;
        height: 100vh;
    }

    .splash-grid {
        width: 100%;
        height: 100%;
        display: flex;
        flex-wrap: wrap;
    }

    .splash-grid .splash-cell {
        width: 25%;
        height: 20%;
        display: flex;
        justify-content: center;
        align-items: center;
        padding: 2vh 5vw;
    }

    .splash-grid .splash-cell img {
        object-fit: contain;
        height: 100%;
        width: 100%;
    }

    @keyframes show {
        from { opacity: 0; }
        to { opacity: 1; }
    }

    @keyframes hide {
        from { opacity: 1; }
        to { opacity: 0; }
    }

    .splash-grid .visible {
        opacity: 1;
        animation-name: show;
        animation-duration: 2s;
    }

    .splash-grid .invisible {
        opacity: 0;
        animation-name: hide;
        animation-duration: 1.5s;
    }
