h1 {
    margin-top: 0;
    margin-bottom: 0;
}

html, body {
    margin: 0;
    padding: 0;
    width: 100vw;
    height: 100vh;
}

#header {
    display: flex;
    font-size: 1vw;
    width: 100%;
    height: 10vh;
}
#logo {
    display: flex;
    height: 10vh;
    max-width: 10vh;
    background-color: white;
}
#logo img {
    height: 100%;
    width: auto;
    object-fit: contain;
}
.title {
    align-content: center;
    padding-left: 1vw;
    font-size: 2vh;
}

#underHeader, .dateRoomWrapper {
    height: 13vh;
}
.dateRoomWrapper, .underHeaderP {
    display: flex;
    font-size: 3vh;
    margin-left: auto;
    width: calc(98vw - 10vh);
    align-items: center;
}
#timeDateWrapper {
    display: flex;
    height: 100%;
    align-items: baseline;
}
#time {
    height: 100%;
    text-align: left;
    font-size: 3vh;
    align-content: center;
}
#date {
    height: 100%;
    padding-left: 0.7vw;
    font-size: 1.5vh;
    align-content: center;
}
#roomName {
    height: 100%;
    text-align: right;
    align-content: center;
    margin-left: auto;
    padding-right: 2vw;
}
#QRCodeResponsive {
    display: none;
    padding-right: 3.5vw;
}

#titleSpeakerSessionContainer {
    display: flex;
    height: 77vh;
}

#titleQRSpeakerContainer {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 100%;
    height: 100%;
    overflow: hidden;
}
#titleQRContainer {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    width: 100%;
    max-width: 80vw;
    min-height: 20vh;
    align-items: stretch;
}

#titleDiv {
    padding-left: 7vw;
    padding-right: 1vw;
    padding-top: 2vh;
    padding-bottom: 2vh;
    font-size: 2.3vh;
    min-width: 40vw;
    max-width: 60vw;
    min-height: 20vh;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

#QRCode {
    display: flex;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
    margin-left: auto;
    margin-right: auto;
    height: 100%;
}
#QRCode img {
    height: 100%;
    width: auto;
    display: flex;
}

.speaker {
    display: inline-flex;
    margin-left: 3vw;
    margin-bottom: auto;
    margin-top: auto;
    overflow: hidden;
}
.mainSpeaker {
    display: flex;
    flex-direction: column;
    width: 20vw;
    margin-right: 1vw;
    align-items: center;
    text-align: center;
}
#mainSpeaker {
    display: flex;
    flex-direction: row;
    align-items: center;
}
.mainSpeakerImg {
    text-align: center;
    height: 17vh;
    border-radius: 50%;
    object-fit: contain;
}
.mainSpeakerName {
    margin-top: 1vh;
    font-size: 3.5vh;
}
.mainSpeakerTagline {
    margin-top: 1vh;
    font-size: 1.8vh;
    text-align: center;
}
.mainSpeakerLabelContainer {
    display: flex;
    flex-direction: row;
    margin-top: 1vh;
    align-items: center;
    justify-content: center;
    gap: 0.5vw;
}
.mainSpeakerLabels {
    padding-left: 0.3vw;
    padding-right: 0.3vw;
    border-radius: 0.5vw;
    font-size: 2vh;
    text-align: center;
}

.secondarySpeaker {
    display: flex;
    flex-direction: row;
    height: 25%;
    align-items: center;
    justify-content: left;
    padding-right: 15%;
}
#secondarySpeaker {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    width: 20vw;
    margin-left: 2vw;
    justify-content: center;
}
.secondarySpeakerImg {
    text-align: left;
    padding: 3%;
    height: 7vh;
    border-radius: 50%;
    object-fit: contain;
}
.secondarySpeakerName {
    font-size: 2.8vh;
    text-align: left;
    white-space: nowrap;
}

#nextSessions {
    width: 100%;
    max-width: 20vw;
    margin-left: auto;
    color: white;
}
#txtNext {
    padding-top: 1.5vh;
    margin-left: 1vw;
    font-size: 3vh;
}
.nxtSessTime {
    font-weight: bold;
    font-size: 3.5vh;
    margin-left: 1vw;
    margin-top: 3vh;
}
.nxtSessName {
    font-weight: bold;
    margin-left: 1vw;
    margin-right: 1vw;
    margin-top: 0.5vh;
    font-size: 2.5vh;
}
.nxtSessTitle {
    margin-left: 1vw;
    margin-right: 1vw;
    font-size: 2vh;
}

