/*!
 * QKASSA — стили окна согласия на cookie.
 * Префикс qk-cc — чтобы ничего не пересекалось с темой Vega и с homepage.css.
 * Слоя категорий больше нет: выбор бинарный, «Принять все» или «Отклонить».
 *
 * Первая строка гасит ШТАТНЫЙ баннер темы Vega. Дубль этого правила стоит
 * инлайном в head_js: если этот файл не доедет (кэш, опечатка в пути), инлайн
 * всё равно не даст показать старую плашку «Продолжая просмотр, вы принимаете».
 */
.js-cookies { display: none !important; }

.qk-cc {
  --qk-cc-accent: var(--qk-primary, hsl(213, 55%, 45%));
  --qk-cc-text: var(--qk-text, #1a2536);
  --qk-cc-muted: var(--qk-text-muted, #5b6776);
  --qk-cc-border: var(--qk-border, #e4e9ef);
  font-family: inherit;
  box-sizing: border-box;
}
.qk-cc * { box-sizing: border-box; }

/* ------------------------------ баннер ------------------------------ */
/* z-index намеренно предельный: снизу справа висит кнопка чата, и она не имеет
   права перекрыть кнопку «Отклонить» — иначе отказ физически недоступен. */
.qk-cc {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 2147483000;
  padding: 12px;
  background: rgba(16, 24, 38, .28);
  backdrop-filter: blur(2px);
  animation: qk-cc-in .18s ease-out;
}
@keyframes qk-cc-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }

.qk-cc__box {
  position: relative;
  max-width: 1100px;
  margin: 0 auto;
  background: #fff;
  color: var(--qk-cc-text);
  border: 1px solid var(--qk-cc-border);
  border-radius: var(--qk-radius, 14px);
  box-shadow: 0 18px 48px -18px rgba(21, 35, 58, .38);
  padding: 18px 20px;
  max-height: 78vh;
  overflow: auto;
}

.qk-cc__title { font-size: 17px; font-weight: 700; margin: 0 0 6px; line-height: 1.3; }
.qk-cc__text { margin: 0 0 6px; font-size: 14px; line-height: 1.5; color: var(--qk-cc-text); }
.qk-cc__text--sec { color: var(--qk-cc-muted); }
.qk-cc__links { margin: 8px 0 14px; font-size: 13px; color: var(--qk-cc-muted); }
.qk-cc__links a { color: var(--qk-cc-accent); text-decoration: underline; }

.qk-cc__row { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }

/* «Принять все» и «Отклонить» РАВНОЗНАЧНЫ: одинаковые размер, шрифт,
   паддинги, радиус и min-width. Отличается только заливка. Делать отказ бледной
   мелкой ссылкой нельзя — это ровно тот признак, за который цепляется проверяющий. */
.qk-cc__btn {
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
  padding: 11px 20px;
  min-width: 196px;
  border-radius: var(--qk-radius-sm, 10px);
  border: 1px solid transparent;
  cursor: pointer;
  transition: background .15s, color .15s, border-color .15s;
}
.qk-cc__btn--primary { background: var(--qk-cc-accent); color: #fff; }
.qk-cc__btn--primary:hover { background: var(--qk-primary-hover, hsl(213, 60%, 38%)); }
.qk-cc__btn--secondary { background: #fff; color: var(--qk-cc-accent); border-color: var(--qk-cc-accent); }
.qk-cc__btn--secondary:hover { background: rgba(37, 99, 165, .07); }
.qk-cc__btn:focus-visible, .qk-cc__close:focus-visible { outline: 2px solid var(--qk-cc-accent); outline-offset: 2px; }

/* Строка текущего состояния — только при повторном показе из подвала:
   без неё человек не понимает, что именно он сейчас меняет. */
.qk-cc__current {
  margin: 8px 0 0;
  font-size: 13px;
  font-weight: 600;
  color: var(--qk-cc-accent);
}

/* Крестик есть ТОЛЬКО у повторного показа. На первом визите закрыть баннер,
   не выбрав ничего, значит остаться без решения — и он появится снова. */
.qk-cc__close {
  position: absolute; top: 8px; right: 10px;
  background: none; border: none; font-size: 24px; line-height: 1;
  color: var(--qk-cc-muted); cursor: pointer; padding: 4px 8px;
}
.qk-cc__close:hover { color: var(--qk-cc-text); }

.qk-foot__cookie { text-decoration: underline; }

/* ------------------------------ мобильные ------------------------------ */
/* Текст короче, кнопки на всю ширину и подряд: «Отклонить» не должна уезжать
   под сгиб — отказ обязан быть виден без прокрутки. */
@media (max-width: 640px) {
  .qk-cc { padding: 0; }
  .qk-cc__box {
    border-radius: 14px 14px 0 0;
    border-left: none; border-right: none; border-bottom: none;
    padding: 16px 16px calc(16px + env(safe-area-inset-bottom, 0px));
    max-height: 86vh;
  }
  .qk-cc__title { font-size: 16px; }
  .qk-cc__text { font-size: 13.5px; }
  .qk-cc__row { flex-direction: column; align-items: stretch; gap: 8px; }
  .qk-cc__btn { width: 100%; min-width: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .qk-cc { animation: none; }
  .qk-cc__btn { transition: none; }
}

/* Сообщение внутри окна (отказ браузера писать cookie, гейт Marquiz). */
.qk-cc__notice {
  margin: 0 0 12px;
  padding: 10px 12px;
  border-radius: 8px;
  background: #fff4e5;
  border: 1px solid #ffd9a8;
  color: #7a4a00;
  font-size: 13px;
  line-height: 1.45;
}
