/* ═══════════════════════════════
       ORDER PAGE
    ═══════════════════════════════ */
    body { padding-top: calc(var(--banner-h) + 72px); }

    [hidden] { display: none !important; }

    .form-honeypot {
      position: absolute;
      left: -9999px;
      width: 1px;
      height: 1px;
      opacity: 0;
      pointer-events: none;
    }

    /* ── Page header ── */
    .order-hero {
      padding: 52px 0 36px;
      text-align: center;
    }
    .order-hero h1 {
      font-size: clamp(2.2rem, 4vw, 3rem);
      font-weight: 700;
      color: var(--green);
      letter-spacing: -0.03em;
      margin-bottom: 10px;
    }
    .order-hero__meta {
      font-size: 0.88rem;
      color: var(--text-muted);
      letter-spacing: 0.05em;
      text-transform: uppercase;
    }
    .order-cutoff {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 3px;
      width: min(100%, 620px);
      margin: 20px auto 0;
      padding: 14px 22px 15px;
      border: 2px solid rgba(127,168,130,0.55);
      border-radius: var(--radius-sm);
      background: var(--green);
      color: var(--cream);
      box-shadow: 0 8px 24px rgba(30,46,30,0.16);
    }
    .order-cutoff__label {
      color: var(--sage-light);
      font-size: 0.7rem;
      font-weight: 800;
      letter-spacing: 0.1em;
      text-transform: uppercase;
    }
    .order-cutoff strong {
      font-size: clamp(1rem, 2vw, 1.2rem);
      line-height: 1.25;
    }
    .order-cutoff__note {
      color: rgba(236,231,223,0.74);
      font-size: 0.76rem;
      line-height: 1.35;
    }
    .order-trust-strip {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      width: min(100%, 900px);
      margin: 16px auto 0;
      overflow: hidden;
      border: 1px solid rgba(30,46,30,0.1);
      border-radius: var(--radius-sm);
      background: rgba(255,255,255,0.58);
      box-shadow: 0 8px 24px rgba(30,46,30,0.06);
    }
    .order-trust-strip span {
      display: flex;
      min-height: 62px;
      padding: 11px 14px;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 2px;
      color: var(--text-muted);
      font-size: 0.72rem;
      line-height: 1.35;
    }
    .order-trust-strip span + span { border-left: 1px solid rgba(30,46,30,0.09); }
    .order-trust-strip span:nth-child(3n + 1) { border-left: 0; }
    .order-trust-strip span:nth-child(n + 4) { border-top: 1px solid rgba(30,46,30,0.09); }
    .order-trust-strip strong { color: var(--green); font-size: 0.78rem; }

    /* ── Layout ── */
    .order-layout {
      display: grid;
      grid-template-columns: 1fr 340px;
      gap: 32px;
      align-items: start;
      padding-bottom: 100px;
    }
    .order-main { min-width: 0; }
    .order-layout > aside { align-self: stretch; }

    /* ── Client info card ── */
    .order-info-card {
      background: var(--white);
      border-radius: var(--radius-md);
      padding: 26px 28px;
      box-shadow: var(--shadow-sm);
      border: 1px solid rgba(30,46,30,0.07);
      margin-bottom: 44px;
    }
    .order-info-card h2,
    .order-info-card h3 {
      font-size: 1rem;
      font-weight: 700;
      color: var(--green);
      margin-bottom: 16px;
      text-transform: uppercase;
      letter-spacing: 0.06em;
      font-size: 0.78rem;
    }
    .checkout-section {
      margin-top: 72px;
      scroll-margin-top: 150px;
    }
    .checkout-section__heading {
      max-width: 660px;
      margin-bottom: 20px;
    }
    .checkout-section__heading h2 {
      margin: 7px 0 8px;
      color: var(--green);
      font-size: clamp(1.7rem, 3vw, 2.25rem);
      letter-spacing: -0.03em;
    }
    .checkout-section__heading p {
      color: var(--text-muted);
      font-size: 0.88rem;
      line-height: 1.6;
    }
    .checkout-section .order-info-card { margin-bottom: 0; }
    .checkout-section.is-active .order-info-card {
      border-color: rgba(127,168,130,0.7);
      box-shadow: 0 0 0 3px rgba(127,168,130,0.12), var(--shadow-sm);
    }
    .name-row {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px;
      margin-bottom: 12px;
    }
    .contact-row {
      display: grid;
      grid-template-columns: minmax(0, 1fr) 92px 140px;
      gap: 12px;
      margin-bottom: 12px;
    }
    .order-info-card > .order-input { margin-bottom: 12px; }
    .fulfillment-switch {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px;
      margin: 4px 0 16px;
      padding: 5px;
      border: 1px solid rgba(30,46,30,0.1);
      border-radius: 16px;
      background: var(--cream);
    }
    .fulfillment-option {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: 3px;
      min-height: 64px;
      padding: 12px 14px;
      border: 1px solid transparent;
      border-radius: 12px;
      background: transparent;
      color: var(--text-muted);
      font: inherit;
      text-align: left;
      cursor: pointer;
      transition: background 0.18s, border-color 0.18s, color 0.18s, box-shadow 0.18s;
    }
    .fulfillment-option strong { color: inherit; font-size: 0.9rem; }
    .fulfillment-option span { font-size: 0.73rem; line-height: 1.3; }
    .fulfillment-option:hover { color: var(--green); }
    .fulfillment-option:focus-visible { outline: 3px solid rgba(127,168,130,0.34); outline-offset: 2px; }
    .fulfillment-option.is-active {
      border-color: rgba(30,46,30,0.14);
      background: var(--white);
      color: var(--green);
      box-shadow: 0 5px 18px rgba(30,46,30,0.08);
    }
    #deliveryFields > .order-input { margin-bottom: 12px; }
    .pickup-info {
      display: grid;
      gap: 4px;
      margin-bottom: 16px;
      padding: 15px 16px;
      border: 1px solid rgba(127,168,130,0.45);
      border-radius: var(--radius-sm);
      background: rgba(127,168,130,0.1);
      color: var(--text-muted);
      font-size: 0.8rem;
      line-height: 1.5;
    }
    .pickup-info[hidden] { display: none; }
    .pickup-info strong { color: var(--green); font-size: 0.88rem; }
    .pickup-promo-verification {
      display: grid;
      gap: 10px;
      margin: -4px 0 16px;
      padding: 15px 16px;
      border: 1px solid rgba(127,168,130,0.45);
      border-radius: var(--radius-sm);
      background: rgba(127,168,130,0.07);
      color: var(--text-muted);
      font-size: 0.78rem;
      line-height: 1.45;
    }
    .pickup-promo-verification[hidden] { display: none; }
    .pickup-promo-verification > strong { color: var(--green); font-size: 0.88rem; }
    .pickup-promo-verification .address-unit-toggle { margin: -1px 2px 0; }
    .order-input {
      width: 100%;
      padding: 13px 16px;
      border: 1.5px solid rgba(30,46,30,0.13);
      border-radius: var(--radius-sm);
      font-family: var(--font-body);
      font-size: 0.95rem;
      color: var(--text);
      background: var(--cream);
      outline: none;
      transition: border-color 0.18s;
    }
    .order-input:focus { border-color: var(--sage); }
    .order-input.error { border-color: #E07070; background: #fff5f5; }
    .order-input::placeholder { color: rgba(30,46,30,0.36); }
    textarea.order-input { resize: none; height: 70px; line-height: 1.55; }
    .input-help {
      margin: -4px 2px 14px;
      color: var(--text-muted);
      font-size: 0.75rem;
      line-height: 1.45;
    }
    .input-help--warning {
      margin-top: -5px;
      color: #7a4b13;
      font-weight: 650;
    }
    .phone-review {
      margin: -5px 2px 14px;
      padding: 11px 12px;
      border: 1px solid rgba(163, 99, 22, 0.28);
      border-radius: 10px;
      background: #fff8ec;
      color: #6d4210;
      font-size: 0.76rem;
      line-height: 1.45;
    }
    .phone-review strong,
    .phone-review span { display: block; }
    .phone-review label {
      display: flex;
      align-items: flex-start;
      gap: 8px;
      margin-top: 8px;
      font-weight: 700;
      cursor: pointer;
    }
    .phone-review input { flex: 0 0 auto; margin-top: 2px; }
    .address-unit-toggle {
      display: flex;
      align-items: center;
      gap: 9px;
      margin: -2px 2px 12px;
      color: var(--text-muted);
      font-size: 0.78rem;
      line-height: 1.4;
      cursor: pointer;
    }
    .address-unit-toggle input {
      width: 18px;
      height: 18px;
      margin: 0;
      accent-color: var(--green);
      flex: 0 0 auto;
    }
    .order-growth-fields {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
      gap: 14px;
      margin-top: 4px;
    }
    .order-growth-fields.has-no-promotions { grid-template-columns: 1fr; }
    .promo-field,
    .menu-opt-in {
      display: flex;
      min-width: 0;
      border: 1.5px solid rgba(30,46,30,0.11);
      border-radius: var(--radius-sm);
      background: #f8f6f1;
    }
    .promo-field {
      flex-direction: column;
      gap: 8px;
      padding: 13px 14px;
      color: var(--green);
      font-size: 0.78rem;
      font-weight: 700;
    }
    .promo-field small { color: var(--text-muted); font-weight: 500; }
    .promo-field__controls { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
    .promo-field__controls .order-input { padding: 10px 12px; text-transform: uppercase; }
    .promo-apply {
      min-width: 72px;
      border: 0;
      border-radius: var(--radius-sm);
      background: var(--green);
      color: var(--cream);
      font-family: var(--font-body);
      font-weight: 700;
      cursor: pointer;
    }
    .promo-apply:hover,
    .promo-apply:focus-visible { background: #304830; outline: 2px solid var(--sage); outline-offset: 2px; }
    .promo-feedback { min-height: 1.1em; color: var(--text-muted); font-size: 0.72rem; font-weight: 500; }
    .promo-feedback.is-valid { color: #23642c; }
    .promo-feedback.is-error { color: #9d3131; }
    .menu-opt-in {
      align-items: flex-start;
      gap: 10px;
      padding: 14px;
      color: var(--green);
      cursor: pointer;
    }
    .menu-opt-in input { width: 19px; height: 19px; margin: 1px 0 0; accent-color: var(--green); flex: 0 0 auto; }
    .menu-opt-in span { display: flex; min-width: 0; flex-direction: column; gap: 3px; line-height: 1.35; overflow-wrap: anywhere; }
    .menu-opt-in strong { font-size: 0.78rem; }
    .menu-opt-in small { color: var(--text-muted); font-size: 0.72rem; }

    /* ── Menu section ── */
    .menu-section { margin-bottom: 48px; scroll-margin-top: 150px; }
    .menu-jump {
      position: sticky;
      top: calc(var(--banner-h) + 72px);
      z-index: 40;
      display: flex;
      gap: 8px;
      width: fit-content;
      margin: 0 0 26px;
      padding: 7px;
      border: 1px solid rgba(30,46,30,.1);
      border-radius: 999px;
      background: rgba(248,246,241,.94);
      box-shadow: 0 8px 24px rgba(30,46,30,.08);
      backdrop-filter: blur(14px);
      scrollbar-width: none;
    }
    .menu-jump::-webkit-scrollbar { display: none; }
    .menu-jump a { padding: 9px 14px; border-radius: 999px; color: var(--text-muted); font-size: .78rem; font-weight: 700; }
    .menu-jump a:hover, .menu-jump a:focus-visible, .menu-jump a.is-active { color: var(--cream); background: var(--green); outline: none; }
    .menu-jump__featured { display: inline-flex; align-items: center; gap: 6px; }
    .menu-jump__featured span {
      padding: 2px 5px;
      border-radius: 999px;
      color: var(--green);
      background: #dcebd6;
      font-size: .56rem;
      line-height: 1;
      text-transform: uppercase;
    }
    .menu-filter-bar {
      display: flex;
      align-items: center;
      gap: 10px;
      margin: -12px 0 30px;
      color: var(--green);
    }
    .menu-filter-bar__label {
      flex: 0 0 auto;
      font-size: .72rem;
      font-weight: 800;
      letter-spacing: .04em;
      text-transform: uppercase;
    }
    .menu-filter-bar__options {
      display: flex;
      flex-wrap: wrap;
      gap: 7px;
    }
    .menu-filter-chip {
      min-height: 36px;
      padding: 7px 12px;
      border: 1px solid rgba(30,46,30,.15);
      border-radius: 999px;
      color: var(--green);
      background: rgba(255,255,255,.7);
      font: inherit;
      font-size: .72rem;
      font-weight: 750;
      cursor: pointer;
    }
    .menu-filter-chip:hover,
    .menu-filter-chip:focus-visible,
    .menu-filter-chip.is-active {
      border-color: var(--green);
      color: var(--cream);
      background: var(--green);
      outline: none;
    }
    .menu-filter-empty {
      width: 100%;
      margin: 8px 0 0;
      color: var(--text-muted);
      font-size: .82rem;
    }
    .menu-filter-note {
      flex-basis: 100%;
      margin: 2px 0 0;
      color: var(--text-muted);
      font-size: 0.72rem;
    }
    .menu-section-head {
      display: flex;
      align-items: center;
      gap: 14px;
      margin-bottom: 20px;
    }
    .menu-section-head h2 {
      font-size: clamp(1.55rem, 2.4vw, 2rem);
      font-weight: 700;
      color: var(--green);
      letter-spacing: -0.025em;
    }
    .menu-section-kicker {
      display: block;
      margin-bottom: 3px;
      color: #2f6b3b;
      font-size: .68rem;
      font-weight: 800;
      text-transform: uppercase;
    }
    .menu-section--featured {
      margin-inline: -16px;
      padding: 28px 16px 32px;
      border-block: 1px solid rgba(47,107,59,.16);
      background: rgba(220,235,214,.28);
    }
    .menu-section--featured .menu-section-head { margin-bottom: 16px; }
    .menu-section--featured .section-label { color: #2f6b3b; }

    /* ── Dish grid ── */
    .dish-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
      gap: 18px;
    }

    /* ── Dish card ── */
    .dish-card {
      background: var(--white);
      border-radius: var(--radius-md);
      overflow: hidden;
      box-shadow: var(--shadow-sm);
      border: 1.5px solid transparent;
      transition: box-shadow 0.2s, transform 0.2s, border-color 0.2s;
      display: flex;
      flex-direction: column;
      cursor: default;
    }
    .dish-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
    .dish-card.has-qty {
      border-color: var(--sage);
      box-shadow: 0 0 0 2px rgba(127,168,130,0.3), var(--shadow-sm);
    }
    .dish-card.is-unavailable {
      opacity: 0.72;
    }
    .dish-card.is-unavailable:hover {
      box-shadow: var(--shadow-sm);
      transform: none;
    }
    .dish-card.is-addon { border-color: rgba(47,107,59,.22); }

    /* Image */
    .dish-img {
      width: 100%;
      aspect-ratio: 4 / 3;
      background: linear-gradient(135deg, var(--green) 0%, var(--green-mid) 100%);
      position: relative;
      overflow: hidden;
      flex-shrink: 0;
    }
    .dish-img img {
      width: 100%; height: 100%;
      object-fit: cover;
      object-position: center center;
      position: absolute; inset: 0;
      display: block;
      transition: opacity 0.3s;
    }
    .dish-img img.dish-photo--soft {
      filter: brightness(0.95) saturate(0.92);
    }
    .dish-img img.dish-photo--bright-low {
      object-position: center 36%;
      filter: brightness(1.18) saturate(1.06) contrast(1.02);
    }
    .dish-img__bg {
      position: absolute; inset: 0;
      display: flex; align-items: center; justify-content: center;
      pointer-events: none;
    }
    .dish-img__bg span {
      font-family: var(--font-brand);
      font-size: 3rem;
      color: rgba(236,231,223,0.14);
      letter-spacing: 0.12em;
    }
    .dish-card.no-photo .dish-img {
      background:
        radial-gradient(circle at 82% 18%, rgba(220,235,214,.24), transparent 24%),
        linear-gradient(120deg, rgba(255,255,255,.07), transparent 52%),
        linear-gradient(145deg, #17301f 0%, #315f3d 64%, #6d9570 100%);
    }
    .dish-card.no-photo .dish-img::after {
      content: '';
      position: absolute;
      inset: 12px;
      border: 1px solid rgba(236,231,223,0.18);
      border-radius: calc(var(--radius-md) - 8px);
      pointer-events: none;
    }
    .dish-photo-placeholder {
      position: absolute;
      inset: 0;
      display: flex;
      padding: 34px 28px 25px;
      flex-direction: column;
      align-items: flex-start;
      justify-content: flex-end;
      color: var(--cream);
    }
    .dish-photo-placeholder__brand {
      position: absolute;
      top: 24px;
      left: 28px;
      font-family: var(--font-brand);
      font-size: 1.25rem;
      letter-spacing: 0.16em;
      opacity: 0.55;
    }
    .dish-photo-placeholder__status {
      margin-bottom: 8px;
      padding: 5px 8px;
      border: 1px solid rgba(236,231,223,0.24);
      border-radius: 999px;
      background: rgba(30,46,30,0.2);
      font-size: 0.59rem;
      font-weight: 800;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    }
    .dish-photo-placeholder strong {
      max-width: 95%;
      font-size: clamp(1.1rem, 2vw, 1.35rem);
      line-height: 1.08;
      text-wrap: balance;
    }
    .dish-photo-placeholder__type {
      margin-top: 7px;
      color: rgba(236,231,223,0.66);
      font-size: 0.7rem;
      font-weight: 650;
    }
    .dish-photo-placeholder[data-placeholder-section="desserts"] {
      background: linear-gradient(150deg, rgba(92,53,45,0.18), transparent 56%);
    }
    .dish-photo-placeholder[data-placeholder-section="addons"] {
      background: linear-gradient(150deg, rgba(220,235,214,0.16), transparent 56%);
    }
    .later-week-badge {
      position: absolute;
      top: 10px;
      left: 10px;
      z-index: 2;
      max-width: calc(100% - 20px);
      padding: 6px 9px;
      border-radius: 999px;
      border: 1px solid rgba(255,255,255,0.24);
      background: #2f6b3b;
      color: #fff;
      box-shadow: 0 4px 12px rgba(30,46,30,0.24);
      font-size: 0.68rem;
      font-weight: 800;
      line-height: 1.1;
    }
    /* Body */
    .dish-body {
      padding: 15px 16px 16px;
      display: flex;
      flex-direction: column;
      gap: 10px;
      flex: 1;
    }
    .dish-name {
      font-size: 0.97rem;
      font-weight: 700;
      color: var(--green);
      line-height: 1.25;
    }
    .dish-desc {
      font-size: 0.74rem;
      color: rgba(30,46,30,0.52);
      line-height: 1.4;
      margin: 3px 0 5px;
    }
    .dish-macros {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
    }
    .macro-chip {
      font-size: 0.75rem;
      font-weight: 800;
      color: var(--green);
      background: rgba(255,255,255,0.72);
      border: 1px solid rgba(30,46,30,0.2);
      padding: 6px 10px;
      border-radius: 100px;
      white-space: nowrap;
      box-shadow: 0 1px 3px rgba(30,46,30,0.06);
      box-shadow:
        inset 0 2px 4px rgba(0, 0, 0, 0.14),
        inset 0 1px 1px rgba(0, 0, 0, 0.08),
        0 1px 0 rgba(255, 255, 255, 0.7);
    }
    /* ── Global tier bar ── */
    .tier-bar {
      display: flex;
      align-items: center;
      gap: 16px;
      margin-bottom: 32px;
      padding: 14px 20px;
      background: var(--white);
      border-radius: var(--radius-sm);
      border: 1px solid rgba(30,46,30,0.08);
      box-shadow: var(--shadow-sm);
      flex-wrap: wrap;
    }
    .tier-bar__label {
      font-size: 0.82rem;
      font-weight: 600;
      color: var(--text);
      white-space: nowrap;
    }
    .later-week-guide {
      width: 100%;
      display: grid;
      grid-template-columns: auto 1fr;
      gap: 11px;
      align-items: start;
      padding: 12px 14px;
      border-left: 4px solid var(--sage);
      background: rgba(127,168,130,0.1);
      color: var(--green);
      font-size: 0.78rem;
      line-height: 1.5;
    }
    .later-week-guide strong { display: block; margin-bottom: 1px; }
    .later-week-guide__mark { font-size: 1.15rem; line-height: 1.2; }
    .tier-bar__ctrl {
      display: flex;
      gap: 6px;
    }
    .tier-bar__btn {
      padding: 7px 22px;
      border-radius: 100px;
      font-family: var(--font-body);
      font-size: 0.82rem;
      font-weight: 700;
      cursor: pointer;
      letter-spacing: 0.02em;
      transition: all 0.15s;
      color: #1e3d22;
      background: linear-gradient(180deg, rgba(55,100,60,0.18) 0%, rgba(25,65,30,0.10) 100%);
      border: 1.5px solid rgba(40,90,45,0.45);
      border-top-color: rgba(15,55,20,0.6);
      border-bottom-color: rgba(140,190,145,0.5);
      box-shadow:
        inset 0 2px 4px rgba(0,0,0,0.13),
        inset 0 1px 1px rgba(0,0,0,0.07),
        0 1px 0 rgba(255,255,255,0.65);
    }
    .tier-bar__btn.active {
      color: var(--cream);
      background: linear-gradient(180deg, #3a6b40 0%, var(--green) 100%);
      border: 1.5px solid rgba(15,35,15,0.5);
      border-top-color: rgba(110,160,115,0.35);
      border-bottom-color: rgba(10,30,10,0.65);
      box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.14),
        0 2px 6px rgba(30,46,30,0.28),
        0 1px 2px rgba(0,0,0,0.18);
    }
    .tier-bar__note {
      font-size: 0.74rem;
      color: rgba(30,46,30,0.38);
      font-style: italic;
    }
    .price-guide {
      flex: 1 0 100%;
      display: grid;
      grid-template-columns: auto repeat(3, minmax(0, 1fr));
      align-items: center;
      gap: 12px 18px;
      padding-top: 14px;
      border-top: 1px solid rgba(30,46,30,0.09);
    }
    .price-guide__title {
      font-size: 0.72rem;
      font-weight: 700;
      color: var(--green);
      text-transform: uppercase;
      letter-spacing: 0.06em;
    }
    .price-guide__item {
      display: flex;
      flex-direction: column;
      gap: 3px;
      min-width: 0;
    }
    .price-guide__item span {
      font-size: 0.7rem;
      color: rgba(30,46,30,0.5);
    }
    .price-guide__item strong {
      font-size: 0.76rem;
      color: var(--green);
      line-height: 1.35;
    }

    /* ── Per-card tier toggle ── */
    .tier-order-list {
      display: grid;
      gap: 8px;
      margin-top: auto;
      padding-top: 6px;
    }
    .sold-out-note {
      min-height: 48px;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 10px 12px;
      border-radius: var(--radius-sm);
      background: rgba(30,46,30,0.08);
      color: var(--green);
      font-size: 0.8rem;
      font-weight: 800;
      text-transform: uppercase;
    }
    .tier-order-row {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
      min-height: 48px;
      padding: 7px 8px 7px 11px;
      border-radius: var(--radius-sm);
      background: rgba(30,46,30,0.045);
      border: 1px solid rgba(30,46,30,0.08);
      transition: border-color 0.18s, background 0.18s, box-shadow 0.18s;
    }
    .tier-order-info {
      display: flex;
      flex-direction: column;
      gap: 3px;
      min-width: 0;
    }
    .tier-order-info strong {
      font-size: 0.82rem;
      font-weight: 700;
      color: var(--green);
    }
    .tier-order-info span {
      font-size: 0.75rem;
      font-weight: 600;
      line-height: 1.4;
      color: rgba(30,46,30,0.72);
    }
    .tier-order-info span strong {
      font-size: inherit;
      font-weight: 800;
      color: var(--green);
    }

    /* Qty controls */
    .qty-ctrl {
      display: flex;
      align-items: center;
      background: rgba(30,46,30,0.07);
      border-radius: var(--radius-pill);
      overflow: hidden;
    }
    .qty-btn {
      width: 32px; height: 32px;
      border: none; background: transparent;
      color: var(--green);
      font-size: 1.15rem;
      font-weight: 500;
      cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      transition: background 0.14s;
      line-height: 1;
      user-select: none;
    }
    .qty-btn:hover { background: rgba(30,46,30,0.11); }
    .qty-btn:active { background: rgba(30,46,30,0.2); }
    .qty-val {
      min-width: 24px;
      text-align: center;
      font-size: 0.93rem;
      font-weight: 700;
      color: var(--green);
    }

    /* ── Order summary sidebar ── */
    .order-summary {
      position: sticky;
      top: calc(var(--banner-h) + 88px);
      max-height: calc(100vh - var(--banner-h) - 112px);
      overflow-y: auto;
      overflow-x: hidden;
      background: var(--green);
      color: var(--cream);
      border-radius: var(--radius-md);
      padding: 26px;
      box-shadow: var(--shadow-lg);
    }
    .order-summary h3 {
      font-size: 0.78rem;
      font-weight: 700;
      color: rgba(236,231,223,0.55);
      text-transform: uppercase;
      letter-spacing: 0.1em;
      margin-bottom: 18px;
    }
    .summary-items {
      display: flex;
      flex-direction: column;
      gap: 9px;
      min-height: 52px;
      margin-bottom: 18px;
    }
    .summary-item {
      display: flex;
      justify-content: space-between;
      align-items: flex-start;
      gap: 12px;
      font-size: 0.88rem;
    }
    .summary-item-name { color: rgba(236,231,223,0.75); flex: 1; line-height: 1.35; }
    .summary-item-price { color: var(--cream); font-weight: 600; white-space: nowrap; }
    .summary-empty { font-size: 0.83rem; color: rgba(236,231,223,0.38); font-style: italic; }
    .summary-divider {
      border: none;
      border-top: 1px solid rgba(236,231,223,0.13);
      margin: 0 0 16px;
    }
    .summary-total-row {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin: 16px 0 18px;
    }
    .summary-fee-row {
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 12px;
      color: rgba(236,231,223,0.7);
      font-size: 0.82rem;
      margin-bottom: 10px;
    }
    .summary-fee-row strong {
      color: var(--cream);
      font-weight: 650;
    }
    .summary-discount-row { color: var(--sage-light); }
    .summary-discount-row small { color: rgba(236,231,223,0.58); text-transform: uppercase; }
    .summary-total-label { font-size: 0.88rem; font-weight: 600; color: rgba(236,231,223,0.7); }
    .summary-total-val { font-size: 1.4rem; font-weight: 700; color: var(--cream); }
    .summary-policy {
      display: grid;
      gap: 8px;
      margin: -4px 0 16px;
    }
    .summary-policy__line {
      display: flex;
      justify-content: space-between;
      gap: 12px;
      padding: 9px 11px;
      border-radius: 12px;
      background: rgba(236,231,223,0.08);
      color: rgba(236,231,223,0.72);
      font-size: 0.76rem;
      line-height: 1.35;
    }
    .summary-policy__line > * { min-width: 0; }
    .summary-policy__line strong {
      color: var(--cream);
      text-align: right;
      overflow-wrap: anywhere;
    }
    .summary-policy__line.is-good {
      background: rgba(127,168,130,0.2);
      color: rgba(236,231,223,0.9);
    }
    .summary-policy__line.is-warning {
      background: rgba(236,231,223,0.12);
      color: rgba(236,231,223,0.82);
    }
    #placeOrderBtn {
      width: 100%;
      justify-content: center;
      background: var(--cream);
      color: var(--green);
      box-shadow: none;
      font-size: 0.95rem;
    }
    #placeOrderBtn:hover {
      background: #fff;
      transform: translateY(-2px);
      box-shadow: 0 6px 18px rgba(0,0,0,0.16);
    }
    #placeOrderBtn:disabled {
      opacity: 0.6;
      cursor: not-allowed;
      transform: none;
      box-shadow: none;
    }
    .summary-note {
      font-size: 0.73rem;
      color: rgba(236,231,223,0.38);
      text-align: center;
      margin-top: 12px;
      line-height: 1.45;
    }
    .summary-close, .mobile-cart-bar { display: none; }

    /* ── Success state ── */
    .order-success {
      display: none;
      text-align: center;
      padding: 72px 28px 100px;
      max-width: 520px;
      margin: 0 auto;
    }
    .order-success.visible { display: block; }
    .success-icon {
      width: 68px; height: 68px;
      background: var(--green);
      border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      margin: 0 auto 26px;
    }
    .success-icon svg { color: var(--cream); }
    .order-success h2 {
      font-size: 1.85rem;
      font-weight: 700;
      color: var(--green);
      letter-spacing: -0.025em;
      margin-bottom: 12px;
    }
    .order-success p { color: var(--text-muted); line-height: 1.65; margin-bottom: 6px; }
    .order-closed {
      display: none;
      max-width: 620px;
      margin: 28px auto 100px;
      padding: 48px 34px;
      border-radius: var(--radius-md);
      background: var(--white);
      border: 1px solid rgba(30,46,30,0.08);
      box-shadow: var(--shadow-md);
      text-align: center;
    }
    .order-closed.visible { display: block; }
    .order-closed h2 {
      margin-bottom: 12px;
      color: var(--green);
      font-size: 1.7rem;
    }
    .order-closed__eyebrow {
      display: inline-block;
      margin-bottom: 10px;
      color: #47764f;
      font-size: 0.72rem;
      font-weight: 800;
      letter-spacing: 0.12em;
      text-transform: uppercase;
    }
    .order-closed p {
      color: var(--text-muted);
      line-height: 1.65;
    }
    .order-closed__phone {
      display: block;
      margin-top: 8px;
      color: var(--green);
      font-size: 1.08rem;
      font-weight: 700;
    }
    .order-closed__schedule {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 10px;
      margin: 24px 0;
      text-align: left;
    }
    .order-closed__schedule div {
      min-width: 0;
      padding: 15px 13px;
      border: 1px solid rgba(30,46,30,0.1);
      border-radius: var(--radius-sm);
      background: rgba(247,243,234,0.72);
    }
    .order-closed__schedule strong,
    .order-closed__schedule span { display: block; }
    .order-closed__schedule strong { color: var(--green); font-size: 0.82rem; }
    .order-closed__schedule span { margin-top: 4px; color: var(--text-muted); font-size: 0.74rem; line-height: 1.35; }
    .order-closed__actions {
      display: flex;
      justify-content: center;
      gap: 10px;
      flex-wrap: wrap;
      margin-top: 22px;
    }
    .order-closed__action {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 46px;
      padding: 11px 22px;
      border: 1.5px solid var(--green);
      border-radius: var(--radius-pill);
      color: var(--green);
      font-weight: 700;
      transition: background 0.2s ease, color 0.2s ease;
    }
    .order-closed__action:hover {
      background: var(--green);
      color: var(--cream);
    }
    .order-closed__action--secondary {
      border-color: rgba(30,46,30,0.18);
      color: var(--text);
    }
    .order-closed__reminder {
      margin-top: 26px;
      padding: 20px;
      border-radius: var(--radius-sm);
      background: rgba(127,168,130,0.12);
    }
    .order-closed__reminder strong { color: var(--green); }
    .order-closed__reminder p { margin: 5px 0 12px; font-size: 0.82rem; }
    .order-closed__reminder a {
      display: inline-flex;
      padding: 9px 16px;
      border-radius: 999px;
      background: var(--green);
      color: var(--cream);
      font-size: 0.8rem;
      font-weight: 800;
    }
    @media (max-width: 560px) {
      .order-closed { padding: 36px 20px; }
      .order-closed__schedule { grid-template-columns: 1fr; }
      .order-closed__schedule div { text-align: center; }
    }
    .success-total {
      max-width: 360px;
      margin: 24px auto 18px;
      padding: 16px 20px;
      border-radius: var(--radius-sm);
      background: var(--green);
      color: var(--cream);
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 20px;
    }
    .success-total span {
      font-size: 0.82rem;
      font-weight: 600;
    }
    .success-total strong {
      font-size: 1.35rem;
      white-space: nowrap;
    }
    .success-reference {
      margin: 16px auto 0;
      color: var(--green);
      font-size: 0.78rem;
      font-weight: 700;
      letter-spacing: 0.04em;
    }
    .success-storage-note {
      margin: 16px 0 0;
      padding: 12px 14px;
      border-left: 4px solid var(--sage);
      background: rgba(127,168,130,0.1);
      text-align: left;
      font-size: 0.82rem;
    }
    .success-order {
      max-width: 520px;
      margin: 24px auto 0;
      padding: 20px;
      border: 1px solid rgba(30,46,30,0.1);
      border-radius: var(--radius-sm);
      background: rgba(255,255,255,0.58);
      text-align: left;
    }
    .success-order__item,
    .success-order__row {
      display: flex;
      justify-content: space-between;
      align-items: flex-start;
      gap: 18px;
      padding: 7px 0;
      color: var(--text-muted);
      font-size: 0.82rem;
      line-height: 1.4;
    }
    .success-order__item strong,
    .success-order__row strong {
      color: var(--green);
      white-space: nowrap;
    }
    .success-order__divider {
      border: 0;
      border-top: 1px solid rgba(30,46,30,0.1);
      margin: 10px 0;
    }

    .summary-tier-label {
      font-size: 0.72rem;
      opacity: 0.6;
      font-weight: 500;
    }

    .success-delivery {
      margin-top: 22px;
      font-size: 0.85rem;
      color: var(--text-muted);
    }
    .success-referral {
      margin-top: 26px;
      padding: 24px;
      border: 1px solid rgba(127,168,130,0.34);
      border-radius: var(--radius-md);
      background: rgba(220,235,214,0.28);
    }
    .success-referral h3 {
      margin: 6px 0 8px;
      color: var(--green);
      font-size: 1.35rem;
    }
    .success-referral p { font-size: 0.82rem; }
    .success-referral a {
      display: inline-flex;
      margin-top: 10px;
      padding: 10px 18px;
      border-radius: 999px;
      background: var(--green);
      color: var(--cream);
      font-size: 0.8rem;
      font-weight: 800;
    }

    .order-legal {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 10px;
      padding: 30px 16px 110px;
      color: var(--text-muted);
      font-size: 0.82rem;
    }

    .order-legal a {
      color: inherit;
      text-decoration: underline;
      text-underline-offset: 3px;
    }

    /* ── Responsive ── */
    @media (max-width: 900px) {
      .order-layout {
        grid-template-columns: minmax(0, 1fr);
        padding-bottom: 92px;
      }
      .order-layout > aside { pointer-events: none; }
      .order-summary {
        position: fixed;
        z-index: 310;
        left: 12px; right: 12px; bottom: 12px;
        top: auto;
        max-height: min(78vh, 680px);
        overflow-y: auto;
        transform: translateY(calc(100% + 28px));
        transition: transform .24s ease;
      }
      .order-layout > aside.mobile-open { pointer-events: auto; }
      .order-layout > aside.mobile-open .order-summary { transform: translateY(0); }
      .summary-close { display:flex; align-items:center; justify-content:center; width:36px; height:36px; margin:-8px -8px 8px auto; border:1px solid rgba(255,255,255,.18); border-radius:50%; color:var(--cream); background:transparent; font-size:1.25rem; }
      .mobile-cart-bar {
        position: fixed; z-index: 300; left: 10px; right: 10px; bottom: 10px;
        display: flex; align-items: center; justify-content: space-between; gap: 14px;
        min-height: 64px; padding: 10px 12px 10px 18px;
        border: 1px solid rgba(236,231,223,.2); border-radius: 18px;
        color: var(--cream); background: var(--green); box-shadow: 0 14px 34px rgba(30,46,30,.28);
      }
      .mobile-cart-bar span { display:block; color:rgba(236,231,223,.68); font-size:.72rem; }
      .mobile-cart-bar strong { font-size:1rem; }
      .mobile-cart-bar small { display:block; margin-top:2px; color:rgba(236,231,223,.82); font-size:.7rem; font-weight:700; }
      .mobile-cart-bar button { min-height:44px; padding:0 18px; border:0; border-radius:999px; color:var(--green); background:var(--cream); font-weight:800; }
      .dish-grid { grid-template-columns: 1fr 1fr; }
    }
    @media (max-width: 560px) {
      .order-cutoff {
        width: 100%;
        padding: 13px 16px 14px;
      }
      .order-trust-strip { grid-template-columns: 1fr 1fr; }
      .order-trust-strip span { min-height: 58px; padding: 10px; }
      .order-trust-strip span + span { border-left: 0; }
      .order-trust-strip span:nth-child(even) { border-left: 1px solid rgba(30,46,30,0.09); }
      .order-trust-strip span:nth-child(odd) { border-left: 0; }
      .order-trust-strip span:nth-child(n+3) { border-top: 1px solid rgba(30,46,30,0.09); }
      .dish-grid { grid-template-columns: 1fr; }
      .dish-img { aspect-ratio: 4 / 3; }
      .menu-jump {
        top: calc(var(--banner-h) + 62px);
        width: calc(100vw - 32px);
        max-width: 100%;
        justify-content: flex-start;
        overflow-x: auto;
        scroll-snap-type: x proximity;
      }
      .menu-jump a { flex:0 0 auto; padding-inline:12px; text-align:center; scroll-snap-align:start; }
      .menu-filter-bar { align-items:flex-start; flex-direction:column; margin-top:-14px; }
      .menu-filter-bar__options { width:100%; flex-wrap:wrap; overflow:visible; padding-bottom:3px; }
      .menu-filter-chip { flex:0 0 auto; }
      .menu-section--featured { margin-inline: -8px; padding-inline: 8px; }
      .name-row { grid-template-columns: 1fr; }
      .contact-row { grid-template-columns: 1fr; }
      .fulfillment-switch { grid-template-columns: 1fr 1fr; }
      .fulfillment-option { min-height: 60px; padding: 11px 12px; }
      .order-info-card { padding: 20px 16px; }
      .checkout-section { margin-top: 56px; }
      .checkout-section__heading { padding-inline: 4px; }
      .order-growth-fields { grid-template-columns: 1fr; }
      .price-guide {
        grid-template-columns: 1fr;
        gap: 10px;
        margin-top: 4px;
        padding: 18px 16px;
        border: 1px solid rgba(255,255,255,.78);
        border-radius: 16px;
      }
      .price-guide__item {
        flex-direction: row;
        justify-content: space-between;
        gap: 14px;
      }
      .price-guide__item strong { text-align: right; }
      .summary-policy__line {
        display: grid;
        grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
      }
    }

    /* ── Polished halo system ── */
    .order-hero {
      position: relative;
      isolation: isolate;
      overflow: hidden;
    }
    .order-hero::before,
    .order-hero::after {
      content: '';
      position: absolute;
      z-index: -1;
      border-radius: 50%;
      pointer-events: none;
      filter: blur(2px);
    }
    .order-hero::before {
      width: 420px;
      height: 420px;
      top: -210px;
      left: 6%;
      background: radial-gradient(circle, rgba(127,168,130,.2), rgba(127,168,130,0) 70%);
    }
    .order-hero::after {
      width: 520px;
      height: 520px;
      right: -180px;
      bottom: -300px;
      background: radial-gradient(circle, rgba(255,255,255,.7), rgba(255,255,255,0) 68%);
    }
    .order-cutoff {
      position: relative;
      overflow: hidden;
      border-color: rgba(168,196,171,.5);
      background:
        radial-gradient(circle at 82% 12%, rgba(168,196,171,.2), transparent 27%),
        linear-gradient(145deg, #172d1d 0%, #254832 62%, #3f684a 100%);
      box-shadow: inset 0 1px 0 rgba(255,255,255,.16), 0 18px 42px rgba(30,46,30,.2);
    }
    .order-cutoff::after {
      content: '';
      position: absolute;
      inset: 8px;
      border: 1px solid rgba(236,231,223,.12);
      border-radius: calc(var(--radius-sm) - 4px);
      pointer-events: none;
    }
    .order-trust-label {
      margin: 22px auto 8px;
      color: var(--sage);
      font-size: .64rem;
      font-weight: 800;
      letter-spacing: .14em;
      text-transform: uppercase;
    }
    .order-trust-strip {
      margin-top: 0;
      border-color: rgba(255,255,255,.72);
      background: linear-gradient(135deg, rgba(255,255,255,.72), rgba(255,255,255,.38));
      box-shadow: inset 0 1px 0 rgba(255,255,255,.92), 0 16px 38px rgba(30,46,30,.09);
      backdrop-filter: blur(16px);
      -webkit-backdrop-filter: blur(16px);
    }
    .order-trust-strip span { position: relative; }
    .order-trust-strip strong { letter-spacing: -.01em; }
    .price-guide,
    .order-info-card,
    .menu-jump {
      border-color: rgba(255,255,255,.68);
      background: linear-gradient(145deg, rgba(255,255,255,.78), rgba(253,250,246,.58));
      box-shadow: inset 0 1px 0 rgba(255,255,255,.94), 0 18px 46px rgba(30,46,30,.09);
      backdrop-filter: blur(18px);
      -webkit-backdrop-filter: blur(18px);
    }
    .order-summary {
      border-color: rgba(168,196,171,.24);
      background:
        radial-gradient(circle at 86% 3%, rgba(168,196,171,.18), transparent 27%),
        linear-gradient(145deg, #14291a, #23452f 64%, #31573c);
      box-shadow: inset 0 1px 0 rgba(255,255,255,.11), 0 22px 54px rgba(30,46,30,.24);
    }
    .dish-card {
      position: relative;
      border: 1px solid rgba(255,255,255,.82);
      border-radius: 24px;
      background: rgba(253,250,246,.76);
      box-shadow: inset 0 1px 0 rgba(255,255,255,.92), 0 14px 36px rgba(30,46,30,.1);
      isolation: isolate;
    }
    .dish-card:hover {
      border-color: rgba(168,196,171,.78);
      box-shadow: 0 24px 54px rgba(30,46,30,.17), 0 0 0 1px rgba(127,168,130,.16);
      transform: translateY(-4px);
    }
    .dish-card.has-qty {
      border-color: rgba(127,168,130,.9);
      box-shadow: 0 0 0 3px rgba(127,168,130,.17), 0 20px 46px rgba(30,46,30,.14);
    }
    .dish-img { background: #17301f; }
    .dish-card:not(.no-photo) .dish-img::after {
      content: '';
      position: absolute;
      z-index: 1;
      inset: 0;
      background:
        linear-gradient(180deg, rgba(8,22,13,.22) 0%, transparent 34%, rgba(8,22,13,.08) 48%, rgba(8,22,13,.88) 100%),
        radial-gradient(circle at 86% 12%, rgba(207,236,207,.17), transparent 30%);
      pointer-events: none;
    }
    .dish-img img {
      z-index: 0;
      transition: transform .45s ease, filter .3s ease, opacity .3s;
    }
    .dish-card:hover .dish-img img { transform: scale(1.025); }
    .dish-photo-overlay {
      position: absolute;
      z-index: 3;
      inset: 0;
      display: flex;
      padding: 24px 26px 25px;
      flex-direction: column;
      justify-content: space-between;
      color: var(--cream);
      pointer-events: none;
    }
    .dish-photo-overlay__brand {
      align-self: flex-start;
      font-family: var(--font-brand);
      font-size: 1.2rem;
      letter-spacing: .16em;
      text-shadow: 0 2px 12px rgba(0,0,0,.38);
      opacity: .82;
    }
    .dish-photo-overlay__copy {
      display: flex;
      max-width: 95%;
      flex-direction: column;
      align-items: flex-start;
      gap: 8px;
    }
    .dish-photo-overlay__type {
      padding: 5px 9px;
      border: 1px solid rgba(255,255,255,.28);
      border-radius: 999px;
      background: rgba(14,36,21,.36);
      box-shadow: inset 0 1px 0 rgba(255,255,255,.1);
      font-size: .59rem;
      font-weight: 800;
      letter-spacing: .09em;
      text-transform: uppercase;
      backdrop-filter: blur(9px);
      -webkit-backdrop-filter: blur(9px);
    }
    .dish-photo-overlay strong {
      font-size: clamp(1.08rem, 2vw, 1.34rem);
      line-height: 1.08;
      text-wrap: balance;
      text-shadow: 0 2px 18px rgba(0,0,0,.6);
    }
    .later-week-badge {
      z-index: 5;
      top: 18px;
      right: 18px;
      left: auto;
      border-color: rgba(255,255,255,.3);
      background: rgba(31,91,48,.88);
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
    }
    .dish-card.no-photo .dish-img::after {
      inset: 12px;
      z-index: 3;
      border-color: rgba(236,231,223,.22);
      box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
    }
    .dish-photo-placeholder { z-index: 2; }
    .dish-photo-placeholder__brand { opacity: .72; }
    .dish-name--sr {
      position: absolute;
      width: 1px;
      height: 1px;
      padding: 0;
      margin: -1px;
      overflow: hidden;
      clip: rect(0,0,0,0);
      white-space: nowrap;
      border: 0;
    }
    .dish-body {
      background: linear-gradient(155deg, rgba(255,255,255,.78), rgba(236,231,223,.46));
    }
    .dish-desc {
      margin: 0 0 4px;
      color: rgba(30,46,30,.62);
    }
    .tier-order-row {
      border-color: rgba(30,46,30,.1);
      background: rgba(255,255,255,.44);
      box-shadow: inset 0 1px 0 rgba(255,255,255,.68);
    }
    .qty-btn,
    .submit-order-btn,
    .success-referral a {
      box-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 9px 20px rgba(30,46,30,.18);
    }
    .order-input {
      border-color: rgba(255,255,255,.8);
      background: rgba(236,231,223,.62);
      box-shadow: inset 0 1px 4px rgba(30,46,30,.05), 0 1px 0 rgba(255,255,255,.8);
    }
    .order-input:focus {
      border-color: var(--sage);
      box-shadow: 0 0 0 4px rgba(127,168,130,.13), inset 0 1px 4px rgba(30,46,30,.04);
    }
    .checkout-section.is-active .order-info-card {
      box-shadow: 0 0 0 4px rgba(127,168,130,.13), 0 22px 48px rgba(30,46,30,.11);
    }

    @media (max-width: 560px) {
      .order-trust-label { margin-top: 18px; }
      .dish-photo-overlay,
      .dish-photo-placeholder { padding: 24px 22px 22px; }
      .dish-photo-overlay__brand,
      .dish-photo-placeholder__brand { top: 22px; left: 22px; }
      .later-week-badge { top: 17px; right: 17px; }
    }
