/* ---------------------------------------------------------------
   Self-hosted webfonts. These were loaded from fonts.googleapis.com
   via a render-blocking <link> in every page <head>, which measured
   ~1.1s of FCP and ~1.9s of LCP on a throttled homepage — for faces
   that font-display:optional then declined to paint anyway, because
   the 100ms block period expires first on a slow connection.
   Served from our own origin inside this already-blocking stylesheet,
   they cost no extra blocking request, and they now win the race
   often enough to actually show up. unicode-range keeps a typical
   visitor to the latin files only.
   Regenerate: see _source/README.txt
   --------------------------------------------------------------- */
@font-face {
  font-family: 'Alfa Slab One';
  font-style: normal;
  font-weight: 400;
  font-display: optional;
  src: url('assets/fonts/alfa-slab-one-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Alfa Slab One';
  font-style: normal;
  font-weight: 400;
  font-display: optional;
  src: url('assets/fonts/alfa-slab-one-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Bowlby One SC';
  font-style: normal;
  font-weight: 400;
  font-display: optional;
  src: url('assets/fonts/bowlby-one-sc-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Bowlby One SC';
  font-style: normal;
  font-weight: 400;
  font-display: optional;
  src: url('assets/fonts/bowlby-one-sc-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Bree Serif';
  font-style: normal;
  font-weight: 400;
  font-display: optional;
  src: url('assets/fonts/bree-serif-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Bree Serif';
  font-style: normal;
  font-weight: 400;
  font-display: optional;
  src: url('assets/fonts/bree-serif-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Lobster';
  font-style: normal;
  font-weight: 400;
  font-display: optional;
  src: url('assets/fonts/lobster-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Lobster';
  font-style: normal;
  font-weight: 400;
  font-display: optional;
  src: url('assets/fonts/lobster-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* =========================================================================
   The New Munson Diner — Color & Type Tokens
   Classic American diner: cream paper, ketchup red, chrome navy, neon yellow.
   ========================================================================= */

/* Global border-box. Without this, every padded element given a width or
   height computes LARGER than declared — the cause of the oversized buttons,
   nav links, map pin and logos found in review. Declared first so the
   per-element box-sizing patches further down are now redundant, not wrong. */
*, *::before, *::after { box-sizing: border-box; }

/* The fixed mobile action bar's height, used by the body reserve and the
   scroll padding so the three can't drift apart (they had: 68px bar
   against a 96px reserve, leaving 28px of dead space). */
:root { --action-bar-h: 68px; }

/* Fonts are loaded with <link rel="preconnect"> + <link rel="stylesheet"> in each
   page <head>. An @import here forced the browser to download styles.css, parse it,
   then start a third request before it could paint any text. */

:root {
  /* ---------- Brand Core ---------- */
  --munson-red:      #C8252C;   /* ketchup / vinyl booth */
  --munson-red-dark: #9A1B22;
  --munson-red-deep: #6B1014;   /* shadow / pressed state */

  --munson-navy:      #1B3A5B;  /* enamel signage / chrome blue */
  --munson-navy-dark: #122740;
  --munson-navy-deep: #08172A;
  --munson-blue:      #2A4FB8;  /* royal blue from logo ring */

  /* Menu section tint backgrounds (from real printed menu) */
  --tint-pink:    #FCE4E4;     /* default sections, salads */
  --tint-mint:    #E5F1E2;     /* Christo's Corner / Greek */
  --tint-butter:  #FFF1C8;     /* Benedicts, Hungry Man */
  --tint-rose:    #F9D4DC;     /* Quesadilla, Burgers */
  --tint-sky:     #D8E5EE;     /* Munson Deli, Sautés */

  --munson-mustard:      #F4C13D;  /* neon / yellow signage */
  --munson-mustard-dark: #D4A21F;

  --munson-cream:      #FFF8EC;  /* paper menu */
  --munson-cream-warm: #F6EAD0;  /* aged paper */
  --munson-cream-deep: #E8D9B5;

  --munson-ink:       #1A1A1A;   /* near-black */
  --munson-ink-soft:  #2E2E2E;

  /* Accents */
  --munson-mint:    #A8D5BA;     /* counter formica */
  --munson-pink:    #F4A6A6;     /* milkshake */
  --munson-chrome:  #D9D9D9;     /* chrome trim */

  /* ---------- Semantic — Foreground ---------- */
  --fg-1: var(--munson-ink);            /* primary text */
  --fg-2: #4A4035;                       /* secondary text, warm dark */
  --fg-3: #7A6F62;                       /* tertiary, captions */
  --fg-inverse: var(--munson-cream);     /* on dark surfaces */
  --fg-accent: var(--munson-red);        /* link / accent */
  --fg-on-red: var(--munson-cream);
  --fg-on-navy: var(--munson-cream);
  --fg-on-mustard: var(--munson-ink);

  /* ---------- Semantic — Background ---------- */
  --bg-1: var(--munson-cream);          /* paper canvas */
  --bg-2: var(--munson-cream-warm);     /* card, raised */
  --bg-3: var(--munson-cream-deep);     /* hover / inset */
  --bg-inverse: var(--munson-navy-deep);
  --bg-red: var(--munson-red);
  --bg-navy: var(--munson-navy);
  --bg-mustard: var(--munson-mustard);
  --bg-ink: var(--munson-ink);

  /* ---------- Semantic — Border ---------- */
  --border-1: rgba(26, 26, 26, 0.18);
  --border-2: rgba(26, 26, 26, 0.40);
  --border-strong: var(--munson-ink);
  --border-red: var(--munson-red);
  --border-chrome: var(--munson-chrome);

  /* ---------- Status ---------- */
  --status-success: #2E7D3A;     /* "open now" */
  --status-warn:    #E08A1F;
  --status-error:   var(--munson-red);
  --status-info:    var(--munson-navy);

  /* ---------- Type Families ---------- */
  --font-display: 'Alfa Slab One', 'Rockwell', Georgia, serif;       /* big menu-board headlines */
  --font-condensed: 'Bowlby One SC', 'Impact', sans-serif;            /* sub-heads, eyebrow */
  --font-script:  'Lobster', 'Brush Script MT', cursive;              /* "Specials!" / decorative */
  --font-serif:   'Bree Serif', Georgia, 'Times New Roman', serif;    /* friendly body */

  /* ---------- Type Scale ---------- */
  --fs-xs:    12px;
  --fs-sm:    14px;
  --fs-base:  16px;
  --fs-md:    18px;
  --fs-lg:    22px;
  --fs-xl:    28px;
  --fs-2xl:   36px;
  --fs-3xl:   48px;
  --fs-4xl:   64px;
  --fs-5xl:   88px;
  --fs-mega:  120px;

  /* ---------- Line Heights ---------- */
  --lh-tight: 1.05;
  --lh-snug:  1.2;
  --lh-base:  1.5;
  --lh-loose: 1.7;

  /* ---------- Letter spacing ---------- */
  --tr-tight:  -0.01em;
  --tr-base:   0;
  --tr-wide:   0.04em;
  --tr-wider:  0.08em;
  --tr-widest: 0.18em; /* ALL-CAPS EYEBROWS */

  /* ---------- Spacing (8pt-ish, loose) ---------- */
  --sp-1:  4px;
  --sp-2:  8px;
  --sp-3:  12px;
  --sp-4:  16px;
  --sp-5:  24px;
  --sp-6:  32px;
  --sp-7:  48px;
  --sp-8:  64px;
  --sp-9:  96px;

  /* ---------- Radii ---------- */
  --r-0:    0px;        /* signage */
  --r-1:    2px;
  --r-2:    4px;
  --r-3:    8px;
  --r-pill: 999px;

  /* ---------- Shadows / Elevation ---------- */
  --shadow-paper: 0 1px 0 rgba(26,26,26,0.06), 0 2px 8px rgba(26,26,26,0.06);
  --shadow-card:  0 2px 0 rgba(26,26,26,0.08), 0 8px 22px rgba(26,26,26,0.10);
  --shadow-raised: 0 4px 0 rgba(26,26,26,0.10), 0 16px 36px rgba(26,26,26,0.16);
  --shadow-press:  inset 0 2px 0 rgba(0,0,0,0.18);
  --shadow-neon-red:    0 0 0 2px var(--munson-cream), 0 0 16px rgba(200,37,44,0.55);
  --shadow-neon-yellow: 0 0 0 2px var(--munson-cream), 0 0 16px rgba(244,193,61,0.65);

  /* ---------- Borders ---------- */
  --bw-hair:   1px;
  --bw-base:   2px;
  --bw-thick:  3px;
  --bw-heavy:  6px;
  --bw-poster: 10px;

  /* ---------- Motion ---------- */
  --ease-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
  --ease-snap:   cubic-bezier(0.2, 0.8, 0.2, 1);
  --dur-fast: 120ms;
  --dur-base: 200ms;
  --dur-slow: 360ms;

  /* ---------- Patterns ---------- */
  --pattern-checker: repeating-conic-gradient(var(--munson-ink) 0 25%, var(--munson-cream) 0 50%);
}

/* =========================================================================
   Semantic element styles — drop on a page and core elements look "Munson"
   ========================================================================= */

.munson {
  font-family: var(--font-serif);
  font-size: var(--fs-base);
  line-height: var(--lh-base);
  color: var(--fg-1);
  background: var(--bg-1);
}

.munson h1, .h1 {
  font-family: var(--font-display);
  font-size: var(--fs-4xl);
  line-height: var(--lh-tight);
  letter-spacing: var(--tr-tight);
  color: var(--munson-red);
  text-transform: uppercase;
  margin: 0 0 var(--sp-5);
}

.munson h2, .h2 {
  font-family: var(--font-display);
  font-size: var(--fs-2xl);
  line-height: var(--lh-snug);
  color: var(--munson-navy);
  text-transform: uppercase;
  margin: 0 0 var(--sp-4);
}

.munson h3, .h3 {
  font-family: var(--font-condensed);
  font-size: var(--fs-xl);
  line-height: var(--lh-snug);
  letter-spacing: var(--tr-wide);
  color: var(--fg-1);
  text-transform: uppercase;
  margin: 0 0 var(--sp-3);
}

.munson h4, .h4 {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: var(--fs-lg);
  line-height: var(--lh-snug);
  margin: 0 0 var(--sp-3);
}

.munson p, .p {
  font-family: var(--font-serif);
  font-size: var(--fs-base);
  line-height: var(--lh-base);
  color: var(--fg-1);
  margin: 0 0 var(--sp-4);
  text-wrap: pretty;
}

.eyebrow {
  font-family: var(--font-condensed);
  font-size: var(--fs-sm);
  letter-spacing: var(--tr-widest);
  text-transform: uppercase;
  color: var(--munson-red);
}

.script {
  font-family: var(--font-script);
  font-weight: 400;
  color: var(--munson-red);
  font-size: var(--fs-2xl);
  line-height: 1;
}

.price {
  font-family: var(--font-display);
  font-size: var(--fs-lg);
  color: var(--munson-red);
  letter-spacing: var(--tr-tight);
}

.menu-leader {
  /* dotted leader for menu items */
  border-bottom: 2px dotted var(--border-2);
  flex: 1;
  margin: 0 var(--sp-3) 4px;
}

.code, code {
  font-family: ui-monospace, 'SF Mono', Menlo, monospace;
  font-size: 0.95em;
  background: var(--bg-3);
  padding: 1px 5px;
  border-radius: var(--r-2);
}


/* ===== SITE STYLES ===== */

/* Marketing site — page-specific styles */
html {
  /* The header is sticky above 820px; without this, #anchor jumps and Tab focus
     land underneath it. Mobile header is static, so it only needs breathing room. */
  scroll-padding-top: 100px;
  -webkit-text-size-adjust: 100%;
}
body { margin: 0; background: var(--bg-1); font-family: var(--font-serif); color: var(--fg-1); }

/* HEADER */
.site-header {
  background: var(--munson-cream); border-bottom: 3px solid var(--munson-ink);
  position: sticky; top: 0; z-index: 50;
}
/* A 7-row hours table grew to 4169px under large text and dragged its card
   off-screen, hiding every closing time. Contain it instead. */
.hours-table { width: 100%; max-width: 100%; table-layout: fixed; }
.hours-table td { overflow-wrap: anywhere; }

.site-header-row { max-width: 1200px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; padding: 12px 24px; gap: 24px;
  /* wrap rather than overflow if a font renders wider than measured */
  flex-wrap: wrap; }
.site-header .wordmark img { height: 56px; display:block; }
.site-nav { display: flex; gap: 4px; }
.site-nav button {
  font-family: var(--font-condensed); font-size: 13px; letter-spacing: .14em; text-transform: uppercase;
  background: transparent; border: 0; padding: 8px 14px; cursor: pointer; color: var(--munson-ink);
  border-radius: 3px; transition: all 120ms;
}
.site-nav button:hover { background: var(--bg-3); }
.site-nav button.active { background: var(--munson-red); color: var(--munson-cream); }
/* Light treatment to sit with the cream header instead of punching a dark
   navy hole in it. State classes are set by assets/hours.js (America/New_York). */
.hours-pill {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--font-condensed); font-size: 12px; letter-spacing: .12em; text-transform: uppercase;
  background: #FFFDF7; color: var(--munson-navy-deep);
  border: 2px solid rgba(8,23,42,.20);
  box-shadow: 0 1px 0 rgba(26,26,26,.06);
  padding: 7px 14px; border-radius: 999px;
  /* No nowrap below the desktop header: at large text / text-only zoom the
     label grew to 1050px in a 320px viewport and was clipped at BOTH ends,
     leaving "d - opens 7 AM tom" — a fragment that reads as though we're open. */
  max-width: 100%; text-align: center; flex-wrap: wrap; white-space: normal;
}
/* The label is a flex item; without min-width:0 it refuses to shrink below
   its automatic minimum and spills out of the pill it lives in. */
.hours-pill > * { min-width: 0; }
.hours-pill [data-hours-label] { overflow-wrap: anywhere; }
@media (min-width: 821px) { .hours-pill { white-space: nowrap; } }
/* Deeper green than the old #4cd964, which was a neon meant for a dark pill
   and only hit ~1.9:1 against a near-white one. */
/* Neutral until hours.js proves a state: the default used to be green, so a
   no-JS visitor saw an "open" dot at 2am. */
.hours-pill .dot { width: 9px; height: 9px; border-radius: 50%; background: var(--fg-3); box-shadow: 0 0 0 3px rgba(122,111,98,.18); flex: none; }
.hours-pill.is-open .dot { background: #2FA84F; box-shadow: 0 0 0 3px rgba(47,168,79,.18); }
.hours-pill.is-closed { color: var(--munson-red); border-color: rgba(200,37,44,.30); }
.hours-pill.is-closed .dot { background: var(--munson-red); box-shadow: 0 0 0 3px rgba(200,37,44,.16); }
.header-right { display:flex; align-items:center; gap: 12px; }
.order-now-btn {
  font-family: var(--font-condensed); font-size: 13px; letter-spacing: .14em; text-transform: uppercase;
  background: var(--munson-red); color: var(--munson-cream);
  padding: 9px 16px; border-radius: 4px; text-decoration: none;
  border: 2px solid var(--munson-ink); box-shadow: 0 2px 0 rgba(26,26,26,.18);
  transition: all 120ms;
}
.order-now-btn { box-sizing: border-box; display: inline-flex; align-items: center; min-height: 44px; }
.order-now-btn:hover { transform: translateY(-1px); box-shadow: 0 4px 0 rgba(26,26,26,.25); }

/* HERO */
.hero { position: relative; padding: 60px 24px 80px; text-align: center; overflow: hidden; background: var(--munson-cream); }
.hero::before {
  content: ""; position: absolute; inset: 0;
  background-image: repeating-linear-gradient(90deg, transparent 0 14px, rgba(200,37,44,0.04) 14px 15px);
  pointer-events: none;
}
.hero-logo { display:flex; justify-content:center; margin: 0 auto 12px; }
/* Same round white-disc treatment as the reviews page mini-logo, so the
   logo reads as a badge instead of a square patch on the striped hero. */
.hero-logo img {
  width: clamp(180px, 22vw, 260px); aspect-ratio: 1; height: auto; display: block;
  object-fit: contain;
  border-radius: 50%; background: #fff; padding: 10px;
  box-shadow: 0 2px 0 rgba(26,26,26,.12), 0 10px 28px rgba(26,26,26,.10);
}
.hero-eyebrow { font-family: var(--font-condensed); font-size: 16px; letter-spacing: .22em; color: var(--munson-red); text-transform: uppercase; margin-bottom: 8px; }
.hero h1 { font-family: 'Bree Serif', 'Georgia', serif; font-size: clamp(26px, 3.4vw, 42px); line-height: 1.15; color: var(--munson-red); margin: 0; letter-spacing: -0.2px; text-transform: none; max-width: 22ch; margin-inline: auto; text-wrap: balance; font-weight: 400; }
.hero .since { font-family: var(--font-script); color: var(--munson-navy); font-size: clamp(36px, 5vw, 64px); margin-top: -6px; display: inline-block; transform: rotate(-3deg); }
.hero p.lede { font-family: var(--font-serif); font-size: 20px; line-height: 1.5; max-width: 600px; margin: 18px auto 28px; color: var(--fg-2); }
.hero-cta-row { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.hero .neon { position: absolute; top: 32px; right: 4%; transform: rotate(6deg); }
.hero .neon img { width: 200px; }

/* button base */
.btn {
  font-family: var(--font-condensed); font-size: 14px; letter-spacing: .14em; text-transform: uppercase;
  padding: 14px 26px; border-radius: 3px; border: 2px solid var(--munson-ink); cursor: pointer;
  box-shadow: 0 2px 0 rgba(26,26,26,0.18); transition: all 120ms; text-decoration: none; display:inline-block;
}
.btn-primary { background: var(--munson-red); color: var(--munson-cream); }
.btn-secondary { background: var(--munson-cream); color: var(--munson-navy); border-color: var(--munson-navy); }
.btn-mustard { background: var(--munson-mustard); color: var(--munson-ink); }
/* border-box, or the 44px touch minimum lands on the CONTENT box and every
   button renders 76px tall (44 + 28px padding + 4px border). */
.btn { box-sizing: border-box; min-height: 44px; }
.btn:hover { transform: translateY(-1px); box-shadow: 0 4px 0 rgba(26,26,26,.2); }
.btn:active { transform: translateY(1px); box-shadow: inset 0 2px 0 rgba(0,0,0,.18); }

/* DIVIDERS */
.red-bar { height: 6px; background: var(--munson-red); }
.section-rule { display:flex; align-items:center; gap: 14px; margin: 48px auto 24px; max-width: 1200px; padding: 0 24px; }
.section-rule .line { flex:1; height: 2px; background: var(--munson-ink); }
.section-rule h1,
.section-rule h2 { font-family: var(--font-display); font-size: clamp(24px, 5.2vw, 36px); color: var(--munson-ink); text-transform: uppercase; margin: 0; text-align: center; }

/* MENU STRIP */
.strip { max-width: 1200px; margin: 0 auto; padding: 0 24px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.strip-card {
  background: var(--munson-cream-warm); border: 2px solid var(--munson-ink); border-radius: 6px;
  padding: 18px; box-shadow: 0 2px 0 rgba(26,26,26,0.08), 0 8px 22px rgba(26,26,26,0.10);
  position: relative; overflow: hidden; cursor: pointer; transition: all 160ms;
}
.strip-card::before { content:""; position: absolute; left:0; right:0; top:0; height: 5px; background: var(--munson-red); }
.strip-card:nth-child(2)::before { background: var(--munson-navy); }
.strip-card:nth-child(3)::before { background: var(--munson-mustard); }
.strip-card:nth-child(4)::before { background: var(--munson-ink); }
.strip-card:hover { transform: translateY(-2px); }
.strip-card .ic {
  width: 72px; height: 72px; margin: 6px auto 8px;
  display: flex; align-items: center; justify-content: center;
  color: var(--munson-red);
}
.strip-card .ic img { width: 44px; height: 44px; display: block; }
.strip-card { text-align: center; }
.strip-card h3 { text-align: center; }
.strip-card p { text-align: center; }
.strip-card h3 { font-family: var(--font-display); font-size: 22px; color: var(--munson-ink); text-transform: uppercase; margin: 12px 0 4px; }
.strip-card p { font-family: var(--font-serif); font-size: 13px; color: var(--fg-2); margin: 0; line-height: 1.4; }

/* FAQ */
.faq-section { max-width: 1200px; margin: 0 auto 48px; padding: 0 24px; }
.faq-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.faq-grid article {
  background: var(--munson-cream-warm);
  border: 2px solid var(--munson-ink);
  border-radius: 6px;
  padding: 18px;
  min-height: 132px;
  text-align: center;
  box-shadow: 0 2px 0 rgba(26,26,26,0.08), 0 8px 22px rgba(26,26,26,0.08);
}
.faq-grid article::before {
  content: "";
  display: block;
  height: 5px;
  margin: -18px -18px 16px;
  background: var(--munson-red);
}
.faq-grid article:nth-child(2)::before { background: var(--munson-navy); }
.faq-grid article:nth-child(3)::before { background: var(--munson-mustard); }
.faq-grid article:nth-child(4)::before { background: var(--munson-ink); }
.faq-grid h3 { font-family: var(--font-display); font-size: 18px; line-height: 1.15; text-transform: uppercase; margin: 0 0 8px; color: var(--munson-ink); }
.faq-grid p { font-family: var(--font-serif); color: var(--fg-2); font-size: 13px; line-height: 1.45; margin: 0; }
.faq-grid a { color: var(--munson-red); font-weight: 700; }
.faq-strip { margin-bottom: 48px; }
.faq-card { min-height: 128px; cursor: default; }
.faq-card h3 { font-size: 18px; line-height: 1.15; }
.faq-card p { font-size: 13px; line-height: 1.45; }
.faq-card a { color: var(--munson-red); font-weight: 700; }

/* MENU PAGE */
.menu-wrap { max-width: 1100px; margin: 0 auto; padding: 0 24px 48px; }
.menu-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 36px 48px; }
.menu-section h3 { font-family: var(--font-condensed); font-size: 18px; letter-spacing: .14em; color: var(--munson-red); text-transform: uppercase; border-bottom: 3px double var(--munson-ink); padding-bottom: 6px; margin: 0 0 12px; }
.menu-row { display: flex; align-items: baseline; padding: 8px 0; }
.menu-row .name { font-family: var(--font-serif); font-weight: 700; font-size: 15px; color: var(--fg-1); white-space: nowrap; }
.menu-row .leader { flex: 1; border-bottom: 2px dotted rgba(26,26,26,.4); margin: 0 12px 4px; }
.menu-row .price { font-family: var(--font-display); font-size: 16px; color: var(--munson-red); white-space: nowrap; }
.menu-row .desc { font-family: var(--font-serif); font-size: 12.5px; color: var(--fg-2); margin: 2px 0 0; line-height: 1.4; }
.pop-tag { font-family: var(--font-condensed); font-size: 9px; letter-spacing: .14em; text-transform: uppercase; color: var(--munson-red); margin-left: 6px; }

/* LOCATION */
.loc-grid { max-width: 1100px; margin: 0 auto; padding: 0 24px 48px; display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
/* Grid items default to min-width:auto, so the column sized itself to the
   hours table's intrinsic width and dragged the card off-screen under large
   text. min-width:0 lets the card shrink so the table can wrap inside it. */
.loc-grid > * { min-width: 0; }
.info-card { min-width: 0; }
.info-card { background: var(--munson-cream-warm); border: 2px solid var(--munson-ink); border-radius: 6px; padding: 28px; box-shadow: 0 2px 0 rgba(26,26,26,.08); }
/* The cards use <h2>; this rule only named h3, so 'Hours' and 'The Diner'
   rendered as unstyled browser defaults instead of the display face. */
.info-card h2, .info-card h3, .info-card h4 { font-family: var(--font-display); font-size: 28px; text-transform: uppercase; color: var(--munson-red); margin: 0 0 16px; }
.hours-table { width: 100%; }
.hours-table tr td { padding: 6px 0; font-family: var(--font-serif); font-size: 16px; border-bottom: 1px dotted var(--border-1); }
.hours-table tr td:first-child { font-weight: 700; }
.hours-table tr td:last-child { text-align: right; color: var(--munson-red); font-family: var(--font-condensed); letter-spacing: .08em; }
.address { font-family: var(--font-serif); font-size: 17px; line-height: 1.5; overflow-wrap: anywhere; }
.address .name { font-family: var(--font-display); font-size: 22px; color: var(--munson-navy); display:block; margin-bottom: 6px; text-transform: uppercase; }

.map-placeholder {
  height: 100%; min-height: 340px; border-radius: 6px;
  background-color: var(--munson-mint);
  background-image:
    repeating-linear-gradient(0deg, rgba(27,58,91,.12) 0 1px, transparent 1px 40px),
    repeating-linear-gradient(90deg, rgba(27,58,91,.12) 0 1px, transparent 1px 40px);
  border: 2px solid var(--munson-ink);
  display:flex; align-items:center; justify-content:center; position: relative;
}
.map-pin { font-family: var(--font-display); color: var(--munson-red); font-size: 44px; }

/* ABOUT */
.about-wrap { max-width: 760px; margin: 0 auto; padding: 0 24px 48px; }
.about-wrap p { font-family: var(--font-serif); font-size: 19px; line-height: 1.6; color: var(--fg-1); margin: 0 0 18px; text-wrap: pretty; }
.about-wrap .callout { font-family: var(--font-script); color: var(--munson-red); font-size: 36px; line-height: 1.2; text-align: center; margin: 28px 0; }
.signature { font-family: var(--font-script); font-size: 28px; color: var(--munson-navy); margin-top: 24px; }

/* FOOTER */
.site-footer { background: var(--munson-navy-deep); color: var(--munson-cream); margin-top: 48px; }
.checker-strip {
  height: 28px;
  background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4MCA4MCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjgwIj4KICA8cmVjdCB3aWR0aD0iODAiIGhlaWdodD0iODAiIGZpbGw9IiNGRkY4RUMiPjwvcmVjdD4KICA8cmVjdCB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHg9IjAiIHk9IjAiIGZpbGw9IiMxQTFBMUEiPjwvcmVjdD4KICA8cmVjdCB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHg9IjQwIiB5PSI0MCIgZmlsbD0iIzFBMUExQSI+PC9yZWN0Pgo8L3N2Zz4=');
  background-size: 28px;
}
.footer-row { max-width: 1200px; margin: 0 auto; padding: 32px 24px; display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 32px; }
.footer-row h4,
/* h2, not h4: on shallow pages (about, location) the footer h4 followed the
   page h1 directly, skipping two heading levels for screen-reader nav. */
.footer-row h2 { font-family: var(--font-condensed); font-size: 13px; letter-spacing: .18em; color: var(--munson-mustard); text-transform: uppercase; margin: 0 0 10px; }
.footer-row p, .footer-row a { overflow-wrap: anywhere; font-family: var(--font-serif); font-size: 14px; color: var(--munson-cream); line-height: 1.6; text-decoration: none; display: block; opacity: .9; }
.footer-row a:hover { text-decoration: underline; opacity: 1; }
.footer-row a:not(.order-now-btn) { display: flex; align-items: center; min-height: 28px; }
.footer-meta { text-align: center; padding: 14px; border-top: 1px solid rgba(255,248,236,.15); font-family: var(--font-condensed); font-size: 12px; letter-spacing: .14em; opacity: .8; }


/* ===== Static-page additions ===== */
.sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;
  /* ten of these sit inside .pop-tag and would otherwise be announced
     as "HOUSE SPECIALTY" by a screen reader */
  text-transform: none;
}
.site-nav a {
  font-family: var(--font-condensed); font-size: 13px; letter-spacing: .14em; text-transform: uppercase;
  background: transparent; padding: 8px 14px; cursor: pointer; color: var(--munson-ink);
  border-radius: 3px; transition: all 120ms; text-decoration: none;
  /* Keep "Our Story" / "Reviews & More" on one line — they were breaking
     mid-label in the 821-1000px band and stacking the header to two rows. */
  white-space: nowrap;
}
.site-nav a:hover { background: var(--bg-3); }
.site-nav a.active { background: var(--munson-red); color: var(--munson-cream); }
.site-header .wordmark { display: inline-flex; }
.site-header .wordmark img { height: 64px; width: 64px; border-radius: 50%; }
.footer-logo { height: 80px; width: 80px; border-radius: 50%; margin-bottom: 12px; background: #fff; padding: 4px; }
.strip-card { text-decoration: none; color: inherit; display: block; }
.hero .neon { position: absolute; top: 32px; right: 4%; transform: rotate(6deg); width: 200px; }
.hero .neon svg { width: 100%; height: auto; }
/* Map on top, directions button in its own row underneath. The button used to
   sit absolutely positioned over the map's bottom-left corner, which covered
   Google's logo (their terms require it to stay visible) and the satellite
   toggle. As a column the map takes whatever height the grid row gives the
   card beside the hours, and the button row never overlaps it at any width. */
.map-card { padding: 0 !important; overflow: hidden; position: relative; display: flex; flex-direction: column; }
.map-card iframe { border: 0; width: 100%; flex: 1 1 auto; min-height: 340px; display: block; }
.map-actions { flex: none; padding: 14px; background: var(--munson-cream-warm); border-top: 2px solid var(--munson-ink); }
.map-pin-link {
  /* Primary "Get Directions" CTA — was 38px tall, under the touch minimum. */
  display: flex; align-items: center; justify-content: center; min-height: 48px; width: 100%;
  background: var(--munson-red); color: var(--munson-cream);
  font-family: var(--font-condensed); font-size: 14px; letter-spacing: .14em; text-transform: uppercase;
  padding: 10px 16px; border-radius: 4px; border: 2px solid var(--munson-ink);
  box-shadow: 0 2px 0 rgba(26,26,26,.18); text-decoration: none; text-align: center;
}
.map-pin-link:hover { background: var(--munson-red-dark); }
.menu-row .pop-tag { font-family: var(--font-condensed); font-size: 9px; letter-spacing: .14em; text-transform: uppercase; color: var(--munson-red); margin-left: 6px; }

/* Mobile / tablet */
@media (max-width: 820px) {
  /* The header was sticky AND 206px tall here — a quarter of a phone screen,
     and 71% of a landscape one once the fixed bottom bar is counted. Let it
     scroll away; the fixed action bar already keeps Call/Directions reachable. */
  .site-header { position: static; }
  .site-header-row { flex-wrap: wrap; justify-content: center; gap: 10px; padding: 10px 16px; }
  .site-header .wordmark img { height: 48px; width: 48px; }

  /* .site-nav was a nowrap flex row 479px wide inside a 327px column, so
     "Our Story" and "Reviews & More" sat off-screen with no way to reach them. */
  .site-nav { order: 3; width: 100%; flex-wrap: wrap; justify-content: center; gap: 2px; }
  .site-nav a {
    display: inline-flex; align-items: center; min-height: 44px;
    padding: 8px 12px; font-size: 12.5px; letter-spacing: .10em;
  }
  .hours-pill { font-size: 12px; padding: 7px 12px; }

  html { scroll-padding-top: 16px; }

  .strip { grid-template-columns: repeat(2, 1fr); }
  .faq-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .menu-cols { grid-template-columns: 1fr; }
  .loc-grid { grid-template-columns: 1fr; }
  .footer-row { grid-template-columns: 1fr; }
  .hero .neon { display: none; }

  /* Footer links were 22px tall — under the 44px touch-target minimum. */
  .footer-row a:not(.order-now-btn) { min-height: 44px; }
}
@media (max-width: 480px) {
  .strip { grid-template-columns: 1fr; }
  .faq-grid { grid-template-columns: minmax(0, 1fr); }
}


/* =========================================================
   FULL MENU PAGE + MOBILE ACTION BAR
   ========================================================= */
.full-menu-shell {
  background: var(--munson-cream);
}
/* The search field's own rules live in menu.html's <style> block, but none of
   them declared a placeholder colour, so every engine fell back to its own
   default: Chrome #757575 4.61:1, WebKit #A9A9A9 2.35:1, Firefox 3.79:1 — a
   fail on iPhone Safari, and the placeholder is the field's only visible
   label. Measured 6.84:1 in all three with this. `opacity: 1` is load-bearing:
   Firefox's default placeholder carries alpha, not just a colour. */
.menu-filter input::placeholder { color: #5F5A52; opacity: 1; }
.full-menu-intro {
  max-width: 980px;
  margin: 0 auto 26px;
  padding: 0 24px;
  text-align: center;
}
.full-menu-intro p {
  max-width: 760px;
  margin: 8px auto 16px;
  color: var(--fg-2);
  font-size: 17px;
  line-height: 1.55;
}
.full-menu-actions {
  display: flex;
  gap: 10px;
  justify-content: center;
  flex-wrap: wrap;
  margin: 16px 0 8px;
}
.full-menu-actions a {
  font-family: var(--font-condensed);
  font-size: 12px;
  letter-spacing: .12em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--munson-ink);
  background: var(--munson-cream-warm);
  border: 2px solid var(--munson-ink);
  padding: 11px 15px;
  border-radius: 4px;
  box-shadow: 0 2px 0 rgba(26,26,26,.12);
}
.full-menu-actions a.primary {
  background: var(--munson-red);
  color: var(--munson-cream);
}
.menu-note {
  font-size: 13px !important;
  color: var(--fg-3) !important;
  margin-top: 10px !important;
}
.menu-highlights-pro {
  max-width: 1180px;
  margin: 38px auto 38px;
  padding: 0 24px;
}
.menu-highlights-pro .section-rule {
  margin-top: 0;
  margin-bottom: 18px;
  padding: 0;
}
.menu-highlights-intro {
  max-width: 820px;
  margin: 0 auto 28px;
  text-align: center;
  font-family: var(--font-serif);
  font-size: 18px;
  line-height: 1.55;
  color: var(--fg-2);
}
.menu-highlights-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}
.menu-highlight-card {
  background: var(--munson-cream-warm);
  border: 2px solid var(--munson-ink);
  border-radius: 6px;
  padding: 22px 18px;
  text-align: center;
  box-shadow: 0 2px 0 rgba(26,26,26,.08), 0 8px 22px rgba(26,26,26,.10);
  position: relative;
  overflow: hidden;
}
.menu-highlight-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 5px;
  background: var(--munson-red);
}
.menu-highlight-card:nth-child(2)::before { background: var(--munson-navy); }
.menu-highlight-card:nth-child(3)::before { background: var(--munson-mustard); }
.menu-highlight-card:nth-child(4)::before { background: var(--munson-ink); }
.menu-highlight-card h3 {
  font-family: var(--font-display);
  font-size: 20px;
  line-height: 1.1;
  text-transform: uppercase;
  color: var(--munson-ink);
  margin: 8px 0 10px;
}
.menu-highlight-card p {
  font-family: var(--font-serif);
  font-size: 14px;
  line-height: 1.45;
  color: var(--fg-2);
  margin: 0;
}
.full-menu-pages {
  max-width: 1040px;
  margin: 0 auto 52px;
  padding: 0 18px;
}
.full-menu-page {
  margin: 0 auto 34px;
  text-align: center;
}
.full-menu-page h3 {
  font-family: var(--font-condensed);
  color: var(--munson-red);
  letter-spacing: .12em;
  font-size: 16px;
  text-transform: uppercase;
  margin: 20px 0 10px;
}
.full-menu-page a {
  display: inline-block;
  max-width: 100%;
}
.full-menu-page img {
  width: 100%;
  max-width: 980px;
  height: auto;
  display: block;
  border: 2px solid rgba(26,26,26,.18);
  box-shadow: 0 8px 26px rgba(0,0,0,.14);
  background: #fff;
}
.mobile-sticky-bar-final { display: none; }
@media screen and (max-width: 900px) {
  .menu-highlights-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media screen and (max-width: 820px) {
  html, body { overflow-x: hidden !important; }
  body { padding-bottom: calc(var(--action-bar-h) + 8px + env(safe-area-inset-bottom)) !important; }
  .full-menu-intro { padding: 0 14px; }
  .full-menu-actions { justify-content: stretch; }
  .full-menu-actions a { flex: 1 1 42%; text-align: center; }
  .full-menu-pages { padding: 0 8px; }
  .full-menu-page { margin-bottom: 22px; }
  .full-menu-page img { border-width: 1px; box-shadow: 0 4px 14px rgba(0,0,0,.12); }
  .mobile-sticky-bar-final {
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    z-index: 2147483647 !important;
    width: 100% !important;
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    background: #08172A !important;
    border-top: 4px solid #C8252C !important;
    box-shadow: 0 -6px 18px rgba(0,0,0,.28) !important;
    padding-bottom: env(safe-area-inset-bottom) !important;
  }
  .mobile-sticky-bar-final a,
  .mobile-sticky-bar-final a:visited,
  .mobile-sticky-bar-final a:hover,
  .mobile-sticky-bar-final a:active {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 64px !important;
    padding: 12px 6px !important;
    color: #FFF8EC !important;
    background: #08172A !important;
    text-decoration: none !important;
    font-family: var(--font-condensed) !important;
    font-size: 12px !important;
    line-height: 1.1 !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
    border-right: 1px solid rgba(255,255,255,.2) !important;
  }
  .mobile-sticky-bar-final a:last-child {
    border-right: 0 !important;
    background: #C8252C !important;
    color: #FFF8EC !important;
  }
}
@media screen and (max-width: 560px) {
  .menu-highlights-grid { grid-template-columns: 1fr; }
  .menu-highlights-intro { font-size: 16px; }
  .full-menu-actions a { flex-basis: 100%; }
}
/* Four labels across a 320px viewport is 80px a cell, and WebKit sets Bowlby
   One SC wider than Blink does: measured, "DIRECTIONS" ran 16px past its cell
   and left a -5.8px gap to "DELIVERY" — the two labels touch. Blink and Gecko
   are clear at every width. Dropping the tracking alone still overflowed by
   6.4px; this combination measures a +9.3px gap with 0.1px of overflow, and
   11px matches the sizes the header already shrinks to in its tight bands.
   Inert from 375px up, where the 12px label fits on its own. */
@media screen and (max-width: 374px) {
  .mobile-sticky-bar-final a {
    font-size: 11px !important;
    letter-spacing: .04em !important;
    padding-left: 3px !important;
    padding-right: 3px !important;
  }
}


/* =========================================================
   RESPONSIVE REPAIRS
   ========================================================= */

/* Tablet/small-laptop band. Above 820px the header keeps its single-row
   desktop layout, but logo + 5 nav links + hours pill needed ~869px, so at
   ~880px the labels wrapped and the header grew to two ragged rows. */
/* Upper bound is 1100, not 1000: at 1024px (iPad landscape) Blink fit the
   full-size header but WebKit and Gecko overflowed by 27px — they set
   Bowlby One SC slightly wider. The extra headroom absorbs that variance. */
@media (min-width: 821px) and (max-width: 1100px) {
  .site-header-row { gap: 12px; padding: 10px 16px; }
  .site-nav { gap: 0; }
  .site-nav a { padding: 8px 9px; font-size: 12px; letter-spacing: .06em; }
  .hours-pill { font-size: 11px; letter-spacing: .06em; padding: 6px 10px; gap: 6px; }
}

/* Section headings: the flex rules collapsed to hairlines at narrow widths
   and left the title left-aligned. Stack them into full-width bars instead. */
@media (max-width: 620px) {
  .section-rule { flex-direction: column; gap: 10px; }
  .section-rule .line { align-self: stretch; flex: 0 0 2px; width: 100%; }
}

/* Hero CTAs were centre-justified but ragged — four different widths in a
   stack. Equal width, single centred column. */
@media (max-width: 560px) {
  .hero-cta-row { flex-direction: column; align-items: center; gap: 10px; }
  /* border-box matters here: .btn carries 26px side padding + 2px border, so a
     content-box max-width:320 renders 376px — wider than the hero's content
     box, which pushed the stack off-centre and overflowed the viewport. */
  .hero-cta-row .btn { box-sizing: border-box; width: 100%; max-width: 320px; }
}

/* Buttons are inline-block links; centre their label once they have width. */
.btn { text-align: center; }

/* Cards read as one centred column on phones rather than edge-to-edge slabs. */
@media (max-width: 480px) {
  .strip { justify-items: center; }
  .strip-card { box-sizing: border-box; width: 100%; max-width: 420px; }
}

/* All seven hours rows broke as "7 AM – 9 / PM" at 320 and 360px, splitting the
   closing time onto its own line. Two alternatives were measured and rejected:
   `white-space: nowrap` clears the wrap but overflows every cell by 20px at
   320px, and `table-layout: auto` still wraps all seven there. 13px is the one
   that measures clean — 0 of 7 wrapped, no cell overflow, card 647px -> 444px —
   and the red stays at 4.68:1 on the card, so nothing trades away. */
@media (max-width: 374px) {
  .hours-table tr td:last-child { font-size: 13px; }
}

/* Clickable address / phone. The footer's generic `a { display: flex }` rule
   would turn an inline address link into its own flex block, so opt out. */
.footer-row a.footer-addr {
  display: inline-block; min-height: 0; padding: 5px 0; opacity: .9;
  text-decoration: underline; text-underline-offset: 3px;
  text-decoration-color: rgba(255,248,236,.45);
}
.footer-row a.footer-addr:hover { opacity: 1; text-decoration-color: currentColor; }

.addr-link {
  overflow-wrap: anywhere;
  color: inherit; text-decoration: underline; text-underline-offset: 3px;
  text-decoration-color: rgba(26,26,26,.35);
  display: inline-block; padding: 3px 0;
}
.addr-link:hover { color: var(--munson-red); text-decoration-color: currentColor; }

/* 821-900px is the tightest point on the whole site: the desktop single-row
   header resumes at 821px but there is barely room for logo + 5 links + pill
   (measured 2px of overflow at 830px). Shave the row a little harder here. */
@media (min-width: 821px) and (max-width: 900px) {
  .site-header .wordmark img { height: 52px; width: 52px; }
  .site-nav a { padding: 8px 6px; font-size: 11.5px; letter-spacing: .03em; }
  .hours-pill { font-size: 10.5px; letter-spacing: .03em; padding: 6px 9px; gap: 5px; }
  .hours-pill .dot { width: 8px; height: 8px; }
}

/* Footer "Order Delivery" was stretching the full column: the generic
   `.footer-row p, .footer-row a { display: block }` (0,1,1) outranks
   `.order-now-btn { display: inline-flex }` (0,1,0). Win it back on specificity. */
.footer-row a.order-now-btn {
  display: inline-flex; width: auto; align-self: flex-start;
  padding: 11px 18px; font-size: 12px;
}

/* =========================================================
   CONDITION FIXES  (zoom, keyboard, motion, touch, print)
   ========================================================= */

/* Keyboard focus was left entirely to the UA, and the UA ring is near-invisible
   on the navy footer and red buttons. */
:where(a, button, [tabindex]):focus-visible {
  outline: 3px solid var(--munson-ink);
  outline-offset: 2px;
  border-radius: 3px;
}
.site-footer :focus-visible,
.more-band :focus-visible,
.mobile-sticky-bar-final :focus-visible {
  outline-color: var(--munson-mustard);
}

/* iOS paints a grey wash over any tapped element; on the full-size cards that
   is a large flash. Tint it to brand instead. Inherits, so declare once. */
html { -webkit-tap-highlight-color: rgba(200, 37, 44, 0.15); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
  .btn:hover, .btn:active, .strip-card:hover, .order-now-btn:hover { transform: none !important; }
}

@media screen and (max-width: 820px) {
  /* Tabbing to something near the page bottom parked it behind the fixed
     action bar. Mirrors the body padding reserve. */
  html { scroll-padding-bottom: calc(var(--action-bar-h) + 8px + env(safe-area-inset-bottom)); }
}

@media print {
  /* Cream text on navy/red prints as invisible-on-white. Force ink on paper. */
  .site-header, .mobile-sticky-bar-final, .neon, .checker-strip { display: none !important; }
  .site-footer, .more-band, .more-panel,
  .seo-menu-section > h3, .btn, .order-now-btn, .seo-menu-actions a {
    background: #fff !important;
    color: #000 !important;
    border-color: #000 !important;
    box-shadow: none !important;
  }
  .site-footer a, .more-panel a, .footer-row a, .footer-row p { color: #000 !important; }
  .seo-menu-section > h3 { border-bottom: 2px solid #000; }
  /* Keep menu sections and scanned pages from splitting across sheets. */
  .menu-image-card, .seo-menu-section, .seo-subsection {
    break-inside: avoid; page-break-inside: avoid;
  }
  .menu-image-card img { max-height: 9in; width: auto; margin: 0 auto; }
  body { padding-bottom: 0 !important; }
}

/* The hero neon is a real sign: unlit when the diner is shut. Without this it
   glowed OPEN while the header pill read "Closed - opens 7 AM tomorrow". */
.diner-closed .hero .neon { opacity: .32; filter: grayscale(1); }
.hero .neon { transition: opacity 200ms, filter 200ms; }

/* Skip link. Was duplicated inline in three pages; defined once here so every
   page that links this stylesheet gets it. 404.html deliberately links no
   stylesheet and needs none — it is a single box. */
main[tabindex="-1"]:focus { outline: none; }
.skip-link { position: absolute; left: -9999px; top: 0; z-index: 100; }
.skip-link:focus { left: 8px; top: 8px; background: var(--munson-red); color: var(--munson-cream); font-family: var(--font-condensed); font-size: 13px; letter-spacing: .14em; text-transform: uppercase; text-decoration: none; padding: 10px 16px; border-radius: 3px; }
