.event-section {
  position: relative;
  z-index: 1;
  padding-bottom: calc(60 * var(--u));
  border-bottom: 1px solid var(--ink);
}

.page main > #items + .event-section { border-top: 0; }

.event-section__heading {
  /* Eight 459u detail headings leave this section 8u before a 460u grid line. */
  height: calc(468 * var(--u));
  display: flex;
  align-items: flex-end;
  gap: calc(22 * var(--u));
  padding: 0 calc(var(--gutter) + var(--pad)) calc(28 * var(--u));
  border-bottom: 1px solid var(--ink);
}

.event-section__heading .section-title { margin: 0; }
.event-section__heading > span {
  margin-bottom: calc(9 * var(--u));
  font-size: calc(18 * var(--u));
  letter-spacing: .08em;
  white-space: nowrap;
}

.event-section__intro {
  min-height: var(--cell);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: calc(2 * var(--pad));
  margin-inline: calc(var(--gutter) + var(--pad));
  padding-block: var(--pad);
}

.event-section__visual {
  min-width: 0;
  min-height: calc(var(--cell) - 2 * var(--pad));
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(42 * var(--u));
  padding: calc(30 * var(--u));
  background: #fff;
}

.event-section__visual img {
  width: auto;
  max-width: 32%;
  height: calc(260 * var(--u));
  object-fit: contain;
}

.event-section__times { font-size: calc(52 * var(--u)); line-height: 1; }
.event-section__atmos {
  font-size: calc(52 * var(--u));
  line-height: 1.05;
  letter-spacing: -.04em;
  text-align: center;
}

.event-section__copy {
  min-width: 0;
  align-self: center;
  font-family: "Zen Kaku Gothic New", "Yu Gothic", sans-serif;
}

.event-section__copy h3 {
  display: flex;
  align-items: center;
  gap: calc(12 * var(--u));
  font-size: calc(32 * var(--u));
  line-height: 1.3;
  font-weight: 700;
}

.event-section__copy h3 .cross { width: calc(24 * var(--u)); height: calc(24 * var(--u)); flex: none; }
.event-section__copy p {
  margin-top: calc(18 * var(--u));
  font-size: calc(16 * var(--u));
  line-height: 1.8;
  letter-spacing: .04em;
}
.event-section__copy h4 {
  margin: calc(24 * var(--u)) 0 0;
  font-size: calc(18 * var(--u));
  font-weight: 700;
  letter-spacing: .06em;
}
.event-section__copy h4 + p { margin-top: calc(8 * var(--u)); }
.event-section__copy > a {
  display: inline-block;
  margin-top: calc(12 * var(--u));
  font-size: calc(15 * var(--u));
  text-decoration: underline;
  text-underline-offset: .2em;
}

.event-section__outline { margin-inline: calc(var(--gutter) + var(--pad)); }
.event-section__outline-heading {
  display: flex;
  align-items: baseline;
  gap: calc(20 * var(--u));
  padding: calc(34 * var(--u)) 0 calc(24 * var(--u));
}
.event-section__outline-heading h3 {
  display: flex;
  align-items: center;
  gap: calc(12 * var(--u));
  font-size: calc(32 * var(--u));
  line-height: 1.2;
  letter-spacing: .07em;
}
.event-section__outline-heading .cross { width: calc(22 * var(--u)); height: calc(22 * var(--u)); }
.event-section__outline-heading > span { font-size: calc(14 * var(--u)); }
.event-section__facts { margin: 0; font-family: "Zen Kaku Gothic New", "Yu Gothic", sans-serif; }
.event-section__fact {
  min-height: calc(74 * var(--u));
  display: grid;
  grid-template-columns: 24% minmax(0, 1fr);
  align-items: center;
  border-bottom: 1px solid rgba(26, 26, 26, .48);
  font-size: calc(17 * var(--u));
  line-height: 1.5;
  letter-spacing: .04em;
}
.event-section__fact dt { padding: calc(14 * var(--u)) calc(32 * var(--u)); }
.event-section__fact dd { min-width: 0; margin: 0; padding: calc(14 * var(--u)) 0 calc(20 * var(--u)); }
.event-section__fact a { text-decoration: underline; text-underline-offset: .2em; overflow-wrap: anywhere; }
.event-section__fact--tickets { border-bottom: 0; }
.event-section__fact--tickets dd { padding-block: calc(22 * var(--u)); }
.event-section__fact--tickets strong { display: block; font-weight: 700; }
.event-section__fact--tickets ul { margin: calc(12 * var(--u)) 0 0; padding: 0; list-style: none; }
.event-section__fact--tickets li + li { margin-top: calc(6 * var(--u)); }
.event-section__fact--access { align-items: start; }
.event-section__fact--access dt { padding-top: calc(34 * var(--u)); }
.event-section__fact--access dd {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
  gap: calc(30 * var(--u));
  padding-top: calc(28 * var(--u));
}
.event-section__access-copy p { font-weight: 700; }
.event-section__access-copy ul { margin: calc(24 * var(--u)) 0 0; padding: 0; list-style: none; }
.event-section__access-copy li { margin-top: calc(6 * var(--u)); }
.event-section__fact iframe {
  width: 100%;
  height: calc(380 * var(--u));
  border: 0;
  background: #d9dedc;
}

