/* Serikov Coffee 2026 — шапка и подвал.
   Выборка из прототипа: переменные масштаба, шрифты, контейнер .mac,
   шапка .site-head/.hd-* и подвал .site-foot/.ft-*.
   Общих селекторов по тегам, кроме html/body, здесь нет — Bootstrap сайта не задевается. */
@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}
: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;
  --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',system-ui,-apple-system,sans-serif;
  /* Обычный текст тем же Gotham Pro: в наборе дизайнера один шрифт,
     Geologica здесь была временной подменой. */
  --font-ui:'Gotham Pro',system-ui,sans-serif;
  --font-display:'Gotham Pro',system-ui,sans-serif;
  --wrap:1280px;
  /* Единый масштаб макета. Крупнее/мельче — меняется здесь одним числом. */
  --u: clamp(.70px, min(.0576vw, .1005vh), 1.085px);
  /* Ширина контентной колонки. Хотите уже поля по бокам — увеличьте число.
     1640 при масштабе .8 даёт колонку 1312px. */
  --wrap-w: calc(1640 * var(--u));
}
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}
@keyframes mmIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
/* --- совместимость с Bootstrap рабочего сайта --- */
.site-head a,.site-foot a,.hd-drop a,.fab{text-decoration:none}
.site-head a:hover,.site-foot a:hover,.hd-drop a:hover{text-decoration:none}
.hd-cat{border:0;cursor:pointer;padding:0;-webkit-appearance:none;appearance:none}
.ft-col{padding-left:0;margin-bottom:0}
.site-head *,.site-foot *,.hd-drop *{box-sizing:border-box}
.site-foot p{margin:0}
/* --- шапка --- */
#site-header{position:sticky;top:0;z-index:100}
/* В макете шапка — простая белая полоса высотой 83: ряд стоит на 19-й
   строке и сам высотой 64. Ни скругления, ни рамки, ни тени, ни матового
   стекла — всё это было отсебятиной. */
.site-head{background:#fff;padding:calc(19 * var(--u)) 0 0;will-change:transform;transition:transform .42s var(--ease),box-shadow .3s ease}
.site-head.is-hidden{transform:translateY(-102%)}
/* Единственная уступка: при прокрутке белая шапка над белым
   содержимым сливается, поэтому в прилипшем состоянии оставляем тонкую
   тень. В статике её нет, как и в макете. */
.site-head.is-stuck{box-shadow:0 6px 18px rgba(20,40,20,.10)}
.site-head.is-stuck .head-inner::before{background:rgba(255,255,255,.78)}
@media(prefers-reduced-motion:reduce){.site-head{transition:none}}
.head-plate{max-width:var(--wrap-w);margin:0 auto;padding:0 calc(40 * var(--u))}
.head-inner{position:relative;height:calc(64 * var(--u));display:flex;align-items:center;
  gap:calc(40 * var(--u));padding:0;border-radius:0;border:0;box-shadow:none}
/* Матовое стекло — отдельным слоем под плашкой, а не на ней самой.
   Если backdrop-filter стоит на родителе выпадающего меню, Chrome
   рисует это меню полупрозрачным и сквозь него видно баннер. */
.head-inner::before{content:none;position:absolute;inset:0;z-index:-1;border-radius:inherit;
  background:rgba(255,255,255,.62);backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%)}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.head-inner::before{background:#fff}}
@media(max-width:1100px){.head-plate{padding:0 16px}.head-inner{height:auto;padding:10px 14px;flex-wrap:wrap}}
.hd-logo{flex-shrink:0;display:block;line-height:0;margin-right:0}
.hd-logo img{width:calc(152 * var(--u));height:auto;max-height:calc(77 * 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(178 * var(--u));height:calc(54 * var(--u));background:url(img/hd-shape-btn.svg?v=2) no-repeat center/100% 100%;
  color:#fff;font-family:var(--font);font-weight:500;font-size:calc(20 * var(--u));letter-spacing:0;
  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;margin-right:calc(20 * var(--u))}
.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)}
.hd-drop[hidden]{display:none}
/* ---- Меню «Каталог»: выпадающие списки (17.09.2026) ----
   Герман: «некрасиво расположено всё; сделай выпадающие списки, и чтобы
   первый список был открыт при нажатии, сворачивался при переходе на
   другой». Раньше группы стояли плоскими колонками во всю ширину шапки.
   Теперь группа — кнопка-заголовок со стрелкой и пункты под ней; открыта
   одна, при открытии меню — первая («Кофе»). Разметка — шаблон
   sc2026.mega и header.php, поведение — site-hf.js.
   Кадра этого меню в макете нет (слово «Каталог» в Figma только на кнопке
   в шапках кадров), поэтому вид собран из того, что на сайте уже есть:
   заголовок со стрелкой — как у аккордеона мобильного подвала, шрифт и
   цвета — как у прежних колонок меню.
   РАСКЛАДКА — одна колонка в компактной панели под кнопкой. Не колонки во
   всю шапку и не «заголовки слева, пункты справа», потому что:
   • так и выглядит выпадающий список: пункты открываются под своим
     заголовком, как просил Герман;
   • раскладка и поведение одни на 1440, на 1024 и в бургере телефона;
   • «слева заголовки — справа пункты» на десктопе переключают наведением,
     и курсор, идущий по диагонали к пунктам, цепляет соседнюю группу;
   • узкая панель не закрывает баннеры во всю ширину и помещается по
     высоте: пять заголовков и самая длинная группа (5 пунктов) — около
     500px. Если окно ниже, у панели своя прокрутка (--hd-drop-max считает
     site-hf.js).
   Правила прежних колонок (.hd-drop-in, .hd-cat-cols, .hd-drop-side,
   .hd-drop-cap) остались в site.css, но таких классов в разметке больше
   нет.
   Размеры: кегли на --d (site.css) с нижней границей в пикселях — на 1024
   --d упирается в минимум .68, и без границы пункты вышли бы по 11–12px. */
