/* ПОДВАЛ: ПОЛОСА «ВСЕ ФОРМАТЫ» ПОД СЦЕНОЙ (Босс 2026-10-22: «в подвале надо для SEO все форматы»; в тот же день —
   «поставить под второй»: сначала сцена, под ней полоса, последней — строка копирайта и документов).
   Разметка — views/partials/site-footer.ejs (footer.site-footer > div.footer + div.footer-map), свёртки групп на
   телефоне — js/footer-map.js.
   ⚠️ Своим файлом, а не в v3.css: страницы блога (Astro) держат в собранном HTML свою версию v3.css?v=…
   (год immutable-кэша) и новых правил оттуда не увидели бы — а полоса приходит к ним вместе с партиалом.
   Сетка и поля — как у колонок сцены (.footer-main, v3.css «ПОДВАЛ НА СЦЕНЕ»): ссылки каждой группы стоят ровно
   под колонкой сцены. Подписи групп — золотом и кеглем заголовков колонок (.footer-col-title), ссылки — как
   .footer-links, чуть плотнее: в самой длинной группе 15 пунктов. */
.footer-map{
  --ft-vw: calc(100vw / var(--site-zoom, 1));
  position: relative;
  background: #0b0a08;              /* цвет стены сцены (.footer background-color) */
  padding: clamp(48px, calc(var(--ft-vw) * 0.04), 80px) calc(var(--ft-vw) * 0.037) 0;
}
/* строка копирайта и документов — последней, под группами (стили самой строки — .footer-bottom в v3.css) */
.footer-map > .footer-bottom{ margin-top: clamp(40px, calc(var(--ft-vw) * 0.035), 64px); }
/* Круглая «Наверх» (.to-top, v3.css: left 24px, 60px) закрывала «©» и начало «Феликс» (Босс 2026-10-22). На компьютере
   строка начинается правее круга — в 112px от края экрана (под зумом wide.css на ≥1921 — 112px × зум, круг растёт так же).
   На телефоне круг стоит над нижней панелью связи — там строка заканчивается выше него (padding-bottom ниже, ≤960). */
@media (min-width: 961px){
  .footer-map > .footer-bottom{ padding-left: max(0px, calc(112px - var(--ft-vw) * 0.037)); }
}
/* minmax(0, …): подпись группы не переносится и не должна раздвигать свою колонку — иначе на 1281–1500 колонки
   полосы съезжали с колонок сцены на 3–7px; длинная подпись слегка заходит в межколонный зазор.
   Первая колонка — не уже 280px: у сцены её держит кнопка «Свободные даты / Календарь» (без переноса, ~280px), и на
   961–1400 колонки сцены сдвинуты вправо от «чистых» долей — без этого минимума полоса расходилась с ними до 33px. */
.footer-map-inner{
  display: grid; grid-template-columns: minmax(280px, 1.45fr) minmax(0, 0.85fr) minmax(0, 0.95fr) minmax(0, 1.1fr);
  gap: 0 clamp(28px, calc(var(--ft-vw) * 0.03), 64px);
  padding: 0 calc(var(--ft-vw) * 0.13) 0 calc(var(--ft-vw) * 0.123);
}
/* разрядка чуть меньше, чем у заголовков колонок (.3em), и в одну строку: «Личные торжества» во второй, самой узкой
   колонке (на 1680 — 191px) иначе ломалась надвое и сдвигала свой список ниже соседних */
.footer-map-title{
  display: block; position: relative; list-style: none; cursor: default; white-space: nowrap;
  font-weight: 600; text-transform: uppercase;
  font-size: .62rem; letter-spacing: .22em; color: #d9b96e;
  margin-bottom: 22px; padding-bottom: 14px;
}
.footer-map-title::-webkit-details-marker{ display: none; }
.footer-map-title::after{ content: ''; position: absolute; left: 0; bottom: 0; width: 24px; height: 1px; background: #d9b96e; }
/* кегль и интерлиньяж — на списке: у строчной ссылки высоту строки задаёт пункт (иначе — 32px от body) */
.footer-map-links{ list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; font-size: .82rem; line-height: 1.35; }
.footer-map-links a{ color: rgba(245,239,227,.78); text-decoration: none; transition: color .2s; }
.footer-map-links a:hover{ color: #e6c77a; }
.footer-map-links a:focus-visible, .footer-map-title:focus-visible{ outline: 2px solid #e6c77a; outline-offset: 3px; }
/* на компьютере подпись группы — просто подпись: не сворачивает список (клавиатура — js/footer-map.js) */
@media (min-width: 761px){ .footer-map-title{ pointer-events: none; } }

/* стык сцены и полосы: низ кадра сцены уходит в цвет полосы — щель света не обрывается линией (под текстом: z-index 0) */
.site-footer > .footer::after{
  content: ''; position: absolute; left: 0; right: 0; bottom: 0; z-index: 0; pointer-events: none;
  height: clamp(90px, calc(var(--ft-vw) * 0.09), 180px);
  background: linear-gradient(rgba(11,10,8,0), #0b0a08);
}
/* ≤960 место под нижнюю панель связи держал низ сцены (v3.css: .footer padding-bottom 80px) — теперь последняя полоса,
   и с запасом под круг «Наверх», который стоит над панелью (78–130px от низа): строка документов кончается выше круга */
@media (max-width: 960px){
  .site-footer > .footer{ padding-bottom: 0; }
  .site-footer > .footer-map{ padding-bottom: calc(144px + env(safe-area-inset-bottom, 0px)); }
}

/* поля и сетка — вслед за .footer-main на тех же порогах */
@media (max-width: 1280px){
  .footer-map-inner{ padding: 0; grid-template-columns: minmax(280px, 1.3fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.2fr); }
}
@media (max-width: 1280px) and (min-width: 1141px){ .footer-map-inner{ padding-right: calc(var(--ft-vw) * 0.09); } }
@media (max-width: 960px){
  .footer-map-inner{ grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 36px; }
  .footer-map-links{ font-size: 16px; }
}
/* телефон: четыре строки-свёртки (по умолчанию свёрнуты — js/footer-map.js), внутри ссылки в два столбца */
@media (max-width: 760px){
  .footer-map-inner{ grid-template-columns: 1fr; gap: 0; }
  .footer-map-group{ border-bottom: 1px solid rgba(245,239,227,.14); }
  .footer-map-group:first-child{ border-top: 1px solid rgba(245,239,227,.14); }
  .footer-map-title{
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    min-height: 52px; margin: 0; padding: 0; cursor: pointer;
  }
  .footer-map-title::after{
    position: static; flex: none; width: 8px; height: 8px; margin-right: 4px; background: none;
    border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg); transition: transform .2s;
  }
  .footer-map-group[open] > .footer-map-title::after{ transform: rotate(225deg); }
  .footer-map-links{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; padding: 0 0 14px; font-size: 15px; line-height: 1.3; }
  .footer-map-links a{ display: flex; align-items: center; min-height: 44px; }
  /* разделитель над строкой документов — линия под последней свёрткой; своя линия строки дала бы двойную */
  .footer-map > .footer-bottom{ margin-top: 8px; border-top: 0; }
}
@media (max-width: 640px){ .footer-map{ padding-left: 20px; padding-right: 20px; } }
@media (prefers-reduced-motion: reduce){ .footer-map-links a, .footer-map-title::after{ transition: none; } }
