@font-face {
  font-family: "Walter Turncoat";
  src: url("./assets/fonts/WalterTurncoat-Regular.ttf") format("truetype");
  font-display: swap;
}

:root {
  --paper: #f3eaf2;
  --paper-light: #fffafd;
  --paper-deep: #e6d8e8;
  --ink: #514740;
  --muted: #75676e;
  --rule: #947d91;
  --focus: #63567e;
  --font-hand: "Walter Turncoat", "Segoe Print", "Comic Sans MS", cursive;
  --font-copy: "Trebuchet MS", Arial, sans-serif;
  --page: min(1180px, calc(100% - 40px));
}

* {
  box-sizing: border-box;
}

[hidden] {
  display: none !important;
}

html {
  color: var(--ink);
  background: var(--paper);
  scroll-behavior: smooth;
}

body {
  min-width: 320px;
  margin: 0;
  color: var(--ink);
  background-color: var(--paper);
  background-image:
    radial-gradient(circle at 18% 14%, rgb(109 82 103 / 5%) 0 0.6px, transparent 0.9px),
    radial-gradient(circle at 76% 64%, rgb(81 71 64 / 4%) 0 0.7px, transparent 1px),
    linear-gradient(105deg, rgb(255 255 255 / 30%), transparent 42%, rgb(124 91 119 / 4%));
  background-size: 9px 11px, 13px 15px, 100% 100%;
  font-family: var(--font-copy);
  line-height: 1.55;
  letter-spacing: 0.035em;
}

button,
a {
  font: inherit;
}

button:focus-visible,
a:focus-visible,
#menu:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 4px;
}

.skip-link {
  position: fixed;
  z-index: 50;
  top: 12px;
  left: 12px;
  padding: 10px 14px;
  color: white;
  background: var(--focus);
  transform: translateY(-150%);
}

.skip-link:focus {
  transform: none;
}

.page-shell {
  width: var(--page);
  margin-inline: auto;
}

.menu-header {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 390px);
  align-items: center;
  gap: clamp(36px, 8vw, 110px);
  padding-block: clamp(58px, 10vw, 118px) clamp(36px, 7vw, 80px);
}

.eyebrow,
.preview-category,
.section-kicker {
  margin: 0 0 12px;
  color: var(--muted);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.19em;
  text-transform: uppercase;
}

h1,
h2,
.footer-mark {
  font-family: var(--font-hand);
  font-weight: 400;
}

h1 {
  margin: 0;
  font-size: clamp(4.4rem, 12vw, 9rem);
  line-height: 0.9;
}

.header-note {
  max-width: 42ch;
  margin: 22px 0 0;
  color: var(--muted);
  font-size: 0.92rem;
}

.header-note + .header-note {
  margin-top: 8px;
}

.brand-mark {
  position: relative;
  width: min(100%, 370px);
  aspect-ratio: 1;
  justify-self: end;
  border-radius: 50%;
  background: #eee2ef;
  box-shadow:
    0 22px 45px rgb(81 71 64 / 15%),
    0 0 0 10px rgb(255 250 253 / 48%);
}

.brand-mark img {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  object-fit: cover;
}

.header-utility {
  display: block;
  max-width: 42rem;
}

