.special-event-page { background: #fff; }

.events-main {
  width: min(1280px, calc(100% - 64px));
  margin-inline: auto;
  padding-bottom: 64px;
}

.events-heading {
  padding-block: 40px 30px;
  border-bottom: 1px solid var(--line);
}

.events-heading .eyebrow { color: var(--muted); font-size: 14px; }
.events-heading h1 {
  margin-bottom: 0;
  color: var(--navy);
  font-family: Georgia, "Times New Roman", "Microsoft YaHei", serif;
  font-size: 36px;
  line-height: 1.2;
}

.seasonal-event + .seasonal-event { margin-top: 64px; border-top: 1px solid var(--line); }

.event-overview {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  align-items: start;
  gap: 48px;
  padding-block: 44px 56px;
}

.event-copy { min-width: 0; }
.event-kicker {
  margin-bottom: 14px;
  color: var(--red);
  font-size: 14px;
  font-weight: 800;
  text-transform: uppercase;
}

.event-copy h2 {
  margin-bottom: 16px;
  color: var(--navy);
  font-family: Georgia, "Times New Roman", "Microsoft YaHei", serif;
  font-size: 48px;
  line-height: 1.12;
  overflow-wrap: anywhere;
}

.event-price {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 5px;
  margin-bottom: 20px;
  color: var(--red);
}

.event-price strong { font-family: Georgia, "Times New Roman", serif; font-size: 42px; line-height: 1; }
.event-price span, .event-intro { font-size: 17px; line-height: 1.7; }
.event-intro { max-width: 540px; margin-bottom: 24px; color: var(--muted); }

.event-menu-group { padding-top: 20px; border-top: 1px solid var(--line); }
.event-menu-group h3 {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px 12px;
  margin: 0 0 10px;
  color: var(--navy);
  font-size: 22px;
  line-height: 1.4;
}
.event-step { color: var(--red); font-size: 14px; font-weight: 800; }
.event-choice { margin-left: auto; color: var(--muted); font-size: 14px; font-weight: 400; }
.event-menu-detail { display: block; margin-top: 4px; color: var(--muted); font-size: 14px; line-height: 1.5; }

.event-menu {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 24px;
  margin: 0 0 20px;
  padding: 0;
  list-style: none;
}

.event-menu li {
  padding-block: 12px;
  color: var(--navy);
  font-size: 16px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.event-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.event-actions .btn { white-space: normal; text-align: center; line-height: 1.5; }
.event-availability { margin: 16px 0 0; color: var(--muted); font-size: 14px; line-height: 1.7; }
.event-campaign-poster { width: 100%; max-width: 560px; margin: 0 auto; }
.event-campaign-poster > a { display: block; }
.event-campaign-poster img { display: block; width: 100%; height: auto; border-radius: 6px; }
.event-campaign-poster figcaption { margin-top: 14px; color: var(--navy); font-size: 14px; line-height: 1.5; }
.event-campaign-poster figcaption a { text-decoration: underline; text-underline-offset: 4px; }
.events-main a:focus-visible { outline: 3px solid var(--blue); outline-offset: 4px; }

@media (max-width: 960px) {
  .event-overview { grid-template-columns: 1fr; gap: 32px; }
}

@media (max-width: 620px) {
  .events-main { width: calc(100% - 36px); padding-bottom: 40px; }
  .events-heading { padding-block: 28px 22px; }
  .events-heading h1 { font-size: 30px; }
  .event-overview { padding-block: 30px 36px; }
  .event-copy h2 { font-size: 36px; line-height: 1.2; }
  .event-menu { column-gap: 16px; }
  .event-actions .btn { flex: 1 1 200px; }
}
