@font-face{font-family:"Gelasio";font-weight:400;font-display:swap;src:url("../fonts/Gelasio-400.ttf") format("truetype")}
@font-face{font-family:"Gelasio";font-weight:700;font-display:swap;src:url("../fonts/Gelasio-700.ttf") format("truetype")}
@font-face{font-family:"Kristi";font-weight:400;font-display:swap;src:url("../fonts/Kristi.ttf") format("truetype")}

:root{
  --cream:#F6EFE4;
  --paper:#FBF8F1;
  --ink:#231F1C;
  --soft:#5a504a;
  --tomato:#D9402B;
  --red:#B8321F;
  --coral:#B3523F;
  --kraft:#E3CBA0;
  --sage:#87A878;
  --line:#c9bba3;
  --serif:"Gelasio",Georgia,serif;
  --hand:"Kristi","Segoe Script",cursive;
}
*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{font-family:var(--serif);font-size:18px;line-height:1.65;background:var(--cream);color:var(--ink);-webkit-font-smoothing:antialiased}
img,svg{max-width:100%}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--tomato);outline-offset:3px}
.wrap{width:min(1120px,100% - 2*clamp(20px,5vw,48px));margin-inline:auto}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--cream);padding:10px 16px;z-index:100}
.skip:focus{left:8px}
.hp{position:absolute;left:-9999px}
.hand{font-family:var(--hand);color:var(--coral);font-size:1.45rem;line-height:1.25;-webkit-text-stroke:.3px var(--coral)}
.hand.big{font-size:1.9rem;color:var(--ink);-webkit-text-stroke:.3px var(--ink);margin-top:20px}

/* header */
.site{position:sticky;top:0;z-index:30;background:var(--cream);border-bottom:1px dotted var(--line)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:68px}
.logo{display:inline-flex;align-items:flex-start;font-weight:700;font-size:2rem;line-height:1;text-decoration:none;letter-spacing:.5px}
.ht{width:.5em;height:.5em;margin:.02em .02em 0;fill:var(--tomato)}
#nav{display:flex;align-items:center;gap:26px}
#nav a{text-decoration:none;font-size:1rem;padding:6px 0;background:linear-gradient(var(--tomato),var(--tomato)) 0 100%/0 2px no-repeat;transition:background-size .2s}
#nav a:hover{background-size:100% 2px}
.cartlink{background:var(--ink);color:var(--cream);border:0;border-radius:4px;padding:8px 16px;cursor:pointer;font-weight:700;font-size:.95rem}
.cartlink .count{display:inline-block;min-width:1.5em;margin-left:6px;background:var(--cream);color:var(--ink);border-radius:99px;font-size:.85rem;text-align:center}
.navbtn{display:none;background:none;border:0;padding:10px;cursor:pointer}
.navbtn span{display:block;width:26px;height:2px;background:var(--ink);margin:6px 0}

