/* Language links are real links and remain usable without JavaScript. */
.language-switch { display:flex; flex-wrap:nowrap; align-items:center; gap:8px; font:13px/1.5 var(--serif); letter-spacing:.025em; }
.language-switch a { display:inline-flex; align-items:center; min-height:36px; text-decoration:none; white-space:nowrap; }
.language-switch a[aria-current] { text-decoration:underline; text-underline-offset:5px; font-weight:400; }
.language-switch a:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
.language-rail { justify-content:center; margin:auto 0 8px; gap:6px; font-size:12px; flex-shrink:0; }
.language-rail + .rail-bottom { margin-top:0; padding-top:0; }
.language-header { display:none; }
.language-footer { margin:30px 0; color:#fff; }
body.localized { letter-spacing:.01em; }
body.locale-en { font-family:Georgia,'Times New Roman',serif; }
body.locale-zh-Hans { font-family:'Songti SC','Noto Serif CJK SC','SimSun',serif; }
body.localized :is(p,dd,dt,a,button,figcaption,small) { letter-spacing:.015em; }
body.localized :is(.phrase,.keep-together) { white-space:normal; }
body.locale-en .phrase::after { content:' '; }
body.localized :is(.rail-nav a,.rail-phone,.rail-menu) { font-size:13px; line-height:1.5; }
body.localized .rail-phone b { font-size:15px; }
body.localized .footer-top>p { writing-mode:horizontal-tb; max-width:15em; font-size:26px; line-height:1.5; }
body.localized .menu-dialog nav a { font-size:clamp(18px,2.5vw,28px); line-height:1.5; }
body.localized .mobile-booking a { font-size:13px; letter-spacing:0; }
body.localized .booking-popup-copy small { font-size:11px; letter-spacing:0; }
body.localized .booking-popup-copy strong { font-size:21px; letter-spacing:0; }
body.localized .booking-popup-copy>span { font-size:12px; gap:6px; padding:5px 8px; letter-spacing:0; }
body.locale-en .booking-popup-copy>span { font-size:12px; max-width:190px; }
body.localized .booking-popup-copy .link-arrow { --link-arrow-size:26px; }
body.localized .site-wrap #main h2.vertical-heading,
body.localized .site-wrap #main h1.vertical-heading,
body.localized .site-wrap #main .vertical-heading>span {
 display:block!important; writing-mode:horizontal-tb!important; width:auto!important; min-width:0!important; height:auto!important;
 white-space:normal!important; padding:0!important; letter-spacing:.025em!important; line-height:1.35!important;
}
body.localized .site-wrap #main h2.vertical-heading { font-size:clamp(28px,3.1vw,44px)!important; margin:0 0 28px!important; max-width:20em; }
body.localized .site-wrap #main .vertical-heading>span+span { margin-top:.1em; }
body.localized .site-wrap #main .vertical-heading>span:first-child::before { width:1.7em; height:1.7em; left:-.35em; top:-.25em; right:auto; }
body.localized .site-wrap #main .opening-heading { left:7%; right:7%; top:25%; width:auto; }
body.localized .site-wrap #main .opening-heading h1 { display:block; font-size:clamp(36px,4.7vw,70px); line-height:1.2; letter-spacing:.015em; max-width:13em; }
body.localized .site-wrap #main .opening-heading h1 span { display:block; writing-mode:horizontal-tb; white-space:normal; padding:0; }
body.localized .site-wrap #main .opening-heading .tagline-place { font-size:20px; margin:0 0 20px; letter-spacing:.08em; }
body.localized .site-wrap #main .opening-note { font-size:clamp(18px,1.9vw,27px); line-height:1.6; max-width:27em; }
body.localized .site-wrap #main .page-title h1 { font-size:clamp(36px,4.8vw,64px)!important; line-height:1.2!important; max-width:15em; }
body.localized .site-wrap #main .page-title { align-items:flex-start; }
body.localized .site-wrap #main .page-title>p:last-child { max-width:42em; line-height:1.7; }
body.localized .site-wrap #main :is(.copy-sentence,.copy-phrase) { display:inline; white-space:normal; }
body.localized .site-wrap #main :is(.split-copy,.editorial-row,.editorial-row.reversed,.breakfast-story,.folio-source,.folio-table,.folio-morning) {
 display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:32px 6%; align-items:start;
}
body.localized .site-wrap #main .editorial-row>figure { grid-column:1; grid-row:1/3; }
body.localized .site-wrap #main .editorial-row>h2 { grid-column:2; grid-row:1; }
body.localized .site-wrap #main .editorial-row>.section-copy { grid-column:2; grid-row:2; }
body.localized .site-wrap #main .breakfast-story>h2 { grid-column:2; grid-row:1; }
body.localized .site-wrap #main .breakfast-story>figure { grid-column:1; grid-row:1/3; }
body.localized .site-wrap #main .breakfast-story>.section-copy { grid-column:2; grid-row:2; }
body.localized .site-wrap #main .folio-source .source-image { grid-column:1; grid-row:1/3; }
body.localized .site-wrap #main .folio-source>h2 { grid-column:2; grid-row:1; }
body.localized .site-wrap #main .folio-source .source-copy { grid-column:2; grid-row:2; }
body.localized .site-wrap #main .folio-table .table-main { grid-column:1; grid-row:1/3; }
body.localized .site-wrap #main .folio-table>h2 { grid-column:2; grid-row:1; }
body.localized .site-wrap #main .folio-table .table-copy { grid-column:2; grid-row:2; }
body.localized .site-wrap #main .folio-table .table-detail { grid-column:1; grid-row:3; width:75%; margin:0; }
body.localized .site-wrap #main .folio-morning>figure { grid-column:1; grid-row:1/3; }
body.localized .site-wrap #main .folio-morning .morning-reading { grid-column:2; grid-row:1; width:auto; }
body.localized .site-wrap #main .folio-morning>.journal-copy { grid-column:2; grid-row:2; }
body.localized .site-wrap #main :is(.air-reading,.room-intro) { display:flex; flex-direction:column; align-items:stretch; gap:24px; }
body.localized .site-wrap #main :is(.air-reading,.room-intro)>h2 { align-self:start; }
body.localized .site-wrap #main .town-title { width:min(80%,660px); }
body.localized .site-wrap #main .town-title h2 { text-shadow:0 2px 8px #0008; }
body.localized .site-wrap #main .sky-story { display:block; }
body.localized .site-wrap #main .sky-story>p { max-width:42em; margin:24px auto 0; }
body.localized .site-wrap #main .sky-story h2 { margin-inline:auto!important; }
body.localized .site-wrap #main :is(.quiet-night.photo-cta,.reservation-check.photo-cta) { display:flex; flex-direction:column; align-items:flex-start; gap:24px; }
body.localized .site-wrap #main .photo-cta h2 { max-width:24em; }
body.localized .site-wrap #main :is(.lead,.section-copy p,.journal-copy p,.town-intro-copy p) { line-height:1.9; }
body.localized .site-wrap #main .data-list>div { grid-template-columns:minmax(110px,30%) minmax(0,1fr); }
body.localized .site-wrap #main .route-list ol { flex-wrap:wrap; }
body.localized .site-wrap #main .route-list li { overflow-wrap:anywhere; }
body.localized .site-wrap #main .small-seal { writing-mode:horizontal-tb; width:auto; }
body.localized .site-wrap #main .journal-aside { writing-mode:horizontal-tb; }
@media(max-width:960px) {
 body.localized .site-wrap #main .town-after { grid-template-columns:1fr; gap:24px; }
 body.localized .site-wrap #main .town-after>* { grid-column:1; }
}
@media(max-width:720px) {
 .language-header { display:flex; position:absolute; right:68px; top:20px; padding:0 8px; gap:10px; font-size:12px; color:#1e2830; background:#fffffff0; border-radius:4px; }
 .language-header a { min-height:36px; }
 body.localized .site-wrap #main .opening-heading { top:22%; left:24px; right:24px; }
 body.localized .site-wrap #main .opening-heading h1 { font-size:clamp(30px,8vw,42px); max-width:13em; }
 body.localized .site-wrap #main .opening-heading .tagline-place { font-size:16px; margin-bottom:16px; }
 body.localized .site-wrap #main .opening-note { font-size:17px; left:24px; right:24px; bottom:70px; }
 body.localized .site-wrap #main .opening-scroll { right:24px; bottom:20px; }
 body.localized .site-wrap #main .opening-foot { display:flex; align-items:flex-start; flex-direction:column; gap:14px; }
 body.localized .site-wrap #main .page-title h1 { font-size:clamp(29px,8vw,40px)!important; }
 body.localized .site-wrap #main .page-title>p:last-child { font-size:15px; }
 body.localized .site-wrap #main h2.vertical-heading { font-size:28px!important; }
 body.localized .site-wrap #main :is(.split-copy,.editorial-row,.editorial-row.reversed,.breakfast-story,.folio-source,.folio-table,.folio-morning) { display:flex; flex-direction:column; gap:28px; }
 body.localized .site-wrap #main :is(.editorial-row,.breakfast-story,.folio-source,.folio-table,.folio-morning)>* { width:100%; max-width:100%; margin-inline:0; }
 body.localized .site-wrap #main :is(.editorial-row,.breakfast-story,.folio-source)>figure,
 body.localized .site-wrap #main .folio-table>.table-main,
 body.localized .site-wrap #main .folio-morning>figure { order:-1; }
 body.localized .site-wrap #main .editorial-row figure img:not(.story-illustration) { aspect-ratio:4/3!important; min-height:0; }
 body.localized .site-wrap #main .folio-table .table-detail { width:75%; }
 body.localized .site-wrap #main .town-title { width:90%; }
 body.localized .site-wrap #main .town-title h2 { font-size:28px!important; }
 body.localized .site-wrap #main :is(.folio-air,.folio-room) { display:flex; flex-direction:column; gap:28px; }
 body.localized .site-wrap #main :is(.air-reading,.room-intro) { width:100%; }
 body.localized .site-wrap #main .air-reading h2 { font-size:28px!important; }
 body.localized .site-wrap #main .page-jump { flex-wrap:wrap; gap:14px 20px; }
 body.localized .site-wrap #main .data-list>div { grid-template-columns:minmax(88px,30%) minmax(0,1fr); gap:16px; }
 body.localized .site-wrap #main .room-option dt { font-size:13px; }
 body.localized .site-wrap #main .room-option dd { white-space:nowrap; }
 body.localized .site-wrap #main .photo-cta h2 { font-size:27px!important; }
 body.localized .footer-top>p { font-size:24px; }
 body.localized .mobile-booking a { line-height:1.35; text-align:center; padding-inline:8px!important; }
 body.localized .mobile-booking a:last-child { gap:6px; }
 body.localized .booking-popup-copy strong { font-size:19px; }
 body.localized .booking-popup-copy small { font-size:10px; }
 body.locale-en .booking-popup-copy>span { font-size:11px; max-width:174px; }
 body.localized .booking-popup-copy .link-arrow { --link-arrow-size:24px; }
 body.localized .site-wrap #main .text-link { gap:12px; }
}
@media(max-width:360px) {
 .language-header { right:57px; gap:7px; padding:0 6px; font-size:11px; }
 .site-header .mobile-brand { max-width:76px; }
 body.localized .site-wrap #main .page-title { padding-inline:22px; }
}

/* Keep localized town introductions compatible with the new photo column. */
@media(min-width:1101px) {
 body.localized .site-wrap #main .town-intro-with-photos { grid-template-columns:minmax(0,.7fr) minmax(0,1fr) minmax(250px,.85fr); }
}
@media(max-width:720px) {
 body.localized .site-wrap #main .town-intro-with-photos .town-intro-copy { display:block; }
}
