:root {
  --menu-green: #233d31;
  --menu-text: #23352a;
  --menu-muted: #596557;
  --menu-rule: #dcd8c8;
  --menu-cream: #faf6ec;
  --menu-white: #fffcf5;
  --menu-sage: #e7eadd;
}

body { background: var(--menu-cream); }
html { scroll-padding-top: 105px; }

.header .header-inner,
.header.is-scrolled .header-inner { height: 82px; }
.header .brand-logo,
.header.is-scrolled .brand-logo { width: 59px; height: 59px; }
.header .desktop-nav { font-size: 13px; }

.home-masthead .masthead-mark { margin: 0; }

.branch-open-menu {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 22px;
  min-height: 44px;
  padding: 9px 17px;
  font-size: 13px;
  font-weight: 650;
  border-radius: 4px;
}

.entry-links { background: var(--menu-green); }
.entry-links > a { min-height: 72px; }
.entry-links strong { font-size: clamp(12px, 1.3vw, 16px); }

.branch-menu-switch {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: clamp(13px, 2vw, 24px);
  align-items: center;
  width: min(89%, 1180px);
  max-width: none;
  padding: 22px clamp(16px, 3vw, 36px);
  margin-block: clamp(28px, 4vw, 55px) 0;
  background: var(--menu-sage);
  border: 1px solid #cfd4c3;
  border-radius: 6px;
}

.branch-menu-switch h2 {
  font-size: clamp(20px, 2.2vw, 31px);
  font-weight: 730;
  line-height: 1.3;
}

.branch-menu-switch p { margin-top: 6px; color: var(--menu-muted); font-size: 13px; }
.branch-menu-options { background: var(--menu-white); border-color: #cfd4c3; }
.branch-menu-options button { min-height: 42px; font-size: 13px; font-weight: 650; }
.branch-menu-options button[aria-pressed="true"] { background: var(--menu-green); }
.branch-open-menu { border: 1px solid var(--menu-green); color: var(--menu-green); }
.branch-open-menu:hover { background: var(--menu-green); color: var(--menu-cream); }

.pizzeria-menu-section,
.all-menu,
.shop {
  width: min(89%, 1180px);
  max-width: none;
  margin-inline: auto;
  padding: clamp(34px, 5vw, 70px) 0;
  background: transparent;
}

.pizzeria-menu-section .pizza-layout {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  align-items: stretch;
  gap: clamp(23px, 4vw, 56px);
  margin: 0;
}

.pizzeria-menu-section .pizza-photo {
  height: 100%;
  min-height: 385px;
  width: 100%;
  margin: 0;
  border-radius: 6px;
  align-self: stretch;
  background: #d1c3a5;
}

.pizzeria-menu-section .pizza-photo img {
  position: absolute;
  inset: 0;
  object-fit: cover;
  object-position: center 64%;
}

.pizzeria-menu-section .pizza-menu { padding: 0; min-width: 0; }
.pizzeria-menu-section .photo-caption { inset-inline: 12px; width: auto; }
.pizzeria-menu-section #more-pizza { margin-top: 21px; min-height: 45px; font-size: 13px; }

.menu-panel-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px 22px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--menu-rule);
}

.menu-panel-heading .section-kicker {
  display: block;
  color: #6e715d;
  font: 11px/1.4 Marcellus, Georgia, serif;
  letter-spacing: .17em;
  text-align: start;
}

.menu-panel-heading h2 {
  margin-top: 5px;
  color: var(--menu-green);
  font-size: clamp(25px, 3.45vw, 45px);
  font-weight: 730;
  line-height: 1.4;
  letter-spacing: -.03em;
}

.menu-panel-heading p:not(.section-kicker) {
  margin-top: 6px;
  color: var(--menu-muted);
  font-size: 13px;
}

.menu-panel-meta {
  display: grid;
  justify-items: end;
  flex-shrink: 0;
}

.menu-panel-heading .menu-branch-link {
  margin-top: 0;
  color: var(--menu-green);
  padding: 5px 9px;
  border-color: var(--menu-rule);
  font-size: 12px;
  line-height: 1.45;
}

