/* The four catalog pages share the same live basket and checkout. */
:root {
  --cream: #eeede8;
  --paper: #f8f7f3;
  --sand: #e7e3da;
  --dark: #653a22;
  --coffee: #80451e;
  --muted: #8b6c59;
  --line: #d6cabb;
}
body { background: var(--cream); }
.site-header { background: rgba(238,237,232,.97); }
.catalogue { max-width: 1160px; padding-top: 0; padding-bottom: 50px; }
.menu-intro { min-height: 330px; display: grid; grid-template-columns: minmax(0,1fr) minmax(270px,48%); gap: 20px; align-items: center; border-bottom: 1px solid var(--line); }
.menu-intro.no-photo { min-height: 190px; grid-template-columns: 1fr; }
.menu-intro-copy { position: relative; z-index: 1; padding: 30px 0; }
.menu-kicker { color: var(--muted); font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; }
.menu-intro h1 { font-family: "DM Sans", sans-serif; font-weight: 400; color: var(--coffee); font-size: clamp(2.5rem,5.2vw,4.8rem); line-height: 1.05; letter-spacing: -.055em; margin: 18px 0 20px; }
.menu-page-number { color: var(--muted); letter-spacing: .16em; font-size: .76rem; }
.menu-photo { width: 100%; height: 330px; object-fit: contain; mix-blend-mode: multiply; }
.menu-photo[hidden] { display: none; }
.menu-toolbar { display: flex; justify-content: space-between; align-items: end; gap: 18px; padding: 18px 0 6px; }
.menu-toolbar .categories { flex: 1; padding: 0; gap: 7px; }
.menu-toolbar .categories button { border-radius: 4px; background: transparent; border-color: transparent; color: var(--coffee); padding: 8px 12px; }
.menu-toolbar .categories button.active { background: var(--coffee); color: #fff; }
.menu-toolbar .search { font-size: .68rem; }
.menu-toolbar .search input { width: min(230px,35vw); background: transparent; border-radius: 4px; }
.status { margin: 10px 0 20px; font-size: .76rem; }
.catalogue-lists { display: block; column-count: 2; column-gap: clamp(48px, 6vw, 88px); column-rule: 1px solid var(--line); }
.category-section { break-inside: avoid; display: inline-block; width: 100%; vertical-align: top; margin: 0 0 22px; padding: 17px 20px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); box-shadow: 0 3px 12px rgba(101,58,34,.035); }
.category-section.flavour-group { background: color-mix(in srgb, var(--paper) 78%, var(--sand)); border-color: color-mix(in srgb, var(--line) 65%, var(--coffee)); }
.category-section h3 { font-family: "DM Sans", sans-serif; color: var(--coffee); background: transparent; border: 0; border-bottom: 1px solid var(--line); padding: 0 0 10px; margin-bottom: 2px; font-size: 1.35rem; font-weight: 700; }
.product-row { grid-template-columns: minmax(0,1fr) auto; gap: 5px 10px; padding: 12px 0; border-bottom: 1px solid rgba(128,69,30,.12); }
.product-row.single-item .price { grid-column: 1 / -1; }
.product-row:last-child { border-bottom: 0; }
.product-name { font-size: .98rem; font-weight: 500; }
.price { color: var(--coffee); font-size: .9rem; font-weight: 600; }
.item-actions { grid-column: 1 / -1; display: flex; align-items: center; gap: 6px; margin-top: 5px; }
.quantity-button { border-radius: 4px; }
.item-quantity { border-radius: 4px; height: 32px; }
.menu-add-button { border: 1px solid var(--coffee); border-radius: 4px; background: var(--coffee); color: #fff; min-height: 32px; padding: 5px 11px; cursor: pointer; font-size: .76rem; font-weight: 700; }
.menu-add-button:hover,.menu-add-button:focus-visible { opacity: .85; }
.search-group-title { break-after: avoid; color: var(--coffee); font-family: "DM Sans", sans-serif; font-size: 1.15rem; }
.menu-pagination { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin: 30px 0 10px; padding: 20px 0; border-top: 1px solid var(--line); }
.menu-pagination button { color: var(--coffee); background: transparent; border: 0; padding: 10px 0; font-weight: 700; cursor: pointer; }
.menu-pagination button:disabled { opacity: .35; cursor: default; }
.menu-pagination span { color: var(--muted); font-size: .83rem; text-align: center; }
footer { background: var(--cream); color: var(--coffee); border-top: 1px solid var(--line); }
footer a { color: inherit; }
@media (max-width: 700px) {
  .catalogue { padding-inline: 16px; }
  .menu-intro { min-height: 225px; grid-template-columns: minmax(0,1fr) minmax(110px,43%); gap: 0; }
  .menu-intro h1 { font-size: clamp(2.05rem,7vw,3.1rem); }
  .menu-photo { height: 225px; }
  .menu-toolbar { display: grid; gap: 12px; }
  .menu-toolbar .categories { width: 100%; }
  .menu-toolbar .search,.menu-toolbar .search input { width: 100%; }
  .catalogue-lists { column-count: 1; column-rule: 0; }
  .category-section { padding: 15px 16px; margin-bottom: 14px; }
}
@media (max-width: 390px) {
  .menu-intro { grid-template-columns: minmax(0,1fr) minmax(100px,38%); }
  .menu-intro h1 { font-size: 2rem; }
  .menu-kicker { font-size: .6rem; }
}
