@font-face {
  font-family:DM;
  src:url('fonts/dm-sans.woff2') format('woff2');
  font-weight:100 900;
  font-display:swap
}

@font-face {
  font-family:Playfair;
  src:url('fonts/playfair.woff2') format('woff2');
  font-weight:400 900;
  font-display:swap
}

@font-face {
  font-family:Playfair;
  src:url('fonts/playfair-italic.woff2') format('woff2');
  font-weight:400 900;
  font-style:italic;
  font-display:swap
}

:root {
  --bg:#101110;
  --surface:#191a17;
  --raised:#22231f;
  --ink:#f6f1e8;
  --muted:#b5b4a9;
  --gold:#c8a565;
  --light-gold:#e0c087;
  --line:#34362f;
  --serif:Playfair,Georgia,serif;
  --sans:DM,Arial,sans-serif;
  --header:76px;
  --dock:74px;
  color-scheme:dark
}

* {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:100px
}

body {
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font:400 16px/1.65 var(--sans);
  -webkit-font-smoothing:antialiased;
  padding-bottom:calc(var(--dock) + env(safe-area-inset-bottom));
  overflow-wrap:break-word
}

body:has(dialog[open]) {
  overflow:hidden
}

button,input,textarea,select {
  font:inherit
}

button,a,input,select,textarea {
  -webkit-tap-highlight-color:transparent
}

button,a {
  touch-action:manipulation
}

button {
  cursor:pointer;
  color:inherit
}

button:disabled {
  cursor:not-allowed;
  opacity:.45
}

button {
  background:none;
  border:0
}

a {
  color:inherit;
  text-decoration:none
}

img {
  max-width:100%;
  height:auto;
  display:block
}

svg {
  flex:none
}

h1,h2,h3,p {
  margin-top:0
}

h1,h2,h3 {
  font-family:var(--serif);
  font-weight:500;
  line-height:1.12;
  letter-spacing:-.035em
}

h1 {
  font-size:clamp(48px,7.8vw,84px);
  margin-bottom:24px
}

h2 {
  font-size:clamp(37px,4.8vw,58px);
  margin-bottom:22px
}

h3 {
  font-size:28px
}

h1 em,h2 em {
  font-weight:500;
  color:var(--gold)
}

p {
  margin-bottom:20px
}

strong {
  font-weight:600
}

button:focus-visible,a:focus-visible,summary:focus-visible {
  outline:2px solid var(--light-gold);
  outline-offset:5px
}

input:focus-visible,select:focus-visible,textarea:focus-visible {
  outline:2px solid var(--light-gold);
  outline-offset:2px
}

[hidden] {
  display:none!important
}

::selection {
  background:var(--gold);
  color:var(--bg)
}

.container {
  width:min(100% - 44px,1160px);
  margin-inline:auto
}

.narrow {
  max-width:720px
}

.section {
  padding-block:72px
}

.icon {
  width:22px;
  height:22px;
  vertical-align:middle
}

.eyebrow {
  font:500 11px/1.5 var(--sans);
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--gold);
  margin-bottom:20px
}

.gold-line {
  display:inline-block;
  width:24px;
  height:1px;
  background:var(--gold);
  vertical-align:middle;
  margin-right:10px
}

.small-caps {
  font-size:10px;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:var(--muted)
}

.muted,.helper {
  color:var(--muted)
}

.helper {
  font-size:12px;
  line-height:1.65
}

.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  margin:-1px;
  padding:0;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}

.skip-link {
  position:fixed;
  top:-100px;
  left:20px;
  padding:12px;
  background:var(--gold);
  color:var(--bg);
  z-index:100
}

.skip-link:focus {
  top:10px
}

.button {
  min-height:54px;
  padding:15px 22px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  font-size:14px;
  font-weight:600;
  line-height:1.4;
  border:1px solid transparent;
  border-radius:4px;
  transition:background .2s,transform .2s;
  color:var(--ink)
}

.button.gold {
  background:var(--gold);
  color:#171810
}

.button.gold:hover {
  background:var(--light-gold)
}

.button.outline {
  border-color:#68604b
}

.button.outline:hover {
  background:#c8a56512
}

.button.subtle {
  background:var(--raised)
}

.button:active {
  transform:scale(.98)
}

.button.full {
  width:100%
}

.button .icon:last-child {
  margin-left:auto
}

.text-link {
  display:inline-flex;
  align-items:center;
  gap:16px;
  font-size:13px;
  font-weight:500;
  border-bottom:1px solid #5b503a;
  padding-block:8px;
  color:var(--light-gold)
}

.text-link .icon {
  width:18px
}

.icon-button {
  position:relative;
  display:inline-flex;
  width:44px;
  height:44px;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  flex:none
}

.icon-button:hover {
  background:#ffffff09
}

.text-button {
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:var(--gold);
  font-size:12px;
  min-height:44px;
  padding:4px
}

.text-button .icon {
  width:16px
}

.notice {
  padding:14px 22px;
  background:#3b3120;
  color:#f5deb5;
  font-size:14px
}

.notice strong {
  display:block
}

/* A quiet frame, with the brand always within reach. */
.site-header {
  height:var(--header);
  position:sticky;
  top:0;
  z-index:30;
  background:#101110f5;
  border-bottom:1px solid #ffffff0d;
  backdrop-filter:blur(12px)
}

.header-inner {
  height:100%;
  width:min(100% - 32px,1280px);
  margin:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px
}

.brand {
  width:145px;
  display:block;
  flex-shrink:0
}

.brand img {
  width:100%;
  height:auto
}

.header-actions {
  display:flex;
  gap:3px;
  align-items:center
}

.header-phone {
  display:none
}

.desktop-nav {
  display:none
}

.cart-count {
  position:absolute;
  right:1px;
  top:0;
  min-width:18px;
  height:18px;
  font-size:10px;
  line-height:18px;
  background:var(--gold);
  color:var(--bg);
  border-radius:20px;
  text-align:center;
  padding-inline:4px
}

.bottom-nav {
  position:fixed;
  bottom:0;
  left:0;
  right:0;
  background:#171815fa;
  backdrop-filter:blur(15px);
  border-top:1px solid var(--line);
  height:calc(var(--dock) + env(safe-area-inset-bottom));
  padding:8px 12px calc(8px + env(safe-area-inset-bottom));
  display:grid;
  grid-template-columns:repeat(4,1fr);
  z-index:40
}

.bottom-nav a {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  font-size:10px;
  letter-spacing:.02em;
  color:var(--muted);
  min-height:48px
}

.bottom-nav a[aria-current] {
  color:var(--gold)
}

.bottom-nav a[aria-current]::after {
  content:'';
  height:3px;
  width:16px;
  border-radius:2px;
  background:var(--gold);
  position:absolute;
  bottom:calc(6px + env(safe-area-inset-bottom))
}

.cart-bar {
  position:fixed;
  bottom:calc(var(--dock) + 10px + env(safe-area-inset-bottom));
  left:16px;
  right:16px;
  max-width:520px;
  margin:auto;
  z-index:41;
  background:var(--gold);
  color:var(--bg);
  box-shadow:0 8px 40px #0008;
  border-radius:6px;
  min-height:55px;
  padding:14px 17px;
  display:flex;
  justify-content:space-between;
  font-size:13px;
  font-weight:700;
  gap:12px
}

.cart-bar>span {
  display:flex;
  gap:10px;
  align-items:center
}

.cart-bar .icon {
  width:20px
}

body:has(.cart-bar:not([hidden])) .site-footer {
  padding-bottom:85px
}