.language-control {
  position: absolute;
  z-index: 2;
  top: 18px;
  right: 0;
  display: grid;
  gap: 4px;
  color: var(--muted);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.language-control select {
  min-width: 8.6rem;
  min-height: 40px;
  padding: 7px 32px 7px 10px;
  border: 1px solid rgb(81 71 64 / 45%);
  border-radius: 2px;
  color: var(--ink);
  background: rgb(255 250 253 / 76%);
  font: 700 0.85rem/1.2 var(--font-copy);
  letter-spacing: 0.02em;
  text-transform: none;
}

.translation-notice {
  margin-block: 0 18px;
  padding: 10px 14px;
  border: 1px solid #9a755e;
  background: #f0dfca;
  font-size: 0.88rem;
}

html[data-locale="zh-Hans"] body,
html[data-locale="zh-Hans"] button,
html[data-locale="zh-Hans"] select,
html[data-locale="zh-Hans"] input,
html[data-locale="zh-Hans"] textarea {
  font-family: "Microsoft YaHei", "PingFang SC", "Noto Sans CJK SC", Arial, sans-serif;
  letter-spacing: 0.02em;
}

html[data-locale="zh-Hans"] h1,
html[data-locale="zh-Hans"] h2,
html[data-locale="zh-Hans"] .footer-mark,
html[data-locale="zh-Hans"] .category-nav a,
html[data-locale="zh-Hans"] .menu-item,
html[data-locale="zh-Hans"] .slogan-band-track {
  font-family: "ZCOOL KuaiLe", KaiTi, STKaiti, "Kaiti SC", "Microsoft YaHei", sans-serif;
  font-weight: 400;
}

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

.slogan-band {
  width: 100%;
  margin-bottom: clamp(34px, 6vw, 68px);
  overflow: hidden;
  border-block: 1px solid rgb(91 70 60 / 38%);
  background-color: #decbb7;
  background-image:
    radial-gradient(circle at 20% 30%, rgb(255 249 238 / 28%) 0 0.7px, transparent 1px),
    radial-gradient(circle at 72% 65%, rgb(105 77 61 / 9%) 0 0.7px, transparent 1px),
    linear-gradient(90deg, #d7c0a8, #ead9c6 48%, #d5bda4);
  background-size: 9px 11px, 13px 15px, 100% 100%;
  box-shadow:
    0 9px 24px rgb(81 71 64 / 12%),
    inset 0 1px rgb(255 252 245 / 48%),
    inset 0 -1px rgb(91 70 60 / 14%);
}

.slogan-band-track {
  display: flex;
  width: max-content;
  padding-block: clamp(13px, 1.8vw, 18px);
  color: #5b463c;
  font-family: var(--font-hand);
  font-size: clamp(1.12rem, 2.1vw, 1.65rem);
  line-height: 1.2;
  animation: slogan-marquee 12s linear infinite;
  will-change: transform;
}

.slogan-band:hover .slogan-band-track {
  animation-play-state: paused;
}

.slogan-band-group {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  gap: clamp(46px, 6vw, 92px);
  padding-inline: clamp(24px, 4vw, 64px);
  white-space: nowrap;
}

@keyframes slogan-marquee {
  to {
    transform: translateX(-50%);
  }
}

.category-nav {
  position: sticky;
  z-index: 8;
  top: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding-block: 10px;
  border-block: 1px solid rgb(81 71 64 / 35%);
  background: rgb(243 234 242 / 94%);
  backdrop-filter: blur(10px);
}

#category-nav-list {
  display: flex;
  gap: 8px 22px;
  overflow-x: auto;
  scrollbar-width: thin;
}

.category-nav a {
  min-height: 40px;
  flex: 0 0 auto;
  align-items: center;
  color: var(--ink);
  font-family: var(--font-hand);
  text-decoration-thickness: 1px;
  text-underline-offset: 5px;
}

.menu-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  align-items: start;
  gap: clamp(42px, 8vw, 100px);
  padding-block: clamp(40px, 6vw, 64px) clamp(56px, 9vw, 112px);
}

.menu-category {
  scroll-margin-top: 82px;
  padding-bottom: clamp(52px, 8vw, 86px);
}

.category-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  column-gap: clamp(16px, 3vw, 32px);
  border-bottom: 1px solid var(--ink);
}

.menu-category h2 {
  min-width: 0;
  margin: 0;
  padding-bottom: 15px;
  font-size: clamp(1.7rem, 3vw, 2.35rem);
  line-height: 1;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.category-illustration {
  display: block;
  width: clamp(96px, 10vw, 124px);
  max-width: 124px;
  height: auto;
  padding-bottom: 8px;
  object-fit: contain;
  pointer-events: none;
  user-select: none;
}

.item-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2px clamp(24px, 5vw, 62px);
  margin: 22px 0 0;
  padding: 0;
  list-style: none;
}

