/* Friendly/editorial web: existing Zen fonts, cream #f3f0e7,
   paper #fffaf1, ink #1b2924, CTA #2f6f64. 8px rhythm, no motion,
   no cropped flyer, competing primary actions or fixed text heights. */
.seminar-page .upcoming-event {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 48px; padding: 40px; margin: 32px 0 48px;
  background: #fffaf1; color: #1b2924; border-top: 3px solid #2f6f64;
  scroll-margin-top: 112px; font-family: "Zen Kaku Gothic New", sans-serif;
}
.upcoming-event .upcoming-event-label { color: #2f6f64; font-size: 14px; font-weight: 700; margin: 0 0 16px; }
#night-talk-title { font: 700 clamp(28px, 3vw, 40px)/1.5 "Zen Old Mincho", serif; margin: 0 0 24px; }
.upcoming-event-copy > p { font-size: 16px; line-height: 1.8; }
.upcoming-event-details { margin: 24px 0; }
.upcoming-event-details > div { display: grid; grid-template-columns: 80px minmax(0, 1fr); gap: 16px; padding: 12px 0; border-bottom: 1px solid #d6d3c8; }
.upcoming-event-details dt, .upcoming-event-details dd { margin: 0; font-size: 16px; line-height: 1.8; }
.upcoming-event-details dt { font-weight: 500; }
.upcoming-event-details dd { font-weight: 700; }
.upcoming-event-details dd span { display: block; font-size: 14px; font-weight: 400; }
.upcoming-event-details dd span + span { margin-top: 8px; }
.upcoming-event .upcoming-event-apply { display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 52px; padding: 16px; background: #2f6f64; color: #fff; font-size: 18px; font-weight: 700; text-decoration: none; border-radius: 4px; }
.upcoming-event .upcoming-event-apply:hover { background: #255b53; }
.upcoming-event a:focus-visible { outline: 3px solid #255b53; outline-offset: 4px; }
.upcoming-event .upcoming-event-note { font-size: 13px; line-height: 1.8; margin: 12px 0 0; }
.upcoming-event .upcoming-event-flyer { margin: 0; min-width: 0; align-self: start; }
.upcoming-event-flyer img { display: block; width: 100%; height: auto; }
.upcoming-event .upcoming-event-flyer figcaption { padding: 16px 0; margin: 0; background: transparent; }
.upcoming-event-flyer figcaption a { display: inline-flex; align-items: center; min-height: 44px; color: #255b53; text-decoration: underline; font-size: 16px; }
@media (max-width: 800px) {
  .seminar-page .upcoming-event { grid-template-columns: minmax(0, 1fr); padding: 24px; gap: 32px; }
}
@media (max-width: 400px) {
  .seminar-page .upcoming-event { padding: 16px; }
  .upcoming-event-details > div { grid-template-columns: 80px minmax(0, 1fr); gap: 8px; }
  .upcoming-event .upcoming-event-apply { font-size: 16px; }
}