/* Real photographs, generous type, very little chrome. */
.hero {
  position:relative;
  min-height:660px;
  overflow:hidden;
  background:#101110
}

.hero-content {
  position:relative;
  z-index:2;
  padding-top:36px;
  pointer-events:none
}

.hero-copy {
  max-width:560px;
  pointer-events:auto
}

.hero h1 {
  font-size:clamp(45px,11.8vw,68px);
  line-height:1.08;
  margin-bottom:18px;
  text-shadow:0 2px 24px #0008;
  letter-spacing:-.045em
}

.hero h1 em {
  display:block
}

.hero-description {
  font-size:14px;
  color:#e0dfd3;
  line-height:1.7;
  margin-bottom:24px
}

.hero .eyebrow {
  font-size:9px;
  margin-bottom:20px
}

.hero-photo {
  position:absolute;
  inset:162px -60px -46px 0
}

.hero-photo img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 66%;
  filter:brightness(.8)
}

.hero-photo::after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,var(--bg) 0%,#10111095 10%,#10111000 35%,#10111000 60%,var(--bg) 98%),linear-gradient(90deg,#101110b0,transparent 55%)
}

.hero-cta {
  margin-top:185px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:17px
}

.hero-cta .button {
  width:100%;
  max-width:340px;
  box-shadow:0 4px 35px #0005
}

.hero-story-link {
  font-size:11px;
  color:#c7c6b9
}

.hero-seal {
  position:absolute;
  right:4px;
  top:248px;
  width:88px;
  height:88px;
  border:1px solid #c8a565ad;
  border-radius:50%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  color:#e5c48a;
  transform:rotate(12deg);
  background:#10111075
}

.hero-seal span {
  font-size:7px;
  letter-spacing:.12em
}

.hero-seal b {
  font:400 28px var(--serif);
  line-height:1.4
}

.hero-caption {
  position:absolute;
  z-index:2;
  right:22px;
  bottom:141px;
  display:none
}

.hero-caption strong {
  font:italic 28px var(--serif);
  display:block
}

.hero-caption span {
  font-size:10px;
  color:var(--muted)
}

.service-strip {
  border-block:1px solid var(--line);
  padding:15px 0;
  background:#171814
}

.service-strip>.container {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  flex-wrap:wrap
}

.opening-pill {
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:11px;
  margin:0
}

.opening-pill>.icon {
  width:16px
}

.status-dot {
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--gold);
  display:inline-block;
  flex:none
}

.status-dot.is-open {
  background:#91b083;
  box-shadow:0 0 0 4px #91b08315
}

.service-note {
  font-size:10px;
  display:flex;
  gap:6px;
  align-items:center;
  color:var(--muted)
}

.service-note .icon {
  width:15px;
  height:15px
}

.dot-separator {
  padding-inline:1px
}

.section-heading {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:20px
}

.section-heading h2 {
  margin-bottom:0
}

.section-heading>.text-link {
  flex:none;
  font-size:11px;
  gap:8px
}

.section-intro {
  color:var(--muted);
  font-size:14px;
  max-width:360px
}

.food-rail {
  display:grid;
  grid-auto-columns:78%;
  grid-auto-flow:column;
  gap:18px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  margin-inline:-22px;
  padding:10px 22px 25px;
  scrollbar-width:none
}

.food-rail::-webkit-scrollbar {
  display:none
}

.food-feature {
  scroll-snap-align:center;
  min-width:0
}

.food-feature-image {
  position:relative;
  aspect-ratio:1/1.04;
  overflow:hidden;
  border-radius:130px 130px 4px 4px;
  background:var(--surface)
}

.food-feature-image img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .7s;
  filter:brightness(.93)
}

.food-feature:hover img {
  transform:scale(1.04)
}

.photo-tag {
  position:absolute;
  top:18px;
  left:18px;
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:.08em;
  padding:8px 11px;
  background:#101110c9;
  backdrop-filter:blur(6px);
  border:1px solid #ffffff24;
  border-radius:3px;
  color:#f0e6d3
}

.food-feature .photo-tag {
  top:auto;
  bottom:17px;
  font-size:8px;
  max-width:75%;
  left:15px
}

.round-arrow {
  position:absolute;
  bottom:16px;
  right:15px;
  border:1px solid #ffffff5e;
  border-radius:50%;
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  background:#10111070
}

.round-arrow .icon {
  width:18px
}

.food-feature-body {
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:17px 0
}

.food-feature-body h3 {
  font-size:27px;
  margin:5px 0
}

.feature-price {
  font:500 18px var(--sans);
  color:var(--gold);
  padding-top:3px;
  text-align:right;
  white-space:nowrap
}

.feature-price small {
  display:block;
  font:400 10px var(--sans);
  color:var(--muted);
  margin-bottom:8px
}

.menu-teaser {
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-block:1px solid var(--line);
  padding:18px 0;
  font-size:13px;
  margin-top:8px
}

.menu-teaser>span {
  display:flex;
  gap:12px;
  align-items:center
}

.menu-teaser .icon {
  color:var(--gold)
}

.delivery-section {
  background:#1c1e18;
  border-block:1px solid var(--line);
  padding:55px 0
}

.delivery-inner>div>p:not(.eyebrow) {
  font-size:14px;
  color:var(--muted)
}

.delivery-check {
  margin-top:35px;
  border:1px solid #494735;
  border-radius:4px;
  padding:24px;
  background:#151712
}

.delivery-check>label {
  display:block;
  font-size:13px;
  margin-bottom:12px
}

.delivery-result {
  display:flex;
  gap:20px;
  align-items:center;
  padding:26px 0 16px;
  min-height:110px
}

.delivery-result>span {
  color:var(--gold)
}

.delivery-result p {
  margin:0;
  font-size:14px
}

.delivery-result strong {
  font-size:24px;
  display:block;
  color:var(--light-gold);
  font-family:var(--serif);
  font-weight:400
}

.delivery-check .text-link {
  font-size:12px
}

.event-photo {
  display:block;
  position:relative;
  aspect-ratio:1.05;
  overflow:hidden;
  border-radius:4px
}

.event-photo img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 60%
}

.event-photo .photo-tag {
  top:auto;
  bottom:18px;
  font-size:8px
}

.event-copy {
  padding-top:35px
}

.event-copy>p {
  color:var(--muted);
  font-size:14px
}

.event-copy>.eyebrow {
  color:var(--gold)
}

.event-facts {
  display:flex;
  flex-direction:column;
  gap:7px;
  margin-bottom:24px;
  font-size:12px
}

.event-facts span::before {
  content:'✓';
  color:var(--gold);
  margin-right:12px
}

.event-copy .helper {
  margin-top:15px;
  font-size:11px
}

.story-section {
  padding:60px 0;
  background:#171815;
  border-block:1px solid var(--line)
}

.story-heading {
  text-align:center;
  margin-bottom:35px
}

.story-heading>p:not(.eyebrow) {
  color:var(--muted);
  font-size:14px
}

.story-image {
  position:relative
}

.story-image img {
  width:100%;
  aspect-ratio:1.24;
  object-fit:cover;
  border-radius:4px;
  filter:saturate(.75)
}

.story-image>span {
  font-size:10px;
  color:var(--muted);
  display:block;
  text-align:right;
  padding-top:8px
}

.story-timeline {
  padding-top:30px
}

.year-tabs {
  display:flex;
  gap:20px;
  border-bottom:1px solid var(--line);
  margin-bottom:24px
}

.year-tabs button {
  padding:12px 12px 14px 0;
  color:var(--muted);
  font:400 25px var(--serif);
  border-bottom:2px solid transparent
}

.year-tabs button[aria-selected=true] {
  color:var(--gold);
  border-bottom-color:var(--gold)
}

