/* ============================================================
   Frankenplatz — ПОДВАЛ. Единственный источник стилей подвала
   на весь сайт: и для статических страниц, и для React-страниц.

   Кто его подключает:
   — статика (14 страниц) — через site/chrome.css, первой строкой @import;
   — React (8 страниц: index, day1, day2, speakers, speaker, legal,
     anketa, sponsor) — тегом <link ... id="fp-foot-css"> в <head>.

   Про id="fp-foot-css". Компонент components/chrome/Footer.jsx возит
   свою копию этих правил и вставляет её скриптом, но только если в
   документе ещё нет элемента с таким id (useFpStyle). Тег <link> с этим
   id занимает место заранее — и копия из бандла не вставляется вовсе.
   Поэтому id менять нельзя: подвал начнёт стилиться из двух мест сразу.

   Значения — литеральные, не var(): подвал обязан выглядеть одинаково
   на любой странице, независимо от её собственных токенов. Проверено —
   на React-страницах var(--line), var(--gold), var(--muted) и прочие
   разворачиваются ровно в эти же цвета.
   ============================================================ */

/* ---------- Footer ---------- */
.fp-foot{background:#191026;border-top:1px solid rgba(255,255,255,.10);padding:64px clamp(24px,7vw,80px) 34px;font-family:"Manrope",system-ui,sans-serif;font-size:14px;color:#9A8BB3;text-align:left}
.fp-foot::before,.fp-foot::after{content:none;display:none}
/* Подвал лежит над фоновыми пятнами. .fp-glow — position:fixed; z-index:0,
   а позиционированный элемент рисуется поверх статичного в том же слое.
   Без подъёма по подвалу ползёт лиловый разлив: так было на амбассадорах,
   организаторах, блоге и всех React-страницах. Раньше правило стояло
   постранично в tickets, cows, okaziya, brand-market, market-catalog и в
   site/collab.css — те копии теперь лишние, но безвредные. */
.fp-foot{position:relative;z-index:1}
.fp-foot nav{position:static;background:none;border:none;box-shadow:none;border-radius:0;padding:0;margin:0;backdrop-filter:none;-webkit-backdrop-filter:none;height:auto;min-height:0}
.fp-foot form{margin:0;padding:0;background:none;border:none}
.fp-foot__grid{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) minmax(0,.6fr) minmax(0,1.35fr);gap:40px;align-items:start}
.fp-foot__name{font-family:"Unbounded","Manrope",system-ui,sans-serif;font-weight:700;font-size:20px;color:#fff;margin:0 0 8px}
/* Логотип вставал ниже заголовков соседних колонок на 24px: 16px давал
   постраничный inline-стиль (.fp-foot__name{margin:16px 0 8px} остался в
   tickets, cows, okaziya, brand-market, market-catalog — на других страницах
   его нет, и логотип там стоял выше), ещё ~10px — центрирование текста внутри
   44px зоны нажатия. Зону нажатия оставляем, текст прижимаем к верху,
   постраничный отступ гасим более сильным селектором.

   Сами строчки .fp-foot__name{margin:16px 0 8px} в этих пяти страницах —
   наследство: они появились, когда создавали tickets.html, и правила
   .fp-foot__name в chrome.css тогда ещё не было. Потом стили подвала свели
   сюда, а хвосты в страницах остались. Их можно удалить отдельной чисткой,
   на вид ничего не изменится. */
.fp-foot .fp-foot__name{margin-top:0}
.fp-foot__name a{color:inherit;text-decoration:none;min-height:44px;display:inline-flex;align-items:flex-start}
.fp-foot__tag{margin:6px 0 0;font-size:14px;line-height:1.5;color:#9A8BB3;max-width:26ch}
/* Заголовки колонок крупнее прежних 12px — на телефоне они читались как подпись. */
.fp-foot__h{font-size:14px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#E6B450;margin:0 0 14px}
.fp-foot__nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 44px}
.fp-foot__nav a{color:#C3B7D4;text-decoration:none;font-size:15px;width:fit-content;min-height:44px;display:inline-flex;align-items:center}
.fp-foot__nav a:hover{color:#fff}
@media(hover:hover) and (pointer:fine){.fp-foot__nav a{min-height:26px}}
.fp-foot__soc{display:flex;flex-direction:column;gap:2px}
.fp-foot__soc a,.fp-foot__soc span{display:inline-flex;align-items:center;min-height:44px;gap:10px;color:#C3B7D4;text-decoration:none;font-size:15px;width:fit-content}
.fp-foot__soc a svg{flex:none;width:19px;height:19px;fill:#E6B450}
.fp-foot__soc a:hover{color:#fff}
@media(hover:hover) and (pointer:fine){.fp-foot__soc a,.fp-foot__soc span{min-height:26px}}
.fp-foot__soc .soon{color:#9A8BB3}
.fp-foot__form{display:flex;gap:8px;max-width:440px}
.fp-foot__input{flex:1;min-width:0;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.16);border-radius:9999px;padding:10px 16px;color:#fff;font-size:16px;font-family:inherit;outline:none}
.fp-foot__input::placeholder{color:#9A8BB3}
.fp-foot__input:focus{border-color:#E6B450}
.fp-foot__send{border:none;border-radius:9999px;padding:12px 18px;min-height:44px;font-weight:700;font-size:14px;cursor:pointer;font-family:inherit;background:linear-gradient(135deg,#E6B450,#F5C969);color:#2A1A05}
.fp-foot__send:hover{filter:brightness(1.08)}
.fp-foot__done{font-size:14.5px;color:#E6B450;margin:0;line-height:1.5}
.fp-foot__note{font-size:12.5px;color:#9A8BB3;margin:10px 0 0}
.fp-foot__bottom{max-width:1240px;margin:48px auto 0;padding-top:20px;border-top:1px solid rgba(255,255,255,.10);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13px;color:#9A8BB3}
.fp-foot__where::before{content:" · "}
.fp-foot__bottom a{color:#E6B450;text-decoration:none}
.fp-foot__bottom a:hover{text-decoration:underline}
/* Планшет и узкое окно (601–1000): четыре колонки не влезают, но и столбик в одну
   колонку давал подвал на 785px из четырёх блоков подряд. Две колонки: сверху
   логотип и ссылки, снизу соцсети и подписка — по DOM-порядку, без переносов. */
@media(max-width:1000px){.fp-foot{padding-top:44px;padding-bottom:28px}.fp-foot__grid{grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:20px 40px;align-items:start;align-content:start}.fp-foot__name{font-size:24px}/* Слева логотип и под ним соцсети, справа ссылки на две строки, подписка — на всю меру:    иначе под коротким логотипом висела дыра в 60px, а поле ввода жалось в половину. */.fp-foot__grid>*:nth-child(1){grid-area:1/1/2/2}.fp-foot__grid>*:nth-child(2){grid-area:2/1/3/2}.fp-foot__grid>*:nth-child(3){grid-area:3/1/4/2;align-self:start;margin-top:-10px}/* Правый блок висит от строки первой ссылки и растёт вниз сам: меню бывает и из четырёх пунктов,   и из восьми — жёсткая привязка к низу левой колонки в коротком меню давала дыру под формой. */.fp-foot__grid>*:nth-child(4){grid-area:2/2/4/3;align-self:start}.fp-foot__grid>*:nth-child(4) .fp-foot__note{margin-top:10px;margin-bottom:0}/* Заголовки «Страницы» и «Соцсети» на планшете лишние: слева меню, под ним значок, справа форма. */.fp-foot__grid>nav>.fp-foot__h,.fp-foot__grid>*:nth-child(3)>.fp-foot__h{display:none}.fp-foot__nav{gap:0 28px}.fp-foot__nav a{white-space:nowrap;min-height:40px}/* Заголовок правой колонки сидит в такой же строке 34px, что и первая ссылка, — иначе он висит выше на 11px. */.fp-foot__grid>*:nth-child(4)>.fp-foot__h{min-height:40px;display:flex;align-items:center;margin:0 0 10px}.fp-foot__soc{flex-direction:row;gap:14px}.fp-foot__soc a{min-height:40px;gap:12px;align-items:flex-end}.fp-foot__soc a svg{width:28px;height:28px}/* Кнопка справа от поля; поле шире кнопки — сетка, а не flex с равными долями. */.fp-foot__form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;max-width:none;align-items:center}.fp-foot__input{width:100%;min-width:0}.fp-foot__send{white-space:nowrap;padding:12px 18px}.fp-foot__bottom{margin-top:24px;flex-direction:column;align-items:flex-start;flex-wrap:nowrap;gap:8px;line-height:1.5}.fp-foot__bottom>*{flex:none}}
/* Блок «iPad Pro (1001–1100)» удалён 18.09. Он держал на этой полосе две колонки
   с увеличенным воздухом, но React-футер (components/chrome/Footer.jsx →
   site/ds.bundle.js) перестраивается на 1000 — и на одной и той же ширине подвал
   был 383px на главной против 587px на билетах. Перелом сведён к 1000 везде. */

/* Телефон: подвал занимал почти целый экран (796px на 360px) — из них ~180px
   были чистым воздухом. Сжат только вертикальный ритм; кегли, 44px-тапы,
   две колонки ссылок и боковые отступы (их держит align-left.css) не тронуты.
   Замер до/после — zz-foot-probe.html. */
@media(max-width:600px){
  /* Телефон. Один столбец: логотип со строкой-описанием → ссылки в две колонки →
     ряд значков соцсетей → форма подписки → мелкая нижняя полоса. Правится в связке с zz-foot-lab.html (там копия
     этих правил: медиазапрос смотрит на окно, а не на ширину лаборатории). */
  .fp-foot{padding-top:56px;padding-bottom:20px}
  .fp-foot__grid{grid-template-columns:minmax(0,1fr);gap:22px}.fp-foot__grid>*:nth-child(n){grid-area:auto;display:block}.fp-foot__grid>*:nth-child(4)>.fp-foot__h{min-height:0;display:block;margin:0 0 10px}.fp-foot__grid>*:nth-child(4) .fp-foot__note{margin-top:10px}
  /* Соцсети — ряд значков под ссылками; сейчас один, место под остальные готово. */
  .fp-foot__soc{flex-direction:row;gap:14px}
  /* Заголовки «Страницы» и «Соцсети» на телефоне лишние: столбцы читаются сами. */
  .fp-foot__grid>nav>.fp-foot__h,.fp-foot__grid>div:nth-child(3)>.fp-foot__h{display:none}
  /* Ссылка-логотип держит зону нажатия 44px, и половина этой пустоты висела над
     надписью. Зону оставляем, воздух снимаем выравниванием по верху. */
  /* Более сильный селектор: постраничный inline-стиль ставит margin-bottom:8px
     и отлеплял подпись от логотипа на 16px именно на телефоне. */
  .fp-foot .fp-foot__name{font-size:26px;margin:0 0 -8px;line-height:1.05}
  .fp-foot__name a{min-height:44px;align-items:flex-start;margin-top:-10px}
  .fp-foot__tag{margin-top:2px;font-size:14px;max-width:none}
  .fp-foot__nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}
  .fp-foot__nav a{font-size:16px;min-height:42px;color:#E7DFF4}
  .fp-foot__soc a,.fp-foot__soc span{font-size:16px;min-height:42px}
  /* Соцсети на телефоне — один крупный значок без подписи, по высоте строки формы. */
  .fp-foot__soc a span{display:none}
  .fp-foot__soc a{min-height:44px;justify-content:flex-start}
  .fp-foot__soc a svg{width:34px;height:34px}
  .fp-foot__h{font-size:13px;letter-spacing:.06em;margin-bottom:10px}
  /* Поле ввода должно быть заметно шире кнопки — сетка, а не flex с равными долями. */
  .fp-foot__form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;max-width:none;align-items:center}
  .fp-foot__input{width:100%;min-width:0;padding:12px 16px}
  .fp-foot__send{white-space:nowrap;padding:12px 18px;font-size:14px}
  .fp-foot__note{margin-top:10px}
  /* Нижняя полоса: три блока в flex-wrap давали рваные строки. Один столбец. */
  .fp-foot__bottom{margin-top:22px;padding-top:14px;flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:7px;font-size:12.5px;line-height:1.45}
  /* «Baden · 15 мин от Zürich HB» — отдельной строкой, а не рваным хвостом. */
  .fp-foot__where{display:block}
  .fp-foot__where::before{content:none}
}

/* Флаг Швейцарии вместо эмодзи: вектор, поэтому резкий на любом кегле и
   одинаковый во всех системах. Размер — по кеглю строки, как у символа. */
.fp-flag{display:inline-block;width:1.05em;height:1.05em;vertical-align:-.16em;flex:none}