/*-----Pause Screen-----*/

.underHeaderP {
    height: 10vh;
    align-content: center;
    margin-left: auto;
}
#SessionContainer {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    height: 77vh;
}
.pauseSession {
    display: flex;
    align-items: baseline;
    width: 50%;
}
.sessionStartTime {
    font-weight: bold;
    font-size: 4vh;
    align-content: center;
}
.titleSpeakersContainer {
    min-width: 70%;
    height: 100%;
    padding-left: 2%;
    align-content: center;
}
.sessionTitle {
    display: flex;
    flex-wrap: wrap;
    font-weight: bold;
    margin-bottom: 0.5vh;
    padding-right: 2.4%;
    font-size: 2.5vh;
}

#nextSessionsLeft {
    display: flex;
    flex-direction: row;
    max-width: 70%;
    padding-left: calc(100vw - (98vw - 10vh));
    padding-right: 2vw;
    min-height: 25vh;
}
#nextSessionsRight {
    display: flex;
    flex-direction: row;
    max-width: 70%;
    padding-left: 2vw;
    padding-right: 6vw;
    min-height: 25vh;
    margin-top: 13.5vh;
    margin-left: auto;
}
.nextSessionsRight {
    display: flex;
    flex-direction: column;
    width: 50%;
}

.pauseSpeakersContainer {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    margin-bottom: 0.5vh;
    width: 100%;
}
.pauseSpeaker {
    display: flex;
    flex-direction: row;
    min-width: 50%;
    height: 25%;
    align-items: center;
    justify-content: left;
}
.pauseSpeakerImg {
    text-align: left;
    padding-right: 0.5vw;
    padding-bottom: 0.5vh;
    width: auto;
    height: 3.5vh;
    border-radius: 50%;
    object-fit: contain;
}
.pauseSpeakerName {
    width: calc(100% - 3.5vh - 0.5vw);
    font-size: 2vh;
    text-align: left;
    white-space: nowrap;
}

