/* Zawqio customer experience v3.8 - mobile first, all public menu themes */
:root{--z-safe-bottom:max(14px,env(safe-area-inset-bottom));--z-safe-top:max(12px,env(safe-area-inset-top));--z-tap:48px}
html{overflow-x:hidden;-webkit-text-size-adjust:100%;scroll-padding-top:92px}
body{overflow-x:hidden;min-width:320px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body.menu-locked{overflow:hidden;touch-action:none}
.menu-page,.menu-page *{min-width:0}
.menu-page{width:100%;overflow:clip;padding-bottom:calc(104px + env(safe-area-inset-bottom))}
img{height:auto}
button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid color-mix(in srgb,var(--brand) 35%,white);outline-offset:3px}
.dish-card{touch-action:manipulation;transition:transform .16s ease,box-shadow .16s ease}
.dish-card:active{transform:scale(.988)}
.cat-chip,.round-action,.plus-button,.market-action{min-height:44px;min-width:44px}
.category-nav{overscroll-behavior-inline:contain;scroll-snap-type:x proximity;padding-bottom:4px}
.category-nav>*{scroll-snap-align:start}
.search-field{position:relative;min-height:52px}
.search-field input{font-size:16px}
.search-field input::-webkit-search-cancel-button{cursor:pointer}
.price{font-variant-numeric:tabular-nums;white-space:nowrap}

/* shared product readability */
.dish-card h3{overflow-wrap:anywhere}
.dish-card p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.menu-empty-image{min-height:100%;width:100%}

