:root{--paper:#f6f1e8;--ink:#32241c;--caramel:#b87a47;--olive:#79816d;--line:#e6dbcd;--white:#fffdf9}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Tahoma,"Segoe UI",sans-serif;line-height:1.6;overflow-x:hidden}.shell{width:min(100% - 32px,1120px);margin-inline:auto}.site-header{background:var(--paper)}.header-inner{min-height:76px;display:flex;align-items:center;gap:10px}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--caramel);border-radius:50%;color:var(--caramel);font-size:23px}.eyebrow{margin:0;color:var(--caramel);font:600 10px Georgia,serif;letter-spacing:.19em;direction:ltr;text-align:right}.brand{font-weight:800;font-size:17px;margin:-3px 0 0}.header-note{margin-inline-start:auto;color:#806d60;font-size:12px}.hero{position:relative;overflow:hidden;border-radius:22px;height:clamp(200px,44vw,340px);background:#a57a5c}.hero img{display:block;width:100%;height:100%;object-fit:cover}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,transparent 10%,rgba(30,19,13,.73) 100%)}.hero-copy{position:absolute;inset:auto 24px 25px auto;color:white}.hero-copy p{margin:0;font-size:12px}.hero-copy h1{margin:0;font-size:clamp(21px,5vw,36px);white-space:nowrap}.section-intro{display:flex;justify-content:space-between;align-items:end;padding:28px 1px 18px}.section-intro h2{margin:0;font-size:25px;line-height:1.35}.section-intro span{color:#806d60;font-size:12px}.category-nav{position:sticky;top:0;z-index:10;background:rgba(246,241,232,.97);border-block:1px solid var(--line);backdrop-filter:blur(8px)}.category-scroll{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding-block:10px;scroll-padding-inline:16px}.category-scroll::-webkit-scrollbar{display:none}.category-link{flex:none;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 17px;border-radius:999px;text-decoration:none;color:#59463a;background:#eae0d3;font-size:13px;font-weight:700;white-space:nowrap;transition:background .2s,color .2s}.category-link.active,.category-link:hover{background:var(--ink);color:white}.category-link:focus-visible{outline:3px solid var(--caramel);outline-offset:2px}.menu-content{padding-top:8px}.category-section{padding-block:27px 9px;scroll-margin-top:72px}.category-heading{display:flex;align-items:center;gap:12px;margin-bottom:16px}.category-heading h2{margin:0;font-size:23px}.category-heading span{font-size:12px;color:#8b786b}.category-heading:after{content:"";height:1px;background:var(--line);flex:1}.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.product-card{display:flex;min-width:0;background:var(--white);border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 6px 22px rgba(50,36,28,.035)}.product-image{width:116px;aspect-ratio:1;object-fit:cover;flex:none;background:#e9ddce}.product-body{min-width:0;display:flex;flex-direction:column;justify-content:center;padding:12px}.product-name{font-size:15px;line-height:1.5;margin:0 0 8px;font-weight:800;overflow-wrap:anywhere}.price{margin:0;color:#8c552d;font-size:15px;font-weight:800;white-space:nowrap}.currency{font-size:11px;font-weight:500;margin-inline-start:3px}.placeholder-note{font-size:10px;color:#837263;margin:5px 0 0}.unavailable{opacity:.62}.unavailable-label{font-size:11px;color:#8b382d}.image-fallback{display:grid;place-items:center;color:#8a715d;font-size:11px;text-align:center;padding:8px}.status{text-align:center;padding:40px 0;color:#785f4d}.site-footer{text-align:center;color:#958276;padding:45px 0 32px;font-size:12px}@media(max-width:900px){.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.product-image{width:102px}}@media(max-width:560px){.shell{width:min(100% - 28px,480px)}.header-inner{min-height:68px}.hero{height:210px;border-radius:18px}.hero-copy{right:18px;bottom:22px}.section-intro{padding:26px 1px 16px}.product-grid{grid-template-columns:1fr;gap:10px}.product-card{min-height:116px}.product-image{width:116px}.product-body{padding:10px 14px}.category-section{padding-block:25px 6px}.category-heading h2{font-size:21px}}@media(max-width:350px){.shell{width:calc(100% - 24px)}.header-note{font-size:10px}.hero{height:190px}.product-image{width:104px}.product-name{font-size:14px}.price{font-size:14px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.category-link{transition:none}}
/* Interaction refinements; keep the existing menu layout and palette. */
body{overflow-x:clip}
.category-section{scroll-margin-top:calc(var(--nav-height,66px) + 12px)}
.category-link{transition:transform .16s ease,opacity .16s ease}
.category-link.active{animation:tab-enter .18s ease-out}
.category-link:active{transform:scale(.96)}
.product-card{cursor:pointer}
.product-card:focus-visible{outline:3px solid var(--caramel);outline-offset:3px}
.card-reveal{animation:card-enter .24s ease-out}
.panel-open{position:fixed;inset-inline:0;width:100%;overflow:hidden}
#product-dialog{position:fixed;inset:auto 0 0;margin:0 auto;width:min(100%,560px);max-width:100%;max-height:88vh;max-height:88dvh;padding:0 22px max(24px,env(safe-area-inset-bottom));border:1px solid var(--line);border-bottom:0;border-radius:24px 24px 0 0;background:var(--white);color:var(--ink);font:inherit;overflow-y:auto;overscroll-behavior:contain;box-sizing:border-box}
#product-dialog[open]{animation:sheet-enter .22s ease-out}
#product-dialog::backdrop{background:rgba(30,19,13,.48);animation:backdrop-enter .22s ease-out}
#product-dialog.closing{animation:sheet-exit .16s ease-in forwards}
#product-dialog.closing::backdrop{animation:backdrop-exit .16s ease-in forwards}
.dialog-toolbar{position:sticky;top:0;z-index:1;display:flex;justify-content:flex-end;padding-block:10px;background:var(--white)}
#dialog-close{display:flex;align-items:center;gap:10px;min-width:76px;min-height:44px;padding:8px 14px;border:1px solid var(--line);border-radius:24px;background:var(--paper);color:var(--ink);font:inherit;cursor:pointer}
#dialog-close span{font-size:24px;line-height:1}
#dialog-close:focus-visible{outline:3px solid var(--caramel);outline-offset:2px}
#dialog-content{overflow-wrap:anywhere}
#dialog-content .detail-image{display:block;width:100%;height:auto;aspect-ratio:1.55;object-fit:contain;border-radius:16px;background:var(--paper)}
#dialog-content h2{font-size:23px;margin:18px 0 8px}
#dialog-content h3{font-size:16px}
#dialog-content p{white-space:pre-line}
#dialog-content .price{white-space:normal}
#dialog-content .placeholder-note{font-size:12px}
@keyframes card-enter{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@keyframes tab-enter{from{opacity:.7;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}
@keyframes sheet-enter{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes sheet-exit{to{opacity:0;transform:translateY(24px)}}
@keyframes backdrop-enter{from{opacity:0}to{opacity:1}}
@keyframes backdrop-exit{to{opacity:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.category-link,.category-link.active,.card-reveal,#product-dialog[open],#product-dialog.closing,#product-dialog::backdrop,#product-dialog.closing::backdrop{animation:none;transition:none}.category-link:active{transform:none}}
.category-scroll{padding-inline:4px}
/* Shared motion and customer-only application layer. */
:root{--motion-fast:160ms;--motion-normal:240ms;--motion-sheet:320ms;--ease:cubic-bezier(.22,.68,0,1);--compact-height:40px}
html:has(.customer-app){scrollbar-width:none;overscroll-behavior-y:none;scroll-padding-bottom:100px}
html:has(.customer-app)::-webkit-scrollbar,.customer-app *::-webkit-scrollbar{display:none}
.customer-app{min-height:100dvh;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:pan-x pan-y;overscroll-behavior-y:none;padding-top:env(safe-area-inset-top)}
.customer-app *{scrollbar-width:none}
.customer-app input,.customer-app textarea,.customer-app [contenteditable=true]{user-select:text;-webkit-user-select:text;touch-action:auto}
.customer-app img{-webkit-user-drag:none;user-select:none}
.customer-app button{font:inherit;cursor:pointer;touch-action:pan-x pan-y}
.customer-app button:focus-visible{outline:3px solid var(--caramel);outline-offset:3px}
.customer-app button:active:not(:disabled){transform:scale(.97)}
.customer-app button:disabled{cursor:default;opacity:.55}
.customer-app [hidden]{display:none!important}
.hero{animation:card-enter var(--motion-normal) var(--ease)}
#compact-header{position:fixed;z-index:11;top:0;inset-inline:0;height:calc(40px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top);display:grid;place-items:center;background:var(--paper);font-size:13px;font-weight:bold;opacity:0;transform:translateY(-8px);pointer-events:none;transition:opacity var(--motion-fast),transform var(--motion-fast) var(--ease)}
.compact-visible #compact-header{opacity:1;transform:translateY(0)}
.category-nav{top:0;backdrop-filter:none}
.compact-visible .category-nav{top:var(--compact-height)}
.category-section{scroll-margin-top:calc(var(--nav-height,66px) + var(--compact-height) + 12px)}
.category-link{transition:transform var(--motion-fast) var(--ease),opacity var(--motion-fast)}
.category-link.active{animation:tab-enter var(--motion-fast) var(--ease)}
.card-reveal{animation:card-enter var(--motion-normal) var(--ease)}
.product-card{display:flex;flex-direction:column;cursor:default;position:relative;border-radius:18px}
.product-details{border:0;background:transparent;color:inherit;display:flex;align-items:center;text-align:right;padding:0;width:100%;min-width:0;flex:1}
.product-details .product-image{align-self:stretch;height:auto;min-height:116px;object-fit:cover}
.product-body{flex:1;padding:12px;min-width:0}
.product-name{margin-bottom:6px}
.card-description{font-size:12px;line-height:1.7;color:#796556;margin:6px 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.quantity-control{display:flex;align-items:center;justify-content:flex-end;gap:5px;direction:ltr;min-height:44px}
.product-card>.quantity-control{padding:4px 12px 9px;border-top:1px solid #f3ebe1}
.quantity-control button{border:1px solid var(--line);color:var(--ink);background:var(--paper);min-height:44px;min-width:44px;border-radius:12px;padding:5px 12px;transition:transform var(--motion-fast) var(--ease)}
.quantity-control .quantity-plus{background:var(--ink);color:var(--white);border-color:var(--ink);font-size:13px}
.quantity-control.has-quantity .quantity-plus,.quantity-minus{font-size:22px}
.quantity-value{display:inline-grid;place-items:center;min-width:26px;font-size:14px;font-weight:bold;font-variant-numeric:tabular-nums}
#product-dialog{padding:0 20px;max-height:calc(100dvh - env(safe-area-inset-top) - 16px)}
#product-dialog[open]{display:flex;flex-direction:column;overflow:hidden;animation:sheet-enter var(--motion-sheet) var(--ease)}
#product-dialog.closing{animation:sheet-exit var(--motion-fast) var(--ease) forwards}
#product-dialog::backdrop{animation:backdrop-enter var(--motion-normal) var(--ease)}
#product-dialog.closing::backdrop{animation:backdrop-exit var(--motion-fast) var(--ease) forwards}
.dialog-toolbar{flex:none;padding-top:20px;position:relative}
.dialog-toolbar:before{content:'';position:absolute;top:8px;left:calc(50% - 18px);width:36px;height:4px;border-radius:4px;background:var(--line)}
#dialog-content{overflow-y:auto;min-height:0;overscroll-behavior:contain;padding-bottom:16px}
#dialog-content .detail-image{max-height:300px;flex:none}
.sheet-action{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0 max(14px,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--white);font-size:14px}
.sheet-action>.quantity-control{width:100%;justify-content:center}
.sheet-action .quantity-control:not(.has-quantity) .quantity-plus{width:100%;font-size:14px}
.device-note,.row-price{font-size:12px;color:#796556}
.selection-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;padding:16px 0;border-bottom:1px solid var(--line)}
.selection-row h3{grid-column:1/-1;margin:0}
.selection-row p{margin:0}
.selection-row .quantity-control{grid-column:2;grid-row:2/4}
.row-subtotal{font-size:14px}
.remove-selection{justify-self:start;min-width:44px;min-height:44px;border:0;background:transparent;color:#8b382d;font-size:12px}
.selections-bar{position:fixed;z-index:12;bottom:calc(14px + env(safe-area-inset-bottom));left:50%;width:min(calc(100% - 28px),520px);min-height:64px;border:0;border-radius:20px;padding:12px 18px;background:var(--ink);color:var(--white);display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:0 6px 20px #32241c25;opacity:0;transform:translate(-50%,16px);pointer-events:none;transition:opacity var(--motion-normal),transform var(--motion-normal) var(--ease)}
.selections-bar.visible{opacity:1;transform:translate(-50%,0);pointer-events:auto}
.customer-app .selections-bar:active{transform:translate(-50%,0) scale(.98)}
.selections-bar>span:first-child{font-weight:bold;font-size:14px;white-space:nowrap}
#selection-count{display:inline-grid;place-items:center;min-width:24px;margin-inline-start:4px;background:#fff2;border-radius:7px}
#selection-total{font-size:12px;line-height:1.7}
.has-selections .site-footer{padding-bottom:calc(115px + env(safe-area-inset-bottom))}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.menu-notice{font-size:11px;color:#796556;margin-block:12px 0}
.retry-button{min-height:44px;padding:8px 20px;border:1px solid var(--line);border-radius:12px;background:var(--ink);color:var(--white)}
@media(max-width:350px){.selections-bar{padding:10px 12px;gap:8px}.selections-bar>span:first-child{font-size:12px}.selection-row{grid-template-columns:1fr}.selection-row .quantity-control{grid-column:1;grid-row:auto;justify-content:flex-start}#product-dialog{padding-inline:16px}}
@media(prefers-reduced-motion:reduce){.customer-app *,.customer-app *::before,.customer-app *::backdrop{animation:none!important;transition:none!important;scroll-behavior:auto!important}.customer-app button:active{transform:none}.customer-app .selections-bar:active{transform:translate(-50%,0)}}
.customer-app button.selections-bar:active:not(:disabled){transform:translate(-50%,0) scale(.98)}
@media(prefers-reduced-motion:reduce){.customer-app button.selections-bar:active:not(:disabled){transform:translate(-50%,0)}}

/* Mobile touch fix: prevent a tapped category from keeping a fake hover state.
   The real selected category is controlled only by the .active class in script.js. */
@media (hover: none), (pointer: coarse) {
  .category-link:hover:not(.active) {
    background: #eae0d3;
    color: #59463a;
  }
}
