/* Dianne’s — shared visual system. Content remains readable without JavaScript. */
:root {
  --paper:#faf8f4; --white:#fffdf9; --ink:#49413b; --muted:#71665c;
  --rust:#8a5d4b; --rust-dark:#78503f; --cream:#f4ede2; --gold:#8d6e40;
  --warm:#f3eee7; --soft:#eee7df; --accent-line:#c7b199;
  --brand:#9c442f; --brand-dark:#803b2b; --clay:#ead5c3;
  --line:#ded6cc; --dark-line:#847366; --max:1200px;
  --body:'Work Sans',Verdana,Arial,sans-serif; --display:'Bebas Neue','Arial Narrow',Impact,sans-serif;
  --navh:88px; --callbarh:0px; --toolsh:0px;
  --safe-top:env(safe-area-inset-top,0px); --safe-bottom:env(safe-area-inset-bottom,0px);
  --safe-left:env(safe-area-inset-left,0px); --safe-right:env(safe-area-inset-right,0px);
}
* {box-sizing:border-box}
html {scroll-behavior:smooth; scroll-padding-top:calc(var(--navh) + 20px); scroll-padding-bottom:calc(var(--callbarh) + 16px); -webkit-text-size-adjust:100%; background:var(--paper)}
body {margin:0; color:var(--ink); background:var(--paper); font:400 1rem/1.65 var(--body); padding-bottom:var(--callbarh)}
h1,h2,h3,h4,p,figure {margin:0}
a {color:inherit; text-underline-offset:4px; text-decoration-thickness:1px}
a,button,input,select {-webkit-tap-highlight-color:transparent}
a:hover {color:var(--rust)}
button,input,select {font:inherit}
button,a,input,select {touch-action:manipulation}
button {cursor:pointer}
img {display:block; max-width:100%; height:auto}
svg {width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0}
button {color:inherit}
[hidden] {display:none!important}
:focus-visible {outline:3px solid var(--rust); outline-offset:5px}
::selection {background:#e4d6c3; color:var(--ink)}
.wrap {width:min(100%,var(--max)); padding-inline:32px; margin-inline:auto}
.vh {position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0}
.skip {position:fixed; top:-100px; left:16px; z-index:200; background:var(--white); padding:10px 20px; border:2px solid var(--rust)}
.skip:focus {top:12px}
.eyebrow {font-size:.75rem; font-weight:600; line-height:1.5; letter-spacing:.13em; text-transform:uppercase; color:var(--rust)}
h1,h2,h3 {font-family:var(--display); font-weight:400; line-height:1.03; letter-spacing:.008em}
h1 {font-size:clamp(3.5rem,6.5vw,6rem)}
h2 {font-size:clamp(2.5rem,4vw,3.75rem)}
h3 {font-size:1.875rem}
h4 {font-weight:600; line-height:1.35}
p {text-wrap:pretty}
.fine {font-size:.8125rem; color:var(--muted); line-height:1.5}
.ctas {display:flex; align-items:center; gap:24px; flex-wrap:wrap}
.btn {display:inline-flex; min-height:50px; justify-content:center; align-items:center; gap:20px; padding:12px 22px; border:1px solid transparent; border-radius:2px; font-size:.9375rem; font-weight:600; text-decoration:none; line-height:1.4; transition:background-color .15s,color .15s,transform .15s}
.btn-solid {background:var(--brand); color:white}
.btn-solid:hover {background:var(--brand-dark); color:white}
.btn:active {transform:translateY(1px)}
.text-link {display:inline-flex; align-items:center; gap:12px; min-height:44px; font-weight:600; font-size:.9375rem; text-decoration:none}
.text-link:hover {text-decoration:underline}
.text-link svg,.dish-heading svg {transition:transform .15s}
.text-link:hover svg,.dish:hover svg {transform:translateX(3px)}
/* A clear call action anchors the shared navigation. */
.sitenav {position:sticky; top:0; z-index:70; background:var(--paper); border-bottom:1px solid var(--line); padding-top:var(--safe-top)}
.nav-inner {max-width:var(--max); margin:auto; padding:14px 32px; min-height:88px; display:flex; align-items:center; justify-content:space-between; gap:28px}
.brand {display:flex; flex-direction:column; align-items:flex-start; flex-shrink:0; text-decoration:none; color:var(--ink); line-height:1}
.brand-title {color:var(--brand-dark); font:400 2.35rem/.92 var(--display); letter-spacing:.01em}
.brand-dot {color:#b08045}
.brand-sub {font-size:.625rem; font-weight:600; letter-spacing:.19em; text-transform:uppercase; margin-top:7px}
.nav-links {display:flex; gap:28px; align-items:center}
.nav-links a {display:flex; align-items:center; min-height:44px; font-weight:500; font-size:.9375rem; text-decoration:none; position:relative}
.nav-links a[aria-current]::after {content:''; position:absolute; height:2px; bottom:2px; left:0; right:0; background:var(--rust)}
.nav-call {display:flex; align-items:center; gap:12px; flex-shrink:0; text-decoration:none; color:var(--white); background:var(--brand); border:1px solid var(--brand); padding:10px 18px; min-height:58px; border-radius:3px; transition:background-color .15s,transform .15s}
.nav-call:hover {color:var(--white); background:var(--brand-dark); border-color:var(--brand-dark)}
.nav-call:active {transform:translateY(1px)}
.nav-call>svg {width:23px; height:23px}
.nav-call-text {display:flex; flex-direction:column; gap:3px}
.nav-call-label {font-size:.625rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; line-height:1.2}
.nav-call-number {font-size:1rem; font-weight:700; line-height:1.2; white-space:nowrap}
.nav-toggle {display:none; width:46px; height:46px; background:transparent; border:1px solid var(--line); border-radius:2px; position:relative}
.nav-toggle span {position:absolute; left:12px; right:12px; height:2px; top:16px; background:var(--ink); transition:transform .15s,top .15s}
.nav-toggle span+span {top:25px}
.nav-toggle.active span {top:21px; transform:rotate(45deg)}
.nav-toggle.active span+span {transform:rotate(-45deg)}
.mobile-drawer {display:none}
/* A bright opening: the actual building, its sign and the first food photographs. */
.hero {padding:48px 0 44px; background:var(--warm)}
.hero-grid {display:grid; grid-template-columns:.95fr 1.15fr; align-items:center; gap:52px}
.hero-content h1 {font-size:clamp(4.25rem,7.4vw,6.75rem); line-height:.93; margin:20px 0 24px}
.hero-content h1>span {color:var(--rust)}
.hero-description {color:var(--muted); max-width:36ch; font-size:1.0625rem; line-height:1.65}
.hero-content .ctas {margin-top:26px}
.hero-menu-note {font-size:.8125rem; color:var(--muted); margin-top:12px}
.hero-photo {align-self:stretch; display:flex; flex-direction:column; min-height:480px; background:var(--soft); overflow:hidden; border-radius:2px}
.hero-photo img {width:100%; height:100%; flex:1; min-height:0; object-fit:cover; object-position:66% 65%}
.hero-photo figcaption {color:var(--muted); display:flex; justify-content:space-between; align-items:center; gap:12px; font-size:.8125rem; padding:16px 20px}
.hero-photo figcaption a {color:var(--rust-dark); display:inline-flex; align-items:center; gap:10px; text-decoration:none; min-height:28px}
.hero-photo figcaption svg {width:17px}
.visit-strip {border-block:1px solid var(--line); background:var(--paper); color:var(--ink)}
.visit-strip-inner {display:grid; grid-template-columns:1.15fr 1fr .85fr; gap:32px; padding-block:24px}
.visit-strip-inner>div+div {border-left:1px solid var(--line); padding-left:32px}
.visit-strip .eyebrow {display:block; color:var(--muted); margin-bottom:5px}
.visit-strip strong,.visit-strip a {font-size:1rem; font-weight:500; line-height:1.4}
.visit-strip a {display:flex; align-items:center; gap:20px; text-decoration:none; white-space:nowrap}
.status-inline {display:inline-flex; gap:6px; align-items:center; color:var(--muted); letter-spacing:0; text-transform:none; font-size:.75rem; font-weight:500; margin-left:10px}
.status-inline:has(.status-text:empty) {display:none}
.dot {display:inline-block; width:6px; height:6px; border-radius:100%; background:#6e7655}
.is-open .dot {background:#477145}.is-closed .dot {background:var(--rust)}.is-closing .dot {background:#927011}
.food-section {padding:64px 0 72px}
.section-heading {display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:28px}
.section-heading h2 {margin-top:9px; color:var(--ink)}
.dish-grid {display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px}
.dish {display:block; color:var(--ink); text-decoration:none}
.dish figure {aspect-ratio:4/3; overflow:hidden; background:var(--line); border-radius:2px}
.dish img {width:100%; height:100%; object-fit:cover; transition:transform .25s}
.dish:hover img {transform:scale(1.025)}
.dish:hover {color:var(--ink)}
.dish-heading {display:flex; justify-content:space-between; align-items:center; gap:16px; margin:20px 0 9px}
.dish-heading h3 {color:var(--ink)}
.dish-heading svg {color:var(--rust)}
.dish p {font-size:.9375rem; color:var(--muted); line-height:1.65}
.dish-price {display:block; margin-top:10px; color:var(--rust); font-size:.9375rem; font-weight:600}
.catering-section {--dark-line:#c9a98f; --muted:#655347; background:var(--clay); color:var(--ink); padding:64px 0; border-block:1px solid #d8baa2}
.catering-grid {display:grid; grid-template-columns:1.3fr .85fr; gap:100px; align-items:center}
.catering-section .eyebrow {color:var(--brand-dark)}
.catering-section h2 {color:var(--brand-dark); font-size:clamp(3rem,5vw,4.5rem); margin:12px 0 20px}
.catering-description {max-width:47ch; color:var(--muted)}
.catering-section .ctas {margin-top:28px}
.catering-section .text-link {color:var(--ink)}
.catering-section a:hover {color:var(--brand-dark)}
.contact-note {font-size:.8125rem; color:var(--muted); line-height:1.9; margin-top:18px}
.feast-card {border-left:1px solid var(--dark-line); padding-left:46px}
.feast-card h3 {font-size:2.5rem; margin-top:15px}
.feast-price {font-family:var(--display); font-size:4.5rem; line-height:1.25; color:var(--brand); margin:8px 0 14px}
.feast-card>p:not(.eyebrow):not(.feast-price) {color:var(--muted); font-size:.9375rem}
.feast-card .fine {display:block; color:var(--muted); margin-top:10px}
.feast-card .text-link {margin-top:18px}
/* Distinct review cards make the platform, score and review count easy to scan. */
.reviews-strip {border-bottom:1px solid var(--line); background:var(--paper)}
.reviews-inner {padding-block:42px; display:grid; grid-template-columns:.8fr 1fr 1fr; align-items:stretch; gap:24px}
.reviews-heading {align-self:center}
.reviews-heading h2 {color:var(--ink); font-size:2.7rem; margin:9px 0 12px; line-height:.98}
.reviews-note {font-size:.6875rem; color:var(--muted); line-height:1.5; max-width:25ch}
.review-card {display:flex; align-items:center; gap:22px; min-width:0; padding:28px 24px; border:1px solid var(--line); border-top:3px solid var(--accent-line); border-radius:3px; background:var(--white); color:var(--ink)}
.review-score {flex:0 0 102px}
.review-score strong {display:block; font:400 4.25rem/.95 var(--display); color:var(--rust-dark); white-space:nowrap}
.review-score strong span {font-size:2rem; margin-left:2px}
.review-symbols {display:flex; align-items:center; gap:3px; height:18px; margin-top:12px; color:var(--gold)}
.review-stars svg {width:18px; height:18px; fill:currentColor; stroke-width:1.1}
.review-recommendation svg {width:19px; height:19px; stroke-width:1.7}
.review-score-label {display:block; margin-top:9px; font-size:.625rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; line-height:1.4}
.review-details {padding-left:22px; border-left:1px solid var(--line)}
.review-details h3 {font:600 .9375rem/1.4 var(--body); letter-spacing:0}
.review-details h3 a {display:inline-flex; align-items:center; gap:5px; min-height:44px; margin-block:-10px; text-decoration-color:#a79785}
.review-details h3 a:hover {color:var(--rust-dark)}
.review-details svg {width:15px; height:15px}
.review-details p {margin-top:7px; font-size:.75rem; line-height:1.5; color:var(--muted)}
.visit-section {padding:72px 0}
.visit-grid {display:grid; grid-template-columns:1fr 1.1fr; gap:72px; align-items:center}
.visit-grid h2 {margin:10px 0 22px; color:var(--ink)}
address {font-style:normal}
.visit-grid address {font-size:1.125rem; line-height:1.6}
.copy-btn {vertical-align:middle; display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px; background:transparent; border:1px solid var(--line); border-radius:2px; margin-left:6px; color:var(--muted)}
.copy-btn svg {width:17px;height:17px}
.copy-btn:hover,.copy-btn.did-copy {color:var(--rust); border-color:var(--rust)}
.visit-details {display:grid; gap:16px; margin:24px 0}
.visit-details .eyebrow {display:block; color:var(--muted); margin-bottom:4px}
.visit-details strong,.visit-details a {font-size:1rem;font-weight:500}
.map-card {background:#e9e3d8; border:1px solid var(--line); border-radius:2px; overflow:hidden}
.map-card iframe {display:block; width:100%; height:350px; border:0}
.map-caption {display:block; background:var(--white); padding:12px 18px; font-size:.8125rem; text-decoration:none}
.map-caption:focus-visible,.menu-sidebar a:focus-visible {outline-offset:-3px}
/* Compact, distinct About page using the restaurant's existing photographs. */
.about-intro {padding:48px 0 0; background:var(--warm)}
.about-intro h1 {color:var(--ink)}
.about-intro-grid {display:grid; grid-template-columns:1fr 1fr; gap:76px; align-items:center; margin:14px 0 36px}
.about-intro-grid .lede {font-size:1.375rem; line-height:1.45; color:var(--ink); margin-bottom:15px}
.about-intro-grid p {color:var(--muted)}
.about-intro-grid .text-link {margin-top:12px}
.about-building {position:relative}
.about-building img {width:100%; height:auto; aspect-ratio:1600/880; object-fit:cover; object-position:center 72%; border-radius:2px}
.about-building figcaption {position:absolute; bottom:18px; left:20px; padding:7px 12px; color:var(--rust-dark); background:var(--cream); font-size:.8125rem}
.about-table {padding:64px 0}
.about-table-grid {display:grid; grid-template-columns:1fr 1fr; gap:76px}
.about-table h2 {margin-top:12px; color:var(--ink)}
.about-dining {display:flex; align-items:center; gap:20px; margin-top:30px}
.about-dining img {width:220px; height:auto; flex-shrink:0; border-radius:2px}
.about-dining p {font-size:.875rem; color:var(--muted)}
.about-options article {border-top:1px solid var(--line); padding:20px 0}
.about-options article:first-child {padding-top:16px; border-top:2px solid var(--accent-line)}
.about-options h3 {color:var(--ink); font-size:1.75rem; margin-bottom:8px}
.about-options p {color:var(--muted); font-size:.9375rem}
.about-options .text-link {margin-top:8px}
.about-invitation {background:var(--soft); color:var(--ink); padding:32px 0}
.invitation-inner {display:flex; justify-content:space-between; align-items:center; gap:24px}
.invitation-inner h2 {font-size:2.5rem; margin-top:8px}
/* Menu: one category system, a persistent search, and clearly associated prices. */
.menu-heading {padding:28px 0 22px; border-bottom:1px solid var(--line); background:var(--warm)}
.menu-heading-inner {display:flex; justify-content:space-between; align-items:center; gap:24px}
.menu-heading h1 {color:var(--ink); font-size:4.5rem; margin-top:6px}
.menu-heading-note {text-align:right; font-size:.875rem; color:var(--muted)}
.menu-heading-note a {display:inline-flex; align-items:center; gap:12px; font-weight:600; color:var(--rust); min-height:36px; text-decoration:none}
.menu-disclaimer {font-size:.8125rem; color:var(--muted); margin-top:12px}
.menu-section {padding:28px 0 56px}
.menu-layout {display:grid; grid-template-columns:205px minmax(0,1fr); align-items:start; gap:48px}
.menu-sidebar {position:sticky; top:calc(var(--navh) + 18px); max-height:calc(100svh - var(--navh) - 36px); overflow-y:auto; scrollbar-width:thin; padding-bottom:16px}
.menu-sidebar nav {display:flex; flex-direction:column; margin-top:12px}
.menu-sidebar a {display:block; padding:8px 12px; border-left:2px solid transparent; min-height:38px; font-size:.875rem; font-weight:500; line-height:1.55; text-decoration:none}
.menu-sidebar a:hover {background:var(--soft)}
.menu-sidebar a[aria-current] {color:var(--rust-dark); background:var(--soft); border-left-color:var(--rust)}
.menu-tools {position:sticky; top:var(--navh); z-index:30; background:var(--paper); display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px 18px; align-items:center; padding:10px 0 12px; margin-top:-10px; border-bottom:1px solid var(--line)}
.search-wrap {position:relative; max-width:480px}
.search-wrap input {width:100%; min-width:0; height:48px; border:1px solid #9e8c7d; border-radius:2px; background:var(--white); color:var(--ink); padding:10px 42px; font-size:1rem; appearance:none}
.search-wrap input::placeholder {color:var(--muted); opacity:1}
.search-wrap input::-webkit-search-cancel-button {display:none}
.search-icon {position:absolute; left:14px; top:14px; width:19px; height:19px; color:var(--muted); pointer-events:none}
.search-clear {position:absolute; right:2px; top:2px; width:44px; height:44px; border:0; background:transparent; font-size:1.5rem}
.category-select-wrap {display:none}
.print-btn {display:inline-flex; align-items:center; gap:9px; background:none; border:1px solid var(--line); border-radius:2px; padding:10px 14px; min-height:48px; font-size:.875rem; white-space:nowrap}
.print-btn:hover {border-color:var(--rust); color:var(--rust)}
.print-btn svg {width:18px}
.search-summary {grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:22px; font-size:.8125rem; color:var(--muted)}
.search-summary p {min-width:0; overflow-wrap:anywhere}
.reset-link {border:0; background:transparent; color:var(--rust); text-decoration:underline; padding:4px 0; font-size:.8125rem; min-height:28px; white-space:nowrap}
.menu-grid {padding-top:28px}
.menu-block {margin-bottom:40px; border-top:2px solid var(--accent-line); padding-top:20px; scroll-margin-top:var(--toolsh)}
.menu-content>:not(.menu-tools) :where(a,button,input,select) {scroll-margin-top:calc(var(--toolsh) + 12px)}
.menu-block h3 {font-size:2rem; color:var(--ink)}
.menu-block>.sub {font-size:.875rem; color:var(--muted); line-height:1.55; margin-top:8px; max-width:65ch}
.m-list {list-style:none; padding:0; margin:14px 0 0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 28px}
.m-list li {display:flex; align-items:baseline; gap:12px; justify-content:space-between; min-width:0; border-bottom:1px solid var(--line); padding:12px 0; line-height:1.45; font-size:1rem}
.m-list .n {font-weight:500; min-width:0}
.m-list .n small {display:block; font-size:.8125rem; font-weight:400; color:var(--muted); line-height:1.5; margin-top:4px}
.m-list .p {font-size:.9375rem; font-weight:600; font-variant-numeric:tabular-nums; color:var(--rust); white-space:nowrap; flex-shrink:0}
.m-foot {font-size:.875rem; line-height:1.65; color:var(--muted); margin-top:16px; max-width:75ch}
.inline-options {list-style:none; padding:0; margin:14px 0 0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 20px}
.inline-options li {border-bottom:1px solid var(--line); padding:10px 0; line-height:1.5; font-size:.9375rem}
.inline-options small {display:block; color:var(--muted); font-size:.8125rem}
.inline-options [aria-hidden] {color:var(--rust)}
.price-tag {display:inline-block; vertical-align:middle; margin-left:10px; font-family:var(--body); font-size:.9375rem; font-weight:600; padding:5px 8px; color:var(--rust-dark); background:var(--warm)}
.size-label {font-weight:400; font-size:.75rem; color:var(--muted)}
.price-divider {padding:0 4px; color:var(--muted)}
#beverages .m-list {grid-template-columns:1fr}
#beverages .m-list li {max-width:520px}
.cater-grid {display:grid; grid-template-columns:1fr 1fr; gap:28px; margin-top:24px}
.cater-grid .m-list {display:block}
.cater-col:last-child {grid-column:1/-1; background:var(--warm); padding:22px 24px; border-left:3px solid var(--accent-line)}
.cater-col:last-child h4 {display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; font-size:1.125rem}
.cater-col:last-child .price-tag {background:none; font-size:1.125rem; padding:0}
.cater-col:last-child .m-foot {margin-top:10px}
.cater-call {margin-top:24px; font-size:.875rem; color:var(--muted)}
.acc {margin-top:18px; border-block:1px solid var(--line)}
.acc-btn {display:flex; align-items:center; justify-content:space-between; gap:16px; width:100%; padding:16px 0; border:0; background:none; text-align:left; font-size:.9375rem; font-weight:600}
.acc-icon::before {content:'+';font-size:1.25rem;font-weight:400}
.acc.open .acc-icon::before {content:'−'}
.js .acc-panel {display:none}
.js .acc.open .acc-panel {display:block}
.acc-body {padding:0 0 18px; font-size:.875rem; color:var(--muted)}
.search-empty {padding:50px 0; text-align:center}
.search-empty p {color:var(--muted);margin:12px 0 22px}
.order-band {display:flex; align-items:center; justify-content:space-between; gap:24px; color:var(--ink); background:var(--soft); border-top:1px solid var(--line); padding:28px; margin-top:36px}
.order-band h2 {font-size:2.375rem; margin-top:8px}
.visit-strip a:hover {color:var(--rust-dark)}
/* Footer and supporting controls. */
footer {background:var(--warm); color:var(--ink); border-top:1px solid var(--line); padding:48px 0 0}
.footer-grid {display:grid; grid-template-columns:1.1fr 1fr 1fr; gap:56px; padding-bottom:36px}
footer .brand {color:var(--ink)}
footer p,footer address {font-size:.875rem; color:var(--muted); line-height:1.8}
footer p {margin:14px 0 8px}
.footer-title {font:500 .8125rem var(--body); letter-spacing:.07em; text-transform:uppercase; color:var(--rust-dark); margin-bottom:18px}
footer .text-link {font-size:.875rem; color:var(--ink)}
footer a:hover {color:var(--rust-dark)}
.email {overflow-wrap:anywhere}
.footer-bottom {display:flex; align-items:center; justify-content:space-between; gap:24px; padding-block:20px; border-top:1px solid var(--line); font-size:.75rem; color:var(--muted)}
.footer-bottom nav {display:flex;gap:24px}
.footer-bottom a {min-height:32px; display:flex;align-items:center;text-decoration:none}
.callbar {display:none}
.to-top-btn {position:fixed; bottom:24px; right:20px; z-index:45; display:flex; align-items:center; justify-content:center; border:1px solid var(--line); border-radius:50%; width:44px; height:44px; background:var(--white); color:var(--ink); box-shadow:0 3px 12px #241b1620; opacity:0; visibility:hidden; transition:opacity .15s,visibility .15s}
.to-top-btn.show {opacity:1;visibility:visible}
.toast {position:fixed; z-index:150; bottom:calc(var(--callbarh) + 22px); left:50%; transform:translate(-50%,10px); background:var(--ink); color:white; border:1px solid var(--dark-line); padding:12px 22px; border-radius:3px; font-size:.875rem; opacity:0; visibility:hidden; width:max-content; max-width:calc(100% - 32px); transition:opacity .15s,transform .15s,visibility .15s}
.toast.show {opacity:1;visibility:visible;transform:translate(-50%,0)}
.no-js .menu-tools,.no-js .copy-btn,.no-js .to-top-btn {display:none}
/* At smaller widths, preserve the actions and let the content do the wrapping. */
@media (max-width:1100px) {
  .nav-links {gap:20px}.nav-inner {gap:20px}.nav-call {padding-inline:14px}
  .hero-grid {gap:32px}.hero-photo {min-height:450px}
  .catering-grid {gap:54px}.visit-grid {gap:40px}
  .reviews-inner {grid-template-columns:1fr 1fr;gap:20px}.reviews-heading {grid-column:1/-1}.reviews-heading h2 br {display:none}.reviews-note {max-width:none}
  .menu-layout {gap:30px;grid-template-columns:185px minmax(0,1fr)}
  .m-list {grid-template-columns:1fr}.inline-options {grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:880px) {
  :root {--navh:72px;--callbarh:calc(60px + var(--safe-bottom))}
  .wrap {padding-inline:24px}.nav-inner {padding:10px 24px;min-height:72px}
  .nav-links,.nav-call {display:none}.nav-toggle {display:block}.brand-title {font-size:2.1rem}
  .mobile-drawer.open {display:flex;flex-direction:column;gap:0;position:fixed;inset:var(--navh) 0 0;z-index:65;background:var(--paper);padding:20px 24px calc(30px + var(--safe-bottom));overflow:auto}
  .mobile-drawer>a:not(.btn) {padding:12px 0;font-size:1.25rem;font-weight:500;border-bottom:1px solid var(--line);text-decoration:none}
  .mobile-drawer>a[aria-current] {color:var(--rust)}
  .mobile-drawer .btn {margin-top:24px}.mobile-drawer p {margin-top:20px;font-size:.875rem;color:var(--muted)}
  .drawer-open {overflow:hidden}
  .no-js .nav-inner {flex-wrap:wrap}.no-js .nav-links {display:flex;flex-wrap:wrap;gap:6px 18px;width:100%}.no-js .nav-toggle {display:none}
  .hero-grid {gap:28px}.hero-content h1 {font-size:4.4rem}.hero-photo {min-height:420px}.hero-photo figcaption {padding:12px;flex-direction:column;align-items:flex-start;gap:0}
  .hero-content .ctas {gap:12px}.hero-description {font-size:1rem}
  .visit-strip-inner {gap:18px}.visit-strip-inner>div+div {padding-left:18px}.visit-strip strong {font-size:.875rem}
  .status-inline {display:flex;margin:4px 0 0}
  .visit-strip .status-inline {display:inline-flex;margin-left:5px}
  .dish-grid {gap:20px}.dish-heading {gap:8px}.dish h3 {font-size:1.55rem}
  .catering-grid {gap:36px}.feast-card {padding-left:28px}.catering-section .ctas {gap:12px}
  .visit-grid {gap:30px}.map-card iframe {height:360px}
  .about-intro-grid,.about-table-grid {gap:40px}.about-dining {flex-direction:column;align-items:flex-start}
  .menu-layout {grid-template-columns:160px minmax(0,1fr);gap:26px}.menu-sidebar a {font-size:.8125rem;padding:7px 9px}
  .menu-tools {gap:8px 10px}.print-btn {padding-inline:10px}.print-btn span {display:none}
  .cater-grid {grid-template-columns:1fr;gap:20px}.cater-col:last-child {grid-column:auto}
  .footer-grid {gap:32px}
  .callbar {position:fixed;bottom:0;left:0;right:0;z-index:60;background:var(--paper);border-top:1px solid var(--line);padding:8px calc(12px + var(--safe-right)) calc(8px + var(--safe-bottom)) calc(12px + var(--safe-left));display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .callbar a {min-height:44px;display:flex;align-items:center;justify-content:center;gap:9px;font-size:.875rem;font-weight:600;text-decoration:none;border:1px solid var(--line);border-radius:2px;line-height:1.3}
  .callbar a:first-child {background:var(--brand);color:white;border-color:var(--brand)}
  .callbar a:active {background:var(--ink);color:white}
  .callbar svg {width:17px;height:17px}
  .to-top-btn {bottom:calc(var(--callbarh) + 12px);right:12px}
  .copy-btn {width:44px;height:44px}
}
@media (max-width:640px) {
  :root {--navh:68px}
  .wrap {padding-inline:20px}.nav-inner {min-height:68px;padding:8px 20px}.brand-title {font-size:2rem}.brand-sub {font-size:.6rem;margin-top:5px}
  .eyebrow {font-size:.75rem;letter-spacing:.1em}
  h1 {font-size:3.5rem}h2 {font-size:2.75rem}
  .hero {padding:30px 0 28px}.hero-grid {grid-template-columns:1fr;gap:26px}
  .hero-content h1 {font-size:4.15rem;margin:15px 0 18px;line-height:.93}
  .hero-description {font-size:1rem;max-width:36ch;line-height:1.6}.desktop-break {display:none}
  .hero-content .ctas {margin-top:20px;gap:20px}.hero-content .btn {padding-inline:18px;gap:16px}
  .hero-menu-note {margin-top:8px}.hero-photo {min-height:0;height:240px}.hero-photo img {height:194px;object-position:center 70%}
  .hero-photo figcaption {padding:10px 14px;flex-direction:row;align-items:center;min-height:46px;font-size:.75rem}
  .hero-photo figcaption a {min-height:24px}.hero-photo figcaption svg {width:15px}
  .visit-strip-inner {grid-template-columns:1fr 1fr;gap:16px;padding-block:20px}.visit-strip-inner>div:first-child {display:none}
  .visit-strip-inner>div:nth-child(2) {border:0;padding:0}.visit-strip-inner>div:last-child {padding-left:16px}
  .visit-strip .status-inline {display:flex;margin:4px 0}.visit-strip .eyebrow {min-height:20px}
  .visit-strip strong,.visit-strip a {font-size:.9375rem}.visit-strip a svg {width:16px}
  .food-section {padding:40px 0}.section-heading {align-items:flex-start;gap:14px;margin-bottom:24px}.section-heading .text-link {font-size:.8125rem;gap:5px;max-width:110px;line-height:1.4;text-align:right}.section-heading .text-link svg {width:17px}
  .dish-grid {grid-template-columns:1fr;gap:28px}.dish figure {aspect-ratio:16/10}.dish-heading {margin-top:15px;margin-bottom:7px}.dish h3 {font-size:1.875rem}.dish p {font-size:.9375rem}.dish-price {margin-top:7px}
  .catering-section {padding:40px 0}.catering-grid {grid-template-columns:1fr;gap:32px}.catering-section h2 {font-size:3.4rem;margin:10px 0 18px}.catering-section .ctas {gap:20px}.catering-description {font-size:.9375rem}.contact-note {font-size:.8125rem}
  .feast-card {border-left:0;border-top:1px solid var(--dark-line);padding:28px 0 0}.feast-card h3 {font-size:2rem;margin-top:10px}.feast-price {font-size:3.8rem;margin:5px 0 10px}.feast-card .text-link {margin-top:10px}
  .reviews-inner {grid-template-columns:1fr;gap:14px;padding-block:32px}.reviews-heading {margin-bottom:6px}.reviews-heading h2 {font-size:2.6rem;margin-bottom:9px}.review-card {padding:24px;gap:22px}.review-score strong {font-size:4rem}.review-details {padding-left:22px}
  .visit-section {padding:40px 0}.visit-grid {grid-template-columns:1fr;gap:30px}.visit-grid h2 {font-size:2.8rem;margin-bottom:18px}.visit-grid address {font-size:1rem}.visit-details {grid-template-columns:1fr 1fr;gap:16px;margin:22px 0}.visit-details strong,.visit-details a {font-size:.875rem}.map-card iframe {height:300px}
  .about-intro {padding-top:30px}.about-intro-grid {grid-template-columns:1fr;gap:20px;margin:12px 0 24px}.about-intro-grid .lede {font-size:1.25rem}.about-building figcaption {position:static;font-size:.75rem;padding:10px 0;background:none}
  .about-table {padding:32px 0}.about-table-grid {grid-template-columns:1fr;gap:28px}.about-table h2 {font-size:2.6rem}.about-dining {flex-direction:row;align-items:center;gap:16px;margin-top:22px}.about-dining img {width:150px}.about-dining p {font-size:.8125rem}
  .invitation-inner {flex-direction:column;align-items:flex-start;gap:20px}.invitation-inner h2 {font-size:2rem}
  .menu-heading {padding:20px 0 16px}.menu-heading-inner {gap:12px}.menu-heading h1 {font-size:3.2rem;margin-top:4px}.menu-heading .eyebrow {font-size:.6875rem;letter-spacing:.07em}.menu-heading-note {font-size:.75rem;max-width:132px;line-height:1.5}.menu-heading-note a {font-size:.875rem;gap:4px;white-space:nowrap}.menu-heading-note svg {width:16px}.menu-disclaimer {font-size:.75rem;line-height:1.6;margin-top:8px}
  .menu-section {padding:14px 0 36px}.menu-layout {display:block}.js .menu-sidebar {display:none}
  .no-js .menu-sidebar {position:static;max-height:none;padding-bottom:20px}.no-js .menu-sidebar nav {display:grid;grid-template-columns:1fr 1fr}
  .menu-tools {grid-template-columns:minmax(0,1fr) 48px;gap:8px; padding:8px 0; margin-top:-8px}
  .search-wrap {grid-column:1/-1;max-width:none}.search-wrap input {height:46px}.search-icon {top:13px}
  .category-select-wrap {display:block;grid-column:1;grid-row:2;min-width:0}.category-select-wrap select {width:100%;min-width:0;min-height:44px;border:1px solid var(--line);border-radius:2px;background:var(--white);color:var(--ink);padding:8px 10px;font-size:1rem}
  .print-btn {grid-column:2;grid-row:2;min-height:44px;padding:10px;justify-content:center}
  .search-summary {gap:8px;font-size:.75rem;min-height:20px;line-height:1.4}.reset-link {font-size:.75rem;min-height:24px;padding:2px 0}
  .menu-grid {padding-top:20px}.menu-block {padding-top:15px;margin-bottom:30px}.menu-block h3 {font-size:1.875rem}.menu-block>.sub {font-size:.8125rem;line-height:1.55;margin-top:7px}
  .m-list {grid-template-columns:1fr;margin-top:8px}.m-list li {padding:11px 0;font-size:1rem;gap:12px}.m-list .n small {font-size:.8125rem}.m-list .p {font-size:.9375rem}
  .inline-options {grid-template-columns:1fr 1fr;gap:0 18px}.inline-options li {font-size:.875rem}.price-tag {font-size:.9375rem}.m-foot {font-size:.8125rem}
  #beverages .m-list li {flex-wrap:wrap;gap:4px 12px}#beverages .p {font-size:.875rem}
  .cater-col:last-child {padding:18px}.cater-call {font-size:.875rem}.acc-btn {font-size:.875rem;min-height:48px}
  .order-band {flex-direction:column;align-items:flex-start;padding:24px 20px;gap:20px;margin-top:24px}.order-band h2 {font-size:2rem}
  footer {padding-top:36px}.footer-grid {grid-template-columns:1fr 1fr;gap:30px 20px;padding-bottom:28px}.footer-intro {grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.footer-intro p {margin-top:0}.footer-intro .text-link {grid-column:1/-1;margin-top:8px}
  .footer-title {font-size:.75rem;margin-bottom:12px}footer p,footer address,footer .text-link {font-size:.8125rem}.footer-bottom {flex-direction:column;align-items:flex-start;gap:8px;padding-block:16px}.footer-bottom nav {gap:22px}
}
@media (max-height:450px) and (orientation:landscape) {
  :root {--callbarh:0px}
  .menu-tools {position:static}
  .menu-content>:not(.menu-tools) :where(a,button,input,select) {scroll-margin-top:0}
  .callbar {display:none}
}
@media (max-width:359px) {
  .wrap {padding-inline:16px}.nav-inner {padding-inline:16px}.hero-content h1 {font-size:3.6rem}.hero-content .ctas {gap:12px}.hero-content .btn {padding-inline:14px}.hero-content .text-link {font-size:.875rem}
  .hero-photo figcaption {font-size:.6875rem;gap:6px}.hero-photo figcaption svg {display:none}
  .menu-heading-note {max-width:118px}.menu-heading-note a {font-size:.8125rem}.menu-heading-note svg {display:none}
  .menu-heading .eyebrow {max-width:16ch}.inline-options {column-gap:14px}
  .search-summary {flex-wrap:wrap}.footer-intro {display:block}.footer-intro p {margin-top:16px}
}
@media (prefers-reduced-motion:reduce) {
  html {scroll-behavior:auto}*,*::before,*::after {transition:none!important;animation:none!important}
}
@media print {
  @page {margin:12mm}
  html,body {background:white;color:black;padding:0;font-size:10pt}
  .sitenav,.mobile-drawer,.skip,.callbar,.to-top-btn,.toast,.menu-sidebar,.menu-tools,.order-band,.copy-btn,.map-card,.ctas,footer,.hero-menu-note,.visit-strip,.about-invitation {display:none!important}
  .wrap {width:auto;max-width:none;padding:0}.menu-layout {display:block}.menu-section {padding:0}
  .print-head[hidden] {display:block!important;border-bottom:2px solid black;padding-bottom:10px;margin-bottom:12px}
  .print-head strong {font-size:18pt;display:block}.print-head>span {display:block;font-size:9pt}
  .print-head .print-filter-note {display:none}.menu-filtering .print-head .print-filter-note {display:block;border:1px solid black;padding:5px;margin-top:5px}
  .menu-heading {padding:0 0 10px;background:none}.menu-heading h1 {font-size:20pt;color:black}.menu-heading-note,.menu-heading .eyebrow {display:none}.menu-disclaimer {font-size:0}.menu-disclaimer::after {content:'Prices may change; call to confirm.';font-size:8pt}
  .menu-grid {columns:2;column-gap:20px;padding-top:12px}.menu-block {break-inside:avoid;page-break-inside:avoid;display:block;border-top:1px solid black;padding-top:8px;margin-bottom:16px}
  .menu-block h3 {font-size:15pt;color:black}.menu-block>.sub,.m-foot,.cater-call {font-size:8pt;color:#333}
  .m-list {display:block;margin-top:6px}.m-list li {padding:4px 0;gap:8px;font-size:9pt}.m-list .p {font-size:9pt;color:black}.m-list .n small {font-size:8pt;color:#333}
  .inline-options {grid-template-columns:1fr 1fr;gap:0 12px}.inline-options li {font-size:9pt;padding:4px 0}.price-tag {font-size:10pt;background:none;color:black;padding:0}
  .cater-grid {display:block;margin-top:10px}.cater-col {margin-top:14px}.cater-col:last-child {border:1px solid #888;padding:10px;background:none}
  .acc-panel {display:block!important}.acc-btn {padding:8px 0;font-size:9pt}.acc-icon {display:none}.acc-body {font-size:8pt}
  a {color:black;text-decoration:none}.hero-grid,.about-intro-grid,.about-table-grid,.visit-grid,.catering-grid {display:block}.hero-photo,.about-building {max-height:240px;overflow:hidden}.hero-photo {min-height:0}.hero-content h1 {font-size:32pt}
}
