/* ============================================================
   Miami — reconstructed stylesheet
   Deep forest green + kraft beige, brush-script headings.
   ============================================================ */

:root{
  --green-deep:#0E3D00;
  --green:#15521b;
  --green-soft:#2f8a3e;
  --beige-bg:#f3ead4;
  --beige-2:#ece0c4;
  --beige-warm:#e6d8b6;
  --cream:#f3ead4;
  --paper:#faf8f3;
  --ink:#3a3a38;
  --ink-2:#6b6857;
  --ink-3:#76735f;

  --brand-white:#FFFFFF;
  --brand-apple-black:#111111;
  --brand-google-blue:#4285F4;
  --brand-google-green:#34A853;
  --brand-google-yellow:#FBBC05;
  --brand-google-red:#EA4335;
  --brand-yandex-red:#FC3F1D;
  --brand-facebook-blue:#0866FF;
  --brand-telegram-blue:#2AABEE;
  --line:rgba(160,130,50,.18);
  --line-2:rgba(160,130,50,.20);
  --pink:#f4a6b5;
  --info:#2A6F7D;
  --radius:16px;
  --radius-lg:22px;
  --radius-sm:11px;
  --shadow-sm:0 1px 2px rgba(30,26,10,.06);
  --shadow:0 6px 22px rgba(40,34,12,.10);
  --shadow-lg:0 20px 60px rgba(30,26,10,.22);
  --topbar-h:64px;
  --catbar-h:62px;
  /* Высота служебного «шапки» устройства в инструменте предпросмотра
     вьюпортов (заголовок + отступы вокруг iframe) — реальное значение
     из верстки ViewportFrame в app.jsx. */
  --frame-chrome-h:86px;
  /* defaults; JS overrides --accent / --accent-text */
  --accent:#0E3D00;
  --accent-text:#F9F2DB;
  --maxw:2000px;
}

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  font-family:'Mulish',"Segoe UI",system-ui,-apple-system,sans-serif;
  background:var(--beige-bg);
  color:var(--ink);
  font-size:15px;
  line-height:1.45;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body[data-bg="dark"]{
  --beige-bg:#16170f;
  --beige-2:#1e2015;
  --beige-warm:#23261a;
  --cream:#1c1e13;
  --paper:#20241a;
  --ink:#f3eeda;
  --ink-2:#b8b39c;
  --ink-3:#807d68;
  --line:rgba(255,250,230,.16);
  --line-2:rgba(255,250,230,.18);
  background:var(--beige-bg);
  color:var(--ink);
}
img{max-width:100%;display:block;}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;user-select:none;-webkit-user-select:none;}
/* clickable controls that aren't <button> but should behave like one —
   quantity steppers, price/qty pills, chips, tabs, radio/toggle rows —
   must not be text-selectable on drag. */
.stepper,.pm-stepper,.price-pill,.pm-pill,.pb-qty,.pb-pill,.extra-ctrl,
.cart-chip,.co-pay-chip,.city-tab,.acc-channel-tab,.co-rest,.aa-main,
.addr-check,.acc-toggle-row,.badge-ico{user-select:none;-webkit-user-select:none;}
a{color:inherit;text-decoration:none;}
a:hover{color:var(--ink-2);}
input,textarea{font-family:inherit;font-size:inherit;color:inherit;}
::selection{background:var(--green-deep);color:var(--cream);}

/* Visible keyboard focus everywhere — buttons/links only show it for
   keyboard nav (not mouse clicks), matching the DS focus token. */
button:focus-visible,a:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--green-deep);outline-offset:2px;border-radius:8px;
}

/* Main page scrollbar — native scrollbar fully hidden (zero width, so it
   never reserves layout space and never causes a jump). A custom overlay
   thumb is drawn instead, positioned fixed over the page (see data.js). */
html{scrollbar-width:none;}
body::-webkit-scrollbar{width:0;height:0;display:none;}
/* аудит 26.09, п.42: полоса не ловит касания и клики — только сам бегунок;
   на сенсорных экранах ее нет совсем (там своя прокрутка) */
#custom-scrollbar-track{position:fixed;top:0;right:0;width:28px;height:100%;z-index:9999;pointer-events:none;}
@media (pointer:coarse){#custom-scrollbar-track{display:none;}}
/* 27.09: толщина растет по мере приближения курсора к краю — --sb-grow 0..1
   ставит customScrollbar.js; на самом язычке и при перетаскивании — полная */
#custom-scrollbar-thumb{
  --sb-grow:0;
  position:absolute;right:calc(2px - 1px * var(--sb-grow));width:calc(3px + 9px * var(--sb-grow));
  min-height:24px;border-radius:99px;
  background:var(--green-deep);opacity:0;pointer-events:auto;cursor:grab;
  transition:opacity .2s ease,width .12s ease,right .12s ease;
}
#custom-scrollbar-thumb.visible{opacity:1;}
@media (hover:hover) and (pointer:fine){
  #custom-scrollbar-thumb:hover{width:12px;right:1px;}
}
#custom-scrollbar-thumb.active{width:12px;right:1px;}
#custom-scrollbar-thumb.active{background:var(--green);cursor:grabbing;}

.script{
  font-family:'Mulish',"Segoe UI",system-ui,-apple-system,sans-serif;
  font-weight:700;
  letter-spacing:.01em;
  line-height:1;
}

/* ============================================================ TOPBAR */
.topbar{
  position:sticky;top:0;z-index:120;
  background:var(--beige-bg);
  /* side padding matches .shell so header content lines up with the central column */
  padding:0 22px;
  /* one shared, fluid side-padding for every header sector (logo / info blocks / buttons) */
  --hpad:clamp(16px, 3vw, 72px);
}
.topbar-wave{display:none;}
.banner-bar{
  max-width:var(--maxw);margin:0 auto;
  height:var(--topbar-h);
  display:flex;align-items:center;gap:0;
  padding:0;
  position:relative;
}
.header-left{display:flex;align-items:center;gap:0;align-self:stretch;}
.hamburger{
  position:relative;align-self:stretch;width:var(--topbar-h);
  display:grid;place-items:center;color:var(--ink);
  /* pull the button left so the 22px menu glyph aligns with the content column edge */
  margin-left:calc((22px - var(--topbar-h))/2);
}
/* hover pill sized like the contact/user chips' hover highlight, not a full-height square */
.hamburger::before{
  content:"";position:absolute;top:10px;right:10px;bottom:10px;left:10px;
  border-radius:15px;background:var(--beige-2);
  opacity:0;transform:scale(.97);transition:opacity .15s ease,transform .15s ease;
  z-index:0;pointer-events:none;
}
.hamburger:hover::before,.hamburger:active::before{opacity:1;transform:scale(1);}
.hamburger>*{position:relative;z-index:1;}
.topbar.scrolled .hamburger::before{
  top:50%;left:50%;right:auto;bottom:auto;width:38px;height:38px;border-radius:13px;
  transform:translate(-50%,-50%) scale(.82);
}
.topbar.scrolled .hamburger:hover::before,.topbar.scrolled .hamburger:active::before{transform:translate(-50%,-50%) scale(1);}
.logo{display:flex;align-items:center;color:var(--ink);padding:0 var(--hpad) 0 12px;align-self:stretch;}
.header-info{
  display:flex;align-items:center;gap:14px;
  flex:1;justify-content:center;font-size:13px;color:var(--ink-2);
}
.header-info b{color:var(--ink);font-weight:600;}
.header-center{position:relative;flex:1;min-width:0;overflow:hidden;align-self:stretch;display:flex;align-items:center;}
.header-center>.header-info{position:absolute;inset:0;justify-content:center;flex:none;transition:opacity .22s ease;}
.header-cats{position:absolute;inset:0;display:flex;align-items:center;gap:14px;padding-left:19px;opacity:0;pointer-events:none;transition:opacity .22s ease;}
.header-cats .cats{flex:1;min-width:0;}
.topbar.shadow{box-shadow:0 6px 20px rgba(40,34,12,.07);}
.topbar.scrolled .header-center{flex:1;overflow:visible;}
.topbar.scrolled .header-center>.header-info{opacity:0;pointer-events:none;}
.topbar.scrolled .header-cats{opacity:1;pointer-events:auto;}

/* ---- scrolled header only: drop the city/hours blocks so categories get the
   full width ---- */
.topbar.scrolled .hi-block{display:none;}
.topbar.scrolled .header-cats .cats{flex:1;}
.hi-sep{display:none;}
.hi-block{
  flex:none;display:flex;align-items:center;align-self:stretch;
  padding:0 18px;
  font-size:13.5px;color:var(--ink-2);white-space:nowrap;
}
.hi-block:first-of-type{padding-left:8px;}
.hi-block b{color:var(--ink);font-weight:600;}
.header-mid{display:flex;align-items:center;gap:0;flex:none;align-self:stretch;}
.header-right{display:flex;align-items:center;justify-content:flex-end;gap:0;width:auto;flex:none;align-self:stretch;}

/* mode-switch — pill shape, same language as user-chip */
.mode-switch{
  display:flex;align-items:stretch;
  height:40px;
  background:var(--paper);border:1px solid var(--line-2);
  border-radius:15px;overflow:hidden;box-shadow:var(--shadow-sm);
}
.mode-switch button{
  height:100%;padding:0 17px;font-size:13.5px;font-weight:700;color:var(--ink);
  transition:background .14s,color .14s,transform .04s;white-space:nowrap;
  border-left:1px solid var(--line-2);
}
.mode-switch button:first-child{border-left:none;border-radius:15px 0 0 15px;}
.mode-switch button:hover,.mode-switch button:active{background:var(--beige-2);color:var(--ink);}
.mode-switch button.active{background:var(--green-deep);color:var(--cream);border-left-color:var(--green-deep);}
.mode-switch button:last-child{border-radius:0 15px 15px 0;}
.mode-switch button.active:hover,.mode-switch button.active:active{background:var(--green-deep);color:var(--cream);}
.cart-mode-mini{display:none;}
/* cart fulfilment switch — flat single-line tabs, same language as the account tabs (city-tabs) */
.cart-mode-switch{background:var(--cream);}
.cart-mode-switch button{display:flex;align-items:center;justify-content:center;padding:0 12px;font-size:13px;font-weight:600;color:var(--ink-2);}
.cart-mode-switch button:hover,.cart-mode-switch button:active{background:rgba(20,18,8,.03);color:var(--ink);}

/* user-chip — flat header sector, divided by a straight border like the cart arrow */
.user-chip{
  display:flex;align-items:center;justify-content:center;gap:8px;
  flex:none;width:auto;min-width:0;align-self:stretch;
  padding:0 20px;margin-right:20px;
  border:none;border-radius:0;
  background:transparent;box-shadow:none;
  color:var(--ink);font-weight:700;font-size:13.5px;
  transition:background .15s ease;
}
.user-chip:hover,.user-chip:active{background:var(--beige-2);}
.user-chip .avatar{
  width:26px;height:26px;border-radius:8px;background:transparent;color:var(--ink);
  display:grid;place-items:center;
}
.user-chip .avatar-initial{font-size:12px;font-weight:700;line-height:1;}
.user-chip .user-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}


/* cart-chip — header sector in the same flat, line-divided language as the Войти button */
.cart-chip{
  display:flex;align-items:center;justify-content:center;gap:9px;
  flex:none;min-width:0;align-self:stretch;margin:10px 0;padding:0 17px 0 15px;
  border:none;border-radius:15px;
  background:var(--green-deep);color:var(--cream);font-weight:700;font-size:13.5px;
  transition:background .15s ease;
}
.cart-chip:hover{background:var(--green);}
.cart-chip:active{background:var(--green);}
.cart-chip .bag{
  position:relative;color:var(--cream);display:flex;align-items:center;
}
.cart-chip.filled .bag{color:var(--cream);}
.cart-chip .bag .badge{
  position:absolute;top:-5px;right:-8px;
  font-size:10px;font-weight:800;color:var(--cream);line-height:1;
}
.cart-chip .cart-chip-label{white-space:nowrap;display:inline-flex;align-items:baseline;justify-content:center;gap:3px;min-width:76px;font-variant-numeric:tabular-nums;}
.cart-chip .cart-chip-label .cur{font-size:10px;font-weight:600;opacity:.62;}

/* cart modal — cart / checkout presented as a centered popup */
.cart-modal{
  width:min(440px,94vw);height:80dvh;max-height:calc(100dvh - 48px);
  display:flex;flex-direction:column;overflow:hidden;
  background:var(--paper);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);
}
.cart-modal .cart-mode-switch{
  flex:none;width:auto;height:40px;margin:20px 44px 4px;
  border:1px solid var(--line);border-radius:15px;box-shadow:none;background:var(--cream);
}
.cart-modal .cart-mode-switch button{flex:1;border-left:1px solid var(--line-2);}
.cart-modal .cart-mode-switch button:first-child{border-left:none;}
.cart-modal .cart-mode-switch button.active,
.cart-modal .cart-mode-switch button.active:hover,
.cart-modal .cart-mode-switch button.active:active{
  background:var(--green-deep);color:var(--cream);border-left-color:var(--green-deep);
}
.cart-modal.cart-2col .cart-mode-switch{margin:20px 22px 4px;}

/* floating close — anchored to the cart card's top-right corner */
.cart-modal-wrap{position:relative;display:inline-block;}
.cart-float-close{
  position:absolute;top:-20px;right:-20px;z-index:330;
  width:40px;height:40px;border-radius:999px;
  background:rgba(251,246,234,.97);color:var(--ink);
  display:grid;place-items:center;box-shadow:var(--shadow);
  transition:background .15s,transform .12s;
}
.cart-float-close:hover,.cart-float-close:active{background:var(--cream);}

/* roomier inner padding inside the modal cart */
.cart-modal .cart-head .cart-address{padding:24px 44px;}
.cart-modal .cart-item{padding:16px 44px;}
.cart-modal .cart-empty{padding:60px 52px;}
.cart-modal .cart-foot{padding:24px 44px 0;}
.cart-modal .promo-row .field-stack-input{padding:15px 16px 5px;}
.cart-modal .promo-row button{padding:0 18px;}
.cart-modal .cart{
  position:static;top:auto;margin:0;flex:1 1 auto;min-height:0;max-height:none;
  border:none;border-radius:0;box-shadow:none;
}
.cart-modal .co-pane{max-height:none;}
.cart-modal .cart-scrim{display:none;}

/* ---- two-column cart (корзина step): products left, everything else right ---- */
.cart-modal.cart-2col{width:min(880px,95vw);}
.cart-2col .cart-split{display:flex;align-items:stretch;flex:1 1 auto;min-height:0;}
.cart-2col .cart-split-left{
  flex:1 1 auto;min-width:0;display:flex;flex-direction:column;min-height:0;
  border-right:1px solid var(--line);
}
.cart-2col .cart-split-left .cart-items{flex:1;min-height:0;background:var(--cream);}
.cart-2col .cart-split-left .cart-empty{margin:auto;}
.cart-2col .cart-split-right{
  flex:0 0 350px;display:flex;flex-direction:column;min-height:0;overflow-y:auto;background:var(--paper);
}
.cart-2col .cart-split-right .cart-mode-switch{flex:none;}
.cart-2col .cart-split-right .cart-head{flex:none;}
.cart-2col .cart-split-right .cart-addr-block{flex:none;padding:14px 22px 12px;}
.cart-2col .cart-split-right .cart-foot{margin-top:auto;flex:none;border-top:none;padding-top:18px;}
/* tighter inner padding than the single-column modal */
.cart-modal.cart-2col .cart-item{padding:13px 22px;}
.cart-modal.cart-2col .cart-empty{padding:40px 28px;}
.cart-modal.cart-2col .cart-head .cart-address{padding:20px 22px;}
.cart-modal.cart-2col .cart-foot{padding:18px 22px 0;}
.cart-modal.cart-2col .promo-row .field-stack-input{padding:15px 14px 5px;}
.cart-modal.cart-2col .promo-row button{padding:0 16px;}
.cart-modal.cart-2col .applied-list{margin:0;}
@media (max-width:760px){
  .cart-2col .cart-split{flex-direction:column;}
  .cart-2col .cart-split-left{border-right:none;border-bottom:1px solid var(--line);max-height:42vh;}
  .cart-2col .cart-split-right{flex:1 1 auto;}
}

.icon-btn{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;color:var(--ink);}
.icon-btn:hover,.icon-btn:active{background:var(--beige-2);}

/* ============================================================ STORIES */
.stories-section{
  /* mirrors .shell + .main-col geometry so the first card lines up with the product grid */
  max-width:calc(var(--maxw) + 44px);margin:0 auto;padding:14px 22px 12px;
  position:relative;
}
/* edge fades into the page background — wide screens only (site borders float
   inside the viewport). JS toggles .can-left / .can-right on the section. */
.stories-fade{
  position:absolute;top:0;bottom:0;
  pointer-events:none;opacity:0;transition:opacity .25s ease;z-index:2;
}
.stories-fade.right{right:22px;width:90px;background:linear-gradient(to right,transparent,var(--beige-bg));}
/* first 22px solid: fully covers the left bleed strip while scrolled */
.stories-fade.left{left:0;width:112px;background:linear-gradient(to right,var(--beige-bg) 22px,transparent);}
.stories-section.can-right .stories-fade.right{opacity:1;}
.stories-section.can-left .stories-fade.left{opacity:1;}
.stories-rail{
  display:flex;gap:13px;overflow-x:auto;padding:16px 0 14px 22px;
  /* bleed the scroll viewport out by 22px on the left only: cards rest on the
     grid edge without hover clipping, while the right clip line matches the
     column (header/grid) right edge */
  margin:0 0 0 -22px;
  scrollbar-width:none;touch-action:pan-x;
}
/* below maxw the site borders sit at the screen edges: the rail goes full-bleed
   and cards clip naturally at the physical screen edge — no fades */
@media(max-width:2043px){
  .stories-fade.left{width:56px;background:linear-gradient(to right,var(--beige-bg),transparent);}
  /* 30.09: легкие фейды по краям — видно, что лента листается */
  .stories-fade.right{right:0;width:56px;}
  .stories-rail{margin:0 -22px;padding:16px 22px 14px;}
}
@media(max-width:680px){ .stories-fade.left,.stories-fade.right{width:32px;} }
.stories-rail::-webkit-scrollbar{display:none;}
.stories-rail{cursor:grab;}
.stories-rail.dragging{cursor:grabbing;}
.stories-rail.dragging *{pointer-events:none;}
.story-card-btn{
  position:relative;flex:none;width:224px;height:336px;border-radius:30px;
  overflow:hidden;padding:0;
  transition:transform .15s;
}
.story-card-btn:hover,.story-card-btn:active{transform:scale(1.015);}
.scb-img{position:absolute;inset:0;background-size:cover;background-position:center;}
.scb-shade{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.62),rgba(0,0,0,0) 58%);}
.scb-flame{
  position:absolute;top:16px;right:16px;width:46px;height:46px;border-radius:999px;
  background:var(--pink);color:var(--cream);display:grid;place-items:center;
}
.scb-title{
  position:absolute;left:18px;right:18px;bottom:18px;
  color:#f3ead4;font-size:22px;font-weight:600;line-height:1.14;text-align:left;
  display:flex;flex-direction:column;text-shadow:0 1px 4px rgba(0,0,0,.4);
}

/* Story viewer */
.story-overlay{
  position:fixed;inset:0;z-index:400;background:rgba(15,12,6,.85);
  display:grid;place-items:center;padding:20px;backdrop-filter:blur(4px);
}
.story-card{
  position:relative;width:min(420px,92vw);aspect-ratio:9/16;max-height:92vh;
  border-radius:20px;overflow:hidden;background:#000;box-shadow:var(--shadow-lg);
  user-select:none;
}
.story-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.story-shade{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0) 22% 60%,rgba(0,0,0,.65));}
.story-progress{position:absolute;top:10px;left:10px;right:10px;display:flex;gap:4px;z-index:3;}
.seg{flex:1;height:3px;border-radius:3px;background:rgba(249,242,219,.34);overflow:hidden;}
.seg-fill{display:block;height:100%;background:var(--cream);border-radius:3px;}
.story-head{position:absolute;top:22px;left:12px;right:12px;display:flex;align-items:center;gap:9px;z-index:3;color:var(--cream);}
.story-ava{width:30px;height:30px;border-radius:999px;background-size:cover;background-position:center;box-shadow:0 0 0 2px rgba(249,242,219,.8);}
.story-name{font-weight:600;font-size:13.5px;}
.story-close{margin-left:auto;color:var(--cream);width:34px;height:34px;display:grid;place-items:center;border-radius:999px;}
.story-close:hover,.story-close:active{background:rgba(249,242,219,.16);}
.tap{position:absolute;top:0;bottom:0;width:38%;z-index:2;background:none;}
.tap-left{left:0;}.tap-right{right:0;width:62%;}
.story-foot{position:absolute;left:0;right:0;bottom:0;padding:20px;z-index:3;color:var(--cream);}
.story-caption{margin-bottom:14px;}
.story-title{font-size:22px;font-weight:700;line-height:1.15;text-shadow:0 1px 8px rgba(0,0,0,.5);}
.story-sub{margin-top:6px;font-size:14.5px;opacity:.92;text-shadow:0 1px 8px rgba(0,0,0,.5);}
.story-code{margin-top:10px;display:inline-block;background:rgba(249,242,219,.16);border:1px dashed rgba(249,242,219,.55);padding:5px 12px;border-radius:8px;font-size:13px;}
.story-cta{
  display:flex;align-items:center;justify-content:center;gap:8px;
  background:color-mix(in srgb,var(--cream) 50%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--ink);font-weight:700;
  padding:13px;border-radius:13px;font-size:15px;
}
.story-countdown{display:inline-block;max-width:100%;margin-bottom:12px;padding:9px 11px 10px;border-radius:14px;background:rgba(18,16,8,.52);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);}
.sc-label{display:block;font-size:11.5px;font-weight:600;line-height:1.3;text-transform:uppercase;letter-spacing:.05em;}
.sc-clock{display:flex;align-items:center;gap:5px;margin-top:7px;}
.sc-unit{display:flex;flex-direction:column;align-items:center;background:rgba(249,242,219,.14);border-radius:9px;padding:5px 9px;min-width:42px;}
.sc-unit b{font-size:20px;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums;}
.sc-unit i{font-size:10px;font-style:normal;opacity:.85;}
.sc-colon{font-size:20px;font-weight:700;}

/* ============================================================ DRAWER */
.drawer-backdrop{position:fixed;inset:0;z-index:200;background:rgba(15,12,6,.5);opacity:0;pointer-events:none;transition:opacity .25s;}
.drawer-backdrop.open{opacity:1;pointer-events:auto;}
.drawer{
  position:fixed;top:0;left:0;bottom:0;z-index:210;width:320px;max-width:86vw;
  background:var(--green-deep);color:var(--cream);
  display:flex;flex-direction:column;
  transform:translateX(-104%);transition:transform .28s cubic-bezier(.4,0,.2,1);
  box-shadow:var(--shadow-lg);
}
.drawer.open{transform:none;}
.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:22px 22px 14px;}
.drawer-logo{color:var(--cream);}
.drawer-close{color:var(--cream);width:38px;height:38px;border-radius:11px;display:grid;place-items:center;}
.drawer-close:hover,.drawer-close:active{background:rgba(255,255,255,.12);}
.drawer-nav{display:flex;flex-direction:column;padding:8px 12px;gap:2px;overflow-y:auto;flex:1;}
.drawer-nav a{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 14px;border-radius:12px;font-size:16px;font-weight:500;
  transition:background .15s;
}
.drawer-nav a:hover,.drawer-nav a:active{background:rgba(255,255,255,.08);color:var(--cream);}
.drawer-nav a.current{background:rgba(255,255,255,.14);font-weight:700;}
.drawer-nav .chev{opacity:.5;}
.drawer-foot{padding:18px 22px calc(18px + env(safe-area-inset-bottom));border-top:1px solid rgba(255,255,255,.12);display:flex;flex-direction:column;gap:12px;}
.drawer-foot a{padding:9px 0;margin:-9px 0;}
.drawer-foot small{opacity:.7;font-size:12px;}
.lang{display:flex;gap:6px;}
.lang button{padding:12px 14px;border-radius:8px;background:rgba(255,255,255,.1);font-size:12px;font-weight:600;text-transform:uppercase;}
.lang button.active{background:var(--cream);color:var(--ink);}

/* ============================================================ SHELL / LAYOUT */
.shell{
  max-width:100%;margin:0;padding:0 22px 40px;
  display:grid;grid-template-columns:minmax(0,1fr);gap:26px;align-items:start;
}
.shell.cart-collapsed{grid-template-columns:minmax(0,1fr);}
.main-col{min-width:0;max-width:var(--maxw);margin:0 auto;width:100%;}

.catbar{
  position:relative;z-index:10;
  background:transparent;
  display:flex;flex-direction:row;align-items:center;gap:26px;
  padding:10px 0 12px;margin-bottom:6px;
}

