:root{--sun:#f5c242;--sun2:#fbe3a0;--cobalt:#1d4b9b;--cobalt2:#163a78;--chili:#d2462b;--nopal:#3e7d4f;--rosa:#e2648a;--paper:#fffcf5;--masa:#f7efdd;--ink:#1c1b2b;--mute:#5d5a6b;--line:#e9dfc9;--r:6px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 "Work Sans",system-ui,sans-serif}
img{max-width:100%;display:block}a{color:inherit}
h1,h2,h3,.disp{font-family:"Bricolage Grotesque",sans-serif;font-weight:800;letter-spacing:-.02em;line-height:1.02;margin:0 0 .35em}
.serif{font-family:"Instrument Serif",serif;font-weight:400;font-style:italic;letter-spacing:0}
.wrap{max-width:1240px;margin:0 auto;padding:0 32px}
.kicker{font:600 .76rem "Work Sans";letter-spacing:.2em;text-transform:uppercase;color:var(--chili);margin:0 0 14px;display:flex;align-items:center;gap:10px}
.kicker::before{content:"";width:28px;height:2px;background:currentColor}
.btn{display:inline-flex;align-items:center;gap:.5em;border:0;border-radius:var(--r);padding:.95em 1.6em;font:600 .95rem "Work Sans";cursor:pointer;text-decoration:none;transition:.18s}
.btn-gold,.btn-red{background:var(--chili);color:#fff}.btn-gold:hover,.btn-red:hover{background:#b23a22}
.btn-cobalt,.btn-dark{background:var(--cobalt);color:#fff}.btn-cobalt:hover{background:var(--cobalt2)}
.btn-line{background:transparent;color:inherit;box-shadow:inset 0 0 0 1.5px currentColor}
.ex{display:inline-block;font:600 .64rem "Work Sans";letter-spacing:.06em;text-transform:uppercase;color:#7a5400;background:#fff3cc;border:1px solid #e9c46a;border-radius:3px;padding:1px 5px;margin-left:6px;vertical-align:2px;white-space:nowrap}
.ph{position:relative}.ph::after{content:"Sample photo · swap for owner's";position:absolute;right:10px;bottom:10px;font:500 .64rem "Work Sans";background:rgba(28,27,43,.6);color:#fff;padding:3px 8px;border-radius:3px}
/* papel picado garland */
.picado{display:flex;justify-content:center;gap:5px;overflow:hidden;height:44px;position:relative;border-top:1.5px solid #b8a98c}
.picado i{flex:0 0 56px;height:40px;clip-path:polygon(0 0,100% 0,100% 74%,87% 100%,75% 74%,62% 100%,50% 74%,38% 100%,25% 74%,13% 100%,0 74%);
 -webkit-mask:radial-gradient(circle at 30% 34%,#0000 4px,#000 5px),radial-gradient(circle at 70% 34%,#0000 4px,#000 5px);-webkit-mask-composite:source-in;mask-composite:intersect}
.picado i:nth-child(5n+1){background:var(--chili)}.picado i:nth-child(5n+2){background:var(--sun)}.picado i:nth-child(5n+3){background:var(--nopal)}.picado i:nth-child(5n+4){background:var(--rosa)}.picado i:nth-child(5n){background:var(--cobalt)}
/* bars */
.strip{background:var(--cobalt);color:#e7ecf7;font-size:.84rem}.strip .wrap{display:flex;justify-content:space-between;padding-top:9px;padding-bottom:9px}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#7fe0a0;margin-right:7px;box-shadow:0 0 0 3px rgba(127,224,160,.25)}
.dot.closed{background:#f08a7a}
header.nav{position:sticky;top:0;z-index:40;background:var(--paper);border-bottom:1px solid var(--line)}
header.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:76px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.seal{width:46px;height:46px;border-radius:50%;background:var(--sun);display:grid;place-items:center;font:800 1.05rem "Bricolage Grotesque";color:var(--cobalt);box-shadow:inset 0 0 0 3px var(--paper),0 0 0 2px var(--sun)}
.brand b{font:800 1.3rem/1 "Bricolage Grotesque";display:block}.brand small{font:italic 1rem "Instrument Serif";color:var(--chili)}
nav a{margin:0 15px;text-decoration:none;font-weight:500;font-size:.94rem}nav a:hover{color:var(--chili)}
.nav-cta{display:flex;gap:10px;align-items:center}
/* hero: editorial split */
.hero{display:grid;grid-template-columns:1fr 1fr;min-height:640px;background:var(--sun)}
.hero .copy{padding:70px 64px 60px max(32px,calc((100vw - 1240px)/2 + 32px));display:flex;flex-direction:column;justify-content:center}
.hero h1{font-size:4.6rem;color:var(--ink)}.hero h1 .serif{color:var(--cobalt);font-size:1.08em;display:block}
.hero .lead{font-size:1.15rem;max-width:30em;color:#3a3527}
.hero .ctas{display:flex;gap:12px;margin:28px 0 36px}
.hero .meta{display:grid;grid-template-columns:repeat(3,auto);gap:30px;justify-content:start;border-top:1.5px solid rgba(28,27,43,.2);padding-top:22px}
.hero .meta b{display:block;font:800 1.5rem "Bricolage Grotesque"}.hero .meta span{font-size:.82rem;color:#4a4433}
.hero .photo{position:relative}.hero .photo img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.hero .stamp{position:absolute;left:-58px;bottom:56px;width:116px;height:116px;border-radius:50%;background:var(--chili);color:#fff;display:grid;place-items:center;text-align:center;font:800 .8rem/1.15 "Bricolage Grotesque";letter-spacing:.04em;text-transform:uppercase;transform:rotate(-10deg);z-index:2;box-shadow:0 0 0 6px var(--sun)}
.hero .stamp span{font:italic 1.5rem "Instrument Serif";text-transform:none;display:block}
section{padding:96px 0}
.sh{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:44px}.sh h2{font-size:3.1rem;margin:0}.sh p{color:var(--mute);margin:0;font-size:1.05rem}
/* specials row */
.specials{background:var(--paper)}
.sp-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:22px}
.sp{background:#fff;border:1px solid var(--line);border-radius:var(--r);display:flex;flex-direction:column}
.sp .im{aspect-ratio:16/11;overflow:hidden;border-radius:var(--r) var(--r) 0 0}.sp .im img{width:100%;height:100%;object-fit:cover}
.sp:first-child .im{aspect-ratio:16/12}
.sp .bd{padding:22px 24px 24px;flex:1;display:flex;flex-direction:column}.sp h3{font-size:1.45rem;margin-bottom:6px}.sp p{color:var(--mute);font-size:.93rem;flex:1;margin:0 0 18px}
.when{font:600 .7rem "Work Sans";letter-spacing:.14em;text-transform:uppercase;color:var(--nopal);margin-bottom:8px}
.row{display:flex;justify-content:space-between;align-items:center;gap:10px}.price{font:700 1.05rem "Work Sans"}
.add{background:var(--ink);color:#fff;border:0;border-radius:var(--r);padding:.65em 1.15em;font:600 .86rem "Work Sans";cursor:pointer;white-space:nowrap}.add:hover{background:var(--chili)}
/* menu board */
.board{background:var(--cobalt);color:#f2f4fb;position:relative}
.board .sh p{color:#c8d3ec}.board .kicker{color:var(--sun)}
.board-in{background:var(--cobalt2);border:1.5px solid rgba(245,194,66,.55);outline:1.5px solid rgba(245,194,66,.25);outline-offset:6px;border-radius:4px;padding:44px 48px}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:36px;padding-bottom:22px;border-bottom:1px solid rgba(255,255,255,.15)}
.tabs a{padding:.45em 1em;border-radius:3px;text-decoration:none;font-size:.88rem;font-weight:500;color:#dfe6f6}.tabs a:hover{background:var(--sun);color:var(--ink)}
.cols{columns:2;column-gap:64px}
.mcat{break-inside:avoid;margin-bottom:40px}
.mcat h3{font-size:1.65rem;color:var(--sun);display:flex;align-items:baseline;gap:12px;margin-bottom:6px}.mcat h3 .serif{color:#c8d3ec;font-size:1.15rem}
.mi{display:grid;grid-template-columns:1fr auto 34px;gap:4px 14px;align-items:center;padding:12px 0;border-bottom:1px dotted rgba(255,255,255,.22)}
.mi b{font-weight:600;font-size:1rem}.mi p{grid-column:1/2;margin:0;color:#b9c5e2;font-size:.85rem}.mi .price{color:#fff}
.plus{width:32px;height:32px;border-radius:50%;border:1.5px solid var(--sun);background:transparent;color:var(--sun);font-size:1.1rem;cursor:pointer;line-height:1;grid-row:1/3;grid-column:3}.plus:hover{background:var(--sun);color:var(--ink)}
.mi .price{grid-row:1/3;grid-column:2}
.board .ex{background:rgba(245,194,66,.15);color:var(--sun);border-color:rgba(245,194,66,.5)}
.board-note{font-size:.84rem;color:#c8d3ec;margin:26px 0 0;padding-top:18px;border-top:1px solid rgba(255,255,255,.15)}
/* counter (by the pound) */
.counter{background:var(--masa)}
.counter-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:56px;align-items:start}
.counter .im{border-radius:var(--r);overflow:hidden;aspect-ratio:4/5}.counter .im img{height:100%;width:100%;object-fit:cover}
.scale{background:#fff;border:1px solid var(--line);border-radius:var(--r)}
.scale-h{display:flex;justify-content:space-between;padding:18px 24px;border-bottom:2px solid var(--ink);font:700 .78rem "Work Sans";letter-spacing:.14em;text-transform:uppercase}
.lb{display:grid;grid-template-columns:1fr auto auto auto;gap:16px;align-items:center;padding:18px 24px;border-bottom:1px solid var(--line)}
.lb b{font:700 1.15rem "Bricolage Grotesque"}.lb small{display:block;color:var(--mute);font-size:.84rem}
.lbq{display:flex;align-items:center;border:1.5px solid var(--ink);border-radius:var(--r)}.lbq button{border:0;background:none;width:32px;height:34px;font-size:1.1rem;cursor:pointer}.lbq output{min-width:46px;text-align:center;font-weight:600;font-size:.9rem}
.pickup-note{display:flex;gap:12px;align-items:center;padding:16px 24px;background:#eef5ef;color:var(--nopal);font-size:.9rem;font-weight:500;border-radius:0 0 var(--r) var(--r)}
/* catering */
.catering{background:var(--chili);color:#fff}.catering .kicker{color:var(--sun2)}.catering .sh p{color:#fbe0d8}
.packs{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.pack{background:var(--paper);color:var(--ink);border-radius:var(--r);padding:30px;display:flex;flex-direction:column}
.pack .n{font:800 4rem/1 "Bricolage Grotesque";color:var(--chili)}.pack .n small{font:italic 1.3rem "Instrument Serif";color:var(--ink);margin-left:6px}
.pack ul{padding:0;margin:16px 0 22px;list-style:none;font-size:.92rem;color:var(--mute);flex:1}.pack li{padding:6px 0;border-bottom:1px dashed var(--line)}
.pack .dep{font-size:.84rem;color:var(--nopal);font-weight:600;margin-bottom:14px}
/* story */
.story .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:72px;align-items:center}.story p{color:var(--mute);font-size:1.06rem}
.story blockquote{margin:28px 0 0;font:italic 1.9rem/1.25 "Instrument Serif";color:var(--cobalt);border-left:3px solid var(--sun);padding-left:22px}
.story .im{aspect-ratio:1;border-radius:50% 50% var(--r) var(--r);overflow:hidden}.story .im img{width:100%;height:100%;object-fit:cover}
/* reviews */
.reviews{background:var(--paper);border-top:1px solid var(--line)}
.score{display:flex;align-items:center;gap:20px;background:var(--sun);border-radius:var(--r);padding:22px 28px;margin-bottom:28px}
.score .big{font:800 3.6rem/1 "Bricolage Grotesque"}.stars{color:var(--chili);font-size:1.3rem;letter-spacing:3px}
.rv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.rv{border:1.5px dashed #d8c69e;border-radius:var(--r);padding:24px;min-height:180px;display:flex;flex-direction:column;background:#fffaf0}
.rv .q{font:italic 1.2rem "Instrument Serif";color:#9b8e72;flex:1}.rv .who{font-size:.84rem;color:var(--mute);margin-top:14px}
.slot{font:600 .64rem "Work Sans";letter-spacing:.1em;text-transform:uppercase;color:#7a5400;background:#fff3cc;border-radius:3px;padding:3px 8px;align-self:flex-start;margin-bottom:12px}
/* visit */
.visit{padding-bottom:0}.visit-grid{display:grid;grid-template-columns:420px 1fr;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.vcard{padding:36px;background:var(--ink);color:#eceaf3}.vcard h2{font-size:2.2rem;color:#fff}.vcard .addr{color:#cbc8d8}
.vcard table{width:100%;border-collapse:collapse;margin:18px 0 24px;font-size:.92rem}.vcard td{padding:7px 0;border-bottom:1px solid rgba(255,255,255,.1)}.vcard td:last-child{text-align:right}.vcard tr.today td{color:var(--sun);font-weight:600}
.vbtns{display:flex;gap:10px}.vbtns .btn{flex:1;justify-content:center}
.map iframe{width:100%;height:100%;min-height:500px;border:0;display:block}
footer{background:var(--paper);padding:60px 0 40px;font-size:.88rem;color:var(--mute)}footer .wrap{display:flex;justify-content:space-between;gap:20px}
.demo-banner{background:var(--ink);color:#d8d5e4;text-align:center;font-size:.78rem;padding:6px}
/* storefront band (owner's real photo) */
.storefront{background:var(--masa);padding:80px 0}
.sf-grid{display:grid;grid-template-columns:auto 1fr;gap:72px;align-items:center}
.sf-frame{margin:0;background:#fff;padding:14px 14px 0;border-radius:14px;box-shadow:0 0 0 1.5px var(--line),0 24px 40px -24px rgba(60,40,10,.45);width:376px;position:relative}
.sf-frame::before{content:"";position:absolute;top:-12px;left:50%;width:90px;height:24px;margin-left:-45px;background:rgba(245,194,66,.75);transform:rotate(2deg);border-radius:2px}
.sf-frame img{width:348px;height:348px;border-radius:9px;display:block}
.sf-frame figcaption{font:italic 1.05rem/1.35 "Instrument Serif";color:var(--mute);padding:12px 4px 16px}
.sf-frame .own{display:block;font:600 .66rem "Work Sans";font-style:normal;letter-spacing:.14em;text-transform:uppercase;color:var(--nopal);margin-bottom:4px}
.sf-facts{list-style:none;padding:0;margin:22px 0 26px;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.sf-facts li{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;font-size:.88rem;color:var(--mute)}.sf-facts b{display:block;color:var(--ink);font-family:"Bricolage Grotesque";font-size:1rem}

.hero .stamp.logo-stamp{width:190px;height:190px;left:-95px;bottom:40px;background:#fff;transform:none;box-shadow:0 0 0 6px var(--sun),0 12px 30px rgba(0,0,0,.35)}
.hero .stamp.logo-stamp img{width:100%;height:100%;border-radius:50%;display:block}
@media(max-width:900px){.hero .stamp.logo-stamp{width:130px;height:130px;left:16px;bottom:-40px}}
.brand-logo{width:52px;height:52px;border-radius:50%;display:block;flex:none;box-shadow:0 0 0 3px var(--sun)}
.strip{background:#24493a;color:#e6efe8}.strip a{color:#f5c242}
.nav-cta .btn-gold{background:var(--sun);color:var(--ink)}.nav-cta .btn-gold:hover{background:#e8b22c}
/* accents matched to the logo's deep green (replaces blue buttons) */
:root{--leaf:#24493a;--leaf2:#1a372b}
.btn-cobalt,.btn-dark{background:var(--leaf)}.btn-cobalt:hover{background:var(--leaf2)}
html .bag-fab{background:var(--leaf);box-shadow:0 14px 30px -12px rgba(36,73,58,.6)}
html .seg input:checked+span{border-color:var(--leaf);box-shadow:inset 0 0 0 1px var(--leaf);background:#eaf2ed}
html .chips2 input:checked+span{background:var(--leaf);border-color:var(--leaf)}
html .back{color:var(--leaf)}html .eta{color:var(--leaf)}html .empty .serif{color:var(--leaf)}.story blockquote{color:var(--leaf)}
.hero h1 .serif{color:var(--leaf)}html .sms{background:#eaf2ed}
html .fld input:focus,html .fld select:focus{border-color:var(--leaf)}
/* ?present=1: clean presentation mode (hides demo labels only) */
html.present .demo-banner,html.present .ex,html.present .bag .ex,html.present .demo,html.present .fine,html.present .demo-only,html.present .slot,html.present .rv-grid{display:none!important}
html.present .ph::after{display:none!important}
html.present .score{margin-bottom:0}
/* phone layout */
@media(max-width:900px){
 .wrap{padding:0 18px}section{padding:60px 0}
 .strip .wrap{flex-direction:column;gap:2px;font-size:.78rem}
 header.nav .wrap{height:64px}nav{display:none}.nav-cta .btn-line{display:none}.nav-cta .btn{padding:.7em 1em;font-size:.85rem}
 .brand b{font-size:1.05rem}.brand small{font-size:.85rem}.brand-logo{width:42px;height:42px}
 .hero{grid-template-columns:1fr;min-height:0}.hero .copy{padding:40px 20px 70px}.hero h1{font-size:2.6rem}.hero .lead{font-size:1rem}
 .hero .ctas{flex-direction:column}.hero .ctas .btn{justify-content:center}.hero .meta{gap:16px}.hero .meta b{font-size:1.15rem}
 .hero .photo{height:400px}
 .sh{grid-template-columns:1fr;gap:12px;margin-bottom:28px}.sh h2{font-size:2.2rem}
 .sp-grid,.packs,.rv-grid{grid-template-columns:1fr}
 .board-in{padding:22px 18px}.cols{columns:1}.tabs{gap:2px}.tabs a{font-size:.8rem;padding:.4em .6em}
 .counter-grid,.story .wrap,.sf-grid{grid-template-columns:1fr;gap:28px}.counter .im{aspect-ratio:16/10}.counter h2,.story h2,.storefront h2{font-size:2.2rem!important}
 .lb{grid-template-columns:1fr auto;gap:8px 12px;padding:14px 16px}.lb .price{grid-column:2;grid-row:1}.lb .lbq{grid-column:1;justify-self:start}
 .story .im{aspect-ratio:4/3}
 .sf-frame{width:100%;max-width:376px;justify-self:center}.sf-frame img{width:100%;height:auto;aspect-ratio:1}
 .sf-facts{grid-template-columns:1fr}
 .visit-grid{grid-template-columns:1fr}.map iframe{min-height:340px}
 footer .wrap{flex-direction:column}
 .bag{width:100%}.bag-fab{right:16px;bottom:16px}.sheet-card{padding:24px 20px}.sheet-card h3{font-size:1.6rem}
 .picado i{flex-basis:40px;height:30px}.picado{height:34px}
}
.sp-grid.fav{grid-template-columns:repeat(4,1fr)}.sp-grid.fav .sp:first-child .im{aspect-ratio:16/11}
.suggested .sug-h{margin:44px 0 16px;color:var(--mute);font-size:.9rem}
.sug-tag{display:inline-block;font:700 .66rem "Work Sans";letter-spacing:.1em;text-transform:uppercase;background:#fff3cc;color:#7a5400;border:1px dashed #d9a640;border-radius:3px;padding:3px 8px;margin-right:8px}
.sug-tag.light{background:rgba(255,255,255,.15);color:#fff;border-color:rgba(255,255,255,.5)}
.sp-grid.sug{grid-template-columns:repeat(3,1fr)}.sp-grid.sug .sp{opacity:.92}
.mi .day{display:inline-block;font:700 .64rem "Work Sans";letter-spacing:.08em;text-transform:uppercase;background:var(--sun);color:var(--ink);border-radius:3px;padding:1px 6px;vertical-align:2px;margin-left:4px}
.mi .price small{font-size:.72rem;font-weight:500;color:#b9c5e2}
html.present .suggested{display:none!important}
@media(max-width:900px){.sp-grid.fav,.sp-grid.sug{grid-template-columns:1fr}}
/* audit: palette unify (menu board + garland to logo green/teal) */
.board{background:#24493a}.board-in{background:#1a372b;border-color:rgba(245,194,66,.55)}
.board .sh p,.mi p,.board-note{color:#c9dccf}.mcat h3 .serif{color:#c9dccf}.mi .price small{color:#c9dccf}
.picado i:nth-child(5n){background:#2a9d8f}
.score{flex-wrap:wrap}.score .yelp-btn{margin-left:auto}
html.present .reviews .sh{margin-bottom:24px}
/* chat widget */
.chat-fab{position:fixed;left:28px;bottom:28px;z-index:50;border:0;border-radius:var(--r);background:#fff;color:var(--ink);font:600 .92rem "Work Sans";padding:13px 18px;box-shadow:0 0 0 1.5px var(--line),0 12px 26px -12px rgba(0,0,0,.3);cursor:pointer}
.chat{position:fixed;left:28px;bottom:86px;z-index:55;width:350px;max-width:calc(100vw - 32px);background:var(--paper);border-radius:10px;box-shadow:0 0 0 1px var(--line),0 24px 50px -20px rgba(0,0,0,.4);display:flex;flex-direction:column;max-height:70vh;overflow:hidden}
.chat[hidden]{display:none}.chat header{background:#24493a;color:#fff;padding:14px 16px;display:flex;justify-content:space-between;align-items:center}.chat header b{font-family:"Bricolage Grotesque"}
.chat header button{background:none;border:0;color:#fff;font-size:1.3rem;cursor:pointer}
.chat-log{padding:14px;overflow:auto;flex:1;display:flex;flex-direction:column;gap:8px;font-size:.9rem}
.chat-log .m{max-width:85%;padding:9px 12px;border-radius:12px;line-height:1.45}.chat-log .bot{background:#fff;border:1px solid var(--line);align-self:flex-start}.chat-log .me{background:#24493a;color:#fff;align-self:flex-end}
.chat-q{display:flex;flex-wrap:wrap;gap:6px;padding:0 14px 10px}.chat-q button{border:1px solid var(--line);background:#fff;border-radius:99px;padding:5px 11px;font:500 .8rem "Work Sans";cursor:pointer}
.chat form{display:flex;border-top:1px solid var(--line)}.chat input{flex:1;border:0;padding:12px 14px;font:500 .9rem "Work Sans";background:#fff}.chat form button{border:0;background:var(--chili);color:#fff;padding:0 16px;font-weight:600;cursor:pointer}
@media(max-width:900px){.chat-fab{left:16px;bottom:16px;padding:12px 14px}.chat{left:16px;bottom:72px}.score .yelp-btn{margin-left:0;width:100%;justify-content:center}}
