:root{--paper:#f8f6f0;--white:#fffefb;--ink:#292924;--muted:#6f6b61;--red:#ad3525;--red-dark:#8f2a1e;--line:#e5e0d6;--tint:#f3e9df;--radius:12px;--font:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:14px;line-height:1.6}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}button{border:0;background:none;color:inherit}button:disabled{cursor:not-allowed;opacity:.42}button,a,input,select,textarea{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--red)}button:not(:disabled):active,.primary:active{transform:translateY(1px)}h1,h2,h3,p{margin:0}button{white-space:nowrap}button,.primary{transition:background .18s,border-color .18s,transform .18s}img{display:block;max-width:100%}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip{position:fixed;left:16px;top:-80px;background:white;padding:10px;z-index:100}.skip:focus{top:10px}.site-header{height:80px;border-bottom:1px solid var(--line);background:var(--paper)}.header-inner{height:100%;max-width:1440px;margin:auto;padding:0 56px;display:flex;justify-content:space-between;align-items:center}.brand{display:flex;gap:12px;align-items:center;font-size:23px;font-weight:750;letter-spacing:1px}.brand-seal{display:grid;place-items:center;background:var(--red);color:var(--white);width:46px;height:46px;border-radius:10px;font-size:30px;font-weight:500;transform:rotate(-5deg)}.brand small{display:block;font-size:9px;letter-spacing:3.5px;line-height:1.2;font-weight:500;margin-top:2px}.header-right{display:flex;align-items:center;gap:38px}.header-label{font-size:12px;color:var(--muted);letter-spacing:2px}.nav-link{font-weight:600;font-size:13px}.nav-link span{margin-left:15px;color:var(--red)}.page{max-width:1440px;padding:32px 56px 0;margin:auto}.hero{position:relative;min-height:330px;overflow:hidden;border-radius:var(--radius);color:#fff8ed;background:#24211c}.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 56%}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,18,15,.9),rgba(20,18,15,.64) 30%,rgba(20,18,15,.07) 68%)}.hero-copy{position:relative;padding:32px 42px 34px}.eyebrow{font-size:12px;letter-spacing:3px;color:#e4cab0;margin-bottom:13px}.hero h1{font-size:49px;line-height:1.22;letter-spacing:3px;font-weight:750}.hero-copy>p:not(.eyebrow){color:#e2d9ca;margin:15px 0 20px;font-size:13px}.hero-link{font-size:13px;display:inline-flex;align-items:center;gap:25px;border-bottom:1px solid #a19889;padding-bottom:6px}.hero-caption{position:absolute;right:26px;bottom:22px;writing-mode:horizontal-tb;font-size:11px;letter-spacing:2px;text-shadow:0 1px 4px black}.hero-caption span{display:block;color:#e7d6c0;text-align:right;font-size:9px;margin-top:5px;letter-spacing:0}.notice-strip{display:flex;align-items:center;gap:11px;padding:16px 2px 24px;color:#696358;font-size:12px;line-height:1.7}.notice-strip strong{color:#4f493e;margin-right:8px}.notice-mark{display:grid;place-items:center;width:17px;height:17px;border:1px solid #9f8872;border-radius:50%;flex-shrink:0;font-size:11px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 326px;gap:32px;align-items:start}.menu-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 22px}.menu-heading h2{font-size:25px;font-weight:700;letter-spacing:.4px}.menu-heading p{font-size:11px;color:var(--muted);margin-top:6px}.item-count{font-size:11px;color:var(--muted);white-space:nowrap}.menu-toolbar{margin-bottom:20px}.categories{display:flex;gap:6px;border-bottom:1px solid var(--line);padding-bottom:15px;overflow-x:auto;scrollbar-width:none}.categories::-webkit-scrollbar{display:none}.category{font-size:12px;border-radius:6px;padding:9px 14px;color:#605d55;flex-shrink:0}.category:hover{background:#eee9df}.category.active{background:var(--ink);color:white}.filter-row{display:flex;justify-content:space-between;align-items:end;margin-top:15px;gap:10px}.search-label{font-size:10px;color:var(--muted);display:flex;gap:9px;align-items:center}.search-label input{border:1px solid var(--line);border-radius:6px;background:var(--white);padding:8px 11px;width:160px;font-size:12px;color:var(--ink)}input::placeholder,textarea::placeholder{color:#746c60}.selected-filter{display:flex;align-items:center;gap:6px;font-size:11px;color:#655f53;cursor:pointer;white-space:nowrap}.selected-filter input{accent-color:var(--red);width:14px;height:14px}.count-badge{font-size:10px;background:#eae5dc;min-width:18px;border-radius:4px;text-align:center;font-variant-numeric:tabular-nums}.dish-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px 15px}.dish{border:1px solid var(--line);background:var(--white);border-radius:10px;overflow:hidden;transition:border-color .2s,box-shadow .2s;position:relative}.dish.is-selected{border-color:#bf6a55;box-shadow:0 0 0 1px #bf6a5520}.dish-visual{height:137px;background:#f1eee6;position:relative;overflow:hidden}.dish-visual img{height:100%;width:100%;object-fit:cover;transition:transform .25s}.dish:hover .dish-visual img{transform:scale(1.04)}.dish-tag{position:absolute;left:10px;top:10px;background:#fffdf7ed;border-radius:4px;font-size:9px;padding:2px 6px;color:#716353}.dish-tag.reservation{background:#fff3eb;color:#9c3522}.selected-dot{position:absolute;right:9px;top:9px;background:var(--red);color:white;width:21px;height:21px;border-radius:50%;display:grid;place-items:center;font-size:11px}.dish-body{padding:12px}.dish h3{font-size:15px;font-weight:650;line-height:1.4;letter-spacing:.2px}.dish-note{font-size:10px;color:var(--muted);line-height:1.6;min-height:32px;margin-top:4px}.dish-bottom{display:flex;gap:4px;align-items:center;justify-content:space-between;margin-top:9px}.price{font-size:23px;font-weight:650;color:var(--red);line-height:1.2;font-variant-numeric:tabular-nums;white-space:nowrap;letter-spacing:-1px}.price .yuan{font-size:12px;letter-spacing:0}.price small{font-size:9px;font-weight:400;letter-spacing:0;color:var(--muted);margin-left:2px}.stepper{display:flex;align-items:center;border:1px solid #e4ded2;border-radius:6px;background:#fffdf8;height:30px;overflow:hidden;flex-shrink:0}.stepper button{height:28px;width:25px;padding:0;font-size:18px;line-height:1}.stepper button:last-child{color:var(--red);background:#f9eee7}.stepper button:hover:not(:disabled){background:#eee4d8}.stepper input{width:29px;min-width:0;appearance:textfield;-moz-appearance:textfield;border:0;border-left:1px solid #eee9df;border-right:1px solid #eee9df;background:transparent;text-align:center;font-size:12px;font-variant-numeric:tabular-nums;padding:0;color:var(--ink);height:28px;border-radius:0}.stepper input::-webkit-inner-spin-button,.stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.stepper input:focus{outline-offset:-2px}.no-results{text-align:center;padding:70px 10px;background:var(--white);border:1px dashed var(--line);border-radius:10px}.no-results>span{font-size:21px}.no-results p{color:var(--muted);margin:10px 0 20px}.menu-foot{margin-top:30px;padding:24px 0;border-top:1px solid var(--line)}.menu-foot strong{font-size:15px}.menu-foot p{font-size:12px;color:var(--muted);margin-top:8px;line-height:1.9}.cart{position:sticky;top:22px;background:var(--white);border:1px solid var(--line);border-radius:12px;padding:24px 22px;box-shadow:0 8px 25px #4d3e2510;max-height:calc(100dvh - 44px);overflow:auto;scrollbar-width:thin}.receipt-top{display:flex;justify-content:space-between;align-items:start}.little-label{font-size:9px;letter-spacing:2px;color:var(--muted)}.receipt-title h2{font-size:21px;margin-top:3px;font-weight:700;display:flex;align-items:center;gap:10px}.receipt-title h2 span{display:grid;place-items:center;font-size:11px;font-weight:500;width:22px;height:22px;background:#eee8dd;border-radius:50%}.cart-meta{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--muted);padding:14px 0;border-bottom:1px dashed #d8d0c2}.text-button{padding:2px 0;color:var(--red);font-size:11px;text-decoration:underline;text-underline-offset:3px}.cart-items{max-height:280px;overflow:auto;scrollbar-width:thin}.cart-empty{padding:26px 5px 25px;text-align:center;color:var(--muted)}.empty-mark{font-size:30px;font-weight:300;color:#b4a38d;line-height:1;letter-spacing:5px;display:block;margin-bottom:15px;transform:rotate(-9deg)}.cart-empty strong{font-size:13px;color:#686053;font-weight:500}.cart-empty p{font-size:11px;margin-top:4px}.cart-row{display:grid;grid-template-columns:minmax(0,1fr) 76px 48px;gap:9px;align-items:center;padding:12px 0;border-bottom:1px solid #eee9e0;font-size:12px}.cart-row-name{font-weight:500;overflow-wrap:anywhere}.cart-row-name small{display:block;font-size:10px;font-weight:400;color:var(--muted);margin-top:2px}.cart-row .stepper{height:26px}.cart-row .stepper button{height:24px;width:23px;font-size:15px}.cart-row .stepper input{height:24px;width:28px;font-size:11px}.row-subtotal{text-align:right;font-weight:650;font-variant-numeric:tabular-nums}.portion-panel{margin-top:18px;background:#f5f1e8;border-radius:8px;padding:13px}.portion-panel label{font-size:11px;font-weight:500;display:block;margin-bottom:7px}.portion-panel select{width:100%;background:#fffdf7;border:1px solid #e0d8ca;border-radius:5px;padding:6px 8px;color:#5c5547;font-size:11px}.people-line{display:flex;justify-content:space-between;margin-top:13px;align-items:center}.people-line>span{font-size:11px;color:#726955}.people-line strong{font-size:17px;color:#6b482b;font-weight:600}.portion-panel p{font-size:9px;line-height:1.8;margin-top:5px;color:#776d5b}.note-label{display:block;font-size:11px;font-weight:500;margin-top:18px}.note-label>span{font-size:9px;color:var(--muted);font-weight:400;margin-left:4px}.note-label textarea{display:block;width:100%;resize:vertical;min-height:58px;max-height:140px;font-size:11px;border:1px solid var(--line);border-radius:6px;padding:9px;margin-top:7px;background:#fffefb;color:var(--ink)}.order-warnings{font-size:10px;color:#97422b;background:#fcf0e8;border-radius:6px;padding:9px;margin-top:12px;line-height:1.8}.order-warnings p+p{margin-top:4px}.receipt-total{display:flex;justify-content:space-between;align-items:center;border-top:1px dashed #d8d0c2;padding-top:17px;margin-top:19px}.receipt-total>span{font-size:12px}.receipt-total small{display:block;font-size:8px;color:var(--muted);letter-spacing:1px;margin-top:1px}.receipt-total>strong{font-size:36px;line-height:1.2;font-weight:700;letter-spacing:-1px;font-variant-numeric:tabular-nums}.currency{font-size:19px;margin-right:3px}.cents{font-size:18px;letter-spacing:0}.primary,.secondary{display:inline-flex;justify-content:center;align-items:center;gap:10px;padding:12px 20px;border-radius:7px;font-size:13px;font-weight:600;text-align:center;cursor:pointer;white-space:nowrap}.primary{background:var(--red);color:white}.primary:hover:not(:disabled){background:var(--red-dark)}.secondary{background:#f0ece3;color:#4c463d;border:1px solid var(--line)}.save-button{width:100%;margin-top:17px}.save-button>span{font-size:17px;font-weight:400}.cart-footnote{font-size:9px;text-align:center;color:var(--muted);margin-top:10px}.icon-button{width:36px;height:36px;font-size:25px;display:grid;place-items:center;border-radius:50%;flex-shrink:0}.icon-button:hover{background:#efeae0}.mobile-only,.mobile-bar{display:none}footer{border-top:1px solid var(--line);display:flex;align-items:center;gap:20px;padding:24px 0 28px;margin-top:28px;font-size:10px;color:var(--muted)}.footer-brand{font-size:14px;font-weight:650;color:#625c50}footer a{margin-left:auto;white-space:nowrap}dialog{border:1px solid var(--line);border-radius:14px;padding:26px;background:var(--white);color:var(--ink);box-shadow:0 20px 100px #21180e40;max-width:calc(100vw - 32px)}dialog::backdrop{background:#28211990;backdrop-filter:blur(4px)}.small-dialog{width:400px}.dialog-heading{display:flex;justify-content:space-between;align-items:start;gap:20px}.dialog-heading h2{font-size:21px}.small-dialog>p{color:var(--muted);font-size:13px;margin-top:12px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}.image-dialog{width:560px;max-height:90dvh;padding:0;overflow:auto}.image-dialog>.dialog-heading{padding:20px}.dialog-heading p{font-size:11px;color:var(--muted);margin-top:5px}.image-preview{padding:18px 30px;background:#e8e1d5;max-height:57dvh;overflow:auto}.image-preview img{width:100%;box-shadow:0 3px 15px #5c442323}.image-dialog-actions{padding:20px;text-align:center}.image-dialog-actions>.primary{width:100%}.image-dialog-actions p{font-size:10px;color:var(--muted);margin-top:8px}.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);z-index:100;background:var(--ink);color:white;padding:12px 20px;border-radius:9px;font-size:12px;box-shadow:0 5px 20px #0002;max-width:calc(100vw - 32px);width:max-content}.cart-shade{display:none}
@media(min-width:1440px){.hero{min-height:350px}.hero-copy{padding:38px 48px}.hero h1{font-size:53px}.dish-visual{height:150px}}
@media(max-width:1199px){.header-inner{padding:0 32px}.page{padding:28px 32px 0}.workspace{gap:24px;grid-template-columns:minmax(0,1fr) 300px}.cart{padding:20px 18px}.dish-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dish-visual{height:150px}.category{padding:8px 11px}.menu-heading h2{font-size:23px}.search-label{display:block}.search-label input{display:block;margin-top:3px}.hero{min-height:320px}.hero h1{font-size:46px}.header-label{display:none}.menu-heading p{max-width:270px}}
@media(max-width:767px), (max-width:1023px) and (pointer:coarse){html{scroll-padding-top:20px}.site-header{height:76px}.header-inner{padding:0 20px}.brand{font-size:20px;gap:10px}.brand-seal{width:39px;height:39px;font-size:26px}.brand small{font-size:8px;letter-spacing:2.5px}.header-right{gap:0}.nav-link{font-size:12px}.nav-link span{margin-left:8px}.page{padding:18px 18px 90px}.hero{min-height:260px;border-radius:10px}.hero>img{object-position:63% center}.hero-shade{background:linear-gradient(90deg,#14120fdb,#14120f8c 55%,#14120f0a)}.hero-copy{padding:23px 25px}.eyebrow{font-size:10px;letter-spacing:2px}.hero h1{font-size:37px;letter-spacing:2px}.hero-copy>p:not(.eyebrow){font-size:11px;max-width:240px;line-height:1.8;margin-top:12px;margin-bottom:14px}.hero-link{font-size:11px;gap:20px}.hero-caption{bottom:17px;right:15px;font-size:0}.hero-caption span{font-size:8px}.notice-strip{align-items:start;padding:17px 1px 22px;font-size:10px;gap:8px}.notice-mark{margin-top:2px;width:15px;height:15px;font-size:10px}.workspace{display:block}.menu-heading{margin:2px 0 17px}.menu-heading h2{font-size:23px}.menu-heading p{font-size:10px;max-width:265px;margin-top:5px}.item-count{font-size:10px;align-self:start;margin-top:7px}.categories{padding-bottom:12px;gap:5px;margin-right:-18px;padding-right:18px}.category{padding:8px 12px;font-size:11px}.filter-row{margin-top:12px}.search-label{display:flex;font-size:10px}.search-label input{width:140px;margin:0;font-size:11px;padding:7px 9px}.selected-filter{font-size:10px;gap:3px}.dish-grid{gap:12px 11px}.dish-visual{height:auto;aspect-ratio:1.5}.dish-body{padding:11px}.dish h3{font-size:14px}.dish-note{font-size:9px;min-height:29px}.dish-bottom{margin-top:7px}.price{font-size:22px}.price small{font-size:8px}.stepper{height:32px}.stepper button{height:30px;width:27px}.stepper input{width:28px;height:30px}.dish-tag{font-size:8px;left:8px;top:8px}.selected-dot{width:18px;height:18px;font-size:10px;right:7px;top:7px}.menu-foot{padding:20px 0;margin-top:24px}.menu-foot strong{font-size:14px}.menu-foot p{font-size:11px}.cart{display:none}.cart.is-open{display:block;position:fixed;z-index:50;bottom:0;left:0;right:0;top:auto;max-height:89dvh;overflow:auto;border-radius:18px 18px 0 0;padding:23px 25px calc(22px + env(safe-area-inset-bottom));border-bottom:0}.cart-shade:not([hidden]){display:block;position:fixed;inset:0;background:#231c1573;z-index:49;backdrop-filter:blur(2px)}.cart-items{max-height:34dvh}.cart-row{grid-template-columns:minmax(0,1fr) 90px 60px;font-size:13px}.cart-row .stepper{height:32px;justify-self:end}.cart-row .stepper button{height:30px;width:29px}.cart-row .stepper input{height:30px;width:29px}.mobile-only{display:grid}.cart-footnote{font-size:10px}.mobile-bar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:40;align-items:center;justify-content:space-between;padding:12px 20px calc(12px + env(safe-area-inset-bottom));background:#fffefbf5;border-top:1px solid var(--line);box-shadow:0 -3px 15px #5c442309;backdrop-filter:blur(10px)}.mobile-bar>div>span{font-size:25px;line-height:1.1;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.5px}.mobile-bar small{display:block;font-size:9px;color:var(--muted);margin-top:3px}.mobile-bar .primary{padding:11px 20px;font-size:12px}.mobile-bar .primary span{background:#ffffff25;border-radius:4px;min-width:20px;font-size:10px;padding:0 4px}footer{margin-top:6px;display:grid;grid-template-columns:1fr auto;gap:8px;font-size:9px;padding:20px 0}footer p{grid-column:1/-1;grid-row:2}footer a{grid-column:2;grid-row:1}.toast{bottom:96px}.image-preview{padding:16px 22px}.image-dialog>.dialog-heading{padding:18px}.dialog-heading h2{font-size:19px}.image-dialog{max-width:calc(100vw - 24px)}}
@media(max-width:374px){.page{padding-left:12px;padding-right:12px}.header-inner{padding:0 14px}.dish-body{padding:9px}.dish h3{font-size:13px}.stepper button{width:24px}.stepper input{width:27px}.search-label{font-size:0}.search-label input{font-size:11px;width:150px}.price{font-size:20px}.dish-note{min-height:43px}.hero-copy{padding:26px 21px}.item-count{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media print{.site-header,.hero,.notice-strip,.menu,.mobile-bar,footer,.save-button,.text-button,.cart-footnote{display:none!important}.workspace{display:block}.cart{display:block!important;position:static!important;max-height:none!important;border:none;box-shadow:none}.cart-items{max-height:none}.page{padding:0}.stepper button{display:none}.cart-row .stepper{border:0}}
@media(max-width:374px){.categories{margin-right:-12px;padding-right:12px}.dish-bottom{flex-wrap:wrap;gap:7px}.dish-bottom .stepper{margin-left:auto}.stepper button{width:23px}.stepper input{width:25px}}

/* Mobile ordering layout: keep the dish list scannable with one thumb-sized action row. */
@media (max-width: 767px), (max-width: 1023px) and (pointer: coarse) {
  html { scroll-padding-top: 138px; }
  body { font-size: 15px; padding-bottom: env(safe-area-inset-bottom); }
  .site-header {
    position: sticky;
    top: 0;
    z-index: 25;
    height: 68px;
    padding-top: env(safe-area-inset-top);
  }
  .header-inner { min-height: 68px; }
  .brand { font-size: 18px; }
  .brand-seal { width: 40px; height: 40px; font-size: 25px; }
  .brand small { font-size: 7px; letter-spacing: 2px; }
  .nav-link { min-height: 44px; display: inline-flex; align-items: center; }
  .page { padding-top: 12px; }
  .hero { min-height: 176px; height: 176px; }
  .hero-copy { padding: 20px 22px; }
  .eyebrow { margin-bottom: 5px; font-size: 10px; }
  .hero h1 { font-size: 33px; line-height: 1.12; letter-spacing: 1px; }
  .hero-copy > p:not(.eyebrow) { margin: 8px 0 8px; font-size: 12px; }
  .hero-link { min-height: 44px; padding: 8px 0; font-size: 12px; }
  .hero-caption { bottom: 10px; right: 12px; }
  .notice-strip { padding: 12px 1px 16px; font-size: 12px; }
  .notice-mark { width: 20px; height: 20px; }
  .menu-heading { margin: 0 0 12px; }
  .menu-heading h2 { font-size: 22px; }
  .menu-heading p { font-size: 12px; line-height: 1.5; }
  .menu-toolbar {
    position: sticky;
    top: calc(68px + env(safe-area-inset-top));
    z-index: 20;
    margin: 0 -18px 16px;
    padding: 8px 18px 10px;
    background: color-mix(in srgb, var(--paper) 94%, transparent);
    border-bottom: 1px solid var(--line);
    backdrop-filter: blur(10px);
  }
  .categories {
    margin: 0 -18px;
    padding: 0 18px 8px;
    border-bottom: 0;
    gap: 6px;
    overscroll-behavior-x: contain;
  }
  .category { min-height: 44px; padding: 9px 13px; font-size: 12px; }
  .filter-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    margin-top: 4px;
  }
  .search-label { min-width: 0; gap: 8px; font-size: 12px; }
  .search-label input {
    width: auto;
    min-width: 0;
    flex: 1;
    min-height: 44px;
    padding: 8px 10px;
    font-size: 16px;
  }
  .selected-filter {
    min-height: 44px;
    padding: 0 2px;
    gap: 5px;
    font-size: 12px;
  }
  .selected-filter input { width: 20px; height: 20px; }
  .count-badge { min-width: 21px; padding: 1px 4px; font-size: 11px; }
  .dish-grid { display: grid; grid-template-columns: 1fr; gap: 10px; }
  .dish {
    display: grid;
    grid-template-columns: 94px minmax(0, 1fr);
    min-height: 132px;
    border-radius: 10px;
  }
  .dish-visual {
    height: 100%;
    min-height: 132px;
    aspect-ratio: auto;
    border-right: 1px solid var(--line);
  }
  .dish-visual img { object-fit: cover; }
  .dish-tag { left: 5px; top: 5px; max-width: 82px; font-size: 9px; white-space: normal; line-height: 1.25; }
  .selected-dot { right: 5px; top: 5px; width: 22px; height: 22px; }
  .dish-body { min-width: 0; padding: 11px 12px 9px; display: flex; flex-direction: column; justify-content: space-between; }
  .dish h3 { font-size: 16px; line-height: 1.35; }
  .dish-note { min-height: 0; margin-top: 4px; font-size: 12px; line-height: 1.45; overflow-wrap: anywhere; }
  .dish-bottom { min-width: 0; margin-top: 8px; gap: 8px; }
  .price { font-size: 22px; }
  .price small { font-size: 10px; }
  .stepper { height: 44px; border-radius: 8px; }
  .stepper button { width: 44px; height: 42px; font-size: 23px; }
  .stepper input { width: 38px; height: 42px; font-size: 16px; }
  .menu-foot { margin-top: 20px; padding: 18px 0; }
  .menu-foot strong { font-size: 15px; }
  .menu-foot p { font-size: 12px; }
  .cart.is-open {
    max-height: calc(100dvh - env(safe-area-inset-top));
    padding: max(18px, env(safe-area-inset-top)) 20px calc(18px + env(safe-area-inset-bottom));
    overscroll-behavior: contain;
  }
  .receipt-top { min-height: 44px; }
  .receipt-title h2 { font-size: 20px; }
  .mobile-only, .icon-button { width: 44px; height: 44px; min-width: 44px; }
  .cart-items { max-height: none; overflow: visible; }
  .cart-row { grid-template-columns: minmax(0, 1fr) 140px auto; gap: 8px; padding: 10px 0; font-size: 14px; }
  .cart-row .stepper { height: 44px; }
  .cart-row .stepper button { width: 40px; height: 42px; font-size: 21px; }
  .cart-row .stepper input { width: 36px; height: 42px; font-size: 16px; }
  .cart-row-name small { font-size: 12px; }
  .portion-panel { padding: 14px; }
  .portion-panel label, .note-label { font-size: 13px; }
  .portion-panel select, .note-label textarea { min-height: 44px; font-size: 16px; }
  .note-label textarea { min-height: 76px; }
  .portion-panel p, .cart-footnote { font-size: 12px; }
  .text-button { min-height: 44px; padding: 8px 2px; font-size: 12px; }
  .receipt-total > span { font-size: 14px; }
  .save-button { min-height: 48px; font-size: 14px; }
  .mobile-bar {
    padding-left: max(18px, env(safe-area-inset-left));
    padding-right: max(18px, env(safe-area-inset-right));
    padding-bottom: max(12px, env(safe-area-inset-bottom));
  }
  .mobile-bar .primary { min-height: 48px; padding: 11px 18px; font-size: 14px; }
  .mobile-bar small { font-size: 11px; }
  dialog { max-height: calc(100dvh - 24px); }
  .image-dialog { max-height: calc(100dvh - 24px); }
  .image-dialog > .dialog-heading { position: sticky; top: 0; z-index: 2; background: var(--white); }
  .image-preview { max-height: 48dvh; }
  .image-dialog-actions { padding-bottom: max(18px, env(safe-area-inset-bottom)); }
}

@media (max-width: 374px) {
  .header-inner { padding-left: 12px; padding-right: 12px; }
  .brand { font-size: 16px; }
  .brand-seal { width: 36px; height: 36px; font-size: 23px; }
  .page { padding-left: 12px; padding-right: 12px; }
  .menu-toolbar { margin-left: -12px; margin-right: -12px; padding-left: 12px; padding-right: 12px; }
  .categories { margin-left: -12px; margin-right: -12px; padding-left: 12px; padding-right: 12px; }
  .dish { grid-template-columns: 82px minmax(0, 1fr); }
  .dish-visual { min-height: 126px; }
  .dish-body { padding-left: 10px; padding-right: 10px; }
  .dish h3 { font-size: 15px; }
  .dish-note { font-size: 11px; }
  .dish-bottom { flex-wrap: wrap; }
  .dish-bottom .stepper { margin-left: auto; }
  .stepper button { width: 42px; }
  .stepper input { width: 34px; }
  .filter-row { gap: 4px; }
  .search-label { gap: 4px; }
  .search-label input { padding-left: 8px; padding-right: 8px; }
  .selected-filter { gap: 3px; font-size: 11px; }
}

@media (orientation: landscape) and (max-width: 767px), (orientation: landscape) and (max-width: 1023px) and (pointer: coarse) {
  .hero { min-height: 150px; height: 150px; }
  .hero-copy { padding-top: 14px; padding-bottom: 12px; }
  .hero h1 { font-size: 29px; }
  .notice-strip { padding-top: 8px; padding-bottom: 10px; }
  .cart.is-open { max-height: 96dvh; }
  .image-preview { max-height: 42dvh; }
}

@media (pointer: coarse) {
  .category, .nav-link, .primary, .secondary, .icon-button, .text-button { min-height: 44px; }
}

/* Keep touch targets at least 44px, including their actual content boxes. */
@media (max-width: 767px), (max-width: 1023px) and (pointer: coarse) {
  .stepper,.cart-row .stepper{height:46px}
  .stepper button,.cart-row .stepper button{width:44px;height:44px;min-width:44px}
  .stepper input,.cart-row .stepper input{height:44px;width:36px}
  .cart.is-open{max-height:min(calc(100dvh - env(safe-area-inset-top)),var(--visible-height,100dvh))}
  .dish-visual img{object-fit:contain}
  .order-warnings{font-size:12px}
  .dish-note{font-size:12px}
  .image-dialog-actions #shareImage{width:100%;margin-top:10px;min-height:44px}
}
@media(max-width:767px), (max-width:1023px) and (pointer:coarse){
  .hero-link{display:none}
  .hero-copy{padding-top:18px;padding-bottom:18px}
  .hero h1{font-size:30px}
  .receipt-top{position:sticky;top:-18px;z-index:2;background:var(--white);padding:6px 0}
}
/* A short landscape phone viewport prioritizes ordering over the photo banner. */
@media(orientation:landscape) and (max-height:500px) and (max-width:1023px) and (pointer:coarse){
  .site-header{height:52px}
  .header-inner{height:52px}
  .hero{display:none}
  .page{padding-top:10px}
  .notice-strip{padding:4px 0 10px;font-size:12px}
  .menu-heading{margin-bottom:4px}
  .menu-heading h2{font-size:18px}
  .menu-heading p{display:none}
  .menu-toolbar{top:calc(52px + env(safe-area-inset-top))}
}