.story-number {
  display:block;
  font-size:9px;
  letter-spacing:.14em;
  color:var(--gold);
  margin-bottom:15px
}

.story-timeline h3 {
  font-size:30px
}

.story-timeline article p {
  font-size:14px;
  color:var(--muted)
}

.signature {
  font:italic 24px var(--serif);
  color:var(--gold);
  margin-top:24px
}

.final-cta {
  text-align:center
}

.final-cta .button {
  min-width:260px
}

.final-cta>.text-link {
  display:flex;
  width:max-content;
  margin:20px auto
}

.site-footer {
  padding:36px 0 22px;
  border-top:1px solid #c8a56550;
  background:radial-gradient(ellipse at 0 0,#c8a5650a,transparent 65%),#151612
}

.announcement-banner { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:8px 20px }
.announcement-banner .text-button { min-height:44px }
.announcement-body { white-space:pre-line }

.footer-social-feature {
  display:grid;
  gap:24px;
  padding-bottom:30px;
  border-bottom:1px solid var(--line)
}

.footer-social-heading .eyebrow {
  font-size:9px;
  margin-bottom:12px
}

.footer-social-heading h2 {
  font-size:34px;
  line-height:1.18;
  margin-bottom:12px
}

.footer-social-heading > p:last-child {
  font-size:12px;
  color:var(--muted);
  margin:0
}

.footer-social-links {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px
}

.footer-social-link {
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:14px;
  min-width:0;
  padding:16px;
  border:1px solid #c8a56540;
  border-radius:8px;
  background:linear-gradient(145deg,#c8a5650d,#c8a56502);
  transition:border-color .25s,background .25s,transform .25s
}

.footer-social-icon {
  color:var(--gold);
  display:flex
}

.footer-social-icon .icon {
  width:26px;
  height:26px
}

.footer-social-copy {
  display:grid;
  gap:2px
}

.footer-social-copy strong {
  font-size:14px;
  font-weight:600
}

.footer-social-copy > span {
  font-size:11px;
  color:var(--muted)
}

.footer-social-arrow {
  position:absolute;
  top:13px;
  right:15px;
  font-size:20px;
  color:var(--gold);
  transition:transform .25s
}

.footer-social-link:active {
  transform:scale(.97)
}

@media (hover:hover) {
  .footer-social-link:hover {
    border-color:var(--gold);
    background:#c8a5650f;
    transform:translateY(-3px)
  }
  .footer-social-link:hover .footer-social-arrow {
    transform:translate(2px,-2px)
  }
}

.footer-details {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:24px 20px;
  padding:28px 0 22px
}

.footer-brand {
  grid-column:1/-1;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px
}

.footer-brand img {
  width:145px;
  height:auto
}

.footer-brand > a {
  flex-shrink:0
}

.footer-brand p {
  font-size:11px;
  line-height:1.7;
  color:var(--muted);
  text-align:right;
  margin:0
}

.footer-brand p > span {
  display:block;
  font-size:8px;
  margin-top:5px;
  color:var(--gold)
}

.footer-details h3 {
  font:500 12px var(--sans);
  color:var(--gold);
  margin:0 0 12px
}

.footer-contact address {
  font-size:12px;
  font-style:normal;
  color:var(--muted)
}

.footer-contact address a {
  display:inline-block;
  padding-block:4px;
  min-height:44px
}

.footer-phone {
  display:flex;
  gap:7px;
  align-items:center;
  font-size:12px;
  font-weight:600;
  min-height:44px;
  white-space:nowrap
}

.footer-phone .icon {
  width:14px;
  height:14px;
  color:var(--gold)
}

.footer-explore > a {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:8px;
  min-height:44px;
  font-size:12px
}

.footer-explore .icon {
  width:14px;
  height:14px;
  color:var(--gold)
}

.footer-hours {
  display:flex;
  gap:12px;
  align-items:center;
  border-block:1px solid var(--line);
  padding:17px 0
}

.footer-hours-icon {
  display:flex;
  color:var(--gold)
}

.footer-hours strong {
  display:flex;
  align-items:center;
  gap:7px;
  font-size:12px;
  font-weight:500
}

.footer-hours > span > span {
  display:block;
  color:var(--muted);
  font-size:10px
}

.footer-hours > .icon {
  margin-left:auto;
  color:var(--gold);
  width:18px
}

.footer-bottom {
  padding-top:20px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:4px 20px;
  flex-wrap:wrap;
  font-size:10px;
  color:var(--muted)
}

.footer-bottom > span {
  display:flex;
  flex-wrap:wrap;
  gap:4px 12px
}

.footer-made {
  color:var(--gold);
  font-style:italic
}

.footer-bottom>div {
  display:flex;
  gap:22px
}

.footer-bottom a {
  display:inline-flex;
  align-items:center;
  min-height:44px
}

.toast {
  position:fixed;
  bottom:calc(var(--dock) + 82px + env(safe-area-inset-bottom));
  left:50%;
  transform:translate(-50%,15px);
  max-width:calc(100% - 32px);
  padding:12px 20px;
  border:1px solid #706344;
  background:#24271ef5;
  border-radius:8px;
  font-size:13px;
  z-index:100;
  opacity:0;
  pointer-events:none;
  transition:opacity .2s,transform .2s;
  text-align:center
}

.toast.show {
  opacity:1;
  transform:translate(-50%,0)
}

/* Native dialogs behave as thumb-friendly bottom sheets. */
dialog.sheet {
  color:var(--ink);
  background:#191b17;
  border:1px solid #484a3e;
  border-bottom:0;
  border-radius:20px 20px 0 0;
  position:fixed;
  inset:auto 0 0;
  width:100%;
  max-width:640px;
  max-height:90dvh;
  margin:0 auto;
  padding:22px 22px calc(25px + env(safe-area-inset-bottom));
  overflow-y:auto;
  overscroll-behavior:contain;
  box-shadow:0 -12px 80px #0006
}

dialog.sheet::backdrop {
  background:#080a07b8;
  backdrop-filter:blur(5px)
}

dialog.sheet[open] {
  animation:sheet-in .25s ease-out
}

.sheet-top {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:20px
}

.sheet-top h2 {
  font-size:32px;
  margin:6px 0 0
}

.sheet-top .eyebrow {
  font-size:9px
}

.sheet-top>.icon-button {
  background:#ffffff09;
  margin-top:-5px
}

.navigation-sheet nav {
  display:flex;
  flex-direction:column;
  margin-bottom:24px
}

.navigation-sheet nav>a {
  font:500 25px var(--serif);
  padding:17px 0;
  border-bottom:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  gap:15px
}

.navigation-sheet nav span {
  font:400 10px var(--sans);
  color:var(--gold)
}

.navigation-sheet>p {
  font-size:12px
}

.form-field {
  margin:18px 0
}

.form-field>label,label {
  font-size:13px;
  display:block;
  margin-bottom:8px
}

input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea {
  width:100%;
  max-width:100%;
  min-height:50px;
  border:1px solid #494c41;
  border-radius:4px;
  padding:12px 13px;
  color:var(--ink);
  background:#141611;
  font-size:16px;
  line-height:1.5
}

input::placeholder,textarea::placeholder {
  color:#979b8c
}

input[type=checkbox],input[type=radio] {
  width:20px;
  height:20px;
  accent-color:var(--gold);
  flex:none
}

input[type=range] {
  width:100%;
  height:40px;
  accent-color:var(--gold);
  cursor:pointer
}

select {
  appearance:auto
}

textarea {
  resize:vertical
}

fieldset {
  min-width:0;
  border:0;
  padding:0;
  margin:20px 0
}

legend {
  font-size:13px;
  margin-bottom:12px
}

.segmented {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px;
  padding:5px;
  background:#10120e;
  border:1px solid var(--line);
  border-radius:5px
}

.segmented label {
  margin:0
}

.segmented input {
  position:absolute;
  opacity:0;
  width:1px;
  height:1px
}

.segmented label>span {
  display:flex;
  align-items:center;
  gap:8px;
  justify-content:center;
  padding:12px 8px;
  min-height:48px;
  border-radius:3px;
  color:var(--muted);
  font-size:13px
}

.segmented input:checked+span {
  background:var(--gold);
  color:var(--bg)
}

.segmented input:focus-visible+span {
  outline:2px solid var(--ink)
}

.check-row {
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px 0;
  font-size:13px;
  margin:0;
  min-height:52px
}

.check-row input {
  margin:0
}

.check-row>span {
  flex:1
}

.check-row small {
  display:block;
  font-size:11px;
  color:var(--muted);
  margin-top:3px
}

.check-row>.icon {
  color:var(--gold)
}

.form-error {
  background:#612b2338;
  border:1px solid #af7663;
  color:#f5c4b4;
  padding:12px;
  border-radius:4px;
  font-size:13px;
  margin-top:15px
}

.success-text {
  color:#bbcba4;
  font-size:13px;
  margin-top:20px
}

details {
  border-bottom:1px solid var(--line)
}

summary {
  cursor:pointer;
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  font-size:14px;
  min-height:60px;
  padding:16px 0
}

summary::-webkit-details-marker {
  display:none
}

summary>span:last-child:not(:first-child) {
  color:var(--gold)
}

details[open]>summary>.plus,details[open]>summary>span:last-child:not(:first-child) {
  transform:rotate(45deg)
}

details>p {
  font-size:13px;
  color:var(--muted)
}

.checkout-options {
  border-top:1px solid var(--line);
  margin:20px 0
}

.cart-summary {
  display:flex;
  justify-content:space-between;
  gap:14px;
  padding:20px 0;
  border-block:1px solid var(--line);
  font-size:12px
}

.cart-summary strong {
  font-size:21px;
  color:var(--gold)
}

.cart-line {
  padding:18px 0;
  border-top:1px solid var(--line)
}

.cart-line-head {
  display:flex;
  justify-content:space-between;
  gap:15px
}

.cart-line h3 {
  font:500 18px var(--sans);
  letter-spacing:0;
  margin-bottom:5px
}

.cart-line .line-details {
  font-size:11px;
  line-height:1.7;
  color:var(--muted);
  margin-bottom:13px;
  white-space:pre-line
}

.cart-line-price {
  white-space:nowrap;
  color:var(--gold);
  font-size:14px
}

.cart-line-actions {
  display:flex;
  gap:12px;
  align-items:center
}

.cart-line-actions>.text-button {
  margin-left:auto
}

.quantity-stepper {
  display:flex;
  align-items:center;
  gap:0;
  border:1px solid #4b4e40;
  border-radius:5px;
  flex-shrink:0
}

.quantity-stepper button {
  width:42px;
  height:46px;
  font-size:21px
}

.quantity-stepper input:not([type=checkbox]) {
  width:37px;
  height:46px;
  min-height:0;
  padding:0;
  border:0;
  background:none;
  text-align:center;
  font-size:14px;
  appearance:textfield;
  -moz-appearance:textfield
}

.quantity-stepper input::-webkit-inner-spin-button {
  appearance:none
}

.quantity-stepper>span {
  min-width:25px;
  text-align:center;
  font-size:13px
}

.cart-empty {
  text-align:center;
  padding:25px 0
}

.cart-empty>.icon {
  width:50px;
  height:50px;
  color:var(--gold);
  margin-bottom:15px
}

.cart-empty h3 {
  font-size:29px
}

.cart-empty p {
  font-size:13px;
  color:var(--muted)
}

#order-ready .button {
  margin-bottom:12px
}

#order-message {
  font-size:12px
}

