/* Upcoming Fall Fest only. Edit directly alongside fall-festival.html. */
.fall-upcoming {
  padding-block: 80px;
  color: #fffaf3;
  background: radial-gradient(ellipse at top left, #704064, transparent 65%), #352342;
}
.fall-upcoming .event-feature-grid {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  align-items: center;
  gap: 54px;
}
.fall-upcoming .event-status {
  display: inline-block;
  margin-bottom: 20px;
  padding: 7px 15px;
  border-radius: 100px;
  background: #ffc17b;
  color: #352342;
  font-size: .8rem;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.fall-upcoming h2 { color: #ffcb93; font-size: clamp(3rem, 5vw, 4.7rem); }
.fall-upcoming .event-date { margin-top: 16px; font-size: 1.4rem; font-weight: 900; }
.fall-upcoming .event-location { margin-top: 8px; font-size: .95rem; color: #eddfed; }
.fall-upcoming .event-feature-copy > p:not(.event-date):not(.event-location) { margin-top: 21px; }
.fall-upcoming .actions { margin-top: 27px; gap: 15px 22px; }
.fall-upcoming .button { color: #352342; background: #ffc17b; }
.fall-upcoming .button:hover { background: #ffdaaf; }
.fall-upcoming .text-link { color: #fffaf3; }
.fall-upcoming .event-detail-note { color: #eddfed; font-size: .9rem; }
.fall-upcoming :focus-visible { outline-color: #ffdfae; }
.fall-upcoming-video {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #ffffff30;
  border-radius: 24px;
  background: #251a30;
  box-shadow: 0 20px 50px #160d262e;
}
.fall-upcoming-video video { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; background: #17101f; }
.fall-upcoming-video figcaption { padding: 22px 25px; }
.fall-upcoming-video h3 { color: #ffcb93; margin-block: 5px 9px; font-size: 1.35rem; }
.fall-upcoming-video figcaption > p { font-size: .95rem; color: #eddfed; }
.fall-upcoming-video .video-meta { color: #ffcb93; font-size: .8rem; }
.fall-upcoming-photos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 46px; }
.fall-upcoming-photos .gallery-link { background: #251a30; }
.fall-upcoming-photos img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.fall-upcoming-photos figcaption { margin-top: 12px; }
.fall-upcoming-photos figcaption strong { display: block; color: #ffcb93; font-size: 1.05rem; }
.fall-upcoming-photos figcaption span { display: block; margin-top: 3px; color: #eddfed; font-size: .9rem; }
.fall-upcoming .event-fall-program { margin-top: 40px; padding-top: 32px; border-top: 1px solid #ffffff30; }
.fall-upcoming .event-fall-program > h3 { font-family: var(--display); font-weight: 400; font-size: clamp(1.65rem, 2.5vw, 2rem); color: #ffcb93; }
.fall-upcoming .event-program-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 24px; }
.fall-upcoming .event-program-group { padding: 24px; border-radius: 18px; border: 1px solid #ffffff20; background: #ffffff09; }
.fall-upcoming .event-program-group h4 { margin: 0 0 15px; color: #ffcb93; font-size: 1.05rem; }
.fall-upcoming .event-program-group ul { margin: 0; padding-left: 19px; }
.fall-upcoming .event-program-group li { margin-top: 9px; font-size: .95rem; }
.fall-upcoming .event-program-group li::marker { color: #ffcb93; }
.fall-upcoming .event-program-group small { display: block; color: #eddfed; font-size: .85rem; }
.fall-upcoming .event-carving-note { margin-top: 24px; color: #ffdfba; }
@media (max-width: 960px) {
  .fall-upcoming .event-feature-grid { grid-template-columns: 1fr; gap: 30px; }
  .fall-upcoming .event-program-grid { gap: 16px; }
  .fall-upcoming .event-program-group { padding: 20px; }
}
@media (max-width: 640px) {
  .fall-upcoming { padding-block: 52px; }
  .fall-upcoming-photos, .fall-upcoming .event-program-grid { grid-template-columns: 1fr; gap: 25px; }
  .fall-upcoming-video figcaption { padding: 20px; }
  .fall-upcoming .event-program-group li,
  .fall-upcoming .event-program-group small,
  .fall-upcoming .event-detail-note,
  .fall-upcoming-video figcaption > p,
  .fall-upcoming-photos figcaption span { font-size: 1rem; }
}
