/* Native language typography and flexible layouts share the approved palette. */
html:lang(zh) { --sans: "PingFang SC", "Microsoft YaHei", sans-serif; --serif: "Songti SC", "Noto Serif CJK SC", SimSun, serif; }
html:lang(ja) { --sans: "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif; --serif: "Hiragino Mincho ProN", "Yu Mincho", "Noto Serif CJK JP", serif; }
html:lang(zh) :is(h1,h2,h3,.hero-title,.m-hero-title), html:lang(ja) :is(h1,h2,h3,.hero-title,.m-hero-title) { line-height: 1.35; letter-spacing: .015em; }
html:lang(zh) .eyebrow, html:lang(ja) .eyebrow { letter-spacing: .12em; }
.language-list .language-name { min-width: 0; }
.language-current { margin-left: auto; }
:is(.action-button,.m-button,.booking-trigger) { max-width: 100%; white-space: normal; text-align: center; }
:is(.footer-column,.m-feature,.m-room-copy,.reason-card) { min-width: 0; }
:is(.site-footer a,.mobile-menu a) { overflow-wrap: anywhere; }
@media (min-width: 1201px) {
 html:not(:lang(en)):not(:lang(it)) .desktop-nav a { padding-inline: 8px; font-size: 10px; letter-spacing: .06em; }
}
@media (max-width: 600px) {
 html:lang(zh) :is(.hero-title,.m-hero h1), html:lang(ja) :is(.hero-title,.m-hero h1) { font-size: clamp(36px,10vw,58px); }
 .language-list { max-height: min(520px,calc(100svh - 180px)); }
}
/* A fixed 410px summary beside a long heading cannot fit the tablet content width. */
@media (min-width: 721px) and (max-width: 960px) {
 .section-intro { grid-template-columns: minmax(0,1fr); gap: 28px; }
 .section-intro > p { max-width: 55ch; }
}
/* Long native footer headings must wrap within their two-column mobile grid. */
.site-footer h2 { overflow-wrap: anywhere; hyphens: auto; }

/* Keep the official-site identifier quiet and readable above the hotel name. */
.official-site-label{display:block;margin-bottom:.65rem;font-size:.78em;letter-spacing:.18em;}
