/* Hero Section */

.section--hero {
  aspect-ratio: 1440 / 650;
  max-height: max(20rem, 50vh);
  background-image: url(../images/bcp14-hero.png);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center bottom;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  position: relative;
  width: 100%;
}

.section--hero--button-primary {
  position: absolute;
  right: var(--spacing-medium);
  bottom: var(--spacing-medium);
}

/* Home Section */

.section-contents--home {
  align-items: center;
  flex-direction: column;
  padding-bottom: 4rem;
  text-align: center;
}

.share-links--home {
  margin: 2rem 0 1rem;
}

/* About Section */

.section-contents--about {
  flex-direction: column;
}

/* Map Pseudo-Section */

.map {
  background-image: url(../images/map.png);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

.card--map {
  display: flex;
  gap: 1rem;
  flex-direction: column;
  margin: 1rem 0;
}

/* Location Section */

.section-contents--location {
  flex-direction: column;
}

/* Lunch Section */

.section-contents--lunch {
  flex-direction: column;
}

/* Nearby Pseudo-Section */

.nearby {
  border-top: 4px dashed var(--color-mint);
  color: var(--color-egg-shell);
  background: var(--color-eggplant);
  padding: min(0, 1rem);
  text-align: center;
  border-bottom: 100px solid var(--color-eggplant);
  display: flex;
  flex-direction: column;
}

.nearby-proximity {
  max-height: max(50rem, 50vw);
}

/* Register Section */

.section--register {
  aspect-ratio: 1440 / 420;
  background-image: url(../images/registration-banner-10.png);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  display: flex;
  align-items: flex-end;
  min-height: 10rem;
  justify-content: center;
  padding-bottom: var(--spacing-medium);
}

.section--register--button-primary {
  padding-left: 7rem;
  padding-right: 7rem;
}

/* Efficiency Section */

.section-contents--efficiency {
  flex-direction: column;
}

/* Schedule Section */

.section-contents--schedule {
  flex-direction: column;
  text-align: center;
}

.heading-secondary--schedule {
  margin: 1rem 0;
}

/* Sponsors Section */

.section--sponsors {
  text-align: center;
}

.section-contents--sponsors {
  flex-direction: column;
}

.sponsor-group {
  background: var(--color-noodle);
  padding: 0.5rem 0 3.5rem;
}

.sponsor-group-title {
  background: var(--color-bloody-mary);
  padding: 0.5rem;
  margin: 0 0 4.5rem 0;
}

/* Become A Sponsor Section */

.section-contents--become-a-sponsor {
  flex-direction: column;
  text-align: center;
}

.become-a-sponsor-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  justify-content: center;
  margin: 1rem 0;
}

/* Organizers Section */

.section-contents--organizers {
  flex-direction: column;
}

.organizers-left {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.organizers-right {
  display: flex;
  gap: 2rem;
  list-style-type: none;
  flex-wrap: wrap;
}

.organizer {
  display: flex;
  gap: 0.5rem;
  min-width: 17rem;
  width: 50%;
}

.organizer-photo {
  width: 7rem;
  background: white;
  height: 7rem;
  border-radius: 100%;
}

.organizer-details {
  display: flex;
  gap: 0 0.5rem;
  flex-wrap: wrap;
  align-items: center;
}

.organizer-name {
  color: var(--color-egg-shell);
  font-family: var(--font-family-serif);
  font-size: var(--font-size-large);
  line-height: 1.1;
  margin-bottom: -0.5rem;
  text-shadow: var(--text-shadow-large);
  text-transform: uppercase;
  width: 100%;
}

.organizer-social-icon {
  filter: drop-shadow(var(--text-shadow-base));
  max-height: 20px;
  max-width: 24px;
}

@media (min-width: 900px) {
  .section-contents--organizers {
    flex-direction: row;
  }

  .organizers-left {
    justify-content: center;
    width: 40%;
  }

  .organizers-right {
    width: 60%;
    flex-wrap: wrap;
  }

  .organizer {
    min-width: initial;
    width: calc(50% - 1rem);
  }
}

/* Responsive Images for Sponsor Logos */
.responsive {
  max-width: 100%;
  height: auto;
  border: 0;
  padding: 0 20px;
}
