:root{
  --blush:#FFE3DF; --glow:#FF8A7E; --chilli:#D7261E; --onion:#111111; --pickle:#F2A7BE; --herb:#3E8E41; --white:#FFFDF7;
  --display:"Bowlby One","Arial Black",Impact,sans-serif;
  --body:"Figtree",system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{font-family:var(--body);color:var(--onion);background:var(--white);line-height:1.55;font-size:1.05rem}
a{color:inherit}
:focus-visible{outline:3px solid var(--onion);outline-offset:3px}
.wrap{max-width:1120px;margin:0 auto;padding:0 1.25rem}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1}
.btn{display:inline-block;font-weight:800;text-decoration:none;padding:.95rem 1.6rem;border-radius:999px;border:3px solid var(--onion);transition:transform .15s}
.btn:hover{transform:translateY(-2px)}
.btn.red{background:var(--chilli);color:var(--white)}
.btn.ghost{background:transparent}

/* header */
header{background:var(--white);border-bottom:3px solid var(--onion)}
header .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:.9rem;padding-bottom:.9rem;flex-wrap:wrap}
.logo{font-family:var(--display);font-size:1.5rem;text-decoration:none;color:var(--chilli);-webkit-text-stroke:1px var(--onion)}
nav{display:flex;gap:1.4rem;flex-wrap:wrap}
nav a{font-weight:800;text-decoration:none}
nav a:hover{text-decoration:underline;text-decoration-thickness:3px}

/* hero */
.hero{background:var(--chilli);padding:3rem 0 0;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.25fr .75fr;gap:2rem;align-items:end}
.hero h1{font-size:clamp(3.6rem,12vw,9rem);color:var(--white);-webkit-text-stroke:3px var(--onion);text-shadow:6px 6px 0 var(--onion);letter-spacing:.01em}
.hero p{color:var(--white);max-width:34ch;margin:1.5rem 0;font-size:1.25rem;font-weight:600}
.hero .cta{display:flex;gap:.8rem;flex-wrap:wrap;padding-bottom:3rem}
.hero-photo{margin:0;justify-self:center;align-self:end;width:100%;max-width:400px}
.hero-photo img{display:block;width:100%;aspect-ratio:3/4;max-height:520px;object-fit:cover;object-position:50% 40%;border:3px solid var(--onion);border-bottom:0;border-radius:22px 22px 0 0}
.ticker{background:var(--onion);color:var(--white);font-family:var(--display);padding:.8rem 0;overflow:hidden;white-space:nowrap}
.ticker span{display:inline-block;padding-left:100%;animation:slide 28s linear infinite}
@keyframes slide{to{transform:translateX(-100%)}}

/* sections */
section{padding:4.5rem 0}
h2{font-size:clamp(2.2rem,5vw,3.6rem);color:var(--chilli);margin-bottom:.6rem}
.lead{max-width:52ch;margin-bottom:2.5rem;font-size:1.15rem}

/* menu */
.menu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.4rem}
.dish{border:3px solid var(--onion);border-radius:22px;padding:1.5rem;background:var(--white);box-shadow:6px 6px 0 var(--onion)}
.dish:nth-child(3n+1){background:var(--pickle)}
.dish:nth-child(3n+2){background:var(--blush)}
.dish h3{font-size:1.6rem;margin-bottom:.5rem}
.dish .price{float:right;font-family:var(--display);font-size:1.3rem}
.tag{display:inline-block;margin-top:.8rem;font-weight:800;font-size:.85rem;background:var(--herb);color:var(--white);padding:.15rem .7rem;border-radius:999px}
.sides{margin-top:2rem;font-weight:600}

/* catering */
.catering{background:var(--onion);color:var(--white)}
.catering h2{color:var(--white)}
.pack{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.4rem}
.pack div{border:3px solid var(--chilli);border-radius:22px;padding:1.6rem}
.pack h3{font-size:1.5rem;color:var(--glow);margin-bottom:.4rem}
.pack strong{display:block;font-size:1.4rem;margin:.6rem 0}
.pack ul{padding-left:1.1rem}

