.language{display:flex;gap:8px;align-items:center;font:11px Arial,sans-serif;color:var(--muted)}.language button{border:0;background:none;min-height:44px;min-width:28px;padding:8px 4px}.language button[aria-pressed=true]{color:var(--orange);font-weight:bold}#categories{display:flex;gap:28px;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--line)}#categories::-webkit-scrollbar{display:none}#categories button{flex-shrink:0;border:0;border-bottom:2px solid transparent;padding:19px 0 16px;background:none;font-size:10px;letter-spacing:1px;color:var(--muted);white-space:nowrap}#categories button[aria-current=true]{border-color:var(--orange);color:var(--orange)}.search-wrap{display:flex;gap:12px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line);color:var(--muted)}#search{min-width:0;flex:1;width:100%;border:0;background:none;outline-offset:3px;font-size:12px;color:var(--ink);padding:5px 0}#search::-webkit-search-cancel-button{display:none}#clear-search{border:0;background:none;font-size:23px;padding:0 8px}.empty{padding:60px 0;text-align:center;color:var(--muted);line-height:2;font-size:14px}#ray-track{position:fixed;right:0;width:80px;z-index:9;pointer-events:none;direction:ltr}#ray-thumb{position:absolute;right:0;width:80px;height:100%;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;padding:0 8px 0 0;touch-action:pan-y pinch-zoom;pointer-events:auto;cursor:grab;user-select:none}#ray-thumb.dragging{cursor:grabbing}#ray-thumb i{height:4px;flex-shrink:0;border-radius:4px;background:var(--orange);pointer-events:none}#ray-thumb:focus-visible{outline-offset:-4px}@media(max-width:700px){#categories{gap:24px}.brand{gap:10px}}

.brand img{width:64px;height:70px;object-fit:contain}
#ray-thumb i{border-radius:50% 38% 38% 50% / 50% 50% 50% 50%;clip-path:polygon(0 50%,3% 22%,12% 5%,28% 0,82% 12%,96% 30%,100% 50%,96% 70%,82% 88%,28% 100%,12% 95%,3% 78%)}
@media(max-width:700px){.brand img{width:52px;height:58px}}