.menu-row {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  min-width: 0;
  padding: 13px 0;
  border-bottom: 1px solid var(--menu-rule);
}

.menu-row-copy { flex: 1; min-width: 0; }

.menu-row .menu-item-name {
  color: var(--menu-text);
  font-size: clamp(14px, 1.35vw, 18px);
  font-weight: 680;
  line-height: 1.55;
}

.menu-row p {
  margin-top: 4px;
  color: var(--menu-muted);
  font-size: 12px;
  line-height: 1.85;
  overflow-wrap: anywhere;
}

.menu-line-price,
.coffee-prices dd {
  color: var(--menu-green);
  font-size: 15px;
  font-weight: 730;
  line-height: 1.65;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.menu-line-price small,
.coffee-prices small { color: var(--menu-muted); font-size: 10px; font-weight: 500; }
.all-menu, .shop { border-top: 1px solid var(--menu-rule); }
.all-menu .menu-panel-heading, .shop .menu-panel-heading { border-bottom: 0; }

.menu-category-tabs,
.shop-toolbar .filter-tabs {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 7px;
  padding: 0 0 13px;
  margin: 0 0 7px;
  border-bottom: 1px solid var(--menu-rule);
}

.menu-category-tabs button,
.shop-toolbar .filter-tab {
  min-height: 43px;
  margin: 0;
  padding: 7px 13px;
  border: 1px solid var(--menu-rule);
  border-radius: 4px;
  color: var(--menu-green);
  font-size: 12px;
  font-weight: 570;
}

.menu-category-tabs button.active,
.shop-toolbar .filter-tab.active {
  background: var(--menu-green);
  border-color: var(--menu-green);
  color: var(--menu-cream);
}

.shop-toolbar { display: block; border: 0; padding: 0; margin-bottom: 17px; }
.shop-toolbar .filter-tab::after { display: none; }

.other-menu-grid,
.full-menu-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  column-gap: clamp(23px, 4.5vw, 60px);
  row-gap: 0;
}

.menu-group-grid { row-gap: 23px; }
.menu-subgroup > h3 {
  margin: 11px 0 2px;
  padding: 7px 10px;
  border-inline-start: 3px solid #97a485;
  background: var(--menu-sage);
  color: var(--menu-green);
  font-size: 14px;
  font-weight: 720;
}

.menu-subgroup .menu-row { padding: 9px 0; }
.menu-subgroup .menu-row .menu-item-name { font-size: 14px; font-weight: 570; }

.shop .product-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.coffee-card {
  display: grid;
  align-content: start;
  gap: 12px;
  min-width: 0;
  padding: 18px;
  background: var(--menu-white);
  border: 1px solid var(--menu-rule);
  border-top: 3px solid #758c73;
  border-radius: 4px;
  text-align: start;
}

.coffee-card-top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 3px 10px;
  color: var(--menu-muted);
}

.coffee-card-label { font-size: 11px; }
.coffee-card-origin { font: 10px/1.4 Marcellus, Georgia, serif; letter-spacing: .12em; }

.coffee-card h3 {
  min-height: 3.1em;
  color: var(--menu-green);
  font-size: clamp(16px, 1.65vw, 22px);
  font-weight: 720;
  line-height: 1.55;
}

.coffee-prices { margin: 0; }
.coffee-prices > div {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 7px;
  min-width: 0;
  padding: 5px 0;
  border-top: 1px solid var(--menu-rule);
}

.coffee-prices dt { color: var(--menu-muted); font-size: 11px; white-space: nowrap; }
.coffee-prices dd { margin: 0; }

.coffee-card-button {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  min-height: 43px;
  padding: 7px 12px;
  color: var(--menu-green);
  border-radius: 4px;
  background: var(--menu-sage);
  font-size: 12px;
  font-weight: 680;
}

.coffee-card-button:hover { background: var(--menu-green); color: var(--menu-cream); }

.full-menu-modal .full-menu-header .pizza-tabs button { min-height: 43px; }
.full-menu-modal .full-menu-grid { margin-top: 7px; padding-bottom: 26px; }
.full-menu-modal .menu-row { align-items: start; }
.full-menu-modal .menu-row > .coffee-prices { flex: 0 0 min(48%, 175px); }
.full-menu-modal .menu-row > .coffee-prices > div:first-child { border-top: 0; }
.full-menu-modal .coffee-prices dd { font-size: 13px; }
.full-menu-modal .menu-price-status { color: var(--menu-muted); font-size: 12px; }
.full-menu-modal .full-menu-header { z-index: 2; }