/* The menu: compact scanning and large tap targets. */
.menu-intro {
  padding-top:40px;
  padding-bottom:25px
}

.menu-intro h1 {
  font-size:50px
}

.menu-intro>p:not(.eyebrow) {
  font-size:13px;
  color:var(--muted);
  max-width:320px
}

.menu-service {
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  font-size:10px;
  color:var(--muted)
}

.menu-service>span {
  display:flex;
  align-items:center;
  gap:5px
}

.menu-service .icon {
  width:15px;
  height:15px
}

.menu-tools {
  position:sticky;
  top:var(--header);
  z-index:20;
  background:#101110f5;
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
  padding-top:12px
}

.search-row {
  display:flex;
  align-items:center;
  gap:9px
}

.search-field {
  display:flex;
  align-items:center;
  border:1px solid #3b3f33;
  border-radius:5px;
  background:#1b1e17;
  min-width:0;
  flex:1
}

.search-field>.icon {
  width:19px;
  margin-left:13px;
  color:var(--gold)
}

.search-field input:not([type=checkbox]) {
  border:0;
  background:none;
  padding:13px 10px;
  font-size:14px;
  min-height:46px
}

.search-field input:focus-visible {
  outline-offset:-3px
}

.search-field>button {
  width:36px;
  height:38px
}

.favorite-filter {
  border:1px solid var(--line);
  border-radius:5px;
  width:47px;
  height:48px
}

.favorite-filter[aria-pressed=true] {
  border-color:var(--gold);
  color:var(--gold)
}

.category-tabs {
  display:flex;
  gap:8px;
  overflow-x:auto;
  scrollbar-width:none;
  padding:13px 0;
  margin-right:-22px;
  padding-right:22px
}

.category-tabs button {
  white-space:nowrap;
  padding:10px 19px;
  min-height:44px;
  border:1px solid #383d31;
  border-radius:30px;
  font-size:12px;
  flex:none
}

.category-tabs button[aria-pressed=true] {
  background:var(--gold);
  border-color:var(--gold);
  color:var(--bg);
  font-weight:600
}

.menu-catalog {
  padding-bottom:55px
}

.catalog-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:15px 0
}

.catalog-heading p {
  font-size:10px;
  color:var(--muted);
  margin:0
}

.dish-grid {
  display:grid;
  gap:12px
}

.dish-card {
  background:#1a1c17;
  border:1px solid #30352a;
  border-radius:7px;
  padding:8px 16px 14px;
  position:relative;
  transition:border-color .2s
}

.dish-card:hover {
  border-color:#6f6245
}

.dish-card-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:35px
}

.dish-number {
  font-size:9px;
  letter-spacing:.12em;
  color:var(--gold)
}

.favorite-button {
  width:35px;
  height:35px;
  margin-right:-6px
}

.favorite-button .icon {
  width:17px;
  height:17px;
  color:#959b8c
}

.favorite-button[aria-pressed=true] .icon {
  fill:var(--gold);
  stroke:var(--gold)
}

.dish-main {
  display:flex;
  text-align:left;
  padding:0;
  width:100%;
  gap:12px;
  align-items:center;
  min-height:85px
}

.dish-copy {
  display:block;
  flex:1;
  min-width:0
}

.dish-name {
  font-family:var(--serif);
  font-weight:500;
  display:block;
  font-size:25px;
  line-height:1.2;
  margin-bottom:7px
}

.dish-description {
  font-size:11px;
  color:var(--muted);
  display:block;
  line-height:1.55;
  margin-bottom:12px
}

.dish-prices {
  display:flex;
  align-items:baseline;
  gap:8px;
  flex-wrap:wrap;
  font-size:10px;
  color:#a0a694
}

