/* 全ページ共通の文字組み。デスクトップの字体・配色・サイズは維持。 */
h1,h2,h3,.card-title { word-break: auto-phrase; text-wrap: balance; }
p,li { line-break: strict; text-wrap: pretty; }
budoux-ja.type-phrase { display: inline; word-break: keep-all; overflow-wrap: anywhere; }
html.typography-ready.typography-ready.typography-ready.typography-ready.typography-ready body :is(.type-unit,.type-run,.type-chunk) {
  display: inline !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
  font: inherit !important;
  letter-spacing: inherit !important;
  color: inherit !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
}
html.typography-ready.typography-ready.typography-ready.typography-ready.typography-ready body :is(.type-unit,.type-chunk) { white-space: nowrap !important; }
html.typography-ready.typography-ready.typography-ready.typography-ready.typography-ready body .type-run { white-space: normal !important; }
/* 明示した数字・括弧のまとまりはBudoUX未読込でも保持。 */
button,.link-button { max-width: 100%; }
@media (max-width: 600px) {
  body { font-size: 17px; }
  html.typography-ready.typography-ready.typography-ready.typography-ready.typography-ready body :is(h1,h2,h3,.step-title,.card-title,.activity-card-name,.calendar-event-title,.video-title) {
    font-size: clamp(20px, 5.5vw, 28px) !important;
    letter-spacing: .06em !important;
  }
  html.typography-ready.typography-ready.typography-ready.typography-ready.typography-ready body :is(p,li,.section-copy,.activity-card-description,.calendar-event-summary,.room-content,.video-summary) {
    font-size: 17px !important;
    line-height: 1.9 !important;
    letter-spacing: .02em !important;
  }
  html.typography-ready.typography-ready.typography-ready.typography-ready.typography-ready body :is(button,.link-button,.private-door-link,.calendar-ics-button) {
    letter-spacing: .04em;
    line-height: 1.8;
    min-width: 0;
    white-space: normal;
  }
  html.typography-ready.typography-ready.typography-ready.typography-ready.typography-ready body :is(.membership-option,.pillar,.person-card,.entry-card,.news-entry,.calendar-event-row,.private-door-card,.video-card,.condition-card) {
    padding-left: 20px !important;
    padding-right: 20px !important;
    min-width: 0;
    box-sizing: border-box;
  }
  html.typography-ready.typography-ready.typography-ready.typography-ready.typography-ready body :is(.activity-card,.condition-item) {
    padding-left: 20px !important;
    padding-right: 20px !important;
    box-sizing: border-box;
    min-width: 0;
  }
  html.typography-ready.typography-ready.typography-ready.typography-ready.typography-ready body .vertical-title {
    font-size: clamp(24px, 7vw, 30px) !important;
    letter-spacing: .06em !important;
    line-height: 1.85 !important;
    height: auto;
    max-height: none;
    white-space: nowrap;
    word-break: keep-all;
    overflow-wrap: normal;
    flex-shrink: 0;
  }
  html.typography-ready.typography-ready.typography-ready.typography-ready.typography-ready body .vertical-title budoux-ja { white-space: nowrap; overflow-wrap: normal !important; }
  html.typography-ready.typography-ready.typography-ready.typography-ready.typography-ready body .hero-stage { min-height: 320px; height: auto; padding-block: 20px; box-sizing: border-box; }
  html.typography-ready.typography-ready.typography-ready.typography-ready.typography-ready body :is(.calendar-event-title,.room-title,.section-heading > h2,.membership-option h3) { min-width: 0; max-width: 100%; }
  html.typography-ready.typography-ready.typography-ready.typography-ready.typography-ready body .calendar-event-row { scroll-margin-top: 95px; }
  html.typography-ready.typography-ready.typography-ready.typography-ready.typography-ready body .calendar-marker { white-space: normal; }
  html.typography-ready.typography-ready.typography-ready.typography-ready.typography-ready body .section-nav a { white-space: normal; }
}