/* Diet dropdown */
.diet-dd{position:relative;flex:none;}
.diet-dd-btn{
  display:flex;align-items:center;gap:8px;
  background:transparent;border:1px solid var(--line-2);
  padding:10px 14px;border-radius:15px;font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--ink);
  transition:.15s;
}
.diet-dd-btn:hover,.diet-dd-btn:active{border-color:var(--green-deep);}
.diet-dd-btn.on{background:var(--green-deep);color:var(--cream);border-color:var(--green-deep);}
.dd-caret{opacity:.6;}
.dd-hint{
  display:inline-block;overflow:hidden;white-space:nowrap;
  max-width:120px;opacity:1;
  transition:max-width .35s ease, opacity .3s ease, margin .35s ease;
}
.dd-hint.hidden{max-width:0;opacity:0;margin-left:-8px;}
.dd-clear{display:grid;place-items:center;width:18px;height:18px;border-radius:999px;background:rgba(255,255,255,.25);}
.diet-pop{
  position:absolute;top:calc(100% + 8px);left:0;z-index:95;width:min(400px, calc(100vw - 24px));
  background:color-mix(in srgb,var(--paper) 50%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:14px;
  box-shadow:var(--shadow);padding:8px;
  display:grid;grid-template-columns:1fr 1fr;gap:0 4px;
}
.diet-pop-title{font-size:11.5px;text-transform:uppercase;letter-spacing:.14em;font-weight:400;color:var(--ink-3);padding:6px 10px;grid-column:1 / -1;}
.diet-opt{
  display:flex;align-items:center;justify-content:space-between;width:100%;
  padding:11px 12px;border-radius:10px;font-size:14px;font-weight:400;color:var(--ink);
}
.diet-opt:hover,.diet-opt:active{background:var(--beige-2);}
.diet-opt.active{color:var(--ink);font-weight:400;}
.diet-reset{grid-column:1 / -1;}

/* Categories */
.cats{flex:1;min-width:0;}
.cats-row{
  display:flex;gap:9px;justify-content:space-between;overflow-x:auto;scrollbar-width:none;touch-action:pan-x;overscroll-behavior:contain;
  padding:2px 0;
  -webkit-mask-image:linear-gradient(90deg,transparent -8px,#000 var(--fade-l,0px),#000 calc(100% - var(--fade-r,0px)),transparent calc(100% + 8px));
  mask-image:linear-gradient(90deg,transparent -8px,#000 var(--fade-l,0px),#000 calc(100% - var(--fade-r,0px)),transparent calc(100% + 8px));
}
.cats-row::-webkit-scrollbar{display:none;}
.cats-row.dragging{cursor:grabbing;}
.cats-row.dragging *{pointer-events:none;}

/* Categories & filters: capped max-width and centred instead of spreading
   edge-to-edge — DESKTOP ONLY. On mobile the rows stay full-bleed and aligned
   to the 7px grid edge (handled in the max-width:1080 block), so scope this to
   the multi-column layout. */
@media(min-width:1081px){
  .catbar{justify-content:center;}
  .catbar .cats{flex:0 1 auto;}
  .catbar .cats-row{max-width:var(--rail-maxw,1600px);margin-inline:auto;}
  /* only centre the row's own items when they all fit without scrolling —
     centering an overflowing scroll container shifts its initial scroll
     position, clipping into the first item's leading edge (JS toggles .fit) */
  .catbar .cats-row.fit{justify-content:center;}
}
.cat-chip{
  flex:none;padding:10px 16px;border-radius:15px;
  background:var(--paper);border:1px solid var(--line-2);
  font-size:14.5px;font-weight:700;color:var(--ink);white-space:nowrap;transition:.15s;
}
.cat-chip:hover,.cat-chip:active{border-color:var(--green-deep);color:var(--ink);}
.cat-chip.active{background:var(--accent);color:var(--accent-text);border-color:var(--accent);}
.cat-text{flex:none;position:relative;padding:8px 6px;font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--ink);white-space:nowrap;border-bottom:2px solid transparent;border-radius:0;transition:.15s;}
.cat-text::before{content:"";position:absolute;left:50%;top:50%;width:100%;min-height:44px;transform:translate(-50%,-50%);}
.cat-text:hover,.cat-text:active{color:var(--ink);}
.cat-text.active{color:var(--ink);border-bottom-color:var(--green-deep);font-weight:700;}
.cat-circle{flex:none;display:flex;flex-direction:column;align-items:center;gap:6px;width:78px;}
.cat-circle .disc{width:60px;height:60px;border-radius:999px;display:grid;place-items:center;background:var(--paper);border:1px solid var(--line-2);color:var(--ink);transition:.15s;}
.cat-circle .disc svg{width:32px;height:32px;}
.cat-circle .label{font-size:12.5px;font-weight:600;color:var(--ink);text-align:center;line-height:1.1;}
.cat-circle.active .disc{background:var(--accent);color:var(--accent-text);border-color:var(--accent);}
.cat-circle.active .label{color:var(--ink);}
.cat-tile{flex:none;display:flex;align-items:center;gap:9px;padding:9px 15px 9px 11px;border-radius:14px;background:var(--paper);border:1px solid var(--line-2);color:var(--ink);white-space:nowrap;transition:.15s;}
.cat-chip.unavailable,.cat-text.unavailable,.cat-circle.unavailable,.cat-tile.unavailable{opacity:.4;cursor:not-allowed;}
.cat-tile svg{width:26px;height:26px;}
.cat-tile .label{font-size:14.5px;font-weight:600;color:var(--ink);}
.cat-tile.active{background:var(--accent);border-color:var(--accent);color:var(--accent-text);}
.cat-tile.active .label{color:var(--accent-text);}

/* ============================================================ CATALOG */
.catalog-section{padding-top:56px;scroll-margin-top:150px;}
#cat-poke{padding-top:28px;}
.section-head{display:flex;align-items:baseline;gap:14px;margin-bottom:16px;}
.section-head h2{font-family:inherit;font-weight:700;font-size:30px;color:var(--ink);margin:0;}
.section-head .count{font-size:13px;color:var(--ink-3);font-weight:500;}

.grid{display:grid;grid-template-columns:repeat(var(--cols,4),minmax(0,1fr));gap:14px;}
[data-density="compact"] .grid{gap:10px;}
[data-density="comfy"] .grid{gap:22px;}
/* grow to 5/6 columns on wide screens, card width stays ~319px */
@media(min-width:1660px){ .grid{ --cols:5; } }
@media(min-width:1990px){ .grid{ --cols:6; } }

.card{
  position:relative;background:transparent;border-radius:var(--radius);overflow:hidden;
  border:1px solid var(--line);box-shadow:var(--shadow-sm);
  display:flex;flex-direction:column;cursor:pointer;transition:transform .16s,box-shadow .16s;
}
@media (hover:hover) and (pointer:fine){.card:hover{transform:translateY(-3px);box-shadow:var(--shadow);}}
.card .photo{position:relative;aspect-ratio:4/3;background:var(--beige-warm);overflow:hidden;}
.photo.img-fallback{background-image:repeating-linear-gradient(135deg,#E6D8B6 0 11px,#ECE0C4 11px 22px);}
#cat-drinks .card .photo{aspect-ratio:1/1;}
.card .photo img{width:100%;height:100%;object-fit:cover;object-position:var(--fx,50%) 50%;transition:transform .35s;}
@media (hover:hover) and (pointer:fine){.card:hover .photo img{transform:scale(1.05);}}
[data-density="compact"] .card .photo{aspect-ratio:4/3;}

.card-tag{
  position:absolute;top:10px;left:10px;z-index:2;
  background:var(--green-deep);color:var(--cream);
  font-size:11px;font-weight:700;padding:4px 9px;border-radius:999px;
  text-transform:lowercase;letter-spacing:.02em;
}
.card-tag.discount{background:var(--pink);color:#5a1320;}
.weight-badge{
  position:absolute;bottom:10px;left:10px;z-index:2;
  background:rgba(20,18,8,.62);color:var(--cream);backdrop-filter:blur(3px);
  font-size:11px;font-weight:600;letter-spacing:.01em;padding:3px 8px;border-radius:999px;
  font-variant-numeric:tabular-nums;
  transition:opacity .18s;
}
@media (hover:hover) and (pointer:fine){.card:hover .weight-badge{opacity:0;pointer-events:none;}}
/* diet/allergen badges sit on the photo, opposite the weight pill */
.photo .card-badges{
  position:absolute;bottom:10px;right:10px;z-index:3;
  display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px;max-width:60%;
}
/* on hover the green composition overlay covers the photo — badges stay put,
   in front of it, but drop their color-coded fills for a plain white-on-green mark */
@media (hover:hover) and (pointer:fine){.card:hover .photo .card-badges .badge-ico{
  background:rgba(255,255,255,.16) !important;
  color:rgba(255,255,255,.9) !important;
  border:1px solid rgba(255,255,255,.4);
}}
/* sectoral action key — lives in the bottom plate, divided by a thin line */
/* right column: price sector on top, action button below — always beige-white */
.card-side{
  flex:none;width:106px;align-self:stretch;display:flex;flex-direction:column;
  border-left:1px solid var(--line);background:transparent;
}
.card-price{
  flex:1;display:flex;flex-direction:column;
  align-items:center;justify-content:flex-start;gap:1px;padding:9px 12px;text-align:center;
}
.card-price .now{font-size:14px;font-weight:700;color:var(--ink);white-space:nowrap;}
.card-price .now .cur{font-size:11px;font-weight:600;color:var(--ink-3);margin-left:3px;}
.card-price .old{font-size:12px;color:var(--ink-3);text-decoration:line-through;}
.card-key{
  flex:none;width:100%;border-top:1px solid var(--line);min-height:38px;
  display:grid;place-items:center;
  background:transparent;color:var(--ink);
  transition:background .14s,transform .04s;
}
.card-key:hover,.card-key:active{background:var(--beige-2);}
.card-key.in-cart{
  width:100%;background:transparent;color:var(--ink);
  display:flex;align-items:stretch;justify-content:center;
}
.card-step{flex:1;min-width:34px;display:grid;place-items:center;color:var(--ink);transition:background .14s;}
.card-step:hover,.card-step:active{background:var(--beige-2);}
.card-qty{flex:none;min-width:30px;display:grid;place-items:center;font-weight:700;font-size:14px;color:var(--ink);border-left:1px solid var(--line);border-right:1px solid var(--line);}

.card-hover{
  position:absolute;inset:0;z-index:2;background:rgba(14,61,0,.8);
  color:var(--cream);padding:14px 14px 92px;display:flex;flex-direction:column;gap:10px;
  opacity:0;pointer-events:none;transition:opacity .18s;
}
@media (hover:hover) and (pointer:fine){.card:hover .card-hover{opacity:1;}}
body[data-bg="dark"] .card-hover{background:rgba(14,61,0,.8);}
.ch-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:rgba(249,242,219,.7);font-weight:600;}
.ch-ingr{margin:4px 0 0;font-size:12.5px;line-height:1.4;color:var(--cream);}
.ch-nutri{position:absolute;left:14px;right:74px;bottom:10px;}
.ch-kcal{font-size:14px;font-weight:700;color:var(--cream);display:block;}
.ch-kcal i{font-style:normal;font-weight:500;font-size:11px;color:rgba(249,242,219,.7);margin-left:4px;}
.ch-bju{font-size:11.5px;color:rgba(249,242,219,.8);}
/* mobile: weight moves to the top-left, freeing the whole bottom row for the
   allergen/diet badges — pinned bottom-left, always in the same spot whether
   the composition overlay is open or not */
@media(max-width:680px){
  .weight-badge{top:10px;bottom:auto;left:10px;}
  .photo .card-badges{left:14px;right:auto;justify-content:flex-start;max-width:calc(100% - 24px);}
  /* composition clamps to 3 lines with an ellipsis instead of a hard cut; the
     nutrition line sits with margin-top:auto and the container's bottom padding
     is tied to the pinned badge row's real measured height (--badges-h, set in
     JS) so it always sits right above the badges with no gap and no overlap */
  .card-hover{padding-bottom:calc(var(--badges-h,20px) + 18px);}
  .ch-nutri{position:static;left:auto;right:auto;bottom:auto;flex:none;margin-top:auto;}
}

.card .body{padding:0;display:flex;align-items:stretch;flex:1;border-top:1px solid var(--line);}
.card .body-info{flex:1;min-width:0;padding:9px 14px;display:flex;flex-direction:column;gap:6px;justify-content:space-between;}
.card .body .name{font-size:15px;font-weight:600;line-height:1.25;}
.card-badges{display:flex;flex-wrap:wrap;gap:4px;align-items:flex-end;}
.dish-badge{font-size:10px;line-height:1;font-weight:700;padding:2.5px 6px;border-radius:5px;letter-spacing:.01em;white-space:nowrap;}
.card .foot{margin-top:0;}
.price{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;}
.price .now{font-size:17px;font-weight:700;color:var(--ink);}
.price .now .cur{font-size:11px;font-weight:600;color:var(--ink-3);margin-left:3px;}
.price .old{font-size:13px;color:var(--ink-3);text-decoration:line-through;}

/* card variants */
.card.var-pill{border-radius:24px;}
.card.var-pill .photo{margin:8px 8px 0;border-radius:18px;aspect-ratio:1/1;}
.card.var-overlay .photo{aspect-ratio:3/4;}
.card.var-overlay .body{position:absolute;inset:auto 0 0 0;z-index:4;background:linear-gradient(to top,rgba(0,0,0,.82),transparent);color:#fff;border-top:none;}
.card.var-overlay .body .name{color:#fff;}
.card.var-list{flex-direction:row;align-items:stretch;}
.card.var-list .photo{width:120px;flex:none;aspect-ratio:1/1;}
.card.var-list .body{justify-content:center;}

/* ============================================================ CART */
.cart-scrim{display:none;}

/* cart column: mode-switch stacked above the cart, sticky as a unit */
.cart-col{
  align-self:start;
  position:sticky;top:var(--topbar-h);
  display:flex;flex-direction:column;gap:0;
  padding-top:13px;
  max-height:calc(100vh - var(--topbar-h) - 30px);
  min-height:0;
}
/* selector + cart read as one capsule: selector keeps its top corners,
   sits flush on the cart, and the cart's top border is the single divider —
   same flat, line-divided language as the header sectors */
.cart-mode-switch{
  width:100%;flex:none;height:40px;
  border:1px solid var(--line);border-bottom:none;
  border-radius:var(--radius-lg) var(--radius-lg) 0 0;
  box-shadow:none;
}
.cart-mode-switch button{flex:1;border-left-color:var(--line);}
.cart-col .cart{
  position:static;top:auto;margin:0 !important;
  flex:1 1 auto;min-height:0;max-height:none;
  border-radius:0 0 var(--radius-lg) var(--radius-lg);
}
.cart-col .cart.collapsed{flex:none;}
.cart-col .co-pane{max-height:none;}

.cart{
  position:sticky;top:var(--topbar-h);
  background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm);overflow:hidden;
  display:flex;flex-direction:column;max-height:calc(100vh - var(--topbar-h) - 30px);
}
.cart-head{display:flex;align-items:stretch;border-bottom:1px solid var(--line);}
.cart-address{flex:1;display:flex;align-items:center;gap:16px;padding:22px 24px;text-align:left;min-width:0;transition:background .14s;}
.cart-address:hover,.cart-address:active{background:var(--beige-2);}
.cart-address .pin{width:63px;height:63px;border-radius:13px;background:transparent;color:var(--ink-2);display:grid;place-items:center;flex:none;box-shadow:inset 0 0 0 1px rgba(20,18,8,.05);}
.cart-address .text{display:flex;flex-direction:column;min-width:0;gap:1px;}
.cart-address .what{font-size:15px;color:var(--ink-3);line-height:1.2;}
.cart-address .where{font-size:18px;font-weight:700;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cart-head-edit{display:grid;place-items:center;color:var(--ink-3);padding-left:8px;}
.cart-collapse-mini{width:78px;display:grid;place-items:center;border-left:1px solid var(--line);color:var(--ink-2);transition:background .14s,color .14s,transform .04s;}
.cart-collapse-mini:hover,.cart-collapse-mini:active{background:var(--beige-2);color:var(--ink);}

.cart-items{overflow-y:auto;flex:1;padding:6px 0;}
.cart-item{display:flex;align-items:flex-start;gap:12px;padding:16px 24px;}
.cart-item .thumb{width:68px;height:68px;border-radius:10px;overflow:hidden;flex:none;background:var(--beige-warm);}
.cart-item .thumb img{width:100%;height:100%;object-fit:cover;}
.cart-item .body{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px;}
.cart-item .body .name{font-size:13.5px;font-weight:600;line-height:1.25;}
.cart-item-name{display:flex;align-items:center;gap:5px;background:none;border:none;padding:0;font:inherit;text-align:left;color:inherit;cursor:pointer;}
.cart-item-name svg{color:var(--ink-3);transition:transform .16s;flex:none;}
.cart-item-name svg.co-flip{transform:rotate(180deg);}
.cart-item-desc{margin:0;font-size:12.5px;color:var(--ink-2);line-height:1.4;}
/* diet/allergen icons on cart items — same glyphs as product cards, sized down */
.cart-item-badges{display:flex;flex-wrap:wrap;gap:5px;}
.cart-item-badges .badge-ico{width:19px;height:19px;cursor:default;}
.cart-item-badges .badge-ico svg,.cart-item-badges .badge-ico .badge-glyph{width:10.5px;height:10.5px;}
.cart-item-badges .badge-ico .badge-tip{right:auto;left:-5px;}
.cart-item-badges .badge-ico .badge-tip::after{right:auto;left:11.5px;}
.stepper{display:inline-flex;align-items:center;gap:0;background:transparent;border-radius:999px;padding:0;width:max-content;}
.stepper button{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:var(--ink);transition:background .14s;}
.stepper button:hover,.stepper button:active{background:rgba(14,61,0,.09);}
.stepper .n{min-width:24px;text-align:center;font-weight:700;font-size:15px;color:var(--ink);}
.price-col{display:flex;flex-direction:column;align-items:flex-end;gap:8px;font-weight:700;font-size:13.5px;line-height:1.1;padding-top:2px;flex:none;}
.price-col .old{font-size:12px;color:var(--ink-3);text-decoration:line-through;font-weight:500;}
.price-col .stepper{margin-top:2px;margin-right:-10px;background:transparent;border:none;border-radius:999px;padding:0;}
.price-col .stepper button{width:28px;height:28px;border-radius:50%;}
.price-col .stepper .n{font-size:13.5px;min-width:20px;}
.bonus-item .bonus-code{font-size:11.5px;font-weight:600;color:var(--ink-3);letter-spacing:.04em;}
.bonus-item .bonus-gift{color:var(--ink-2);}
.bonus-item .bonus-qty{font-size:13px;font-weight:600;color:var(--ink-2);}

.cart-empty{padding:60px 36px;text-align:center;color:var(--ink-2);}
.ce-icon{width:87px;height:87px;border-radius:999px;background:var(--beige-2);color:var(--green);display:grid;place-items:center;margin:0 auto 21px;}
.ce-title{font-size:19px;font-weight:700;color:var(--ink);margin-bottom:9px;}
.cart-empty p{font-size:16px;margin:0;}

.cart-foot{padding:22px 24px 22px;border-top:1px solid var(--line);background:var(--beige-bg);}
.cart-row{display:flex;justify-content:space-between;font-size:16px;color:var(--ink);padding:4px 0;}
.cart-row .free{color:var(--ink);font-weight:600;}
.cart-row-hint{color:var(--ink-3);font-size:13px;}
.cart-row-link{background:none;border:0;padding:0;font:inherit;color:var(--ink);font-weight:700;text-decoration:none;cursor:pointer;}
/* free-delivery progress — "еще N RSD до бесплатной доставки" */
.cart-free-progress{display:flex;flex-direction:column;gap:6px;padding:2px 0 10px;}
.cfp-track-wrap{position:relative;height:6px;}
.cfp-track{height:100%;border-radius:999px;background:var(--line-2);overflow:hidden;}
.cfp-fill{height:100%;border-radius:999px;background:var(--green-deep);transition:width .25s cubic-bezier(.4,0,.2,1);}
.cfp-tick{position:absolute;top:0;bottom:0;width:2px;background:rgba(255,255,255,.6);transform:translateX(-50%);pointer-events:none;}
.cfp-label{font-size:12.5px;color:var(--ink-3);}
.cfp-label b{color:var(--ink);font-weight:700;font-variant-numeric:tabular-nums;}

/* zone info — small "i" badge next to the delivery row, opens a popover with
   the zone's full tiered pricing on hover or tap */
.zone-info{position:relative;display:inline-flex;margin-left:6px;vertical-align:middle;}
.zone-info-btn{width:18px;height:18px;border-radius:999px;background:none;color:var(--ink-2);border:none;display:grid;place-items:center;line-height:1;flex:none;transition:.14s;}
.zone-info-btn:hover,.zone-info-btn:active{color:var(--ink);}
.zone-info-pop{
  position:fixed;z-index:340;width:230px;
  background:var(--paper);border:1px solid var(--line);border-radius:14px;
  box-shadow:var(--shadow-lg);padding:12px 14px 14px;
}
.zip-head{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.zip-badge{width:22px;height:22px;border-radius:999px;display:grid;place-items:center;font-size:12px;font-weight:700;flex:none;}
.zip-sub{font-size:13px;font-weight:700;color:var(--ink);}
.zip-title{font-size:14px;font-weight:700;color:var(--ink);}
.zip-cap{font-size:12px;color:var(--ink-3,var(--ink-2));margin-bottom:6px;}
.zip-rows{display:flex;flex-direction:column;gap:5px;padding-top:8px;border-top:1px dashed var(--line-2);}
.zip-row{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;color:var(--ink-2);font-variant-numeric:tabular-nums;}
.zip-row-free span:last-child{color:var(--ink);font-weight:700;}
.cart-row.total{font-size:20px;font-weight:700;color:var(--ink);padding-top:15px;margin-top:9px;border-top:1px dashed var(--line-2);}
/* pill CTA, inset from the edges — same shape everywhere (cart "Далее" / checkout "Заказать") */
.cart-cta{
  width:100%;height:52px;margin:12px 0 0;display:flex;align-items:center;justify-content:space-between;
  background:var(--green-deep);color:var(--cream);font-weight:700;font-size:15px;
  padding:0 24px;border-radius:15px;border:none;transition:filter .14s;
}
.cart-cta:hover,.cart-cta:active{filter:brightness(1.13);}
.total-side{display:flex;align-items:center;gap:8px;}
.total-side .old{opacity:.6;text-decoration:line-through;font-weight:500;font-size:13px;}

/* promo — same width as the CTA above it, small gap, quieter and smaller */
.promo-row{display:flex;align-items:stretch;height:52px;margin:8px 0 0;background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden;transition:background .14s;}
.promo-row .field-stack{flex:1;margin-bottom:0;}
.promo-row .field-stack-input{border:none;border-radius:0;padding:16px 14px 4px;font-size:13.5px;background:none;}
.promo-row .field-stack-label{left:14px;right:14px;font-size:13.5px;}
.promo-row .field-stack-input:focus ~ .field-stack-label,
.promo-row .field-stack-input:not(:placeholder-shown) ~ .field-stack-label{top:6px;font-size:9.5px;}
.promo-row button{flex:none;padding:0 16px;border-radius:0;border-left:1px solid var(--line-2);background:transparent;color:var(--ink-2);font-weight:600;font-size:13px;display:grid;place-items:center;transition:background .14s,transform .04s;}
.promo-row button:hover,.promo-row button:active{filter:none;background:var(--beige-2);color:var(--ink);}
.promo-err{display:block;margin:8px 0 16px;font-size:12px;color:#b3402f;}
/* collapsed promo entry — expands into the promo-row field */
.promo-link{display:block;width:max-content;margin:6px 0 10px;padding:0;text-align:left;font-size:13.5px;font-weight:700;color:var(--ink);}
.promo-link:hover,.promo-link:active{opacity:.72;}
.applied-list{margin:10px 0 16px;display:flex;flex-direction:column;gap:6px;}
.applied-promo{display:flex;align-items:center;gap:8px;background:var(--beige-2);border-radius:10px;padding:8px 10px;font-size:12.5px;}
.applied-promo .ok{width:20px;height:20px;border-radius:999px;background:var(--green-soft);color:var(--cream);display:grid;place-items:center;flex:none;}
.applied-promo .ptext{flex:1;}
.applied-promo button{color:var(--ink-3);display:grid;place-items:center;}

/* free extras included with the order — condiments + utensils */
.cart-extras{flex:none;border-top:1px solid var(--line);padding:14px 22px 16px;background:var(--paper);}
.cart-extras-title{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin-bottom:8px;}
.extra-row{display:flex;align-items:center;gap:10px;min-height:40px;padding:5px 0;}
.extra-row .extra-dot{flex:none;width:9px;height:9px;border-radius:999px;}
.extra-row .extra-name{flex:1;min-width:0;font-size:15px;color:var(--ink);}
.extra-row.removed .extra-name{color:var(--ink-3);text-decoration:line-through;}
.extra-ctrl{display:flex;align-items:center;gap:8px;}
.stepper.sm{display:flex;align-items:center;gap:0;padding:0;background:transparent;border:none;border-radius:999px;}
.stepper.sm button{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:var(--ink);position:relative;transition:background .14s;}
.stepper.sm button::before{content:"";position:absolute;top:50%;left:50%;width:44px;height:44px;transform:translate(-50%,-50%);}
.stepper.sm button:hover,.stepper.sm button:active{background:rgba(14,61,0,.09);}
.stepper.sm .n{min-width:20px;text-align:center;font-size:13.5px;font-weight:700;color:var(--ink);}
.extra-x{width:26px;height:26px;border-radius:999px;display:grid;place-items:center;color:var(--ink-3);position:relative;}
.extra-x::before{content:"";position:absolute;top:50%;left:50%;width:44px;height:44px;transform:translate(-50%,-50%);}
.extra-x:hover,.extra-x:active{background:var(--beige-2);color:var(--ink);}
.extra-seg{display:flex;border:1px solid var(--line-2);border-radius:999px;overflow:hidden;}
.extra-seg button{padding:5px 12px;font-size:13px;font-weight:600;color:var(--ink-2);}
.extra-seg button.active{background:var(--green-deep);color:var(--cream);}
.extra-return{padding:5px 14px;border-radius:999px;border:1px solid var(--line-2);background:transparent;color:var(--ink);font-size:13px;font-weight:700;}
.extra-return:hover,.extra-return:active{background:var(--beige-2);}

/* ---- free items — inline after separator in cart-items scroll area ---- */
.cart-free-sep{display:flex;align-items:center;gap:10px;padding:16px 24px 6px;margin-top:4px;}
.cart-free-sep::before,.cart-free-sep::after{content:'';flex:1;height:1px;background:var(--line);}
.cart-free-sep span{font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap;}
/* free items — compact single-line rows */
.cart-item.free-item{padding:5px 24px;align-items:center;}
.free-item .stepper.sm{margin-right:-10px;}
.free-item .thumb{width:38px;height:38px;border-radius:9px;}
.free-item>.name{flex:1;min-width:0;font-size:14px;font-weight:500;}
.free-source{font-size:11px;font-weight:400;color:var(--ink-3);}
.free-item.removed{opacity:.55;}
.free-item.removed>.name{color:var(--ink-3);text-decoration:line-through;}
.cart-modal .cart-item.free-item{padding:5px 44px;}
.cart-modal.cart-2col .cart-item.free-item{padding:5px 22px;}
.cart-panel .cart-item.free-item{padding:5px 30px 5px 20px;}
.cart-modal.cart-2col .cart-free-sep{padding:12px 22px 4px;}
/* ---- address block in cart right column ---- */
.cart-addr-block{flex:none;padding:16px 22px 14px;border-bottom:1px solid var(--line);}
.cart-2col .cart-split-right .cart-addr-block{flex:none;}
.cart-addr-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.cart-addr-hdr>span{font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);}
.cart-addr-add-btn{font-size:13px;font-weight:700;color:var(--ink);padding:2px 0;}
.cart-addr-add-btn:hover,.cart-addr-add-btn:active{opacity:.72;}
.cart-addr-empty{display:flex;align-items:center;gap:10px;width:100%;min-height:40px;padding:0;border-radius:10px;color:var(--ink-3);font-size:13.5px;font-weight:600;text-align:left;transition:background .14s,color .14s;box-sizing:border-box;}
.cart-addr-empty:hover,.cart-addr-empty:active{color:var(--ink-2);}
.cart-addr-empty:hover .cas-icon{background:var(--beige-warm);}
.cart-addr-list{display:flex;flex-direction:column;gap:2px;}
.cart-addr-opt{display:flex;align-items:flex-start;gap:10px;width:100%;padding:9px 10px;border-radius:9px;text-align:left;transition:background .14s;cursor:pointer;}
.cart-addr-opt.cao-flat{padding:6px 0;align-items:center;}
.cart-addr-opt:hover .addr-line,.cart-addr-opt:active .addr-line{color:var(--ink);}
.cart-addr-opt:hover .cas-icon{background:var(--beige-warm);}
.cart-addr-opt.active{background:var(--beige-warm);}
.addr-radio{flex:none;width:15px;height:15px;border-radius:999px;border:2px solid var(--line-2);margin-top:2px;transition:border-color .14s,background .14s;}
.cart-addr-opt.active .addr-radio{border-color:var(--green-deep);background:var(--green-deep);box-shadow:inset 0 0 0 3px var(--cream);}
.addr-line{font-size:13.5px;font-weight:600;color:var(--ink);line-height:1.3;}
.addr-sub{display:block;font-size:11.5px;color:var(--ink-3);margin-top:1px;}
.addr-rt{display:flex;flex-direction:column;}

/* Compact selected address / restaurant row */
.cart-addr-selected{display:flex;align-items:center;gap:10px;min-height:40px;}
.cas-icon{flex:none;width:28px;height:28px;border-radius:8px;background:var(--beige-2);color:var(--green);display:grid;place-items:center;}
.cas-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;}
.cas-line{font-size:13.5px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3;}
.cas-sub{font-size:11.5px;color:var(--ink-3);line-height:1.3;}
.cas-change{flex:none;font-size:12px;font-weight:700;color:var(--ink);background:var(--beige-2);border-radius:15px;padding:5px 12px;transition:background .14s;}
.cas-change:hover,.cas-change:active{background:var(--beige-warm);}
.cas-arrow{transition:background .14s;}
.cas-click{cursor:pointer;}
.cas-click:hover .cas-arrow{background:var(--beige-warm);}
.cas-arrow:hover,.cas-arrow:active{background:var(--beige-warm);}
.cas-arrow svg{transition:transform .18s cubic-bezier(.4,0,.2,1);}
.cas-arrow.open svg{transform:rotate(180deg);}

.cas-sub-maps{display:flex;align-items:center;gap:6px;}
.cas-map-sq{flex:none;width:15px;height:15px;background:none;padding:0;display:grid;place-items:center;transition:opacity .14s;}
.cas-map-sq:hover,.cas-map-sq:active{opacity:.7;}

/* map modal (pickup point) */
.map-modal{width:min(680px,95vw);display:flex;flex-direction:column;overflow:hidden;background:var(--paper);}
.map-modal-head{padding:24px 56px 16px 28px;display:flex;flex-direction:column;gap:2px;}
.map-modal-head h3{margin:0;font-size:20px;}
.map-modal-head span{font-size:13px;color:var(--ink-2);}
.map-modal-frame{position:relative;height:min(480px,60dvh);background:var(--beige-2);}

/* collapsed cart rail */
.cart.collapsed{cursor:pointer;align-items:center;justify-content:flex-start;padding:16px 0;max-height:none;}
.collapsed-stack{display:flex;flex-direction:column;align-items:center;gap:16px;}
.cart-expand-btn{width:40px;height:40px;border-radius:11px;background:var(--beige-2);color:var(--ink);display:grid;place-items:center;}
.cart-icon{position:relative;width:46px;height:46px;border-radius:13px;background:var(--green-deep);color:var(--cream);display:grid;place-items:center;}
.cart-icon .badge{position:absolute;top:-5px;right:-5px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--pink);color:#5a1320;font-size:11px;font-weight:700;display:grid;place-items:center;}
.total-mini{font-size:13px;font-weight:700;text-align:center;color:var(--ink);line-height:1.1;}
.total-mini i{display:block;font-style:normal;font-size:9px;color:var(--ink-3);}

/* ============================================================ CHECKOUT */
.co-pane{max-height:calc(100vh - var(--topbar-h) - var(--catbar-h) - 30px);}
.co-success-pane{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:20px 20px;background:var(--cream);}
.co-success-mascot{width:480px;max-width:100%;height:auto;}
.co-success{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;width:100%;max-width:320px;}
.co-success h3{font-size:17px;margin:0;}
.co-success .login-cta{margin-top:4px;width:100%;}

/* brief order summary — receipt card, hairline-divided rows (sectoral pattern) */
.co-success-card{width:100%;background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:2px 16px;}
.cosc-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);font-size:13.5px;color:var(--ink-2);}
.cosc-row:last-child{border-bottom:none;}
.cosc-name{flex:1;min-width:0;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cosc-price{flex:none;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;}
.cosc-more{color:var(--ink-3);font-size:12.5px;justify-content:flex-start;}
.cosc-extras{flex-wrap:wrap;font-size:12.5px;}
.cosc-extras span:first-child{flex:none;color:var(--ink-3);}
.cosc-extras-val{flex:1;min-width:0;text-align:right;color:var(--ink-2);}
.cosc-extra-row{padding:4px 0;font-size:11.5px;color:var(--ink-3);}
.cosc-extra-row .cosc-name{white-space:normal;}
.cosc-total{padding-top:10px;margin-top:1px;font-size:15px;font-weight:700;color:var(--ink);}
.cosc-total span:last-child{font-variant-numeric:tabular-nums;}

/* time + address facts */
.co-success-facts{width:100%;display:flex;flex-direction:column;gap:8px;}
.cosf-row{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2);text-align:left;}
.cosf-row svg{flex:none;color:var(--ink);}
.cosf-row span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
/* 29.09: ссылка «где заказ» (страница отслеживания Maripos) */
a.cosf-track{color:var(--ink);font-weight:700;text-decoration:none;}
.co-flip{transform:rotate(180deg);}
.co-rest-list{padding:10px 12px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:6px;}
.co-rest{display:flex;align-items:flex-start;gap:11px;padding:12px;border-radius:12px;border:1px solid var(--line-2);text-align:left;transition:.14s;}
.co-rest:hover,.co-rest:active{border-color:var(--green-deep);}
.co-rest.active{border-color:var(--green-deep);background:var(--beige-2);}
.co-rest .radio{width:18px;height:18px;border-radius:999px;border:2px solid var(--line-2);flex:none;margin-top:2px;transition:.14s;}
.co-rest.active .radio{border-color:var(--green-deep);background:radial-gradient(circle,var(--green-deep) 40%,transparent 45%);}
.co-rest .rt{display:flex;flex-direction:column;gap:3px;}
.co-rest .rn{font-weight:600;font-size:14px;}
.co-rest .rm{font-size:12px;color:var(--ink-3);display:flex;align-items:center;gap:5px;}
.co-rest .rnote{font-size:11.5px;color:var(--ink-2);}
.co-rest.add-new{border-style:dashed;color:var(--ink);align-items:center;}
.co-rest.add-new .rn{color:var(--ink);font-weight:600;}
.co-body{padding:14px 16px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:12px;background:var(--beige-bg);}
.co-field{position:relative;}
.co-day{position:relative;}
.co-day-btn{display:flex;align-items:center;justify-content:space-between;width:100%;background:var(--paper);border-radius:12px;padding:13px 15px;font-size:14.5px;}
.co-day-caret{transition:transform .18s;}.co-day-caret.up{transform:rotate(180deg);}
.co-day-pop{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:30;background:var(--paper);border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow);padding:7px;max-height:260px;overflow-y:auto;scrollbar-width:none;}
.co-day-pop::-webkit-scrollbar{display:none;}
.co-day-opt{display:flex;align-items:center;justify-content:space-between;width:100%;padding:11px 12px;border-radius:9px;font-size:13.5px;}
.co-day-opt:hover,.co-day-opt:active{background:var(--beige-2);}
.co-day-opt.active{color:var(--ink);}
.co-time-row{display:flex;gap:10px;}
.co-time{flex:1;min-width:0;border:1px solid var(--line-2);border-radius:12px;padding:11px;display:flex;flex-direction:column;align-items:center;gap:2px;transition:.14s;}
.co-time.later{flex-direction:row;justify-content:center;align-items:center;gap:6px;}
.co-time.later .ct-top{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.co-time:hover,.co-time:active{border-color:var(--green-deep);}
.co-time.active{border-color:var(--green-deep);background:var(--beige-2);}
.ct-top{font-weight:700;font-size:14.5px;}
.ct-sub{font-size:11px;color:var(--ink-3);}
.ct-caret{flex:none;transition:transform .18s;}.ct-caret.up{transform:rotate(180deg);}
.co-slots{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;}
.co-slot{padding:9px 0;border-radius:9px;background:var(--paper);font-size:12.5px;font-weight:600;transition:.14s;}
.co-slot:hover,.co-slot:active{background:var(--beige-2);}
.co-slot.active{background:var(--green-deep);color:var(--cream);}
.co-slot.unavailable,.co-slot:disabled{opacity:.35;pointer-events:none;}
.co-time:disabled{opacity:.5;pointer-events:none;}
.co-slots-note{grid-column:1/-1;padding:8px 2px;font-size:12.5px;color:var(--ink-3);text-align:center;}
.cart-cta:disabled{opacity:.5;pointer-events:none;}
.co-pay-row{display:flex;align-items:center;justify-content:space-between;}
.co-flabel{font-size:13.5px;color:var(--ink-2);}
.co-contact-ro{display:flex;align-items:center;justify-content:space-between;}
.co-contact-line{font-size:13.5px;font-weight:700;color:var(--ink);}
.co-pay-group{display:flex;gap:8px;}
.co-pay-chip{display:inline-flex;align-items:center;gap:6px;background:var(--paper);border:none;border-radius:15px;padding:8px 14px;font-size:13px;font-weight:600;color:var(--ink);font-family:inherit;cursor:pointer;transition:background .14s,color .14s;}
.co-pay-chip.static{cursor:default;background:none;padding:0;}
.co-pay-chip:not(.static):not(.active):hover,.co-pay-chip:not(.static):not(.active):active{background:var(--beige-2);}
.co-pay-chip.active{background:var(--green-deep);color:var(--cream);}
.co-note{width:100%;background:var(--paper);border:1px solid var(--line-2);border-radius:12px;padding:13px 15px;font-size:14.5px;resize:none;outline:none;transition:border-color .14s;}
.co-note:focus{border-color:var(--green-deep);}
.co-back-btn{width:100%;margin-top:10px;background:none;color:var(--ink-2);font-size:13.5px;font-weight:600;padding:8px;}
.co-back-btn:hover,.co-back-btn:active{color:var(--ink);}

/* ============================================================ MODALS (product / poke) */
.modal-backdrop{position:fixed;inset:0;z-index:300;background:rgba(15,12,6,.55);display:grid;align-items:safe center;justify-items:center;overflow-y:auto;padding:24px;opacity:0;pointer-events:none;transition:opacity .2s;backdrop-filter:blur(3px);}
.modal-backdrop.open{opacity:1;pointer-events:auto;}
.modal{position:relative;background:var(--paper);border-radius:22px;overflow:hidden;box-shadow:var(--shadow-lg);transform:translateY(14px) scale(.98);transition:transform .25s;}
.modal-backdrop.open .modal{transform:none;}
.modal-close{position:absolute;top:14px;right:14px;z-index:5;width:38px;height:38px;border-radius:999px;background:none;color:var(--ink);display:grid;place-items:center;box-shadow:none;}
.modal-close:hover,.modal-close:active{background:rgba(160,130,50,.1);}
.modal-close--bare{background:none;box-shadow:none;}
.modal-close--bare:hover,.modal-close--bare:active{background:rgba(160,130,50,.1);}

.pm{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr;width:min(940px,94vw);min-height:476px;background:var(--beige-bg);}
.pm-photo{position:relative;background:var(--beige-warm);}
.pm-photo img{width:100%;height:100%;object-fit:cover;min-height:476px;}
.pm-badge{position:absolute;top:16px;font-size:12px;font-weight:700;padding:5px 11px;border-radius:999px;}
.pm-badge.discount{left:16px;background:var(--pink);color:#5a1320;}
.pm-badge.weight{right:16px;background:rgba(20,18,8,.62);color:var(--cream);backdrop-filter:blur(3px);}
.pm-body{display:flex;flex-direction:column;min-width:0;background:var(--beige-bg);}
.pm-scroll{padding:34px 28px 22px;flex:1 1 0;}
.pm-eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);font-weight:600;}
.pm-eyebrow-row{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.pm-weight-chip{display:inline-block;font-size:12px;font-weight:700;color:var(--ink-2);background:var(--beige-2);border-radius:999px;padding:5px 12px;line-height:1;margin-top:12px;}
.pm-body h2{font-weight:700;font-size:32px;line-height:1.12;letter-spacing:-.01em;color:var(--ink);margin:6px 0 0;}
.pm-lead{font-size:14.5px;color:var(--ink-2);line-height:1.5;margin:14px 0 0;}
.pm-highlights{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;}
/* dish badges in the modal — same chips as the product card, a touch larger for the bigger surface */
.pm-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:20px;}
.pm-badges .dish-badge{font-size:11px;padding:3.5px 8px;border-radius:6px;}
/* portion — flat green-tinted tag so it reads on the beige body instead of floating as a near-white pill */
.pm-hl{display:inline-flex;align-items:center;background:rgba(14,61,0,.06);border:1px solid rgba(14,61,0,.14);border-radius:var(--radius-sm);box-shadow:none;padding:9px 15px;font-size:12.5px;font-weight:700;letter-spacing:.01em;color:var(--ink);}
/* nutrition — one sectoral capsule split by thin lines; kcal sector filled green like a key */
.pm-nutri{display:flex;align-items:stretch;margin-top:26px;background:rgba(255,255,255,.55);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden;}
.pm-nutri-cell{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:19px 6px;text-align:center;border-left:1px solid var(--line);}
.pm-nutri-cell:first-child{border-left:none;}
.pm-nutri-cell strong{font-size:20px;font-weight:700;color:var(--ink);line-height:1;}
.pm-nutri-cell span{font-size:11px;color:var(--ink-3);line-height:1.15;}
.pm-nutri-cell.pm-hero{background:transparent;}
.pm-nutri-cell.pm-hero strong{color:var(--ink);}
.pm-nutri-cell.pm-hero span{color:var(--ink-3);}
.pm-nutri-note{margin-top:16px;font-size:12px;color:var(--ink-3);}
/* foot — pill CTA inset from the edges, unified with the catalog's price-pill */
.pm-foot{padding:20px 28px 26px;margin-top:auto;border-top:1px solid var(--line);}
.pm-cta-row{display:flex;align-items:center;justify-content:space-between;gap:16px;}
.pm-add-label{font-size:16px;font-weight:700;color:var(--ink);}
/* CTA — full-bleed flat sectoral key, no rounding, divided from the body by a thin line */
.pm-cta{width:100%;min-height:74px;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;background:var(--beige-bg);color:var(--ink);font-weight:700;font-size:16px;padding:16px 24px;border-radius:0;border-top:1px solid var(--line);transition:filter .14s,background .14s;}
.pm-cta:hover,.pm-cta:active{filter:none;background:var(--beige-2);}
.pm-cta .old{opacity:.6;text-decoration:line-through;font-weight:500;margin-right:8px;font-size:13px;}
.pm-cta.in-cart{background:var(--beige-bg);color:var(--ink);justify-content:space-between;}
.pm-cta.in-cart:hover,.pm-cta.in-cart:active{filter:none;background:var(--beige-bg);}
.pm-incart-label{font-weight:700;font-size:16px;color:var(--ink);}
/* stepper — flat sectoral keys divided by lines, matching the card action key */
.pm-stepper{display:inline-flex;align-items:stretch;border:1px solid var(--line-2);border-radius:var(--radius-sm);overflow:hidden;}
.pm-stepper button{width:38px;height:38px;background:transparent;color:var(--ink);display:grid;place-items:center;transition:background .14s;}
.pm-stepper button:first-child{border-right:1px solid var(--line-2);}
.pm-stepper button:last-child{border-left:1px solid var(--line-2);}
.pm-stepper button:hover,.pm-stepper button:active{background:var(--beige-2);}
.pm-stepper span{min-width:40px;display:grid;place-items:center;text-align:center;font-weight:700;color:var(--ink);}
/* in-cart keeps the translucent-on-green stepper from the base rule, so the whole CTA bar stays solid green — no colour jump when the item lands in the cart */

/* poke builder — shares the product-modal (.pm) chrome: eyebrow + sans title,
   sectoral nutrition capsule, full-bleed flat CTA. Only the ingredient
   selectors (.pb-group / .pb-opt) stay poke-specific. */
.pb{grid-template-columns:1fr 1fr;width:min(940px,95vw);max-height:min(720px,88vh);}
.pb .pm-photo{min-height:0;height:100%;}
.pb-photo img{width:100%;height:100%;object-fit:cover;}
.pb .pm-body{overflow:hidden;min-height:0;}
.pb-head{padding:24px 26px 20px;flex:none;transition:border-color .2s ease;border-bottom:1px solid transparent;}
.pb-head.scrolled{border-bottom-color:var(--line);}
.pb .pm-scroll{padding:4px 26px 16px;display:flex;flex-direction:column;gap:0;overflow-y:auto;flex:1 1 auto;min-height:0;}
.pm-nutri-note.warn{color:#b3402f;font-weight:700;}
.pm-cta:disabled{opacity:.5;cursor:not-allowed;}
.pm-cta:disabled:hover,.pm-cta:disabled:active{background:var(--beige-bg);filter:none;}
/* pb-scroll is pm-scroll; only need overrides */
.pb-scroll{gap:0;}
/* header block inside scroll */
.pb .pm-body h2{font-size:26px;margin:4px 0 0;}
/* groups */
/* 30.09 легкий редизайн: шапка и список на одном фоне, строка = фото · (название / вес · цена) · кнопка,
   название больше не переносится на три строки из-за цены рядом */
/* 30.09: фон и крестик как у окна блюда — бежевый фон, крестик без матовой подложки */
.pb .pm-body{background:var(--beige-bg);}
.pb-head{padding:22px 24px 10px;}
.pb .pm-scroll{padding:0 16px 14px;}
.modal.pb:focus,.modal.pb:focus-visible{outline:none;}
.modal-close:focus-visible{border-radius:999px;}
.pb-group{padding:14px 0 0;margin-top:6px;}
.pb-group:first-of-type{margin-top:0;padding-top:4px;}
.pb-group-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:0 8px 4px;}
.pb-group-head h3{font-size:12px;font-weight:700;margin:0;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);}
.pb-rule{font-size:12px;color:var(--ink-3);font-weight:500;}
.pb-rule-sep{margin:0 5px;opacity:.6;}
.pb-rule.need{color:#b3402f;font-weight:700;}
.pb-count{font-size:12px;font-weight:700;color:var(--ink-2);font-variant-numeric:tabular-nums;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--ink) 7%,transparent);}
.pb-count.full{color:var(--paper);background:var(--green-soft);}
/* option rows — flat list, circular photo swatch; selected row gets a tint and a ring on the photo */
.pb-opts{display:flex;flex-direction:column;gap:2px;}
.pb-opt{display:flex;align-items:center;gap:12px;padding:8px;border-radius:14px;border:none;background:transparent;text-align:left;transition:background .12s;cursor:pointer;width:100%;box-sizing:border-box;}
.pb-opt:hover:not(.disabled),.pb-opt:active:not(.disabled){background:color-mix(in srgb,var(--ink) 4%,transparent);}
.pb-opt.on,.pb-opt.on:hover{background:color-mix(in srgb,var(--green-soft) 10%,transparent);}
.pb-opt.disabled{opacity:.38;cursor:not-allowed;}
.pb-thumb{width:44px;height:44px;border-radius:999px;flex:none;box-sizing:border-box;border:1px solid var(--line);transition:box-shadow .12s;}
.pb-opt.on .pb-thumb{box-shadow:0 0 0 2px var(--beige-bg),0 0 0 4px var(--green-soft);}
.pb-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.pb-name{font-size:15px;font-weight:500;line-height:1.25;color:var(--ink);}
.pb-opt.on .pb-name{font-weight:600;}
.pb-meta{font-size:12.5px;color:var(--ink-3);white-space:nowrap;font-variant-numeric:tabular-nums;}
.pb-meta b{font-weight:600;color:var(--ink-2);}
.pb-check{width:18px;height:18px;border-radius:999px;border:1.5px solid var(--line-2);display:grid;place-items:center;flex:none;color:#fff;transition:.12s;}
.pb-opt.on .pb-check{background:var(--green-deep);border-color:var(--green-deep);}
.pb-foot{background:var(--beige-bg);flex:none;}
.pb .pm-foot{padding:16px 22px 20px;position:relative;}
/* validation error — red plate sliding up out of the footer block, auto-hides in 3s;
   thin countdown bar mirrors the toast pattern */
.pb-err-wrap{position:absolute;bottom:100%;left:0;right:0;overflow:hidden;pointer-events:none;}
.pb-load-note{margin:12px 0;padding:10px 12px;border-radius:var(--radius-sm);background:rgba(42,111,125,.10);color:var(--info);font-size:13px;font-weight:600;}
.pb-err{position:relative;display:flex;align-items:center;gap:10px;background:#C0392B;color:#FDF3F1;font-size:13.5px;font-weight:600;line-height:1.35;padding:8px 16px 10px;margin:0;border-radius:0;transform:translateY(100%);animation:pb-err-cycle 3s cubic-bezier(.4,0,.2,1) forwards;}
.pb-err-disc{width:20px;height:20px;border-radius:999px;background:rgba(255,255,255,.18);display:grid;place-items:center;font-size:12px;font-weight:700;flex:none;}
.pb-err-text{min-width:0;}
.pb-err-count{position:absolute;left:0;bottom:0;height:3px;width:100%;background:rgba(255,255,255,.35);transform-origin:left;animation:pb-err-count 3s linear forwards;}
@keyframes pb-err-cycle{0%{transform:translateY(100%)}8%{transform:translateY(0)}92%{transform:translateY(0)}100%{transform:translateY(100%)}}
@keyframes pb-err-count{0%,8%{transform:scaleX(1)}92%,100%{transform:scaleX(0)}}
/* KBJU + weight, two lines next to the add-to-cart pill — mirrors the product card's ch-kcal/ch-bju pairing */
.pb-nutri-line{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;font-variant-numeric:tabular-nums;}
.pb-nutri-kcal{font-size:13.5px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pb-nutri-kcal i{font-style:normal;font-weight:500;font-size:12px;color:var(--ink-3);margin-left:3px;}
.pb-nutri-bju{font-size:11.5px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pb-cta-row{display:flex;align-items:center;justify-content:space-between;gap:12px;}
/* compact price pill — same component as the product modal's CTA, sized down (double-class beats .pm-pill regardless of source order) */
.pm-pill.pb-pill{height:46px;min-width:120px;padding:0 7px 0 18px;}
.pb-pill .pp-price{font-size:15px;}
.pb-pill .pp-step{width:32px;height:32px;}
/* per-option quantity stepper + add button: пустой круг с обводкой → после выбора степпер */
.pb-qty{display:inline-flex;align-items:center;gap:2px;flex:none;}
.pb-qty button{width:32px;height:32px;border-radius:999px;display:grid;place-items:center;color:var(--ink);background:color-mix(in srgb,var(--ink) 8%,transparent);transition:background .12s;}
.pb-qty button:hover:not(:disabled),.pb-qty button:active:not(:disabled){background:color-mix(in srgb,var(--ink) 15%,transparent);}
.pb-qty button:disabled{opacity:.32;cursor:not-allowed;}
.pb-qty>span{min-width:22px;text-align:center;font-weight:700;font-size:14px;color:var(--ink);font-variant-numeric:tabular-nums;}
.pb-add{width:32px;height:32px;border-radius:999px;flex:none;display:grid;place-items:center;color:var(--ink);background:transparent;border:1.5px solid color-mix(in srgb,var(--ink) 22%,transparent);box-sizing:border-box;transition:background .12s,border-color .12s;}
.pb-add:hover:not(:disabled),.pb-add:active:not(:disabled){background:color-mix(in srgb,var(--ink) 6%,transparent);border-color:color-mix(in srgb,var(--ink) 30%,transparent);}
.pb-cta{width:100%;display:flex;align-items:center;justify-content:space-between;background:var(--green-deep);color:var(--cream);font-weight:700;font-size:16px;padding:15px 20px;border-radius:14px;transition:filter .14s;}
.pb-cta:hover,.pb-cta:active{filter:brightness(1.13);}
.pb-cta.off{opacity:.45;cursor:not-allowed;}
.pb-cta-right{display:flex;align-items:center;gap:12px;}
.pb-cta-plus{display:grid;place-items:center;}

/* ============================================================ APP MODALS (login / address) — share .modal-backdrop/.modal/.modal-close with product modal */
.modal-backdrop.stack-top{z-index:320;}
.login-modal{width:min(400px,94vw);background:var(--beige-bg);}
.login-inner{padding:34px 30px 28px;}
.login-logo{color:var(--ink);margin-bottom:16px;display:flex;justify-content:center;}
.login-inner h3{font-size:22px;margin:0 0 6px;text-align:center;}
.login-sub{font-size:13.5px;color:var(--ink-2);margin:0 auto 22px;line-height:1.45;text-align:center;max-width:30ch;}
.field-label{font-size:12px;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;}
.phone-field{position:relative;display:flex;align-items:center;gap:6px;border:1px solid var(--line-2);border-radius:12px;padding:4px 6px 4px 8px;margin:8px 0 16px;transition:border-color .14s;background:var(--paper);}
.phone-field:focus-within{border-color:var(--green-deep);}
.phone-field .cc{display:flex;align-items:center;gap:6px;font-weight:600;font-size:14.5px;color:var(--ink);white-space:nowrap;padding:7px 8px;border-radius:9px;transition:background .14s;}
.phone-field .cc:hover,.phone-field .cc:active{background:var(--beige-warm);}
.cc-flag{font-size:16px;line-height:1;}
.cc-code{letter-spacing:.01em;}
.phone-field .cc .icon{color:var(--ink-3);margin-left:-1px;}
.phone-field input{flex:1;border:none;outline:none;padding:11px 8px;font-size:15px;background:none;min-width:0;}
.cc-pop{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:30;background:var(--cream);border:1px solid var(--line-2);border-radius:14px;box-shadow:0 16px 40px rgba(20,40,10,.16);overflow:hidden;}
.cc-search{width:100%;border:none;border-bottom:1px solid var(--line);outline:none;padding:13px 16px;font-size:14px;background:var(--paper);}
.cc-list{max-height:240px;overflow-y:auto;padding:6px;}
.cc-opt{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:9px 10px;border-radius:9px;transition:background .12s;}
.cc-opt:hover,.cc-opt:active{background:var(--beige-warm);}
.cc-opt.active{background:var(--beige-warm);}
.cc-opt .cc-flag{font-size:16px;}
.cc-name{flex:1;font-size:14px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cc-dial{font-size:13.5px;font-weight:600;color:var(--ink-3);}
.cc-empty{padding:18px 16px;text-align:center;font-size:13px;color:var(--ink-3);}
.login-cta{width:100%;background:var(--green-deep);color:var(--cream);font-weight:700;font-size:15px;padding:14px;border-radius:13px;transition:filter .14s;}
.field-stack + .login-cta{margin-top:8px;}
.login-cta:hover,.login-cta:active{filter:brightness(1.13);}
.login-cta:disabled{opacity:.4;cursor:not-allowed;}
.login-cta:disabled:hover,.login-cta:disabled:active{filter:none;}
.otp-row{display:flex;gap:10px;justify-content:center;margin:6px 0 20px;}
.otp-box.error{border-color:#C0392B;background:rgba(192,57,43,.06);}
.otp-error-msg{color:#C0392B;font-size:12.5px;font-weight:600;text-align:center;margin:-10px 0 14px;}
.otp-box{width:52px;height:58px;text-align:center;font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;border:1px solid var(--line-2);border-radius:12px;outline:none;background:var(--paper);color:var(--ink);transition:border-color .14s;}
.otp-box:focus{border-color:var(--green-deep);}
.otp-actions{display:flex;align-items:center;justify-content:space-between;margin-top:14px;font-size:12.5px;}
.otp-resend-timer{color:var(--ink-3);}
.login-or{display:flex;align-items:center;gap:12px;margin:20px 0;color:var(--ink-3);font-size:12.5px;}
.login-or::before,.login-or::after{content:"";flex:1;height:1px;background:var(--line);}
.login-socials{display:flex;gap:12px;justify-content:center;}
.social-btn{width:54px;height:54px;border-radius:15px;border:1px solid var(--line-2);display:grid;place-items:center;background:var(--cream);transition:.14s;}
.social-btn:hover,.social-btn:active{border-color:var(--green-deep);transform:translateY(-2px);}
.login-legal{font-size:11.5px;color:var(--ink-3);text-align:center;line-height:1.45;margin:20px 0 0;}
.legal-link{color:var(--ink);font-weight:600;text-decoration:none;transition:opacity .14s;}
.legal-link:hover{opacity:.7;}

.address-modal{width:min(820px,95vw);max-height:calc(100dvh - 48px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);overflow:hidden;background:var(--beige-bg);}
.addr-form{display:flex;flex-direction:column;flex:1;min-height:0;}
.addr-head{background:var(--beige-bg);padding:28px 32px 0;border-bottom:none;flex:none;}
.addr-head h3{font-size:22px;margin:0 0 20px;color:var(--ink);}
.addr-body{padding:22px 32px 32px;display:flex;flex-direction:column;flex:1;min-height:0;overflow-y:auto;}
.city-tabs{position:relative;display:flex;align-items:stretch;height:44px;background:#dbe6da;border:1px solid #cbdcc9;border-radius:15px;overflow-x:auto;scrollbar-width:none;}
.city-tabs::-webkit-scrollbar{display:none;}
.city-tab{flex:1 1 auto;min-width:max-content;height:100%;padding:0 17px;font-size:13px;font-weight:600;color:#4c6b4a;transition:background .14s,color .14s,transform .04s;white-space:nowrap;border:none;background:none;cursor:pointer;border-right:1px solid #cbdcc9;}
.city-tab:last-child{border-right:none;}
.city-tab:hover,.city-tab:active{background:rgba(20,40,18,.05);color:#2f4b2d;}
.city-tab.active{background:var(--green-deep);color:var(--cream);border-right-color:var(--green-deep);box-shadow:0 0 0 1px var(--green-deep);}
.city-tab.active:first-child{border-radius:15px 0 0 15px;}
.city-tab.active:last-child{border-radius:0 15px 15px 0;}
/* sliding pill in the address-modal city tabs. The pill carries the green and holds a
   counter-sliding copy of the labels in cream (clipped by overflow), so text color follows
   the pill exactly — no half-invisible labels mid-slide. Buttons stay static: their
   separators and hover paint under the pill. */
.city-slider{position:absolute;top:0;bottom:0;left:0;z-index:1;background:var(--green-deep);overflow:hidden;transition:transform .5s cubic-bezier(.4,0,.2,1),width .5s cubic-bezier(.4,0,.2,1),border-radius .5s cubic-bezier(.4,0,.2,1),background .15s ease;pointer-events:none;}
/* hover on the active tab lightens the pill — same feedback as the header cart chip */
.city-tabs:has(.city-tab.active:hover) .city-slider,.city-tabs:has(.city-tab.active:active) .city-slider{background:var(--green);}
.city-slider-track{position:absolute;top:0;bottom:0;left:0;width:100%;transition:transform .5s cubic-bezier(.4,0,.2,1);}
.city-slider-lab{position:absolute;top:0;bottom:0;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;color:var(--cream);white-space:nowrap;}
.city-tabs:has(.city-slider) .city-tab.active{background:transparent;box-shadow:none;color:#4c6b4a;border-right-color:#cbdcc9;}
.city-tabs:has(.city-slider) .city-tab.active:hover{color:#2f4b2d;}
/* fulfilment switch reusing the same sliding capsule (cart panel + checkout column) */
.cart-mode-slide .city-tab{flex:1 1 0;}
.cart-panel-mode .cart-mode-slide{flex:1;}
.cart-split-right .cart-mode-slide{flex:none;margin:20px 22px 4px;}
/* beige top over the switch + address — same as the address-modal head */
.cart-panel-mode,.cart-panel-addr{background:var(--beige-bg);}
.cart-right-head{flex:none;display:flex;flex-direction:column;background:var(--beige-bg);}
.addr-input{width:100%;border:1px solid var(--line-2);border-radius:12px;padding:13px 15px;font-size:14.5px;outline:none;margin-bottom:10px;transition:border-color .14s;background:var(--paper);}
.addr-input:focus{border-color:var(--green-deep);}
.addr-hint{font-size:12.5px;color:var(--ink-3);margin:0 0 18px;line-height:1.4;}
/* field-stack — floating label: sits large & centered like a placeholder when empty,
   floats to a small caption on focus/value so it never gets typed-over or truncated.
   Sizes/colors match the plain inputs they replace; only the float behavior is new. */
.field-stack{position:relative;display:block;margin-bottom:10px;}
.field-stack-input{width:100%;border:1px solid var(--line-2);border-radius:12px;padding:16px 15px 6px;font-size:14.5px;outline:none;background:var(--paper);color:var(--ink);transition:border-color .14s;}
.field-stack-input:focus{border-color:var(--green-deep);}
.field-stack-input::placeholder{color:var(--ink-3);opacity:0;transition:opacity .14s;}
.field-stack-input:focus::placeholder{opacity:1;}
.field-stack-label{position:absolute;left:15px;right:15px;top:50%;transform:translateY(-50%);font-size:14.5px;font-weight:400;color:var(--ink-3);pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:top .14s,font-size .14s,transform .14s,color .14s,font-weight .14s;}
.field-stack-input:focus ~ .field-stack-label,
.field-stack-input:not(:placeholder-shown) ~ .field-stack-label{top:5px;transform:translateY(0);font-size:10.5px;font-weight:700;color:var(--ink-3);}
.field-stack.disabled .field-stack-input{background:var(--beige-2);color:var(--ink-3);cursor:not-allowed;}
.addr-hint-err{color:#C0392B;margin-top:-8px;}
.addr-check{display:flex;align-items:center;gap:10px;font-size:13.5px;margin-bottom:18px;cursor:pointer;}
.addr-check input{position:absolute;opacity:0;}
.addr-check .box{width:22px;height:22px;border-radius:7px;border:2px solid var(--line-2);display:grid;place-items:center;color:#fff;background:#fff;transition:.14s;}
.addr-check input:checked + .box{background:var(--green-deep);border-color:var(--green-deep);}
/* 27.09: галочка только у отмеченного — в темной теме белая галочка на темном фоне была видна всегда */
.addr-check .box svg{opacity:0;transition:opacity .14s;}
.addr-check input:checked + .box svg{opacity:1;}
.addr-check input:focus-visible + .box{outline:2px solid var(--green-deep);outline-offset:2px;}
.addr-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:0;}
.addr-body .field-stack{margin-bottom:14px;}
.addr-grid + .field-stack{margin-top:10px;margin-bottom:14px;}
.addr-body .addr-comment{margin-top:0;margin-bottom:22px;}
/* street autocomplete — same popover language as .cc-pop */
.street-suggest{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:20;background:var(--cream);border:1px solid var(--line-2);border-radius:14px;box-shadow:0 16px 40px rgba(20,40,10,.16);overflow:hidden;max-height:240px;overflow-y:auto;}
.street-suggest-opt{display:block;width:100%;text-align:left;padding:11px 15px;font-size:14px;color:var(--ink);background:none;border:none;border-bottom:1px solid var(--line);transition:background .12s;}
.street-suggest-opt:last-child{border-bottom:none;}
.street-suggest-opt:hover,.street-suggest-opt:active{background:var(--beige-warm);}
.addr-save{margin-top:auto;background:var(--green-deep);color:var(--cream);font-weight:700;font-size:15px;padding:14px;border-radius:13px;transition:filter .14s;}
.addr-save:hover,.addr-save:active{filter:brightness(1.13);}
.addr-map{position:relative;background:#dfe7d2;overflow:hidden;}
body[data-bg="dark"] .addr-map{background:#243018;}
.addr-map-canvas{position:absolute;inset:0;width:100%;height:100%;}
.addr-map-canvas ymaps{border-radius:0;}
.map-grid{position:absolute;inset:0;}
.map-grid .road{position:absolute;background:var(--cream);opacity:.8;}
.map-grid .r1{top:24%;left:0;right:0;height:10px;}
.map-grid .r2{top:55%;left:0;right:0;height:14px;}
.map-grid .r3{top:78%;left:0;right:0;height:8px;}
.map-grid .v1{top:0;bottom:0;left:32%;width:12px;}
.map-grid .v2{top:0;bottom:0;left:68%;width:9px;}
.map-grid .park{position:absolute;top:30%;left:38%;width:24%;height:20%;background:#b7cf93;border-radius:14px;}
.map-grid .river{position:absolute;bottom:-10%;left:-10%;width:50%;height:60%;background:#a9c9e0;transform:rotate(24deg);border-radius:40%;}
.map-pin{position:absolute;top:50%;left:50%;transform:translate(-50%,-100%);color:var(--ink);filter:drop-shadow(0 4px 6px rgba(0,0,0,.25));}
.map-chip{position:absolute;bottom:16px;left:16px;display:flex;align-items:center;gap:6px;background:var(--paper);border-radius:15px;padding:8px 13px;font-size:12.5px;font-weight:600;box-shadow:var(--shadow-sm);}

/* ============================================================ VALUES / FOOTER */
.values-band{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:50px;padding-top:36px;border-top:1px solid var(--line);}
.value-tile .num{font-size:44px;color:var(--beige-warm);}
.value-tile h3{font-size:16px;font-weight:700;margin:8px 0 8px;line-height:1.3;}
.value-tile p{font-size:13px;color:var(--ink-2);line-height:1.55;margin:0;}

.seo-text{margin:40px auto 0;padding-top:32px;border-top:1px solid var(--line);max-width:1000px;}
.seo-text h2{font-size:22px;font-weight:700;color:var(--ink);margin:0 0 14px;letter-spacing:-.01em;}
.seo-text h3{font-size:16px;font-weight:700;color:var(--ink);margin:28px 0 16px;}
.seo-text p{font-size:13px;color:var(--ink-3);line-height:1.6;margin:0 0 10px;}
.seo-text p:last-child{margin-bottom:0;}
.seo-text strong{color:var(--ink-2);font-weight:700;}
.seo-text .seo-points{display:flex;flex-direction:column;gap:14px;margin-bottom:22px;}
.seo-text .seo-point h4{font-size:14px;font-weight:700;color:var(--ink);margin:0 0 4px;}
.seo-text .seo-point p{margin:0;}
.seo-text .seo-strong{font-weight:700;color:var(--ink-2);}

/* footer — deep-green surface, same dark-green + cream language as the header
   cart button and the nav drawer */
.footer{margin-top:32px;background:var(--green-deep);color:rgba(249,242,219,.78);border:1px solid var(--green-deep);border-radius:var(--radius);padding:24px 28px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;}
.footer .left{display:flex;align-items:center;gap:28px;flex-wrap:wrap;}
.logo-light{color:var(--beige-bg);}
.footer .nav{display:flex;gap:18px;flex-wrap:wrap;}
.footer .nav a{display:flex;align-items:center;gap:5px;font-size:14px;font-weight:600;color:rgba(249,242,219,.85);transition:color .14s;padding:10px 2px;margin:-10px -2px;}
.footer .nav a:hover,.footer .nav a:active{color:var(--cream);}
.footer .socials{display:flex;gap:8px;}
.footer .socials a,.footer .socials button{width:40px;height:40px;border-radius:var(--radius-sm);border:1px solid rgba(249,242,219,.22);color:var(--cream);display:grid;place-items:center;transition:background .14s,border-color .14s;}
.footer .socials a:hover,.footer .socials a:active{background:rgba(249,242,219,.14);border-color:rgba(249,242,219,.45);}
.footer .socials .social-disabled{opacity:.45;cursor:not-allowed;}
.footer-legal{display:flex;flex-wrap:wrap;gap:14px;width:100%;margin-top:2px;font-size:12px;color:rgba(249,242,219,.55);}
.menu-empty-state{text-align:center;padding:60px 24px;color:var(--ink-2);}
.menu-empty-state h3{margin:0 0 8px;font-size:20px;color:var(--ink);}
.menu-empty-state p{margin:0 0 18px;font-size:14px;}
.menu-empty-state .acc-add-btn{display:inline-flex;}

/* ============================================================ TOAST / COOKIE / CHAT */
.toast{position:fixed;top:26px;left:50%;transform:translate(-50%,-20px);z-index:500;display:flex;align-items:center;gap:9px;background:var(--green-deep);color:var(--cream);padding:13px 20px;border-radius:13px;box-shadow:var(--shadow-lg);font-size:14px;font-weight:600;opacity:0;pointer-events:none;transition:.25s;}
.toast.show{transform:translate(-50%,0);opacity:1;}
.toast .check{width:22px;height:22px;border-radius:999px;background:var(--green-soft);display:grid;place-items:center;}

/* Catbar toast — a full-width bar fixed to the very top of the viewport, so it
   always replaces whatever row (hero categories or the scrolled header's
   compact chip row) currently sits there, independent of scroll position.
   Auto-retracts after 2.2s. Compact pill; slow soft fade + small drift in,
   slower fade out (the base-state transition is the one used on hide). */
.catbar-toast{
  position:fixed;left:50%;top:calc(var(--topbar-h) + 10px);z-index:900;
  display:flex;align-items:center;gap:8px;padding:7px 6px 7px 10px;overflow:hidden;
  border-radius:999px;width:auto;max-width:calc(100vw - 48px);
  background:var(--green-deep);color:var(--cream);box-shadow:0 6px 20px rgba(20,40,25,.18);
  opacity:0;transform:translate(-50%,-6px) scale(.97);pointer-events:none;
  transition:transform .45s cubic-bezier(.4,0,.2,1),opacity .4s ease;
}
.catbar-toast.show{opacity:1;transform:translate(-50%,0) scale(1);pointer-events:auto;
  transition:transform .5s cubic-bezier(.22,1,.36,1),opacity .35s ease-out;}
.catbar-toast .ct-check{flex:none;width:20px;height:20px;border-radius:999px;background:var(--green-soft);color:#fff;display:grid;place-items:center;}
.catbar-toast .ct-msg{font-size:13.5px;font-weight:650;line-height:1.25;letter-spacing:-.005em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.catbar-toast .ct-close{flex:none;margin:-4px 0 -4px auto;width:28px;height:28px;display:grid;place-items:center;color:var(--ink-3);border-radius:999px;transition:background .14s,color .14s;}
.catbar-toast .ct-close:hover,.catbar-toast .ct-close:active{background:var(--beige-2);color:var(--ink);}
.catbar-toast .ct-progress{position:absolute;left:0;bottom:0;height:2px;width:100%;background:var(--green-soft);opacity:.7;transform-origin:left center;animation:ctProgress 2.2s linear forwards;}
@keyframes ctProgress{from{transform:scaleX(1);}to{transform:scaleX(0);}}

.cookie-bar{position:fixed;bottom:18px;left:18px;z-index:480;max-width:360px;display:flex;align-items:center;gap:14px;background:var(--paper);border:1px solid var(--line-2);border-radius:15px;padding:14px 16px;box-shadow:var(--shadow);}
.cookie-text{font-size:12.5px;color:var(--ink-2);line-height:1.4;}
.cookie-ok{flex:none;background:var(--green-deep);color:var(--cream);font-weight:700;padding:9px 20px;border-radius:10px;font-size:13.5px;}

.chat-fab{position:fixed;bottom:22px;right:22px;z-index:480;width:56px;height:56px;border-radius:999px;background:var(--green-deep);color:var(--cream);display:grid;place-items:center;box-shadow:var(--shadow-lg);transition:transform .15s;}
.chat-fab{display:none!important;}
.chat-fab:hover,.chat-fab:active{transform:scale(1.07);}
.header-chat{display:none;}

/* contact popover — same corner (fixed, top-right of header) and no-scrim behaviour as the old chat-pop it replaces */
.contact-pop{position:fixed;top:calc(var(--topbar-h) + 8px);right:22px;z-index:480;width:320px;background:var(--beige-bg);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow-lg);overflow:hidden;}
.contact-pop-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;background:var(--green-deep);color:var(--cream);font-weight:700;font-size:17px;letter-spacing:-.01em;}
.contact-pop-close{color:var(--cream);display:grid;place-items:center;width:30px;height:30px;border-radius:999px;flex:none;transition:background .14s;}
.contact-pop-close:hover,.contact-pop-close:active{background:rgba(255,255,255,.14);}
.contact-pop-body{display:flex;flex-direction:column;gap:10px;padding:14px;}
.contact-group{background:var(--paper);border:1px solid var(--line);border-radius:16px;overflow:hidden;}
.contact-row{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;font-size:14.5px;font-weight:600;color:var(--ink);text-align:left;background:var(--paper);transition:background .14s;}
.contact-row:hover,.contact-row:active{background:var(--beige-2);}
.contact-group .contact-row + .contact-row{border-top:1px solid var(--line);}
.contact-row--solo{border-radius:16px;border:1px solid var(--line);}
/* icon hierarchy: solid fill = primary action, outlined = secondary utility, brand-coloured = messenger — all share the same square shape */
.contact-row-icon{flex:none;width:36px;height:36px;border-radius:11px;display:grid;place-items:center;}
.contact-row-icon--primary{background:var(--green-deep);color:var(--cream);}
.contact-row-icon--ghost{background:transparent;border:1.5px solid var(--line-2);color:var(--ink);}
.contact-row-icon--brand{color:#fff;}
.contact-chip{
  display:flex;align-items:center;justify-content:center;gap:8px;
  flex:none;align-self:stretch;padding:0 20px;
  border:none;border-left:none;border-radius:0;
  background:transparent;color:var(--ink);font-weight:600;font-size:13.5px;
  transition:background .15s ease;white-space:nowrap;
}
.contact-chip:hover,.contact-chip:active{background:var(--beige-2);}
.contact-chip.open{background:transparent;color:var(--cream);}
/* open state = same green pill as hover, same whether scrolled or not */
.contact-chip.open::before{opacity:1;transform:scale(1);}

/* header chips — green rounded-15 hover, equal inner padding, cream text.
   Kept at this same size and with their label whether the header is scrolled or not. */
.contact-chip,
.user-chip{position:relative;}
.user-chip{padding:0 22px 0 17px!important;}
.contact-chip{padding:0 22px 0 19px!important;}
.contact-chip:hover,.contact-chip:active,
.user-chip:hover,.user-chip:active{background:transparent;}
.contact-chip::before,
.user-chip::before{
  content:"";position:absolute;top:10px;right:10px;bottom:10px;left:10px;
  border-radius:15px;background:var(--green-deep);
  opacity:0;transform:scale(.97);transition:opacity .15s ease,transform .15s ease;
  z-index:0;pointer-events:none;
}
.contact-chip:hover::before,.contact-chip:active::before,
.user-chip:hover::before,.user-chip:active::before{opacity:1;transform:scale(1);}
.contact-chip>*,
.user-chip>*{position:relative;z-index:1;}
.contact-chip:hover,.contact-chip:active,
.user-chip:hover,.user-chip:active,
.user-chip:hover .avatar,.user-chip:active .avatar{color:var(--cream);}

/* ============================================================ RESPONSIVE */
@media(max-width:1080px){
  .shell{grid-template-columns:1fr;padding-bottom:24px;}
  .shell.cart-collapsed{grid-template-columns:1fr;}
  .grid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .cart-col{display:contents;}
  .cart-mode-switch{display:none;}
  .cart-col .cart{position:fixed;top:auto;max-height:calc(100dvh - 16px);}
  .cart-col .cart.collapsed{max-height:none;}
  .cart{position:fixed;left:0;right:0;bottom:0;top:auto;border-radius:18px 18px 0 0;max-height:calc(100dvh - 16px);z-index:160;box-shadow:0 -8px 30px rgba(40,34,12,.18);}
  .cart-scrim{display:block;position:fixed;inset:0;z-index:155;background:rgba(15,12,6,.42);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);}
  .shell.cart-collapsed .cart-scrim{display:none;}  .cart-collapse-mini svg{transform:rotate(90deg);}
  .cart.collapsed{flex-direction:row;width:auto;left:0;right:0;bottom:0;align-items:center;justify-content:flex-start;padding:11px 16px calc(11px + env(safe-area-inset-bottom));box-shadow:0 -6px 22px rgba(40,34,12,.16);cursor:pointer;}
  .cart.collapsed .collapsed-stack{flex-direction:row;width:100%;align-items:center;gap:13px;}
  .cart.collapsed .cart-icon{order:1;}
  .cart.collapsed .total-mini{order:2;font-size:15px;text-align:left;}
  .cart.collapsed .total-mini i{display:inline;font-size:11px;margin-left:4px;}
  .header-right .mode-switch{display:none;}
  .header-right{width:auto;}
  .user-chip{flex:none;}
  .user-chip .user-name{max-width:140px;}
  .cart.collapsed .cart-mode-mini{order:3;margin-left:auto;display:flex;align-items:stretch;background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:var(--shadow-sm);flex:none;}
  .cart.collapsed .cart-mode-mini button{padding:9px 15px;font-size:13px;font-weight:700;color:var(--ink-2);white-space:nowrap;border-left:1px solid var(--line);transition:background .14s,color .14s;}
  .cart.collapsed .cart-mode-mini button:first-child{border-left:none;}
  .cart.collapsed .cart-mode-mini button.active{background:var(--green-deep);color:var(--cream);border-left-color:var(--green-deep);}
  .header-info{display:none;}
  .hi-block{display:none;}
  .header-center{display:none;}
  /* no flexing center block in this range — push actions to the right edge */
  .header-mid{margin-left:auto;}
  .catbar{position:sticky;top:var(--topbar-h);z-index:90;transition:padding .24s ease, gap .24s ease;}
  /* fixed header must NOT cast a shadow onto the categories below it */
  .topbar.shadow{box-shadow:none;}
  /* …instead the sticky block gets a thin, light shadow on its lower edge
     to separate it from the scrolling page */
  /* once pinned, the category bar compresses: tighter top/bottom padding and
     2px-smaller chips, animated via the .catbar transition above */
  .catbar{gap:16px;}
  .cat-text{font-size:13px;}
  .diet-dd-btn{font-size:13px;}
  .catbar.scrolled{background:var(--beige-bg);box-shadow:0 5px 8px -3px rgba(40,34,12,.10);padding-top:6px;padding-bottom:7px;gap:7px;margin-left:-22px;margin-right:-22px;padding-left:22px;padding-right:22px;}
  .catbar.scrolled .cat-text{font-size:12px;}
  .catbar.scrolled .diet-dd-btn{font-size:12px;}
  .catbar.scrolled .cat-chip{font-size:12.5px;padding:8px 14px;}
  .catbar.scrolled .cat-tile{padding:7px 13px 7px 10px;}
  .catbar.scrolled .cat-circle .disc{width:50px;height:50px;}
  .catbar.scrolled .cat-circle .disc svg{width:27px;height:27px;}
}
@media(max-width:680px){
  :root{--topbar-h:56px;}
  .contact-chip-label{display:none;}
  .topbar{--hpad:14px;padding:0 7px;}
  /* mobile header is always compact (icon-only) — top position matches the
     scrolled state so the banner never grows wider than the viewport */
  .hi-block{display:none!important;}
  .contact-chip{border-left:none;width:40px;padding:0!important;gap:0!important;}
  .topbar:not(.scrolled) .contact-chip{padding:0!important;}
  .chat-fab{display:none;}
  .contact-pop{left:12px;right:12px;width:auto;}
  .banner-bar{gap:14px;padding:0;min-width:0;}
  /* mobile header stays compact at all times — never resize chips on scroll
     (prevents the header icons from jumping when the sticky state toggles) */
  .topbar.scrolled .contact-chip,
  .topbar:not(.scrolled) .contact-chip{width:40px;}
  .topbar.scrolled .user-chip,
  .topbar:not(.scrolled) .user-chip{width:auto;padding:0 10px!important;}
  .logo svg{height:32px!important;}
  .logo{padding:0 6px 0 10px;}
  .hamburger{width:44px;margin-left:-1px;}
  .header-left{gap:6px;}
  /* right-align the action group so the cart keeps a margin from the edge */
  .header-right{gap:0;}
  .header-mid{flex:1;justify-content:center;align-self:center;}
  .header-right .mode-switch{padding:2px;}
  .mode-switch button{padding:8px 11px;font-size:12.5px;}
  .cart-mode-switch button{padding:0 11px;font-size:12.5px;}
  .user-chip{gap:0!important;flex:none;font-size:13.5px;min-width:0;padding:0 10px!important;margin-right:0;}
  .cart-chip{min-width:0;padding:0 9px 0 8px;gap:7px;}
  .user-chip .avatar{width:28px;height:28px;}
  .user-chip .user-name{display:none;}
  .user-chip:not(.logged) .avatar{background:transparent;}
  .shell{padding:0 7px calc(24px + env(safe-area-inset-bottom));}
  .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;}
  [data-density="compact"] .grid{gap:7px;}
  [data-density="comfy"] .grid{gap:7px;}
  /* mobile cards: name on top, price pill + allergen icons share the bottom row */
  .card .photo{aspect-ratio:4/5;}
  .card .photo img{object-position:var(--fx,50%) 50%;}

  #cat-drinks .card .photo{aspect-ratio:1/1;}
  .card.var-pill .photo{aspect-ratio:1/1;}
  [data-density="compact"] .card .photo{aspect-ratio:1/1;}
  .pm,.address-modal{grid-template-columns:1fr;}
  .address-modal{max-height:calc(100dvh - 32px);overflow-y:auto;}
  .addr-map{display:none;}
  .addr-head{padding:22px 22px 0;}
  .addr-body{padding:22px 22px 24px;}
  /* modal side clearance matches the central column's mobile gutter (.shell padding) so nothing scrolls horizontally */
  .modal-backdrop{padding:16px 7px;}
  .pm{display:flex;flex-direction:column;height:auto;width:min(440px,calc(100vw - 14px));}
  .login-modal{width:min(400px,calc(100vw - 14px));}
  .address-modal{width:min(820px,calc(100vw - 14px));}
  .cart-modal{width:min(440px,calc(100vw - 14px));}
  .cart-modal.cart-2col{width:min(880px,calc(100vw - 14px));}
  .pm-photo{flex:none;}
  .pm .modal-close:hover,.pm .modal-close:active{background:rgba(20,18,8,.45);color:var(--cream);}
  .pm-body{flex:1;}
  .pm-photo img{min-height:0;height:240px;object-position:center;}
  /* poke builder photo: container matches actual image aspect ratio (4840x3222) — no letterboxing */
  .pb .pm-photo{min-height:0;height:auto;aspect-ratio:4840/3222;}
  .pb-photo img{min-height:0;width:100%;height:100%;object-fit:cover;}
  .pm-scroll{flex:1;padding:16px 20px 20px;}
  .pm-eyebrow{font-size:11px;}
  .pm-body h2{font-size:23px;margin-top:3px;}
  .pm-lead{font-size:13px;line-height:1.4;margin-top:7px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
  .pm-highlights{margin-top:11px;}
  .pm-hl{padding:6px 11px;font-size:12px;}
  .pm-nutri{margin-top:13px;}
  .pm-nutri-cell{padding:11px 4px;}
  .pm-nutri-cell strong{font-size:17px;}
  .pm-nutri-cell span{font-size:10px;}
  .pm-nutri-note{font-size:11px;}
  .pm-foot{padding:14px 20px 20px;}
  .pm-cta{padding:15px 20px;font-size:15px;}
  .values-band{grid-template-columns:1fr;}
  .section-head h2{font-size:26px;}
  .stories-section{padding:14px 7px 12px;}
  .stories-rail{gap:8px;padding:10px 7px 8px;margin:0 -7px;max-width:none;}
  .story-card-btn{width:149px;height:227px;border-radius:22px;}
  .scb-title{font-size:16px;left:13px;right:13px;bottom:13px;}
  .scb-flame{width:34px;height:34px;top:10px;right:10px;}

  /* mobile header icons — dark green, same hairline-pill hover as desktop,
     just re-centered and sized for the compact icon-only buttons (the
     desktop inset:10px formula assumes a much wider chip and produced an
     oddly-shaped/offset pill on the narrow mobile buttons) */
  .hamburger{color:var(--ink);align-self:center;width:40px;height:40px;border-radius:8px;}
  .hamburger::after,.contact-chip::after,.user-chip::after{content:"";position:absolute;top:50%;left:50%;width:44px;height:44px;min-width:100%;min-height:100%;transform:translate(-50%,-50%);}
  .contact-chip{color:var(--ink);align-self:center;height:40px;}
  .user-chip{color:var(--ink);align-self:center;height:40px;}
  .cart-chip{align-self:center;height:40px;margin:0;}
  .user-chip:not(.logged) .avatar{color:var(--ink);}
  .user-chip:not(.logged):hover .avatar,.user-chip:not(.logged):active .avatar{color:var(--cream);}
  .hamburger::before,.contact-chip::before,.user-chip::before{
    top:50%;left:50%;right:auto;bottom:auto;width:38px;height:38px;border-radius:13px;
    transform:translate(-50%,-50%) scale(.82);
  }
  .hamburger:hover::before,.hamburger:active::before,
  .contact-chip:hover::before,.contact-chip:active::before,
  .user-chip:hover::before,.user-chip:active::before{transform:translate(-50%,-50%) scale(1);}
}
@media(max-width:380px){
  .banner-bar{gap:10px;padding:0;}
  .header-left{gap:4px;}
  .mode-switch button{padding:8px 9px;font-size:12px;}
  .cart-mode-switch button{padding:0 9px;font-size:12px;}
  .topbar{--hpad:11px;}
  .user-chip{gap:6px;min-width:0;}
  .cart-chip{min-width:0;padding:0 8px 0 7px;gap:6px;}
  .cart-chip .cart-chip-label{min-width:0;}
  .user-chip .avatar{width:26px;height:26px;}
  .user-chip .user-name{max-width:64px;}
}

/* ============================================================ CART RIGHT PANEL */
.cart-panel-scrim{
  position:fixed;inset:0;z-index:155;
  background:rgba(15,12,6,.38);
  backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);
}
.cart-panel{
  position:fixed;top:0;right:0;bottom:0;z-index:160;
  width:min(440px,100vw);
  background:var(--paper);
  border-left:none;
  box-shadow:-10px 0 50px rgba(40,34,12,.18);
  display:flex;flex-direction:column;overflow:hidden;
  animation:cart-panel-slide .22s cubic-bezier(.4,0,.2,1);
}
@keyframes cart-panel-slide{from{transform:translateX(100%)}to{transform:translateX(0)}}
.cart-panel-close{
  flex:none;width:42px;height:42px;border-radius:15px;
  display:grid;place-items:center;color:var(--ink-2);
  transition:background .14s;position:relative;
}
.cart-panel-close::before{content:"";position:absolute;top:50%;left:50%;width:44px;height:44px;transform:translate(-50%,-50%);}
.cart-panel-close:hover,.cart-panel-close:active{background:var(--beige-2);}

/* Mode switch in panel header — same pill as the site header, close button shares its row */
.cart-panel-mode{flex:none;display:flex;align-items:center;gap:10px;padding:18px 18px 14px;}
.cart-panel-addr{flex:none;padding:0 18px 14px;}
.cart-panel-addr .cas-change{margin-right:10px;}
.cart-panel-mode .cart-mode-switch{
  flex:1;display:flex;width:auto;height:40px;
  border:1px solid var(--line);border-radius:15px;box-shadow:none;background:var(--cream);
}
.cart-panel-mode .cart-mode-switch button{flex:1;border-left:1px solid var(--line-2);}
.cart-panel-mode .cart-mode-switch button:first-child{border-left:none;border-radius:15px 0 0 15px;}
.cart-panel-mode .cart-mode-switch button:last-child{border-radius:0 15px 15px 0;}
.cart-panel-mode .cart-mode-switch button.active{
  background:var(--green-deep);color:var(--cream);border-left-color:var(--green-deep);
}

/* Address block (direct child — cart mode) */
.cart-panel>.cart-addr-block{
  flex:none;border-bottom:none;padding:14px 20px 12px;
}

/* Scrollable items — gutter stays fixed (no reflow jump); the thumb itself
   is invisible at rest and thickens under an inset border on hover, gold */
.cart-panel-items{flex:1 1 auto;min-height:0;overflow-y:auto;background:var(--cream);}
.cart-panel-items,.cart-items,.cart-panel>.cart .co-body{
  scrollbar-width:thin;scrollbar-color:transparent transparent;
}
.cart-panel-items:hover,.cart-items:hover,.cart-panel>.cart .co-body:hover{
  scrollbar-color:rgba(160,130,50,.55) transparent;
}
.cart-panel-items::-webkit-scrollbar,.cart-items::-webkit-scrollbar,.cart-panel>.cart .co-body::-webkit-scrollbar{width:9px;}
.cart-panel-items::-webkit-scrollbar-track,.cart-items::-webkit-scrollbar-track,.cart-panel>.cart .co-body::-webkit-scrollbar-track{background:transparent;}
.cart-panel-items::-webkit-scrollbar-thumb,.cart-items::-webkit-scrollbar-thumb,.cart-panel>.cart .co-body::-webkit-scrollbar-thumb{
  background-color:transparent;border:3px solid transparent;background-clip:padding-box;border-radius:99px;
  transition:background-color .15s ease,border-width .15s ease;
}
.cart-panel-items:hover::-webkit-scrollbar-thumb,.cart-items:hover::-webkit-scrollbar-thumb,.cart-panel>.cart .co-body:hover::-webkit-scrollbar-thumb{
  background-color:rgba(160,130,50,.55);border-width:1.5px;
}

/* Footer (direct child — cart mode) */
.cart-panel>.cart-foot{flex:none;padding:12px 20px calc(14px + env(safe-area-inset-bottom));}
.cart-panel>.cart-foot .cart-row{padding-right:10px;}
.cart-panel>.cart-foot .promo-row .field-stack-input{padding:15px 14px 5px;}
.cart-panel>.cart-foot .promo-row button{padding:0 14px;}
.cart-panel>.cart-foot .applied-list{margin:0;}

/* Item/sep padding inside panel */
.cart-panel .cart-item{padding:13px 30px 13px 20px;}
.cart-panel .cart-free-sep{padding:12px 20px 6px;}
.cart-panel .cart-empty{padding:40px 24px;}

/* Checkout (aside.cart) inside panel */
.cart-panel>.cart{
  flex:1 1 auto;min-height:0;max-height:none;
  position:static;border:none;border-radius:0;box-shadow:none;overflow:hidden;
}
.cart-panel>.cart .cart-scrim{display:none;}



/* free-item "return" pattern reused for removed dishes — compact row, no image,
   staying in the item's original slot instead of jumping elsewhere in the list */
@keyframes cartRowRemoved{0%{opacity:0;transform:scale(.96);}100%{opacity:1;transform:scale(1);}}
@keyframes cartRowRestored{0%{opacity:0;transform:scale(.97);}100%{opacity:1;transform:scale(1);}}
.cart-item.removed-item{padding:12px 24px;align-items:center;gap:12px;animation:cartRowRemoved .2s ease;}
.cart-item:not(.removed-item){animation:cartRowRestored .2s ease;}
.cart-panel .cart-item.removed-item{padding:10px 20px;}
.removed-text{flex:1;min-width:0;font-size:13.5px;color:var(--ink-3);line-height:1.35;}
.cart-item-remove{flex:none;align-self:center;width:30px;height:30px;border-radius:999px;display:grid;place-items:center;color:var(--ink-3);transition:background .14s,color .14s;position:relative;}
.cart-item-remove::before{content:"";position:absolute;top:50%;left:50%;width:44px;height:44px;transform:translate(-50%,-50%);}
.cart-item-remove:hover,.cart-item-remove:active{background:var(--beige-2);color:#c0392b;}

/* mobile — compact top (header/mode/address) and bottom (footer) bars of the cart panel */
@media(max-width:680px){
  .cart-panel-close{width:36px;height:36px;border-radius:11px;}
  .cart-panel-mode{padding:14px 14px 8px;}
  .cart-panel-addr{padding:0 14px 10px;}
  .cas-icon{width:24px;height:24px;}
  .cart-panel>.cart-foot{padding:8px 16px calc(10px + env(safe-area-inset-bottom));}
  .cart-panel>.cart-foot .cart-row{padding:2px 0;font-size:14.5px;}
  .cart-panel>.cart-foot .cart-row.total{padding-top:10px;margin-top:6px;}
  .cart-panel>.cart-foot .cart-cta{padding:12px 22px;margin-top:8px;}
}

/* product modal — pill CTA unified with the catalog's price-pill */
/* user account dropdown — hover-revealed menu on the header avatar chip */
.user-menu-wrap{position:relative;align-self:stretch;display:flex;}
.user-dropdown{
  position:absolute;top:100%;right:0;z-index:150;width:216px;
  background:var(--paper);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);
  padding:6px;margin-top:0;display:flex;flex-direction:column;gap:1px;
  opacity:0;pointer-events:none;transform:translateY(-4px);
  transition:opacity .16s ease,transform .16s ease;
}
@media (hover:hover) and (pointer:fine){
  .user-menu-wrap:hover .user-dropdown,
  .user-menu-wrap:focus-within .user-dropdown{opacity:1;pointer-events:auto;transform:translateY(0);}
}
.user-dd-item{
  display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:9px;
  font-size:14px;font-weight:600;color:var(--ink);text-align:left;width:100%;
  transition:background .12s;
}
.user-dd-item svg{color:var(--ink-2);flex:none;}
.user-dd-item:hover,.user-dd-item:active{background:var(--beige-2);}
.user-dd-sep{height:1px;background:var(--line);margin:5px 8px;}
.user-dd-item.danger{color:#c0392b;}
.user-dd-item.danger svg{color:#c0392b;}
.user-dd-item.danger:hover,.user-dd-item.danger:active{background:rgba(192,57,43,.08);}
/* same fixed-gutter, grows-on-hover gold scrollbar used across the site's cart lists */
.pb-scroll{scrollbar-width:thin;scrollbar-color:transparent transparent;}
.pb-scroll:hover{scrollbar-color:rgba(160,130,50,.55) transparent;}
.pb-scroll::-webkit-scrollbar{width:9px;}
.pb-scroll::-webkit-scrollbar-thumb{
  background-color:transparent;border:3px solid transparent;background-clip:padding-box;border-radius:99px;
  transition:background-color .15s ease,border-width .15s ease;
}
.pb-scroll:hover::-webkit-scrollbar-thumb{background-color:rgba(160,130,50,.55);border-width:1.5px;}

/* ============================================================ ACCOUNT MODAL (личный кабинет) */
.account-modal{width:min(560px,94vw);display:flex;flex-direction:column;height:min(680px,calc(100dvh - 48px));background:var(--beige-bg);}
.acc-head{padding:22px 28px 0;flex:none;overflow-y:hidden;}
.acc-head h3{font-size:22px;margin:0 0 2px;}
.acc-user{font-size:13.5px;color:var(--ink-2);margin:0 0 12px;font-variant-numeric:tabular-nums;}
.acc-tabs{margin-bottom:10px;}
.acc-body{padding:14px 28px 18px;overflow-y:auto;flex:1;min-height:220px;scrollbar-width:none;}
.acc-body::-webkit-scrollbar{display:none;}
.acc-list{display:flex;flex-direction:column;gap:10px;}

/* empty state */
.acc-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:36px 20px;gap:6px;}
.acc-empty h4{font-size:16px;margin:0;}
.acc-empty p{font-size:13.5px;color:var(--ink-2);margin:0;line-height:1.45;}
.acc-empty .acc-add-btn{margin-top:14px;}

/* orders */
.acc-order{border:1px solid var(--line);border-radius:16px;background:#FBF6EA;overflow:hidden;}
.ao-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 15px;border-bottom:1px solid var(--line);}
.ao-id{font-size:13.5px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;}
.ao-dot{color:var(--ink-3);margin:0 6px;font-weight:400;}
.ao-status{flex:none;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:4px 10px;border-radius:999px;}
.ao-status.st-info{background:rgba(42,111,125,.12);color:#2A6F7D;}
.ao-status.st-success{background:rgba(47,138,62,.14);color:#256E32;}
.ao-status.st-danger{background:rgba(192,57,43,.1);color:#C0392B;}
.ao-items{list-style:none;margin:0;padding:8px 15px;display:flex;flex-direction:column;gap:5px;}
.ao-items li{display:flex;align-items:baseline;gap:8px;font-size:13.5px;}
.ao-name{color:var(--ink);min-width:0;}
.ao-qty{color:var(--ink-3);flex:none;}
.ao-price{margin-left:auto;flex:none;font-weight:600;color:var(--ink-2);font-variant-numeric:tabular-nums;}
.ao-price .cur{font-size:10.5px;margin-left:3px;color:var(--ink-3);}
.ao-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 15px;border-top:1px solid var(--line);}
.ao-total{font-size:13.5px;color:var(--ink-2);}
.ao-total b{color:var(--ink);font-variant-numeric:tabular-nums;}
.ao-total .cur,.acc-num+.cur{font-size:10.5px;margin-left:3px;color:var(--ink-3);font-weight:600;}
.ao-eta{display:flex;align-items:center;gap:7px;font-size:13.5px;font-weight:600;color:#2A6F7D;font-variant-numeric:tabular-nums;}
/* 29.09: окно прибытия / курьер / «где заказ» из кассы */
.ao-live{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px 12px;padding:9px 15px;border-top:1px solid var(--line);}
.ao-track{font-size:13.5px;font-weight:700;color:var(--ink);text-decoration:none;white-space:nowrap;}
.ao-edited{display:block;font-size:11.5px;color:var(--ink-3);margin-top:2px;}
.ao-repeat{flex:none;font-size:13px;font-weight:700;color:var(--ink);border:1px solid rgba(160,130,50,.3);border-radius:12px;padding:7px 14px;background:var(--paper);transition:border-color .14s,background .14s,transform .04s;}
.ao-repeat:hover,.ao-repeat:active{border-color:var(--green-deep);}

/* addresses */
.acc-addr{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:16px;background:#FBF6EA;overflow:hidden;transition:border-color .14s;}
.acc-addr.active{border-color:var(--green-deep);}
.aa-main{flex:1;min-width:0;display:flex;align-items:center;gap:12px;padding:11px 15px;text-align:left;background:none;border:none;cursor:pointer;}
.aa-radio{flex:none;width:18px;height:18px;border-radius:999px;border:1.5px solid rgba(160,130,50,.35);position:relative;transition:border-color .14s;}
.acc-addr.active .aa-radio{border-color:var(--green-deep);}
.acc-addr.active .aa-radio::after{content:"";position:absolute;inset:3.5px;border-radius:999px;background:var(--green-deep);}
.aa-body{display:flex;flex-direction:column;gap:2px;min-width:0;}
.aa-line{font-size:14px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.aa-sub{font-size:12.5px;color:var(--ink-3);}
.aa-current{margin-left:auto;flex:none;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink);}
.aa-del{flex:none;width:48px;display:grid;place-items:center;color:var(--ink-3);border-left:1px solid var(--line);background:none;transition:color .14s,background .14s;}
.aa-del:hover,.aa-del:active{color:#C0392B;background:rgba(192,57,43,.06);}
.aa-edit:hover,.aa-edit:active{color:var(--ink);background:rgba(14,61,0,.06);}
.acc-add-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:11px;font-size:13.5px;font-weight:700;color:var(--ink);border:1px dashed rgba(160,130,50,.35);border-radius:16px;background:none;transition:border-color .14s,background .14s,transform .04s;}
.acc-add-btn:hover,.acc-add-btn:active{border-color:var(--green-deep);background:rgba(14,61,0,.04);}

/* settings */
.acc-settings{display:flex;flex-direction:column;gap:4px;}
.acc-settings .addr-input{margin:8px 0 14px;}
.acc-phone{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:4px 0 0;padding:8px 14px;border-radius:12px;background:#FBF6EA;border:1px solid var(--line);font-size:14.5px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;}
.acc-phone-note{font-size:12px;font-weight:400;color:var(--ink-3);}
.acc-edit-trigger{display:inline-flex;align-items:center;gap:5px;color:var(--ink);font-weight:600;font-size:12.5px;background:none;border:none;padding:0;cursor:pointer;transition:opacity .14s;flex:none;}
.acc-edit-trigger:hover,.acc-edit-trigger:active{opacity:.65;}
.acc-empty-val{color:var(--ink-3);font-weight:400;}
.acc-edit-row{display:flex;align-items:center;gap:8px;margin:8px 0 4px;}
.acc-edit-row .field-stack{flex:1;min-width:0;margin-bottom:0;}
.acc-edit-row .field-stack-input{border-color:var(--green-deep);font-weight:600;}
.acc-edit-btn{flex:none;width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:var(--beige-2);color:var(--ink-2);transition:background .12s,color .12s;}
.acc-edit-btn:hover,.acc-edit-btn:active{background:rgba(160,130,50,.24);}
.acc-edit-save{background:var(--green-deep);color:var(--cream);}
.acc-edit-save:hover,.acc-edit-save:active{background:var(--green-deep);filter:brightness(1.13);}
.acc-phone-edit{display:flex;flex-direction:column;margin:8px 0 4px;padding:14px;border-radius:12px;background:#FBF6EA;border:1px solid var(--line);}
.acc-phone-edit .phone-field{margin:0 0 12px;}
.acc-phone-edit .otp-row{margin:0 0 14px;}
.acc-otp-sub{font-size:13px;color:var(--ink-2);margin:0 0 12px;line-height:1.4;}
.acc-edit-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px;}
.acc-cancel-link{font-size:12.5px;font-weight:600;color:var(--ink-3);background:none;border:none;padding:0;transition:color .14s;}
.acc-cancel-link:hover,.acc-cancel-link:active{color:var(--ink);}
.acc-save-btn{flex:none;background:var(--green-deep);color:var(--cream);font-weight:700;font-size:13px;padding:10px 16px;border-radius:11px;transition:filter .14s;}
.acc-save-btn:hover,.acc-save-btn:active{filter:brightness(1.13);}
.acc-save-btn:disabled{opacity:.4;cursor:not-allowed;}
.acc-otp-submit{margin-top:2px;padding:12px;font-size:14px;}
.acc-channel-row{display:flex;flex-direction:column;gap:6px;margin:0 0 2px;}
.acc-channel-label{font-size:12.5px;color:var(--ink-3);}
.acc-channel-tabs{display:flex;align-items:stretch;height:34px;background:#FBF6EA;border:1px solid var(--line-2);border-radius:999px;overflow:hidden;}
.acc-channel-tab{flex:1;padding:0 12px;font-size:12.5px;font-weight:600;color:var(--ink-2);border:none;background:none;cursor:pointer;border-right:1px solid var(--line-2);transition:background .14s,color .14s;}
.acc-channel-tab:last-child{border-right:none;}
.acc-channel-tab:hover,.acc-channel-tab:active{background:rgba(20,18,8,.03);color:var(--ink);}
.acc-channel-tab.active{background:var(--green-deep);color:var(--cream);border-right-color:var(--green-deep);}
.acc-sep{height:1px;background:var(--line);margin:8px 0;}
.acc-toggle-row{display:flex;align-items:center;gap:14px;padding:3px 0;cursor:pointer;}
.acc-toggle-row.disabled{opacity:.55;cursor:not-allowed;}
.acc-toggle-row input{position:absolute;opacity:0;pointer-events:none;}
.atr-text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1;}
.atr-label{font-size:14px;font-weight:600;color:var(--ink);}
.atr-sub{font-size:12.5px;color:var(--ink-3);}
.atr-switch{flex:none;width:42px;height:24px;border-radius:999px;background:var(--beige-2);border:1px solid rgba(160,130,50,.3);position:relative;transition:background .18s,border-color .18s;}
.atr-knob{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:999px;background:var(--paper);box-shadow:0 1px 2px rgba(30,26,10,.15);transition:transform .18s cubic-bezier(.4,0,.2,1);}
.acc-toggle-row input:checked~.atr-switch{background:var(--green-deep);border-color:var(--green-deep);}
.acc-toggle-row input:checked~.atr-switch .atr-knob{transform:translateX(18px);}
.acc-toggle-row input:focus-visible~.atr-switch{box-shadow:0 0 0 3px rgba(14,61,0,.1);}
.acc-logout{display:flex;align-items:center;justify-content:center;gap:10px;padding:8px 12px;border-radius:12px;font-size:14px;font-weight:600;color:#C0392B;background:none;text-align:center;transition:background .12s,transform .04s;}
.acc-logout svg{color:#C0392B;}
.acc-logout:hover,.acc-logout:active{background:rgba(192,57,43,.08);}

.account-modal .modal-close{right:18px;}

@media (max-width:560px){
  .acc-head{padding:24px 20px 0;}
  .acc-body{padding:16px 20px 22px;}
  .account-modal{max-height:calc(100dvh - 32px);width:min(560px,calc(100vw - 14px));}
}


/* ============================================================ BUTTON STATES
   Active state matches hover everywhere — flat fills, no press transforms. */
button{-webkit-tap-highlight-color:transparent;}

.cart-cta,.pm-cta,.pb-cta,.login-cta,.addr-save{
  transition:transform .08s ease,filter .15s ease,background .15s ease;
}
.cart-cta:hover,.pm-cta:hover,.pb-cta:hover,.login-cta:hover,.addr-save:hover,
.cart-cta:active,.pm-cta:active,.pb-cta:active,.login-cta:active,.addr-save:active{
  filter:brightness(1.1);
}

.cookie-ok{transition:transform .08s,filter .15s;}
.cookie-ok:hover,.cookie-ok:active{filter:brightness(1.1);}

.story-cta{transition:transform .08s;}

/* active mirrors hover everywhere — no press transforms (see per-control :hover,:active rules) */

/* ============================================================ DELIVERY PAGE */
.del-top{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;padding:24px 0 20px;}
.page-kicker{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);margin-bottom:9px;white-space:nowrap;}
.page-kicker svg{color:var(--ink-2);}
.page-title{font-size:34px;font-weight:800;color:var(--ink);margin:0 0 8px;letter-spacing:-.015em;line-height:1.05;}
.page-lead{font-size:15.5px;color:var(--ink-2);line-height:1.5;margin:0;white-space:nowrap;}

.del-facts{display:flex;flex-wrap:wrap;gap:9px;}
.del-fact{display:flex;align-items:center;gap:8px;background:var(--paper);border:1px solid var(--line-2);border-radius:999px;padding:8px 14px 8px 11px;font-size:13.5px;font-weight:600;color:var(--ink-2);white-space:nowrap;}
.del-fact svg{color:var(--ink-2);flex:none;}
.del-fact b{color:var(--ink);font-weight:700;}

/* Two-column: big map + compact zone list */
.del-main{display:grid;grid-template-columns:minmax(360px,1fr) 1.12fr;gap:28px;align-items:stretch;}
.del-map{border-radius:var(--radius-lg);
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:20px;overflow:hidden;
  align-self:start;position:sticky;top:16px;}
.del-map-frame{position:relative;width:100%;aspect-ratio:840/720;border-radius:12px;overflow:hidden;}
.del-map-frame iframe{width:100% !important;height:100% !important;border:0 !important;position:absolute;inset:0;}
.rings{position:relative;width:100%;max-width:470px;aspect-ratio:1;margin:0 auto;}
.ring{position:absolute;border-radius:32px;box-shadow:inset 0 1px 0 rgba(255,255,255,.12);}
.ring-label{position:absolute;left:50%;transform:translateX(-50%);
  width:36px;height:36px;border-radius:11px;display:grid;place-items:center;
  font-size:18px;font-weight:800;box-shadow:0 2px 7px rgba(20,16,4,.24);}
.rings-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--cream);z-index:2;}
.rings-center .pin{width:48px;height:48px;border-radius:999px;background:rgba(255,255,255,.18);display:grid;place-items:center;}
.rings-center span{font-size:12.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;opacity:.95;}
.del-map-cap{display:flex;align-items:center;gap:9px;font-size:13.5px;color:var(--ink-3);font-weight:600;text-align:center;margin:0;}
.del-map-cap svg{color:var(--ink-2);flex:none;}

.del-zones{display:flex;flex-direction:column;gap:12px;}
.zrow{background:var(--paper);border:1px solid var(--line);border-left:5px solid var(--zone);
  border-radius:16px;box-shadow:var(--shadow-sm);padding:15px 18px;display:flex;flex-direction:column;gap:9px;}
.zrow-top{display:flex;align-items:center;gap:11px;}
.zrow-badge{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;
  font-size:17px;font-weight:800;color:#fff;flex:none;background:var(--zone);}
.zrow-name{font-size:16px;font-weight:800;color:var(--ink);}
.zrow-name span{color:var(--ink-3);font-weight:600;font-size:13px;margin-left:8px;}
.zrow-free{font-size:13px;font-weight:800;color:var(--ink-2);white-space:nowrap;}
.zrow-areas{font-size:13px;color:var(--ink-2);line-height:1.5;margin:0;display:flex;flex-wrap:wrap;gap:6px;}
.zrow-area-chunk{background:var(--beige-2);border-radius:8px;padding:3px 9px;white-space:normal;}
.zrow-tiers{display:flex;flex-wrap:wrap;gap:7px;}
.ztier{font-size:12px;font-weight:600;color:var(--ink-2);background:var(--beige-2);
  border-radius:999px;padding:4px 11px;white-space:nowrap;font-variant-numeric:tabular-nums;}
.ztier b{color:var(--ink);font-weight:800;}
.zrow-progress{margin-top:2px;display:flex;flex-direction:column;gap:9px;}
.zp-bar{display:flex;width:100%;max-width:360px;height:42px;border-radius:9px;overflow:hidden;border:1px solid color-mix(in srgb, var(--zone) 65%, white);}
.zp-seg{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;color:color-mix(in srgb, var(--zone) 45%, black);font-variant-numeric:tabular-nums;background:var(--zone);position:relative;min-width:0;padding:2px 1px;}
.zp-seg-range{font-size:9px;font-weight:700;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
.zp-seg-fee{font-size:11px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
.zp-seg:nth-child(1){background:color-mix(in srgb, var(--zone) 10%, white);}
.zp-seg:nth-child(2){background:color-mix(in srgb, var(--zone) 25%, white);}
.zp-seg:nth-child(3){background:color-mix(in srgb, var(--zone) 40%, white);}
.zp-seg:nth-child(4){background:color-mix(in srgb, var(--zone) 52%, white);}
.zp-seg.zp-seg-free{background:color-mix(in srgb, var(--zone) 65%, white);}
.del-note{font-size:12.5px;color:var(--ink-3);margin:14px 0 0;text-align:center;}

@media(max-width:900px){
  .del-main{grid-template-columns:1fr;}
  .del-map{position:static;}
  .del-top{flex-direction:column;align-items:flex-start;gap:16px;}
  .page-title{font-size:28px;}
}

@media(max-width:680px){
  .del-top{padding:16px 0 14px;gap:12px;}
  .page-title{font-size:24px;margin-bottom:6px;}
  .page-lead{font-size:14px;white-space:normal;}
  .del-main{gap:18px;}
  .del-map-frame{aspect-ratio:4/3;}
  .del-zones{gap:10px;}
  .zrow{padding:13px 14px;gap:7px;}
  .zrow-top{gap:8px;flex-wrap:wrap;}
  .zrow-badge{width:28px;height:28px;font-size:15px;border-radius:9px;}
  .zrow-name{font-size:14.5px;}
  .zrow-free{font-size:12px;}
  .zrow-areas{font-size:12.5px;}
  .zp-bar{max-width:100%;height:46px;}
  .zp-seg-range{font-size:10px;}
  .zp-seg-fee{font-size:12px;}
}

/* ---- product card footer: separate plate under the photo (not overlaid on
   it) — name + price/add sit on the card's own beige surface, split from
   the photo by a hairline ---- */
.card .body{
  position:relative;color:var(--ink);
  display:grid;grid-template-columns:1fr auto;align-items:center;
  border-top:1px solid var(--line);background:none;
  gap:5px 8px;padding:10px 13px;
}
.card .body-head{display:contents;}
.card .body .name{
  grid-column:1;grid-row:1;min-width:0;
  font-size:14px;line-height:1.3;color:var(--ink);text-shadow:none;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.card .body .pp-price{color:var(--ink);}
.card .body .pp-price .cur{color:var(--ink-2);}
.card .body .pp-old{color:var(--ink-3);}
.card .body .pp-step{color:var(--ink);}
.card .body .pp-step:hover,.card .body .pp-step:active{background:rgba(14,61,0,.09);}
.card .body .pp-qty{color:var(--ink);}
/* pill variant's footer sits under the inset photo, corners match */
.card.var-pill .body{border-radius:0 0 18px 18px;}

/* combined price + add pill — fixed box so the + button never shifts when
   add (price + plus) flips to the stepper (minus + qty + plus); sits opposite the name */
.pp-col{grid-column:2;grid-row:1;flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:2px;min-width:0;}
.price-pill{
  flex:none;box-sizing:border-box;height:38px;border-radius:19px;
  background:transparent;color:var(--ink);border:none;
  display:inline-flex;align-items:center;justify-content:space-between;gap:6px;
  min-width:90px;padding:0 0 0 4px;margin-left:-4px;
  transition:background .14s,transform .04s;
}
/* build («Собрать») pill: arrow sits at the same right-edge position as the
   plus on regular product cards, and both now sit flush with the allergen
   badges' right edge on the photo above */
.price-pill.build-pill{min-width:96px;justify-content:space-between;gap:8px;padding:0 0 0 8px;}
.pp-price{font-size:14px;font-weight:700;white-space:nowrap;letter-spacing:-.01em;}
.pp-price .cur{font-size:10px;font-weight:700;color:var(--ink-2);margin-left:3px;letter-spacing:.03em;}
.price-pill.in-cart{padding:0 0 0 4px;}
.pp-step{width:30px;height:30px;border-radius:50%;flex:none;display:grid;place-items:center;color:var(--ink);transition:background .14s;position:relative;}
.pp-step::before{content:"";position:absolute;top:50%;left:50%;width:44px;height:44px;transform:translate(-50%,-50%);}
.pp-step:hover,.pp-step:active{background:rgba(14,61,0,.09);}
.pp-qty{flex:1;text-align:center;font-weight:700;font-size:15px;color:var(--ink);}
.pp-old{font-size:11px;color:var(--ink-3);text-decoration:line-through;font-weight:500;}

/* product modal — pill CTA unified with the catalog's price-pill (placed after
   .price-pill so its border-radius/padding actually win the cascade) */
.pm-pill{height:48px;min-width:128px;border-radius:999px;background:var(--green-deep);color:var(--cream);padding:0 10px 0 20px;margin-left:0;}
.pm-pill:hover,.pm-pill:active{background:var(--green);}
.pm-pill.in-cart{padding:0 6px;}
.pm-pill .pp-price{font-size:15px;}
.pm-pill .pp-price .cur{color:var(--cream);opacity:.75;}
.pm-pill .pp-step{width:36px;height:36px;color:var(--cream);}
.pm-pill .pp-step:hover,.pm-pill .pp-step:active{background:rgba(255,255,255,.16);}
.pm-pill .pp-qty{font-size:16px;color:var(--cream);}
.pm-foot .pp-old{font-size:12px;margin-top:4px;}

/* compact diet/allergen icons — colors per badge (unchanged), label shown as a tooltip on hover/tap */
.badge-ico{
  position:relative;flex:none;
  width:23px;height:23px;border-radius:50%;
  display:grid;place-items:center;
  padding:0;border:none;
}
.badge-ico::before{content:"";position:absolute;top:50%;left:50%;width:32px;height:32px;transform:translate(-50%,-50%);}
.badge-ico svg,.badge-ico .badge-glyph{width:13px;height:13px;display:block;}
.badge-ico .badge-tip{
  position:absolute;right:-5px;bottom:calc(100% + 7px);
  background:var(--badge-bg,var(--green-deep));color:var(--badge-fg,var(--cream));
  font-size:11px;font-weight:600;line-height:1.3;white-space:nowrap;
  padding:5px 9px;border-radius:8px;
  opacity:0;transform:translateY(4px) scale(.96);transform-origin:bottom right;
  pointer-events:none;transition:opacity .12s ease,transform .12s ease;
  box-shadow:var(--shadow);z-index:5;
}
.badge-ico .badge-tip::after{
  content:"";position:absolute;top:100%;right:11.5px;
  border:5px solid transparent;border-top-color:var(--badge-bg,var(--green-deep));
}
.badge-ico:hover .badge-tip,
.badge-ico:focus .badge-tip{
  opacity:1;transform:translateY(0) scale(1);
}
/* кликнутый значок держит фокус — при наведении на соседний его подсказка
   уходит, чтобы две не перекрывались */
*:has(> .badge-ico:hover) > .badge-ico:focus:not(:hover) .badge-tip{
  opacity:0;transform:translateY(4px) scale(.96);
}

/* overlay variant */
.card.var-overlay:not(.build) .body{padding:15px 13px 13px;}
.card.var-overlay:not(.build) .pp-old{color:rgba(255,255,255,.6);}

/* mobile */
@media(max-width:680px){
  .card .body{padding:10px 12px 3px;gap:4px 6px;}
  /* mobile: name and add-to-cart stay stacked on two rows */
  .card .body .name{grid-column:1/-1;grid-row:1;}
  .pp-col{grid-column:1;grid-row:2;align-items:flex-start;}
  .photo .card-badges{bottom:10px;gap:3px;}
  .badge-ico{width:20px;height:20px;}
  .badge-ico svg,.badge-ico .badge-glyph{width:11px;height:11px;}
  .badge-ico .badge-tip::after{right:10px;}
}

/* ============================================================ CART / CHECKOUT TWEAKS */
/* (8) remove all solid borders inside the cart panel + checkout step */
.cart-panel .cart-head{border-bottom:none;}
.cart-panel .cart-foot{border-top:none;}
.cart-panel .cart-collapse-mini{border-left:none;}
.cart-panel .co-rest-list{border-bottom:none;}
.cart-panel .co-rest{border:none;}
.cart-panel .co-rest:hover,.cart-panel .co-rest:active{background:var(--beige-2);}
.cart-panel .co-time{border:none;background:var(--paper);}
.cart-panel .co-time:hover,.cart-panel .co-time:active{background:var(--beige-2);}
.cart-panel .co-time.active{border:none;background:var(--green-deep);color:var(--cream);}
.cart-panel .co-time.active .ct-sub{color:rgba(249,242,219,.72);}

/* (6/7) dish quantity steppers — compact beige pill (see .price-col .stepper) */
.cart-panel .cart-item .stepper:not(.sm) .n{min-width:20px;font-size:13.5px;}

/* (11) back + close at the top of the checkout step — same compact tile as the cart step's X */
.co-head{display:flex;align-items:center;gap:10px;padding:18px 18px 14px;}
.co-head-addr{flex:1;min-width:0;justify-content:center;}
.co-head-addr .cas-body{flex:0 1 auto;min-width:0;text-align:center;}
.co-head-addr .cas-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
@media(max-width:680px){.co-head{padding:14px 14px 8px;}}

/* (3) mobile: header height stays constant on scroll (no compression) so the
   centered header icons never shift; categories keep a light pin treatment */
@media(max-width:680px){
  .catbar{transition:padding .18s ease;}
  .catbar.scrolled{padding-top:5px;padding-bottom:7px;gap:6px;margin-left:-7px;margin-right:-7px;padding-left:16px;padding-right:16px;}
}


/* ============================================================ INTERNAL PAGE STUBS */
.stub-note{margin-top:8px;padding:28px 30px;background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.stub-badge{flex:none;font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2);background:rgba(14,61,0,.07);border:1px solid rgba(14,61,0,.14);padding:7px 13px;border-radius:999px;}
.stub-note p{margin:0;font-size:15px;color:var(--ink-2);line-height:1.5;}
.stub-note a{color:var(--ink);font-weight:700;}
.stub-note a:hover{border-bottom-color:var(--green-deep);}

/* ============================================================ SECONDARY PAGES
   About / Promo / Payment / Catering — content pages built to the home + brandbook
   standard: cream paper cards, hairline borders, bold display numerals, flat green CTA. */
.pg-section{margin-top:50px;}
.pg-section:first-of-type{margin-top:30px;}
.pg-head{display:flex;align-items:baseline;gap:14px;margin-bottom:18px;}
.pg-head h2{font-family:'Mulish',"Segoe UI",system-ui,-apple-system,sans-serif;font-weight:700;font-size:34px;line-height:1;color:var(--ink);margin:0;}
.pg-num{font-family:'Mulish',"Segoe UI",system-ui,-apple-system,sans-serif;font-weight:700;font-size:30px;line-height:1;color:var(--beige-warm);}
.pg-prose{max-width:64ch;color:var(--ink-2);font-size:15.5px;line-height:1.6;}
.pg-prose p{margin:0 0 12px;}
.pg-prose p:last-child{margin-bottom:0;}

.catering-panel{display:grid;grid-template-columns:1.6fr 1fr;gap:16px;align-items:stretch;}
.catering-card{background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);padding:26px;}
.catering-aside{display:flex;flex-direction:column;align-items:flex-start;gap:6px;background:var(--green-deep);color:var(--cream);border-radius:var(--radius);padding:26px;text-decoration:none;transition:background .14s;}
.catering-aside:hover{background:var(--green);}
.catering-aside:active{transform:translateY(1px);}
.catering-aside-ic{width:46px;height:46px;border-radius:13px;background:rgba(249,242,219,.14);color:var(--cream);display:grid;place-items:center;margin-bottom:8px;}
.catering-aside h3{margin:0;font-size:17px;font-weight:700;color:var(--cream);}
.catering-aside p{margin:0;font-size:14px;line-height:1.5;color:rgba(249,242,219,.8);}
.catering-aside b{margin-top:auto;padding-top:20px;font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--cream);}
.catering-aside-hours{font-size:13px;color:rgba(249,242,219,.7);}
@media (max-width:860px){.catering-panel{grid-template-columns:1fr;}.catering-aside b{padding-top:12px;}}
.cf-lead{margin:0 0 18px;font-size:14.5px;line-height:1.5;color:var(--ink-2);max-width:52ch;}
.cf-guests-row{margin-bottom:16px;}
.cf-guests-row .field-label{display:block;margin-bottom:8px;}
.cf-guests{display:flex;flex-wrap:wrap;gap:8px;}
.cf-guest{display:flex;align-items:baseline;gap:7px;border:1px solid var(--line-2);border-radius:999px;background:var(--paper);padding:9px 16px;cursor:pointer;font-family:inherit;transition:border-color .14s,background .14s;}
.cf-guest b{font-size:14px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;}
.cf-guest span{font-size:13px;color:var(--ink-2);}
.cf-guest:hover{border-color:var(--green-deep);}
.cf-guest:active{transform:translateY(1px);}
.cf-guest.active{background:var(--green-deep);border-color:var(--green-deep);}
.cf-guest.active b,.cf-guest.active span{color:var(--cream);}
.catering-card .catering-sent{border:none;background:none;padding:0;max-width:none;}
.catering-form{display:flex;flex-direction:column;}
.catering-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:16px;}
.catering-form-grid .field-stack{margin-bottom:0;}
.catering-form .cf-contact{margin-bottom:16px;}
.catering-form .field-label{display:block;margin-bottom:8px;}
.catering-form .co-note{width:100%;border:1px solid var(--line-2);border-radius:12px;padding:13px 15px;font-size:14.5px;font-family:inherit;color:var(--ink);background:var(--paper);outline:none;resize:vertical;margin-bottom:16px;transition:border-color .14s;}
.catering-form .co-note:focus{border-color:var(--green-deep);}
.catering-form .addr-save{width:100%;}
.catering-sent{display:flex;flex-direction:column;align-items:flex-start;gap:4px;max-width:420px;background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);padding:26px 26px 24px;}
.catering-sent-icon{width:44px;height:44px;border-radius:999px;background:var(--beige-2);color:var(--green);display:grid;place-items:center;margin-bottom:10px;}
.catering-sent h3{font-size:17px;font-weight:700;margin:0;color:var(--ink);}
.catering-sent p{font-size:14px;color:var(--ink-2);margin:4px 0 0;line-height:1.5;}

.pg-mosaic{display:grid;grid-template-columns:1.45fr 1fr 1fr;grid-auto-rows:200px;gap:16px;}
.pg-mosaic img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius);border:1px solid var(--line);display:block;}
.pg-mosaic-hero{grid-row:span 2;}
.pg-mosaic-wide{grid-column:span 2;}
@media (max-width:640px){
  .pg-mosaic{grid-template-columns:1fr 1fr;grid-auto-rows:124px;}
  .pg-mosaic-hero{grid-column:span 2;grid-row:span 2;}
  .pg-mosaic-wide{grid-column:span 2;}
}

.pg-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(248px,1fr));gap:16px;}
.pg-card{background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);padding:24px 24px 22px;display:flex;flex-direction:column;gap:10px;}
.pg-ic{width:46px;height:46px;border-radius:13px;background:var(--beige-2);color:var(--green);display:grid;place-items:center;margin-bottom:4px;}
.pg-card h3{font-size:16px;font-weight:700;color:var(--ink);margin:0;line-height:1.3;}
.pg-card p{font-size:13.5px;color:var(--ink-2);line-height:1.55;margin:0;}
.pg-card p a{color:var(--ink);font-weight:700;}
.pg-card p a:hover{opacity:.72;}

.pg-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;}
.pg-stat{background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px;}
.pg-stat b{font-family:'Mulish',"Segoe UI",system-ui,-apple-system,sans-serif;font-weight:700;font-size:46px;line-height:.9;color:var(--ink);display:block;}
.pg-stat span{font-size:13.5px;color:var(--ink-2);margin-top:6px;display:block;}
.pg-stat-link{display:block;transition:background .14s,border-color .14s;}
.pg-stat-link:hover{background:var(--beige-2);border-color:var(--line-2);}
.pg-stat-link span{color:var(--ink-2);font-weight:600;}

.pg-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;}
.pg-step{background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);padding:22px 22px 20px;}
.pg-step-n{width:34px;height:34px;border-radius:999px;background:var(--green-deep);color:var(--cream);display:grid;place-items:center;font-weight:700;font-size:15px;margin-bottom:12px;}
.pg-step h3{font-size:15px;font-weight:700;margin:0 0 6px;color:var(--ink);}
.pg-step p{font-size:13px;color:var(--ink-2);line-height:1.5;margin:0;}

.pg-tickets{display:flex;flex-direction:column;gap:12px;}
.pg-ticket{display:flex;align-items:center;gap:18px;flex-wrap:wrap;background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);padding:20px 24px;}
.pg-ticket-off{font-family:'Mulish',"Segoe UI",system-ui,-apple-system,sans-serif;font-weight:700;font-size:42px;line-height:1;color:var(--ink);flex:none;}
.pg-ticket-body{flex:1;min-width:180px;}
.pg-ticket-body b{font-size:16px;font-weight:700;color:var(--ink);}
.pg-ticket-body span{display:block;font-size:13px;color:var(--ink-2);margin-top:3px;line-height:1.5;}
.pg-ticket-code{flex:none;font-size:16px;font-weight:800;letter-spacing:.08em;color:var(--ink);border:1.5px dashed var(--green-soft);border-radius:10px;padding:9px 16px;background:rgba(14,61,0,.05);}

/* promo page — featured offers, sector split value | body */
.promo-offers{display:grid;grid-template-columns:1fr;gap:16px;}
.promo-offer{background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);display:flex;align-items:stretch;overflow:hidden;}
.promo-offer-val{flex:none;width:168px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:26px 16px;border-right:1px solid var(--line);background:var(--beige-2);}
.promo-offer-val b{font-family:'Mulish',"Segoe UI",system-ui,-apple-system,sans-serif;font-weight:700;font-size:44px;line-height:.9;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums;}
.promo-offer-ic{color:var(--green);display:grid;place-items:center;}
.promo-pill{padding:4px 11px;border-radius:999px;font-size:12px;font-weight:700;text-transform:lowercase;letter-spacing:.02em;background:var(--paper);border:1px solid var(--line-2);color:var(--ink);}
.promo-pill.discount{background:var(--pink);border-color:transparent;color:#5a1320;}
.promo-offer-body{flex:1;min-width:0;padding:22px 24px 20px;display:flex;flex-direction:column;gap:10px;}
.promo-offer-body h3{font-size:17px;font-weight:700;color:var(--ink);margin:0;line-height:1.3;}
.promo-offer-body p{font-size:13.5px;color:var(--ink-2);line-height:1.55;margin:0;max-width:62ch;}
.promo-meta{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:auto;padding-top:12px;border-top:1px solid var(--line);}
.promo-meta span,.promo-meta a{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--ink-2);font-variant-numeric:tabular-nums;}
.promo-meta a{color:var(--ink);font-weight:700;}
.promo-meta a:hover{opacity:.72;}
.promo-meta span svg,.promo-meta a svg{color:var(--ink);flex:none;}
@media (max-width:560px){
  .promo-offers{grid-template-columns:1fr;}
  .promo-offer{flex-direction:column;}
  .promo-offer-val{width:auto;flex-direction:row;justify-content:flex-start;gap:14px;padding:16px 22px;border-right:none;border-bottom:1px solid var(--line);}
  .promo-offer-val b{font-size:36px;}
}

/* link-cards (follow / subscribe) */
.pg-card-link{transition:background .14s,border-color .14s;}
.pg-card-link:hover{background:var(--beige-2);border-color:var(--line-2);}
.pg-card-more{margin-top:auto;padding-top:4px;font-size:13.5px;font-weight:700;color:var(--ink);}

.pg-cta-band{margin-top:50px;background:var(--green-deep);color:var(--cream);border-radius:var(--radius-lg);padding:34px clamp(24px,4vw,44px);display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;}
.pg-cta-band h2{font-family:'Mulish',"Segoe UI",system-ui,-apple-system,sans-serif;font-weight:700;font-size:38px;line-height:1;margin:0;color:var(--cream);}
.pg-cta-band p{margin:8px 0 0;font-size:14.5px;color:rgba(249,242,219,.8);max-width:46ch;}
.pg-cta-btns{display:flex;gap:12px;flex-wrap:wrap;}
.pg-cta-btn{display:inline-flex;align-items:center;gap:9px;background:var(--cream);color:var(--ink);font-weight:700;font-size:15px;padding:14px 24px;border-radius:13px;transition:filter .14s,transform .08s;white-space:nowrap;}
.pg-cta-btn:hover,.pg-cta-btn:active{filter:brightness(1.05);}
.pg-cta-btn.ghost{background:transparent;border:1px solid rgba(249,242,219,.4);color:var(--cream);}
.del-cta-band{background:var(--beige-2);color:var(--ink);}
.del-cta-band h2{color:var(--ink);}
.del-cta-band p{color:var(--ink-2);}
.del-cta-btn{color:var(--ink);}
.zrow-pickup{border-left-color:var(--info);}
.zrow-pickup .zrow-badge{background:var(--info);}
.zrow-pickup .zrow-free{color:var(--info);}
.pg-cta-btn.ghost:hover,.pg-cta-btn.ghost:active{background:rgba(249,242,219,.1);filter:none;}

@media(max-width:680px){
  .pg-section{margin-top:38px;}
  .pg-head h2{font-size:28px;}
  .pg-cta-band{padding:26px 22px;}
  .pg-cta-band h2{font-size:30px;}
}

/* ============================================================ SUPER-ADMIN INLINE TEXT EDITOR (site/modules/text/editor.jsx) */
/* Applied only when window.MIAMI_CAN_EDIT_TEXT is set (acl::check('super')). */
.text-editable{cursor:pointer;border-radius:6px;outline:2px dashed transparent;outline-offset:2px;transition:background .12s ease,outline-color .12s ease,box-shadow .12s ease;}
.text-editable:hover,.text-editable:focus-visible{background:rgba(224,134,58,.16);outline-color:rgba(224,134,58,.55);box-shadow:0 0 0 6px rgba(224,134,58,.10);}
h1.text-editable,h2.text-editable,h3.text-editable,p.text-editable{display:block;}
b.text-editable,span.text-editable{display:inline-block;}

.text-edit-modal{width:min(560px,94vw);background:var(--beige-bg);}
.text-edit-inner{padding:30px 28px 24px;}
.text-edit-inner h3{margin:0 0 4px;font-size:19px;font-weight:800;color:var(--ink);}
.text-edit-code{margin:0 0 18px;font-size:12px;color:var(--ink-3);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;word-break:break-all;}
.text-edit-field{display:block;margin-bottom:14px;}
.text-edit-lang{display:block;font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2);margin-bottom:5px;}
.text-edit-field textarea{width:100%;box-sizing:border-box;border:1px solid var(--line-2);border-radius:10px;padding:10px 12px;font:inherit;font-size:14px;line-height:1.45;resize:vertical;background:var(--paper);color:var(--ink);}
.text-edit-field textarea:focus{outline:none;border-color:var(--green-soft);box-shadow:0 0 0 3px rgba(14,61,0,.12);}
.text-edit-error{color:#c0392b;font-size:13px;margin:6px 0 0;}
.text-edit-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;}
.text-edit-actions button{border-radius:999px;padding:10px 22px;font:inherit;font-weight:700;font-size:14px;cursor:pointer;border:1px solid transparent;}
.text-edit-cancel{background:transparent;border-color:var(--line-2);color:var(--ink-2);}
.text-edit-cancel:hover{background:rgba(160,130,50,.08);}
.text-edit-save{background:var(--green-deep);color:var(--beige-bg);}
.text-edit-save:hover{filter:brightness(1.08);}
.text-edit-save:disabled,.text-edit-cancel:disabled{opacity:.6;cursor:default;filter:none;}

/* ============================================================ UX PASS 2026-09-15
   Overrides grouped at the end so they win the cascade without touching the
   original rules above. */

/* readable sizes: card names/prices, hover composition, cart rows, promo
   (promo input 16px: iOS zooms the page on focus of anything smaller) */
.card .body .name{font-size:15px;}
.pp-price{font-size:15px;}
.pp-price .cur{font-size:12px;}
.pp-old{font-size:12px;}
.ch-label{font-size:12px;}
.ch-ingr{font-size:14px;}
.ch-kcal i{font-size:12.5px;}
.ch-bju{font-size:13px;}
.cart-item .body .name{font-size:15px;}
.price-col{font-size:15px;}
.price-col .old{font-size:13px;}
.free-item>.name{font-size:13.5px;}
.cart-free-sep span{font-size:12px;}
.cart-row-hint{font-size:14px;}
.cfp-label{font-size:13.5px;}
.applied-promo{font-size:13.5px;}
.removed-text{font-size:14.5px;}
.promo-row .field-stack-input{font-size:16px;}
.promo-row .field-stack-label{font-size:15px;}
.promo-row .field-stack-input:focus ~ .field-stack-label,
.promo-row .field-stack-input:not(:placeholder-shown) ~ .field-stack-label{font-size:11px;}
.promo-row button{font-size:14px;}
.cart-panel>.cart-foot .promo-row .field-stack-input{padding:17px 14px 5px;}

/* cart steppers: 36px buttons + 44px invisible hit area */
.stepper button{position:relative;}
.stepper button::before{content:"";position:absolute;top:50%;left:50%;width:44px;height:44px;transform:translate(-50%,-50%);}
.price-col .stepper button,.stepper.sm button{width:36px;height:36px;}
.price-col .stepper .n,.stepper.sm .n,.cart-panel .cart-item .stepper:not(.sm) .n{font-size:15px;min-width:26px;}

/* cart footer: cash-only note for delivery, promo above the CTA */
.cart-cash-note{display:block;margin:6px 0 0;font-size:13px;line-height:1.35;color:var(--ink-3);}
.cart-foot .promo-row{margin:10px 0 0;}
.cart-foot .promo-err{margin:6px 0 0;}

/* totals sit right under a short list instead of at the bottom of the panel */
.cart-panel{background:var(--beige-bg);}
.cart-panel-items{flex:0 1 auto;}

/* checkout: guest note in place of the read-only contact line */
.co-guest-note{margin:0 0 4px;font-size:13.5px;line-height:1.4;color:var(--ink-3);}

/* cookie bar: never over the cart or a modal; compact strip on phones */
body:has(.cart-panel) .cookie-bar,body:has(.modal-backdrop.open) .cookie-bar{display:none;}
@media(max-width:680px){
  .cookie-bar{left:8px;right:84px;bottom:calc(8px + env(safe-area-inset-bottom));max-width:none;padding:8px 8px 8px 14px;gap:10px;border-radius:12px;} /* 27.09: right 84px — справа кнопка чата, раньше закрывала «Ок» */
  .cookie-text{font-size:12px;line-height:1.3;}
  .cookie-ok{padding:8px 16px;}
  .card .body .name{font-size:14.5px;}
}

/* photo placeholders: no alt text drawn inside the beige box while loading */
.card .photo img{color:transparent;}
.card .photo img:not([src]){visibility:hidden;}

/* scrolled desktop header: icon-only contact chip so the last category fits */
@media(min-width:1081px){
  .topbar.scrolled .contact-chip-label{display:none;}
}

/* ============================================================ DESIGN PASS 2026-09-15
   Promise strip, one grid edge for stories/catbar/catalog, calmer cards with a
   stronger price, "why us" tiles, collapsible SEO text, full footer, cart pop. */

/* promise strip */
.promise-strip{max-width:calc(var(--maxw) + 44px);margin:0 auto;padding:8px 22px 0;}
.promise-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 30px;padding:12px 20px;border-radius:var(--radius);background:var(--paper);border:1px solid var(--line);}
.promise-item{display:inline-flex;align-items:center;gap:9px;font-size:14px;font-weight:600;color:var(--ink);white-space:nowrap;}
.promise-item svg{flex:none;color:var(--ink-2);}
a.promise-item:hover{color:var(--ink);}
@media(max-width:680px){
  .promise-strip{padding:6px 7px 0;}
  .promise-row{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;gap:20px;padding:10px 14px;border-radius:12px;}
  .promise-row::-webkit-scrollbar{display:none;}
  .promise-item{font-size:13px;}
}

/* stories fill the column width instead of stopping short of the grid edge */
.story-card-btn{flex:1 0 224px;width:auto;height:auto;aspect-ratio:2/3;max-width:300px;}
@media(max-width:680px){
  .story-card-btn{flex:0 0 149px;width:149px;height:227px;aspect-ratio:auto;max-width:none;}
}

/* catbar starts at the grid edge like the section titles and cards */
@media(min-width:1081px){
  .catbar{justify-content:flex-start;}
  .catbar .cats{flex:1 1 auto;}
  .catbar .cats-row{max-width:none;margin-inline:0;}
  .catbar .cats-row.fit{justify-content:flex-start;gap:18px;}
}

/* cards: no composition overlay over the photo (it lives in the dish modal),
   kcal + weight as one line under the name, price and add button stand out */
.card-hover{display:none;}
.weight-badge{display:none;}
.card .body{grid-template-rows:auto auto;align-content:space-between;row-gap:3px;}
.card .body .name{align-self:start;}
.card-meta{grid-column:1;grid-row:2;align-self:end;min-width:0;font-size:12.5px;color:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.card .pp-col{grid-row:1 / span 2;align-self:center;}
.card .body .pp-price{font-size:17px;font-weight:800;color:var(--ink);letter-spacing:-.02em;}
.card .body .pp-price .cur{font-size:11px;font-weight:700;color:var(--ink-3);}
.card .price-pill:not(.in-cart):not(.build-pill) .pp-step{width:32px;height:32px;background:var(--green-deep);color:var(--cream);transition:background .14s,transform .08s;}
.card .price-pill:not(.in-cart):not(.build-pill) .pp-step:hover{background:var(--green);}
.card .price-pill:not(.in-cart):not(.build-pill):active .pp-step{transform:scale(.9);}
@media(max-width:680px){
  .card-meta{grid-column:1 / -1;grid-row:2;}
  .card .pp-col{grid-row:3;align-self:start;}
  .card .body .pp-price{font-size:16px;}
}

/* why-us tiles */
.why-band{margin-top:64px;}
.why-head{margin:0 0 18px;font-size:30px;font-weight:700;color:var(--ink);}
.why-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;}
.why-tile{padding:22px 22px 24px;border-radius:var(--radius);background:var(--paper);border:1px solid var(--line);}
.why-ico{width:44px;height:44px;margin-bottom:14px;border-radius:12px;display:grid;place-items:center;background:var(--green-deep);color:var(--cream);}
.why-tile h3{margin:0 0 6px;font-size:17px;font-weight:700;color:var(--ink);}
.why-tile p{margin:0;font-size:14px;line-height:1.5;color:var(--ink-2);}
@media(max-width:1080px){.why-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:560px){.why-grid{grid-template-columns:1fr;}.why-head{font-size:24px;}.why-band{margin-top:44px;}}

/* SEO text: short preview with a fade, full text behind a toggle */
.seo-text{max-width:none;margin:48px 0 0;padding:28px 32px 22px;border:1px solid var(--line);border-radius:var(--radius);}
.seo-text .seo-body{position:relative;max-width:900px;max-height:210px;overflow:hidden;}
.seo-text .seo-body::after{content:"";position:absolute;left:0;right:0;bottom:0;height:90px;background:linear-gradient(to bottom,rgba(243,234,212,0),var(--beige-bg));pointer-events:none;}
.seo-text.open .seo-body{max-height:none;}
.seo-text.open .seo-body::after{display:none;}
.seo-text .seo-body > div{max-width:none !important;margin:0 !important;}
.seo-text h1{margin:0 0 14px;font-size:22px;line-height:1.25;font-weight:700;color:var(--ink);}
.seo-text h1 strong,.seo-text h2 strong{font-weight:inherit;color:inherit;}
.seo-text .seo-body h2{margin:24px 0 10px;font-size:17px;}
.seo-text p{font-size:14px;line-height:1.6;color:var(--ink-2);}
.seo-more{margin-top:14px;padding:6px 0;font-size:14px;font-weight:700;color:var(--ink);border-bottom:1px solid currentColor;}
@media(max-width:560px){.seo-text{padding:22px 18px 16px;}}

/* footer: brand, nav, pickup, delivery & payment, contacts */
.footer{display:block;margin-top:40px;padding:36px 36px 22px;}
.footer-top{display:grid;grid-template-columns:1.4fr 1fr 1.2fr 1.3fr 1fr;gap:32px;}
.footer-brand p{margin:14px 0 18px;max-width:260px;font-size:14px;line-height:1.5;color:rgba(249,242,219,.72);}
.footer-col h4{margin:0 0 12px;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(249,242,219,.55);}
.footer-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;}
.footer-col li{display:flex;flex-direction:column;gap:3px;font-size:14px;line-height:1.45;color:rgba(249,242,219,.88);}
.footer-col li b{font-weight:600;color:var(--cream);}
.footer-col a{color:rgba(249,242,219,.88);transition:color .14s;}
.footer-col a:hover{color:var(--cream);}
.footer-col .muted{font-size:13px;color:rgba(249,242,219,.6);}
.footer .footer-col .nav{flex-direction:column;gap:9px;}
.footer .footer-col .nav a{padding:0;margin:0;font-size:14px;font-weight:500;}
.footer-legal{justify-content:space-between;margin-top:28px;padding-top:16px;border-top:1px solid rgba(249,242,219,.14);}
@media(max-width:1080px){.footer-top{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.footer{padding:26px 20px 18px;}.footer-top{grid-template-columns:1fr;gap:24px;}}

/* cart: item counter on the bag + pop on every change */
.cart-chip .bag .badge{top:-8px;right:-10px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;display:grid;place-items:center;background:var(--cream);color:var(--ink);font-size:10.5px;font-weight:800;box-shadow:0 0 0 2px var(--green-deep);animation:ccPop .38s cubic-bezier(.3,1.6,.5,1);}
.cart-chip .cc-num{display:inline-block;animation:ccPop .38s cubic-bezier(.3,1.6,.5,1);}
@keyframes ccPop{0%{transform:scale(.6);}60%{transform:scale(1.18);}100%{transform:scale(1);}}
@media (prefers-reduced-motion:reduce){.cart-chip .bag .badge,.cart-chip .cc-num{animation:none;}}

/* ============================================================ SEO PASS 2026-09-17
   H1 над полосой-обещанием, ссылки в названиях карточек, «Частые вопросы»,
   языки в меню ссылками, название блюда в карточке — H1 */
.promise-h1{margin:6px 2px 10px;font-size:15px;font-weight:700;line-height:1.3;letter-spacing:0;color:var(--ink-2);}
@media(max-width:680px){.promise-h1{margin:4px 4px 8px;font-size:13px;}}
.card .body .name a{color:inherit;text-decoration:none;}
.pm-body h1.pm-title{font-weight:700;font-size:32px;line-height:1.12;letter-spacing:-.01em;color:var(--ink);margin:6px 0 0;}
.pb .pm-body h1.pm-title{font-size:26px;margin:4px 0 0;}
@media(max-width:680px){.pm-body h1.pm-title{font-size:23px;margin-top:3px;}}
.lang a{padding:12px 14px;border-radius:8px;background:rgba(255,255,255,.1);font-size:12px;font-weight:600;text-transform:uppercase;color:inherit;text-decoration:none;}
.lang a.active{background:var(--cream);color:var(--ink);}
.faq-block{max-width:1000px;margin:40px auto 0;padding-top:32px;border-top:1px solid var(--line);}
.faq-block h2{font-size:22px;font-weight:700;color:var(--ink);margin:0 0 14px;letter-spacing:-.01em;}
.faq-list{display:flex;flex-direction:column;border-radius:var(--radius);background:var(--paper);border:1px solid var(--line);}
.faq-item+.faq-item{border-top:1px solid var(--line);}
.faq-item summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 18px;font-size:15px;font-weight:600;color:var(--ink);}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:'+';flex:none;font-size:20px;font-weight:400;line-height:1;color:var(--ink-2);transition:transform .15s;}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item p{margin:0;padding:0 18px 16px;font-size:14px;line-height:1.6;color:var(--ink-2);}
@media(max-width:560px){.faq-item summary{padding:13px 14px;font-size:14px;}.faq-item p{padding:0 14px 14px;}}

/* ============================================================ PRODUCT CARD 2026-09-17
   Фон и обводка карточки прежние; «+» наполовину заходит на фото с кольцом цвета
   фона, аллергены в левом нижнем углу фото; под фото название, состав чипсами
   (первый ингредиент выделен), внизу цена слева, ккал · вес справа.
   Внутренние классы pc-*, чтобы не пересекаться со старыми правилами .card .body. */
.card.pc{overflow:visible;}
.pc .pc-media{position:relative;}
.pc .photo{border-radius:calc(var(--radius) - 1px) calc(var(--radius) - 1px) 0 0;}
@media (hover:hover) and (pointer:fine){.card.pc:hover .photo img{transform:scale(1.04);}}

.pc-badges{position:absolute;left:10px;bottom:10px;z-index:3;display:flex;flex-wrap:wrap;gap:4px;max-width:calc(100% - 90px);}
.pc-badges .badge-ico{box-shadow:0 1px 3px rgba(30,26,10,.18);}
.pc-badges .badge-ico .badge-tip{right:auto;left:-5px;transform-origin:bottom left;}
.pc-badges .badge-ico .badge-tip::after{right:auto;left:11.5px;}

.pc-add{
  position:absolute;right:14px;bottom:-22px;z-index:4;
  width:46px;height:46px;border-radius:50%;border:0;padding:0;
  display:grid;place-items:center;cursor:pointer;
  background:var(--green-deep);color:#fff;
  box-shadow:0 0 0 5px var(--beige-bg);
  transition:background .14s,transform .08s;
}
.pc-add:hover{background:var(--green);}
.pc-add:active{transform:scale(.92);}
.pc-add:focus-visible{outline:2px solid var(--green-soft);outline-offset:3px;}
.pc-stepper{width:auto;height:46px;border-radius:23px;display:flex;align-items:center;gap:0;padding:0 4px;cursor:default;}
.pc-stepper:active{transform:none;}
.pc-stepper button{width:38px;height:38px;border-radius:50%;border:0;background:none;color:#fff;display:grid;place-items:center;cursor:pointer;transition:background .14s;}
.pc-stepper button:hover{background:rgba(255,255,255,.16);}
.pc-qty{min-width:22px;text-align:center;font-weight:800;font-size:16px;color:#fff;font-variant-numeric:tabular-nums;}

.pc-body{flex:1;display:flex;flex-direction:column;gap:8px;padding:14px 16px 14px;border-top:1px solid var(--line);}
.pc .name{font-size:16px;font-weight:600;line-height:1.25;color:var(--ink);padding-right:48px;}
.pc .name a{color:inherit;text-decoration:none;}
.pc-chips{display:flex;flex-wrap:wrap;gap:4px;}
.pc-chip{font-size:12px;font-weight:600;line-height:1.3;color:var(--ink-2);background:rgba(160,130,50,.11);border-radius:999px;padding:3px 9px;white-space:nowrap;}
.pc-chip.main{background:rgba(47,138,62,.15);color:var(--ink);}
.pc-chip.more{background:none;color:var(--ink-3);padding-inline:3px;}
.pc-chip.pc-m{display:none;}
.pc-foot{margin-top:auto;padding-top:2px;display:flex;align-items:baseline;justify-content:space-between;gap:10px;min-height:26px;}
.pc-price{font-size:19px;font-weight:800;color:var(--ink);letter-spacing:-.02em;white-space:nowrap;font-variant-numeric:tabular-nums;}
.pc-price .cur{font-size:11px;font-weight:700;color:var(--ink-3);margin-left:3px;letter-spacing:.02em;}
.pc-old{font-size:12px;font-weight:500;color:var(--ink-3);text-decoration:line-through;margin-left:6px;}
.pc-meta{font-size:12.5px;color:var(--ink-3);text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;font-variant-numeric:tabular-nums;}

@media(max-width:680px){
  .pc-add{width:40px;height:40px;right:10px;bottom:-19px;box-shadow:0 0 0 4px var(--beige-bg);}
  .pc-stepper{height:40px;border-radius:20px;padding:0 2px;}
  .pc-stepper button{width:32px;height:32px;}
  .pc-qty{min-width:16px;font-size:15px;}
  .pc-body{padding:12px 10px 10px;gap:6px;}
  .pc .name{font-size:14.5px;padding-right:34px;}
  .pc-chip{font-size:11px;padding:2px 7px;}
  .pc-chip:nth-child(n+4):not(.more){display:none;}
  .pc-chip.pc-d{display:none;}
  .pc-chip.pc-m{display:inline;}
  .pc-foot{flex-wrap:wrap;row-gap:0;}
  .pc-price{font-size:16px;}
  .pc-meta{font-size:11.5px;text-align:left;}
  .pc-badges{left:8px;bottom:8px;gap:3px;max-width:calc(100% - 64px);}
}

/* ============================================================ MOBILE PASS 2026-09-17
   Прогон всех страниц на 360–390 px: что вылезало за экран и что мелко/не попасть. */

/* карточка: подсказки аллергенов (невидимые, но в раскладке) выпирали за правый
   край и растягивали страницу вбок — из-за этого на телефоне корзина уезжала вправо */
.card.pc{overflow:hidden;}
@media(max-width:680px){
  /* степпер «− 1 +» шире круглой «+», фиксированная ширина кнопки его обрезала */
  .pc-add.pc-stepper{width:auto;}
}

/* «Доставка», «Кейтеринг», «О нас»: шапка страницы колонкой — дети по ширине
   экрана, плашки фактов переносят текст */
@media(max-width:900px){
  .del-top{align-items:stretch;}
  .del-top-l,.del-facts{min-width:0;max-width:100%;}
}
@media(max-width:680px){
  .del-fact{white-space:normal;}
}

/* окно блюда: подписи КБЖУ не мельче 11 px; примечание к описанию */
.pm-desc-note{margin:6px 0 0;font-size:13px;line-height:1.45;color:var(--ink-3);}
@media(max-width:680px){
  .pm-nutri-cell span{font-size:11px;}
}

/* меню открыто — плашка cookie не должна лежать поверх телефона и языков */
body:has(.drawer.open) .cookie-bar{display:none;}

/* ссылки в подвале и полоса-обещание: строка 20 px — пальцем не попасть */
@media(max-width:680px){
  .footer .footer-col .nav{gap:0 18px;}
  .footer .footer-col .nav a,.footer-col ul li a{display:inline-block;padding:10px 0;}
  .promise-item{padding-block:10px;margin-block:-10px;}
}

/* поля ввода на телефоне — 16 px: мельче iPhone при фокусе увеличивает страницу
   и после ввода она остается увеличенной */
@media(max-width:680px){
  input:not([type="checkbox"]):not([type="radio"]),textarea,select{font-size:16px;}
  .field-stack-label{font-size:15px;}
  .field-stack-input:not(:placeholder-shown) ~ .field-stack-label{font-size:11px;}
  /* адрес: «Квартира / Домофон / Этаж» в три узкие колонки — подпись обрезалась
     до «Квартир…»; даем поля уже по краям и две колонки на очень узких экранах */
  .addr-grid .field-stack-input{padding-left:12px;padding-right:8px;}
  .addr-grid .field-stack-label{left:12px;right:6px;}
}
@media(max-width:380px){
  .addr-grid{grid-template-columns:1fr 1fr;}
  .addr-grid .field-stack:first-child{grid-column:1 / -1;}
}
/* диапазоны зон доставки под полосой — не мельче 11 px */
@media(max-width:680px){
  .zp-seg-range{font-size:11px;}
}

/* TELEGRAM STATUSES 2026-09-17 — строка на экране «Заказ оформлен» */
.co-tg{display:flex;align-items:center;gap:12px;width:100%;box-sizing:border-box;padding:10px 14px;border:1px solid var(--line);border-radius:14px;background:var(--paper);color:var(--ink);text-decoration:none;text-align:left;transition:border-color .15s;}
.co-tg:hover{border-color:#2AABEE;}
.co-tg-icon{flex:none;color:#2AABEE;}
.co-tg-text{display:flex;flex-direction:column;gap:2px;min-width:0;}
.co-tg-text b{font-size:14px;font-weight:600;}
.co-tg-text small{font-size:12px;line-height:1.3;opacity:.7;}

/* ===== ADDRESS FORM 2026-09-18 =====
   Вкладок города больше нет; под строкой адреса — варианты одноименных улиц,
   «Мое местоположение» и (на телефоне) «Указать на карте». Незаполненные поля
   подсвечиваются после попытки сохранить. */
.addr-head h3{margin-bottom:0;}
.addr-body{padding-top:20px;}
.street-suggest-opt.active{background:var(--beige-warm);}
.street-suggest-house{color:var(--ink-3);}
.addr-hint-ok{color:var(--ink);font-weight:600;}
.field-stack.invalid .field-stack-input{border-color:#C0392B;}
.field-stack.invalid .field-stack-input:focus{box-shadow:0 0 0 3px rgba(192,57,43,.12);}
.addr-choices{display:flex;flex-direction:column;gap:6px;margin:-8px 0 16px;}
.addr-choice{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:2px 10px;width:100%;text-align:left;padding:10px 13px;border:1px solid var(--line-2);border-radius:12px;background:var(--paper);transition:border-color .14s,background .14s;}
.addr-choice:hover,.addr-choice:active{border-color:var(--green-deep);background:var(--beige-warm);}
.addr-choice-main{font-size:14px;font-weight:700;color:var(--ink);}
.addr-choice-place{font-size:12.5px;color:var(--ink-2);text-align:right;}
.addr-choice-note{grid-column:1 / -1;font-size:11.5px;color:var(--ink-3);}
.addr-tools{display:flex;flex-wrap:wrap;gap:6px 18px;margin:-8px 0 16px;}
.addr-tool{display:inline-flex;align-items:center;gap:6px;padding:4px 0;font-size:13px;font-weight:700;color:var(--ink);background:none;border:none;cursor:pointer;}
.addr-tool:hover,.addr-tool:active{opacity:.72;}
/* «Квартира / Офис» не влезал в треть ширины — квартире больше места, этажу меньше */
.addr-grid{grid-template-columns:minmax(0,158fr) minmax(0,100fr) minmax(0,68fr);}
.addr-save-err{margin:-8px 0 12px;}
/* «Мое местоположение» — значок в правом краю строки адреса */
.addr-street .field-stack-input{padding-right:48px;}
.addr-street .field-stack-label{right:48px;}
.addr-locate{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:36px;height:36px;display:grid;place-items:center;border:none;border-radius:10px;background:none;color:var(--ink);cursor:pointer;transition:background .14s;}
.addr-locate:hover,.addr-locate:active{background:var(--beige-warm);}
/* копирайт и «Условия использования» Яндекса поверх карты — просьба Stan 18.09 */
.ymaps-2-1-79-copyrights-pane{display:none!important;}
/* «Другой район: Савски венац» — поменять выбор одноименной улицы */
.addr-alts{font-size:12.5px;color:var(--ink-3);margin:-12px 0 16px;line-height:1.5;}
.addr-alt{padding:0;border:none;background:none;font:inherit;font-weight:700;color:var(--ink);cursor:pointer;}
.addr-alt:hover,.addr-alt:active{opacity:.72;}
.addr-save[aria-busy="true"]{opacity:.7;cursor:progress;}

@media(max-width:680px){
  /* карта на телефоне — по кнопке, между заголовком и строкой адреса */
  .address-modal{display:flex;flex-direction:column;}
  .address-modal .addr-form{display:contents;}
  .address-modal .addr-head{order:0;}
  .address-modal .addr-map{order:1;}
  .address-modal .addr-body{order:2;flex:none;overflow:visible;}
  .address-modal.map-open .addr-map{display:block;flex:none;height:260px;margin:16px 22px 0;border-radius:14px;}
}
/* до 380px работает правило выше: квартира на всю строку, домофон и этаж под ней */
@media(min-width:381px) and (max-width:680px){
  .addr-grid{grid-template-columns:minmax(0,150fr) minmax(0,92fr) minmax(0,67fr);}
}

/* =====================================================
   Клиентский опыт, 20.09.2026 — A1/A2, B2/B8, C2/C8/C9, D1/D6,
   F1/F2/F6. Разделы ниже подписаны номерами из ТЗ.
   ============================================================ */

/* ── A2. Плавающий пузырь чата не лежит на кнопках ──────────────────────────
   Своя .chat-fab и пузырь виджета Marichat прячутся, пока открыта любая
   панель: на десктопе пузырь ложился на «Заказать», на 390px — на «В корзину».
   Селекторы виджета перечислены широко: разметку рисует чужой скрипт. */
.has-panel .chat-fab,
.has-panel #marichat-widget,
.has-panel .marichat-fab,
.has-panel [id^="marichat"] iframe[style*="bottom"],
.has-panel iframe[src*="chat.marisuite.com"]{display:none!important;}

/* ── A1. Сегодня уже закрыто ─────────────────────────────────────────────── */
.co-closed-note{margin:0 0 10px;padding:9px 12px;border-radius:var(--radius-sm);
  background:rgba(42,111,125,.10);color:var(--info);font-size:13px;line-height:1.45;font-weight:600;}
.co-time .ct-top{white-space:normal;}
.co-success-note{margin:8px 0 0;font-size:13px;line-height:1.45;color:var(--info);font-weight:600;}
.co-time.only{flex:1;}
.co-slots-err{display:flex;align-items:center;gap:10px;color:var(--ink-2);}
.co-slots-retry{padding:0;border:none;background:none;font:inherit;font-weight:700;
  color:var(--ink);cursor:pointer;}

/* ── C9. Подсказка про код + вход до оформления ──────────────────────────── */
.co-guest-note{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;
  margin:0 0 14px;font-size:12.5px;line-height:1.5;color:var(--ink-2);}
.co-login-now{padding:0;border:none;background:none;font:inherit;font-weight:700;
  color:var(--ink);cursor:pointer;}

/* ── C2. Сдача с купюры ──────────────────────────────────────────────────── */
.co-change{margin:2px 0 14px;}
.co-change .co-flabel{display:block;margin-bottom:7px;}
.co-change-row{display:flex;gap:7px;flex-wrap:wrap;align-items:center;}
.co-change-chip{padding:7px 13px;border:1px solid var(--line);border-radius:999px;
  background:var(--paper);font-size:13px;font-weight:600;color:var(--ink);cursor:pointer;}
.co-change-chip:hover{border-color:var(--green-soft);}
.co-change-chip.active{background:var(--green-deep);border-color:var(--green-deep);color:var(--cream);}
.co-change-other{width:92px;padding:7px 11px;border:1px solid var(--line);border-radius:999px;
  background:var(--paper);font:inherit;font-size:13px;color:var(--ink);}
.co-change-other.filled{border-color:var(--green-deep);font-weight:600;}

/* ── B2. Шаги заказа на экране «принят» ──────────────────────────────────── */
.co-steps{display:flex;list-style:none;margin:16px 0 4px;padding:0;gap:0;}
.co-step{flex:1;position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;
  font-size:11.5px;line-height:1.3;color:var(--ink-3);text-align:center;}
.co-step::before{content:"";position:absolute;top:6px;left:-50%;width:100%;height:2px;
  background:var(--line);}
.co-step:first-child::before{display:none;}
.co-step-dot{position:relative;z-index:1;width:14px;height:14px;border-radius:50%;
  background:var(--beige-warm);box-shadow:0 0 0 3px var(--paper);}
.co-step.done .co-step-dot{background:var(--green-soft);}
.co-step.done .co-step-label{color:var(--ink);font-weight:700;}

/* ── B8. Отмена заказа ───────────────────────────────────────────────────── */
.co-cancel-link{display:block;width:100%;margin-top:14px;padding:0;border:none;background:none;
  font:inherit;font-size:13px;color:var(--ink-3);cursor:pointer;}
.co-cancel-link:hover{color:var(--ink);}
.co-cancel-ask{margin-top:14px;padding:12px;border-radius:var(--radius-sm);
  background:var(--beige-2);font-size:13px;line-height:1.45;color:var(--ink);}
.co-cancel-btns{display:flex;gap:8px;margin-top:10px;}
.co-cancel-yes,.co-cancel-no{flex:1;padding:9px 12px;border-radius:999px;border:1px solid var(--line);
  font:inherit;font-size:13px;font-weight:700;cursor:pointer;}
.co-cancel-yes{background:var(--paper);color:#C0392B;border-color:rgba(192,57,43,.35);}
.co-cancel-no{background:var(--green-deep);color:var(--cream);border-color:var(--green-deep);}
.co-cancel-sent{margin:14px 0 0;font-size:13px;line-height:1.45;color:var(--ink);font-weight:600;}

/* ── F1. Поиск по меню ───────────────────────────────────────────────────── */
/* same look as .contact-chip: ink text 13.5px, 19/22 padding, green pill on hover */
.search-chip{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;
  flex:none;align-self:stretch;padding:0 22px 0 19px;border:none;border-radius:0;
  background:transparent;color:var(--ink);font:inherit;font-weight:600;font-size:13.5px;
  white-space:nowrap;cursor:pointer;text-decoration:none;}
.search-chip::before{content:"";position:absolute;top:10px;right:10px;bottom:10px;left:10px;
  border-radius:15px;background:var(--green-deep);
  opacity:0;transform:scale(.97);transition:opacity .15s ease,transform .15s ease;
  z-index:0;pointer-events:none;}
.search-chip:hover::before,.search-chip:active::before{opacity:1;transform:scale(1);}
.search-chip>*{position:relative;z-index:1;}
.search-chip:hover,.search-chip:active{color:var(--cream);}
@media(max-width:980px){.search-chip-label{display:none;}}
@media(max-width:680px){
  .search-chip{width:40px;height:40px;padding:0;gap:0;align-self:center;color:var(--ink);}
  .search-chip::after{content:"";position:absolute;top:50%;left:50%;width:44px;height:44px;min-width:100%;min-height:100%;transform:translate(-50%,-50%);}
  .search-chip::before{top:50%;left:50%;right:auto;bottom:auto;width:38px;height:38px;border-radius:13px;
    transform:translate(-50%,-50%) scale(.82);}
  .search-chip:hover::before,.search-chip:active::before{transform:translate(-50%,-50%) scale(1);}
}

.search-ov{position:fixed;inset:0;z-index:700;background:var(--beige-bg);
  display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;}
.search-ov-bar{display:flex;align-items:center;gap:10px;padding:14px 18px;
  position:sticky;top:0;z-index:2;
  background:color-mix(in srgb,var(--paper) 50%,transparent);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);}
.search-ov-icon{color:var(--ink-3);flex:none;}
.search-ov-input{flex:1;min-width:0;border:none;background:none;font:inherit;font-size:17px;
  color:var(--ink);outline:none;}
.search-ov-clear,.search-ov-close{flex:none;display:grid;place-items:center;width:34px;height:34px;
  border:none;border-radius:50%;background:var(--beige-2);color:var(--ink-2);cursor:pointer;}
.search-ov-close{background:var(--green-deep);color:var(--cream);}
.search-ov-body{flex:1 0 auto;padding:18px;}
.search-ov-hint{margin:28px auto;max-width:420px;text-align:center;color:var(--ink-3);
  font-size:14px;line-height:1.5;}
.search-ov-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px;
  max-width:1180px;margin:0 auto;}
@media(max-width:680px){
  .search-ov-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
  .search-ov-body{padding:14px;}
}

/* ── F2. Стоп-лист ───────────────────────────────────────────────────────── */
.pc.sold-out .photo{filter:grayscale(.65);opacity:.5;}
.pc.sold-out .pc-price,.pc.sold-out .pc-meta{opacity:.6;}
.card-tag.soldout{background:var(--ink-2);color:var(--paper);}
.pc-add.disabled,.pc-add:disabled{opacity:.35;cursor:not-allowed;}
.price-pill.disabled,.price-pill:disabled{opacity:.45;cursor:not-allowed;}
.cart-item.sold-out-item .thumb img{filter:grayscale(.65);opacity:.55;}
.cart-item-soldout{display:block;margin-top:2px;font-size:11.5px;font-weight:700;color:#C0392B;}

/* ── F6. 18+ ─────────────────────────────────────────────────────────────── */
.badge-glyph.badge-text{display:grid;place-items:center;width:100%;height:100%;
  font-size:9px;font-weight:800;letter-spacing:-.2px;background:none!important;color:currentColor;}
.adult-ov{position:fixed;inset:0;z-index:720;background:rgba(20,18,8,.45);
  display:grid;place-items:center;padding:20px;}
.adult-box{width:min(360px,100%);padding:24px 22px;border-radius:var(--radius-lg);
  background:var(--paper);box-shadow:var(--shadow-lg);text-align:center;}
.adult-mark{display:inline-grid;place-items:center;width:48px;height:48px;border-radius:50%;
  background:rgba(192,57,43,.12);color:#C0392B;font-weight:800;font-size:16px;}
.adult-title{margin:12px 0 6px;font-size:19px;}
.adult-text{margin:0 0 18px;font-size:13.5px;line-height:1.5;color:var(--ink-2);}
.adult-btns{display:flex;flex-direction:column;gap:8px;}
.adult-yes{padding:12px;border:none;border-radius:999px;background:var(--green-deep);
  color:var(--cream);font:inherit;font-weight:700;cursor:pointer;}
.adult-no{padding:10px;border:none;background:none;font:inherit;font-size:13px;
  color:var(--ink-3);cursor:pointer;}

/* ── C8. Пожелание к позиции ─────────────────────────────────────────────── */
.cart-item-note-add{display:inline-flex;align-items:center;gap:5px;margin-top:4px;padding:0;
  border:none;background:none;font:inherit;font-size:12px;color:var(--ink-3);
  cursor:pointer;}
.cart-item-note-add:hover{color:var(--ink);}
.cart-item-note{margin-top:6px;}
.cart-item-note textarea{width:100%;padding:8px 10px;border:1px solid var(--line);
  border-radius:var(--radius-sm);background:var(--paper);font:inherit;font-size:12.5px;
  line-height:1.4;color:var(--ink);resize:vertical;}

/* ── D1. Добор до бесплатной доставки ────────────────────────────────────── */
.cart-topup{margin-top:14px;padding-top:14px;border-top:1px dashed var(--line);}
/* отступы как у строк корзины в каждом виде: панель, окно, окно в две колонки */
.cart-topup{margin:14px 24px 16px;}
.cart-panel .cart-topup{margin:14px 30px 16px 20px;}
.cart-modal .cart-topup{margin:14px 44px 18px;}
.cart-modal.cart-2col .cart-topup{margin:12px 22px 16px;}
.cart-topup .cart-topup-row{margin:0 -24px;padding:0 24px 4px;scroll-padding:0 24px;}
.cart-panel .cart-topup .cart-topup-row{margin:0 -30px 0 -20px;padding:0 30px 4px 20px;scroll-padding:0 20px;}
.cart-modal .cart-topup .cart-topup-row{margin:0 -44px;padding:0 44px 4px;scroll-padding:0 44px;}
.cart-modal.cart-2col .cart-topup .cart-topup-row{margin:0 -22px;padding:0 22px 4px;scroll-padding:0 22px;}
.cart-topup-head{margin-bottom:9px;font-size:12.5px;font-weight:700;color:var(--ink-2);line-height:1.4;}
/* до 10 карточек лентой с прокруткой вбок, фото то же, что в каталоге (24.09) */
.cart-topup-row{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;}
.cart-topup-row::-webkit-scrollbar{display:none;}

/* ── D6. Полоса корзины на телефоне ──────────────────────────────────────── */
.sticky-cart{display:none;}
@media(max-width:680px){
  .sticky-cart{position:fixed;left:12px;right:12px;bottom:12px;z-index:460;
    display:flex;align-items:center;justify-content:space-between;gap:12px;
    padding:13px 16px;border:none;border-radius:999px;background:var(--green-deep);
    color:var(--cream);font:inherit;box-shadow:var(--shadow-lg);cursor:pointer;}
  .sc-left{display:flex;align-items:center;gap:10px;}
  .sc-bag{position:relative;display:grid;place-items:center;}
  .sc-count{position:absolute;top:-6px;right:-8px;min-width:16px;height:16px;padding:0 4px;
    border-radius:999px;background:var(--cream);color:var(--ink);
    font-size:10.5px;font-weight:800;display:grid;place-items:center;}
  .sc-sum{font-size:15px;font-weight:700;}
  .sc-cta{display:inline-flex;align-items:center;gap:4px;font-size:14px;font-weight:700;}
  /* каталог не должен упираться последней карточкой в полосу */
  .has-sticky .main-col{padding-bottom:76px;}
  /* и пузырь чата поднимается над ней */
  .has-sticky .chat-fab,
  .has-sticky #marichat-widget,
  .has-sticky .marichat-fab{bottom:82px!important;}
}

/* C9. Способ входа с прошлого раза */
.login-last-hint{margin:-4px 0 10px;text-align:center;font-size:12.5px;color:var(--ink-3);}
.login-skip{display:block;margin:12px auto 0;}
.social-btn.last-used{box-shadow:0 0 0 2px var(--green-soft);}

/* ============================================================ PRODUCT CARD 2026-09-22 («pc8»)
   Фото на всю карточку (чуть выше квадрата — 4:5 резало миски поке по бокам), снизу стеклянная плашка цвета фона: название, состав
   одной строкой, цена · вес и «+». На компьютере при наведении плашка раскрывается
   вверх (КБЖУ на порцию, метки блюда), у «+» появляется подпись «В корзину».
   До 900 px фото квадратом сверху, плашка под ним с заходом на фото.
   Значков поверх фото нет, фото при наведении не увеличивается, название не подчеркивается.
   Колонки: 5 в ряд с 1860 px (было 6 с 1990 px), карточка ~390 px на широком экране. */
@media(min-width:1660px){ .grid{ --cols:4; } }
@media(min-width:1860px){ .grid{ --cols:5; } }

.card.pc8{aspect-ratio:1/1.08;border:0;border-radius:var(--radius-lg);background:var(--beige-warm);box-shadow:0 1px 3px rgba(30,26,10,.10);isolation:isolate;}
@media (hover:hover) and (pointer:fine){.card.pc8:hover{box-shadow:0 12px 30px rgba(40,34,12,.16);}}
.card.pc8 .photo{position:absolute;inset:0;height:100%;aspect-ratio:auto;border-radius:0;}
.card.pc8 .photo img,.card.pc8:hover .photo img{transform:none;transition:none;}

.pc8 .card-tag{left:auto;right:12px;top:12px;z-index:4;}

.pc8 .pc-panel{
  position:absolute;left:8px;right:8px;bottom:8px;z-index:3;
  display:flex;flex-direction:column;
  padding:13px 14px 12px 16px;border-radius:calc(var(--radius-lg) - 7px);
  background:color-mix(in srgb,var(--beige-bg) 70%,transparent);
  -webkit-backdrop-filter:blur(16px) saturate(1.25);backdrop-filter:blur(16px) saturate(1.25);
  box-shadow:0 6px 20px rgba(40,34,12,.14),inset 0 0 0 1px rgba(255,255,255,.28);
}
.pc8 .name a:hover{text-decoration:none;}
.pc8 .name{font-size:17px;font-weight:700;line-height:1.22;color:var(--ink);padding-right:0;letter-spacing:-.005em;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;}
.pc8 .pc-sub{margin-top:3px;font-size:13px;line-height:1.38;color:var(--ink-2);
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden;}

.pc8 .pc-more{display:grid;grid-template-rows:0fr;transition:grid-template-rows .32s ease;}
.pc8 .pc-more-in{min-height:0;overflow:hidden;}
.pc8 .pc-nutri{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:11px;padding:9px 0 8px;border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2);}
.pc8 .pc-nutri div{display:flex;flex-direction:column;align-items:center;gap:1px;min-width:0;}
.pc8 .pc-nutri div + div{border-left:1px solid var(--line-2);}
.pc8 .pc-nutri b{font-size:15.5px;font-weight:800;color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums;}
.pc8 .pc-nutri span{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap;}
.pc8 .pc-labels{display:flex;flex-wrap:wrap;gap:4px;margin-top:9px;}
.pc8 .pc-labels span{font-size:11.5px;font-weight:700;line-height:1.3;padding:2px 8px;border-radius:999px;white-space:nowrap;}

.pc8 .pc-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;min-height:42px;}
.pc8 .pc-price{font-size:20px;font-weight:800;color:var(--ink);white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis;}
.pc8 .pc-w{font-size:12.5px;font-weight:500;color:var(--ink-3);margin-left:8px;letter-spacing:0;}

.pc8 .pc-add{
  position:static;flex:none;width:auto;min-width:42px;height:42px;border-radius:21px;padding:0 10px;
  display:inline-flex;align-items:center;justify-content:center;box-shadow:none;
  font-size:14px;font-weight:700;white-space:nowrap;
}
.pc8 .pc-add-l{display:inline-block;max-width:0;opacity:0;overflow:hidden;transition:max-width .32s ease,opacity .2s ease,margin .32s ease;}
.pc8 .pc-add.wide{padding:0 14px 0 16px;}
.pc8 .pc-add.wide .pc-add-l{max-width:none;opacity:1;margin-right:6px;}
.pc8 .pc-add.disabled{background:var(--ink-3);cursor:not-allowed;}
.pc8 .pc-stepper{padding:0 2px;gap:0;}
.pc8 .pc-stepper button{width:38px;height:38px;}

/* раскрытие — только мышью и только там, где плашка лежит на фото */
@media (hover:hover) and (pointer:fine) and (min-width:901px){
  .card.pc8:hover .pc-more,.card.pc8:focus-within .pc-more{grid-template-rows:1fr;transition-delay:.12s;}
  .card.pc8:hover .pc-sub,.card.pc8:focus-within .pc-sub{-webkit-line-clamp:3;}
  .card.pc8:hover .pc-add-l,.card.pc8:focus-within .pc-add-l{max-width:140px;opacity:1;margin-left:6px;transition-delay:.12s;}

}

@media(max-width:900px){
  .card.pc8{aspect-ratio:auto;display:flex;flex-direction:column;}
  .card.pc8 .photo{position:relative;inset:auto;height:auto;aspect-ratio:1/1;}
  .pc8 .pc-panel{position:relative;left:auto;right:auto;bottom:auto;flex:1;margin:-30px 6px 6px;
    background:color-mix(in srgb,var(--beige-bg) 90%,transparent);}
  .pc8 .pc-row{margin-top:auto;padding-top:8px;}
  .pc8 .pc-more{display:none;}
}
@media(max-width:680px){
  .pc8 .pc-panel{margin:-24px 4px 4px;padding:9px 9px 8px 11px;border-radius:12px;}
  .pc8 .name{font-size:14.5px;}
  .pc8 .pc-sub{font-size:11.5px;margin-top:2px;}
  .pc8 .pc-row{min-height:36px;gap:6px;}
  .pc8 .pc-price{font-size:16px;}
  .pc8 .pc-price .cur{margin-left:2px;}
  .pc8 .pc-w{font-size:12px;margin-left:6px;} /* 30.09: вес виден и на телефоне */
  .pc8 .pc-add{min-width:36px;height:36px;padding:0 8px;}
  .pc8 .pc-add.wide{padding:0 10px 0 12px;font-size:13px;}
  .pc8 .pc-stepper{height:36px;}
  .pc8 .pc-stepper button{width:30px;height:30px;}
  .pc8 .card-tag{top:8px;right:8px;}
}
/* напитки: бутылка по центру квадратного фото — фото кончается над плашкой,
   иначе стекло закрывает этикетку */
@media(min-width:901px){
  #cat-drinks .card.pc8 .photo{bottom:auto;height:calc(100% - 64px);}
}

/* ============================================================ CATEGORIES 2026-09-23
   Категории строчными и вдвое крупнее, без разрядки; неактивные приглушены,
   активная темно-зеленая без подчеркивания. Фильтр — компактная кнопка в правом
   конце строки категорий, меню раскрывается от правого края. */
.cat-text{text-transform:lowercase;letter-spacing:-.01em;font-weight:600;font-size:26px;line-height:1.2;padding:6px 2px;border-bottom:0;
  color:color-mix(in srgb,var(--ink-3) 68%,var(--beige-bg));}
.cat-text:hover,.cat-text:active{color:var(--ink);}
.cat-text.active{color:var(--green-deep);font-weight:600;}
.cats-row:has(.cat-text){gap:26px;}
@media(min-width:1081px){ .catbar .cats-row.fit:has(.cat-text){gap:26px;} }

/* в шапке после прокрутки — тоже строчными, но под высоту шапки */
.header-cats .cat-text{font-size:16px;padding:4px 1px;}
.header-cats .cats-row:has(.cat-text){gap:18px;}

.catbar{gap:20px;}
.catbar .diet-dd{margin-left:auto;}
.catbar .diet-dd-btn{text-transform:none;letter-spacing:0;font-size:15px;font-weight:600;height:42px;padding:0 15px 0 13px;border-radius:21px;color:var(--ink-2);white-space:nowrap;}
.catbar .diet-dd-btn:hover,.catbar .diet-dd-btn:active{color:var(--ink);}
.catbar .diet-dd-btn.on{color:var(--cream);}
.catbar .diet-pop{left:auto;right:0;}
.catbar .diet-pop-title{text-transform:none;letter-spacing:0;font-size:13px;}

@media(max-width:1080px){
  .catbar{gap:12px;}
  .cat-text{font-size:21px;}
  .catbar.scrolled .cat-text{font-size:18px;}
  .cats-row:has(.cat-text){gap:22px;}
  .catbar .diet-dd-btn,.catbar.scrolled .diet-dd-btn{font-size:14px;height:38px;}
}
@media(max-width:680px){
  .cat-text{font-size:19px;}
  .catbar.scrolled .cat-text{font-size:17px;}
  .cats-row:has(.cat-text){gap:18px;}
  /* на телефоне у фильтра только значок, подпись — когда фильтр включен */
  .catbar .diet-dd-btn{width:38px;padding:0;justify-content:center;}
  .catbar .diet-dd-btn span{display:none;}
  .catbar .diet-dd-btn.on{width:auto;padding:0 12px;}
  .catbar .diet-dd-btn.on span{display:inline;}
}
/* карточка при наведении не приподнимается и тень не растет (просьба Stan 23.09) */
.card.pc8,.card.pc8:hover{transform:none;box-shadow:0 1px 3px rgba(30,26,10,.10);}

/* ============================================================ TWEAKS 2026-09-23
   Полосы «Бесплатная доставка… / Самовывоз…» больше нет; H1 главной остался
   только для поисковиков и экранного диктора. Истории на 15 % ниже, карточки
   товара на 10 % выше. Подписи фильтра и историй — 700. У «В корзину» и
   «Собрать» отступы по краям одинаковые (у значка в svg ~4 px своего поля),
   «Собрать» при наведении не сдвигается. */
.promise-strip{padding:0;margin:0;max-width:none;height:0;}
.promise-h1{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}

.story-card-btn{aspect-ratio:1/1.275;}
@media(max-width:680px){ .story-card-btn{height:193px;} }
.scb-title{font-weight:700;}

.card.pc8{aspect-ratio:1/1.19;}

.catbar .diet-dd-btn{font-weight:700;}

.pc8 .pc-add:not(.wide):not(.pc-stepper){transition:background .14s,transform .08s,padding .32s ease;}
@media (hover:hover) and (pointer:fine) and (min-width:901px){
  .card.pc8:hover .pc-add:not(.wide):not(.pc-stepper),
  .card.pc8:focus-within .pc-add:not(.wide):not(.pc-stepper){padding:0 17px 0 13px;transition-delay:.12s;}
}
.pc8 .pc-add.wide{padding:0 14px 0 17px;}
.card.pc8 .pc-add.wide .pc-add-l{margin:0 6px 0 0;max-width:none;opacity:1;transition:none;}
@media(max-width:680px){ .pc8 .pc-add.wide{padding:0 9px 0 13px;} }

.pc8 .pc-nutri span{white-space:normal;text-align:center;line-height:1.15;}

/* ============================================================ PHONE PASS 2026-09-23
   1) корзина в шапке — только сумка с цифрой: сумма есть в нижней полосе, а
      с суммой кнопка вылезала за правый край (страница 427 px при 390);
   2) пузырь Marichat поднимается над полосой корзины (--mc-lift читает виджет);
   3) истории ниже; 4) состав в две строки; у сборного поке «от N RSD». */
.pc8 .pc-from{font-size:.62em;font-weight:700;color:var(--ink-3);margin-right:4px;letter-spacing:0;}
@media(max-width:680px){
  .cart-chip .cart-chip-label{display:none;}
  .cart-chip,.cart-chip.filled{width:44px;min-width:44px;padding:0;justify-content:center;gap:0;}
  html.has-sticky{--mc-lift:54px;}
  .story-card-btn{flex:0 0 116px;width:116px;height:150px;border-radius:18px;}
  .scb-title{font-size:14px;left:10px;right:10px;bottom:10px;}
  .scb-flame{width:28px;height:28px;top:8px;right:8px;}
}
@media(max-width:900px){
  .pc8 .pc-sub{-webkit-line-clamp:2;}
}
@media(max-width:680px){
  /* «от 150 RSD» и «Собрать» в одну строку не помещаются — у кнопки остается стрелка */
  .pc8 .pc-add.wide{width:36px;min-width:36px;padding:0;}
  .card.pc8 .pc-add.wide .pc-add-l{display:none;}
}
@media(max-width:680px){
  /* промежутки над/под историями и перед первой категорией — первый ряд карточек
     целиком над полосой корзины */
  .stories-section{padding-top:6px;padding-bottom:2px;}
  .stories-rail{padding-top:6px;padding-bottom:8px;}
  #cat-poke{padding-top:10px;}
}
@media(max-width:680px){
  /* блюдо в корзине: «− 1 +» уже, чтобы цена рядом не обрезалась до «1190…» */
  .pc8 .pc-add.pc-stepper{width:auto;min-width:0;padding:0 2px;gap:0;}
  .pc8 .pc-stepper button{width:28px;height:30px;}
  .pc8 .pc-stepper .pc-qty{min-width:14px;font-size:14px;}
}

/* ============================================================ PHONE HEADER 2026-09-23
   На телефоне в шапке только меню, логотип и корзина; поиск, «Связаться с нами»
   и вход — первыми пунктами бокового меню (.drawer-actions, на компьютере скрыты).
   Горизонтальная прокрутка страницы на телефоне закрыта совсем. Нижние углы
   карточки товара — концентричные: радиус плашки = радиус карточки − отступ. */
.drawer-actions{display:none;}
@media(max-width:680px){
  body{overflow-x:clip;}
  .topbar .header-mid{display:none;}
  .topbar .header-right{margin-left:auto;}
  .drawer-actions{display:flex;flex-direction:column;gap:2px;padding:4px 12px 10px;margin-bottom:4px;border-bottom:1px solid rgba(255,255,255,.12);}
  .drawer-actions a,.drawer-actions button{display:flex;align-items:center;gap:12px;width:100%;padding:13px 14px;border-radius:12px;
    font:inherit;font-size:16px;font-weight:600;color:var(--cream);text-align:left;text-decoration:none;transition:background .15s;}
  .drawer-actions a:hover,.drawer-actions a:active,.drawer-actions button:hover,.drawer-actions button:active{background:rgba(255,255,255,.08);}
  .drawer-actions svg{flex:none;opacity:.8;}
  .drawer-actions span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
}
.pc8 .pc-panel{border-radius:calc(var(--radius-lg) - 8px);}
@media(max-width:900px){ .pc8 .pc-panel{border-radius:calc(var(--radius-lg) - 6px);} }
@media(max-width:680px){
  .card.pc8{border-radius:16px;}
  .pc8 .pc-panel{border-radius:12px;}
}

/* ============================================================ CATEGORIES 2 2026-09-23
   Категории крупнее (26 → 29 px), промежутки меньше (26 → 14 px); на 2000 px все 13 русских влезают до фильтра, 31 px уже не влезали. */
.cat-text{font-size:29px;padding:6px 1px;letter-spacing:-.015em;}
.cats-row:has(.cat-text){gap:14px;}
@media(min-width:1081px){ .catbar .cats-row.fit:has(.cat-text){gap:14px;} }
.header-cats .cat-text{font-size:18px;padding:4px 1px;}
.header-cats .cats-row:has(.cat-text){gap:12px;}
@media(max-width:1080px){
  .cat-text{font-size:25px;}
  .catbar.scrolled .cat-text{font-size:20px;}
  .cats-row:has(.cat-text){gap:14px;}
}
@media(max-width:680px){
  .cat-text{font-size:22px;}
  .catbar.scrolled .cat-text{font-size:18px;}
  .cats-row:has(.cat-text){gap:12px;}
}

/* ============================================================ SCROLLED HEADER 2026-09-23
   Шапка после прокрутки: категории ближе к логотипу (было ~90 px, стало ~25),
   крупнее (18 → 22 px) и плотнее (12 → 10 px); у поиска, чата и входа только
   значки; справа от категорий — фильтр кнопкой-значком (подпись, когда включен). */
.header-cats .cat-text{font-size:22px;padding:4px 1px;}
.header-cats .cats-row:has(.cat-text){gap:10px;}
.header-cats .diet-dd-btn{width:40px;height:40px;padding:0;justify-content:center;border-radius:14px;
  text-transform:none;letter-spacing:0;font-size:14px;font-weight:700;color:var(--ink-2);white-space:nowrap;}
.header-cats .diet-dd-btn span{display:none;}
.header-cats .diet-dd-btn.on{width:auto;padding:0 12px;color:var(--cream);}
.header-cats .diet-dd-btn.on span{display:inline;}
.header-cats .diet-dd-btn:hover{color:var(--ink);}
.header-cats .diet-dd-btn.on:hover{color:var(--cream);}
.header-cats .diet-pop{left:auto;right:0;}
.header-cats .diet-pop-title{text-transform:none;letter-spacing:0;font-size:13px;}
@media(min-width:681px){
  .topbar.scrolled .logo{padding-right:10px;}
  .topbar.scrolled .header-cats{padding-left:14px;gap:12px;}
  .topbar.scrolled .search-chip-label,
  .topbar.scrolled .contact-chip-label,
  .topbar.scrolled .user-chip .user-name{display:none;}
  .topbar.scrolled .search-chip{padding:0 15px;gap:0;}
  .topbar.scrolled .contact-chip{padding:0 15px!important;gap:0;}
  .topbar.scrolled .user-chip{padding:0 15px!important;gap:0;margin-right:8px;}
}
@media(max-width:1080px){
  .header-cats .cat-text{font-size:19px;}
  .header-cats .cats-row:has(.cat-text){gap:9px;}
}

/* ============================================================ SCROLLED HEADER 2 2026-09-23
   От логотипа до категорий чуть дальше (24 → ~36 px); фильтр в шапке с подписью;
   строка категорий листается вбок с растушевкой краев (--fade-l/--fade-r из
   categories.jsx) и не прокручивается по вертикали: при 22 px содержимое было
   41 px в строке 38 px, колесо двигало категории вверх-вниз. */
.cats-row{overflow-y:hidden;}
@media(min-width:681px){
  .topbar.scrolled .header-cats{padding-left:26px;}
}
.header-cats .diet-dd-btn{width:auto;height:38px;padding:0 14px 0 12px;gap:7px;border-radius:19px;}
.header-cats .diet-dd-btn span{display:inline;}
.header-cats .diet-dd-btn.on{padding:0 14px 0 12px;}

/* шапка после прокрутки: промежутки между категориями 10 → 16 px, подпись фильтра 14 → 16 px (23.09) */
.header-cats .cats-row:has(.cat-text){gap:16px;}
.header-cats .diet-dd-btn{font-size:16px;height:40px;padding:0 16px 0 13px;gap:8px;border-radius:20px;}
.header-cats .diet-dd-btn.on{padding:0 16px 0 13px;}
.header-cats .diet-dd-btn svg{width:18px;height:18px;}
@media(max-width:1080px){
  .header-cats .cats-row:has(.cat-text){gap:13px;}
  .header-cats .diet-dd-btn{font-size:15px;}
}

/* ============================================================ DARK CARD 2026-09-23
   Карточка по макету Stan: фото на всю карточку и на телефоне, стеклянной плашки нет —
   снизу темный градиент, название/состав/цена белым, «+» — кремовый круг
   с темно-зеленым плюсом. На компьютере пропорция прежняя (1:1.19), раскрытие
   при наведении осталось (градиент растет вместе с текстом). До 900 px карточка
   2:3, как на макете, состав одной строкой. */
.pc8 .pc-panel{
  left:0;right:0;bottom:0;padding:70px 16px 14px 18px;border-radius:0;
  background:linear-gradient(to top,rgba(18,14,4,.78) 0%,rgba(18,14,4,.62) 45%,rgba(18,14,4,.28) 75%,rgba(18,14,4,0) 100%);
  -webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;
  color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.28);
}
.pc8 .name{color:#fff;}
.pc8 .pc-sub{color:rgba(255,255,255,.82);}
.pc8 .pc-price{color:#fff;}
.pc8 .pc-price .cur{color:rgba(255,255,255,.82);}
.pc8 .pc-from,.pc8 .pc-w,.pc8 .pc-old{color:rgba(255,255,255,.72);}
.pc8 .pc-nutri{border-color:rgba(255,255,255,.22);}
.pc8 .pc-nutri div + div{border-left-color:rgba(255,255,255,.22);}
.pc8 .pc-nutri b{color:#fff;}
.pc8 .pc-nutri span{color:rgba(255,255,255,.7);}
.pc8 .pc-labels span{text-shadow:none;}

.pc8 .pc-add{background:var(--cream);color:var(--ink);text-shadow:none;box-shadow:0 2px 10px rgba(0,0,0,.18);}
.pc8 .pc-add:hover{background:#fff;}
.pc8 .pc-add.disabled{background:rgba(243,234,212,.55);color:var(--ink-2);}
.pc8 .pc-stepper button{color:var(--ink);}
.pc8 .pc-stepper button:hover{background:rgba(14,61,0,.09);}
.pc8 .pc-stepper .pc-qty{color:var(--ink);}

/* фото целиком под текстом: и у напитков, и у роллов (ролл уходит под градиент) */
@media(min-width:901px){ #cat-drinks .card.pc8 .photo{height:100%;} }

@media(max-width:900px){
  .card.pc8{aspect-ratio:2/3;display:block;}
  .card.pc8 .photo{position:absolute;inset:0;height:100%;aspect-ratio:auto;}
  .pc8 .pc-panel{position:absolute;left:0;right:0;bottom:0;margin:0;flex:none;padding:56px 12px 12px 14px;border-radius:0;
    background:linear-gradient(to top,rgba(18,14,4,.78) 0%,rgba(18,14,4,.6) 45%,rgba(18,14,4,.25) 75%,rgba(18,14,4,0) 100%);}
  .pc8 .pc-sub{-webkit-line-clamp:1;}
  .pc8 .pc-row{margin-top:10px;padding-top:0;}
}
@media(max-width:680px){
  .pc8 .pc-panel{padding:48px 8px 8px 12px;border-radius:0;}
  .pc8 .name{font-size:15px;}
  .pc8 .pc-sub{font-size:12px;}
  .pc8 .pc-price{font-size:16px;}
  .pc8 .pc-add{min-width:38px;height:38px;}
  .pc8 .pc-add.wide{width:38px;min-width:38px;}
  .pc8 .pc-stepper{height:38px;}
}

/* DARK CARD 2 2026-09-23 — градиент светлее, текст бежевый (--cream), а не белый;
   низ всех роллов на одной линии чуть выше названия (название начинается в 108 px
   от низа карточки на компьютере, 93–111 px на телефоне). */
.pc8 .pc-panel{background:linear-gradient(to top,rgba(18,14,4,.6) 0%,rgba(18,14,4,.45) 45%,rgba(18,14,4,.18) 75%,rgba(18,14,4,0) 100%);
  color:var(--cream);text-shadow:0 1px 8px rgba(0,0,0,.3);}
.pc8 .name,.pc8 .pc-price,.pc8 .pc-nutri b{color:var(--cream);}
.pc8 .pc-sub,.pc8 .pc-price .cur{color:color-mix(in srgb,var(--cream) 85%,transparent);}
.pc8 .pc-from,.pc8 .pc-w,.pc8 .pc-old,.pc8 .pc-nutri span{color:color-mix(in srgb,var(--cream) 72%,transparent);}
@media(max-width:900px){
  .pc8 .pc-panel{background:linear-gradient(to top,rgba(18,14,4,.6) 0%,rgba(18,14,4,.43) 45%,rgba(18,14,4,.16) 75%,rgba(18,14,4,0) 100%);}
}
/* ролл, который кончается высоко в кадре, чуть увеличивается (h ≥ T/y1), чтобы
   его низ тоже встал на общую линию; на телефоне линия 112 px от низа */

/* SOLD OUT + DRINKS 2026-09-23 — позиция не в наличии: фото и цена как у всех
   (без серости), неактивна только «+»; подпись из soldOutText() (item.js).
   Напитки: старое #cat-drinks .photo{aspect-ratio:1/1} делало блок фото
   квадратным (шире карточки), бутылка уезжала вправо — у новой карточки фото
   по размеру карточки, бутылка по центру. */
.pc8.sold-out .photo{filter:none;opacity:1;}
.pc8.sold-out .pc-price,.pc8.sold-out .pc-meta{opacity:1;}
#cat-drinks .card.pc8 .photo{aspect-ratio:auto;inset:0;width:auto;height:100%;}

/* VERTICAL PHOTOS 2026-09-24 — у блюд вертикальные фото 2:3 (photoFocus.js, menu-v/):
   cover по центру. На телефоне карточка 2:3 — фото целиком, на компьютере 1:1.19 —
   срезано по 10,5 % сверху и снизу (на фото там только фон). Кадрирование через CSS
   (ROLL FRAME / MAKI CENTER / PHOTO FIT) убрано. */
.card.pc8 .photo img.vt{object-fit:cover;object-position:50% 50%;}
/* на компьютере (1:1.19) срез не поровну, а 1/4 сверху — 3/4 снизу: верх гунканов
   и моти не упирается в край, низ блюда (58 % фото) остается выше названия */
.card.pc8 .photo img.vt{object-position:50% 25%;}

/* SEO text + FAQ side by side at the bottom of the main page (why-band removed 24.09) */
.info-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:stretch;margin-top:56px;}
.info-split .seo-text,.info-split .faq-block{margin:0;max-width:none;padding:22px 24px 18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);}
.info-split .seo-text .seo-body{max-height:300px;}
.info-split .seo-text .seo-body::after{background:linear-gradient(to bottom,transparent,var(--paper));}
.info-split .seo-text h1,.info-split .seo-text .seo-body > h2:first-child,.info-split .faq-block h2{margin:0 0 12px;font-size:18px;line-height:1.3;font-weight:700;color:var(--ink);letter-spacing:0;}
.info-split .seo-text .seo-body h2{font-size:15px;margin:18px 0 8px;}
.info-split .seo-text p{font-size:13.5px;line-height:1.55;}
.info-split .seo-more{margin-top:10px;font-size:13px;}
.info-split .faq-list{border:0;border-radius:0;background:none;}
.info-split .faq-item summary{padding:10px 0;font-size:14px;}
.info-split .faq-item p{padding:0 0 12px;font-size:13.5px;line-height:1.55;}
@media(max-width:900px){.info-split{grid-template-columns:1fr;margin-top:44px;}.info-split .faq-block{order:-1;}}
@media(max-width:560px){.info-split .seo-text,.info-split .faq-block{padding:18px 16px 14px;}}

/* ДОБОР В КОРЗИНЕ 2026-09-24 — та же карточка каталога (ProductCard, pc8), что и
   в меню на телефоне, при любой ширине окна: фото 2:3 на всю карточку, снизу темный
   градиент с названием, составом, ценой и «+». Раскрытие при наведении выключено. */
.cart-topup .ctu-item{flex:none;width:150px;scroll-snap-align:start;}
.cart-topup .card.pc8{width:100%;aspect-ratio:4/5;display:block;cursor:default;}
.cart-topup .card.pc8 .photo{position:absolute;inset:0;width:auto;height:100%;aspect-ratio:auto;}
.cart-topup .card.pc8 .photo img.vt{object-position:50% 50%;}
.cart-topup .pc8 .pc-panel{position:absolute;left:0;right:0;bottom:0;margin:0;flex:none;
  padding:34px 8px 8px 10px;border-radius:0;
  background:linear-gradient(to top,rgba(18,14,4,.6) 0%,rgba(18,14,4,.43) 45%,rgba(18,14,4,.16) 75%,rgba(18,14,4,0) 100%);}
.cart-topup .pc8 .name{font-size:13.5px;}
.cart-topup .pc8 .pc-sub,.cart-topup .card.pc8:hover .pc-sub{font-size:11px;margin-top:2px;-webkit-line-clamp:1;}
.cart-topup .pc8 .pc-more,.cart-topup .pc8 .pc-w{display:none;}
.cart-topup .pc8 .pc-row{margin-top:8px;padding-top:0;min-height:34px;gap:6px;}
.cart-topup .pc8 .pc-price{font-size:15px;}
.cart-topup .pc8 .pc-price .cur{margin-left:2px;}
.cart-topup .pc8 .pc-add{min-width:34px;height:34px;padding:0 8px;}
.cart-topup .pc8 .pc-add-l,.cart-topup .card.pc8:hover .pc-add-l{max-width:0;opacity:0;margin:0;}
.cart-topup .pc8 .card-tag{top:8px;right:8px;}
/* список корзины обрезается по высоте панели — затухание маской у нижнего края, чтобы
   срез карточек читался как «листается дальше». Маска, а не наложенный слой: слой на
   дробном масштабе экрана оставлял снизу темную полоску от карточек. Нижний отступ
   списка больше полосы затухания — в конце списка она ложится на пустое место.
   Полосы прокрутки у списка нет (о прокрутке говорит затухание), у страницы под
   открытой панелью — тоже. */
.cart-panel-items{padding-bottom:26px;scrollbar-width:none;
  -webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 26px),transparent);
  mask-image:linear-gradient(to bottom,#000 calc(100% - 26px),transparent);}
.cart-panel-items::-webkit-scrollbar{display:none;}
.cart-panel .cart-topup{margin-bottom:6px;}
html.has-panel,html.has-panel body{overflow:hidden;}

/* ============================================================ FILTER ALIGN 2026-09-24
   Фильтр в строке категорий: подпись крупнее (15 → 19 px), кнопка по центру
   строчных букв категорий — flex центрирует по строке целиком, а середина
   строчных у 29 px ниже на ~3 px; сдвиг делится между кнопкой и подписью. */
.catbar .diet-dd{position:relative;top:2px;}
.catbar .diet-dd-btn{font-size:19px;height:46px;padding:0 19px 0 16px;gap:9px;border-radius:23px;}
.catbar .diet-dd-btn svg{width:20px;height:20px;}
@media(max-width:1080px){
  .catbar .diet-dd-btn,.catbar.scrolled .diet-dd-btn{font-size:17px;height:42px;padding:0 16px 0 14px;border-radius:21px;}
  .catbar .diet-dd-btn svg{width:18px;height:18px;}
}
@media(max-width:680px){
  .catbar .diet-dd{top:1px;}
  .catbar .diet-dd-btn{width:40px;height:40px;padding:0;}
  .catbar .diet-dd-btn.on{width:auto;padding:0 12px;}
}

/* ============================================================ CATEGORY GAP 2026-09-24
   Промежутки между категориями в строке над меню чуть больше: 14 → 18 px
   (≤1080 14 → 17, ≤680 12 → 15). Шапка после прокрутки — как была. */
.catbar .cats-row:has(.cat-text),.catbar .cats-row.fit:has(.cat-text){gap:18px;}
@media(max-width:1080px){ .catbar .cats-row:has(.cat-text){gap:17px;} }
@media(max-width:680px){ .catbar .cats-row:has(.cat-text){gap:15px;} }

/* 24.09 b: SEO-текст целиком (без сворачивания), ссылки в ответах FAQ, без висячих строк */
.info-split .seo-text .seo-body{max-height:none;overflow:visible;}
.info-split .seo-text .seo-body::after{display:none;}
.seo-text p,.faq-item p,.faq-item summary{text-wrap:pretty;}
.seo-text h1,.seo-text h2,.faq-block h2{text-wrap:balance;}
.nowrap{white-space:nowrap;}
.seo-text a,.faq-a a{color:var(--ink);font-weight:600;}
.faq-a{padding:0 18px 16px;}
.faq-item .faq-a p{margin:0 0 6px;padding:0;}
.faq-item .faq-a p:last-of-type{margin-bottom:0;}
.faq-links{display:flex;flex-wrap:wrap;gap:4px 18px;margin-top:10px;}
.faq-link{padding:0;border:0;background:none;font:inherit;font-size:13px;font-weight:700;color:var(--ink);cursor:pointer;}
.faq-link:hover{opacity:.75;}
.info-split .faq-a{padding:0 0 14px;}
@media(max-width:560px){.faq-a{padding:0 14px 14px;}.info-split .faq-a{padding:0 0 12px;}}
.info-split{align-items:start;}
/* итоги в корзине и оформлении мельче (24.09): сумма, доставка, скидка — 14px,
   «Итого» и кнопка — как были; строки про оплату наличными в корзине больше нет */
.cart-foot .cart-row:not(.total){font-size:14px;padding:3px 0;}
.cart-foot .cart-row:not(.total) .cart-row-hint{font-size:13px;}

/* лента добора: стрелки по краям и перетаскивание мышью (24.09); на телефоне — пальцем */
.cart-topup-rail{position:relative;}
.ctu-nav{position:absolute;top:50%;z-index:3;display:grid;place-items:center;width:34px;height:34px;
  margin-top:-17px;border:none;border-radius:50%;background:var(--cream);color:var(--ink);
  box-shadow:0 2px 10px rgba(30,26,10,.22);cursor:pointer;transition:background .14s;}
.ctu-nav:hover{background:#fff;}
.ctu-nav.prev{left:-6px;}
.ctu-nav.prev svg{transform:scaleX(-1);}
.ctu-nav.next{right:-12px;}
@media (hover:none){.ctu-nav{display:none;}}
@media (hover:hover) and (pointer:fine){
  .cart-topup-row,.cart-topup .card.pc8{cursor:grab;}
  .cart-topup-row.dragging,.cart-topup-row.dragging .card.pc8{cursor:grabbing;}
}
.cart-topup-row.dragging{scroll-snap-type:none;}
.cart-topup-row.dragging .ctu-item{pointer-events:none;}

/* ============================================================ CATEGORY 25 2026-09-25
   Категории над меню на компьютере 25 px (было 29), промежутки больше: 18 → 24 px
   (≤1080 17 → 20, ≤680 15 → 17). Шапка после прокрутки — как была. */
@media(min-width:1081px){ .cat-text{font-size:25px;} }
.catbar .cats-row:has(.cat-text),.catbar .cats-row.fit:has(.cat-text){gap:24px;}
@media(max-width:1080px){ .catbar .cats-row:has(.cat-text){gap:20px;} }
@media(max-width:680px){ .catbar .cats-row:has(.cat-text){gap:17px;} }


/* ============================================================ DRAWER 2026-09-25
   Боковое меню: пункты ниже (14 → 11 px сверху/снизу), кнопка-крестик правым краем
   на одной линии с правым краем пунктов (отступ шапки справа 22 → 12 px, как у .drawer-nav). */
.drawer-head{padding-right:12px;}
/* 30.09: плотнее — 11 → 7 px */
.drawer-nav a{padding-top:7px;padding-bottom:7px;}

/* ============================================================ STORY TITLE 2026-09-25
   Подписи на карточках историй тоньше: 700 → 500. */
.scb-title{font-weight:500;}
/* «Далее» в корзине: проверка наличия (site/stock.js) — оверлей на панель корзины + плашка дефицита над кнопкой */
.stock-check-overlay{
  position:absolute;inset:0;z-index:5;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;
  background:color-mix(in srgb, var(--paper) 82%, transparent);
  backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);
  font-size:15px;font-weight:700;color:var(--ink);
}
.stock-check-spinner{
  width:38px;height:38px;border-radius:50%;
  border:3px solid var(--line-2);border-top-color:var(--green-deep);
  animation:stock-check-spin .8s linear infinite;
}
@keyframes stock-check-spin{to{transform:rotate(360deg)}}
.stock-toast{
  position:absolute;top:14px;left:14px;right:14px;z-index:6;
  display:flex;align-items:flex-start;gap:10px;
  padding:13px 12px 13px 14px;border-radius:14px;
  background:#b3402f;color:#fff;box-shadow:var(--shadow-lg);
  font-size:13.5px;font-weight:600;line-height:1.45;
  animation:stock-toast-in .25s cubic-bezier(.4,0,.2,1);
}
@keyframes stock-toast-in{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}
.stock-toast-icon{flex:none;display:grid;place-items:center;margin-top:1px;}
.stock-toast-text{flex:1;min-width:0;white-space:pre-line;}
.stock-toast-close{flex:none;width:26px;height:26px;margin:-3px -2px 0 0;border-radius:8px;display:grid;place-items:center;color:inherit;opacity:.85;}
.stock-toast-close:hover,.stock-toast-close:active{opacity:1;background:rgba(255,255,255,.16);}

/* ============================================================ GLENN 2026-09-26
   Фильтр: черта между своими диетами, «Острое» и «Без …» из лейблов (site/labels.js). */
.diet-pop-sep{grid-column:1 / -1;height:1px;background:var(--line-2);margin:6px 10px;}
/* 30.09: пункты с эмодзи — длинные переносятся влево, а не по центру */
.diet-opt{text-align:left;gap:6px;}
@media (max-width:480px){ .diet-opt{padding:11px 8px;} }

/* аудит 26.09, п.43: экран сбоя вместо белой страницы */
.app-crash{max-width:420px;margin:15vh auto;padding:0 16px;text-align:center;font-size:16px;line-height:1.5;}
.app-crash a{color:var(--ink);font-weight:700;}
/* аудит 26.09, п.49: зона касания «−/+» на карточке — 40×44, промах не удаляет блюдо */
.pc-stepper button{position:relative;}
.pc-stepper button::before{content:"";position:absolute;top:50%;left:50%;width:40px;height:44px;transform:translate(-50%,-50%);}
/* п.57: поля от 16 px — iPhone не увеличивает страницу при фокусе */
@media (max-width:900px){
  input,textarea,select,.field-stack-input,.co-note,.addr-input{font-size:16px;}
}
/* п.18: cookie-плашка не закрывает полосу корзины, открытая сторис — без полосы
   и без прокрутки страницы под ней */
body:has(.sticky-cart) .cookie-bar{bottom:84px;}
body:has(.story-overlay) .sticky-cart{display:none;}
html:has(.story-overlay){overflow:hidden;}
.ao-more{display:block;margin:12px auto 0;}
/* п.70: пока меню не пришло, SEO-текст и подвал не встают на первый экран
   (их потом выталкивало меню — сдвиг 0,9) */
#menu:empty{min-height:120vh;}
/* п.72: страница раздела — видимые H1 и описание раздела */
.promise-strip.promise-strip--cat{max-width:calc(var(--maxw) + 44px);margin:0 auto;padding:14px 22px 0;height:auto;}
.promise-cat-h1{margin:0 0 6px;font-size:26px;font-weight:800;line-height:1.2;color:var(--ink);}
.promise-cat-desc{margin:0;max-width:760px;font-size:14.5px;line-height:1.5;color:var(--ink-2);}
@media(max-width:680px){
  .promise-strip.promise-strip--cat{padding:10px 16px 0;}
  .promise-cat-h1{font-size:21px;}
}

/* FOOTER 2026-09-27 — крупная подпись и телефон, «открыто сейчас», значки у
   фактов доставки, водяной знак-логотип в правом нижнем углу */
.footer.ft2{position:relative;overflow:hidden;isolation:isolate;display:block;margin-top:48px;padding:48px 52px 26px;border:0;border-radius:var(--radius-lg);
  background:radial-gradient(90% 120% at 100% 0%,#1d5a12 0%,rgba(29,90,18,0) 60%),radial-gradient(60% 80% at 0% 100%,#0a2e00 0%,rgba(10,46,0,0) 70%),var(--green-deep);
  color:rgba(243,234,212,.8);}
.ft2-mark{position:absolute;z-index:-1;right:-3%;bottom:-14%;width:min(58%,980px);color:var(--cream);opacity:.055;pointer-events:none;}
.ft2-mark svg{width:100% !important;height:auto !important;}
.ft2 a{color:inherit;}

/* 30.09: шапка подвала и колонки под ней — одна сетка 4×1fr: подпись над «Сайт»+«Самовывоз»,
   кнопки 2×2 ровно над «Доставка»+«Оплата» */
.ft2-hero{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:32px 48px;padding-bottom:36px;border-bottom:1px solid rgba(243,234,212,.14);}
.ft2-lead{grid-column:1 / 3;max-width:640px;}
/* кнопки компактным блоком 2×2 у правого края (по краю «Оплаты»), не растягиваются на колонки */
.ft2-cta{grid-column:3 / 5;justify-self:end;width:min(100%,440px);}
/* колонка «Оплаты» шире ~412 px (кнопка с номером) — блок ровно в ней, без промаха на пару пикселей */
@media(min-width:1940px){.ft2-cta{grid-column:4;justify-self:stretch;width:auto;}}
.ft2-logo{display:inline-block;margin-bottom:22px;}
.ft2-tag{margin:0;font-size:clamp(22px,2vw,34px);line-height:1.15;font-weight:500;letter-spacing:-.02em;color:var(--cream);text-wrap:balance;}
.ft2-open{display:inline-flex;align-items:center;gap:9px;margin-top:18px;padding:7px 14px 7px 12px;border-radius:999px;background:rgba(243,234,212,.08);font-size:14px;font-weight:600;color:rgba(243,234,212,.75);}
.ft2-open i{width:8px;height:8px;border-radius:50%;background:rgba(243,234,212,.4);}
.ft2-open.on{color:var(--cream);}
.ft2-open.on i{background:#7fd96b;box-shadow:0 0 0 0 rgba(127,217,107,.6);animation:ft2-pulse 2.4s ease-out infinite;}
@keyframes ft2-pulse{0%{box-shadow:0 0 0 0 rgba(127,217,107,.55);}70%{box-shadow:0 0 0 9px rgba(127,217,107,0);}100%{box-shadow:0 0 0 0 rgba(127,217,107,0);}}
@media (prefers-reduced-motion:reduce){.ft2-open.on i{animation:none;}}

.ft2-cta{display:flex;flex-direction:column;align-items:stretch;gap:6px;}
.ft2-cap{font-size:13px;font-weight:600;letter-spacing:.02em;color:rgba(243,234,212,.55);}
.ft2 .ft2-phone{font-size:clamp(24px,2vw,34px);font-weight:800;letter-spacing:-.01em;color:var(--cream);font-variant-numeric:tabular-nums;white-space:nowrap;transition:opacity .14s;}
.ft2 .ft2-phone:hover{opacity:.8;}
.ft2-pills{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap;}
.ft2 .ft2-pill{display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 18px 0 14px;border-radius:999px;border:1px solid rgba(243,234,212,.28);font-size:15px;font-weight:700;color:var(--cream);transition:background .14s,border-color .14s,color .14s;}
.ft2 .ft2-pill:hover{background:rgba(243,234,212,.1);border-color:rgba(243,234,212,.5);}
/* 30.09: кремовой заливки у мессенджеров нет — все четыре кнопки контуром, как звонок */
/* 27.09: мессенджеры сверху, телефон под ними строкой и мельче */
.ft2-cta .ft2-pills{margin-top:0;}
.ft2-call{display:flex;align-items:baseline;justify-content:flex-end;flex-wrap:wrap;gap:4px 10px;margin-top:14px;}
.ft2 .ft2-call .ft2-phone{font-size:16px;font-weight:700;letter-spacing:0;opacity:.85;}
.ft2 .ft2-call .ft2-phone:hover{opacity:1;}
/* 30.09: четыре кнопки сеткой 2×2 — Telegram, Instagram, WhatsApp и звонок контуром;
   в кнопке звонка на компьютере номер, на телефоне и планшете «Позвонить» */
.ft2-cta .ft2-pills{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));}
.ft2 .ft2-pills .ft2-pill{justify-content:center;}
.ft2-call-num{font-variant-numeric:tabular-nums;white-space:nowrap;}
.ft2-call-txt{display:none;}
@media(max-width:1080px),(hover:none){.ft2-call-txt{display:inline;}.ft2-call-num{display:none;}}

.ft2-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px 48px;padding-top:34px;}
.ft2-col h4{margin:0 0 16px;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:rgba(243,234,212,.5);}
/* 30.09: пункты сверху вниз по порядку меню (4 + 3), колонки поровну — без «FAQ» сиротой под первой */
.ft2-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(4,auto);grid-auto-flow:column;gap:11px 24px;max-width:320px;}
.ft2 .ft2-nav a{font-size:15px;font-weight:600;color:rgba(243,234,212,.9);transition:color .14s;}
.ft2 .ft2-nav a:hover{color:#fff;}
.ft2-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;}
.ft2-list li{display:flex;align-items:flex-start;gap:12px;font-size:15px;line-height:1.4;color:rgba(243,234,212,.9);}
.ft2-list li > svg{flex:none;margin-top:1px;color:rgba(243,234,212,.5);}
.ft2-kitchen div{display:flex;flex-direction:column;gap:4px;}
.ft2-kitchen b{font-size:16px;font-weight:700;color:var(--cream);}
.ft2 .muted{font-size:14px;color:rgba(243,234,212,.6);}
.ft2 .ft2-link{display:inline-block;margin-top:2px;font-size:14px;font-weight:700;color:var(--cream);text-decoration:none;transition:opacity .14s;}
.ft2 .ft2-link:hover{opacity:.8;}
.ft2 .ft2-more{margin-top:14px;}

.ft2-legal{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:40px;padding-top:0;border:0;font-size:13px;color:rgba(243,234,212,.5);}
.ft2-top{display:inline-flex;align-items:center;gap:6px;padding:8px 2px;margin:-8px -2px;background:none;border:0;font:inherit;font-weight:600;color:rgba(243,234,212,.7);cursor:pointer;}
.ft2-top svg{transform:rotate(180deg);}
.ft2-top:hover{color:var(--cream);}

@media(max-width:1080px){
  .footer.ft2{padding:40px 36px 24px;}
  .ft2-hero,.ft2-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .ft2-lead{grid-column:1;}
  .ft2-cta{grid-column:2;}
}
@media(max-width:680px){
  .footer.ft2{margin-top:32px;padding:32px 20px 20px;border-radius:var(--radius);}
  .ft2-logo{margin-bottom:16px;}
  .ft2-hero{padding-bottom:28px;gap:26px;}
  .ft2-hero{grid-template-columns:minmax(0,1fr);}
  .ft2-lead,.ft2-cta{grid-column:1;}
  .ft2-cta,.ft2-pills{width:100%;}
  .ft2 .ft2-pill{flex:1;justify-content:center;}
  /* 30.09: «Сайт» | «Самовывоз», ниже «Доставка» | «Оплата» */
  .ft2-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 16px;padding-top:28px;}
  .ft2-list .ft2-kitchen{gap:8px;}
  .footer.ft2{padding-left:16px;padding-right:16px;}
  .ft2-col h4{letter-spacing:.08em;}
  .ft2 .ft2-more{font-size:13px;}
  .ft2 .ft2-nav a{padding:6px 0;}
  .ft2-nav{grid-template-columns:repeat(2,max-content);gap:0 16px;}
  .ft2-mark{width:92%;right:-10%;bottom:-2%;}
  .ft2-legal{margin-top:32px;}
}
@media(max-width:359px){.ft2-grid{grid-template-columns:1fr;}}

/* ============= НАСТРОЙКА БЛЮДА (шестеренка в карточке и корзине) ============= */
.pm-cta-row .pz-right{display:flex;align-items:center;gap:8px;flex:none;}
.pz-gear{width:48px;height:48px;border-radius:999px;flex:none;display:grid;place-items:center;padding:0;cursor:pointer;
  border:1.5px solid var(--green-deep);background:transparent;color:var(--ink);position:relative;transition:background .14s,color .14s;}
.pz-gear:hover{background:rgba(31,74,50,.07);}
.pz-gear.open{background:var(--green-deep);color:var(--cream);}
.pz-gear .dot{position:absolute;top:-3px;right:-3px;min-width:18px;height:18px;padding:0 4px;box-sizing:border-box;border-radius:999px;
  background:var(--pink);color:var(--ink);font:800 11px/18px Mulish,sans-serif;text-align:center;}
.pm-foot.pz-open{padding-top:14px;}
.pz-tabs{display:flex;gap:5px;margin-bottom:12px;}
.pz-tabs button{flex:1 1 auto;position:relative;text-align:center;font:700 12.5px/1 Mulish,sans-serif;padding:10px 4px;border-radius:12px;cursor:pointer;
  background:var(--paper);border:1px solid var(--line-2);color:var(--ink-2);white-space:nowrap;}
.pz-tabs button.cur{background:var(--green-deep);border-color:var(--green-deep);color:var(--cream);}
.pz-tabs button b{position:absolute;top:-6px;right:-3px;min-width:17px;height:17px;padding:0 4px;box-sizing:border-box;border-radius:999px;
  background:var(--pink);color:var(--ink);font:800 11px/17px Mulish,sans-serif;}
.pz-opts{margin:-2px 0 14px;}
.pz-chips{display:flex;flex-wrap:wrap;gap:6px;max-height:132px;overflow-y:auto;}
.pz-chips button{font:600 13.5px/1 Mulish,sans-serif;padding:9px 12px;border-radius:999px;cursor:pointer;
  background:var(--paper);border:1px solid var(--line-2);color:var(--ink);}
.pz-chips button small{font-size:12px;font-weight:600;color:var(--ink-3);margin-left:4px;}
.pz-chips button.off{background:var(--beige-2);border-color:transparent;color:var(--ink-3);text-decoration:line-through;}
.pz-chips button.on{background:var(--green-deep);border-color:var(--green-deep);color:var(--cream);}
.pz-chips button.on small{color:rgba(243,234,212,.75);}
.pz-wish textarea{width:100%;box-sizing:border-box;min-height:64px;padding:10px 12px;border:1px solid var(--line-2);border-radius:12px;
  background:var(--paper);font:15px/1.4 Mulish,sans-serif;color:var(--ink);resize:none;}
.pm-pill.pz-save{gap:10px;padding:0 18px;}
.pm-pill.pz-save .pz-save-t{font:700 14px Mulish,sans-serif;color:var(--cream);}
/* аллерген, который убрали исключением: серый и перечеркнут красным */
.dish-badge.cz-off{background:var(--beige-2);color:var(--ink-3);text-decoration:line-through;text-decoration-color:oklch(58% 0.2 25);text-decoration-thickness:1.5px;}
.badge-ico.cz-off{background:var(--beige-2);color:var(--ink-3);overflow:visible;}
.badge-ico.cz-off::after{content:"";position:absolute;left:50%;top:50%;width:120%;height:1.8px;border-radius:2px;
  background:oklch(58% 0.2 25);transform:translate(-50%,-50%) rotate(-45deg);pointer-events:none;}
/* шестеренка в ряду значков корзины — размером со значок */
.cart-item-badges .cart-item-gear{background:var(--green-deep);color:var(--cream);border:none;cursor:pointer;}
.cart-item-badges .cart-item-gear svg{width:12px;height:12px;}
/* подпись слева сжимается и переносится, чтобы шестеренка и кнопка влезали на телефоне */
.pm-cta-row .pm-add-label{min-width:0;flex:1 1 auto;line-height:1.25;}
@media (max-width:420px){.pm-cta-row{gap:10px;}.pm-cta-row .pm-add-label{font-size:14px;}}

/* THEME 2026-09-27 — темная тема. Переключатель «Авто / Светлая / Темная» внизу
   бокового меню, по умолчанию «Авто» (как у устройства); итог — html[data-theme],
   ставит скрипт в index.php. Палитра почти везде парная: темно-зеленый фон +
   кремовый текст, темно-зеленый текст на бежевом. Поэтому в темной теме токены
   меняются местами: --green-deep светло-бежевый (текст, кнопки; не зеленый — Stan 27.09), --cream темный (текст
   на кнопках, панели). Крупные зеленые плашки (боковое меню, подвал, баннеры) и
   карточки на фото остаются в родной палитре — ниже они возвращают себе токены. */
/* боковое меню: язык под логотипом, тема внизу — одинаковые дорожки на всю ширину, сегменты
   равной ширины и высоты; ниже, через отступ, телефон и часы работы */
.drawer-foot{gap:18px;}
.drawer-prefs{display:flex;flex-direction:column;gap:8px;}
.drawer-lang{padding:0 22px 14px;}
.drawer .seg-track{display:flex;gap:2px;padding:3px;border-radius:12px;background:rgba(255,255,255,.07);}
.drawer .seg-track > a,.drawer .seg-track > button{flex:1 1 0;min-width:0;height:36px;margin:0;padding:0 6px;border-radius:9px;background:none;
  display:flex;align-items:center;justify-content:center;gap:6px;font-size:13px;font-weight:600;line-height:1;color:inherit;text-decoration:none;
  opacity:.72;transition:background .15s,opacity .15s,color .15s;}
.drawer .seg-track > :hover{opacity:1;background:rgba(255,255,255,.07);}
.drawer .seg-track > .active{opacity:1;background:var(--cream);color:var(--ink);}
.drawer .lang > a{text-transform:uppercase;letter-spacing:.06em;font-size:12.5px;}
.drawer-foot .theme-switch svg{flex:none;}
.drawer-contact{display:flex;flex-direction:column;gap:4px;}
.drawer-contact a{display:flex;align-items:center;gap:8px;padding:6px 0;margin:0;font-size:14px;font-weight:600;color:inherit;text-decoration:none;opacity:.9;}
.drawer-contact a svg{opacity:.7;}
.drawer-contact small{opacity:.6;font-size:12px;}
/* 29.09: углы меню скруглены как у карточек, язык — компактная круглая дорожка,
   тема — тоже круглая; внизу «Связаться с нами» круглыми иконками */
.drawer{border-radius:0 var(--radius-lg) var(--radius-lg) 0;overflow:hidden;}
.drawer .seg-track{border-radius:999px;}
.drawer .seg-track > a,.drawer .seg-track > button{border-radius:999px;}
.drawer-lang .seg-track{display:inline-flex;}
.drawer-lang .seg-track > a{flex:0 0 auto;width:44px;height:28px;padding:0;font-size:11.5px;}
/* 30.09: тема — ширина сегмента по подписи плюс поровну свободного места: поля плашки одинаковые у «Авто» и «Светлая» */
.drawer .theme-switch > button{flex:1 1 auto;padding:0 12px;}
.drawer-contact{gap:10px;}
.drawer-cap{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.14em;opacity:.6;}
.drawer-social{display:flex;gap:10px;}
.drawer-contact .drawer-social a{width:40px;height:40px;padding:0;justify-content:center;border-radius:50%;
  background:color-mix(in srgb,currentColor 10%,transparent);opacity:1;}
.drawer-contact .drawer-social a:hover,.drawer-contact .drawer-social a:active{background:color-mix(in srgb,currentColor 18%,transparent);}
.drawer-contact .drawer-social a svg{opacity:.9;}

html[data-theme="dark"]{
  color-scheme:dark;
  --green-deep:#ecdfbd;
  --green:#e2d3aa;
  --green-soft:#cdbd8f;
  --beige-bg:#13150e;
  --beige-2:#1c1f16;
  --beige-warm:#262a1e;
  --cream:#181b12;
  --paper:#1e2218;
  --ink:#ebe5d1;
  --ink-2:#b7b19b;
  --ink-3:#938e78;
  --line:rgba(235,229,209,.12);
  --line-2:rgba(235,229,209,.17);
  --info:#7cc0cd;
  --shadow-sm:0 1px 2px rgba(0,0,0,.35);
  --shadow:0 6px 22px rgba(0,0,0,.38);
  --shadow-lg:0 20px 60px rgba(0,0,0,.55);
  --accent:#ecdfbd;
  --accent-text:#13150e;
}
/* родная палитра: темно-зеленые плашки с кремовым текстом и всё, что лежит на фото */
html[data-theme="dark"] :is(.drawer,.footer,.catering-aside,.pg-cta-band,.toast,.contact-pop-head,.catbar-toast,.pc8,.story-card,.story-overlay){
  --green-deep:#0E3D00;--green:#15521b;--green-soft:#2f8a3e;--cream:#f3ead4;--beige-bg:#f3ead4;
  --accent:#0E3D00;--accent-text:#F9F2DB;--ink:#3a3a38;--ink-2:#6b6857;
}
/* захардкоженные светлые поверхности */
html[data-theme="dark"] :is(.acc-order,.acc-addr,.acc-phone,.acc-phone-edit,.acc-channel-tabs){background:var(--paper);}
html[data-theme="dark"] .addr-check .box{background:var(--paper);}
html[data-theme="dark"] .addr-check input:checked + .box{background:var(--green-deep);border-color:var(--green-deep);color:var(--paper);} /* 27.09: отмеченный — заливкой, как в светлой */
html[data-theme="dark"] .city-tabs{background:var(--beige-2);border-color:var(--line-2);}
html[data-theme="dark"] .city-tab,html[data-theme="dark"] .city-tabs:has(.city-slider) .city-tab.active{color:var(--ink-2);border-right-color:var(--line-2);}
html[data-theme="dark"] .seo-text .seo-body::after{background:linear-gradient(to bottom,rgba(19,21,14,0),var(--beige-bg));}
html[data-theme="dark"] .ctu-nav:hover{background:var(--paper);}
html[data-theme="dark"] .drawer-backdrop{background:rgba(0,0,0,.6);}
html[data-theme="dark"] .topbar.shadow{box-shadow:0 6px 20px rgba(0,0,0,.35);}
/* красный и статусные цвета: на темном фоне исходные #C0392B / #2A6F7D слишком тусклые */
html[data-theme="dark"]{--red:#ef7d6f;}
html[data-theme="dark"] :is(.promo-err,.pm-nutri-note.warn,.pb-rule.need,.otp-error-msg,.addr-hint-err,.user-dd-item.danger,.user-dd-item.danger svg,
  .acc-logout,.acc-logout svg,.text-edit-error,.co-cancel-yes,.cart-item-soldout,.ao-status.st-danger,.aa-del:hover,.cart-item-remove:hover){color:#ef7d6f;}
html[data-theme="dark"] :is(.ao-status.st-info,.ao-eta){color:#7cc0cd;}
html[data-theme="dark"] .ao-status.st-success{color:#8fd49b;}
html[data-theme="dark"] .city-tab:hover,html[data-theme="dark"] .city-tabs:has(.city-slider) .city-tab.active:hover{color:var(--ink);background:rgba(255,255,255,.05);}
/* окно блюда: КБЖУ на полупрозрачном белом (на темном — серая плашка), метки
   блюда — цвета из данных, рассчитаны на светлый фон: приглушаем */
html[data-theme="dark"] .pm-nutri{background:var(--beige-2);box-shadow:none;}
html[data-theme="dark"] .dish-badge:not(.cz-off){filter:brightness(.8) saturate(.65);}
html[data-theme="dark"] .cart-float-close{background:var(--paper);}
/* карты Яндекса (адрес, страница доставки): темнеет только подложка, зоны и метки
   остаются в своих цветах; тайлы — картинки, поэтому инверсия + поворот оттенка */
/* 28.09: на крупном масштабе Яндекс рисует векторным слоем — фильтр и на него */
html[data-theme="dark"] .addr-map-canvas [class*="-vector-pane"],
html[data-theme="dark"] .addr-map-canvas [class*="-ground-pane"]{filter:invert(1) hue-rotate(180deg) brightness(.92) contrast(.88) saturate(.55);}
html[data-theme="dark"] .addr-map,html[data-theme="dark"] .del-map-frame{background:#1c1f16;}
/* палочки и вилка взаимозаменяемы: маленькое «или» между их картинками */
.free-item .thumb{position:relative;overflow:visible;}
.free-item .thumb img{border-radius:inherit;}
.free-or{position:absolute;left:50%;top:-5px;transform:translate(-50%,-50%);z-index:1;
  padding:2px 6px;border-radius:999px;background:var(--paper);border:1px solid var(--line-2);
  font:700 10px/1 Mulish,sans-serif;letter-spacing:.02em;color:var(--ink-3);white-space:nowrap;pointer-events:none;}

/* ============= НАСТРОЙКА БЛЮДА: АНИМАЦИЯ + ВЫСОКОЕ ФОТО 2026-09-27 =============
   Панель всегда в DOM: высота раскрывается через grid-template-rows 0fr→1fr (окно
   плавно растет вместе с ней), содержимое выезжает снизу, вкладки и варианты —
   лесенкой (--i задает JSX). Смена вкладки перезапускает лесенку вариантов (key).
   Шестеренка проворачивается и уходит, на ее место поворотом входит крестик. */
.pm-foot{transition:padding-top .34s cubic-bezier(.22,.8,.24,1);}
.pm-foot.pz-open{padding-top:8px;}
.pz-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .34s cubic-bezier(.22,.8,.24,1);}
.pz-panel.open{grid-template-rows:1fr;}
/* отступы с отрицательными полями — чтобы счетчики вкладок и рамка фокуса не резались */
.pz-inner>.pz-tabs{margin-top:6px;}
.pz-inner{min-height:0;overflow:hidden;padding:0 4px;margin:0 -4px;opacity:0;transform:translateY(10px);
  transition:opacity .18s ease,transform .3s cubic-bezier(.22,.8,.24,1);}
.pz-panel.open .pz-inner{opacity:1;transform:none;transition-delay:.05s;}
@keyframes pz-in{from{opacity:0;transform:translateY(8px) scale(.96);}to{opacity:1;transform:none;}}
.pz-panel.open .pz-tabs button,.pz-panel.open .pz-chips button{animation:pz-in .32s cubic-bezier(.22,.8,.24,1) both;animation-delay:calc(70ms + var(--i,0) * 35ms);}
.pz-panel.open .pz-wish{animation:pz-in .32s cubic-bezier(.22,.8,.24,1) both;animation-delay:100ms;}
.pz-tabs button,.pz-chips button{transition:background .18s,border-color .18s,color .18s;}

.pz-gear .pz-ic{grid-area:1/1;display:grid;place-items:center;transition:transform .42s cubic-bezier(.3,1.35,.5,1),opacity .2s ease;}
.pz-gear .pz-ic-x{opacity:0;transform:rotate(-90deg) scale(.4);}
.pz-gear:hover .pz-ic-gear{transform:rotate(60deg);}
.pz-gear.open .pz-ic-gear{opacity:0;transform:rotate(180deg) scale(.4);}
.pz-gear.open .pz-ic-x{opacity:1;transform:none;}
.pz-gear{transition:background .22s,color .22s;}
@keyframes pz-dot{from{transform:scale(0);}to{transform:none;}}
.pz-gear .dot{animation:pz-dot .3s cubic-bezier(.3,1.5,.5,1) .15s both;}

/* высокое фото (menu-v, 2:3): блюдо в верхней половине кадра, низ — фон; прижато к верху */
.pm-photo picture{display:contents;}
.pm-photo img.vt{object-position:50% 0;}
/* высокое фото не задает высоту окна (иначе 2:3 растягивает его до ~880 px) — окно по тексту, фото заполняет колонку */
@media (min-width:681px){.pm-photo img.vt{position:absolute;inset:0;min-height:0;}}
@media (max-width:680px){.pm-photo img.vt{object-position:center;}}

@media (prefers-reduced-motion:reduce){
  .pm-foot,.pz-panel,.pz-inner,.pz-gear .pz-ic{transition:none;}
  .pz-panel.open .pz-tabs button,.pz-panel.open .pz-chips button,.pz-panel.open .pz-wish,.pz-gear .dot{animation:none;}
}

/* ============= КЕЙТЕРИНГ: РЕДИЗАЙН 2026-09-27 =============
   Обложка-фото с заголовком и кнопками, условия одной полосой, «Соберем» рядом
   с фото, галерея, шаги линией, заявка и телефон одним блоком. Ширина ограничена
   1320 px — на широком экране фото и колонки не растягиваются. */
.ct-page{max-width:1320px;margin:0 auto;}
.ct-hero{position:relative;isolation:isolate;margin-top:18px;min-height:clamp(400px,42vw,540px);display:flex;align-items:flex-end;
  border-radius:var(--radius-lg);overflow:hidden;background:#1b1d14;}
.ct-hero-img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:50% 60%;}
.ct-hero::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(90deg,rgba(9,18,3,.84) 0%,rgba(9,18,3,.6) 38%,rgba(9,18,3,.1) 72%,rgba(9,18,3,0) 100%),
             linear-gradient(0deg,rgba(9,18,3,.5) 0%,rgba(9,18,3,0) 50%);}
.ct-hero-body{padding:clamp(26px,4vw,52px);max-width:640px;}
.ct-title{font-family:'Mulish',"Segoe UI",system-ui,-apple-system,sans-serif;font-weight:800;font-size:clamp(34px,4.4vw,58px);
  line-height:1.02;letter-spacing:-.02em;margin:0 0 14px;color:#F9F2DB;text-wrap:balance;}
.ct-lead{margin:0 0 26px;font-size:clamp(15px,1.3vw,17.5px);line-height:1.5;color:rgba(249,242,219,.86);max-width:44ch;}
.ct-btns{display:flex;flex-wrap:wrap;gap:10px;}
.ct-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:14px 22px;border-radius:13px;
  background:rgba(243,234,212,.94);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#0E3D00;box-shadow:0 2px 10px rgba(0,0,0,.18);font-weight:700;font-size:15px;white-space:nowrap;text-decoration:none;
  transition:filter .14s,background .14s,transform .08s;}
.ct-btn:hover{filter:brightness(1.06);}
.ct-btn:active{transform:translateY(1px);}
.ct-btn.ghost{background:rgba(9,18,3,.38);color:#F9F2DB;border:1px solid rgba(249,242,219,.6);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-variant-numeric:tabular-nums;}
.ct-btn.ghost:hover{background:rgba(9,18,3,.5);filter:none;}

.ct-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:14px;
  background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);}
.ct-fact{display:flex;align-items:flex-start;gap:14px;padding:22px 24px;}
.ct-fact+.ct-fact{border-left:1px solid var(--line-2);}
.ct-fact-ic{flex:none;width:40px;height:40px;border-radius:12px;background:var(--beige-2);color:var(--green);display:grid;place-items:center;}
.ct-fact h3{margin:1px 0 4px;font-size:11.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);}
.ct-fact p{margin:0;font-size:15px;line-height:1.4;font-weight:600;color:var(--ink);}

.ct-sec{margin-top:clamp(48px,6vw,80px);}
.ct-h2{font-family:'Mulish',"Segoe UI",system-ui,-apple-system,sans-serif;font-weight:700;font-size:clamp(28px,3vw,38px);
  line-height:1.05;letter-spacing:-.015em;color:var(--ink);margin:0 0 20px;}

.ct-menu{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(28px,4.5vw,64px);align-items:center;}
.ct-menu-photo{display:block;width:100%;aspect-ratio:4/5;max-height:600px;object-fit:cover;border-radius:var(--radius-lg);}
.ct-menu .ct-h2{margin-bottom:12px;}
.ct-intro{margin:0 0 22px;font-size:15.5px;line-height:1.6;color:var(--ink-2);max-width:54ch;}
.ct-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-2);}
/* Кейтеринг 30.09: без заголовка — текст с верхнего края фото, вводный абзац
   чуть крупнее и темнее, тонкая зеленая линия слева. */
.ct-menu.ct-menu-top{align-items:start;}
.ct-lede{position:relative;margin:0 0 28px;padding:2px 0 2px 22px;font-size:clamp(17px,1.35vw,19px);line-height:1.6;font-weight:500;color:var(--ink);max-width:48ch;text-wrap:pretty;}
.ct-lede::before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:3px;border-radius:3px;background:var(--green);opacity:.45;}
.ct-item{display:grid;grid-template-columns:44px minmax(0,1fr);gap:16px;padding:18px 0;border-bottom:1px solid var(--line-2);}
.ct-item-ic{width:44px;height:44px;border-radius:13px;background:var(--beige-2);color:var(--green);display:grid;place-items:center;}
.ct-item h3{margin:2px 0 4px;font-size:17px;font-weight:700;color:var(--ink);}
.ct-item p{margin:0;font-size:14px;line-height:1.5;color:var(--ink-2);}

.ct-gallery{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr);gap:16px;height:clamp(240px,26vw,340px);}
.ct-gallery img{display:block;width:100%;height:100%;object-fit:cover;border-radius:var(--radius-lg);}

.ct-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;}
.ct-step{position:relative;}
.ct-step-n{display:grid;place-items:center;width:46px;height:46px;border-radius:999px;margin-bottom:16px;
  background:var(--green-deep);color:var(--cream);font:700 18px/1 'Mulish',"Segoe UI",system-ui,sans-serif;}
/* пунктир от кружка к следующему шагу */
.ct-step:not(:last-child)::after{content:"";position:absolute;top:22px;left:60px;right:-18px;height:2px;
  background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--green-deep) 28%,transparent) 0 7px,transparent 7px 13px);}
.ct-step h3{margin:0 0 6px;font-size:17px;font-weight:700;color:var(--ink);}
.ct-step p{margin:0;font-size:14px;line-height:1.55;color:var(--ink-2);max-width:34ch;}

.ct-request{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);border-radius:var(--radius-lg);overflow:hidden;
  background:var(--cream);border:1px solid var(--line);scroll-margin-top:calc(var(--topbar-h) + 16px);}
.ct-request-side{--pad:clamp(26px,3.4vw,42px);display:flex;flex-direction:column;gap:12px;padding:var(--pad);background:var(--green-deep);color:var(--cream);}
.ct-request-side .ct-h2{margin:0;color:var(--cream);}
.ct-request-side>p{margin:0;font-size:15px;line-height:1.55;color:rgba(249,242,219,.82);max-width:36ch;}
.ct-call{margin-top:auto;padding-top:22px;border-top:1px solid rgba(249,242,219,.18);display:flex;flex-direction:column;gap:5px;
  color:var(--cream);text-decoration:none;}
.ct-call-t{font-size:11.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:rgba(249,242,219,.66);}
.ct-call b{display:flex;align-items:center;gap:10px;font-size:21px;font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap;}
.ct-call:hover b{opacity:.85;}
.ct-call-h{font-size:13.5px;color:rgba(249,242,219,.7);}
.ct-request-form{padding:clamp(24px,3.4vw,42px);display:flex;flex-direction:column;justify-content:center;}
/* фото команды — шапка зеленой колонки, до краев */
.ct-team{display:block;width:calc(100% + 2 * var(--pad));max-width:none;margin:calc(-1 * var(--pad)) calc(-1 * var(--pad)) 12px;
  aspect-ratio:16/10;object-fit:cover;object-position:50% 35%;}
.ct-request-form .catering-sent{border:none;background:none;padding:0;max-width:none;}
.ct-request-form .catering-form-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));}