/* Приставка hd-dd-, а не hd-acc-: .hd-acc на сайте уже занят ссылкой
   «Войти / Кабинет» в шапке, и mobile/nav.js переносит в нижнюю панель
   первый .hd-acc на странице — при общем имени на телефоне туда уезжал
   весь список меню (поймано проверкой 17.09). */
.hd-dd{display:flex;flex-direction:column;padding:8px 0}
/* Тонкая линия между группами, с полями как у текста. «~», а не «+»:
   между группами шаблона и группами из header.php стоит <script> шаблона,
   и соседство через «+» там рвалось. */
.hd-dd-g~.hd-dd-g::before{content:"";display:block;height:1px;margin:0 20px;background:var(--line)}
/* Заголовок — служебная кнопка раскрытия, фирменная форма со скосом на неё
   не распространяется (как у заголовков аккордеона подвала, BRAND-RULES
   §3.1). Строка 52px — под палец и на планшете. */
.hd-dd-h{display:flex;align-items:center;justify-content:space-between;gap:12px;
  width:100%;min-height:52px;margin:0;padding:0 20px;border:0;border-radius:0;background:none;
  font-family:var(--font);font-weight:900;font-size:max(14px,calc(17 * var(--d)));line-height:1.2;
  letter-spacing:.01em;text-transform:uppercase;text-align:left;color:var(--green-deep-2);
  cursor:pointer;-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent;
  transition:color .15s}
.hd-dd-h:hover,.hd-dd-h[aria-expanded="true"]{color:var(--green-brand)}
.hd-dd-arr{flex:none;width:20px;height:20px;transition:transform .32s var(--ease)}
.hd-dd-h[aria-expanded="true"] .hd-dd-arr{transform:rotate(180deg)}
/* Плавная высота без замера в скрипте: строка сетки 0fr → 1fr. Свёрнутый
   список ещё и visibility:hidden — его ссылки не берут фокус с клавиатуры
   и не читаются экранным диктором. При сворачивании visibility меняется
   после анимации (задержка), при раскрытии — сразу. Отступы — у ссылок,
   а не у .hd-dd-in: паддинг не сжимается, и «свёрнутый» список оставался
   бы полоской высотой в паддинг. */
.hd-dd-p{display:grid;grid-template-rows:0fr;visibility:hidden;
  transition:grid-template-rows .32s var(--ease),visibility 0s linear .32s}
.hd-dd-h[aria-expanded="true"]+.hd-dd-p{grid-template-rows:1fr;visibility:visible;
  transition:grid-template-rows .32s var(--ease),visibility 0s}
.hd-dd-in{min-height:0;overflow:hidden}
.hd-dd-in a{display:flex;align-items:center;min-height:38px;padding:6px 20px;
  font-family:var(--font);font-weight:500;font-size:max(15px,calc(18 * var(--d)));line-height:1.25;
  color:var(--ink);transition:color .15s,transform .15s}
.hd-dd-in a:last-child{margin-bottom:10px}
.hd-dd-in a:hover{color:var(--green-brand);transform:translateX(3px)}
/* «Весь раздел» / «Весь каталог» — ссылка на страницу самой группы: раньше
   ею был заголовок, теперь он только раскрывает список. */
.hd-dd-in a.hd-dd-all{font-weight:700;color:var(--green-brand)}
/* Телефон внизу панели. Перебивает .hd-drop-tel из site.css (0,1,0), где
   цвет с !important. */
.hd-dd .hd-drop-tel{display:flex;align-items:center;min-height:48px;margin:4px 20px 0;padding:8px 0 0;
  border-top:1px solid var(--line);font-family:var(--font);font-weight:700;
  font-size:max(16px,calc(19 * var(--d)));line-height:1.2;color:var(--green-deep-2)!important;white-space:nowrap}
.hd-drop a.is-here{color:var(--green-brand);font-weight:700}
/* Фокус с клавиатуры — свечение по буквам и стрелке, без прямоугольной
   обводки (BRAND-RULES §3.2). Кнопке его и так даёт button:focus-visible
   из site.css, ссылкам там же задано кольцо a:focus-visible (0,1,1) —
   здесь (0,2,1). */
