/* Customer marketplace: shared branding supplies every accent. */
@font-face{font-family:Inter;src:url('/vendors/fonts/inter/inter-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Inter;src:url('/vendors/fonts/inter/inter-600.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'Cormorant Garamond';src:url('/vendors/fonts/cormorant-garamond/cormorant-garamond-500.woff2') format('woff2');font-weight:500;font-display:swap}
/* Colours, type and spacing come from em-tokens.css (loaded first); this file only lays out. */
:root{--app-header-offset:var(--he-height,3.75rem);scroll-padding-top:calc(var(--app-header-offset) + 1rem)}
:root:has(body>.he-context-bar){--app-header-offset:6.25rem}
html.page-mode-embedded{--app-header-offset:0rem;scroll-padding-top:0!important}
.em-commerce{margin:0;background:var(--em-paper);color:var(--em-ink);font:400 1rem/1.6 Inter,system-ui,sans-serif;min-height:100vh}
html.page-mode-standalone .em-commerce{padding-top:var(--app-header-offset)}
html.page-mode-embedded .em-commerce{padding-top:0!important;scroll-padding-top:0!important}
.em-commerce *{box-sizing:border-box}
.em-commerce [hidden]{display:none!important}
.em-commerce a{color:var(--em-brand-ink);text-underline-offset:.2rem}
.em-commerce :focus-visible{outline:.1875rem solid var(--em-focus);outline-offset:.25rem}
.em-commerce :where(main,dialog) h1,.em-commerce :where(main,dialog) h2,.em-commerce :where(main,dialog) h3,.em-commerce :where(main,dialog) p{margin:0}
.em-commerce :where(main,dialog) h1,.em-commerce :where(main,dialog) h2,.em-commerce :where(main,dialog) h3{line-height:1.1;overflow-wrap:anywhere}
.em-commerce :where(main,dialog) p{max-width:70ch}
.em-commerce :where(main,dialog) input,.em-commerce :where(main,dialog) select,.em-commerce :where(main,dialog) textarea{font:inherit;color:var(--em-ink);background:var(--em-panel);border:.0625rem solid var(--em-line);border-radius:.65rem;min-height:3rem;width:100%;padding:.7rem .9rem;min-width:0}
.em-commerce :where(main,dialog) input::placeholder,.em-commerce :where(main,dialog) textarea::placeholder{color:var(--em-muted);opacity:1}
.em-commerce :where(main,dialog) input[type=checkbox]{width:1.35rem;height:1.35rem;min-height:1.35rem;accent-color:var(--em-brand);flex-shrink:0}
.em-commerce :where(main,dialog) textarea{resize:vertical}
.em-commerce button:disabled{opacity:.55;cursor:not-allowed}
.em-wrap{width:min(calc(100% - 3rem),82rem);margin-inline:auto;padding-block:2rem 5rem}
.em-skip{position:fixed;inset-block-start:.5rem;inset-inline-start:.5rem;transform:translateY(-200%);padding:.75rem;background:var(--em-panel);z-index:10000}
.em-skip:focus{transform:translateY(0)}
.em-path{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center;font-size:.8125rem;color:var(--em-muted);margin-bottom:1.5rem}
.em-path a{min-height:2.75rem;display:inline-flex;align-items:center;text-decoration:none}
.em-eyebrow{font-size:var(--em-text-xs);font-weight:600;letter-spacing:var(--em-tracking-eyebrow);text-transform:uppercase;color:var(--em-brand-ink)}
.em-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(15rem,.46fr);gap:3rem;align-items:center;padding-block:1rem 2.75rem;border-bottom:.0625rem solid var(--em-line);margin-bottom:2rem}
.em-hero h1{font:500 var(--em-hero)/1 var(--em-display);letter-spacing:-.03em;max-width:16ch;margin-block:.5rem .75rem}
/* Task pages (basket, checkout, orders, receipt, delivery, addresses) open with a task-sized title (DS2-14). */
.em-page-title{font:500 var(--em-title)/1.1 var(--em-display);letter-spacing:-.015em;margin-block:.35rem .5rem}
.em-hero h1 em{color:var(--em-brand-ink);font-weight:500}
.em-lede{color:var(--em-muted);font-size:1.0625rem;max-width:48ch!important}
.em-hero-note{border:.0625rem solid var(--em-line);padding:1.5rem;border-radius:1rem;background:var(--em-panel);display:grid;gap:1rem;transform:rotate(2deg)}
.em-hero-note .em-stamp{font:500 2.5rem/1 var(--em-display);max-width:11ch}
.em-note-rule{height:.0625rem;background:var(--em-line)}
/* 14px secondary ink: fees, expiry and recovery text are read, not skimmed (DS3 UX-29). */
.em-small{font-size:var(--em-text-sm);color:var(--em-ink-2)}
.em-button{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:3rem;min-width:2.75rem;padding:.75rem 1.1rem;border:.0625rem solid var(--em-brand);border-radius:.65rem;background:var(--em-brand);color:var(--em-on-brand);font:600 .875rem/1.4 Inter,system-ui,sans-serif;text-decoration:none;cursor:pointer;transition:background 180ms ease,transform 180ms ease}
.em-button:hover{background:var(--em-brand-hover);border-color:var(--em-brand-hover)}
.em-button.secondary:hover,.em-button.quiet:hover,.em-filter-row .em-button:hover{background:var(--em-wash);border-color:var(--em-line)}
.em-button.secondary{color:var(--em-ink);background:var(--em-panel);border-color:var(--em-line)}
.em-button.quiet{color:var(--em-brand-ink);background:transparent;border-color:transparent;text-decoration:underline}
.em-commerce a.em-button{color:var(--em-on-brand)}.em-commerce a.em-button.secondary{color:var(--em-ink)}.em-commerce a.em-button.quiet{color:var(--em-brand-ink)}
.em-icon-button{padding:.7rem;min-width:2.75rem;min-height:2.75rem;display:inline-flex;align-items:center;justify-content:center;background:var(--em-panel);color:var(--em-ink);border:.0625rem solid var(--em-line);border-radius:.6rem;cursor:pointer}
.em-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem}
.em-field{display:grid;gap:.4rem;min-width:0;font-size:.8125rem;font-weight:600}
.em-field .em-small{font-weight:400}
.em-search{display:grid;grid-template-columns:minmax(0,1fr) 11rem auto;gap:.75rem;align-items:end}
.em-filter-row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-block:1rem}
.em-filter-row .em-button{border-radius:2rem;background:transparent;color:var(--em-ink);border-color:var(--em-line);min-height:2.75rem;padding:.5rem 1rem;font-weight:400}
.em-filter-row .em-button[aria-pressed=true]{background:var(--em-brand);color:var(--em-on-brand);border-color:var(--em-brand)}
.em-advanced{margin-block:1rem;border-bottom:.0625rem solid var(--em-line);padding-bottom:1rem}
.em-commerce summary{min-height:2.75rem;cursor:pointer;color:var(--em-brand-ink);font-weight:600;display:list-item;padding:.5rem}
.em-advanced-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;padding-block:1rem}
.em-status{padding:1rem 1.1rem;background:var(--em-wash);border-radius:.7rem;color:var(--em-ink);font-size:.875rem;overflow-wrap:anywhere;margin-block:1rem}
.em-status:empty{display:none}
.em-status[role=alert]{border-inline-start:.25rem solid var(--status-danger,var(--em-brand-ink))}
.em-results-bar{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding-block:.25rem 1rem}
.em-results-bar h2{font:500 2.125rem/1.2 var(--em-display)}
.em-results-bar a{min-height:2.75rem;display:flex;align-items:center;gap:.5rem}
.em-market-layout{display:grid;grid-template-columns:minmax(0,1fr) 18rem;gap:2rem;align-items:start}
/* Auto-fill: 3 columns beside the basket at 1280, 4 at 1440, no breakpoint (DS2-11). */
.em-menu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,15.5rem),1fr));gap:1.25rem}
.em-dish{border:.0625rem solid var(--em-line);border-radius:1rem;overflow:hidden;background:var(--em-panel);display:flex;flex-direction:column;min-width:0}
.em-dish-media{background:var(--em-wash);aspect-ratio:4/3;width:100%;overflow:hidden;position:relative;display:grid;place-items:center;color:var(--em-muted)}
.em-dish-media img{width:100%;height:100%;object-fit:cover;transition:transform 250ms ease}
.em-dish:hover .em-dish-media img{transform:scale(1.035)}
.em-dish-media .fa-utensils{font-size:2.5rem;opacity:.55}
.em-dish-media .em-image-note{position:absolute;inset-block-end:.65rem;inset-inline-start:.75rem;font-size:.6875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.em-dish-body{padding:1.1rem;display:flex;flex-direction:column;gap:.6rem;flex:1}
.em-dish-provenance{font-size:var(--em-text-xs);letter-spacing:.02em;color:var(--em-brand-ink);min-height:2.75rem;display:inline-flex;align-items:center;gap:.4rem;text-decoration:none;font-weight:600}
.em-dish h3{font:500 1.8rem/1.05 var(--em-display)}
.em-dish-description{font-size:.8125rem;color:var(--em-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.em-tags{display:flex;flex-wrap:wrap;gap:.35rem}
.em-tag{font-size:var(--em-text-xs);padding:.2rem .5rem;border-radius:.3rem;background:var(--em-wash);color:var(--em-ink)}
.em-dish-footer{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:auto;padding-top:.6rem}
.em-price{font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}
.em-dish-footer .em-button{padding:.5rem .8rem;font-size:.8125rem}
.em-basket-preview{position:sticky;top:calc(var(--app-header-offset) + 1rem);border:.0625rem solid var(--em-line);border-radius:1rem;padding:1.5rem;background:var(--em-panel);display:grid;gap:1rem}
.em-basket-preview h2{font:500 2rem/1 var(--em-display)}
.em-preview-items{display:grid;gap:.75rem;font-size:.8125rem;max-height:20rem;overflow:auto}
.em-preview-line{display:flex;justify-content:space-between;gap:1rem}
.em-preview-line span:first-child{overflow-wrap:anywhere}
.em-preview-total{display:flex;justify-content:space-between;gap:1rem;border-top:.0625rem solid var(--em-line);padding-top:1rem;font-weight:600}
.em-pagination{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;margin-block:2rem}
.em-safety{font-size:.75rem;color:var(--em-muted);padding-block:1rem;border-top:.0625rem solid var(--em-line)}
.em-empty{grid-column:1/-1;padding:3rem 1.5rem;border:.0625rem dashed var(--em-line);border-radius:1rem;text-align:center;display:grid;justify-items:center;gap:1rem}
.em-empty h2{font:500 2.5rem/1 var(--em-display)}
.em-skeleton{height:23rem;border-radius:1rem;background:var(--em-wash);animation:em-breathe 1.6s ease infinite}
@keyframes em-breathe{50%{opacity:.5}}
.em-dialog{padding:0;border:.0625rem solid var(--em-line);border-radius:1rem;background:var(--em-panel);color:var(--em-ink);width:min(42rem,calc(100% - 2rem));max-height:85vh;max-height:85dvh;overflow:hidden}
.em-dialog::backdrop{background:rgba(0,0,0,.65)}
.em-dialog-inner{display:flex;flex-direction:column;max-height:85vh;max-height:85dvh}
.em-dialog-head,.em-dialog-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.5rem;flex-shrink:0;border-bottom:.0625rem solid var(--em-line)}
.em-dialog-footer{border-bottom:0;border-top:.0625rem solid var(--em-line)}
.em-dialog-head h2{font:500 2rem/1 var(--em-display)}
.em-dialog-body{padding:1.5rem;overflow-y:auto;display:grid;gap:1rem}
.em-detail-data{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.em-detail-data dt{font-size:var(--em-text-xs);letter-spacing:.07em;text-transform:uppercase;color:var(--em-muted)}
.em-detail-data dd{margin:0;font-size:.875rem}
.em-quantity{display:flex;align-items:center;gap:.4rem;max-width:11rem}
.em-quantity input{width:4rem;text-align:center}
.em-quantity .em-icon-button{flex-shrink:0}
.em-steps{display:flex;flex-wrap:wrap;gap:1.25rem;align-items:center;padding-block:1rem;font-size:.75rem;color:var(--em-muted)}
.em-steps span{display:inline-flex;gap:.5rem;align-items:center}
.em-steps b{width:1.65rem;height:1.65rem;border:.0625rem solid var(--em-line);border-radius:50%;display:grid;place-items:center}
.em-steps [aria-current=step]{color:var(--em-brand-ink);font-weight:600}
.em-steps [aria-current=step] b{background:var(--em-brand);color:var(--em-on-brand);border-color:var(--em-brand)}
.em-two-column{display:grid;grid-template-columns:minmax(0,1fr) 24rem;gap:2rem;align-items:start;margin-top:2rem}
.em-card{border:.0625rem solid var(--em-line);border-radius:1rem;padding:1.5rem;background:var(--em-panel);min-width:0;overflow-wrap:anywhere;display:grid;gap:1rem}
.em-card h2{font:500 2.25rem/1 var(--em-display)}
.em-section-label{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding-block:.5rem 1rem}
.em-section-label h2{font:500 2rem/1 var(--em-display)}
.em-line-item{display:grid;grid-template-columns:5rem minmax(0,1fr) auto;gap:1rem;border-bottom:.0625rem solid var(--em-line);padding-block:1.25rem}
.em-line-item h3{font:500 1.65rem/1.1 var(--em-display)}
.em-line-media{width:5rem;height:5rem;aspect-ratio:1;border-radius:.6rem}
.em-line-content{display:grid;gap:.65rem;min-width:0}
.em-line-price{align-self:start;text-align:end;font-size:.875rem;font-weight:600}
.em-line-item .em-actions{gap:.5rem}
.em-line-item .em-quantity input{min-height:2.75rem}
.em-line-item .em-small{overflow-wrap:anywhere}
.em-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.em-form-wide{grid-column:1/-1}
.em-form-error{font-size:.8125rem;font-weight:400;color:var(--em-ink);border-inline-start:.2rem solid var(--status-danger,var(--em-brand));padding-inline-start:.6rem}
.em-summary{position:sticky;top:calc(var(--app-header-offset) + 1rem)}
.em-pricing{display:grid;gap:.7rem;font-size:.875rem}
.em-pricing-row{display:flex;justify-content:space-between;gap:1rem}
.em-pricing-row span:last-child{font-variant-numeric:tabular-nums;white-space:nowrap}
.em-pricing-row.total{font-size:1.125rem;font-weight:600;border-top:.0625rem solid var(--em-line);padding-top:1rem}
.em-recovery{background:var(--em-wash);border-radius:.6rem;padding:1rem;font-size:.8125rem;display:grid;gap:.75rem}
.em-checkout-grid{display:grid;grid-template-columns:minmax(0,1fr) 22rem;gap:2rem;align-items:start}
.em-checkout-stack{display:grid;gap:1.5rem}
.em-checkout-items{display:grid;gap:.75rem}
.em-checkout-item{display:flex;justify-content:space-between;gap:1rem;font-size:.875rem;padding-bottom:.75rem;border-bottom:.0625rem solid var(--em-line)}
.em-delivery-group{display:grid;gap:.4rem;border-inline-start:.2rem solid var(--em-brand);padding:.75rem 1rem;background:var(--em-wash);border-radius:.5rem}
.em-delivery-group h3{font:500 1.6rem/1.1 var(--em-display)}
.em-check-label{display:flex;gap:.75rem;align-items:center;font-size:.875rem;min-height:2.75rem}
.em-checkout-total{font:500 3.5rem/1 var(--em-display);margin-block:.5rem!important}
.em-order-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:1.5rem;align-items:start}
.em-order-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.em-order-list h2{font:500 2rem/1 var(--em-display)}
.em-order-list a{min-height:2.75rem;display:inline-flex;align-items:center}
.em-status-pill{display:inline-flex;align-items:center;gap:.4rem;font-size:var(--em-text-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;background:var(--em-wash);padding:.35rem .6rem;border-radius:.35rem;justify-self:start}
.em-order-section{display:grid;gap:1.25rem}
.em-delivery-history{border-top:.0625rem solid var(--em-line);padding-top:1rem;margin-top:1rem;display:grid;gap:.75rem}
.em-delivery-history h3{font-size:1rem;font-weight:600}
.em-delivery-timeline{list-style:none;margin:0;padding:0;display:grid;gap:1rem}
.em-delivery-timeline li{display:grid;gap:.35rem;border-inline-start:.125rem solid var(--em-brand);padding-inline-start:.75rem;overflow-wrap:anywhere}
.em-delivery-timeline strong{font-size:.875rem;font-weight:600}
.em-footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;border-top:.0625rem solid var(--em-line);padding-block:2rem;margin-top:3rem;font-size:.8125rem;color:var(--em-muted)}
.em-footer a{min-height:2.75rem;display:inline-flex;align-items:center}
@media(max-width:64rem){.em-market-layout{grid-template-columns:minmax(0,1fr) 16rem;gap:1rem}.em-hero{gap:2rem}.em-two-column{grid-template-columns:minmax(0,1fr) 21rem;gap:1.5rem}.em-basket-preview{padding:1rem}}
@media(max-width:48rem){.em-wrap{width:calc(100% - 2rem);padding-top:1rem}.em-hero{grid-template-columns:1fr;padding-bottom:2rem}.em-hero-note{display:none}.em-market-layout,.em-two-column,.em-checkout-grid,.em-order-grid{grid-template-columns:1fr}.em-basket-preview,.em-summary{position:static}.em-market-layout .em-basket-preview{grid-row:1}.em-preview-items{max-height:7rem}.em-search{grid-template-columns:minmax(0,1fr) 10rem}.em-search>button{grid-column:1/-1}.em-order-list{grid-template-columns:repeat(2,minmax(0,1fr))}.em-advanced-fields{grid-template-columns:1fr}.em-dialog-head,.em-dialog-footer{padding:1rem}.em-dialog-body{padding:1rem}.em-checkout-grid{gap:1.25rem}}
@media(max-width:30rem){.em-wrap{width:calc(100% - 1.5rem)}.em-order-list{grid-template-columns:1fr}.em-search,.em-form-grid{grid-template-columns:1fr}.em-search>button,.em-form-wide{grid-column:auto}.em-line-item{grid-template-columns:3.5rem minmax(0,1fr);gap:.75rem}.em-line-media{width:3.5rem;height:3.5rem}.em-line-price{grid-column:2;text-align:start}.em-card{padding:1.1rem}.em-detail-data{grid-template-columns:1fr}.em-dialog-footer{flex-wrap:wrap}.em-results-bar{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.em-commerce *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Kitchen preparation shares the customer handoff vocabulary. */
.em-preparation-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) auto;align-items:end;gap:1rem}
.em-preparation-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:1.5rem}
.em-preparation-count{display:grid;gap:.4rem;border-top:.0625rem solid var(--em-line);padding-top:1rem}
.em-preparation-count strong{font:500 2.5rem/1 var(--em-display)}
.em-preparation-dishes{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}
.em-preparation-dishes li{border-top:.0625rem solid var(--em-line);padding-top:.75rem}
.em-operations{display:grid;gap:1.25rem;margin-top:3rem;border-top:.0625rem solid var(--em-line);padding-top:2rem}
.em-operations h3{font:500 1.8rem/1.1 var(--em-display)}
.em-operations details{border:.0625rem solid var(--em-line);border-radius:.6rem;padding:1rem;font-size:.875rem}
.em-operations summary{cursor:pointer;min-height:2.75rem;display:flex;align-items:center;font-weight:600}
@media(max-width:48rem){.em-preparation-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.em-preparation-filters>button{grid-column:1/-1}.em-preparation-counts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:30rem){.em-preparation-filters{grid-template-columns:1fr}.em-preparation-filters>button{grid-column:auto}}

.em-info{display:inline-flex;align-items:center;justify-content:center;justify-self:start;min-height:2.75rem;min-width:2.75rem;border:.0625rem solid var(--em-line);border-radius:50%;background:var(--em-panel);color:var(--em-ink);font-weight:600;cursor:pointer}
.em-help-dialog{width:min(30rem,calc(100% - 2rem));max-height:85vh;max-height:85dvh;border:.0625rem solid var(--em-line);border-radius:1rem;background:var(--em-panel);color:var(--em-ink);padding:1.5rem;overflow:auto}
.em-help-dialog::backdrop{background:rgba(0,0,0,.65)}
.em-help-dialog h2{font:500 2.25rem/1.1 var(--em-display);margin-bottom:1rem!important}.em-help-dialog p{margin-bottom:1.5rem!important}
#menu-recovery{grid-column:1/-1}
.em-summary a:not(.em-button){display:inline-flex;align-items:center;min-height:2.75rem}

/* ---- P1 layer (DS2/DS3 section B): components over em-tokens.css ---------------------------- */
.em-visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.em-price,.em-line-price,.em-pricing-row span:last-child,.em-preview-total,.em-preparation-count strong,.em-checkout-total{font-variant-numeric:var(--em-num)}
/* Headings inside tasks are UI-sized, not display posters. */
.em-card h2,.em-section-label h2,.em-results-bar h2,.em-basket-preview h2,.em-order-list h2,.em-empty h2{font:500 var(--em-text-2xl)/1.15 var(--em-display)}
.em-dialog-head h2{font:600 var(--em-text-xl)/1.25 var(--em-font-ui)}
.em-delivery-group h3,.em-line-item h3{font:600 var(--em-text-base)/1.3 var(--em-font-ui)}
/* Mega Menu: compact hero, search and filters right beneath it (DS3 UX-05). */
main:has(#menu-search) .em-hero{grid-template-columns:1fr;padding-block:0 1rem;margin-bottom:1rem;gap:0}
main:has(#menu-search) .em-hero h1{font-size:clamp(2rem,4.5vw,3.25rem)}
main:has(#menu-search) .em-hero-note{display:none}
main:has(#menu-search) .em-path{margin-bottom:.5rem}
/* Dish card (DS2 4.5). */
.em-dish{border-color:var(--em-line-soft);box-shadow:var(--em-shadow-1);transition:box-shadow var(--em-dur-2) var(--em-ease)}
.em-dish:hover{box-shadow:var(--em-shadow-2)}
.em-dish:hover .em-dish-media img{transform:none}
.em-dish h3{font:600 var(--em-text-lg)/1.25 var(--em-font-ui);letter-spacing:0}
.em-dish-provenance{color:var(--em-ink-2)}
.em-dish-body{padding:var(--em-space-3) var(--em-space-4) var(--em-space-4);gap:var(--em-space-2)}
.em-tag{border:.0625rem solid var(--em-line-soft);border-radius:var(--em-radius-pill);padding:.15rem .55rem;font-weight:600}
.em-price{font-weight:700;font-size:var(--em-text-lg)}
.em-dish-allergens{display:flex;gap:.4rem;align-items:baseline;font-size:var(--em-text-xs);font-weight:600;line-height:1.4;padding:.4rem .6rem;border-radius:var(--em-radius-sm);border:.0625rem solid var(--em-caution-line);background:var(--em-caution-wash);color:var(--em-caution-ink)}
.em-dish-allergens[data-allergen-status=UNKNOWN]{border-style:dashed;border-color:var(--em-line);background:transparent;color:var(--em-ink)}
.em-dish-allergens[data-allergen-status=NONE]{border-color:var(--em-line-soft);background:var(--em-wash);color:var(--em-ink)}
.em-dish-footer{flex-wrap:wrap}
/* Quiet no-photo tile: tonal, glyph only, no caption (DS2-10). */
.em-dish-media.no-photo{background:linear-gradient(135deg,var(--em-wash),var(--em-wash-2));color:var(--em-ink-3)}
.em-dish-media.no-photo i{font-size:2rem;opacity:.7}
.em-line-media.no-photo i{font-size:1.25rem}
:root[data-theme=dark] .em-dish-media img{filter:brightness(.92) contrast(1.02)}
/* Cart: kitchen on every line; multi-kitchen note (DS3 UX-09). */
.em-line-kitchen{font-size:var(--em-text-xs);font-weight:600;color:var(--em-ink-2);display:flex;gap:.4rem;align-items:center}
.em-commerce .em-note{background:var(--em-info-wash);color:var(--em-info-ink);padding:.75rem 1rem;border-radius:var(--em-radius-md);font-size:var(--em-text-sm);margin-block:.5rem 1rem}
/* Price as a designed element (DS2-07). */
.em-pricing-row.total{font-size:var(--em-text-lg);font-weight:700}
.em-pricing-row.total span:last-child{font-size:var(--em-text-2xl)}
.em-checkout-total{font:700 2rem/1.1 var(--em-font-ui)}
/* Consent next to the pay action it gates (DS3 UX-09). */
.em-consent{display:grid;gap:.5rem;padding:.75rem 1rem;border:.0625rem solid var(--em-caution-line);background:var(--em-caution-wash);border-radius:var(--em-radius-md);color:var(--em-ink);font-size:var(--em-text-sm)}
.em-consent p{color:var(--em-caution-ink);font-weight:600}
/* Paid confirmation and completed steps (DS3 UX-10). */
.em-confirmation{border:.125rem solid var(--em-leaf-line);background:var(--em-leaf-wash);color:var(--em-ink);margin-block:1rem 1.5rem}
.em-confirmation h2{font:600 var(--em-text-2xl)/1.2 var(--em-font-ui);color:var(--em-leaf-ink)}
.em-confirmation-total{font:700 var(--em-text-2xl)/1.2 var(--em-font-ui);font-variant-numeric:var(--em-num)}
.em-confirmation .em-small{color:var(--em-ink)}
.em-steps [data-state=done]{color:var(--em-leaf-ink)}
.em-steps [data-state=done] b{background:var(--em-leaf-wash);border-color:var(--em-leaf-line);color:var(--em-leaf-ink)}
/* 44px recovery links (DS3 UX-29). */
.em-commerce p.em-form-wide>a,.em-recovery a:not(.em-button),.em-card>a:not(.em-button){display:inline-flex;align-items:center;min-height:2.75rem}
/* Toast beside the pressed control (DS3 UX-04). */
.em-toast{position:fixed;z-index:900;display:flex;align-items:center;flex-wrap:wrap;gap:.25rem .6rem;max-width:min(24rem,calc(100vw - 1rem));padding:.5rem .9rem;border-radius:var(--em-radius-md);background:var(--em-ink);color:var(--em-bg);box-shadow:var(--em-shadow-2);font-size:var(--em-text-sm);font-weight:600;animation:em-toast-in var(--em-dur-2) var(--em-ease)}
.em-toast[hidden]{display:none}
.em-toast i{color:var(--em-leaf-line)}
.em-commerce .em-toast a{color:var(--em-bg);min-height:2.75rem;display:inline-flex;align-items:center;text-decoration:underline}
.em-toast.docked{left:50%;transform:translateX(-50%);bottom:calc(1rem + env(safe-area-inset-bottom))}
body:has(.em-basket-preview[data-count]:not([data-count="0"])) .em-toast.docked{bottom:calc(6rem + env(safe-area-inset-bottom))}
@keyframes em-toast-in{from{opacity:0}}
@media(max-width:48rem){
  /* The basket becomes a sticky bottom bar once it holds a dish (DS3 UX-05/06, DS2 4.5). */
  .em-market-layout .em-basket-preview{grid-row:auto;display:none}
  .em-market-layout .em-basket-preview[data-count]:not([data-count="0"]){display:grid;position:fixed;inset-inline:0;inset-block-end:0;top:auto;z-index:60;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0 .75rem;padding:.6rem 1rem calc(.6rem + env(safe-area-inset-bottom));border-radius:1rem 1rem 0 0;border-width:.0625rem 0 0;box-shadow:0 -.25rem 1rem rgb(0 0 0 / .12)}
  .em-basket-preview[data-count] :is(.em-eyebrow,#basket-preview-items,.em-small:not(#basket-count)){display:none}
  .em-basket-preview[data-count] h2{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .em-basket-preview[data-count] #basket-count{grid-column:1;font-weight:600;color:var(--em-ink)}
  .em-basket-preview[data-count] .em-preview-total{grid-column:1;border:0;padding:0;font-size:var(--em-text-sm)}
  .em-basket-preview[data-count] .em-button{grid-column:2;grid-row:1/span 2}
  body:has(.em-basket-preview[data-count]:not([data-count="0"])) .em-wrap{padding-bottom:8rem}
  main:has(#menu-search) .em-filter-row{flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:.25rem;margin-block:.5rem}
  main:has(#menu-search) .em-filter-row>*{flex-shrink:0;scroll-snap-align:start}
}
@media(max-width:30rem){
  /* Compact dish rows: text left, square photo right (DS2-08). */
  .em-dish{display:grid;grid-template-columns:minmax(0,1fr) 6.5rem;align-items:start}
  .em-dish>.em-dish-media{grid-column:2;grid-row:1;width:6.5rem;aspect-ratio:1;margin:.75rem .75rem 0 0;border-radius:var(--em-radius-md)}
  .em-dish>.em-dish-body{grid-column:1;grid-row:1;padding:.5rem .75rem .75rem}
  .em-dish-description{display:none}
  .em-dish h3{font-size:var(--em-text-base)}
}
main:has(#menu-search) .em-hero h1{max-width:none}
main:has(#menu-search) .em-lede{font-size:var(--em-text-base);max-width:72ch!important}
main:has(#menu-search) .em-advanced{margin-block:.25rem .5rem;padding-bottom:.25rem}
main:has(#menu-search) #allergen-filter-note{margin-block:0 .25rem}
.em-status{padding:.6rem .9rem;margin-block:.75rem;font-size:var(--em-text-sm)}
.em-safety{max-width:none}
@media(max-width:48rem){
  main:has(#menu-search) .em-lede{display:none}
  main:has(#menu-search) .em-hero{padding-bottom:.5rem;margin-bottom:.75rem}
}
@media(max-width:30rem){
  main:has(#menu-search) .em-search{grid-template-columns:minmax(0,1fr) auto}
  main:has(#menu-search) .em-search>label:first-child{grid-column:1/-1}
  main:has(#menu-search) .em-search>button{grid-column:auto}
  .em-dish>.em-dish-body{gap:.35rem}
  .em-dish .em-dish-footer{padding-top:.25rem}
  .em-dish .em-dish-body>.em-button.quiet{justify-content:flex-start;padding-inline:0;min-height:2.75rem}
}
