@font-face {
      font-family: "Manrope";
      src: url("./assets/mobile-menu-v2/fonts/Manrope-Cyrillic-Regular.woff2?v=selector-font-1") format("woff2");
      font-style: normal;
      font-weight: 400;
      font-display: swap;
      unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
    }

    @font-face {
      font-family: "Manrope";
      src: url("./assets/mobile-menu-v2/fonts/Manrope-Cyrillic-Medium.woff2?v=selector-font-1") format("woff2");
      font-style: normal;
      font-weight: 500;
      font-display: swap;
      unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
    }

    /* Латиница того же Manrope: английские названия не переходят на fallback-шрифт. */
    @font-face {
      font-family: "Manrope";
      src: url("./assets/mobile-menu-v2/fonts/Manrope-Latin-Regular.woff2?v=selector-font-1") format("woff2");
      font-style: normal;
      font-weight: 400;
      font-display: swap;
      unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
    }

    @font-face {
      font-family: "Manrope";
      src: url("./assets/mobile-menu-v2/fonts/Manrope-Latin-Medium.woff2?v=selector-font-1") format("woff2");
      font-style: normal;
      font-weight: 500;
      font-display: swap;
      unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
    }

    :root {
      /* Утверждённая палитра BOOSST. Не заменять приблизительными оттенками. */
      --brand: #B84F2F;
      --page: #FFFFFF;
      --ink: #26211F;
      --muted: #6B625C;
      --neutral: #D6C9BC;
      --photo: #FFFFFF;

      /* Мастер-сетка мобильного макета, контрольная ширина — 390 px. */
      --app-max: 430px;
      --gutter: 16px;
      --column-gap: 12px;
      --header-height: clamp(67px, 17.21vw, 74px);
      --category-height: clamp(51px, 13.02vw, 56px);
      --drawer-row-height: 52px;
      --open-search-height: 0px;
      --photo-ratio: 1.135;
      --dish-photo-1: url("./assets/mobile-menu-v2/dish-photo-1.webp");
      --dish-photo-2: url("./assets/mobile-menu-v2/dish-photo-2.webp");
      --dish-photo-3: url("./assets/mobile-menu-v2/dish-photo-3.webp");
      --dish-photo-4: url("./assets/mobile-menu-v2/dish-photo-4.webp");
      --dish-photo-5: url("./assets/mobile-menu-v2/dish-photo-5.webp");
      --dish-photo-6: url("./assets/mobile-menu-v2/dish-photo-6.webp");
      color-scheme: light;
    }

    *, *::before, *::after { box-sizing: border-box; }

    html {
      min-width: 320px;
      scroll-behavior: smooth;
      scrollbar-gutter: stable;
      background: var(--page);
    }

    body {
      min-width: 320px;
      min-height: 100dvh;
      margin: 0;
      color: var(--ink);
      background: var(--page);
      font-family: "Manrope", sans-serif;
      font-weight: 400;
      font-synthesis: none;
      -webkit-font-smoothing: antialiased;
      text-rendering: geometricPrecision;
    }

    button, input { font: inherit; }
    button { color: inherit; }

    button:focus-visible,
    input:focus-visible {
      outline: 2px solid var(--brand);
      outline-offset: 2px;
    }

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

    body.restaurant-gate-pending {
      position: fixed;
      inset: 0;
      width: 100%;
      overflow: hidden;
    }

    html.boosst-restore-menu body.restaurant-gate-pending {
      position: static;
      overflow: visible;
    }

    html.boosst-restore-menu .restaurant-gate {
      display: none;
    }

    html.restaurant-gate-open { overflow-y: scroll; }

    .restaurant-gate {
      position: fixed;
      z-index: 1000;
      inset: 0;
      overflow: hidden;
      background: var(--page);
    }

    .restaurant-gate[hidden] { display: none; }

    .restaurant-gate-shell {
      width: 100%;
      max-width: var(--app-max);
      height: 100dvh;
      display: flex;
      flex-direction: column;
      margin-inline: auto;
      padding: max(24px, env(safe-area-inset-top)) var(--gutter) max(20px, env(safe-area-inset-bottom));
      overflow: hidden;
      background: var(--page);
    }

    .restaurant-gate-brand {
      min-height: 44px;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      flex: 0 0 auto;
    }

    .restaurant-gate-mark {
      width: 22px;
      height: 38px;
      display: block;
      object-fit: contain;
    }

    .restaurant-gate-wordmark {
      width: 91px;
      height: auto;
      display: block;
    }

    .restaurant-gate-heading {
      flex: 0 0 auto;
      padding: clamp(38px, 10vh, 74px) 0 22px;
      text-align: center;
    }

    .restaurant-gate[data-state="loading_locations"] .restaurant-gate-heading {
      visibility: hidden;
    }

    .restaurant-gate-kicker {
      margin: 0 0 7px;
      color: var(--brand);
      font-size: 10px;
      font-weight: 500;
      line-height: 1.35;
      letter-spacing: .075em;
      text-transform: uppercase;
    }

    .restaurant-gate-heading h1 {
      margin: 0;
      color: var(--ink);
      font-size: clamp(24px, 7.18vw, 28px);
      font-weight: 500;
      line-height: 1.2;
      letter-spacing: -.025em;
    }

    .restaurant-gate-content {
      min-height: 0;
      display: flex;
      flex: 1 1 auto;
      flex-direction: column;
      overflow: hidden;
      border-top: 1px solid var(--brand);
      border-bottom: 1px solid var(--neutral);
    }

    .restaurant-gate-status {
      flex: 0 0 auto;
      margin: 0;
      padding: 17px 12px;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.45;
      text-align: center;
    }

    .restaurant-gate-list {
      min-height: 0;
      margin: 0;
      padding: 0;
      overflow-x: hidden;
      overflow-y: auto;
      overscroll-behavior-y: contain;
      list-style: none;
      scrollbar-width: thin;
      scrollbar-color: var(--neutral) transparent;
      -webkit-overflow-scrolling: touch;
    }

    .restaurant-gate-list:empty { display: none; }

    .restaurant-gate-list li + li { border-top: 1px solid var(--neutral); }

    .restaurant-gate-option {
      position: relative;
      width: 100%;
      min-height: 76px;
      display: grid;
      grid-template-columns: minmax(0, 1fr) 18px;
      align-items: center;
      gap: 12px;
      padding: 13px 12px;
      border: 0;
      background: transparent;
      text-align: left;
      cursor: pointer;
      -webkit-tap-highlight-color: transparent;
    }

    .restaurant-gate-option::after {
      width: 8px;
      height: 8px;
      border-top: 1.5px solid var(--brand);
      border-right: 1.5px solid var(--brand);
      content: "";
      transform: rotate(45deg);
      justify-self: end;
    }

    .restaurant-gate-option:hover { background: rgba(184, 79, 47, .045); }

    .restaurant-gate-option:disabled {
      cursor: wait;
      opacity: .52;
    }

    .restaurant-gate-option-copy {
      min-width: 0;
      display: block;
    }

    .restaurant-gate-option-name,
    .restaurant-gate-option-address {
      display: block;
      overflow-wrap: anywhere;
    }

    .restaurant-gate-option-name {
      color: var(--ink);
      font-size: 15px;
      font-weight: 500;
      line-height: 1.35;
    }

    .restaurant-gate-option-address {
      margin-top: 4px;
      color: var(--muted);
      font-size: 11px;
      line-height: 1.4;
    }

    .restaurant-gate-retry {
      min-height: 48px;
      flex: 0 0 auto;
      margin-top: 16px;
      padding: 0 18px;
      border: 1px solid var(--brand);
      border-radius: 2px;
      background: var(--brand);
      color: var(--page);
      font-size: 12px;
      font-weight: 500;
      letter-spacing: .035em;
      text-transform: uppercase;
      cursor: pointer;
    }

    .restaurant-gate-retry[hidden] { display: none; }
    .restaurant-gate-retry:disabled { cursor: wait; opacity: .58; }

    /* Restaurant opening sequence: exact geometry from the approved transition prototype. */
    .restaurant-gate {
      background: var(--page);
      isolation: isolate;
      perspective: 1500px;
    }

    .restaurant-gate-selection,
    .restaurant-cover-stage {
      position: absolute;
      inset: 0;
      width: 100%;
      max-width: 430px;
      height: 100dvh;
      margin-inline: auto;
    }

    .restaurant-gate-selection {
      z-index: 4;
      padding: max(36px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) max(26px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));
      align-items: center;
      background: var(--page);
    }

    .restaurant-gate-motion,
    .restaurant-gate-option,
    .restaurant-gate-selection,
    .restaurant-cover-stage,
    .restaurant-cover {
      backface-visibility: hidden;
      will-change: transform, opacity;
    }

    .restaurant-gate-brand {
      min-height: 0;
      flex-direction: column;
      gap: 0;
    }

    .restaurant-gate-mark { width: 36px; height: 59px; }

    .restaurant-gate-wordmark {
      width: 154px;
      height: 36px;
      margin-top: 16px;
    }

    .restaurant-gate-heading {
      padding: 0;
      text-align: center;
    }

    .restaurant-gate-heading h1 {
      margin: 55px 0 10px;
      font-size: 26px;
      font-weight: 400;
      line-height: 1.16;
      letter-spacing: -.03em;
    }

    .restaurant-gate-heading p {
      max-width: 270px;
      margin: 0 0 28px;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.55;
    }

    .restaurant-gate-content {
      width: 100%;
      min-height: 0;
      flex: 1 1 auto;
      overflow: hidden;
      border: 0;
    }

    .restaurant-gate-status {
      padding: 0 12px 14px;
      font-size: 11px;
    }

    .restaurant-gate[data-state="locations"] .restaurant-gate-status,
    .restaurant-gate[data-state="loading_menu"] .restaurant-gate-status,
    .restaurant-gate[data-state="opening"] .restaurant-gate-status { display: none; }

    .restaurant-gate-list {
      width: 100%;
      display: flex;
      flex: 0 1 auto;
      flex-direction: column;
      gap: 11px;
      overflow-y: auto;
      border: 0;
    }

    .restaurant-gate-list li + li { border: 0; }

    .restaurant-gate-option {
      min-height: 72px;
      grid-template-columns: minmax(0, 1fr) 20px;
      gap: 0;
      padding: 13px 18px 13px 20px;
      border: 1px solid var(--neutral);
      border-radius: 28px;
      background: var(--page);
      transition: transform 180ms ease, background 180ms ease, color 180ms ease, border-color 180ms ease;
    }

    .restaurant-gate-option::after {
      border-width: 1.4px 1.4px 0 0;
      justify-self: center;
    }

    .restaurant-gate-option:hover { border-color: var(--brand); background: var(--page); }
    .restaurant-gate-option:active { transform: scale(.98); }

    .restaurant-gate-option-name {
      font-size: 14px;
      line-height: 1.2;
    }

    .restaurant-gate-option-address {
      margin-top: 5px;
      font-size: 10px;
      line-height: 1.35;
    }

    .restaurant-gate-option.is-chosen {
      border-color: var(--brand);
      background: var(--brand);
      color: var(--page);
      transform: scale(.985);
    }

    .restaurant-gate-option.is-chosen:disabled { opacity: 1; }
    .restaurant-gate-option.is-chosen .restaurant-gate-option-name { color: var(--page); }
    .restaurant-gate-option.is-chosen .restaurant-gate-option-address { color: rgba(255, 255, 255, .78); }
    .restaurant-gate-option.is-chosen::after { border-color: var(--page); }

    .restaurant-gate-retry {
      width: 100%;
      min-height: 48px;
      margin-top: 11px;
      border-radius: 28px;
      text-transform: none;
    }

    .restaurant-gate-hint {
      margin: auto 0 0;
      color: var(--muted);
      font-size: 9px;
      font-weight: 500;
      letter-spacing: .1em;
      text-transform: uppercase;
    }

    .restaurant-cover-stage {
      z-index: 3;
      opacity: 0;
      transform: scale(.92) translateY(14px);
      transform-origin: center;
      pointer-events: none;
    }

    .restaurant-cover {
      position: absolute;
      inset: 0;
      background: var(--page);
      transform-origin: 9px center;
      transform-style: preserve-3d;
      backface-visibility: hidden;
      box-shadow: 12px 0 28px rgba(38, 33, 31, .12);
    }

    .restaurant-cover-spine {
      position: absolute;
      top: 0;
      bottom: 0;
      left: 0;
      width: 9px;
      background: var(--brand);
    }

    .restaurant-cover-frame {
      position: absolute;
      inset: 28px 27px 28px 31px;
      border: 1px solid var(--neutral);
    }

    .restaurant-cover-route {
      position: absolute;
      top: 78px;
      bottom: 80px;
      left: 31px;
      width: 1px;
      background: var(--brand);
      transform: scaleY(0);
      transform-origin: top;
    }

    .restaurant-cover-route::after {
      position: absolute;
      bottom: 0;
      left: 0;
      width: 112px;
      height: 1px;
      background: var(--brand);
      content: "";
      transform: scaleX(0);
      transform-origin: left;
    }

    .restaurant-cover-dot {
      position: absolute;
      top: 48%;
      left: -5px;
      width: 11px;
      height: 11px;
      border: 2px solid var(--brand);
      border-radius: 50%;
      background: var(--page);
      opacity: 0;
      transform: scale(.3);
    }

    .restaurant-cover-center {
      position: absolute;
      top: 47%;
      left: 50%;
      width: 250px;
      display: flex;
      flex-direction: column;
      align-items: center;
      transform: translate(-50%, -50%);
    }

    .restaurant-cover-mark { width: 60px; height: 98px; }
    .restaurant-cover-wordmark { width: 190px; height: 45px; margin-top: 28px; }

    .restaurant-cover-rule {
      width: 0;
      height: 1px;
      margin-top: 22px;
      background: var(--brand);
    }

    .restaurant-cover-center p {
      margin: 20px 0 0;
      color: var(--muted);
      font-family: "Manrope", sans-serif;
      font-size: 32px;
      font-weight: 400;
      line-height: 1;
      letter-spacing: .16em;
    }

    .restaurant-cover-edition {
      position: absolute;
      top: 35px;
      right: 19px;
      color: var(--muted);
      font-size: 9px;
      letter-spacing: .17em;
      writing-mode: vertical-rl;
    }

    .restaurant-gate.is-running .restaurant-gate-motion-brand { animation: restaurant-exit-up .46s .44s cubic-bezier(.25, .8, .25, 1) forwards; }
    .restaurant-gate.is-running .restaurant-gate-motion-copy { animation: restaurant-exit-up .42s .34s cubic-bezier(.25, .8, .25, 1) forwards; }
    .restaurant-gate.is-running .restaurant-gate-option { animation: restaurant-exit-down .38s var(--gate-exit-delay, .28s) cubic-bezier(.25, .8, .25, 1) forwards; }
    .restaurant-gate.is-running .restaurant-gate-motion-hint { animation: restaurant-fade .28s .25s ease forwards; }
    .restaurant-gate.is-running .restaurant-gate-selection { animation: restaurant-screen-away .18s .88s ease forwards; }
    .restaurant-gate.is-running .restaurant-cover-stage { animation: restaurant-cover-arrive .75s 1.2s cubic-bezier(.25, .8, .25, 1) forwards; }
    .restaurant-gate.is-running .restaurant-cover-route { animation: restaurant-route-down .55s 1.55s cubic-bezier(.25, .8, .25, 1) forwards; }
    .restaurant-gate.is-running .restaurant-cover-route::after { animation: restaurant-route-across .4s 2s cubic-bezier(.25, .8, .25, 1) forwards; }
    .restaurant-gate.is-running .restaurant-cover-dot { animation: restaurant-dot-in .32s 2s ease forwards; }
    .restaurant-gate.is-running .restaurant-cover-rule { animation: restaurant-rule .5s 1.8s cubic-bezier(.25, .8, .25, 1) forwards; }
    .restaurant-gate.is-running .restaurant-cover { animation: restaurant-open-book 1.45s 3.65s cubic-bezier(.45, .05, .2, 1) forwards; }
    .restaurant-gate.is-running { animation: restaurant-gate-clear .01ms 3.64s forwards; }

    @keyframes restaurant-exit-up { to { opacity: 0; transform: translateY(-22px); } }
    @keyframes restaurant-exit-down { to { opacity: 0; transform: translateY(20px) scale(.96); } }
    @keyframes restaurant-fade { to { opacity: 0; } }
    @keyframes restaurant-screen-away { to { opacity: 0; visibility: hidden; } }
    @keyframes restaurant-cover-arrive { from { opacity: 0; transform: scale(.92) translateY(14px); } to { opacity: 1; transform: scale(1) translateY(0); } }
    @keyframes restaurant-route-down { to { transform: scaleY(1); } }
    @keyframes restaurant-route-across { to { transform: scaleX(1); } }
    @keyframes restaurant-dot-in { to { opacity: 1; transform: scale(1); } }
    @keyframes restaurant-rule { to { width: 166px; } }
    @keyframes restaurant-open-book {
      0% { transform: rotateY(0deg); box-shadow: 12px 0 28px rgba(38, 33, 31, .12); }
      60% { box-shadow: 24px 3px 34px rgba(38, 33, 31, .18); }
      100% { transform: rotateY(-108deg); box-shadow: 4px 0 12px rgba(38, 33, 31, .04); opacity: .18; }
    }
    @keyframes restaurant-gate-clear { to { background: transparent; } }

    .app {
      width: 100%;
      max-width: var(--app-max);
      min-height: 100dvh;
      margin-inline: auto;
      overflow: clip;
      background: var(--page);
      container-type: inline-size;
    }

    .menu:focus { outline: 0; }

    .site-chrome {
      position: sticky;
      top: 0;
      z-index: 100;
      --open-search-height: 0px;
      background: var(--page);
    }

    .site-chrome.search-is-open { --open-search-height: 56px; }

    .site-header {
      position: relative;
      height: var(--header-height);
      display: flex;
      justify-content: center;
      align-items: center;
      padding: env(safe-area-inset-top) var(--gutter) 0;
      background: var(--page);
    }

    .site-header::before {
      content: "";
      position: absolute;
      inset: 0 0 auto;
      height: 1px;
      background: var(--brand);
    }

    .brand-lockup {
      min-width: 0;
      height: 42px;
      display: flex;
      align-items: center;
      justify-self: center;
      gap: 8px;
      text-decoration: none;
    }

    .brand-mark {
      width: 22px;
      height: 38px;
      display: block;
      object-fit: contain;
      filter: none;
    }

    .brand-wordmark {
      width: 91px;
      height: auto;
      display: block;
      filter: none;
    }

    .restaurant-return-button { position:absolute; left:var(--gutter); max-width:calc(50% - 72px); overflow:hidden; padding:0; border:0; background:transparent; color:var(--brand); font:500 13px/1 "Manrope",sans-serif; text-overflow:ellipsis; white-space:nowrap; cursor:pointer; }
    .header-actions { position:absolute; right:calc(var(--gutter) - 7px); display:flex; align-items:center; }
    .header-menu-button, .header-search-button { margin:0; }

    .icon-button {
      width: 44px;
      height: 44px;
      display: grid;
      place-items: center;
      margin: 0;
      padding: 0;
      border: 0;
      border-radius: 0;
      background: transparent;
      cursor: pointer;
      -webkit-tap-highlight-color: transparent;
    }

    .icon-button svg {
      width: 23px;
      height: 23px;
      display: block;
      fill: none;
      stroke: var(--brand);
      stroke-width: 1.75;
      stroke-linecap: round;
      stroke-linejoin: round;
    }

    .toggle-close-icon { display: none !important; }

    .burger-icon {
      width: 24px;
      height: 17px;
      display: grid;
      align-content: space-between;
    }

    .burger-icon i {
      width: 24px;
      height: 1.5px;
      display: block;
      border-radius: 99px;
      background: var(--brand);
      transform-origin: center;
      transition: transform 220ms ease, opacity 160ms ease;
    }

    .icon-button[aria-expanded="true"] .burger-icon i:nth-child(1) { transform: translateY(7.75px) rotate(45deg); }
    .icon-button[aria-expanded="true"] .burger-icon i:nth-child(2) { opacity: 0; }
    .icon-button[aria-expanded="true"] .burger-icon i:nth-child(3) { transform: translateY(-7.75px) rotate(-45deg); }

    .search-panel {
      position: relative;
      z-index: 3;
      max-height: 0;
      overflow: hidden;
      padding: 0 var(--gutter);
      background: var(--page);
      opacity: 0;
      transform: translateY(-5px);
      transition: max-height 220ms ease, padding 220ms ease, opacity 160ms ease, transform 220ms ease, box-shadow 220ms ease;
    }

    .search-panel.is-open {
      max-height: 56px;
      overflow: visible;
      padding-block: 0 12px;
      opacity: 1;
      transform: translateY(0);
      box-shadow: 0 12px 24px rgba(38, 33, 31, .045);
    }

    .search-form {
      position: relative;
      height: 44px;
      display: grid;
      grid-template-columns: minmax(0, 1fr) 94px;
      align-items: center;
      gap: 8px;
      margin: 0;
    }

    .search-entry {
      min-width: 0;
      display: grid;
      grid-template-columns: minmax(0, 1fr) 34px;
      align-items: center;
      gap: 4px;
      height: 44px;
      padding: 0 3px 0 12px;
      border: 0;
      border-bottom: 1px solid rgba(184, 79, 47, .24);
      background: transparent;
      transition: border-color 160ms ease;
    }

    .search-form:focus-within .search-entry {
      border-bottom-color: var(--brand);
    }

    .search-input {
      width: 100%;
      min-width: 0;
      height: 44px;
      padding: 0;
      border: 0;
      outline: 0;
      color: var(--ink);
      background: transparent;
      font-family: "Manrope", sans-serif;
      font-size: 16px;
      font-weight: 400;
    }

    .search-input:focus-visible { outline: 0; }

    .search-input::placeholder { color: var(--muted); opacity: 1; }
    .search-input::-webkit-search-cancel-button { display: none; }

    .search-clear {
      width: 36px;
      height: 36px;
      display: grid;
      place-items: center;
      padding: 0;
      border: 0;
      background: transparent;
      cursor: pointer;
      opacity: 0;
      pointer-events: none;
    }

    .search-clear.is-visible { opacity: 1; pointer-events: auto; }

    .search-clear svg {
      width: 18px;
      height: 18px;
      fill: none;
      stroke: var(--brand);
      stroke-width: 1.6;
      stroke-linecap: round;
    }

    .search-submit {
      height: 44px;
      display: grid;
      place-items: center;
      padding: 0;
      border: 1px solid var(--brand);
      border-radius: 22px;
      background: var(--brand);
      color: var(--photo);
      font-family: "Manrope", sans-serif;
      font-size: 12px;
      font-weight: 500;
      line-height: 1;
      letter-spacing: .08em;
      text-transform: uppercase;
      cursor: pointer;
      transition: color 160ms ease, background 160ms ease;
      -webkit-tap-highlight-color: transparent;
    }

    .search-submit:active {
      color: var(--brand);
      background: var(--photo);
    }

    .search-suggestions {
      position: absolute;
      z-index: 120;
      top: calc(100% + 7px);
      right: calc(0px - var(--gutter));
      left: calc(0px - var(--gutter));
      max-height: min(390px, calc(100dvh - var(--header-height) - var(--category-height) - 76px));
      margin: 0;
      overflow-y: auto;
      padding: 6px 0 8px;
      border-top: 1px solid rgba(184, 79, 47, .2);
      background: var(--page);
      box-shadow: 0 16px 28px rgba(38, 33, 31, .12);
      list-style: none;
      scrollbar-width: thin;
    }

    .search-suggestions[hidden] { display: none; }

    .search-suggestion-group {
      padding: 8px 12px 5px;
      color: var(--muted);
      font-size: 9px;
      line-height: 1.35;
      letter-spacing: .045em;
      text-transform: uppercase;
    }

    .search-suggestion {
      position: relative;
      display: grid;
      min-height: 48px;
      padding: 8px 34px 8px 12px;
      align-content: center;
      border-bottom: 1px solid rgba(214, 201, 188, .55);
      cursor: pointer;
    }

    .search-suggestion::after {
      position: absolute;
      top: 50%;
      right: 14px;
      width: 7px;
      height: 7px;
      border-top: 1.5px solid var(--brand);
      border-right: 1.5px solid var(--brand);
      content: "";
      transform: translateY(-50%) rotate(45deg);
    }

    .search-suggestion.is-active {
      background: rgba(184, 79, 47, .075);
    }

    .search-suggestion-title {
      color: var(--ink);
      font-size: 13px;
      line-height: 1.35;
    }

    .search-suggestion-meta {
      margin-top: 2px;
      color: var(--muted);
      font-size: 10px;
      line-height: 1.35;
    }

    .search-suggestion-empty {
      padding: 18px 12px;
      color: var(--muted);
      font-size: 12px;
      text-align: center;
    }

    .category-navigation { position: relative; }

    .category-navigation__fade,
    .category-navigation__next { display: none; }

    .category-rail {
      height: var(--category-height);
      display: flex;
      align-items: stretch;
      gap: 34px;
      margin: 0;
      padding: 0 var(--gutter);
      overflow-x: auto;
      overflow-y: hidden;
      background: var(--page);
      scrollbar-width: none;
      overscroll-behavior-inline: contain;
      scroll-padding-inline: var(--gutter);
    }

    .category-rail::-webkit-scrollbar { display: none; }

    .category-button {
      position: relative;
      flex: 0 0 auto;
      min-width: max-content;
      min-height: 44px;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 0;
      border: 0;
      background: transparent;
      color: var(--ink);
      font-family: "Manrope", sans-serif;
      font-size: 14px;
      font-weight: 400;
      line-height: 1;
      letter-spacing: .015em;
      text-transform: uppercase;
      white-space: nowrap;
      cursor: pointer;
      transform-origin: center;
      transition: color 180ms ease, font-size 180ms ease, font-weight 180ms ease;
      -webkit-tap-highlight-color: transparent;
    }

    .category-button::after {
      content: "";
      position: absolute;
      right: 0;
      bottom: 4px;
      left: 0;
      height: 1.5px;
      background: var(--brand);
      transform: scaleX(0);
      transform-origin: center;
      transition: transform 180ms ease;
    }

    .category-button.is-active {
      color: var(--brand);
      font-size: 15px;
      font-weight: 500;
    }

    .category-button.is-active::after { transform: scaleX(1); }

    .menu {
      padding: clamp(17px, 4.42vw, 19px) var(--gutter) 88px;
    }

    .menu-section {
      scroll-margin-top: calc(var(--header-height) + var(--category-height) + var(--open-search-height) + 18px);
    }

    .menu-section:focus { outline: 0; }

    .menu-section + .menu-section { margin-top: 58px; }

    .section-title {
      margin: 0;
      color: var(--ink);
      font-family: "Manrope", sans-serif;
      font-size: clamp(25px, 6.28vw, 27px);
      font-weight: 400;
      line-height: 1.16;
      letter-spacing: -.025em;
    }

    .dish-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      column-gap: var(--column-gap);
      row-gap: 27px;
      margin-top: 12px;
    }

    .dish-card {
      min-width: 0;
      display: flex;
      flex-direction: column;
      scroll-margin-top: calc(var(--header-height) + var(--category-height) + var(--open-search-height) + 18px);
    }

    .dish-card:focus { outline: 0; }

    .dish-copy { min-width: 0; }

    .menu-section.is-compact .dish-grid {
      grid-template-columns: 1fr;
      row-gap: 0;
    }

    .menu-section.is-compact .dish-card {
      min-height: 54px;
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      align-items: center;
      gap: 18px;
      border-bottom: 1px solid var(--neutral);
    }

    .menu-section.is-compact .dish-copy { grid-column: 1; }

    .menu-section.is-compact .dish-card:first-child { border-top: 1px solid var(--neutral); }
    .menu-section.is-compact .dish-photo,
    .menu-section.is-compact .dish-weight,
    .menu-section.is-compact .dish-description { display: none; }
    .menu-section.is-compact .dish-name,
    .menu-section.is-compact .dish-price { margin: 0; }
    .menu-section.is-compact .dish-name { color: var(--ink); }

    .dish-card[hidden],
    .menu-section[hidden] { display: none !important; }

    .dish-photo {
      width: 100%;
      aspect-ratio: var(--photo-ratio);
      display: block;
      flex: 0 0 auto;
      overflow: hidden;
      border: 0;
      border-radius: 0;
      background-color: var(--photo);
      background-image: none;
      background-repeat: no-repeat;
      background-position: center;
      background-size: cover;
    }

    .dish-photo-image {
      width: 100%;
      height: 100%;
      display: block;
      object-fit: cover;
    }

    .photo-1 { background-image: var(--dish-photo-1); }
    .photo-2 { background-image: var(--dish-photo-2); }
    .photo-3 { background-image: var(--dish-photo-3); }
    .photo-4 { background-image: var(--dish-photo-4); }
    .photo-5 { background-image: var(--dish-photo-5); }
    .photo-6 { background-image: var(--dish-photo-6); }

    .dish-name {
      margin: 12px 0 0;
      color: var(--brand);
      font-family: Arial, "Liberation Sans", sans-serif;
      font-size: 19px;
      font-weight: 400;
      line-height: 1.25;
      letter-spacing: -.01em;
      overflow-wrap: anywhere;
    }

    .dish-badge {
      align-self: flex-start;
      margin: 9px 0 -4px;
      padding: 4px 7px;
      border: 1px solid var(--brand);
      color: var(--brand);
      font-family: "Manrope", sans-serif;
      font-size: 9px;
      font-weight: 500;
      line-height: 1;
      letter-spacing: .05em;
      text-transform: uppercase;
    }

    .dish-weight {
      margin: 5px 0 0;
      color: var(--muted);
      font-family: "Manrope", sans-serif;
      font-size: 11px;
      font-weight: 400;
      line-height: 1.35;
    }

    .dish-weight:empty { display: none; }

    .dish-description {
      margin: 9px 0 0;
      color: var(--muted);
      font-family: "Manrope", sans-serif;
      font-size: 12px;
      font-weight: 400;
      line-height: 1.48;
      letter-spacing: -.012em;
      overflow-wrap: anywhere;
    }

    .dish-description:empty { display: none; }

    .dish-price {
      margin: 15px 0 0;
      color: var(--brand);
      font-family: Arial, "Liberation Sans", sans-serif;
      font-size: 24px;
      font-weight: 400;
      line-height: 1;
      letter-spacing: -.01em;
    }

    .dish-prices {
      display: grid;
      gap: 7px;
      margin-top: 15px;
    }

    .dish-price-row {
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      gap: 8px;
    }

    .dish-price-label {
      min-width: 0;
      color: var(--muted);
      font-family: "Manrope", sans-serif;
      font-size: 11px;
      line-height: 1.35;
    }

    .dish-price-value {
      flex: 0 0 auto;
      color: var(--brand);
      font-family: Arial, "Liberation Sans", sans-serif;
      font-size: 22px;
      line-height: 1;
    }

    .dish-unavailable {
      margin: 10px 0 0;
      color: var(--muted);
      font-family: "Manrope", sans-serif;
      font-size: 10px;
      font-weight: 500;
      line-height: 1.35;
      letter-spacing: .035em;
      text-transform: uppercase;
    }

    .dish-card.is-unavailable .dish-photo,
    .dish-card.is-unavailable .dish-name,
    .dish-card.is-unavailable .dish-description,
    .dish-card.is-unavailable .dish-prices,
    .dish-card.is-unavailable .dish-price { opacity: .52; }

    .menu-section.is-compact .dish-badge,
    .menu-section.is-compact .dish-unavailable { margin: 4px 0; }

    .menu-section.is-compact .dish-prices { margin: 0; }
    .menu-section.is-compact .dish-price-row { justify-content: flex-end; }

    .search-status {
      min-height: 20px;
      margin: 0 0 13px;
      color: var(--muted);
      font-family: "Manrope", sans-serif;
      font-size: 12px;
      line-height: 1.45;
    }

    .search-status:empty { display: none; }

    .empty-state {
      display: none;
      min-height: 210px;
      align-items: center;
      justify-content: center;
      padding: 32px;
      color: var(--muted);
      text-align: center;
      font-size: 14px;
      line-height: 1.5;
    }

    .empty-state.is-visible { display: flex; }

    .drawer-layer {
      position: fixed;
      z-index: 110;
      top: var(--header-height);
      bottom: 0;
      left: 50%;
      width: min(100%, var(--app-max));
      overflow: hidden;
      pointer-events: none;
      transform: translateX(-50%);
      visibility: hidden;
      transition: visibility 0s linear 260ms;
    }

    .drawer-layer.is-open {
      pointer-events: auto;
      visibility: visible;
      transition-delay: 0s;
    }

    .drawer-backdrop {
      position: absolute;
      inset: 0;
      border: 0;
      background: rgba(38, 33, 31, .46);
      opacity: 0;
      cursor: pointer;
      transition: opacity 240ms ease;
    }

    .drawer-layer.is-open .drawer-backdrop { opacity: 1; }

    .burger-drawer {
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      width: 56%;
      min-width: 218px;
      max-width: 252px;
      display: flex;
      flex-direction: column;
      overflow: hidden;
      overscroll-behavior: contain;
      padding: 0;
      background: var(--page);
      box-shadow: -12px 0 28px rgba(38, 33, 31, .08);
      transform: translateX(102%);
      transition: transform 260ms cubic-bezier(.25, .8, .25, 1);
      scrollbar-width: none;
    }

    .burger-drawer::-webkit-scrollbar { display: none; }
    .burger-drawer:focus { outline: 0; }
    .drawer-layer.is-open .burger-drawer { transform: translateX(0) !important; }

    .drawer-fixed-top {
      position: relative;
      z-index: 2;
      flex: 0 0 auto;
      padding: 8px 16px 0;
      background: var(--page);
      box-shadow: 0 8px 16px rgba(38, 33, 31, .035);
    }

    .drawer-scroll {
      min-height: 0;
      height: var(--drawer-scroll-height, auto);
      flex: 1 1 auto;
      overflow-x: hidden;
      overflow-y: auto;
      overscroll-behavior-y: contain;
      padding: 0 16px;
      scroll-snap-type: y mandatory;
      scrollbar-width: none;
      -webkit-overflow-scrolling: touch;
    }

    .drawer-scroll::-webkit-scrollbar { display: none; }

    .drawer-location-summary {
      margin-bottom: 0;
      padding-bottom: 12px;
      border-bottom: 1px solid var(--neutral);
    }

    .drawer-location-name {
      margin: 0;
      color: var(--ink);
      font-family: "Manrope", sans-serif;
      font-size: 15px;
      font-weight: 500;
      line-height: 1.35;
    }

    .drawer-location-address {
      margin: 0 0 10px;
      color: var(--ink);
      font-family: "Manrope", sans-serif;
      font-size: 14px;
      font-weight: 400;
      line-height: 1;
      overflow-wrap: anywhere;
    }

    .change-location-button {
      width: max-content;
      min-height: 0;
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 0 0 3px;
      border: 0;
      border-bottom: 1px solid var(--brand);
      border-radius: 0;
      background: transparent;
      color: var(--brand);
      font-family: "Manrope", sans-serif;
      font-size: 13px;
      font-weight: 500;
      cursor: pointer;
      transition: color 180ms ease, transform 180ms ease;
    }

    .change-location-button::after {
      content: "→";
      font-size: 15px;
      line-height: 1;
    }

    .change-location-button:hover { color: var(--ink); }
    .change-location-button:active { transform: scale(.98); }

    .drawer-tabs {
      min-height: 48px;
      display: flex;
      align-items: stretch;
      gap: 28px;
      border-bottom: 1px solid var(--neutral);
    }

    .drawer-tab {
      position: relative;
      min-width: max-content;
      padding: 0;
      border: 0;
      background: transparent;
      color: var(--ink);
      font-family: "Manrope", sans-serif;
      font-size: 14px;
      font-weight: 400;
      line-height: 1;
      text-transform: uppercase;
      cursor: pointer;
    }

    .drawer-tab::after {
      content: "";
      position: absolute;
      right: 0;
      bottom: -1px;
      left: 0;
      height: 2px;
      background: var(--brand);
      transform: scaleX(0);
      transition: transform 180ms ease;
    }

    .drawer-tab.is-active { color: var(--brand); }
    .drawer-tab.is-active::after { transform: scaleX(1); }

    .drawer-categories {
      margin: 0;
      padding: 0;
      list-style: none;
    }

    .drawer-categories > li {
      height: var(--drawer-row-height);
      scroll-snap-align: start;
    }

    .drawer-category {
      width: 100%;
      height: var(--drawer-row-height);
      min-height: var(--drawer-row-height);
      display: grid;
      grid-template-columns: minmax(0, 1fr) 18px;
      align-items: center;
      gap: 8px;
      padding: 8px 0;
      border: 0;
      border-bottom: 1px solid var(--neutral);
      background: transparent;
      color: var(--ink);
      font-family: "Manrope", sans-serif;
      font-size: 15px;
      font-weight: 400;
      font-synthesis: none;
      line-height: 1.25;
      text-align: left;
      cursor: pointer;
    }

    .drawer-category.is-active { color: var(--brand); }

    .drawer-category svg {
      width: 16px;
      height: 16px;
      fill: none;
      stroke: var(--brand);
      stroke-width: 1.8;
      stroke-linecap: round;
      stroke-linejoin: round;
    }

    body.drawer-open { overflow: hidden; }

    @media (max-width: 359px) {
      :root {
        --gutter: 14px;
        --column-gap: 10px;
      }

      html,
      body { min-width: 0; }

      .brand-wordmark { width: 84px; }
      .search-form { grid-template-columns: minmax(0, 1fr) 86px; gap: 7px; }
      .search-entry { padding-left: 11px; }
      .search-input { font-size: 16px; }
      .search-submit { font-size: 11px; }
      .category-rail { gap: 28px; }
      .category-button { font-size: 13px; }
      .category-button.is-active { font-size: 14px; }
      .section-title { font-size: 25px; }
      .dish-name { font-size: 18px; }
      .dish-description { font-size: 11.5px; }
      .dish-price { font-size: 23px; }
    }

    @media (max-width: 239px) {
      .burger-drawer {
        width: 100%;
        min-width: 0;
      }

      .search-form {
        grid-template-columns: minmax(0, 1fr) 64px;
        gap: 4px;
      }

      .search-entry {
        grid-template-columns: minmax(0, 1fr) 36px;
        gap: 2px;
        padding-left: 8px;
      }

      .search-submit {
        font-size: 10px;
        letter-spacing: .04em;
      }
    }

    @media (min-width: 431px) {
      body { padding-block: 22px; }
      .restaurant-gate-shell { box-shadow: 0 18px 52px rgba(38, 33, 31, .08); }
      .app { box-shadow: 0 18px 52px rgba(38, 33, 31, .08); }
      .site-chrome { top: 22px; }
      .drawer-layer { top: calc(22px + var(--header-height)); }
    }

    @media (max-width: 430px) {
      .restaurant-gate-selection {
        padding-right: max(20px, env(safe-area-inset-right));
        padding-left: max(20px, env(safe-area-inset-left));
      }

      .restaurant-gate-heading h1 { margin-top: 46px; }
    }

    @media (min-width: 720px) {
      :root { --app-max: 1180px; }
      .dish-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    }

    @media (min-width: 1024px) {
      .dish-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    }

    @media (prefers-reduced-motion: reduce) {
      html { scroll-behavior: auto; }
      *, *::before, *::after { transition-duration: .01ms !important; }
      .restaurant-gate.is-running,
      .restaurant-gate.is-running .restaurant-gate-motion,
      .restaurant-gate.is-running .restaurant-gate-option,
      .restaurant-gate.is-running .restaurant-gate-selection,
      .restaurant-gate.is-running .restaurant-cover-stage,
      .restaurant-gate.is-running .restaurant-cover-route,
      .restaurant-gate.is-running .restaurant-cover-route::after,
      .restaurant-gate.is-running .restaurant-cover-dot,
      .restaurant-gate.is-running .restaurant-cover-rule,
      .restaurant-gate.is-running .restaurant-cover { animation: none !important; }
    }

    @media (max-height: 700px) {
      .restaurant-gate-shell {
        padding-top: max(16px, env(safe-area-inset-top));
        padding-bottom: max(14px, env(safe-area-inset-bottom));
      }

      .restaurant-gate-status { padding-block: 12px; }
      .restaurant-gate-retry { min-height: 44px; margin-top: 12px; }
    }

    /* Approved restaurant selector. Isolated from the menu styles above. */
    .location-selector { overflow-y: auto; color: #26211F; background: #FFF; }
    .location-selector__inner { width: min(100%, 540px); min-height: 100%; margin: 0 auto; padding: max(34px, env(safe-area-inset-top)) 0 max(32px, env(safe-area-inset-bottom)); background: #FFF; }
    .location-selector__header { position:relative; display:grid; grid-template-columns:44px minmax(0,1fr) 44px; height:var(--header-height); align-items:center; margin-bottom:36px; padding:0 var(--gutter); }
    .location-selector__brand, .location-selector__footer-brand { display:flex; align-items:center; gap:8px; height:42px; }
    .location-selector__brand { grid-column:2; justify-self:center; }
    .location-selector__mark { width:22px; height:38px; object-fit:contain; filter:none; }
    .location-selector__wordmark, .location-selector__footer-logo { display:block; width:91px; height:auto; filter:none; }
    .location-selector__socials { position:absolute; top:calc((var(--header-height) - 27px) / 2); right:var(--gutter); display:flex; gap:19px; }
    .location-selector__socials a { color:#26211F; }
    .location-selector__socials svg { display:block; width:27px; height:27px; fill:currentColor; }
    .location-selector__status { margin: 0 9% 15px; color:#6B625C; font-size:13px; }
    .location-selector[data-state="locations"] .location-selector__status, .location-selector[data-state="loading_menu"] .location-selector__status, .location-selector[data-state="opening"] .location-selector__status { display:none; }
    .location-selector[data-state="loading_locations"] .lead-magnet,
    .location-selector[data-state="loading_locations"] .location-selector__footer { display:none; }
    .location-selector__cards { display:grid; gap:36px; margin:0; padding:0 5%; list-style:none; }
    .location-selector__card { width:100%; min-width:0; position:relative; display:block; overflow:hidden; border:0; border-radius:18px; padding:0; background:#FFF; color:#26211F; text-align:left; box-shadow:0 8px 18px rgba(38,33,31,.13); transition:transform .38s ease, opacity .38s ease; }
    .location-selector__card::after { display:none; }
    .location-selector__card img { display:block; width:100%; height:auto; background:#D6C9BC; }
    .location-selector__card-copy { box-sizing:border-box; display:block; padding:20px 18px 18px; background:#FFF; }
    .location-selector__card-address { display:block; color:#26211F; font-family:"Manrope",sans-serif; font-size:17px; font-weight:400; line-height:1.25; }
    .location-selector__card-title-desktop, .location-selector__card-meta.is-location { display:none; }
    .location-selector__card-meta { display:block; margin-top:6px; color:#6B625C; font-size:14px; }
    .location-selector__card-meta svg { display:none; }
    .location-selector__card-meta .location-selector__card-phone { margin-top:0; }
    .location-selector__card-phone { display:block; margin-top:6px; color:#6B625C; font-size:14px; }
    .location-selector__card-button { display:block; width:100%; margin-top:18px; padding:14px; border-radius:12px; background:#B84F2F; color:#FFF; font:500 14px/1 "Manrope",sans-serif; text-align:center; }
    .location-selector__card.is-chosen { transform:scale(.975); opacity:.78; }
    .location-selector__swipe { display:none; }
    .location-selector__retry { display:block; margin:20px auto; border:0; border-radius:5px; padding:12px 22px; background:#B84F2F; color:#FFF; font:600 14px Manrope,Arial,sans-serif; }
    .location-selector__retry[hidden] { display:none; }
    .lead-magnet { width:100%; max-width:358px; min-height:388px; margin:36px auto; border-radius:16px; padding:32px 24px 44px; color:#FFFFFF; background:#B84F2F; }
    .lead-magnet__eyebrow { margin:0; font:500 12px/normal "Manrope",Arial,sans-serif; letter-spacing:.133em; text-transform:uppercase; }
    .lead-magnet__rule { width:48px; height:1px; margin:14px 0 23px; background:rgba(255,255,255,.65); }
    .lead-magnet__title { max-width:285px; margin:0; color:#FFFFFF; font:400 31px/1.22 "Manrope",Arial,sans-serif; letter-spacing:-.045em; }
    .lead-magnet__description { max-width:255px; margin:21px 0 0; color:#FFFFFF; font:400 15px/1.47 "Manrope",Arial,sans-serif; }
    .lead-magnet__button { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:58px; margin-top:65px; border-radius:14px; padding:14px 24px 14px 25px; color:#FFFFFF; background:#26211F; font:400 16px/1.2 "Manrope",Arial,sans-serif; text-decoration:none; }
    .lead-magnet__arrow { margin-top:-2px; font:400 22px/1 Arial,sans-serif; }
    .lead-magnet__button:focus-visible { outline:3px solid #FFFFFF; outline-offset:3px; }

    /* The approved mobile composition remains above. Tablets receive a wider,
       intermediate composition before the dedicated desktop layout begins. */
    @media (min-width:720px) and (max-width:1023px) {
      .location-selector__inner { width:min(100%, 840px); padding-inline:32px; }
      .lead-magnet { position:relative; max-width:none; min-height:360px; margin:44px 0; border-radius:20px; padding:48px; }
      .lead-magnet__eyebrow { font-size:13px; letter-spacing:.15em; }
      .lead-magnet__rule { margin:18px 0 32px; }
      .lead-magnet__title { max-width:470px; font-size:42px; line-height:1.2; }
      .lead-magnet__description { max-width:420px; margin-top:24px; font-size:17px; line-height:1.5; }
      .lead-magnet__button { position:absolute; right:48px; bottom:48px; width:300px; min-height:64px; margin:0; padding:16px 25px; font-size:16px; }
      .lead-magnet__arrow { font-size:25px; }
    }

    .location-selector__footer { margin:36px 9% 0; }
    .location-selector__footer-brand { width:max-content; margin:0 auto 36px; }
    .location-selector__developer { display:inline-block; margin:0 0 24px; color:#26211F; font:400 14px/1.35 "Manrope",sans-serif; text-decoration:underline; text-underline-offset:3px; }
    .location-selector__addresses { margin:0; padding:0; list-style:none; }
    .location-selector__addresses li { padding:0 0 20px; border-bottom:1px solid #D6C9BC; }
    .location-selector__addresses li + li { padding-top:20px; }
    .location-selector__addresses strong, .location-selector__addresses span, .location-selector__addresses a { display:block; color:#26211F; font:400 16px/1.3 "Manrope",sans-serif; text-decoration:none; }
    .location-selector__addresses span { margin-top:5px; color:#6B625C; font-size:14px; }
    .location-selector__addresses a { margin-top:5px; font-size:14px; font-weight:500; }
    .location-selector__footer-socials { display:flex; justify-content:center; gap:23px; margin-top:28px; }
    .location-selector__footer-socials a { display:block; color:#26211F; }
    .location-selector__footer-socials svg { display:block; width:28px; height:28px; fill:currentColor; }
    .location-selector.is-running .location-selector__card { transform:translateX(26px) scale(.97); opacity:0; }
    .location-selector.is-running .location-selector__inner { animation:location-selector-out .4s ease forwards; }
    @keyframes location-selector-out { to { opacity:0; transform:translateX(-14px); } }
    @media (min-width:431px) { .location-selector__inner { box-shadow:0 18px 52px rgba(38,33,31,.08); } }
    @media (prefers-reduced-motion:reduce) { .location-selector.is-running .location-selector__inner { animation:none; } }

    /* Recruitment flow: an intentional layer over the selector, without
       changing its approved lead magnet or restaurant cards. */
    .recruitment-dialog[hidden] { display:none; }
    .recruitment-dialog { position:fixed; z-index:50; inset:0; overflow:auto; padding:18px; background:rgba(38,33,31,.44); }
    .recruitment-dialog__surface { position:relative; width:min(100%, 680px); min-height:calc(100vh - 36px); margin:0 auto; border-radius:20px; padding:56px 24px 32px; color:#26211F; background:#FFFFFF; box-shadow:0 28px 80px rgba(38,33,31,.24); }
    .recruitment-dialog__close { position:absolute; top:16px; right:16px; display:grid; width:40px; height:40px; place-items:center; border:0; border-radius:50%; padding:0; color:#26211F; background:#F4EFEB; font:400 30px/1 Arial,sans-serif; }
    .recruitment-dialog__close:hover, .recruitment-dialog__close:focus-visible { color:#FFFFFF; background:#B84F2F; outline:0; }
    .recruitment-kicker { margin:0; color:#B84F2F; font:500 12px/1.2 "Manrope",Arial,sans-serif; letter-spacing:.13em; text-transform:uppercase; }
    .recruitment-title { max-width:510px; margin:14px 0 0; color:#26211F; font:400 32px/1.16 "Manrope",Arial,sans-serif; letter-spacing:-.045em; }
    .recruitment-intro { margin:14px 0 0; color:#6B625C; font:400 15px/1.5 "Manrope",Arial,sans-serif; }
    .recruitment-location-list { display:grid; gap:14px; margin:30px 0 0; padding:0; list-style:none; }
    .recruitment-location { display:grid; grid-template-columns:minmax(0,1fr) auto; width:100%; min-height:92px; align-items:center; gap:18px; border:1px solid #E4D9D0; border-radius:18px; padding:20px 22px; color:#26211F; background:#FFFFFF; text-align:left; font-family:"Manrope",Arial,sans-serif; }
    .recruitment-location:hover, .recruitment-location:focus-visible { border-color:#B84F2F; box-shadow:0 10px 24px rgba(184,79,47,.14); outline:0; }
    .recruitment-location__address { font:500 18px/1.35 "Manrope",Arial,sans-serif; }
    .recruitment-location__arrow { color:#B84F2F; font:400 27px/1 Arial,sans-serif; }
    .recruitment-vacancy-list { display:grid; gap:12px; margin:28px 0 0; padding:0; list-style:none; }
    .recruitment-vacancy { width:100%; border:1px solid #E4D9D0; border-radius:16px; padding:18px; color:#26211F; background:#FFFFFF; text-align:left; font-family:"Manrope",Arial,sans-serif; }
    .recruitment-vacancy:hover, .recruitment-vacancy:focus-visible { border-color:#B84F2F; box-shadow:0 8px 20px rgba(184,79,47,.12); outline:0; }
    .recruitment-vacancy__title { display:block; font:500 19px/1.25 "Manrope",Arial,sans-serif; }
    .recruitment-vacancy__meta { display:block; margin-top:8px; color:#6B625C; font:400 14px/1.4 "Manrope",Arial,sans-serif; }
    .recruitment-vacancy__arrow { float:right; margin-top:-28px; color:#B84F2F; font:400 24px/1 Arial,sans-serif; }
    .recruitment-back { display:inline-flex; align-items:center; gap:8px; margin:0 0 20px; border:0; padding:0; color:#B84F2F; background:transparent; font:500 14px/1.2 "Manrope",Arial,sans-serif; }
    .recruitment-vacancy-card { margin:0 0 24px; border-radius:16px; padding:20px; color:#FFFFFF; background:#B84F2F; }
    .recruitment-vacancy-card h2 { margin:0; color:#FFFFFF; font:400 27px/1.18 "Manrope",Arial,sans-serif; letter-spacing:-.04em; }
    .recruitment-vacancy-card p { margin:9px 0 0; color:#FFFFFF; font:400 14px/1.45 "Manrope",Arial,sans-serif; }
    .recruitment-form { display:grid; gap:18px; }
    .recruitment-fieldset { display:grid; gap:12px; margin:0; border:0; padding:0; }
    .recruitment-fieldset legend { padding:0; color:#26211F; font:500 18px/1.3 "Manrope",Arial,sans-serif; }
    .recruitment-field { display:grid; gap:7px; }
    .recruitment-field > span { color:#26211F; font:500 14px/1.35 "Manrope",Arial,sans-serif; }
    .recruitment-required { color:#B84F2F; }
    .recruitment-control { width:100%; min-height:52px; border:1px solid #D6C9BC; border-radius:12px; padding:13px 14px; color:#26211F; background:#FFFFFF; font:400 16px/1.35 "Manrope",Arial,sans-serif; }
    textarea.recruitment-control { min-height:118px; resize:vertical; }
    .recruitment-control:focus { border-color:#B84F2F; outline:3px solid rgba(184,79,47,.15); }
    .recruitment-options { display:grid; gap:9px; }
    .recruitment-option, .recruitment-consent { display:flex; align-items:flex-start; gap:10px; color:#26211F; font:400 14px/1.45 "Manrope",Arial,sans-serif; }
    .recruitment-option input, .recruitment-consent input { width:19px; height:19px; flex:0 0 auto; margin:1px 0 0; accent-color:#B84F2F; }
    .recruitment-consent { margin-top:4px; color:#6B625C; font-size:13px; }
    .recruitment-consent a { color:#B84F2F; text-decoration:underline; text-underline-offset:3px; }
    .recruitment-submit { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:58px; margin-top:4px; border:0; border-radius:14px; padding:14px 22px; color:#FFFFFF; background:#26211F; font:500 16px/1.2 "Manrope",Arial,sans-serif; }
    .recruitment-submit:not(:disabled):hover, .recruitment-submit:not(:disabled):focus-visible { background:#B84F2F; outline:0; }
    .recruitment-submit:disabled { cursor:not-allowed; opacity:.42; }
    .recruitment-message { margin:20px 0 0; color:#6B625C; font:400 15px/1.5 "Manrope",Arial,sans-serif; }
    .recruitment-message.is-error { color:#B84F2F; }
    .recruitment-success { min-height:300px; display:grid; align-content:center; text-align:center; }
    .recruitment-success__check { display:grid; width:56px; height:56px; margin:0 auto 20px; place-items:center; border-radius:50%; color:#FFFFFF; background:#B84F2F; font:400 30px/1 Arial,sans-serif; }
    .recruitment-success h2 { margin:0; color:#26211F; font:400 31px/1.16 "Manrope",Arial,sans-serif; letter-spacing:-.045em; }
    .recruitment-success p { margin:14px 0 0; color:#6B625C; font:400 15px/1.5 "Manrope",Arial,sans-serif; }
    .recruitment-honeypot { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }

    @media (min-width:720px) {
      .recruitment-dialog { padding:36px; }
      .recruitment-dialog__surface { width:min(100%, 760px); min-height:auto; padding:64px; }
      .recruitment-dialog__close { top:22px; right:22px; }
      .recruitment-title { font-size:42px; }
      .recruitment-location-list { grid-template-columns:repeat(2, minmax(0,1fr)); gap:16px; }
      .recruitment-location { min-height:132px; padding:24px; }
      .recruitment-location__address { font-size:20px; }
      .recruitment-vacancy-list { grid-template-columns:repeat(2, minmax(0,1fr)); }
      .recruitment-vacancy { min-height:142px; }
    }

    /* Desktop is a dedicated wide composition. Mobile rules above remain intact. */
    @media (min-width: 1024px) {
      :root {
        --app-max: 100%;
        --gutter: clamp(32px, 5vw, 96px);
        --column-gap: clamp(22px, 2vw, 32px);
        --header-height: 154px;
        --category-height: 92px;
      }

      body { padding-block: 0; }
      .app { max-width: none; box-shadow: none; }
      .site-chrome { top: 0; }
      .site-header {
        width: min(1440px, calc(100% - (var(--gutter) * 2)));
        height: var(--header-height);
        margin-inline: auto;
        border-bottom: 1px solid rgba(214, 201, 188, .8);
        padding: 0;
      }
      .site-header::before { display: none; }
      .brand-lockup { gap: 15px; height: 70px; }
      .brand-mark { width: 45px; height: 70px; }
      .brand-wordmark { width: 194px; }
      .restaurant-return-button { left: 0; font-size: 15px; }
      .header-actions { right: -7px; gap: 18px; }
      .icon-button { width: 46px; height: 46px; }
      .icon-button svg { width: 29px; height: 29px; }
      .burger-icon { width: 31px; height: 22px; }
      .burger-icon i { width: 31px; }

      .search-panel {
        position: absolute;
        z-index: 130;
        top: calc((var(--header-height) - 44px) / 2);
        /* Leave the header action visible: it becomes the close control. */
        right: calc(max(var(--gutter), calc((100vw - 1440px) / 2)) + 116px);
        width: min(1440px, calc(100% - (var(--gutter) * 2)));
        max-width: 360px;
        margin-inline: auto;
        padding-inline: 0;
        border: 1px solid transparent;
        border-radius: 14px;
        background: var(--page);
      }
      .site-chrome.search-is-open { --open-search-height: 0px; }
      .search-panel.is-open {
        max-height: 72px;
        padding: 12px;
        border-color: rgba(184, 79, 47, .24);
        box-shadow: 0 14px 30px rgba(38, 33, 31, .14);
      }
      .header-search-button[aria-expanded="true"] {
        background: rgba(184, 79, 47, .10);
      }
      .header-search-button[aria-expanded="true"] .toggle-search-icon { display: none; }
      .header-search-button[aria-expanded="true"] .toggle-close-icon {
        display: block !important;
        stroke-width: 2.1;
      }
      .search-form { width: 100%; height: 44px; margin: 0; grid-template-columns: minmax(0, 1fr) 82px; gap: 6px; }
      .search-entry { height: 44px; padding-left: 11px; }
      .search-submit { height: 40px; border-radius: 10px; font-size: 11px; letter-spacing: .05em; }
      .search-suggestions {
        top: calc(100% + 10px);
        right: -12px;
        left: -12px;
        border: 1px solid rgba(184, 79, 47, .18);
        border-radius: 14px;
      }

      .category-navigation {
        width: min(1440px, calc(100% - (var(--gutter) * 2)));
        margin-inline: auto;
        border-bottom: 1px solid rgba(214, 201, 188, .8);
      }
      .category-rail {
        width: 100%;
        height: var(--category-height);
        min-height: 0;
        flex-wrap: nowrap;
        justify-content: flex-start;
        align-content: initial;
        gap: clamp(30px, 2.5vw, 48px);
        padding: 0 88px 0 0;
        overflow-x: auto;
        overflow-y: hidden;
        border: 0;
      }
      .category-button { min-height: 52px; font-size: clamp(14px, 1.05vw, 16px); }
      .category-button.is-active { font-size: clamp(15px, 1.12vw, 17px); }
      .category-button::after { bottom: 7px; }
      .category-navigation__fade {
        position: absolute;
        z-index: 2;
        top: 0;
        right: 0;
        bottom: 1px;
        width: 112px;
        display: block;
        background: linear-gradient(90deg, rgba(255,255,255,0), #fff 43%);
        pointer-events: none;
      }
      .category-navigation__next {
        position: absolute;
        z-index: 3;
        top: 50%;
        right: 0;
        width: 48px;
        height: 48px;
        display: grid;
        place-items: center;
        border: 0;
        border-radius: 50%;
        padding: 0 0 3px;
        color: var(--brand);
        background: #fff;
        box-shadow: 0 8px 24px rgba(38,33,31,.11);
        font: 400 25px/1 Arial, sans-serif;
        cursor: pointer;
        transform: translateY(-50%);
      }
      .category-navigation__next:hover,
      .category-navigation__next:focus-visible {
        outline: 0;
        box-shadow: 0 10px 28px rgba(38,33,31,.16);
        transform: translateY(calc(-50% - 2px));
      }

      .menu {
        width: min(1440px, calc(100% - (var(--gutter) * 2)));
        margin-inline: auto;
        padding: 54px 0 128px;
      }
      .menu-section + .menu-section { margin-top: 96px; }
      .section-title { font-size: clamp(40px, 3vw, 52px); line-height: 1.08; letter-spacing: -.04em; }
      .dish-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        column-gap: var(--column-gap);
        row-gap: 56px;
        margin-top: 25px;
      }
      .dish-photo { aspect-ratio: 4 / 3; border-radius: 18px; }
      .dish-name { margin-top: 17px; color: var(--brand); font-family: Arial, "Liberation Sans", sans-serif; font-size: 21px; font-weight: 400; }
      .dish-description { font-size: 13px; }
      .dish-price { color: var(--brand); font-family: Arial, "Liberation Sans", sans-serif; font-size: 28px; font-weight: 400; }
      .dish-price-value { color: var(--brand); font-family: Arial, "Liberation Sans", sans-serif; font-size: 26px; font-weight: 400; }
      .menu-section.is-compact { max-width: 820px; }

      .drawer-layer { top: var(--header-height); width: 100%; }
      .burger-drawer { width: min(32vw, 390px); max-width: 390px; }
      .drawer-fixed-top { padding: 18px 24px 0; }
      .drawer-scroll { padding-inline: 24px; }
      .drawer-location-address { font-size: 15px; }

      .location-selector__inner {
        width: min(1440px, calc(100% - (clamp(32px, 5vw, 96px) * 2)));
        max-width: none;
        margin-inline: auto;
        padding: clamp(34px, 4.2vw, 72px) 0 clamp(40px, 5vw, 80px);
        box-shadow: none;
      }
      .location-selector__header {
        display: grid;
        grid-template-columns: 1fr auto 1fr;
        min-height: 78px;
        height: auto;
        margin-bottom: clamp(30px, 3vw, 50px);
        padding: 0;
      }
      .location-selector__brand {
        grid-column: 2;
        gap: 15px;
        height: 70px;
      }
      .location-selector__brand .location-selector__mark { width: 45px; height: 70px; }
      .location-selector__brand .location-selector__wordmark { width: 194px; }
      .location-selector__socials {
        position: static;
        grid-column: 3;
        justify-self: end;
        display: flex;
        align-items: center;
        gap: 24px;
      }
      .location-selector__socials a,
      .location-selector__footer-socials a {
        display: grid;
        width: 38px;
        height: 38px;
        place-items: center;
        border-radius: 50%;
        transition: color 180ms ease, background-color 180ms ease, transform 180ms ease;
      }
      .location-selector__socials a:hover,
      .location-selector__socials a:focus-visible,
      .location-selector__footer-socials a:hover,
      .location-selector__footer-socials a:focus-visible {
        background: rgba(184, 79, 47, .09);
        color: #B84F2F;
        outline: 0;
        transform: translateY(-2px);
      }
      .location-selector__socials svg,
      .location-selector__footer-socials svg { width: 29px; height: 29px; }
      .location-selector__status { margin-inline: 0; text-align: center; }
      .location-selector__cards {
        --location-gap: clamp(22px, 2vw, 32px);
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
        margin-inline: auto;
        gap: var(--location-gap);
        padding: 0;
      }
      .location-selector__cards > li:last-child:nth-child(odd) {
        grid-column: 1 / -1;
        width: calc((100% - var(--location-gap)) / 2);
        justify-self: center;
      }
      .location-selector__card {
        display: flex;
        min-height: 0;
        flex-direction: column;
        border: 1px solid color-mix(in srgb, #D6C9BC 86%, white);
        border-radius: 22px;
        box-shadow: 0 16px 38px rgba(38, 33, 31, .08);
        transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
      }
      .location-selector__card:hover,
      .location-selector__card:focus-visible {
        border-color: rgba(184, 79, 47, .4);
        box-shadow: 0 22px 46px rgba(38, 33, 31, .13);
        outline: 0;
        transform: translateY(-5px);
      }
      .location-selector__card-image-wrap {
        position: relative;
        overflow: hidden;
        aspect-ratio: 2 / 1;
        background: #D6C9BC;
      }
      .location-selector__card .location-selector__card-image {
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: transform 500ms cubic-bezier(.2,.7,.2,1);
      }
      .location-selector__card:hover .location-selector__card-image,
      .location-selector__card:focus-visible .location-selector__card-image { transform: scale(1.025); }
      .location-selector__card-copy {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: end;
        gap: 24px;
        min-height: 142px;
        padding: 24px 26px 25px;
      }
      .location-selector__card-address {
        margin: 0 0 8px;
        color: #26211F;
        font-size: clamp(22px, 1.6vw, 29px);
        font-weight: 500;
        line-height: 1.12;
        letter-spacing: -.035em;
      }
      .location-selector__card-title-mobile { display:none; }
      .location-selector__card-title-desktop { display:block; }
      .location-selector__card-meta {
        display: flex;
        align-items: center;
        gap: 9px;
        margin-top: 5px;
        color: #6B625C;
        font-size: 14px;
        line-height: 1.35;
      }
      .location-selector__card-meta.is-location { display:flex; }
      .location-selector__card-meta svg {
        display: block;
        width: 17px;
        height: 17px;
        flex: 0 0 auto;
        fill: none;
        stroke: currentColor;
        stroke-linecap: round;
        stroke-linejoin: round;
        stroke-width: 1.7;
      }
      .location-selector__card-phone { display: inline; margin: 0; color: inherit; font-size: inherit; }
      .location-selector__card-button {
        min-width: 184px;
        min-height: 52px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        margin: 0;
        border-radius: 13px;
        padding: 14px 24px;
        font-size: 15px;
      }
      .lead-magnet {
        position:relative;
        width:100%;
        max-width:none;
        min-height:404px;
        margin:clamp(26px, 2.4vw, 38px) 0 0;
        border-radius:22px;
        padding:64px;
      }
      .lead-magnet__eyebrow { font-size:14px; line-height:1.2; letter-spacing:.157em; }
      .lead-magnet__rule { margin:20px 0 39px; }
      .lead-magnet__title { max-width:600px; font-size:52px; line-height:1.21; letter-spacing:-.048em; }
      .lead-magnet__description { max-width:540px; margin-top:26px; font-size:18px; line-height:1.5; }
      .lead-magnet__button {
        position:absolute;
        right:64px;
        bottom:76px;
        width:384px;
        min-height:72px;
        margin:0;
        border-radius:14px;
        padding:17px 27px 17px 28px;
        font-size:17px;
      }
      .lead-magnet__arrow { font-size:28px; }
      .location-selector__vacancy {
        width: 100%;
        display: grid;
        grid-template-columns: minmax(310px, .82fr) minmax(520px, 1.18fr);
        gap: clamp(48px, 6vw, 110px);
        align-items: center;
        margin: clamp(26px, 2.4vw, 38px) 0 0;
        border-radius: 22px;
        padding: clamp(34px, 4vw, 58px) clamp(38px, 4.5vw, 68px);
        box-shadow: 0 16px 38px rgba(38, 33, 31, .1);
      }
      .location-selector__vacancy-copy {
        min-height: 230px;
        display: flex;
        flex-direction: column;
        justify-content: center;
      }
      .location-selector__vacancy .location-selector__vacancy-eyebrow {
        display: block;
        margin: 0 0 18px;
        font-size: 12px;
        font-weight: 500;
        letter-spacing: .16em;
        text-transform: uppercase;
        opacity: .78;
      }
      .location-selector__vacancy h1 {
        max-width: 500px;
        margin: 0;
        font-size: clamp(34px, 3vw, 52px);
        font-weight: 500;
        line-height: 1.04;
        letter-spacing: -.055em;
      }
      .location-selector__vacancy h1 span { display: block; }
      .location-selector__vacancy .location-selector__vacancy-description {
        max-width: 500px;
        margin: 24px 0 0;
        color: rgba(255,255,255,.91);
        font-size: 15px;
        line-height: 1.65;
      }
      .location-selector__vacancy form { display: grid; gap: 12px; }
      .location-selector__vacancy input,
      .location-selector__vacancy textarea {
        margin: 0;
        border: 1px solid transparent;
        padding: 16px 19px;
        font-size: 15px;
        line-height: 1.35;
        outline: 0;
      }
      .location-selector__vacancy input { min-height: 54px; }
      .location-selector__vacancy textarea { min-height: 82px; }
      .location-selector__vacancy input:focus,
      .location-selector__vacancy textarea:focus {
        border-color: #26211F;
        box-shadow: 0 0 0 4px rgba(255,255,255,.25);
      }
      .location-selector__vacancy button {
        min-width: 230px;
        min-height: 52px;
        justify-self: center;
        margin: 0;
        padding: 14px 28px;
        font-size: 15px;
        cursor: pointer;
      }
      .location-selector__form-status {
        min-height: 21px;
        margin: 0 !important;
        font-size: 13px;
        line-height: 1.4;
        text-align: center;
      }
      .location-selector__footer {
        width: 100%;
        display: grid;
        grid-template-columns: minmax(200px, .8fr) minmax(0, 3fr) auto;
        align-items: start;
        gap: clamp(28px, 3.5vw, 64px);
        margin: 34px 0 0;
        border-top: 1px solid #D6C9BC;
        padding-top: 28px;
      }
      .location-selector__footer-brand {
        grid-column: 1;
        height: 54px;
        gap: 12px;
        margin: 0;
      }
      .location-selector__footer-brand .location-selector__mark { width: 35px; height: 54px; }
      .location-selector__footer-brand .location-selector__footer-logo { width: 151px; }
      .location-selector__developer {
        grid-column: 1;
        grid-row: 2;
        width: max-content;
        margin: -42px 0 0;
        color: #6B625C;
        font-size: 13px;
        text-decoration: none;
      }
      .location-selector__addresses {
        grid-column: 2;
        grid-row: 1 / span 2;
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(160px, 220px));
        gap: 28px 34px;
        justify-content: center;
        padding-top: 5px;
      }
      .location-selector__addresses li,
      .location-selector__addresses li + li {
        padding: 0;
        border: 0;
      }
      .location-selector__footer-socials {
        grid-column: 3;
        grid-row: 1;
        justify-content: flex-end;
        gap: 24px;
        margin: 0;
        padding-top: 8px;
      }
    }

    @media (min-width: 1024px) and (max-width: 1279px) {
      :root {
        --gutter: 28px;
        --header-height: 134px;
      }
      .brand-lockup { gap: 13px; height: 62px; }
      .brand-mark { width: 39px; height: 62px; }
      .brand-wordmark { width: 171px; }
      .search-panel {
        top: 86px;
        right: calc(var(--gutter) + 124px);
        max-width: 300px;
      }
      .location-selector__inner {
        width: min(1180px, calc(100% - 56px));
      }
      .location-selector__brand { gap: 13px; height: 62px; }
      .location-selector__brand .location-selector__mark { width: 39px; height: 62px; }
      .location-selector__brand .location-selector__wordmark { width: 171px; }
      .location-selector__card-copy { gap: 18px; padding: 21px; }
      .location-selector__card-button { min-width: 158px; padding-inline: 18px; }
      .location-selector__vacancy {
        grid-template-columns: minmax(300px, .8fr) minmax(450px, 1.2fr);
        gap: 42px;
        padding: 38px 42px;
      }
      .location-selector__vacancy h1 { font-size: 38px; }
      .location-selector__footer {
        grid-template-columns: minmax(185px, .7fr) minmax(0, 2.5fr) auto;
        gap: 28px;
      }
      .location-selector__addresses { gap: 24px; }
    }

    @media (min-width: 1920px) {
      .search-panel { right: calc((100vw - 1480px) / 2 + 116px); }
      .site-header,
      .search-panel,
      .category-navigation,
      .menu { width: min(1480px, calc(100% - 320px)); }
      .location-selector__inner { width: min(1480px, calc(100% - 320px)); padding-top: 68px; }
    }
