/* Locale-specific typography and text fitting. */
html[lang="en"] { --ff-jp: "Helvetica Neue", Arial, system-ui, sans-serif; }
html[lang="zh-CN"] { --ff-jp: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif; }
.p-lang__i[hreflang="zh-CN"] { font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif; letter-spacing: 0.04em; }
.p-lang__i[hreflang="zh-TW"] { font-family: "PingFang TC", "Microsoft JhengHei", "Noto Sans TC", sans-serif; }
html:not([lang="ja"]) .p-date__badge { white-space: normal; }
html[lang="en"] .p-hero__catch { letter-spacing: 0.02em; }
html[lang="en"] .p-date__lead,
html[lang="en"] .p-drawer__jp { letter-spacing: 0.02em; }
/* Translated button labels may wrap inside the original fixed-width layouts. */
html:not([lang="ja"]) main .c-btn { white-space: normal; text-align: center; }
html[lang="en"] .p-plan__spec dt { overflow-wrap: anywhere; }
@media (min-width: 900px) and (max-width: 1400px) {
  html[lang="en"] .p-header.is-stuck .p-header__bar { gap: 0.5rem; }
  html[lang="en"] .p-gnav__list { gap: 0.75rem; }
  html[lang="en"] .p-gnav__link { font-size: 0.8rem; letter-spacing: 0; }
  html[lang="en"] .p-header.is-stuck .p-header__util { margin-left: 0; }
  html[lang="en"] .p-header__cta { padding-inline: 1rem; }
}
@media (max-width: 767px) {
  html[lang="en"] .p-hero__catch { font-size: clamp(0.75rem, 3.7vw, 1.5rem); white-space: normal; }
  html[lang="en"] .p-date__venue { padding-inline: 1em; }
  html[lang="en"] .u-nw { white-space: normal; }
}

/* Keep localized weekdays beside their dates on the narrowest phones. */
html:lang(zh) .p-date__main small { font-family: var(--ff-jp); }
@media (max-width: 359px) {
  html:not([lang="ja"]) .p-date__main { gap: 0 0.06em; }
  html:not([lang="ja"]) .p-date__main b { font-size: 2.5rem; }
  html:not([lang="ja"]) .p-date__y { font-size: 1.25rem; }
  html:not([lang="ja"]) .p-date__main small { font-size: 0.75rem; }
  html:not([lang="ja"]) .p-date__dash { font-size: 1.5rem; }
}