.product-image{width:52px;height:62px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#F0EBE3;color:#B9A797;flex-shrink:0}
.product-image img{display:block;width:100%;height:100%;object-fit:cover}
.product-image.is-placeholder svg{opacity:.7}
.product-image-large{width:100%;height:auto;aspect-ratio:4/3;flex-direction:column;gap:18px}
.product-image-large.is-placeholder{background:#EEE7DD}
.product-image-large svg{width:42px;height:42px}
.product-image-large span{font-size:10px;letter-spacing:2px;color:#84776A}


.product-modal::backdrop{background:rgb(36 35 33 / .46);backdrop-filter:blur(5px)}


.modal-category{font-size:10px;color:var(--orange-dark);margin:0 0 12px;letter-spacing:1px}
.modal-info h2{font-weight:400;font-size:25px;line-height:1.6;margin:0}
.modal-other-name{font-size:11px;color:var(--muted);margin:8px 0 22px;line-height:1.8}
.modal-prices{margin-bottom:24px}
.modal-prices p{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:15px;margin:10px 0}
.modal-prices p:has(>span:only-child){justify-content:flex-start}
.modal-variant{font-size:12px;color:var(--muted)}
.modal-ingredients h3{font-size:11px;font-weight:400;color:var(--muted);margin:0 0 10px}
.modal-ingredients p{font-size:13px;line-height:2.1;margin:0;overflow-wrap:anywhere}

/* Edge-to-edge product image with all details inside its bottom fade. */
.product-modal{width:min(460px,calc(100% - 32px));height:min(680px,calc(100dvh - 48px));max-height:calc(100dvh - 48px);padding:0;border:0;border-radius:0;background:#302923;overflow:hidden;color:#fff}
.modal-photo{position:absolute;inset:0}
.modal-photo .product-image-large{width:100%;height:100%;aspect-ratio:auto}
.modal-photo .product-image-large img{width:100%;height:100%;object-fit:cover}
.modal-photo .product-image-large.is-placeholder{background:#B8A28B;color:#fff;justify-content:flex-start;padding-top:25%}
.modal-photo .product-image-large.is-placeholder span{color:rgb(255 255 255 / .8)}
.modal-info{position:absolute;inset:auto 0 0;z-index:1;padding:100px 28px 28px;max-height:85%;overflow-y:auto;overscroll-behavior:contain;background:linear-gradient(to bottom,transparent 0%,rgb(24 20 17 / .65) 22%,rgb(24 20 17 / .92) 60%,rgb(24 20 17 / .98) 100%);scrollbar-width:none}
.modal-info::-webkit-scrollbar{display:none}
.modal-category{color:#FFD2B8}
.modal-other-name,.modal-variant,.modal-ingredients h3{color:rgb(255 255 255 / .72)}
.modal-info h2,.modal-prices,.modal-ingredients p{color:#fff;text-shadow:0 1px 8px rgb(0 0 0 / .25)}
.modal-other-name{margin-bottom:16px}
.modal-prices{margin-bottom:18px}
.modal-close{z-index:2;background:rgb(24 20 17 / .3);color:#fff;border:0;backdrop-filter:blur(8px)}
@media(max-width:700px){.product-modal{height:min(640px,calc(100dvh - 32px));max-height:calc(100dvh - 32px)}.modal-info{padding:85px 24px 24px}}


.header-cart{position:absolute;right:24px;top:12px;display:flex;align-items:center;gap:5px;padding:8px;border:0;background:none;color:var(--ink)}
.cart-badge{font-size:10px;color:var(--orange-dark);min-width:12px}
.quantity-controls{display:inline-flex;align-items:center;gap:18px;direction:ltr}
.quantity-controls button{width:44px;height:44px;border:0;background:var(--soft);color:var(--orange-dark);font-size:23px}
.quantity-controls button:disabled{opacity:.4;cursor:default}
.quantity-controls span{min-width:22px;text-align:center;font-size:14px}
.quantity-controls .add-product{width:auto;padding:0 20px;font-size:12px;background:var(--orange-dark);color:#fff}
.modal-cart{margin-top:24px;display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:16px}
.modal-cart label{display:flex;flex-direction:column;gap:8px;font-size:11px;color:rgb(255 255 255 / .8)}
.modal-cart select{min-height:44px;border:0;background:#fff;color:var(--ink);padding:8px 12px;font:inherit}
.modal-cart .quantity-controls span{color:white}
.cart-dropdown{position:fixed;left:auto;right:24px;bottom:auto;width:min(380px,calc(100vw - 32px));max-height:calc(100dvh - 150px);margin:0;padding:24px;border:0;border-radius:0;background:var(--bg);color:var(--ink);overflow:auto;overscroll-behavior:contain;box-shadow:0 16px 60px rgb(0 0 0 / .12)}
.cart-dropdown::backdrop{background:rgb(36 35 33 / .25);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.cart-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}
.cart-heading h2{font-size:20px;font-weight:400;margin:0}
.cart-heading button{font-size:27px;background:none;border:0;width:44px;height:44px}
.cart-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 0;border-bottom:1px solid var(--line)}
.cart-item h3{font-size:12px;font-weight:400;line-height:1.8;margin:0;overflow-wrap:anywhere}
.cart-item p{font-size:11px;color:var(--muted);margin:5px 0 0}
.cart-item .quantity-controls{gap:7px;flex-shrink:0}
.cart-item .quantity-controls button{width:44px;height:44px;font-size:20px}
.cart-total{padding:22px 0;font-size:14px}
.cart-checkout,.cart-continue{display:block;width:100%;min-height:44px;border:0;font:inherit;font-size:12px}
.cart-checkout{background:var(--orange-dark);color:#fff}
.cart-continue{margin-top:10px;background:transparent;color:var(--muted)}
.cart-empty,.checkout-note{font-size:12px;line-height:2;color:var(--muted)}
@media(min-width:701px){.header-cart{right:48px;top:14px}.cart-dropdown{right:max(24px,calc((100vw - 1100px)/2 + 48px))}}

.modal-close:focus,.modal-close:focus-visible{outline:none}


html.modal-open{overflow:hidden}
.product{position:relative;width:100%;display:grid;grid-template-columns:minmax(0,1fr);align-items:center;min-height:82px;padding:18px var(--ray-inset,0px) 18px 0;text-align:start;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;direction:ltr}
.product:hover .product-name,.product:focus-visible .product-name{color:var(--orange-dark)}
.product-content{display:block;min-width:0;direction:ltr}
html[dir=rtl] .product-content{direction:rtl}
.product-body{display:grid;grid-template-columns:52px minmax(0,1fr);align-items:center;column-gap:14px;min-width:0}
.product-title{min-width:0;display:block;overflow-wrap:anywhere}
.product-name{display:block;font-weight:400;font-size:15px;line-height:1.65;overflow-wrap:anywhere}
.product .english{display:block;overflow-wrap:anywhere}
.product-title>.price{display:block;width:max-content;max-width:100%;margin-top:8px;font-size:13px;line-height:1.6;white-space:normal}
html[dir=rtl] .product-title>.price{margin-left:auto}
html[dir=ltr] .product-title>.price{margin-right:auto}
@media(max-width:700px){.product{min-height:77px}.product-body{grid-template-columns:44px minmax(0,1fr);column-gap:12px}.product-image{width:44px;height:58px}.product-name{font-size:13px}.product-title>.price{font-size:12px}.modal-info h2{font-size:22px}}
/* Animation geometry is committed together in the scroll frame: no delayed padding. */
.product,.section-heading,.section-heading::after{transition:none}
/* Only primary touch devices pass swipes through; hybrid mouse dragging stays available. */
@media(hover:none) and (pointer:coarse){#ray-track,#ray-thumb{pointer-events:none;touch-action:auto}}
.modal-close{position:absolute;top:12px;right:12px;display:grid;place-items:center;width:44px;height:44px;font-size:29px;line-height:1;border-radius:0}
.modal-close:focus-visible{background:rgb(24 20 17 / .85);box-shadow:inset 0 0 0 2px rgb(255 255 255 / .65)}

#ray-thumb{clip-path:polygon(100% 0,calc(100% - 30px) 0,calc(100% - 30px) calc(var(--ray-wave-center,0px) - 78px),0 calc(var(--ray-wave-center,0px) - 20px),0 calc(var(--ray-wave-center,0px) + 20px),calc(100% - 30px) calc(var(--ray-wave-center,0px) + 78px),calc(100% - 30px) 100%,100% 100%)}

/* RISE: optional bilingual product description in the detail modal. */
.modal-description { margin: 0 0 18px; }
.modal-description h3 { font-size: 11px; font-weight: 400; color: rgb(255 255 255 / .72); margin: 0 0 10px; }
.modal-description p { color: #fff; font-size: 13px; line-height: 2.1; margin: 0; overflow-wrap: anywhere; white-space: pre-line; text-shadow: 0 1px 8px rgb(0 0 0 / .25); }
