:root{--brand-red:#ef252b;--brand-red-dark:#c91319;--brand-pink:#fff4f4;--ink:#171717;--line:#ededed}
body{color:var(--ink)}
.demo-bar{background:#fff;color:#777;border-bottom:1px solid #f1f1f1}
.header{background:#fff}.brand-logo{width:190px;height:auto;display:block;object-fit:contain}.brand img{border-radius:0}
.header nav a{position:relative}.header nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-8px;height:2px;background:var(--brand-red);transition:right .25s ease}.header nav a:hover{text-decoration:none}.header nav a:hover:after{right:0}
.bag-button{background:var(--brand-red);border-color:var(--brand-red);color:#fff;padding:9px 11px 9px 20px}.bag-button:hover{background:var(--brand-red-dark)}.bag-count{background:#fff;color:var(--brand-red)}
.hero{background:#151515}.hero-photo:after{background:linear-gradient(90deg,#121212 0%,#121212f7 28%,#121212a8 48%,#12121214 80%)}
.hero-copy .eyebrow{color:#fff}.dot{background:var(--brand-red)}.hero .primary,.primary{background:var(--brand-red);color:#fff}.hero .primary:hover,.primary:hover{background:var(--brand-red-dark)}
.quick-links>a,.quick-links>div{min-height:150px;display:grid;grid-template-columns:1fr auto;grid-template-rows:1fr auto;background:var(--brand-pink);border-color:#f2dede;padding:25px 28px}.quick-links svg{grid-column:1/-1;width:54px;height:54px;fill:none;stroke:var(--brand-red);stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;justify-self:center;align-self:start}.quick-links>a>span:nth-of-type(1),.quick-links>div>span{align-self:end;color:var(--brand-red);font-weight:700}.quick-links>a>span:last-child{color:var(--brand-red)}.quick-links small{grid-column:1/-1;color:#777}
.filters button[aria-pressed=true]{background:var(--brand-red);color:white;border-color:var(--brand-red)}
.menu-note{color:#777}.dish{background:#f7f7f7;border-color:#ececec;transition:transform .3s ease,box-shadow .3s ease}.dish:hover{transform:translateY(-5px);box-shadow:0 18px 40px #1b10100d}.dish-photo,.dish-art{background:white}.dish-art,.bites .dish-art{color:#777;background:#fff}.dish-bottom button{width:auto;min-width:84px;border-radius:24px;background:var(--brand-red);color:#fff;font-size:12px;font-weight:700;padding:0 20px}.dish-bottom button:hover{background:var(--brand-red-dark)}
.belle-life{background:#fff;border:1px solid #eee;box-shadow:0 20px 60px #170b0b0a}.light{background:var(--brand-red);border-color:var(--brand-red);color:#fff}.light:hover{background:var(--brand-red-dark)}
.visit-details h3{color:#7f0e13}.visit .eyebrow{color:var(--brand-red)}
.footer-brand{color:var(--brand-red)}dialog{border-top:5px solid var(--brand-red)}.bag-notice{background:var(--brand-pink)}input{accent-color:var(--brand-red)}
.motion-ready [data-reveal]{opacity:0;transform:translateY(28px)}.motion-ready [data-reveal].is-visible{opacity:1;transform:none;transition:opacity .65s ease var(--reveal-delay,0ms),transform .65s cubic-bezier(.2,.75,.25,1) var(--reveal-delay,0ms)}
@media(max-width:700px){.brand-logo{width:142px}.bag-button{padding:8px 9px 8px 13px}.quick-links>a,.quick-links>div{min-height:116px;padding:16px}.quick-links svg{width:42px;height:42px}.quick-links>div{grid-column:auto;display:grid;min-height:116px;border:1px solid #f2dede;background:var(--brand-pink)}.quick-links{grid-template-columns:repeat(3,1fr)}.quick-links>a>span:nth-of-type(1),.quick-links>div>span{font-size:9px}.quick-links small{display:none}.dish-bottom button{min-width:70px;height:40px;padding:0 16px}}
@media(prefers-reduced-motion:reduce){.motion-ready [data-reveal]{opacity:1;transform:none}.motion-ready [data-reveal].is-visible{transition:none}.dish{transition:none}}

/* Reference-measured layout pass: Mama Cass rhythm, Bellefood identity. */
body{font-size:14px;line-height:1.65}
.demo-bar{min-height:22px;display:flex;align-items:center;justify-content:center;padding:4px 12px}
.header{width:min(84vw,1600px);max-width:1600px;min-height:76px;padding:10px 0}
.brand-logo{width:158px;height:46px;object-fit:contain}
.header nav{gap:38px;font-size:13px}
.bag-button{min-height:46px;padding:7px 9px 7px 19px;font-size:12px;gap:13px}
.bag-count{width:28px;height:28px}
.hero{width:min(84vw,1600px);max-width:1600px;min-height:520px;padding:68px 60px 48px;border-radius:30px}
.hero-copy{max-width:500px}
.hero-copy .eyebrow{margin-bottom:21px;font-size:10px}
h1{font-size:var(--type-hero);line-height:1.08;letter-spacing:-1.8px;margin-bottom:21px}
.intro{font-size:14px;line-height:22px;max-width:380px}
.hero-actions{margin-top:24px}
.button{min-height:48px;padding:12px 24px;font-size:13px}
.hero-photo>img{right:0;width:78%;object-position:50% 66%}
.hero-photo:after{background:linear-gradient(90deg,#121212 0%,#121212 24%,#121212f7 34%,#121212c7 48%,#12121248 72%,#12121200 90%)}
.quick-links{width:min(78vw,1440px);max-width:1440px;padding:0;margin:48px auto 0;gap:30px}
.quick-links>a,.quick-links>div{min-height:210px;padding:30px 34px;border-radius:26px}
.quick-links svg{width:58px;height:58px}
.quick-links>a>span:nth-of-type(1),.quick-links>div>span{font-size:14px}
.section{width:min(78vw,1440px);max-width:1440px;padding:82px 0}
h2{font-size:34px;line-height:1.2;letter-spacing:-1px}
.menu-section .section-heading{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px}
.section-heading>p{font-size:13px;line-height:22px;max-width:none}
.menu-toolbar{margin:30px 0 26px;padding:0 2px}
.filters{gap:8px}.filters button{min-height:42px;padding:10px 18px;font-size:12px;border-radius:8px}
.menu-grid{gap:24px}
.dish{padding:16px;border:0;border-radius:20px;background:#f1f1f1;overflow:hidden}
.dish-photo,.dish-art{height:215px;border-radius:12px;overflow:hidden;background:#fff}
.dish-body{padding:18px 0 0}
.dish-body h3{font-size:18px;line-height:26px;margin:0 2px 16px}
.dish-bottom{min-height:62px;margin:0;background:#fff;border-radius:999px;padding:7px 8px 7px 18px}
.dish-bottom span{font-size:11px;color:#777}
.dish-bottom button{min-height:48px;min-width:94px;border-radius:24px;font-size:13px}
.fine-print{margin-top:18px;text-align:center}
.belle-life{width:min(78vw,1440px);max-width:1440px;padding:38px;border-radius:26px;gap:60px}
.life-image{height:400px}.life-copy h2{font-size:34px}.life-copy>p:not(.eyebrow){font-size:14px;line-height:1.7}
.visit{padding-top:82px;padding-bottom:70px;gap:80px}.visit h2{font-size:34px}.visit-details h3{font-size:21px}
footer{width:min(78vw,1440px);max-width:1440px;padding:36px 0}
@media(max-width:900px){.header nav{gap:22px}.quick-links{gap:18px}.quick-links>a,.quick-links>div{padding:28px;min-height:210px}.belle-life{gap:40px}}
@media(max-width:700px){
 .demo-bar{min-height:0}.header{width:100%;min-height:68px;padding:10px 16px;flex-wrap:nowrap}.brand{flex:0 0 auto}.brand-logo{width:145px;height:44px;display:block}.header nav{display:none}.bag-button{min-height:42px;font-size:10px;padding:6px 7px 6px 12px}.bag-count{width:28px;height:28px}
 .hero{width:calc(100% - 32px);min-height:500px;padding:50px 30px 30px;border-radius:24px;align-items:end}.hero-copy .eyebrow{margin-bottom:18px}h1{font-size:42px;line-height:1.08;letter-spacing:-1.4px}.intro{font-size:14px;line-height:22px}.button{min-height:48px;font-size:12px;padding:12px 21px}.hero-photo>img{width:100%;object-position:50% 62%}.hero-photo:after{background:linear-gradient(0deg,#121212 0%,#121212f2 27%,#1212128c 58%,#1212120a 100%)}
 .quick-links{width:calc(100% - 32px);grid-template-columns:1fr;margin-top:30px;gap:15px}.quick-links>a,.quick-links>div{min-height:150px;border-radius:20px;padding:22px 25px}.quick-links svg{width:50px;height:50px}.quick-links>a>span:nth-of-type(1),.quick-links>div>span{font-size:14px}.quick-links>div{grid-column:auto}
 .section{width:calc(100% - 32px);padding:70px 0}h2{font-size:30px;line-height:1.22}.menu-toolbar{margin:25px 0}.menu-grid{gap:15px}.dish{border-radius:15px}.dish-body{padding:18px}.dish-bottom button{min-width:76px;min-height:42px}
 .belle-life{width:calc(100% - 32px);padding:20px;border-radius:20px;gap:30px}.life-image{height:300px}.life-copy h2{font-size:30px}.life-copy>p:not(.eyebrow){font-size:14px}
 .visit{padding-top:70px;padding-bottom:60px;gap:30px}.visit h2{font-size:30px}footer{width:calc(100% - 32px);padding:30px 0}
}

#order-menu{width:min(920px,calc(100% - 32px));padding:30px;border-radius:24px}
#order-menu .bag-top h2{font-size:32px;margin:8px 0 14px}
.order-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0}
.order-choice{display:grid;grid-template-columns:58px 1fr auto;align-items:center;gap:12px;padding:10px;background:#f4f4f4;border-radius:14px}
.order-choice img{width:58px;height:58px;object-fit:cover;border-radius:10px}
.order-choice h3{font:600 13px/1.3 Arial,sans-serif;margin:0 0 4px}.order-choice small{font-size:9px;color:#777}
.order-choice>button{border:0;background:var(--brand-red);color:#fff;border-radius:20px;min-width:54px;height:36px;font-size:11px;font-weight:700}
.order-choice>button:hover{background:var(--brand-red-dark)}
.order-view-bag{width:100%;justify-content:center}.order-view-bag .bag-count{margin-left:4px}
.order-trigger{cursor:pointer}
@media(max-width:760px){#order-menu{padding:20px}.order-grid{grid-template-columns:1fr}.order-choice{grid-template-columns:54px 1fr auto}.order-choice img{width:54px;height:54px}}

#bag{position:fixed;inset:18px 18px auto auto;margin:0;width:min(420px,calc(100% - 36px));max-height:calc(100dvh - 36px);z-index:50;border-radius:20px;box-shadow:0 24px 80px #1707072b}
#bag.peek{inset:82px 18px auto auto;width:310px;max-height:250px;padding:20px}
#bag.peek .bag-top h2{font-size:23px;margin:5px 0}#bag.peek .bag-top .eyebrow,#bag.peek .bag-notice,#bag.peek fieldset,#bag.peek #fulfilment-note,#bag.peek .bag-total,#bag.peek #preview-order,#bag.peek #checkout-note{display:none}
#bag.peek .bag-item{padding:11px 0}#bag.peek .bag-item h3{font-size:15px;margin-bottom:3px}#bag.peek .quantity button{height:36px;width:32px}
#bag[open]{animation:bag-slide-in .32s cubic-bezier(.2,.75,.25,1)}
@keyframes bag-slide-in{from{opacity:0;transform:translateX(28px)}to{opacity:1;transform:none}}
@media(max-width:700px){#bag{inset:auto 10px 10px 10px;width:auto;max-height:72dvh;border-radius:20px}#bag.peek{inset:70px 10px auto auto;width:270px;max-height:220px}#bag[open]{animation:bag-rise-in .32s cubic-bezier(.2,.75,.25,1)}@keyframes bag-rise-in{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}}

/* Motion pass: restrained entrances and immediate interaction feedback. */
.brand,.header nav,.bag-button,.hero-copy>*{opacity:0;transform:translateY(12px)}
.hero-photo{opacity:0;transform:scale(1.025)}
.page-ready .brand,.page-ready .header nav,.page-ready .bag-button{opacity:1;transform:none;transition:opacity .55s ease,transform .55s cubic-bezier(.2,.75,.25,1)}
.page-ready .header nav{transition-delay:80ms}.page-ready .bag-button{transition-delay:140ms}
.page-ready .hero-copy>*{opacity:1;transform:none;transition:opacity .65s ease,transform .65s cubic-bezier(.2,.75,.25,1)}
.page-ready .hero-copy .eyebrow{transition-delay:140ms}.page-ready .hero-copy h1{transition-delay:210ms}.page-ready .hero-copy .intro{transition-delay:280ms}.page-ready .hero-copy .hero-actions{transition-delay:350ms}
.page-ready .hero-photo{opacity:1;transform:none;transition:opacity .9s ease 100ms,transform 1.1s cubic-bezier(.2,.75,.25,1) 100ms}
.dish-photo img{transition:transform .6s cubic-bezier(.2,.75,.25,1)}.dish:hover .dish-photo img{transform:scale(1.045)}
.quick-links>a,.quick-links>div{transition:transform .3s cubic-bezier(.2,.75,.25,1),box-shadow .3s ease,border-color .3s ease}.quick-links>a:hover{transform:translateY(-5px);box-shadow:0 16px 34px #1807070d}
.button,.dish-bottom button,.order-choice>button{transition:background-color .2s ease,transform .2s ease,box-shadow .2s ease}.button:hover,.dish-bottom button:hover,.order-choice>button:hover{transform:translateY(-2px);box-shadow:0 9px 20px #a40d1224}.button:active,.dish-bottom button:active,.order-choice>button:active{transform:translateY(0) scale(.98)}
dialog[open]{animation:dialog-enter .32s cubic-bezier(.2,.75,.25,1)}dialog[open]::backdrop{animation:backdrop-enter .25s ease}
@keyframes dialog-enter{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}@keyframes backdrop-enter{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.brand,.header nav,.bag-button,.hero-copy>*,.hero-photo{opacity:1;transform:none}.page-ready .brand,.page-ready .header nav,.page-ready .bag-button,.page-ready .hero-copy>*,.page-ready .hero-photo,.dish-photo img,.quick-links>a,.quick-links>div,.button,.dish-bottom button,.order-choice>button{transition:none}.dish:hover .dish-photo img,.quick-links>a:hover,.button:hover,.dish-bottom button:hover,.order-choice>button:hover{transform:none;box-shadow:none}dialog[open],dialog[open]::backdrop,#bag[open]{animation:none}}

@media(max-width:700px){
 .menu-section .section-heading{align-items:flex-start;text-align:left}.menu-toolbar{padding:0}
 .dish{padding:10px;grid-template-columns:105px 1fr;gap:0;background:#f1f1f1}
 .dish-photo,.dish-art{min-height:118px;height:100%;border-radius:10px}
 .dish-body{padding:8px 0 8px 12px}.dish-body h3{font-size:15px;line-height:20px;margin:0 0 10px}
 .dish-bottom{min-height:46px;padding:4px 4px 4px 10px;border-radius:24px}.dish-bottom span{font-size:8px}.dish-bottom button{min-width:62px;min-height:38px;height:38px;padding:0 12px;font-size:11px}
}