.dish-prices strong {
  font-size:16px;
  color:var(--gold);
  font-weight:500
}

.dish-prices .family-price {
  display:block;
  width:100%;
  font-size:10px;
  margin-top:-5px
}

.dish-main>img {
  width:75px;
  height:83px;
  object-fit:cover;
  border-radius:3px;
  flex:none
}

.dish-add {
  width:33px;
  height:33px;
  border:1px solid #736044;
  border-radius:50%;
  display:grid;
  place-items:center;
  flex:none;
  align-self:flex-end;
  margin-bottom:4px;
  color:var(--gold)
}

.dish-add .icon {
  width:17px
}

.allergen-ref {
  font-size:9px;
  color:#9ba38f;
  display:inline-block;
  padding:7px 0 0
}

.dish-tag {
  font-size:9px;
  color:var(--gold);
  display:inline-block;
  margin-bottom:9px;
  border:1px solid #655136;
  border-radius:3px;
  padding:2px 7px
}

.empty-results {
  text-align:center;
  padding:45px 0
}

.empty-results>span {
  color:var(--gold)
}

.empty-results h2 {
  font-size:32px;
  margin-top:18px
}

.empty-results p {
  color:var(--muted);
  font-size:13px
}

.menu-notes {
  margin-top:35px;
  border-top:1px solid var(--line)
}

.menu-notes summary {
  font-size:12px
}

.menu-notes p {
  font-size:12px
}

.dish-sheet>#dish-description {
  font-size:13px;
  margin-bottom:20px
}

.size-options {
  display:flex;
  flex-wrap:wrap;
  gap:10px
}

.size-options label {
  margin:0;
  flex:1;
  position:relative;
  min-width:120px
}

.size-options input {
  position:absolute;
  opacity:0;
  width:1px;
  height:1px
}

.size-options label>span {
  display:flex;
  flex-direction:column;
  text-align:center;
  border:1px solid #4a4e3f;
  padding:15px 10px;
  min-height:78px;
  border-radius:5px;
  line-height:1.5
}

.size-options label>span small {
  color:var(--muted);
  font-size:10px
}

.size-options input:checked+span {
  border-color:var(--gold);
  background:#c8a56513;
  color:var(--light-gold)
}

.size-options input:focus-visible+span {
  outline:2px solid var(--ink);
  outline-offset:2px
}

.half-toggle {
  border-top:1px solid var(--line)
}

#half-policy {
  font-size:11px
}

.ingredient-details {
  border-top:1px solid var(--line);
  margin-top:12px;
  border-bottom:0
}

.ingredient-details summary {
  font-size:13px
}

.ingredient-options {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 15px;
  padding-bottom:12px
}

.ingredient-options .check-row {
  font-size:11px;
  line-height:1.4;
  padding:10px 0
}

.ingredient-options small {
  font-size:10px
}

.ingredient-options input {
  width:18px;
  height:18px
}

.ingredient-section-title {
  font-size:11px;
  color:var(--gold);
  margin-top:18px
}

#dish-allergens {
  font-size:10px;
  margin-top:15px
}

.dish-bottom {
  display:flex;
  gap:10px;
  padding-top:18px;
  margin-top:15px;
  border-top:1px solid var(--line);
  position:sticky;
  bottom:calc(-25px - env(safe-area-inset-bottom));
  padding-bottom:calc(10px + env(safe-area-inset-bottom));
  background:#191b17;
  z-index:2
}

.dish-bottom>.button {
  flex:1;
  padding-inline:14px;
  font-size:12px;
  justify-content:space-between;
  gap:8px
}

.dish-bottom .quantity-stepper {
  align-self:center
}

.dish-bottom strong {
  white-space:nowrap
}

.dish-bottom .quantity-stepper button {
  width:32px
}

#salad-dressing {
  margin:20px 0
}

.error-state {
  padding-block:50px
}

/* Events and useful information. */
.page-intro {
  padding-block:45px 30px
}

.page-intro h1 {
  font-size:clamp(45px,7vw,76px)
}

.page-intro>p:not(.eyebrow) {
  font-size:14px;
  color:var(--muted)
}

.event-hero {
  padding-top:38px
}

.event-hero h1 {
  font-size:54px
}

.event-hero p:not(.eyebrow) {
  font-size:14px;
  color:var(--muted)
}

.event-hero-image {
  margin-top:30px;
  position:relative;
  aspect-ratio:1;
  overflow:hidden;
  border-radius:150px 150px 4px 4px
}

.event-hero-image img {
  height:100%;
  width:100%;
  object-fit:cover
}

.event-hero-image .photo-tag {
  top:auto;
  bottom:20px;
  font-size:8px
}

.event-highlights {
  padding-block:40px 55px;
  display:grid;
  gap:20px
}

.event-highlights>div {
  padding:20px 0 0;
  border-top:1px solid var(--line);
  position:relative;
  padding-left:38px
}

.event-highlights>div>span {
  position:absolute;
  left:0;
  top:23px;
  color:var(--gold);
  font-size:10px
}

.event-highlights h3 {
  font-size:26px;
  margin-bottom:13px
}

.event-highlights p {
  font-size:13px;
  color:var(--muted);
  margin:0
}

.planner-section {
  background:#1b1e17;
  border-block:1px solid var(--line);
  padding-block:55px
}

.planner-intro>p:not(.eyebrow) {
  font-size:14px;
  color:var(--muted)
}

.event-price-list {
  margin:28px 0
}

.event-price-list>div {
  display:flex;
  justify-content:space-between;
  gap:14px;
  border-bottom:1px solid var(--line);
  font-size:12px;
  padding:12px 0
}

.event-price-list dd {
  margin:0;
  color:var(--gold);
  text-align:right
}

.event-planner {
  margin-top:32px;
  padding:22px;
  background:#11150e;
  border:1px solid #4c513c;
  border-radius:6px
}

.planner-top {
  color:var(--gold);
  display:flex;
  gap:12px;
  align-items:center;
  font-family:var(--serif);
  font-size:26px;
  border-bottom:1px solid var(--line);
  padding-bottom:18px;
  margin-bottom:25px
}

.event-planner label {
  font-size:12px
}

.event-planner output {
  font:500 25px var(--serif);
  color:var(--gold);
  display:block;
  margin-top:12px
}

.range-labels {
  font-size:10px;
  color:var(--muted);
  display:flex;
  justify-content:space-between
}

.planner-calculation {
  margin-top:20px;
  border-top:1px solid var(--line);
  padding-top:18px
}

.planner-calculation>div {
  display:flex;
  justify-content:space-between;
  gap:12px;
  font-size:12px;
  margin-bottom:10px
}

.planner-calculation>.planner-total {
  border-top:1px solid var(--line);
  padding-top:15px;
  font-size:14px;
  align-items:center
}

.planner-total>strong:last-child {
  font:500 30px var(--serif);
  color:var(--gold)
}

.planner-calculation>.helper {
  font-size:11px;
  color:var(--gold);
  margin-bottom:10px
}

.two-fields {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:12px
}

.two-fields input {
  min-width:0
}

#event-ready {
  margin-top:18px
}

.requirements {
  display:grid;
  gap:22px;
  margin-block:30px
}

.requirements>div {
  display:flex;
  align-items:flex-start;
  gap:15px;
  font-size:13px;
  color:var(--muted)
}

.requirements strong {
  display:block;
  color:var(--ink);
  margin-bottom:3px
}

.requirements .icon {
  color:var(--gold);
  margin-top:3px
}