.menu-item {
  display: flex;
  width: 100%;
  min-height: 42px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 6px 2px;
  border: 0;
  border-bottom: 1px solid transparent;
  color: var(--ink);
  background: transparent;
  font-size: clamp(0.92rem, 1.4vw, 1.04rem);
  font-weight: 700;
  letter-spacing: 0.12em;
  text-align: left;
  cursor: pointer;
}

.menu-item:hover,
.menu-item.is-active {
  border-bottom-color: var(--ink);
}

.item-cue {
  color: var(--muted);
  font-size: 0.64rem;
  letter-spacing: 0.14em;
  opacity: 0;
  text-transform: uppercase;
  transform: translateX(-4px);
  transition: 140ms ease;
}

.menu-item:hover .item-cue,
.menu-item:focus-visible .item-cue,
.menu-item.is-active .item-cue {
  opacity: 1;
  transform: none;
}

.category-note {
  margin: 24px 0 0;
  color: var(--muted);
  font-weight: 500;
  letter-spacing: 0.14em;
  text-align: center;
}

.product-preview {
  position: sticky;
  top: 86px;
  overflow: hidden;
  border: 1px solid var(--ink);
  background: rgb(251 245 235 / 72%);
}

.preview-close {
  display: none;
}

.preview-photo {
  aspect-ratio: 4 / 3;
  border-bottom: 1px solid var(--ink);
  background: var(--paper-deep);
}

.preview-photo img,
.photo-placeholder {
  width: 100%;
  height: 100%;
}

.preview-photo img {
  display: block;
  object-fit: cover;
}

.photo-placeholder {
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  overflow: hidden;
  padding: 14px 16px;
  background: var(--paper-deep);
  color: var(--muted);
  font-family: var(--font-hand);
  font-size: 1.05rem;
}

.photo-placeholder > .photo-placeholder-art {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center top;
  pointer-events: none;
}

.photo-placeholder > span {
  position: relative;
  z-index: 1;
  line-height: 1.15;
  text-align: center;
}

.product-preview > :not(.preview-photo, .preview-close) {
  margin-inline: 24px;
}

.preview-category {
  margin-top: 24px;
}

.product-preview h2 {
  margin-top: 0;
  margin-bottom: 12px;
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  line-height: 1.05;
}

.preview-description {
  min-height: 3.2em;
  margin-top: 0;
  color: var(--muted);
}

.preview-facts {
  margin-top: 22px;
  margin-bottom: 26px;
}

.preview-facts div {
  display: grid;
  grid-template-columns: 84px 1fr;
  gap: 12px;
  padding-block: 9px;
  border-top: 1px solid rgb(81 71 64 / 30%);
}