html[data-theme="dark"] .ct-request-side{--green-deep:#0E3D00;--cream:#f3ead4;}
html[data-theme="dark"] .ct-request{background:var(--paper);}

@media (max-width:980px){
  .ct-menu{grid-template-columns:1fr;}
  .ct-menu-photo{aspect-ratio:16/10;max-height:none;}
  .ct-request{grid-template-columns:1fr;}
  .ct-call{margin-top:12px;}
}
@media (max-width:760px){
  .ct-facts{grid-template-columns:1fr;}
  .ct-fact{padding:16px 18px;}
  .ct-fact+.ct-fact{border-left:0;border-top:1px solid var(--line-2);}
  .ct-steps{grid-template-columns:1fr;gap:22px;}
  .ct-step{display:grid;grid-template-columns:46px minmax(0,1fr);gap:16px;}
  .ct-step-n{margin-bottom:0;}
  .ct-step:not(:last-child)::after{top:54px;bottom:-16px;left:22px;right:auto;width:2px;height:auto;
    background:repeating-linear-gradient(180deg,color-mix(in srgb,var(--green-deep) 28%,transparent) 0 7px,transparent 7px 13px);}
  .ct-step h3{margin-top:11px;}
  .ct-gallery{grid-template-columns:1fr;grid-template-rows:none;height:auto;}
  .ct-gallery img{height:auto;aspect-ratio:16/10;}
}
@media (max-width:640px){
  .ct-hero{margin-top:10px;min-height:0;padding-top:clamp(190px,58vw,300px);}
  .ct-hero-img{object-position:50% 40%;}
  .ct-hero::before{background:linear-gradient(0deg,rgba(9,18,3,.9) 0%,rgba(9,18,3,.72) 42%,rgba(9,18,3,.05) 78%);}
  .ct-hero-body{padding:22px 20px 20px;}
  .ct-lead{margin-bottom:20px;}
  .ct-btn{flex:1 1 auto;}
  .ct-call b{font-size:19px;}
}

/* ============= ИНФО-СТРАНИЦЫ: РЕДИЗАЙН 2026-09-27 =============
   Акции, Доставка, Оплата, О нас — на классах кейтеринга (.ct-*, блок выше) плюс
   свое (.ip-*, components/page/infoBlocks.jsx): короткая обложка, карточки с
   крупной иконкой, главная акция зеленой карточкой, «О нас» — текст над фото
   команды, цифры и кухня с маршрутом, зеленый призыв в конце. Зеленые плашки —
   литералом #0E3D00: в темной теме --green-deep светлый (цвет текста). */
.ct-hero.ip-hero-short{min-height:clamp(360px,34vw,470px);}
/* акции: фото без затемнения, читаемость текста — тенью букв */
.ct-hero.ip-hero-clear::before{content:none;}
.ct-hero.ip-hero-clear .ct-title,.ct-hero.ip-hero-clear .ct-lead{color:#F9F2DB;text-shadow:0 1px 2px rgba(9,18,3,.55),0 2px 16px rgba(9,18,3,.45);}
.ct-sec>.ct-intro{margin-top:-8px;}
.ct-item p a{color:var(--ink);font-weight:700;text-decoration:none;}
.ct-item p a:hover{opacity:.75;}

/* карточки: способы оплаты, принципы */
.ip-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;}
.ip-card{display:flex;flex-direction:column;gap:8px;padding:clamp(22px,2.6vw,30px);border-radius:var(--radius-lg);
  background:var(--cream);border:1px solid var(--line);}
.ip-card-ic{flex:none;width:54px;height:54px;border-radius:16px;background:var(--beige-2);color:var(--green);display:grid;place-items:center;}
.ip-card .ip-card-ic{margin-bottom:10px;}
.ip-card h3{margin:0;font-size:19px;line-height:1.25;font-weight:700;color:var(--ink);}
.ip-card p{margin:0;font-size:14.5px;line-height:1.55;color:var(--ink-2);}
.ip-card .ip-card-text{white-space:pre-line;}
.ip-card-chat{padding:0;border:0;background:none;font:inherit;font-weight:700;color:var(--ink);cursor:pointer;transition:opacity .15s;}
.ip-card-chat:hover{opacity:.7;}
.ip-card.accent{background:#0E3D00;border-color:transparent;}
.ip-card.accent .ip-card-ic{background:rgba(249,242,219,.12);color:#F3EAD4;}
.ip-card.accent h3{color:#F9F2DB;}
.ip-card.accent p{color:rgba(249,242,219,.8);}

/* акции */
.ip-offers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
.ip-offer{display:flex;flex-direction:column;gap:10px;padding:clamp(22px,2.8vw,32px);border-radius:var(--radius-lg);
  background:var(--cream);border:1px solid var(--line);}
.ip-offer-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;}
.ip-pill{padding:5px 11px;border-radius:999px;background:var(--beige-2);color:var(--ink);
  font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;}
.ip-offer h3{margin:0;font-size:20px;line-height:1.25;font-weight:700;color:var(--ink);}
.ip-offer p{margin:0;font-size:14.5px;line-height:1.55;color:var(--ink-2);}
.ip-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:12px;}
.ip-meta>*{display:inline-flex;align-items:center;gap:7px;padding:8px 12px;border-radius:10px;background:var(--beige-2);
  color:var(--ink);font-size:13.5px;font-weight:600;text-decoration:none;}
.ip-meta>a{color:var(--ink);}
.ip-meta>a:hover{filter:brightness(.96);}
/* 30.09: три акции в одну строку, карточки одной сборки; −10% остается зеленой */
.ip-offers{grid-template-columns:repeat(3,minmax(0,1fr));}
.ip-offer.main{background:#0E3D00;border-color:transparent;position:relative;overflow:hidden;}
.ip-offer.main::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(circle at 0% 100%,rgba(243,234,212,.13),transparent 55%);}
.ip-offer.main>*{position:relative;}
.ip-offer-val{font-family:'Mulish',"Segoe UI",system-ui,-apple-system,sans-serif;font-weight:800;font-size:44px;
  line-height:54px;letter-spacing:-.045em;color:#F3EAD4;white-space:nowrap;}
.ip-offer.main .ip-pill{background:rgba(249,242,219,.14);color:#F3EAD4;}
.ip-offer.main h3{color:#F9F2DB;}
.ip-offer.main p{color:rgba(249,242,219,.8);}
.ip-offer.main .ip-meta>*{background:rgba(249,242,219,.1);color:#F9F2DB;}

/* призыв в конце страницы — светлый: сразу под ним зеленый подвал */
.ip-cta{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:22px 40px;padding:clamp(28px,4vw,48px);
  border-radius:var(--radius-lg);background:var(--cream);border:1px solid var(--line);margin-bottom:clamp(8px,1.5vw,20px);}
.ip-cta .ct-h2{margin:0 0 8px;}
.ip-cta p{margin:0;font-size:15.5px;line-height:1.55;color:var(--ink-2);max-width:52ch;}
.ip-cta .ct-btn{background:#0E3D00;color:#F3EAD4;}
.ip-cta-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px 18px;margin:0 0 10px;}
.ip-cta.inline .ip-cta-row .ct-h2{margin:0;}
.ip-cta.inline .ct-btn{flex:none;}
.ip-offers-sec{margin-top:clamp(18px,2.4vw,28px);}

/* частые вопросы (доставка): заголовок слева, список справа */
.ct-page .faq-block{max-width:none;margin:clamp(48px,6vw,80px) 0 0;padding:0;border:0;display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:16px clamp(28px,4vw,56px);align-items:start;}
.ct-page .faq-block h2{font-family:'Mulish',"Segoe UI",system-ui,-apple-system,sans-serif;font-weight:700;font-size:clamp(28px,3vw,38px);
  line-height:1.05;letter-spacing:-.015em;color:var(--ink);margin:0;position:sticky;top:calc(var(--topbar-h,64px) + 20px);}
.ct-page .faq-list{background:var(--cream);}

/* доставка: карта и зоны под своим заголовком */
.ip-del-main{margin-top:0;}

/* о нас */
.ip-about-hero{margin-top:18px;}
.ip-about-head{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:18px clamp(28px,5vw,72px);align-items:end;
  padding:clamp(10px,2vw,26px) 0 clamp(22px,3vw,36px);}
.ip-kicker{display:inline-block;margin-bottom:14px;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);}
.ip-about-head .ct-title{margin:0;color:var(--ink);}
.ip-about-head .ct-lead{margin-bottom:20px;color:var(--ink-2);}
.ip-about-head .ct-btn,.ip-route{background:#0E3D00;color:#F3EAD4;}
/* 29.09: в две колонки текст справа начинается вровень с заголовком, а не с «О НАС» над ним */
@media (min-width:981px){
  .ip-about-head{row-gap:0;}
  .ip-about-head>div:first-child{display:contents;}
  .ip-about-head .ip-kicker{grid-column:1;grid-row:1;justify-self:start;}
  .ip-about-head .ct-title{grid-column:1;grid-row:2;align-self:start;}
  .ip-about-head>div:last-child{grid-column:2;grid-row:2;align-self:start;padding-top:4px;}
}
.ip-about-photo{display:block;width:100%;aspect-ratio:2/1;object-fit:cover;object-position:50% 2%;border-radius:var(--radius-lg);}
.ct-menu-photo.ip-portrait{aspect-ratio:4/5;max-height:640px;}
.ip-prose p{margin:0 0 14px;font-size:16px;line-height:1.65;color:var(--ink-2);max-width:60ch;}
.ip-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:22px;border-top:1px solid var(--line-2);}
.ip-stat{display:flex;flex-direction:column;gap:6px;padding:18px 16px 18px 0;border-bottom:1px solid var(--line-2);color:inherit;text-decoration:none;}
.ip-stat:nth-child(even){padding-left:22px;border-left:1px solid var(--line-2);}
.ip-stat b{font-family:'Mulish',"Segoe UI",system-ui,-apple-system,sans-serif;font-weight:400;font-size:clamp(28px,3vw,40px);
  line-height:1;letter-spacing:-.02em;color:var(--green);font-variant-numeric:tabular-nums;}
.ip-stat span{font-size:14px;color:var(--ink-2);}
a.ip-stat:hover span{color:var(--ink);}
.ip-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
.ip-gallery img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius-lg);}
.ip-kitchens{display:grid;gap:14px;}
.ip-kitchen{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:18px;align-items:center;padding:clamp(20px,2.6vw,28px);
  border-radius:var(--radius-lg);background:var(--cream);border:1px solid var(--line);}
.ip-kitchen h3{margin:0 0 4px;font-size:20px;font-weight:700;color:var(--ink);}
.ip-kitchen-body p{margin:0;font-size:14.5px;line-height:1.5;color:var(--ink-2);}
.ip-kitchen-body p.ip-kitchen-note{margin-top:6px;font-size:13.5px;color:var(--ink-3);}
/* 29.09: кухня + призыв одним блоком — текст слева, фото справа */
.ip-visit{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);border-radius:var(--radius-lg);overflow:hidden;
  background:var(--cream);border:1px solid var(--line);margin-bottom:clamp(8px,1.5vw,20px);}
.ip-visit:not(:has(.ip-visit-photo)){grid-template-columns:1fr;}
.ip-visit-body{display:flex;flex-direction:column;align-items:flex-start;padding:clamp(26px,4vw,52px);}
.ip-visit .ip-kicker{margin-bottom:10px;}
.ip-visit .ct-h2{margin:0 0 10px;}
.ip-visit-lead{margin:0 0 22px;font-size:16px;line-height:1.55;color:var(--ink-2);max-width:44ch;}
.ip-visit-facts{list-style:none;margin:0 0 28px;padding:0;display:grid;gap:12px;}
.ip-visit-facts li{display:flex;align-items:flex-start;gap:12px;font-size:15px;line-height:1.45;color:var(--ink);}
.ip-visit-facts svg{flex:none;margin-top:1px;color:var(--ink-3);}
.ip-visit-btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto;}
.ip-visit-btns .ct-btn{background:#0E3D00;color:#F3EAD4;}
.ip-visit-btns .ct-btn.ip-btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--line-2);}
.ip-visit-btns .ct-btn.ip-btn-ghost:hover{background:var(--line);filter:none;}
.ip-visit-photo{display:block;width:100%;height:100%;min-height:360px;object-fit:cover;object-position:70% 25%;}
@media (max-width:760px){
  .ip-visit{grid-template-columns:1fr;}
  .ip-visit-photo{order:-1;min-height:0;height:auto;aspect-ratio:16/10;object-position:65% 15%;}
  .ip-visit-btns{width:100%;}
  .ip-visit-btns .ct-btn{flex:1 1 auto;}
}

