/* Selected A direction. Keep the menu reader's layout independent. */
.menu-home-view { background:var(--bg); -webkit-font-smoothing:antialiased; }
.menu-home-view .shell { max-width:none; padding:0; min-height:100dvh; }
.menu-home-view .shell>main { display:block; flex:1; width:100%; }
.menu-home-view .topbar { position:sticky; top:0; z-index:30; height:65px; padding:0 max(20px,calc((100% - 1160px)/2)); border-bottom:1px solid var(--line); background:var(--bg); flex-wrap:nowrap; gap:12px; }
.menu-home-view .topbar .brand { gap:8px; font-size:20px; letter-spacing:-.02em; flex:none; }
.menu-home-view .topbar .brand-mark { width:28px; height:28px; border-radius:0; }
.menu-home-view .topnav { width:auto; flex-wrap:nowrap; justify-content:flex-end; gap:20px; }
.menu-home-view .topnav>.language-switcher { padding-left:20px; position:relative; }
.menu-home-view .topnav>.language-switcher::before { content:""; position:absolute; left:0; height:16px; border-left:1px solid var(--line); }
.menu-home-view .topnav>.language-switcher select { border:0; background:transparent; padding:8px; min-width:44px; min-height:44px; font-weight:700; text-align:center; }
.menu-home-view #account-menu-button { border:0; border-radius:14px; background:var(--surface-strong); }
.landing-home { width:100%; }
.landing-hero { max-width:1200px; margin:auto; padding:48px 20px; text-align:center; }
.landing-hero h1 { margin:0 auto 24px; max-width:768px; font-size:60px; line-height:1; letter-spacing:-.02em; font-weight:600; }
.landing-description { margin:0 auto 40px; max-width:672px; font-size:20px; line-height:1.4; color:var(--ink-soft); }
.landing-starter { max-width:672px; margin:auto; padding:32px; text-align:left; border:1px solid var(--line); border-radius:26px; background:var(--surface); box-shadow:0 8px 24px #1723120f; }
#landing-menu-form { display:flex; flex-direction:column; gap:0; }
.landing-link-entry { order:0; }
.landing-link-entry>label { display:block; margin-bottom:8px; font-size:14px; line-height:20px; font-weight:700; }
.landing-link-row { display:flex; gap:12px; }
.landing-url-field { display:flex; flex:1; min-width:0; align-items:center; gap:12px; padding:0 16px; border:1px solid transparent; border-radius:18px; background:var(--surface-strong); }
.landing-url-field>img { width:20px; height:20px; flex:none; }
.landing-url-field input { min-width:0; min-height:48px; border:0; border-radius:0; padding:10px 0; background:transparent; box-shadow:none; font-size:16px; }
.landing-url-field input:focus { box-shadow:none; }
.landing-url-field:focus-within { outline:2px solid var(--accent-dark); outline-offset:2px; }
.landing-url-field input::placeholder { color:#7c8574; }
.landing-button { display:inline-flex; justify-content:center; align-items:center; gap:8px; min-height:44px; border:0; border-radius:18px; padding:10px 16px; background:var(--surface-strong); color:var(--ink); font:700 14px/1.5 "Manrope",sans-serif; cursor:pointer; text-decoration:none; }
.landing-button img { width:18px; height:18px; flex:none; }
.landing-button:hover { background:var(--line); }
.landing-button:disabled { opacity:.55; cursor:wait; }
#landing-menu-submit { flex:none; min-height:50px; padding:12px 32px; background:var(--accent-dark); color:white; font-size:16px; box-shadow:0 8px 16px #17231214; }
#landing-menu-submit:hover,.landing-qr:hover { background:#ad411c; }
.landing-label-small,.landing-or,.landing-qr { display:none; }
.landing-capture-actions { order:1; display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-top:24px; }
.landing-file-actions { display:flex; gap:12px; }
.landing-quiet-actions { display:flex; align-items:center; gap:12px; color:var(--line); }
.landing-quiet-actions button { display:inline-flex; align-items:center; gap:6px; min-height:44px; padding:0; border:0; border-radius:8px; background:transparent; color:var(--ink-soft); font:600 14px/1.5 "Manrope",sans-serif; cursor:pointer; }
.landing-quiet-actions button:hover { color:var(--accent-dark); }
.landing-quiet-actions img { width:14px; height:14px; }
#landing-source-status { order:2; margin:12px 0 0; color:var(--ink-soft); font-size:14px; line-height:1.5; }
#landing-source-status:empty { display:none; }
.landing-featured { border-top:1px solid var(--line); background:var(--surface); padding:48px 20px; }
.landing-featured-inner { max-width:1200px; margin:auto; }
.landing-featured-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:24px; }
.landing-featured-heading h2 { font-size:30px; line-height:36px; letter-spacing:-.02em; }
.landing-featured-heading p { margin:8px 0 0; font-size:16px; line-height:24px; color:var(--ink-soft); }
.landing-featured-heading>.landing-button { flex:none; border-radius:14px; font-size:14px; font-weight:600; }
.landing-venues { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.landing-venue { display:block; min-width:0; padding:12px; border:1px solid var(--line); border-radius:18px; background:var(--bg); color:var(--ink); text-decoration:none; transition:border-color .15s; }
.landing-venue:hover { border-color:var(--accent-dark); }
.landing-photos { display:grid; grid-template-columns:2fr 1fr; grid-template-rows:repeat(2,minmax(0,1fr)); gap:8px; height:200px; overflow:hidden; }
.landing-photos img { display:block; width:100%; height:100%; min-width:0; min-height:0; object-fit:cover; border-radius:8px; background:var(--surface-strong); }
.landing-photos img:first-child { grid-row:1/-1; }
.landing-photos[data-photo-count="2"] { grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:minmax(0,1fr); }
.landing-photos[data-photo-count="1"] { grid-template-columns:minmax(0,1fr); grid-template-rows:minmax(0,1fr); }
.landing-photos[data-photo-count="0"] { display:none; }
.landing-venue-copy { padding:20px 8px 8px; }
.landing-venue h3 { margin:0; font-family:"Space Grotesk",sans-serif; font-size:18px; line-height:28px; letter-spacing:-.02em; font-weight:700; overflow-wrap:anywhere; }
.landing-venue p { display:flex; align-items:center; gap:4px; margin:4px 0 0; color:var(--ink-soft); font-size:14px; line-height:20px; }
.landing-venue p img { width:14px; height:14px; flex:none; }
.landing-footer-brand { display:none; }
.landing-footer nav { display:flex; flex-wrap:wrap; justify-content:center; gap:24px; }
.menu-home-view .landing-footer { display:flex; align-items:center; justify-content:space-between; gap:24px; width:100%; margin:0; padding:40px max(20px,calc((100% - 1160px)/2)); border-top:1px solid var(--line); background:var(--surface); }
.menu-home-view .landing-footer a { display:inline-flex; align-items:center; min-height:44px; color:var(--ink-soft); font-size:14px; text-decoration:none; }
.menu-home-view .landing-footer a:hover { text-decoration:underline; }
.menu-home-view .landing-footer-brand { gap:8px; font-weight:700; }
.landing-footer-brand img { width:20px; height:20px; }
.menu-home-view :is(button,a,input,select):focus-visible,.catalogue-search-page :is(button,a,input,select,summary):focus-visible { outline:2px solid var(--accent-dark); outline-offset:3px; }
.landing-url-field input:focus-visible { outline:none; }
.menu-home-view #reader-status { max-width:672px; margin:16px auto; }
.bottom-nav-action>img { width:24px; height:24px; }
/* Full search lives on its own shareable page. */
.catalogue-search-page { width:100%; max-width:1160px; margin:0 auto; padding:48px 20px; }
.catalogue-search-page>h1 { font-size:36px; line-height:1.2; letter-spacing:-.02em; }
.catalogue-search-help { margin:12px 0 28px; color:var(--ink-soft); font-size:16px; line-height:1.6; }
.catalogue-search-page .catalogue-search-bar { max-width:none; box-shadow:none; }
.catalogue-search-page .catalogue-controls { gap:12px; margin:20px 0 24px; }
.catalogue-search-page .catalogue-heading h2 { font-size:20px; }
/* Input focus alone does not indicate an open onscreen keyboard. */
body:has(dialog[open]) .bottom-nav { display:none; }
@media(max-width:1023px) and (min-width:768px) {
  .landing-hero h1 { font-size:48px; }
  .landing-venues { gap:16px; }
  .landing-photos { height:170px; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:minmax(0,1fr); }
  .landing-photos img:nth-child(3) { display:none; }
}
@media(max-width:767px) {
  .menu-home-view .shell { padding-bottom:calc(84px + env(safe-area-inset-bottom,0px)); }
  .menu-home-view .topnav { gap:8px; }
  .menu-home-view .topnav>.language-switcher { padding:0; }
  .menu-home-view .topnav>.language-switcher::before { display:none; }
  .landing-hero { padding:32px 20px 36px; }
  .landing-hero h1 { font-size:36px; line-height:1.12; margin-bottom:16px; }
  .landing-description { font-size:18px; line-height:28px; margin-bottom:28px; }
  .landing-starter { display:none; }
  .landing-description { margin-bottom:0; }
  .landing-capture-actions { order:0; display:flex; flex-direction:column; align-items:stretch; gap:12px; margin:0; }
  .landing-qr { display:flex; min-height:50px; background:var(--accent-dark); color:white; font-size:16px; box-shadow:0 8px 16px #17231214; }
  .landing-qr img { filter:brightness(0) invert(1); width:20px; height:20px; }
  .landing-file-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .landing-file-actions .landing-button { min-height:50px; padding:12px 6px; gap:6px; white-space:nowrap; }
  .landing-quiet-actions { display:none; }
  .landing-or { order:1; display:flex; align-items:center; gap:8px; margin:20px 0 16px; color:var(--ink-soft); font-size:12px; line-height:16px; }
  .landing-or::before,.landing-or::after { content:""; flex:1; border-top:1px solid var(--line); }
  .landing-link-entry { order:2; }
  .landing-link-entry>label { font-size:12px; line-height:16px; margin-bottom:8px; }
  .landing-link-row { gap:8px; }
  .landing-url-field { padding:0 12px; }
  .landing-url-field>img,.landing-label-wide { display:none; }
  .landing-label-small { display:inline; }
  .landing-url-field input { min-height:42px; padding:8px 0; }
  #landing-menu-submit { min-height:44px; padding:8px 16px; background:var(--ink); font-size:14px; box-shadow:none; }
  #landing-source-status { order:3; }
  .landing-featured { padding:32px 20px; }
  .landing-featured-heading { margin-bottom:24px; }
  .landing-featured-heading h2 { font-size:23px; line-height:29px; }
  .landing-featured-heading p { font-size:14px; line-height:20px; margin-top:8px; }
  .landing-featured-heading>.landing-button { padding:8px 12px; font-size:12px; }
  .landing-venues { grid-template-columns:minmax(0,1fr); gap:20px; }
  .landing-photos { height:160px; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:minmax(0,1fr); }
  .landing-photos img:first-child { grid-row:auto; }
  .landing-photos img:nth-child(3) { display:none; }
  .menu-home-view .landing-footer { flex-direction:column; padding:28px 20px; gap:12px; }
  .landing-footer nav { gap:4px 20px; }
  .menu-home-view .bottom-nav { padding:0 0 env(safe-area-inset-bottom,0px); box-shadow:none; }
  .menu-home-view .bottom-nav-inner { grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; }
  .menu-home-view .bottom-nav-action { min-height:68px; gap:4px; padding:6px 4px; border-radius:0; font-size:12px; font-weight:500; color:var(--ink-soft); }
  .menu-home-view .bottom-nav-action :is(svg,img) { width:24px; height:24px; }
}
@media(max-width:767px) {
  .catalogue-search-page { padding:28px 20px; }
  .catalogue-search-page>h1 { font-size:28px; }
  .catalogue-search-help { margin-bottom:20px; font-size:14px; }
}
@media(max-width:359px) {
  .landing-hero h1 { font-size:31px; }
  .landing-file-actions .landing-button { font-size:12px; gap:4px; }
  .menu-home-view .topbar { padding-inline:16px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .landing-venue { transition:none; }
}
