:root{--navy:#14264f;--green:#2fbf5b;--green-d:#1f9a45;--gold:#f2b33d;--cream:#fff9ec;--ink:#1f2a44;--muted:#5d6883;--red:#e2503a;--r:18px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:'Nunito',system-ui,sans-serif;color:var(--ink);background:var(--cream);line-height:1.55;font-size:17px}
h1,h2,h3,h4{font-family:'Baloo 2','Nunito',sans-serif;line-height:1.15;margin:0 0 .4em;color:var(--navy)}
a{color:var(--green-d)}
.wrap{max-width:1040px;margin:0 auto;padding:0 18px}
.doorbar{background:var(--gold);color:var(--navy);text-align:center;font-weight:700;padding:8px 12px;font-size:15px;position:sticky;top:0;z-index:30}

/* hero */
.hero{position:relative;background:var(--navy);color:#fff;padding:54px 0 90px;overflow:hidden}
.hero.small{padding:36px 0 70px;text-align:center}
.hero h1{color:#fff;font-size:clamp(2.1rem,6vw,3.6rem);font-weight:800;max-width:15em}
.hero.small h1{margin:0 auto}
.hero h1 span{color:var(--gold)}
.kicker{margin:0 0 8px;text-transform:uppercase;letter-spacing:.14em;font-weight:700;font-size:.85rem;color:var(--gold)}
.lead{font-size:1.15rem;max-width:36em;color:#e6ecff}
.pills{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 24px}
.pill{background:rgba(255,255,255,.14);padding:6px 14px;border-radius:99px;font-weight:700;font-size:.95rem}
.pill.hot{background:var(--gold);color:var(--navy)}
.wave{position:absolute;bottom:-1px;left:0;width:100%;height:46px;fill:var(--cream)}
.floaties span{position:absolute;font-size:2.6rem;opacity:.22;animation:bob 6s ease-in-out infinite}
.floaties span:nth-child(1){top:12%;right:8%}.floaties span:nth-child(2){top:52%;right:20%;animation-delay:-1s}
.floaties span:nth-child(3){top:20%;right:34%;animation-delay:-2s;font-size:2rem}.floaties span:nth-child(4){top:62%;right:5%;animation-delay:-3s}
.floaties span:nth-child(5){top:8%;right:52%;animation-delay:-4s;font-size:1.8rem}.floaties span:nth-child(6){top:68%;right:40%;animation-delay:-5s;font-size:2rem}
@keyframes bob{50%{transform:translateY(-14px) rotate(8deg)}}
@media(prefers-reduced-motion:reduce){.floaties span{animation:none}html{scroll-behavior:auto}}

/* buttons */
.btn{display:inline-block;background:var(--green);color:#fff;text-decoration:none;font-family:'Baloo 2',sans-serif;font-weight:700;font-size:1.05rem;padding:10px 22px;border-radius:99px;border:0;cursor:pointer;box-shadow:0 4px 0 var(--green-d);transition:transform .1s}
.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--green-d)}
.btn.big{font-size:1.25rem;padding:13px 30px}.btn.block{display:block;width:100%;text-align:center}

.notice{background:#fff;border:2px dashed var(--gold);border-radius:var(--r);padding:14px 18px;margin:20px 0}
.notice.warn{border-color:var(--red);background:#fff4f1}.notice ul{margin:6px 0 0;padding-left:20px}

/* steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:26px;margin-bottom:8px}
.steps div{background:#fff;border-radius:var(--r);padding:12px;display:flex;gap:10px;align-items:center;box-shadow:0 2px 8px rgba(20,38,79,.07);font-weight:700;font-size:.95rem;line-height:1.25}
.steps b{flex:none;width:34px;height:34px;border-radius:50%;background:var(--gold);color:var(--navy);display:grid;place-items:center;font-family:'Baloo 2'}
@media(max-width:720px){.steps{grid-template-columns:1fr 1fr}}

/* goal */
.goal{margin:16px auto}.goalhead{display:flex;justify-content:space-between;font-weight:700}.goalhead span{color:var(--muted)}
.meter{height:16px;background:#eadfc4;border-radius:99px;overflow:hidden;margin-top:4px}
.meter i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--green));border-radius:99px}

/* menu */
section{padding-top:22px}
h2{font-size:2rem}.sub{color:var(--muted);margin-top:-4px}
.cat{font-size:1.4rem;margin:26px 0 12px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.card{background:#fff;border-radius:var(--r);overflow:hidden;box-shadow:0 3px 12px rgba(20,38,79,.09);display:flex;flex-direction:column}
.tile{height:112px;display:grid;place-items:center;background:var(--c);background-image:radial-gradient(circle at 20% 30%,rgba(255,255,255,.28) 0 10px,transparent 11px),radial-gradient(circle at 80% 70%,rgba(255,255,255,.2) 0 16px,transparent 17px)}
.tile span{font-size:3.4rem;filter:drop-shadow(0 3px 0 rgba(0,0,0,.18))}
.body{padding:14px 16px 10px;flex:1;display:flex;flex-direction:column}
.body h4{font-size:1.3rem}.body p{margin:0 0 10px;font-size:.95rem;color:var(--muted);flex:1}
.row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-top:1px solid #f0e8d3}
.vl{font-weight:700;font-size:.95rem}.vl em{display:block;font-style:normal;color:var(--green-d);font-family:'Baloo 2';font-size:1.25rem;line-height:1.1}
.row.sold{opacity:.55}.soldtag{background:#eee;padding:3px 12px;border-radius:99px;font-weight:700;font-size:.85rem}
.stepper{display:flex;align-items:center;gap:4px}
.stepper button{width:40px;height:40px;border-radius:50%;border:0;background:var(--gold);color:var(--navy);font-size:1.5rem;font-weight:800;cursor:pointer;line-height:1}
.stepper button:active{transform:scale(.92)}
.stepper input{width:46px;height:40px;text-align:center;font:700 1.1rem 'Nunito';border:2px solid #eadfc4;border-radius:10px;-moz-appearance:textfield}
.stepper input::-webkit-inner-spin-button{display:none}
.stepper.has input{border-color:var(--green);background:#effbf2}
.allergy{margin-top:22px;font-size:.92rem;background:#fff;border-left:5px solid var(--gold);padding:10px 14px;border-radius:8px}

/* checkout */
.checkout{background:#fff;border-radius:var(--r);padding:22px;box-shadow:0 3px 12px rgba(20,38,79,.09);margin-top:28px}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.fields .wide{grid-column:1/-1}
label{font-weight:700;font-size:.95rem;display:block}
label small{font-weight:400;color:var(--muted)}
input[type=text],input[type=email],input[type=tel],input:not([type]),textarea,select{width:100%;padding:11px 12px;border:2px solid #eadfc4;border-radius:12px;font:inherit;margin-top:4px;background:#fffdf7}
input:focus,textarea:focus,select:focus{outline:3px solid rgba(47,191,91,.35);border-color:var(--green)}
.pay{border:0;padding:0;margin:18px 0 0}.pay legend{font-weight:700;padding:0;margin-bottom:6px}
.opt{display:inline-flex;align-items:center;gap:8px;margin:0 8px 8px 0;cursor:pointer}
.opt input{position:absolute;opacity:0}
.opt span{border:2px solid #eadfc4;padding:9px 16px;border-radius:99px;font-weight:700;background:#fffdf7}
.opt input:checked+span{background:var(--navy);color:#fff;border-color:var(--navy)}
.opt input:focus-visible+span{outline:3px solid rgba(47,191,91,.5)}
.hint,.fine{font-size:.88rem;color:var(--muted);margin:6px 0 0}
.summary{display:flex;justify-content:space-between;align-items:baseline;margin:16px 0;font-family:'Baloo 2';font-size:1.3rem;border-top:2px dashed #eadfc4;padding-top:12px}
.summary strong{font-size:2rem;color:var(--green-d)}
@media(max-width:620px){.fields{grid-template-columns:1fr}}

.cartbar{position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--navy);color:#fff;display:flex;justify-content:space-between;align-items:center;padding:10px 18px calc(10px + env(safe-area-inset-bottom));font-size:1.05rem;box-shadow:0 -4px 14px rgba(0,0,0,.2)}
.cartbar[hidden]{display:none}
body:has(.cartbar:not([hidden])) footer{padding-bottom:80px}

/* more */
.more{margin-top:20px}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.tile2{background:#fff;border-radius:var(--r);padding:18px;box-shadow:0 2px 8px rgba(20,38,79,.07)}
.tile2 span{font-size:2.2rem}.tile2 p{margin:0;color:var(--muted);font-size:.95rem}
footer{background:var(--navy);color:#cfd8f3;margin-top:44px;padding:22px 0;font-size:.92rem}
footer p{margin:4px 0}footer a{color:var(--gold)}

/* thanks */
.thanks{max-width:660px;padding-bottom:20px}
.ticket{background:#fff;border-radius:var(--r);text-align:center;padding:20px;margin-top:-18px;position:relative;box-shadow:0 3px 12px rgba(20,38,79,.12);border:3px dashed var(--gold)}
.ticket p{margin:0}.code{font-family:'Baloo 2';font-size:2.6rem;font-weight:800;letter-spacing:.08em;color:var(--navy)}
.receipt{background:#fff;border-radius:var(--r);padding:8px 16px;box-shadow:0 2px 8px rgba(20,38,79,.07)}
.receipt div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #f0e8d3}
.receipt div:last-child{border:0}.receipt em{color:var(--muted);font-style:normal}.receipt .tot{font-weight:800;font-size:1.15rem}
.next li{margin-bottom:6px}