@media (max-width:980px){
  .ip-offers{grid-template-columns:1fr;}
  .ip-about-head{grid-template-columns:1fr;align-items:start;}
  .ct-page .faq-block{grid-template-columns:1fr;}
  .ct-page .faq-block h2{position:static;}
}
@media (max-width:760px){
  .ip-offers{grid-template-columns:1fr;}
  .ip-gallery{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:72%;overflow-x:auto;scroll-snap-type:x mandatory;
    scrollbar-width:none;}
  .ip-gallery::-webkit-scrollbar{display:none;}
  .ip-gallery img{scroll-snap-align:start;}
  .ip-kitchen{grid-template-columns:44px minmax(0,1fr);}
  .ip-route{grid-column:1/-1;}
  .ip-about-photo{aspect-ratio:4/3;object-position:50% 30%;}
}
@media (max-width:640px){
  .ct-hero.ip-hero-short{min-height:0;}
  .ct-hero.ip-hero-clear .ct-title,.ct-hero.ip-hero-clear .ct-lead{text-shadow:0 1px 3px rgba(9,18,3,.75),0 0 14px rgba(9,18,3,.6),0 0 30px rgba(9,18,3,.4);}
  .ip-about-hero{margin-top:10px;}
  .ip-cta .ct-btn{flex:1 1 auto;}
}
/* ============= /ИНФО-СТРАНИЦЫ ============= */

