/* ============================================================
   Weekly menu — spacious editorial layout (design-approved mock)
   Cream canvas, white cards, Afitt display headings, red pill
   CTAs, A/B choice rows with inline quantity steppers, a right
   "Rendelésed" summary rail and a mobile order bar.
   Depends on: tokens.css, base.css, typography.css, buttons.css
   ============================================================ */

.wm-wrap { max-width: 1320px; margin: 0 auto; padding: 0 24px 64px; }
.wm-page { position: relative; }

/* [hidden] must always win over component display rules. The add pill keeps
   its node in the DOM (focus return after the config sheet), so without this
   an author `display:inline-flex` beats the UA hidden rule and the "hidden"
   pill stays rendered AND tabbable next to the stepper. */
.afitt-weekly-page [hidden] { display: none !important; }

/* The PROMPT 1 header stack is the single scroll owner; JS keeps
   --wm-sticky-offset / --wm-daynav-h in sync for sticky offsets. */
.afitt-weekly-page .afitt-header-stack {
	position: sticky;
	top: var(--afitt-stack-top, 0);
	z-index: var(--z-sticky, 200);
}

/* ---------- Intro (was the gradient hero) ---------- */
.wm-intro { margin-top: var(--space-xl); }
.wm-eyebrow {
	display: block; font-family: var(--font-ui); font-size: 0.72rem; font-weight: 700;
	letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-text-muted, #76685F);
	margin: 0 0 6px;
}
.wm-intro__top { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: var(--space-md) var(--space-xl); }
.wm-intro__lead { min-width: 0; }
.wm-intro__title {
	font-family: var(--font-display); font-weight: 400; text-transform: none; font-synthesis: none;
	font-size: clamp(2.4rem, 5vw, 3.6rem); line-height: 1.04; letter-spacing: -0.015em; margin: 0;
	color: var(--color-text-primary, #211A16);
}
.wm-intro__sub { margin: var(--space-xs) 0 0; font-size: 1.15rem; color: var(--color-text-secondary, #5C4F47); }
.wm-intro__note { margin: var(--space-md) 0 0; font-size: 0.9rem; color: var(--color-text-secondary, #5C4F47); }

/* Week navigation (real published weeks only) */
.wm-weeknav { display: flex; flex-direction: column; gap: 6px; }
.wm-weeknav__label { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--color-text-muted, #76685F); }
.wm-weeknav__ctl { display: inline-flex; align-items: center; gap: var(--space-sm); }
.wm-weeknav__range { font-weight: 700; font-size: 1.02rem; white-space: nowrap; }
.wm-weeknav__btn {
	width: 40px; height: 40px; display: grid; place-items: center; flex: 0 0 auto;
	border: 1px solid var(--color-border-light, #E8DED5); border-radius: var(--radius-full);
	background: var(--color-bg-white, #fff); color: var(--color-text-primary, #211A16);
}
a.wm-weeknav__btn:hover { border-color: var(--color-brand-red-bright, #E11B1C); color: var(--color-brand-red-bright, #E11B1C); }
.wm-weeknav__btn.is-disabled { opacity: 0.45; cursor: default; }

/* Info row: minimum / packaging / preorder state */
.wm-info { list-style: none; display: flex; flex-wrap: wrap; gap: var(--space-md) var(--space-xl); margin: var(--space-lg) 0 0; padding: 0; }
.wm-info__item { display: flex; align-items: center; gap: var(--space-sm); min-width: 0; }
.wm-info__ico {
	width: 44px; height: 44px; flex: 0 0 auto; display: grid; place-items: center;
	border-radius: var(--radius-full); color: var(--color-brand-red-bright, #E11B1C);
	background: color-mix(in srgb, var(--color-brand-red-bright, #E11B1C) 10%, #fff);
}
.wm-info__body { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.wm-info__k { font-size: 0.78rem; font-weight: 700; color: var(--color-text-secondary, #5C4F47); }
.wm-info__k.is-open { color: #166534; }
.wm-info__k.is-closed { color: #9E2013; }
.wm-info__k.is-preview { color: #7A5C00; }
.wm-info__v { font-size: 1.05rem; }
.wm-info__s { font-size: 0.82rem; color: var(--color-text-muted, #76685F); }

/* ---------- Day chips ---------- */
.wm-daynav {
	position: sticky; top: calc(var(--afitt-stack-top, 0px) + var(--wm-sticky-offset, 0px));
	z-index: var(--z-sticky, 200); margin-top: var(--space-lg);
	background: var(--color-bg-cream, #FFF7E8); padding: var(--space-sm) 0;
}
.wm-daynav__track { display: flex; gap: var(--space-xs); overflow-x: auto; scrollbar-width: none; }
.wm-daynav__track::-webkit-scrollbar { display: none; }
.wm-daynav__chip {
	flex: 0 0 auto; min-width: 72px; display: grid; grid-template-columns: auto auto; grid-template-areas: "wd num" "full full";
	justify-content: center; align-items: baseline; column-gap: 6px; row-gap: 1px;
	padding: 8px 12px; border: 1px solid var(--color-border-light, #E8DED5); border-radius: var(--radius-lg);
	background: var(--color-bg-white, #fff); color: var(--color-text-primary, #211A16); text-align: center;
	text-decoration: none; transition: border-color var(--transition-fast), background var(--transition-fast);
}
.wm-daynav__chip:hover { border-color: var(--color-brand-red-bright, #E11B1C); }
.wm-daynav__chip.is-active { border-color: var(--color-brand-red-bright, #E11B1C); background: #FFF1F0; }
.wm-daynav__chip.is-today { box-shadow: inset 0 0 0 2px var(--color-brand-red-bright, #E11B1C); }
.wm-daynav__chip.is-muted { opacity: 0.55; }
.wm-daynav__wd { grid-area: wd; font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--color-text-secondary, #5C4F47); }
.wm-daynav__num { grid-area: num; font-size: 1.2rem; font-weight: 800; }
.wm-daynav__full { grid-area: full; font-size: 0.72rem; color: var(--color-text-muted, #76685F); }

/* ---------- Layout: day grid + summary rail ---------- */
.wm-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: var(--space-lg); align-items: start; margin-top: var(--space-md); }
.wm-feed { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-lg); min-width: 0; }
.wm-feed > .wm-nomenu { grid-column: 1 / -1; }

/* ---------- Day card ---------- */
.wm-day {
	position: relative; overflow: hidden; background: var(--color-bg-white, #fff);
	border: 1px solid var(--color-border-light, #E8DED5); border-radius: var(--radius-lg); padding: var(--space-lg);
	box-shadow: var(--shadow-card, 0 2px 8px rgba(0,0,0,0.08));
	scroll-margin-top: calc(var(--wm-day-snap, 128px));
	min-width: 0;
}
.wm-day__accent { position: absolute; inset: 0 0 auto 0; height: 4px; background: linear-gradient(90deg, var(--color-brand-red-bright, #E11B1C), #0E7C7B, #C7D819, #F47A1F); }
.wm-day.is-today { outline: 2px solid var(--color-brand-red-bright, #E11B1C); outline-offset: 2px; }
.wm-day__head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-sm); margin-bottom: var(--space-md); }
.wm-day__title { display: flex; align-items: baseline; gap: 10px; margin: 0; font-weight: 700; }
.wm-day__num { font-family: var(--font-display); font-weight: 400; font-size: 2rem; line-height: 1; font-synthesis: none; }
.wm-day__wd { font-size: 1.05rem; font-weight: 700; }
.wm-day__today { font-size: 0.65rem; font-weight: 700; padding: 3px 8px; background: var(--color-brand-red-bright, #E11B1C); color: #fff; border-radius: var(--radius-full); align-self: center; }
.wm-day__state { display: inline-flex; align-items: center; gap: 6px; font-size: 0.82rem; font-weight: 700; white-space: nowrap; }
.wm-day__state.is-open { color: #166534; }
.wm-day__state.is-closed { color: #9E2013; }
.wm-day__dot { width: 8px; height: 8px; border-radius: var(--radius-full); background: currentColor; flex: 0 0 auto; }

/* soup panel — light mint, readable dark text */
.wm-day__soup {
	display: flex; align-items: center; gap: var(--space-sm); padding: 10px 14px;
	background: #E6F4F1; border-radius: var(--radius-md); margin-bottom: var(--space-md);
}
.wm-day__soup-ico { width: 36px; height: 36px; flex: 0 0 auto; display: grid; place-items: center; border-radius: var(--radius-full); background: #fff; color: #0E7C7B; }
.wm-day__soup-body { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.wm-day__soup-k { font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: #0E7C7B; }
.wm-day__soup-name { font-size: 1.02rem; color: #123B37; }
.wm-day__soup-desc { font-size: 0.82rem; color: #2C5A55; }

/* A/B choice rows — stable two-row grid in EVERY state:
   row 1: A/B badge + the full name area (extras under the name),
   row 2: price left, fixed-size action place right. The name never shares a
   row with the action, so the add→selected swap cannot squeeze it. */
.wm-day__choices { display: flex; flex-direction: column; gap: var(--space-sm); }
.wm-choice {
	--wm-act-h: 46px;
	--wm-cta-w: 140px;
	display: grid; grid-template-columns: auto minmax(0, 1fr) auto;
	grid-template-areas: "badge body body" ". price cta";
	align-items: start; column-gap: var(--space-md); row-gap: 10px;
	padding: 12px 12px 12px 10px; border: 1px solid var(--color-border-light, #E8DED5); border-radius: var(--radius-md);
	transition: border-color var(--transition-fast), background var(--transition-fast);
}
.wm-choice__badge {
	grid-area: badge;
	width: 34px; height: 34px; display: grid; place-items: center; border-radius: var(--radius-sm);
	font-weight: 700; color: #fff; font-size: 1.02rem;
}
.wm-choice--a .wm-choice__badge { background: #E11B1C; }
.wm-choice--b .wm-choice__badge { background: #0E7C7B; }
.wm-choice__body { grid-area: body; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.wm-choice__name { font-size: 1.02rem; color: var(--color-text-primary, #211A16); overflow-wrap: break-word; }
.wm-choice__desc, .wm-choice__soup, .wm-choice__dessert { font-size: 0.82rem; color: var(--color-text-secondary, #5C4F47); overflow-wrap: break-word; }
.wm-choice__dessert { color: #A94432; }
.wm-choice__pack { font-size: 0.74rem; color: var(--color-text-muted, #76685F); }
.wm-choice__price { grid-area: price; align-self: center; font-size: 1.35rem; font-weight: 800; white-space: nowrap; letter-spacing: -0.01em; }
.wm-choice__cta-slot { grid-area: cta; align-self: center; display: inline-flex; align-items: center; justify-content: flex-end; }

/* One action place per orderable row: the pill and the stepper live in the
   same reserved box (width/height), so add ↔ selected never reflows the row,
   the name, or the day card. Disabled rows keep the natural pill width —
   they never swap controls. */
.wm-choice:not([data-state]) .wm-choice__cta-slot { width: var(--wm-cta-w); min-height: var(--wm-act-h); }
.wm-choice:not([data-state]) .wm-choice__cta { width: 100%; }
.wm-choice .wm-choice__cta { min-height: var(--wm-act-h); }
.wm-choice .wm-stepper { height: var(--wm-act-h); box-sizing: border-box; }
.wm-choice:not([data-state]) .wm-stepper { width: 100%; justify-content: space-between; }
.wm-choice.is-disabled { opacity: 0.6; }
.wm-choice.is-disabled .wm-choice__cta { pointer-events: none; }
.wm-choice.is-in-cart { border-color: var(--color-brand-red-bright, #E11B1C); background: #FFF7F6; position: relative; }
.wm-choice.is-in-cart::after { content: "✓"; position: absolute; top: 6px; right: 8px; font-weight: 800; color: #166534; font-size: 0.9rem; }

/* red pill CTA (scoped; never a global button override) */
.wm-pill {
	display: inline-flex; align-items: center; justify-content: center; gap: 6px;
	min-height: 44px; padding: 10px 16px; border: 0; border-radius: var(--radius-full);
	background: var(--color-brand-red-bright, #E11B1C); color: #fff;
	font-family: var(--font-ui); font-weight: 700; font-size: 0.9rem; cursor: pointer;
	transition: background var(--transition-fast);
}
.wm-pill:hover { background: var(--color-brand-red-bright-hover, #C41718); }
.wm-pill:focus-visible { outline: 2px solid var(--color-brand-red-bright, #E11B1C); outline-offset: 2px; }
.wm-pill[disabled] { background: var(--color-border-medium, #D4C8BD); color: #fff; cursor: not-allowed; }

/* inline quantity stepper (replaces the pill once a line is in the cart) */
.wm-stepper { display: inline-flex; align-items: center; gap: 2px; border: 1px solid var(--color-border-light, #E8DED5); border-radius: var(--radius-full); background: #fff; padding: 2px; }
.wm-stepper__btn {
	width: 40px; height: 40px; display: grid; place-items: center; border: 0; border-radius: var(--radius-full);
	background: transparent; color: var(--color-text-primary, #211A16); font-size: 1.15rem; font-weight: 700; cursor: pointer;
}
.wm-stepper__btn:hover { background: var(--color-bg-cream, #FFF7E8); }
.wm-stepper__btn:focus-visible { outline: 2px solid var(--color-brand-red-bright, #E11B1C); outline-offset: 1px; }
.wm-stepper__qty { min-width: 30px; text-align: center; font-weight: 800; font-variant-numeric: tabular-nums; }
.wm-choice.is-busy .wm-stepper { opacity: 0.6; }
.wm-day__note { margin-top: var(--space-md); font-size: 0.85rem; color: var(--color-text-muted, #76685F); }

/* ---------- No-menu days: compact honest panel (no empty cards) ---------- */
.wm-nomenu {
	display: flex; align-items: flex-start; gap: var(--space-sm);
	background: var(--color-bg-white, #fff); border: 1px solid var(--color-border-light, #E8DED5);
	border-radius: var(--radius-lg); padding: 14px var(--space-md); box-shadow: var(--shadow-card, 0 2px 8px rgba(0,0,0,0.08));
}
.wm-nomenu__ico { width: 32px; height: 32px; flex: 0 0 auto; display: grid; place-items: center; border-radius: var(--radius-full); background: var(--color-bg-cream, #FFF7E8); color: var(--color-text-secondary, #5C4F47); }
.wm-nomenu__text { margin: 0; align-self: center; color: var(--color-text-secondary, #5C4F47); font-size: 0.92rem; }
.wm-nomenu__day { color: var(--color-text-primary, #211A16); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; scroll-margin-top: var(--wm-day-snap, 128px); }
.wm-nomenu__day:hover { color: var(--color-brand-red-bright, #E11B1C); }

/* ---------- Summary rail ("Rendelésed") ---------- */
.wm-summary {
	position: sticky; top: calc(var(--afitt-stack-top, 0px) + var(--wm-sticky-offset, 0px) + var(--wm-daynav-h, 0px) + var(--space-md));
	background: var(--color-bg-white, #fff); border: 1px solid var(--color-border-light, #E8DED5);
	border-radius: var(--radius-lg); padding: var(--space-lg); box-shadow: var(--shadow-card, 0 2px 8px rgba(0,0,0,0.08));
	min-width: 0;
}
.wm-summary__head { margin-bottom: var(--space-sm); }
.wm-summary__title { font-family: var(--font-ui); font-weight: 800; font-size: 1.15rem; margin: 0; line-height: 1.25; }
.wm-summary__sub { margin: 2px 0 0; font-size: 0.85rem; color: var(--color-text-muted, #76685F); }
.wm-summary__body { display: flex; flex-direction: column; gap: var(--space-sm); }
.wm-summary__empty { color: var(--color-text-secondary, #5C4F47); }
.wm-summary__empty p { margin: 0 0 6px; }
.wm-summary__minhint { font-size: 0.8rem; color: var(--color-text-muted, #76685F); }
.wm-summary__items { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-sm); }
.wm-sumline { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; align-items: start; padding-top: var(--space-sm); border-top: 1px solid var(--color-border-light, #E8DED5); }
.wm-sumline__badge { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 6px; font-weight: 700; font-size: 0.78rem; color: #fff; background: #E11B1C; }
.wm-sumline[data-line-slot="B"] .wm-sumline__badge { background: #0E7C7B; }
.wm-sumline__main { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.wm-sumline__top { display: flex; justify-content: space-between; gap: 8px; }
.wm-sumline__top strong { font-size: 0.9rem; }
.wm-sumline__amt { font-weight: 700; white-space: nowrap; }
.wm-sumline__dish { font-size: 0.84rem; color: var(--color-text-secondary, #5C4F47); }
.wm-sumline__extra { font-size: 0.76rem; color: var(--color-text-muted, #76685F); }
.wm-sumline__qty { font-size: 0.78rem; color: var(--color-text-muted, #76685F); }
.wm-sumline__rm { width: 28px; height: 28px; border: 0; background: transparent; color: var(--color-text-muted, #76685F); font-size: 1.15rem; line-height: 1; cursor: pointer; border-radius: var(--radius-sm); }
.wm-sumline__rm:hover { color: #9E2013; background: #FDECEA; }
.wm-summary__totals { border-top: 1px solid var(--color-border-light, #E8DED5); padding-top: var(--space-sm); display: flex; flex-direction: column; gap: 6px; }
.wm-summary__row { display: flex; justify-content: space-between; font-size: 0.9rem; }
.wm-summary__row--total { font-size: 1.25rem; font-weight: 800; border-top: 1px dashed var(--color-border-light, #E8DED5); padding-top: 8px; margin-top: 2px; }
.wm-summary__progress p, .wm-summary__progress span { font-size: 0.82rem; }
.wm-summary__short { color: #8A6D05; }
.wm-summary__ok { color: #166534; font-weight: 700; }
.wm-summary__ok::before { content: "✓ "; }
.wm-summary__checkout { width: 100%; margin-top: 2px; }

/* ---------- Mobile order bar (scrolls to the summary) ---------- */
.wm-orderbar {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: var(--z-sticky, 200);
	display: none; align-items: center; gap: var(--space-sm);
	background: var(--color-bg-white, #fff); border-top: 1px solid var(--color-border-light, #E8DED5);
	padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px));
	box-shadow: 0 -6px 20px rgba(33, 26, 22, 0.08);
}
.wm-orderbar.is-visible { display: flex; }
.wm-orderbar__info { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 0; color: var(--color-text-primary, #211A16); text-decoration: none; }
.wm-orderbar__qty { font-size: 0.8rem; color: var(--color-text-muted, #76685F); }
.wm-orderbar__total { font-size: 1.15rem; font-weight: 800; }
.wm-orderbar__cta { flex: 0 0 auto; }
body.wm-has-orderbar { padding-bottom: calc(var(--wm-orderbar-h, 72px)); }

/* ---------- Toast (non-blocking feedback) ---------- */
.wm-toast {
	position: fixed; left: 50%; bottom: 96px; z-index: var(--z-notification, 500); transform: translateX(-50%) translateY(20px);
	max-width: min(480px, 92vw); padding: 12px 18px; background: var(--color-brand-charcoal, #211A16); color: #fff;
	border-radius: var(--radius-md); box-shadow: var(--shadow-modal); font-size: 0.9rem; opacity: 0; transition: opacity var(--transition-base), transform var(--transition-base);
}
.wm-toast.is-show { opacity: 1; transform: translateX(-50%) translateY(0); }

/* ---------- Legal ---------- */
.wm-legal { margin-top: var(--space-xl); font-size: 0.78rem; color: var(--color-text-muted, #76685F); }

/* ---------- Archive / empty ---------- */
.wm-title { font-family: var(--font-display); font-weight: 400; text-transform: none; font-size: clamp(1.6rem, 4vw, 2.2rem); font-synthesis: none; line-height: var(--leading-heading); letter-spacing: -0.015em; }
.wm-empty, .wm-empty-state { text-align: center; padding: var(--space-3xl) 0; color: var(--color-text-secondary, #5C4F47); }
.wm-admin-link { display: inline-block; margin-top: var(--space-md); padding: 10px 18px; background: var(--color-brand-charcoal, #211A16); color: #fff; border-radius: var(--radius-md); }
.wm-archive-list { display: grid; gap: var(--space-sm); margin-top: var(--space-lg); }
.wm-archive-link { display: flex; justify-content: space-between; flex-wrap: wrap; gap: var(--space-sm); background: #fff; border: 1px solid var(--color-border-light, #E8DED5); border-radius: var(--radius-md); padding: var(--space-sm) var(--space-md); color: var(--color-text-primary, #211A16); }
.wm-archive-link span { color: var(--color-text-secondary, #5C4F47); }

/* ---------- Base neutral button (modal/secondary) ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-xs); font-family: var(--font-ui); font-weight: 700; font-size: var(--text-button-size, 0.9rem); background: var(--color-bg-white, #fff); color: var(--color-text-primary, #211A16); border: 1px solid var(--color-border-medium, #D4C8BD); border-radius: var(--radius-md); padding: var(--space-sm) var(--space-lg); cursor: pointer; min-height: 44px; }
.btn:hover { border-color: var(--color-brand-red-bright, #E11B1C); }
.btn:focus-visible { outline: var(--focus-ring-width, 2px) solid var(--color-brand-red-bright, #E11B1C); outline-offset: var(--focus-ring-offset, 2px); }

/* ---------- Conflict modal ---------- */
.wm-modal { position: fixed; inset: 0; z-index: var(--z-modal, 400); display: flex; align-items: center; justify-content: center; padding: var(--space-md); }
.wm-modal[hidden] { display: none; }
.wm-modal__backdrop { position: absolute; inset: 0; background: var(--color-overlay-backdrop, rgba(0,0,0,0.5)); }
.wm-modal__box { position: relative; z-index: 1; width: 100%; max-width: var(--modal-max-width, 480px); background: var(--color-bg-white, #fff); border-radius: var(--radius-lg); padding: var(--space-lg); box-shadow: var(--shadow-modal); }
.wm-modal__box h2 { font-family: var(--font-ui); font-weight: 700; text-transform: none; margin: 0 0 var(--space-sm); font-size: 1.15rem; line-height: 1.25; }
.wm-modal__box p { color: var(--color-text-secondary, #5C4F47); margin: 0 0 var(--space-lg); }
.wm-modal__actions { display: flex; flex-wrap: wrap; gap: var(--space-sm); }
.wm-modal__actions .wm-pill { flex: 1; min-width: 200px; }

/* ---------- Config sheet (side / bottom; dessert-capable days) ---------- */
.wm-config { position: fixed; inset: 0; z-index: var(--z-modal, 400); }
.wm-config[hidden] { display: none; }
.wm-config__backdrop { position: absolute; inset: 0; background: var(--color-overlay-backdrop, rgba(0,0,0,0.5)); }
.wm-config__sheet {
	position: absolute; background: var(--color-bg-white, #fff); display: flex; flex-direction: column;
	transform: translateX(100%); transition: transform var(--transition-slow, 400ms ease);
}
.wm-config.is-open .wm-config__sheet { transform: translateX(0); }
.wm-config.is-side .wm-config__sheet { top: 0; right: 0; bottom: 0; width: min(380px, 92vw); border-radius: var(--radius-lg) 0 0 var(--radius-lg); box-shadow: var(--shadow-modal); }
.wm-config.is-bottom { align-items: stretch; }
.wm-config.is-bottom .wm-config__sheet { left: 0; right: 0; bottom: 0; max-height: var(--modal-mobile-max-height, 85vh); border-radius: var(--radius-xl) var(--radius-xl) 0 0; transform: translateY(100%); }
.wm-config.is-bottom.is-open .wm-config__sheet { transform: translateY(0); }
.wm-config__head { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--space-md); padding: var(--space-md) var(--space-lg); border-bottom: 1px solid var(--color-border-light, #E8DED5); }
.wm-config__date { font-size: 0.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--color-text-secondary, #5C4F47); }
.wm-config__pill { display: inline-block; margin-left: 6px; width: 24px; height: 24px; text-align: center; line-height: 24px; border-radius: 6px; font-weight: 700; color: #fff; background: #E11B1C; }
.wm-config__close { border: none; background: transparent; color: var(--color-text-muted, #76685F); font-size: 1.5rem; cursor: pointer; line-height: 1; }
.wm-config__body { padding: var(--space-lg); display: flex; flex-direction: column; gap: var(--space-sm); overflow-y: auto; }
.wm-config__name { font-family: var(--font-ui); font-weight: 700; font-size: 1.25rem; margin: 0; }
.wm-config__desc { color: var(--color-text-secondary, #5C4F47); margin: 0; }
.wm-config__meta { font-size: 0.85rem; color: var(--color-text-muted, #76685F); margin: 0 0 var(--space-md); }
.wm-config__stepper { display: inline-flex; align-items: center; gap: var(--space-xs); align-self: flex-start; }
.wm-config__step { width: 44px; height: 44px; border: 1px solid var(--color-border-medium, #D4C8BD); background: var(--color-bg-white, #fff); border-radius: var(--radius-md); font-size: 1.2rem; cursor: pointer; box-sizing: border-box; }
.wm-config__qty { width: 56px; height: 44px; text-align: center; border: 1px solid var(--color-border-medium, #D4C8BD); border-radius: var(--radius-md); font-size: 1rem; font-weight: 700; box-sizing: border-box; }
.wm-config__total { display: flex; justify-content: space-between; align-items: center; margin: var(--space-sm) 0; }
.wm-config__total strong { font-size: 1.2rem; }
.wm-config__add { margin-top: auto; }
.wm-config__dessert { border-top: 1px solid var(--color-border-light, #E8DED5); padding-top: var(--space-sm); margin-top: var(--space-sm); }
.wm-config__dessert-name { font-weight: 700; margin: 0; }
.wm-config__dessert-meta { font-size: 0.8rem; color: var(--color-text-muted, #76685F); margin: 0 0 var(--space-xs); }
.wm-config__dessert .wm-config__stepper { margin-top: var(--space-xs); }
.wm-config__dessert-note { font-size: 0.8rem; color: #A94432; margin: var(--space-xs) 0 0; min-height: 1em; }
.wm-config__packhint { font-size: 0.8rem; color: var(--color-text-muted, #76685F); margin: var(--space-xs) 0 0; }

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 1179px) {
	.wm-layout { grid-template-columns: 1fr; }
	.wm-summary { position: static; }
	/* The FluentCart drawer float (56px, right/bottom 20px, z-999) keeps its
	   corner: the order bar's interactive content stops before it. */
	.wm-orderbar { padding-right: 88px; }
}
@media (max-width: 899px) {
	.wm-feed { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
	.wm-wrap { padding: 0 14px 44px; }
	.wm-intro { margin-top: var(--space-lg); }
	.wm-intro__title { font-size: clamp(2rem, 9vw, 2.6rem); }
	.wm-info { flex-direction: column; gap: var(--space-sm); }
	.wm-weeknav { width: 100%; }
	.wm-weeknav__ctl { width: 100%; justify-content: space-between; }
	.wm-daynav__chip { min-width: 64px; }
	.wm-day { padding: var(--space-md); }
	.wm-choice { --wm-act-h: 54px; grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "badge price" "body body" "cta cta"; }
	.wm-choice__badge { grid-area: badge; }
	.wm-choice__price { grid-area: price; justify-self: end; text-align: right; }
	.wm-choice__body { grid-area: body; }
	.wm-choice__cta-slot { grid-area: cta; margin-top: 4px; }
	.wm-choice:not([data-state]) .wm-choice__cta-slot { width: 100%; }
	.wm-choice__cta { width: 100%; }
	.wm-stepper { width: 100%; justify-content: space-between; }
	.wm-stepper__btn { width: 48px; height: 48px; }
	.wm-day__head { flex-wrap: wrap; row-gap: 4px; }
	.wm-orderbar__cta { min-height: 48px; padding: 10px 20px; }
}
@media (min-width: 1180px) {
	.wm-orderbar { display: none !important; } /* the sticky rail owns the cart */
}
@media (prefers-reduced-motion: reduce) {
	.wm-daynav__chip, .wm-choice, .wm-pill, .wm-stepper__btn { transition: none; }
}

/* Print: show the menu, hide ordering controls */
@media print {
	.wm-daynav, .wm-summary, .wm-orderbar, .wm-choice__cta-slot, .wm-config, .wm-modal { display: none !important; }
	.wm-day { break-inside: avoid; box-shadow: none; }
}
