:root {
  --menu-ink: #17243a;
  --menu-muted: #617086;
  --menu-line: #dfe5ef;
  --menu-blue: #3269e8;
  --menu-blue-hover: #2056cd;
  --menu-blue-soft: rgba(50, 105, 232, .11);
  --menu-bg: #f5f7fb;
}

html { scroll-behavior: smooth; }
body {
  width: 100%;
  max-width: none !important;
  min-height: 100vh;
  margin: 0 auto !important;
  padding: 0 0 110px;
  display: block;
  overflow-x: hidden;
  background: var(--menu-bg);
  color: var(--menu-ink);
  font-family: Manrope, system-ui, sans-serif;
}

.hero-cover {
  max-width: 1440px;
  width: min(calc(100% - 48px), 1440px);
  height: clamp(190px, 24vw, 300px);
  margin: 24px auto 0 !important;
  border-radius: 20px;
  background: #dfe8f4;
}
.hero-cover .cover-img { height: 100%; object-fit: cover; }
.hero-cover .logo-badge {
  top: 50%;
  margin: 0;
  transform: translate(-50%, -50%);
  width: clamp(80px, 10vw, 120px);
  height: clamp(80px, 10vw, 120px);
}
.hero-cover .logo-badge img { max-height: 100%; object-fit: contain; }
.m-search {
  width: min(calc(100% - 48px), 1440px) !important;
  margin: 20px auto 0 !important;
  position: relative;
}
.m-in-search {
  width: 100%;
  min-height: 52px;
  padding: 12px 18px;
  border: 1px solid var(--menu-line);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 4px 16px rgba(20, 38, 78, .05);
  color: var(--menu-ink);
  font: inherit;
}
.m-in-search:focus {
  outline: 2px solid var(--menu-blue);
  border-color: var(--menu-blue);
  box-shadow: 0 4px 16px rgba(20, 38, 78, .05);
}
.main-title {
  width: min(calc(100% - 48px), 1440px);
  margin: 26px auto 4px !important;
  padding: 0;
  color: var(--menu-ink);
  text-align: left;
  font-size: clamp(22px, 2.4vw, 30px);
  font-weight: 750;
  letter-spacing: -.03em;
}
.products {
  width: min(calc(100% - 48px), 1440px);
  max-width: 1440px !important;
  margin: 18px auto 130px !important;
  padding: 0;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 20px;
  text-align: left;
  align-items: stretch;
}
.product {
  min-width: 0;
  display: flex !important;
  flex-direction: column;
  overflow: hidden;
  padding: 0 0 64px !important;
  border: 1px solid var(--menu-line);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 3px 14px rgba(28,46,84,.045);
  transition: border-color .18s ease, box-shadow .18s ease;
}
.product:hover {
  border-color: var(--menu-blue);
  box-shadow: 0 12px 30px rgba(28,46,84,.11);
  transform: none;
}
.product[style*="display: none"] { display: none !important; }
.product > img.main-image,
.product > img:not(.company-photo) {
  width: 100%;
  height: clamp(170px, 17vw, 250px);
  border-radius: 0;
  object-fit: cover;
  background: #edf1f6;
}
.product .min-height267 {
  height: clamp(170px, 17vw, 250px);
  min-height: 0;
  background: #edf1f6;
}
.product .min-height267 img { max-height: 100%; object-fit: contain; }
.product-name {
  margin: 15px 16px 7px;
  padding: 0;
  color: var(--menu-ink);
  font-size: 16px;
  font-weight: 750;
  line-height: 1.35;
}
.product-description {
  margin: 0 16px 10px;
  padding: 0;
  color: var(--menu-muted);
  font-size: 13px;
  line-height: 1.5;
  white-space: normal;
  overflow-wrap: anywhere;
}
.product-price {
  margin: auto 16px 12px;
  color: var(--menu-ink);
  font-size: 14px;
  font-weight: 650;
}
.product-price-is { font-weight: 800; }
.quantity-control {
  left: 16px !important;
  right: 16px;
  bottom: 14px;
  margin: 0;
}
.quantity-control button,
.oformit {
  min-height: 42px;
  border-radius: 10px;
  background: var(--menu-blue);
  color: #fff;
  font: inherit;
  font-size: 14px;
  font-weight: 700;
}
.quantity-control button { width: 100%; padding: 8px 12px; }
.quantity-control button:hover,
.oformit:hover { background: var(--menu-blue-hover); }
.oformit {
  z-index: 1300;
  width: min(calc(100% - 32px), 520px);
  max-width: 520px;
  left: 50%;
  bottom: 74px !important;
  transform: translateX(-50%);
  margin: 0;
  padding: 12px 16px;
  box-shadow: 0 8px 28px rgba(25,60,145,.25);
}
.horizontal-menu,
.cat-toggle-btn {
  z-index: 1200;
  position: fixed !important;
  top: auto !important;
  bottom: 0 !important;
  left: 0 !important;
  width: 100% !important;
  max-width: none !important;
  height: calc(64px + env(safe-area-inset-bottom)) !important;
  padding: 8px max(12px, calc((100vw - 1440px)/2)) calc(8px + env(safe-area-inset-bottom)) !important;
  flex-direction: row !important;
  overflow: hidden !important;
  border: 0;
  border-top: 1px solid var(--menu-line);
  border-radius: 0;
  background: rgba(255,255,255,.97);
  box-shadow: 0 -6px 24px rgba(30,47,78,.08);
  backdrop-filter: blur(14px);
}
.horizontal-menu .horizontal-menu-wrapper,
.horizontal-menu-scroll {
  display: flex !important;
  flex-direction: row !important;
  width: 100% !important;
  height: 100%;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  white-space: nowrap !important;
  align-items: center;
}
.horizontal-menu button {
  display: inline-flex !important;
  width: auto !important;
  min-height: 40px;
  margin: 0 5px 0 0 !important;
  padding: 8px 16px !important;
  align-items: center;
  border: 1px solid var(--menu-line) !important;
  border-radius: 9px !important;
  background: #fff;
  color: var(--menu-ink);
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.25;
  white-space: nowrap !important;
}
.horizontal-menu button:not(.horizontal-menu-more):is(.active, :hover, :focus-visible),
.cat-overlay-content button:is(.active, :hover, :focus-visible) {
  background: var(--menu-blue-soft) !important;
  border-color: var(--menu-blue) !important;
  color: var(--menu-blue-hover) !important;
}
.horizontal-menu button:focus-visible,
.cat-overlay-content button:focus-visible {
  outline: 2px solid var(--menu-blue);
  outline-offset: 2px;
}
.horizontal-menu button::after { display: none !important; }
.horizontal-menu .horizontal-menu-more {
  position: static;
  flex: 0 0 44px;
  height: 40px;
  margin-left: 6px !important;
  background: var(--menu-blue) !important;
  border: 0 !important;
  color: #fff !important;
}
.horizontal-menu .horizontal-menu-wrapper .horizontal-menu-more { display: grid !important; }
.categories-modal-menu {
  position: fixed; inset: 0; z-index: 2600; display: none;
  align-items: center; justify-content: center; padding: 24px;
  background: rgba(15, 25, 40, .52); backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px); box-sizing: border-box;
}
.categories-modal-menu.active { display: flex; animation: menu-category-backdrop .18s ease-out both; }
.categories-modal-menu-content {
  display: flex; flex-direction: column; min-height: 0;
  width: min(100%, 620px); max-height: calc(100vh - 48px); max-height: calc(100dvh - 48px);
  margin: 0; padding: 0; overflow: hidden; box-sizing: border-box;
  background: #fff; color: var(--menu-ink); border: 1px solid var(--menu-line);
  border-radius: 24px; box-shadow: 0 24px 80px rgba(15,25,40,.22);
  animation: menu-category-in .2s cubic-bezier(.2,.8,.2,1) both;
}
.categories-modal-menu-content:focus { outline: none; }
.categories-modal-menu-header {
  display: flex; align-items: center; justify-content: space-between; flex: 0 0 auto;
  gap: 16px; margin: 0; padding: 20px 22px 16px; border-bottom: 1px solid var(--menu-line);
}
.categories-modal-menu-title { margin: 0; color: var(--menu-ink); font-size: clamp(18px,3vw,22px); font-weight: 800; line-height: 1.35; }
.categories-modal-menu-close {
  display: grid; place-items: center; flex: 0 0 42px; width: 42px; height: 42px; min-height: 42px;
  margin: 0; padding: 0; border: 1px solid var(--menu-line); border-radius: 13px;
  background: var(--menu-bg); color: var(--menu-muted); cursor: pointer; box-shadow: none;
}
.categories-modal-menu-close svg { width: 20px; height: 20px; }
.categories-modal-menu-grid {
  display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-content: start;
  gap: 10px; padding: 18px 22px 22px; min-height: 0; overflow-y: auto;
  overscroll-behavior: contain; -webkit-overflow-scrolling: touch; scrollbar-width: thin;
  scrollbar-color: var(--menu-line) transparent;
}
.categories-modal-menu-grid button {
  min-width: 0; min-height: 54px; width: 100%; margin: 0; padding: 12px;
  border: 1px solid var(--menu-line); border-radius: 13px; background: var(--menu-bg);
  color: var(--menu-ink); box-shadow: none; cursor: pointer; font: inherit;
  font-size: 13px; font-weight: 700; line-height: 1.45; overflow-wrap: anywhere;
  text-transform: lowercase; transition: background .16s, border-color .16s, color .16s;
}
.categories-modal-menu-grid button::first-letter { text-transform: uppercase; }
.categories-modal-menu-grid button.active { background: var(--menu-blue); border-color: var(--menu-blue); color: #fff; }
@media (hover:hover) {
  .categories-modal-menu-close:hover, .categories-modal-menu-grid button:not(.active):hover {
    background: var(--menu-blue-soft); border-color: var(--menu-blue); color: var(--menu-blue-hover);
  }
}
.categories-modal-menu :is(button):focus-visible { outline: 2px solid var(--menu-blue); outline-offset: 2px; }
.categories-modal-menu.is-closing { animation: menu-category-backdrop .18s ease-in reverse both; pointer-events: none; }
.categories-modal-menu.is-closing .categories-modal-menu-content { animation: menu-category-in .18s ease-in reverse both; }
@keyframes menu-category-backdrop { from { opacity: 0; } to { opacity: 1; } }
@keyframes menu-category-in { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width:600px) {
  .categories-modal-menu { align-items: flex-end; padding: 0; }
  .categories-modal-menu-content { width: 100%; max-height: 86vh; max-height: 86dvh; border-radius: 24px 24px 0 0; border-bottom: 0; }
  .categories-modal-menu-header { padding: 18px 18px 14px; }
  .categories-modal-menu-grid { padding: 16px 18px max(22px,env(safe-area-inset-bottom)); gap: 8px; }
}
@media (prefers-reduced-motion:reduce) {
  .categories-modal-menu, .categories-modal-menu-content { animation: none !important; }
  .categories-modal-menu-grid button { transition: none; }
}
.cat-toggle-btn { justify-content: center; gap: 10px; color: var(--menu-ink); font-weight: 700; }
.backbtn {
  z-index: 1250;
  position: fixed;
  top: 38px;
  left: max(40px, calc((100vw - 1440px)/2 + 16px));
  margin-left: 0 !important;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: rgba(18,30,50,.55);
  color: #fff;
  display: grid !important;
  place-items: center;
}
.backbtns { color: #fff !important; }
.popup-overlay {
  z-index: 2100 !important;
  background: rgba(8, 18, 34, .58);
  backdrop-filter: blur(4px);
}
#order-popup {
  z-index: 2101 !important;
  left: 50% !important;
  width: min(calc(100vw - 32px), 560px);
  max-width: 560px;
  max-height: calc(100dvh - 32px);
  overflow: auto;
  box-sizing: border-box;
  padding: clamp(20px, 3vw, 28px);
  border: 1px solid var(--menu-line);
  border-radius: 18px;
  background: #fff;
  color: var(--menu-ink);
  box-shadow: 0 28px 80px rgba(8, 18, 34, .24);
  font: inherit;
}
#order-details h3 {
  margin: 0 0 18px;
  color: var(--menu-ink);
  font-size: 22px;
  line-height: 1.3;
  font-weight: 750;
}
#order-details p {
  margin: 0 0 12px;
  color: var(--menu-ink);
  font-size: 14px;
  line-height: 1.55;
}
#order-details .order-line { color: var(--menu-muted); }
#order-details .order-total {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  margin: 18px 0 0;
  padding: 16px 0 0;
  border-top: 1px solid var(--menu-line);
  font-size: 16px;
  font-weight: 700;
}
#order-details .order-confirmation { margin: 12px 0 0; color: var(--menu-muted); }
#order-popup .datetime-label {
  display: inline-flex;
  width: auto;
  min-height: 40px;
  margin: 12px 0 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--menu-blue-hover);
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  align-items: center;
  cursor: pointer;
}
#order-popup .datetime-label:hover { color: var(--menu-blue); text-decoration: underline; }
#order-popup .datetime-label:focus-visible,
#order-popup #datetime-input:focus-visible,
#order-popup .order-actions button:focus-visible {
  outline: 3px solid var(--menu-blue);
  outline-offset: 2px;
}
#order-popup #datetime-input {
  min-height: 48px;
  margin: 12px 0 0;
  padding: 10px 12px;
  border: 1px solid var(--menu-line);
  border-radius: 10px;
  background: var(--menu-bg);
  color: var(--menu-ink);
  font: inherit;
}
#order-popup .order-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 24px;
}
#order-popup .order-actions button:only-child { grid-column: 1 / -1; }
#order-popup .order-actions button {
  min-height: 48px;
  margin: 0;
  padding: 11px 14px;
  border-radius: 11px;
  font: inherit;
  font-size: 14px;
  font-weight: 750;
  transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}