/* CARD FADE 2026-09-28 — состав без троеточия: текст сверстан целиком, видна
   одна строка, ее конец гаснет фейдом. При наведении высота растет до полного
   состава тем же ходом, что и КБЖУ (.32s ease, задержка .12s), фейд уезжает
   вправо за край — строка не перескакивает раньше анимации. */
.pc8 .pc-sub{
  display:block;-webkit-line-clamp:none;overflow:hidden;height:1.38em;interpolate-size:allow-keywords;
  -webkit-mask:linear-gradient(#000,#000) 0 0/100% calc(100% - 1.38em) no-repeat,
    linear-gradient(to right,#000 calc(100% - 64px),transparent) 100% 100%/calc(100% + 64px) 1.38em no-repeat;
  mask:linear-gradient(#000,#000) 0 0/100% calc(100% - 1.38em) no-repeat,
    linear-gradient(to right,#000 calc(100% - 64px),transparent) 100% 100%/calc(100% + 64px) 1.38em no-repeat;
  transition:height .32s ease,max-height .32s ease,-webkit-mask-position .32s ease,mask-position .32s ease;
}
@supports not (interpolate-size:allow-keywords){
  .pc8 .pc-sub{height:auto;max-height:1.38em;}
}
@media (hover:hover) and (pointer:fine) and (min-width:901px){
  .card.pc8:hover .pc-sub,.card.pc8:focus-within .pc-sub{
    -webkit-line-clamp:none;height:auto;max-height:calc(1.38em * 8);
    -webkit-mask-position:0 0,0 100%;mask-position:0 0,0 100%;transition-delay:.12s;
  }
  .cart-topup .card.pc8:hover .pc-sub,.cart-topup .card.pc8:focus-within .pc-sub{
    height:1.38em;max-height:1.38em;-webkit-mask-position:0 0,100% 100%;mask-position:0 0,100% 100%;
  }
}
@supports not (interpolate-size:allow-keywords){
  .card.pc8:hover .pc-sub,.card.pc8:focus-within .pc-sub{height:auto;}
}

/* TEXT HALO 2026-09-28 — при раскрытии текст поднимается на пеструю часть фото:
   вокруг букв тонкий темный ореол, появляется тем же ходом, что и раскрытие. */
.pc8 .pc-panel{transition:text-shadow .32s ease;}
@media (hover:hover) and (pointer:fine) and (min-width:901px){
  .card.pc8:hover .pc-panel,.card.pc8:focus-within .pc-panel{
    text-shadow:0 0 5px rgba(18,14,4,.45),0 1px 12px rgba(18,14,4,.35);transition-delay:.12s;
  }
}

/* ============================================================ LOGIN SHEET 2026-09-28
   Окно входа (loginModal.jsx), правки Stan 28.09:
   - телефон (≤640px): шторка от нижнего края во всю ширину, язычок, стянуть вниз —
     закрыть; над клавиатурой iOS поднимается на --login-kb (visualViewport);
   - список стран на телефоне — своя шторка, начали листать — на весь экран;
   - подсказки «В прошлый раз вход был через …» нет нигде;
   - ошибка — плашкой под полем, «подождите N с» — отсчетом на кнопке;
   - шаг кода: плашка «куда ушел код» с «Изменить», внизу «Не пришел код?» кнопками
     (для SMS — еще и WhatsApp / Telegram на выбор);
   - вход по email (код на почту), почта после регистрации — для входа без SMS.
   Шире 640px — окно по центру, те же шаги. */

/* ── общее для всех ширин ── */
.login-grab{display:none;}
.login-error{margin:-6px 0 12px;padding:9px 12px;border-radius:10px;background:rgba(192,57,43,.08);color:#C0392B;font-size:13px;font-weight:600;line-height:1.4;}
.has-error .phone-field,.has-error .field-stack-input{border-color:#C0392B;}
.otp-box.error,.otp-box.error:focus{border-color:#C0392B;}
.login-alt{display:flex;width:100%;height:48px;align-items:center;justify-content:center;gap:8px;margin-top:12px;border:1px solid var(--line-2);border-radius:13px;font-weight:700;font-size:14px;color:var(--ink);background:transparent;}
.login-alt:hover,.login-alt:active{border-color:var(--green-deep);}
.login-skip-btn{display:block;margin:14px auto 0;padding:8px 16px;font-weight:700;font-size:14px;color:var(--ink-2);}
.login-notice{margin:-8px 0 14px;font-size:13px;color:var(--ink-2);text-align:center;}

.login-target{display:flex;align-items:center;gap:12px;margin:0 0 16px;padding:10px 8px 10px 12px;background:var(--paper);border:1px solid var(--line);border-radius:13px;}
.login-target-icons{display:flex;flex:none;}
.lt-ic{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;}
.lt-ic + .lt-ic{margin-left:-8px;box-shadow:0 0 0 2px var(--paper);}
.lt-ic svg{display:block;}
.lt-whatsapp svg,.lt-telegram svg{width:30px;height:30px;}
.lt-sms{background:#34C759 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M12 4c-4.97 0-9 3.13-9 7 0 2.2 1.3 4.16 3.33 5.44L5.5 20l4.04-2.2c.8.13 1.62.2 2.46.2 4.97 0 9-3.13 9-7s-4.03-7-9-7z'/%3E%3C/svg%3E") center/18px no-repeat;}
.lt-email{background:var(--green-deep);color:var(--beige-bg);}
.lt-email svg{width:18px;height:18px;}
.login-target-text{flex:1;min-width:0;font-size:13px;line-height:1.35;color:var(--ink-2);}
.login-target-text b{display:block;font-size:14.5px;font-weight:700;color:var(--ink);overflow-wrap:anywhere;}
.login-target-change{flex:none;padding:8px 6px;font-weight:700;font-size:13.5px;color:var(--ink);}

.login-resend{display:grid;gap:8px;margin-top:18px;}
.login-resend-label{font-size:13px;color:var(--ink-3);text-align:center;}
.login-resend-btns{display:flex;flex-wrap:wrap;gap:8px;}
.login-resend-btns button{flex:1 1 0;min-width:0;height:46px;display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line-2);border-radius:13px;background:transparent;font-weight:700;font-size:14px;color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums;}
.login-resend-btns:has(.via-whatsapp) button:first-child{flex-basis:100%;}
.login-resend-btns button:disabled{opacity:.55;}
.login-resend-btns button:not(:disabled):hover,.login-resend-btns button:not(:disabled):active{border-color:var(--green-deep);}

.cc-head{display:flex;align-items:center;border-bottom:1px solid var(--line);}
.cc-head .cc-search{flex:1;min-width:0;border-bottom:0;}
.cc-close{display:none;}

html[data-theme="dark"] .login-error{color:#f2b8b5;background:rgba(242,184,181,.1);}
html[data-theme="dark"] :is(.has-error .phone-field,.has-error .field-stack-input,.otp-box.error,.otp-box.error:focus){border-color:#f2b8b5;}

/* ── телефон: шторка ── */
@media (max-width:640px){
  .modal-backdrop.stack-top:has(.login-modal){align-items:end;padding:0 0 var(--login-kb,0px);overflow:hidden;}
  .modal-backdrop .login-modal{width:100%;max-height:calc(100dvh - 44px - var(--login-kb,0px));overflow-y:auto;overscroll-behavior:contain;
    border-radius:24px 24px 0 0;box-shadow:0 -12px 40px rgba(0,0,0,.22);transform:translateY(100%);transition:transform .28s cubic-bezier(.2,.8,.2,1);
    padding-bottom:env(safe-area-inset-bottom,0px);}
  .modal-backdrop.open .login-modal{transform:none;}
  .login-grab{display:block;position:sticky;top:0;height:22px;margin-bottom:-22px;z-index:2;}
  .login-grab::before{content:"";position:absolute;top:8px;left:50%;margin-left:-20px;width:40px;height:5px;border-radius:3px;background:var(--ink-3);opacity:.45;}
  .login-modal .modal-close,.login-modal .login-logo{display:none;}
  .login-modal .login-inner{padding:30px 20px 26px;}
  .login-modal .login-inner h3{text-align:left;font-size:24px;margin:0 0 4px;}
  .login-modal .login-inner .login-sub{text-align:left;margin:0 0 18px;max-width:none;}
  .login-modal .phone-field{margin:6px 0 12px;}
  .login-modal .login-or{margin:16px 0;}
  .login-modal .login-socials{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:10px;}
  .login-modal .login-socials .social-btn{width:auto;height:52px;}
  .login-modal .otp-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;}
  .login-modal .otp-row .otp-box{width:100%;min-width:0;height:60px;font-size:26px;}

  /* список стран — своя шторка поверх входа; начали листать — на весь экран */
  .login-modal .cc-pop{position:fixed;left:0;right:0;top:auto;bottom:var(--login-kb,0px);z-index:340;display:flex;flex-direction:column;
    height:min(62dvh,calc(100dvh - var(--login-kb,0px) - 24px));border-radius:20px 20px 0 0;border-width:1px 0 0;box-shadow:0 -12px 40px rgba(0,0,0,.28);
    padding-bottom:env(safe-area-inset-bottom,0px);transition:height .25s ease,border-radius .25s ease;}
  .login-modal .cc-pop.full{height:calc(100dvh - var(--login-kb,0px));border-radius:0;padding-top:env(safe-area-inset-top,0px);}
  .login-modal .cc-pop .cc-list{flex:1;max-height:none;overflow-y:auto;overscroll-behavior:contain;}
  .login-modal .cc-search{padding:16px;font-size:16px;}
  .login-modal .cc-close{display:grid;place-items:center;width:44px;height:44px;margin-right:6px;color:var(--ink-2);}
}

/* ============= СПОКОЙНЫЕ МЕТКИ + ШЕСТЕРЕНКА БЕЗ ОБВОДКИ 2026-09-29 ============= */
html:not([data-theme="dark"]) .dish-badge:not(.cz-off){filter:saturate(.6);}
.pz-gear{border:0;}
.pz-gear:not(.open){background:rgba(31,74,50,.06);}
.pz-gear:not(.open):hover{background:rgba(31,74,50,.11);}
html[data-theme="dark"] .pz-gear:not(.open){background:rgba(255,255,255,.07);}
html[data-theme="dark"] .pz-gear:not(.open):hover{background:rgba(255,255,255,.12);}

/* ===== ПОДАРОК КО ДНЮ РОЖДЕНИЯ (29.09) =====
   Дата в кабинете и на экране «Заказ принят», строка подарка в корзине. */
.bday-picker{margin:4px 0 0;}
.bday-row{display:flex;gap:8px;align-items:stretch;}
.bday-sel{flex:0 0 84px;min-width:0;height:40px;padding:0 10px;border-radius:12px;border:1px solid var(--line);background:#FBF6EA;color:var(--ink);font:inherit;font-size:14.5px;font-weight:600;cursor:pointer;}
.bday-sel-month{flex:1 1 auto;}
.bday-save{flex:none;height:40px;padding:0 16px;border-radius:12px;border:none;background:var(--accent);color:var(--accent-text);font:inherit;font-size:14px;font-weight:700;cursor:pointer;transition:opacity .14s;}
.bday-save:disabled{opacity:.4;cursor:default;}
.bday-err{margin:6px 0 0;font-size:12.5px;font-weight:600;color:var(--red,#C0392B);}
.acc-bday-lock{font-size:12px;font-weight:400;color:var(--ink-3);}
.acc-bday-status{margin:6px 0 0;font-size:13px;font-weight:600;color:var(--ink-2);}
.acc-bday-note{margin:6px 0 0;font-size:12px;line-height:1.45;color:var(--ink-3);}
.co-bday-ask{display:flex;flex-direction:column;gap:6px;margin:14px 0 0;padding:14px;border-radius:14px;border:1px solid var(--line);background:#FBF6EA;text-align:left;}
.co-bday-ask b{font-size:14.5px;color:var(--ink);}
.co-bday-sub{font-size:12.5px;line-height:1.45;color:var(--ink-2);}
.bday-item .bonus-code{letter-spacing:0;color:var(--ink-2);}
.bday-upsell{margin:2px 0 8px;padding:8px 12px;border-radius:12px;background:#FBF6EA;border:1px dashed var(--line-2);font-size:12.5px;line-height:1.4;font-weight:600;color:var(--ink-2);}
html[data-theme="dark"] :is(.bday-sel,.co-bday-ask,.bday-upsell){background:var(--paper);}
@media (max-width:420px){.bday-sel{flex-basis:72px;}.bday-save{padding:0 12px;}}

/* Аудит 25.09, п.70 (29.09): CLS первого экрана. Пустые карточки сторис до
   ответа сервера (размер — от .story-card-btn по брейкпоинтам) и высота меню,
   пока нет товаров: без нее первым экраном стоят SEO-текст и FAQ. */
.story-card-btn.story-skel{display:block;background:var(--line,rgba(0,0,0,.06));opacity:.5;cursor:default;pointer-events:none;}
#menu.menu-loading{min-height:120vh;}

/* Смена номера в кабинете (29.09, п.60 аудита) */
.acc-save-btn:disabled{opacity:.4;cursor:not-allowed;filter:none;}
.acc-cancel-link:disabled{opacity:.5;cursor:default;}
.acc-phone-edit .otp-error-msg{margin:-6px 0 12px;}
.acc-phone-done{margin:6px 0 4px;color:var(--green-deep);font-weight:600;}

/* ============================================================ ФИНАЛЬНАЯ ПОЛИРОВКА 2026-09-29
   Разбор 29.09 на 21 размере экрана (320…2560, альбомные телефоны, планшеты).
   Номера — пункты из разбора. Откат — styles.css.bak-polish-20260929. */

/* 1. Темная тема: подпись «Кухня откроется…» в выбранном слоте была светлой
   на кремовой плашке — цвет от --cream, чтобы переворачивался вместе с темой */
.cart-panel .co-time.active .ct-sub{color:color-mix(in srgb,var(--cream) 78%,transparent);}

/* 2. /delivery на 320px: карта раздувала колонку до 336px — горизонтальный скролл */
@media(max-width:900px){ .del-main{grid-template-columns:minmax(0,1fr);} }

/* 4. Полоса корзины на телефоне и альбомном телефоне; справа от нее — кнопка
   чата (пузырь Marichat в это время спрятан, mainPage.jsx applyChatHidden) */
.sticky-chat{display:none;}
@media (max-width:680px), (max-height:500px) and (pointer:coarse){
  .sticky-cart{position:fixed;left:12px;right:70px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:460;
    display:flex;align-items:center;justify-content:space-between;gap:12px;
    padding:13px 16px;border:none;border-radius:999px;background:var(--green-deep);
    color:var(--cream);font:inherit;box-shadow:var(--shadow-lg);cursor:pointer;}
  .sc-left{display:flex;align-items:center;gap:10px;}
  .sc-bag{position:relative;display:grid;place-items:center;}
  .sc-count{position:absolute;top:-6px;right:-8px;min-width:16px;height:16px;padding:0 4px;
    border-radius:999px;background:var(--cream);color:var(--ink);
    font-size:10.5px;font-weight:800;display:grid;place-items:center;}
  .sc-sum{font-size:15px;font-weight:700;}
  .sc-cta{display:inline-flex;align-items:center;gap:4px;font-size:14px;font-weight:700;}
  .sticky-chat{position:fixed;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:460;
    display:grid;place-items:center;width:48px;height:48px;padding:0;border:none;border-radius:999px;
    background:var(--green-deep);color:var(--cream);box-shadow:var(--shadow-lg);cursor:pointer;}
  .sticky-chat:active{transform:scale(.96);}
  body:has(.story-overlay) .sticky-chat{display:none;}
  .has-sticky .main-col{padding-bottom:76px;}
  html.has-sticky{--mc-lift:54px;}
}

/* 5. Нижний край телефона: пузыря над полосой больше нет — cookie во всю ширину.
   Переключатель aA (только песочница) — справа под шапкой, не на сумме корзины. */
@media(max-width:680px){
  html.has-sticky .cookie-bar{right:8px;}
  .cookie-bar{padding:7px 7px 7px 12px;}
  .cookie-text{font-size:11.5px;line-height:1.3;}
  #cs-panel{top:62px!important;bottom:auto!important;left:auto!important;right:8px!important;}
  #cs-panel .cs-list,#cs-panel .cs-tip{bottom:auto!important;top:46px!important;left:auto!important;right:0!important;}
}

/* 6. Шапка телефона: лупа и человечек (вход/кабинет — 30.09 Stan: одна из главных кнопок);
   «Связаться» — пузырь чата внизу. Вошедший — человечек зеленый */
@media(max-width:680px){
  .topbar .header-mid{display:flex;flex:none;margin-left:auto;align-self:center;}
  .topbar .header-mid .contact-chip{display:none;}
  .topbar .header-mid .user-menu-wrap{align-self:center;}
  .topbar .header-right{margin-left:4px;}
  .topbar .search-chip{width:44px;height:44px;}
  .topbar .header-mid .user-chip{width:44px;height:44px;padding:0!important;gap:0!important;margin:0;justify-content:center;}
  .topbar .header-mid .user-chip.logged .avatar{color:var(--green-deep);}
}

/* 7. Состав на карточке телефона — две строки, конец второй гаснет */
@media(max-width:680px){
  .pc8 .pc-sub{height:2.76em;}
  @supports not (interpolate-size:allow-keywords){ .pc8 .pc-sub{height:auto;max-height:2.76em;} }
}

/* 9. Окно блюда на телефоне — шторка снизу во всю ширину. 30.09: конструктор поке — такая же
   шторка, листается целиком (фото уезжает, список получает место), итог с кнопкой прилипает снизу */
@media(max-width:680px){
  .modal-backdrop:has(> .pm){align-items:end;padding:0;overflow:hidden;}
  .modal-backdrop > .modal.pm{width:100%;max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain;
    border-radius:24px 24px 0 0;transform:translateY(100%);transition:transform .28s cubic-bezier(.2,.8,.2,1);
    padding-bottom:env(safe-area-inset-bottom,0px);}
  .modal-backdrop.open > .modal.pm{transform:none;}
  .modal-backdrop > .modal.pm::before{content:"";position:absolute;top:8px;left:50%;margin-left:-20px;width:40px;height:5px;
    border-radius:3px;background:rgba(255,255,255,.75);box-shadow:0 1px 3px rgba(0,0,0,.25);z-index:5;}
  .modal-backdrop > .modal.pm .pm-foot{position:sticky;bottom:0;z-index:3;background:var(--beige-bg);}
  .modal-backdrop > .modal.pb .pm-body,.modal-backdrop > .modal.pb .pm-scroll{overflow:visible;min-height:auto;}
  .pm-cta-row .pm-add-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
}

/* 10. Уведомление «в корзине» на телефоне — над полосой корзины, а не поверх
   полосы категорий сверху */
@media (max-width:680px), (max-height:500px) and (pointer:coarse){
  html.has-sticky .catbar-toast{top:auto;bottom:calc(72px + env(safe-area-inset-bottom));transform:translate(-50%,6px) scale(.97);}
  html.has-sticky .catbar-toast.show{transform:translate(-50%,0) scale(1);}
}

/* 11. 560–680px (большие телефоны, складные): три колонки вместо двух по 290px */
@media(min-width:560px) and (max-width:680px){
  .grid{grid-template-columns:repeat(3,minmax(0,1fr));}
}

/* 12. Альбомный телефон: сторис компактные, как на телефоне, — иначе первый
   экран целиком занят ими */
@media (max-height:500px) and (pointer:coarse) and (min-width:681px){
  .stories-section{padding-top:6px;padding-bottom:2px;}
  .stories-rail{padding-top:6px;padding-bottom:8px;}
  .story-card-btn{flex:0 0 116px;width:116px;height:150px;aspect-ratio:auto;max-width:none;border-radius:18px;}
  .scb-title{font-size:14px;left:10px;right:10px;bottom:10px;}
}

/* 13. Ноутбуки (высота окна до 960px): сторис по высоте окна, ширина по пропорции карточки,
   лента листается (было «все в ряд» — 13 сторис сжимались до 118 px, подпись по слову в строке);
   первый ряд блюд виден на первом экране */
@media (min-width:681px) and (max-height:960px) and (min-height:501px){
  .story-card-btn{flex:0 0 auto;min-width:0;width:auto;max-width:none;aspect-ratio:1/1.275;height:clamp(150px,24vh,300px);}
  .scb-title{font-size:clamp(15px,2.3vh,20px);left:14px;right:14px;bottom:14px;}
  .stories-rail{padding-top:10px;padding-bottom:8px;}
}

/* 14. Колонки: 4 уже с 1024px (было 3 по 317px), 5 с 1280px (было 4 до 1860) */
@media(min-width:1024px) and (max-width:1080px){ .grid{grid-template-columns:repeat(4,minmax(0,1fr));} }
@media(min-width:1280px){ .grid{--cols:5;} }

/* 15. Блюдо в корзине: у «− 1 +» места мало — вес прячется, цена не режется */
@media(max-width:1080px){ .card.pc8.in-cart .pc-w{display:none;} }

/* 16. 960–1080px: город и часы в шапке возвращаются, «Связаться» — иконкой */
@media(min-width:960px) and (max-width:1080px){
  .topbar:not(.scrolled) .hi-block{display:flex;padding:0 10px;font-size:13px;}
  .topbar .contact-chip-label{display:none;}
}

/* 18. Допы в корзине: цена или «бесплатно» */
.extra-paid{flex:none;font-size:12.5px;font-weight:600;color:var(--ink-2);white-space:nowrap;margin-right:6px;}
.extra-paid.extra-free{font-weight:500;color:var(--ink-3);text-transform:lowercase;}

/* 20. Кнопка корзины в шапке не мигает зеленым при загрузке */
.cart-chip{transition:none;}

/* 21. Пока фото карточки грузится — бежевый под цвет фона фотографий, а не серый */
.card.pc8 .photo{background:linear-gradient(180deg,#e6ccab,#cfae88);}

/* 22. Мелкие подписи: «от» у сборного поке и «Нет в наличии» */
.pc8 .pc-from{font-size:max(11px,.62em);}
.pc8 .card-tag.soldout{font-size:12px;}

/* 23. Регистр (Stan 29.09): заголовки строчными. Названия блюд, адрес точки, название ресторана на карте
   и шторка меню слева вверху — как в данных, с заглавной. Подписи капсом (.footer-col h4, .pb-group-head h3,
   .ct-fact h3 и т.п.) заданы классом и перебивают это правило. */
h1,h2,h3,h4,.scb-title{text-transform:lowercase;}
.pm-body h1.pm-title,.pb-head h2,.map-modal-head h3,.ip-visit .ct-h2{text-transform:none;}

/* 24. Персональные данные (30.09, GDPR/ZZPL): плашка cookie с выбором, галочка акций во входе и
   оформлении, ссылки на политику, удаление аккаунта, страница /privacy. */
.cookie-bar{flex-wrap:wrap;max-width:420px;}
.cookie-text{flex:1 1 220px;}
.cookie-text a,.login-privacy a,.co-privacy a{color:var(--ink);font-weight:700;text-decoration:none;}
.cookie-btns{display:flex;gap:8px;flex:none;}
.cookie-min{flex:none;background:none;border:1px solid var(--line-2);color:var(--ink);font-weight:600;padding:8px 14px;border-radius:10px;font-size:13px;}
.cookie-min:hover{border-color:var(--ink-2);}
.cookie-note{display:block;margin-top:5px;font-size:.9em;color:var(--ink-3);}
.optin{display:flex;align-items:flex-start;gap:10px;font-size:13px;line-height:1.4;color:var(--ink-2);cursor:pointer;text-align:left;}
.optin input{flex:none;width:18px;height:18px;margin:1px 0 0;accent-color:var(--green-deep);}
.login-legal{margin-top:16px;display:flex;flex-direction:column;gap:10px;}
.login-privacy,.co-privacy{margin:0;font-size:12px;line-height:1.4;color:var(--ink-2);text-align:left;}
.co-optin{margin-top:14px;}
.co-privacy{margin-top:10px;}
.ft2-legal-links{display:flex;flex-wrap:wrap;gap:6px 16px;margin-right:auto;margin-left:20px;}
.ft2-legal-links a,.ft2-legal-links button{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;text-decoration:none;}
.ft2-legal-links a:hover,.ft2-legal-links button:hover{color:var(--cream);}
.acc-delete-link{display:block;margin:6px auto 0;background:none;border:0;font-size:12.5px;color:var(--ink-2);font-weight:600;text-decoration:none;cursor:pointer;}
.acc-delete{margin-top:10px;padding:14px;border:1px solid rgba(192,57,43,.35);border-radius:12px;font-size:13.5px;line-height:1.45;color:var(--ink);}
.acc-delete p{margin:0 0 10px;}
.acc-delete-err{color:var(--red,#C0392B);font-weight:600;}
.acc-delete-btns{display:flex;gap:8px;}
.acc-delete-yes{flex:1;padding:10px;border-radius:10px;background:#C0392B;color:#fff;font-weight:700;border:0;}
.acc-delete-no{flex:1;padding:10px;border-radius:10px;background:none;border:1px solid var(--line-2);color:var(--ink);font-weight:600;}
.acc-delete-yes:disabled,.acc-delete-no:disabled{opacity:.6;}
.pp-page{max-width:760px;margin:0 auto;padding:clamp(24px,4vw,48px) 0 clamp(40px,6vw,72px);color:var(--ink);}
.pp-title{font-family:'Mulish',"Segoe UI",system-ui,-apple-system,sans-serif;font-weight:700;font-size:clamp(30px,4vw,44px);line-height:1.05;margin:0 0 14px;}
.pp-lead{margin:0 0 6px;font-size:16px;line-height:1.5;color:var(--ink-2);}
.pp-updated{margin:0;font-size:13px;color:var(--ink-2);}
.pp-sec{margin-top:clamp(28px,4vw,40px);scroll-margin-top:90px;}
.pp-sec h2{font-family:'Mulish',"Segoe UI",system-ui,-apple-system,sans-serif;font-weight:700;font-size:clamp(20px,2.2vw,24px);margin:0 0 12px;}
.pp-sec p,.pp-sec li{font-size:15px;line-height:1.6;color:var(--ink-2);}
.pp-sec p{margin:0 0 10px;}
.pp-sec ul{margin:0;padding-left:20px;}
.pp-sec li{margin:0 0 6px;}
.pp-sec a,.pp-link{color:var(--ink);font-weight:700;text-decoration:none;}
.pp-link{background:none;border:0;padding:0;font:inherit;cursor:pointer;}
html[data-theme="dark"] .pp-sec a,html[data-theme="dark"] .pp-link{color:var(--cream);}
@media (max-width:640px){
  .cookie-bar{padding:10px 10px 10px 12px;}
  .cookie-btns{width:100%;}
  .cookie-btns button{flex:1;}
  .ft2-legal{flex-wrap:wrap;}
  .ft2-legal-links{order:3;width:100%;margin:4px 0 0;}
  .pp-page{padding-left:16px;padding-right:16px;}
}

/* ============================================================ CATEGORY GAP PHONE 2026-09-30
   Телефон: промежутки между категориями меньше — над меню 17 → 12 px,
   в шапке после прокрутки 13 → 10 px. */
@media(max-width:680px){
  .catbar .cats-row:has(.cat-text){gap:12px;}
  .header-cats .cats-row:has(.cat-text){gap:10px;}
}

/* ============================================================ CARD NAME/PRICE 2026-09-30
   Цена того же размера, что и название (отличается только жирностью); объем
   из хвоста названия — рядом с ценой, виден и на телефоне (в отличие от веса);
   название в две строки, если не влезает — конец второй строки гаснет фейдом
   (класс clip ставит productCard.jsx), вместо троеточия. */
.pc8 .pc-price{font-size:17px;}
.pc8 .pc-vol{font-size:12.5px;font-weight:500;letter-spacing:0;margin-left:7px;color:color-mix(in srgb,var(--cream) 72%,transparent);}
.pc8 .name{display:block;-webkit-line-clamp:none;max-height:calc(1.22em * 2);overflow:hidden;}
.pc8 .name.clip{
  -webkit-mask:linear-gradient(#000,#000) 0 0/100% calc(100% - 1.22em) no-repeat,
    linear-gradient(to right,#000 calc(100% - 56px),transparent) 0 100%/100% 1.22em no-repeat;
  mask:linear-gradient(#000,#000) 0 0/100% calc(100% - 1.22em) no-repeat,
    linear-gradient(to right,#000 calc(100% - 56px),transparent) 0 100%/100% 1.22em no-repeat;
}
@media(max-width:1080px){ .card.pc8.in-cart .pc-vol{display:none;} }
@media(max-width:680px){
  .pc8 .pc-price{font-size:15px;}
  .pc8 .pc-vol{font-size:12px;margin-left:6px;}
}
.cart-topup .pc8 .pc-price{font-size:13.5px;}
.cart-topup .pc8 .pc-vol{display:none;}
/* самовывоз как зона: полоса из одной ячейки «Бесплатно» не шире ячейки зон */
.zrow-pickup .zp-bar{max-width:120px;}
/* значок настройки блюда — ползунки вместо шестеренки: при наведении ручки меняются местами */
.pz-gear:hover .pz-ic-gear{transform:scaleX(-1);}

/* ============= КАРТА ДОСТАВКИ: РЕДИЗАЙН 2026-09-30 =============
   На компьютере карта по высоте списка зон; подложка приглушена, чтобы зоны
   читались; свои кнопки, метка кухни и буквы зон (deliveryMap.jsx). */
@media (min-width:901px){
  .del-map{align-self:stretch;position:relative;top:auto;}
  .del-map-frame{flex:1 1 auto;aspect-ratio:auto;min-height:420px;}
}
.del-map-frame{border-radius:var(--radius-lg);border:1px solid var(--line);box-shadow:var(--shadow-sm);background:#ebe5d6;}
.del-map-frame [class*="-ground-pane"]{filter:grayscale(.92) sepia(.14) brightness(1.05) contrast(.88);}
html[data-theme="dark"] .del-map-frame [class*="-ground-pane"]{filter:invert(1) hue-rotate(180deg) grayscale(.9) brightness(.82) contrast(.9);}
.dm-state{position:absolute;inset:0;display:grid;place-items:center;background:var(--beige-2,#efe7d4);color:var(--ink-3);
  font-size:13px;font-weight:600;text-align:center;padding:16px;}
.dm-ctrls{position:absolute;top:12px;right:12px;z-index:3;display:flex;flex-direction:column;gap:6px;}
.dm-ctrls.is-full{position:fixed;z-index:100001;top:16px;right:16px;}
.dm-btn{width:38px;height:38px;padding:0;border-radius:12px;border:1px solid var(--line);background:var(--paper);color:var(--ink);
  display:grid;place-items:center;cursor:pointer;box-shadow:0 2px 8px rgba(20,16,4,.14);transition:background .14s;}
.dm-btn:hover{background:var(--cream);}
.dm-btn-full{margin-top:4px;}
.dm-label{width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:8px;display:grid;place-items:center;background:var(--zone);color:#fff;
  font:800 14px/1 'Mulish',system-ui,sans-serif;box-shadow:0 0 0 2px rgba(255,255,255,.92),0 2px 6px rgba(0,0,0,.25);pointer-events:none;}
.dm-kitchen{display:flex;align-items:center;gap:8px;transform:translate(-20px,-20px);white-space:nowrap;}
.dm-kitchen-pin{width:40px;height:40px;flex:none;border-radius:50%;background:#0E3D00;color:#F3EAD4;display:grid;place-items:center;
  box-shadow:0 0 0 3px #F3EAD4,0 4px 12px rgba(0,0,0,.3);}
.dm-kitchen-txt{display:flex;flex-direction:column;background:var(--paper);color:var(--ink);border-radius:10px;padding:5px 10px;
  font:600 12px/1.25 'Mulish',system-ui,sans-serif;box-shadow:0 2px 8px rgba(20,16,4,.18);}
.dm-kitchen-txt b{font-weight:800;font-size:13px;}
.del-map-frame .ymaps-2-1-79-hint{background:var(--paper);color:var(--ink);border:0;border-radius:9px;padding:6px 10px;
  box-shadow:0 3px 12px rgba(20,16,4,.2);font:700 12.5px/1.3 'Mulish',system-ui,sans-serif;}
.zrow{transition:box-shadow .15s;}
.zrow.is-hot{box-shadow:0 0 0 2px color-mix(in srgb,var(--zone) 60%,transparent),var(--shadow-sm);}

/* 30.09: плашка cookie выезжает из левого угла и после выбора уезжает обратно влево */
@keyframes cookie-in{from{transform:translateX(calc(-100% - 24px));}to{transform:none;}}
@keyframes cookie-out{from{transform:none;opacity:1;}to{transform:translateX(calc(-100% - 24px));opacity:.4;}}
.cookie-bar{animation:cookie-in .5s cubic-bezier(.22,1,.36,1) .5s both;}
.cookie-bar.leaving{animation:cookie-out .36s cubic-bezier(.55,0,.75,.3) both;pointer-events:none;}
@media (prefers-reduced-motion:reduce){.cookie-bar,.cookie-bar.leaving{animation:none;}}

/* 30.09: подзаголовок обложки страниц — перенос строки из текста (оплата: доставка / самовывоз) */
.ct-lead{white-space:pre-line;}

/* 30.09: «Частые вопросы» — своя страница /faq; на главной остался только SEO-текст, во всю ширину */
.info-split.solo{grid-template-columns:minmax(0,1fr);}
.info-split.solo .seo-text .seo-body{max-width:none;}
.faq-page .faq-block{max-width:none;margin:22px 0 0;padding:0;border:0;}
.faq-page .faq-item summary{padding:16px 20px;font-size:16px;}
.faq-page .faq-a{padding:0 20px 18px;}
.faq-page .faq-item .faq-a p{font-size:15px;line-height:1.6;}
.faq-more{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin-top:26px;color:var(--ink-2);font-size:15px;}
.faq-more-btn{display:inline-flex;align-items:center;height:44px;padding:0 20px;border:0;border-radius:999px;background:var(--accent);color:var(--accent-text);font:inherit;font-weight:700;cursor:pointer;}
.faq-more-btn:hover{filter:brightness(1.12);}
@media(max-width:560px){.faq-page .faq-item summary{padding:14px 16px;font-size:15px;}.faq-page .faq-a{padding:0 16px 16px;}}

/* ============================================================ IN-APP
   30.09: страница внутри приложения Miami (site/appBridge.js ставит html.in-app
   по User-Agent «MiamiApp/» или ?app=1). Меню, шапку и навигацию приложение
   рисует само — здесь видны только корзина/оформление и окна входа, кабинета,
   адреса, сборного поке, все на весь экран. Крестик входа, кабинета и поке — у
   приложения (свой верхний ряд), крестик корзины не нужен — внизу вкладки. */
html.in-app,html.in-app body{background:var(--beige-bg);}
.in-app :is(.topbar,.promise-strip,.stories-section,.shell,.drawer,.drawer-scrim,.cookie-bar,.chat-fab,.sticky-cart,.footer){display:none!important;}
.in-app .cart-panel-scrim{display:none;}
.in-app .cart-panel{width:100vw;box-shadow:none;animation:none;}
.in-app .cart-panel-mode .cart-panel-close,.in-app .co-head .cart-panel-close:last-child{display:none;}
.in-app .modal-backdrop{padding:0 0 var(--login-kb,0px)!important;background:var(--beige-bg)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  align-items:stretch!important;justify-items:stretch!important;overflow-y:auto!important;transition:none;}
.in-app .modal-backdrop > .modal{width:100%!important;max-width:none!important;min-height:100%;max-height:none!important;border-radius:0!important;box-shadow:none!important;transform:none!important;transition:none;}
.in-app .modal-backdrop > .modal.pm,.in-app .modal-backdrop > .modal.account-modal{height:100%!important;max-height:100%!important;}
.in-app .modal-backdrop > .modal.pm::before,.in-app .login-grab{display:none!important;}
.in-app :is(.login-modal,.account-modal,.pm) .modal-close{display:none!important;}