.page main > .event-section + .notice-area { border-top: 0; }

@media (max-width: 767px) {
  .event-section { padding-bottom: 10vw; }
  .event-section__heading { height: auto; min-height: 25vw; gap: 2vw; padding: 0 5vw 4vw; }
  .event-section__heading .section-title { font-size: clamp(20px, 5.7vw, 30px); letter-spacing: .04em; }
  .event-section__heading .cross { width: 4vw; height: 4vw; }
  .event-section__heading > span { margin-bottom: .8vw; font-size: 2.4vw; }
  .event-section__intro { display: block; min-height: 0; margin-inline: 4vw; padding-block: 4vw; }
  .event-section__visual { min-height: 46vw; gap: 4vw; padding: 5vw; }
  .event-section__visual img { height: 34vw; max-width: 30%; }
  .event-section__times { font-size: 6vw; }
  .event-section__atmos { font-size: 6vw; }
  .event-section__copy { padding: 7vw 1vw 3vw; }
  .event-section__copy h3 { gap: 2vw; font-size: clamp(17px, 4.6vw, 24px); }
  .event-section__copy h3 .cross { width: 3.6vw; height: 3.6vw; }
  .event-section__copy p { margin-top: 3vw; font-size: clamp(13px, 3.2vw, 17px); }
  .event-section__copy h4 { margin-top: 5vw; font-size: clamp(14px, 3.5vw, 18px); }
  .event-section__copy h4 + p { margin-top: 2vw; }
  .event-section__copy > a { margin-top: 3vw; font-size: clamp(13px, 3vw, 16px); }
  .event-section__outline { margin-inline: 5vw; }
  .event-section__outline-heading { gap: 2vw; padding: 5vw 0 4vw; }
  .event-section__outline-heading h3 { gap: 1.5vw; font-size: 5vw; }
  .event-section__outline-heading .cross { width: 3vw; height: 3vw; }
  .event-section__outline-heading > span { font-size: 2.2vw; }
  .event-section__fact { min-height: 12vw; grid-template-columns: 29% minmax(0, 1fr); font-size: clamp(11px, 2.8vw, 15px); }
  .event-section__fact dt { padding: 2vw 2vw 2vw 0; }
  .event-section__fact dd { padding: 2vw 0 2vw 2vw; }
  .event-section__fact--tickets dd { padding-block: 3vw; }
  .event-section__fact--tickets ul { margin-top: 2vw; }
  .event-section__fact--tickets li + li { margin-top: 1.5vw; }
  .event-section__fact--access dt { padding-top: 4vw; }
  .event-section__fact--access dd { display: block; padding-top: 4vw; }
  .event-section__access-copy ul { margin-top: 4vw; }
  .event-section__access-copy li { margin-top: 1.5vw; }
  .event-section__fact iframe { height: 58vw; margin-top: 5vw; }
}