/* buttons */
.btn{display:inline-block;background:var(--red);color:#fff;border:2px solid var(--red);border-radius:4px;padding:12px 22px;font-weight:700;font-size:1rem;line-height:1.2;cursor:pointer;text-decoration:none;transition:background .15s,color .15s}
.btn:hover{background:var(--ink);border-color:var(--ink)}
.btn.ghost{background:transparent;color:var(--red)}
.btn.ghost:hover{background:var(--red);color:#fff;border-color:var(--red)}

/* hero */
.hero{padding-block:clamp(36px,6vw,84px) clamp(48px,7vw,96px)}
.herogrid{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(24px,5vw,72px);align-items:center}
h1{font-size:clamp(2.4rem,5.3vw,4.3rem);line-height:1.02;font-weight:700;letter-spacing:-.01em}
h1 span{display:block}
.who{border:0;margin-top:clamp(24px,3vw,40px)}
.who legend{font-size:1.1rem;font-weight:700;margin-bottom:10px}
.pills{display:flex;flex-wrap:wrap;gap:10px}
.pill{border:1.5px solid var(--ink);background:transparent;border-radius:99px;padding:8px 18px;cursor:pointer;font-size:1rem}
.pill[aria-checked="true"]{background:var(--ink);color:var(--cream)}
.pitch{margin-top:24px;max-width:34rem}
.pitch-line{font-size:1.5rem;font-weight:700;line-height:1.25}
.pitch-body{margin-top:8px}
.pitch-menu{margin-top:10px;font-family:var(--hand);font-size:1.5rem;color:var(--coral);line-height:1.25;-webkit-text-stroke:.3px var(--coral)}
.heroctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.heroctas-main{margin-top:clamp(28px,4vw,44px)}

.stamp{position:relative;background:var(--kraft);border:3px solid var(--red);border-radius:8px;padding:clamp(28px,4vw,48px) clamp(20px,3vw,36px) 26px;transform:rotate(-2.5deg);color:var(--red);text-align:center;box-shadow:0 1px 0 rgba(35,31,28,.12)}
.stamp::before{content:"";position:absolute;inset:8px;border:1px solid var(--red);border-radius:4px;pointer-events:none}
.stamp .wm{display:flex;justify-content:center;align-items:flex-start;font-weight:700;font-size:clamp(3.4rem,8vw,6rem);line-height:1}
.stamp .wm .ht{fill:var(--red);width:.5em;height:.5em}
.stamp .sig{display:block;width:78%;margin:2px 0 0 auto;fill:var(--red);transform:rotate(-3deg);clip-path:inset(0 100% 0 0);animation:wipe 1.6s .5s cubic-bezier(.5,0,.2,1) forwards}
.stamp-loc{margin-top:14px;font-size:.95rem;letter-spacing:.04em}
@keyframes wipe{to{clip-path:inset(0 0 0 0)}}

/* menu */
.menu{padding-block:clamp(40px,6vw,88px);background:var(--paper)}
.menuhead{margin-bottom:28px}
.orderline{margin-top:12px;max-width:40rem;font-size:1.02rem}
.orderline strong{color:var(--red)}
h2{font-size:clamp(2rem,4.4vw,3.2rem);line-height:1.1;font-weight:700;letter-spacing:-.01em}
h3{font-size:1.5rem;line-height:1.2;font-weight:700}
.frame{position:relative;border:3px solid var(--red);border-radius:8px;padding:clamp(22px,4vw,48px)}
.frame::before{content:"";position:absolute;inset:7px;border:1px solid var(--red);border-radius:4px;pointer-events:none}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:34px 56px}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:26px 40px}
.item .top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;border-bottom:1px dotted var(--soft);padding-bottom:4px}
.item .name{font-weight:700;font-size:1.3rem}
.item .price{font-weight:700;color:var(--red);font-size:1.15rem;white-space:nowrap}
.veg{display:inline-block;margin-left:8px;width:20px;height:20px;line-height:20px;text-align:center;font-size:.7rem;border-radius:50%;background:var(--sage);color:#fff;vertical-align:3px}
.item .desc{margin-top:6px;font-size:1rem;line-height:1.5;color:#3a3430}
.item .note{font-family:var(--hand);font-size:1.45rem;line-height:1.2;color:var(--coral);margin-top:2px;-webkit-text-stroke:.3px var(--coral)}
.item .note::after{content:"..."}
.item .buy{display:flex;align-items:center;gap:12px;margin-top:10px}
.add{background:transparent;border:1.5px solid var(--red);color:var(--red);border-radius:4px;padding:5px 14px;font-weight:700;font-size:.92rem;cursor:pointer}
.add:hover{background:var(--red);color:#fff}
.inorder{font-size:.9rem;color:var(--soft)}
.small .name{font-size:1.1rem}
.small .price{font-size:1rem}
.small .desc{font-size:.92rem}
.small .note{font-size:1.3rem}
.addon{margin-top:28px;text-align:center;font-size:1rem;color:var(--soft)}
.addon strong{color:var(--red)}
.sub{margin-top:44px;padding-top:30px;border-top:1px solid var(--red)}
.sub h3{margin-bottom:2px}
.sub .hand{margin-bottom:20px}
.ordernote{margin-top:24px;max-width:46rem;color:var(--soft);font-size:1rem}

/* services */
.services{padding-block:clamp(48px,7vw,104px)}
.lead{max-width:40rem;margin-top:12px;font-size:1.15rem}
.rows{list-style:none;margin-top:40px}
.row{display:grid;grid-template-columns:1fr auto;gap:12px 48px;align-items:center;padding-block:28px;border-bottom:1px dotted var(--soft)}
.row:first-child{border-top:1px dotted var(--soft)}
.rowmain p{max-width:38rem;margin-top:6px}
.rowside{display:flex;flex-direction:column;align-items:flex-end;gap:12px;text-align:right}
.price{font-weight:700;font-size:1.2rem;color:var(--red);line-height:1.3}
.price span{font-weight:400;font-size:.9rem;color:var(--soft)}
.fine{margin-top:16px;font-size:.92rem;color:var(--soft)}
.how-h{margin-top:64px;margin-bottom:18px}
.steps{list-style:none;counter-reset:s;display:grid;grid-template-columns:repeat(5,1fr);gap:20px}
.steps li{counter-increment:s;font-size:.98rem;line-height:1.5;border-top:2px solid var(--ink);padding-top:12px}
.steps li::before{content:counter(s);display:block;font-weight:700;font-size:1.6rem;color:var(--red);line-height:1;margin-bottom:6px}
.steps strong{display:block}

/* story */
.story{padding-block:clamp(48px,7vw,104px);background:var(--kraft)}
.storygrid{display:grid;grid-template-columns:1.35fr .65fr;gap:clamp(28px,6vw,80px);align-items:start}
.story h2{margin-bottom:22px;max-width:24ch;font-size:clamp(1.8rem,3.6vw,2.7rem)}
.story p{max-width:38rem;margin-top:14px}
.love{font-family:var(--hand);font-size:2.3rem;line-height:1;margin-top:24px!important}
.chef{background:var(--paper);border:2px solid var(--red);border-radius:6px;padding:28px}
.chef h3{margin-bottom:10px}
.chefpic{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:68% 48%;border-radius:4px;margin-bottom:18px}

/* booking */
.book{padding-block:clamp(48px,7vw,104px)}
.bookgrid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(28px,6vw,80px);align-items:start}
.bookintro p{margin-top:12px;max-width:26rem}
.bookintro .hand{margin-top:20px}
form label{display:block;font-weight:700;font-size:.95rem;margin-top:16px}
form input:not([type=radio]):not([type=checkbox]),form select,form textarea{display:block;width:100%;margin-top:6px;padding:11px 12px;background:var(--paper);border:1.5px solid var(--ink);border-radius:4px;font-weight:400;font-size:1rem}
form textarea{resize:vertical}
.two{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
fieldset{border:0}
.types legend,.checks legend{font-weight:700;font-size:.95rem;margin-bottom:8px}
.types,.checks{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.types legend,.checks legend{width:100%}
.types label,.checks label{margin:0;font-weight:400}
.types input,.checks input{position:absolute;opacity:0}
.types span,.checks span{display:inline-block;border:1.5px solid var(--ink);border-radius:99px;padding:7px 16px;cursor:pointer;font-size:.98rem}
.types input:checked+span,.checks input:checked+span{background:var(--ink);color:var(--cream)}
.types input:focus-visible+span,.checks input:focus-visible+span{outline:3px solid var(--tomato);outline-offset:2px}
.inquiry .btn,.orderform .btn{margin-top:22px}
.status{margin-top:14px;font-weight:700}
.status.ok{color:#2f6b3a}
.status.err{color:var(--red)}

/* catering */
.catering{padding-block:clamp(48px,7vw,104px)}
.cateringgrid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,5vw,72px);align-items:start}
.rows.tight{margin-top:28px}
.rows.tight .row{grid-template-columns:1fr;padding-block:18px}
.rows.tight h3{font-size:1.3rem}
.formcard{background:var(--paper);border:3px solid var(--red);border-radius:8px;padding:clamp(20px,3vw,34px);position:relative}
.formcard::before{content:"";position:absolute;inset:6px;border:1px solid var(--red);border-radius:4px;pointer-events:none}
.formcard>*:not(.hp){position:relative}
.formcard h3{margin-bottom:4px}
/* find us */
.find{padding-block:clamp(40px,6vw,88px);background:var(--paper)}
.findgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px 40px;margin-top:28px}
.findgrid>div{border-top:2px solid var(--ink);padding-top:14px}
.findgrid h3{font-size:1.3rem;margin-bottom:6px}
.findgrid a,.ordernote a{color:var(--red)}
.schedule{list-style:none;margin-top:10px}
.schedule li{padding:6px 0;border-bottom:1px dotted var(--soft);font-size:.98rem}
/* coming soon */
.soon{padding-block:clamp(44px,6vw,88px);background:var(--ink);color:var(--cream)}
.soon h2{max-width:20ch}
.soongrid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,5vw,72px);align-items:start}
.soon p{margin-top:12px;max-width:34rem}
.soon .hand{color:#e9a898;-webkit-text-stroke:.3px #e9a898}
.soon form label{color:var(--cream)}
.soon .types span,.soon .checks span{border-color:var(--cream)}
.soon .checks input:checked+span{background:var(--cream);color:var(--ink)}
.soon .btn{background:var(--tomato);border-color:var(--tomato)}
.soon .btn:hover{background:var(--cream);color:var(--ink);border-color:var(--cream)}
.soon .status.ok{color:#9fd8a8}
.soon .status.err{color:#ffb4a6}
.plainnav{display:flex;gap:26px}
.plainnav a{text-decoration:none}
/* footer */
.site-foot{background:var(--ink);color:var(--cream);padding-block:48px}
.footgrid{display:grid;grid-template-columns:1.4fr 1fr;gap:28px 48px}
.foot-logo{font-size:2.6rem}
.foot-logo .ht{fill:var(--tomato)}
.site-foot .hand{color:#e9a898;-webkit-text-stroke:.3px #e9a898;margin-top:10px}
.footlinks{display:grid;grid-template-columns:1fr 1fr;gap:20px;font-size:.98rem}
.footlinks a{text-decoration:none;border-bottom:1px dotted var(--cream)}
.mantra{grid-column:1/-1;font-size:.9rem;opacity:.75;border-top:1px dotted rgba(246,239,228,.4);padding-top:18px}

/* cart */
.cartbar{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:40;display:flex;align-items:center;gap:20px;background:var(--ink);color:var(--cream);padding:10px 12px 10px 22px;border-radius:10px;box-shadow:0 6px 24px rgba(35,31,28,.3);width:min(520px,100% - 24px);justify-content:space-between}
.cartbar[hidden],.overlay[hidden],.drawer[hidden]{display:none}
.cartbar .btn{background:var(--tomato);border-color:var(--tomato);color:#fff;padding:9px 18px}
.cartbar .btn:hover{background:var(--cream);color:var(--ink);border-color:var(--cream)}
.overlay{position:fixed;inset:0;background:rgba(35,31,28,.5);z-index:50}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(480px,100%);background:var(--cream);z-index:60;display:flex;flex-direction:column;box-shadow:-8px 0 30px rgba(35,31,28,.25)}
.drawerhead h2{font-size:1.7rem}
.drawerhead{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;border-bottom:1px dotted var(--line)}
.close{background:none;border:1.5px solid var(--ink);border-radius:4px;padding:6px 14px;cursor:pointer}
.drawerbody{overflow:auto;padding:8px 24px 32px}
.lines{list-style:none}
.line{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:14px 0;border-bottom:1px dotted var(--soft)}
.line .ln{font-weight:700}
.line .lp{font-weight:700;color:var(--red)}
.line .lo{grid-column:1/-1;font-size:.88rem;color:var(--soft)}
.line .lc{grid-column:1/-1;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.step{display:inline-flex;align-items:center;border:1.5px solid var(--ink);border-radius:4px}
.step button{width:34px;height:32px;background:none;border:0;cursor:pointer;font-size:1.1rem}
.step span{min-width:28px;text-align:center}
.linkbtn{background:none;border:0;text-decoration:underline;cursor:pointer;font-size:.9rem;color:var(--red)}
.empty{padding:28px 0;color:var(--soft)}
.totals{margin-top:12px}
.totals div{display:flex;justify-content:space-between;padding:6px 0}
.totals .grand{font-weight:700;font-size:1.2rem;border-top:2px solid var(--ink);margin-top:6px;padding-top:10px}
.totals #disc{color:#2f6b3a}
.orderform{margin-top:20px;padding-top:6px;border-top:1px dotted var(--soft)}

@media(max-width:860px){
  .navbtn{display:block}
  #nav{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:flex-start;gap:6px;background:var(--cream);padding:12px clamp(20px,5vw,48px) 20px;border-bottom:1px dotted var(--line);display:none}
  #nav.open{display:flex}
  #nav a{padding:10px 0;font-size:1.1rem}
  .herogrid,.storygrid,.bookgrid,.footgrid,.cateringgrid,.soongrid{grid-template-columns:1fr}
  .findgrid{grid-template-columns:1fr}
  .plainnav{gap:14px;font-size:.95rem}
  .heroright{order:-1}
  .stamp{max-width:300px;padding:22px 18px 16px}
  .stamp .wm{font-size:3rem}
  .stamp-loc{margin-top:8px}
  .heroright{margin-bottom:6px}
  .herogrid{gap:20px}
  .grid2{grid-template-columns:1fr}
  .grid3{grid-template-columns:1fr}
  .row{grid-template-columns:1fr}
  .rowside{align-items:flex-start;text-align:left;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:wrap}
  .steps{grid-template-columns:1fr 1fr}
  .two{grid-template-columns:1fr}
  body{padding-bottom:84px}
}
@media(max-width:520px){
  body{font-size:17px}
  .steps{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .stamp .sig{animation:none;clip-path:none}
  *{transition:none!important}
}