.preview-facts dt {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.preview-facts dd {
  margin: 0;
  color: var(--muted);
  font-size: 0.82rem;
}

.allergen-original {
  display: block;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid rgb(81 71 64 / 20%);
  color: var(--muted);
  font-size: 0.78em;
  line-height: 1.45;
}

.cart-toggle { display:inline-flex; min-height:42px; align-items:center; gap:9px; padding:7px 12px; border:1px solid var(--ink); color:var(--paper-light); background:var(--ink); font-weight:700; white-space:nowrap; cursor:pointer; }
.cart-count { display:grid; min-width:24px; min-height:24px; place-items:center; padding-inline:5px; border-radius:999px; color:var(--ink); background:#ead9c6; font-size:.72rem; }
.cart-bump { animation:cart-bump 360ms ease; }
@keyframes cart-bump { 50% { transform:scale(1.08) rotate(-1deg); } }

.product-peek {
  display: none;
}

@media (min-width: 821px) and (hover: hover) and (pointer: fine) {
  .menu-layout {
    display: block;
  }

  .product-preview {
    position: fixed;
    z-index: 30;
    top: 50%;
    left: 50%;
    width: min(620px, calc(100vw - 48px));
    max-height: min(88vh, 760px);
    max-height: min(88dvh, 760px);
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    border: 1px solid var(--ink);
    background: var(--paper-light);
    box-shadow: 0 24px 80px rgb(81 71 64 / 28%);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translate(-50%, -46%) scale(0.82);
    transition:
      opacity 160ms ease,
      transform 180ms ease,
      visibility 0s linear 180ms;
  }

  .product-preview.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translate(-50%, -50%) scale(1);
    transition-delay: 0s;
  }

  .preview-close {
    position: sticky;
    z-index: 2;
    top: 12px;
    display: block;
    float: right;
    min-width: 48px;
    min-height: 44px;
    margin: 12px 12px -56px 0;
    padding: 8px 11px;
    border: 1px solid var(--ink);
    color: var(--ink);
    background: var(--paper-light);
    font-size: 0.72rem;
    font-weight: 700;
    cursor: pointer;
  }

  .preview-photo {
    height: clamp(170px, 28dvh, 240px);
    aspect-ratio: auto;
  }

  .product-preview h2 {
    font-size: clamp(1.55rem, 2.1vw, 2rem);
    line-height: 1;
  }

  .preview-facts {
    display: flex;
    flex-direction: column;
  }

  .preview-facts > div:last-child {
    order: -1;
  }

  .product-peek {
    position: fixed;
    z-index: 10;
    top: var(--peek-top, 16px);
    left: var(--peek-left, 16px);
    display: block;
    width: min(300px, calc(100vw - 32px));
    overflow: hidden;
    border: 1px solid var(--ink);
    background: var(--paper-light);
    box-shadow: 0 18px 46px rgb(81 71 64 / 24%);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(8px) scale(0.94);
    transform-origin: center;
    transition:
      opacity 140ms ease,
      transform 180ms cubic-bezier(0.2, 0.8, 0.2, 1),
      visibility 0s linear 180ms;
  }

  .product-peek.is-visible {
    opacity: 1;
    visibility: visible;
    transform: none;
    transition-delay: 0s;
  }

  .product-peek-photo {
    aspect-ratio: 16 / 9;
    border-bottom: 1px solid var(--ink);
    background: var(--paper-deep);
  }

  .product-peek-photo img,
  .product-peek-photo .photo-placeholder {
    width: 100%;
    height: 100%;
    padding: 8px 10px;
    font-size: 0.9rem;
  }

  .product-peek-photo img {
    display: block;
    object-fit: cover;
  }

  .product-peek-name {
    margin: 0;
    padding: 14px 16px 16px;
    font-family: var(--font-hand);
    font-size: clamp(1.05rem, 1.45vw, 1.32rem);
    line-height: 1.15;
  }
}

.product-order-form { margin-top:18px; margin-bottom:26px; padding-top:18px; border-top:1px solid rgb(81 71 64 / 30%); }
.offer-fieldset,.fulfillment-fieldset { margin:0; padding:0; border:0; }
.offer-fieldset legend,.fulfillment-fieldset legend,.quantity-control>span:first-child { margin-bottom:9px; font-size:.7rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.offer-options { display:grid; grid-template-columns:repeat(auto-fit,minmax(125px,1fr)); gap:8px; }
.offer-option { position:relative; display:block; cursor:pointer; }
.offer-option input { position:absolute; opacity:0; }
.offer-option>span { display:grid; min-height:66px; align-content:center; gap:2px; padding:10px 12px; border:1px solid rgb(81 71 64 / 38%); background:rgb(243 234 242 / 48%); }
.offer-option small { color:var(--muted); font-size:.72rem; }
.offer-option input:checked+span { border-color:var(--ink); background:#ead9c6; box-shadow:inset 0 0 0 1px var(--ink); }
.offer-option input:focus-visible+span { outline:3px solid var(--focus); outline-offset:3px; }
.quote-fields,.form-grid,.contact-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.quote-fields { margin-top:14px; }
.quote-fields label:last-child,.form-wide { grid-column:1/-1; }
.quote-fields label,.form-grid label,.form-block,.contact-form label { display:grid; gap:6px; color:var(--muted); font-size:.78rem; font-weight:700; }
input,textarea,select { width:100%; min-height:44px; padding:9px 11px; border:1px solid rgb(81 71 64 / 52%); border-radius:0; color:var(--ink); background:var(--paper-light); font:inherit; letter-spacing:.02em; }
textarea { min-height:86px; resize:vertical; }
input:focus,textarea:focus,select:focus { border-color:var(--focus); outline:3px solid rgb(99 86 126 / 22%); }
[aria-invalid="true"] { border-color:#8a2f34; box-shadow:0 0 0 2px rgb(138 47 52 / 18%); }
.product-add-row { display:grid; grid-template-columns:auto minmax(180px,1fr); align-items:end; gap:14px; margin-top:16px; }
.quantity-control { display:grid; }
.stepper { display:inline-grid; grid-template-columns:44px minmax(42px,56px) 44px; align-items:center; border:1px solid var(--ink); background:var(--paper-light); }
.stepper button { min-width:44px; min-height:44px; padding:0; border:0; color:var(--ink); background:transparent; font-size:1.1rem; cursor:pointer; }
.stepper input,.stepper output { width:100%; min-height:44px; padding:10px 2px; border-width:0 1px; border-color:rgb(81 71 64 / 32%); text-align:center; }
.stepper input { appearance:textfield; }
.stepper input::-webkit-inner-spin-button { appearance:none; }
.primary-button,.secondary-button,.text-button,.panel-close { min-height:46px; padding:10px 16px; border:1px solid var(--ink); color:var(--paper-light); background:var(--ink); font-weight:700; text-align:center; text-decoration:none; cursor:pointer; }
.secondary-button,.panel-close { color:var(--ink); background:var(--paper-light); }
.text-button { border-color:transparent; color:var(--ink); background:transparent; text-decoration:underline; text-underline-offset:3px; }
.primary-button:hover,.secondary-button:hover,.panel-close:hover { color:var(--ink); background:#ead9c6; }
button:disabled { opacity:.55; cursor:wait; }
.full-button { width:100%; }
.product-order-note { min-height:1.5em; margin:10px 0 0; color:var(--muted); font-size:.76rem; }
.mix-builder { margin-top:14px; padding:13px; border:1px dashed rgb(81 71 64 / 48%); background:rgb(234 217 198 / 36%); }
.mix-toggle { display:flex; align-items:center; gap:9px; font-weight:700; cursor:pointer; }
.mix-toggle input { width:20px; min-height:20px; }
.mix-builder h3 { margin:14px 0 3px; font-family:var(--font-hand); font-size:1.2rem; }
.mix-components { display:grid; gap:8px; margin-top:12px; }
.mix-component { display:grid; grid-template-columns:minmax(0,1fr) 78px; align-items:center; gap:10px; }
.mix-component input { text-align:center; }
.mix-total { margin:10px 0 0; font-size:.78rem; font-weight:700; }
.mix-total.is-error { color:#8a2f34; }
.turnstile-slot { margin-block:16px; }
.contact-email { overflow-wrap:anywhere; }
.contact-email a { color:var(--ink); }
.request-details { margin-block:20px; }
.request-details pre { white-space:pre-wrap; overflow-wrap:anywhere; font:inherit; font-size:.78rem; }

.cart-drawer,.checkout-panel { position:fixed; z-index:30; color:var(--ink); background-color:var(--paper-light); background-image:radial-gradient(circle at 20% 20%,rgb(109 82 103 / 5%) 0 .7px,transparent 1px); background-size:11px 13px; box-shadow:0 24px 90px rgb(48 38 44 / 32%); visibility:hidden; pointer-events:none; }
.cart-drawer { top:0; right:0; width:min(430px,100vw); height:100dvh; padding:24px; overflow-y:auto; transform:translateX(105%); transition:transform 220ms ease,visibility 0s linear 220ms; }
.cart-drawer.is-open { visibility:visible; pointer-events:auto; transform:none; transition-delay:0s; }
.checkout-panel { top:50%; left:50%; width:min(760px,calc(100vw - 40px)); max-height:min(92dvh,850px); padding:clamp(22px,4vw,38px); overflow-y:auto; opacity:0; transform:translate(-50%,-46%) scale(.96); transition:opacity 170ms ease,transform 200ms ease,visibility 0s linear 200ms; }
.checkout-panel.is-open { visibility:visible; pointer-events:auto; opacity:1; transform:translate(-50%,-50%) scale(1); transition-delay:0s; }
.panel-header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:24px; padding-bottom:17px; border-bottom:1px solid rgb(81 71 64 / 36%); }
.panel-header h2,.order-result h2 { margin:0; font-size:clamp(2rem,5vw,3.4rem); line-height:1; }
.panel-close { flex:0 0 auto; }
.cart-empty { display:grid; min-height:58dvh; place-content:center; gap:18px; text-align:center; }
.cart-items,.checkout-review-list { display:grid; gap:0; margin:0; padding:0; list-style:none; }
.cart-line { padding-block:18px; border-bottom:1px solid rgb(81 71 64 / 25%); }
.cart-line-product { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:start; gap:12px; }
.cart-line-copy { min-width:0; }
.cart-line-media { display:flex; width:64px; height:64px; flex:0 0 64px; align-items:center; overflow:hidden; border:1px solid rgb(81 71 64 / 28%); background:#ead9c6; }
.cart-line-media.is-mixed { width:72px; flex-basis:72px; justify-content:center; overflow:visible; border:0; background:transparent; }
.cart-thumb { position:relative; display:grid; width:100%; height:100%; flex:0 0 auto; place-items:center; overflow:hidden; background:linear-gradient(145deg,#ead9c6,#f7eadc); }
.cart-line-media.is-mixed .cart-thumb { width:42px; height:58px; margin-left:-26px; border:1px solid var(--paper-light); box-shadow:0 3px 8px rgb(81 71 64 / 15%); }
.cart-line-media.is-mixed .cart-thumb:first-child { margin-left:0; }
.cart-thumb-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.cart-thumb-fallback { color:#6f594a; font-family:var(--font-hand); font-size:1.45rem; }
.cart-line-heading,.checkout-review-list li,.checkout-total,.cart-summary>div { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }
.cart-line-heading>div,.checkout-review-list span { display:grid; gap:3px; }
.cart-line-heading span,.checkout-review-list small,.cart-line-note,.fine-print { color:var(--muted); font-size:.75rem; }
.cart-line-note { margin:8px 0; }
.cart-line-actions { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:12px; }
.saving-prompt { width:100%; margin-top:10px; padding:9px 11px; border:1px dashed #79604e; color:#5b463c; background:#f1dfc7; font-size:.76rem; font-weight:700; text-align:left; cursor:pointer; }
.cart-summary { display:grid; gap:8px; margin-block:22px; padding:16px; background:rgb(234 217 198 / 52%); }
.cart-summary p { margin:4px 0 0; }
.savings-line { color:#526443; }
.checkout-review-list li { padding-block:13px; border-bottom:1px solid rgb(81 71 64 / 24%); }
.checkout-total { margin-block:22px; padding:16px 0; border-block:1px solid var(--ink); }
.request-notice,.form-error-summary { margin:18px 0; padding:13px 15px; border-left:4px solid #8a6647; background:#f1dfc7; }
.form-error-summary { border-color:#8a2f34; background:#f5dfe1; }
.fulfillment-fieldset { display:flex; flex-wrap:wrap; gap:10px 24px; margin-block:22px; }
.fulfillment-fieldset legend { width:100%; }
.fulfillment-fieldset label,.acknowledgement { display:flex; align-items:flex-start; gap:9px; }
.fulfillment-fieldset input,.acknowledgement input { width:20px; min-height:20px; margin-top:2px; }
.form-block,.acknowledgement { margin-top:18px; }
.checkout-actions,.result-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px; margin-top:22px; }
.sms-action { display:none; }
.order-result { padding-block:20px; }
.order-code { font-family:var(--font-hand); font-size:1.25rem; }
.contact-section { display:grid; grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr); gap:clamp(34px,7vw,90px); margin-bottom:clamp(70px,10vw,120px); padding:clamp(30px,5vw,62px); border:1px solid rgb(81 71 64 / 45%); background:#ead9c6; }
.contact-section h2 { margin:0; font-size:clamp(2.3rem,5vw,4.3rem); line-height:1; }
.contact-form { align-content:start; }

.contact-feedback {
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:11px;
  margin:0;
  padding:13px 15px;
  border:1px solid rgb(81 71 64 / 42%);
  color:var(--ink);
  background:rgb(247 234 220 / 88%);
  font-size:.86rem;
  font-weight:700;
  line-height:1.45;
}
.contact-feedback:empty { display:none; }
.contact-feedback::before {
  content:"i";
  display:grid;
  width:28px;
  height:28px;
  place-items:center;
  border:1px solid currentColor;
  border-radius:50%;
  font-family:Georgia,serif;
  font-size:.9rem;
}
.contact-feedback[data-state="success"] { border-color:#657052; background:#e2e6d1; }
.contact-feedback[data-state="success"]::before { content:"✓"; font-family:inherit; }
.contact-feedback[data-state="error"] { border-color:#8a2f34; background:#f5dfe1; }
.contact-feedback[data-state="error"]::before { content:"!"; font-family:inherit; }
#contact-submit[data-sent="true"] { border-color:#586247; color:#fffdf7; background:#657052; }

.copy-status {
  min-height: 1.5em;
  color: var(--muted);
  font-size: 0.84rem;
}

.site-footer {
  padding-block: 0 54px;
  text-align: center;
}

.site-footer > p:first-child {
  max-width: 62ch;
  margin-inline: auto;
  font-weight: 700;
  letter-spacing: 0.12em;
}

.footer-mark {
  margin: 28px 0 0;
  font-size: 1.8rem;
}

.mobile-scrim {
  position: fixed;
  z-index: 29;
  inset: 0;
  background: rgb(81 71 64 / 48%);
}

.order-policies { margin: 0 auto 36px; max-width: 76ch; text-align: left; font-size: .85rem; }
.order-policies summary { min-height: 44px; padding: 12px 0; cursor: pointer; font-weight: 700; }
.order-policies p { color: var(--muted); }

.preview-open {
  overflow: hidden;
}

.noscript-message {
  position: fixed;
  z-index: 100;
  right: 16px;
  bottom: 16px;
  left: 16px;
  padding: 16px;
  border: 2px solid var(--ink);
  background: var(--paper-light);
  text-align: center;
}

@media (max-width: 820px), (hover: none), (pointer: coarse) {
  :root {
    --page: min(100% - 28px, 680px);
  }

  .menu-header {
    grid-template-columns: minmax(0, 1fr) minmax(150px, 210px);
    gap: 22px;
    padding-block: 46px 34px;
  }

  .language-control {
    top: 0;
  }

  .language-control > span {
    display: none;
  }

  .slogan-band {
    margin-bottom: 28px;
  }

  .slogan-band-track {
    padding-block: 12px;
  }

  .eyebrow {
    font-size: 0.64rem;
  }

  h1 {
    font-size: clamp(4rem, 21vw, 6.2rem);
  }

  .header-note {
    margin-top: 18px;
    font-size: 0.8rem;
  }

  .brand-mark {
    box-shadow:
      0 14px 30px rgb(81 71 64 / 13%),
      0 0 0 7px rgb(255 250 253 / 48%);
  }

  .category-nav {
    width: 100%;
    padding-inline: 14px;
  }

  .cart-toggle > span:first-child { display:none; }
  .cart-toggle { min-width:48px; justify-content:center; padding-inline:9px; }

  .category-nav a {
    min-height: 44px;
  }

  .menu-layout {
    display: block;
    padding-block: 36px 52px;
  }

  .category-heading {
    column-gap: 12px;
  }

  .category-illustration {
    width: clamp(64px, 20vw, 78px);
    max-width: 78px;
    padding-bottom: 7px;
  }

  .item-grid {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .menu-item {
    min-height: 48px;
    border-bottom-color: rgb(81 71 64 / 20%);
  }

  .item-cue {
    opacity: 1;
    transform: none;
  }

  .category-note {
    font-size: 0.82rem;
    text-align: left;
  }

  .product-preview {
    position: fixed;
    z-index: 30;
    top: auto;
    right: 0;
    bottom: 0;
    left: 0;
    max-height: min(88dvh, 760px);
    overflow-y: auto;
    border-width: 1px 0 0;
    background: var(--paper-light);
    box-shadow: 0 -18px 50px rgb(81 71 64 / 22%);
    transform: translateY(105%);
    transition: transform 220ms ease;
  }

  .product-preview.is-open {
    transform: none;
  }

  .preview-close {
    position: absolute;
    z-index: 2;
    top: 12px;
    right: 12px;
    display: block;
    min-width: 48px;
    min-height: 44px;
    padding: 8px 11px;
    border: 1px solid var(--ink);
    color: var(--ink);
    background: var(--paper-light);
    font-size: 0.72rem;
    font-weight: 700;
    cursor: pointer;
  }

  .preview-photo {
    aspect-ratio: 16 / 9;
  }

  .preview-facts div {
    grid-template-columns: 76px 1fr;
  }

  .preview-open {
    overflow: hidden;
  }

  .product-add-row { grid-template-columns:1fr; }
  .product-add-row .primary-button { width:100%; }
  .offer-options { grid-template-columns:1fr 1fr; }

  .cart-drawer { width:100%; top:0; bottom:0; height:100dvh; padding:20px; transform:translateY(105%); border-top:1px solid var(--ink); }
  .checkout-panel { inset:0; width:100%; max-height:none; height:100dvh; padding:20px; transform:translateY(105%); opacity:1; }
  .checkout-panel.is-open { transform:none; }
  .contact-section { grid-template-columns:1fr; padding:24px 20px; }
  .quote-fields,.form-grid,.contact-form { grid-template-columns:1fr; }
  .quote-fields label:last-child,.form-wide { grid-column:auto; }
  .checkout-actions,.result-actions { display:grid; grid-template-columns:1fr; }
  .sms-action:not([hidden]) { display:inline-flex; align-items:center; justify-content:center; }
}

@media (max-width: 560px) {
  .menu-header {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
  }

  .brand-mark {
    width: min(68vw, 260px);
    justify-self: center;
    order: -1;
  }

  .header-note {
    max-width: 28ch;
    margin-inline: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  .slogan-band-track {
    width: 100%;
    justify-content: center;
    animation: none !important;
  }

  .slogan-band-group {
    width: 100%;
    justify-content: center;
  }

  .slogan-band-group[aria-hidden="true"],
  .slogan-band-group span:not(:first-child) {
    display: none;
  }

}

@media (forced-colors: active) {
  .category-nav,
  .slogan-band,
  .product-preview,
  .cart-drawer,
  .checkout-panel,
  .contact-section {
    color: CanvasText;
    background: Canvas;
  }

  .menu-item.is-active {
    outline: 2px solid Highlight;
  }

  .category-illustration {
    display: none;
  }

}
