/* Homepage composition. Actual menu state, photographs and dish names remain
   owned by home.js; the display serif is confined to the welcome headline. */
html { scroll-padding-bottom:calc(var(--dock-height) + 24px + env(safe-area-inset-bottom)); }
.home-shell { padding-bottom:max(10em,calc(var(--dock-height) + 40px + env(safe-area-inset-bottom))); }
.skip-link { top:12px; transform:translateY(calc(-100% - 24px)); }
.skip-link:focus { transform:translateY(0); }
.home-header { min-height:76px; margin-bottom:24px; padding-block:14px; }
.home-profile { display:inline-grid; place-items:center; flex:none; width:44px; height:44px; margin-right:auto; border:1px solid var(--line); border-radius:14px; background:var(--surface); color:var(--brand); }
.home-profile > svg { display:block; width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.header-tools { width:auto; flex-wrap:nowrap; gap:12px; border:0; padding:0; }
.header-tools [data-language-switch] { margin:0; }
.contact-menu { position:relative; }
.contact-menu summary { display:flex; align-items:center; justify-content:center; gap:8px; min-width:44px; min-height:44px; padding:10px 12px; border:1px solid var(--line); border-radius:12px; cursor:pointer; list-style:none; font-size:13px; font-weight:700; }
.contact-menu summary::-webkit-details-marker { display:none; }
.contact-menu summary > svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linejoin:round; }
.contact-menu[open] summary { background:var(--soft); }
.header-tools .contact-menu .header-actions { position:absolute; z-index:60; top:calc(100% + 10px); right:0; width:max-content; max-width:calc(100vw - 40px); display:flex; flex-wrap:nowrap; gap:8px; padding:12px; border:1px solid var(--line); border-radius:16px; background:var(--surface); box-shadow:0 12px 32px #183a2b16; }
.header-tools .contact-menu .icon-button { border:1px solid var(--line); }
.welcome { grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); gap:48px; margin-bottom:36px; min-height:0; }
.welcome-content { padding:12px 0; }
.welcome-eyebrow { display:flex; flex-wrap:wrap; align-items:center; gap:12px; font-size:11px; font-weight:700; letter-spacing:1.4px; margin-bottom:24px; }
.welcome-open { padding:4px 9px; background:#e2edb3; border-radius:100px; color:#183a2b; letter-spacing:0; }
.welcome h1 { max-width:none; padding-right:.07em; font-size:clamp(44px,5.4vw,70px); line-height:1.04; letter-spacing:-3px; font-weight:800; overflow-wrap:anywhere; }
.welcome h1 > span { display:block; }
.welcome h1 em { display:block; font-family:Georgia,'Times New Roman',serif; font-size:1.3em; font-weight:400; line-height:1.06; letter-spacing:-3px; color:#22553d; }
.welcome-copy { margin-top:18px; font-size:13px; letter-spacing:.2px; }
.hero-actions { margin-top:24px; }
.hero-action { display:inline-flex; align-items:center; justify-content:space-between; gap:44px; min-height:56px; min-width:232px; padding:8px 10px 8px 22px; border-radius:16px; font-size:16px; }
.hero-action .hero-arrow { display:grid; place-items:center; width:38px; height:38px; background:#e2edb3; color:#183a2b; border-radius:10px; font-size:23px; line-height:1; }
.welcome .home-discovery { padding:0; }
.welcome .discovery-dish { grid-template-columns:minmax(0,1fr) auto; gap:0 12px; }
.discovery-tools { display:flex; gap:6px; align-items:center; }
.welcome .discovery-tools .favorite-button { position:static; flex:none; background:var(--surface); color:var(--brand); border-color:var(--line); box-shadow:none; }
.welcome .discovery-tools .favorite-button[aria-pressed=true] { background:var(--brand); color:white; }
.welcome .discovery-tools .discovery-next { display:grid; place-items:center; place-content:center; justify-content:center; flex:none; width:44px; height:44px; min-height:44px; padding:0; margin:0; border:1px solid var(--line); border-radius:50%; font-size:22px; font-weight:400; line-height:1; }
.welcome .discovery-tools .discovery-next svg { display:block; width:22px; height:22px; margin:0; }
.welcome .discovery-tools .discovery-next span { margin:0; }
.welcome .discovery-media { aspect-ratio:1.45; max-height:370px; margin-bottom:8px; border-radius:24px 24px 8px 8px; background:#eae7dc; }
.welcome .discovery-media img { object-fit:cover; object-position:center; }
.welcome .discovery-category { display:none; }
.welcome .discovery-copy { display:flex; flex-wrap:wrap; align-items:center; gap:0 18px; }
.welcome .discovery-copy h3 { font-size:19px; line-height:1.35; margin:0; }
.welcome .discovery-copy h3 button { min-height:44px; }
.welcome .discovery-price { font-size:15px; line-height:1.5; margin:0; color:var(--muted); }
.welcome .discovery-next { margin:0; min-height:44px; font-size:12px; font-weight:600; }
.welcome:has(.home-discovery[hidden]) { min-height:0; }
.home-explore { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px 32px; }
.home-category-section { grid-column:1/-1; padding-block:22px 6px; border-top:1px solid var(--line); }
.home-section-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:16px; }
.home-section-heading h2 { font-size:19px; font-weight:750; letter-spacing:-.5px; line-height:1.4; }
.home-section-heading > span { font-size:26px; color:#597447; }
.home-categories { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.home-category-button { display:flex; align-items:center; justify-content:space-between; gap:14px; min-width:0; min-height:72px; padding:16px; border:1px solid #dce1d3; border-radius:14px; background:#f0f2e8; color:var(--ink); font-size:14px; font-weight:700; line-height:1.4; text-align:left; }
.home-category-label { overflow-wrap:anywhere; }
.home-category-button > :last-child { flex:none; }
.home-category-button:hover { background:#e2edb3; border-color:#c7d5aa; }
.home-category-button:active { background:#d7e6a7; }
.game-spotlight { min-height:132px; border-radius:18px; background:#edf1e3; }
.game-spotlight-copy { padding:18px 20px; }
.game-kicker { font-size:9px; letter-spacing:.8px; }
.game-spotlight h2 { margin-top:5px; font-size:22px; }
.game-spotlight p { margin-top:5px; font-size:12px; }
.game-play { min-height:24px; margin-top:8px; font-size:13px; }
.game-spotlight-art { width:66px; margin-right:20px; }
.home-shortcuts { align-self:stretch; padding:0; }
.home-about { min-height:132px; height:100%; gap:14px; padding:20px; border:1px solid var(--line); border-radius:18px; background:#f4f4eb; }
.home-about .shortcut-symbol { width:44px; height:44px; border:1px solid #dce1d3; border-radius:14px; background:#edf1e3; }
.home-about .shortcut-copy strong { font-size:16px; line-height:1.4; letter-spacing:-.25px; }
.home-about .shortcut-copy small { display:block; margin-top:5px; font-size:12px; line-height:1.6; }
.home-about .shortcut-arrow { flex:none; font-size:22px; color:var(--brand); }
@media (hover:hover) { .home-profile:hover,.home-about:hover { background:#edf1e3; border-color:#c7d5aa; } }
.menu-heading-row h2 { font-size:26px; font-weight:800; letter-spacing:-.8px; line-height:1.3; overflow-wrap:anywhere; }
html:lang(ru) .welcome h1 { font-size:clamp(40px,4.8vw,64px); }
html:lang(en) .welcome h1 { font-size:clamp(42px,5vw,66px); }
html:lang(zh-CN) .welcome h1 { letter-spacing:0; }
html:lang(zh-CN) .welcome h1 em { font-family:'Noto Serif CJK SC','Songti SC',SimSun,'Microsoft YaHei',serif; font-style:normal; letter-spacing:0; font-size:1.1em; }
@media (max-width:899px) and (min-width:760px) {
  .welcome { gap:28px; }
  .welcome h1 { font-size:42px; letter-spacing:-2px; }
  .home-categories { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:759px) {
  html { scroll-padding-top:16px; }
  .home-shell { padding-inline:20px; }
  .home-header { flex-wrap:wrap; gap:8px; padding-block:12px; margin-bottom:18px; min-height:69px; }
  .header-tools { width:auto; gap:6px; padding:0; border:0; }
  .contact-menu summary { width:44px; padding:10px; }
  .contact-menu summary > span { display:none; }
  .locale-control { padding:9px; gap:5px; }
  .locale-control > svg { width:16px; height:16px; }
  .header-tools .contact-menu .header-actions { right:-78px; }
  .welcome { display:grid; grid-template-columns:minmax(0,1fr); gap:16px; margin-bottom:20px; }
  .welcome-content { padding:0; }
  .welcome-eyebrow { margin-bottom:10px; font-size:9px; gap:9px; letter-spacing:1.1px; }
  .welcome-open { padding:2px 7px; }
  .welcome h1 { font-size:38px; line-height:1.03; letter-spacing:-1.6px; }
  .welcome h1 em { font-size:1.3em; line-height:1.05; letter-spacing:-1.5px; }
  .welcome-copy { display:none; }
  .hero-actions { margin-top:14px; }
  .hero-action { width:100%; min-width:0; min-height:52px; font-size:15px; padding:7px 8px 7px 18px; }
  .hero-action .hero-arrow { width:36px; height:36px; }
  .welcome .discovery-dish { grid-template-columns:112px minmax(0,1fr) 44px; gap:0 12px; align-items:center; }
  .discovery-tools { flex-direction:column; gap:6px; }
  .welcome .discovery-media { grid-column:auto; width:112px; height:112px; aspect-ratio:1; margin:0; border-radius:16px; }
  .welcome .discovery-copy { display:block; }
  .welcome .discovery-copy h3 { font-size:16px; line-height:1.35; letter-spacing:-.4px; }
  .welcome .discovery-copy h3 button { min-height:44px; }
  .welcome .discovery-price { font-size:13px; margin-top:3px; }
  .welcome .discovery-dish > .favorite-button { align-self:center; }
  .welcome .discovery-next { display:flex; align-items:center; justify-content:space-between; width:100%; font-size:12px; margin-top:0; min-height:44px; padding:8px 0; }
  .welcome .discovery-next span { margin:0; }
  .home-explore { display:flex; flex-direction:column; gap:20px; }
  .home-category-section { padding-block:16px 0; }
  .home-section-heading { margin-bottom:12px; gap:10px; }
  .home-section-heading h2 { font-size:17px; letter-spacing:-.4px; }
  .home-section-heading > span { font-size:22px; }
  .home-categories { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .home-category-button { min-height:62px; padding:12px; gap:6px; font-size:13px; border-radius:12px; }
  .game-spotlight { display:flex; gap:8px; min-height:0; }
  .game-spotlight h2 { font-size:21px; max-width:none; }
  .game-spotlight-art { position:static; display:grid; width:58px; margin-right:18px; }
  .game-spotlight-copy { padding:16px; }
  .game-spotlight p { font-size:12px; }
  .home-shortcuts { width:100%; }
  .home-about { min-height:88px; padding:16px; }
  .menu-heading-row h2 { font-size:23px; }
  html:lang(ru) .welcome h1 { font-size:34px; letter-spacing:-1.4px; }
  html:lang(en) .welcome h1 { font-size:35px; letter-spacing:-1.4px; }
  html:lang(zh-CN) .welcome h1 { font-size:36px; }
  .welcome:has(.home-discovery[hidden]) { min-height:0; }
}
@media (max-width:374px) {
  .home-shell { padding-inline:16px; }
  .home-header { column-gap:6px; }
  .welcome h1 { font-size:34px; }
  html:lang(ru) .welcome h1,html:lang(en) .welcome h1 { font-size:30px; }
  .welcome .discovery-dish { grid-template-columns:88px minmax(0,1fr) 44px; gap:0 8px; }
  .welcome .discovery-media { width:88px; height:88px; }
  .welcome .discovery-copy h3 { font-size:14px; }
  .welcome .discovery-price { font-size:12px; }
  .home-section-heading h2 { font-size:15px; }
  .home-category-button { font-size:12px; min-height:58px; }
}
@media (max-width:759px) and (max-height:650px) {
  .home-header { margin-bottom:8px; }
  .welcome { gap:8px; margin-bottom:10px; }
  .welcome-eyebrow { margin-bottom:8px; }
  .hero-actions { margin-top:10px; }
  .home-category-section { padding-top:8px; }
  .home-section-heading { margin-bottom:8px; }
  .home-section-heading > span { line-height:1; }
  .discovery-tools { gap:0; }
}
/* Taller phones can show the original food photograph at a useful size while
   keeping the menu action and the first category row above the fixed dock. */
@media (min-width:375px) and (max-width:759px) and (min-height:651px) {
  .welcome .discovery-dish { grid-template-columns:minmax(0,1fr) auto; gap:8px 12px; }
  .welcome .discovery-media { grid-column:1/-1; width:100%; height:auto; aspect-ratio:1.85; border-radius:18px; }
  .discovery-tools { flex-direction:row; }
  .welcome .discovery-copy { display:flex; gap:0 12px; align-items:center; }
  .welcome .discovery-price { margin:0; }
}
