@font-face{font-family:Barlow;src:url('./assets/barlow-400.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Barlow;src:url('./assets/barlow-700.ttf') format('truetype');font-weight:700;font-display:swap}

:root{--ink:#192e2a;--muted:#56635d;--green:#194f3d;--green-dark:#103c2c;--cream:#faf8f2;--line:#dfE4d9;--yellow:#f6ce62;--white:#fff;--soft:#edf2e9;font-family:Barlow,Arial,sans-serif;color:var(--ink);background:var(--cream);font-synthesis:none}
*{box-sizing:border-box}
body{margin:0}
button,input,textarea,select{font:inherit}
button,a,input,textarea{touch-action:manipulation}
button{cursor:pointer}
button:disabled{opacity:.48;cursor:not-allowed}
button{color:inherit}
a{color:var(--green);text-underline-offset:4px}
::selection{background:var(--yellow);color:var(--ink)}
:focus-visible{outline:3px solid #b47813;outline-offset:3px}
input,textarea{caret-color:var(--green)}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip{position:fixed;top:-60px;left:16px;z-index:20;background:white;padding:10px}
.skip:focus{top:10px}
.demo-banner{background:var(--green-dark);color:white;padding:10px 24px;text-align:center;font-size:14px;display:flex;gap:14px;justify-content:center}
.demo-banner strong{color:var(--yellow)}
.masthead{max-width:1360px;margin:auto;display:flex;align-items:center;gap:26px;padding:20px 42px;border-bottom:1px solid var(--line)}
.brand{display:block}
.brand img{display:block;object-fit:contain;width:145px;height:66px}
.location{font-size:15px}
.location span{display:block;color:var(--muted);font-size:14px;margin-top:4px}
.cart-link{margin-left:auto;background:transparent;border:1px solid var(--line);border-radius:6px;padding:12px 18px;font-weight:700}
.cart-link span{background:var(--green);color:white;border-radius:30px;margin-left:10px;padding:3px 8px;font-size:13px}
main{max-width:1360px;margin:auto;padding:0 42px}
.intro{display:flex;justify-content:space-between;align-items:center;padding:42px 0 40px;gap:30px}
.intro h1{font-size:58px;line-height:1.02;letter-spacing:-.035em;margin:0 0 16px;font-weight:700}
.intro p{line-height:1.5;color:var(--muted);font-size:18px;margin:0 0 22px}
.mode-picker{display:inline-flex;background:#e8ede3;padding:4px;border-radius:7px}
.mode-picker button{border:0;background:transparent;padding:11px 24px;border-radius:4px;font-weight:700}
.mode-picker button.selected{background:var(--green);color:white;box-shadow:0 3px 6px #18392b18}
.intro .mode-caption{font-size:14px;margin:10px 0 0}
.intro-art{width:44%;min-height:270px;border-radius:2px;background:linear-gradient(90deg,#194f3deb,#194f3d8a),url('./assets/tokodingo.jpg') center bottom/cover;color:var(--yellow);position:relative;padding:25px 36px;transform:rotate(-2deg);overflow:hidden}
.art-small{color:#f9f6e6;font-size:17px;font-weight:700}
.art-big{font-size:64px;font-weight:700;line-height:.95;display:block;margin-top:15px;letter-spacing:-.03em}
.intro-art svg{width:110px;height:50px;position:absolute;right:24px;bottom:24px;stroke:var(--yellow);stroke-width:3;fill:none}
.ordering-layout{display:grid;grid-template-columns:170px minmax(0,1fr) 310px;gap:30px;align-items:start;padding-bottom:70px}
.categories{position:sticky;top:24px;padding-top:4px}
.categories>p{font-weight:700;margin:0 0 13px;font-size:18px}
.categories button{display:block;width:100%;text-align:left;background:transparent;border:0;border-radius:5px;padding:10px 12px;margin-bottom:3px;font-size:15px}
.categories button:hover{background:#eaf0e4}
.categories button.active{background:var(--green);color:white;font-weight:700}
.search-wrap{display:flex;align-items:center;border:1px solid #c6cec2;background:white;border-radius:6px;height:48px;margin-bottom:27px;padding:0 13px;gap:10px}
.search-wrap svg{width:20px;fill:none;stroke:var(--muted);stroke-width:1.7;flex-shrink:0}
.search-wrap input{width:100%;border:0;background:transparent;padding:9px 0;color:var(--ink)}
input::placeholder,textarea::placeholder{color:#637066}
.menu-section{margin-bottom:32px;scroll-margin-top:24px}
.section-title{margin:0 0 5px;font-size:27px;line-height:1.15;letter-spacing:-.02em}
.section-description{font-size:14px;color:var(--muted);margin:0 0 13px;line-height:1.45}
.menu-items{border-top:1px solid var(--line)}
.menu-item{display:flex;align-items:center;gap:14px;padding:17px 0;border-bottom:1px solid var(--line)}
.item-copy{flex:1;min-width:0}
.item-copy h3{font-size:17px;line-height:1.3;margin:0 0 5px;font-weight:700}
.item-copy p{margin:0;font-size:13px;color:var(--muted)}
.price{font-size:16px;white-space:nowrap;font-weight:700;font-variant-numeric:tabular-nums}
.add-button{background:var(--white);border:1px solid #ccd5c5;border-radius:50%;width:33px;height:33px;display:grid;place-items:center;flex-shrink:0}
.add-button:hover{background:var(--green);color:white;border-color:var(--green)}
.add-button svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2}
.cart{background:white;border:1px solid var(--line);padding:23px;border-radius:8px;position:sticky;top:24px;box-shadow:0 8px 22px #21372b06}
.cart-heading{display:flex;align-items:center;justify-content:space-between}
.cart h2{font-size:23px;margin:0}
.cart-mode{font-size:13px;color:var(--muted);margin:8px 0 20px}
.cart-empty{text-align:center;padding:22px 0 18px}
.cart-empty svg{width:52px;stroke:#718274;fill:none;stroke-width:1.2;margin-bottom:12px}
.cart-empty strong{display:block;font-size:17px}
.cart-empty p{font-size:14px;line-height:1.5;color:var(--muted);margin:8px 0}
.cart-line{border-top:1px solid var(--line);padding:14px 0;display:grid;grid-template-columns:24px 1fr;gap:9px}
.cart-line-count{background:var(--soft);align-self:start;text-align:center;border-radius:3px;font-size:13px;padding:3px 0}
.cart-line h3{font-size:15px;line-height:1.35;margin:0 0 3px}
.cart-line p{font-size:12px;color:var(--muted);margin:3px 0;overflow-wrap:anywhere}
.cart-line-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:8px}
.line-actions{display:flex;gap:11px}
.text-button{background:none;border:0;padding:0;text-decoration:underline;text-underline-offset:3px;font-size:13px;color:var(--green)}
.line-price{font-weight:700;font-size:14px;font-variant-numeric:tabular-nums}
.cart-total{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:17px 0;font-size:17px}
.cart-total strong{font-variant-numeric:tabular-nums}
.small{font-size:13px;line-height:1.45}
.muted{color:var(--muted)}
.primary{background:var(--green);color:white;border:0;padding:14px 19px;border-radius:5px;font-weight:700}
.primary:hover{background:var(--green-dark)}
.cart .primary{width:100%}
.reset{margin:17px auto 0;display:block;color:var(--muted)}
.cart-warning{font-size:12px;line-height:1.5;color:#695526;margin:0 0 13px}
.source-note{font-size:12px;line-height:1.6;color:var(--muted);max-width:65ch}
.page-footer{padding:28px 42px;background:#e8ede3;display:flex;gap:25px;justify-content:center;font-size:14px;color:var(--muted)}
.page-footer strong{color:var(--green)}
.mobile-cart,#close-cart{display:none}
.icon-button{background:none;border:0;font-size:28px;width:36px;height:36px;line-height:1;color:var(--muted)}
dialog{border:0;border-radius:10px;padding:30px;width:480px;max-width:calc(100vw - 30px);max-height:calc(100dvh - 32px);overflow:auto;color:var(--ink);box-shadow:0 20px 80px #071c3450}
dialog::backdrop{background:#0c201b85}
.dialog-close{position:absolute;right:13px;top:12px}
.dialog-category{font-size:14px;color:var(--muted);margin:0 35px 8px 0}
dialog h2{font-size:30px;letter-spacing:-.025em;line-height:1.1;margin:0 32px 14px 0}
dialog h3{font-size:19px;margin:24px 0 12px}
dialog p{line-height:1.5}
dialog label{display:block;font-weight:700;font-size:15px;margin:16px 0 7px}
.optional{font-weight:400;color:var(--muted);font-size:13px;margin-left:7px}
dialog textarea,dialog input:not([type=radio]):not([type=checkbox]),dialog select{border:1px solid #bec9b9;border-radius:5px;padding:11px;width:100%;color:var(--ink);background:white}
textarea{resize:vertical}
fieldset{border:0;padding:0;margin:20px 0}
legend{font-weight:700;font-size:15px;margin-bottom:8px}
.option-label{display:flex!important;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:5px;padding:12px;margin:7px 0!important;font-weight:400!important}
.option-label:has(input:checked){border-color:var(--green);background:var(--soft)}
.option-label span:first-child{display:flex;align-items:center;gap:9px}
.option-label input{accent-color:var(--green)}
.option-label b{font-weight:700}
.product-bottom{display:flex;gap:15px;margin-top:25px}
.product-bottom .primary{flex:1}
.quantity-control{display:flex;align-items:center;border:1px solid #bec9b9;border-radius:5px;overflow:hidden}
.quantity-control button{background:var(--soft);border:0;width:35px;height:48px;font-size:20px}
.quantity-control input{border:0!important;width:46px!important;padding:4px!important;text-align:center;border-radius:0!important;appearance:textfield}
.quantity-control input::-webkit-inner-spin-button{appearance:none}
.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,12px);background:var(--green-dark);color:white;border-radius:6px;padding:12px 20px;z-index:40;opacity:0;pointer-events:none;transition:opacity .18s,transform .18s;text-align:center;max-width:90vw}
.toast.visible{opacity:1;transform:translate(-50%,0)}
.checkout-dialog{width:540px}
.notice{background:#fff4d4;border-radius:5px;padding:12px 14px;font-size:14px;line-height:1.5}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.full{grid-column:1/-1}
.checkbox-label{display:flex;gap:10px;align-items:flex-start;font-weight:400!important;line-height:1.45}
.checkbox-label input{margin-top:4px;accent-color:var(--green)}
.error{color:#942e20;font-size:13px;margin:5px 0 0}
.invalid{border-color:#942e20!important}
.checkout-actions{display:flex;gap:16px;align-items:center;margin-top:24px}
.checkout-actions .primary{flex:1}
.review-details{background:var(--soft);padding:15px;border-radius:5px;margin:20px 0}
.review-details p{margin:4px 0;overflow-wrap:anywhere}
.review-line{display:flex;justify-content:space-between;gap:15px;padding:11px 0;border-bottom:1px solid var(--line);font-size:15px}
.review-line span{overflow-wrap:anywhere}
.review-line strong{white-space:nowrap;font-variant-numeric:tabular-nums}
.success-mark{background:var(--soft);color:var(--green);width:58px;height:58px;border-radius:50%;display:grid;place-items:center;margin-bottom:20px}
.success-mark svg{stroke:currentColor;fill:none;stroke-width:2;width:30px}
.empty-results{padding:40px 15px;text-align:center}
.empty-results h2{font-size:24px}
.noscript{padding:20px;text-align:center;background:#fff4d4}
body.modal-open{overflow:hidden}
*{scrollbar-color:#aab8a5 #f2f4ed;scrollbar-width:thin}

@media(min-width:1600px){.intro h1{font-size:64px}
}

@media(max-width:1100px){main{padding:0 25px}
.masthead{padding:17px 25px}
.ordering-layout{grid-template-columns:140px minmax(0,1fr) 270px;gap:20px}
.cart{padding:18px}
.intro h1{font-size:50px}
.art-big{font-size:58px}
.categories button{padding:10px 8px}
.price{font-size:15px}
}

@media(max-width:850px){.ordering-layout{grid-template-columns:minmax(0,1fr) 280px;gap:24px}
.categories{grid-column:1/-1;position:sticky;top:0;background:var(--cream);z-index:3;padding:10px 0;border-bottom:1px solid var(--line)}
.categories>p{display:none}
#category-list{display:flex;overflow-x:auto;gap:6px;scrollbar-width:none}
.categories button{width:auto;flex-shrink:0;margin:0;padding:10px 13px;white-space:nowrap}
.intro{padding:32px 0}
.intro-art{width:42%;min-height:230px}
.art-big{font-size:48px}
.menu-column{min-width:0}
.menu-section{scroll-margin-top:70px}
.cart{top:70px}
}

@media(max-width:680px){.demo-banner{padding:9px 15px;flex-direction:column;gap:2px;font-size:12px}
.masthead{padding:12px 18px;gap:12px}
.brand img{width:118px;height:51px}
.location{display:none}
.cart-link{font-size:14px;padding:10px 12px}
.cart-link span{margin-left:5px}
main{padding:0 18px}
.intro{padding:27px 0 24px;gap:18px;align-items:flex-start}
.intro h1{font-size:43px;margin-bottom:13px}
.intro p{font-size:16px;line-height:1.4;margin-bottom:18px}
.desktop-only{display:none}
.intro>div:first-child{flex:1;min-width:0}
.intro-art{width:100px;flex-shrink:0;min-height:173px;padding:16px 10px;margin-top:8px}
.art-small{font-size:13px}
.art-big{font-size:20px;margin-top:17px}
.intro-art svg{width:60px;right:10px;bottom:10px}
.mode-picker button{padding:10px 17px;font-size:14px}
.intro .mode-caption{font-size:12px;max-width:230px;line-height:1.45}
.ordering-layout{display:block;padding-bottom:32px}
.categories{margin:0 -18px 23px;padding:10px 18px;top:0}
.categories button{font-size:14px}
.search-wrap{margin-bottom:24px}
.section-title{font-size:25px}
.menu-item{padding:17px 0;gap:12px}
.item-copy h3{font-size:16px}
.item-copy p{font-size:12px}
.price{font-size:15px}
.add-button{width:32px;height:32px}
.cart{display:none;position:fixed;top:auto;bottom:0;left:0;right:0;z-index:12;border-radius:12px 12px 0 0;padding:23px 22px;max-height:85dvh;overflow:auto;box-shadow:0 -8px 30px #071c3440}
.cart.is-open{display:block}
#close-cart{display:block}
#cart-backdrop{position:fixed;inset:0;background:#0c201b85;z-index:11}
.mobile-cart{display:flex;justify-content:space-between;align-items:center;background:var(--green);color:white;position:fixed;bottom:13px;left:15px;right:15px;width:calc(100% - 30px);border:0;border-radius:7px;padding:16px 18px;z-index:8;box-shadow:0 4px 15px #12382c33;font-size:15px}
.mobile-cart b{background:white;color:var(--green);border-radius:3px;padding:1px 6px;margin-left:6px;font-size:12px}
.page-footer{padding:25px 18px 100px;flex-direction:column;gap:7px;font-size:13px;text-align:center}
.toast{bottom:84px;font-size:14px}
dialog{padding:25px 22px;max-width:calc(100vw - 24px)}
dialog h2{font-size:27px}
.product-bottom{gap:12px}
.product-bottom .primary{font-size:14px;padding:13px}
.form-grid{grid-template-columns:1fr}
.full{grid-column:auto}
}

@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}


.language-switch{display:flex;align-items:center;gap:3px;border:1px solid var(--line);border-radius:5px;padding:3px}
.language-switch button{border:0;border-radius:3px;padding:7px 9px;background:transparent;font-size:13px}
.language-switch button[aria-pressed=true]{background:var(--green);color:white;font-weight:700}
.dialog-language{width:max-content;margin:0 35px 20px 0}
.cart-link>span[data-i18n]{background:none;color:inherit;padding:0;margin:0;font-size:inherit}
.cart-link #header-count{background:var(--green);color:white}
@media(max-width:680px){.masthead{flex-wrap:wrap}
.masthead>.language-switch{order:3;flex-basis:100%;justify-content:flex-end;border:0;padding:0}
.masthead>.language-switch button{border:1px solid var(--line)}
.intro h1{font-size:40px}
.intro .mode-picker button{padding:10px 14px}
.dialog-language button{font-size:12px}
}

.cart-language{width:max-content;margin-bottom:18px}
.cart-language button{font-size:12px}


.menu-item{display:block}
.menu-item-row{display:flex;align-items:center;gap:14px}
.dish-toggle{display:flex;align-items:center;gap:8px;text-align:left;background:none;border:0;padding:0;font-weight:700;width:100%;line-height:1.3}
.dish-toggle span{min-width:0}
.dish-toggle svg{width:15px;height:15px;flex-shrink:0;fill:none;stroke:var(--muted);stroke-width:1.8;transition:transform 200ms cubic-bezier(.16,1,.3,1)}
.dish-toggle:hover{color:var(--green)}
.preview-open .dish-toggle svg{transform:rotate(180deg)}
.dish-preview{display:grid;grid-template-rows:0fr;transition:grid-template-rows 200ms cubic-bezier(.16,1,.3,1)}
.preview-open .dish-preview{grid-template-rows:1fr}
.preview-inner{min-height:0;overflow:hidden}
.preview-content{display:grid;grid-template-columns:140px minmax(0,1fr);gap:17px;padding-top:17px}
.preview-photo{aspect-ratio:4/3;background:var(--soft);border-radius:5px;overflow:hidden;min-width:0;align-self:start}
.preview-photo img{display:block;width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.photo-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;aspect-ratio:4/3;padding:12px;text-align:center;color:var(--muted);font-size:13px}
.photo-placeholder svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.5}
.preview-copy{min-width:0;align-self:center}
.preview-copy p{font-size:14px;line-height:1.5;margin:0 0 8px;overflow-wrap:anywhere}
.preview-copy .preview-caveat{font-size:12px;color:var(--muted);margin-top:8px}
.archive-badge{font-size:11px;font-weight:700;display:inline-block;color:#695526;background:#fff4d4;padding:3px 6px;border-radius:3px;margin-bottom:7px}
.preview-source{font-size:12px}
.menu-item.preview-open{padding-bottom:20px}
@media(max-width:680px){.menu-item-row{gap:12px}
.preview-content{grid-template-columns:104px minmax(0,1fr);gap:13px}
.preview-copy p{font-size:13px}
.photo-placeholder{font-size:12px;padding:8px;gap:5px}
.photo-placeholder svg{width:25px;height:25px}
}
@media(max-width:360px){.preview-content{grid-template-columns:88px minmax(0,1fr);gap:11px}
.photo-placeholder{font-size:11px}
.preview-copy .preview-caveat{font-size:11px}
}


.preview-media{min-width:0;align-self:start}
.preview-photo img{object-fit:contain}
.photo-caption{margin-top:7px;color:var(--muted)}
.photo-caption p{font-size:11px;line-height:1.4;margin:0 0 5px;overflow-wrap:anywhere}
.photo-caption .preview-source{font-size:11px}
.photo-caption .archive-badge{margin-top:4px}


/* Customer controls and compact menu-first layout. */
button, .text-button, .icon-button, .add-button, select { min-width:44px; min-height:44px; }
input:not([type=radio]):not([type=checkbox]), textarea, .skip { min-height:44px; }
.add-button, .icon-button { width:44px; height:44px; }
:focus-visible { outline:3px solid var(--ink); outline-offset:3px; }
a:focus-visible, button:focus-visible { box-shadow:0 0 0 2px var(--cream); }
.masthead { padding-top:12px; padding-bottom:12px; }
.brand span { display:block; font-weight:700; }
.brand:has(img:not([hidden])) span { display:none; }
.store-notices { padding-top:12px; font-size:15px; line-height:1.4; }
.store-notices p { margin:4px 0; }
#delivery-notice { font-weight:700; }
#last-order, #shop-phone { display:inline-flex; min-height:44px; align-items:center; margin-right:20px; }
#uncertain-notice, #load-error { padding:12px; background:var(--soft); color:var(--ink); }
.intro { padding:24px 0; }
.intro h1 { font-size:48px; max-width:13ch; }
.intro-art { min-height:205px; }
.menu-thumbnail { width:68px; height:68px; object-fit:contain; flex-shrink:0; border-radius:4px; }
.menu-description { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.dish-photo { width:100%; max-height:260px; object-fit:contain; }
.sold-out { display:block; color:var(--ink); font-size:14px; padding:4px 0; }
.unavailable { background:var(--soft); }
.honeypot { position:absolute; width:1px!important; height:1px; padding:0!important; opacity:0; overflow:hidden; clip-path:inset(50%); pointer-events:none; }
#order-status { padding:20px; margin:18px 0; border:1px solid var(--line); background:var(--white); }
#order-status h2 { margin:0 0 12px; }
.order-state { font-size:22px; font-weight:700; }
.menu-item-row { align-items:center; }
.item-copy h3, .review-details, .cart-line, #order-status { overflow-wrap:anywhere; }
@media(max-width:680px) {
  .masthead { gap:8px; padding:8px 18px; flex-wrap:nowrap; }
  .brand img { width:78px; height:44px; }
  .masthead>.language-switch { order:initial; flex-basis:auto; margin-left:auto; }
  .masthead>.language-switch button { padding:6px; font-size:12px; }
  .masthead .location, .masthead .cart-link { display:none; }
  .intro { padding:10px 0 12px; }
  .intro h1 { font-size:28px; max-width:none; margin-bottom:8px; }
  .intro > div > p[data-i18n-html=intro], .intro-art, .mode-caption { display:none; }
  .store-notices { padding-top:8px; font-size:13px; }
  .categories { margin-bottom:8px; padding-top:4px; padding-bottom:4px; }
  .search-wrap { margin-bottom:16px; }
  .menu-thumbnail { width:48px; height:48px; }
  .menu-item-row { flex-wrap:nowrap; gap:8px; }
  .item-copy { flex:1; min-width:0; }
  .price { margin-left:auto; }
  .intro .mode-picker button { padding:8px 18px; }
  .cart-line-bottom { flex-wrap:wrap; }
}

.search-wrap:focus-within { outline:3px solid var(--ink); outline-offset:3px; }
.search-wrap input:focus-visible { outline:none; }
.availability-notice { display:inline-flex; align-items:center; gap:8px; padding:8px 12px; border-radius:6px; max-width:100%; }
.availability-notice svg { width:20px; height:20px; flex:none; fill:none; stroke:currentColor; stroke-width:1.7; }
.availability-notice.is-on { background:#e4efe5; color:#194f3d; }
.availability-notice.is-off { background:#f2ead7; color:#604b25; }
