body, html {
  height: 100%;
  margin: 0;
  font-family: "Montserrat", Arial, Helvetica, sans-serif;
  background-color:#F5F5F5;
  color: #333333;
}

/* BANNER */
.banner {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  position: relative;
  text-align: center;
  padding: 30px;
}

.banner-container {
  justify-content: center;
}

#banner-text {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 56px;
  margin: 0;
  display: inline-block; /* helps keep the text + logo together */
  color: white;
}

.banner-logo {
  width: 1em;
  height: 1em;
}


/* Nav links under banner (About, Event Lineup, Challenges) */
.bl {
  font-weight: 700;
  font-size: 1.1em;
  font-family: 'Montserrat', Montserrat, sans-serif;
}
a.bl {
  color: #eaeaea;
  text-decoration: none;
}
a.bl:hover {
  color: #ffffff;
  padding-bottom: 3px;
  transition: all 0.3s ease-out;
}
a.bl-active {
  color: #ffffff;
  text-decoration: none;
  padding-bottom: 3px;
  border-bottom: 3px solid #ffffff; /* fallback if no color from event */
}

/* Evaluation Form */
a.evaluation {
  color: #636363;
  font-weight: 700;
  text-decoration: none;
}
a.evaluation:hover {
  color: #333;
  border-bottom: #333 1px solid;
}

p.dates {
  font-weight: 700;
  font-size: 18px;
  margin: 0 auto;
  text-align: center;
}

p.desc {
  font-weight: 400;
  font-size: 16px;
  padding: 0 10%;
  margin: 0 auto;
  text-align: center;
}

/* Buttons */
.btnwidth {
  width: 175px;
  margin: 5px auto;
}
.btngray:hover {
  background-color: #333;
  color: #fff;
}
.register a {
  background: #333333;
  font-family: Montserrat;
  font-style: normal;
  font-weight: 700;
  color: #ffcb1d;
  text-decoration: none;
}

.register a:hover {
  background: #f3f3f3;
  transition: all 0.2s ease-out;
  color: #333333;
  text-decoration: none;
}

.recordings a {
  background: #dadada;
  font-family: Montserrat;
  font-style: normal;
  font-weight: 700;
  text-decoration: none;
  color: #333333;
}

.recordings a:hover {
  background: #aaaaaa;
  transition: all 0.2s ease-out;
}

.enterevent a {
  /*background: #8F4E9E !important; */
  background: var(--bg_color) ;
  font-family: Montserrat;
  font-style: normal;
  font-weight: 700;
  text-decoration: none;
  color: var(--text_color) !important;
}

.enterevent a:hover {
  /* background: #7B3A8A !important; */
  background: var(--hover_color);
  transition: all 0.2s ease-out;
}

.box a {
  flex: 1;
  border-radius: 4px;
  padding: 10px 10px;
  font-size: 0.9em;
  width: 100%;
}  

/* CARD CATEGORY (Event Lineup, Challenges) */
.cardcategory {
  width: min(80%, 2000px);
  margin: 0 auto;
}
.cardcategory a.see-more-button {
  font-size: 16px;
}
.cardcategory .cardcontainer {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: stretch;
  padding: 0px;
  gap: 20px;
}
.cardheader {
  display: flex; 
  flex-direction: row; 
  justify-content: space-between; 
  align-items: start; 
  margin-top: min(12px); 
  margin-bottom: min(24px);
}

.card-item {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transition: 0.2s ease-in;
  width: 325px;
  border-radius: 8px;
  padding: 20px;
  margin: 10px;
  box-sizing: border-box;
}
.card-item:hover {
  transform: translate3d(0px, -5px, 0px);
}
.tag-container {
  display: inline-block;
  width: 45%;
  background-color: #F5EFFD;
  color: #7C3BBE;
  border: 1px solid #7C3BBE;
  border-radius: 20px;
  margin-bottom: 12px;
  text-align: center;
}
.event-tag {
  font-size: 12px;
  padding: 4px 8px;
}
.event-name {
  font-size: clamp(18px, 1.25rem, 24px) !important;
  font-weight: 700;
  text-align: left;
  margin: 0;
}
.event-host {
  font-size: clamp(16px, 1.2rem, 22px) !important;
  font-weight: 600;
  text-align: left;
  padding-top: 12px;
  margin: 0;
}
.event-description {
  font-size: clamp(12px, 1rem, 18px) !important;
  margin: 8px 0 !important;
  text-align: left;
}
.event-info {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  padding-top: 8px !important;
}
.event-icon {
  font-size: 16px !important;
}
.event-date, .event-time, .event-location {
  margin: 0 !important;
  padding-left: 5px;
  font-size: clamp(12px, 1rem, 14px) !important;
  text-align: left;
}
.event-register {
  font-weight: bold;
  background-color: #FFCB1D;
  color: black;
  width: 100%;
  border-radius: 4px;
  padding: 6px 10px;
  border: none;
  cursor: pointer;
  margin-top: 12px;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 4px;
  justify-content: center;
}
.event-register:hover {
  background-color: #ffe077;
  color: black;
}

.row {
  margin-left: -7.5px;
  margin-right: -7.5px;
}

.custom-col {
  padding-left: 7.5px;
  padding-right: 7.5px;
  margin-bottom: 15px; /* vertical gap between rows */
}

@media (min-width: 1200px) {
  .custom-col-3 {
    flex: 0 0 33.33%;
    max-width: 33.33%;
  }
  .custom-col-5 {
    flex: 0 0 20%;
    max-width: 20%;
  }
}

.card-equal {
  position: relative;
  width: 100%;
  overflow: hidden;
  height: 100px;
  border-radius: 8px;
  padding: 4px;
}

/* COMPANY LOGOS (footer portion) */
.logostitle {
  color: #333;
  font-weight: 700;
  /* font-size: 15px; */
  text-align: center;
}
.exec, .copres, .deluxe {
  color: #fff;
  font-weight: 600;
  width: 200px;
  height: 25px;
  text-align: center;
  line-height: 25px;
  filter: drop-shadow(0px 4px 4px rgba(0, 0, 0, 0.25));
}
.exec {
  background: darkblue;
}
.copres {
  background: goldenrod;
}
.deluxe {
  background: purple;
}
.logocard {
  background: #f5f5f5;
  margin: 10px;
  border-radius: 0 0 30px 0;
  text-align: center;
  box-shadow: none;
  flex: 0 0 300px;
}
.logoimg {
  height: 8vw;
  width: auto;
  margin: auto;
  display: inline-block;
}

@media only screen and (max-width: 1000px) {
  .logoimg {
    height: 70px;
  }
}

@media screen and (max-width: 900px) {
  #banner-text {
    font-size: 48px;
  }
  .cardheader {
    flex-direction: column;
  }
}

/* For Mobile */
@media only screen and (max-width: 600px) {
  .tag-container {
    width: 50%;
  }
  .card-item {
    max-width: 600px !important;
  }
  .cardcategory {
    width: min(90%, 2000px);
  }
  .cardcategory hr {
    display: none;
  }
  .event-name {
    font-size: clamp(16px, 4vw, 22px) !important;
  }
  .event-host {
    font-size: clamp(14px, 3.5vw, 20px) !important;
  }
  .event-date, .event-time, .event-location {
    font-size: clamp(10px, 2.5vw, 12px) !important;
  }
}