/* Shared interface typography. Page layouts retain their own content hierarchy. */
:root {
  --font-ui: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  --type-page-title: clamp(30px, 4vw, 44px);
  --type-section-title: clamp(23px, 2.5vw, 30px);
  --type-card-title: clamp(20px, 2vw, 24px);
}
body { font-family: var(--font-ui); line-height: 1.6; }
button, input, select, textarea, optgroup { font-family: var(--font-ui); }
h1, h2, h3, h4, h5, h6 { font-family: var(--font-ui); font-weight: 700; }
h1, h2, h3 { letter-spacing: -.025em; }
body .container h1,
body.home-page .home-intro h1,
body.discovery-page .schedule-head-v34 h1,
body.game-detail-page .detail-main h1,
body.public-booking-page .public-booking-game h1,
body .news-journal-header h1,
body .reading-article > h1 { font-size: var(--type-page-title); line-height: 1.18; font-weight: 700; }
body .container h2 { line-height: 1.25; }
body .home-section-head h2,
body .campaign-schedule-panel h2 { font-size: var(--type-section-title); }
body .campaign-showcase-card-v35 h2,
body .calendar-agenda-content h2,
body.home-page .home-game-card h3 { font-size: var(--type-card-title); line-height: 1.3; }
body .news-row h2 { font-size: var(--type-section-title); line-height: 1.3; }
.button, button.button, a.button { font-family: var(--font-ui); font-weight: 600; line-height: 1.4; border-radius: 12px; box-shadow: none !important; }
body .site-nav-v26 a { font-weight: 600; }
body .site-brand-v26__text { font-weight: 700; }
.calendar-agenda-time, .cal-event-time, .month-day-head-v34, .participation-price__amount { font-variant-numeric: tabular-nums; }
.reading-prose { font-family: var(--font-ui); font-size: 18px; line-height: 1.8; }
.reading-prose :is(code, pre), .writing-sheet #id_body { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }
@media (max-width: 600px) {
  .reading-prose { font-size: 17px; }
  body .container h1 { overflow-wrap: break-word; }
  body.discovery-page .schedule-head-v34 { flex-direction: column; align-items: stretch; gap: 12px; }
  body.discovery-page .schedule-head-v34 h1 { margin: 0; }
  body.discovery-page .schedule-head-v34 .view-switch { align-self: flex-start; }
}