@media only screen and (orientation: portrait) {

    #header {
        width: 100%;
        height: 10vh;
    }
    #logo img {
        height: 10vh;
    }
    .title {
        text-align: right;
        font-size: 1.9vh;
        padding-right: 4vw;
    }
    #underHeader {
        padding: 0.5vh 0vw 0.5vh 0;
    }
    .dateRoomWrapper {
        flex-direction: column-reverse;
        flex: 1;
        width: 100%;
        height: 13vh;
        margin-left: 0;
        align-items: center;
        justify-content: center;
    }
    #timeDateWrapper {
        flex-direction: column;
        height: 8vh;
        align-items: center;
        align-self: center;
    }
    #time {
        height: 5vh;
        font-size: 2vh;
        text-align: center;
    }
    #date {
        height: 3vh;
        font-size: 1vh;
        text-align: center;
        padding-left: 0;
    }
    #roomName {
        height: 5vh;
        font-size: 1.75vh;
        display: flex;
        justify-content: center;
        align-items: center;
        margin-left: 0;
        margin-right: 0;
        padding-right: 0;
    }

    .underHeaderQRResponsive {
        display: flex;
        flex-direction: row !important;
        align-items: center;
    }
    .QRCodeResponsive {
        display: flex !important;
        height: calc(100% - 2vh);
        padding-right: 1vw;
        padding-top: 1vh;
        padding-bottom: 1vh;
        max-width: 30% !important;
    }
    .QRCodeResponsive img {
        object-fit: contain !important;
    }

    #titleSpeakerSessionContainer {
        flex-direction: column;
        align-items: center;
        height: 77vh;
    }
    #titleQRSpeakerContainer {
        justify-content: flex-start;
        width: 100%;
        height: 100%;
        align-items: center;
    }
    #titleQRContainer {
        max-width: 100%;
        max-height: 50%;
        align-items: flex-start;
        overflow: hidden;
    }
    #titleDiv {
        width: 100%;
        text-align: center;
        font-size: 1.8vh;
        max-width: 100vw;
        min-width: 0;
        min-height: 0;
        overflow: hidden;
        padding: 2vh 3vw 2vh 3vw;
    }

    .speaker {
        align-content: center;
        margin-bottom: auto;
        margin-top: auto;
        margin-left: 0;
        gap: 2vw;
        max-height: 50%;
        overflow: hidden;
    }
    .mainSpeaker {
        width: 40vw;
        height: 100%;
    }
    .mainSpeakerImg {
        height: 13vh;
    }
    .mainSpeakerName {
        margin-top: 0.5vh;
        font-size: 2.5vh;
    }
    .mainSpeakerTagline {
        margin-top: 0.5vh;
        font-size: 1.5vh;
    }
    .mainSpeakerLabelContainer {
        margin-top: 0.5vh;
    }
    .mainSpeakerLabels {
        padding-left: 0.7vw;
        padding-right: 0.7vw;
        border-radius: 1vw;
        font-size: 1.6vh;
    }

    .secondarySpeaker {
        width: 100%;
        height: 25%;
        padding-right: 0;
    }
    #secondarySpeaker {
        width: 40vw;
        margin-left: 0;
        padding-right: 0;
    }
    .secondarySpeakerImg {
        height: 5.4vh;
    }
    .secondarySpeakerName {
        display: flex;
        flex-wrap: wrap;
        font-size: 2.1vh;
    }

    #nextSessions {
        display: flex;
        flex-direction: row;
        justify-content: center;
        width: 100%;
        max-width: 100%;
        height: 23vh;
        gap: 5vw;
        margin-left: 0;
        margin-top: 1vh;
        padding-bottom: 0;
        background-color: white !important;
        overflow: hidden;
    }
    .nextSessions {
        width: 40%;
        padding: 0.5vh 2vw 0vh 2vw;
        border-radius: 1vw 1vw 0 0;
    }
    #txtNext {
        display: none;
        margin-left: 0;
        font-size: 0vw;
    }
    .nxtSessTime {
        margin-left: 1vw;
        margin-top: 0.5vh;
        font-size: 2.3vh;
    }
    .nxtSessName {
        margin-left: 1vw;
        margin-right: 1vw;
        margin-top: 0.5vh;
        font-size: 2.1vh;
    }
    .nxtSessTitle {
        margin-left: 1vw;
        margin-right: 1vw;
        margin-top: 0.5vh;
        font-size: 1.75vh;
    }

    /*pauseScreen*/

    #sessionPause {
        height: 90vh;
    }
    #SessionContainer {
        flex-direction: column;
        overflow-y: auto;
        height: 80vh;
    }
    .underHeaderP {
        display: flex;
        margin-left: auto;
        width: calc(98vw - 10vh);
        align-items: initial;
    }
    #roomNameP {
        display: flex;
        width: 100%;
        height: 5vh;
        font-size: 2vh;
        text-align: left;
        margin-top: auto;
        margin-bottom: auto;
        margin-left: 0;
        margin-right: 0;
    }

    #nextSessionsLeft {
        flex-direction: column;
        max-width: 100%;
        min-height: 0;
        gap: 2vh;
        padding-left: 0;
        padding-right: 0;
        background-color: white !important;
    }
    .pauseSession {
        width: 100%;
        padding-left: 2vw;
    }
    .sessionStartTime {
        font-size: 3vh;
    }
    .sessionTitle {
        font-size: 2.3vh;
    }

    #nextSessionsRight {
        flex-direction: column;
        max-width: 100%;
        min-height: 0;
        gap: 2vh;
        margin-top: 0;
        padding-top: 2vh;
        padding-left: 0;
        padding-right: 0;
        background-color: white !important;
    }
    .nextSessionsRight {
        width: 100%;
    }
}

#errorUrlDiv {
    display: none;
    flex-direction: column;
    text-align: center;
    font-size: 5vw;
    color: red;
}

/*-----Animations-----*/

#sessionActive {
    height: 90vh;
    opacity: 1;
    transition: opacity 0.3s ease-in-out;
}
#sessionActive.fade {
    opacity: 0;
}
#sessionPause {
    height: 90vh;
    opacity: 1;
    transition: opacity 0.3s ease-in-out;
}
#sessionPause.fade {
    opacity: 0;
}

.hidden {
    display: none !important;
}
.shown {
    display: block !important;
}
