/* Meal builder: the approved paper, linen, citrus and Montserrat system. */
.meal-intro{padding:clamp(30px,5vw,64px) 0 32px;background:var(--paper)}
.meal-intro__inner{display:grid;grid-template-columns:minmax(0,1fr) 28%;gap:24px;align-items:center}
.meal-intro h1{font-size:clamp(2.4rem,5.8vw,5.1rem);max-width:10ch;line-height:1.02;margin:0 0 20px}
.meal-intro h1 em{display:block;font-family:inherit;font-style:normal;font-weight:700;font-size:1em;line-height:1.12;color:#58782a;letter-spacing:-.025em}
.meal-intro p{max-width:35ch;margin:0;color:var(--ink);font-size:1rem}
.meal-intro .photo{aspect-ratio:1;border-radius:50%;background:transparent;max-width:280px;justify-self:end}
.meal-builder{padding:0 0 80px;background:var(--paper)}
.meal-status{margin:0 0 24px;line-height:1.5}
.meal-status:empty{display:none}
.meal-status button{font:inherit;min-height:44px;padding:8px 16px;margin:8px;border:1px solid var(--ink);background:transparent;color:var(--ink)}
.meal-menu-field,.meal-dishes{padding:0;border:0;margin:0;min-width:0}
.meal-menu-field>legend{font-weight:700;margin-bottom:16px;font-size:1.05rem}
.meal-menu-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:40px}
.meal-menu-choice{min-width:0;position:relative;display:flex;align-items:center;gap:10px;padding:20px 16px;border:1px solid #bdb4a4;background:#f2ece1;cursor:pointer;min-height:90px;transition:background-color 160ms,border-color 160ms}
.meal-menu-choice:has(:checked){background:#15120f;color:#f2ebdd;border-color:#15120f}
.meal-menu-choice strong{display:block;font-size:1rem;line-height:1.3}
.meal-menu-choice small{display:block;font-size:.74rem;margin-top:8px;line-height:1.4}
.meal-menu-choice input{appearance:auto;accent-color:var(--orange);width:18px!important;height:18px!important;min-height:0;flex:none;margin:0;padding:0}
.meal-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:32px;align-items:start}
.meal-workspace{min-width:0}
.meal-steps{display:flex;border-bottom:1px solid #bdb4a4;margin-bottom:30px;gap:16px}
.meal-steps button{display:flex;align-items:center;justify-content:center;gap:8px;padding:0 0 14px;min-height:48px;flex:1;border:0;border-bottom:3px solid transparent;background:transparent;color:#59534a;font:inherit;font-size:.82rem;font-weight:600;cursor:pointer}
.meal-steps button[aria-current]{border-bottom-color:#a45208;color:var(--ink)}
.meal-steps button:disabled{color:#777168;cursor:default}
.meal-steps button>span{font-size:.75rem;display:grid;place-items:center;width:25px;height:25px;border:1px solid currentColor;border-radius:50%;flex:none}
.meal-steps button[aria-current]>span{color:#fff;background:#754014;border-color:#754014}
.meal-panel{scroll-margin-top:24px}
.meal-panel h2{font-size:clamp(1.65rem,3.2vw,2.8rem);line-height:1.1;margin:0 0 12px}
.meal-step-intro{font-size:.9rem;line-height:1.6;color:#5b554c;margin:0 0 26px}
.meal-dishes{display:grid;gap:10px}
.meal-dish{display:grid;grid-template-columns:20px minmax(0,1fr);gap:8px 12px;position:relative;padding:18px 16px;border:1px solid #cfc6b6;background:#fffdf8;cursor:pointer;transition:border-color 160ms,background-color 160ms}
.meal-dish.is-selected{background:#edf2e3;border-color:#58782a}
.meal-dish:has(:disabled){color:#767166;background:#f1eee7;cursor:default}
.meal-dish input{appearance:auto;accent-color:#4c6f25;width:19px!important;height:19px!important;padding:0;min-height:0;margin:2px 0 0;flex:none}
.meal-dish__text strong{font-size:.94rem;line-height:1.35;display:block}
.meal-dish__text small{font-size:.77rem;line-height:1.5;color:#635d54;display:block;margin-top:6px}
.meal-dish__price{grid-column:2;font-size:.78rem;font-weight:600;font-variant-numeric:tabular-nums}
.meal-selection-count{font-size:.82rem;line-height:1.6;color:#455f25;min-height:26px;margin:16px 0}
.meal-actions{display:flex;gap:16px;align-items:center;justify-content:flex-end;padding-top:28px}
.meal-actions button{cursor:pointer}
.meal-actions .button{border:0;font:inherit;font-weight:700;font-size:.86rem}
.meal-actions .button:disabled{background:#d9d4c9;color:#625d55;cursor:default}
.meal-back{background:transparent;border:0;text-decoration:underline;text-underline-offset:4px;font:inherit;min-height:48px;padding:12px;margin-right:auto;color:var(--ink)}
.meal-summary{background:var(--dark);color:#f2ebdd;padding:28px;position:relative}
.meal-summary-script{font-family:Montserrat,sans-serif;font-size:1.25rem;font-weight:600;font-style:normal;color:#dcbd77;margin:0 0 12px;line-height:1.4}
.meal-summary h2{font-size:1.4rem;line-height:1.2;letter-spacing:-.02em;margin:0 0 24px}
.meal-summary-list{list-style:none;padding:0;margin:0 0 24px;display:grid;gap:12px;line-height:1.45;font-size:.86rem}
.meal-summary-list li{padding-left:18px;position:relative}
.meal-summary-list li:before{content:'';position:absolute;left:0;top:7px;width:6px;height:6px;border-radius:50%;background:#a4c775}
.meal-summary-list .is-pending{color:#b6afa2}
.meal-summary-list .is-pending:before{background:transparent;border:1px solid #b6afa2}
.meal-price{padding:22px 0;border-top:1px solid #686052}
.meal-price small{display:block;font-size:.78rem;line-height:1.5;color:#e0d7c6}
.meal-price strong{display:block;font-size:clamp(1.7rem,3vw,2.3rem);font-weight:700;line-height:1.2;margin:12px 0;color:#ffb56b;font-variant-numeric:tabular-nums}
.meal-price p{font-size:.8rem;margin:8px 0 0;line-height:1.6;color:#d1c8b8}
.meal-summary .button{display:flex;text-align:center;width:100%;font-size:.85rem;margin:0;text-decoration:none}
.meal-summary .button[aria-disabled]{background:#575146;color:#e0d7c6;cursor:default}
.meal-fine-print{font-size:.72rem;line-height:1.65;color:#c8c0b2;margin:16px 0 0}
.meal-review-row{display:flex;justify-content:space-between;align-items:start;gap:20px;padding:22px 0;border-bottom:1px solid #cfc6b6}
.meal-review-row:first-child{padding-top:0}
.meal-review-row small{display:block;font-size:.75rem;margin-bottom:10px;color:#635d54}
.meal-review-row strong{display:block;font-size:1rem;line-height:1.5}
.meal-review-row button{font:inherit;font-size:.8rem;background:transparent;border:0;color:#4d622f;text-decoration:underline;text-underline-offset:4px;min-height:44px;cursor:pointer}
.meal-guests-label{display:block;font-weight:600;margin:26px 0 12px;font-size:.94rem}
#meal-guests{background:#fffdf8;border:1px solid #aaa191;border-radius:0;min-height:52px;max-width:190px;font:inherit;font-size:1.2rem;padding:12px;color:var(--ink)}
#meal-guests[aria-invalid=true]{border-color:#a92c20;outline:1px solid #a92c20}
.meal-help{font-size:.75rem;margin-top:8px;line-height:1.5;color:#635d54}
.meal-extras{margin-top:28px;border-top:1px solid #cfc6b6;padding-top:12px}
.meal-extras summary{min-height:44px;cursor:pointer;padding:12px 0;font-size:.87rem;font-weight:600}
.meal-extras p,.meal-extras li{font-size:.8rem;line-height:1.6}
.meal-extras ul{padding-left:20px;columns:2;column-gap:30px}
.meal-extras li{break-inside:avoid;padding-bottom:6px}
.meal-builder :is(a,button,input,summary):focus-visible{outline:3px solid #b45c0a;outline-offset:4px}
.meal-builder label:has(input:focus-visible){outline:3px solid #b45c0a;outline-offset:3px}
.meal-builder ::selection{background:#ffce98;color:#23201c}
@media(min-width:1000px){.meal-layout{grid-template-columns:minmax(0,1fr) 340px;gap:56px}.meal-summary{position:sticky;top:24px}.meal-dish{grid-template-columns:20px minmax(0,1fr) auto}.meal-dish__price{grid-column:3;white-space:nowrap}.meal-dishes:has(input[type=checkbox]){grid-template-columns:repeat(2,minmax(0,1fr))}.meal-dish:has(input[type=checkbox]){grid-template-columns:20px minmax(0,1fr)}}
@media(max-width:600px){.meal-intro__inner{grid-template-columns:minmax(0,1fr) 26%;gap:12px}.meal-intro h1{font-size:2.4rem}.meal-intro p{font-size:.88rem}.meal-menu-choice{padding:14px 10px;align-items:start;min-height:122px}.meal-menu-choice input{position:absolute;right:8px;top:10px;width:14px!important;height:14px!important}.meal-menu-choice>span{padding-top:16px}.meal-menu-choice strong{font-size:.79rem}.meal-menu-choice small{font-size:.65rem}.meal-menu-picker{gap:7px;margin-bottom:28px}.meal-steps{gap:5px}.meal-steps button{font-size:.74rem;gap:6px}.meal-summary{padding:24px}.meal-extras ul{columns:1}}
@media(prefers-reduced-motion:reduce){.meal-builder *{scroll-behavior:auto!important;transition:none!important}}
@media(max-width:600px){.meal-menu-picker{grid-template-columns:1fr;gap:8px}.meal-menu-choice{min-height:66px;padding:14px 18px;align-items:center;gap:14px}.meal-menu-choice input{position:static;width:19px!important;height:19px!important}.meal-menu-choice>span{padding:0;display:flex;flex-wrap:wrap;min-width:0;justify-content:space-between;align-items:center;gap:6px 14px;flex:1}.meal-menu-choice strong{font-size:.88rem}.meal-menu-choice small{font-size:.74rem;margin:0;white-space:normal}}
@media(hover:hover){.meal-menu-choice:hover{border-color:#58782a}.meal-dish:not(:has(:disabled)):hover{border-color:#58782a;background:#f2f4ea}.meal-actions .button:not(:disabled):hover,.meal-summary .button:not([aria-disabled]):hover{background:#f0820f}}
.meal-incomplete{background:#f2ece1;padding:20px;font-size:.9rem;line-height:1.6}.meal-incomplete a{display:inline-block;min-height:44px;padding-top:10px}
.meal-builder .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.meal-builder button:disabled{opacity:1}
