/* Mobile catalogue: dishes first, portion choices in a dedicated sheet. */
.featured-photo{position:relative}
.bestseller-badge{position:absolute;top:12px;right:12px;max-width:calc(100% - 24px);padding:8px 13px;border-radius:20px;background:#ffc667;color:#173e43;font-size:12px;font-weight:700;line-height:1.2;box-shadow:0 2px 10px #2c21151a}
.featured-description{color:#76817e;font-size:13px;line-height:1.5;margin:0 0 16px}
.example-photo{position:absolute;left:10px;bottom:10px;padding:5px 9px;border-radius:6px;background:#ffffffed;color:#3b5355;font-size:10px;line-height:1.3}
.price-pending{color:var(--teal);font-weight:600;font-size:16px;margin:14px 0}
.photo-credit{display:block;color:#7a8581;font-size:10px;line-height:1.5}.photo-credit a{color:inherit;text-underline-offset:2px}
#menu-screen{background:#fff;color:#202325}
#menu-screen h1,#menu-screen h2,#menu-screen h3,#cart h2,#cart h3,#product h2,#product h3{font-family:'Golos Text',Arial,sans-serif;letter-spacing:-.035em}
#menu-screen .menu-top{background:#fff;color:#202325;border-bottom:0;box-shadow:0 4px 15px #153b4006}
.menu-top>.section-wrap{max-width:850px}
#menu-screen .menu-heading{padding-block:20px 14px;gap:16px}
#menu-screen .menu-heading h1{font-size:36px;font-weight:750;line-height:1.15;margin-right:auto}
#menu-screen .back{font-size:0;color:var(--teal)}
#menu-screen .back:before{font-size:38px;margin-right:0}
#menu-screen #search-toggle{color:var(--teal);background:#f3f4f2;border-radius:50%;font-size:0;position:relative;flex-shrink:0}
#search-toggle:before{content:'';position:absolute;width:17px;height:17px;border:2px solid currentColor;border-radius:50%;top:9px;left:10px}
#search-toggle:after{content:'';position:absolute;width:10px;height:2px;background:currentColor;transform:rotate(45deg);left:26px;top:28px}
#menu-screen .scroll-row{gap:8px;scroll-padding-inline:16px}
#menu-screen .scroll-row button{font-size:14px;font-weight:600;border:0;border-radius:24px;background:#f3f3f1;color:#303538;min-height:44px;padding:11px 19px}
#menu-screen #group-tabs{padding-bottom:14px}
#menu-screen #group-tabs button.active{background:var(--teal);color:#fff}
#menu-screen .category-wrap{background:#fff;border-bottom:1px solid #f0f0ec}
#menu-screen #category-tabs{max-width:850px;padding-block:12px}
#menu-screen #category-tabs button{font-size:12px;padding:9px 15px;background:#f7f7f4;min-height:42px}
#menu-screen #category-tabs button.active{background:#ffe5b4;color:#3b382f}
#menu-screen .menu-body{max-width:850px;padding-top:24px;padding-bottom:115px}
#menu-screen .menu-section{margin-bottom:0}
#menu-screen .menu-section>h2{font-size:29px;line-height:1.2;margin:0 0 12px;font-weight:750}
#menu-screen .catalog-item{display:grid;grid-template-columns:180px minmax(0,1fr);gap:26px;padding:24px 0;align-items:center;border-bottom:1px solid #e9eae7}
.catalog-photo{display:block;border:0;padding:0;overflow:hidden;background:#f6f4ef;border-radius:24px;width:100%;aspect-ratio:1;color:var(--teal)}
#menu-screen .catalog-photo img,#cart .catalog-photo img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}
.catalog-placeholder{height:100%;display:grid;place-items:center;background:linear-gradient(145deg,#edf4f0,#f7eddb)}
.catalog-placeholder svg{width:52%;height:52%;opacity:.55}
.item-info{min-width:0}
#menu-screen .item-name{font-size:21px;font-weight:700;line-height:1.25;margin:0 0 8px}
.product-name{display:block;background:none;border:0;padding:0;text-align:left;font:inherit;color:inherit;letter-spacing:inherit;line-height:inherit}
.product-name:hover{color:var(--teal)}
#menu-screen .item-description{font-size:14px;line-height:1.5;color:#7b8181;margin:0 0 12px}
#menu-screen .item-variant{font-size:13px;color:#7b8181;margin:0 0 8px}
#menu-screen .item-purchase{display:flex;align-items:center;gap:12px;justify-content:space-between;flex-wrap:wrap;margin:0;grid-column:auto}
#menu-screen .price{font-size:21px;font-weight:750;letter-spacing:-.035em;color:#242729;line-height:1.3}
.choose-product{min-height:42px;border:0;border-radius:22px;padding:10px 26px;background:#deeeeb;color:var(--deep);font-size:14px;font-weight:650;line-height:1.2}
.choose-product:hover{background:#c8e4df}.choose-product:active{transform:scale(.98)}
.menu-hint{padding:17px 20px;margin:24px 0 0;border-radius:18px;background:#fff0cf;color:#5c4c2f;font-size:13px;text-align:center}
#search-box{padding-top:2px}#menu-screen #clear-search{color:var(--teal)}
.empty-result{padding:25px 0;color:var(--muted);font-size:15px}
#order-bar{border:0;background:linear-gradient(transparent,#fff 25%);padding-top:18px;padding-inline:16px}
#order-bar .button{border-radius:24px;min-height:56px;padding:14px 22px;font-size:16px;box-shadow:0 5px 24px #16474f1a;gap:14px}
#order-count{text-align:left}#order-total{white-space:nowrap}
/* A real product sheet, with original menu variants and prices. */
#product{width:min(560px,calc(100% - 24px));padding:0;background:white;border-radius:24px;max-height:92dvh;overscroll-behavior:contain}
.close-product{position:absolute;top:12px;right:12px;z-index:2;min-width:44px;height:44px;border:0;border-radius:50%;background:#ffffffed;color:var(--deep);font-size:30px;box-shadow:0 2px 14px #0001}
#product-photo{aspect-ratio:1.2;background:#f4f2ed;overflow:hidden}
#product-photo img{display:block;width:100%;height:100%;object-fit:cover}
.product-placeholder{height:100%;display:grid;place-items:center;color:#8aada8;background:#edf4f1}.product-placeholder svg{width:38%;height:38%}
.product-info{padding:24px 24px 12px}
#product-title{font-size:29px;font-weight:750;line-height:1.15;margin:0 0 14px}
#product-description{font-size:14px;line-height:1.6;color:#7b8181;margin:0 0 24px}
#product-size-label{font-size:17px;font-weight:700;margin:16px 0 14px}
#product-options-list{display:flex;flex-wrap:wrap;gap:6px}
.product-option{flex:1;min-width:85px;border:1px solid #e7e9e5;border-radius:14px;background:#f6f6f3;color:#252c2d;padding:12px 8px;min-height:75px;display:grid;align-content:center;gap:7px;font-size:13px;font-weight:600}
.product-option small{font-size:12px;font-weight:500;white-space:nowrap;opacity:.8}
.product-option.selected{background:var(--teal);border-color:var(--teal);color:white}
.product-option:disabled{opacity:.4;cursor:default}
.product-bottom{position:sticky;bottom:0;background:#fff;padding:18px 24px max(20px,env(safe-area-inset-bottom));margin-top:10px;border-top:1px solid #f1f1ec}
#product-add{width:100%;border-radius:16px;min-height:54px;line-height:1.4;font-size:15px;text-align:center}
#product-add:disabled{background:#a1a9a6;cursor:default}
/* Cart photography and controls match the catalogue. */
#cart{background:white;border-radius:24px;padding:24px;max-height:92dvh;overscroll-behavior:contain}
#cart .dialog-heading{position:sticky;top:-24px;z-index:2;background:#fff;padding-block:8px 14px;border-bottom:1px solid #eef0ec}
#cart .dialog-heading h2{font-size:29px;font-weight:750}
#cart-content .cart-item{display:grid;grid-template-columns:130px minmax(0,1fr);gap:22px;align-items:center;padding:24px 0}
#cart .catalog-photo{width:100%;aspect-ratio:1;grid-row:auto;border-radius:20px}
#cart .item-name{font-size:19px;line-height:1.3;margin:0 0 7px}
#cart .item-variant{font-size:13px;color:#8a9090;margin-bottom:9px}
#cart .price{font-size:21px;font-weight:750;display:block;margin-bottom:12px;white-space:nowrap}
#cart .stepper{display:inline-flex;background:#f3f4f1;border-color:#e2e5e0;padding:0;border-radius:12px;overflow:hidden;gap:0}
#cart .qty-button{box-shadow:none;border:0;border-radius:0;background:transparent;color:var(--teal)}
#cart .quantity{background:white;min-width:38px;min-height:44px;display:grid;place-items:center}
.order-comment-box{margin-top:20px;background:#f5f5f2;border-radius:18px;padding:18px}
.order-comment-box label{display:block;font-size:16px;font-weight:650;margin-bottom:12px}
#order-comment{width:100%;resize:vertical;min-height:70px;max-height:180px;border:1px solid #dfe3df;border-radius:12px;padding:12px;font:14px/1.5 'Golos Text',Arial,sans-serif;color:var(--ink);background:#fff}
#order-comment::placeholder{color:#929b9c}
#cart .cart-bottom>p:first-child{align-items:baseline;margin:24px 0 16px;font-size:23px;font-weight:700;gap:15px}
#cart #send-order{width:100%;border-radius:18px;min-height:54px;line-height:1.4;text-align:center;font-size:15px}
#cart .cart-note{line-height:1.6}
#cart h2,#cart h3,#product h2,#product h3{color:#242729}
:is(.choose-product,.product-option,.catalog-photo,.product-name,#product-add,#close-product):focus-visible{outline:3px solid #e5af4e;outline-offset:3px}
@media(max-width:760px){
  #menu-screen .menu-heading{padding-block:16px 12px}
  #menu-screen .menu-heading h1{font-size:32px}
  #menu-screen .menu-body{padding-inline:16px;padding-top:22px}
  #menu-screen .menu-section>h2{font-size:26px}
  #menu-screen .catalog-item{grid-template-columns:132px minmax(0,1fr);gap:16px;padding:19px 0;align-items:center}
  #menu-screen .catalog-photo{height:auto;grid-row:auto;border-radius:20px}
  #menu-screen .item-name{font-size:17px;line-height:1.25;margin-bottom:7px}
  #menu-screen .item-description{font-size:12px;line-height:1.4;margin-bottom:10px}
  #menu-screen .price{font-size:18px}
  #menu-screen .item-purchase{gap:8px}
  .choose-product{padding:10px 19px;font-size:13px;min-height:40px}
  #menu-screen .item-purchase:has(.choose-product){align-items:flex-start;flex-direction:column}
  #menu-screen .scroll-row button{font-size:12px;padding-inline:16px}
  #menu-screen #category-tabs button{font-size:12px;padding-inline:14px}
  #menu-screen #group-tabs{gap:6px}
  #product{width:100%;max-width:100%;max-height:100dvh;border-radius:22px 22px 0 0;margin:auto 0 0}
  #product-photo{aspect-ratio:1.2;max-height:360px}
  .product-info{padding:22px 20px 12px}
  #product-title{font-size:28px}
  .product-bottom{padding-inline:20px}
  #cart{width:100%;max-width:100%;height:100dvh;max-height:100dvh;border-radius:0;margin:0;padding:20px}
  #cart .dialog-heading{top:-20px;padding-block:4px 14px}
  #cart-content .cart-item{grid-template-columns:115px minmax(0,1fr);gap:18px;padding:22px 0}
  #cart .item-name{font-size:17px}
  #cart .price{font-size:21px;margin-bottom:10px}
}
@media(max-width:350px){
  #menu-screen .catalog-item{grid-template-columns:110px minmax(0,1fr);gap:12px}
  #menu-screen .item-name{font-size:16px}
  #menu-screen .scroll-row button{padding-inline:12px}
  #cart-content .cart-item{grid-template-columns:90px minmax(0,1fr);gap:14px}
  #order-bar .button{font-size:14px}
}
