@font-face{font-family:Fraunces;src:url('assets/fraunces-latin.woff2');font-display:swap}@font-face{font-family:Inter;src:url('assets/inter-latin.woff2');font-display:swap}
:root{--paper:#fbf7ed;--green:#133f34;--ink:#122737;--red:#df3825;--yellow:#efb521;--line:#193f3430;--field-line:#7f8a82;--muted:#617067;--panel:#fffcf6}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;background:var(--paper);color:var(--green);font:16px/1.5 Inter,Arial,sans-serif}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{cursor:pointer}a{color:inherit}button{color:inherit}button:disabled{cursor:not-allowed;opacity:.45}button,a,input,select,textarea,summary{outline-offset:5px}:focus-visible{outline:3px solid var(--ink)}[hidden]{display:none!important}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:500}h1{font-size:clamp(44px,4.6vw,72px);line-height:1.07;letter-spacing:-2.5px}h1 em{font-weight:400;color:var(--red)}h2{font-size:38px;line-height:1.13;letter-spacing:-1px}h3{font-size:24px;line-height:1.2}.eyebrow{font:600 12px/1.5 Inter,sans-serif;letter-spacing:1.5px}.muted{color:var(--muted);font-size:13px;line-height:1.7}.app-header{height:94px;position:sticky;top:0;z-index:20;background:var(--paper);border-top:5px solid var(--red);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 36px;gap:24px}.brand{display:flex;align-items:center;text-decoration:none;gap:12px;flex-shrink:0}.brand img{width:158px;height:auto}.brand>span{border-left:1px solid var(--line);padding:8px 0 8px 12px;font-size:12px;font-weight:700;letter-spacing:2px;color:var(--red)}.app-header nav{display:flex;gap:28px;align-items:center}.app-header nav a,.app-header nav button{font-size:14px;text-decoration:none;border:0;background:none;padding:8px 0}.app-header nav .current{border-bottom:2px solid var(--red)}.cart-count{display:inline-grid;place-items:center;font-size:12px;background:var(--yellow);color:var(--ink);border-radius:50%;min-width:22px;height:22px;margin-left:9px}main{display:block;min-width:0;max-width:1800px;margin:auto}.welcome{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;min-height:355px;border-bottom:1px solid var(--line);padding:32px 30px 30px 40px;overflow:hidden;gap:5px}.welcome-copy{position:relative;z-index:1}.welcome-copy .eyebrow{margin-bottom:21px}.welcome-copy>p:not(.eyebrow){margin-top:20px;font-size:15px;line-height:1.7}.text-link{display:inline-flex;gap:20px;align-items:center;font-size:14px;font-weight:600;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:5px;margin-top:23px}.menu-section{margin-top:24px;padding:28px 0 4px;border-top:1px solid var(--line)}.menu-heading{display:flex;align-items:end;justify-content:space-between;gap:15px}.menu-heading .eyebrow{margin-bottom:10px}.menu-tabs{display:flex;background:#edece1;border-radius:30px;padding:4px;flex-shrink:0}.menu-tabs button{font-size:12px;padding:10px 14px;border:0;background:none;border-radius:24px;white-space:nowrap}.menu-tabs .active{background:var(--green);color:var(--paper)}.menu-context{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:20px 0 22px}.menu-context p{font-size:13px;color:var(--muted)}.menu-context a{display:inline-flex;align-items:center;min-height:44px;font-size:14px;white-space:nowrap}.menu-context a span{margin-left:4px;font-weight:700}.menu-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.menu-card{border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--panel);display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s;position:relative}.menu-card:hover{transform:translateY(-4px);box-shadow:0 12px 26px #133f3410}.card-art{position:relative;height:185px;overflow:hidden;background:var(--paper)}.card-art img{width:100%;height:100%;object-fit:cover;mix-blend-mode:multiply;transition:transform .5s}.menu-card:hover .card-art img{transform:scale(1.045)}.card-badge{position:absolute;left:12px;top:12px;border-radius:3px;padding:5px 8px;background:var(--yellow);color:var(--ink);font-size:10px;font-weight:600;letter-spacing:.5px}.card-body{padding:17px;display:flex;flex-direction:column;flex:1}.card-type{font-size:10px;font-weight:600;letter-spacing:1.2px;margin-bottom:8px;color:var(--muted)}.card-body h3{font-size:25px;letter-spacing:-.5px}.card-body>p{font-size:13px;line-height:1.6;color:var(--muted);margin-top:12px}.card-body .includes{font-size:12px;color:var(--green);margin:12px 0}.card-price{display:flex;align-items:baseline;gap:5px;margin-top:auto;padding-top:17px}.card-price strong{font-size:21px;font-weight:500}.card-price small{font-size:11px;color:var(--muted)}.card-actions{display:flex;align-items:center;justify-content:space-between;margin-top:15px;gap:10px}.card-actions .details-button{font-size:12px;border:0;border-bottom:1px solid currentColor;background:none;padding:4px 0}.add-button{border:0;background:var(--green);color:var(--paper);padding:10px 14px;border-radius:30px;font-size:12px;min-height:40px;transition:background .2s}.add-button:hover{background:var(--red)}.category-filters{display:flex;gap:8px;flex-wrap:wrap;margin:5px 0 23px}.category-filters button{font-size:12px;border:1px solid var(--line);border-radius:25px;background:none;padding:8px 12px}.category-filters .active{background:var(--green);color:var(--paper)}.menu-note{font-size:12px;color:var(--muted);margin-top:22px;line-height:1.7}.sample-dot{display:inline-block;width:8px;height:8px;background:var(--yellow);border-radius:50%;margin-right:5px}.button{display:flex;align-items:center;justify-content:space-between;gap:15px;border-radius:5px;border:0;padding:15px 18px;font-weight:500;font-size:14px;min-height:49px;text-decoration:none;width:100%}.primary{background:var(--green);color:var(--paper)}.primary:hover{background:#235c48}.secondary{background:transparent;border:1px solid var(--line);margin-top:10px}.text-button{display:block;border:0;background:none;text-decoration:underline;font-size:11px;margin:6px auto 0;color:var(--muted)}.little-help{display:grid;grid-template-columns:.7fr 1fr;background:#f0e9d5;align-items:center;gap:30px;padding:28px 40px;margin:0 40px 40px;border-radius:6px}.little-help h2{font-size:38px;margin:11px 0}.little-help p:not(.eyebrow){font-size:13px;line-height:1.7}.little-help .text-link{margin-top:15px}footer{padding:15px 40px 30px}footer .brand img{width:115px}footer p{font-size:12px;color:var(--muted);margin:20px 0}footer>div{display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--line);padding-top:15px;font-size:10px;color:var(--muted)}dialog{border:0;border-radius:12px;background:var(--paper);color:var(--green);width:min(570px,calc(100% - 32px));max-height:calc(100dvh - 40px);padding:30px;overflow:auto;box-shadow:0 20px 90px #0003}dialog::backdrop{background:#10291fc4;backdrop-filter:blur(4px)}dialog[open]{animation:modal-in .2s ease-out}.modal-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;gap:20px}.modal-heading .eyebrow{font-size:10px}.icon-button{border:0;background:none;font-size:28px;width:36px;min-height:36px;line-height:1}dialog h2{font-size:38px;margin:0 0 25px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:25px 0}label{display:flex;flex-direction:column;gap:7px;font-size:14px;font-weight:500}input,select,textarea{max-width:100%;min-width:0;border:1px solid var(--field-line);border-radius:5px;background:#fffdf7;color:var(--green);padding:11px;min-height:45px}textarea{resize:vertical;width:100%}dialog .muted{margin:15px 0 22px}dialog .button{margin-top:15px}.review-notice{background:#efe5c9;padding:18px 20px;border-radius:8px;margin:20px 0;font-size:14px;line-height:1.6}.review-notice p{font-size:14px;margin:12px 0 0;line-height:1.6}.review-notice ul{margin:6px 0 0;padding-left:20px}.review-notice li{margin:4px 0 0}.review-notice li::marker{color:var(--green)}.review-list{padding:0;list-style:none;border-top:1px solid var(--line);margin:18px 0}.review-list li{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}.review-total{display:flex;justify-content:space-between;font-size:20px;margin:20px 0 25px}.detail-art{height:190px;width:100%;object-fit:cover;border-radius:5px;mix-blend-mode:multiply;margin-bottom:23px}.detail-description{font-size:15px;line-height:1.7}.detail-list{font-size:14px;line-height:1.9;padding-left:20px}.detail-quantity{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:25px 0}.detail-quantity input{width:85px}.detail-price{display:flex;flex-direction:column;gap:3px;margin:18px 0 20px;padding:14px 0;border-block:1px solid var(--line)}.detail-price strong{font:500 22px/1.3 Fraunces,Georgia,serif;color:var(--green)}.detail-price .extra-price{margin-top:4px;font-size:15px;font-weight:600;color:var(--green)}.detail-price small{font-size:14px;color:var(--muted)}.help-steps{list-style:none;padding:0;counter-reset:step}.help-steps li{counter-increment:step;border-top:1px solid var(--line);padding:20px 0 20px 45px;position:relative}.help-steps li:before{content:'0'counter(step);position:absolute;left:0;top:23px;font-size:12px;color:var(--red)}.help-steps h3{font-size:25px}.help-steps p,details p{font-size:14px;line-height:1.8;margin-top:10px}details{border-top:1px solid var(--line);padding:15px 0}summary{font-size:14px;cursor:pointer}.toast{position:fixed;bottom:calc(var(--progress-h,76px) + 14px);left:50%;transform:translateX(-50%);z-index:70;display:flex;align-items:center;gap:20px;padding:14px 18px;background:var(--ink);color:white;box-shadow:0 8px 30px #0003;border-radius:7px;font-size:13px;max-width:calc(100% - 30px);width:max-content}.toast button{border:0;background:none;color:var(--yellow);font-size:13px}.toast #toast-close{font-size:22px;color:white}.sr-only,.skip{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0)}.skip:focus{width:auto;height:auto;clip:auto;z-index:100;background:white;padding:15px}@keyframes appear{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes modal-in{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@media(min-width:1550px){.welcome{min-height:410px}.card-art{height:240px}}@media(max-width:1200px){.app-header{padding:0 25px}.app-header nav{gap:20px}.welcome{padding-left:28px;min-height:345px}.welcome-copy>p:not(.eyebrow){font-size:14px}.welcome-copy .eyebrow{font-size:10px}.menu-heading{align-items:start;flex-direction:column}.menu-grid{gap:13px}.card-body{padding:14px}.card-body h3{font-size:24px}.card-art{height:150px}.card-actions{align-items:stretch;flex-direction:column}.card-actions .details-button{align-self:start}.add-button{width:100%}.little-help{margin:0 28px 35px;padding:25px;gap:20px}.little-help h2{font-size:32px}}@media(max-width:960px){.welcome{grid-template-columns:1fr 1fr}.menu-heading{flex-direction:row;align-items:end}.menu-tabs button{font-size:13px}.card-art{height:200px}.card-actions{flex-direction:row}.add-button{width:auto}.little-help{grid-template-columns:.6fr 1fr}}@media(max-width:650px){html{scroll-padding-top:86px}.app-header{height:80px;padding:0 18px}.brand{gap:8px}.brand img{width:130px}.brand>span{padding-left:8px;font-size:10px}.app-header nav{display:none}.welcome{position:relative;grid-template-columns:1fr;min-height:415px;align-items:start;padding:32px 24px 25px}.welcome-copy{max-width:100%}.welcome-copy .eyebrow{font-size:10px;margin-bottom:18px}h1{font-size:51px;line-height:1.04;letter-spacing:-2px}.welcome-copy>p:not(.eyebrow){font-size:13px;max-width:230px;margin-top:18px}.welcome-copy .text-link{font-size:13px;margin-top:22px}.menu-heading{display:block}.menu-heading h2{font-size:36px}.menu-heading .eyebrow{font-size:10px}.menu-tabs{display:inline-flex;margin-top:20px}.menu-tabs button{font-size:12px;padding:9px 14px}.menu-context{align-items:start;gap:12px;margin:17px 0 21px}.menu-context p{font-size:12px}.menu-context{flex-wrap:wrap}.menu-context a{font-size:13px;white-space:nowrap}.menu-grid{grid-template-columns:1fr;gap:20px}.card-art{height:210px}.card-body{padding:21px}.card-body h3{font-size:32px}.card-body>p{font-size:14px}.card-type{font-size:11px}.card-body .includes{font-size:13px}.card-price strong{font-size:25px}.card-price small{font-size:12px}.card-actions{margin-top:18px}.card-actions .details-button{font-size:13px}.add-button{font-size:13px;padding:12px 18px}.card-badge{font-size:11px;top:16px;left:16px}.menu-note{font-size:11px}.little-help{margin:0 20px 30px;padding:22px;display:block;position:relative;overflow:hidden}.little-help .eyebrow{font-size:10px}.little-help h2{font-size:35px}footer{padding-left:24px;padding-right:24px}footer>div{flex-direction:column;font-size:11px}dialog{padding:24px 20px}dialog h2{font-size:33px}.form-grid{gap:12px}.form-grid label{font-size:13px}.field-wrap{display:flex;flex-direction:column;gap:6px;min-width:0}.field-error{margin:0;font-size:13px;line-height:1.45;color:#b53020}input,select,textarea{font-size:16px}.toast{gap:10px;font-size:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.menu-card:hover{transform:none}}
.past-date{display:block;color:#b53020}.welcome-copy{animation:appear .55s ease-out}
/* Keep the supplied mascot visible throughout the journey. */
.brand .mascot-mark{width:48px;height:40px;object-fit:contain} /* v30: a transparent PNG (was a white JPG blended away) */.welcome-copy>p:not(.eyebrow){font-size:16px}.welcome-copy .eyebrow,.card-type,.card-badge,.menu-heading .eyebrow,.little-help .eyebrow,.modal-heading .eyebrow{font-size:12px}.menu-tabs button,.category-filters button,.menu-context p,.card-body>p,.card-body .includes,.card-actions .details-button,.add-button,.little-help p:not(.eyebrow){font-size:14px}.card-price small,.local-save,.text-button,.basket-empty p,.menu-note,footer>div{font-size:12px}.basket-empty p{line-height:1.6}.little-help p:not(.eyebrow){font-size:16px}.toast{font-size:14px}.toast button{font-size:14px}
@media(min-width:651px) and (max-width:1200px){.menu-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.card-art{height:185px}}
@media(max-width:650px){.brand .mascot-mark{width:36px;height:30px}.app-header .brand img:not(.mascot-mark){width:110px}.app-header .brand>span{display:none}.welcome-copy .eyebrow{font-size:11px}.welcome-copy>p:not(.eyebrow){font-size:15px}.menu-context a{font-size:13px}.menu-tabs button{font-size:14px}.menu-note{font-size:12px}}
/* September catering menu: real components, per-person quantities, quote-based pricing. */
.menu-grid.builder-mode{display:block}.bowl-builder{border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:26px}.builder-heading{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:24px}.builder-heading h3{font-size:36px;line-height:1.12;margin:8px 0 12px}.builder-heading>div:first-child{max-width:460px}.builder-heading p:not(.eyebrow){font-size:16px;line-height:1.6;color:var(--muted)}.builder-art.card-art{width:165px;min-width:125px;height:140px;background:transparent;flex-shrink:0}.builder-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px}.builder-columns section{min-width:0}.builder-step{font-size:18px;display:block;font-weight:600;margin-bottom:12px}.builder-step>span,.builder-options legend>span{color:var(--muted);font-size:14px;margin-right:8px}.builder-columns select{font-family:inherit;width:100%;min-height:48px;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink);font-size:16px;padding:10px}.builder-description{font-size:16px;line-height:1.6;margin:14px 0}.diet-tags{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.diet-tags span{font-size:14px;border:1px solid var(--line);border-radius:4px;padding:4px 7px;color:var(--green)}.card-body .allergen-line,.allergen-line{font-size:14px;color:var(--ink);line-height:1.6;margin:12px 0}.menu-preparation,.card-body .menu-preparation{font-size:14px;line-height:1.6;color:var(--muted);margin:10px 0}.builder-options{border:0;border-top:1px solid var(--line);padding:24px 0 0;margin:26px 0 0;min-width:0}.builder-options legend{font-size:18px;font-weight:600;padding:0 12px 0 0;line-height:1.6}.builder-options legend small{font-size:14px;color:var(--muted);font-weight:400;margin-left:8px}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.ingredient-choice{display:flex;gap:10px;border:1px solid var(--line);padding:12px;border-radius:6px;align-items:flex-start;cursor:pointer;min-width:0}.ingredient-choice:has(input:checked){border-color:var(--green);background:#e7edde}.ingredient-choice:has(input:disabled){opacity:.6;cursor:default}.ingredient-choice input{width:18px;height:18px;flex-shrink:0;margin:3px 0 0;accent-color:var(--green)}.ingredient-choice strong{display:block;font-size:16px;line-height:1.4}.ingredient-choice small{display:block;font-size:14px;color:var(--muted);line-height:1.5;margin-top:5px}.builder-bottom{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:25px;padding-top:22px;border-top:1px solid var(--line);flex-wrap:wrap}.builder-bottom label{font-size:14px;display:flex;flex-direction:column;gap:7px}.builder-bottom input{width:100px;min-height:44px;font-family:inherit;font-size:16px;color:var(--ink);padding:8px;border:1px solid var(--line);border-radius:5px}.builder-bottom p{font-size:16px;line-height:1.5;flex:1}.builder-bottom small{font-size:14px;color:var(--muted)}.builder-bottom .button{width:auto}.builder-hint{font-size:14px;line-height:1.6;margin-top:15px;color:var(--muted)}.menu-allergy-note{font-size:14px;line-height:1.6;border-top:1px solid var(--line);padding-top:18px;margin-top:26px;max-width:780px;color:var(--muted)}.card-price{flex-direction:column;align-items:flex-start;gap:5px;margin-top:auto;padding-top:18px}.card-price strong{font-size:20px}.card-price small{font-size:14px;line-height:1.5}.card-body>p{font-size:16px}.card-body .allergen-line{font-size:14px}.review-list li>div{min-width:0;flex:1}.review-list li p{font-size:14px;line-height:1.6;margin-top:7px}.review-list li>span{flex-shrink:0;text-align:right;max-width:135px}.review-list li small{display:block;font-size:14px;margin-top:6px}.review-total strong{font-size:22px}.menu-note{font-size:14px}.builder-mode button:disabled{cursor:not-allowed;opacity:.5}
@media(max-width:650px){.bowl-builder{padding:20px}.builder-heading{gap:10px;align-items:flex-start}.builder-heading h3{font-size:30px}.builder-art.card-art{width:90px;min-width:90px;height:110px}.builder-columns,.choice-grid{grid-template-columns:1fr}.builder-columns{gap:22px}.builder-options legend small{display:block;margin-left:0}.builder-bottom{align-items:flex-end}.builder-bottom .button{width:100%}.review-list li{flex-wrap:wrap}.review-list li>span{text-align:left;max-width:none}.card-price strong{font-size:20px}.menu-tabs{flex-wrap:wrap}}
/* Real food photography: the same 5:4 frame from selection to detail. */
.food-frame{position:relative;aspect-ratio:5/4;overflow:hidden;background:#e4e4dc;isolation:isolate;border-radius:inherit}.food-frame img{display:block;width:100%;height:100%;object-fit:cover;mix-blend-mode:normal;transform:none}.food-illustration{background:var(--paper)}.food-illustration img{object-fit:contain;mix-blend-mode:multiply;padding:10px}.food-illustration>span{position:absolute;bottom:10px;left:12px;background:#fbf7edeb;border-radius:12px;padding:3px 9px;font-size:10px;color:var(--muted)}.menu-photo-button{display:block;width:100%;padding:0;border:0;background:none;border-radius:8px 8px 0 0;overflow:hidden}.menu-photo-button:focus-visible{outline-offset:-5px}.menu-photo-button .food-frame{border-radius:0}.menu-photo-button img{transition:transform .3s ease}.menu-photo-button:hover img{transform:scale(1.035)}.detail-food{width:100%;max-height:360px;border-radius:8px;margin:16px 0 8px}.photo-caption{font-size:11px;line-height:1.5;color:var(--muted);margin-bottom:20px}.builder-columns{display:block}.photo-step{border:0;padding:0;margin:0 0 28px;min-width:0}.photo-step+.photo-step{border-top:1px solid var(--line);padding-top:24px}.photo-step .builder-step{padding-right:12px}.food-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.food-choice{display:block;position:relative;border:1px solid var(--line);background:var(--panel);border-radius:8px;overflow:hidden;cursor:pointer;min-width:0;transition:border-color .15s,box-shadow .15s}.food-choice>input{position:absolute;opacity:0;width:1px;height:1px;top:12px;left:12px}.food-choice:has(input:checked){border-color:var(--green);box-shadow:0 0 0 2px var(--green);background:#e7edde}.food-choice:has(input:focus-visible){outline:3px solid var(--ink);outline-offset:4px}.food-choice-copy{display:block;padding:12px}.food-choice strong{font-size:14px;line-height:1.35;display:block}.food-choice small{display:block;font-size:12px;color:var(--muted);margin-top:5px;line-height:1.4}.choice-tick{position:absolute;right:9px;top:9px;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--panel);border:1px solid #133f3450;color:transparent;font-size:16px}.food-choice:has(input:checked) .choice-tick{background:var(--green);color:white;border-color:var(--paper)}.ingredient-choice{position:relative;align-items:center;gap:10px}.ingredient-choice>span{min-width:0}.ingredient-thumb{width:76px;min-width:76px;border-radius:5px;align-self:flex-start}.ingredient-choice strong{font-size:14px}.ingredient-choice small{font-size:12px}.basket-thumb{width:48px;min-width:48px;border-radius:5px}.food-frame img{color:var(--muted)}
@media(max-width:1150px){.ingredient-thumb{width:58px;min-width:58px}.choice-grid{grid-template-columns:1fr}}
@media(max-width:650px){.bowl-builder{padding:16px}.food-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.food-choice-copy{padding:10px}.food-choice strong{font-size:13px}.food-choice small{font-size:11px}.ingredient-thumb{width:78px;min-width:78px}.detail-food{max-height:none}.builder-heading .eyebrow{font-size:10px}.food-choice .choice-tick{width:23px;height:23px;top:7px;right:7px}.menu-photo-button .food-frame{aspect-ratio:5/4}}
@media(prefers-reduced-motion:reduce){.menu-photo-button img{transition:none}.menu-photo-button:hover img{transform:none}}
.detail-food{max-height:none;max-width:500px;margin-left:auto;margin-right:auto}
/* Dressing and side choices: visual cards, grouped options and removable selections. */
.bowl-options{container-type:inline-size;padding-top:18px}.bowl-options legend{font-size:1.25rem}.options-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.options-intro>p{font-size:1rem;line-height:1.6;color:var(--muted);max-width:540px}.options-count{flex-shrink:0;border:1px solid var(--line);border-radius:24px;background:var(--paper);padding:7px 12px;font-size:.875rem;line-height:1.4;white-space:nowrap}.option-selections{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 24px}.option-selections button{display:inline-flex;align-items:center;gap:12px;min-height:44px;border:1px solid var(--green);border-radius:24px;background:#e7edde;color:var(--green);padding:8px 14px;font-size:.875rem;text-align:left}.option-selections button>span{font-size:1.25rem;line-height:1}.option-groups{display:grid;gap:28px}.option-group{min-width:0}.option-group-heading{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 16px;margin-bottom:12px}.option-group-heading h4{font:600 1.35rem Fraunces,serif;margin:0}.option-group-heading p{font-size:.875rem;color:var(--muted);line-height:1.5}.option-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:stretch}.option-card{display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);border-radius:9px;background:var(--paper);overflow:hidden}.option-card.is-selected{border-color:var(--green);box-shadow:0 0 0 1px var(--green)}.option-select{position:relative;display:flex;flex-direction:column;gap:0;cursor:pointer;flex:1;min-width:0}.option-select>input{position:absolute;opacity:0;width:1px;height:1px;min-height:0;padding:0;top:16px;right:16px}.option-select:has(input:focus-visible){outline:3px solid var(--ink);outline-offset:-4px}.option-photo{border-radius:0;aspect-ratio:5/4;background:#f5f0e6}.option-photo img{object-fit:cover}.option-mark{position:absolute;top:10px;right:10px;display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--green);border-radius:50%;background:var(--paper);font-size:1.125rem;color:var(--green)}.is-selected .option-mark{background:var(--green);color:var(--paper)}.option-copy{display:flex;flex-direction:column;flex:1;gap:8px;padding:16px}.option-copy>strong{font-size:1rem;line-height:1.35;font-weight:600}.option-flavor{font-size:.875rem;line-height:1.5;color:var(--muted)}.option-portion{font-size:.8125rem;line-height:1.5;color:var(--muted);margin-top:auto;padding-top:3px}.option-action{font-size:.875rem;font-weight:600;line-height:1.5;color:var(--green);padding-top:6px}.is-selected .option-copy{background:#e7edde}.option-select:has(input:disabled){cursor:not-allowed}.option-select:has(input:disabled) .option-action{font-weight:400;color:var(--muted)}.option-select:has(input:disabled) .option-mark{border-color:var(--line);color:var(--muted)}.option-details{padding:0 16px;border-top:1px solid var(--line);margin:0}.option-details summary{display:flex;align-items:center;gap:8px;min-height:48px;font-size:.875rem;font-weight:500;line-height:1.5;list-style:none}.option-details summary::-webkit-details-marker{display:none}.option-details summary:after{content:'+';margin-left:auto;font-size:1.125rem}.option-details[open] summary:after{content:'−'}.option-details p{font-size:.875rem;line-height:1.65;margin:0 0 14px}.option-details summary:focus-visible,.option-selections button:focus-visible{outline:3px solid var(--ink);outline-offset:2px}.option-details[open]{padding-bottom:2px}
@container(min-width:660px){.option-grid-dressings{grid-template-columns:repeat(4,minmax(0,1fr))}.option-grid-spreads,.option-grid-sides{grid-template-columns:repeat(3,minmax(0,1fr))}}
@container(max-width:390px){.options-intro{flex-direction:column;gap:10px}.option-grid{grid-template-columns:1fr}.option-select{display:grid;grid-template-columns:112px minmax(0,1fr);align-items:start}.option-photo{align-self:stretch;aspect-ratio:auto;min-height:150px}.option-photo img{object-fit:contain}.option-copy{padding:14px 12px 14px 0}.option-mark{top:8px;left:8px;right:auto;width:26px;height:26px}.option-copy>strong{padding-right:0}.option-details summary{min-height:46px}}

/* Give each menu family a clear place, beginning with sandwiches and salads. */
.menu-group-heading{grid-column:1/-1;padding:1.5rem 0 .35rem;border-top:1px solid var(--line,#d9d9cc)}
.menu-group-heading:first-child{border-top:0;padding-top:.25rem}
.menu-group-heading .eyebrow{margin:0 0 .35rem}
.menu-group-heading h3{font-family:Fraunces,Georgia,serif;font-size:clamp(1.5rem,2.6vw,2rem);font-weight:500;margin:0}

/* Launch — catering request flow, clearer hero, accessible brand text. */
.brand>span{color:#bf2f1d}
.hero-facts{list-style:none;padding:0;margin:18px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.hero-facts li{font-size:13px;line-height:1.3;padding:7px 11px;border:1px solid var(--line);border-radius:30px;background:#fffcf6}
.help-links{display:flex;flex-wrap:wrap;gap:6px 26px}
.help-links .text-link{gap:10px}
footer p a{color:var(--green)}
.footer-links a{color:inherit}
.contact-fields{border:0;padding:0;margin:26px 0 0;min-width:0}
.contact-fields legend{font:500 22px/1.25 Fraunces,Georgia,serif;padding:0}
.contact-fields .form-grid{margin:16px 0 20px}
.optional{font-weight:400;color:var(--muted);font-size:12px}
input[aria-invalid="true"]{border-color:#bf2f1d;box-shadow:0 0 0 1px #bf2f1d}
.hp{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}

.form-status{font-size:14px;line-height:1.6;margin:14px 0 0;padding:12px 14px;border-radius:5px;background:#fbe3dc;color:#7a2113}
.form-status[data-kind="progress"]{background:#e7edde;color:var(--green)}
.form-status a,.inline-link{color:inherit;font:inherit;font-weight:600;text-decoration:underline;border:0;background:none;padding:0}
form[aria-busy="true"] #send-request{opacity:.7}
.consent{font-size:12px;color:var(--muted);margin-top:10px;line-height:1.6}
.request-alt{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 22px;margin-top:14px}
.request-alt .text-button{margin:0;font-size:13px}
.sent-note{background:#e7edde;border-radius:5px;padding:12px 14px;font-size:13px;line-height:1.6;margin:-8px 0 16px}

.sent-ref{font-size:15px;margin:-8px 0 14px}
.sent-ref strong{font-size:22px;letter-spacing:1px;margin-left:6px}
#sent-message{font-size:15px;line-height:1.7}
.next-steps{margin:20px 0;padding-left:22px;font-size:14px;line-height:1.7}
.next-steps li+li{margin-top:6px}
#sent-view .text-button{margin-top:16px;font-size:13px}
@media(max-width:650px){.hero-facts li{font-size:12px;padding:6px 10px}.contact-fields .form-grid{grid-template-columns:1fr}.contact-fields legend{font-size:20px}}
.header-order{margin-left:auto;margin-right:12px;background:#bf2f1d;color:#fff;text-decoration:none;font-size:14px;font-weight:600;padding:12px 18px;border-radius:30px}
.header-order:hover{background:#a3281a}
.hero-order{width:auto;display:inline-flex;margin:0 18px 0 0}
.order-online-box{background:#e7edde;border-radius:6px;padding:18px;margin:22px 0 6px}
.order-online-box>p:not(.eyebrow):not(.or-divider){font-size:14px;line-height:1.6;margin:8px 0 14px}
.order-online-box .text-button{margin:10px auto 0;font-size:13px}
.or-divider{display:flex;align-items:center;gap:12px;margin:18px 0 0;font-size:12px;color:var(--muted)}
.or-divider:before,.or-divider:after{content:'';flex:1;border-top:1px solid var(--line)}
@media(max-width:650px){.header-order{display:none}.hero-order{margin:0 0 6px;width:100%;justify-content:space-between}}
.order-online-box .text-button,.order-online-box .or-divider{color:#3f5448}
/* Hints under the fields they explain. */
.review-notice strong{display:block}
.review-notice ul+strong{margin-top:14px}
.field-hint{font-size:14px;line-height:1.55;color:var(--muted);margin:10px 0 0;max-width:80ch}
.field-hint.is-error{color:#b53020}
.field-hint .inline-link{margin-left:4px}
/* One page, three steps (when & where, your food, review & send), no pop-ups. */
html{scroll-padding-bottom:calc(var(--progress-h,76px) + 16px)}body{padding-bottom:var(--progress-h,76px)}
.hero-start,.hero-menu{width:auto;display:inline-flex;gap:14px;border-radius:30px;padding:14px 24px}.welcome-actions .hero-order{border-radius:30px;padding:14px 24px}.hero-order:not([hidden])+.hero-start{background:transparent;color:var(--green);border:1px solid var(--green)}
.order{max-width:1200px;margin:0 auto;padding:48px 40px 16px}
.order-intro{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,2fr);gap:14px 40px;align-items:end;margin-bottom:28px}.order-intro h2{margin-top:10px}.how-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.how-steps a{display:flex;gap:12px;align-items:flex-start;height:100%;text-decoration:none;border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:14px 16px;transition:border-color .15s}.how-steps strong,.how-steps small{display:block}.how-steps strong{font-size:15px}.how-steps small{font-size:13px;line-height:1.5;color:var(--muted);margin-top:3px}.how-num{display:grid;place-items:center;flex-shrink:0;width:28px;height:28px;border-radius:50%;background:var(--yellow);color:var(--ink);font-size:14px;font-weight:600}.order-intro .how-help{grid-column:2;margin:0;justify-self:start;font-size:14px;min-height:44px}
.step{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:28px 34px 34px;margin-bottom:22px}.step-head{display:flex;align-items:center;gap:16px;padding-bottom:20px;margin-bottom:24px;border-bottom:1px solid var(--line)}.step-num{display:grid;place-items:center;flex-shrink:0;width:46px;height:46px;border-radius:50%;border:1.5px solid var(--green);font:500 22px Fraunces,Georgia,serif}.step.is-done .step-num{background:var(--green);color:var(--paper);font:600 20px Inter,sans-serif}.step-head .eyebrow{color:var(--muted)}.step-head h2{font-size:34px;margin-top:2px}.step h2[tabindex],.step h3[tabindex],.menu-heading h2,.sent-view h3{outline:none}.step-done{margin-left:auto;border-radius:30px;background:#e7edde;padding:6px 13px;font-size:13px;font-weight:600}
.field-label{display:block;font-size:15px;font-weight:600;margin:0 0 9px;padding:0}.when-top{display:flex;flex-wrap:wrap;gap:22px 56px;align-items:flex-start}.stepper{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:30px;background:var(--paper);padding:2px}.stepper button{width:44px;height:44px;border:0;border-radius:50%;background:none;font-size:22px;line-height:1}.stepper input{width:64px;min-height:44px;text-align:center;border:0;background:none;padding:0;font-size:18px;font-weight:600;-moz-appearance:textfield}.stepper input::-webkit-inner-spin-button,.stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.segmented{display:inline-flex;gap:3px;border:1px solid var(--line);border-radius:30px;background:var(--paper);padding:2px}.segmented button{min-width:112px;min-height:44px;border:0;border-radius:24px;background:none;padding:8px 18px;font-size:15px}.segmented [aria-pressed="true"]{background:var(--green);color:var(--paper)}
.delivery-fields{display:grid;gap:18px;max-width:680px;margin-top:22px;padding:18px;border-radius:10px;background:#f4efe1}.delivery-fields .field-label{margin-bottom:7px}#zip{width:150px;letter-spacing:1px}#address{width:100%}.field-hint.is-error{color:#b53020}.field-hint:empty{display:none}
.choice-set{border:0;padding:0;margin:28px 0 0;min-width:0}.date-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr)) minmax(0,1.2fr);gap:8px;max-width:780px}.date-later{grid-column:6;grid-row:1/span 2}.date-choice{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:64px;border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:7px 5px;text-align:center;line-height:1.25}.date-weekday{font-size:12px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}.date-day{font-size:16px;font-weight:600}.date-choice small{font-size:11px;color:var(--muted)}.date-later{font-size:14px;font-weight:600}.date-choice[aria-pressed="true"],.date-later.is-selected,.time-choice[aria-pressed="true"]{background:var(--green);border-color:var(--green);color:var(--paper)}.date-choice[aria-pressed="true"] .date-weekday,.date-choice[aria-pressed="true"] small,.date-later.is-selected small{color:#dce6dd}.date-later small{display:block;font-weight:500}.later-date{margin-top:14px;max-width:260px}.later-date input{width:100%}.time-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(152px,1fr));gap:8px}.time-choice{min-height:46px;border:1px solid var(--line);border-radius:30px;background:var(--paper);padding:8px 10px;font-size:14px;white-space:nowrap}.time-choice:disabled{text-decoration:line-through}.date-choice:focus-visible,.time-choice:focus-visible,.segmented button:focus-visible,.stepper button:focus-visible,.format-card:focus-visible{outline-offset:3px}.service-terms{margin-top:26px;padding-top:18px;border-top:1px solid var(--line);max-width:88ch}
.format-note{font-size:15px;line-height:1.6;color:var(--muted);margin:0 0 16px}.format-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.format-card{position:relative;display:flex;flex-direction:column;gap:9px;text-align:left;border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:18px 18px 20px;transition:border-color .15s,box-shadow .15s}.format-card strong{font:500 23px/1.15 Fraunces,Georgia,serif;padding-right:32px}.format-price{display:block;font-size:15px;font-weight:600;color:var(--green)}.format-price:empty{display:none}.format-summary,.format-detail{display:block;font-size:14px;line-height:1.5}.format-detail{font-size:13px;color:var(--muted);margin-top:6px}.format-card:after{content:'';position:absolute;top:16px;right:16px;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;border:1px solid #133f3460;font-size:14px}.format-own{border-style:dashed;background:transparent}.format-own:after{content:'+'}.format-card[aria-pressed="true"]{border-color:var(--green);box-shadow:0 0 0 2px var(--green);background:#e7edde}.format-card[aria-pressed="true"] .format-detail{color:#46574d}.format-card[aria-pressed="true"]:after{content:'✓';background:var(--green);border-color:var(--green);color:var(--paper)}
.table-card{margin-top:22px;border:1px solid var(--line);border-radius:12px;background:var(--paper)}.table-head{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:6px 16px;padding:16px 20px;border-bottom:1px solid var(--line)}.table-head h3{font-size:24px;outline:none}.table-head .cart-count{vertical-align:3px;background:#e9ede5}#table-format{font-size:14px;color:var(--muted)}.table-body{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr)}.table-rows{list-style:none;margin:0;padding:4px 20px 8px;min-width:0}.table-side{min-width:0;padding:16px 20px 20px;border-left:1px solid var(--line)}
.basket-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto auto;grid-template-areas:"thumb main controls remove";align-items:center;gap:6px 14px;padding:12px 0;border-bottom:1px solid var(--line);animation:appear .25s ease-out}.basket-row:last-child{border-bottom:0}.basket-thumb{grid-area:thumb}.row-main{grid-area:main;min-width:0}.row-name{display:block;font-size:15px;line-height:1.35}.row-main p{font-size:14px;color:var(--muted);margin-top:2px}.row-controls{grid-area:controls;display:flex;align-items:center;gap:6px}.row-controls button{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:var(--panel);font-size:18px;line-height:1}.row-controls span{min-width:32px;text-align:center;font-size:15px;font-weight:600}.remove-item{grid-area:remove;min-height:38px;border:0;background:none;padding:4px 0;color:var(--muted);font-size:13px;text-decoration:underline}
.basket-empty{display:grid;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:4px 18px;padding:14px 0}.basket-empty img{grid-row:span 2;width:96px;height:auto}.basket-empty strong{font:500 22px Fraunces,Georgia,serif;align-self:end}.basket-empty p{font-size:14px;line-height:1.6;color:var(--muted);align-self:start}
.estimate-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.table-side>.estimate-row:first-child{margin-top:0;padding-top:0;border-top:0}.estimate-row span{font-size:14px}.estimate-row strong{font:500 22px Fraunces,Georgia,serif;text-align:right}#per-person{margin-top:6px}.estimate-row.estimate-extra{margin-top:8px;padding-top:0;border-top:0}.estimate-row.estimate-extra strong{font-size:17px}.estimate-row.estimate-total{margin-top:10px;padding-top:10px}.estimate-row.estimate-total small{display:block;font-size:12px;color:var(--muted)}.review-line{display:flex;justify-content:space-between;gap:12px;font-size:16px;margin:12px 0 0}.review-line+.review-line{margin-top:6px}.local-save{margin-top:12px;color:var(--muted)}
.menu-toggle{display:inline-flex;align-items:center;gap:10px;min-height:46px;margin-top:18px;border:1px solid var(--green);border-radius:30px;background:transparent;padding:10px 20px;font-size:15px;font-weight:500}.menu-toggle span{display:inline-block;transition:transform .2s}
.send-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px 44px;align-items:start}.summary-block{padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--line)}.summary-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.summary-head h3{font-size:22px}.edit-link{display:inline-flex;align-items:center;justify-content:flex-end;min-width:44px;min-height:44px;font-size:14px;font-weight:600}.summary-when{font-size:15px;line-height:1.7}.summary-format{font-size:14px;font-weight:600;color:var(--muted);margin-top:2px}.send-summary .review-list{margin:10px 0 14px}.send-summary .review-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:0 16px;padding:10px 0}.send-summary .review-list li>span{max-width:none;text-align:right}.send-summary .review-list small{margin-top:2px;font-size:13px;color:var(--muted)}.send-summary .review-list .allergen-line{grid-column:1/-1;font-size:13px;color:var(--muted);margin:3px 0 0}.send-summary .review-total{margin:14px 0 6px}.send-summary .review-notice{margin:18px 0 0}.send-summary>.muted,.summary-block>.muted{margin-top:8px}.send-form .contact-fields{margin-top:0}#send-request{margin-top:18px}.send-form .order-online-box{margin:0 0 24px}.send-form label{margin-top:0}
.sent-view{max-width:680px}.sent-view h3{font-size:34px;margin:8px 0 12px}#sent-copy{font-size:15px;margin-top:10px}.sent-actions{display:flex;flex-wrap:wrap;gap:10px}.sent-actions .button{width:auto;margin-top:0;gap:18px}.sent-changes{font-size:14px;line-height:1.6;margin:18px 0 0}.sent-changes:empty{display:none}.sent-more{display:flex;flex-wrap:wrap;gap:4px 26px;margin-top:14px}.sent-more .text-button{margin:0;padding:0;font-size:14px}
.progress{position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--green);color:var(--paper);box-shadow:0 -6px 24px #0002}.progress-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;gap:16px;padding:10px 40px}.progress-dots{display:flex;gap:6px;list-style:none;margin:0;padding:0;flex-shrink:0}.progress-dots li{width:26px;height:6px;border-radius:6px;background:#fbf7ed40}.progress-dots .is-done{background:var(--paper)}.progress-dots .is-current{background:var(--yellow)}.progress-text{flex:1;min-width:0;font-size:15px;font-weight:500}.progress-step{font-weight:600}.progress-continue{display:inline-flex;align-items:center;gap:10px;flex-shrink:0;min-height:44px;border:0;border-radius:30px;background:var(--yellow);color:var(--ink);padding:10px 22px;font-size:15px;font-weight:600}.progress :focus-visible,.toast :focus-visible{outline-color:var(--paper)}
.toast button{min-width:44px;min-height:44px}
@media(max-width:960px){.order{padding:40px 24px 12px}.order-intro{grid-template-columns:1fr}.order-intro .how-help{grid-column:auto}.format-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.table-body,.send-grid{grid-template-columns:1fr}.table-side{border-left:0;border-top:1px solid var(--line)}.progress-inner{padding:10px 24px}}
@media(max-width:650px){.order{padding:28px 12px 8px}.order-intro h2{font-size:32px}.how-steps{grid-template-columns:1fr;gap:8px}.how-steps a{padding:12px 14px}.step{padding:20px 16px 24px;margin-bottom:14px}.step-head{position:relative;gap:12px;padding-bottom:16px;margin-bottom:18px}.step-num{width:40px;height:40px;font-size:19px}.step-head h2{font-size:28px}.step-done{position:absolute;top:0;right:0;padding:2px 9px;font-size:12px}.when-top{display:grid;gap:20px}.segmented{display:flex}.segmented button{flex:1;min-width:0}.order-intro{padding:0 12px}.date-list{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.date-choice{padding:6px 2px}.date-weekday{font-size:11px;letter-spacing:.5px}.date-day{font-size:14px}.date-later{grid-column:1/-1;grid-row:auto;min-height:48px}.time-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.time-choice{padding:8px 4px;font-size:13px}.format-cards{grid-template-columns:1fr;gap:8px}.format-card{gap:4px;padding:14px 16px}.format-card strong{font-size:21px}.format-detail{margin-top:2px;line-height:1.45}.table-head,.table-side{padding:14px}.table-rows{padding:2px 14px 6px}.basket-row{grid-template-columns:44px minmax(0,1fr) auto;grid-template-areas:"thumb main main" "thumb controls remove";gap:8px 12px}.basket-thumb{align-self:start}.row-controls button,.remove-item{min-width:44px;min-height:44px;height:44px}.row-controls button{width:44px}.basket-empty{grid-template-columns:72px minmax(0,1fr)}.basket-empty img{width:72px}.menu-toggle{width:100%;justify-content:center}.send-grid{gap:18px}.sent-view h3{font-size:30px}.sent-actions .button{width:100%}.hero-start,.hero-menu{width:100%;justify-content:space-between}.progress-inner{padding:10px 12px;gap:12px}.progress-dots{display:none}.progress-text{font-size:13.5px;line-height:1.35}.progress-step{display:block}.progress-sep{display:none}.progress-continue{gap:8px;padding:10px 16px}
 .text-button,.category-filters button,.menu-tabs button,.add-button,.card-actions .details-button,.icon-button{min-height:44px}a.text-button{display:inline-flex;align-items:center}.icon-button{min-width:44px}}
@media(prefers-reduced-motion:reduce){.basket-row{animation:none}.menu-toggle span{transition:none}}
@media(hover:hover){.how-steps a:hover{border-color:var(--green)}.stepper button:hover,.segmented button:not([aria-pressed="true"]):hover{background:#e7edde}.date-choice:hover,.time-choice:hover{border-color:var(--green)}.format-card:hover{border-color:var(--green)}.menu-toggle:hover{background:#e7edde}.progress-continue:hover{background:#f6c84a}.hero-order:not([hidden])+.hero-start:hover{background:#e7edde}}
/* Sep 30: photos (hero, menu dishes, format cards, the Bistro), FAQ, and ordering closed / team test link. */
.welcome{gap:40px;padding:40px}
.hero-photos{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%;max-width:520px;justify-self:end}
.hero-photos img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:14px;background:#efe6d3}
.hero-photos .hero-main{grid-column:1/-1;aspect-ratio:2/1}
.hero-photos figcaption{grid-column:1/-1;font-size:11px;line-height:1.5;color:#56655c}
.welcome-copy>.closed-note{margin-top:18px;max-width:460px;border-radius:8px;background:#e7edde;padding:10px 14px;font-size:14px;line-height:1.6}
.closed-note a,.closed-box a{color:var(--green);font-weight:600}
.test-banner{margin:0;background:var(--yellow);color:var(--ink);text-align:center;font-size:13px;line-height:1.5;padding:8px 16px}.test-leave{margin-left:6px;border:1px solid currentColor;border-radius:20px;background:none;color:inherit;padding:3px 10px;font-size:12px}
.closed-box{border-radius:8px;background:#e7edde;padding:16px 18px;margin:0 0 20px;font-size:14px;line-height:1.6}
.closed-box strong{display:block;margin-bottom:4px;font:500 20px/1.3 Fraunces,Georgia,serif}.step-body>.closed-box{margin-top:24px}
.is-closed:not(.is-ordering) .progress{display:none} /* v29: while orders are closed, the bar only appears inside a plan (Back/Next) */
.dishes{max-width:1200px;margin:0 auto;padding:48px 40px 8px}
.dishes-head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:12px 24px;margin-bottom:22px}
.dishes-head h2{margin-top:10px;outline:none}
.dishes-all{margin-top:0;min-height:44px;align-items:flex-end;border:0;border-bottom:1px solid currentColor;background:none;padding:0 0 5px;color:var(--green)}
a[href^="tel:"]{white-space:nowrap}.app-header nav a{white-space:nowrap}
/* v32.3: one picture of a catering spread instead of a list of dishes (the menu itself is under "See the full menu") */
.spread{margin:0}
.spread img{display:block;width:100%;height:auto;aspect-ratio:12/5;border-radius:16px;background:#f6eee2}
.spread figcaption{margin-top:14px}
.format-img{display:block;width:calc(100% + 36px);max-width:none;height:auto;aspect-ratio:16/10;object-fit:cover;margin:-18px -18px 8px;border-radius:11px 11px 0 0;background:#efe6d3}
.format-card strong{padding-right:0}
.format-card:after{background:var(--paper)}
.faq{max-width:1200px;margin:0 auto;padding:24px 40px 44px}
.faq-head h2{margin-top:10px}
/* v32.3: every answer shows (no accordion), in two columns that each item keeps whole */
.faq-list{columns:2;column-gap:48px;margin-top:22px}
.faq-item{break-inside:avoid;page-break-inside:avoid;-webkit-column-break-inside:avoid;padding:18px 0 20px;border-top:1px solid var(--line)}
.faq-item h3{margin:0;font:500 20px/1.3 Fraunces,Georgia,serif;color:var(--ink)}
.faq-item p{margin:8px 0 0;font-size:15px;line-height:1.7;color:#35493f}
.faq-item a{color:var(--green);font-weight:600}
.faq-item .lead-table>h3{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.help-photo{margin:0}
.help-photo img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:8px}
.help-photo figcaption{margin-top:6px;font-size:11px;color:#56655c}
@media(min-width:1550px){.hero-photos{max-width:600px}}
@media(max-width:1200px){.welcome{gap:28px;padding:36px 28px}}
@media(max-width:800px){.app-header nav a[href="#how"]{display:none}}@media(max-width:960px){.hero-photos{max-width:none}.dishes{padding:40px 24px 8px}.faq{padding:16px 24px 36px}.faq-list{columns:1}}
@media(max-width:650px){.welcome{gap:0;padding:28px 24px}.welcome-copy>p:not(.eyebrow){max-width:none}.hero-photos{order:-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 22px}.hero-photos .hero-main{grid-column:auto;aspect-ratio:1}.hero-photos img{border-radius:10px}.dishes{padding:32px 24px 4px}.dishes-head h2,.faq-head h2{font-size:30px}.spread img{aspect-ratio:3/2;border-radius:12px}.faq-item{padding:14px 0 16px}.faq-item h3{font-size:18px}.faq-item p{margin-top:6px;font-size:14px;line-height:1.6}.format-card{display:grid;grid-template-columns:84px minmax(0,1fr);align-items:start;column-gap:14px;padding:12px 44px 12px 12px}.format-img{grid-row:1/span 3;width:84px;height:84px;aspect-ratio:1;margin:0;border-radius:8px}.format-card>strong,.format-card>span{grid-column:2}.format-card:after{top:12px;right:12px}.help-photo{margin-bottom:18px}}
/* v28 (Oct 1, 2026): three ways to order with their choices, the read-only table, and the lead-time table. */
.format-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:960px){.format-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.format-cards{grid-template-columns:1fr}}
.basket-row,.basket-row:has(.basket-thumb){grid-template-columns:44px minmax(0,1fr);grid-template-areas:"thumb main"}
.basket-flat{grid-template-columns:minmax(0,1fr);grid-template-areas:"main"}
@media(max-width:650px){.basket-row{grid-template-columns:44px minmax(0,1fr);grid-template-areas:"thumb main"}.basket-flat{grid-template-columns:minmax(0,1fr);grid-template-areas:"main"}}
.chooser{margin-top:16px;border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:20px 22px 22px}
.chooser-intro{margin:0;font-size:15px;line-height:1.6}
.chooser-intro strong{font-weight:600}
.choose-group{border:0;padding:0;margin:22px 0 0;min-width:0}
.choose-group legend{font:500 21px/1.3 Fraunces,Georgia,serif;margin:0 0 10px;padding:0}
.choose-num{font:600 12px/1 Inter,sans-serif;letter-spacing:1.2px;color:var(--muted);margin-right:6px;vertical-align:3px}
.choose-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.choose-option{display:flex;align-items:center;gap:12px;min-height:66px;text-align:left;border:1px solid var(--line);border-radius:10px;background:var(--paper);padding:7px 12px 7px 7px;color:var(--ink);transition:border-color .15s,box-shadow .15s,background .15s}
.choose-option img{flex:none;width:64px;height:51px;object-fit:cover;border-radius:6px;background:#efe7d6}
.choose-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.choose-text strong{font-size:15px;font-weight:600;line-height:1.3}
.choose-text small{font-size:13px;line-height:1.35;color:var(--muted)}
.choose-option[aria-pressed="true"]{border-color:var(--green);box-shadow:0 0 0 2px var(--green);background:#e7edde}
.choose-option[aria-pressed="true"] .choose-text small{color:#56645b}
.choose-option[aria-disabled="true"]{border-style:dashed}.choose-option[aria-disabled="true"] img,.choose-option[aria-disabled="true"] .food-frame{opacity:.5}.choose-option[aria-disabled="true"] strong{color:var(--muted)}
.choose-option:focus-visible{outline-offset:3px}
@media(hover:hover){.choose-option:hover{border-color:var(--green)}}
.choose-status{margin:9px 0 0;font-size:14px;line-height:1.5;color:var(--muted)}.box-group .choose-status{position:sticky;bottom:calc(var(--progress-h,76px) + 8px);z-index:2;margin-top:12px;padding:9px 14px;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:0 4px 16px #10291f1f;color:var(--ink);font-weight:600}
.choose-status.is-error,.choose-group.is-over legend{color:#b53020}
@media(max-width:650px){.chooser{padding:16px 14px 18px}.choose-options{grid-template-columns:1fr}.choose-group legend{font-size:19px}}
.payment-terms{margin-top:10px}
.lead-intro{margin-top:22px}

.lead-table{border-left:3px solid #e4dccb;border-radius:0 10px 10px 0;background:#fdfaf4;padding:22px 24px 20px}
.lead-table h3{margin:0 0 6px;font:500 30px/1.15 Fraunces,Georgia,serif;color:var(--ink)}
.lead-table>p{margin:0 0 14px;font-size:15px;line-height:1.55;color:var(--muted)}
.lead-table>p.lead-min{display:inline-block;margin:0 0 6px;border-radius:4px;background:#f4e9dd;color:#8c4a2c;padding:7px 13px;font-size:14px}
.lead-table table{width:100%;border-collapse:collapse;font-size:15px}
.lead-table thead th{padding:14px 12px 10px 0;border-bottom:1px solid var(--ink);text-align:left;font:600 11px/1.4 Inter,sans-serif;letter-spacing:1.4px;text-transform:uppercase;color:var(--muted)}
.lead-table tbody th,.lead-table td{padding:14px 12px 14px 0;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;line-height:1.45}
.lead-table tbody th{font-weight:700;width:34%} /* v33: the rows name what's ordered ("Boxes, up to 30 guests"), so they wrap */
.lead-table>p.lead-note{margin:14px 0 0;font-size:14px}
.lead-note strong{color:var(--ink)}
.faq-list .lead-table{margin:6px 0 12px}
@media(max-width:650px){.lead-table{padding:16px 12px 14px}.lead-table h3{font-size:25px}.lead-table table{font-size:13px}.lead-table thead th{font-size:10px;letter-spacing:.8px;padding-right:8px}.lead-table tbody th,.lead-table td{padding:11px 8px 11px 0}}
.delivery-box{margin:22px 0 0;padding:12px 16px}.delivery-box strong{display:inline;margin:0;font:600 14px/1.6 Inter,sans-serif;color:var(--green)}

/* v29 (preview, Oct 1, 2026): browsing, and a guided order that shows one step at a time (#order/food, #order/pickup,
   #order/send). The .js class is set in the page head, so steps never flash before the page picks one. */
.js #order .step{display:none}
.js.is-ordering #order .step.is-current{display:block}
.js.is-ordering .welcome,.js.is-ordering .dishes,.js.is-ordering .menu-wrap,.js.is-ordering .order-intro,.js.is-ordering .faq,.js.is-ordering .little-help{display:none}
.js.is-ordering .order{min-height:calc(100vh - 94px);padding-top:28px}
.js.is-ordering .step{margin-bottom:0}
.app-header nav .nav-order{border:1px solid var(--green);border-radius:30px;padding:8px 16px}
.app-header nav .nav-order:hover{background:#e7edde}
.is-ordering .app-header nav .nav-order{background:var(--green);color:var(--paper)}
/* The full menu, between the dishes and the three ways to order */
.menu-wrap{max-width:1200px;margin:0 auto;padding:0 40px}
.menu-wrap .menu-toggle{margin-top:0}
/* The homepage's three ways to start an order */
.order-intro{display:block;margin-bottom:8px}
.order-intro .how-lede{max-width:680px;margin-top:10px;color:var(--muted);font-size:16px;line-height:1.6}
.start-cards{margin-top:22px}
.start-card:after{display:none}
.start-card .format-summary{color:var(--muted);font-size:14px;line-height:1.5}
.start-go{margin-top:auto;padding-top:6px;font-weight:600;color:var(--green)}
.order-intro .how-help{display:inline-flex;margin-top:14px}
/* Pickup: the notice table opens from a link; the step's own hint says what applies to this headcount */
.lead-details{margin-top:4px;border-top:0;padding:0}
.lead-details>summary{display:inline-flex;align-items:center;gap:8px;min-height:44px;cursor:pointer;font-weight:600;color:var(--green);list-style:none}
.lead-details>summary::-webkit-details-marker{display:none}
.lead-details>summary:after{content:'+';display:grid;place-items:center;width:22px;height:22px;border:1px solid var(--green);border-radius:50%;font-weight:500}
.lead-details[open]>summary:after{content:'−'}
.lead-details .lead-table>h3{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
/* Guests lead the food step */
.guests-field{margin-bottom:20px}
/* The bottom bar: Back · where you are · Next */
.progress-back{display:inline-flex;align-items:center;gap:8px;flex-shrink:0;min-height:44px;border:1px solid #fbf7ed99;border-radius:30px;background:transparent;color:var(--paper);padding:10px 18px;font-size:15px;font-weight:600}
@media(hover:hover){.progress-back:hover{background:#fbf7ed1f}}
@media(max-width:960px){.menu-wrap{padding:0 24px}}
/* Each choice in step 1 has its details (ingredients, allergens) beside it */
.choose-item{position:relative;display:flex;min-width:0}
.choose-item .choose-option{flex:1;min-width:0;padding-right:52px}
.choose-info{position:absolute;top:50%;right:6px;transform:translateY(-50%);display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:var(--green)}
.choose-info span{display:grid;place-items:center;width:24px;height:24px;border:1.5px solid currentColor;border-radius:50%;font:italic 600 15px/1 Georgia,serif}
@media(hover:hover){.choose-info:hover span{background:var(--green);color:var(--paper)}}
.choose-info:focus-visible{outline:2px solid var(--green);outline-offset:-2px}
/* Phones: the bar shows the step, guests and price (the review has the rest) beside an arrow-only Back, so it stays two lines;
   the start cards have no check mark, so their text runs to the edge and "Start with …" sits across the foot of the card;
   in the food step the cards are compact (the choices below spell out the detail) */
@media(max-width:650px){.progress-text .plan-format,.progress-text .plan-when{display:none}.progress-back{width:44px;justify-content:center;padding:0}.progress-back .back-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
 .start-card{padding-right:14px}.start-card .start-go{grid-column:1/-1;margin-top:8px;padding-top:10px;border-top:1px solid var(--line)}
 #format-cards .format-detail{display:none}#format-cards .format-img{width:64px;height:64px}#format-cards .format-card{grid-template-columns:64px minmax(0,1fr);column-gap:12px}}
@media(max-width:650px){.menu-wrap{padding:0 12px}.js.is-ordering .order{padding-top:16px;min-height:calc(100vh - 80px)}.order-intro .how-lede{font-size:15px}}
/* v30 (Oct 2, 2026): box lunches for 6 or 7 guests (how many of each sandwich or salad, each box with its side), step 1's
   line about the options for other guest counts, and the homepage's line for six or seven guests */
.format-range{margin:12px 0 0;font-size:14px;line-height:1.55;color:var(--muted)}
.format-range:empty{display:none}
.box-options{grid-template-columns:repeat(auto-fill,minmax(min(100%,400px),1fr))}
.box-item{position:relative;display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;column-gap:12px;min-height:66px;border:1px solid var(--line);border-radius:10px;background:var(--paper);padding:7px 52px 7px 7px;transition:border-color .15s,box-shadow .15s,background .15s}
.box-item.is-selected{border-color:var(--green);box-shadow:0 0 0 2px var(--green);background:#e7edde}
.box-item.is-selected .choose-text small{color:#56645b}
.box-item img{width:64px;height:51px;object-fit:cover;border-radius:6px;background:#efe7d6}
.box-count{padding:1px}
.box-n{min-width:26px;text-align:center;font-size:17px;font-weight:600;font-variant-numeric:tabular-nums}
.box-count button[aria-disabled="true"]{opacity:.35;cursor:default}.guests-field .stepper button[aria-disabled="true"]{opacity:.35;cursor:default}.sent-summary{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;margin:4px 0 18px;padding:16px 18px;border-radius:8px;background:#e7edde;font-size:15px;line-height:1.45;color:var(--ink)}.sent-summary dt{font-weight:600;color:var(--green)}.sent-summary dd{margin:0}
@media(hover:hover){.box-count button[aria-disabled="true"]:hover{background:none}}
@media(max-width:650px){.box-item{grid-template-columns:52px minmax(0,1fr);grid-template-areas:"img text" "img count";align-items:start;row-gap:6px;column-gap:10px}.box-item img{grid-area:img;width:52px;height:42px}.box-item .choose-text{grid-area:text}.box-item .box-count{grid-area:count;justify-self:start}}
.small-groups{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 18px;margin:12px 0 0;border:1px dashed #193f3466;border-radius:12px;padding:8px 18px;font-size:15px;line-height:1.55;color:var(--ink)}
.small-start{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-weight:600;color:var(--green);text-decoration:none}
@media(hover:hover){.small-start:hover{text-decoration:underline;text-underline-offset:3px}}
@media(max-width:650px){.small-groups{padding:12px 14px;font-size:14px}}
/* v31 (Oct 3, 2026): two offers (a Bowl Bar, Sandwiches & Platters) and how to pack the sandwiches, the choosers' hints and
   the dressings' extras, and Extras: any dish, in any amount, on top. */
.format-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
.guests-hint a{color:inherit}
.style-choice:empty{display:none}
.style-group{margin-top:18px}
.style-group .field-label{display:block;margin:0 0 8px}
.style-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.style-option{position:relative;display:grid;grid-template-columns:96px minmax(0,1fr);align-items:center;column-gap:14px;min-height:78px;text-align:left;border:1px solid var(--line);border-radius:10px;background:var(--paper);padding:8px 42px 8px 8px;color:var(--ink);transition:border-color .15s,box-shadow .15s,background .15s}
.style-option .format-img{width:96px;height:60px;aspect-ratio:auto;object-fit:cover;border-radius:6px;margin:0}
.style-text{display:flex;flex-direction:column;gap:1px;min-width:0}
.style-text strong{font-size:16px;font-weight:600;line-height:1.3}
.style-text .format-price{font-size:14px;font-weight:600;color:var(--green)}
.style-text small{font-size:13px;line-height:1.4;color:var(--muted)}
.style-option:after{content:'';position:absolute;top:10px;right:10px;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1px solid #133f3460;background:var(--paper);font-size:13px}
.style-option[aria-pressed="true"]{border-color:var(--green);box-shadow:0 0 0 2px var(--green);background:#e7edde}
.style-option[aria-pressed="true"] .style-text small{color:#56645b}
.style-option[aria-pressed="true"]:after{content:'✓';background:var(--green);border-color:var(--green);color:var(--paper)}
.style-option:focus-visible{outline-offset:3px}
.choose-hint{margin:-4px 0 10px;font-size:14px;line-height:1.5;color:var(--muted)}
.choose-option.is-extra{border:1.5px dashed var(--green);box-shadow:none;background:#fff8e6}
.choose-option.is-extra .choose-text small{color:var(--green);font-weight:600}
.extras{margin-top:16px;border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:16px 22px 18px}
.extras-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 18px}
.extras-head h3{font:500 21px/1.3 Fraunces,Georgia,serif;margin:0}
.extras-summary{margin:2px 0 0;font-size:14px;line-height:1.5;color:var(--muted)}
.extras-toggle.button{width:auto;min-height:44px;margin:0;padding:10px 20px;justify-content:center;color:var(--green);font-weight:600}
.extras-body{margin-top:14px}
.extras-intro{margin:0 0 12px;font-size:14px;line-height:1.55;color:var(--muted)}.extras-timing{margin:8px 0 0;font-size:14px;line-height:1.5;color:var(--ink);background:#fbe9c4;border-left:3px solid var(--yellow);border-radius:6px;padding:8px 10px}.extras-pack{margin:-4px 0 12px;font-size:14px;line-height:1.55;color:var(--green);background:#efe5c9;border-radius:8px;padding:10px 12px}
.extras-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.extras-tabs button{min-height:44px;border:1px solid var(--line);border-radius:25px;background:var(--paper);padding:8px 14px;font-size:14px;color:var(--ink)}
.extras-tabs [aria-pressed="true"]{background:var(--green);border-color:var(--green);color:var(--paper)}
.tab-count{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:4px;padding:0 6px;border-radius:10px;background:var(--yellow);color:var(--ink);font-size:12px;font-weight:600;line-height:1}
.extras-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,400px),1fr));gap:10px}
.extra-row{position:relative;display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;column-gap:12px;min-height:66px;border:1px solid var(--line);border-radius:10px;background:var(--paper);padding:7px 52px 7px 7px;transition:border-color .15s,box-shadow .15s,background .15s}
.extra-row.is-selected{border-color:var(--green);box-shadow:0 0 0 2px var(--green);background:#e7edde}
.extra-row.is-selected .choose-text small{color:#56645b}
.extra-row img{width:64px;height:51px;object-fit:cover;border-radius:6px;background:#efe7d6}
.extra-controls{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.extra-count{padding:1px}
.extra-count input,.box-count input{width:52px;min-height:44px;font-size:17px}
.extra-count input::placeholder,.box-count input::placeholder{color:#9aa39c}
.extra-count button[aria-disabled="true"]{opacity:.35;cursor:default}
.extra-total{min-height:18px;font-size:13px;font-weight:600;color:var(--green);font-variant-numeric:tabular-nums}
.basket-sub{padding:14px 0 6px;border-bottom:1px solid var(--line);font-size:11px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}
.summary-sub{margin:16px 0 0;font-size:12px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}
.card-price .extra-price{color:var(--green);font-weight:600}
@media(hover:hover){.style-option:hover,.extras-tabs button:not([aria-pressed="true"]):hover{border-color:var(--green)}.extra-count button[aria-disabled="true"]:hover{background:none}}
/* Step 1's two offers sit side by side, each a photo beside its name, price and summary. */
@media(min-width:651px){#format-cards .format-card{display:grid;grid-template-columns:168px minmax(0,1fr);grid-template-rows:auto auto 1fr;align-items:start;column-gap:18px;row-gap:4px;padding:14px 46px 14px 14px}#format-cards .format-img{grid-row:1/span 3;width:168px;height:auto;aspect-ratio:16/10;margin:0;border-radius:8px}#format-cards .format-card>strong,#format-cards .format-card>span{grid-column:2}}
@media(max-width:650px){.format-cards{grid-template-columns:1fr}.style-options{grid-template-columns:1fr}.style-option{grid-template-columns:64px minmax(0,1fr);column-gap:12px;min-height:70px}.style-option .format-img{width:64px;height:52px}
 .extras{padding:14px}.extras-toggle.button{width:100%}
 .extra-row{grid-template-columns:52px minmax(0,1fr);grid-template-areas:"img text" "controls controls";align-items:start;row-gap:6px;column-gap:10px}.extra-row img{grid-area:img;width:52px;height:42px}.extra-row .choose-text{grid-area:text}.extra-row .extra-controls{grid-area:controls;flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px 12px;justify-self:start}}

@media(max-height:500px){.app-header{position:static}}
/* v32 (Oct 4, 2026): ready-made lunches (PACKAGES) under the two offers on the homepage, and as chips in step 1 (those that
   fit the guest count) until an offer is chosen; this order's own deadlines beside Send and on the sent screen. */
.packages{margin-top:28px}
.packages-title{margin:0;font:500 24px/1.2 Fraunces,Georgia,serif;color:var(--green)}
.packages-lede{margin:6px 0 0;color:var(--muted);font-size:15px;line-height:1.55}
.package-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0 0;padding:0;list-style:none}
.package-list li{display:flex}
.package-card{position:relative;display:grid;grid-template-columns:104px minmax(0,1fr);gap:14px;align-items:start;width:100%;text-align:left;border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:12px 40px 12px 12px;color:var(--green);transition:border-color .15s,box-shadow .15s}
.package-img{display:block;width:104px;height:104px;object-fit:cover;border-radius:8px;background:#efe6d3}
.package-text{display:flex;flex-direction:column;gap:4px;min-width:0;height:100%}
.package-text strong{font:500 20px/1.2 Fraunces,Georgia,serif}
.package-about{font-size:14px;line-height:1.5;color:var(--muted)}
.package-price{margin-top:auto;padding-top:4px;font-size:15px;font-weight:600}
.package-go{position:absolute;top:50%;right:14px;transform:translateY(-50%);font-size:18px;font-weight:600;transition:transform .15s}
@media(hover:hover){.package-card:hover{border-color:var(--green)}.package-card:hover .package-go{transform:translate(3px,-50%)}}
.package-card:focus-visible{outline-offset:3px}
/* Phones: text-only rows (the offer cards above carry the photos), so the four fit in little more than a screen. */
@media(max-width:650px){.packages{margin-top:22px}.packages-title{font-size:21px}.packages-lede{font-size:14px}.package-list{grid-template-columns:1fr;gap:8px}.package-card{grid-template-columns:minmax(0,1fr);padding:11px 36px 12px 14px}.package-img{display:none}.package-text{gap:2px}.package-text strong{font-size:18px}.package-about{font-size:13px;line-height:1.45}.package-price{font-size:13.5px}.package-go{right:14px}}
.package-chips{margin-top:14px}
.package-chips-label{margin:0 0 8px;font-size:14px;color:var(--muted)}
.package-chip-row{display:flex;flex-wrap:wrap;gap:8px}
.package-chip{display:inline-flex;align-items:baseline;gap:6px;min-height:44px;border:1px solid var(--field-line);border-radius:999px;background:var(--paper);padding:10px 16px;font-size:15px;font-weight:600;color:var(--green)}
.package-chip span{font-weight:500;color:var(--muted)}
@media(hover:hover){.package-chip:hover{border-color:var(--green);background:#e7edde}}
.order-terms{margin:0 0 16px;border-left:3px solid var(--yellow);border-radius:0 6px 6px 0;background:#fdf3d8;padding:10px 14px;font-size:14px;line-height:1.55;color:var(--ink)}
.sent-terms{margin:10px 0 0;font-size:14px;line-height:1.6;color:var(--ink)}
/* v32.1 (Oct 4, 2026): a drink sold in more than one size under Extras, one row with a count for each size: each size and
   its price beside its count, the counts in a column (on phones, each count under its size). Unused since v32.7 (Bradley,
   Oct 5: ½-gallon carafes only, a row like any dish's); kept for a size that comes back (README). */
.extra-carafe .extra-controls{display:grid;grid-template-columns:auto auto;align-items:center;justify-items:end;gap:4px 8px}
.extra-carafe .extra-total{grid-column:1/-1}
.extra-size{display:contents}
.extra-size-name{font-size:13px;color:var(--muted);white-space:nowrap}
.extra-row.is-selected .extra-size-name{color:#56645b} /* 4.5:1 on the selected row's green */
@media(max-width:650px){.extra-carafe .extra-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 14px}
 .extra-size{display:flex;flex-direction:column;align-items:flex-start;gap:3px}.extra-carafe .extra-total{flex-basis:100%}}

/* v32.5–v32.6: the print's fun on the page (Bradley, Oct 4: "i love the checkered table clothe, we should bring this into
   the site and more of those fun elements that we have developed for the print collateral"): the labels' gingham, the
   apple dog balancing a dish (tools/build-web-art.py), yellow badges and the labels' chips, each boxed dish's label colour.
   The gingham runs only in horizontal bands, a tablecloth's edge (Bradley, Oct 5: "the horizontal checker pattern works
   in the horizontal use cases but not as border for images"). v32.6, a design pass for consistency ("loop and make sure
   that the design is consistent and high quality"): one gutter for the hero, the Bistro box and the footer, whose bands
   run the window's full width; one size for the dog wherever it shows (116 px; 96 on tablets, 80 on phones), its paws on
   the baseline of the words beside it and its right edge on theirs; diet tags as the labels' own chips. */
/* The basket's cloth, as on the labels: the card's cream (not print's white), one stripe (ed8787), both (db0f10). */
:root{--gutter:40px;--gingham:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='2' height='2' shape-rendering='crispEdges'%3E%3Cpath fill='%23fffcf6' d='M0 0h2v2H0z'/%3E%3Cpath fill='%23ed8787' d='M1 0h1v1H1zM0 1h1v1H0z'/%3E%3Cpath fill='%23db0f10' d='M1 1h1v1H1z'/%3E%3C/svg%3E")}
@media(max-width:960px){:root{--gutter:24px}}
@media(min-width:1801px){:root{--gutter:calc(50vw - 860px)} main{max-width:none}} /* the content stays 1720 px wide */
.welcome,footer{padding-left:var(--gutter);padding-right:var(--gutter)}
.little-help{margin-left:var(--gutter);margin-right:var(--gutter)}
.welcome{position:relative;border-bottom:0;padding-bottom:54px} /* the band below, and room above it */
.welcome:after{content:"";position:absolute;left:0;right:0;bottom:0;height:24px;background:var(--gingham) 50% 8px/16px 16px} /* three rows, red at both edges, centred */
footer:before{content:"";display:block;height:24px;margin:-15px calc(-1*var(--gutter)) 26px;background:var(--gingham) 50% 8px/16px 16px}
.js.is-ordering .order{padding-bottom:40px} /* the same room above the footer's band as on the homepage */
/* Yellow means what's next: the step to do (green with a tick once done), and the next steps once a request is sent. */
.step-num{background:var(--yellow);border-color:var(--yellow);color:var(--ink)}
.step.is-done .step-num{border-color:var(--green)}
.next-steps{list-style:none;padding-left:0;counter-reset:next}
.next-steps li{position:relative;padding-left:38px;counter-increment:next}
.next-steps li+li{margin-top:12px}
.next-steps li:before{content:counter(next);position:absolute;left:0;top:-1px;width:26px;height:26px;border-radius:50%;background:var(--yellow);color:var(--ink);font:500 15px/26px Fraunces,Georgia,serif;text-align:center}
/* The labels' chips: white, the words and the ring in the dish's colour (the site's green for a dish with no label colour). */
.diet-tags span{border:1.5px solid currentColor;border-radius:999px;padding:4px 9px 3px;background:#fff;color:var(--dish,var(--green));font:600 12px/1.2 Inter,sans-serif;letter-spacing:.1em;text-transform:uppercase}
.menu-card .card-body{box-shadow:inset 0 5px var(--dish,transparent)} /* a boxed dish's band, as on its label */
#item-dialog{border-top:5px solid var(--dish,transparent)} /* its details: the band along the top (a border, so scrolling can't cover it) */
@media print{.menu-card .card-body{box-shadow:none;border-top:4px solid var(--dish,transparent)}} /* no background graphics on paper */
/* Smaller labels in capitals, like every other eyebrow; under its group's heading a card needn't name its kind again. */
.card-type,.modal-heading .eyebrow{text-transform:uppercase;letter-spacing:.1em}
#products:has(.menu-group-heading) .card-type{display:none}
/* The minimum as a chip like the hero's ("From 10 guests"); one style for the yellow notes. */
.lead-table>p.lead-min{border-radius:999px;background:#fffcf6;border:1px solid var(--line);color:var(--green);padding:6px 12px;font-size:13px}
.extras-timing{background:#fdf3d8;border-radius:0 6px 6px 0;padding:10px 14px}
/* The dog: one size wherever it shows; its paws on the baseline of the words beside it, its right edge on theirs. */
.start-card .card-dog{position:absolute;right:18px;bottom:25px;width:116px;height:auto;pointer-events:none}
.start-card strong,.start-card .format-price,.start-card .format-summary,.start-card .start-go{margin-right:124px}
.menu-heading{flex-direction:row;align-items:end;justify-content:space-between}
.menu-dog{flex-shrink:0;width:116px;height:auto;margin-bottom:8px}
.sent-view{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:24px;max-width:none}
.sent-view>*{grid-column:1/-1;max-width:680px}
.sent-view>.eyebrow,.sent-view>h3,.sent-view>.sent-ref{grid-column:1}
.sent-dog{grid-column:2;grid-row:1/span 3;align-self:end;justify-self:end;width:116px;height:auto;margin:0 0 23px}
.sent-view .eyebrow{text-wrap:balance}
@media(max-width:999px){.start-card .card-dog{display:none} /* under 1000 px the cards are too narrow for it beside their words */
 .start-card strong,.start-card .format-price,.start-card .format-summary,.start-card .start-go{margin-right:0}}
@media(max-width:960px){.menu-dog,.sent-dog{width:96px}}
@media(max-width:650px){.welcome:after,footer:before{height:18px;background-position:50% 6px;background-size:12px 12px}
 .welcome{padding-top:22px;padding-bottom:42px}
 footer:before{margin-bottom:22px}
 .js.is-ordering .order{padding-bottom:30px}
 .menu-heading{display:flex}
 .menu-dog{width:80px;margin-bottom:7px}
 .sent-view>.eyebrow,.sent-view>h3,.sent-view>.sent-ref,.sent-dog{grid-column:1/-1}
 .sent-dog{grid-row:auto;justify-self:start;width:80px;margin:0 0 8px}} /* on phones the dog stands above the words */
/* each boxed dish's label band, for its card's band and pills */
/* DISH COLOURS: tools/build-web-art.py writes this block */
[data-dish="caesar-salad"]{--dish:#0f5e5c}
[data-dish="chicken-caesar-sandwich"]{--dish:#01377d}
[data-dish="harvest-bowl"]{--dish:#8f6600}
[data-dish="house-salad"]{--dish:#a3214f}
[data-dish="mediterranean-salad"]{--dish:#0074ad}
[data-dish="roasted-vegetable-tapenade"]{--dish:#5a2a6b}
[data-dish="tuna-fennel-goddess"]{--dish:#3d6b22}
[data-dish="turkey-maple-bacon"]{--dish:#9c3418}
/* END DISH COLOURS */
