:root{--ink:#0b1426;--muted:#687790;--gold:#ce9837;--line:#e9edf1;--cream:#fff5d9;--gold-gradient:linear-gradient(120deg,#fbe6ae 0%,#f6d174 45%,#d5a03d 100%);font-family:Manrope,system-ui,-apple-system,sans-serif;color:var(--ink);background:#f7f9fb;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 20% 0,#fff 0,transparent 35%),#f7f9fb}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer;border:0;color:inherit;background:none}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:disabled{cursor:not-allowed;opacity:.4}img{display:block;max-width:100%}svg{width:24px;height:24px;flex-shrink:0}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #c4973f;outline-offset:4px}h1,h2,h3,p{margin:0}h1,h2{font-size:clamp(24px,3.6vw,32px);line-height:1.15;font-weight:800;letter-spacing:-1.1px}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}[hidden]{display:none!important}
.preview-note{display:flex;align-items:center;justify-content:center;gap:22px;padding:8px 14px;background:#f0e9da;font-size:11px;color:#745e36}.preview-note>a{font-weight:800;text-decoration:underline;text-underline-offset:3px}.page-shell{max-width:1000px;padding:0 28px;margin:auto}.masthead{position:sticky;top:0;z-index:80;display:flex;align-items:center;gap:24px;padding:16px 28px;margin:0 -28px;background:rgba(247,249,251,.95);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid rgba(16,26,43,.06);box-shadow:0 4px 20px rgba(16,26,43,.03);transition:box-shadow .2s ease}.circle-button{width:58px;height:58px;display:grid;place-items:center;border:1px solid #edf0f2;border-radius:50%;background:#fff;box-shadow:0 5px 14px #1725420a;flex-shrink:0}.circle-button svg{width:27px;height:27px}.brand{display:flex;align-items:center;gap:9px;flex-shrink:0}.brand img{width:74px;height:74px;border-radius:50%;mix-blend-mode:multiply}.brand>span{font-family:Georgia,serif;font-size:29px;line-height:.94;letter-spacing:-1px;font-weight:700;color:#a87520}.search{display:flex;align-items:center;gap:14px;flex:1;min-width:0;background:linear-gradient(135deg,#f0f3f7,#f3f5f7);border-radius:100px;padding:0 23px;height:62px}.search input{font-size:16px;min-width:0;width:100%;border:0;outline:none;background:transparent;color:var(--ink)}.search input::placeholder{color:#7d87a0}.header-cart{position:relative;display:grid;place-items:center;width:70px;height:70px;flex-shrink:0;color:#e8be66;border-radius:50%;background:radial-gradient(circle at 35% 20%,#23354c,#081324 70%);box-shadow:inset 0 1px 3px #8fa2bf55,0 7px 16px #0b152528}.header-cart svg{width:34px;height:34px}.cart-counter,
.info-strip{display:grid;grid-template-columns:1fr 1fr 1.2fr;padding:12px 16px;border-radius:24px;background:linear-gradient(120deg,#f0f3f6,#f6f8fa);gap:18px}.info-strip>a,.info-strip>div,.contact-grid>a,.contact-grid>div{display:flex;align-items:center;gap:14px;font-size:14px;line-height:1.35;color:#485a77}.info-strip>*>span:last-child{flex:1}.info-strip>*+*{border-left:1px solid #e1e6ed;padding-left:18px}.info-icon{display:grid;place-items:center;width:45px;height:45px;flex-shrink:0;border-radius:50%;background:#fff;box-shadow:0 1px 0 #fff}.info-icon svg{width:30px;height:30px;color:#b47d18;stroke-width:1.65}.info-strip strong{font-weight:600;color:#1b2334}.info-strip small,.contact-grid small{display:block;color:#75839b}.food-categories{display:flex;justify-content:space-between;gap:16px;overflow-x:auto;scrollbar-width:none;padding:22px 0 24px}.food-categories::-webkit-scrollbar{display:none}.category{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:75px;flex-shrink:0;font-size:15px;padding:0}.category-picture{display:grid;place-items:center;width:83px;height:83px;border-radius:50%;background:linear-gradient(135deg,#fff,#f0f4f8);border:2px solid #fff;box-shadow:0 0 0 1px #e7ebf0,0 4px 13px #17254205}.category-picture svg{width:36px !important;height:36px !important;filter:drop-shadow(0 2px 1px #a8771722);transition:transform .3s ease}.category-label{padding:4px 13px;border-radius:40px;line-height:1.1;white-space:nowrap}.category[aria-pressed=true] .category-picture{background:linear-gradient(130deg,#293649,#060f1d);box-shadow:0 7px 20px #101c3730}.category[aria-pressed=true] .category-label{background:#172237;color:#fff}.category:hover svg{transform:translateY(-3px) rotate(-3deg)}
.section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:4px 0 17px}.section-heading>a,.section-heading>button{display:flex;align-items:center;gap:12px;font-size:14px;color:#5a6a86;white-space:nowrap}.section-heading>*>span{font-size:26px;color:#14223c}.product-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.product-card{position:relative;background:#fff;border:1px solid #ecf0f3;border-radius:22px;overflow:hidden;box-shadow:0 3px 7px #1e304508;display:flex;flex-direction:column;transition:transform .25s ease,box-shadow .25s ease}.product-photo{display:block;position:relative;aspect-ratio:2.12;overflow:hidden;background:#f0f2f4;border-radius:21px 21px 15px 15px}.product-photo img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}.badge{position:absolute;top:15px;left:15px;background:var(--gold-gradient);border-radius:40px;padding:7px 15px;color:#332912;text-transform:uppercase;font-size:12px;font-weight:600;box-shadow:0 3px 8px #39260d11}.favorite{position:absolute;top:9px;right:9px;display:grid;place-items:center;width:44px;height:44px;background:#10141b40;backdrop-filter:blur(4px);border-radius:50%;color:white}.favorite svg{width:29px;height:29px;stroke-width:1.8}.favorite[aria-pressed=true]{color:#f5cf75;background:#1d2435b3}.favorite[aria-pressed=true] svg{fill:#f5cf75}.product-info{padding:10px 18px 15px;display:flex;flex-direction:column;flex:1}.product-info h3{font-size:clamp(17px,2.6vw,22px);letter-spacing:-.6px;line-height:1.25;font-weight:800}.product-info p{font-size:15px;line-height:1.28;color:#758096;margin:5px 0 12px}.product-info>p:empty{display:none!important}.product-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-top:auto}.product-price{font-size:25px;font-weight:800;letter-spacing:-.7px;white-space:nowrap}.product-price small{display:block;font-size:11px;font-weight:500;letter-spacing:0;color:#8b96a7;margin-bottom:5px}.gold-button{display:flex;align-items:center;justify-content:center;gap:10px;padding:14px 20px;border-radius:21px;background:var(--gold-gradient);box-shadow:inset 0 1px 0 #fff8,0 6px 13px #a27a3026;font-size:16px;font-weight:800;white-space:nowrap;min-height:46px;transition:filter .2s ease,transform .2s ease}.gold-button:active{transform:scale(.96)}.gold-button svg{width:25px;height:25px}.demo-note{margin:12px 0 18px;font-size:11px;color:#8a94a4}.empty-result{grid-column:1/-1;text-align:center;padding:50px 20px;background:#fff;border-radius:20px;color:#718096}
.set-banner{position:relative;isolation:isolate;overflow:hidden;min-height:220px;border-radius:24px;background:#071629;color:white;padding:24px 30px;margin-bottom:25px;display:flex;align-items:center}.set-banner::after{content:"";position:absolute;z-index:-1;inset:-80% 0 -40% -15%;border:1px solid #d3a64d55;border-radius:50%;transform:rotate(-20deg);pointer-events:none}.set-copy{position:relative;z-index:2}.set-copy h2{color:#f2d184;font-size:30px;margin-bottom:6px}.eyebrow{font-size:9px;color:#d4b471;font-weight:700;letter-spacing:2px;margin-bottom:9px}.set-copy>p:not(.eyebrow){color:#bdc7d7;font-size:16px}.set-copy>strong{display:block;font-size:25px;margin:9px 0 11px;letter-spacing:1px}.set-copy .gold-button{width:max-content;padding:10px 20px}.set-photo{position:absolute;z-index:-1;right:0;top:0;width:57%;height:100%;mask-image:linear-gradient(to right,transparent,#000 38%)}.set-photo img{width:100%;height:100%;object-fit:cover}.set-seal{position:absolute;right:16px;top:16px;background:var(--gold-gradient);color:#171718;border-radius:50%;width:84px;height:84px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;font-size:10px;font-weight:700;transform:rotate(8deg);box-shadow:0 6px 20px #0002}.set-seal strong{font-family:Georgia,serif;font-size:19px;margin-top:5px}.review-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.review-card{padding:20px 24px;background:#fff;border-radius:24px;box-shadow:0 3px 18px #1a314606;display:flex;flex-direction:column}.stars{font-size:23px;color:#e8b441;letter-spacing:2px}.stars span{opacity:.35}.review-card>p{font-size:15px;line-height:1.45;color:#63718c;margin:5px 0 15px}.review-author{display:flex;gap:12px;align-items:center;margin-top:auto}.avatar{display:grid;place-items:center;width:42px;height:42px;background:#f0f3f7;border-radius:50%;font-size:18px;color:#687a93;flex-shrink:0}.review-author strong{display:block;font-size:13px}.review-author small{display:block;font-size:12px;color:#91a0b4;margin-top:2px}.contacts{margin-top:27px;position:relative}.contacts h2{font-size:27px;margin-bottom:18px}.contact-grid{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:15px}.contact-grid .info-icon{width:42px;height:42px}.delivery-pills{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:17px}.delivery-pills>a{display:flex;align-items:center;gap:18px;padding:12px 24px;border:1px solid #f1e6d1;border-radius:50px;background:linear-gradient(135deg,#faf7ef,#f3f0e9);font-size:13px;line-height:1.3}.delivery-pills svg{color:#c18b25;width:33px;height:33px}.preview-footer{display:flex;justify-content:space-between;gap:12px;margin:24px 0 130px;color:#8692a6;font-size:11px}.preview-footer a{text-decoration:underline}
.dock-thumbnail img{border-radius:50%;width:58px;height:58px;object-fit:cover}.dock-description strong{font-size:16px;display:block}.dock-description small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#aeb8c9;font-size:12px;margin-top:5px}.dock-cta>span{font-size:25px;line-height:1}
:root {
  --menu-width: min(76vw, 320px);
  --masthead-h: 96px;
  --catalog-nav-h: 70px;
}
@media (max-width: 740px) {
  :root {
    --masthead-h: 68px;
    --catalog-nav-h: 60px;
  }
}
html {
  scroll-behavior: smooth;
}
html, body {
  overflow-x: clip;
  position: relative;
  width: 100%;
}
.navigation-dialog {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  width: var(--menu-width);
  max-width: 340px;
  height: 100vh;
  height: 100dvh;
  margin: 0;
  padding: 0;
  border: none;
  background: #ffffff;
  color: #1b2334;
  display: flex;
  flex-direction: column;
  z-index: 999;
  visibility: hidden;
  opacity: 0.85;
  transform: translate3d(-10px, 0, 0);
  pointer-events: none;
  transition: transform 280ms cubic-bezier(0.4, 0, 0.2, 1),
              opacity 280ms cubic-bezier(0.4, 0, 0.2, 1),
              visibility 280ms;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}
body.menu-open .navigation-dialog {
  visibility: visible;
  opacity: 1;
  transform: translate3d(0, 0, 0);
  pointer-events: auto !important;
  z-index: 999 !important;
  background: #ffffff !important;
  transition: transform 320ms cubic-bezier(0.22, 1, 0.36, 1),
              opacity 320ms ease;
}
.main-panel {
  position: relative;
  z-index: 1;
  width: 100%;
  min-height: 100vh;
  min-height: 100dvh;
  background: #f7f9fb;
  transform: none;
  transition: transform 280ms cubic-bezier(0.4, 0, 0.2, 1),
              border-radius 280ms cubic-bezier(0.4, 0, 0.2, 1),
              box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);
}
body.menu-open .main-panel {
  transform: translate3d(var(--menu-width), 0, 0);
  border-radius: 14px 0 0 14px;
  box-shadow: -8px 0 28px rgba(10, 20, 35, 0.12);
  transition: transform 320ms cubic-bezier(0.22, 1, 0.36, 1),
              border-radius 320ms cubic-bezier(0.22, 1, 0.36, 1),
              box-shadow 320ms cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
}
.panel-scrim {
  position: absolute;
  inset: 0;
  z-index: 850;
  background: rgba(10, 20, 35, 0.08);
  border-radius: inherit;
  opacity: 0;
  pointer-events: none;
  cursor: pointer;
  touch-action: none;
  -webkit-tap-highlight-color: transparent;
  transition: opacity 280ms ease;
}
body.menu-open .panel-scrim {
  opacity: 1;
  pointer-events: auto;
  transition: opacity 320ms ease;
}
.drawer-backdrop {
  display: none !important;
}

/* Push-menu: меню и главный экран двигаются синхронно, без затемнения контента. */
.navigation-dialog{
  opacity:1;
  transform:translate3d(-100%,0,0);
  transition:transform 280ms cubic-bezier(.22,1,.36,1),visibility 280ms;
}
body.menu-open .navigation-dialog{
  transform:translate3d(0,0,0);
  transition:transform 280ms cubic-bezier(.22,1,.36,1),visibility 280ms;
}
.main-panel{transition:transform 280ms cubic-bezier(.22,1,.36,1),border-radius 280ms cubic-bezier(.22,1,.36,1),box-shadow 280ms cubic-bezier(.22,1,.36,1)}
body.menu-open .main-panel{transition:transform 280ms cubic-bezier(.22,1,.36,1),border-radius 280ms cubic-bezier(.22,1,.36,1),box-shadow 280ms cubic-bezier(.22,1,.36,1)}
.panel-scrim{background:transparent;touch-action:none;transition:none}
body.menu-open .panel-scrim{opacity:1;transition:none}
@media (prefers-reduced-motion: reduce) {
  .main-panel,
  .navigation-dialog,
  .panel-scrim,
  .burger-lines > span {
    transition-duration: 0.01ms !important;
  }
}
.navigation-dialog > div:first-child {
  padding: 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid #e9edf1;
  background: #fff;
  position: sticky;
  top: 0;
  z-index: 2;
}
.navigation-dialog > div:first-child strong {
  font-size: 20px;
  font-weight: 800;
  color: #0b1426;
}
.navigation-dialog nav {
  display: flex;
  flex-direction: column;
  padding: 16px;
  overflow-y: auto;
  flex-grow: 1;
}
.navigation-dialog nav a, .navigation-dialog nav button {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px;
  font-size: 16px;
  font-weight: 600;
  color: #1b2334;
  text-decoration: none;
  border: none;
  background: none;
  text-align: left;
  border-radius: 16px;
  transition: background 0.2s, color 0.2s;
  cursor: pointer;
}
.navigation-dialog nav a:hover, .navigation-dialog nav button:hover {
  background: #f7f9fb;
  color: #ce9837;
}
.navigation-dialog nav a i, .navigation-dialog nav button i {
  color: #ce9837;
  width: 24px;
  height: 24px;
}
.nav-section-title {
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  color: #94a3b8;
  letter-spacing: 0.05em;
  margin: 24px 0 8px 16px;
}
.navigation-dialog::backdrop{background:#10182777;backdrop-filter:blur(5px)}.navigation-dialog>.menu-head{display:flex;justify-content:space-between;gap:15px;align-items:center}.navigation-dialog>.menu-body{display:block}.navigation-dialog .circle-button{width:40px;height:40px}.navigation-dialog nav{display:grid;margin-top:20px}.navigation-dialog nav>*{padding:13px 0;border-bottom:1px solid #eee;text-align:left;font-size:16px}.toast{position:fixed;z-index:50;bottom:125px;left:50%;transform:translate(-50%,10px);padding:12px 20px;border-radius:50px;background:#162338;color:#fff;font-size:13px;box-shadow:0 6px 18px #10172533;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;max-width:90%;text-align:center}.toast.is-visible{opacity:1;transform:translate(-50%,0)}.site-closed-notice{padding:12px;background:#172237;color:white;display:grid;text-align:center;gap:4px;font-size:13px}.site-closed-notice strong{color:#f2d184}.site-closed [data-add]{pointer-events:none;opacity:.4}
@media(hover:hover){.product-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px #1e304512}.product-card:hover .product-photo img{transform:scale(1.035)}.gold-button:hover{filter:brightness(1.045)}}.brand{display:flex;align-items:center;justify-content:center;gap:9px;flex-shrink:0;margin:0 6px}
.brand img{width:auto;height:48px !important;max-height:48px;object-fit:contain;mix-blend-mode:multiply}
.brand>span{font-family:Georgia,serif;font-size:29px;line-height:.94;letter-spacing:-1px;font-weight:700;color:#a87520}
.search{display:flex;align-items:center;gap:14px;flex:1;min-width:0;background:linear-gradient(135deg,#f0f3f7,#f3f5f7);border-radius:100px;padding:0 23px;height:62px}
.search input{font-size:16px;min-width:0;width:100%;border:0;outline:none;background:transparent;color:var(--ink)}
.search input::placeholder{color:#7d87a0}
.header-cart{position:relative;display:grid;place-items:center;width:70px;height:70px;flex-shrink:0;color:#e8be66;border-radius:50%;background:radial-gradient(circle at 35% 20%,#23354c,#081324 70%);box-shadow:inset 0 1px 3px #8fa2bf55,0 7px 16px #0b152528}
.header-cart svg{width:34px;height:34px}
@media(max-width:740px){.page-shell{padding:0 16px}.masthead{gap:10px;flex-wrap:nowrap;padding:12px 14px;margin:0 -16px}.circle-button{width:40px;height:40px;flex-shrink:0}.brand{margin:0 4px;gap:6px;flex-shrink:0}.brand img{width:auto;height:36px !important;max-height:36px}.brand>span{font-size:13px;line-height:1.05;letter-spacing:-.4px}.header-cart{display:none}.search{order:unset;flex:1;min-width:0;height:42px;padding:0 10px;gap:6px}.search input{font-size:16px!important;padding-right:0}.search input::placeholder{font-size:13px;letter-spacing:-.2px}.search svg{width:17px;height:17px}.info-strip{gap:8px;padding:10px 12px;grid-template-columns:1fr 1fr}.info-strip>*+*{padding-left:6px}.info-strip>a:last-child{grid-column:1/-1;border:0;border-top:1px solid #e6eaf0;padding:8px 0 0}.info-strip>a:last-child small{display:inline;margin-left:5px}.info-strip>*{font-size:12px;gap:7px}.info-icon{width:33px;height:33px}.info-icon svg{width:24px;height:24px}.food-categories{gap:15px;justify-content:flex-start;padding:18px 0}.category{min-width:62px;font-size:12px}.category-picture{width:62px;height:62px}.category-picture svg{width:46px;height:46px}.category-label{padding:4px 9px}.product-grid{gap:12px}.product-photo{aspect-ratio:1.25}.product-info{padding:10px}.product-info h3{font-size:15px;letter-spacing:-.45px}.product-info p{font-size:12px;line-height:1.35;margin:6px 0 10px}.product-bottom{flex-wrap:wrap;gap:8px}.product-price{font-size:20px}.product-price small{font-size:10px}.product-bottom .gold-button{width:100%;padding:10px;min-height:42px;font-size:13px;border-radius:14px;gap:7px}.product-bottom .gold-button svg{width:20px;height:20px}.badge{left:8px;top:10px;font-size:9px;padding:5px 9px}.favorite{width:34px;height:34px;right:5px;top:5px}.favorite svg{width:23px;height:23px}.section-heading{gap:10px}.section-heading h1,.section-heading h2{font-size:23px;letter-spacing:-.8px}.section-heading>a,.section-heading>button{font-size:11px;gap:6px}.set-banner{padding:24px 19px;min-height:230px}.set-copy h2{font-size:24px;max-width:210px}.set-copy>p:not(.eyebrow){font-size:13px;max-width:170px}.set-copy .gold-button{font-size:13px}.set-photo{width:62%;opacity:.8}.set-seal{width:57px;height:57px;font-size:7px;right:10px;top:16px}.set-seal strong{font-size:15px}.review-grid{gap:12px}.review-card{padding:14px}.review-card>p{font-size:12px}.stars{font-size:17px}.review-author{gap:7px;flex-wrap:wrap}.review-author strong{font-size:11px}.review-author small{font-size:10px}.avatar{width:30px;height:30px;font-size:14px}.contact-grid{grid-template-columns:1fr 1fr;gap:14px 8px}.contact-grid>a,.contact-grid>div{font-size:12px;gap:7px}.contact-grid>div:last-child{grid-column:1/-1}.contacts h2{font-size:24px}.delivery-pills{gap:10px}.delivery-pills>a{padding:12px;font-size:11px;gap:8px;border-radius:20px}.delivery-pills svg{width:24px;height:24px}.dock-description strong{font-size:12px}.dock-description small{font-size:10px;max-width:140px}.preview-footer{margin-bottom:115px}.preview-note{font-size:9px;gap:10px}.toast{bottom:100px}}
@media(max-width:414px){.page-shell{padding:0 10px}.masthead{gap:7px;padding:10px 10px;margin:0 -10px}.brand{margin:0 2px;gap:4px}.brand img{width:auto;height:34px !important;max-height:34px}.brand>span{font-size:12px;letter-spacing:-.4px}.circle-button{width:38px;height:38px}.search{height:38px;padding:0 8px;gap:5px}.search input{font-size:16px!important}.search input::placeholder{font-size:12px;letter-spacing:-.3px}.product-grid{gap:9px}.product-info h3{font-size:14px}.dock-description small{display:none}.review-grid{grid-template-columns:1fr}.section-heading h2{font-size:20px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.category-picture i { width: 32px; height: 32px; color: #ce9837; margin: auto; }

/* === Рекламные промо-баннеры в стиле Суши Wok === */
.novinki-wrap {
  position: relative;
  margin: 6px 0 14px;
}
.novinki-slider {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  gap: 12px;
  margin-bottom: 0;
  padding: 4px 0 8px;
}
.novinki-slider::-webkit-scrollbar { display: none; }

.novinki-banner, .promo-banner {
  scroll-snap-align: center;
  flex: 0 0 calc(100% - 36px);
  max-width: 580px;
  height: 165px;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-radius: 24px;
  color: #fff;
  padding: 16px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  user-select: none;
  -webkit-user-select: none;
  box-shadow: 0 8px 24px rgba(10, 20, 35, 0.12);
  transition: transform 0.22s cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 0.22s ease;
  text-decoration: none;
}
.novinki-banner:active, .promo-banner:active {
  transform: scale(0.98);
}
@media (min-width: 741px) {
  .novinki-slider {
    gap: 16px;
    padding: 6px 4px 10px;
  }
  .novinki-banner, .promo-banner {
    flex: 0 0 580px;
    height: 185px;
    padding: 20px 28px;
    border-radius: 26px;
  }
  .novinki-banner:hover, .promo-banner:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(10, 20, 35, 0.18);
  }
}
@media (min-width: 1024px) {
  .novinki-banner, .promo-banner {
    flex: 0 0 620px;
    height: 195px;
    padding: 22px 32px;
  }
}

/* Цветовые темы промо-баннеров */
.banner-red {
  background: radial-gradient(circle at 82% 50%, #d8232a 0%, #b8141d 55%, #8a0b12 100%);
}
.banner-gold {
  background: radial-gradient(circle at 82% 50%, #2a2015 0%, #17120c 60%, #0a0806 100%);
  border: 1px solid rgba(212, 162, 64, 0.35);
}
.banner-orange {
  background: radial-gradient(circle at 82% 50%, #f9841f 0%, #e65c00 55%, #b83d00 100%);
}
.banner-navy {
  background: radial-gradient(circle at 82% 50%, #1e3a66 0%, #10223f 55%, #07101f 100%);
}

/* Декоративные световые акценты */
.promo-banner .decor-circle {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}
.banner-red .c1 { width: 110px; height: 110px; background: rgba(255, 100, 110, 0.25); filter: blur(20px); top: -20px; left: -10px; }
.banner-red .c2 { width: 150px; height: 150px; background: rgba(140, 0, 10, 0.45); filter: blur(30px); bottom: -40px; left: 35%; }
.banner-gold .glow { width: 180px; height: 180px; background: radial-gradient(circle, rgba(212, 162, 64, 0.3) 0%, transparent 70%); top: -40px; right: 20px; filter: blur(16px); }

/* Контент баннера слева */
.promo-banner .banner-content {
  position: relative;
  z-index: 2;
  flex: 1 1 auto;
  min-width: 0;
}
.promo-banner .banner-heading-wrap {
  margin-bottom: 10px;
}
.promo-banner .banner-title-line1 {
  font-size: 21px;
  font-weight: 850;
  line-height: 1.15;
  letter-spacing: -0.4px;
  color: #ffffff;
  white-space: nowrap;
}
.promo-banner .banner-title-line2 {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 21px;
  font-weight: 850;
  line-height: 1.15;
  letter-spacing: -0.4px;
  color: #ffffff;
  margin-top: 2px;
  white-space: nowrap;
}

/* Капсульный бейдж акции */
.promo-banner .pill-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 7px;
  font-size: 11px;
  font-weight: 850;
  line-height: 1.2;
  letter-spacing: -0.2px;
  vertical-align: middle;
  text-transform: uppercase;
}
.pill-badge-red {
  background: #ffffff;
  color: #d8232a;
}
.pill-badge-gold {
  background: linear-gradient(135deg, #fbe6ae, #d5a03d);
  color: #241a08;
}
.pill-badge-white {
  background: #ffffff;
  color: #e65c00;
}

/* Промокод / купон в пунктирной рамке */
.promo-banner .promo-code-box {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.promo-banner .coupon-dashed {
  border: 1px dashed rgba(255, 255, 255, 0.9);
  border-radius: 8px;
  padding: 3px 8px;
  display: inline-flex;
  flex-direction: column;
  background: rgba(255, 255, 255, 0.06);
  cursor: pointer;
  transition: transform 0.15s ease, background 0.15s ease;
  white-space: nowrap;
  flex-shrink: 0;
}
.promo-banner .coupon-dashed:hover {
  background: rgba(255, 255, 255, 0.15);
}
.promo-banner .coupon-dashed:active {
  transform: scale(0.95);
}
.promo-banner .coupon-label {
  font-size: 8px;
  font-weight: 600;
  opacity: 0.9;
  line-height: 1;
  margin-bottom: 2px;
  text-transform: uppercase;
  white-space: nowrap;
}
.promo-banner .coupon-code {
  font-size: 12.5px;
  font-weight: 900;
  letter-spacing: 0.8px;
  line-height: 1.1;
  color: #ffffff;
  white-space: nowrap;
}
.promo-banner .coupon-sub {
  font-size: 11px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
  line-height: 1.2;
}

/* Медиа справа (круглая тарелка / фигурный стикер) */
.promo-banner .banner-media {
  position: relative;
  z-index: 1;
  flex: 0 0 auto;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  margin-left: 4px;
  margin-right: -8px;
}
.promo-banner .banner-plate-wrapper {
  position: relative;
  width: 124px;
  height: 124px;
  border-radius: 50%;
  overflow: hidden;
  box-shadow: 0 8px 20px rgba(0,0,0,0.32);
  background: #fff;
  border: 3px solid rgba(255, 255, 255, 0.25);
  transition: transform 0.3s ease;
}
.promo-banner:hover .banner-plate-wrapper {
  transform: scale(1.04);
}
.promo-banner .banner-plate-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.promo-banner .banner-sticker-wrapper {
  position: relative;
  width: 126px;
  height: 120px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1);
  filter: drop-shadow(0 8px 18px rgba(0, 0, 0, 0.45));
}
.promo-banner:hover .banner-sticker-wrapper {
  transform: scale(1.06) rotate(-2deg);
}
.promo-banner .banner-sticker-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

@media (min-width: 741px) {
  .promo-banner .banner-title-line1,
  .promo-banner .banner-title-line2 {
    font-size: 24px;
  }
  .promo-banner .pill-badge {
    font-size: 12px;
    padding: 3px 9px;
  }
  .promo-banner .banner-media {
    margin-left: 8px;
    margin-right: 0;
  }
  .promo-banner .banner-plate-wrapper {
    width: 140px;
    height: 140px;
  }
  .promo-banner .banner-sticker-wrapper {
    width: 152px;
    height: 142px;
  }
  .promo-banner .coupon-code {
    font-size: 14px;
  }
  .promo-banner .coupon-sub {
    font-size: 12px;
  }
}
@media (max-width: 380px) {
  .promo-banner .banner-title-line1,
  .promo-banner .banner-title-line2 {
    font-size: 18px;
  }
  .promo-banner .banner-plate-wrapper {
    width: 105px;
    height: 105px;
  }
  .promo-banner .banner-sticker-wrapper {
    width: 106px;
    height: 100px;
  }
  .promo-banner .coupon-sub {
    font-size: 10px;
  }
}
@media(max-width:740px){
  .menu-main-heading {
    margin: 8px 0 10px !important;
  }
  .menu-main-heading h1 {
    font-size: 22px !important;
    letter-spacing: -.6px;
  }
}
/* === Аудит 2026-09-07: восстановленное и новое === */
.cart-counter{position:absolute;top:-6px;right:-6px;min-width:26px;height:26px;padding:0 7px;display:grid;place-items:center;border-radius:999px;background:linear-gradient(120deg,#fbe6ae,#d5a03d);color:#241a08;font-size:13px;font-weight:800;box-shadow:0 3px 10px #a27a3044;border:2px solid #fff}
.cart-counter.bump{animation:counterBump .35s cubic-bezier(.2,1.6,.4,1)}
@keyframes counterBump{0%{transform:scale(.4)}60%{transform:scale(1.25)}100%{transform:scale(1)}}
.category-picture{position:relative;overflow:hidden;background:#fff}
.category-picture img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* Пока медальон на месте — дублирующая иконка скрыта (до и после замены <i> на <svg>) */
.category-picture img+i,.category-picture img+svg{display:none!important}
/* Фолбэк-иконка: строго по центру, единый относительный размер */
.category-picture>i,.category-picture>svg{position:absolute!important;inset:0!important;margin:auto!important;width:44%!important;height:44%!important;color:#b47d18}
#mobile-categories-nav button .category-picture{width:40px;height:40px;flex-shrink:0}
#mobile-categories-nav .category-picture--dish{background:transparent;border:0;border-radius:0;box-shadow:none;overflow:visible}
#mobile-categories-nav .category-picture--dish::after{content:none}
#mobile-categories-nav .category-picture--dish .category-dish-photo{object-fit:contain;filter:drop-shadow(0 2px 2px rgba(23,34,55,.16))}
#mobile-categories-nav .category-picture--dish img:not(.category-dish-photo){display:none!important}
#mobile-categories-nav button[aria-pressed="true"]{background:#172237;color:#fff}
.product-card{opacity:0}
.product-card.card-in{opacity:1;animation:cardIn .5s cubic-bezier(.2,.7,.2,1) both}
@keyframes cardIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.gold-button.added-pop{animation:btnPop .3s cubic-bezier(.2,1.6,.4,1)}
@keyframes btnPop{0%{transform:scale(1)}45%{transform:scale(.9)}100%{transform:scale(1)}}
.gold-animated{background-size:200% 100%;animation:goldSheen 3.2s linear infinite}
@keyframes goldSheen{from{background-position:200% 0}to{background-position:-200% 0}}
a.novinki-banner{color:inherit;text-decoration:none}
.novinki-banner .gold-button{pointer-events:none}
/* Корзина: страница оформления */
.cart-page{display:flex;flex-direction:column;gap:16px;padding-bottom:90px !important}
.cart-card{background:#fff;border-radius:24px;padding:24px;box-shadow:0 4px 20px rgba(0,0,0,.03)}
.cart-card h1{font-size:26px;font-weight:800;color:#101a2b;margin:0}
.cart-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}
.cart-clear{display:inline-flex;align-items:center;background:transparent!important;color:#dc2626!important;border:0!important;padding:0;font-weight:600;font-size:13.5px;cursor:pointer;transition:color .2s ease}
.cart-clear:hover{background:transparent!important;color:#b91c1c!important}
.cart-clear svg,.cart-clear img,.cart-clear i{display:none!important}
.cart-rows{display:flex;flex-direction:column;gap:12px}
.cart-row{display:flex;gap:14px;align-items:center;padding:14px;border:1px solid #eef1f4;border-radius:20px;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.02);animation:cardIn .35s ease both}
.cart-row img.dish{width:68px;height:68px;border-radius:16px;object-fit:cover;flex-shrink:0;background:#f1f5f9}
.cart-row .grow{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.cart-row .nm{font-weight:800;color:#101a2b;font-size:14.5px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cart-row .sub-info{font-size:12px;color:#64748b;font-weight:500}
.cart-row .row-total{color:#b47d18;font-weight:800;font-size:14px;margin-top:2px}
.cart-item-badge-note {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  color: #b47d18;
  background: rgba(215, 162, 61, 0.12);
  border: 1px solid rgba(215, 162, 61, 0.28);
  border-radius: 6px;
  padding: 1px 7px;
  margin-left: 6px;
  vertical-align: middle;
}

/* Вертикальный счетчик количества */
.qty-vpill{display:flex;flex-direction:column;align-items:center;justify-content:space-between;background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:3px;width:34px;height:78px;flex-shrink:0}
.qty-vpill button{width:28px;height:24px;border-radius:8px;border:0;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.08);font-size:15px;font-weight:800;color:#101a2b;cursor:pointer;display:grid;place-items:center;transition:background .15s}
.qty-vpill button:active{background:#e2e8f0}
.qty-vpill span{font-weight:800;font-size:13.5px;color:#101a2b}

.cart-remove{width:32px;height:32px;border-radius:50%;border:0;background:#f8fafc;color:#94a3b8;display:grid;place-items:center;cursor:pointer;flex-shrink:0;transition:all .15s ease}
.cart-remove svg{width:16px;height:16px}
.cart-remove:hover{background:#fef2f2;color:#ef4444}

/* Выбор типа заказа (Доставка / Самовывоз) */
.seg{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:#f1f5f9;border-radius:999px;padding:4px;margin-bottom:14px}
.seg label{position:relative;cursor:pointer}
.seg input{position:absolute;opacity:0;inset:0}
.seg span{display:flex;align-items:center;justify-content:center;gap:6px;padding:11px 8px;border-radius:999px;font-size:13.5px;font-weight:800;color:#64748b;transition:background .2s,color .2s,box-shadow .2s}
.seg input:checked+span{background:#fff;color:#101a2b;box-shadow:0 2px 8px #0b15251f}
.seg input:focus-visible+span{outline:3px solid #c4973f;outline-offset:2px}

/* Поля формы */
.field{width:100%;padding:14px 16px;border-radius:14px;border:1px solid #e2e8f0;font-family:inherit;font-size:15px;outline:none;background:#fff;color:var(--ink);margin-bottom:10px;transition:border-color .2s,box-shadow .2s}
.field:focus{border-color:#c4973f;box-shadow:0 0 0 3px #c4973f22}
textarea.field{resize:vertical;min-height:64px}

/* Переключатель "Как можно скорее" (Switch) */
.asap-toggle-wrap{display:flex;align-items:center;justify-content:space-between;background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;padding:12px 16px;margin-bottom:12px}
.asap-info{display:flex;flex-direction:column;gap:2px}
.asap-title{font-weight:700;font-size:14px;color:#101a2b;display:flex;align-items:center;gap:6px}
.asap-title svg{width:16px;height:16px;color:#c4973f}
.asap-sub{font-size:12px;color:#64748b}
.switch{position:relative;display:inline-block;width:48px;height:26px;flex-shrink:0}
.switch input{opacity:0;width:0;height:0}
.slider{position:absolute;cursor:pointer;inset:0;background-color:#cbd5e1;transition:.3s;border-radius:26px}
.slider:before{position:absolute;content:"";height:20px;width:20px;left:3px;bottom:3px;background-color:#fff;transition:.3s;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.2)}
input:checked+.slider{background:linear-gradient(135deg,#d7a23d,#926012)}
input:checked+.slider:before{transform:translateX(22px)}

/* Интерактивный выбор способа оплаты */
.payment-methods-wrap{margin-bottom:14px}
.payment-title{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:#475569;margin-bottom:8px}
.payment-title svg{width:16px;height:16px;color:#c4973f}
.payment-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.pay-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:12px 8px;border-radius:14px;border:1.5px solid #e2e8f0;background:#fff;cursor:pointer;font-size:12.5px;font-weight:700;color:#64748b;transition:all .2s ease;text-align:center}
.pay-card svg{width:20px;height:20px;color:#94a3b8;transition:color .2s}
.pay-card.active{border-color:#d7a23d;background:#fdfaf3;color:#101a2b;box-shadow:0 2px 8px rgba(215,162,61,.15)}
.pay-card.active svg{color:#d7a23d}

/* Баннер уведомлений */
.notice{display:flex;align-items:center;gap:10px;padding:14px 16px;border-radius:16px;background:#f8fafc;font-size:13.5px;color:#475569;border:1px solid #eef1f4}
.notice.good{background:#f0fdf4;border-color:#bbf7d0;color:#15803d;font-weight:700}
.notice.gold{background:#fffbeb;border-color:#fde68a;color:#b45309;font-weight:600}
.notice-icon{width:20px;height:20px;flex-shrink:0}

/* Итоги */
.totals{margin-top:18px;padding-top:18px;border-top:1px solid #f1f5f9;display:grid;gap:8px}
.totals .row{display:flex;justify-content:space-between;font-size:14px;color:#64748b}
.totals .row strong{color:#101a2b}
.totals .grand{display:flex;justify-content:space-between;font-size:20px;font-weight:800;color:#101a2b;margin:8px 0 16px}

/* Главная кнопка отправики */
.order-submit{width:100%;padding:16px;border-radius:999px;border:0;background:linear-gradient(120deg,#fbe6ae,#f6d174 45%,#d5a03d);color:#241a08;font-weight:800;font-size:16px;cursor:pointer;box-shadow:inset 0 1px 0 #fff8,0 6px 13px #a27a3026;transition:transform .15s ease}
.order-submit:active{transform:scale(.98)}
.order-submit:disabled{opacity:.6;cursor:wait}

/* Закрепленный bottom-bar для мгновенного оформления */
.sticky-cart-bar{position:fixed;bottom:0;left:0;right:0;background:rgba(255,255,255,.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid rgba(226,232,240,.8);padding:12px 20px calc(12px + env(safe-area-inset-bottom,0px));display:flex;align-items:center;justify-content:space-between;gap:16px;z-index:99;box-shadow:0 -4px 20px rgba(0,0,0,.06);transition:transform .3s ease,opacity .3s ease}
.sticky-cart-info{display:flex;flex-direction:column}
.sticky-cart-info .lbl{font-size:11px;font-weight:700;text-transform:uppercase;color:#94a3b8;letter-spacing:.5px}
.sticky-cart-info strong{font-size:20px;font-weight:800;color:#101a2b}
.sticky-order-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 22px;border-radius:999px;border:0;background:linear-gradient(120deg,#fbe6ae,#f6d174 45%,#d5a03d);color:#241a08;font-weight:800;font-size:15px;cursor:pointer;box-shadow:inset 0 1px 0 #fff8,0 4px 14px rgba(162,122,48,.25)}
.sticky-order-btn svg{width:18px;height:18px}
.sticky-order-btn:active{transform:scale(.97)}

/* Разделы формы оформления */
.form-section { margin-bottom: 20px; }
.checkout-steps{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0 16px}
.checkout-step{display:flex;align-items:center;justify-content:center;gap:8px;padding:11px 14px;border-radius:13px;border:none;background:#f1f5f9;color:#718096;font-family:inherit;font-size:13px;font-weight:800;cursor:pointer;transition:all .15s ease}
.checkout-step:active{transform:scale(.98)}
.checkout-step b{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#dce3eb;color:#667085;font-size:11px}
.checkout-step.is-active{background:#fff5d8;color:#765716;box-shadow:inset 0 0 0 1px #eed38c}
.checkout-step.is-active b,.checkout-step.is-done b{background:linear-gradient(135deg,#fbe6ae,#d5a03d);color:#4e3508}
.checkout-stage[hidden]{display:none!important}
.checkout-stage.is-active{animation:checkout-stage-in .25s ease both}
@keyframes checkout-stage-in{from{opacity:0;transform:translateX(8px)}to{opacity:1;transform:none}}
.checkout-next{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:2px}
.checkout-next svg{width:19px;height:19px}
.contact-stage-note{display:flex;align-items:center;gap:10px;padding:13px 14px;margin:4px 0 18px;border-radius:15px;background:#f4f7fa;color:#64748b;font-size:13px;line-height:1.35}
.contact-stage-note svg{width:20px;height:20px;flex:0 0 auto;color:#b08025}
.checkout-stage-actions{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:stretch}
.checkout-stage-actions .order-submit{margin:0}
.checkout-back{display:inline-flex;align-items:center;gap:5px;padding:0 15px;border:1px solid #e2e8f0;border-radius:999px;background:#fff;color:#526174;font:inherit;font-size:13px;font-weight:800;cursor:pointer}
.checkout-back svg{width:17px;height:17px}
.form-section-title { font-size: 15px; font-weight: 800; color: #101a2b; margin-bottom: 12px; display: flex; align-items: center; gap: 8px; }
.form-section-title svg { width: 18px; height: 18px; color: #c4973f; }

/* Поля с иконками внутри */
.field-icon-wrap { position: relative; width: 100%; margin-bottom: 10px; }
.field-icon-wrap .field-icon { position: absolute; left: 16px; top: 16px; width: 18px; height: 18px; color: #94a3b8; pointer-events: none; transition: color .2s; }
.field-icon-wrap .field-icon.textarea-icon { top: 16px; }
.field.with-icon { padding-left: 46px; }
.field-icon-wrap:focus-within .field-icon { color: #c4973f; }

/* Динамическое поле сдачи (Плавный slide-open) */
.change-field-wrap {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  margin-top: 0;
  transition: max-height 0.35s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease, margin-top 0.3s ease;
  pointer-events: none;
}
.change-field-wrap.open {
  max-height: 120px;
  opacity: 1;
  margin-top: 10px;
  pointer-events: auto;
}
.change-chips { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 6px; }
.change-chips .chip {
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  border-radius: 999px;
  padding: 6px 12px;
  font-size: 12px;
  font-weight: 700;
  color: #475569;
  cursor: pointer;
  transition: all .15s ease;
}
.change-chips .chip:hover, .change-chips .chip:active {
  background: #fde68a;
  border-color: #d7a23d;
  color: #101a2b;
}

/* Кнопка-триггер шторок */
.sheet-trigger-btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 14px 16px;
  border-radius: 16px;
  border: 1.5px solid #e2e8f0;
  background: #ffffff;
  color: #101a2b;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  transition: border-color .2s, background .2s;
  margin-top: 10px;
}
.sheet-trigger-btn svg { width: 18px; height: 18px; color: #c4973f; }
.sheet-trigger-btn .arrow { color: #94a3b8; }
.sheet-trigger-btn:active { background: #f8fafc; border-color: #c4973f; }

/* Bottom Sheet (Всплывающие шторки снизу) */
.bottom-sheet {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  pointer-events: none;
  visibility: hidden;
  transition: visibility 0.3s;
}
.bottom-sheet.open {
  pointer-events: auto;
  visibility: visible;
}

.sheet-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.5);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  opacity: 0;
  transition: opacity 0.3s ease;
}
.bottom-sheet.open .sheet-backdrop { opacity: 1; }

.sheet-content {
  position: relative;
  background: #ffffff;
  border-top-left-radius: 28px;
  border-top-right-radius: 28px;
  padding: 12px 20px calc(20px + env(safe-area-inset-bottom));
  box-shadow: 0 -10px 40px rgba(0, 0, 0, 0.2);
  transform: translateY(100%);
  transition: transform 0.35s cubic-bezier(0.2, 0.8, 0.2, 1);
  max-height: 80vh;
  display: flex;
  flex-direction: column;
  z-index: 2;
}
.bottom-sheet.open .sheet-content {
  transform: translateY(0);
}

.sheet-handle {
  width: 38px;
  height: 4px;
  border-radius: 99px;
  background: #cbd5e1;
  margin: 0 auto 14px;
}

.sheet-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}
.sheet-header h3 {
  font-size: 18px;
  font-weight: 800;
  color: #101a2b;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}
.sheet-header h3 svg { width: 20px; height: 20px; color: #c4973f; }
.sheet-close {
  background: #f1f5f9;
  border: 0;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  font-size: 20px;
  color: #64748b;
  cursor: pointer;
  display: grid;
  place-items: center;
}

.sheet-body { overflow-y: auto; -webkit-overflow-scrolling: touch; }

.sheet-option-list { display: flex; flex-direction: column; gap: 8px; }
.sheet-opt-btn {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  border-radius: 18px;
  border: 1.5px solid #e2e8f0;
  background: #fff;
  cursor: pointer;
  text-align: left;
  transition: all .2s ease;
}
.sheet-opt-btn .opt-icon { width: 22px; height: 22px; color: #64748b; flex-shrink: 0; }
.sheet-opt-btn .opt-info { flex: 1; display: flex; flex-direction: column; }
.sheet-opt-btn .opt-title { font-size: 14.5px; font-weight: 800; color: #101a2b; }
.sheet-opt-btn .opt-sub { font-size: 12px; color: #64748b; }
.sheet-opt-btn .opt-check { width: 20px; height: 20px; color: #c4973f; opacity: 0; transition: opacity .2s; }
.sheet-opt-btn.active { border-color: #d7a23d; background: #fdfaf3; }
.sheet-opt-btn.active .opt-icon, .sheet-opt-btn.active .opt-check { color: #d7a23d; opacity: 1; }

/* Модалка ошибки */
.modal.error-modal .err-icon{width:72px;height:72px;border-radius:50%;background:#fef2f2;color:#ef4444;display:grid;place-items:center;margin:0 auto 16px}
.modal.error-modal .err-icon svg{width:36px;height:36px}
.modal .modal-actions{display:flex;flex-direction:column;gap:10px;margin-top:16px}
.modal .call-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px;border-radius:999px;background:#22c55e;color:#fff;font-weight:800;font-size:15px;text-decoration:none;box-shadow:0 4px 14px rgba(34,197,94,.3)}
.modal .call-btn svg{width:18px;height:18px}
.modal .retry-btn{width:100%;padding:13px;border-radius:999px;border:1px solid #e2e8f0;background:#f8fafc;color:#475569;font-weight:700;font-size:14px;cursor:pointer}
/* Внутренний футер с картой */
.inner-footer{margin-top:34px;display:grid;gap:14px}
.map-card{border-radius:24px;overflow:hidden;border:1px solid #e9edf1;box-shadow:0 4px 20px rgba(0,0,0,.04);height:250px;background:#eef1f4}
.map-card iframe{width:100%;height:100%;border:0}
.cta-row{display:flex;gap:10px;flex-wrap:wrap}
.cta-row .gold-button{flex:1;min-width:200px;text-align:center}
.ghost-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 20px;border-radius:21px;border:1.5px solid #e2e8f0;font-weight:800;font-size:15px;color:#33415c;background:#fff;flex:1;min-width:200px;text-align:center}
@media(max-width:560px){.cart-card{padding:18px}.cart-card h1{font-size:23px}.map-card{height:210px}.cart-row img.dish{width:56px;height:56px}.qty-pill button{width:30px;height:30px}}
/* Полный каталог без свайпа: вся сетка видна сразу */
.food-categories{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px 10px;overflow:visible;justify-content:stretch}
.food-categories::-webkit-scrollbar{display:none}
.category{min-width:0;width:100%}
.category-label{white-space:normal;text-align:center;line-height:1.25}
@media(max-width:740px){.food-categories{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 6px;padding:18px 0}.category{font-size:11px}.category-label{padding:4px 2px}}
/* Бургер-меню: каталог списком в одну колонку — ничего не обрезается */
#mobile-categories-nav button{min-width:0;font-size:14px;padding:10px 14px}
#mobile-categories-nav button>span{min-width:0;white-space:normal;line-height:1.3}
/* Полоска категорий: компактный свайп вместо плитки */
.food-categories{display:flex;justify-content:flex-start;gap:10px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;padding:10px 4px 12px}
.food-categories::-webkit-scrollbar{display:none}
.food-categories .category{min-width:54px;width:auto;flex-shrink:0;scroll-snap-align:start;gap:4px}
.food-categories .category-picture{width:46px;height:46px}
.food-categories .category-label{font-size:11px;white-space:nowrap;padding:2px 8px}
/* Слайдер новинок: автопрокрутка + точки + стрелки */
.novinki-wrap{position:relative;margin:8px 0 16px}
.novinki-dots{display:flex;justify-content:center;gap:7px;z-index:3;margin-top:14px}
.novinki-dots button{width:22px;height:4.5px;border-radius:99px;border:0;background:#d8dfeb;cursor:pointer;padding:0;transition:background .25s,width .25s}
.novinki-dots button[aria-current="true"]{background:linear-gradient(90deg, #dfad49, #c48c26);width:34px}
.novinki-arrow{position:absolute;top:calc(50% - 24px);width:44px;height:44px;border-radius:50%;border:1px solid #e7ebf0;background:#ffffff;color:#14223c;font-size:26px;font-family:system-ui,sans-serif;font-weight:400;line-height:1;display:grid;place-items:center;cursor:pointer;box-shadow:0 8px 24px rgba(16,28,55,0.14);z-index:10;transition:transform .2s,background .2s,opacity .2s,border-color .2s,color .2s;user-select:none;-webkit-user-select:none}
.novinki-arrow:hover:not(:disabled){transform:scale(1.08);background:#ffffff;border-color:#d4a240;color:#c48c26}
.novinki-arrow:disabled{opacity:0.25;cursor:default;pointer-events:none}
.novinki-arrow-prev{left:-22px}
.novinki-arrow-next{right:-22px}
@media(max-width:740px){.novinki-arrow{display:none}}
.novinki-banner{scroll-snap-align:center}
@media(max-width:740px){.food-categories{gap:8px}.food-categories .category{min-width:46px;gap:3px}.food-categories .category-picture{width:40px;height:40px}.food-categories .category-label{font-size:9.5px;padding:2px 6px}}
/* Стрелки полоски категорий (только мышь) */
.cat-strip-wrap{position:relative}
.cat-arrow{position:absolute;top:14px;width:34px;height:34px;border-radius:50%;border:1px solid #e7ebf0;background:#fff;color:#14223c;font-size:18px;line-height:1;display:grid;place-items:center;cursor:pointer;box-shadow:0 6px 18px #101c3730;z-index:3;transition:transform .2s,opacity .2s}
.cat-arrow:hover{transform:scale(1.06)}
.cat-arrow:disabled{opacity:.35;cursor:default;transform:none}
.cat-arrow-prev{left:-14px}
.cat-arrow-next{right:-14px}
@media(max-width:740px){.cat-arrow{display:none}}
/* Контакты с картой на главной (как в старой версии) */
.contacts-map-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:stretch;margin-top:20px}
.map-card-tall{height:100%;min-height:320px}
@media(max-width:740px){.contacts-map-grid{grid-template-columns:1fr}.map-card-tall{min-height:250px}}
/* Sticky-панель каталога + секции */
.catalog-nav{position:sticky;top:var(--masthead-h,96px);z-index:70;background:rgba(247,249,251,.95);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-radius:0 0 20px 20px;border-bottom:1px solid rgba(16,26,43,.06);box-shadow:0 8px 24px rgba(16,26,43,.04);padding:0 6px 2px;margin:0 -6px}
@media(max-width:740px){.catalog-nav{top:var(--masthead-h,68px);padding:0 4px 1px}}
.catalog-nav .food-categories{padding:5px 4px 5px}
.cat-filters, .show-more, .sec-more, #show-all{display:none!important}
.menu-category-section{scroll-margin-top:calc(var(--masthead-h,96px) + var(--catalog-nav-h,88px) + 12px);margin:6px 0 26px}
.category{user-select:none;-webkit-user-select:none}
.category *{pointer-events:none}
.section-subhead{display:flex;align-items:center;gap:10px;margin:12px 0 16px}
.section-subhead h2{font-size:clamp(19px,2.6vw,24px);font-weight:800;letter-spacing:-.6px;color:#14223c;line-height:1.2}
.section-subhead .count{font-size:11px;font-weight:700;color:#8593a6;background:#edf1f5;border-radius:999px;padding:2px 8px;letter-spacing:0}
.show-more{display:block;margin:14px auto 0;border:1.5px solid #e2e8f0;background:#fff;border-radius:999px;padding:10px 22px;font-size:13.5px;font-weight:800;color:#33415c;cursor:pointer}
.show-more:hover{border-color:#c4973f;color:#a87520}
/* Аккордеоны на странице товара */
.acc{border:1px solid #eef1f4;border-radius:16px;margin-top:10px;background:#fff;overflow:hidden}
.acc summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px;font-weight:800;font-size:14.5px;color:#101a2b;cursor:pointer}
.acc summary::-webkit-details-marker{display:none}
.acc summary .acc-x{position:relative;width:14px;height:14px;flex-shrink:0}
.acc summary .acc-x::before,.acc summary .acc-x::after{content:"";position:absolute;background:#b47d18;border-radius:2px;top:6px;left:0;width:14px;height:2px;transition:transform .25s}
.acc summary .acc-x::after{transform:rotate(90deg)}
.acc[open] summary .acc-x::after{transform:rotate(0)}
.acc .acc-body{padding:0 16px 16px;font-size:13.5px;line-height:1.65;color:#64748b}
/* Витрина: нумерация секций и скелетоны */
.section-subhead .sec-index{display:none!important}
.product-grid:empty{min-height:132px;border-radius:20px;background:linear-gradient(100deg,#eef1f4 40%,#f7f9fb 50%,#eef1f4 60%);background-size:200% 100%;animation:skeletonSheen 1.4s linear infinite}
@keyframes skeletonSheen{from{background-position:200% 0}to{background-position:-200% 0}}
/* Секции строго друг под другом; описания в карточках — максимум 3 строки */
#preview-products.product-grid{display:block}
#preview-products .menu-category-section{margin-bottom:30px}
.product-info>p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.product-info>p:empty{display:none!important}
/* Якорь результатов поиска не прячется под залипающей панелью */
#menu-title{scroll-margin-top:185px}
/* Бургер-иконка: трансформация в крестик при открытии меню */
.burger-lines{display:grid;gap:5px;width:24px;justify-items:center}
.burger-lines>span{display:block;width:24px;height:2.4px;border-radius:2px;background:#14223c;transition:transform .32s cubic-bezier(.2,.9,.3,1.2),opacity .2s}
body.menu-open .burger-lines>span:nth-child(1){transform:translateY(7.4px) rotate(45deg)}
body.menu-open .burger-lines>span:nth-child(2){opacity:0}
body.menu-open .burger-lines>span:nth-child(3){transform:translateY(-7.4px) rotate(-45deg)}
/* Крестик в шапке меню: золотая иконка без обводок */
.navigation-dialog .close-menu{width:38px;height:38px;background:transparent;border:0;color:#b47d18;border-radius:50%;cursor:pointer;display:grid;place-items:center}
.navigation-dialog .close-menu svg{width:24px;height:24px}
/* Крестик закрытия карточки товара */
.p-close{position:absolute;top:12px;left:12px;z-index:5;width:38px;height:38px;border-radius:50%;border:0;background:#10141b66;color:#fff;backdrop-filter:blur(4px);display:grid;place-items:center;cursor:pointer}
.p-close svg{width:21px;height:21px}
/* Нижняя плашка корзины */
.cart-dock{position:fixed;right:20px;left:auto;bottom:calc(20px + env(safe-area-inset-bottom));z-index:900;display:inline-flex;align-items:center;gap:10px;padding:6px 14px 6px 8px;border-radius:999px;background:radial-gradient(circle at 25% 25%,#22344c,#0a1423 85%);border:1.5px solid rgba(212,162,64,.45);color:#fff;text-decoration:none;box-shadow:none;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transform:translate3d(0,0,0);transition:transform 280ms cubic-bezier(0.4,0,0.2,1),filter .2s ease}
body.menu-open .cart-dock{transform:translate3d(var(--menu-width),0,0);transition:transform 320ms cubic-bezier(0.22,1,0.36,1),box-shadow .2s ease,filter .2s ease}
.cart-dock:hover{filter:brightness(1.06);box-shadow:0 12px 32px rgba(10,20,35,.55)}
.cart-dock:active{transform:scale(.96)}
.cart-dock[hidden]{display:none!important}
@keyframes dockPop{from{opacity:0;transform:translateY(18px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}
.dock-icon-wrap{position:relative;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:rgba(212,162,64,.2);color:#f2d184;flex-shrink:0}
.dock-icon-wrap svg{width:18px;height:18px;stroke-width:2.2}
.dock-count{position:absolute;top:-4px;right:-5px;display:grid;place-items:center;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:linear-gradient(120deg,#fbe6ae,#d5a03d);color:#241a08;font-size:11px;font-weight:900;line-height:1;box-shadow:0 2px 5px rgba(0,0,0,.35);border:1.5px solid #0d1828}
.dock-total{color:#f2d184;font-size:15px;font-weight:800;white-space:nowrap;letter-spacing:-.2px}
.dock-go{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:rgba(255,255,255,.1);color:#f2d184;font-size:13px;font-weight:800;line-height:1;flex-shrink:0}
.dock-go svg{width:13px;height:13px}
body.has-dock{padding-bottom:calc(76px + env(safe-area-inset-bottom))}
body.has-dock .preview-footer{padding-bottom:20px}

/* Каталог: компактная адаптивная сетка вместо двух крупных карточек. */
@media(min-width:1181px){.menu-category-section .product-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(min-width:861px) and (max-width:1180px){.menu-category-section .product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:860px){.menu-category-section .product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Компактное добавление в корзину: прозрачная кнопка с 3D значком */
.menu-category-section .product-bottom .gold-button{position:relative;width:auto;height:auto;min-height:auto;flex:0 0 auto;padding:0;border-radius:0;gap:0;background:transparent!important;box-shadow:none!important;border:none!important;transition:filter .2s ease,transform .15s ease;overflow:visible!important}
.menu-category-section .product-bottom .gold-button:hover{filter:brightness(1.08);transform:scale(1.06)}
.menu-category-section .product-bottom .gold-button:active{transform:scale(.92)}
.menu-category-section .product-bottom .gold-button span:not(.add-qty-badge){display:none!important}
.menu-category-section .product-bottom .gold-button svg{display:block!important;width:22px;height:22px;stroke-width:2.4;color:#241a08}
.menu-category-section .product-bottom .gold-button.has-qty{background:transparent!important}

/* Круглый оранжевый бейджик количества с белым контуром в верхнем правом углу */
.gold-button .add-qty-badge{position:absolute;top:-5px;right:-5px;min-width:22px;height:22px;padding:0 4px;border-radius:999px;background:#ea580c;color:#fff;font-size:11.5px;font-weight:900;line-height:1;display:flex;align-items:center;justify-content:center;border:2px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.25);pointer-events:none;z-index:3;animation:badgePop .28s cubic-bezier(.2,1.6,.4,1)}
@keyframes badgePop{0%{transform:scale(0)}100%{transform:scale(1)}}

/* Приветственный выбор способа получения. */
html.welcome-open,body.welcome-open{overflow:hidden;overscroll-behavior:none;touch-action:none}
body.welcome-open{position:fixed;left:0;right:0;width:100%}
.welcome-overlay[hidden]{display:none!important}
.welcome-overlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;background:rgba(7,17,31,.7);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);opacity:0;transition:opacity .24s ease}
.welcome-overlay.is-visible{opacity:1}
.welcome-card{position:relative;isolation:isolate;width:min(440px,100%);max-height:calc(100dvh - 32px);overflow:auto;padding:28px 30px 22px;border:1px solid rgba(255,255,255,.8);border-radius:32px;background:linear-gradient(155deg,#fff 0%,#fbfaf7 56%,#f5efe2 100%);box-shadow:0 32px 90px rgba(2,10,23,.35),inset 0 1px 0 #fff;text-align:center;transform:translateY(18px) scale(.97);transition:transform .32s cubic-bezier(.2,.85,.25,1);overscroll-behavior:contain}
.welcome-overlay.is-visible .welcome-card{transform:none}
.welcome-card::before{content:"";position:absolute;z-index:-1;width:300px;height:300px;left:50%;top:-185px;transform:translateX(-50%);border-radius:50%;background:radial-gradient(circle,#f4ce73aa 0%,#d9a63c33 46%,transparent 72%)}
.welcome-logo{width:168px;height:168px;margin:0 auto 8px;padding:6px;border-radius:50%;background:linear-gradient(145deg,#fff8d8,#c99024 42%,#fff0b6 72%,#9f6812);box-shadow:0 14px 38px #9a671d30,0 0 0 7px #fff}
.welcome-logo img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}
.welcome-city{display:inline-flex;align-items:center;gap:6px;margin:2px auto 12px;padding:6px 11px;border:1px solid #ead9b7;border-radius:999px;background:#fffaf0;color:#a06f18;font-size:12px;font-weight:800}
.welcome-city svg{width:15px;height:15px}
.welcome-kicker{margin:0 0 5px;color:#b17b1e;font-size:11px;font-weight:800;letter-spacing:.15em;text-transform:uppercase}
.welcome-card h1{margin:0;color:#101a2b;font-size:30px;line-height:1.12;letter-spacing:-1px}
.welcome-card>p#welcome-description{max-width:350px;margin:10px auto 20px;color:#6f7d91;font-size:14px;line-height:1.5}
.welcome-actions{display:grid;gap:10px}
.welcome-choice{display:grid;grid-template-columns:44px 1fr 20px;align-items:center;gap:12px;width:100%;min-height:68px;padding:10px 14px;border:1px solid transparent;border-radius:20px;text-align:left;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}
.welcome-choice:active{transform:scale(.98)}
.welcome-choice:focus-visible{outline:3px solid #d4a240;outline-offset:3px}
.welcome-choice-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:15px}
.welcome-choice>span:nth-child(2){display:block;min-width:0}
.welcome-choice strong,.welcome-choice small{display:block}
.welcome-choice strong{font-size:16px;font-weight:850}
.welcome-choice small{margin-top:2px;font-size:11px;font-weight:600;line-height:1.25;opacity:.7}
.welcome-choice>svg{width:18px;height:18px}
.welcome-delivery{color:#172033;background:linear-gradient(125deg,#ffe7a5,#e7b84f);box-shadow:0 8px 18px #bd85232b}
.welcome-delivery .welcome-choice-icon{background:#fff7dc}
.welcome-pickup{color:#18243a;border-color:#e3e8ef;background:#fff;box-shadow:0 5px 14px #12233b0a}
.welcome-pickup .welcome-choice-icon{background:#f0f3f7;color:#b07919}
.welcome-note{margin:14px 0 0;color:#98a3b4;font-size:11px}
@media(hover:hover){.welcome-choice:hover{transform:translateY(-2px);filter:brightness(1.02);box-shadow:0 12px 24px #16223818}}
@media(max-width:480px){.welcome-overlay{padding:12px}.welcome-card{padding:22px 18px 18px;border-radius:27px}.welcome-logo{width:142px;height:142px}.welcome-card h1{font-size:26px}.welcome-card>p#welcome-description{font-size:13px;margin-bottom:16px}.welcome-choice{min-height:64px;border-radius:18px}.welcome-note{margin-top:11px}}
.welcome-install-dialog{position:fixed;width:min(390px,calc(100% - 28px));margin:auto;padding:26px 22px 20px;border:1px solid #ead9b7;border-radius:28px;background:linear-gradient(155deg,#fff,#fffaf0);color:#101a2b;box-shadow:0 24px 80px #07111f55;text-align:center;overflow:hidden}
.welcome-install-dialog::backdrop{background:#07111f99;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.welcome-install-dialog[open]{animation:welcome-install-in .25s ease-out}
.welcome-install-close{position:absolute;right:12px;top:12px;width:40px;height:40px;border:0;border-radius:50%;background:#f2f4f7;color:#64748b;font-size:24px}
.welcome-install-logo{display:block;margin:0 auto 14px;border-radius:50%;box-shadow:0 8px 22px #9a671d30}
.welcome-install-dialog h2{margin:8px 0;color:#101a2b;font-size:25px;line-height:1.15}
.welcome-install-text,.welcome-install-android{margin:10px 0 16px;color:#6f7d91;font-size:14px;line-height:1.5}
.welcome-install-dialog ol{display:grid;gap:9px;margin:0 0 18px;padding:0;list-style:none;text-align:left;color:#344054;font-size:14px}
.welcome-install-dialog li{padding:11px 12px;border-radius:13px;background:#fff6df}
.welcome-install-done{width:100%;min-height:48px;border:0;border-radius:14px;background:#111827;color:white;font-weight:800}
@keyframes welcome-install-in{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}

/* Мобильный каталог и постоянная навигация приложения. */
.mobile-bottom-nav{display:none}
.add-fly-dot{position:fixed;z-index:1200;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;pointer-events:none;background:#e1ad45;box-shadow:0 0 0 6px #f3d88b55;transition:transform .38s cubic-bezier(.2,.75,.25,1),opacity .32s ease}
.cart-pulse{animation:cartPulse .36s cubic-bezier(.2,1.5,.4,1)}
@keyframes cartPulse{0%,100%{transform:scale(1)}45%{transform:scale(1.12)}}
.gold-button.added-pop{animation:quickAdd .18s ease-out}
@keyframes quickAdd{0%{transform:scale(1)}38%{transform:scale(.89)}72%{transform:scale(1.05)}100%{transform:scale(1)}}

@media(max-width:740px){
  body{padding-bottom:calc(78px + env(safe-area-inset-bottom))}
  .page-shell{padding-left:10px;padding-right:10px}
  .menu-category-section .product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .product-card{border-radius:17px;min-width:0}
  .product-photo{aspect-ratio:1.08;border-radius:16px 16px 12px 12px}
  .product-info{padding:9px 9px 10px}
  .product-info h3{font-size:14px;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .product-info>p{font-size:11px;line-height:1.3;margin:4px 0 6px;-webkit-line-clamp:3}
  .product-bottom{flex-wrap:nowrap;align-items:flex-end;gap:5px}
  .product-price{font-size:17px;letter-spacing:-.4px;min-width:0}
  .product-price small{font-size:9px;margin-bottom:2px}
  .menu-category-section .product-bottom .gold-button{width:auto;height:auto;min-height:auto;flex-basis:auto;background:transparent!important;box-shadow:none!important;border:none!important;transition:filter .2s ease,transform .15s ease}
.menu-category-section .product-bottom .gold-button svg{width:22px;height:22px;stroke-width:2.2;color:#241a08}
.menu-category-section .product-bottom .gold-button:hover{filter:brightness(1.1);transform:scale(1.08)}
.menu-category-section .product-bottom .gold-button:active{transform:scale(.92)}
  .menu-category-section .product-bottom .gold-button svg{width:17px;height:17px;stroke-width:2.2}
  .favorite{width:31px;height:31px}.favorite svg{width:20px;height:20px}
  .badge{font-size:8px;padding:4px 7px}
  .cart-dock{right:16px;left:auto;bottom:calc(16px + env(safe-area-inset-bottom));max-width:calc(100vw - 32px)}
  .mobile-bottom-nav{display:none!important}
  body.has-dock .preview-footer,.preview-footer{padding-bottom:14px;margin-bottom:0}
  .cart-row{align-items:center;gap:8px;padding:9px}
  .cart-row .grow{align-self:stretch;display:flex;flex-direction:column;justify-content:center}
  .cart-row .nm{font-size:12px;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.25}
  .cart-row .pr{font-size:11px;line-height:1.25}
  .qty-pill{gap:4px;padding:3px;flex-direction:column-reverse;border-radius:999px}
  .qty-pill button{width:28px;height:28px;background:#f3d27e;color:#2d2515;box-shadow:none}
  .qty-pill span{font-size:12px}
  .cart-remove{width:30px;height:30px}
  .cart-page{padding-bottom:18px!important}
}

/* Меню — верхняя карточка: плавное наложение и отдельная прокрутка. */
html.menu-scroll-locked,
html.menu-open {
  overflow: hidden !important;
  overscroll-behavior: none !important;
  overscroll-behavior-y: none !important;
  height: 100% !important;
}
body.menu-open {
  position: fixed !important;
  top: calc(var(--menu-scroll-y, 0px) * -1) !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  height: 100% !important;
  overflow: hidden !important;
  touch-action: none !important;
  overscroll-behavior: none !important;
  overscroll-behavior-y: none !important;
}
/* Bottom Sheet scroll lock (non-fixed body to preserve iOS virtualViewport & touch hit-testing) */
html.sheet-open,
body.sheet-open {
  overflow: hidden !important;
  overscroll-behavior: contain !important;
}
body.menu-open .panel-scrim,
body.menu-open .main-panel,
.bottom-sheet.open .sheet-backdrop {
  touch-action: none !important;
  overscroll-behavior: none !important;
}
.navigation-dialog {
  overflow-y: auto !important;
  overscroll-behavior: contain !important;
  overscroll-behavior-y: contain !important;
  -webkit-overflow-scrolling: touch;
}
.navigation-dialog .menu-head{position:relative}
.navigation-dialog .close-menu{
  position:absolute;
  top:50%;
  right:16px;
  z-index:2;
  width:42px;
  height:42px;
  transform:translateY(-50%);
  border-radius:50%;
  background:rgba(255,255,255,.92);
  color:#17233a;
  box-shadow:0 7px 18px rgba(12,24,42,.13),inset 0 0 0 1px rgba(225,231,238,.9);
  transition:transform .22s ease,box-shadow .22s ease,background .22s ease;
}
.navigation-dialog .close-menu:active{transform:translateY(-50%) scale(.92)}

/* The masthead background must cover the complete shell, including its side padding. */
.page-shell > .masthead{width:calc(100% + 56px)!important}
@media(max-width:740px){.page-shell > .masthead{width:calc(100% + 32px)!important}}
@media(max-width:380px){.page-shell > .masthead{width:calc(100% + 16px)!important}}

/* Search results need a readable panel, independent of the input's compact width. */
@media(min-width:741px){
  .masthead .search-dropdown{
    right:0!important;
    left:auto!important;
    width:min(720px,calc(100vw - 32px))!important;
    max-width:none!important;
  }
}
@media(max-width:740px){
  .masthead .search-dropdown{
    position:fixed!important;
    top:calc(var(--masthead-h,68px) + 8px)!important;
    right:12px!important;
    left:12px!important;
    width:auto!important;
    max-width:none!important;
    max-height:calc(100dvh - var(--masthead-h,68px) - 24px - env(safe-area-inset-bottom,0px))!important;
  }
  .masthead .search-dropdown-list{overflow-y:auto;overscroll-behavior:contain}
}
@media(max-width:740px){
  .navigation-dialog,
  body.menu-open .navigation-dialog{
    transition:transform 460ms cubic-bezier(.22,.72,.22,1),visibility 460ms,box-shadow 460ms cubic-bezier(.22,.72,.22,1);
  }
  .main-panel,
  body.menu-open .main-panel{
    transition:transform 460ms cubic-bezier(.22,.72,.22,1),border-radius 460ms cubic-bezier(.22,.72,.22,1),box-shadow 460ms cubic-bezier(.22,.72,.22,1);
  }
  .panel-scrim,
  body.menu-open .panel-scrim{
    transition:opacity 460ms cubic-bezier(.22,.72,.22,1),backdrop-filter 460ms cubic-bezier(.22,.72,.22,1),-webkit-backdrop-filter 460ms cubic-bezier(.22,.72,.22,1);
  }
}

/* Stable mobile drawer geometry — avoids resizing the page itself. */
html.menu-scroll-locked, html.menu-open{height:100%;overflow:hidden!important;overscroll-behavior:none!important;overscroll-behavior-y:none!important}
body.menu-open{position:fixed!important;top:calc(var(--menu-scroll-y,0px) * -1)!important;left:0!important;right:0!important;width:100%!important;height:100%!important;overflow:hidden!important;touch-action:none!important}
@media(max-width:740px){
  :root{--mobile-menu-width:min(82vw,360px);--mobile-menu-overlap:16px}
  .navigation-dialog{
    width:var(--mobile-menu-width)!important;
    max-width:calc(100vw - 12px)!important;
    transform:translate3d(-100%,0,0)!important;
  }
  body.menu-open .navigation-dialog{transform:translate3d(0,0,0)!important}
  body.menu-open .main-panel{
    transform:translate3d(calc(var(--mobile-menu-width) - var(--mobile-menu-overlap)),0,0)!important;
    border-radius:18px 0 0 18px!important;
    box-shadow:-10px 0 30px rgba(12,24,42,.18),-1px 0 0 rgba(255,255,255,.78)!important;
  }
}

/* Final checkout layout overrides. */
.checkout-info-stage .field-icon-wrap .field-icon{top:50%!important;transform:translateY(-50%)}
.checkout-info-stage .field-icon-wrap .field-icon.textarea-icon{top:20px!important;transform:none}
.checkout-info-stage .address-fields{display:grid;grid-template-columns:minmax(0,1fr) 112px 128px;gap:8px;padding:12px 18px;background:#fff;border-bottom:1px solid #edf0f3}
.checkout-info-stage .address-fields .field-icon-wrap{margin:0;border:1px solid #e3e8ef;border-radius:14px;overflow:hidden}
.checkout-info-stage .address-fields .field{min-height:52px;padding:14px 12px;border:0;font-size:14px}
.checkout-info-stage .address-fields .field.with-icon{padding-left:43px}
.checkout-info-stage .address-fields .field-icon{left:13px!important;width:17px;height:17px}
.checkout-page .cart-head{margin:24px 0 0;padding-top:22px;border-top:1px solid #e9edf2}
.checkout-page .totals{margin-top:12px}
@media(max-width:560px){.checkout-info-stage .address-fields{grid-template-columns:minmax(0,1fr) 72px 92px;gap:6px;padding:10px 14px}.checkout-info-stage .address-fields .field{min-height:50px;padding:13px 9px;font-size:13px}.checkout-info-stage .address-fields .field.with-icon{padding-left:39px}.checkout-info-stage .address-fields .field-icon{left:11px!important}}

/* Contact form: aligned controls and a compact, structured delivery address. */
.checkout-info-stage .field-icon-wrap .field-icon{
  top:50%;
  transform:translateY(-50%);
}
.checkout-info-stage .field-icon-wrap .field-icon.textarea-icon{
  top:20px;
  transform:none;
}
.checkout-info-stage .address-fields{
  display:grid;
  grid-template-columns:minmax(0,1fr) 112px 128px;
  gap:8px;
  padding:12px 18px;
  background:#fff;
  border-bottom:1px solid #edf0f3;
}
.checkout-info-stage .address-fields .field-icon-wrap{
  margin:0;
  border:1px solid #e3e8ef;
  border-radius:14px;
  overflow:hidden;
}
.checkout-info-stage .address-fields .field{min-height:52px;padding:14px 12px;border:0;font-size:14px}
.checkout-info-stage .address-fields .field.with-icon{padding-left:43px}
.checkout-info-stage .address-fields .field-icon{left:13px;width:17px;height:17px}
.checkout-page .cart-head{margin:24px 0 0;padding-top:22px;border-top:1px solid #e9edf2}
.checkout-page .totals{margin-top:12px}
@media(max-width:560px){
  .checkout-info-stage .address-fields{grid-template-columns:minmax(0,1fr) 72px 92px;gap:6px;padding:10px 14px}
  .checkout-info-stage .address-fields .field{min-height:50px;padding:13px 9px;font-size:13px}
  .checkout-info-stage .address-fields .field.with-icon{padding-left:39px}
  .checkout-info-stage .address-fields .field-icon{left:11px}
}

/* Search stays inside its own header field on small screens. */
@media(max-width:740px){
  .masthead{width:100%;min-width:0}
  .masthead .search{min-width:0;max-width:100%}
  .masthead .search-dropdown{
    position:absolute!important;
    top:calc(100% + 8px)!important;
    right:0!important;
    left:0!important;
    width:100%!important;
    max-width:100%!important;
    max-height:min(360px,50dvh)!important;
  }
}
@media(max-width:360px){
  .page-shell{padding-left:8px;padding-right:8px}
  .menu-category-section .product-grid{gap:8px}
  .product-info{padding:8px}
  .product-info h3{font-size:13px}
  .product-info>p{font-size:10px}
  .product-price{font-size:15px}
  .cart-row img.dish{width:48px;height:48px}
}

/* === Продукт-оверлей: слайд-ин/слайд-аут === */
/* === Product Detail Overlay — Hero Parallax === */
.product-detail-overlay{position:fixed;inset:0;z-index:950;background:#f7f9fb;overflow-y:auto;-webkit-overflow-scrolling:touch;transform:translateX(100%);transition:transform .35s cubic-bezier(.25,.46,.45,.94);overscroll-behavior:contain}
.product-detail-overlay.is-visible{transform:translateX(0)}
.product-detail-overlay.is-closing{transform:translateX(100%);transition:transform .28s cubic-bezier(.55,.06,.68,.19)}

/* Hero zone — sticky parallax */
.product-detail-overlay .pd-hero{position:sticky;top:0;height:56vh;min-height:380px;overflow:hidden;z-index:1;background:#0b1426}
.product-detail-overlay .pd-hero-img{width:100%;height:100%;object-fit:cover;transform:scale(1.05);transition:transform .6s ease;cursor:zoom-in;-webkit-touch-callout:default !important;-webkit-user-select:auto !important;user-select:auto !important}
.product-detail-overlay.is-visible .pd-hero-img{transform:scale(1)}
.product-detail-overlay .pd-hero::before{content:'';position:absolute;top:0;left:0;right:0;height:120px;background:linear-gradient(180deg,rgba(11,20,38,.6) 0%,transparent 100%);z-index:2;pointer-events:none}
.product-detail-overlay .pd-hero::after{content:'';position:absolute;bottom:0;left:0;right:0;height:140px;background:linear-gradient(180deg,transparent 0%,#f7f9fb 88%);z-index:2;pointer-events:none}

/* Close button — white circle, clearly visible on any photo */
.product-detail-overlay .p-close{position:absolute;top:calc(12px + env(safe-area-inset-top,0px));left:16px;z-index:10;width:48px;height:48px;border-radius:50%;border:0;background:rgba(255,255,255,.95);color:#0b1426;display:grid;place-items:center;cursor:pointer;box-shadow:0 3px 14px rgba(0,0,0,.22);transition:transform .15s ease,box-shadow .2s ease}
.product-detail-overlay .p-close:active{transform:scale(.88);box-shadow:0 2px 8px rgba(0,0,0,.18)}
.product-detail-overlay .p-close svg{width:24px;height:24px;stroke-width:2.4}

/* Open photo button */
.product-detail-overlay .pd-open-photo{position:absolute;right:16px;bottom:20px;z-index:5;display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border-radius:12px;background:rgba(10,22,38,.6);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;border:1px solid rgba(255,255,255,.15);font-size:11px;font-weight:700;cursor:pointer;transition:transform .15s ease,background .18s ease}
.product-detail-overlay .pd-open-photo:active{transform:scale(.94)}
.product-detail-overlay .pd-open-photo:hover{background:rgba(10,22,38,.9)}
.product-detail-overlay .pd-open-photo svg{width:14px;height:14px}

/* Content zone — overlaps hero with rounded top */
.product-detail-overlay .pd-content{position:relative;z-index:3;background:#f7f9fb;border-radius:24px 24px 0 0;margin-top:-24px;padding:28px 22px 0;min-height:calc(44dvh);opacity:0;transform:translateY(30px);transition:opacity .4s ease .15s,transform .4s cubic-bezier(.2,.7,.2,1) .15s}
.product-detail-overlay.is-visible .pd-content{opacity:1;transform:translateY(0)}

/* Category pill */
.product-detail-overlay .pd-category{display:inline-block;background:linear-gradient(120deg,#fbe6ae 0%,#f6d174 45%,#d5a03d 100%);color:#332912;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:5px 13px;border-radius:40px;margin-bottom:14px}

/* Product name */
.product-detail-overlay .pd-name{font-size:28px;font-weight:800;color:#101a2b;letter-spacing:-.5px;line-height:1.15;margin-bottom:10px}

/* Description */
.product-detail-overlay .pd-desc{font-size:15px;line-height:1.65;color:#64748b;margin-bottom:20px}

/* Gold separator */
.product-detail-overlay .pd-separator{height:1px;background:linear-gradient(90deg,transparent,rgba(212,162,64,.2) 15%,rgba(212,162,64,.2) 85%,transparent);margin:0 0 16px}

/* Accordions — individual cards with shadow */
.product-detail-overlay .acc{margin-top:0;margin-bottom:10px;box-shadow:0 2px 8px rgba(0,0,0,.025)}

/* Sticky action bar */
.product-detail-overlay .pd-action-bar{position:sticky;bottom:0;left:0;right:0;z-index:5;display:flex;align-items:center;gap:12px;padding:16px 22px calc(16px + env(safe-area-inset-bottom,0px));background:#fff;box-shadow:0 -4px 20px rgba(0,0,0,.06);border-radius:20px 20px 0 0;margin:8px -22px 0}

/* Price */
.product-detail-overlay .pd-price{font-size:27px;font-weight:800;color:#101a2b;letter-spacing:-.7px;white-space:nowrap;transition:transform .2s ease}
.product-detail-overlay .pd-price.bump{animation:pdPriceBump .3s cubic-bezier(.2,1.6,.4,1)}
@keyframes pdPriceBump{0%{transform:scale(1)}45%{transform:scale(1.08)}100%{transform:scale(1)}}

/* Vertical stepper — premium, bigger touch targets */
.product-detail-overlay .pd-qty{width:50px;height:110px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:0;overflow:hidden;border:1px solid #dbe3ec;border-radius:16px;background:#f6f8fb;box-shadow:inset 0 0 0 1px rgba(255,255,255,.9)}
.product-detail-overlay .pd-qty button{width:40px;height:36px;margin:4px;border:0;border-radius:11px;background:#fff;color:#14223c;box-shadow:0 2px 5px rgba(20,34,60,.08);font-size:20px;line-height:1;font-weight:800;cursor:pointer;transition:transform .15s ease,background .15s ease}
.product-detail-overlay .pd-qty button:active{transform:scale(.9);background:#f5d888}
.product-detail-overlay .pd-qty span{min-width:0;height:30px;display:grid;place-items:center;font-size:17px;line-height:1;color:#14223c;font-weight:700}

/* Add to cart — premium gold, vertical gradient for depth, no idle sheen */
.product-detail-overlay .pd-add-btn{flex:1;min-width:0;min-height:56px;padding:0 22px;border:0;border-radius:18px;background:linear-gradient(180deg,#fbe6ae 0%,#e8b948 50%,#c89228 100%);color:#241a08;font-size:16px;font-weight:800;letter-spacing:-.2px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:inset 0 1px 0 rgba(255,255,255,.8),inset 0 -1px 0 rgba(0,0,0,.08),0 6px 20px rgba(178,126,29,.3);transition:transform .15s ease,filter .2s ease,box-shadow .2s ease}
.product-detail-overlay .pd-add-btn:hover{filter:brightness(1.04);transform:translateY(-1px);box-shadow:inset 0 1px 0 rgba(255,255,255,.85),inset 0 -1px 0 rgba(0,0,0,.08),0 8px 24px rgba(178,126,29,.38)}
.product-detail-overlay .pd-add-btn:active{transform:translateY(1px) scale(.98)}
.product-detail-overlay .pd-add-btn svg{width:22px;height:22px}
.product-detail-overlay .pd-add-btn.added-pop{animation:btnPop .3s cubic-bezier(.2,1.6,.4,1)}

/* Hint text */
.product-detail-overlay .pd-hint{text-align:center;font-size:12px;color:#94a3b8;margin-top:10px;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px))}

@media(max-width:740px){
  .product-detail-overlay .pd-hero{height:50vh;min-height:300px}
  .product-detail-overlay .pd-content{padding:24px 16px 0;min-height:50dvh}
  .product-detail-overlay .pd-action-bar{padding:14px 16px calc(14px + env(safe-area-inset-bottom,0px));margin:8px -16px 0}
  .product-detail-overlay .pd-name{font-size:24px}
  .product-detail-overlay .pd-open-photo{right:10px;bottom:10px;padding:5px 10px;font-size:10px}
  .product-detail-overlay .pd-add-btn{min-height:52px;border-radius:16px;padding:0 18px;font-size:15px}
  .product-detail-overlay .pd-price{font-size:24px}
  .product-detail-overlay .p-close{top:calc(10px + env(safe-area-inset-top,0px));width:44px;height:44px}
  .product-detail-overlay .p-close svg{width:22px;height:22px}
  .product-detail-overlay .pd-qty{width:46px;height:104px}
  .product-detail-overlay .pd-qty button{width:36px;height:34px;margin:3px;font-size:19px}
}

/* Блокировка скролла страницы при открытом оверлее */
body.pd-overlay-open {
  overflow: hidden !important;
}

/* Десктопная модальная карточка блюда (ПК / планшеты) */
@media (min-width: 741px) {
  .product-detail-overlay {
    background: rgba(11, 20, 38, 0.6) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 24px 16px !important;
    transform: none !important;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.25s ease, visibility 0.25s ease !important;
  }
  .product-detail-overlay.is-visible {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }
  .product-detail-overlay.is-closing {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transition: opacity 0.22s ease, visibility 0.22s ease !important;
  }

  #pd-body {
    position: relative;
    width: 100%;
    max-width: 520px;
    max-height: min(88vh, 820px);
    background: #ffffff;
    border-radius: 28px;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35), 0 0 0 1px rgba(255, 255, 255, 0.12);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    margin: auto;
    transform: scale(0.95) translateY(10px);
    transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  }
  .product-detail-overlay.is-visible #pd-body {
    transform: scale(1) translateY(0);
  }
  .product-detail-overlay.is-closing #pd-body {
    transform: scale(0.95) translateY(8px);
  }

  .product-detail-overlay .pd-hero {
    position: relative !important;
    height: 280px !important;
    min-height: 280px !important;
    max-height: 280px !important;
    flex-shrink: 0;
    border-radius: 28px 28px 0 0;
    overflow: hidden;
  }
  .product-detail-overlay .pd-hero::before {
    height: 90px;
  }
  .product-detail-overlay .pd-hero::after {
    display: none;
  }

  .product-detail-overlay .p-close {
    top: 14px;
    left: 14px;
    width: 42px;
    height: 42px;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.18);
  }
  .product-detail-overlay .p-close:hover {
    background: #ffffff;
    transform: scale(1.06);
  }

  .product-detail-overlay .pd-content {
    flex: 1 1 auto;
    overflow-y: auto;
    min-height: 0 !important;
    margin-top: 0 !important;
    border-radius: 0 !important;
    padding: 20px 24px 0 !important;
    background: #ffffff;
    transform: none !important;
    opacity: 1 !important;
    scrollbar-width: thin;
    scrollbar-color: #cbd5e1 transparent;
  }
  .product-detail-overlay .pd-content::-webkit-scrollbar {
    width: 6px;
  }
  .product-detail-overlay .pd-content::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 6px;
  }

  .product-detail-overlay .pd-name {
    font-size: 24px;
  }

  .product-detail-overlay .pd-action-bar {
    position: sticky;
    bottom: 0;
    margin: 14px -24px 0 !important;
    padding: 14px 24px calc(14px + env(safe-area-inset-bottom, 0px)) !important;
    background: #ffffff;
    border-top: 1px solid #f1f5f9;
    border-radius: 0 0 28px 28px;
    box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.04);
  }
  .product-detail-overlay .pd-add-btn {
    min-height: 52px;
    font-size: 15px;
  }
  .product-detail-overlay .pd-price {
    font-size: 24px;
  }
}

/* Полноэкранный просмотр фото блюда */
.product-detail-overlay .pd-hero-img, #product-view img {
  cursor: zoom-in;
  -webkit-touch-callout: default !important;
  -webkit-user-select: auto !important;
  user-select: auto !important;
}
.image-lightbox {
  position: fixed;
  inset: 0;
  z-index: 1100;
  background: rgba(10, 18, 30, 0.94);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
}
.image-lightbox.is-open {
  opacity: 1;
  pointer-events: auto;
}
.image-lightbox .lb-close {
  position: absolute;
  top: 18px;
  right: 18px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 0;
  background: rgba(255, 255, 255, 0.15);
  color: #ffffff;
  cursor: pointer;
  display: grid;
  place-items: center;
  z-index: 10;
  transition: background 0.2s, transform 0.15s;
}
.image-lightbox .lb-close:active {
  transform: scale(0.9);
}
.image-lightbox .lb-img-wrap {
  max-width: 92vw;
  max-height: 80vh;
  display: flex;
  align-items: center;
  justify-content: center;
}
.image-lightbox .lb-img-wrap img {
  max-width: 100%;
  max-height: 80vh;
  object-fit: contain;
  border-radius: 16px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5);
  -webkit-touch-callout: default !important;
  -webkit-user-select: auto !important;
  user-select: auto !important;
  pointer-events: auto;
}
.image-lightbox .lb-hint {
  color: #c5d0e0;
  font-size: 13px;
  margin-top: 14px;
  letter-spacing: 0.2px;
  text-align: center;
}

/* === Категории: только текст, без иконок, крупный жирный === */
#food-categories .category-picture {
  display: none !important;
}
#food-categories .category {
  min-width: auto;
  gap: 0;
  flex-direction: row;
  padding: 9px 16px;
  border-radius: 999px;
  background: #f0f3f7;
  font-size: 14px;
  font-weight: 800;
  color: #14223c;
  letter-spacing: -.2px;
  white-space: nowrap;
  transition: background .2s, color .2s;
}
#food-categories .category[aria-pressed=true] {
  background: #172237;
  color: #f2d184;
}
#food-categories .category-label {
  padding: 0;
  border-radius: 0;
  background: none !important;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: 1;
  white-space: nowrap;
}
#food-categories.food-categories {
  align-items: center;
  gap: 8px;
}
@media(max-width:740px) {
  #food-categories .category {
    font-size: 13px;
    padding: 7px 13px;
  }
}

/* === Яндекс-рейтинг и «Оставить отзыв» — отдельный баннер === */
.yandex-review-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 18px;
  padding: 18px 22px;
  border-radius: 20px;
  background: linear-gradient(120deg, #fff8ea 0%, #fff3d0 100%);
  border: 1px solid #edd89a;
  text-decoration: none;
  color: #241a08;
  transition: filter .2s, transform .15s;
}
.yandex-review-banner:active { transform: scale(.98); }
@media(hover:hover) { .yandex-review-banner:hover { filter: brightness(1.03); } }
.yrb-rating { display: flex; align-items: center; gap: 10px; }
.yrb-stars { font-size: 22px; color: #e8b441; letter-spacing: 2px; }
.yrb-stars span { opacity: .3; }
.yrb-score { font-size: 28px; font-weight: 800; letter-spacing: -1px; color: #14223c; }
.yrb-sub { font-size: 12px; color: #8a6a24; font-weight: 600; white-space: nowrap; }
.yrb-cta { display: flex; align-items: center; gap: 6px; padding: 11px 20px; border-radius: 999px; background: linear-gradient(120deg, #fbe6ae, #d5a03d); color: #241a08; font-size: 14px; font-weight: 800; white-space: nowrap; flex-shrink: 0; }
@media(max-width:560px) {
  .yandex-review-banner {
    padding: 12px 14px;
    gap: 10px;
    flex-wrap: wrap;
  }
  .yrb-rating {
    flex-wrap: wrap;
    gap: 6px 10px;
  }
  .yrb-score { font-size: 22px; }
  .yrb-sub { font-size: 11px; white-space: normal; }
  .yrb-cta {
    padding: 8px 14px;
    font-size: 12px;
    margin-left: auto;
  }
}
@media(max-width:380px) {
  .yandex-review-banner {
    flex-direction: column;
    align-items: stretch;
    text-align: center;
  }
  .yrb-rating {
    justify-content: center;
  }
  .yrb-cta {
    justify-content: center;
    width: 100%;
    margin-left: 0;
  }
}

/* === Текст количества прямо на кнопке «Добавить» === */
.gold-button .add-qty-text {
  display: inline-block;
  line-height: 1;
}
/* Анимация тапа на кнопку «Добавить» */
@keyframes addTap {
  0%   { transform: scale(1); }
  35%  { transform: scale(.85); }
  70%  { transform: scale(1.1); }
  100% { transform: scale(1); }
}
.gold-button.add-tapped { animation: addTap .22s cubic-bezier(.2,1.6,.4,1); }
@keyframes popBump {
  0% { transform: scale(1); }
  50% { transform: scale(1.3); }
  100% { transform: scale(1); }
}
.add-qty-text.bump { animation: popBump .3s cubic-bezier(.2,1.6,.4,1); }

/* === Свайп сегмент доставка/самовывоз === */
.seg-swipe-wrap { position: relative; touch-action: pan-y; }
.seg-hint { text-align: center; font-size: 11px; color: #94a3b8; margin-top: 4px; letter-spacing: .5px; }

/* === HTML-логотип «Золотой Дракон» === */
.html-logo {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  line-height: 1;
  user-select: none;
}
.hl-top {
  display: flex;
  align-items: center;
  gap: 0;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 36px;
  font-weight: bold;
  letter-spacing: 2px;
  background: linear-gradient(180deg, #f5d87a 0%, #d4a240 35%, #9a6b14 65%, #c89a30 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  line-height: 1.05;
}
.hl-emblem {
  width: 36px;
  height: 36px;
  object-fit: cover;
  border-radius: 50%;
  display: inline-block;
  vertical-align: middle;
  margin: 0 2px;
  flex-shrink: 0;
}
.hl-bot {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 13px;
  font-weight: bold;
  letter-spacing: 5px;
  text-transform: uppercase;
  background: linear-gradient(180deg, #e8c55a 0%, #b07920 60%, #d4a240 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin-top: 2px;
}
/* Версия в шапке — компактнее */
.html-logo-sm .hl-top { font-size: 26px; }
.html-logo-sm .hl-emblem { width: 26px; height: 26px; }
.html-logo-sm .hl-bot { font-size: 10px; letter-spacing: 4px; }
/* brand ссылка без стрелок */
.brand { text-decoration: none; }
.brand .html-logo-sm { text-align: center; }
@media(max-width:740px) {
  .hl-top { font-size: 28px; }
  .hl-emblem { width: 28px; height: 28px; }
  .hl-bot { font-size: 11px; letter-spacing: 4px; }
  .html-logo-sm .hl-top { font-size: 22px; }
  .html-logo-sm .hl-emblem { width: 22px; height: 22px; }
  .html-logo-sm .hl-bot { font-size: 9px; letter-spacing: 3px; }
}

/* ==========================================================================
   Мобильный Поиск с Дропдауном и Нечётким Поиском (Fuzzy Search)
   ========================================================================== */
.search { position: relative; z-index: 100; }
.search input { padding-right: 0; }
.search input:not(:placeholder-shown) { padding-right: 28px; }

/* Кнопка очистки текста в поиске */
.search-clear-btn {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #cbd5e1;
  color: #1e293b;
  border: 0;
  font-size: 14px;
  font-weight: 800;
  line-height: 1;
  display: none;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.15s ease, opacity 0.15s ease;
  z-index: 2;
}
.search-clear-btn:hover { background: #94a3b8; color: #fff; }
.search-clear-btn.is-active { display: flex; }

/* Выпадающий список результатов */
.search-dropdown {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  right: 0;
  background: #ffffff;
  border-radius: 20px;
  box-shadow: 0 16px 48px rgba(16, 26, 43, 0.18), 0 2px 10px rgba(0,0,0,0.06);
  border: 1px solid #eef1f4;
  z-index: 910;
  overflow: hidden;
  max-height: min(480px, 70vh);
  display: flex;
  flex-direction: column;
  animation: dropdownIn 0.2s cubic-bezier(0.2, 0.8, 0.2, 1);
}

@keyframes dropdownIn {
  from { opacity: 0; transform: translateY(-8px) scale(0.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.search-dropdown[hidden] { display: none !important; }

.search-dropdown-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  background: #f8fafc;
  border-bottom: 1px solid #f1f5f9;
  font-size: 12px;
  font-weight: 700;
  color: #64748b;
}

.search-close-btn {
  background: none;
  border: 0;
  font-size: 20px;
  color: #94a3b8;
  cursor: pointer;
  line-height: 1;
  padding: 0 4px;
}

.search-dropdown-list {
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 6px 0;
  display: flex;
  flex-direction: column;
}

.search-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 16px;
  cursor: pointer;
  transition: background 0.15s ease;
  text-decoration: none;
  color: inherit;
  border-bottom: 1px solid #f8fafc;
}
.search-item:last-child { border-bottom: 0; }
.search-item:hover, .search-item:active { background: #f8fafc; }

.search-item-img {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  object-fit: cover;
  flex-shrink: 0;
  background: #f1f5f9;
}

.search-item-info {
  flex: 1;
  min-width: 0;
}

.search-item-title {
  font-size: 14px;
  font-weight: 800;
  color: #101a2b;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.search-item-sub {
  font-size: 12px;
  color: #64748b;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.search-item-price {
  font-size: 14px;
  font-weight: 800;
  color: #b47d18;
  white-space: nowrap;
  margin-right: 4px;
}

.search-item-add {
  width: 36px !important;
  height: 36px !important;
  min-height: 36px !important;
  flex: 0 0 36px !important;
}

.search-empty {
  padding: 28px 16px;
  text-align: center;
  color: #94a3b8;
  font-size: 13.5px;
}

/* Оверлей-подложка при открытом поиске */
.search-scrim {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.45);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  z-index: 85;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
}

body.search-open { overflow: hidden !important; }
body.search-open .search-scrim {
  opacity: 1;
  pointer-events: auto;
}

@media (max-width: 740px) {
  .search-dropdown {
    position: fixed;
    top: calc(var(--masthead-h, 68px) + 8px);
    left: 12px;
    right: 12px;
    max-height: calc(100vh - var(--masthead-h, 68px) - 24px - env(safe-area-inset-bottom, 0px));
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
  }
}

@property --border-angle {
  syntax: "<angle>";
  inherits: false;
  initial-value: 0deg;
}

/* Единая информационная плашка: сохраняем композицию, добавляем глубину и бегущий золотой луч по контуру. */
.info-strip{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(207,164,78,.22);
  background:linear-gradient(108deg,#f2f5f8 0%,#fafbfc 54%,#f4f6f8 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 8px 24px rgba(25,44,68,.035);
}
/* Бегущий золотой луч по всему периметру рамки карточки (непрерывно по контуру 360°) */
.info-strip::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  padding:1.5px;
  background:conic-gradient(
    from var(--border-angle, 0deg),
    transparent 0%,
    transparent 78%,
    rgba(180,130,40,0) 82%,
    rgba(212,162,64,0.5) 87%,
    rgba(255,230,150,0.95) 93%,
    rgba(255,255,255,1) 96.5%,
    rgba(255,230,150,0.95) 98.5%,
    rgba(212,162,64,0.5) 99.5%,
    transparent 100%
  );
  -webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;
  mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask-composite:exclude;
  pointer-events:none;
  z-index:2;
  filter:drop-shadow(0 0 3.5px rgba(255,215,100,0.85));
  -webkit-animation:gold-perimeter-beam 4.5s linear infinite;
  animation:gold-perimeter-beam 4.5s linear infinite;
}

@-webkit-keyframes gold-perimeter-beam{
  to{
    --border-angle: 360deg;
  }
}
@keyframes gold-perimeter-beam{
  to{
    --border-angle: 360deg;
  }
}
@media(prefers-reduced-motion:reduce){
  .info-strip::after{ animation:none; -webkit-animation:none; display:none; }
}
.info-strip>*{position:relative;z-index:1}
.info-strip>*+*{border-left-color:#dde4eb}
.info-strip .info-icon{
  background:linear-gradient(145deg,#fff,#fffaf0);
  border:1px solid rgba(214,169,69,.17);
  box-shadow:0 5px 12px rgba(40,52,67,.055),inset 0 1px 0 #fff;
}
.info-strip .info-icon svg{color:#b88018}
.info-strip strong{font-weight:800;letter-spacing:-.15px}
.info-strip small{color:#74839c}
.info-strip>a{transition:color .2s ease,transform .2s ease}
.info-strip>a:hover{color:#9a6b13;transform:translateY(-1px)}
@media(max-width:740px){
  .info-strip .info-icon{box-shadow:0 3px 9px rgba(40,52,67,.05)}
}

/* Первый шаг — чистая корзина: товары, итог и одно понятное действие. */
.checkout-steps{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 16px}
.checkout-cart-stage{padding-top:8px}
.checkout-cart-hint{margin:0 0 16px;padding:13px 15px;border-radius:16px;background:#fff8e9;color:#806125;font-size:13px;line-height:1.45}
.checkout-cart-stage .checkout-next{min-height:58px;margin:0;border-radius:18px;font-size:17px;box-shadow:0 12px 25px rgba(164,113,25,.23)}
.checkout-cart-stage .checkout-next svg{width:21px;height:21px}

/* Второй этап — спокойная форма в стилистике нативного мобильного приложения. */
.checkout-info-stage{margin:0 -24px;padding-bottom:12px;background:#f5f6f8}
.checkout-info-head{position:relative;display:flex;align-items:center;justify-content:center;min-height:66px;padding:0 24px;background:#fff;box-shadow:0 5px 13px rgba(20,33,51,.07)}
.checkout-info-head h2{font-size:25px;letter-spacing:-.6px}
.checkout-back-link{position:absolute;left:18px;display:inline-flex;align-items:center;gap:3px;color:#b47716;font:inherit;font-size:14px;font-weight:700}
.checkout-back-link svg{width:20px;height:20px}
.checkout-info-stage .form-section{margin:10px 0 0;padding:0;border:0;border-radius:0;background:transparent}
.checkout-info-stage .form-section-title{min-height:48px;display:flex;align-items:center;margin:0;padding:0 24px;border:0;background:#eef0f3;color:#202939;font-size:17px;font-weight:800;letter-spacing:-.2px;text-transform:none}
.checkout-info-stage .form-section-title svg{width:21px;height:21px;color:#ba811e}
.checkout-info-stage .field-icon-wrap{margin:0;background:#fff;border-bottom:1px solid #edf0f3}
.checkout-info-stage .field-icon-wrap .field-icon{left:25px;top:18px;color:#7d8591}
.checkout-info-stage .field-icon-wrap .field{min-height:61px;margin:0;padding:20px 18px 9px 57px;border:0;border-radius:0;background:transparent;color:#20242b;font-size:16px;box-shadow:none}
.checkout-info-stage .field-icon-wrap .field::placeholder{color:#a0a6af;opacity:1}
.checkout-info-stage .field-icon-wrap:focus-within{box-shadow:inset 3px 0 0 #d49a30}
.checkout-info-stage .field-icon-wrap:focus-within .field-icon{color:#b47d18}
.checkout-info-stage textarea.field{min-height:106px;line-height:1.4;resize:vertical}
.checkout-info-stage .seg-swipe-wrap{padding:13px 18px;background:#fff}
.checkout-info-stage .seg{margin:0}
.checkout-info-stage .asap-toggle-wrap{margin:0;padding:16px 24px;background:#fff;border-bottom:1px solid #edf0f3}
.checkout-info-stage .sheet-trigger-btn{margin:0;border-radius:0;border:0;border-bottom:1px solid #edf0f3;background:#fff}
.checkout-info-stage .payment-grid{padding:12px 18px;background:#fff}
.checkout-info-stage .change-field-wrap{padding:0 0 12px;background:#fff}
.checkout-info-stage .change-chips{padding:0 18px}
.checkout-info-stage .checkout-stage-actions{display:grid;grid-template-columns:1fr;margin:18px 18px 0;padding:0}
.checkout-info-stage .order-submit{min-height:60px;border-radius:20px;font-size:16px;box-shadow:0 12px 25px rgba(164,113,25,.24)}
@media(max-width:560px){
  .checkout-info-stage{margin:0 -18px}
  .checkout-info-head{min-height:60px}
  .checkout-info-head h2{font-size:23px}
  .checkout-info-stage .form-section-title{padding:0 18px;font-size:16px}
  .checkout-info-stage .field-icon-wrap .field-icon{left:19px}
  .checkout-info-stage .field-icon-wrap .field{padding-left:51px;font-size:15px}
}

/* Точная настройка первого экрана корзины. */
.cart-clear{width:44px;height:44px;padding:0;border:1px solid #f8d5d5;border-radius:50%;background:#fff7f7;display:grid;place-items:center;color:#ec5252}
.cart-clear svg{width:20px;height:20px}.cart-clear:hover{background:#ffeded}
.qty-vpill{height:82px;width:38px;padding:4px;border-color:#dfe6ee;background:#f7f9fb}
.qty-vpill button{width:30px;height:25px}.qty-vpill button.is-remove{color:#d14f4f;font-size:20px;line-height:1}
.quick-order-mode{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:5px;margin:0 0 13px;border:1px solid rgba(255,255,255,.72);border-radius:20px;background:rgba(225,232,240,.65);box-shadow:inset 0 1px 2px rgba(22,37,58,.07),0 8px 20px rgba(45,61,80,.06);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.quick-order-mode button{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;border-radius:16px;color:#6b7890;font-size:13px;font-weight:800;transition:color .23s ease,background .23s ease,box-shadow .23s ease,transform .23s ease}
.quick-order-mode button svg{width:18px;height:18px}.quick-order-mode button.is-active{color:#5d4210;background:linear-gradient(135deg,rgba(255,255,255,.95),rgba(255,247,218,.92));box-shadow:0 3px 10px rgba(51,64,82,.13),inset 0 1px 0 #fff}.quick-order-mode button:active{transform:scale(.97)}
.checkout-cart-hint{display:flex;align-items:flex-start;gap:11px;padding:14px 15px;border:1px solid #f1dfad;background:linear-gradient(120deg,#fff8e8,#fffdf7);box-shadow:0 5px 14px rgba(151,112,37,.06)}
.checkout-cart-hint .checkout-hint-icon{width:30px;height:30px;display:grid;place-items:center;flex:0 0 auto;border-radius:10px;background:#f9df9b;color:#87601a}.checkout-cart-hint .checkout-hint-icon svg{width:18px;height:18px}.checkout-cart-hint strong{display:block;margin:1px 0 3px;color:#644817;font-size:13px}.checkout-cart-hint small{display:block;color:#896b34;font-size:12px;line-height:1.4}
.map-disclosure{overflow:hidden;border:1px solid #e5eaf0;border-radius:22px;background:#fff;box-shadow:0 4px 16px rgba(24,39,58,.035)}
.map-disclosure summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 19px;list-style:none;cursor:pointer;font-size:14px;font-weight:800;color:#273750}.map-disclosure summary::-webkit-details-marker{display:none}.map-disclosure summary>span{display:flex;align-items:center;gap:8px}.map-disclosure summary svg{width:19px;height:19px;color:#b17b1a}.map-disclosure-action{color:#a0711b;font-size:12px}.map-disclosure-action svg{transition:transform .22s ease}.map-disclosure[open] .map-disclosure-action svg{transform:rotate(90deg)}.map-disclosure[open] .map-disclosure-action{font-size:0}.map-disclosure[open] .map-disclosure-action::before{content:'Свернуть';font-size:12px}.map-disclosure .map-card{height:250px;border:0;border-radius:0;box-shadow:none}
.sticky-cart-bar{padding:10px 18px calc(10px + env(safe-area-inset-bottom,0px));border-top:1px solid rgba(209,218,228,.9);background:rgba(255,255,255,.89);box-shadow:0 -10px 28px rgba(16,29,47,.09);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.sticky-cart-info .lbl{color:#8a98aa;font-size:10px;letter-spacing:.8px}.sticky-cart-info strong{font-size:23px;letter-spacing:-.5px}.sticky-order-btn{min-height:48px;padding:0 20px;border-radius:16px;background:linear-gradient(120deg,#fbe7a2,#d8a036);box-shadow:0 7px 16px rgba(178,126,29,.22);font-size:14px;font-weight:800;color:#2c210c}
@media(max-width:560px){.cart-clear{width:39px;height:39px}.quick-order-mode{margin-bottom:11px}.quick-order-mode button{min-height:42px;font-size:12px}.checkout-cart-hint{padding:12px}.map-disclosure summary{padding:15px}.sticky-cart-bar{padding-left:14px;padding-right:14px}.sticky-order-btn{padding:0 15px;font-size:13px}}

/* Шапка и поиск: логотипу достаточно места, поиск остаётся в контексте страницы. */
@media(min-width:741px){.masthead .brand{min-width:220px;margin:0 10px}.masthead .brand img{height:58px!important;max-height:58px}}
.search:focus-within{background:#fff;box-shadow:0 0 0 3px rgba(204,151,52,.16),0 8px 22px rgba(23,38,58,.08)}
.search:focus-within svg{color:#b67d16}.search input{caret-color:#b67d16;font-weight:600}.search input::placeholder{font-weight:500}
.search-dropdown{border-color:#e6d3a5;box-shadow:0 14px 34px rgba(18,32,51,.14);max-height:min(420px,62vh)}
.search-dropdown-header{padding:13px 16px;background:linear-gradient(100deg,#fffbf2,#f8fafc);color:#815f23}.search-dropdown-list{padding:4px 0}.search-item{padding:11px 16px}.search-item:hover,.search-item:active{background:#fffaf0}.search-item-title{font-size:14px}.search-clear-btn{background:#e9c875;color:#44320c}.search-clear-btn:hover{background:#d8ac46;color:#fff}
/* Поиск — лёгкий выпадающий список: не затемняет и не блокирует страницу во время набора. */
body.search-open{overflow:initial!important}.search-scrim{display:none!important}
@media(max-width:740px){.search{min-width:0}.search-dropdown{top:calc(var(--masthead-h,68px) + 6px);box-shadow:0 14px 30px rgba(18,32,51,.18)}}

/* Выдача поиска: компактная, с понятным действием и спокойной иерархией. */
.search-dropdown-header{min-height:54px;padding:12px 17px;font-size:13px;color:#73521a}.search-dropdown-header b{display:inline-grid;place-items:center;min-width:24px;height:24px;margin-right:5px;padding:0 6px;border-radius:8px;background:#f5d888;color:#553b0c}.search-close-btn{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#f0f4f8;color:#7f8fa5;font-size:21px}.search-close-btn:hover{background:#e1e8ef;color:#3b4b61}
.search-item{gap:11px;padding:11px 15px}.search-item-img{width:52px;height:52px;border-radius:15px;box-shadow:0 3px 8px rgba(20,35,52,.08)}.search-item-info{display:flex;flex-direction:column;justify-content:center;gap:2px}.search-item-title{font-size:14px}.search-item-sub{font-size:11px}.search-item-in-cart{display:block;margin-top:2px;color:#a27218;font-size:10px;font-weight:800}
.search-item-price{display:flex;flex-direction:column;align-items:flex-end;margin:0;color:#a87111;font-size:15px;line-height:1.15}.search-item-price small{margin-bottom:2px;color:#9aa6b5;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.search-item-add{width:auto!important;min-width:92px!important;height:38px!important;min-height:38px!important;flex:0 0 92px!important;gap:5px!important;padding:0 10px!important;border-radius:13px!important;font-size:11px!important;box-shadow:0 4px 10px rgba(176,124,28,.18)!important}.search-item-add svg{width:16px!important;height:16px!important}.search-item-add span{display:inline!important}
.money-rolling{animation:moneyRoll .32s cubic-bezier(.2,.9,.25,1)}@keyframes moneyRoll{0%{opacity:.45;transform:translateY(7px);filter:blur(1px)}55%{transform:translateY(-2px)}100%{opacity:1;transform:none;filter:none}}
@media(max-width:560px){.search-item{padding:10px 12px;gap:9px}.search-item-img{width:45px;height:45px;border-radius:12px}.search-item-price{font-size:13px}.search-item-add{min-width:40px!important;width:40px!important;flex-basis:40px!important;padding:0!important;border-radius:50%!important}.search-item-add span{display:none!important}.search-item-add svg{width:18px!important;height:18px!important}}

/* Мобильный поиск ведёт себя как компактный экран приложения. */
@media(max-width:740px){
  .search input{font-size:16px!important;line-height:1.2} /* iOS не увеличивает страницу при фокусе */
  .search{height:48px;border-radius:18px}
  .search-dropdown{top:calc(var(--masthead-h,68px) + 4px);max-height:none;border-radius:18px;box-shadow:0 12px 28px rgba(15,27,45,.16)}
  .search-dropdown-header{min-height:48px;padding:9px 13px;font-size:12px}
  .search-dropdown-header b{min-width:22px;height:22px}
  .search-dropdown-list{padding:0}
  .search-item{min-height:64px;padding:8px 12px}
  .search-item-img{width:42px;height:42px}
  .search-item-title{font-size:13px}.search-item-sub{font-size:10px}.search-item-in-cart{font-size:9px}
  .search-item-price{font-size:12px}.search-item-price small{font-size:8px}
}

/* Мягкий фокус на выдаче: фон деликатно размывается и так же плавно возвращается. */
.search-scrim{display:block!important;background:rgba(19,30,45,.09);backdrop-filter:blur(2.5px);-webkit-backdrop-filter:blur(2.5px);transition:opacity 280ms cubic-bezier(.22,1,.36,1),backdrop-filter 280ms cubic-bezier(.22,1,.36,1),-webkit-backdrop-filter 280ms cubic-bezier(.22,1,.36,1)}
body.search-open .search-scrim{opacity:1;pointer-events:auto}
body.search-open{overflow:initial!important}
@media(prefers-reduced-motion:reduce){.search-scrim{transition:none}}

/* Поиск и его выдача всегда находятся выше слоя размытия. */
body.search-open .masthead{z-index:100}
body.search-open .masthead .search{z-index:101}

/* Очистка корзины — красная текстовая надпись без иконки. */
.cart-clear{width:auto!important;height:auto!important;padding:0!important;border:0!important;border-radius:0;background:transparent!important;color:#dc2626!important;box-shadow:none!important;opacity:1!important;font-weight:600!important;font-size:13.5px!important}
.cart-clear:hover{background:transparent!important;color:#b91c1c!important;opacity:1!important;transform:none!important}

/* Финальная полировка поиска: одна кнопка очистки, ясная шапка и мягкое появление. */
.search input[type="search"]{-webkit-appearance:none;appearance:none}
.search input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none;display:none}
.search-dropdown{
  border:1px solid rgba(212,166,78,.62);
  background:linear-gradient(145deg,rgba(255,255,255,.99),rgba(252,250,245,.98));
  box-shadow:0 22px 56px rgba(15,27,45,.18),0 2px 8px rgba(176,124,28,.12);
  transform-origin:top center;
  animation:searchResultsIn .34s cubic-bezier(.22,1,.36,1);
}
@keyframes searchResultsIn{
  from{opacity:0;transform:translateY(-12px) scale(.975)}
  65%{opacity:1;transform:translateY(1px) scale(1.004)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
.search-dropdown-header{
  min-height:56px;
  padding:12px 18px;
  background:linear-gradient(100deg,#fffaf0,#f6f8fb);
  border-bottom:1px solid #e8edf2;
  color:#654915;
  letter-spacing:-.15px;
}
.search-dropdown-header span{display:flex;align-items:center;gap:7px}
.search-dropdown-header b{margin:0;min-width:26px;height:26px;border-radius:9px;background:linear-gradient(135deg,#f8dd8c,#e6b545);box-shadow:inset 0 1px 0 rgba(255,255,255,.75);color:#4d3509}
.search-dropdown-list{padding:5px 0}
.search-item{transition:background .2s ease,transform .2s ease}
.search-item:hover{background:linear-gradient(90deg,#fffaf0,#fff)}
.search-item:active{transform:scale(.992)}
@media(max-width:740px){
  .masthead .brand{min-width:164px;margin:0 4px}
  .masthead .brand img{height:44px!important;max-height:44px;max-width:164px}
  .search-dropdown{border-radius:20px;animation-duration:.32s}
  .search-dropdown-header{min-height:52px;padding:10px 15px}
}
@media(max-width:430px){
  .masthead .brand{min-width:128px}
  .masthead .brand img{height:38px!important;max-width:128px}
}

/* Логотип в выдвижном меню всегда по центру панели. */
#site-menu > .menu-head{justify-content:center!important}
#site-menu > .menu-head > img{margin-inline:auto}

/* Чистый стык drawer-а: меню скроллится, но техническая полоса не видна. */
.navigation-dialog{scrollbar-width:none;box-shadow:6px 0 20px rgba(10,20,35,.07)}
.navigation-dialog::-webkit-scrollbar{display:none;width:0;height:0}
body.menu-open .main-panel{border-radius:0;box-shadow:-3px 0 16px rgba(10,20,35,.10)}

/* Верхний логотип получает свой размер и не конкурирует с поиском за ширину. */
@media (min-width:431px) and (max-width:740px){
  .masthead{gap:10px}
  .masthead .brand{flex:0 0 184px;min-width:184px;margin:0}
  .masthead .brand img{width:184px;max-width:184px;height:52px!important;max-height:52px;object-fit:contain}
}

/* Знак «Мир»: линии из присланного SVG прорисовываются при выборе карты. */
.pay-card .payment-mir-mark{width:40px;height:26px;color:#94a3b8;overflow:visible}
.pay-card .payment-mir-mark path{fill:none;stroke:currentColor;stroke-width:14;stroke-linecap:round;stroke-linejoin:round}
.pay-card.active .payment-mir-mark{color:#c48716}
.pay-card.active .payment-mir-mark .mir-path-0{stroke-dasharray:571.1;animation:mirDraw 2s ease-in-out .2s both}
.pay-card.active .payment-mir-mark .mir-path-1{stroke-dasharray:493.4;animation:mirDraw 2s ease-in-out .5s both}
.pay-card.active .payment-mir-mark .mir-path-2{stroke-dasharray:1161;animation:mirDraw 2s ease-in-out .8s both}
.pay-card.active .payment-mir-mark .mir-path-3{stroke-dasharray:1457.6;animation:mirDraw 2s ease-in-out 1.1s both}
@keyframes mirDraw{from{stroke-dashoffset:var(--mir-dash);opacity:.2}to{stroke-dashoffset:0;opacity:1}}
.mir-path-0{--mir-dash:571.1}.mir-path-1{--mir-dash:493.4}.mir-path-2{--mir-dash:1161}.mir-path-3{--mir-dash:1457.6}
@media(prefers-reduced-motion:reduce){.pay-card.active .payment-mir-mark path{animation:none!important}}

/* Наличные и перевод: контурные иконки прорисовываются так же, как знак «Мир». */
.pay-card .payment-cash-mark,.pay-card .payment-transfer-mark{width:27px;height:22px;color:#94a3b8;overflow:visible}
.pay-card .payment-cash-mark *,.pay-card .payment-transfer-mark *{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.pay-card.active .payment-cash-mark,.pay-card.active .payment-transfer-mark{color:#c48716}
.pay-card.active .payment-cash-mark .cash-path-0{stroke-dasharray:130;animation:payIconDraw .65s ease-in-out .06s both}
.pay-card.active .payment-cash-mark .cash-path-1{stroke-dasharray:32;animation:payIconDraw .42s ease-in-out .25s both}
.pay-card.active .payment-cash-mark .cash-path-2{stroke-dasharray:16;animation:payIconDraw .3s ease-in-out .4s both}
.pay-card.active .payment-transfer-mark .transfer-path-0{stroke-dasharray:90;animation:payIconDraw .58s ease-in-out .06s both}
.pay-card.active .payment-transfer-mark .transfer-path-1{stroke-dasharray:32;animation:payIconDraw .42s ease-in-out .25s both}
.pay-card.active .payment-transfer-mark .transfer-path-2{stroke-dasharray:32;animation:payIconDraw .42s ease-in-out .42s both}
@keyframes payIconDraw{from{stroke-dashoffset:var(--pay-dash);opacity:.2}to{stroke-dashoffset:0;opacity:1}}
.cash-path-0{--pay-dash:130}.cash-path-1{--pay-dash:32}.cash-path-2{--pay-dash:16}.transfer-path-0{--pay-dash:90}.transfer-path-1,.transfer-path-2{--pay-dash:32}
@media(prefers-reduced-motion:reduce){.pay-card.active .payment-cash-mark *,.pay-card.active .payment-transfer-mark *{animation:none!important}}

/* Стык меню: основной экран приподнят, с мягкой глубокой тенью и закруглённым краем. */
body.menu-open .main-panel{
  border-radius:24px 0 0 24px;
  clip-path:inset(0 0 0 0 round 24px 0 0 24px);
  box-shadow:-18px 0 42px rgba(12,24,42,.20),-1px 0 0 rgba(255,255,255,.78);
}
body.menu-open .navigation-dialog{box-shadow:8px 0 28px rgba(12,24,42,.08)}
@media(max-width:740px){
  body.menu-open .main-panel{
    border-radius:20px 0 0 20px;
    clip-path:inset(0 0 0 0 round 20px 0 0 20px);
    box-shadow:-16px 0 34px rgba(12,24,42,.22),-1px 0 0 rgba(255,255,255,.82);
  }
}

/* Две карточки: меню при открытии лежит поверх края основной страницы. */
body.menu-open .main-panel{
  clip-path:none;
  border-radius:22px 0 0 22px;
  box-shadow:-10px 0 30px rgba(12,24,42,.15),-1px 0 0 rgba(255,255,255,.72);
}
body.menu-open .navigation-dialog{
  z-index:30;
  border-radius:0 22px 22px 0;
  box-shadow:14px 0 38px rgba(12,24,42,.28),2px 0 0 rgba(255,255,255,.7);
  transition:transform 280ms cubic-bezier(.22,1,.36,1),visibility 280ms,box-shadow 280ms cubic-bezier(.22,1,.36,1);
}
@media(max-width:740px){
  body.menu-open .main-panel{border-radius:18px 0 0 18px;box-shadow:-8px 0 26px rgba(12,24,42,.16),-1px 0 0 rgba(255,255,255,.75)}
  body.menu-open .navigation-dialog{border-radius:0 18px 18px 0;box-shadow:12px 0 32px rgba(12,24,42,.30),2px 0 0 rgba(255,255,255,.72)}
}

/* На телефоне меню шире сдвига: оно аккуратно накладывается на правую карточку. */
@media(max-width:740px){
  :root{--drawer-overlap:64px}
  .navigation-dialog{
    width:min(calc(var(--menu-width) + var(--drawer-overlap)),calc(100vw - 18px));
    max-width:none;
  }
  .panel-scrim{
    background:rgba(12,24,42,.055);
    backdrop-filter:blur(3.5px);
    -webkit-backdrop-filter:blur(3.5px);
    transition:opacity 300ms cubic-bezier(.22,1,.36,1),backdrop-filter 300ms cubic-bezier(.22,1,.36,1),-webkit-backdrop-filter 300ms cubic-bezier(.22,1,.36,1);
  }
  body.menu-open .panel-scrim{
    opacity:1;
    pointer-events:auto;
    transition:opacity 300ms cubic-bezier(.22,1,.36,1),backdrop-filter 300ms cubic-bezier(.22,1,.36,1),-webkit-backdrop-filter 300ms cubic-bezier(.22,1,.36,1);
  }
}

/* Синхронный «слой над слоем»: края обеих панелей проходят одинаковую дистанцию. */
@media(max-width:740px){
  :root{--drawer-overlap:24px}
  .navigation-dialog{
    width:min(calc(var(--menu-width) + var(--drawer-overlap)),calc(100vw - 14px));
    transform:translate3d(calc(-100% + var(--drawer-overlap)),0,0);
    transition:transform 310ms cubic-bezier(.22,1,.36,1),visibility 310ms,box-shadow 310ms cubic-bezier(.22,1,.36,1);
  }
  body.menu-open .navigation-dialog{
    transform:translate3d(0,0,0);
    border-radius:0 18px 18px 0;
    box-shadow:12px 0 36px rgba(12,24,42,.29),2px 0 0 rgba(255,255,255,.72);
    transition:transform 310ms cubic-bezier(.22,1,.36,1),visibility 310ms,box-shadow 310ms cubic-bezier(.22,1,.36,1);
  }
  body.menu-open .main-panel{
    border-radius:18px 0 0 18px;
    box-shadow:-7px 0 22px rgba(12,24,42,.15),-1px 0 0 rgba(255,255,255,.76);
    transition:transform 310ms cubic-bezier(.22,1,.36,1),border-radius 310ms cubic-bezier(.22,1,.36,1),box-shadow 310ms cubic-bezier(.22,1,.36,1);
  }
  .panel-scrim{
    background:rgba(12,24,42,.025);
    backdrop-filter:blur(1.8px);
    -webkit-backdrop-filter:blur(1.8px);
    transition:opacity 310ms cubic-bezier(.22,1,.36,1),backdrop-filter 310ms cubic-bezier(.22,1,.36,1),-webkit-backdrop-filter 310ms cubic-bezier(.22,1,.36,1);
  }
  body.menu-open .panel-scrim{transition:opacity 310ms cubic-bezier(.22,1,.36,1),backdrop-filter 310ms cubic-bezier(.22,1,.36,1),-webkit-backdrop-filter 310ms cubic-bezier(.22,1,.36,1)}
}

/* Второй этап — самостоятельный экран: остаётся только информация и итог заказа. */
.checkout-page .cart-rows,.checkout-page #checkout-notice,.checkout-page .cart-head .cart-clear{display:none!important}
.checkout-page .cart-card{padding-top:6px}
.checkout-page .checkout-steps{margin-top:0}

/* Keyboard-safe search: the results belong to the search field, not to the viewport. */
@media(max-width:740px){
  html,body{min-height:100dvh}
  .main-panel{min-height:100dvh}
  .navigation-dialog{height:100dvh;min-height:100dvh}
  .search{position:relative;z-index:101}
  .search-dropdown{
    position:absolute;
    top:calc(100% + 8px);
    right:0;
    left:0;
    max-height:min(360px,50dvh);
    overflow:hidden;
  }
  .search-dropdown-list{max-height:calc(min(360px,50dvh) - 54px)}
  body.search-focused .cart-dock,
  body.search-focused .sticky-cart-bar{
    opacity:0;
    pointer-events:none;
    transform:translate3d(0,calc(100% + env(safe-area-inset-bottom,0px)),0);
  }
}

/* Final mobile motion pass: one long, coherent card-on-card transition. */
@media(max-width:740px){
  .navigation-dialog,
  body.menu-open .navigation-dialog{
    transition:transform 460ms cubic-bezier(.22,.72,.22,1),visibility 460ms,box-shadow 460ms cubic-bezier(.22,.72,.22,1);
  }
  .main-panel,
  body.menu-open .main-panel{
    transition:transform 460ms cubic-bezier(.22,.72,.22,1),border-radius 460ms cubic-bezier(.22,.72,.22,1),box-shadow 460ms cubic-bezier(.22,.72,.22,1);
  }
  .panel-scrim,
  body.menu-open .panel-scrim{
    transition:opacity 460ms cubic-bezier(.22,.72,.22,1),backdrop-filter 460ms cubic-bezier(.22,.72,.22,1),-webkit-backdrop-filter 460ms cubic-bezier(.22,.72,.22,1);
  }
}

/* Mobile search UI redesign */
.mobile-search-panel[hidden] { display:none !important; }
.search-placeholder { visibility:hidden; pointer-events:none; }
@media (max-width:768px) {
  html.search-open, html.search-open body { overflow:hidden !important; overscroll-behavior:none !important; touch-action:none; }
  
  .mobile-search-panel {
    position:fixed; z-index:9999; top:var(--search-offset, 0px); left:0; right:0; bottom:0; inset:0;
    width:100vw; height:var(--search-height, 100dvh);
    display:flex; flex-direction:column; min-width:0; box-sizing:border-box;
    padding-top:env(safe-area-inset-top, 0px); overflow:hidden;
    background:#f8fafc; box-shadow:0 12px 40px rgba(15,23,42,0.18);
  }
  
  .mobile-search-head {
    display:flex; align-items:center; gap:8px; flex-shrink:0;
    padding:10px 14px 4px; background:#f8fafc;
  }
  .mobile-search-head .search {
    height:44px; padding:0 14px; flex:1; min-width:0;
    background:#ffffff; border-radius:100px; border:1px solid #e2e8f0;
    box-shadow:0 2px 8px rgba(15,23,42,0.04); display:flex; align-items:center; gap:8px;
  }
  .mobile-search-head .search input {
    font-size:15px !important; font-weight:500; color:#0f172a; border:0; outline:none; background:transparent; width:100%;
  }
  .mobile-search-head .search svg { width:18px; height:18px; color:#94a3b8; flex-shrink:0; }
  
  .search-close {
    width:40px; height:40px; flex-shrink:0; border:0; background:#ffffff;
    border-radius:50%; color:#b47d18; box-shadow:0 2px 8px rgba(15,23,42,0.05);
    display:grid; place-items:center; cursor:pointer;
  }
  
  .search-summary {
    padding:6px 16px 10px; font-size:12px; font-weight:600; color:#94a3b8; flex-shrink:0;
  }
  
  .search-results {
    min-height:0; flex:1; overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch; padding:4px 14px calc(140px + env(safe-area-inset-bottom, 0px));
  }
  
  /* Карточка блюда в поиске */
  .search-card {
    display:flex; align-items:center; gap:12px; padding:12px; margin-bottom:10px;
    background:#ffffff; border-radius:20px; box-shadow:0 2px 8px rgba(15,23,42,0.04);
    border:1px solid #f1f5f9; min-height:108px; box-sizing:border-box;
  }
  .search-card-img {
    width:84px; height:84px; object-fit:cover; border-radius:16px; flex-shrink:0; background:#f1f5f9;
  }
  .search-card-info {
    flex:1; min-width:0; display:flex; flex-direction:column; justify-content:center;
  }
  .search-card-title-link { color:inherit; text-decoration:none; display:block; }
  .search-card-title {
    font-size:15px; font-weight:700; color:#0f172a; line-height:1.25; margin:0 0 3px;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  }
  .search-card-desc {
    font-size:12px; color:#64748b; line-height:1.35; margin:0;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
    overflow:hidden; overflow-wrap:anywhere;
  }
  .search-card-badges {
    display:flex; align-items:center; gap:5px; margin-top:5px; flex-wrap:wrap;
  }
  .search-badge {
    font-size:10px; font-weight:600; color:#475569; background:#f1f5f9;
    padding:2px 7px; border-radius:8px; white-space:nowrap;
  }
  .search-badge.gold-badge {
    background:#fef3c7; color:#92400e;
  }
  
  .search-card-action {
    display:flex; flex-direction:column; align-items:flex-end; justify-content:center;
    gap:8px; flex-shrink:0; margin-left:auto;
  }
  .search-card-price {
    font-size:16px; font-weight:800; color:#0f172a; white-space:nowrap;
  }
  
  /* Кнопка Добавить в поиске (до добавления) */
  .search-add-btn {
    width:42px; height:42px; border-radius:50%;
    background:linear-gradient(135deg,#fde4a7,#dca842); color:#1e1b13;
    border:0; display:grid; place-items:center; cursor:pointer;
    box-shadow:0 3px 8px rgba(212,162,64,0.2); flex-shrink:0;
    transition:transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
  }
  .search-add-btn:active { transform:scale(0.9); }
  .search-add-btn svg { width:20px; height:20px; stroke-width:2.5; stroke:#1e1b13; }
  
  /* Счётчик количества после добавления (темно-синий пилл) */
  .search-qty-pill {
    min-width:96px; height:42px; border-radius:21px;
    background:#172237; display:flex; align-items:center; justify-content:space-between;
    padding:0 3px; color:#ffffff; box-shadow:0 4px 12px rgba(15,23,42,0.18); flex-shrink:0;
    animation:search-pill-pop 0.22s cubic-bezier(0.34, 1.56, 0.64, 1);
  }
  @keyframes search-pill-pop {
    0% { transform:scale(0.8); opacity:0; }
    100% { transform:scale(1); opacity:1; }
  }
  .search-qty-btn {
    width:34px; height:34px; border-radius:50%; display:grid; place-items:center;
    color:#f5cf75; background:transparent; border:0; cursor:pointer;
    transition:background 0.15s ease, transform 0.15s ease;
  }
  .search-qty-btn:active { background:rgba(255,255,255,0.12); transform:scale(0.9); }
  .search-qty-val {
    font-size:15px; font-weight:800; color:#ffffff; min-width:18px; text-align:center;
  }
}
  


/* Strict anti-zoom and viewport lock rules */
html, body {
  touch-action: manipulation;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
input, select, textarea {
  font-size: 16px !important;
  -webkit-text-size-adjust: 100%;
  touch-action: manipulation;
}

/* === FULFILLMENT CHOICE MODAL (PHOTO 2 EXACT MATCH) === */
.bottom-sheet .sheet-content,
.sheet-fulfillment-content-modern {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  border-radius: 28px 28px 0 0 !important;
  padding: 16px 20px calc(24px + env(safe-area-inset-bottom, 0px)) !important;
}
@media (min-width: 640px) {
  .bottom-sheet .sheet-content,
  .sheet-fulfillment-content-modern {
    max-width: 520px !important;
    margin: 0 auto !important;
  }
}

.sheet-fulfillment-head-modern {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 16px;
  padding: 0 4px;
}
.sheet-fulfillment-title-modern {
  font-size: 20px;
  font-weight: 800;
  color: #111827;
  letter-spacing: -0.4px;
  margin: 0;
}
.sheet-back-btn-modern {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  background: transparent;
  border: none;
  padding: 0;
  margin-bottom: 6px;
  font-size: 13px;
  font-weight: 600;
  color: #b88018;
  cursor: pointer;
  transition: color 0.15s ease;
}
.sheet-back-btn-modern:hover {
  color: #93630f;
  text-decoration: underline;
}
.sheet-close-btn-modern {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #f1f5f9;
  border: none;
  color: #64748b;
  cursor: pointer;
  flex-shrink: 0;
  transition: all 0.15s ease;
}
.sheet-close-btn-modern:hover {
  background: #e2e8f0;
  color: #0f172a;
}
.sheet-close-btn-modern svg {
  width: 20px;
  height: 20px;
}

.fulfillment-cards-row-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 6px;
}
.fulfillment-card-modern {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 165px;
  padding: 16px;
  border-radius: 20px;
  background: #f4f5f7;
  border: 1.5px solid transparent;
  cursor: pointer;
  overflow: hidden;
  text-align: left;
  transition: transform 0.2s ease, background 0.2s ease, border-color 0.2s ease;
}
.fulfillment-card-modern:hover {
  background: #eceef2;
  border-color: #d4a240;
  transform: translateY(-1px);
}
.fulfillment-card-modern:active {
  transform: scale(0.97);
}
.fulfillment-card-title-modern {
  font-size: 18px;
  font-weight: 800;
  color: #111827;
  letter-spacing: -0.3px;
}
.fulfillment-card-img-modern {
  position: absolute;
  right: -4px;
  bottom: -4px;
  width: 122px;
  height: 122px;
  object-fit: contain;
  pointer-events: none;
  mix-blend-mode: multiply;
  border-radius: 12px;
}

.fulfillment-subview {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.fulfillment-address-box {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 8px 0 12px;
}
.fulfillment-input-wrap {
  position: relative;
  display: flex;
  align-items: center;
}
.fulfillment-input-icon {
  position: absolute;
  left: 16px;
  width: 20px;
  height: 20px;
  color: #94a3b8;
  pointer-events: none;
  transition: color 0.2s ease;
}
.fulfillment-input {
  width: 100%;
  height: 52px;
  padding: 0 16px 0 48px;
  background: #f8fafc;
  border: 1.5px solid #e2e8f0;
  border-radius: 16px;
  font-family: inherit;
  font-size: 16px !important;
  color: #0f172a;
  font-weight: 500;
  transition: all 0.2s ease;
}
.fulfillment-input:focus {
  outline: none;
  border-color: #d4a240;
  background: #ffffff;
  box-shadow: 0 0 0 4px rgba(212, 162, 64, 0.18);
}
.fulfillment-input:focus ~ .fulfillment-input-icon,
.fulfillment-input-wrap:focus-within .fulfillment-input-icon {
  color: #d4a240;
}
.fulfillment-btn-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  height: 54px;
  border: none;
  border-radius: 18px;
  background: linear-gradient(135deg, #e5b34c, #c99327);
  color: #ffffff;
  font-family: inherit;
  font-size: 16px;
  font-weight: 700;
  box-shadow: 0 6px 20px rgba(201, 147, 39, 0.32);
  cursor: pointer;
  transition: all 0.2s ease;
}
.fulfillment-btn-submit:hover {
  background: linear-gradient(135deg, #edbd57, #d49c2d);
  box-shadow: 0 8px 24px rgba(201, 147, 39, 0.42);
  transform: translateY(-1px);
}
.fulfillment-btn-submit:active {
  transform: scale(0.97);
}

/* Header Status Fulfillment Slot */
.info-strip-fulfillment-slot {
  cursor: pointer;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.info-strip-fulfillment-slot:hover {
  opacity: 0.92;
}
.info-strip-fulfillment-slot .info-icon svg {
  color: #b88018;
}

/* === CHECKOUT STAGE 2 DESIGN SYSTEM === */
.checkout-info-stage {
  padding: 16px 0 120px;
}
.co-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 20px;
}
.co-back {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: #f1f5f9;
  color: #1e293b;
  border: none;
  cursor: pointer;
  flex-shrink: 0;
  transition: background 0.15s ease, transform 0.15s ease;
}
.co-back:active {
  transform: scale(0.94);
  background: #e2e8f0;
}
.co-back svg {
  width: 20px;
  height: 20px;
}
.co-title {
  font-size: 22px;
  font-weight: 800;
  color: #0f172a;
  letter-spacing: -0.4px;
  margin: 0 0 2px;
  line-height: 1.2;
}
.co-subtitle {
  font-size: 13px;
  color: #64748b;
  margin: 0;
}

/* Cards */
.co-card {
  background: #ffffff;
  border: 1.5px solid #edf0f3;
  border-radius: 22px;
  padding: 18px;
  margin-bottom: 14px;
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.03);
}
.co-card-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
}
.co-card-icon {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: #fffcf5;
  color: #d4a240;
  border: 1px solid #f2e4c2;
  flex-shrink: 0;
}
.co-card-icon svg {
  width: 18px;
  height: 18px;
}
.co-card-title {
  font-size: 16px;
  font-weight: 700;
  color: #0f172a;
  margin: 0;
}

/* Grid & Inputs */
.co-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
@media (max-width: 600px) {
  .co-grid-2 {
    grid-template-columns: 1fr;
  }
}
.co-span-2 {
  grid-column: 1 / -1;
}
.co-input-wrap {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.co-label {
  font-size: 13px;
  font-weight: 600;
  color: #475569;
}
.co-input-box {
  position: relative;
  display: flex;
  align-items: center;
}
.co-input-icon {
  position: absolute;
  left: 14px;
  width: 18px;
  height: 18px;
  color: #94a3b8;
  pointer-events: none;
  transition: color 0.2s ease;
}
.co-input {
  width: 100%;
  height: 50px;
  padding: 0 14px 0 42px;
  background: #f8fafc;
  border: 1.5px solid #e2e8f0;
  border-radius: 14px;
  font-family: inherit;
  font-size: 15px !important;
  color: #0f172a;
  font-weight: 500;
  transition: all 0.2s ease;
}
.co-input:focus {
  outline: none;
  border-color: #d4a240;
  background: #ffffff;
  box-shadow: 0 0 0 3.5px rgba(212, 162, 64, 0.16);
}
.co-input:focus ~ .co-input-icon,
.co-input-box:focus-within .co-input-icon {
  color: #d4a240;
}

/* Segmented Control (Доставка/Самовывоз) */
.co-seg-control {
  display: flex;
  background: #f1f5f9;
  border-radius: 16px;
  padding: 4px;
  gap: 4px;
  border: none;
  margin: 0;
}
.co-seg-item {
  flex: 1;
  position: relative;
  cursor: pointer;
  margin: 0;
}
.co-seg-item input[type="radio"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  pointer-events: none;
}
.co-seg-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 46px;
  font-size: 14px;
  font-weight: 700;
  color: #64748b;
  border-radius: 12px;
  transition: all 0.2s ease;
  user-select: none;
}
.co-seg-btn svg {
  width: 18px;
  height: 18px;
  color: #64748b;
  transition: color 0.2s ease;
}
.co-seg-item input[type="radio"]:checked + .co-seg-btn {
  background: #ffffff;
  color: #0f172a;
  box-shadow: 0 2px 10px rgba(15, 23, 42, 0.08);
}
.co-seg-item input[type="radio"]:checked + .co-seg-btn svg {
  color: #d4a240;
}

/* Pickup Info Box */
.co-pickup-card {
  display: flex;
  gap: 14px;
  padding: 16px;
  background: #fffcf5;
  border: 1.5px solid #f2e4c2;
  border-radius: 18px;
  align-items: flex-start;
}
.co-pickup-icon {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 12px;
  background: #fef5e4;
  color: #d4a240;
  flex-shrink: 0;
}
.co-pickup-icon svg { width: 22px; height: 22px; }
.co-pickup-text {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.co-pickup-text strong {
  font-size: 15px;
  font-weight: 700;
  color: #0f172a;
}
.co-pickup-text span {
  font-size: 13px;
  color: #64748b;
}
.co-pickup-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: 6px;
  font-size: 12px;
  font-weight: 700;
  color: #926012;
  background: #fef5e4;
  padding: 4px 10px;
  border-radius: 20px;
  width: fit-content;
}
.co-pickup-badge svg { width: 14px; height: 14px; }

/* Option Cards (Время доставки) */
.co-time-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
@media (max-width: 520px) {
  .co-time-grid { grid-template-columns: 1fr; }
}
.co-option-card {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border: 1.5px solid #e2e8f0;
  border-radius: 16px;
  background: #f8fafc;
  cursor: pointer;
  text-align: left;
  transition: all 0.2s ease;
  width: 100%;
}
.co-option-icon {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: #ffffff;
  color: #64748b;
  flex-shrink: 0;
  border: 1px solid #e2e8f0;
}
.co-option-icon svg { width: 18px; height: 18px; }
.co-option-content {
  flex: 1;
  display: flex;
  flex-direction: column;
}
.co-option-content strong {
  font-size: 14px;
  font-weight: 700;
  color: #0f172a;
}
.co-option-content span {
  font-size: 12px;
  color: #64748b;
}
.co-option-check, .co-option-arrow {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #f1f5f9;
  color: #94a3b8;
  flex-shrink: 0;
  transition: all 0.2s ease;
}
.co-option-check svg, .co-option-arrow svg { width: 14px; height: 14px; }
.co-option-card.is-active {
  border-color: #d4a240;
  background: #fffdf7;
  box-shadow: 0 4px 14px rgba(212, 162, 64, 0.1);
}
.co-option-card.is-active .co-option-icon {
  background: #fff8e9;
  color: #d4a240;
  border-color: #f2e4c2;
}
.co-option-card.is-active .co-option-check {
  background: #d4a240;
  color: #ffffff;
}

/* Payment Grid */
.co-pay-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
@media (max-width: 480px) {
  .co-pay-grid { grid-template-columns: 1fr; }
}
.co-pay-card {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 50px;
  padding: 8px 12px;
  border: 1.5px solid #e2e8f0;
  border-radius: 14px;
  background: #f8fafc;
  cursor: pointer;
  transition: all 0.2s ease;
}
.co-pay-card .co-pay-icon, .co-pay-card svg {
  width: 20px;
  height: 20px;
  color: #64748b;
  transition: color 0.2s ease;
}
.co-pay-card span {
  font-size: 13.5px;
  font-weight: 700;
  color: #334155;
  white-space: nowrap;
}
.co-pay-card.active {
  border-color: #d4a240;
  background: #fffdf7;
  box-shadow: 0 4px 12px rgba(212, 162, 64, 0.12);
}
.co-pay-card.active svg { color: #d4a240; }
.co-pay-card.active span { color: #0f172a; }

/* Cash Change Chips */
.co-change-box {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid #f1f5f9;
}
.co-change-title {
  font-size: 13px;
  font-weight: 600;
  color: #475569;
  margin-bottom: 10px;
}
.co-chips-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.co-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 38px;
  padding: 0 16px;
  border: 1.5px solid #e2e8f0;
  border-radius: 99px;
  background: #ffffff;
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 600;
  color: #334155;
  cursor: pointer;
  transition: all 0.2s ease;
}
.co-chip:hover {
  border-color: #cbd5e1;
  background: #f8fafc;
}
.co-chip.active {
  background: #0f172a;
  color: #ffffff;
  border-color: #0f172a;
}

/* Summary Card */
.co-summary {
  background: #ffffff;
  border: 1.5px solid #edf0f3;
  border-radius: 22px;
  padding: 20px;
  box-shadow: 0 4px 20px rgba(15, 23, 42, 0.04);
}
.co-summary-title {
  font-size: 18px;
  font-weight: 800;
  color: #0f172a;
  margin: 0 0 14px;
}
.co-summary-rows {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 14px;
}
.co-summary-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 14px;
  color: #64748b;
}
.co-summary-row strong {
  font-size: 15px;
  font-weight: 700;
  color: #0f172a;
}
.co-summary-divider {
  height: 1px;
  background: #e2e8f0;
  border-style: dashed;
  margin: 14px 0;
}
.co-summary-total {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 16px;
}
.co-summary-total span {
  font-size: 16px;
  font-weight: 700;
  color: #0f172a;
}
.co-summary-total strong {
  font-size: 26px;
  font-weight: 800;
  color: #0f172a;
  letter-spacing: -0.5px;
}
.co-more-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 48px;
  border: 1.5px solid #f2e4c2;
  border-radius: 14px;
  background: #fffcf5;
  color: #926012;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.2s ease;
}
.co-more-link:hover {
  background: #fef5e4;
  border-color: #d4a240;
}

/* Clean Premium Delivery Sheet UI */
.sheet-fulfillment-delivery-premium {
  background: #ffffff;
  padding: 0 4px 16px;
  font-family: inherit;
  user-select: none;
}
.sheet-top-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}
.sheet-back-gold {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: transparent;
  border: none;
  font-size: 15px;
  font-weight: 500;
  color: #9d6b1f;
  cursor: pointer;
  padding: 4px 0;
  font-family: inherit;
  transition: opacity 0.15s ease;
  -webkit-tap-highlight-color: transparent;
}
.sheet-back-gold:hover,
.sheet-back-gold:active {
  opacity: 0.8;
}
.sheet-close-circle {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #f1f5f9;
  border: none;
  color: #334155;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.15s ease, transform 0.15s ease;
  -webkit-tap-highlight-color: transparent;
}
.sheet-close-circle:active {
  transform: scale(0.92);
  background: #e2e8f0;
}
.sheet-hero-row.clean-hero {
  margin-bottom: 16px;
}
.sheet-hero-title {
  font-family: inherit;
  font-size: 28px;
  font-weight: 800;
  color: #0f172a;
  margin: 0 0 4px;
  letter-spacing: -0.5px;
  line-height: 1.2;
}
.sheet-hero-subtitle {
  font-size: 15px;
  color: #64748b;
  margin: 0;
  font-weight: 400;
  line-height: 1.35;
}

/* Modern Address Form Inputs */
.modern-input-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  height: 52px;
  padding: 0 16px;
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
  box-sizing: border-box;
  width: 100%;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.modern-input-card:focus-within {
  border-color: #d4a34b !important;
  box-shadow: 0 0 0 3px rgba(212, 163, 75, 0.12) !important;
}
.modern-input-icon {
  width: 18px;
  height: 18px;
  color: #94a3b8;
  flex-shrink: 0;
}
.modern-address-input {
  flex: 1;
  min-width: 0;
  border: none !important;
  background: transparent !important;
  outline: none !important;
  box-shadow: none !important;
  font-size: 15px;
  font-weight: 500;
  color: #0f172a;
  font-family: inherit;
  padding: 0;
  margin: 0;
}
.modern-address-input::placeholder {
  color: #64748b;
  font-weight: 400;
}
.modern-input-clear {
  width: 26px;
  height: 26px;
  border: none;
  background: transparent;
  font-size: 13px;
  color: #94a3b8;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border-radius: 50%;
  transition: color 0.15s, background 0.15s;
}
.modern-input-clear:hover,
.modern-input-clear:active {
  color: #0f172a;
  background: #f1f5f9;
}
.modern-input-row-3 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 10px;
  width: 100%;
}
.modern-input-card.mini-card {
  height: 50px;
  padding: 0 8px;
  gap: 6px;
  margin-bottom: 0;
  min-width: 0;
  width: 100%;
  box-sizing: border-box;
}
.modern-input-card.mini-card .modern-input-icon {
  width: 16px;
  height: 16px;
}
.modern-input-card.mini-card .modern-address-input {
  font-size: 13.5px;
}
.modern-geo-btn {
  background: #ffffff;
  border: 1px solid #ebdcc5;
  border-radius: 16px;
  height: 50px;
  padding: 0 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 4px;
  margin-bottom: 2px;
  width: 100%;
  box-sizing: border-box;
  cursor: pointer;
  transition: background 0.15s ease, transform 0.15s ease;
  font-family: inherit;
  -webkit-tap-highlight-color: transparent;
}
.modern-geo-btn:active {
  transform: scale(0.98);
  background: #fdfbf7;
}
.modern-geo-left {
  display: flex;
  align-items: center;
  gap: 10px;
}
.modern-geo-icon {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}
.modern-geo-left span {
  font-size: 14px;
  font-weight: 600;
  color: #854d0e;
}
.modern-geo-chevron {
  width: 14px;
  height: 14px;
  color: #92400e;
}
.modern-fulfillment-submit-btn {
  width: 100%;
  height: 54px;
  background: linear-gradient(135deg, #f5c862 0%, #e5a534 100%);
  color: #0f172a;
  border: none;
  border-radius: 20px;
  font-size: 16px;
  font-weight: 800;
  font-family: inherit;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 4px 16px rgba(229, 165, 52, 0.25);
  transition: transform 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
  margin-top: 14px;
}
.modern-fulfillment-submit-btn:active {
  transform: scale(0.98);
  box-shadow: 0 2px 8px rgba(229, 165, 52, 0.2);
  filter: brightness(0.97);
}
.modern-security-note {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-top: 14px;
  font-size: 12.5px;
  color: #64748b;
  font-weight: 500;
}
.modern-lock-icon {
  width: 13px;
  height: 13px;
  color: #94a3b8;
}

/* Metallic Gold Animated Swipe Button */
@keyframes gold-flow {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

/* Dynamic Elastic Bounce Nudge Animation for Swipe Handle */
@keyframes handle-nudge-bounce {
  0%, 70%, 100% {
    transform: translate3d(0, 0, 0) scale(1);
  }
  80% {
    transform: translate3d(26px, 0, 0) scale(1.08);
  }
  88% {
    transform: translate3d(12px, 0, 0) scale(1.02);
  }
  94% {
    transform: translate3d(20px, 0, 0) scale(1.04);
  }
}

/* Premium Swipe-to-Confirm Component */
.prem-swipe-container {
  width: 100%;
  position: relative;
  user-select: none;
  -webkit-user-select: none;
  touch-action: pan-y;
  box-sizing: border-box;
}

.prem-swipe-track {
  position: relative;
  width: 100%;
  height: 64px;
  border-radius: 32px;
  background: linear-gradient(135deg, #fdedc9 0%, #f3d489 50%, #dfa83d 100%);
  box-shadow: 0 4px 14px rgba(180, 130, 30, 0.14), inset 0 1px 0 rgba(255, 255, 255, 0.85);
  border: 1px solid rgba(212, 162, 64, 0.28);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  box-sizing: border-box;
  padding: 5px;
}

.prem-swipe-fill {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 64px;
  border-radius: 32px;
  background: linear-gradient(90deg, #e3a938 0%, #fbe4a3 100%);
  opacity: 0.85;
  pointer-events: none;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6);
  will-change: width;
}

.prem-swipe-text {
  position: absolute;
  left: 0;
  right: 0;
  margin: 0 auto;
  text-align: center;
  font-size: 15px;
  font-weight: 700;
  color: #3b2707;
  letter-spacing: -0.2px;
  pointer-events: none;
  z-index: 2;
  white-space: nowrap;
  user-select: none;
  -webkit-user-select: none;
  will-change: opacity;
}

.prem-swipe-handle {
  position: absolute;
  left: 5px;
  top: 5px;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: linear-gradient(135deg, #182232 0%, #0b121e 100%);
  border: 1px solid rgba(247, 210, 130, 0.35);
  box-shadow: 0 4px 12px rgba(10, 18, 30, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.15);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: grab;
  z-index: 3;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
  will-change: transform;
}

.prem-swipe-handle:active,
.prem-swipe-handle.is-dragging {
  cursor: grabbing;
}

.swipe-handle-icon {
  width: 22px;
  height: 22px;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -11px;
  margin-left: -11px;
  transition: transform 0.22s ease-out, opacity 0.2s ease-out;
  pointer-events: none;
}

.swipe-arrow {
  opacity: 1;
  transform: scale(1);
  color: #f7d282;
}

.swipe-check {
  opacity: 0;
  transform: scale(0.5);
  color: #ffffff;
}

.prem-swipe-container.is-confirmed .prem-swipe-track {
  background: linear-gradient(135deg, #22c55e 0%, #15803d 100%);
  box-shadow: 0 4px 16px rgba(34, 197, 94, 0.28);
  border-color: rgba(34, 197, 94, 0.4);
}

.prem-swipe-container.is-confirmed .prem-swipe-text {
  color: #ffffff;
}

.prem-swipe-container.is-confirmed .prem-swipe-handle {
  background: #ffffff;
  border-color: #ffffff;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.12);
}

.prem-swipe-container.is-confirmed .swipe-arrow {
  opacity: 0;
  transform: scale(0.5);
}

.prem-swipe-container.is-confirmed .swipe-check {
  opacity: 1;
  transform: scale(1);
  color: #15803d;
}
.prem-security-note {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-top: 14px;
  font-size: 13px;
  color: #64748b;
  font-weight: 500;
}

/* Confetti Lottie Success Overlay */
.confetti-lottie-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 10000;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  background: rgba(15, 23, 42, 0.12);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  opacity: 0;
  transition: opacity 0.3s ease;
}
.confetti-lottie-box {
  width: 280px;
  height: 280px;
  max-width: 80vw;
  max-height: 80vw;
  pointer-events: none;
  display: flex;
  align-items: center;
  justify-content: center;
}
.confetti-lottie-box svg {
  width: 100% !important;
  height: 100% !important;
  display: block;
}

/* ==========================================================================
   PICKUP VIEW (САМОВЫВОЗ) - REFINED MINIMALIST UI
   ========================================================================== */
.sheet-fulfillment-delivery-premium {
  display: flex;
  flex-direction: column;
  max-height: calc(85vh - 36px);
  overflow: hidden;
}

.sheet-scroll-body {
  flex: 1;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  padding-right: 2px;
}

.sheet-sticky-footer {
  position: sticky;
  bottom: 0;
  background: #ffffff;
  padding-top: 10px;
  padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid #f8fafc;
  z-index: 20;
  margin-top: 8px;
}
.sheet-sticky-footer .prem-swipe-container {
  margin-bottom: 0;
}

/* Subtle Quiet Navigation Links */
.sheet-back-quiet {
  background: transparent;
  border: 0;
  padding: 0;
  font-size: 13.5px;
  font-weight: 500;
  color: #64748b;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  cursor: pointer;
  transition: color 0.15s ease;
  -webkit-tap-highlight-color: transparent;
  font-family: inherit;
}
.sheet-back-quiet:hover,
.sheet-back-quiet:active {
  color: #0f172a;
}

.sheet-close-quiet {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #f1f5f9;
  color: #475569;
  border: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.15s ease, transform 0.15s ease;
  -webkit-tap-highlight-color: transparent;
}
.sheet-close-quiet:active {
  transform: scale(0.92);
  background: #e2e8f0;
}

/* Compact Premium Restaurant Card */
.pickup-restaurant-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  padding: 14px 16px;
  margin-bottom: 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.03);
}

.pickup-restaurant-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.pickup-restaurant-name {
  font-size: 16px;
  font-weight: 700;
  color: #0f172a;
  margin: 0;
  font-family: inherit;
}

.pickup-route-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 13.5px;
  font-weight: 600;
  color: #b88018;
  text-decoration: none;
  transition: opacity 0.15s ease;
  -webkit-tap-highlight-color: transparent;
}
.pickup-route-link:hover,
.pickup-route-link:active {
  opacity: 0.8;
}

.pickup-restaurant-address-row {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  color: #475569;
  font-weight: 500;
  font-family: inherit;
}

.pickup-restaurant-status-row {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: #64748b;
  font-weight: 500;
  margin-top: 1px;
}

.pickup-status-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #10b981;
  display: inline-block;
  flex-shrink: 0;
}

.pickup-dot-sep {
  color: #cbd5e1;
  font-size: 14px;
}

/* Time Selection Section */
.pickup-section-title {
  font-size: 16px;
  font-weight: 700;
  color: #0f172a;
  margin: 18px 0 10px;
}

.pickup-time-options-group {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 12px;
}

.pickup-time-option {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  padding: 12px 16px;
  display: flex;
  align-items: center;
  gap: 14px;
  cursor: pointer;
  transition: border-color 0.2s ease, background 0.2s ease;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
  min-height: 56px;
}

.pickup-time-option.selected {
  border: 1.5px solid #d4a34b !important;
  background: #fdfbf7 !important;
}

.pickup-radio-indicator {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  border: 1.5px solid #cbd5e1;
  background: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
  flex-shrink: 0;
}

.pickup-time-option.selected .pickup-radio-indicator {
  background: #b88018;
  border-color: #b88018;
}

.pickup-check-icon {
  width: 14px;
  height: 14px;
  color: #ffffff;
  stroke: #ffffff;
  stroke-width: 3;
  opacity: 0;
  transform: scale(0.5);
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.pickup-time-option.selected .pickup-check-icon {
  opacity: 1;
  transform: scale(1);
}

.radio-dot {
  display: none;
}

.pickup-time-text {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.pickup-time-title {
  font-size: 15px;
  font-weight: 700;
  color: #0f172a;
  line-height: 1.25;
}

.pickup-time-sub {
  font-size: 13px;
  color: #64748b;
  margin-top: 2px;
  font-weight: 500;
}

.pickup-time-option.selected .pickup-time-sub {
  color: #85540c;
}

.pickup-chevron {
  width: 16px;
  height: 16px;
  color: #94a3b8;
  transition: transform 0.2s ease, color 0.2s ease;
  flex-shrink: 0;
}

.pickup-chevron.open,
.pickup-time-option.selected .pickup-chevron {
  color: #b88018;
  transform: rotate(90deg);
}

/* Time Slot Picker Grid */
.pickup-time-picker-wrap {
  background: #ffffff;
  border: 1px solid #f0ece3;
  border-radius: 14px;
  padding: 12px;
  margin-top: -2px;
  margin-bottom: 8px;
  animation: fadeInDown 0.2s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.pickup-time-picker-head {
  font-size: 12px;
  font-weight: 600;
  color: #8c8275;
  margin-bottom: 8px;
}

.pickup-time-slots-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 6px;
  max-height: 150px;
  overflow-y: auto;
  padding-right: 2px;
}

@media (max-width: 380px) {
  .pickup-time-slots-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.pickup-slot-btn {
  height: 36px;
  border-radius: 10px;
  border: 1px solid #e2e8f0;
  background: #f8fafc;
  color: #1e293b;
  font-size: 13px;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.15s ease;
  -webkit-tap-highlight-color: transparent;
}

.pickup-slot-btn:active {
  transform: scale(0.96);
}

.pickup-slot-btn.active {
  border: 1.5px solid #b88018 !important;
  background: #fdf6e3 !important;
  color: #85540c !important;
  font-weight: 700 !important;
}

/* Sticky CTA Confirm Button */
.pickup-cta-btn {
  width: 100%;
  height: 54px;
  background: linear-gradient(135deg, #d4a34b 0%, #b88018 100%);
  color: #ffffff;
  border: none;
  border-radius: 22px;
  font-size: 16px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  cursor: pointer;
  box-shadow: 0 6px 20px rgba(184, 128, 24, 0.22);
  transition: transform 0.15s ease, box-shadow 0.15s ease, opacity 0.2s ease;
  -webkit-tap-highlight-color: transparent;
}

.pickup-cta-btn:active {
  transform: scale(0.98);
  box-shadow: 0 3px 10px rgba(184, 128, 24, 0.18);
}

.product-photo--contain {
  background: #f0f2f4;
}

.product-photo--contain img {
  object-fit: contain;
  padding: 8px;
}

/* Emerald and warm gold tie the tubus cutout to the restaurant's branding. */
.promo-banner.banner-tubus {
  background:
    radial-gradient(ellipse at 80% 48%, rgb(237 185 82 / 25%) 0%, transparent 34%),
    radial-gradient(ellipse at 58% 4%, rgb(75 139 103 / 29%) 0%, transparent 52%),
    linear-gradient(118deg, #174238 0%, #12352f 52%, #0b2724 100%);
  border: 1px solid rgb(236 201 125 / 46%);
  box-shadow: 0 8px 24px rgb(7 33 27 / 22%);
  color: #fff;
}

.promo-banner.banner-tubus .c1 {
  width: 220px;
  height: 220px;
  top: -78px;
  right: 10%;
  background: rgb(238 188 87 / 20%);
  filter: blur(42px);
}

.promo-banner.banner-tubus .c2 {
  width: 180px;
  height: 180px;
  left: 42%;
  bottom: -100px;
  background: rgb(75 146 109 / 24%);
  filter: blur(38px);
}

.promo-banner.banner-tubus .banner-title-line1,
.promo-banner.banner-tubus .banner-title-line2 {
  color: #fff;
}

.promo-banner.banner-tubus .coupon-dashed {
  border-color: rgb(255 244 215 / 84%);
  background: rgb(255 255 255 / 8%);
}

.promo-banner.banner-tubus .coupon-label,
.promo-banner.banner-tubus .coupon-sub {
  color: rgb(255 255 255 / 94%);
  opacity: 1;
}

.promo-banner.banner-tubus .coupon-code {
  color: #fff;
}

.promo-banner.banner-tubus .banner-sticker-wrapper {
  filter: drop-shadow(0 11px 8px rgb(0 0 0 / 26%)) drop-shadow(0 0 12px rgb(231 183 85 / 22%));
}

@media (min-width: 741px) {
  .promo-banner.banner-tubus .banner-sticker-wrapper {
    width: 172px;
    height: 145px;
  }
}
