/* Переключатель языка + cookie-баннер. Использует токены страницы
   (--accent и т.п.) с безопасными фолбэками. Подключается на всех страницах.

   Почему меню, а не ряд кодов. Ряд «RU EN ES DE UK» в шапке не поместился уже
   на пяти языках: он перенёсся на вторую строку и растащил всю навигацию — на
   главной вместе с ним разорвало пункт «Мой цикл», и шапка стала двухэтажной.
   Языков будет больше, поэтому ряд не чинится отступами, он чинится тем, что
   занимает место ОДНОГО элемента независимо от их числа.

   Разметка — <details>: открывается и закрывается браузером сам, работает без
   JS и с клавиатуры. JS нужен только чтобы закрыть меню по клику мимо. */
/* Сброс общих стилей details. На главной есть правило details{...} для
   FAQ-аккордеонов, и переключатель его наследовал: overflow:hidden обрезал бы
   выпадающий список НАЦЕЛО (меню просто не появлялось бы), а рамка и нижний
   отступ разъезжались бы в шапке. Перечисляем свойства явно, а не надеемся,
   что на следующей странице такого правила не окажется. */
.lang-switch{position:relative;display:inline-block;overflow:visible;border:0;
  margin:0;padding:0;background:none;border-radius:0;box-shadow:none}
.lang-switch>summary{list-style:none;cursor:pointer;user-select:none;display:inline-flex;
  align-items:center;gap:5px;padding:7px 10px;border:1px solid var(--line,#e6eaf0);
  border-radius:999px;background:var(--surface,#fff);color:var(--ink-2,#44515e);
  font-size:13px;font-weight:600;line-height:1;transition:.15s;white-space:nowrap}
.lang-switch>summary::-webkit-details-marker{display:none}
/* Страницы дорисовывают своим summary плюс/минус через ::after (так сделаны
   FAQ-аккордеоны). На кнопке языка такой значок — мусор, а селектор там с
   атрибутом ([open]), поэтому гасим с запасом по весу. */
.lang-switch>summary::after,.lang-switch[open]>summary::after,
.lang-switch>summary::before,.lang-switch[open]>summary::before{content:none;display:none}
.lang-switch>summary{font-family:inherit;justify-content:center}
/* Ширина кнопки зависит от языка («Українська» длиннее «Русский»), но меняется
   только в момент переключения — в шапке это один элемент, а не ряд из пяти,
   и он всё равно уже прежнего ряда кодов. На узком экране название убираем:
   остаётся глобус, а язык виден в открытом списке. */
@media (max-width:640px){.lang-switch>summary [data-lang-label]{display:none}}
.lang-switch>summary:hover{color:var(--ink,#15202b);border-color:var(--ink-3,#6b7785)}
.lang-switch>summary:focus-visible{outline:2px solid var(--accent,#2a6fdb);outline-offset:2px}
.lang-switch[open]>summary{color:var(--ink,#15202b);border-color:var(--accent,#2a6fdb)}
.lang-switch .caret{transition:transform .15s}
.lang-switch[open] .caret{transform:rotate(180deg)}

.lang-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:70;min-width:168px;
  padding:6px;border:1px solid var(--line,#e6eaf0);border-radius:14px;
  background:var(--surface,#fff);box-shadow:0 18px 40px -20px rgba(21,32,43,.45);
  display:flex;flex-direction:column;gap:2px}
.lang-menu a{display:block;padding:9px 12px;border-radius:9px;font-size:14px;font-weight:500;
  color:var(--ink,#15202b);cursor:pointer;white-space:nowrap;text-decoration:none;transition:.12s}
.lang-menu a:hover{background:var(--accent-soft,#eaf1fd)}
.lang-menu a.is-active{background:var(--accent,#2a6fdb);color:#fff;font-weight:600}

/* Переключатель в ПОДВАЛЕ.

   Язык сайт определяет сам (ссылка ?lang= → сохранённый выбор → язык браузера),
   поэтому кнопка нужна редко — только тому, кого угадали неверно. В шапке она
   отъедала место у навигации и у кнопок «Войти»/«Установить»; внизу она никому
   не мешает и находится там, где её и ищут, — рядом с правовыми ссылками.

   Меню раскрывается ВВЕРХ: снизу страницы места нет, вниз оно уехало бы за
   край экрана и удлинило бы страницу. Выравнивание по левому краю кнопки —
   в подвале переключатель стоит слева, и меню (оно шире кнопки) при right:0
   вылезало бы за левую границу. */
.lang-foot{display:flex;align-items:center;margin-top:22px}
/* Внутри однострочного подвала (ряд ссылок) переключатель — такой же его
   пункт, как «Условия»: отступ сверху там сдвинул бы его вниз от ряда. */
footer .in .lang-foot,footer .foot .lang-foot{margin-top:0}
.lang-foot .lang-menu,footer .lang-switch .lang-menu{top:auto;bottom:calc(100% + 6px);left:0;right:auto}
/* На узком экране название языка в шапке прятали ради места. В подвале место
   есть — там подпись нужна: голый глобус без текста не читается как «язык». */
@media (max-width:640px){.lang-foot .lang-switch>summary [data-lang-label],
  footer .lang-switch>summary [data-lang-label]{display:inline}}

.cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:60;background:rgba(255,255,255,.97);
  backdrop-filter:blur(10px);border-top:1px solid var(--line,#e6eaf0);box-shadow:0 -8px 30px -18px rgba(21,32,43,.3)}
.cookie-inner{max-width:1120px;margin:0 auto;padding:14px 24px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.cookie-inner p{margin:0;font-size:13.5px;color:var(--ink-2,#44515e);flex:1;min-width:240px;line-height:1.5}
.cookie-inner a{color:var(--accent-ink,#1f57b0);font-weight:600}
.cookie-ok{background:var(--accent,#2a6fdb);color:#fff;border:none;border-radius:999px;padding:10px 22px;
  font-weight:600;font-size:14px;cursor:pointer;font-family:inherit;transition:.15s}
.cookie-ok:hover{background:var(--accent-ink,#1f57b0)}
