:root { --accent: #386442; }
.page-tab.is-active { color: #31563a; background: #eaf2e8; }
.event-eyebrow { margin: 0 0 8px; color: var(--muted); font-size: 18px; }
#formTitle { margin: 0; font-size: 34px; line-height: 1.35; letter-spacing: -1px; }
.region-choices { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.region-choice { position: relative; display: flex; align-items: flex-start; gap: 12px; padding: 22px 18px; border: 2px solid var(--line); border-radius: 12px; cursor: pointer; }
.region-choice input { margin-top: 6px; }
.region-choice strong { display: block; font-size: 26px; }
.region-choice > span > span { display: block; margin-top: 8px; color: var(--muted); font-size: 18px; }
.region-check { display: none; }
.region-choice:has(input:checked) { background: #f1f6ee; border-color: var(--accent); }
.region-choice:hover { border-color: #6d886a; }
.venue-details { padding: 20px 0; margin-top: 24px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.venue-address { display: grid; gap: 5px; }
.venue-address strong { font-size: 21px; }
.venue-address span { font-size: 18px; color: var(--muted); }
.venue-address a { width: fit-content; padding: 8px 0; color: #3b6245; text-underline-offset: 4px; }
.poster-details { margin-top: 6px; }
.poster-details summary { width: fit-content; padding: 8px 0; font-size: 18px; cursor: pointer; text-decoration: underline; text-underline-offset: 4px; }
.poster-details img { display: block; width: 100%; max-width: 480px; height: auto; margin: 12px auto 0; border-radius: 8px; }
.schedule-option:has(input:checked) { border-color: var(--accent); background: #f1f6ee; box-shadow: 0 0 0 1px var(--accent); }
.participation-notice { margin: 22px 0 0; font-size: 20px; }
.personal-fields { border-top: 0; padding-top: 0; }
.one-person-notice { margin: 24px 0 0; padding: 14px 18px; border-radius: 8px; background: #f5f5ef; font-size: 18px; }
.one-person-notice p { margin: 6px 0 0; }
.submit-button:hover { background: #294c32; }
.submit-button:disabled { cursor: wait; }
.page-footer { font-size: 16px; color: var(--muted); }
@media (max-width: 599px) {
  #formTitle { font-size: 30px; }
  .region-choices { grid-template-columns: 1fr; gap: 12px; }
  .region-choice { padding: 18px 16px; }
  .region-choice strong { font-size: 24px; }
  .region-choice > span > span { margin-top: 3px; }
}