.wagon-gallery {
  display:flex;
  gap:15px;
  overflow:auto;
  scroll-snap-type:x mandatory;
  margin-top:35px
}

.wagon-gallery img {
  width:75%;
  aspect-ratio:1;
  object-fit:cover;
  scroll-snap-align:center;
  border-radius:4px
}

.contact-layout {
  display:grid;
  gap:30px
}

.contact-card,.hours-card {
  padding:25px;
  border:1px solid var(--line);
  border-radius:5px;
  background:#191c16
}

.contact-card h2,.hours-card h2 {
  font-size:34px
}

.address {
  font-size:20px;
  line-height:1.6
}

.contact-links {
  margin-top:20px
}

.contact-links>a {
  display:flex;
  align-items:center;
  gap:15px;
  padding:18px 0;
  border-top:1px solid var(--line);
  font-size:15px
}

.contact-links>a>span {
  flex:1
}

.contact-links small {
  display:block;
  font-size:10px;
  color:var(--muted);
  margin-bottom:3px
}

.contact-links>a>.icon {
  color:var(--gold);
  width:19px
}

.contact-links>a>.icon:last-child {
  width:17px
}

.hours-list {
  margin-block:25px
}

.hours-list>div {
  display:flex;
  justify-content:space-between;
  gap:15px;
  border-bottom:1px solid var(--line);
  padding:12px 0;
  font-size:12px
}

.hours-list .today {
  color:var(--gold)
}

.hours-list dt small {
  display:block;
  font-size:9px
}

.hours-list dd {
  margin:0;
  text-align:right
}

.hours-list dd span {
  display:block
}

.map-placeholder {
  border:1px solid var(--line);
  border-radius:5px;
  overflow:hidden
}

.map-grid {
  height:220px;
  background-color:#25291f;
  background-image:linear-gradient(28deg,transparent 43%,#393e2c 43%,#393e2c 46%,transparent 46%),linear-gradient(101deg,transparent 37%,#434b34 37%,#434b34 40%,transparent 40%),linear-gradient(155deg,transparent 58%,#353d2d 58%,#353d2d 61%,transparent 61%);
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:10px
}

.map-pin {
  width:47px;
  height:47px;
  display:grid;
  place-items:center;
  background:var(--gold);
  color:#181c13;
  border-radius:50%;
  box-shadow:0 0 0 14px #c8a56515
}

.map-label {
  font-size:11px;
  background:#11180dd9;
  padding:5px 13px
}

.map-copy {
  padding:28px
}

.map-copy h2 {
  font-size:32px
}

.map-copy p:not(.eyebrow) {
  font-size:13px;
  color:var(--muted)
}

#map-container iframe {
  width:100%;
  height:420px;
  border:1px solid var(--line);
  border-radius:5px
}

.faq-list {
  padding-bottom:30px
}

.faq-item summary {
  padding:22px 0;
  font-family:var(--serif);
  font-size:21px;
  line-height:1.3
}

.faq-item summary small {
  display:block;
  color:var(--gold);
  font:500 9px var(--sans);
  letter-spacing:.12em;
  text-transform:uppercase;
  margin-bottom:8px
}

.faq-item summary .plus {
  font:400 26px var(--sans);
  width:28px;
  flex:none;
  text-align:center
}

.faq-item p {
  font-size:14px;
  line-height:1.8
}

.help-cta {
  padding-top:30px
}

.help-cta h2 {
  font-size:34px
}

.help-cta p {
  color:var(--muted);
  font-size:14px
}

.order-steps {
  padding-bottom:60px
}

.order-steps article {
  display:flex;
  gap:22px;
  padding-block:24px;
  border-top:1px solid var(--line)
}

.order-steps article>span {
  font:500 23px var(--serif);
  color:var(--gold);
  flex:none
}

.order-steps h2 {
  font-size:29px
}

.order-steps p {
  font-size:14px;
  color:var(--muted)
}

.order-steps>.button {
  margin-bottom:15px
}

.legal-content {
  padding-bottom:60px
}

.legal-content h2 {
  font-size:28px;
  margin-top:30px
}

.legal-content p {
  color:var(--muted);
  font-size:14px
}

.legal-content a:not(.button) {
  color:var(--gold);
  text-decoration:underline;
  overflow-wrap:anywhere
}

@keyframes sheet-in {
  from {
    translate:0 38px;
    opacity:.4
  }
  to {
    translate:0 0;
    opacity:1
  }
}

@keyframes fade-in {
  from {
    opacity:0;
    transform:translateY(10px)
  }
  to {
    opacity:1;
    transform:translateY(0)
  }
}

.story-timeline article:not([hidden]) {
  animation:fade-in .35s ease-out
}

.hero h1 > span {
  display:block
}

.scroll-hint {
  display:inline-block;
  margin-left:5px
}

/* Short, compositor-friendly movement. Content needs no animation to be usable. */
@media (prefers-reduced-motion:no-preference) {
  .hero .eyebrow {
    animation:castello-enter .75s cubic-bezier(.22,1,.36,1) both
  }
  .hero h1 > span, .hero h1 > em {
    animation:castello-enter .95s cubic-bezier(.22,1,.36,1) both
  }
  .hero h1 > em {
    animation-delay:.1s
  }
  .hero h1 > span:last-child {
    animation-delay:.2s
  }
  .hero-description, .hero-cta {
    animation:castello-enter .9s .28s cubic-bezier(.22,1,.36,1) backwards
  }
  .hero-photo img {
    animation:castello-photo 2.2s cubic-bezier(.16,1,.3,1) backwards
  }
  .hero-seal {
    animation:castello-seal 1.4s .15s cubic-bezier(.22,1,.36,1) backwards
  }
  .scroll-hint {
    animation:castello-nudge 1.5s 1s 3
  }
  .menu-intro h1, .event-hero h1 {
    animation:castello-enter .85s cubic-bezier(.22,1,.36,1) backwards
  }
  .menu-intro > p:last-of-type, .menu-service {
    animation:castello-enter .7s .12s cubic-bezier(.22,1,.36,1) backwards
  }
  dialog.sheet[open] {
    animation:sheet-in .42s cubic-bezier(.22,1,.36,1)
  }
  dialog.sheet[open]::backdrop {
    animation:castello-backdrop .3s ease-out
  }
  .navigation-sheet[open] nav a {
    animation:castello-enter .5s cubic-bezier(.22,1,.36,1) backwards
  }
  .navigation-sheet[open] nav a:nth-child(2) { animation-delay:.04s }
  .navigation-sheet[open] nav a:nth-child(3) { animation-delay:.08s }
  .navigation-sheet[open] nav a:nth-child(4) { animation-delay:.12s }
  .navigation-sheet[open] nav a:nth-child(5) { animation-delay:.16s }
  .navigation-sheet[open] nav a:nth-child(6) { animation-delay:.2s }
  .navigation-sheet[open] nav a:nth-child(7) { animation-delay:.24s }
  .category-tabs button[aria-pressed=true] {
    animation:castello-tab .35s cubic-bezier(.22,1,.36,1)
  }
  .button > .icon, .text-link > .icon {
    transition:transform .25s ease
  }
  .button:hover > .icon, .text-link:hover > .icon {
    transform:translateX(4px)
  }
  .dish-main .dish-add {
    transition:transform .25s ease,background .25s ease
  }
  .dish-main:active .dish-add {
    transform:scale(.86) rotate(90deg)
  }
  .ingredient-details[open] .ingredient-options {
    animation:castello-enter .35s ease-out
  }
}

@keyframes castello-enter {
  from { opacity:0; transform:translateY(24px) }
  to { opacity:1; transform:translateY(0) }
}

