/* 
primary color: #f8fbfe

section background: #1C1A38

accent: electric blue: #002eff || #3069FC
        electric purple: #bf00ff || #5C23BD

text color: #121518
*/

body {
    font-family: "Merriweather", serif;
    font-size: 1rem;
    letter-spacing: 1px;
    font-weight: 300;
    margin: 0;
    padding: 0;
    background-color: #f8fbfe;
    color: #121518;
}


/* ##### header styling ##### */
header {
    padding-bottom: 4rem;
}

.logo {
    width: 10rem;
    height: auto;
}


.navbar-collapse {
    flex-grow: 0;
}

.navbar {
    padding: 1.5rem 2rem;
    background-color: #1C1A38;
}

.navbar-toggler {
    background-color: #f8fbfe;
}

.navbar-toggler:focus {
    box-shadow: #bf00ff 0px 0px 0px 0.25rem;
}

.nav-link,
.quickLinksTopDiv a {
    color: #f8fbfe;
    font-weight: 600;
    letter-spacing: 2px;
}

.nav-link:hover,
.quickLinksTopDiv a:hover {
    color: #bf00ff;
    font-size: 1.1rem;
}

.navButtons {
    gap: 1rem;
}

.getTicketsLink {
    background-color: #002eff;
    color: white;
    border-radius: 0.5rem;
    max-width: max-content;
    padding: 0.5rem 2rem;
}

.signUpLink {
    border: 2px solid #bf00ff;
    border-radius: 0.5rem;
    max-width: max-content;
    padding: 0.5rem 2rem;
}

.getTicketsLink:hover,
.signUpLink:hover {
    font-weight: bold;
    color: white;
}


/* ##### hero section styling ##### */
.heroSection {
    background-image: url("assets/images/backgroundImage.webp");
    background-size: cover;
    background-position: center;
    color: #f8fbfe;
    padding: 6rem 3rem 4rem 3rem;
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    gap: 4rem;
}

.heroTopDiv {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}

.leftHeroTopDiv,
.rightHeroTopDiv {
    width: 50%;
}

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

.display-4 {
    font-weight: bold;
}

.leftHeroTopDiv {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    gap: 1.5rem;
    line-height: 1.8;
    letter-spacing: 2px;
    background-color: rgb(28, 26, 56, 0.8);
    padding: 1rem;
    border: none;
    border-radius: 0.5rem;
}

.heroButtonsDiv {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
}

.heroButtonsDiv button,
.heroBottomDiv button,
.allSpeakersButton,
.ticketLeftCard>.card-body button {
    padding: 0.5rem 3rem;
    border-radius: 0.5rem;
    color: white;
    font-weight: 700;
    letter-spacing: 2px;
}

.heroButtonsDiv button:hover,
.heroBottomDiv button:hover,
.allSpeakersButton:hover,
.ticketLeftCard>.card-body button:hover {
    padding: 0.5rem 4rem;
}

.heroButtonsDiv>.blue,
.heroBottomDiv>.blue,
.allSpeakersButton {
    background-color: #002eff;
    border: none;
}

.heroButtonsDiv>.purple,
.ticketLeftCard>.card-body button {
    background-color: #1c1a38;
    border: 2px solid #bf00ff;
}

.img-fluid {
    min-width: 100%;
}

.heroMiddleDiv {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-evenly;
    background-color: rgb(28, 26, 56, 0.8);
    padding: 1rem 0;
}

.heroMiddleDiv img {
    width: 3rem;
    height: auto;
}

.midlleCardDiv {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    justify-content: center;
    min-width: 15%;
}

.borderLeft {
    border-right: 1px solid rgb(183, 213, 244, 0.2);
    padding: 0 0.2rem;
}

