/* Shared reading rules; layouts, images, and saved copy retain their identity. */
body :is(h1,h2,h3,h4,p,li,dt,dd,blockquote,figcaption,summary,label,legend){
 word-break:normal;
 overflow-wrap:break-word;
 line-break:strict;
}
body :is(h1,h2,h3,h4,summary,legend){text-wrap:balance}
body :is(p,li,dd,blockquote,figcaption){text-wrap:pretty}
body :is(button,.button,.hero-primary,.hero-secondary){
 min-inline-size:0;
 max-inline-size:100%;
 white-space:normal;
 overflow-wrap:break-word;
 text-wrap:balance;
}
body :is(.explore-copy,.stay-option-copy,.fund-intro,.member-lead,.gateway-introduction,.path-copy){min-inline-size:0}
/* Inline blocks wrap at a phrase boundary. An oversized phrase can still
   reflow internally on a small screen or with enlarged text. */
body .type-phrase{
 font:inherit;
 color:inherit;
 letter-spacing:inherit;
 display:inline-block;
 max-inline-size:100%;
 white-space:normal;
 word-break:normal;
 overflow-wrap:break-word;
 line-break:strict;
 text-wrap:wrap;
 vertical-align:baseline;
}
body [data-type-heading]{word-break:normal;overflow-wrap:break-word;text-wrap:balance}
html[lang=ja] body :is(.heading-phrase,.sponsor-heading span,.village-headline span,.gateway-introduction h2>span){
 max-inline-size:100%;
 white-space:normal;
 overflow-wrap:break-word;
}
html[lang=ja] body .gateway-introduction h2>span{display:inline-block}
html[lang=ja] body .aerial-hero .hero-photo-title h1{white-space:normal;overflow-wrap:break-word}
.hero-photo-title .hero-future{text-wrap:wrap}
/* Preserve whole English words and native Thai word boundaries. */
html[lang=en] body :is(h1,h2,h3,p,li){word-break:normal;overflow-wrap:break-word;line-break:auto}
html[lang=th] body :is(h1,h2,h3,p,li){word-break:normal;overflow-wrap:break-word;line-break:auto;letter-spacing:normal}
@media(max-width:800px){
 html[lang=ja] body :is(.section,.world-hero,.calendar-invitation-copy) h2[data-type-heading]{
  font-size:clamp(1.5rem,6.7vw,1.875rem);
  line-height:1.65;
  letter-spacing:.01em;
 }
 html[lang=ja] body .explore-card h3[data-type-heading]{
  font-size:1.75rem;
  line-height:1.5;
  letter-spacing:0;
 }
 html[lang=ja] body .hero-photo-title .hero-future{max-inline-size:20em;line-height:1.9}
 html[lang=ja] body .hero-future>.type-phrase{letter-spacing:.025em}
 body .explore-card>div>.explore-link{white-space:normal;gap:1.25rem;line-height:1.7}
 body .explore-link>span[aria-hidden]{flex:none}
}