#product-dialog {
  width: min(560px, calc(100% - 28px));
  padding: clamp(20px, 4vw, 34px);
  background: var(--menu-white);
  color: var(--menu-text);
}

#product-dialog h2 { font-size: clamp(20px, 4vw, 31px); }
#product-dialog .product-description { margin: 0 0 16px; color: var(--menu-muted); font-size: 13px; }
#product-dialog .option-title { display: block; margin: 13px 0 7px; font-size: 13px; }
#product-dialog .weight-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
#product-dialog .weight-options button {
  display: grid;
  justify-items: center;
  padding: 9px 4px;
  gap: 4px;
  white-space: nowrap;
  font-size: 12px;
}

#product-dialog .weight-options button.selected { background: var(--menu-sage); border-color: #98a888; }
#product-dialog .weight-options button small { font-size: 9px; }
.search-weight { display: block; }

@media (max-width: 760px) {
  html { scroll-padding-top: 75px; }
  .header .header-inner, .header.is-scrolled .header-inner { height: 68px; }
  .header .brand-logo, .header.is-scrolled .brand-logo { width: 49px; height: 49px; }
  .entry-links > a { min-height: 60px; }
  .branch-menu-switch { grid-template-columns: minmax(0, 1fr) auto; gap: 12px; }
  .branch-menu-copy { grid-column: 1 / -1; }
  .branch-menu-options { justify-self: start; }
  .branch-menu-options button { min-height: 37px; font-size: 12px; }
  .branch-open-menu { gap: 7px; min-height: 45px; padding-inline: 8px; font-size: 12px; }
  .pizzeria-menu-section .pizza-layout { grid-template-columns: 1fr; }
  .pizzeria-menu-section .pizza-photo { height: auto; min-height: 0; aspect-ratio: 2.07; }
  .pizzeria-menu-section .pizza-photo img { object-position: center 60%; }
  .menu-panel-heading { padding-bottom: 12px; }
  .menu-panel-heading h2 { font-size: clamp(22px, 6vw, 30px); }
  .menu-panel-heading p:not(.section-kicker) { font-size: 12px; }
  .menu-row { padding: 11px 0; gap: 8px; }
  .menu-row p { font-size: 12px; }
  .menu-line-price, .coffee-prices dd { font-size: 13px; }
  .other-menu-grid, .full-menu-grid { grid-template-columns: 1fr; }
  .shop .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .coffee-card { padding: 12px 10px; }
  .coffee-card h3 { font-size: 15px; }
}

@media (max-width: 390px) {
  .branch-menu-switch { grid-template-columns: 1fr; }
  .branch-menu-options { width: 100%; display: grid; grid-template-columns: 1fr 1fr; }
  .branch-open-menu { justify-self: stretch; }
  .shop .product-grid { grid-template-columns: 1fr; }
  .coffee-card { padding: 14px; }
  .coffee-card h3 { min-height: 0; }
}

#product-dialog .weight-options button > span { display: grid; justify-items: center; }
.header-actions .cart-button { display: inline-flex; align-items: center; }

@media (max-width: 420px) {
  .header-actions [data-action="search"] { display: none; }
  .full-menu-modal .menu-row:has(> .coffee-prices) { display: block; }
  .full-menu-modal .menu-row > .coffee-prices { margin-top: 5px; }
}

.coffee-card-heading {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.coffee-card-text { flex: 1; min-width: 0; }
.coffee-card-heading .menu-item-photo { width: clamp(48px, 5vw, 68px); }

.menu-item-photo {
  position: relative;
  background: var(--menu-sage);
}

.menu-photo-sample {
  position: absolute;
  inset-inline: 0;
  inset-block-end: 0;
  padding: 2px;
  background: #233d31ed;
  color: #fffdf6;
  font-size: 9px;
  line-height: 1.3;
  text-align: center;
}