.hd-dd-h:focus-visible,.hd-dd-in a:focus-visible,.hd-dd .hd-drop-tel:focus-visible{
  outline:none;box-shadow:none;color:var(--green-brand);filter:drop-shadow(0 0 3px var(--green-brand))}
/* Кнопка «Каталог» при открытом меню: .hd-cat.is-open{filter:brightness}
   (0,2,0) в site.css перебивал свечение button:focus-visible, и после
   стрелки вверх из меню или Esc фокус на кнопке не был виден. (0,3,0). */
.hd-cat.is-open:focus-visible{filter:brightness(1.12) drop-shadow(0 0 3px var(--green-brand))}
/* Планшет и сенсорный ноутбук: строка ссылки под палец. */
@media(pointer:coarse){.hd-dd-in a{min-height:44px}}
@media(prefers-reduced-motion:reduce){.hd-dd-p,.hd-dd-arr,.hd-dd-in a{transition:none}}
/* Место панели на десктопе и планшете — под шапкой, по левому краю
   кнопки «Каталог». Верх прежний: панель отсчитывается от ряда шапки
   (.head-inner), поэтому на 1024, где поиск переносится вторым рядом,
   она встаёт под поиском, а не на него. Левый край кнопки CSS не знает
   (перед ней логотип, у самой кнопки свой margin-left), его кладёт в
   --hd-drop-left site-hf.js при открытии; без значения — прежний 0.
   Условие — всё, что не телефонный слой (mobile/*.css: (max-width:767px),
   (max-width:1023px) and (max-height:520px)); там панель во весь экран,
   её держит mobile/header.css, и эти правила туда попадать не должны.
   Вес (0,2,0) — против .hd-drop{left:0;right:0} (0,1,0) в site.css и
   .hd-drop{max-height…} в mobile/tablet.css. */
@media (min-width:1024px), (min-width:768px) and (min-height:521px){
  .hd-menu .hd-drop{left:var(--hd-drop-left,0px);right:auto;width:clamp(320px,calc(460 * var(--u)),420px);
    max-height:var(--hd-drop-max,calc(100vh - 150px));
    overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
}
.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(54 * 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(20 * var(--u));color:var(--green-brand);min-width:0;box-shadow:none}
.hd-search input::placeholder{color:var(--green-brand);opacity:1}
.hd-search-ico{width:calc(22 * var(--u));height:calc(22 * var(--u));flex-shrink:0}
/* margin-left:auto прижимает иконки к правому краю плашки:
   без него они липли к полю поиска, а справа оставалась пустота. */
.hd-right{display:flex;align-items:flex-start;gap:calc(12 * var(--u));flex-shrink:0;margin-left:auto}
/* Иконки приходят из компонента корзины, он оборачивает их в свои
   .bx-basket и #header-basket-sc-containter — раскладку задаём им. */
.hd-right .bx-basket{display:flex}
.hd-right-in{display:flex;align-items:flex-start;gap:calc(12 * var(--u))}
.hd-ico:not(.cart) .cnt{color:var(--green-brand)}
/* Подписи в макете Medium 17 и фирменным зелёным, отступ до значка 3.
   Было 16 и --green-deep-2 — другой, более тёмный оттенок. */
.hd-ico{position:relative;display:flex;flex-direction:column;align-items:center;gap:calc(3 * var(--u));
  color:var(--green-brand);font-family:var(--font);font-weight:500;font-size:calc(17 * var(--u));
  line-height:1.15;white-space:nowrap;transition:opacity .15s}
.hd-ico:hover{opacity:.72}
.hd-ico.cart{color:#8b2628}
/* Цифра стоит у самого значка, а не у правого края столбца: столбец шире
   значка на всю подпись, и от «right» цифра уезжала к «Корзине». В макете
   она в 3,5 правее значка и на 6 выше его верхнего края. */
.hd-ico .cnt{position:absolute;top:calc(-6 * var(--u));left:calc(50% + 12 * var(--u));right:auto;
  font-family:var(--font);font-weight:900;font-size:calc(15 * var(--u));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}}
/* --- подвал --- */
/* flex:none обязателен: тема делает <body> флекс-контейнером, и подвал
   как флекс-элемент сжимается до нулевой высоты. */
/* Высота была жёсткой, а строка с реквизитами висела абсолютом на 276u
   от верха. Стоило ссылке в колонке перенестись на вторую строку —
   колонка доезжала до реквизитов и налезала на них. Теперь подвал растёт
   по содержимому, а реквизиты идут обычным потоком. */
.site-foot{flex:none;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;color:#fff}
.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;color:#fff}
.ft-legal{position:relative;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);color:#fff}
@media(max-width:560px){.fab span{display:none}.fab{padding:15px}}
.rv{opacity:0;transform:translateY(24px);transition:opacity .6s var(--ease),transform .7s var(--ease)}
.rv.in{opacity:1;transform:none}
.mac{max-width:var(--wrap-w);margin:0 auto;padding:0 calc(24 * var(--u))}
@media(max-width:1100px){.mac{padding:0 16px}}
