/* Val visual QA, 2026-09-22. Keep desktop type hierarchy intact. */
.detail-hero { overflow:hidden; background-clip:padding-box; }
.detail-hero::before { inset:0; border-radius:inherit; pointer-events:none; }
.catering-capabilities .live-stations-layout { grid-template-columns:minmax(0,1fr); gap:2rem; background:transparent; }
.catering-capabilities .live-stations-media { width:100%; min-height:0; aspect-ratio:4 / 3; align-self:start; }
.catering-capabilities .live-stations-media > .live-stations-photo--main:only-child { position:relative; inset:auto; width:100%; height:auto; aspect-ratio:4 / 3; }
.catering-capabilities .live-stations-photo--main img { width:100%; height:100%; object-fit:cover; }
.hero:has(.hero-image--val)::after { background:linear-gradient(180deg,rgba(3,12,9,.65),rgba(3,12,9,.57) 55%,rgba(3,12,9,.85)); }
.hero-image--val { object-position:center 60%; }
.outlet-hero-overlay h1 { margin-block:.3em; }
.live-stations-photo--main { inset: 0; }
.live-stations-media > .live-stations-photo--main:only-child { inset: 0; }
.outlet-hero-overlay h1,.detail-hero h1,.story-copy h2,.section-intro h2,.section-heading h2 { text-wrap: balance; }
.outlet-hero-overlay h1 { line-height: 1.08; }
.outlet-hero-overlay > p:last-child,.detail-hero > div > p { line-height: 1.65; }
.catering-detail .detail-hero--catering,
.story-detail .detail-hero--story { border-bottom:0; }
.live-stations-media:has(>figure:only-child) { display:block; }
.live-stations-media>figure:only-child { width:100%; margin:0; }
@media(max-width:767px) {
  .live-stations-media { min-height: 0; aspect-ratio: 4 / 3; margin-bottom: 2rem; }
  .live-stations-photo--main { inset: 0; }
  .location-grid h3 { font-size:1.65rem; line-height:1.3; }
  .location-grid .location-brand { display:block; font-size:.9rem; line-height:1.5; }
  .location-grid .location-name { display:block; text-wrap:balance; }
  .location-grid article>div>small { line-height:1.5; }
  .location-grid .location-actions { gap:.5rem; }
  .location-grid .location-actions a { display:inline-flex; align-items:center; justify-content:center; min-height:48px; min-width:64px; padding:.6rem .75rem; font-size:.75rem; line-height:1.5; border:1px solid var(--line); border-radius:4px; }
  .outlet-hero h1 { max-width:none; font-size:clamp(2.25rem,9.2vw,2.75rem); line-height:1.25; letter-spacing:-.02em; text-wrap:balance; }
  .awards .section-intro h2 { font-size:clamp(2.25rem,9.2vw,2.75rem); line-height:1.25; text-wrap:balance; }
  .story-detail .detail-hero h1,
  .catering-detail .detail-hero h1 { max-width:17ch; font-size:clamp(2.5rem,10.5vw,3rem); line-height:1.25; text-wrap:balance; }
  .hero-title { line-height:1.25; }
  .story-copy h2,.section-heading h2,.section-intro h2,.catering-copy h2,
  .family h2,.careers-preview h2,.booking-finale h2,.outlet-story h2,
  .catering-detail h2,.story-detail h2 { line-height:1.25; }
  .dish-card h3,.award-card h3,.format-grid h3,.event-services-grid h3,
  .catering-process .process-steps article h3,.menu-mobile-section summary span { line-height:1.35; }
.live-stations-list article h3 { line-height:1.35!important; }
  .mobile-menu a,.action,.eyebrow { line-height:1.5; }
  .location-grid address { font-size:.75rem; line-height:1.65; }
}

/* Keep the branch name on its own line at every breakpoint. */
.location-grid .location-name { display:block; text-wrap:balance; }

/* Site-wide multilingual type safety, 2026-09-30.
   Keep the approved scale, but give accents and CJK/Hangul glyphs a safe line box. */
html[lang] h1,
html[lang] h2,
html[lang] h3,
html[lang] .hero-title,
html[lang] blockquote p {
  overflow-wrap:anywhere;
  text-wrap:balance;
}
html[lang] h1,
html[lang] .hero-title { line-height:1.18!important; }
html[lang] h2 { line-height:1.22!important; }
html[lang] h3 { line-height:1.28!important; }
html[lang] blockquote p { line-height:1.3!important; }
html[lang] :is(.hero-lead,.section-intro>p,.detail-hero>div>p:last-child,.story-copy>p:not(.eyebrow),.archive-description) {
  line-height:1.65;
  text-wrap:pretty;
}
html:lang(vi) :is(h1,h2,h3,.hero-title,blockquote p) { letter-spacing:-.008em; }
html:is(:lang(ko),:lang(ja),:lang(zh-Hans)) :is(h1,h2,h3,.hero-title,blockquote p) {
  line-height:1.34!important;
  letter-spacing:0;
  word-break:keep-all;
  overflow-wrap:break-word;
}
html:is(:lang(ko),:lang(ja),:lang(zh-Hans)) :is(.hero-lead,.section-intro>p,.detail-hero>div>p:last-child,.story-copy>p:not(.eyebrow),.archive-description) {
  line-height:1.75;
  word-break:normal;
}
.language-switcher>nav a {
  min-width:0;
  line-height:1.45;
}
.language-switcher>nav a small {
  min-width:0;
  font-family:'Cabin','Arial',sans-serif;
  font-size:.7rem;
  line-height:1.4;
  letter-spacing:0;
  overflow-wrap:normal;
  word-break:keep-all;
}
.language-switcher>nav { width:190px; }

@media(max-width:767px) {
  html[lang] .hero .hero-title {
    font-size:clamp(2.25rem,10.8vw,2.9rem);
    line-height:1.2!important;
  }
  html[lang] :is(.detail-hero h1,.outlet-hero h1) {
    font-size:clamp(2.35rem,10.5vw,3.15rem);
    line-height:1.24!important;
  }
  html[lang] :is(.section-intro h2,.detail-section h2,.story-copy h2,.catering-copy h2,.outlet-story h2,.booking-finale h2) {
    line-height:1.24!important;
  }
  html:is(:lang(ko),:lang(ja),:lang(zh-Hans)) :is(.hero .hero-title,.detail-hero h1,.outlet-hero h1) {
    font-size:clamp(2.2rem,9.8vw,2.85rem);
    line-height:1.36!important;
  }
  html:is(:lang(ko),:lang(ja),:lang(zh-Hans)) :is(.section-intro h2,.detail-section h2,.story-copy h2,.catering-copy h2,.outlet-story h2,.booking-finale h2) {
    font-size:clamp(2.2rem,10vw,3.15rem);
    line-height:1.36!important;
  }
}

@media(min-width:768px) {
  /* Keep the two-column tablet review grid from inheriting the desktop feature-card span. */
  .homepage-reviews .review-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .homepage-reviews .review-grid>article { grid-column:auto!important; grid-row:auto!important; min-width:0; }
  html:is(:lang(ko),:lang(ja),:lang(zh-Hans)) :is(.hero-title,.detail-hero h1,.outlet-hero h1) {
    font-size:clamp(3.45rem,5.8vw,6.5rem);
    line-height:1.3!important;
  }
  html:is(:lang(ko),:lang(ja),:lang(zh-Hans)) :is(.section-intro h2,.detail-section h2,.story-copy h2,.catering-copy h2,.outlet-story h2) {
    line-height:1.32!important;
  }
}