.iconDiv {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

.iconDiv h5 {
    font-size: 1.5rem;
    font-weight: bold;
}

.midlleCardDiv p {
    font-size: 1.2rem;
    text-align: center;
}

.heroBottomDiv {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    background-color: rgb(28, 26, 56, 0.5);
    padding: 2rem 0;
    border-radius: 0.5rem;
}

/* ##### meet our speakers section styling ##### */
.speakerSection {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 2rem;
    padding: 3rem;
}

.speakerTopDiv h3 {
    font-weight: bold;
    margin: 1rem 0;
}

.speakerMiddleDiv {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 2rem;
}

.speakerMiddleDiv>.card {
    width: 20rem;
    border-radius: 1rem;
    background-color: #1C1A38;
    border: none;
}

.card-img-top,
img {
    height: 350px;
    object-fit: cover;
    object-position: top;
    border-top-left-radius: 1rem;
    border-top-right-radius: 1rem;
}

.socialIcon {
    width: 2rem;
    height: auto;
}

.card-body {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: center;
    align-items: center;
    color: #f8fbfe;
    letter-spacing: 2px;
}

.card-footer {
    display: flex;
    justify-content: center;
    gap: 1rem;
    padding-bottom: 2rem;
}

/* ##### ticket pricing section styling ##### */
.ticketSection {
    background-color: #1C1A38;
    color: #f8fbfe;
    padding: 3rem;
    display: flex;
    flex-direction: column;
    gap: 2rem;
    flex-wrap: wrap;
}

.ticketTopDiv {
    display: flex;
    justify-content: center;
}

.ticketBottomDiv {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
    justify-content: center;
}

.ticketLeftCard {
    background-image: url("assets/images/backImage.webp");
    background-size: cover;
    background-position: center;
    width: 25%;
    color: #f8fbfe;
    border-radius: 1rem;
    border: none;
    box-shadow: 0px 4px 8px rgba(191, 0, 255, 0.3);
}

.ticketLeftCard>.card-header {
    background-color: #121518;
    color: #f8fbfe;
    display: flex;
    padding: 1rem 2rem;
    gap: 0.5rem;
    flex-wrap: wrap;
    border-top-left-radius: 1rem;
    border-top-right-radius: 1rem;
}

.ticketLeftCard>.card-body {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    padding: 1rem 2rem;
    background-color: rgb(28, 26, 56, 0.6);
}

.ticketRightCard {
    width: 70%;
    background-color: #f8fbfe;
    color: #1C1A38;
    border: none;
    border-radius: 1rem;
}

.ticketRightCard>.card-header {
    display: flex;
    justify-content: space-between;
    padding: 1rem 2rem;
}

.ticketLink a {
    text-decoration: none;
    font-weight: 700;
    font-size: 1.1rem;
}

.ticketLink a:hover {
    color: #bf00ff;
    font-size: 1.3rem;
}

.ticketRightCard>.card-body {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
}

.img-thumbnail {
    width: 80px;
    height: auto;
    border-radius: 1rem;
}

.list-group-item {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    background-color: #F1F4F7;
    color: #121518;
    padding: 0 2rem;
    width: 100%;
    border-radius: 1rem;
}

.list-group-item:hover {
    background-color: rgb(191, 0, 255, 0.15);

}

.leftListItem {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    align-items: center;
}

.timeDiv {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
}

.timeDiv h6 {
    font-weight: bold;
}

.timeDiv p {
    font-size: 0.9rem;
    color: #1C1A38;
}

.timeDiv div {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.timeDiv img {
    width: 1.2rem;
    height: 1.2rem;
}

.nextIcon {
    width: 1.5rem;
    height: auto;
}

.nextIcon:hover {
    transform: translateX(5px);
    transition: transform 0.3s ease;
    width: 1.7rem;
    height: auto;
}


/* ##### footer styling ##### */
footer {
    background-image: url("assets/images/footerBackground.webp");
    color: #f8fbfe;
    background-size: cover;
    background-position: center;
    display: flex;
    flex-wrap: wrap;
    gap: 4rem;
    padding: 1rem 2rem;
}

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

.footerLogoDiv>.logo {
    width: 25rem;
    height: auto;
}

.quickLinks {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
    padding-top: 2rem;
}

.quickLinksTopDiv,
.quickLinksBottomDiv {
    display: flex;
    flex-wrap: wrap;
    gap: 4rem;
}

.quickLinksTopDiv ul {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
}

.quickLinksTopDiv a {
    text-decoration: none;
}

.quickLinksTopDiv li {
    list-style: none;
}

.quickLinksTopDiv>.socials {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
}

.footerIcon {
    width: 2rem;
    height: auto;
}

.footerIcon:hover {
    transform: translateY(-5px);
    transition: transform 0.3s ease;
    width: 2.2rem;
    height: auto;
}

.quickLinksBottomDiv p {
    font-size: 0.8rem;
    font-style: oblique;
}

.anaid {
    text-decoration: none;
    font-weight: 900;
    color: #b7d5f4;
    letter-spacing: 2px;
}

.anaid:hover {
    color: #bf00ff;
    font-size: 1rem;
}


/* ###################### Responsive Design ###################### */
/* screens between 576px and 605px */
@media (min-width: 576px) and (max-width: 605px) {

    footer,
    .quickLinksTopDiv,
    .quickLinksBottomDiv {
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 0;
        font-size: 1.2rem;
    }

    .footerLogoDiv>.logo {
        width: 20rem;
        height: auto;
    }
}

/* screens between 768px and 886px */
@media (min-width: 768px) and (max-width: 886px) {

    .heroButtonsDiv>.blue,
    .heroButtonsDiv>.purple {
        font-size: 0.9rem;
        padding: 0.5rem;
    }

    .iconDiv h5 {
        font-size: 1rem;
    }

    .midlleCardDiv p {
        font-size: 0.8rem;
    }

    .iconDiv img {
        width: 1.5rem;
        height: auto;
    }

    .display-6 {
        font-size: 1.5rem;
    }
}

/* screens between 768px and 983px */
@media (min-width: 768px) and (max-width: 983px) {

    .ticketRightCard,
    .ticketLeftCard {
        width: 100%;

    }

    .ticketLeftCard>.card-header,
    .ticketLeftCard>.card-body {
        display: flex;
        justify-content: center;
        align-items: center;
    }
}


/* screens between 768px and 1200px */
@media (min-width: 768px) and (max-width: 1200px) {

    .leftHeroTopDiv {
        line-height: 1.5;
        letter-spacing: 1px;
        gap: 0.5rem;
    }

    .leftHeroTopDiv>.display-4 {
        font-size: 2rem;
    }

    .leftHeroTopDiv p {
        font-size: 0.9rem;
    }

    .heroButtonsDiv {
        gap: 1rem;
    }

    .heroButtonsDiv button {
        padding: 0.5rem 1.5rem;
        font-size: 1rem;
        font-weight: 600;
    }

    .heroButtonsDiv button:hover {
        padding: 0.5rem 2.5rem;
    }

    .ticketLeftCard>.card-body button {
        padding: 0.5rem 1.5rem;
        font-size: 0.9rem;
    }

    footer {
        flex-direction: column;
        gap: 0.5rem;
        align-items: center;
        text-align: center;
    }
}

/* screens between 576px and 767px */
@media (min-width: 576px) and (max-width: 767px) {

    .leftHeroTopDiv,
    .rightHeroTopDiv {
        width: 100%;
        justify-content: center;
        align-items: center;
    }

    .heroButtonsDiv button,
    .heroBottomDiv button {
        padding: 0.5rem 1.5rem;
        font-size: 1rem;
        font-weight: 600;
    }

    .heroButtonsDiv button:hover,
    .heroBottomDiv button:hover {
        padding: 0.5rem 2.5rem;
    }

    .iconDiv h5 {
        font-size: 1rem;
    }

    .midlleCardDiv p {
        font-size: 0.8rem;
    }

    .iconDiv img {
        width: 1.5rem;
        height: auto;
    }

    .display-6 {
        font-size: 1.5rem;
    }

    .ticketLeftCard,
    .ticketRightCard {
        width: 100%;
    }

    .timeDiv p,
    .timeDiv img {
        display: none;
    }

    footer {
        flex-direction: column;
        gap: 0.5rem;
        align-items: center;
        text-align: center;
        padding: 1rem;
        font-size: 0.8rem;
    }
}

/* screens below 576px */
@media (max-width: 575px) {

    .heroSection,
    .ticketSection,
    .speakerSection,
    footer {
        min-width: fit-content;
        padding: 1rem 2rem;
    }

    .leftHeroTopDiv,
    .rightHeroTopDiv {
        min-width: 100%;
        justify-content: center;
        align-items: center;
        font-size: 0.8rem;
        line-height: 1.5;
        letter-spacing: 1px;
        gap: 0.2rem;
    }

    .heroButtonsDiv {
        gap: 0.5rem;
        flex-wrap: nowrap;
    }

    .heroButtonsDiv button,
    .heroBottomDiv button {
        padding: 0.5rem 1.5rem;
        font-size: 0.8rem;
        font-weight: 400;
    }

    .heroButtonsDiv button:hover,
    .heroBottomDiv button:hover {
        padding: 0.5rem 2.5rem;
    }


    .heroMiddleDiv {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 1rem;
        font-size: 0.8rem;
        border-radius: 1rem;
    }

    .borderLeft {
        border-right: none;
        border-bottom: 1px solid rgb(183, 213, 244, 0.2);
        padding: 0 0.2rem;
    }

    .iconDiv h5 {
        font-size: 1rem;
    }

    .midlleCardDiv p {
        font-size: 0.8rem;
    }

    .iconDiv img {
        width: 1.5rem;
        height: auto;
    }

    .display-6 {
        font-size: 1.1rem;
        text-align: center;
    }


    .ticketLeftCard,
    .ticketRightCard {
        width: 100%;
    }

    .timeDiv p,
    .timeDiv img {
        display: none;
    }

    .timeDiv h6 {
        font-size: 0.9rem;
        letter-spacing: 1px;
    }

    .list-group-item {
        flex-wrap: nowrap;
        gap: 6.55rem;
    }

    .leftListItem {
        flex-wrap: nowrap;
    }

    .ticketRightCard>.card-header {
        flex-direction: column;
        gap: 0.5rem;
        justify-content: center;
        align-items: center;
    }

    footer {
        flex-direction: column;
        gap: 0.5rem;
        align-items: center;
        text-align: center;
        font-size: 0.8rem;
    }

    .footerLogoDiv>.logo {
        width: 20.25rem;
        height: auto;
        padding-top: 1rem;
    }

    .quickLinksTopDiv,
    .quickLinksBottomDiv {
        flex-direction: column;
        gap: 0.5rem;
    }
}

/* screens below 383px */
@media (max-width: 383px) {

    .heroSection {
        min-width: 387.64px;
    }
}