/* truck */
.stops{display:grid;gap:.8rem;max-width:720px}
.stop{display:grid;grid-template-columns:8rem 1fr;gap:1rem;padding:1rem 1.2rem;border:3px solid var(--onion);border-radius:16px;align-items:center}
.stop b{font-family:var(--display);color:var(--chilli)}

/* enquiry */
.enquire{background:var(--chilli);color:var(--white)}
.enquire h2{color:var(--white)}
.enquire .box{display:grid;grid-template-columns:1fr 1fr;gap:3rem}
.f{display:grid;gap:1rem}
label{font-weight:800;display:block;margin-bottom:.25rem}
input,select,textarea{width:100%;font:inherit;padding:.8rem 1rem;border:3px solid var(--onion);border-radius:14px;background:var(--white);color:var(--onion)}
.enquire .btn{background:var(--white);color:var(--onion);cursor:pointer;font-size:1.05rem}

footer{background:var(--onion);color:var(--white);padding:2.5rem 0;font-size:.95rem}
footer .wrap{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}

@media(max-width:800px){
  .hero .wrap,.enquire .box{grid-template-columns:1fr}
  .stop{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){.ticker span{animation:none}.ticker span{padding-left:1rem}}

/* multi-page additions */
nav a[aria-current="page"]{text-decoration:underline;text-decoration-thickness:3px}
.page-head{background:var(--chilli);border-bottom:3px solid var(--onion);padding:3.5rem 0 3rem}
.page-head h1{font-size:clamp(2.6rem,8vw,5.5rem);color:var(--white);-webkit-text-stroke:2px var(--onion);text-shadow:4px 4px 0 var(--onion)}
.page-head p{color:var(--white);max-width:46ch;margin-top:1.2rem;font-size:1.2rem;font-weight:600}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.4rem}
.tick{list-style:none;padding:0;display:grid;gap:.7rem;max-width:62ch}
.tick li{padding-left:2rem;position:relative}
.tick li::before{content:"";position:absolute;left:0;top:.45em;width:1.1rem;height:1.1rem;border-radius:50%;background:var(--herb);border:3px solid var(--onion)}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:.6rem 0 1.2rem;padding:0;list-style:none}
.chips li{border:3px solid var(--onion);border-radius:999px;padding:.2rem .9rem;font-weight:600;background:var(--white)}
.area{background:var(--herb);color:var(--white);padding:2.5rem 0;text-align:center;border-top:3px solid var(--onion);border-bottom:3px solid var(--onion)}
.area p{font-family:var(--display);font-size:clamp(1.4rem,3.5vw,2.2rem);line-height:1.2}
.dish a{font-weight:800}
.note{margin-top:2rem;font-weight:800;font-size:1.15rem}
.big-cta{text-align:center}

/* logo */
.logo{display:block;background:var(--white);border:3px solid var(--onion);border-radius:14px;padding:.2rem .6rem;line-height:0;-webkit-text-stroke:0}
.logo img{height:64px;width:auto;display:block}
.hero{padding-top:2.5rem}
footer a{color:var(--glow);font-weight:800}
@media(max-width:600px){.logo img{height:52px}}
.logo{background:none;border:0;border-radius:0;padding:0}
.logo img{height:72px;width:auto}
@media(max-width:600px){.logo img{height:58px}}

/* about + options */
.story{max-width:760px}
.story p{margin-bottom:1.1rem;font-size:1.15rem}
.opts{display:grid;gap:1.6rem;max-width:900px}
.opt h3{font-size:2rem;color:var(--chilli)}
.opt .sub{font-weight:800;font-size:1.2rem;margin:.3rem 0 1rem}
.opt p{margin-bottom:.9rem}
.opt:nth-child(n){background:var(--white)}
.opt:nth-child(2){background:var(--blush)}

/* if the logo file is ever missing, show tidy fallback text instead of a jumbled header */
.logo{font:800 1.2rem/1.1 var(--body);color:var(--onion);-webkit-text-stroke:0;text-shadow:none;text-decoration:none}
.logo img{min-width:90px;object-fit:contain}

