/* ---------- Фирменный шрифт Gotham Pro (лицензия клиента) ---------- */
@font-face{font-family:'Gotham Pro';src:url('fonts/gothampro.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Gotham Pro';src:url('fonts/gothampro_medium.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Gotham Pro';src:url('fonts/gothampro_bold.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Gotham Pro';src:url('fonts/gothampro_black.ttf') format('truetype');font-weight:900;font-style:normal;font-display:swap}

/* ============================================================
   Serikov Coffee — общие стили сайта
   Токены сняты с утверждённого макета Figma (Frame 409)
   и сверены с брендбуком (docs/BRAND-RULES.md)
   ============================================================ */
:root{
  /* Зелёные */
  --green-deep:#205b28;      /* футер, тёмные плоскости */
  --green-deep-2:#22612b;
  --green:#009144;           /* кнопки, акценты */
  --green-bright:#00904c;
  --green-brand:#00723b;      /* брендбук */
  --green-pale:#d9f2dd;      /* фон шкал вкуса, подложки */
  /* Акценты */
  --teal:#00a8bc;
  --teal-2:#019db0;
  --orange:#f47920;
  --orange-2:#f36d0c;
  --yellow:#f7ab01;
  --yellow-2:#fdb913;
  --crimson:#9c1c3c;
  --crimson-2:#ab1a40;
  --bordo:#861e22;           /* тёмно-красный из палитры */
  --cart:#8b2628;            /* кнопка «В корзину»: заливка .pbtn и btn-cart.svg */
  /* Плитка — как в примерах заказчика (Ligastore, Lemana): белая карточка,
     еле заметная линия и мягкая тень вместо жирной цветной обводки. */
  --tile-line:#ececE8;
  --tile-shadow:0 1px 2px rgba(20,40,20,.04), 0 8px 24px rgba(20,40,20,.06);
  --tile-shadow-hover:0 2px 4px rgba(20,40,20,.06), 0 16px 36px rgba(20,40,20,.10);
  /* Нейтральные */
  --ink:#1a1a1a;
  --ink-soft:#4d4d4d;
  --line:#e4e4e0;
  --bg:#ffffff;
  --bg-soft:#f4f6f3;
  /* Геометрия */
  --r-sm:8px; --r:12px; --r-md:20px; --r-lg:36px; --r-xl:52px;
  --shadow:0 4px 18px rgba(20,30,20,.07);
  --shadow-lift:0 12px 34px rgba(20,30,20,.13);
  --ease:cubic-bezier(.22,1,.36,1);
  --font:'Gotham Pro','Montserrat',system-ui,-apple-system,sans-serif;
  --font-ui:'Geologica','Montserrat',system-ui,sans-serif;
  --font-display:'Gotham Pro','Oswald',sans-serif;
  --wrap:1280px;
  /* Единый масштаб макета. Макет нарисован под 1440 и на реальных
     экранах читается крупно, поэтому базовый коэффициент 0.9 и плавное
     уменьшение на узких окнах. Крупнее/мельче — меняется здесь одним числом. */
  --u: clamp(.70px, .0556vw, .8px);
  /* Ширина контентной колонки. Хотите уже поля по бокам — увеличьте число.
     1640 при масштабе .8 даёт колонку 1312px. */
  --wrap-w: calc(1640 * var(--u));
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--font);font-size:16px;line-height:1.55;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
input,select,textarea{font-family:inherit;font-size:16px}
.wrap{max-width:var(--wrap-w);margin:0 auto;padding:0 16px;width:100%}
@media(min-width:768px){.wrap{padding:0 28px}}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--teal);outline-offset:2px;border-radius:6px}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ---------- Шапка (макет Figma: Frame 409 + Frame 316) ----------
   Контейнер 1440 · плашка 1360×64, radius 20
   Логотип 144×77 выступает за плашку
   Кнопка «Меню» и поиск — рисованные фигуры наискось (SVG из макета)
   Справа три иконки, слово ПОД иконкой · корзина бордовая #8b2628
------------------------------------------------------------------ */
#site-header{position:sticky;top:0;z-index:100}
.site-head{background:transparent;padding:calc(14 * var(--u)) 0 calc(12 * var(--u));will-change:transform;transition:transform .42s var(--ease),box-shadow .3s ease}
.site-head.is-hidden{transform:translateY(-102%)}
.site-head.is-stuck .head-inner{background:rgba(255,255,255,.78);box-shadow:0 10px 30px rgba(20,40,20,.14)}
@media(prefers-reduced-motion:reduce){.site-head{transition:none}}
.head-plate{max-width:var(--wrap-w);margin:0 auto;padding:0 calc(24 * var(--u))}
.head-inner{position:relative;height:calc(64 * var(--u));display:flex;align-items:center;gap:calc(16 * var(--u));
  padding:0 calc(22 * var(--u)) 0 calc(20 * var(--u));border-radius:calc(22 * var(--u));
  background:rgba(255,255,255,.62);backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%);
  border:1px solid rgba(255,255,255,.7);box-shadow:0 6px 26px rgba(20,40,20,.10)}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .head-inner{background:#fff}}
@media(max-width:1100px){.head-plate{padding:0 16px}.head-inner{height:auto;padding:10px 0;flex-wrap:wrap}}

/* логотип */
.hd-logo{flex-shrink:0;display:block;line-height:0;margin-right:calc(16 * var(--u))}
.hd-logo img{width:calc(144 * var(--u));height:auto;max-height:calc(78 * var(--u));object-fit:contain}
@media(max-width:1100px){.hd-logo img{width:112px}}

/* «Меню» — рисованная плашка из макета (наискось) */
.hd-cat{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;gap:calc(10 * var(--u));
  width:calc(160 * var(--u));height:calc(50 * var(--u));background:url(img/hd-shape-btn.svg?v=2) no-repeat center/100% 100%;
  color:#f5f5f5;font-family:var(--font);font-weight:500;font-size:calc(18 * var(--u));letter-spacing:.01em;
  white-space:nowrap;transition:transform .18s var(--ease),filter .18s ease}
.hd-cat:hover{transform:translateY(-1px);filter:brightness(1.08)}
/* ---- мега-меню: каталог на виду, служебное убрано внутрь ---- */
.hd-menu{position:static}
.hd-cat.is-open{filter:brightness(1.12)}
.hd-drop{position:absolute;left:0;right:0;top:calc(100% + 10px);z-index:120;
  background:#fff;border:1px solid var(--line);border-radius:calc(24 * var(--u));
  box-shadow:0 22px 54px rgba(20,40,20,.20);overflow:hidden;
  animation:mmIn .28s cubic-bezier(.22,1,.36,1)}
@keyframes mmIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.hd-drop[hidden]{display:none}
.hd-drop-in{display:grid;gap:0}
@media(min-width:900px){.hd-drop-in{grid-template-columns:minmax(0,1fr) calc(286 * var(--u))}}

/* каталог */
.hd-cat-cols{display:grid;gap:calc(26 * var(--u));padding:calc(26 * var(--u)) calc(30 * var(--u))}
@media(min-width:620px){.hd-cat-cols{grid-template-columns:repeat(3,minmax(0,1fr))}}
.hd-cat-col{display:flex;flex-direction:column;gap:calc(9 * var(--u))}
.hd-cat-h{font-family:var(--font);font-weight:900;font-size:calc(19 * var(--u));text-transform:uppercase;
  color:var(--green-deep-2);letter-spacing:-.01em;margin-bottom:calc(4 * var(--u));transition:color .15s}
.hd-cat-h:hover{color:var(--green-brand)}
.hd-cat-col a:not(.hd-cat-h){font-weight:500;font-size:calc(16 * var(--u));line-height:1.25;color:var(--ink);
  transition:color .15s,transform .15s}
.hd-cat-col a:not(.hd-cat-h):hover{color:var(--green-brand);transform:translateX(3px)}

/* служебная колонка */
.hd-drop-side{display:flex;flex-direction:column;gap:calc(9 * var(--u));
  padding:calc(26 * var(--u)) calc(30 * var(--u));background:var(--bg-soft);border-left:1px solid var(--line)}
@media(max-width:899px){.hd-drop-side{border-left:0;border-top:1px solid var(--line)}}
.hd-drop-cap{font-family:var(--font);font-weight:900;font-size:calc(13 * var(--u));text-transform:uppercase;
  letter-spacing:.05em;color:var(--green-brand)}
.hd-drop-cap.gap{margin-top:calc(14 * var(--u))}
.hd-drop-side a{font-weight:500;font-size:calc(15 * var(--u));line-height:1.25;color:var(--ink-soft);transition:color .15s}
.hd-drop-side a:hover{color:var(--green-brand)}
.hd-drop-tel{margin-top:auto;padding-top:calc(16 * var(--u));font-family:var(--font);
  font-weight:700;font-size:calc(19 * var(--u));color:var(--green-deep-2)!important;white-space:nowrap}
.hd-drop a.is-here{color:var(--green-brand);font-weight:700}
@media(max-width:620px){.hd-drop{left:calc(-16 * var(--u));right:calc(-16 * var(--u))}
  .hd-cat-cols,.hd-drop-side{padding:calc(20 * var(--u)) calc(22 * var(--u))}}
.hd-cat-ico{width:calc(18 * var(--u));height:calc(13 * var(--u));flex-shrink:0;margin-top:1px}

/* поиск — рисованная обводка из макета (наискось) */
.hd-search{flex:1;min-width:0;max-width:calc(860 * var(--u));display:flex;align-items:center;gap:calc(10 * var(--u));height:calc(50 * var(--u));
  padding:0 calc(24 * var(--u));background:url(img/hd-shape-search.svg?v=2) no-repeat center/100% 100%}
.hd-search input{flex:1;border:none;outline:none;background:none;font-family:var(--font);font-weight:500;font-size:calc(16 * var(--u));color:var(--ink);min-width:0}
.hd-search input::placeholder{color:var(--green-brand);opacity:1}
.hd-search-ico{width:calc(18 * var(--u));height:calc(18 * var(--u));flex-shrink:0}

/* правый блок: иконка сверху, слово под ней */
/* margin-left:auto прижимает иконки к правому краю плашки:
   без него они липли к полю поиска, а справа оставалась пустота. */
.hd-right{display:flex;align-items:flex-start;gap:calc(24 * var(--u));flex-shrink:0;margin-left:auto}
.hd-ico{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;
  color:var(--green-deep-2);font-family:var(--font);font-weight:500;font-size:calc(16 * var(--u));line-height:1;
  white-space:nowrap;transition:opacity .15s}
.hd-ico:hover{opacity:.72}
.hd-ico.cart{color:#8b2628}
.hd-ico .cnt{position:absolute;top:-7px;right:-4px;font-family:var(--font);font-weight:900;font-size:13px;color:#8b2628}
@media(max-width:1100px){
  .hd-right{gap:16px;order:2;margin-left:auto;align-items:center}
  .hd-ico span:not(.cnt){display:none}
  .hd-search{order:3;flex-basis:100%;max-width:none;height:48px;padding:0 18px}
  .hd-search input{font-size:16px}
  .hd-cat{width:132px;height:46px;font-size:16px;order:1}
}

/* ---------- Хлебные крошки и заголовок страницы ---------- */
.crumbs{padding:18px 0 0;font-size:13px;color:var(--ink-soft)}
.crumbs a:hover{color:var(--green)}
.crumbs span{opacity:.5;margin:0 6px}
.page-head{padding:14px 0 26px}
.page-head h1{font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:clamp(28px,4.4vw,46px);line-height:1.05}
.page-head h1 em{font-style:normal;color:var(--green)}
.page-head .lead{margin-top:10px;color:var(--ink-soft);max-width:640px;font-size:15.5px}

/* ---------- Кнопки ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-weight:800;font-size:15px;padding:15px 26px;border-radius:var(--r);min-height:52px;transition:background .2s,transform .15s,box-shadow .2s}
.btn:active{transform:scale(.98)}
.btn-green{background:var(--green);color:#fff}
.btn-green:hover{background:var(--green-bright)}
.btn-bordo{background:var(--bordo);color:#fff}
.btn-bordo:hover{background:#6f181c}
.btn-ghost{background:#fff;color:var(--ink);border:1.5px solid var(--line)}
.btn-ghost:hover{border-color:var(--green);color:var(--green)}

/* ---------- Подвал — отдельный фрейм Figma «footer» 1440×319 ----------
   Рваный зелёный край #22612b (SVG 1440×276, снизу)
   Узор-шеврон белым 3% (SVG 1440×319)
   Колонки по макету: лого 82 · ссылки 373 · каталог 575 · лицам 790 · телефоны 1112
   Ссылки Gotham Pro Bold 14 · телефоны Medium 22 · копирайт Bold 10 (y=276)
----------------------------------------------------------------------- */
.site-foot{position:relative;padding:0 0 calc(26 * var(--u));margin-top:64px;
  min-height:calc(319 * var(--u));color:#fff;font-family:var(--font);overflow:hidden}
/* Зелёная заливка с рваным краем раньше была фиксированной высоты и
   висела у нижней кромки. Подвал теперь растёт по содержимому, поэтому
   тянем заливку от той же линии до самого низа — иначе верхние ссылки
   оказывались на белом фоне и пропадали. */
.site-foot .ft-shape{position:absolute;left:0;right:0;top:calc(43 * var(--u));bottom:0;height:auto;
  background:url(img/foot-shape.svg) no-repeat center bottom/100% 100%;pointer-events:none}
.site-foot .ft-wave{position:absolute;inset:0;z-index:1;
  background:url(img/foot-wave.svg) no-repeat center/100% 100%;pointer-events:none}

.ft-in{position:relative;z-index:2;max-width:var(--wrap-w);margin:0 auto;padding:calc(78 * var(--u)) calc(82 * var(--u)) 0;
  display:grid;grid-template-columns:calc(291 * var(--u)) calc(202 * var(--u)) calc(215 * var(--u)) calc(322 * var(--u)) 1fr;align-items:start}
.ft-logo{display:block;line-height:0}
.ft-logo img{width:calc(223 * var(--u));height:auto}

.ft-col{list-style:none;margin-top:18px}
.ft-col li{list-style:none;line-height:0}
.ft-col a{display:block;font-weight:700;font-size:14px;line-height:17px;color:#fff;transition:opacity .15s}
.ft-col a:hover{opacity:.72}
.ft-col.c1 a{margin-bottom:7px}
.ft-col.c2 a{margin-bottom:11px}
.ft-col.c3{margin-top:18px}
.ft-col.c3 p{font-weight:700;font-size:14px;line-height:17px;margin:0 0 10px}
.ft-col.c3 a{display:inline;font-weight:700;line-height:17px}
.ft-col.c3 .cap{font-weight:500;text-transform:uppercase;letter-spacing:.01em}
.ft-col.c3 .gap{margin-top:35px}
.ft-col.c3 p:nth-child(4){margin-bottom:5px}

.ft-tel{margin-top:18px}
.ft-tel a{display:block;font-weight:500;font-size:calc(22 * var(--u));line-height:22px;margin-bottom:24px;color:#fff;white-space:nowrap;transition:opacity .15s}
.ft-tel a:hover{opacity:.8}

.ft-legal{position:relative;top:auto;z-index:2;max-width:var(--wrap-w);margin:0 auto;
  padding:calc(34 * var(--u)) calc(82 * var(--u)) 0;
  display:flex;flex-wrap:wrap;gap:4px 46px;font-weight:700;font-size:10px;line-height:1.4;color:#fff}

@media(max-width:1200px){
  .site-foot{height:auto;padding-bottom:34px}
  /* рваный край — отдельной полосой сверху, дальше сплошная заливка */
  .site-foot::before{content:'';position:absolute;left:0;right:0;top:0;height:34px;z-index:0;
    background:url(img/foot-shape.svg) no-repeat center top/1440px auto}
  .site-foot .ft-shape{top:26px;bottom:0;height:auto;background:var(--green-deep-2)}
  .site-foot .ft-wave{inset:26px 0 0;background:url(img/foot-wave.svg) repeat center top/1440px auto}
  .ft-in{grid-template-columns:1fr 1fr 1fr;gap:26px;padding:56px 28px 0}
  .ft-logo{grid-column:1/-1}
  .ft-logo img{width:190px}
  .ft-col,.ft-col.c3,.ft-tel{margin-top:0}
  .ft-legal{position:static;padding:26px 28px 0;margin-top:0}
}
@media(max-width:700px){
  .ft-in{grid-template-columns:1fr 1fr;padding:46px 18px 0;gap:22px}
  .ft-logo img{width:160px}
  .ft-tel{grid-column:1/-1}
  .ft-tel a{font-size:20px;margin-bottom:14px}
  .ft-legal{padding:22px 18px 0;font-size:11px;gap:4px 20px}
}

/* ---------- Плавающая поддержка ---------- */
.fab{position:fixed;right:16px;bottom:16px;z-index:120;display:flex;align-items:center;gap:9px;background:#25d366;color:#fff;font-weight:800;font-size:14px;padding:14px 18px;border-radius:999px;box-shadow:0 8px 24px rgba(0,0,0,.22);transition:transform .2s}
.fab:hover{transform:scale(1.04)}
@media(max-width:560px){.fab span{display:none}.fab{padding:15px}}

/* ---------- Юридические (текстовые) страницы ---------- */
.doc{max-width:820px;padding-bottom:20px}
.doc .updated{display:inline-block;background:var(--green-pale);color:var(--green-deep);font-size:13px;font-weight:700;padding:8px 14px;border-radius:999px;margin-bottom:24px}
.doc h2{font-family:var(--font-display);font-weight:700;text-transform:uppercase;font-size:20px;line-height:1.2;margin:32px 0 12px;color:var(--green-deep)}
.doc h2:first-of-type{margin-top:0}
.doc p{margin-bottom:12px;color:var(--ink-soft);font-size:15.5px;line-height:1.65}
.doc ul{margin:0 0 14px 0;padding-left:20px}
.doc li{margin-bottom:8px;color:var(--ink-soft);font-size:15.5px;line-height:1.6}
.doc .req{background:var(--bg-soft);border-radius:var(--r-md);padding:22px 24px;margin-top:34px}
.doc .req b{display:block;margin-bottom:10px;color:var(--ink);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.04em;font-size:15px}
.doc .req p{margin-bottom:6px;font-size:14.5px}
.doc-nav{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:30px}
.doc-nav a{font-size:13.5px;font-weight:700;padding:10px 16px;border-radius:999px;background:var(--bg-soft);transition:background .2s}
.doc-nav a:hover{background:var(--green-pale);color:var(--green-deep)}
.doc-nav a.on{background:var(--green);color:#fff}

/* ---------- Появление блоков ---------- */
.rv{opacity:0;transform:translateY(24px);transition:opacity .6s var(--ease),transform .7s var(--ease)}
.rv.in{opacity:1;transform:none}


/* ============================================================
   ГЛАВНАЯ СТРАНИЦА — перенос макета Figma (Frame 409)
   Сетка: контейнер 1440, контент 1360 (padding 40).
   Секции: hero-баннер, 4 карточки-входа, бегущая строка,
   «Хиты обжарки», квиз «Подберём кофе за минуту».
   ============================================================ */
.mac{max-width:var(--wrap-w);margin:0 auto;padding:0 calc(24 * var(--u))}
@media(max-width:1100px){.mac{padding:0 16px}}

/* ---------- HERO: баннеры заказчика ----------
   Раньше главный экран был собран из кусков — фон, декор, вырезанный
   человек и текст, который менялся по таймеру. Теперь показываем готовые
   баннеры бренда как есть: в них уже своя типографика и своя композиция,
   поверх ничего не рисуем.

   Пропорция дорожки равна пропорции баннера (1900×814), поэтому картинка
   ложится без обрезки на любой ширине. Ничего не теряется — но и на
   телефоне баннер остаётся широкой полосой: под мобильные нужны свои
   версии, они запрошены у заказчика.
------------------------------------------------------------------------ */
.hero-b{position:relative;padding:0;margin-top:8px;border-radius:36px;overflow:hidden;
  background:var(--green-deep-2);isolation:isolate}
/* РАЗМЕР БАННЕРА ЗАФИКСИРОВАН: 2560×800, пропорция 3.2:1.
   Картинка другой пропорции обрежется по центру — намеренно, чтобы
   ошибка в размерах была видна сразу и её починили в макете, а не
   подгоняли вёрсткой. Нужны две версии: десктоп 2560×800 и мобильная
   1080×1080, вторая пока не сделана. */
.hero-track{position:relative;aspect-ratio:2560 / 800}
.hero-slide{position:absolute;inset:0;display:block;opacity:0;pointer-events:none;
  transition:opacity .6s ease}
.hero-slide.on{opacity:1;pointer-events:auto}
.hero-slide img{display:block;width:100%;height:100%;object-fit:cover}

/* Заголовок страницы держим текстом: на баннере он нарисован, а поиску и
   скринридеру нужен настоящий h1. */
.vh{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}

.hero-nav{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);
  display:flex;justify-content:space-between;padding:0 calc(18 * var(--u));z-index:8;
  pointer-events:none}
.hero-nav button{width:calc(44 * var(--u));height:calc(44 * var(--u));border-radius:50%;
  color:#fff;background:rgba(0,0,0,.22);display:flex;align-items:center;justify-content:center;
  pointer-events:auto;cursor:pointer;border:0;opacity:.85;
  transition:opacity .2s,background .2s,transform .2s}
.hero-nav button:hover{opacity:1;background:rgba(0,0,0,.38);transform:scale(1.08)}

.hero-dots{position:absolute;left:50%;transform:translateX(-50%);bottom:calc(18 * var(--u));
  display:flex;gap:calc(10 * var(--u));z-index:8}
.hero-dots i{width:calc(30 * var(--u));height:calc(6 * var(--u));border-radius:999px;
  background:rgba(255,255,255,.45);cursor:pointer;transition:background .25s,width .3s}
.hero-dots i.on{background:#fff;width:calc(46 * var(--u))}

@media(max-width:900px){
  /* Пока нет мобильной версии баннера — берём более высокий кадр из того же
     файла, обрезая бока: полоса 3.2:1 на телефоне складывается в 117 px. */
  .hero-track{aspect-ratio:16 / 10}
  .hero-b{border-radius:20px;margin-top:4px}
  .hero-nav{display:none}
  .hero-dots{bottom:8px;gap:6px}
  .hero-dots i{width:20px;height:4px}
  .hero-dots i.on{width:30px}
}
@media(prefers-reduced-motion:reduce){
  .hero-slide{transition:none}
}

/* ---------- 4 карточки-входа (Frame 316: ровные, r32, 322×400) ----------
   На десктопе — аккордеон: наведённая карточка расширяется, соседние
   поджимаются, у наведённой снизу выезжает описание и кнопка.
   Текст не переверстывается: заголовок в одну строку с плавной сменой
   кегля, описание фиксированной ширины.
------------------------------------------------------------------------ */
.entries{display:grid;gap:24px;margin-top:22px}
@media(min-width:1000px){.entries{grid-template-columns:repeat(4,1fr)}}
@media(min-width:620px) and (max-width:999px){.entries{grid-template-columns:1fr 1fr}}
.entry{position:relative;aspect-ratio:322/400;min-height:300px;border-radius:32px;overflow:hidden;
  display:block;padding:calc(32 * var(--u)) calc(27 * var(--u)) 0;transition:transform .4s var(--ease),box-shadow .4s ease}
.entry:hover{transform:translateY(-6px);box-shadow:0 20px 44px rgba(20,40,20,.2)}
.entry .wave{position:absolute;inset:-20%;z-index:0;pointer-events:none;opacity:.45;
  background:url(img/foot-wave.svg) no-repeat center/cover}
.entry h3{position:relative;z-index:3;font-family:var(--font);font-weight:700;text-transform:uppercase;
  font-size:calc(32 * var(--u));line-height:1.08;letter-spacing:-.03em}
.entry ul{list-style:none;margin-top:24px;position:relative;z-index:3}
.entry li{font-weight:500;font-size:calc(16 * var(--u));line-height:1.5;display:flex;gap:10px;align-items:baseline;margin-bottom:9px}
.entry li::before{content:'';width:5px;height:5px;border-radius:50%;background:currentColor;flex:none;transform:translateY(-4px)}
.entry .pic{position:absolute;z-index:1;pointer-events:none;transition:transform .5s var(--ease)}
.entry .pic img{width:100%;height:auto;display:block}
.entry:hover .pic{transform:scale(1.04)}
/* позиции фото — 1:1 с макетом (проценты от 322×400) */
.e-home  .pic{left:-3.1%;top:19.5%;width:104%}
.e-biz   .pic{left:21.7%;top:37.3%;width:88.5%}
.e-quiz  .pic{left:2.2%; top:41.3%;width:95.3%}
.e-where .pic{left:-6.2%;top:38.3%;width:112.4%}
.e-biz{background:#fdb913;color:var(--green-deep-2)}
.e-home{background:#f47920;color:#fff}
.e-quiz{background:#00a8bc;color:#fff}
.e-where{background:#a71e40;color:#fff}
/* выезжающая подпись — по умолчанию скрыта */
.entry .more{position:absolute;left:0;right:0;bottom:0;z-index:4;padding:56px 27px 26px;
  background:linear-gradient(to top,rgba(12,32,14,.74) 0%,rgba(12,32,14,.55) 46%,rgba(12,32,14,0) 100%);
  color:#fff;opacity:0;transform:translateY(16px);pointer-events:none;
  transition:opacity .4s ease,transform .6s cubic-bezier(.3,.7,.2,1)}
.entry .more-t{display:block;width:330px;max-width:100%;font-weight:500;font-size:15px;line-height:1.5}
.entry .more-b{display:inline-flex;align-items:center;gap:9px;margin-top:16px;background:#fff;
  color:var(--green-deep-2);font-family:var(--font);font-weight:700;font-size:15px;
  padding:12px 20px;border-radius:999px;white-space:nowrap}
@media(max-width:999px){.entry{aspect-ratio:auto;height:400px;padding:26px 22px 0}.entry h3{font-size:26px}.entry li{font-size:15px}}

/* аккордеон — только там, где есть настоящее наведение курсором */
@media(min-width:1000px) and (hover:hover){
  .entries{display:flex}
  .entry{flex:1 1 0;min-width:0;height:calc(400 * var(--u));aspect-ratio:auto;
    transition:flex-grow .7s cubic-bezier(.3,.7,.2,1),filter .45s ease,
               box-shadow .45s ease,border-radius .5s ease}
  .entry:hover{transform:none}

  /* Разъезд заметный: наведённая карточка почти вдвое шире соседней,
     остальные уходят на второй план и цветом, и кеглем заголовка. */
  .entries:hover .entry{flex-grow:.78}
  .entries .entry:hover{flex-grow:2.1;box-shadow:0 28px 60px rgba(20,40,20,.28);z-index:2}
  .entries:hover .entry:not(:hover){filter:saturate(.72) brightness(.9)}

  .entry h3{white-space:nowrap;transition:font-size .5s cubic-bezier(.3,.7,.2,1),
    letter-spacing .5s ease}
  .entries:hover .entry:not(:hover) h3{font-size:calc(23 * var(--u));letter-spacing:-.04em}
  .entries .entry:hover h3{font-size:calc(36 * var(--u))}

  /* Список пунктов у поджатых карточек мешает читать заголовок — убираем. */
  .entry ul{transition:opacity .35s ease}
  .entries:hover .entry:not(:hover) ul{opacity:.35}

  .entries .entry:hover .more{opacity:1;transform:none;transition-delay:.12s}
  .entries .entry:hover .pic{transform:scale(1.06)}
  .entries:hover .entry:not(:hover) .pic{transform:scale(.94)}
}


/* ---------- бегущая строка (макет: 1985×73, наклон 1,72°) ---------- */
.ticker-wrap{overflow:hidden;margin-top:44px;padding:16px 0}
.ticker{background:var(--green-brand);color:#fff;height:calc(73 * var(--u));display:flex;align-items:center;overflow:hidden;
  width:124%;margin-left:-12%;transform:rotate(-1.72deg)}
.ticker-t{display:flex;white-space:nowrap;width:max-content;animation:tick 38s linear infinite}
.ticker-t span{font-family:var(--font);font-weight:700;font-size:calc(22 * var(--u));text-transform:uppercase;padding:0 20px}
@keyframes tick{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.ticker-t{animation:none}}
@media(max-width:700px){.ticker{height:56px}.ticker-t span{font-size:16px}}


/* ---------- ХИТЫ ОБЖАРКИ ---------- */
.hits{padding-top:70px;padding-bottom:20px}
.hits-head{display:flex;align-items:flex-start;justify-content:space-between;gap:32px;flex-wrap:wrap;margin-bottom:44px}
.hits-all{font-family:var(--font);font-weight:700;font-size:calc(20 * var(--u));text-transform:uppercase;color:var(--green-brand);padding-bottom:14px;background:url(img/underline-catalog.svg) no-repeat left bottom/188px auto;white-space:nowrap}
.hits-ttl{text-align:right;flex:1;min-width:300px}
.hits-ttl h2{font-family:var(--font);font-weight:900;text-transform:uppercase;font-size:calc(48 * var(--u));line-height:1.02;letter-spacing:-.01em}
.hits-ttl h2 em{font-style:normal;color:var(--green-brand)}
.hits-ttl p{margin-top:12px;font-size:15px;color:#010101}
@media(max-width:820px){.hits-ttl{text-align:left}.hits-ttl h2{font-size:30px}.hits{padding-top:44px}}

.pgrid{display:grid;gap:20px}
@media(min-width:1040px){.pgrid{grid-template-columns:repeat(4,1fr)}}
@media(min-width:620px) and (max-width:1039px){.pgrid{grid-template-columns:1fr 1fr}}
.pcard{position:relative;background:#fff;border:1px solid var(--tile-line);border-radius:36px;padding:22px 20px 24px;display:flex;flex-direction:column;transition:transform .35s var(--ease),box-shadow .35s ease}
.pcard:hover{transform:translateY(-5px);box-shadow:0 16px 36px rgba(20,40,20,.13)}
/* Обводка карточки — в цвет кнопки «В корзину». Классы c1..c4 раздаются
   по кругу и раньше давали четыре разных цвета; оставляем их в разметке,
   чтобы не переписывать шаблоны, но цвет теперь один. */
.pcard.c1,.pcard.c2,.pcard.c3,.pcard.c4{border-color:var(--tile-line)}
.ptags{position:absolute;top:calc(16 * var(--u));left:calc(16 * var(--u));display:flex;flex-direction:column;gap:calc(6 * var(--u));align-items:flex-start;z-index:3}
.ptag{font-family:var(--font);font-weight:700;font-size:calc(11.5 * var(--u));padding:calc(6 * var(--u)) calc(12 * var(--u));border-radius:999px;line-height:1;text-transform:uppercase;letter-spacing:.02em}
.t-milk{background:var(--yellow-2);color:#000}
.t-hit{background:#891c1e;color:#fff}
.t-rare{background:#00a8bc;color:#fff}
.t-black{background:#000;color:#fff}
.pcard .pimg{height:calc(236 * var(--u));display:flex;align-items:center;justify-content:center;margin:6px 0 18px;position:relative;z-index:1}
.pcard .pimg img{max-height:100%;max-width:100%;object-fit:contain;transition:transform .45s var(--ease)}
.pcard:hover .pimg img{transform:scale(1.06)}
.pcard h3{font-family:var(--font);font-weight:900;font-size:calc(20 * var(--u));text-transform:uppercase;color:var(--green-deep-2);line-height:1.2}
.pcard .pdesc{font-weight:500;font-size:15px;color:#4d4d4d;margin-top:9px;line-height:1.45;flex:1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.scales4{margin-top:16px;display:flex;flex-direction:column;gap:9px}
.sc{display:flex;align-items:center;gap:12px;font-weight:500;font-size:15px;color:#000}
.sc .nm{flex:none;white-space:nowrap;min-width:calc(78 * var(--u))}
.sc .bars{display:flex;gap:5px;margin-left:auto}
.sc i{width:17px;height:9px;border-radius:5px;background:var(--green-pale)}
.sc i.on{background:var(--green-deep-2)}
.pw{display:flex;gap:10px;margin-top:18px}
.pw button{font-weight:500;font-size:15px;padding:9px 20px;border-radius:12px;border:1.5px solid var(--green-deep-2);color:var(--green-deep-2);background:#fff;transition:all .18s}
.pw button.on{background:var(--green-deep-2);color:#fff}
.pbuy{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:20px}
.pprice{font-family:var(--font);font-weight:900;font-size:calc(20 * var(--u));color:var(--green-deep-2);line-height:1.25}
.pprice small{display:block;font-family:var(--font-ui);font-weight:400;font-size:15px;color:#000;margin-top:3px}
/* Фирменная форма со скосом — у ЛЮБОЙ кнопки .pbtn, а не только у тех,
   которым дописали отдельное правило. Прямоугольник со скруглением
   макету не соответствует. */
/* .pbtn описан ниже, в общем правиле формы кнопок. */
@media(max-width:1039px){.pcard{border-radius:28px}.pcard .pimg{height:200px}}

/* ---------- ТЕСТ «Подберём кофе за минуту» ----------
   Перенос Figma Frame 405 (файл XxbJXTBouifhaQr5F4y50H):
   • шапка 48/Black + подводка 15/Regular;
   • слева колонка 325×400: шаг 20/Bold #0c723b, вопрос 24/Black,
     чашка 269×281 (наполняется по шагам) и прогресс из 3 сегментов;
   • справа три карточки 325×400 r36: цветной верх с иконкой,
     белая панель с большим скруглением 120px, номер в кружке,
     заголовок 20/Black #22612b, описание 15/Medium #4c4c4c,
     круглая стрелка 52px #246231;
   • помол определяется автоматически по ответу на 2-й вопрос.
----------------------------------------------------- */
.quizsec{position:relative;padding:80px 0 64px;overflow:hidden}

/* шапка */
.quiz-head{position:relative;z-index:3;max-width:520px}
.quiz-head h2{font-family:var(--font);font-weight:900;text-transform:uppercase;font-size:calc(48 * var(--u));line-height:1.1;letter-spacing:-.01em}
.quiz-head h2 em{font-style:normal;color:var(--green-brand);display:block}
.quiz-head .sub{margin-top:16px;font-size:15px;line-height:1.3;max-width:391px;color:#000}

/* декор за карточками */
.quiz-deco{position:absolute;left:50%;top:0;width:1440px;height:731px;margin-left:-720px;z-index:0;pointer-events:none}
.quiz-deco{transition:opacity .6s ease}
.quizsec.is-done .quiz-deco{opacity:.32}
.quiz-deco img{position:absolute;max-width:none}
.quiz-deco .d-orn{left:790px;top:44px;height:620px;opacity:.95}
.quiz-deco .d-man{left:750px;top:-40px;height:700px}
@media(max-width:1439px){.quiz-deco{left:auto;right:-120px;margin-left:0;width:760px}
  .quiz-deco .d-orn{left:80px;top:40px;height:520px}.quiz-deco .d-man{left:40px;top:-30px;height:580px}}
@media(max-width:1100px){.quiz-deco{display:none}}

/* сетка блока: 325 слева, карточки справа */
.quiz-row{position:relative;z-index:3;display:grid;gap:20px;margin-top:44px}
@media(min-width:1040px){.quiz-row{grid-template-columns:calc(325 * var(--u)) minmax(0,1fr)}}

/* ---- левая колонка ---- */
.quiz-aside{width:100%;max-width:calc(325 * var(--u))}
@media(min-width:1040px){.quiz-aside{position:relative;height:calc(400 * var(--u))}
  /* полоска прижата к низу колонки — ровно на уровне нижней границы карточек */
  .q-prog{position:absolute;left:0;right:0;bottom:0;margin-top:0}}
.q-step{display:block;font-family:var(--font);font-weight:700;font-size:calc(20 * var(--u));text-transform:uppercase;color:#0c723b}
.q-title{font-family:var(--font);font-weight:900;font-size:calc(24 * var(--u));line-height:1.3;text-transform:uppercase;color:#000;margin-top:10px;height:calc(56 * var(--u))}
.q-cup{height:calc(282 * var(--u));margin-top:6px;display:flex;align-items:flex-end;justify-content:center}
.q-cup img{height:100%;width:auto;max-width:100%;object-fit:contain;
  animation:cupIn .55s cubic-bezier(.22,1,.36,1)}
@keyframes cupIn{from{opacity:0;transform:translateY(14px) scale(.94)}to{opacity:1;transform:none}}
.q-prog{display:flex;align-items:center;gap:4px;margin-top:14px;padding-left:38px}
.q-prog i{width:59px;height:8px;border-radius:200px;background:#d9d9d9;flex:none;transition:background .45s var(--ease)}
.q-prog i.done{background:#0c723b}
.q-prog i.on{width:67px;height:16px;border-radius:0;background:url(img/q-progress-on.svg) no-repeat left center/67px 16px;margin-left:-8px}
.q-prog i.on + i{margin-left:-4px}

/* ---- карточки-ответы ---- */
.quiz-main{position:relative;min-height:400px}
.qcards{display:grid;gap:20px;transition:opacity .22s ease,transform .38s var(--ease)}
.qcards[hidden]{display:none}
.qcards.is-out{opacity:0;transform:translateY(12px)}
.qcards.is-in{opacity:1;transform:none}
@media(min-width:760px){.qcards{grid-template-columns:repeat(3,1fr)}}
.qc{position:relative;height:calc(400 * var(--u));border-radius:36px;overflow:hidden;display:block;text-align:left;
  transition:transform .35s var(--ease),box-shadow .35s ease}
.qc:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(20,40,20,.18)}
.qc.a1{--c:#f47920;background:var(--c)}
.qc.a2{--c:#a71e40;background:var(--c)}
.qc.a3{--c:#00a8bc;background:var(--c)}
/* обводка цвета карточки поверх белой панели — Frame 405 */
.qc::after{content:'';position:absolute;inset:0;border-radius:36px;pointer-events:none;z-index:4;
  border:calc(4 * var(--u)) solid var(--c)}
.qc .qc-pat{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.6;z-index:0}
.qc .qc-ico{position:absolute;left:50%;top:8.5%;transform:translateX(-50%);height:34.5%;width:auto;z-index:2;
  transition:transform .45s var(--ease)}
.qc:hover .qc-ico{transform:translateX(-50%) scale(1.06)}
/* белая панель шире карточки (в макете 420 при карточке 325) — даёт пологую дугу сверху */
.qc .qc-panel{position:absolute;left:-17.5%;right:-17.5%;bottom:0;top:52%;background:#fff;
  border-radius:120px 120px 0 0;z-index:3}
.qc .qc-num{position:absolute;left:calc(22 * var(--u));top:43.5%;width:calc(51 * var(--u));height:calc(51 * var(--u));border-radius:50%;background:#fff;
  display:flex;align-items:center;justify-content:center;z-index:5}
.qc .qc-num i{width:88%;height:88%;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-family:var(--font);font-weight:700;font-size:calc(28 * var(--u));font-style:normal;color:#fff}
.qc.a1 .qc-num i{background:#f36d0c}
.qc.a2 .qc-num i{background:#9c1c3c}
.qc.a3 .qc-num i{background:#019db0}
.qc .qc-txt{position:absolute;left:calc(20 * var(--u));top:55.5%;width:calc(100% - 40 * var(--u));z-index:5}
.qc .qc-t{display:block;
  font-family:var(--font);font-weight:900;font-size:calc(20 * var(--u));text-transform:uppercase;color:#22612b;line-height:1.3}
.qc .qc-d{display:block;margin-top:8px;
  font-weight:500;font-size:15px;line-height:1.55;color:#4c4c4c}
.qc .qc-go{position:absolute;left:auto;right:calc(20 * var(--u));bottom:calc(20 * var(--u));width:calc(52 * var(--u));height:calc(52 * var(--u));border-radius:50%;background:#246231;
  display:flex;align-items:center;justify-content:center;z-index:5;transition:transform .25s var(--ease)}
.qc .qc-go img{width:22px;height:22px}
.qc:hover .qc-go{transform:translateX(4px)}
.qc.picked{outline:3px solid #246231;outline-offset:3px}
.qc.picked .qc-go{transform:translateX(4px) scale(1.08)}

/* ---- результат ---- */
.qresult{position:relative;z-index:3}
.qresult[hidden]{display:none}
@keyframes qrIn{from{opacity:0;transform:translateY(26px) scale(.97)}to{opacity:1;transform:none}}
@keyframes qrLead{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.qr-lead{font-weight:500;font-size:16px;line-height:1.55;max-width:660px;opacity:0;animation:qrLead .5s var(--ease) .06s forwards}
.qr-grind{display:inline-flex;align-items:center;gap:10px;margin-top:14px;background:var(--green-pale);
  color:var(--green-deep-2);font-weight:700;font-size:15px;padding:11px 18px;border-radius:999px;
  opacity:0;animation:qrLead .5s var(--ease) .14s forwards}
.qr-grind b{font-weight:900}
.qr-grid{display:grid;gap:16px;margin-top:22px}
@media(min-width:760px){.qr-grid{grid-template-columns:1fr 1fr}}
.qr-card{display:grid;grid-template-columns:118px minmax(0,1fr);gap:18px;align-items:center;background:#fff;
  border:1px solid var(--tile-line);box-shadow:var(--tile-shadow);border-radius:24px;padding:16px 18px;
  opacity:0;animation:qrIn .62s cubic-bezier(.22,1,.36,1) forwards}
.qr-card:nth-child(1){animation-delay:.24s}
.qr-card:nth-child(2){animation-delay:.38s}
.qr-img{display:flex;align-items:center;justify-content:center}
.qr-img img{max-width:100%;height:auto;transition:transform .45s var(--ease)}
.qr-card:hover .qr-img img{transform:scale(1.05)}
.qr-body h4{font-family:var(--font);font-weight:900;font-size:19px;text-transform:uppercase;color:var(--green-deep-2)}
.qr-body p{font-weight:500;font-size:14px;color:#4d4d4d;margin-top:6px;line-height:1.45}
.qr-w{display:flex;gap:8px;margin-top:12px}
.qr-w button{font-weight:500;font-size:14px;padding:7px 16px;border-radius:11px;background:#fff;
  border:1.5px solid var(--green-deep-2);color:var(--green-deep-2);transition:all .18s}
.qr-w button.on{background:var(--green-deep-2);color:#fff}
.qr-buy{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:14px;
  margin-top:6px;padding-top:14px;border-top:1px solid var(--line)}
.qr-price{font-family:var(--font);font-weight:900;font-size:20px;color:var(--green-deep-2);line-height:1.25}
.qr-price small{display:block;font-family:var(--font-ui);font-weight:400;font-size:14px;color:#000;margin-top:2px}
.qr-reset{margin-top:22px;font-weight:700;font-size:15px;color:var(--green-deep-2);
  border-bottom:2px solid var(--yellow);padding-bottom:3px;opacity:0;animation:qrLead .5s var(--ease) .52s forwards}
.qr-reset:hover{border-bottom-color:var(--green)}

@media(max-width:1039px){.quiz-head h2{font-size:30px}.quizsec{padding-top:50px}
  .quiz-aside{max-width:none}
  .q-title{margin-top:8px;height:auto}
  .q-cup{height:200px;width:100%;margin-top:14px;justify-content:flex-start}
  .q-cup img{max-width:100%}
  .q-prog{margin-top:14px}}
@media(max-width:759px){.qc{height:348px}.qc .qc-ico{height:116px;top:28px}
  .qc .qc-num{top:150px}.qc .qc-txt{top:196px}.qc .qc-go{left:auto;right:20px}
  .q-cup{height:180px}.qr-card{grid-template-columns:1fr}.qr-buy{flex-wrap:wrap}
  .quiz-main{min-height:0}}
@media(prefers-reduced-motion:reduce){
  .qr-card,.qr-lead,.qr-grind,.qr-reset{animation:none;opacity:1;transform:none}
  .qcards,.q-cup img{transition:none;animation:none}
}

/* ---------- ДЕТАЛЬНАЯ КАРТОЧКА ТОВАРА — Figma Frame 452 ----------
   Слева блок 465 (бейджи, имя 64/ExtraBold #22612b, происхождение,
   описание, шкалы вкуса, способы приготовления), в центре фото
   пачки 737×643 с зёрнами, справа карточка покупки 329×424
   (#145732, r36) с белой панелью 325×326 внутри.
------------------------------------------------------------------- */
.pdp{padding:calc(22 * var(--u)) 0 calc(70 * var(--u))}
.pdp-crumbs{font-size:14px;color:var(--ink-soft)}
.pdp-crumbs a{color:var(--ink-soft);transition:color .15s}
.pdp-crumbs a:hover{color:var(--green-brand)}
.pdp-crumbs span{color:var(--green-deep-2);font-weight:500}

.pdp-grid{display:grid;gap:calc(24 * var(--u));margin-top:calc(28 * var(--u));align-items:start}
@media(min-width:1100px){
  .pdp-grid{grid-template-columns:calc(465 * var(--u)) minmax(0,1fr) calc(329 * var(--u));
    gap:calc(30 * var(--u))}
}

/* ---- левая колонка ---- */
.pdp-badges{display:flex;gap:calc(10 * var(--u));flex-wrap:wrap}
.pdp-badges .ptag{position:static}
.pdp-name{font-family:var(--font);font-weight:900;text-transform:uppercase;color:var(--green-deep-2);
  font-size:calc(64 * var(--u));line-height:1.02;letter-spacing:-.02em;margin-top:calc(24 * var(--u))}
.pdp-meta{display:flex;flex-wrap:wrap;gap:calc(8 * var(--u)) calc(26 * var(--u));margin-top:calc(16 * var(--u));
  font-size:15px;color:var(--ink-soft)}
.pdp-meta span{display:inline-flex;align-items:center;gap:8px}
.pdp-desc{margin-top:calc(18 * var(--u));font-size:15px;line-height:1.6;color:#000;max-width:calc(400 * var(--u))}

.pdp-box{margin-top:calc(22 * var(--u));border:1.5px solid var(--line);border-radius:calc(24 * var(--u));
  padding:calc(20 * var(--u)) calc(22 * var(--u))}
.pdp-scales{display:flex;flex-direction:column;gap:calc(10 * var(--u));max-width:calc(405 * var(--u))}
.pdp-scales .sc{display:flex;align-items:center;gap:calc(16 * var(--u));font-weight:500;font-size:15px;color:#000}
.pdp-scales .nm{width:calc(84 * var(--u));flex:none}
.pdp-scales .bars{display:flex;gap:calc(7 * var(--u))}
.pdp-scales i{width:calc(13 * var(--u));height:calc(13 * var(--u));border-radius:50%;
  border:1.5px solid var(--green-deep-2);background:#fff}
.pdp-scales i.on{background:var(--green-deep-2)}
.pdp-scales i.half{background:linear-gradient(90deg,var(--green-deep-2) 50%,#fff 50%)}

.pdp-brew{display:flex;gap:calc(6 * var(--u));justify-content:space-between;max-width:calc(405 * var(--u))}
.pdp-brew span{display:flex;flex-direction:column;align-items:center;gap:calc(8 * var(--u));
  font-weight:500;font-size:12px;color:#000;text-align:center;flex:1;min-width:0;white-space:nowrap}
.pdp-brew img{height:calc(46 * var(--u));width:auto}

/* ---- фото ---- */
.pdp-photo{position:relative;display:flex;align-items:flex-start;justify-content:center;padding-top:calc(10 * var(--u))}
@media(min-width:1100px){.pdp-photo{margin:0 calc(-30 * var(--u))}}
.pdp-pack{width:100%;max-width:calc(737 * var(--u));height:auto}
.pdp-bean{position:absolute;pointer-events:none;opacity:.95}
.pdp-bean.b1{width:calc(115 * var(--u));left:9%;bottom:calc(-14 * var(--u));transform:rotate(-8deg)}
.pdp-bean.b2{width:calc(84 * var(--u));left:30%;bottom:calc(-26 * var(--u));transform:rotate(12deg)}
.pdp-bean.b3{width:calc(160 * var(--u));right:6%;bottom:calc(-4 * var(--u));transform:rotate(-3deg)}

/* ---- карточка покупки ---- */
.pdp-buy{position:relative;background:#145732;border-radius:calc(36 * var(--u));padding:calc(4 * var(--u));
  box-shadow:0 18px 44px rgba(20,60,30,.18)}
.buy-top{position:relative;display:flex;align-items:center;justify-content:space-between;gap:calc(10 * var(--u));
  padding:calc(20 * var(--u)) calc(22 * var(--u)) calc(4 * var(--u))}
.buy-prices{display:flex;flex-direction:column;min-width:0}
.buy-old{font-weight:400;font-size:calc(19 * var(--u));color:var(--yellow-2);text-decoration:line-through;
  text-decoration-thickness:1.5px;white-space:nowrap}
.buy-new{font-family:var(--font);font-weight:700;font-size:calc(34 * var(--u));color:#fff;line-height:1.1;margin-top:2px;white-space:nowrap}
.buy-off{flex:none;background:var(--orange);color:#fff;font-family:var(--font);font-weight:700;
  font-size:calc(19 * var(--u));padding:calc(6 * var(--u)) calc(14 * var(--u));border-radius:999px;white-space:nowrap}
.buy-save{font-style:italic;font-size:11px;line-height:1.25;color:#fff;opacity:.9;text-align:right;
  padding:0 calc(22 * var(--u)) calc(14 * var(--u))}

.buy-panel{background:#fff;border-radius:calc(34 * var(--u));padding:calc(24 * var(--u)) calc(24 * var(--u)) calc(20 * var(--u))}
.buy-row + .buy-row{margin-top:calc(18 * var(--u))}
.buy-cap{display:block;font-weight:500;font-size:15px;color:#000}
.buy-cap .req{font-style:normal;color:var(--orange)}
.buy-chips{display:flex;gap:calc(10 * var(--u));margin-top:calc(10 * var(--u))}
.buy-chips button{font-weight:500;font-size:15px;padding:calc(10 * var(--u)) calc(20 * var(--u));
  border-radius:999px;background:#fff;border:1.5px solid var(--line);color:#000;transition:all .18s}
.buy-chips button.on{background:var(--yellow-2);border-color:var(--yellow-2);color:#000;font-weight:700}
.buy-select{position:relative;margin-top:calc(10 * var(--u))}
.buy-select select{width:100%;appearance:none;-webkit-appearance:none;background:#fff;border:1.5px solid var(--line);
  border-radius:calc(14 * var(--u));padding:calc(12 * var(--u)) calc(38 * var(--u)) calc(12 * var(--u)) calc(16 * var(--u));
  font-family:var(--font-ui);font-weight:500;font-size:15px;color:#000;cursor:pointer}
.buy-select select:focus{outline:none;border-color:var(--green-brand)}
.buy-select svg{position:absolute;right:calc(16 * var(--u));top:50%;transform:translateY(-50%);color:#000;pointer-events:none}

.buy-actions{display:flex;align-items:center;gap:calc(12 * var(--u));margin-top:calc(20 * var(--u))}
.buy-qty{display:flex;align-items:center;gap:calc(6 * var(--u));border:1.5px solid var(--line);
  border-radius:calc(14 * var(--u));padding:calc(6 * var(--u)) calc(10 * var(--u));flex:none}
.buy-qty button{width:calc(28 * var(--u));height:calc(28 * var(--u));border-radius:50%;font-size:calc(20 * var(--u));
  line-height:1;color:var(--green-deep-2);transition:background .15s}
.buy-qty button:hover{background:var(--green-pale)}
.buy-qty span{min-width:calc(22 * var(--u));text-align:center;font-weight:500;font-size:calc(18 * var(--u))}
.buy-cta{flex:1;justify-content:center;border-radius:calc(14 * var(--u));padding:calc(14 * var(--u)) calc(16 * var(--u))}
.buy-cta.is-added{background:var(--green)}
.buy-note{list-style:none;margin-top:calc(16 * var(--u));display:flex;flex-direction:column;gap:3px}
.buy-note li{font-style:italic;font-size:11px;line-height:1.35;color:#000;opacity:.75}
.buy-note li::before{content:'— ';opacity:.6}

@media(max-width:1099px){
  .pdp-grid{grid-template-columns:1fr}
  .pdp-photo{order:-1}
  .pdp-pack{max-width:min(100%,420px)}
  .pdp-name{font-size:clamp(34px,7vw,56px)}
  .pdp-buy{max-width:420px}
}

/* --- выравнивание карточек «Хитов обжарки» ---
   Товары в каталоге заполнены по-разному: у кого-то нет фото, у кого-то
   описания или шкал. Чтобы карточки не разъезжались, место под картинку
   держим постоянным, а блок с ценой прижимаем к низу. */
/* В макете пачка занимает почти всю ширину карточки — держим место
   под неё постоянным и даём картинке заполнить его. */
.pcard .pimg{display:flex;align-items:center;justify-content:center;
  min-height:calc(268 * var(--u));padding:calc(6 * var(--u)) 0}
.pcard .pimg img{max-height:calc(268 * var(--u));max-width:100%;width:auto;object-fit:contain}
.pcard .pimg.is-empty{background:var(--bg-soft);border-radius:24px}
.pcard .pdesc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pcard .pbuy{margin-top:auto;padding-top:16px}
.pcard h3{min-height:calc(52 * var(--u))}
.pcard .scales4 .nm-text{font-weight:700;color:var(--green-brand);white-space:nowrap}

/* Ссылка внутри заголовка карточки не должна перекрашиваться темой. */
.pcard h3 a{color:inherit;text-decoration:none}
.pcard h3 a:hover{color:var(--green-brand)}
.pcard .pimg{text-decoration:none}

/* Карточка покупки на детальной: кнопка вылезала за пределы зелёной
   плашки, потому что строка с количеством и кнопкой не переносилась. */
.pdp-buy .buy-actions{display:flex;flex-wrap:wrap;gap:calc(12 * var(--u));align-items:center}
.pdp-buy .buy-cta{flex:1 1 auto;justify-content:center;min-width:calc(150 * var(--u))}
.pdp-buy .buy-qty{flex:0 0 auto}
.pdp-buy .buy-panel,.pdp-buy .buy-top{box-sizing:border-box}
.pdp-brew span{display:block}

/* Карточки в списке каталога: сетка там от темы (row-cols), поэтому
   растягиваем ячейку и саму карточку, иначе они разной высоты. */
/* Ячейка списка каталога. height:100% ставить НЕЛЬЗЯ: заданная высота
   отменяет растягивание по ряду, и карточки выходят разной длины.
   Достаточно сделать ячейку флекс-контейнером — она сама займёт
   высоту ряда, а карточка внутри растянется. */
.pgrid-cell{display:flex}
.pgrid-cell > .pcard{width:100%}
.pcard .pw{margin-top:auto}

/* ================= правки по замечаниям ================= */

/* 1. Поиск занимал 688px, дальше до иконок оставалось 125px пустоты.
      На широких экранах снимаем потолок — поле дотягивается до иконок. */
@media(min-width:1101px){
  .hd-search{max-width:none}
}

/* 2. Бегущая строка шла внутри контентной колонки. В макете она
      во всю ширину экрана. */
.ticker-wrap{width:100vw;margin-left:calc(50% - 50vw);max-width:100vw}

/* 3. Аккордеон карточек входа раскрывался рывком: правило появления .rv
      из home.css перебивало переход flex-grow, потому что идёт позже
      и имеет ту же силу. Возвращаем оба перехода вместе. */
@media(min-width:1000px) and (hover:hover){
  .entries .entry.rv{
    transition:flex-grow .8s cubic-bezier(.3,.7,.2,1),
               filter .5s ease,
               box-shadow .45s ease,
               opacity .7s var(--ease),
               transform .7s var(--ease)}
}

/* 4. Карточка товара расползалась по высоте: два блока разом тянулись
      вниз через margin-top:auto и растягивали пустоту между шкалами
      и ценой. Тянем только фасовки, остальное идёт следом. */
.pcard .pw{margin-top:auto;margin-bottom:calc(14 * var(--u))}
.pcard .pbuy{margin-top:0;padding-top:0}
.pcard .scales4{margin-top:calc(14 * var(--u))}
.pcard h3{min-height:0;margin-bottom:calc(6 * var(--u))}
.pcard .pdesc{margin-top:calc(6 * var(--u))}


/* ---------- кнопки в карточке товара, по макету ----------
   Кнопки веса — полные пилюли, а не прямоугольники со скруглением;
   выбранная залита тёмно-зелёным, остальные белые с обводкой.
   «В корзину» — скруглённый прямоугольник, чуть просторнее. */
.pcard .pw{gap:calc(10 * var(--u))}
.pcard .pw button{
  border-radius:999px;
  padding:calc(10 * var(--u)) calc(22 * var(--u));
  font-size:calc(16 * var(--u));
  border-width:calc(2 * var(--u));
  line-height:1}
/* «В корзину» — та же рисованная фигура, что у кнопки «Меню», только
   бордовая. Ровный прямоугольник со скруглением макету не соответствует. */
.pcard .pbtn{
  padding:0 calc(24 * var(--u));
  font-size:calc(16 * var(--u));
  gap:calc(10 * var(--u))}
/* На детальной кнопка покупки той же формы. */
.pdp-buy .buy-cta{
  background:url(img/btn-cart.svg?v=1) no-repeat center/100% 100%;
  border-radius:0}
.pdp-buy .buy-cta:hover{filter:brightness(1.08)}
.pcard .pprice{font-size:calc(24 * var(--u))}
.pcard .pprice small{font-size:calc(15 * var(--u))}

/* ---------- страницы документов (политика, оферта) ----------
   Текст приходит из Битрикса обычными <p>, <h2>, <ul> — задаём им
   типографику макета, не трогая сам текст. */
.doc{padding-bottom:calc(60 * var(--u))}
.doc h2{font-family:var(--font);font-weight:900;text-transform:uppercase;
  font-size:calc(26 * var(--u));line-height:1.15;margin:calc(34 * var(--u)) 0 calc(12 * var(--u));color:var(--green-deep-2)}
.doc h3{font-family:var(--font);font-weight:700;font-size:calc(19 * var(--u));
  margin:calc(22 * var(--u)) 0 calc(8 * var(--u))}
.doc p{margin:0 0 calc(12 * var(--u));font-size:calc(16 * var(--u));line-height:1.65;color:var(--ink-soft);max-width:calc(900 * var(--u))}
.doc ul,.doc ol{margin:0 0 calc(14 * var(--u)) calc(22 * var(--u));padding:0;max-width:calc(900 * var(--u))}
.doc li{margin-bottom:calc(6 * var(--u));font-size:calc(16 * var(--u));line-height:1.6;color:var(--ink-soft)}
.doc strong{color:var(--ink)}
.doc p a,.doc li a,.doc td a{color:var(--green-brand);text-decoration:underline}
/* Кнопки переключателя документов — не ссылки в тексте, подчёркивание им не нужно. */
.doc-nav a{text-decoration:none}
/* Плавность как в прототипе: цвет, лёгкий подъём и тень при наведении. */
.doc-nav a{transition:background .25s var(--ease),color .25s var(--ease),transform .25s var(--ease),box-shadow .25s var(--ease)}
.doc-nav a:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(20,40,20,.12)}
.doc-nav a.on:hover{background:var(--green-brand);color:#fff}
.doc table{width:100%;max-width:calc(900 * var(--u));border-collapse:collapse;margin:0 0 calc(16 * var(--u))}
.doc td,.doc th{border:1px solid var(--line);padding:calc(10 * var(--u)) calc(12 * var(--u));font-size:calc(15 * var(--u));text-align:left}

/* ---------- страница корзины (первый шаг покупки) ----------
   Разметку рисует штатный компонент Битрикса — переписывать его нельзя,
   на нём висит пересчёт количества и удаление позиций. Поэтому задаём
   только оформление поверх его классов. */
.sc-basket{padding-bottom:calc(60 * var(--u))}
.sc-basket .sec-title{font-family:var(--font);font-weight:900;text-transform:uppercase;
  font-size:calc(44 * var(--u));line-height:1.05;margin:calc(18 * var(--u)) 0 calc(26 * var(--u))}

/* позиции */
.sc-basket .basket-items-list{border:0}
.sc-basket .basket-item-block-info,
.sc-basket .basket-items-list-item-container{
  background:#fff;border:1px solid var(--tile-line);border-radius:calc(28 * var(--u));
  padding:calc(18 * var(--u));margin-bottom:calc(14 * var(--u))}
.sc-basket .basket-item-info-name{font-family:var(--font);font-weight:900;
  text-transform:uppercase;font-size:calc(18 * var(--u));color:var(--green-deep-2);line-height:1.2}
.sc-basket .basket-item-price-current{font-family:var(--font);font-weight:900;
  font-size:calc(22 * var(--u));color:var(--green-deep-2)}
.sc-basket .basket-item-property-name{font-weight:700;color:var(--ink-soft);font-size:calc(14 * var(--u))}

/* итог справа */
.sc-basket .basket-checkout-section{
  background:var(--bg-soft);border-radius:calc(28 * var(--u));padding:calc(22 * var(--u));border:0}
.sc-basket .basket-checkout-block-total-price-current,
.sc-basket .basket-coupon-block-total-price-current{
  font-family:var(--font);font-weight:900;font-size:calc(30 * var(--u));color:var(--green-deep-2)}
.sc-basket .basket-checkout-block-total-title{font-weight:700;color:var(--ink-soft)}

/* кнопка перехода ко второму шагу — той же формы, что «В корзину» */
.sc-basket .basket-btn-checkout{
  display:inline-flex;align-items:center;justify-content:center;
  background:url(img/btn-cart.svg?v=1) no-repeat center/100% 100%;
  color:#fff;font-family:var(--font);font-weight:500;font-size:calc(17 * var(--u));
  padding:calc(16 * var(--u)) calc(28 * var(--u));border:0;border-radius:0;
  width:100%;transition:filter .2s}
.sc-basket .basket-btn-checkout:hover{filter:brightness(1.08);color:#fff}

/* купон */
.sc-basket .basket-coupon-section{background:transparent;border:0;padding:0;margin-bottom:calc(18 * var(--u))}
.sc-basket .basket-coupon-block-field input{
  border:2px solid var(--line);border-radius:999px;padding:calc(11 * var(--u)) calc(18 * var(--u));
  font-family:var(--font);font-size:calc(15 * var(--u))}

/* Реквизиты в конце документа — отдельной плашкой, чтобы не терялись
   в общем тексте. */
.doc-req{margin-top:calc(40 * var(--u));padding:calc(26 * var(--u)) calc(28 * var(--u));
  background:var(--bg-soft);border-radius:calc(28 * var(--u));max-width:calc(900 * var(--u))}
.doc-req h2{margin-top:0}
.doc-req p:last-child{margin-bottom:0}
.doc-req a{color:var(--green-brand);text-decoration:none;font-weight:700}
.doc-req a:hover{text-decoration:underline}

/* ---------- оформление заказа (второй шаг) ----------
   Форму рисует штатный sale.order.ajax: на ней держатся расчёт доставки,
   выбор оплаты и отправка заказа. Переписывать нельзя — задаём оформление
   поверх её классов, как и на корзине. */
.sc2026-page .bx-soa-section{
  background:#fff;border:2px solid var(--line);border-radius:calc(28 * var(--u));
  margin-bottom:calc(16 * var(--u));overflow:hidden}
.sc2026-page .bx-soa-section-title-container{
  background:var(--bg-soft);border:0;padding:calc(16 * var(--u)) calc(22 * var(--u))}
.sc2026-page .bx-soa-section-title{
  font-family:var(--font);font-weight:900;text-transform:uppercase;
  font-size:calc(18 * var(--u));color:var(--green-deep-2);margin:0}
.sc2026-page .bx-soa-section-title-count{color:var(--green-brand);font-weight:900}
.sc2026-page .bx-soa-section-content{padding:calc(20 * var(--u)) calc(22 * var(--u))}

/* поля формы */
.sc2026-page .bx-soa-customer input.form-control,
.sc2026-page .bx-soa-section .form-control{
  border:2px solid var(--line);border-radius:calc(16 * var(--u));
  padding:calc(12 * var(--u)) calc(16 * var(--u));
  font-family:var(--font);font-size:calc(16 * var(--u));box-shadow:none}
.sc2026-page .bx-soa-section .form-control:focus{border-color:var(--green-brand)}
.sc2026-page .bx-soa-custom-label{font-weight:700;color:var(--ink-soft);font-size:calc(14 * var(--u))}

/* выбор доставки и оплаты — карточками */
.sc2026-page .bx-soa-pp-company{
  border:2px solid var(--line);border-radius:calc(22 * var(--u));
  padding:calc(14 * var(--u));transition:border-color .2s,box-shadow .2s}
.sc2026-page .bx-soa-pp-company:hover{border-color:var(--green-pale)}
.sc2026-page .bx-soa-pp-company.bx-selected{
  border-color:var(--green-brand);box-shadow:0 8px 22px rgba(20,40,20,.10)}

/* итог */
.sc2026-page .bx-soa-cart-total{
  background:var(--bg-soft);border:0;border-radius:calc(28 * var(--u));padding:calc(22 * var(--u))}
.sc2026-page .bx-soa-cart-total-line-total .bx-soa-cart-d,
.sc2026-page .bx-soa-cart-total-line.bx-soa-cart-total-line-highlight .bx-soa-cart-d{
  font-family:var(--font);font-weight:900;font-size:calc(28 * var(--u));color:var(--green-deep-2)}

/* кнопки шага — рисованной формой, как «В корзину» */
.sc2026-page .bx-soa-cart-total-button-container .btn-primary,
.sc2026-page .btn-order-save{
  background:url(img/btn-cart.svg?v=1) no-repeat center/100% 100%;
  border:0;border-radius:0;color:#fff;
  font-family:var(--font);font-weight:500;font-size:calc(17 * var(--u));
  padding:calc(16 * var(--u)) calc(30 * var(--u));transition:filter .2s}
.sc2026-page .bx-soa-cart-total-button-container .btn-primary:hover,
.sc2026-page .btn-order-save:hover{filter:brightness(1.08);color:#fff}
.sc2026-page .bx-soa-editstep{color:var(--green-brand);font-weight:700}

/* ---------- детальная карточка по макету (Frame 467) ---------- */

/* Шкалы — точками на светлой плашке, а не полосками. */
.pdp-scales{background:var(--bg-soft);border-radius:calc(22 * var(--u));
  padding:calc(20 * var(--u)) calc(24 * var(--u));display:grid;gap:calc(10 * var(--u))}
.pdp-scales .sc{display:flex;align-items:center;justify-content:space-between;gap:calc(20 * var(--u))}
.pdp-scales .nm{font-family:var(--font);font-weight:700;font-size:calc(16 * var(--u));color:var(--ink)}
.pdp-scales .bars{display:flex;gap:calc(7 * var(--u))}
.pdp-scales .bars i{width:calc(11 * var(--u));height:calc(11 * var(--u));border-radius:50%;
  background:#fff;border:calc(1.5 * var(--u)) solid var(--green-pale)}
.pdp-scales .bars i.on{background:var(--green-brand);border-color:var(--green-brand)}

/* Способы приготовления — плитками с иконкой, как в макете. */
.pdp-brew{display:flex;flex-wrap:wrap;gap:calc(12 * var(--u));background:transparent;padding:0;border:0}
.pdp-brew span{display:flex;flex-direction:column;align-items:center;gap:calc(6 * var(--u));
  width:calc(78 * var(--u));font-size:calc(13 * var(--u));text-align:center;color:var(--ink-soft);line-height:1.2}
.pdp-brew span::before{content:'';width:calc(56 * var(--u));height:calc(56 * var(--u));
  border-radius:calc(16 * var(--u));background:var(--bg-soft)}

/* Выбранная фасовка в карточке покупки — жёлтая, как в макете. */
.pdp-buy .buy-chips button.on{background:var(--yellow-2);border-color:var(--yellow-2);color:var(--ink)}
.pdp-buy .buy-chips button{border-radius:999px;padding:calc(11 * var(--u)) calc(22 * var(--u));
  border:calc(2 * var(--u)) solid var(--line);background:#fff;font-weight:700;font-size:calc(16 * var(--u))}

/* Характеристики под описанием — сеткой на светлой плашке. */
.pdp-specs{margin-top:calc(30 * var(--u));background:var(--bg-soft);border-radius:calc(26 * var(--u));
  padding:calc(26 * var(--u));display:grid;gap:calc(22 * var(--u)) calc(30 * var(--u))}
@media(min-width:760px){.pdp-specs{grid-template-columns:repeat(3,minmax(0,1fr))}}
.pdp-specs dt{font-family:var(--font);font-weight:700;font-size:calc(15 * var(--u));color:var(--ink);margin:0}
.pdp-specs dd{margin:calc(4 * var(--u)) 0 0;font-size:calc(15 * var(--u));color:var(--ink-soft)}
.pdp-sec-title{font-family:var(--font);font-weight:900;text-transform:uppercase;
  font-size:calc(24 * var(--u));color:var(--green-deep-2);margin:calc(34 * var(--u)) 0 calc(14 * var(--u))}

/* Карточка покупки едет за прокруткой. Шапка липкая и занимает ~72px,
   поэтому отступаем чуть больше, чтобы она не перекрывала цену.
   align-self:start обязателен: иначе элемент растянут на всю строку
   сетки и ехать ему некуда. */
.pdp-grid > .pdp-buy{position:sticky;top:calc(96 * var(--u));align-self:start}
@media(max-width:900px){.pdp-grid > .pdp-buy{position:static}}

/* Вкладки под карточкой и раскладка описания — по макету Frame 467. */
.pdp-tabs{display:flex;flex-wrap:wrap;gap:calc(34 * var(--u));
  border-bottom:1px solid var(--line);margin-top:calc(40 * var(--u))}
.pdp-tabs button{background:none;border:0;padding:0 0 calc(14 * var(--u));cursor:pointer;
  font-family:var(--font);font-weight:700;text-transform:uppercase;letter-spacing:.02em;
  font-size:calc(16 * var(--u));color:var(--ink-soft);position:relative;transition:color .2s}
.pdp-tabs button:hover{color:var(--ink)}
.pdp-tabs button.on{color:var(--ink)}
.pdp-tabs button.on::after{content:'';position:absolute;left:0;right:0;bottom:-1px;
  height:calc(3 * var(--u));background:var(--green-brand);border-radius:2px}

.pdp-below{display:grid;gap:calc(30 * var(--u));margin-top:calc(28 * var(--u))}
@media(min-width:900px){.pdp-below{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}}
.pdp-fulltext p{margin:0 0 calc(12 * var(--u))}
.pdp-fulltext{font-size:calc(16 * var(--u));line-height:1.7;color:var(--ink-soft)}
.pdp-specs[hidden],.pdp-panel[hidden]{display:none}

/* ---------- карточка товара: доводка по Frame 467 ---------- */

/* Заголовок: кегль и цвет из макета. Селектор с .sc2026-page — чтобы
   не проигрывать правилам темы по специфичности. */
.sc2026-page .pdp-name{font-size:calc(62 * var(--u));line-height:1.06;
  letter-spacing:0;color:var(--green-deep-2)}

/* Панель шкал: цвет и радиус макета, лишнюю рамку от .pdp-box снимаем. */
.pdp-box.pdp-scales{background:#f1f2e8;border:0;border-radius:calc(30 * var(--u));
  padding:calc(20 * var(--u))}
.pdp-scales .nm{font-size:calc(19 * var(--u));color:#000}
.pdp-scales .bars i{width:calc(13 * var(--u));height:calc(13 * var(--u));
  background:transparent;border:1px solid rgba(34,97,43,.38)}
.pdp-scales .bars i.on{background:var(--green-deep-2);border-color:var(--green-deep-2)}

/* Плитки способов приготовления: размеры и цвета макета,
   длинные названия переносим, а не выпускаем за ячейку. */
.pdp-brew span{white-space:normal;font-size:calc(15 * var(--u));color:#000;
  gap:calc(10 * var(--u));width:calc(92 * var(--u))}
.pdp-brew span::before{width:calc(65 * var(--u));height:calc(65 * var(--u));
  border-radius:calc(20 * var(--u));background:#f1f2e8}

/* Счётчик количества: под него не было ни одного правила, поэтому
   браузер рисовал поле шириной 190px и оно выламывало карточку. */
.pdp-buy .buy-qty{border-radius:999px;border:1px solid var(--green-deep-2);
  gap:calc(15 * var(--u));padding:calc(8 * var(--u)) calc(13 * var(--u));background:#fff}
.pdp-buy .buy-qty .quantity-input{width:calc(34 * var(--u));min-width:0;padding:0;border:0;
  background:transparent;text-align:center;font-family:var(--font);font-weight:500;
  font-size:calc(22 * var(--u));line-height:1;color:#000;-moz-appearance:textfield}
.pdp-buy .buy-qty .quantity-input::-webkit-outer-spin-button,
.pdp-buy .buy-qty .quantity-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.pdp-buy .buy-actions{flex-wrap:nowrap}

/* Кнопка покупки на детальной — в макете сплошная пилюля, а не
   рисованная фигура, которая стоит в карточках каталога. */
.pdp-buy .buy-cta,.pdp-buy .buy-cta:hover{
  background:var(--cart);border-radius:999px;
  padding:calc(16 * var(--u)) calc(22 * var(--u));
  font-size:calc(21 * var(--u));gap:calc(12 * var(--u))}

/* Рисунки способов приготовления. Раньше плитка рисовалась пустым
   ::before — светлый квадрат без содержимого выглядел недоделкой.
   Теперь внутри плитки лежит картинка, а квадрат остаётся только
   там, где картинки нет. */
.pdp-brew span:has(.ic)::before{content:none}
.pdp-brew .ic{display:flex;align-items:center;justify-content:center;
  width:calc(65 * var(--u));height:calc(65 * var(--u));
  border-radius:calc(20 * var(--u));background:#f1f2e8;flex:none}
.pdp-brew .ic img{width:calc(40 * var(--u));height:calc(40 * var(--u));object-fit:contain}

/* Строка происхождения: значки страны и высоты не должны сжиматься. */
.pdp-meta span svg{flex:none}

/* Зёрна у пачки — украшение из макета. На узких экранах фото и так
   уменьшается, зёрна там только мешают. */
.pdp-photo{overflow:visible}
@media(max-width:1099px){.pdp-bean{display:none}}

/* Плитки способов приготовления во вкладке: их семь, а не четыре,
   и в 405u они не помещались — flex сжимал каждую до 38px, отчего
   подписи налезали друг на друга. Ширину фиксируем, ряд пускаем
   во всю ширину вкладки. */
.pdp-brew span{flex:0 0 calc(92 * var(--u))}
.pdp-panel .pdp-brew{max-width:none;justify-content:flex-start;
  gap:calc(24 * var(--u)) calc(18 * var(--u))}

/* ==========================================================================
   Frame 467 — детальная карточка, снятая с макета один в один.

   Макет нарисован на ширине 1440, а дизайн-система сайта считает в своих
   единицах (--u откалиброван под макет 1800). Чтобы не пересчитывать
   каждое число руками, вводим «пиксель макета»: --mp. Тогда любой размер
   из Frame 467 пишется как есть — calc(322 * var(--mp)).

   Полоса контента у нас уже макетной (1360 против наших ~1274), поэтому
   карточка выходит пропорционально макету, а не абсолютно. Менять общую
   ширину ради одного экрана нельзя — она держит шапку, подвал и главную.
   ========================================================================== */
.pdp{--mp:calc((var(--wrap-w) - 48 * var(--u)) / 1360);
  /* Правый узор в макете уходит за край кадра. Режем именно clip,
     а не hidden: hidden сделал бы .pdp контейнером прокрутки и
     карточка покупки перестала бы липнуть при скролле. */
  overflow-x:clip}

@media(min-width:1100px){
  /* Колонки макета: 325 | 737 | 322. Фото заходит на соседние колонки
     (352..1089 против 365 и 1075), поэтому вытягиваем его отрицательными
     полями, а не расширением колонки. */
  .pdp-grid{grid-template-columns:calc(325 * var(--mp)) minmax(0,1fr) calc(322 * var(--mp));
    gap:0;position:relative}
  .pdp-photo{margin:0 calc(-14 * var(--mp));padding-top:calc(78 * var(--mp))}
  .pdp-pack{max-width:calc(737 * var(--mp))}
}

/* Панель шкал: 325×140, радиус 24, заливка F1F2E8 */
.sc2026-page .pdp-box.pdp-scales{max-width:calc(325 * var(--mp));border-radius:calc(24 * var(--mp));
  padding:calc(18 * var(--mp)) calc(22 * var(--mp))}

/* Плитки способов: 52×52, радиус 16, F2F3E9, шаг 78 (зазор 26) */
.sc2026-page .pdp-info .pdp-brew{max-width:calc(325 * var(--mp));gap:calc(26 * var(--mp));
  justify-content:flex-start;margin-top:calc(24 * var(--mp))}
.sc2026-page .pdp-brew span{width:calc(52 * var(--mp));flex:0 0 calc(52 * var(--mp));
  gap:calc(8 * var(--mp));font-size:calc(12 * var(--mp))}
.sc2026-page .pdp-brew .ic{width:calc(52 * var(--mp));height:calc(52 * var(--mp));
  border-radius:calc(16 * var(--mp));background:#F2F3E9}
.sc2026-page .pdp-brew .ic img{width:calc(52 * var(--mp));height:calc(52 * var(--mp))}

/* Карточка покупки: зелёная 322×424 r36, внутри белая панель 326 высотой,
   над ней 96 под цену. */
.sc2026-page .pdp-buy{border-radius:calc(36 * var(--mp));padding:0 0 calc(2 * var(--mp))}
.sc2026-page .pdp-buy .buy-top{min-height:calc(96 * var(--mp));align-items:flex-start;
  padding:calc(20 * var(--mp)) calc(24 * var(--mp)) 0}
.sc2026-page .pdp-buy .buy-panel{border-radius:calc(36 * var(--mp));
  padding:calc(22 * var(--mp)) calc(24 * var(--mp)) calc(20 * var(--mp))}

/* Узоры макета. Левый светлый уходит за край полосы контента, правый
   лежит под карточкой покупки. */
.pdp-deco{position:absolute;pointer-events:none;user-select:none;z-index:0;
  /* Общее правило img{max-width:100%} сжимало узор до ширины колонки. */
  max-width:none}
.pdp-deco-l{left:calc(-287 * var(--mp));top:calc(53 * var(--mp));width:calc(1051 * var(--mp))}
.pdp-deco-r{left:calc(915 * var(--mp));top:calc(99 * var(--mp));width:calc(627 * var(--mp))}
/* Узор лежит под содержимым, поэтому колонкам нужен свой слой.
   Карточке покупки position не трогаем — она липкая при скролле. */
.pdp-grid > .pdp-info,
.pdp-grid > .pdp-photo{position:relative;z-index:1}
.pdp-grid > .pdp-buy{z-index:1}
@media(max-width:1099px){.pdp-deco{display:none}}

/* ---------- Frame 467: правки после первого показа ---------- */

/* Длинное название не должно заезжать под фото. Слово вроде
   «(АНАЭРОБНАЯ)» шире колонки, поэтому и переносим по буквам. */
.sc2026-page .pdp-name{overflow-wrap:break-word;hyphens:manual;text-wrap:balance}

@media(min-width:1100px){
  /* Вкладки и панели переехали внутрь сетки: правая колонка тянется
     до конца страницы, и карточка покупки едет со скроллом до самого
     низа, а не останавливается под фото. */
  .pdp-grid{grid-template-areas:
      "info  photo buy"
      "tabs  tabs  buy"
      "below below buy";
    grid-template-rows:auto auto 1fr}
  .pdp-grid > .pdp-info{grid-area:info}
  .pdp-grid > .pdp-photo{grid-area:photo}
  .pdp-grid > .pdp-buy{grid-area:buy;margin-left:calc(24 * var(--mp));
    margin-top:calc(96 * var(--mp))}
  .pdp-grid > .pdp-tabs{grid-area:tabs}
  .pdp-grid > .pdp-below{grid-area:below}
}

/* Узор — под всем содержимым. Он выходит за низ сетки и раньше ложился
   поверх вкладок и характеристик, потому что позиционированный элемент
   рисуется выше обычного потока. */
.pdp-grid > .pdp-info,
.pdp-grid > .pdp-photo,
.pdp-grid > .pdp-tabs,
.pdp-grid > .pdp-below{position:relative;z-index:1}

/* Края узоров растворяем, чтобы страница не обрывалась ровной линией.
   Одна маска на элемент — списки масок с mask-composite ведут себя
   по-разному в браузерах, а нам нужно предсказуемо. */
.pdp-deco{-webkit-mask-image:linear-gradient(to bottom,#000 55%,transparent 100%);
          mask-image:linear-gradient(to bottom,#000 55%,transparent 100%)}

/* Правый узор в макете уходит за кадр, и обрез по краю экрана даёт
   ровную вертикаль. Растворяем её белой полосой в цвет страницы. */
.pdp::before,.pdp::after{content:'';position:absolute;top:0;bottom:0;width:calc(140 * var(--u));
  pointer-events:none;z-index:0}
.pdp::before{left:0;background:linear-gradient(to left,transparent,#fff 78%)}
.pdp::after{right:0;background:linear-gradient(to right,transparent,#fff 78%)}
.pdp{position:relative}

/* Плитка способа приготовления: светлый квадрат — фон под рисунком,
   а не поверх. Рисунок кладём отдельным слоем выше. */
.sc2026-page .pdp-brew .ic{position:relative;isolation:isolate}
.sc2026-page .pdp-brew .ic img{position:relative;z-index:1}

/* ---------- «Где пить кофе»: раскладка из прототипа map.html ---------- */
.sc-map .lead{font-size:calc(16 * var(--u));line-height:1.6;color:var(--ink-soft);max-width:calc(720 * var(--u))}

.sc-map .city-tabs{display:flex;flex-wrap:wrap;gap:calc(10 * var(--u));margin:calc(24 * var(--u)) 0 calc(22 * var(--u))}
.sc-map .city-tab{font-size:calc(14 * var(--u));font-weight:800;padding:calc(12 * var(--u)) calc(22 * var(--u));
  border-radius:999px;background:var(--bg-soft);color:var(--ink);border:0;cursor:pointer;
  transition:background .2s,color .2s;display:inline-flex;align-items:center;gap:calc(8 * var(--u))}
.sc-map .city-tab:hover{background:var(--green-pale);color:var(--green-deep-2)}
.sc-map .city-tab.on{background:var(--green-brand);color:#fff}
.sc-map .city-tab i{font-style:normal;opacity:.6;font-weight:700}
.sc-map .city-tab.on i{opacity:.85}

.sc-map .map-grid{display:grid;gap:calc(20 * var(--u));align-items:start}
@media(min-width:1000px){.sc-map .map-grid{grid-template-columns:calc(400 * var(--u)) 1fr;gap:calc(26 * var(--u))}}

.sc-map .spots{display:flex;flex-direction:column;gap:calc(12 * var(--u))}
.sc-map .spot{background:#fff;border:1px solid var(--tile-line);border-radius:calc(24 * var(--u));
  padding:calc(18 * var(--u));cursor:pointer;transition:box-shadow .25s,transform .25s}
.sc-map .spot:hover{box-shadow:0 12px 30px rgba(20,40,20,.12);transform:translateY(-2px)}
.sc-map .spot.on{box-shadow:0 0 0 calc(3 * var(--u)) rgba(139,38,40,.14)}
.sc-map .spot[hidden]{display:none}
.sc-map .spot-top{display:flex;align-items:flex-start;justify-content:space-between;gap:calc(12 * var(--u))}
.sc-map .spot h3{font-size:calc(16.5 * var(--u));font-weight:800;line-height:1.25;margin:0}
.sc-map .spot .kind{font-size:calc(11 * var(--u));font-weight:800;text-transform:uppercase;letter-spacing:.04em;
  padding:calc(5 * var(--u)) calc(10 * var(--u));border-radius:999px;white-space:nowrap;flex:none}
.sc-map .k-show{background:var(--green-pale);color:var(--green-deep-2)}
.sc-map .k-partner{background:#d6f4f8;color:#00697a}
.sc-map .spot .addr{font-size:calc(14 * var(--u));color:var(--ink-soft);margin-top:calc(6 * var(--u))}
.sc-map .spot .row{display:flex;flex-wrap:wrap;gap:calc(14 * var(--u));margin-top:calc(12 * var(--u));
  font-size:calc(13 * var(--u));color:var(--ink-soft)}
.sc-map .spot .row span{display:inline-flex;align-items:center;gap:calc(6 * var(--u))}
.sc-map .spot .acts{display:flex;flex-wrap:wrap;gap:calc(10 * var(--u));margin-top:calc(14 * var(--u))}
.sc-map .spot .acts a{font-size:calc(13 * var(--u));font-weight:800;padding:calc(10 * var(--u)) calc(16 * var(--u));
  border-radius:999px;display:inline-flex;align-items:center;gap:calc(7 * var(--u));
  text-decoration:none;transition:background .2s}
.sc-map .spot .acts .a-map{background:var(--green-brand);color:#fff}
.sc-map .spot .acts .a-map:hover{background:var(--green-deep-2)}
.sc-map .spot .acts .a-tel{background:var(--bg-soft);color:var(--green-deep-2)}
.sc-map .spot .acts .a-tel:hover{background:var(--green-pale)}

.sc-map .map-box{position:relative;border-radius:calc(36 * var(--u));overflow:hidden;
  background:var(--green-pale);min-height:calc(420 * var(--u));display:flex;align-items:center;
  justify-content:center;border:1px solid var(--tile-line)}
@media(min-width:1000px){.sc-map .map-box{min-height:calc(600 * var(--u));position:sticky;top:calc(96 * var(--u))}}
.sc-map .map-box .pat{position:absolute;inset:0;opacity:.7;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60' viewBox='0 0 60 60'%3E%3Cpath d='M0 45 L15 25 L30 45 L45 25 L60 45' fill='none' stroke='%23205b28' stroke-opacity='.10' stroke-width='3.5'/%3E%3C/svg%3E")}
.sc-map .map-note{position:relative;text-align:center;padding:calc(30 * var(--u));max-width:calc(420 * var(--u))}
.sc-map .map-note .pin{width:calc(64 * var(--u));height:calc(64 * var(--u));border-radius:50%;
  background:var(--green-brand);color:#fff;display:flex;align-items:center;justify-content:center;
  margin:0 auto calc(16 * var(--u));box-shadow:0 8px 22px rgba(32,91,40,.28)}
.sc-map .map-note b{display:block;font-family:var(--font);font-weight:900;text-transform:uppercase;
  font-size:calc(19 * var(--u));color:var(--green-deep-2);margin-bottom:calc(8 * var(--u));line-height:1.25}
.sc-map .map-note p{font-size:calc(14 * var(--u));color:var(--ink-soft);line-height:1.55}
.sc-map .map-go{display:inline-flex;margin-top:calc(18 * var(--u));color:#fff;text-decoration:none}

.sc-map .partner{margin-top:calc(40 * var(--u));background:var(--green-deep);color:#fff;
  border-radius:calc(36 * var(--u));padding:calc(32 * var(--u)) calc(26 * var(--u));
  display:grid;gap:calc(18 * var(--u))}
@media(min-width:800px){.sc-map .partner{grid-template-columns:1.4fr auto;align-items:center;
  padding:calc(40 * var(--u)) calc(44 * var(--u))}}
.sc-map .partner h2{font-family:var(--font);font-weight:900;text-transform:uppercase;
  font-size:calc(26 * var(--u));margin:0 0 calc(10 * var(--u));color:#fff}
.sc-map .partner p{font-size:calc(15 * var(--u));line-height:1.55;opacity:.9;margin:0}
.sc-map .partner .pbtn{white-space:nowrap;text-decoration:none;color:#fff}

/* ---------- «О компании» ----------
   Фотографий у страницы всего две, поэтому она держится не фотобанком,
   а крупной конденсед-типографикой, цифрами, паттернами и цветными
   плоскостями. Кнопки — рисованными SVG-формами, как везде на сайте. */

.about{padding-bottom:calc(40 * var(--u))}
.about .page-head{display:none}          /* заголовок страницы живёт в первом экране */

/* ---- кнопки страницы ---- */
.about .ab-btn{display:inline-flex;align-items:center;justify-content:center;
  background:url(img/hd-shape-btn.svg) no-repeat center/100% 100%;border:0;border-radius:0;
  min-height:calc(56 * var(--u));padding:0 calc(30 * var(--u));
  font-family:var(--font);font-weight:700;font-size:calc(16 * var(--u));
  color:#fff;text-decoration:none;white-space:nowrap;transition:filter .18s,transform .18s}
.about .ab-btn:hover{filter:brightness(1.08);transform:translateY(-2px);color:#fff}
.about .ab-btn-line{background:none;border:1.5px solid var(--green-brand);
  border-radius:calc(16 * var(--u));color:var(--green-deep-2)}
.about .ab-btn-line:hover{background:var(--green-pale);filter:none;color:var(--green-deep-2)}
.about .ab-btn-white{background:#fff;color:var(--cart);
  -webkit-mask:url(img/btn-cart.svg) no-repeat center/100% 100%;
          mask:url(img/btn-cart.svg) no-repeat center/100% 100%}
.about .ab-btn-white:hover{background:#fff;color:var(--cart);filter:none;opacity:.9}
.about .ab-btn-ghost{background:none;border:1.5px solid rgba(255,255,255,.55);
  border-radius:calc(16 * var(--u));color:#fff}
.about .ab-btn-ghost:hover{background:rgba(255,255,255,.12);filter:none}

/* ссылка-действие внутри блоков */
.about .ab-link{display:inline-flex;align-items:center;gap:calc(8 * var(--u));
  font-weight:700;font-size:calc(15 * var(--u));color:var(--green-brand);text-decoration:none;
  border-bottom:1px solid rgba(0,114,59,.3);padding-bottom:calc(2 * var(--u));
  transition:color .18s,border-color .18s}
.about .ab-link:hover{color:var(--green-deep-2);border-color:var(--green-deep-2)}
.about .ab-link::after{content:'→';font-size:calc(15 * var(--u));line-height:1}

/* подчёркивание фирменным штрихом */
.about .ab-uline{color:var(--ink);text-decoration:none;font-weight:700;
  background:url(img/underline-catalog.svg) no-repeat 0 100%/100% calc(7 * var(--u));
  padding-bottom:calc(3 * var(--u))}
.about .ab-uline:hover{color:var(--green-deep-2)}

/* ---- первый экран ---- */
.about .ab-hero{display:grid;gap:calc(30 * var(--u));align-items:center;
  padding:calc(20 * var(--u)) 0 calc(34 * var(--u))}
@media(min-width:900px){.about .ab-hero{grid-template-columns:1fr calc(520 * var(--u));gap:calc(56 * var(--u))}}
.about .ab-stamp{display:inline-block;font-family:var(--font);font-weight:700;text-transform:uppercase;
  font-size:calc(12 * var(--u));letter-spacing:.2em;color:var(--green-brand);
  border:1.5px solid var(--green-pale);border-radius:999px;
  padding:calc(8 * var(--u)) calc(16 * var(--u));margin-bottom:calc(20 * var(--u))}
.about .ab-hero h1{font-family:var(--font);font-weight:900;text-transform:uppercase;
  font-size:clamp(calc(38 * var(--u)),6vw,calc(76 * var(--u)));line-height:1.02;
  letter-spacing:-.015em;color:var(--ink);margin:0 0 calc(22 * var(--u))}
.about .ab-hero h1 em{font-style:normal;color:var(--green-brand)}
.about .lead{font-size:calc(18 * var(--u));line-height:1.6;color:var(--ink);margin:0 0 calc(12 * var(--u));
  max-width:calc(560 * var(--u))}
.about .lead-2{font-size:calc(16 * var(--u));line-height:1.6;color:var(--ink-soft);margin:0;
  max-width:calc(560 * var(--u))}
.about .ab-acts{display:flex;flex-wrap:wrap;gap:calc(12 * var(--u));margin-top:calc(26 * var(--u))}

.about .ab-hero-img{margin:0}
.about .ab-hero-img img{display:block;width:100%;height:auto;
  border-radius:calc(32 * var(--u));border:1px solid var(--tile-line);box-shadow:var(--tile-shadow)}
.about figcaption{font-size:calc(13 * var(--u));line-height:1.45;color:var(--ink-soft);
  margin-top:calc(12 * var(--u))}

/* ---- лента цифр ---- */
.about .ab-figures{display:grid;grid-template-columns:1fr 1fr;gap:calc(24 * var(--u));
  padding:calc(30 * var(--u)) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
@media(min-width:900px){.about .ab-figures{grid-template-columns:repeat(4,1fr);gap:calc(30 * var(--u))}}
.about .ab-figures div{display:flex;flex-direction:column}
.about .ab-figures b{font-family:var(--font);font-weight:900;font-size:calc(34 * var(--u));
  line-height:1.05;color:var(--green-deep-2)}
.about .ab-figures span{font-size:calc(13.5 * var(--u));line-height:1.45;color:var(--ink-soft);
  margin-top:calc(10 * var(--u));padding-top:calc(10 * var(--u));
  border-top:1px solid var(--line);max-width:calc(230 * var(--u))}

/* ---- общий заголовок раздела ---- */
.about h2{font-family:var(--font);font-weight:900;text-transform:uppercase;
  font-size:clamp(calc(26 * var(--u)),3.6vw,calc(44 * var(--u)));line-height:1.06;
  letter-spacing:-.01em;color:var(--ink);margin:0 0 calc(18 * var(--u))}
.about .ab-sub{font-size:calc(16.5 * var(--u));line-height:1.6;color:var(--ink-soft);
  margin:0 0 calc(26 * var(--u));max-width:calc(720 * var(--u))}

/* ---- с чего начать ---- */
.about .ab-start{margin-top:calc(56 * var(--u));background:var(--bg-soft);
  border-radius:calc(36 * var(--u));padding:calc(44 * var(--u)) calc(30 * var(--u));
  display:grid;gap:calc(24 * var(--u));overflow:hidden}
@media(min-width:960px){.about .ab-start{grid-template-columns:minmax(0,1fr) calc(320 * var(--u));
  gap:calc(40 * var(--u));padding:calc(56 * var(--u)) calc(52 * var(--u)) 0;align-items:end}}
.about .ab-start-txt{padding-bottom:calc(12 * var(--u))}
@media(min-width:960px){.about .ab-start-txt{padding-bottom:calc(56 * var(--u))}}
.about .ab-start p{font-size:calc(16.5 * var(--u));line-height:1.65;color:var(--ink);
  margin:0 0 calc(14 * var(--u));max-width:calc(640 * var(--u))}
.about .ab-start .ab-btn{margin-top:calc(8 * var(--u))}
.about .ab-note{margin-top:calc(24 * var(--u));padding-top:calc(20 * var(--u));
  border-top:1px solid var(--line);font-size:calc(14.5 * var(--u));line-height:1.6;
  color:var(--ink-soft)}
.about .ab-note a{color:var(--green-brand);font-weight:700}
.about .ab-start-art{position:relative;display:none;align-self:end}
@media(min-width:960px){.about .ab-start-art{display:block}}
.about .ab-start-person{display:block;width:100%;height:auto;max-width:none}

/* ---- свежесть ---- */
.about .ab-fresh{margin-top:calc(64 * var(--u));display:grid;gap:calc(30 * var(--u));align-items:start}
@media(min-width:960px){.about .ab-fresh{grid-template-columns:calc(460 * var(--u)) 1fr;gap:calc(52 * var(--u))}}
.about .ab-fresh-img{margin:0}
.about .ab-fresh-img img{display:block;width:100%;height:auto;
  border-radius:calc(32 * var(--u));border:1px solid var(--tile-line);box-shadow:var(--tile-shadow)}
@media(min-width:960px){.about .ab-fresh-img{position:sticky;top:calc(90 * var(--u))}}
.about .ab-fresh-txt p{font-size:calc(16.5 * var(--u));line-height:1.65;color:var(--ink);
  margin:0 0 calc(16 * var(--u))}
.about .ab-big{font-family:var(--font);font-weight:700;
  font-size:clamp(calc(22 * var(--u)),2.6vw,calc(30 * var(--u)))!important;line-height:1.25!important;
  color:var(--green-deep-2);padding:calc(20 * var(--u)) 0;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:calc(22 * var(--u)) 0!important}
.about .ab-fresh-txt .ab-link{margin-top:calc(10 * var(--u))}

/* ---- как читать пачку ---- */
.about .ab-pack{margin-top:calc(70 * var(--u));background:var(--green-deep);color:#fff;
  border-radius:calc(36 * var(--u));padding:calc(44 * var(--u)) calc(30 * var(--u));
  position:relative;overflow:hidden}
@media(min-width:960px){.about .ab-pack{padding:calc(56 * var(--u))}}
.about .ab-pack::before{content:'';position:absolute;right:calc(-40 * var(--u));top:calc(-30 * var(--u));
  width:calc(320 * var(--u));height:calc(272 * var(--u));
  background:url(img/banner-pattern-v.svg) no-repeat center/contain;opacity:.10;pointer-events:none}
.about .ab-pack > *{position:relative}
.about .ab-pack h2{color:#fff;max-width:calc(620 * var(--u))}
.about .ab-pack-head p{font-size:calc(16.5 * var(--u));line-height:1.6;color:rgba(255,255,255,.86);
  margin:0;max-width:calc(680 * var(--u))}
.about .ab-pack-body{display:grid;gap:calc(30 * var(--u));margin-top:calc(34 * var(--u))}
@media(min-width:960px){.about .ab-pack-body{grid-template-columns:minmax(0,1fr) calc(300 * var(--u));
  gap:calc(48 * var(--u));align-items:start}}
.about .ab-pack h3{font-family:var(--font);font-weight:900;text-transform:uppercase;
  font-size:calc(20 * var(--u));color:#fff;margin:0 0 calc(8 * var(--u))}
.about .ab-scales-note{font-size:calc(14.5 * var(--u));line-height:1.55;color:rgba(255,255,255,.75);
  margin:0 0 calc(22 * var(--u))}
.about .ab-scale-list{list-style:none;margin:0;padding:0;display:grid;gap:calc(18 * var(--u))}
@media(min-width:700px){.about .ab-scale-list{grid-template-columns:1fr 1fr;gap:calc(22 * var(--u)) calc(34 * var(--u))}}
.about .ab-scale-row{display:flex;align-items:center;gap:calc(14 * var(--u));
  margin-bottom:calc(7 * var(--u))}
.about .ab-scale-nm{font-family:var(--font);font-weight:700;font-size:calc(16 * var(--u));
  color:#fff;flex:none;min-width:calc(96 * var(--u))}
.about .ab-scale-bars{display:inline-flex;gap:calc(5 * var(--u))}
.about .ab-scale-bars i{width:calc(16 * var(--u));height:calc(8 * var(--u));border-radius:999px;
  background:rgba(255,255,255,.22)}
.about .ab-scale-bars i.on{background:var(--yellow-2,#fdb913)}
.about .ab-scale-list p{font-size:calc(14 * var(--u));line-height:1.55;color:rgba(255,255,255,.78);margin:0}
.about .ab-pack-kick{font-family:var(--font);font-weight:700;font-size:calc(19 * var(--u));
  line-height:1.3;color:#fff;margin:calc(28 * var(--u)) 0 calc(18 * var(--u))}
.about .ab-pack .ab-link{color:#fff;border-color:rgba(255,255,255,.4)}
.about .ab-pack .ab-link:hover{color:#fff;border-color:#fff}

.about .ab-pack-aside{display:flex;flex-direction:column;gap:calc(20 * var(--u));
  background:rgba(255,255,255,.07);border-radius:calc(28 * var(--u));padding:calc(26 * var(--u))}
.about .ab-pack-quote{font-family:var(--font);font-weight:700;font-size:calc(17 * var(--u));
  line-height:1.35;color:#fff;margin:0}
.about .ab-pack-aside img{display:block;width:100%;max-width:calc(200 * var(--u));height:auto;
  margin:0 auto}

/* ---- направления ---- */
.about .ab-lines{margin-top:calc(70 * var(--u))}
.about .ab-grid{display:grid;gap:calc(16 * var(--u))}
@media(min-width:700px){.about .ab-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1100px){.about .ab-grid{grid-template-columns:repeat(3,1fr)}}
.about .ab-card{background:#fff;border:1px solid var(--tile-line);box-shadow:var(--tile-shadow);
  border-radius:calc(28 * var(--u));padding:calc(26 * var(--u));
  display:flex;flex-direction:column;transition:box-shadow .25s,transform .25s}
.about .ab-card:hover{box-shadow:var(--tile-shadow-hover);transform:translateY(-3px)}
.about .ab-ico{width:calc(54 * var(--u));height:calc(54 * var(--u));border-radius:calc(18 * var(--u));
  background:var(--green-pale);color:var(--green-deep-2);
  display:flex;align-items:center;justify-content:center;margin-bottom:calc(18 * var(--u))}
.about .ab-card h3{font-family:var(--font);font-weight:900;text-transform:uppercase;
  font-size:calc(18 * var(--u));line-height:1.2;color:var(--ink);margin:0 0 calc(10 * var(--u))}
.about .ab-card p{font-size:calc(15 * var(--u));line-height:1.55;color:var(--ink-soft);
  margin:0 0 calc(18 * var(--u));flex:1}
.about .ab-card .ab-link{align-self:flex-start}

/* ---- города ---- */
.about .ab-cities{margin-top:calc(70 * var(--u))}
.about .ab-city-grid{display:grid;gap:calc(16 * var(--u))}
@media(min-width:760px){.about .ab-city-grid{grid-template-columns:repeat(3,1fr)}}
.about .ab-city{display:flex;flex-direction:column;gap:calc(6 * var(--u));
  background:#fff;border:1px solid var(--tile-line);box-shadow:var(--tile-shadow);
  border-radius:calc(24 * var(--u));padding:calc(24 * var(--u));text-decoration:none;
  transition:box-shadow .25s,transform .25s,border-color .25s}
.about .ab-city:hover{box-shadow:var(--tile-shadow-hover);transform:translateY(-3px);
  border-color:var(--green-pale)}
.about .ab-city b{font-family:var(--font);font-weight:900;text-transform:uppercase;
  font-size:calc(22 * var(--u));color:var(--ink)}
.about .ab-city-kind{font-weight:700;font-size:calc(13 * var(--u));color:var(--green-brand);
  text-transform:uppercase;letter-spacing:.08em}
.about .ab-city-addr{font-size:calc(14.5 * var(--u));line-height:1.5;color:var(--ink-soft);
  margin-top:calc(4 * var(--u))}

/* ---- знак ---- */
.about .ab-sign{margin-top:calc(70 * var(--u));background:var(--green-deep);color:#fff;
  border-radius:calc(36 * var(--u));padding:calc(44 * var(--u)) calc(30 * var(--u));
  display:grid;gap:calc(30 * var(--u));align-items:center}
@media(min-width:900px){.about .ab-sign{grid-template-columns:calc(300 * var(--u)) 1fr;
  gap:calc(52 * var(--u));padding:calc(56 * var(--u))}}
.about .ab-sign-logo{display:flex;align-items:center;justify-content:center;
  background:#fff;border-radius:calc(28 * var(--u));padding:calc(30 * var(--u))}
.about .ab-sign-logo img{display:block;width:100%;max-width:calc(220 * var(--u));height:auto}
.about .ab-sign h2{color:#fff}
.about .ab-sign p{font-size:calc(16 * var(--u));line-height:1.65;color:rgba(255,255,255,.86);
  margin:0 0 calc(12 * var(--u));max-width:calc(680 * var(--u))}
.about .ab-sign p b{color:#fff}

/* ---- вопросы ---- */
.about .ab-faq{margin-top:calc(70 * var(--u))}
.about .ab-faq-list{display:grid;gap:calc(12 * var(--u))}
.about .ab-faq details{background:#fff;border:1px solid var(--tile-line);box-shadow:var(--tile-shadow);
  border-radius:calc(24 * var(--u));padding:calc(4 * var(--u)) calc(26 * var(--u))}
.about .ab-faq summary{list-style:none;cursor:pointer;display:flex;align-items:center;
  gap:calc(16 * var(--u));padding:calc(20 * var(--u)) 0}
.about .ab-faq summary::-webkit-details-marker{display:none}
.about .ab-faq summary h3{font-family:var(--font);font-weight:700;
  font-size:calc(18 * var(--u));line-height:1.3;color:var(--ink);margin:0;flex:1}
.about .ab-faq summary::after{content:'';flex:none;width:calc(14 * var(--u));height:calc(14 * var(--u));
  border-right:2px solid var(--green-brand);border-bottom:2px solid var(--green-brand);
  transform:rotate(45deg);margin-right:calc(4 * var(--u));transition:transform .2s ease}
.about .ab-faq details[open] summary::after{transform:rotate(-135deg)}
.about .ab-faq details p{font-size:calc(15.5 * var(--u));line-height:1.65;color:var(--ink-soft);
  margin:0;padding:0 0 calc(24 * var(--u));max-width:calc(760 * var(--u))}
.about .ab-faq details p a{color:var(--green-brand);font-weight:700}

/* ---- дальше ---- */
.about .ab-cta{margin-top:calc(70 * var(--u));background:var(--cart);color:#fff;
  border-radius:calc(36 * var(--u));padding:calc(40 * var(--u)) calc(30 * var(--u));
  display:grid;gap:calc(24 * var(--u));position:relative;overflow:hidden}
@media(min-width:900px){.about .ab-cta{grid-template-columns:1.5fr auto;align-items:center;
  padding:calc(50 * var(--u)) calc(52 * var(--u))}}
.about .ab-cta::before{content:'';position:absolute;left:calc(-30 * var(--u));bottom:calc(-60 * var(--u));
  width:calc(240 * var(--u));height:calc(204 * var(--u));
  background:url(img/banner-pattern-v.svg) no-repeat center/contain;opacity:.12;pointer-events:none}
.about .ab-cta > *{position:relative}
.about .ab-cta-kick{display:block;font-family:var(--font);font-weight:700;text-transform:uppercase;
  font-size:calc(12 * var(--u));letter-spacing:.2em;color:rgba(255,255,255,.7);
  margin-bottom:calc(10 * var(--u))}
.about .ab-cta h2{color:#fff;margin:0 0 calc(12 * var(--u))}
.about .ab-cta p{font-size:calc(16 * var(--u));line-height:1.6;color:rgba(255,255,255,.9);margin:0;
  max-width:calc(640 * var(--u))}
.about .ab-cta-acts{display:flex;flex-wrap:wrap;gap:calc(12 * var(--u))}
.about .ab-cta-acts .ab-btn-white{color:var(--cart)}

/* ---- реквизиты строкой ---- */
.about .ab-legal{margin-top:calc(34 * var(--u));font-size:calc(13 * var(--u));line-height:1.7;
  color:var(--ink-soft)}
.about .ab-legal a{color:var(--ink-soft);text-decoration:none;border-bottom:1px solid var(--line)}
.about .ab-legal a:hover{color:var(--green-brand);border-color:var(--green-brand)}

/* ---- телефон ---- */
@media(max-width:599px){
  .about .ab-acts .ab-btn,
  .about .ab-cta-acts .ab-btn{width:100%}
  .about .ab-start,.about .ab-pack,.about .ab-sign,.about .ab-cta{
    padding-left:calc(22 * var(--u));padding-right:calc(22 * var(--u));
    border-radius:calc(28 * var(--u))}
  .about .ab-scale-nm{min-width:calc(84 * var(--u))}
}

/* ==========================================================================
   Frame 467: кнопка и поля карточки покупки — рисованные фигуры.

   В макете у кнопки «В корзину», счётчика, поля помола, чипов веса и
   плашки скидки одна и та же рисованная форма со скосом. Раньше здесь
   стояли обычные пилюли — это и было расхождение.

   Фигуры вынуты из Frame 467 (design/figma/shapes), у каждой стоит
   preserveAspectRatio="none", поэтому они тянутся под размер элемента,
   а обводка не плывёт за счёт vector-effect="non-scaling-stroke".
   ========================================================================== */

/* кнопка «В корзину» — 171×51 в макете */
.sc2026-page .pdp-buy .buy-cta,
.sc2026-page .pdp-buy .buy-cta:hover{
  background:url(img/pdp-btn-buy.svg) no-repeat center/100% 100%;
  border-radius:0;
  min-width:calc(171 * var(--mp));min-height:calc(51 * var(--mp));
  padding:0 calc(18 * var(--mp));
  font-size:calc(16 * var(--mp));gap:calc(10 * var(--mp))}
.sc2026-page .pdp-buy .buy-cta:hover{filter:brightness(1.08)}

/* счётчик количества — 82×49.5 */
.sc2026-page .pdp-buy .buy-qty{
  background:url(img/pdp-field-qty.svg) no-repeat center/100% 100%;
  border:0;border-radius:0;
  min-width:calc(82 * var(--mp));height:calc(50 * var(--mp));
  padding:0 calc(8 * var(--mp));gap:0;justify-content:space-between}
.sc2026-page .pdp-buy .buy-qty .quantity-input{width:calc(26 * var(--mp));font-size:calc(18 * var(--mp))}
.sc2026-page .pdp-buy .buy-qty button{width:calc(22 * var(--mp));height:calc(22 * var(--mp));
  font-size:calc(18 * var(--mp));color:var(--green-deep-2)}

/* поле помола — 260×35.5 */
.sc2026-page .pdp-buy .buy-select select{
  background:url(img/pdp-field-select.svg) no-repeat center/100% 100%;
  border:0;border-radius:0;height:calc(36 * var(--mp));
  padding:0 calc(34 * var(--mp)) 0 calc(18 * var(--mp));
  font-size:calc(14 * var(--mp));line-height:calc(36 * var(--mp))}
.sc2026-page .pdp-buy .buy-select select:focus{outline:none;filter:brightness(.97)}

/* чипы веса — 89.5×35.5 в покое и 91×37 у выбранного */
.sc2026-page .pdp-buy .buy-chips button{
  background:url(img/pdp-chip-off.svg) no-repeat center/100% 100%;
  border:0;border-radius:0;color:var(--green-deep-2);
  min-width:calc(89 * var(--mp));height:calc(36 * var(--mp));
  padding:0 calc(14 * var(--mp));font-size:calc(14 * var(--mp));font-weight:700}
.sc2026-page .pdp-buy .buy-chips button.on{
  background:url(img/pdp-chip-on.svg) no-repeat center/100% 100%;color:#1D1D1B}

/* плашка скидки «−27%» — 89.5×35.5 */
.sc2026-page .pdp-buy .buy-off{
  background:url(img/pdp-badge-off.svg) no-repeat center/100% 100%;
  border-radius:0;color:#fff;min-width:calc(89 * var(--mp));height:calc(36 * var(--mp));
  display:inline-flex;align-items:center;justify-content:center;padding:0 calc(12 * var(--mp))}

/* ---------- «В корзину»: состояние и окно подтверждения ----------
   Мигающая надпись «Добавлено» ничего не сообщала: через секунду кнопка
   возвращалась в исходный вид. Теперь она остаётся зелёной «В корзине»
   и ведёт в корзину — состояние видно и после перезагрузки страницы,
   потому что при отрисовке проверяется, лежит ли предложение в корзине. */
.add-to-cart-btn{transition:opacity .18s,filter .18s}
.add-to-cart-btn.is-adding{opacity:.6;pointer-events:none}

.pcard .pbtn.add-to-cart-btn.is-in-cart,
.pcard .pbtn.add-to-cart-btn.is-in-cart:hover{
  background-image:url(img/cap-green-l.svg),url(img/cap-green-r.svg),
    linear-gradient(var(--green-brand),var(--green-brand))}
.sc2026-page .pdp-buy .buy-cta.is-in-cart,
.sc2026-page .pdp-buy .buy-cta.is-in-cart:hover{
  background:url(img/pdp-btn-buy-in.svg?v=1) no-repeat center/100% 100%}
.add-to-cart-btn.is-in-cart:hover{filter:brightness(1.08)}

/* окно подтверждения */
.sc-added{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;
  opacity:0;transition:opacity .22s ease}
.sc-added.on{opacity:1}
.sc-added-scrim{position:absolute;inset:0;background:rgba(20,40,20,.42)}
.sc-added-box{position:relative;z-index:1;width:min(calc(560 * var(--u)),calc(100vw - 32px));
  background:#fff;border:1px solid var(--tile-line);border-radius:calc(28 * var(--u));
  padding:calc(22 * var(--u)) calc(24 * var(--u));box-shadow:0 24px 60px rgba(20,40,20,.24);
  transform:translateY(10px) scale(.98);transition:transform .22s var(--ease)}
.sc-added.on .sc-added-box{transform:none}
.sc-added-head{display:flex;align-items:center;gap:calc(12 * var(--u))}
.sc-added-ok{flex:none;width:calc(34 * var(--u));height:calc(34 * var(--u));border-radius:50%;
  background:var(--green-pale);color:var(--green-brand);display:flex;align-items:center;justify-content:center}
.sc-added-head b{font-family:var(--font);font-weight:900;text-transform:uppercase;
  font-size:calc(18 * var(--u));color:var(--green-deep-2);flex:1}
.sc-added-x{background:none;color:var(--ink-soft);padding:calc(4 * var(--u));cursor:pointer;
  transition:color .15s}
.sc-added-x:hover{color:var(--cart)}
.sc-added-item{display:flex;align-items:center;gap:calc(14 * var(--u));
  margin-top:calc(18 * var(--u));padding-top:calc(16 * var(--u));border-top:1.5px solid var(--line)}
.sc-added-ph{flex:none;width:calc(64 * var(--u));height:calc(64 * var(--u));border-radius:calc(16 * var(--u));
  background:var(--bg-soft);display:flex;align-items:center;justify-content:center;padding:calc(6 * var(--u))}
.sc-added-ph img{max-width:100%;max-height:100%;object-fit:contain;mix-blend-mode:multiply}
.sc-added-item > div{flex:1;min-width:0}
.sc-added-item b{display:block;font-weight:800;font-size:calc(15 * var(--u));line-height:1.3}
.sc-added-item span{display:block;font-size:calc(13 * var(--u));color:var(--ink-soft);margin-top:calc(4 * var(--u))}
.sc-added-price{flex:none;font-family:var(--font);font-weight:900;font-size:calc(18 * var(--u));
  color:var(--green-deep-2);white-space:nowrap}
.sc-added-sum{display:flex;align-items:center;justify-content:space-between;gap:calc(12 * var(--u));
  margin-top:calc(14 * var(--u));padding-top:calc(14 * var(--u));border-top:1.5px solid var(--line);
  font-size:calc(14 * var(--u));color:var(--ink-soft)}
.sc-added-sum b{font-family:var(--font);font-weight:900;font-size:calc(20 * var(--u));color:var(--green-deep-2)}
.sc-added-acts{display:flex;flex-wrap:wrap;gap:calc(12 * var(--u));margin-top:calc(20 * var(--u))}
.sc-added-acts .pbtn{flex:1;justify-content:center;text-decoration:none;color:#fff;min-width:calc(180 * var(--u))}
.sc-added-more{flex:1;min-width:calc(160 * var(--u));background:#fff;border:2px solid var(--green-deep-2);
  color:var(--green-deep-2);font-weight:700;font-size:calc(15 * var(--u));
  padding:calc(13 * var(--u)) calc(18 * var(--u));border-radius:calc(14 * var(--u));cursor:pointer;
  transition:background .18s}
.sc-added-more:hover{background:var(--green-pale)}
@media(prefers-reduced-motion:reduce){.sc-added,.sc-added-box{transition:none}}

/* ==========================================================================
   Оформление заказа — по образцу, который прислал заказчик (Ligastore),
   но в нашей форме и цвете.

   Компонент sale.order.ajax собирает разметку сам, на клиенте. Его DOM не
   трогаем: скин целиком на классах .bx-soa-*, а порядок блоков задан
   через order у флекс-колонки. Так оформление продолжает считать доставку
   и оплату штатно — переписывать логику заказа ради вида нельзя.
   ========================================================================== */
.sc-checkout .bx-soa-wrapper{margin:0}
.sc-checkout #bx-soa-order{display:grid;gap:calc(24 * var(--u));align-items:start}
@media(min-width:1000px){
  .sc-checkout #bx-soa-order{grid-template-columns:1fr calc(400 * var(--u));gap:calc(30 * var(--u))}
}
.sc-checkout #bx-soa-order > div{max-width:none;flex:none;width:auto;padding:0}

/* левая колонка — карточки шагов в порядке из образца:
   адрес → способ получения → товары → получатель → оплата */
.sc-checkout .bx-soa{display:flex;flex-direction:column;gap:calc(16 * var(--u))}
.sc-checkout #bx-soa-auth{display:none}          /* гостю вход не нужен */
.sc-checkout #bx-soa-region{order:1}
.sc-checkout #bx-soa-delivery{order:2}
.sc-checkout #bx-soa-pickup{order:3}
.sc-checkout #bx-soa-basket{order:4}
.sc-checkout #bx-soa-properties{order:5}
.sc-checkout #bx-soa-paysystem{order:6}

.sc-checkout .bx-soa-section{background:#fff;border:1px solid var(--tile-line);
  border-radius:calc(28 * var(--u));margin:0;overflow:hidden}
.sc-checkout .bx-soa-section.bx-step-completed{border-color:var(--green-pale)}
.sc-checkout .bx-soa-section-title-container{background:transparent;border:0;
  padding:calc(20 * var(--u)) calc(24 * var(--u)) 0}
.sc-checkout .bx-soa-section-title{font-family:var(--font);font-weight:900;
  text-transform:uppercase;font-size:calc(20 * var(--u));color:var(--green-deep-2);
  display:flex;align-items:center;gap:calc(12 * var(--u))}
.sc-checkout .bx-soa-section-title .bx-soa-section-title-count{flex:none;
  width:calc(30 * var(--u));height:calc(30 * var(--u));border-radius:50%;
  background:var(--green-brand);color:#fff;display:flex;align-items:center;
  justify-content:center;font-size:calc(15 * var(--u));font-weight:700}
.sc-checkout .bx-soa-section-content{padding:calc(16 * var(--u)) calc(24 * var(--u)) calc(22 * var(--u))}

/* карточки способов доставки и оплаты */
.sc-checkout .bx-soa-pp-item-container{display:grid;gap:calc(12 * var(--u))}
@media(min-width:700px){.sc-checkout .bx-soa-pp-item-container{grid-template-columns:repeat(2,1fr)}}
.sc-checkout .bx-soa-pp-company{background:#fff;border:2px solid var(--line);
  border-radius:calc(20 * var(--u));padding:calc(14 * var(--u)) calc(16 * var(--u));
  margin:0;min-height:calc(76 * var(--u));display:flex;align-items:center;
  gap:calc(12 * var(--u));cursor:pointer;transition:border-color .18s,box-shadow .18s}
.sc-checkout .bx-soa-pp-company:hover{border-color:var(--green-pale)}
.sc-checkout .bx-soa-pp-company.bx-selected{border-color:var(--green-brand);
  box-shadow:0 0 0 calc(3 * var(--u)) rgba(0,114,59,.12)}
.sc-checkout .bx-soa-pp-company-graf-container{flex:none;width:calc(46 * var(--u))}
.sc-checkout .bx-soa-pp-company-graf-container img{max-width:100%;height:auto}
.sc-checkout .bx-soa-pp-company-smalltitle{font-weight:700;font-size:calc(14 * var(--u));
  line-height:1.3;color:var(--ink)}
.sc-checkout .bx-soa-pp-delivery-cost,
.sc-checkout .bx-soa-pp-company .bx-soa-pp-price{font-family:var(--font);font-weight:900;
  font-size:calc(16 * var(--u));color:var(--green-deep-2);white-space:nowrap}
.sc-checkout .bx-soa-pp-company-selected{display:flex;align-items:center;gap:calc(12 * var(--u))}
.sc-checkout .bx-soa-pp-company-selected img{max-width:calc(46 * var(--u));height:auto}

/* поля формы — фирменной формой, как в карточке товара */
.sc-checkout .form-control,
.sc-checkout input[type=text],.sc-checkout input[type=tel],
.sc-checkout input[type=email],.sc-checkout textarea{
  background:url(img/pdp-field-select.svg) no-repeat center/100% 100%;
  border:0;border-radius:0;box-shadow:none;
  min-height:calc(46 * var(--u));padding:0 calc(18 * var(--u));
  font-family:var(--font-ui);font-size:calc(15 * var(--u));color:#000}
.sc-checkout textarea{padding:calc(12 * var(--u)) calc(18 * var(--u));min-height:calc(96 * var(--u))}
.sc-checkout select.form-control{
  background:url(img/pdp-field-select.svg) no-repeat center/100% 100%;
  appearance:none;-webkit-appearance:none;padding-right:calc(38 * var(--u))}
.sc-checkout .form-control:focus{outline:none;filter:brightness(.97)}
.sc-checkout .bx-soa-customer-label,
.sc-checkout label{font-weight:700;font-size:calc(13 * var(--u));color:var(--ink-soft);
  margin-bottom:calc(6 * var(--u))}

/* кнопки шагов и оформления */
.sc-checkout .btn-default,.sc-checkout .btn-primary,.sc-checkout .btn-lg,
.sc-checkout .bx-soa-editstep{
  background:url(img/pdp-btn-buy.svg) no-repeat center/100% 100%;
  border:0;border-radius:0;color:#fff;font-weight:700;font-size:calc(15 * var(--u));
  min-height:calc(48 * var(--u));padding:0 calc(24 * var(--u));
  display:inline-flex;align-items:center;justify-content:center;transition:filter .18s}
.sc-checkout .btn-default:hover,.sc-checkout .btn-primary:hover,
.sc-checkout .btn-lg:hover,.sc-checkout .bx-soa-editstep:hover{filter:brightness(1.08);color:#fff}

/* правая колонка — сводка заказа */
.sc-checkout .bx-soa-cart-total{background:#fff;border:1px solid var(--tile-line);
  border-radius:calc(28 * var(--u));padding:calc(22 * var(--u));margin:0}
.sc-checkout .bx-soa-cart-total-line{display:flex;align-items:baseline;
  justify-content:space-between;gap:calc(12 * var(--u));margin-bottom:calc(11 * var(--u));
  font-size:calc(14.5 * var(--u));color:var(--ink-soft)}
.sc-checkout .bx-soa-cart-total-line .bx-soa-cart-d{color:var(--ink);font-weight:700;text-align:right}
.sc-checkout .bx-soa-cart-total-line-total{border-top:1.5px solid var(--line);
  margin-top:calc(16 * var(--u));padding-top:calc(16 * var(--u))}
.sc-checkout .bx-soa-cart-total-line-total .bx-soa-cart-t{font-weight:700;color:var(--ink)}
.sc-checkout .bx-soa-cart-total-line-total .bx-soa-cart-d{font-family:var(--font);
  font-weight:900;font-size:calc(28 * var(--u));color:var(--green-deep-2)}
.sc-checkout .bx-soa-cart-total-button-container{margin-top:calc(18 * var(--u))}
.sc-checkout .bx-soa-cart-total-button-container .btn{width:100%}
.sc-checkout .bx-soa-cart-total-ghost{display:none}

/* товары в заказе */
.sc-checkout .bx-soa-item-tr{border-color:var(--line)}
.sc-checkout .bx-soa-item-title a{color:var(--green-deep-2);font-weight:700;text-decoration:none}
.sc-checkout .bx-soa-item-title a:hover{color:var(--green-brand)}
.sc-checkout .bx-soa-item-imgcontainer{border:0;background:var(--bg-soft);
  border-radius:calc(16 * var(--u));padding:calc(6 * var(--u))}

/* Список способов и панель описания: у коробочной вёрстки это .row из двух
   колонок, но сетка внутри ужимала карточки до половины ширины. Раздаём
   доли явно и вынимаем цену из абсолютного позиционирования — она налезала
   на угол карточки тёмной плашкой. */
@media(min-width:1000px){
  .sc-checkout .bx-soa-pp.row{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);
    gap:calc(20 * var(--u));align-items:start;margin:0}
  .sc-checkout .bx-soa-pp.row > *{max-width:none;flex:none;width:auto;padding:0}
}
.sc-checkout .bx-soa-pp-item-container{width:100%}
@media(min-width:700px){.sc-checkout .bx-soa-pp-item-container{grid-template-columns:repeat(2,minmax(0,1fr))}}

.sc-checkout .bx-soa-pp-company{flex-direction:column;align-items:flex-start;
  justify-content:flex-start;text-align:left;gap:calc(8 * var(--u));
  padding:calc(16 * var(--u));min-height:calc(112 * var(--u))}
.sc-checkout .bx-soa-pp-company-graf-container{width:calc(38 * var(--u))}
.sc-checkout .bx-soa-pp-delivery-cost{position:static;background:none;color:var(--green-deep-2);
  padding:0;margin-top:auto;font-size:calc(17 * var(--u));border-radius:0}

/* панель с описанием выбранного способа */
.sc-checkout .bx-soa-pp-desc-container,
.sc-checkout .bx-soa-pp-company-selected{background:var(--bg-soft);
  border-radius:calc(22 * var(--u));padding:calc(18 * var(--u))}
.sc-checkout .bx-soa-pp-desc-container .bx-soa-pp-company-graf-container{margin-bottom:calc(10 * var(--u))}

/* Коробочная тема задаёт карточке способа фиксированную ширину — в нашей
   сетке она сжималась до 133 px. Растягиваем на ячейку и ставим цену под
   названием, а не над ним. */
.sc-checkout .bx-soa-pp-company{width:100%!important;max-width:none!important;
  float:none!important;margin:0!important}
.sc-checkout .bx-soa-pp-company-graf-container{order:1}
.sc-checkout .bx-soa-pp-company-smalltitle{order:2}
.sc-checkout .bx-soa-pp-delivery-cost{order:3}

/* Каждая карточка способа обёрнута в лишний .row — именно он попадает в
   ячейку сетки, а карточка внутри вылезала за неё. Обёртку делаем
   прозрачной и заодно ограничиваем высоту значка службы. */
.sc-checkout .bx-soa-pp-item-container > .row{display:block;width:auto;margin:0}
.sc-checkout .bx-soa-pp-company{width:auto!important}
.sc-checkout .bx-soa-pp-company-graf-container{width:auto;max-height:calc(46 * var(--u));
  display:flex;align-items:center;gap:calc(8 * var(--u))}
.sc-checkout .bx-soa-pp-company-graf-container img{max-height:calc(40 * var(--u));width:auto}

/* Сетка из двух колонок не сработала: обёртки .row остаются блочными и
   занимают всю ширину ячейки. Flex с переносом надёжнее — карточки идут
   по две в ряд и тянутся до одинаковой высоты. */
@media(min-width:700px){
  .sc-checkout .bx-soa-pp-item-container{display:flex;flex-wrap:wrap;
    gap:calc(12 * var(--u));grid-template-columns:none}
  .sc-checkout .bx-soa-pp-item-container > .row{flex:0 0 calc(50% - calc(6 * var(--u)));
    display:flex}
  .sc-checkout .bx-soa-pp-item-container > .row > .bx-soa-pp-company{flex:1}
}

/* На карточке висит бутстраповский col-6 — он давал ей половину обёртки
   и карточки выходили по 121 px. Снимаем ограничение колонки. */
.sc-checkout .bx-soa-pp-item-container > .row > .bx-soa-pp-company{
  flex:1 1 100%!important;max-width:100%!important}

/* Разобрались окончательно: .row внутри контейнера один на все карточки,
   а не по одному на каждую. Значит переносить нужно его, а долю ширины
   задавать самим карточкам. */
@media(min-width:700px){
  .sc-checkout .bx-soa-pp-item-container{display:block}
  .sc-checkout .bx-soa-pp-item-container > .row{display:flex;flex-wrap:wrap;
    gap:calc(12 * var(--u));width:auto;margin:0}
  .sc-checkout .bx-soa-pp-item-container > .row > .bx-soa-pp-company{
    flex:0 0 calc(50% - calc(6 * var(--u)))!important;
    max-width:calc(50% - calc(6 * var(--u)))!important}
}

/* Значок службы и служебный чекбокс. Выбор показываем рамкой карточки,
   как в образце, поэтому сам чекбокс прячем, а картинку не растягиваем. */
.sc-checkout .bx-soa-pp-company input[type=radio],
.sc-checkout .bx-soa-pp-company input[type=checkbox]{position:absolute;opacity:0;pointer-events:none}
.sc-checkout .bx-soa-pp-company{position:relative}
.sc-checkout .bx-soa-pp-company-graf-container{max-height:calc(44 * var(--u));overflow:hidden}
.sc-checkout .bx-soa-pp-company-graf-container img{max-height:calc(36 * var(--u));
  max-width:calc(90 * var(--u));width:auto;object-fit:contain}

/* Блок согласия и кнопка «Оформить заказ» (#bx-soa-orderSave) уезжали
   в самый верх страницы: у них нет собственного order, а флекс ставит
   такие элементы перед теми, у кого order задан. Даём общему потомку
   большой порядок, а шагам — их номера. */
.sc-checkout .bx-soa > *{order:20}
.sc-checkout #bx-soa-region{order:1}
.sc-checkout #bx-soa-delivery{order:2}
.sc-checkout #bx-soa-pickup{order:3}
.sc-checkout #bx-soa-basket{order:4}
.sc-checkout #bx-soa-properties{order:5}
.sc-checkout #bx-soa-paysystem{order:6}
.sc-checkout #bx-soa-orderSave{order:30}

/* Согласие и итоговая кнопка внизу — оформляем как отдельную карточку. */
.sc-checkout #bx-soa-orderSave{background:#fff;border:1px solid var(--tile-line);
  border-radius:calc(28 * var(--u));padding:calc(22 * var(--u)) calc(24 * var(--u))}
.sc-checkout #bx-soa-orderSave .checkbox,
.sc-checkout #bx-soa-orderSave label{display:flex;gap:calc(10 * var(--u));
  align-items:flex-start;font-size:calc(13 * var(--u));line-height:1.5;color:var(--ink-soft);
  font-weight:400;margin:0 0 calc(16 * var(--u))}
.sc-checkout #bx-soa-orderSave input[type=checkbox]{flex:none;width:calc(20 * var(--u));
  height:calc(20 * var(--u));margin-top:calc(2 * var(--u));accent-color:var(--green-brand)}

/* Кнопка оформления: пока шаги не заполнены, она отключена — показываем
   это приглушённостью, а не бледно-розовой заливкой поверх фигуры. */
.sc-checkout .btn[disabled],.sc-checkout .btn.disabled{opacity:.45;filter:grayscale(.4);cursor:not-allowed}

/* Номера шагов. Битрикс нумерует блоки в своём порядке, а мы их
   переставили — на экране получалось «1, 2, 5». Считаем сами по
   визуальному порядку, родной счётчик прячем. */
.sc-checkout .bx-soa{counter-reset:sc-step}
.sc-checkout .bx-soa-section-title-count,
.sc-checkout .bx-soa-section-title > .bx-soa-section-title-count{display:none!important}
.sc-checkout #bx-soa-region .bx-soa-section-title::before{counter-increment:sc-step}
.sc-checkout .bx-soa-section-title::before{content:counter(sc-step);
  flex:none;width:calc(30 * var(--u));height:calc(30 * var(--u));border-radius:50%;
  background:var(--green-brand);color:#fff;display:flex;align-items:center;justify-content:center;
  font-family:var(--font-ui);font-size:calc(15 * var(--u));font-weight:700}
.sc-checkout #bx-soa-region .bx-soa-section-title::before{content:'1'}
.sc-checkout #bx-soa-delivery .bx-soa-section-title::before{content:'2'}
.sc-checkout #bx-soa-basket .bx-soa-section-title::before{content:'3'}
.sc-checkout #bx-soa-properties .bx-soa-section-title::before{content:'4'}
.sc-checkout #bx-soa-paysystem .bx-soa-section-title::before{content:'5'}

/* Миниатюра товара — фоновой картинкой, у блока не было размеров и он
   схлопывался в серую полоску. */
.sc-checkout .bx-soa-item-img-block{width:calc(64 * var(--u));height:calc(64 * var(--u));
  flex:none;border-radius:calc(16 * var(--u));background-color:var(--bg-soft);
  background-size:contain;background-repeat:no-repeat;background-position:center;
  border:0;margin-right:calc(14 * var(--u))}
.sc-checkout .bx-soa-item-tr{display:flex;align-items:center;gap:calc(14 * var(--u));
  padding:calc(14 * var(--u)) 0;border-bottom:1.5px solid var(--line)}
.sc-checkout .bx-soa-item-tr:last-child{border-bottom:0}
.sc-checkout .bx-soa-item-td{padding:0}
.sc-checkout .bx-soa-item-td:first-child{flex:1;display:flex;align-items:center;min-width:0}
.sc-checkout .bx-soa-item-properties{font-size:calc(13 * var(--u));color:var(--ink-soft)}
.sc-checkout .bx-soa-item-properties .bx-soa-item-property-value{color:var(--ink)}

/* Картинка товара лежит фоном на внутреннем .bx-soa-item-imgcontainer,
   а размеров у него не было — выходила полоска 36×10. Растягиваем его
   на всю миниатюру. */
.sc-checkout .bx-soa-item-imgcontainer{width:100%;height:100%;padding:calc(6 * var(--u));
  background-size:contain;background-repeat:no-repeat;background-position:center;
  background-color:transparent;border-radius:calc(16 * var(--u));border:0;margin:0}
.sc-checkout .bx-soa-item-img-block{padding:0;overflow:hidden}

/* Строка товара: название и свойства в столбик слева, количество и цена
   прижаты вправо и не пляшут по вертикали. */
.sc-checkout .bx-soa-item-td:first-child{gap:calc(14 * var(--u))}
.sc-checkout .bx-soa-item-title{min-width:0}
.sc-checkout .bx-soa-item-title a{display:block;font-size:calc(15 * var(--u));line-height:1.3}
.sc-checkout .bx-soa-item-properties{margin-top:calc(6 * var(--u));display:flex;
  flex-wrap:wrap;gap:calc(4 * var(--u)) calc(14 * var(--u))}
.sc-checkout .bx-soa-item-properties > *{display:inline-flex;gap:calc(5 * var(--u))}
.sc-checkout .bx-soa-item-tr > .bx-soa-item-td:not(:first-child){flex:none;text-align:right;
  font-weight:700;white-space:nowrap}

/* ==========================================================================
   Корзина — по образцу заказчика: слева карточка со списком, справа липкая
   сводка с отметкой «Я юридическое лицо», итогом и переходом к оформлению.
   ========================================================================== */
.sc-cart .cart-grid{display:grid;gap:calc(22 * var(--u));align-items:start;padding-bottom:calc(40 * var(--u))}
@media(min-width:1000px){.sc-cart .cart-grid{grid-template-columns:1fr calc(420 * var(--u));gap:calc(28 * var(--u))}}

.sc-cart .cart-box{background:#fff;border:1px solid var(--tile-line);border-radius:calc(28 * var(--u));
  padding:calc(22 * var(--u)) calc(24 * var(--u))}
.sc-cart .cart-count{font-weight:700;font-size:calc(16 * var(--u));color:var(--ink);margin:0}
.sc-cart .cart-tools{display:flex;align-items:center;justify-content:space-between;gap:calc(16 * var(--u));
  margin-top:calc(16 * var(--u));padding-bottom:calc(14 * var(--u));border-bottom:1.5px solid var(--line)}
.sc-cart .cart-drop{background:none;border:0;color:var(--cart);font-weight:700;
  font-size:calc(14 * var(--u));cursor:pointer;transition:opacity .18s}
.sc-cart .cart-drop[disabled]{opacity:.4;cursor:default}

.sc-cart .cart-check{display:inline-flex;align-items:center;gap:calc(10 * var(--u));cursor:pointer;
  font-weight:700;font-size:calc(14 * var(--u));color:var(--ink)}
.sc-cart .cart-check input{width:calc(20 * var(--u));height:calc(20 * var(--u));flex:none;
  accent-color:var(--green-brand);cursor:pointer}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.sc-cart .cart-items{display:flex;flex-direction:column}
.sc-cart .ci{display:grid;gap:calc(14 * var(--u));align-items:center;
  grid-template-columns:auto calc(84 * var(--u)) 1fr;
  padding:calc(18 * var(--u)) 0;border-bottom:1.5px solid var(--line)}
.sc-cart .ci:last-child{border-bottom:0}
@media(min-width:800px){
  .sc-cart .ci{grid-template-columns:auto calc(84 * var(--u)) 1fr calc(150 * var(--u)) calc(130 * var(--u))}
}
.sc-cart .ci .ph{background:var(--bg-soft);border-radius:calc(16 * var(--u));aspect-ratio:1;
  display:flex;align-items:center;justify-content:center;padding:calc(8 * var(--u))}
.sc-cart .ci .ph img{max-height:100%;max-width:100%;object-fit:contain;mix-blend-mode:multiply}
.sc-cart .ci h2{font-size:calc(16 * var(--u));font-weight:800;line-height:1.3;margin:0}
.sc-cart .ci h2 a{color:inherit;text-decoration:none}
.sc-cart .ci h2 a:hover{color:var(--green-brand)}
.sc-cart .ci .opts{display:flex;flex-wrap:wrap;gap:calc(8 * var(--u));margin-top:calc(10 * var(--u))}
.sc-cart .ci .opt{font-size:calc(12.5 * var(--u));font-weight:700;background:var(--green-pale);
  color:var(--green-deep-2);padding:calc(5 * var(--u)) calc(11 * var(--u));border-radius:999px}
.sc-cart .ci-price{display:flex;flex-direction:column;gap:calc(4 * var(--u));text-align:right}
.sc-cart .ci-price b{font-family:var(--font);font-weight:900;font-size:calc(18 * var(--u));
  color:var(--ink);white-space:nowrap}
.sc-cart .ci-price span{font-size:calc(12.5 * var(--u));color:var(--ink-soft);white-space:nowrap}
.sc-cart .ci-qty{display:flex;flex-direction:column;align-items:flex-end;gap:calc(6 * var(--u))}
.sc-cart .qty{display:flex;align-items:center;border:1.5px solid var(--green-deep-2);border-radius:999px;overflow:hidden}
.sc-cart .qty button{width:calc(38 * var(--u));height:calc(40 * var(--u));font-size:calc(19 * var(--u));
  font-weight:700;color:var(--green-deep-2);background:none;cursor:pointer;transition:background .15s}
.sc-cart .qty button:hover{background:var(--green-pale)}
.sc-cart .qty span{min-width:calc(34 * var(--u));text-align:center;font-weight:800;font-size:calc(15 * var(--u))}
.sc-cart .qty-unit{font-size:calc(12 * var(--u));color:var(--ink-soft)}
.sc-cart .ci .del{font-size:calc(12.5 * var(--u));color:#9a9a95;background:none;border:0;
  padding:calc(2 * var(--u));cursor:pointer;transition:color .15s}
.sc-cart .ci .del:hover{color:var(--cart)}

.sc-cart .total{background:#fff;border:1px solid var(--tile-line);border-radius:calc(28 * var(--u));
  padding:calc(24 * var(--u));position:sticky;top:calc(96 * var(--u))}
.sc-cart .cart-company{width:100%;border:1.5px solid var(--line);border-radius:calc(16 * var(--u));
  padding:calc(14 * var(--u)) calc(16 * var(--u));margin-bottom:calc(20 * var(--u))}
.sc-cart .tl-sum{display:flex;align-items:baseline;justify-content:space-between;gap:calc(12 * var(--u))}
.sc-cart .tl-sum span{font-family:var(--font);font-weight:900;text-transform:uppercase;
  font-size:calc(20 * var(--u));color:var(--ink)}
.sc-cart .tl-sum b{font-family:var(--font);font-weight:900;font-size:calc(30 * var(--u));color:var(--green-deep-2)}
.sc-cart .cart-go{display:flex;justify-content:center;width:100%;margin-top:calc(20 * var(--u));
  color:#fff;text-decoration:none}
.sc-cart .total .note{font-size:calc(12.5 * var(--u));color:#8a8a85;margin-top:calc(14 * var(--u));
  text-align:center;line-height:1.5}
.sc-cart .cart-empty{display:flex;flex-direction:column;align-items:flex-start;gap:calc(16 * var(--u));
  padding:calc(30 * var(--u)) 0 calc(60 * var(--u))}
.sc-cart .cart-empty .pbtn{text-decoration:none;color:#fff}

/* На корзине и оформлении подвала нет — как в образце: страница
   заканчивается действием, ничто не уводит с шага покупки. */
body:has(.sc-cart) .site-foot,
body:has(.sc-checkout) .site-foot{display:none}

/* ---------- Оформление: доводка под образец ----------
   В образце у шагов нет номеров — только названия, и каждый шаг отдельной
   карточкой. Кнопка оформления одна и живёт в правой сводке. */
.sc-checkout .bx-soa-section-title::before{content:none!important}
.sc-checkout .bx-soa-section-title{gap:0}

/* Кнопка оформления живёт и в блоке согласия, и в сводке. Прятать её
   нельзя: компонент показывает кнопку в сводке только на последнем шаге
   (SHOW_ORDER_BUTTON), и, спрятав вторую, мы оставили страницу вообще
   без кнопки заказа. Оформляем обе одинаково. */
.sc-checkout #bx-soa-orderSave > a.btn{width:100%;margin-top:calc(14 * var(--u))}
.sc-checkout #bx-soa-orderSave{padding:calc(18 * var(--u)) calc(24 * var(--u))}
.sc-checkout #bx-soa-orderSave .checkbox,
.sc-checkout #bx-soa-orderSave label{margin:0}

/* Правая сводка — как «Ваш заказ» в образце. */
.sc-checkout .bx-soa-cart-total::before{content:'Ваш заказ';display:block;
  font-family:var(--font);font-weight:900;text-transform:uppercase;
  font-size:calc(20 * var(--u));color:var(--green-deep-2);margin-bottom:calc(18 * var(--u))}
.sc-checkout .bx-soa-cart-total-button-container .btn{min-height:calc(52 * var(--u));
  font-size:calc(16 * var(--u))}


/* ---------- Плитки: единый вид как в примерах заказчика ----------
   Жирная бордовая обводка ушла: карточка — белая, с еле заметной линией
   и мягкой тенью, которая усиливается при наведении. Бордовым остаётся
   только кнопка «В корзину». */
.pcard,
.sc-cart .cart-box,.sc-cart .total,
.sc-map .spot,.sc-map .map-box,
.about .ab-card,.about .ab-hero-img,.about .ab-story-img,
.sc-added-box,
.sc-checkout .bx-soa-section,.sc-checkout .bx-soa-cart-total,
.sc-checkout #bx-soa-orderSave{
  border:1px solid var(--tile-line);box-shadow:var(--tile-shadow);
  transition:box-shadow .25s ease,transform .25s ease}
.pcard:hover,.sc-map .spot:hover,.about .ab-card:hover{
  box-shadow:var(--tile-shadow-hover)}
.sc-map .spot.on{border-color:var(--green-brand);
  box-shadow:0 0 0 2px rgba(0,114,59,.14),var(--tile-shadow)}

/* Страница под плитками — светлая, чтобы белые карточки читались,
   как в примерах. */
body:has(.sc-cart),body:has(.sc-checkout){background:#f6f6f3}
.sc-checkout .bx-soa-pp-company{border:1px solid var(--tile-line);box-shadow:none}
.sc-checkout .bx-soa-pp-company.bx-selected{border-color:var(--green-brand);
  box-shadow:0 0 0 2px rgba(0,114,59,.14)}

/* Значок службы доставки приходит картинкой произвольного размера и
   растягивался на всю карточку. Ограничиваем и возвращаем цену на место —
   в образце она стоит рядом с названием. */
.sc-checkout .bx-soa-pp-company{align-items:flex-start;gap:calc(10 * var(--u));
  padding:calc(16 * var(--u));min-height:calc(104 * var(--u))}
.sc-checkout .bx-soa-pp-company-graf-container{width:auto;max-width:calc(56 * var(--u));
  max-height:calc(40 * var(--u));display:flex;align-items:center;overflow:hidden}
.sc-checkout .bx-soa-pp-company-graf-container img{max-height:calc(34 * var(--u));
  max-width:calc(56 * var(--u));width:auto;height:auto;object-fit:contain}
.sc-checkout .bx-soa-pp-delivery-cost{position:static;display:block;background:none;
  padding:0;margin:0;border-radius:0;color:var(--green-deep-2);
  font-family:var(--font);font-weight:900;font-size:calc(16 * var(--u));order:3}
.sc-checkout .bx-soa-pp-company-smalltitle{order:2;font-size:calc(14 * var(--u));line-height:1.3}
.sc-checkout .bx-soa-pp-company-graf-container{order:1}

/* Цена лежит ВНУТРИ контейнера значка, а у него от коробочной темы своя
   рамка и высота — получалась узкая коробка с картинкой и цифрой внутри.
   Снимаем рамку и высоту, раскладываем содержимое в строку. */
.sc-checkout .bx-soa-pp-company-graf-container{border:0!important;background:none!important;
  width:100%!important;max-width:none!important;height:auto!important;max-height:none!important;
  min-height:0!important;padding:0!important;margin:0 0 calc(10 * var(--u))!important;
  display:flex!important;align-items:center;gap:calc(10 * var(--u));overflow:visible}
.sc-checkout .bx-soa-pp-company-graf-container img{max-height:calc(32 * var(--u))!important;
  max-width:calc(52 * var(--u))!important;width:auto!important;height:auto!important;object-fit:contain}
.sc-checkout .bx-soa-pp-company-graf-container .bx-soa-pp-delivery-cost{margin-left:auto!important}

/* ==========================================================================
   Блок «Адрес доставки» на оформлении — по образцу заказчика.
   ========================================================================== */
.sc-addr{background:#fff;border:1px solid var(--tile-line);box-shadow:var(--tile-shadow);
  border-radius:calc(28 * var(--u));padding:calc(22 * var(--u)) calc(24 * var(--u));
  margin-bottom:calc(16 * var(--u))}
.sc-addr-head{display:flex;align-items:center;justify-content:space-between;
  gap:calc(16 * var(--u));flex-wrap:wrap}
.sc-addr-head h2{font-family:var(--font);font-weight:900;text-transform:uppercase;
  font-size:calc(20 * var(--u));color:var(--green-deep-2);margin:0}

.sc-addr-mode{display:flex;gap:calc(10 * var(--u))}
.sc-addr-mode button{display:inline-flex;align-items:center;gap:calc(9 * var(--u));
  background:#fff;border:1.5px solid var(--tile-line);border-radius:calc(14 * var(--u));
  padding:calc(11 * var(--u)) calc(18 * var(--u));font-weight:700;font-size:calc(14 * var(--u));
  color:var(--ink);cursor:pointer;transition:border-color .18s,box-shadow .18s}
.sc-addr-mode button .dot{width:calc(16 * var(--u));height:calc(16 * var(--u));border-radius:50%;
  border:2px solid var(--tile-line);flex:none;transition:border-color .18s,box-shadow .18s}
.sc-addr-mode button.on{border-color:var(--green-brand)}
.sc-addr-mode button.on .dot{border-color:var(--green-brand);
  box-shadow:inset 0 0 0 calc(3 * var(--u)) var(--green-brand)}

.sc-addr-row{display:flex;align-items:center;gap:calc(14 * var(--u));margin-top:calc(18 * var(--u))}
.sc-addr-pin{flex:none;width:calc(44 * var(--u));height:calc(44 * var(--u));border-radius:50%;
  background:var(--bg-soft);color:var(--green-brand);display:flex;align-items:center;justify-content:center}
.sc-addr-text{flex:1;min-width:0}
.sc-addr-text b{display:block;font-weight:700;font-size:calc(15 * var(--u));line-height:1.35}
.sc-addr-text span{display:block;font-size:calc(13 * var(--u));color:var(--ink-soft);margin-top:calc(3 * var(--u))}
.sc-addr-edit{flex:none;background:var(--bg-soft);border:0;border-radius:calc(14 * var(--u));
  padding:calc(12 * var(--u)) calc(20 * var(--u));font-weight:700;font-size:calc(14 * var(--u));
  color:var(--ink);cursor:pointer;transition:background .18s}
.sc-addr-edit:hover{background:var(--green-pale)}

/* окно с картой */
.sc-addr-modal{position:fixed;inset:0;z-index:130;display:flex;align-items:center;justify-content:center;
  opacity:0;transition:opacity .2s ease}
.sc-addr-modal.on{opacity:1}
.sc-addr-scrim{position:absolute;inset:0;background:rgba(20,40,20,.45)}
.sc-addr-box{position:relative;z-index:1;display:grid;background:#fff;
  width:min(calc(1180 * var(--u)),calc(100vw - 32px));height:min(calc(720 * var(--u)),calc(100vh - 48px));
  border-radius:calc(28 * var(--u));overflow:hidden;box-shadow:0 30px 80px rgba(20,40,20,.30)}
@media(min-width:900px){.sc-addr-box{grid-template-columns:calc(420 * var(--u)) 1fr}}
.sc-addr-form{padding:calc(26 * var(--u));overflow-y:auto}
.sc-addr-form h3{font-family:var(--font);font-weight:900;font-size:calc(24 * var(--u));
  color:var(--ink);margin:calc(16 * var(--u)) 0 calc(14 * var(--u))}
.sc-addr-note{display:flex;align-items:center;gap:calc(8 * var(--u));margin:calc(14 * var(--u)) 0 0;
  font-size:calc(14 * var(--u));color:var(--green-brand);font-weight:700}
.sc-addr-sub{font-family:var(--font);font-weight:900;font-size:calc(17 * var(--u));
  margin:calc(18 * var(--u)) 0 calc(10 * var(--u))}

.sc-field{display:block;margin-bottom:calc(14 * var(--u))}
.sc-field > span{display:block;font-size:calc(12.5 * var(--u));color:var(--ink-soft);
  margin-bottom:calc(6 * var(--u))}
.sc-field input,.sc-field textarea{width:100%;border:1.5px solid var(--tile-line);
  border-radius:calc(14 * var(--u));padding:calc(13 * var(--u)) calc(16 * var(--u));
  font-family:var(--font-ui);font-size:calc(15 * var(--u));background:#fff;transition:border-color .18s}
.sc-field input:focus,.sc-field textarea:focus{outline:none;border-color:var(--green-brand)}
.sc-hint{font-size:calc(12.5 * var(--u));color:var(--ink-soft);margin:calc(-8 * var(--u)) 0 calc(12 * var(--u))}
.sc-check{display:inline-flex;align-items:center;gap:calc(10 * var(--u));cursor:pointer;
  font-size:calc(14 * var(--u));margin-bottom:calc(14 * var(--u))}
.sc-check input{width:calc(19 * var(--u));height:calc(19 * var(--u));accent-color:var(--green-brand)}
.sc-addr-two{display:grid;grid-template-columns:1fr 1fr;gap:calc(12 * var(--u))}

.sc-addr-found{list-style:none;margin:0 0 calc(12 * var(--u));padding:0;
  border:1.5px solid var(--tile-line);border-radius:calc(14 * var(--u));overflow:hidden}
.sc-addr-found li + li{border-top:1px solid var(--tile-line)}
.sc-addr-found button{display:block;width:100%;text-align:left;background:#fff;border:0;
  padding:calc(11 * var(--u)) calc(14 * var(--u));font-size:calc(13.5 * var(--u));cursor:pointer;
  transition:background .15s}
.sc-addr-found button:hover{background:var(--bg-soft)}
.sc-addr-none{padding:calc(11 * var(--u)) calc(14 * var(--u));font-size:calc(13 * var(--u));color:var(--ink-soft)}

.sc-addr-lift{display:grid;grid-template-columns:1fr 1fr;gap:calc(12 * var(--u));margin-bottom:calc(16 * var(--u))}
.sc-addr-lift button{background:#fff;border:1.5px solid var(--tile-line);border-radius:calc(14 * var(--u));
  padding:calc(12 * var(--u));font-weight:700;font-size:calc(14 * var(--u));cursor:pointer;
  transition:border-color .18s}
.sc-addr-lift button.on{border-color:var(--green-brand);color:var(--green-deep-2)}

.sc-addr-acts{display:flex;gap:calc(12 * var(--u));margin-top:calc(18 * var(--u))}
.sc-addr-cancel{flex:none;background:var(--bg-soft);border:0;border-radius:calc(14 * var(--u));
  padding:calc(14 * var(--u)) calc(22 * var(--u));font-weight:700;font-size:calc(15 * var(--u));cursor:pointer}
.sc-addr-acts .pbtn{flex:1;justify-content:center;border:0;cursor:pointer}

.sc-addr-map{position:relative;background:var(--bg-soft);min-height:calc(320 * var(--u))}
.sc-addr-map iframe,
.sc-addr-map #scAddrMap{width:100%;height:100%;min-height:calc(320 * var(--u));border:0;display:block}
.sc-addr-x{position:absolute;top:calc(16 * var(--u));right:calc(16 * var(--u));z-index:2;
  width:calc(38 * var(--u));height:calc(38 * var(--u));border-radius:50%;background:#fff;border:0;
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  box-shadow:0 4px 14px rgba(20,40,20,.18)}

/* Самовывоз: поля адреса не нужны. */
.sc-addr-modal.is-pickup h3,
.sc-addr-modal.is-pickup .sc-field,
.sc-addr-modal.is-pickup .sc-hint,
.sc-addr-modal.is-pickup .sc-check,
.sc-addr-modal.is-pickup .sc-addr-two,
.sc-addr-modal.is-pickup [data-lift-block]{display:none}
/* Частный дом: квартира, этаж и лифт не спрашиваются. */
.sc-addr-modal.is-private [data-flat-fields],
.sc-addr-modal.is-private [data-lift-block]{display:none}

/* Окно адреса показываем без плавного проявления: анимация на opacity
   в этой сборке не срабатывала — окно оставалось прозрачным, — а видимое
   окно важнее эффекта. Управляем только атрибутом hidden. */
.sc-addr-modal{opacity:1!important;transition:none}
.sc-addr-modal[hidden]{display:none!important}
.sc-addr-box{transform:none!important}

/* ==========================================================================
   Оформление заказа — один экран, без аккордеона.

   Раньше страница работала шагами: открыт один, остальные свёрнуты в
   строчку-сводку. Теперь все поля видны сразу (сворачивание отключено в
   newdesign/checkout.js), поэтому здесь снимаем всё, что осталось от
   пошагового вида: инлайновые display:none, кнопки «Далее» и «Изменить»
   в заголовках, подсветку пройденных шагов.
   ========================================================================== */

.sc-checkout .bx-soa-section .bx-soa-section-content{display:block!important}
.sc-checkout .bx-soa-more,
.sc-checkout .bx-soa-editstep{display:none!important}
.sc-checkout .bx-soa-section-title-container{cursor:default}
.sc-checkout .bx-soa-section,
.sc-checkout .bx-soa-section.bx-selected,
.sc-checkout .bx-soa-section.bx-step-completed{border-color:var(--tile-line)}

/* Тип плательщика выбирают в корзине галочкой «Я юридическое лицо».
   Шаг остаётся в разметке — компонент шлёт из него PERSON_TYPE, — но на
   глаза не попадается. Мобильная сводка не нужна: справа липкая. */
.sc-checkout #bx-soa-region,
.sc-checkout #bx-soa-total-mobile{display:none!important}

/* ---------- Блок «Адрес доставки» ----------
   Скрипт переносит его в левую колонку, к остальным шагам, поэтому здесь
   он подгоняется под их карточку: та же рамка, те же отступы. */
.sc-checkout .bx-soa .sc-addr{order:0;margin:0;
  padding:calc(20 * var(--u)) calc(24 * var(--u)) calc(22 * var(--u));
  border-radius:calc(28 * var(--u))}
.sc-checkout .sc-addr-head h2{font-size:calc(19 * var(--u));letter-spacing:-.01em}
.sc-checkout .sc-addr-mode button{padding:calc(9 * var(--u)) calc(16 * var(--u));
  font-size:calc(13.5 * var(--u))}
.sc-checkout .sc-addr-row{margin-top:calc(14 * var(--u))}
.sc-checkout .sc-addr-pin{width:calc(38 * var(--u));height:calc(38 * var(--u))}
.sc-checkout .sc-addr-pin svg{width:calc(18 * var(--u));height:calc(18 * var(--u))}
.sc-checkout .sc-addr-edit{padding:calc(10 * var(--u)) calc(18 * var(--u));
  font-size:calc(13.5 * var(--u))}
@media(max-width:600px){
  .sc-checkout .sc-addr-head{align-items:flex-start;flex-direction:column;gap:calc(12 * var(--u))}
  .sc-checkout .sc-addr-mode{width:100%}
  .sc-checkout .sc-addr-mode button{flex:1;justify-content:center}
}

/* ---------- Товары: миниатюры вместо таблицы ----------
   В образце состав заказа — не таблица, а полоска фотографий с
   количеством: покупатель уже выбрал товары в корзине, здесь ему нужно
   только убедиться, что везут именно их. Полную таблицу компонента
   прячем, но оставляем в разметке — на ней держатся его пересчёты. */
.sc-checkout #bx-soa-basket .bx-soa-table-fade{display:none}
.sc-goods-head{display:flex;align-items:baseline;justify-content:space-between;
  gap:calc(14 * var(--u));flex-wrap:wrap}
.sc-goods-count{font-weight:700;font-size:calc(15 * var(--u));color:var(--ink)}
.sc-goods-edit{font-size:calc(14 * var(--u));font-weight:700;color:var(--green-brand);
  text-decoration:none;border-bottom:1px solid rgba(0,114,59,.3)}
.sc-goods-edit:hover{color:var(--green-deep-2)}
.sc-goods-list{list-style:none;display:flex;flex-wrap:wrap;gap:calc(16 * var(--u));
  margin:calc(18 * var(--u)) 0 0;padding:0}
.sc-goods-item{width:calc(78 * var(--u));text-align:center}
.sc-goods-pic{display:block;width:calc(78 * var(--u));height:calc(78 * var(--u));
  border:1px solid var(--tile-line);border-radius:calc(18 * var(--u));
  background-color:var(--bg-soft);background-repeat:no-repeat;
  background-position:center;background-size:contain}
.sc-goods-qty{display:block;margin-top:calc(8 * var(--u));font-size:calc(13 * var(--u));
  color:var(--ink-soft)}
.sc-goods-sum{margin:calc(20 * var(--u)) 0 0;font-family:var(--font);font-weight:900;
  text-transform:uppercase;font-size:calc(18 * var(--u));color:var(--ink)}
.sc-goods-sum b{font-size:calc(24 * var(--u));color:var(--green-deep-2);margin-left:calc(8 * var(--u))}

/* ---------- Сводка заказа ----------
   Едет вместе со страницей: position:sticky вместо самодельного
   position:fixed у компонента (он отключён в checkout.js — иначе панель
   прыгала и меряла ширину вручную). */
.sc-checkout .bx-soa-cart-total-ghost{display:none}
.sc-checkout .bx-soa-cart-total.bx-soa-cart-total-fixed,
.sc-checkout .bx-soa-cart-total.bx-soa-cart-total-bottom{
  position:static!important;width:auto!important;bottom:auto!important}
@media(min-width:768px){
  .sc-checkout #bx-soa-total{position:sticky;top:calc(18 * var(--u));align-self:start;z-index:5}
}

/* Разделительных линий в сводке нет — уровни держатся размером и
   воздухом, как в образце. */
.sc-checkout .bx-soa-cart-total-line,
.sc-checkout .bx-soa-cart-total-line-total{border:0!important;
  padding:calc(7 * var(--u)) 0;margin:0}
.sc-checkout .bx-soa-cart-total-line-total{margin-top:calc(14 * var(--u))}

/* Кнопка заказа — та же рисованная фигура, что у «Меню» и «В корзину»,
   только зелёная: на странице не должно быть кнопки другой формы. */
.sc-checkout .bx-soa-cart-total-button-container{margin-top:calc(20 * var(--u))}
.sc-checkout .bx-soa-cart-total-button-container .btn,
.sc-checkout .bx-soa-cart-total-button-container .btn:hover,
.sc-checkout .bx-soa-cart-total-button-container .btn:focus,
.sc-checkout .bx-soa-cart-total-button-container .btn:active{
  display:flex;align-items:center;justify-content:center;width:100%;
  background:url(img/hd-shape-btn.svg) no-repeat center/100% 100%;
  border:0;border-radius:0;box-shadow:none;color:#fff;text-decoration:none;
  font-family:var(--font);font-weight:700;font-size:calc(17 * var(--u));
  min-height:calc(58 * var(--u));padding:0 calc(20 * var(--u))}
.sc-checkout .bx-soa-cart-total-button-container .btn:hover{filter:brightness(1.08)}

/* Согласие живёт внизу страницы, а кнопка — в сводке. Чтобы предупреждение
   стояло рядом с действием, короткую его версию печатаем под кнопкой. */
.sc-checkout .bx-soa-cart-total-button-container::after{
  content:'Нажимая кнопку, вы соглашаетесь на обработку персональных данных';
  display:block;margin-top:calc(12 * var(--u));text-align:center;
  font-size:calc(11.5 * var(--u));line-height:1.45;color:var(--ink-soft)}

/* ---------- Низ страницы ----------
   Вторая кнопка «Оформить заказ» убрана: действие одно и живёт в сводке.
   Остаётся само согласие — полным текстом и со ссылкой. */
.sc-checkout #bx-soa-orderSave > a.btn,
.sc-checkout #bx-soa-orderSave [data-save-button]{display:none!important}
.sc-checkout #bx-soa-orderSave{background:none;border:0;box-shadow:none;
  padding:calc(6 * var(--u)) calc(8 * var(--u)) calc(10 * var(--u))}
.sc-checkout #bx-soa-orderSave .main-user-consent-request-announce-link{
  font-size:calc(12.5 * var(--u));line-height:1.5;color:var(--ink-soft)}
.sc-checkout #bx-soa-orderSave input[type=checkbox]{width:calc(18 * var(--u));
  height:calc(18 * var(--u));accent-color:var(--green-brand)}

/* ---------- Оформление: доводка полей и карточек ---------- */

/* Значок службы доставки и платёжной системы лежит фоном на пустом div —
   без размеров он схлопывался в точку, и на карточках висел обломок
   картинки. Раньше правила были написаны на <img>, которого здесь нет. */
.sc-checkout .bx-soa-pp-company-image{flex:none;
  width:calc(54 * var(--u));height:calc(34 * var(--u));
  background-repeat:no-repeat;background-position:left center;background-size:contain}

/* Описание выбранной службы тянулось на всю высоту колонки с карточками
   и превращалось в пустую коробку. */
.sc-checkout .bx-soa-pp-desc-container{align-self:start}

/* Поля получателя — в две колонки: во всю ширину строки поле выглядит
   растянутым, а форма из четырёх строк занимает пол-экрана. */
@media(min-width:760px){
  .sc-checkout .bx-soa-customer{display:grid;grid-template-columns:1fr 1fr;
    gap:0 calc(20 * var(--u))}
  .sc-checkout .bx-soa-customer > .form-group{margin-bottom:calc(16 * var(--u))}
  .sc-checkout .bx-soa-customer > .form-group:has(textarea){grid-column:1 / -1}
}

/* У полей рисовалось две рамки: фирменная фигура фоном и обводка от
   темы поверх неё. Тема выигрывала по весу селектора — снимаем её. */
.sc-checkout .bx-soa-section .form-control,
.sc-checkout .bx-soa-customer input.form-control{
  border:0!important;border-radius:0;box-shadow:none}
.sc-checkout .bx-soa-section input.form-control{
  background:url(img/pdp-field-select.svg) no-repeat center/100% 100%;
  min-height:calc(48 * var(--u));padding:0 calc(20 * var(--u))}
/* Многострочному полю фирменная фигура не идёт: растянутая по высоте, она
   превращается в овал. Оставляем ту же линию, но прямой рамкой. */
.sc-checkout .bx-soa-section textarea.form-control{
  background-image:none;border:1.5px solid rgba(20,87,50,.8)!important;
  border-radius:calc(20 * var(--u));padding:calc(14 * var(--u)) calc(20 * var(--u));
  min-height:calc(92 * var(--u));resize:vertical}
.sc-checkout .bx-soa-section .form-control:focus{filter:none;outline:2px solid var(--green-brand);
  outline-offset:2px}

/* Адрес доставки спрашивается в блоке наверху. Здесь то же свойство
   заказа осталось бы вторым таким же полем — прячем, значение в него
   подставляет checkout-address.js. */
.sc-checkout #bx-soa-properties [data-property-id-row="26"],
.sc-checkout #bx-soa-properties [data-property-id-row="38"]{display:none}

/* Значок службы у коробочной темы лежит абсолютом поверх карточки — от
   этого он налезал на название. Возвращаем его в поток. */
.sc-checkout .bx-soa-pp-company-image{position:static!important;
  top:auto!important;left:auto!important;
  width:calc(54 * var(--u))!important;height:calc(34 * var(--u))!important}
.sc-checkout .bx-soa-pp-company-graf-container{min-height:calc(34 * var(--u))!important;
  align-items:center}
.sc-checkout .bx-soa-pp-company-smalltitle{margin-top:0}

/* Колонка сводки у коробочной темы — height:100%, поэтому она была ростом
   со всю страницу и липнуть ей было некуда. */
.sc-checkout #bx-soa-total{height:auto}

/* Подсказка об ошибке приходит всплывашкой над полем и налезала на
   соседнюю колонку. Ставим её строкой под полем — там, где её ищут. */
.sc-checkout .bx-soa-customer-field{display:flex;flex-direction:column}
.sc-checkout .bx-soa-customer-field > label{order:1}
.sc-checkout .bx-soa-customer-field > .soa-property-container{order:2}
.sc-checkout .bx-soa-tooltip{order:3;position:static!important;opacity:1!important;
  margin:calc(6 * var(--u)) 0 0;padding:0;max-width:none;background:none;
  filter:none;transform:none}
.sc-checkout .bx-soa-tooltip .tooltip-arrow{display:none}
.sc-checkout .bx-soa-tooltip .tooltip-inner{background:none;padding:0;max-width:none;
  text-align:left;font-size:calc(12.5 * var(--u));line-height:1.4;color:#b3261e}

/* ---------- Окно адреса: доводка ---------- */

/* На оформлении главное действие — зелёное («Оформить заказ»). Бордовая
   кнопка тут читалась бы как второе главное действие, поэтому «Доставить
   сюда» той же фирменной формы, но зелёная. */
.sc-addr-acts .pbtn,
.sc-addr-acts .pbtn:hover{
  background:url(img/hd-shape-btn.svg) no-repeat center/100% 100%;
  border-radius:0;padding:calc(16 * var(--u)) calc(26 * var(--u));
  font-size:calc(16 * var(--u));font-weight:700}
.sc-addr-acts .pbtn:hover{filter:brightness(1.08)}

/* Найденные адреса: сверху короткий — город, улица, дом, — под ним полная
   строка геокодера, чтобы отличить два похожих дома. */
.sc-addr-found button{padding:calc(10 * var(--u)) calc(14 * var(--u))}
.sc-addr-found button b{display:block;font-weight:700;font-size:calc(14 * var(--u));
  color:var(--ink);line-height:1.35}
.sc-addr-found button span{display:block;margin-top:calc(3 * var(--u));
  font-size:calc(12 * var(--u));color:var(--ink-soft);line-height:1.35}

/* У поля комментария нет обёртки .soa-property-container — без порядка оно
   вставало выше своей подписи. */
.sc-checkout .bx-soa-customer-field > .form-control,
.sc-checkout .bx-soa-customer-field > .soa-property-container{order:2}

/* На телефоне тема ставила описание выбранной службы выше самих служб —
   покупатель видел рассказ о доставке раньше, чем список. */
@media(max-width:767px){
  .sc-checkout .bx-soa-pp-item-container{order:1}
  .sc-checkout .bx-soa-pp-desc-container{order:2;margin-top:calc(14 * var(--u))}
}

/* Подзаголовок товара — уточнение из скобок: «анаэробная», «гейша».
   Мельче названия и спокойнее по цвету: это пометка, а не часть имени. */
.pcard .psub{font-family:var(--font-ui);font-weight:500;font-style:italic;
  font-size:calc(17 * var(--u));line-height:1.3;color:var(--green-deep-2);
  margin-top:calc(5 * var(--u))}
.pcard .psub + .pdesc{margin-top:calc(10 * var(--u))}
.pdp-sub{font-family:var(--font-ui);font-weight:500;font-style:italic;
  font-size:calc(24 * var(--mp));line-height:1.3;color:var(--green-deep-2);
  margin-top:calc(8 * var(--mp))}


/* ==========================================================================
   ПРАВИЛО КНОПОК САЙТА

   Фирменная форма со скосом — у всех кнопок и полей ввода. Собрана из двух
   концов и прямой середины, поэтому НЕ плывёт при растягивании: кнопка
   любой длины сохраняет одинаковые концы. Раньше подложку тянули целиком,
   и на широких элементах скос расплывался в пилюлю.

     .pbtn        главное действие, бордовая заливка
     .pbtn-green  главное действие, зелёная заливка
     .pbtn-line   второстепенное, зелёный контур той же фигуры
     .pbtn-white  главное на цветной плоскости, белая заливка
     .pbtn-lwhite второстепенное на цветной плоскости, белый контур

   Второстепенная кнопка отличается заливкой, а не формой.
   ========================================================================== */

.pbtn,.pbtn-green,.pbtn-line,.pbtn-white,.pbtn-lwhite{
  --btn-h:calc(52 * var(--u));
  --cap:calc(var(--btn-h) * 0.5556);
  display:inline-flex;align-items:center;justify-content:center;gap:calc(9 * var(--u));
  min-height:var(--btn-h);padding:0 calc(28 * var(--u));
  border:0;border-radius:0;cursor:pointer;text-decoration:none;white-space:nowrap;
  font-family:var(--font);font-weight:700;font-size:calc(16 * var(--u));
  transition:filter .2s,transform .2s;
  background-repeat:no-repeat;
  background-position:left center, right center, center;
  background-size:auto 100%, auto 100%, calc(100% - 2 * var(--cap)) 100%}

.pbtn:hover,.pbtn-green:hover,.pbtn-line:hover,
.pbtn-white:hover,.pbtn-lwhite:hover{filter:brightness(1.06);transform:translateY(-2px)}

.pbtn{color:#fff;background-image:url(img/cap-bordo-l.svg),url(img/cap-bordo-r.svg),
  linear-gradient(var(--cart),var(--cart))}
.pbtn-green{color:#fff;background-image:url(img/cap-green-l.svg),url(img/cap-green-r.svg),
  linear-gradient(var(--green-brand),var(--green-brand))}
.pbtn-white{color:var(--cart);background-image:url(img/cap-white-l.svg),url(img/cap-white-r.svg),
  linear-gradient(#fff,#fff)}

/* Контурные: середина — две тонкие линии сверху и снизу, внутри прозрачно. */
.pbtn-line,.pbtn-lwhite{
  background-position:left center, right center, center top, center bottom;
  background-size:auto 100%, auto 100%,
    calc(100% - 2 * var(--cap)) calc(var(--btn-h) * 0.0288), calc(100% - 2 * var(--cap)) calc(var(--btn-h) * 0.0288)}
.pbtn-line{color:var(--green-deep-2);
  background-image:url(img/cap-lgreen-l.svg),url(img/cap-lgreen-r.svg),
    linear-gradient(var(--green-brand),var(--green-brand)),
    linear-gradient(var(--green-brand),var(--green-brand))}
.pbtn-lwhite{color:#fff;
  background-image:url(img/cap-lwhite-l.svg),url(img/cap-lwhite-r.svg),
    linear-gradient(#fff,#fff),linear-gradient(#fff,#fff)}

/* ---- высоты по месту ---- */
.pcard .pbtn{--btn-h:calc(48 * var(--u))}
.sc-cart .cart-go{--btn-h:calc(56 * var(--u));width:100%}
.sc-addr-acts .pbtn{--btn-h:calc(50 * var(--u));flex:1}
.sc-added-acts .pbtn{--btn-h:calc(50 * var(--u));flex:1;min-width:calc(170 * var(--u))}

/* «В корзине» — то же место, зелёная заливка */
.pcard .pbtn.add-to-cart-btn.is-in-cart{
  background-image:url(img/cap-green-l.svg),url(img/cap-green-r.svg),
    linear-gradient(var(--green-brand),var(--green-brand))}

/* «Доставить сюда» в окне адреса — главное действие, зелёное */
.sc-addr-acts .pbtn{
  background-image:url(img/cap-green-l.svg),url(img/cap-green-r.svg),
    linear-gradient(var(--green-brand),var(--green-brand))}

/* ==========================================================================
   Те же правила для кнопок, у которых свои классы
   ========================================================================== */

/* заливка */
.sc2026-page .btn-primary,
.sc2026-page .btn-secondary,
.sc2026-page .btn-dark,
.offcanvas .btn-primary,
.offcanvas .btn-dark,
.sc-checkout .bx-soa-cart-total-button-container .btn,
.about .ab-btn{
  --btn-h:calc(50 * var(--u));--cap:calc(var(--btn-h) * 0.5556);
  display:inline-flex!important;align-items:center;justify-content:center;
  min-height:var(--btn-h);padding:0 calc(26 * var(--u));
  border:0!important;border-radius:0!important;box-shadow:none!important;
  cursor:pointer;text-decoration:none;white-space:nowrap;
  font-family:var(--font);font-weight:700;font-size:calc(16 * var(--u));
  color:#fff!important;transition:filter .2s,transform .2s;
  background-repeat:no-repeat!important;
  background-position:left center, right center, center!important;
  background-size:auto 100%, auto 100%, calc(100% - 2 * var(--cap)) 100%!important;
  background-image:url(img/cap-bordo-l.svg),url(img/cap-bordo-r.svg),
    linear-gradient(var(--cart),var(--cart))!important}

/* зелёные среди них */
.sc-checkout .bx-soa-cart-total-button-container .btn,
.about .ab-btn{
  background-image:url(img/cap-green-l.svg),url(img/cap-green-r.svg),
    linear-gradient(var(--green-brand),var(--green-brand))!important}
.sc-checkout .bx-soa-cart-total-button-container .btn{width:100%}

/* контур */
.sc2026-page .btn-outline-primary,
.sc2026-page .btn-outline-secondary,
.sc2026-page .btn-outline-dark,
.sc-added-more,
.sc-addr-cancel,
.about .ab-btn-line,
.sc-cart .promo-apply{
  --btn-h:calc(50 * var(--u));--cap:calc(var(--btn-h) * 0.5556);
  display:inline-flex!important;align-items:center;justify-content:center;
  min-height:var(--btn-h);padding:0 calc(24 * var(--u));
  border:0!important;border-radius:0!important;box-shadow:none!important;
  cursor:pointer;text-decoration:none;white-space:nowrap;
  font-family:var(--font);font-weight:700;font-size:calc(15 * var(--u));
  color:var(--green-deep-2)!important;transition:filter .2s,transform .2s;
  background-repeat:no-repeat!important;
  background-position:left center, right center, center top, center bottom!important;
  background-size:auto 100%, auto 100%,
    calc(100% - 2 * var(--cap)) calc(var(--btn-h) * 0.0288), calc(100% - 2 * var(--cap)) calc(var(--btn-h) * 0.0288)!important;
  background-image:url(img/cap-lgreen-l.svg),url(img/cap-lgreen-r.svg),
    linear-gradient(var(--green-brand),var(--green-brand)),
    linear-gradient(var(--green-brand),var(--green-brand))!important}

/* белый контур на цветной плоскости */
.about .ab-btn-ghost{
  --btn-h:calc(50 * var(--u));--cap:calc(var(--btn-h) * 0.5556);
  display:inline-flex!important;align-items:center;justify-content:center;
  min-height:var(--btn-h);padding:0 calc(26 * var(--u));
  border:0!important;border-radius:0!important;color:#fff!important;
  font-family:var(--font);font-weight:700;font-size:calc(16 * var(--u));
  background-repeat:no-repeat!important;
  background-position:left center, right center, center top, center bottom!important;
  background-size:auto 100%, auto 100%,
    calc(100% - 2 * var(--cap)) calc(var(--btn-h) * 0.0288), calc(100% - 2 * var(--cap)) calc(var(--btn-h) * 0.0288)!important;
  background-image:url(img/cap-lwhite-l.svg),url(img/cap-lwhite-r.svg),
    linear-gradient(#fff,#fff),linear-gradient(#fff,#fff)!important}
/* «Выбрать кофе» на бордовой плоскости — белая заливка */
.about .ab-btn-white{
  --btn-h:calc(50 * var(--u));--cap:calc(var(--btn-h) * 0.5556);
  color:var(--cart)!important;-webkit-mask:none!important;mask:none!important;
  background-repeat:no-repeat!important;
  background-position:left center, right center, center!important;
  background-size:auto 100%, auto 100%, calc(100% - 2 * var(--cap)) 100%!important;
  background-image:url(img/cap-white-l.svg),url(img/cap-white-r.svg),
    linear-gradient(#fff,#fff)!important}

.sc2026-page .btn-primary:hover,.sc2026-page .btn-outline-primary:hover,
.offcanvas .btn-primary:hover,.sc-added-more:hover,.sc-addr-cancel:hover,
.about .ab-btn:hover,.about .ab-btn-line:hover,.about .ab-btn-ghost:hover,
.about .ab-btn-white:hover,.sc-cart .promo-apply:hover,
.sc-checkout .bx-soa-cart-total-button-container .btn:hover{
  filter:brightness(1.06);transform:translateY(-2px)}

/* ==========================================================================
   Поля ввода — та же фигура контуром
   ========================================================================== */
.sc-cart .promo-row input,
.sc-checkout .bx-soa-section input.form-control{
  --btn-h:calc(50 * var(--u));--cap:calc(var(--btn-h) * 0.5556);
  min-height:var(--btn-h);padding:0 calc(20 * var(--u));
  border:0!important;border-radius:0!important;box-shadow:none!important;
  font-family:var(--font-ui);font-size:calc(15 * var(--u));
  background-color:transparent!important;
  background-repeat:no-repeat!important;
  background-position:left center, right center, center top, center bottom!important;
  background-size:auto 100%, auto 100%,
    calc(100% - 2 * var(--cap)) calc(var(--btn-h) * 0.0288), calc(100% - 2 * var(--cap)) calc(var(--btn-h) * 0.0288)!important;
  background-image:url(img/cap-lgreen-l.svg),url(img/cap-lgreen-r.svg),
    linear-gradient(var(--green-brand),var(--green-brand)),
    linear-gradient(var(--green-brand),var(--green-brand))!important}
.sc-cart .promo-row input:focus,
.sc-checkout .bx-soa-section input.form-control:focus{
  outline:2px solid var(--green-brand);outline-offset:2px}


/* ==========================================================================
   ФОРМА: кнопки, поля, степперы, галочки — догоняем остальные места
   ========================================================================== */

/* Кнопки, у которых были свои правила с растянутой подложкой. */
.sc2026-page .pdp-buy .buy-cta,
.sc2026-page .pdp-buy .buy-cta:hover,
.pdp-buy .buy-cta,
.sc-basket .basket-btn-checkout,
.sc2026-page .bx-soa-cart-total-button-container .btn-primary,
.sc2026-page .btn-order-save,
.sc-checkout .btn-default,.sc-checkout .btn-primary,.sc-checkout .btn-lg,
.about .ab-btn,
.about .ab-btn-white{
  --btn-h:calc(52 * var(--u));--cap:calc(var(--btn-h) * 0.5556);
  border:0!important;border-radius:0!important;box-shadow:none!important;
  background-color:transparent!important;
  background-repeat:no-repeat!important;
  background-position:left center, right center, center!important;
  background-size:auto 100%, auto 100%, calc(100% - 2 * var(--cap)) 100%!important}

.sc2026-page .pdp-buy .buy-cta,
.sc2026-page .pdp-buy .buy-cta:hover,
.pdp-buy .buy-cta,
.sc-basket .basket-btn-checkout,
.sc2026-page .bx-soa-cart-total-button-container .btn-primary,
.sc2026-page .btn-order-save,
.sc-checkout .btn-default,.sc-checkout .btn-primary,.sc-checkout .btn-lg{
  background-image:url(img/cap-bordo-l.svg),url(img/cap-bordo-r.svg),
    linear-gradient(var(--cart),var(--cart))!important}

.sc2026-page .pdp-buy .buy-cta.is-in-cart,
.sc2026-page .pdp-buy .buy-cta.is-in-cart:hover{
  background-image:url(img/cap-green-l.svg),url(img/cap-green-r.svg),
    linear-gradient(var(--green-brand),var(--green-brand))!important}

.about .ab-btn{background-image:url(img/cap-green-l.svg),url(img/cap-green-r.svg),
  linear-gradient(var(--green-brand),var(--green-brand))!important}
.about .ab-btn-white{color:var(--cart)!important;
  -webkit-mask:none!important;mask:none!important;
  background-image:url(img/cap-white-l.svg),url(img/cap-white-r.svg),
    linear-gradient(#fff,#fff)!important}

/* Наведение не меняет фигуру — только яркость. Прежние правила подменяли
   подложку целиком, из-за чего кнопка на hover возвращалась к старой форме. */
.pbtn:hover,.pbtn-green:hover,.pbtn-line:hover,.pbtn-white:hover,.pbtn-lwhite:hover,
.pdp-buy .buy-cta:hover,.about .ab-btn:hover,.about .ab-btn-white:hover,
.sc-checkout .btn-primary:hover,.sc-basket .basket-btn-checkout:hover{
  filter:brightness(1.06);transform:translateY(-2px)}

/* ==========================================================================
   ПОЛЯ ВВОДА — та же фигура контуром
   ========================================================================== */
.sc-cart .promo-row input,
.sc-checkout .bx-soa-section input.form-control,
.sc-checkout .bx-soa-section select.form-control,
.sc-addr .sc-field input,
.sc-addr-modal .sc-field input,
/* Галочки и радио под это правило не подпадают — у них своя форма. */
.b2b-form input:not([type=checkbox]):not([type=radio]),
.b2b-form select{
  --btn-h:calc(50 * var(--u));--cap:calc(var(--btn-h) * 0.5556);
  min-height:var(--btn-h);height:var(--btn-h);
  padding:0 calc(20 * var(--u));
  border:0!important;border-radius:0!important;box-shadow:none!important;
  font-family:var(--font-ui);font-size:calc(15 * var(--u));color:var(--ink);
  background-color:transparent!important;
  background-repeat:no-repeat!important;
  background-position:left center, right center, center top, center bottom!important;
  background-size:auto 100%, auto 100%,
    calc(100% - 2 * var(--cap)) calc(var(--btn-h) * 0.0288), calc(100% - 2 * var(--cap)) calc(var(--btn-h) * 0.0288)!important;
  background-image:url(img/cap-lgreen-l.svg),url(img/cap-lgreen-r.svg),
    linear-gradient(var(--green-brand),var(--green-brand)),
    linear-gradient(var(--green-brand),var(--green-brand))!important}

/* Многострочные поля фигурой не рисуем: растянутая по высоте, она читается
   как овал. Оставляем ту же линию прямой рамкой. */
.sc-checkout .bx-soa-section textarea.form-control,
.sc-addr-modal .sc-field textarea,
.b2b-form textarea{
  border:1.6px solid var(--green-brand)!important;border-radius:calc(20 * var(--u))!important;
  background:none!important;padding:calc(14 * var(--u)) calc(20 * var(--u))!important;
  font-family:var(--font-ui);font-size:calc(15 * var(--u));min-height:calc(96 * var(--u))}

.sc-cart .promo-row input:focus,
.sc-checkout .bx-soa-section .form-control:focus,
.sc-addr .sc-field input:focus,
.sc-addr-modal .sc-field input:focus,
.b2b-form input:focus,.b2b-form select:focus,.b2b-form textarea:focus{
  outline:2px solid var(--green-brand);outline-offset:2px}

/* ==========================================================================
   СТЕПЕР — счётчик количества той же фигурой
   ========================================================================== */
.sc-cart .qty{
  --btn-h:calc(44 * var(--u));--cap:calc(var(--btn-h) * 0.5556);
  display:flex;align-items:center;border:0;border-radius:0;overflow:visible;
  height:var(--btn-h);padding:0 calc(6 * var(--u));
  background-repeat:no-repeat;
  background-position:left center, right center, center top, center bottom;
  background-size:auto 100%, auto 100%,
    calc(100% - 2 * var(--cap)) calc(var(--btn-h) * 0.0288), calc(100% - 2 * var(--cap)) calc(var(--btn-h) * 0.0288);
  background-image:url(img/cap-lgreen-l.svg),url(img/cap-lgreen-r.svg),
    linear-gradient(var(--green-brand),var(--green-brand)),
    linear-gradient(var(--green-brand),var(--green-brand))}
.sc-cart .qty button{background:none;border:0;color:var(--green-deep-2);
  width:calc(34 * var(--u));height:100%;font-size:calc(19 * var(--u));
  cursor:pointer;border-radius:0}
.sc-cart .qty button:hover{background:none;color:var(--green-brand)}

/* ==========================================================================
   ГАЛОЧКИ — своя, вместо системной синей
   ========================================================================== */
.sc-cart .cart-check input,
.sc-check input,
.sc-checkout #bx-soa-orderSave input[type=checkbox],
.b2b-form input[type=checkbox]{
  appearance:none;-webkit-appearance:none;
  width:calc(22 * var(--u));height:calc(22 * var(--u));flex:none;margin:0;
  border:1.6px solid var(--green-brand);border-radius:calc(7 * var(--u));
  background:#fff;cursor:pointer;position:relative;
  transition:background-color .18s,border-color .18s}
.sc-cart .cart-check input:checked,
.sc-check input:checked,
.sc-checkout #bx-soa-orderSave input[type=checkbox]:checked,
.b2b-form input[type=checkbox]:checked{
  background:var(--green-brand);border-color:var(--green-brand)}
.sc-cart .cart-check input:checked::after,
.sc-check input:checked::after,
.sc-checkout #bx-soa-orderSave input[type=checkbox]:checked::after,
.b2b-form input[type=checkbox]:checked::after{
  content:'';position:absolute;left:calc(7 * var(--u));top:calc(3 * var(--u));
  width:calc(6 * var(--u));height:calc(11 * var(--u));
  border:solid #fff;border-width:0 calc(2.4 * var(--u)) calc(2.4 * var(--u)) 0;
  transform:rotate(45deg)}
.sc-cart .cart-check input:focus-visible,
.sc-check input:focus-visible,
.b2b-form input[type=checkbox]:focus-visible{
  outline:2px solid var(--green-brand);outline-offset:2px}

/* ==========================================================================
   Страница «Для бизнеса»
   ========================================================================== */
.b2b{padding-bottom:calc(40 * var(--u))}
.b2b .page-head{display:none}

.b2b-hero{padding:calc(24 * var(--u)) 0 calc(30 * var(--u));max-width:calc(860 * var(--u))}
.b2b-hero h1{font-family:var(--font);font-weight:900;text-transform:uppercase;
  font-size:clamp(calc(34 * var(--u)),5.4vw,calc(64 * var(--u)));line-height:1.03;
  letter-spacing:-.015em;color:var(--ink);margin:0 0 calc(20 * var(--u))}
.b2b-hero h1 em{font-style:normal;color:var(--green-brand)}
.b2b .lead{font-size:calc(18 * var(--u));line-height:1.6;color:var(--ink);
  margin:0;max-width:calc(660 * var(--u))}
.b2b-acts{display:flex;flex-wrap:wrap;gap:calc(12 * var(--u));margin:calc(26 * var(--u)) 0 calc(24 * var(--u))}

.b2b-facts{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;
  gap:calc(10 * var(--u)) calc(22 * var(--u))}
.b2b-facts li{position:relative;padding-left:calc(16 * var(--u));
  font-size:calc(14.5 * var(--u));color:var(--ink-soft);line-height:1.4}
.b2b-facts li::before{content:'';position:absolute;left:0;top:calc(8 * var(--u));
  width:calc(6 * var(--u));height:calc(6 * var(--u));border-radius:50%;background:var(--green-brand)}
.b2b .b2b-note{font-size:calc(13 * var(--u));line-height:1.5;color:var(--ink-soft);
  margin:calc(14 * var(--u)) 0 0}

.b2b h2{font-family:var(--font);font-weight:900;text-transform:uppercase;
  font-size:clamp(calc(26 * var(--u)),3.6vw,calc(42 * var(--u)));line-height:1.06;
  color:var(--ink);margin:0 0 calc(20 * var(--u))}
.b2b h3{font-family:var(--font);font-weight:900;text-transform:uppercase;
  font-size:calc(18 * var(--u));line-height:1.2;color:var(--ink);margin:0 0 calc(9 * var(--u))}
.b2b .ab-sub{font-size:calc(16.5 * var(--u));line-height:1.6;color:var(--ink-soft);
  margin:0 0 calc(24 * var(--u));max-width:calc(720 * var(--u))}

.b2b-what{margin-top:calc(56 * var(--u))}
.b2b-grid{display:grid;gap:calc(16 * var(--u))}
@media(min-width:700px){.b2b-grid{grid-template-columns:1fr 1fr}}
@media(min-width:1100px){.b2b-grid{grid-template-columns:repeat(4,1fr)}}
.b2b-card{background:#fff;border:1px solid var(--tile-line);box-shadow:var(--tile-shadow);
  border-radius:calc(28 * var(--u));padding:calc(26 * var(--u));
  transition:box-shadow .25s,transform .25s}
.b2b-card:hover{box-shadow:var(--tile-shadow-hover);transform:translateY(-3px)}
.b2b-card p{font-size:calc(15 * var(--u));line-height:1.55;color:var(--ink-soft);margin:0}

.b2b-why{margin-top:calc(64 * var(--u));background:var(--green-deep);color:#fff;
  border-radius:calc(36 * var(--u));padding:calc(44 * var(--u)) calc(30 * var(--u));
  position:relative;overflow:hidden}
@media(min-width:960px){.b2b-why{padding:calc(54 * var(--u))}}
.b2b-why::before{content:'';position:absolute;right:calc(-40 * var(--u));top:calc(-30 * var(--u));
  width:calc(320 * var(--u));height:calc(272 * var(--u));
  background:url(img/banner-pattern-v.svg) no-repeat center/contain;opacity:.10;pointer-events:none}
.b2b-why > *{position:relative}
.b2b-why h2,.b2b-why h3{color:#fff}
.b2b-why p{font-size:calc(15.5 * var(--u));line-height:1.6;color:rgba(255,255,255,.86);margin:0}
.b2b-why-grid{display:grid;gap:calc(28 * var(--u))}
@media(min-width:860px){.b2b-why-grid{grid-template-columns:repeat(3,1fr);gap:calc(34 * var(--u))}}

.b2b-steps{margin-top:calc(64 * var(--u))}
.b2b-steps-list{list-style:none;margin:0;padding:0;display:grid;gap:calc(18 * var(--u))}
@media(min-width:860px){.b2b-steps-list{grid-template-columns:1fr 1fr;gap:calc(24 * var(--u)) calc(40 * var(--u))}}
.b2b-steps-list li{display:flex;gap:calc(16 * var(--u));align-items:flex-start}
.b2b-steps-list .num{flex:none;width:calc(38 * var(--u));height:calc(38 * var(--u));
  border-radius:50%;background:var(--green-pale);color:var(--green-deep-2);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font);font-weight:900;font-size:calc(17 * var(--u))}
.b2b-steps-list b{display:block;font-family:var(--font);font-weight:700;
  font-size:calc(16.5 * var(--u));color:var(--ink);margin-bottom:calc(5 * var(--u))}
.b2b-steps-list p{font-size:calc(15 * var(--u));line-height:1.55;color:var(--ink-soft);margin:0}

/* ---- заявка ---- */
.b2b-apply{margin-top:calc(64 * var(--u));display:grid;gap:calc(20 * var(--u));align-items:start}
@media(min-width:960px){.b2b-apply{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:calc(28 * var(--u))}}
.b2b-form-box{background:#fff;border:1px solid var(--tile-line);box-shadow:var(--tile-shadow);
  border-radius:calc(32 * var(--u));padding:calc(36 * var(--u)) calc(30 * var(--u))}
@media(min-width:760px){.b2b-form-box{padding:calc(44 * var(--u))}}
.b2b-form{margin-top:calc(24 * var(--u))}
.b2b-form .fld{margin:0 0 calc(18 * var(--u))}
.b2b-form .fld-2{display:grid;gap:0 calc(16 * var(--u))}
@media(min-width:620px){.b2b-form .fld-2{grid-template-columns:1fr 1fr}}
.b2b-form label{display:block;font-weight:700;font-size:calc(13.5 * var(--u));
  color:var(--ink-soft);margin-bottom:calc(7 * var(--u))}
.b2b-form label .opt{font-weight:400;color:#9a9a93}
.b2b-form input,.b2b-form select,.b2b-form textarea{width:100%}
.b2b-form select{appearance:none;-webkit-appearance:none;cursor:pointer;
  padding-right:calc(44 * var(--u))}
.b2b-form .err{display:block;margin-top:calc(6 * var(--u));font-size:calc(13 * var(--u));
  line-height:1.4;color:#b3261e}
.b2b-form .err:empty{display:none}
.b2b-consent{margin:calc(6 * var(--u)) 0 0;align-items:flex-start;gap:calc(11 * var(--u))}
.b2b-consent span{font-size:calc(14 * var(--u));line-height:1.5;color:var(--ink-soft)}
.b2b-consent a{color:var(--green-brand);font-weight:700}
.b2b-submit{margin:calc(22 * var(--u)) 0 0}
.b2b-submit .pbtn-green{width:100%;--btn-h:calc(56 * var(--u))}

/* Ловушка для роботов: убрана с экрана, но доступна разметке. */
.b2b-hp{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);
  clip-path:inset(50%);white-space:nowrap}

.b2b-done h3{font-size:calc(24 * var(--u));color:var(--green-deep-2);outline:none}
.b2b-done p{font-size:calc(16 * var(--u));line-height:1.6;color:var(--ink);
  margin:0 0 calc(10 * var(--u))}
.b2b-done a{color:var(--green-brand);font-weight:700}

.b2b-side{background:var(--bg-soft);border-radius:calc(32 * var(--u));
  padding:calc(30 * var(--u)) calc(26 * var(--u))}
.b2b-side p{font-size:calc(15 * var(--u));line-height:1.55;color:var(--ink-soft);
  margin:0 0 calc(14 * var(--u))}
.b2b-phones{display:flex;flex-direction:column;gap:calc(6 * var(--u))}
.b2b-phones a{font-family:var(--font);font-weight:900;font-size:calc(20 * var(--u));
  color:var(--green-deep-2);text-decoration:none}
.b2b-phones a:hover{color:var(--green-brand)}
.b2b-side .pbtn-line{width:100%;margin-bottom:calc(14 * var(--u))}

/* ---- контакты ---- */
.b2b-contacts{margin-top:calc(64 * var(--u))}
.b2b-contacts-grid{display:grid;gap:calc(22 * var(--u))}
@media(min-width:760px){.b2b-contacts-grid{grid-template-columns:repeat(3,1fr);gap:calc(30 * var(--u))}}
.b2b-contacts-grid b{display:block;font-family:var(--font);font-weight:900;
  text-transform:uppercase;font-size:calc(15 * var(--u));color:var(--green-deep-2);
  margin-bottom:calc(9 * var(--u))}
.b2b-contacts-grid p{font-size:calc(15 * var(--u));line-height:1.65;color:var(--ink-soft);margin:0}
.b2b-contacts-grid a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line)}
.b2b-contacts-grid a:hover{color:var(--green-brand);border-color:var(--green-brand)}
.b2b .ab-legal{margin-top:calc(28 * var(--u));font-size:calc(13 * var(--u));color:var(--ink-soft)}
.b2b .ab-legal a{color:var(--ink-soft);text-decoration:none;border-bottom:1px solid var(--line)}

@media(max-width:599px){
  .b2b-acts .pbtn-green,.b2b-acts .pbtn-line{width:100%}
  .b2b-why,.b2b-form-box,.b2b-side{padding-left:calc(22 * var(--u));padding-right:calc(22 * var(--u));
    border-radius:calc(28 * var(--u))}
}


/* ---------- карта точек ---------- */
.sc-map .map-live{position:absolute;inset:0;opacity:0;transition:opacity .35s;
  border-radius:inherit;overflow:hidden}
.sc-map .map-box.map-on .map-live{opacity:1}
.sc-map .map-box.map-on .pat,
.sc-map .map-box.map-on .map-note{opacity:0;pointer-events:none;transition:opacity .25s}
.sc-map .map-live .ymaps-2-1-79-map,
.sc-map .map-live [class*="-ground-pane"]{border-radius:inherit}
/* Логотип и копирайт Яндекса убирать нельзя — только не даём им наезжать
   на скруглённый угол панели. */
.sc-map .map-live [class*="-copyrights-pane"]{padding-right:calc(10 * var(--u))}


/* ---------- наведение на карточку: шкалы -> оценка и букет ---------- */

/* «Кофе недели» — четвёртая плашка. Цвет фирменный зелёный, чтобы
   в столбике плашек она не спорила с бордовым «Хитом». */
.t-week{background:var(--green-brand);color:#fff}

/* Коробка постоянной высоты: шкалы лежат в потоке и задают её, а панель
   с оценкой стоит поверх. Без этого карточка при наведении подпрыгивала бы,
   а вся сетка каталога — переезжала. */
.pcard .pflip{position:relative;margin-top:calc(14 * var(--u))}
.pcard .pflip.has-flip{min-height:calc(78 * var(--u))}
.pcard .pflip .scales4{margin-top:0;
  transition:opacity .32s var(--ease),transform .32s var(--ease)}
.pcard .pflip-back{position:absolute;inset:0;display:flex;flex-direction:column;
  justify-content:center;gap:calc(8 * var(--u));opacity:0;pointer-events:none;
  transform:translateY(calc(12 * var(--u)));
  transition:opacity .32s var(--ease),transform .32s var(--ease)}

/* Меняем местами только там, где есть указатель. На телефоне наведения
   нет, и шкалы должны просто остаться на месте. */
@media(hover:hover){
  .pcard:hover .pflip.has-flip .scales4{opacity:0;transform:translateY(calc(-12 * var(--u)))}
  .pcard:hover .pflip.has-flip .pflip-back{opacity:1;transform:none}
}
/* То же по классу: его ставит скрипт при наведении и при переходе табом,
   чтобы карточка раскрывалась и с клавиатуры, а не только мышью. */
.pcard.is-flipped .pflip.has-flip .scales4{opacity:0;transform:translateY(calc(-12 * var(--u)))}
.pcard.is-flipped .pflip.has-flip .pflip-back{opacity:1;transform:none}

.pcard .pcva{display:flex;align-items:baseline;gap:calc(9 * var(--u))}
.pcard .pcva span{font-family:var(--font-ui);font-weight:600;
  font-size:calc(12 * var(--u));text-transform:uppercase;letter-spacing:.04em;
  color:var(--ink-soft)}
.pcard .pcva b{font-family:var(--font);font-weight:900;
  font-size:calc(26 * var(--u));line-height:1;color:var(--green-deep-2)}
.pcard .pbouquet{font-family:var(--font-ui);font-weight:500;
  font-size:calc(14.5 * var(--u));line-height:1.45;color:#4d4d4d;margin:0;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

@media(prefers-reduced-motion:reduce){
  .pcard .pflip .scales4,.pcard .pflip-back{transition:none}
}

/* ---------- миниатюры фотографий на детальной ---------- */
.pdp-thumbs{position:absolute;left:0;top:calc(30 * var(--mp));z-index:2;
  display:flex;flex-direction:column;gap:calc(10 * var(--mp))}
.pdp-thumbs button{width:calc(64 * var(--mp));height:calc(64 * var(--mp));padding:0;
  border:1.5px solid var(--tile-line);border-radius:calc(14 * var(--mp));
  background:#fff;cursor:pointer;overflow:hidden;display:flex;
  align-items:center;justify-content:center;transition:border-color .2s,transform .2s}
.pdp-thumbs button:hover{transform:translateY(-2px)}
.pdp-thumbs button.on{border-color:var(--green-brand)}
.pdp-thumbs img{max-width:86%;max-height:86%;object-fit:contain}
.pdp-pack{transition:opacity .2s ease}
@media(max-width:1099px){
  .pdp-thumbs{position:static;flex-direction:row;justify-content:center;
    margin-bottom:calc(14 * var(--u))}
}


/* ---------- нет в наличии ---------- */
.t-out{background:#e6e6e6;color:#4a4a4a}
.pcard .pbtn.is-out,
.pdp-buy .pbtn.is-out{
  filter:grayscale(1);opacity:.62;cursor:default;pointer-events:none;
  background-image:url(img/cap-bordo-l.svg),url(img/cap-bordo-r.svg),
    linear-gradient(var(--cart),var(--cart))!important}
.pcard .pbtn.is-out:hover,
.pdp-buy .pbtn.is-out:hover{transform:none;filter:grayscale(1)}
/* Карточка без товара приглушена целиком, но остаётся читаемой: покупатель
   должен видеть, что позиция есть и вернётся. */
.pcard:has(.ptag.t-out) .pimg img{filter:grayscale(.55);opacity:.85}


/* Подпись фасовки на миниатюре: видно, какой снимок к какой пачке. */
.pdp-thumbs button{position:relative}
.pdp-thumbs button i{position:absolute;left:0;right:0;bottom:0;
  font-style:normal;font-family:var(--font-ui);font-weight:600;
  font-size:calc(9.5 * var(--mp));line-height:1;padding:calc(3 * var(--mp)) 0;
  background:var(--green-deep-2);color:#fff;text-align:center;letter-spacing:.02em}


/* ---------- карта офисов на контактах ---------- */
.sc-contacts-map{border:1px solid var(--tile-line);border-radius:calc(28 * var(--u));
  background:var(--bg-soft);min-height:calc(220 * var(--u));
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:calc(12 * var(--u));padding:calc(28 * var(--u));text-align:center}
.sc-contacts-map .sc-map-open{cursor:pointer;border:0;color:#fff}
.sc-contacts-map .sc-map-hint{font-size:calc(14 * var(--u));color:var(--ink-soft);margin:0}
.sc-contacts-map.is-loading .sc-map-open{opacity:.6;pointer-events:none}
/* Когда карта построена, коробка отдаёт ей всю площадь. */
.sc-contacts-map:has(.sc-map-canvas){padding:0;display:block;min-height:0;overflow:hidden}
.sc-map-canvas{width:100%;height:calc(420 * var(--u));min-height:300px}


/* ---------- коробочный блок «Самовывоз» ----------
   Адрес самовывоза показан выше, в блоке адреса; второй такой же блок
   со своим списком складов и картой не нужен. Узел оставлен, потому что
   скрипт оформления обращается к нему по id. */
.sc-checkout #bx-soa-pickup,
.sc2026-page #bx-soa-pickup{display:none!important} /* коробочный самовывоз */


/* ==========================================================================
   ВЫБОР ГОРОДА
   Кнопка стоит слева от избранного и корзины — там его ищут глазами.
   ========================================================================== */
.hd-city{position:relative;display:flex;align-items:center;flex:none}
.hd-city-btn{display:flex;align-items:center;gap:calc(7 * var(--u));
  background:none;border:0;cursor:pointer;color:var(--green-deep-2);
  padding:calc(6 * var(--u)) calc(10 * var(--u));border-radius:calc(12 * var(--u));
  transition:background-color .18s}
.hd-city-btn:hover{background:var(--green-pale)}
.hd-city-wrap{display:flex;flex-direction:column;align-items:flex-start;line-height:1.15}
.hd-city-wrap i{font-style:normal;font-size:calc(11 * var(--u));color:var(--ink-soft)}
.hd-city-wrap b{font-family:var(--font-ui);font-weight:700;font-size:calc(14 * var(--u));
  white-space:nowrap}
@media(max-width:900px){.hd-city-wrap i{display:none}}

/* всплывашка «Ваш город — …?» */
.hd-city-confirm{position:absolute;top:calc(100% + 10 * var(--u));left:0;z-index:60;
  width:calc(268 * var(--u));background:#fff;border:1px solid var(--tile-line);
  border-radius:calc(18 * var(--u));padding:calc(16 * var(--u));
  box-shadow:0 14px 34px rgba(20,40,20,.16);
  opacity:0;transform:translateY(calc(-6 * var(--u)));transition:opacity .2s,transform .2s}
.hd-city-confirm.on{opacity:1;transform:none}
.hd-city-confirm p{margin:0 0 calc(12 * var(--u));font-size:calc(15 * var(--u));color:var(--ink)}
.hd-city-confirm b{font-weight:700;color:var(--green-deep-2)}
.hd-city-confirm-btns{display:flex;gap:calc(8 * var(--u))}
.hd-city-confirm-btns .pbtn,
.hd-city-confirm-btns .pbtn-line{font-size:calc(13 * var(--u));
  padding:calc(10 * var(--u)) calc(14 * var(--u));white-space:nowrap;cursor:pointer}
@media(max-width:700px){.hd-city-confirm{left:auto;right:0}}

/* модалка со списком */
.sc-city-modal{position:fixed;inset:0;z-index:1000;display:flex;
  align-items:center;justify-content:center;padding:calc(20 * var(--u));
  opacity:0;transition:opacity .2s}
.sc-city-modal.on{opacity:1}
.sc-city-back{position:absolute;inset:0;background:rgba(16,28,18,.45)}
.sc-city-box{position:relative;background:#fff;border-radius:calc(28 * var(--u));
  padding:calc(28 * var(--u));width:min(calc(560 * var(--u)), 100%);
  max-height:82vh;overflow:auto;box-shadow:0 24px 60px rgba(16,28,18,.28)}
.sc-city-x{position:absolute;top:calc(16 * var(--u));right:calc(16 * var(--u));
  width:calc(34 * var(--u));height:calc(34 * var(--u));border:0;border-radius:50%;
  background:var(--bg-soft);color:var(--ink-soft);cursor:pointer;
  display:flex;align-items:center;justify-content:center}
.sc-city-x:hover{background:var(--green-pale);color:var(--green-deep-2)}
.sc-city-box h2{font-family:var(--font);font-weight:900;text-transform:uppercase;
  font-size:calc(24 * var(--u));margin:0 0 calc(6 * var(--u));color:var(--green-deep-2)}
.sc-city-note{margin:0 0 calc(18 * var(--u));font-size:calc(14 * var(--u));color:var(--ink-soft)}
.sc-city-box input[type=search]{margin-bottom:calc(18 * var(--u))}
.sc-city-major{display:flex;flex-wrap:wrap;gap:calc(8 * var(--u));
  margin-bottom:calc(20 * var(--u));padding-bottom:calc(18 * var(--u));
  border-bottom:1px solid var(--tile-line)}
.sc-city-major button{font-family:var(--font-ui);font-weight:700;
  font-size:calc(14 * var(--u));padding:calc(10 * var(--u)) calc(18 * var(--u));
  border:1.5px solid var(--green-brand);border-radius:999px;background:#fff;
  color:var(--green-deep-2);cursor:pointer;transition:background-color .18s,color .18s}
.sc-city-major button:hover{background:var(--green-brand);color:#fff}
.sc-city-list{list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(auto-fill,minmax(calc(150 * var(--u)),1fr));
  gap:calc(2 * var(--u))}
.sc-city-list li[hidden]{display:none}
.sc-city-list button{width:100%;text-align:left;background:none;border:0;cursor:pointer;
  font-size:calc(15 * var(--u));color:var(--ink);
  padding:calc(9 * var(--u)) calc(10 * var(--u));border-radius:calc(10 * var(--u))}
.sc-city-list button:hover{background:var(--green-pale);color:var(--green-deep-2)}


/* ==========================================================================
   ФОКУС: своя обводка вместо системной

   Голубая рамка браузера выбивалась из оформления везде, где поле не попало
   под правило формы. Гасим её и рисуем свою — в цвет бренда.

   Только :focus-visible: щёлкнул мышью — рамки нет, пришёл табом — есть.
   Совсем убирать нельзя, иначе с клавиатуры не видно, где находишься.
   ========================================================================== */
.sc2026-page input:focus,
.sc2026-page select:focus,
.sc2026-page textarea:focus,
.sc2026-page button:focus,
.sc2026-page [tabindex]:focus,
.sc-city-modal input:focus,
.sc-city-modal button:focus,
.hd-city-btn:focus,
.hd-search input:focus{outline:none;box-shadow:none}

.sc2026-page input:focus-visible,
.sc2026-page select:focus-visible,
.sc2026-page textarea:focus-visible,
.sc2026-page button:focus-visible,
.sc2026-page [tabindex]:focus-visible,
.sc-city-modal input:focus-visible,
.sc-city-modal button:focus-visible,
.hd-city-btn:focus-visible,
.hd-search input:focus-visible{
  outline:2px solid var(--green-brand);outline-offset:2px;box-shadow:none}

/* Поиск города — под общее правило полей: своя форма со скосом вместо
   браузерной рамки, из-за которой поле и выглядело чужим. */
.sc-city-box input[type=search]{
  --btn-h:calc(50 * var(--u));--cap:calc(var(--btn-h) * 0.5556);
  width:100%;min-height:var(--btn-h);height:var(--btn-h);
  padding:0 calc(20 * var(--u));
  border:0!important;border-radius:0!important;box-shadow:none!important;
  font-family:var(--font-ui);font-size:calc(15 * var(--u));color:var(--ink);
  background-color:transparent!important;
  background-repeat:no-repeat!important;
  background-position:left center, right center, center top, center bottom!important;
  background-size:auto 100%, auto 100%,
    calc(100% - 2 * var(--cap)) calc(var(--btn-h) * 0.0288),
    calc(100% - 2 * var(--cap)) calc(var(--btn-h) * 0.0288)!important;
  background-image:url(img/cap-lgreen-l.svg),url(img/cap-lgreen-r.svg),
    linear-gradient(var(--green-brand),var(--green-brand)),
    linear-gradient(var(--green-brand),var(--green-brand))!important}