@keyframes castello-photo {
  from { transform:scale(1.09) rotate(-2deg) }
  to { transform:scale(1) rotate(0) }
}

@keyframes castello-seal {
  from { opacity:0; transform:scale(.75) rotate(-22deg) }
  to { opacity:1; transform:scale(1) rotate(12deg) }
}

@keyframes castello-nudge {
  0%, 100% { transform:translateY(0) }
  50% { transform:translateY(5px) }
}

@keyframes castello-tab {
  from { transform:translateY(3px) scale(.94) }
  to { transform:translateY(0) scale(1) }
}

@keyframes castello-backdrop {
  from { opacity:0 }
  to { opacity:1 }
}

@media(min-width:600px) {
  .container {
    width:min(100% - 72px,1160px)
  }
  .hero h1 {
    font-size:70px
  }
  .hero {
    min-height:710px
  }
  .hero-content {
    padding-top:50px
  }
  .hero-photo {
    inset:50px -100px 0 22%
  }
  .hero-cta {
    margin-top:135px
  }
  .hero-seal {
    right:0;
    top:140px;
    width:115px;
    height:115px
  }
  .hero-seal span {
    font-size:9px
  }
  .hero-seal b {
    font-size:36px
  }
  .hero-photo::after {
    background:linear-gradient(90deg,#101110e6 0%,#10111055 30%,transparent 70%),linear-gradient(0deg,var(--bg),transparent 45%,#10111055)
  }
  .food-rail {
    grid-auto-columns:47%;
    margin-inline:-36px;
    padding-inline:36px;
    gap:24px
  }
  .dish-grid {
    grid-template-columns:1fr 1fr
  }
  .category-tabs {
    margin-right:0
  }
  .event-highlights {
    grid-template-columns:repeat(3,1fr);
    gap:25px
  }
  .event-highlights>div {
    padding-left:0;
    padding-top:50px
  }
  .event-highlights h3 {
    font-size:24px
  }
  .wagon-gallery img {
    width:calc(33.333% - 10px)
  }
  .event-hero-image {
    max-height:530px
  }
  .contact-layout {
    grid-template-columns:1fr 1fr;
    gap:20px
  }
  .contact-card,.hours-card {
    padding:22px
  }
  .contact-card h2,.hours-card h2 {
    font-size:28px
  }
  .service-note {
    font-size:12px
  }
  .opening-pill {
    font-size:12px
  }
  .food-feature-image {
    border-radius:180px 180px 4px 4px
  }
  .two-fields {
    gap:15px
  }
  .footer-social-feature {
    grid-template-columns:1fr 1fr;
    align-items:center;
    gap:30px
  }
  .footer-bottom {
    font-size:11px
  }
  .map-placeholder {
    display:grid;
    grid-template-columns:1fr 1fr
  }
  .map-grid {
    height:auto;
    min-height:330px
  }
}

@media(min-width:900px) {
  :root {
    --header:94px
  }
  body {
    padding-bottom:0
  }
  .container {
    width:min(100% - 100px,1160px)
  }
  .section {
    padding-block:100px
  }
  .header-inner {
    width:calc(100% - 80px)
  }
  .brand {
    width:180px
  }
  .desktop-nav {
    display:flex;
    gap:30px;
    font-size:12px;
    align-items:center
  }
  .desktop-nav a {
    position:relative;
    padding:10px 0
  }
  .desktop-nav a[aria-current] {
    color:var(--gold)
  }
  .desktop-nav a[aria-current]::after {
    content:'';
    position:absolute;
    bottom:0;
    left:0;
    width:18px;
    height:1px;
    background:var(--gold)
  }
  .header-phone {
    display:flex;
    align-items:center;
    gap:9px;
    font-size:12px;
    color:var(--gold);
    margin-right:14px
  }
  .header-phone .icon {
    width:16px
  }
  .bottom-nav,.mobile-menu-toggle {
    display:none
  }
  .cart-bar {
    bottom:22px;
    left:auto;
    right:35px;
    min-width:350px
  }
  .hero {
    min-height:655px;
    max-width:1600px;
    margin:auto
  }
  .hero-content {
    padding-top:85px
  }
  .hero h1 {
    font-size:78px
  }
  .hero .eyebrow {
    font-size:10px
  }
  .hero-description {
    font-size:15px;
    margin-top:24px
  }
  .hero-photo {
    inset:0 -80px 0 36%
  }
  .hero-photo img {
    object-position:center 67%
  }
  .hero-photo::after {
    background:linear-gradient(90deg,var(--bg) 0%,#10111060 22%,transparent 50%),linear-gradient(0deg,var(--bg) 0%,transparent 23%,transparent 65%,#10111055 100%)
  }
  .hero-cta {
    margin-top:28px
  }
  .hero-cta .button {
    max-width:275px
  }
  .hero-story-link {
    font-size:11px
  }
  .hero-seal {
    right:3%;
    top:46px
  }
  .hero-caption {
    display:block;
    bottom:53px;
    right:7%
  }
  .service-strip {
    padding-block:19px
  }
  .service-strip>.container {
    justify-content:flex-start;
    gap:60px
  }
  .service-note {
    margin-left:auto
  }
  .section-heading>.text-link {
    font-size:13px
  }
  .section-intro {
    max-width:none
  }
  .food-rail {
    grid-template-columns:repeat(3,1fr);
    grid-auto-columns:unset;
    margin:25px 0 0;
    padding:0;
    gap:30px;
    overflow:visible
  }
  .food-feature-image {
    aspect-ratio:1/1.1;
    border-radius:200px 200px 5px 5px
  }
  .food-feature .photo-tag {
    font-size:9px
  }
  .food-feature-body h3 {
    font-size:32px
  }
  .menu-teaser {
    margin-top:28px;
    padding-block:22px
  }
  .delivery-section {
    padding-block:75px
  }
  .delivery-inner {
    display:grid;
    grid-template-columns:1fr 1fr;
    align-items:center;
    gap:90px
  }
  .delivery-check {
    margin:0;
    padding:32px
  }
  .event-teaser {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:70px;
    align-items:center
  }
  .event-copy {
    padding:0
  }
  .event-photo {
    aspect-ratio:1.05
  }
  .event-copy h2 {
    font-size:55px
  }
  .event-copy>p {
    font-size:15px
  }
  .event-copy .eyebrow {
    font-size:11px
  }
  .event-facts {
    font-size:12px
  }
  .story-section {
    padding:80px 0
  }
  .story-heading {
    margin-bottom:48px
  }
  .story-layout {
    display:grid;
    grid-template-columns:1.1fr 1fr;
    gap:70px;
    align-items:center
  }
  .story-timeline {
    padding:0
  }
  .story-image img {
    aspect-ratio:1.15
  }
  .story-timeline article p {
    font-size:15px
  }
  .story-timeline article {
    min-height:190px
  }
  .site-footer {
    padding-top:48px;
    padding-bottom:22px
  }
  .footer-social-feature {
    grid-template-columns:1fr 1.1fr;
    gap:70px;
    padding-bottom:40px
  }
  .footer-social-heading h2 {
    font-size:44px
  }
  .footer-social-heading > p:last-child {
    font-size:13px
  }
  .footer-social-link {
    padding:24px;
    gap:20px
  }
  .footer-social-copy strong { font-size:17px }
  .footer-social-copy > span { font-size:12px }
  .footer-details {
    grid-template-columns:1.5fr 1fr 1fr;
    gap:60px;
    padding-block:35px
  }
  .footer-brand {
    grid-column:auto;
    display:block
  }
  .footer-brand img { width:180px }
  .footer-brand p {
    text-align:left;
    margin-top:16px;
    font-size:13px
  }
  .footer-brand p > span { font-size:10px }
  .footer-contact address, .footer-explore > a { font-size:13px }
  .footer-details h3 { font-size:14px }
  .footer-phone { font-size:15px }
  .footer-hours > span:nth-child(2) {
    display:flex;
    align-items:center;
    gap:20px
  }
  .footer-hours strong { font-size:13px }
  .footer-hours > span > span { font-size:12px }
  .footer-bottom {
    padding-top:14px
  }
  .menu-intro {
    padding-block:50px 30px
  }
  .menu-intro h1 {
    font-size:66px
  }
  .menu-intro h1 br {
    display:none
  }
  .menu-intro>p:not(.eyebrow) {
    max-width:none;
    font-size:15px
  }
  .menu-service {
    font-size:11px
  }
  .menu-tools>.container {
    display:flex;
    align-items:center;
    gap:25px
  }
  .search-row {
    flex:1;
    min-width:240px
  }
  .menu-tools {
    padding:12px 0
  }
  .category-tabs {
    gap:5px;
    padding:0
  }
  .category-tabs button {
    font-size:11px;
    padding-inline:13px
  }
  .catalog-heading {
    padding-block:22px
  }
  .catalog-heading p {
    font-size:12px
  }
  .text-button {
    font-size:12px
  }
  .dish-grid {
    grid-template-columns:repeat(3,1fr);
    gap:17px
  }
  .dish-card {
    padding:9px 17px 16px
  }
  .dish-name {
    font-size:26px
  }
  .dish-description {
    font-size:12px
  }
  .dish-main>img {
    width:65px;
    height:75px
  }
  .dish-add {
    width:30px;
    height:30px
  }
  .dish-prices {
    gap:6px
  }
  .dish-prices strong {
    font-size:17px
  }
  .menu-notes {
    max-width:800px;
    margin:50px auto 0
  }
  .menu-notes summary {
    font-size:14px
  }
  .menu-notes p {
    font-size:13px
  }
  .toast {
    bottom:95px
  }
  .page-intro {
    padding-block:60px 45px
  }
  .event-hero {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:65px;
    align-items:center;
    padding-top:45px
  }
  .event-hero h1 {
    font-size:72px
  }
  .event-hero-image {
    margin:0;
    max-height:none;
    aspect-ratio:.95;
    border-radius:220px 220px 4px 4px
  }
  .event-highlights {
    padding-block:60px 70px;
    gap:65px
  }
  .event-highlights h3 {
    font-size:28px
  }
  .event-highlights p {
    font-size:14px
  }
  .planner-section {
    padding-block:80px
  }
  .planner-layout {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:75px;
    align-items:start
  }
  .event-planner {
    margin:0;
    padding:30px
  }
  .event-price-list>div {
    font-size:14px;
    padding-block:15px
  }
  .requirements {
    grid-template-columns:repeat(3,1fr);
    gap:30px;
    margin-block:40px
  }
  .wagon-gallery {
    margin-top:50px;
    gap:22px
  }
  .wagon-gallery img {
    width:calc(33.333% - 15px)
  }
  .contact-layout {
    gap:35px
  }
  .contact-card,.hours-card {
    padding:35px
  }
  .contact-card h2,.hours-card h2 {
    font-size:39px
  }
  .hours-list>div {
    font-size:14px
  }
  .map-grid {
    min-height:380px
  }
  .map-copy {
    padding:45px
  }
  .map-copy h2 {
    font-size:42px
  }
  .map-copy p:not(.eyebrow) {
    font-size:14px
  }
  .legal-content {
    padding-bottom:90px
  }
  dialog.sheet {
    inset:50% auto auto 50%;
    transform:translate(-50%,-50%);
    border-bottom:1px solid #484a3e;
    border-radius:12px;
    max-height:88dvh;
    padding:28px 32px
  }
  dialog.sheet[open] {
    animation:none
  }
  .dish-bottom {
    bottom:-28px;
    padding-bottom:20px
  }
  .sheet-top h2 {
    font-size:37px
  }
  .cart-sheet {
    max-width:610px
  }
  .dish-sheet {
    max-width:610px
  }
}

@media(max-width:359px) {
  .footer-brand img {
    width:122px
  }
  .footer-brand {
    gap:12px
  }
  .footer-brand p {
    font-size:10px
  }
  .footer-social-link {
    padding:14px
  }
  .container {
    width:calc(100% - 32px)
  }
  .hero h1 {
    font-size:43px
  }
  .hero .eyebrow {
    font-size:8px
  }
  .hero-content {
    padding-top:28px
  }
  .hero-cta {
    margin-top:165px
  }
  .hero {
    min-height:620px
  }
  .hero-seal {
    right:0;
    top:237px;
    width:75px;
    height:75px
  }
  .section-heading {
    align-items:flex-start;
    gap:10px
  }
  .section-heading>.text-link {
    font-size:10px;
    max-width:90px;
    line-height:1.5
  }
  .section-heading h2 {
    font-size:34px
  }
  .service-note {
    font-size:9px
  }
  .food-rail {
    margin-inline:-16px;
    padding-inline:16px
  }
  .dish-name {
    font-size:23px
  }
  .dish-main>img {
    width:58px;
    height:68px
  }
  .dish-main {
    gap:9px
  }
  .dish-add {
    width:28px;
    height:28px
  }
  .dish-bottom .button {
    padding-inline:9px;
    gap:5px;
    font-size:11px
  }
  .dish-bottom .quantity-stepper button {
    width:27px
  }
  .dish-bottom .quantity-stepper input {
    width:28px
  }
  .ingredient-options {
    grid-template-columns:1fr
  }
  .header-inner {
    width:calc(100% - 26px)
  }
  .brand {
    width:131px
  }
  .header-actions {
    gap:0
  }
  .event-planner {
    padding:18px
  }
  .event-hero h1 {
    font-size:46px
  }
  .two-fields {
    grid-template-columns:1fr;
    gap:0
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*::before,*::after {
    animation:none!important;
    transition:none!important
  }
}

@media(max-width:899px) {
  .menu-intro {
    padding-top:25px;
    padding-bottom:20px
  }
  .menu-intro .eyebrow {
    margin-bottom:10px
  }
  .menu-intro h1 {
    font-size:42px;
    line-height:1.1;
    margin-bottom:14px
  }
  .menu-intro>p:not(.eyebrow) {
    font-size:13px;
    margin-bottom:16px
  }
  .dish-description {
    font-size:13px
  }
  .allergen-ref {
    font-size:10px
  }
  .hero-cta {
    margin-top:215px
  }
  .hero-seal {
    top:268px
  }
}

@media(max-width:359px) {
  .hero-cta {
    margin-top:180px
  }
  .hero-seal {
    top:238px
  }
  .menu-intro h1 {
    font-size:39px
  }
  .category-tabs {
    margin-right:-16px;
    padding-right:16px
  }
  .cart-bar-label {
    font-size:11px
  }
}

@media print {
  body {
    background:white;
    color:black;
    padding:0
  }
  .site-header,.site-footer,.bottom-nav,.cart-bar,.menu-tools,.catalog-heading,dialog,.favorite-button,.dish-add,.toast {
    display:none!important
  }
  .dish-card[hidden] {
    display:block!important
  }
  .dish-card {
    background:white;
    color:black;
    break-inside:avoid;
    border-color:#aaa
  }
  .dish-grid {
    display:block
  }
  .dish-card {
    margin-bottom:12px
  }
  .dish-description,.dish-prices strong,.dish-prices,.allergen-ref {
    color:#333
  }
  .container {
    width:100%
  }
}