/* footer credit row */
.credit{flex-basis:100%;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;border-top:1px solid rgba(255,253,247,.25);padding-top:1rem;margin-top:.5rem}
.enquire a{color:var(--white);text-decoration:underline;font-weight:800}

/* enquiry form */
.row2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:600px){.row2{grid-template-columns:1fr}}
.enquire [data-netlify-recaptcha]{min-height:0}

/* mobile menu */
.nav-toggle{display:none;background:var(--white);border:3px solid var(--onion);border-radius:14px;width:52px;height:46px;cursor:pointer;align-items:center;justify-content:center;padding:0}
.nav-toggle .bars,.nav-toggle .bars::before,.nav-toggle .bars::after{display:block;width:24px;height:3px;background:var(--onion);border-radius:2px;transition:transform .2s,background .2s}
.nav-toggle .bars{position:relative}
.nav-toggle .bars::before,.nav-toggle .bars::after{content:"";position:absolute;left:0}
.nav-toggle .bars::before{top:-8px}
.nav-toggle .bars::after{top:8px}
.nav-toggle[aria-expanded="true"] .bars{background:transparent}
.nav-toggle[aria-expanded="true"] .bars::before{top:0;transform:rotate(45deg)}
.nav-toggle[aria-expanded="true"] .bars::after{top:0;transform:rotate(-45deg)}
header{position:relative;z-index:20}
@media(max-width:800px){
  .js .nav-toggle{display:inline-flex}
  .js header .wrap{flex-wrap:nowrap}
  .js nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--white);border-bottom:3px solid var(--onion);flex-direction:column;gap:0;padding:.4rem 1.25rem 1rem}
  .js nav.open{display:flex}
  .js nav a{padding:.95rem 0;font-size:1.2rem;border-bottom:2px solid rgba(17,17,17,.18)}
  .js nav a:last-child{border-bottom:0}
}
@media(prefers-reduced-motion:reduce){.nav-toggle .bars,.nav-toggle .bars::before,.nav-toggle .bars::after{transition:none}}

/* gallery */
.gallery{columns:3 260px;column-gap:1.2rem}
.gallery a{display:block;break-inside:avoid;margin-bottom:1.2rem;border:3px solid var(--onion);border-radius:18px;overflow:hidden;box-shadow:5px 5px 0 var(--onion);background:var(--onion)}
.gallery img{display:block;width:100%;height:auto}
.gallery a:hover img{opacity:.92}
dialog.lightbox{border:0;background:transparent;padding:0;max-width:100vw;max-height:100vh;width:100vw;height:100vh;overflow:visible}
dialog.lightbox::backdrop{background:rgba(17,17,17,.92)}
dialog.lightbox img{position:absolute;inset:0;margin:auto;max-width:92vw;max-height:88vh;width:auto;height:auto;border:3px solid var(--white);border-radius:12px}
.lightbox button{position:absolute;z-index:2;background:var(--chilli);color:var(--white);border:3px solid var(--white);border-radius:50%;width:48px;height:48px;font-size:1.8rem;line-height:1;cursor:pointer}
.lb-close{top:1rem;right:1rem}.lb-prev{left:.8rem;top:50%}.lb-next{right:.8rem;top:50%}

/* stop date/time picker (esp. iOS Safari) pushing the form wider than the screen */
.f{grid-template-columns:minmax(0,1fr)}
.row2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
@media(max-width:600px){.row2{grid-template-columns:minmax(0,1fr)}}
.f>div,.row2>div{min-width:0}
.f input,.f select,.f textarea{display:block;width:100%;max-width:100%;min-width:0}
.form-status{background:var(--white);color:var(--onion);border:3px solid var(--onion);border-radius:14px;padding:.8rem 1rem;font-weight:800}

/* buttons on red */
.btn.white{background:var(--white);color:var(--onion)}
.hero .btn.ghost{color:var(--white)}
@media(max-width:800px){.hero-photo{max-width:360px}}