#order-popup #cancel-order {
  border: 1px solid var(--menu-line);
  background: #fff;
  color: var(--menu-ink);
}
#order-popup #cancel-order:hover { background: var(--menu-bg); border-color: var(--menu-muted); }
#order-popup #confirm-order {
  border: 1px solid var(--menu-blue);
  background: var(--menu-blue);
  color: #fff;
}
#order-popup #confirm-order:hover { background: var(--menu-blue-hover); border-color: var(--menu-blue-hover); }
#order-popup #confirm-order:disabled { opacity: .65; cursor: wait; }
#order-popup .order-actions button:active { transform: translateY(1px); }
.menu-more {
  display: block;
  width: min(calc(100% - 48px), 320px);
  min-height: 48px;
  margin: -90px auto 130px;
  border: 1px solid var(--menu-blue);
  border-radius: 11px;
  background: var(--menu-blue-soft);
  color: var(--menu-blue);
  font: inherit;
  font-weight: 750;
  cursor: pointer;
}
.menu-more[hidden], .menu-photo-viewer[hidden] { display: none !important; }
.menu-more:hover { background: var(--menu-blue-soft); border-color: var(--menu-blue-hover); color: var(--menu-blue-hover); }
.menu-sentinel{height:1px;pointer-events:none}
.menu-scroll-top{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:calc(var(--menu-top-bottom,90px) + env(safe-area-inset-bottom));z-index:950;display:grid;place-items:center;width:46px;height:46px;border:1px solid var(--menu-blue);border-radius:14px;background:var(--menu-blue);color:#fff;box-shadow:0 6px 22px rgb(0 0 0 / .16);cursor:pointer;animation:qs-product-enter .2s ease-out}
.menu-scroll-top[hidden],.menu-sentinel[hidden]{display:none!important}
.menu-scroll-top:focus-visible{outline:3px solid var(--menu-blue);outline-offset:3px}
.product img.main-image { cursor: zoom-in; }
.menu-photo-viewer {
  position: fixed;
  inset: 0;
  z-index: 3000;
  display: grid;
  place-items: center;
  overflow: hidden;
  padding: 72px 16px 96px;
  background: rgba(5, 10, 20, .95);
  color: #fff;
  touch-action: none;
}
.menu-photo-viewer > img {
  display: block;
  max-width: min(100%, 1200px);
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  transform-origin: center center;
  transition: transform .12s ease;
  user-select: none;
}
.menu-photo-close,
.menu-photo-controls button {
  border: 1px solid rgba(255,255,255,.25);
  background: rgba(255,255,255,.12);
  color: #fff;
  cursor: pointer;
}
.menu-photo-close {
  position: absolute;
  top: max(16px, env(safe-area-inset-top));
  right: max(16px, env(safe-area-inset-right));
  width: 44px;
  height: 44px;
  border-radius: 12px;
  font-size: 30px;
  line-height: 1;
}
.menu-photo-controls {
  position: absolute;
  bottom: max(22px, env(safe-area-inset-bottom));
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 14px;
}
.menu-photo-controls button { width: 44px; height: 44px; border-radius: 10px; font-size: 24px; }
.menu-photo-close:hover, .menu-photo-controls button:hover { background: rgba(255,255,255,.25); }
.menu-photo-close:focus-visible, .menu-photo-controls button:focus-visible, .menu-more:focus-visible {
  outline: 3px solid #90b2ff;
  outline-offset: 2px;
}
.cat-overlay { background: var(--menu-bg); }
.cat-overlay-content { width: min(100%, 1100px); margin: 0 auto; }
.cat-overlay-content button { border: 1px solid var(--menu-line); background: #fff; color: var(--menu-ink); }

body.menu-style-2 .products { grid-template-columns: minmax(0,1fr) !important; max-width: 900px !important; }
body.menu-style-2 .product { padding: 18px 18px 65px !important; }
body.menu-style-2 .product img { display: none; }
.product.qs-product-enter {
  animation: qs-product-enter .3s cubic-bezier(.2,.75,.25,1) backwards;
  animation-delay: var(--qs-enter-delay, 0ms);
}
@keyframes qs-product-enter {
  from { opacity: 0; transform: translateY(12px) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-width: 1100px) {
  .products { grid-template-columns: repeat(3,minmax(0,1fr)) !important; gap: 16px; }
  .product > img.main-image, .product > img:not(.company-photo), .product .min-height267 { height: 190px; }
}
@media (max-width: 760px) {
  .hero-cover, .m-search, .main-title, .products { width: min(calc(100% - 28px), 680px) !important; }
  .hero-cover { margin-top: 14px !important; height: 190px; border-radius: 14px; }
  .products { grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 12px; }
  .product > img.main-image, .product > img:not(.company-photo), .product .min-height267 { height: 150px; }
  .product-name { margin: 12px 12px 6px; font-size: 14px; }
  .product-description { margin: 0 12px 8px; font-size: 12px; }
  .product-price { margin: auto 12px 10px; font-size: 12px; }
  .quantity-control { left: 12px !important; right: 12px; }
  .backbtn { top: 30px; left: 30px; }
}
@media (max-width: 600px) {
  #order-popup {
    left: 0 !important;
    right: 0;
    top: auto;
    bottom: 0;
    width: 100%;
    max-width: none;
    max-height: calc(100dvh - 20px);
    padding: 22px 18px calc(20px + env(safe-area-inset-bottom));
    border-radius: 20px 20px 0 0;
    transform: none;
    animation: menu-order-rise .22s ease-out;
  }
  #order-popup .order-actions { grid-template-columns: 1fr; }
  #order-popup #confirm-order { order: -1; }
}
@keyframes menu-order-rise {
  from { opacity: .6; transform: translateY(32px); }
  to { opacity: 1; transform: translateY(0); }
}
@media (max-width: 380px) {
  .products { grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 10px; }
  .product > img.main-image, .product > img:not(.company-photo), .product .min-height267 { height: 120px; }
  .product-name { margin:10px 8px 6px; font-size:12px; overflow-wrap:anywhere; }
  .product-description { margin:0 8px 8px; font-size:10px; overflow-wrap:anywhere; }
  .product-price { margin:auto 8px 10px; font-size:11px; overflow-wrap:anywhere; }
  .quantity-control { left:8px !important; right:8px; }
  .quantity-control button { font-size:11px; padding-inline:4px; }
}
@media (prefers-reduced-motion: reduce) {
  *, ::before, ::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-delay: 0ms !important; }
}
body.menu-categories-top .horizontal-menu{position:sticky!important;top:0;bottom:auto!important;left:auto;right:auto;width:min(calc(100% - 28px),1440px);margin:14px auto 0;border:1px solid var(--menu-line);border-radius:12px;background:#fff;padding:8px;box-shadow:0 3px 14px rgba(28,46,84,.06)}
body.menu-categories-top .oformit{bottom:calc(16px + env(safe-area-inset-bottom))!important}