/* modal: thumb-friendly bottom sheet on phones, centered dialog on desktop */
.modal{padding:0;overscroll-behavior:contain}
.modal-sheet{overscroll-behavior:contain;scrollbar-width:thin}
.modal-close{z-index:3;min-width:44px;min-height:44px}
.modal-note span{display:block;margin-bottom:7px;font-weight:750}
.modal-note input{width:100%;min-height:50px;border:1px solid #d7e2e2;border-radius:14px;padding:12px 14px;font-size:16px;background:#fff;color:var(--ink)}
.modal-order-row{z-index:4}
.add-to-cart,.checkout-button,.checkout-submit{min-height:52px;border:0;border-radius:15px;background:var(--brand);color:#fff;font-weight:850;padding:13px 18px;cursor:pointer}
.add-to-cart:disabled,.checkout-button:disabled,.checkout-submit:disabled{opacity:.58;cursor:not-allowed}
.option-row{min-height:50px;gap:14px;cursor:pointer}
.option-row input{width:20px;height:20px;flex:0 0 auto}

/* cart + checkout */
.cart-fab{bottom:var(--z-safe-bottom);inset-inline-end:max(14px,env(safe-area-inset-right));min-height:54px;max-width:calc(100vw - 28px);white-space:nowrap}
.cart-panel,.checkout-card{overscroll-behavior:contain}
.cart-panel>header,.checkout-card>header{position:sticky;top:0;z-index:4;background:#fff}
.cart-panel>header button,.checkout-card>header button{width:44px;height:44px;border:0;border-radius:13px;background:#f2f5f5;font-size:1.5rem}
.cart-items{overflow:auto;overscroll-behavior:contain}
.cart-line{align-items:start}
.cart-line-image img{width:100%;height:100%;object-fit:cover}
.cart-line-copy small{display:block;color:#687477;margin-top:3px;overflow-wrap:anywhere}
.cart-item-note{margin-top:6px!important;padding:7px 9px;border-radius:9px;background:#f5f7f7;color:#4a5659!important;font-size:.76rem}
.cart-summary{padding-bottom:calc(20px + env(safe-area-inset-bottom))}
.checkout-modal{padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom))}
.checkout-card{width:min(720px,100%);max-height:calc(100dvh - 24px);overflow:auto;border-radius:24px;background:#fff;margin:auto}
.checkout-grid input,.checkout-grid textarea{font-size:16px}
.checkout-error{scroll-margin-top:100px}

/* restaurant elegant */
.elegant-hero{min-height:min(760px,88dvh);background-position:center;background-size:cover}
.elegant-topbar,.elegant-identity,.elegant-main{width:min(1180px,100%);margin-inline:auto}
.elegant-main{padding-inline:clamp(14px,4vw,48px)}
.elegant-item-image img,.signature-image img{width:100%;height:100%;object-fit:cover}

/* cafe */
.cafe-hero{min-height:auto}
.cafe-hero-image{background-position:center;background-size:cover}
.cafe-main{width:100%}

/* dessert */
.dessert-hero-image{background-position:center;background-size:cover}
.dessert-main{width:100%}

/* market */
.market-header{padding-top:calc(14px + env(safe-area-inset-top))}
.market-product,.market-deal-card{height:100%}
.market-product-image img,.market-deal-image img{width:100%;height:100%;object-fit:cover}

/* seafood */
.seafood-main{width:100%}
.seafood-hero{background-position:center;background-size:cover}

@media(min-width:681px){
  .modal{align-items:center;padding:28px}
  .modal-sheet{border-radius:28px;max-height:min(88dvh,820px)}
  .checkout-modal{display:grid;place-items:center}
  .cart-panel{width:min(460px,90vw)}
}

@media(max-width:900px){
  .menu-page{padding-bottom:calc(112px + env(safe-area-inset-bottom))}
  .elegant-hero{min-height:640px}
  .elegant-main,.cafe-main,.dessert-main,.market-main,.seafood-main{padding-inline:18px}
  .section-heading{align-items:flex-start}
}

@media(max-width:680px){
  html{scroll-padding-top:76px}
  .menu-page{padding-bottom:calc(104px + env(safe-area-inset-bottom))}
  .round-action{width:46px;height:46px}
  .category-nav{margin-inline:-14px;padding-inline:14px}
  .cat-chip{padding:10px 15px}
  .section-heading{gap:10px}
  .section-heading>span{display:none}
  .section-heading h2{font-size:clamp(1.45rem,7vw,2rem)}

  .modal{align-items:flex-end}
  .modal-sheet{width:100%;max-height:94dvh;border-radius:24px 24px 0 0;padding-bottom:env(safe-area-inset-bottom)}
  .modal-image{height:min(38dvh,260px)}
  .modal-body{padding:18px 16px 0}
  .modal-body h2{font-size:1.35rem;line-height:1.3}
  .modal-order-row{position:sticky;bottom:0;margin-inline:-16px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);border-top:1px solid #e8eeee;backdrop-filter:blur(12px)}
  .qty-control button{width:44px;height:50px}
  .add-to-cart{min-height:50px;font-size:.92rem;padding-inline:12px}

  .cart-fab{inset-inline:12px;bottom:var(--z-safe-bottom);justify-content:center;border-radius:16px;box-shadow:0 12px 32px rgba(7,45,52,.26)}
  .cart-panel{width:100%;height:100dvh}
  .cart-panel>header{padding:18px 16px}
  .cart-items{padding-inline:14px}
  .cart-summary{padding-inline:16px}
  .checkout-card{max-height:100dvh;height:100dvh;border-radius:0;margin:0}
  .checkout-card>header{padding:18px 16px}
  .checkout-card form{padding:16px}
  .order-type-grid{grid-template-columns:1fr!important}
  .order-type-grid label span{min-height:50px;display:flex;align-items:center}
  .checkout-grid{grid-template-columns:1fr!important}
  .checkout-grid .full{grid-column:auto!important}
  .checkout-submit{position:sticky;bottom:0;width:100%;box-shadow:0 -10px 20px rgba(255,255,255,.92)}

  /* restaurant elegant */
  .elegant-hero{min-height:560px;padding:calc(14px + env(safe-area-inset-top)) 14px 30px;background-position:center}
  .elegant-topbar{align-items:center}
  .elegant-status{max-width:58%;font-size:.72rem;text-align:end}
  .elegant-identity{padding-top:70px}
  .elegant-identity h1{font-size:clamp(2.25rem,12vw,3.9rem);line-height:1.02}
  .elegant-contact{display:grid;grid-template-columns:1fr;gap:9px}
  .elegant-contact a{width:100%;justify-content:center;min-height:48px}
  .elegant-main{padding-inline:14px}
  .elegant-search-row{grid-template-columns:1fr!important}
  .signature-grid{grid-template-columns:1fr!important}
  .signature-card{min-width:0}
  .signature-image{height:220px}
  .elegant-item{grid-template-columns:88px 1fr auto!important;gap:12px!important;padding:10px!important;min-height:108px}
  .elegant-item-image{width:88px!important;height:88px!important;border-radius:15px!important}
  .elegant-item-title{display:block!important}
  .elegant-item-title h3{font-size:1rem;margin-bottom:5px!important}
  .elegant-item-copy p{font-size:.78rem;margin:5px 0!important;-webkit-line-clamp:2}
  .elegant-meta{display:none!important}
  .plus-button{align-self:center}
  .elegant-footer-cta{padding:28px 20px!important}

  /* cafe */
  .cafe-hero{display:flex!important;flex-direction:column}
  .cafe-hero-image{order:1;min-height:42dvh!important}
  .cafe-hero-copy{order:2;padding:78px 20px 36px!important;min-height:auto}
  .cafe-top-actions{top:16px;left:16px;right:16px}
  .cafe-logo{width:68px;height:68px;border-radius:21px;margin-bottom:20px}
  .cafe-hero h1{font-size:clamp(2.5rem,13vw,4rem)}
  .cafe-info-row{display:grid;gap:7px}
  .cafe-cta-row{display:grid;grid-template-columns:1fr}
  .cafe-cta-row a{text-align:center;min-height:48px}
  .cafe-main{padding-inline:14px}
  .cafe-story-strip{grid-template-columns:1fr!important}
  .cafe-story-strip div{padding:16px}
  .cafe-featured-scroll{margin-inline:-14px;padding-inline:14px;scroll-snap-type:x mandatory}
  .cafe-feature-card{min-width:82vw;scroll-snap-align:center}
  .cafe-item,.cafe-item.reverse{grid-template-columns:112px 1fr!important;min-height:130px;border-radius:20px}
  .cafe-item-image{height:100%!important;min-height:130px;order:0!important}
  .cafe-item-copy{padding:16px!important;order:1!important}
  .cafe-item-head{display:block}
  .cafe-item-head h3{font-size:1.03rem}
  .cafe-item-copy p{-webkit-line-clamp:2;font-size:.78rem;margin:7px 0}
  .cafe-item-tags{display:none}
  .cafe-item-copy button{margin-top:9px}

  /* dessert */
  .dessert-hero{display:flex!important;flex-direction:column;min-height:auto}
  .dessert-hero-image{order:1;height:44dvh;min-height:340px;border-radius:0 0 38px 38px!important}
  .dessert-hero-copy{order:2;padding:38px 18px 42px!important}
  .dessert-topbar{top:calc(14px + env(safe-area-inset-top));left:14px;right:14px}
  .dessert-sticker{width:88px;height:88px;right:18px;bottom:18px;font-size:.76rem}
  .dessert-hero h1{font-size:clamp(2.8rem,15vw,4.5rem)}
  .dessert-actions{display:grid;grid-template-columns:1fr}
  .dessert-actions a{text-align:center;min-height:48px}
  .dessert-main{padding-inline:14px}
  .dessert-intro{margin-top:14px;display:grid;padding:18px}
  .dessert-intro>div:last-child{text-align:start}
  .dessert-category-bubbles{margin-inline:-14px;padding-inline:14px}
  .dessert-bubble>span{width:66px;height:66px;border-radius:21px}
  .dessert-masonry{display:flex!important;overflow:auto;gap:12px;margin-inline:-14px;padding-inline:14px;scroll-snap-type:x mandatory}
  .dessert-feature-card,.dessert-feature-card.hero-card{min-width:82vw;height:310px;grid-row:auto;scroll-snap-align:center}
  .dessert-item{grid-template-columns:96px 1fr auto!important;gap:12px!important;padding:10px!important}
  .dessert-item-image{width:96px!important;height:96px!important}
  .dessert-item-copy p{-webkit-line-clamp:2}

  /* supermarket */
  .market-promo{font-size:.7rem}
  .market-header{position:sticky!important;padding:12px 14px}
  .market-brand-row{gap:10px}
  .market-logo{width:46px;height:46px}
  .market-brand h1{font-size:1.05rem}
  .market-brand p{display:none}
  .market-search-row{margin-top:12px;grid-template-columns:1fr!important}
  .market-order{display:none}
  .market-hero{min-height:390px!important;padding:48px 18px;background-position:center}
  .market-hero h2{font-size:clamp(2.2rem,12vw,3.7rem)}
  .market-main{padding-inline:12px}
  .market-benefits{display:flex!important;overflow:auto;margin-inline:-12px;padding-inline:12px;background:transparent;border:0;box-shadow:none;gap:9px}
  .market-benefits div{min-width:180px;background:#fff;border:1px solid var(--line)!important;border-radius:14px;padding:14px}
  .market-category-grid{display:flex!important;overflow:auto;gap:9px;margin-inline:-12px;padding-inline:12px}
  .market-category-card{min-width:128px!important;padding:12px}
  .market-category-card>span{width:72px;height:72px}
  .market-product-grid,.market-deal-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
  .market-product,.market-deal-card{border-radius:16px}
  .market-product-image,.market-deal-image{height:42vw!important;max-height:185px;min-height:140px}
  .market-product-copy,.market-deal-copy{padding:11px!important}
  .market-product-copy h3,.market-deal-copy h3{font-size:.92rem;line-height:1.35}
  .market-product-copy p,.market-deal-copy p{display:none!important}
  .market-product-bottom{align-items:center}
  .market-product-bottom button{width:38px;height:38px}
  .market-contact-strip{padding:24px 18px!important}

  /* seafood */
  .seafood-main{padding-inline:14px}
  .seafood-hero{min-height:520px;padding:calc(70px + env(safe-area-inset-top)) 18px 42px}
  .seafood-hero h1{font-size:clamp(2.7rem,13vw,4.3rem)}
  .seafood-feature-grid{display:flex!important;overflow:auto;margin-inline:-14px;padding-inline:14px;scroll-snap-type:x mandatory}
  .seafood-feature-card{min-width:82vw;scroll-snap-align:center}
  .seafood-category-banner{min-height:220px!important;padding:22px!important}
  .seafood-category-banner h2{font-size:2rem!important}
  .seafood-item{grid-template-columns:78px 1fr!important;gap:11px!important;padding:10px!important}
  .seafood-item-image{width:78px!important;height:78px!important}
  .seafood-item-copy p{-webkit-line-clamp:2}
  .seafood-price{grid-column:2!important;display:flex!important;align-items:center;gap:5px;border:0!important;padding:0!important;text-align:start!important}
  .seafood-price button{margin-inline-start:auto!important}
}

@media(max-width:380px){
  .market-product-grid,.market-deal-grid{grid-template-columns:1fr!important}
  .market-product-image,.market-deal-image{height:220px!important;max-height:none}
  .elegant-item{grid-template-columns:76px 1fr auto!important}
  .elegant-item-image{width:76px!important;height:76px!important}
  .cafe-item,.cafe-item.reverse{grid-template-columns:96px 1fr!important}
  .modal-order-row{display:grid;grid-template-columns:auto 1fr}
  .add-to-cart{font-size:.84rem}
}

@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.001ms!important;transition-duration:.001ms!important}}
