/* ============================================================
   ТЕО-ТВ — Главный CSS
   Порядок: переменные → сброс → типографика → утилиты →
            layout → компоненты (карточки, кнопки, формы) →
            header → footer → страницы → адаптив
   ============================================================ */

/* ============================================================
   1. ШРИФТЫ
   ============================================================ */
@font-face {
  font-family: Urfa;
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/urfa-regular.ef2220cbfbee.woff") format('woff');
}
@font-face {
  font-family: Urfa;
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/urfa-medium.bd88a10d527d.woff") format('woff');
}
@font-face {
  font-family: Lato;
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/lato-regular.cd6c6aac1559.woff") format('woff');
}
@font-face {
  font-family: Lato;
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("../fonts/lato-black.11ccdd05f312.woff") format('woff');
}

/* ============================================================
   2. CSS-ПЕРЕМЕННЫЕ (легко менять из кода/дизайн-редактора)
   ============================================================ */
:root {
  /* Цвета */
  --color-dark:       #07132b;
  --color-accent:     #e8457b;
  --color-blue:       #195cae;
  --color-bg:         #f8f9fb;
  --color-card:       #ffffff;
  --color-text:       #07132b;
  --color-text-muted: #6b7a9a;
  --color-border:     #e4e8f0;
  --color-pink-light: #fce4ec;

  /* Фон страниц (по умолчанию — синий градиент со страницы «Наши проекты»).
     Может быть переопределён из админки (design.bg_image) в base.html. */
  --page-bg-image:   url("../images/dist/headimg.7daac93d6dc6.png");
  --page-bg-overlay: 0.55;

  /* Шрифты */
  --font-body:    Urfa, sans-serif;
  --font-heading: Lato, sans-serif;

  /* Геометрия */
  --radius-sm:   8px;
  --radius-md:   12px;
  --radius-lg:   20px;
  --radius-full: 9999px;

  /* Тени */
  --shadow-card:   0 4px 16px rgba(7, 19, 43, 0.08);
  --shadow-hover:  0 8px 28px rgba(7, 19, 43, 0.14);
  --shadow-nav:    0 2px 20px rgba(7, 19, 43, 0.20);

  /* Переходы */
  --transition:    0.22s ease;

  /* Layout */
  --nav-min-height: 96px;
  --content-max:   1320px;
  --side-padding:  clamp(16px, 5vw, 110px);
  --hero-col-livebar: 340px;
  --livebar-card-h-ref: 140px;
  --livebar-card-gap-ref: 10px;
  --livebar-chrome-ref: 104px;

  /* Моб. категории / проекты / телепрограмма (переопределяются в base.html) */
  --mobile-cat-panel-bg: rgba(255, 255, 255, 0.08);
  --mobile-cat-panel-border: rgba(255, 255, 255, 0.12);
  --mobile-cat-pill-bg: rgba(255, 255, 255, 0.04);
  --mobile-cat-pill-active-text: #ffffff;
  --mobile-cat-toggle-bg: rgba(25, 92, 174, 0.88);
  --mobile-cat-toggle-text: #ffffff;
  --mobile-cat-toggle-border: rgba(255, 255, 255, 0.16);
  --mobile-programs-toolbar-bg: rgba(7, 19, 43, 0.92);
  --mobile-programs-search-bg: rgba(7, 19, 43, 0.28);
  --mobile-programs-search-text: #ffffff;
  --mobile-programs-search-focus: var(--color-accent);
  --mobile-programs-toggle-bg: rgba(25, 92, 174, 0.45);
  --mobile-programs-toggle-text: #ffffff;
  --mobile-programs-cats-panel-bg: rgba(255, 255, 255, 0.05);
  --mobile-programs-cats-panel-border: rgba(255, 255, 255, 0.08);
  --tv-time-color: #ffffff;
  --tv-title-color: #ffffff;
  --tv-badge-bg: rgba(255, 255, 255, 0.12);
  --tv-badge-text: rgba(255, 255, 255, 0.7);
  --tv-badge-air-bg: rgba(255, 255, 255, 0.22);
  --tv-badge-air-text: #ffffff;
  --tv-badge-next-bg: var(--color-accent);
  --tv-censure-bg: rgba(255, 255, 255, 0.1);
  --tv-censure-text: rgba(255, 255, 255, 0.7);
  --tv-now-bg: var(--color-accent);
  --mobile-tv-time-color: #07132b;
  --mobile-tv-title-color: #1a2a45;
  --mobile-tv-past-color: rgba(7, 19, 43, 0.38);
  --mobile-tv-censure-bg: rgba(25, 92, 174, 0.12);
  --mobile-tv-censure-text: rgba(7, 19, 43, 0.55);
  --mobile-tv-now-time: #ffffff;
  --mobile-tv-now-title: #ffffff;
  --mobile-tv-now-censure-bg: rgba(255, 255, 255, 0.22);
  --mobile-tv-now-censure-text: #ffffff;
  --mobile-tv-detail-badge-bg: rgba(25, 92, 174, 0.14);
  --mobile-tv-detail-badge-text: var(--color-blue);
}

/* ============================================================
   3. СБРОС
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 14px; overflow-x: hidden; scroll-behavior: smooth; }
@media (max-width: 1610px) { html { font-size: 12px; } }
@media (max-width: 900px)  { html { font-size: 11px; } }
body {
  font-family: var(--font-body);
  margin: 0;
  overflow-x: hidden;
  background: transparent;
  color: var(--color-text);
  line-height: 1.6;
}
/* Фон закреплён на экране, контент и шапка скроллятся поверх */
.page-bg {
  position: fixed;
  inset: 0;
  z-index: 0;
  background-color: var(--color-dark);
  background-image: var(--page-bg-image, none);
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;
  pointer-events: none;
}
img, video { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }
button { cursor: pointer; border: none; background: none; font: inherit; }
input, textarea, select { font: inherit; outline: none; }
:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }

/* ============================================================
   4. ТИПОГРАФИКА
   ============================================================ */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading);
  font-weight: 900;
  line-height: 1.25;
  color: var(--color-text);
}
h1 { font-size: clamp(1.6rem, 3vw, 2.8rem); }
h2 { font-size: clamp(1.3rem, 2.4vw, 2.2rem); }
h3 { font-size: clamp(1.1rem, 1.8vw, 1.7rem); }
p  { line-height: 1.7; }

/* ============================================================
   5. УТИЛИТЫ
   ============================================================ */
.container {
  width: 100%;
  max-width: calc(var(--content-max) + var(--side-padding) * 2);
  margin: 0 auto;
  padding: 0 var(--side-padding);
}
.section-gap { margin-top: clamp(24px, 4vh, 48px); }
.text-center { text-align: center; }
.visually-hidden {
  position: absolute; width: 1px; height: 1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}

/* ============================================================
   6. КАРТОЧКИ — универсальный компонент
   ============================================================ */
.card {
  background: var(--color-card);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-card);
  overflow: hidden;
  transition: transform var(--transition), box-shadow var(--transition);
  position: relative;
}
a.card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-hover);
}
div.card:hover,
.card--static:hover {
  transform: none;
  box-shadow: var(--shadow-card);
}
.card__image {
  width: calc(100% - 20px);
  margin: 10px 10px 0;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  display: block;
  border-radius: var(--radius-md);
}
.cards-grid .card__image {
  height: auto;
}
.card__body {
  padding: 14px 16px 16px;
}
.card__tag {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 500;
  background: var(--color-accent);
  color: #fff;
  padding: 2px 8px;
  border-radius: var(--radius-full);
  margin-bottom: 6px;
}
.card__title {
  font-family: var(--font-heading);
  font-weight: 900;
  font-size: 1rem;
  color: var(--color-text);
  transition: color var(--transition);
  display: flex;
  align-items: center;
  overflow: hidden;
}
.card__title-text {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  width: 100%;
  min-width: 0;
}
a.card:hover .card__title { color: var(--color-blue); }
div.card:hover .card__title,
.card--static:hover .card__title { color: var(--color-text); }
.card__desc {
  font-size: 0.85rem;
  color: var(--color-text-muted);
  margin-top: 6px;
  display: flex;
  align-items: center;
  overflow: hidden;
}
.card__desc-text {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  width: 100%;
  min-width: 0;
}
.card__date {
  font-size: 0.78rem;
  color: var(--color-text-muted);
  margin-top: 8px;
}
.cards-grid .card__body {
  display: flex;
  flex-direction: column;
}
.cards-grid .card__footer {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  margin-top: auto;
  padding-top: 10px;
}
.cards-grid .card__footer .card__date,
.articles-grid .card__footer .card__date,
.card__footer--articles .card__date {
  font-family: var(--font-heading);
  font-weight: 900;
  font-size: 1rem;
  color: var(--color-text);
  margin-top: 0;
  white-space: nowrap;
}
.page-articles .articles-grid:not(.articles-grid--related) .card__footer .card__date {
  color: var(--color-text) !important;
}
.cards-grid .card__footer .card__tag,
.articles-grid .card__footer .card__tag,
.card__footer--articles .card__tag,
.card__footer--articles .article-card__tag {
  justify-self: end;
  margin-bottom: 0;
  min-width: 0;
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: clamp(0.58rem, 0.5rem + 0.35vw, 0.75rem);
  padding: 2px 7px;
}

/* Дата слева, тег справа — articles-grid и карточка статьи */
.articles-grid .card__footer,
.card__footer--articles {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  margin-top: auto;
  padding-top: 10px;
}
.article-card__footer.card__footer--articles {
  padding-top: 18px;
}
.articles-grid--related .card__body {
  display: flex;
  flex-direction: column;
}
.card__censure {
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 1;
  font-size: 0.7rem;
  font-weight: 700;
  background: var(--color-accent);
  color: #fff;
  padding: 2px 6px;
  border-radius: var(--radius-md) 0 var(--radius-sm) 0;
  box-shadow:
    0 0 0 1.5px #fff,
    2px 2px 4px rgba(255, 255, 255, 0.75);
}
/* Кликабельная карточка */
.card[data-href] { cursor: pointer; }

/* Большая обёртка-карточка (секция с вайпером) */
.section-card {
  background: var(--color-card);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  padding: 24px 20px;
  position: relative;
  overflow: visible;
}

/* ============================================================
   7. КНОПКИ
   ============================================================ */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 24px;
  border-radius: var(--radius-full);
  font-family: var(--font-heading);
  font-weight: 900;
  font-size: 0.9rem;
  transition: background var(--transition), color var(--transition),
              box-shadow var(--transition), transform var(--transition);
}
.btn:hover { transform: translateY(-2px); }

.btn--primary {
  background: var(--color-accent);
  color: #fff;
}
.btn--primary:hover { background: #c4305e; }

.btn--outline {
  background: transparent;
  border: 2px solid var(--color-accent);
  color: var(--color-accent);
}
.btn--outline:hover { background: var(--color-accent); color: #fff; }

.btn--white {
  background: #fff;
  color: var(--color-text);
  box-shadow: var(--shadow-card);
}
.btn--white:hover { background: var(--color-dark); color: #fff; }

.btn--show-more {
  background: var(--color-accent);
  color: #fff;
  padding: 12px 36px;
  font-size: 1rem;
}
@media (hover: hover) and (pointer: fine) {
  .btn--show-more:hover {
    background: var(--btn-show-more-bg-hover, #c4305e);
    transform: translateY(-2px);
  }
}
@media (hover: none), (pointer: coarse), (any-pointer: coarse) {
  .btn--show-more:hover,
  .btn--show-more:active,
  .btn--show-more:focus,
  .btn--show-more:focus-visible {
    transform: none;
    box-shadow: none;
  }
}

/* Кнопка-метка (секция) */
.section-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  color: var(--color-text);
  box-shadow: var(--shadow-card);
  border-radius: var(--radius-full);
  padding: 8px 24px;
  font-family: var(--font-heading);
  font-weight: 900;
  font-size: 1.1rem;
  text-decoration: none;
  transition: color var(--transition), transform var(--transition), box-shadow var(--transition);
}
a.section-label:hover {
  color: var(--color-blue);
  transform: translateY(-2px);
  box-shadow: var(--shadow-hover);
}
/* Не-кнопка (просто метка) */
.section-label--static { pointer-events: none; }
.section-label--static a { pointer-events: auto; }
h1.section-label, h2.section-label { margin: 0; display: inline-flex; }
h2.section-label a {
  color: inherit;
  text-decoration: none;
}
h2.section-label a:hover {
  color: var(--color-accent, #e8457b);
}
.page-h1-wrap { text-align: center; }
h1.page-h1.section-label {
  display: inline-flex;
  width: auto;
  max-width: 100%;
  margin-bottom: 0;
}
.programs-fresh-header__title .section-label,
.program-tag-page-h1.section-label {
  width: auto;
  max-width: 100%;
}
.program-page-h1 { margin-bottom: 0; }
.section-label--static:hover {
  color: var(--color-text);
  transform: none;
  box-shadow: var(--shadow-card);
}
.section-label--static.section-label--glass:hover {
  background: rgba(255, 255, 255, 0.2);
  color: #fff;
  transform: none;
  box-shadow: none;
}

/* Крупная кнопка-метка (главная — «Свежие выпуски») */
.section-label--lg {
  padding: 12px 36px;
  gap: 12px;
  font-size: 1.65rem;
  line-height: 1.2;
  max-width: 100%;
}
@media (max-width: 480px) {
  .section-label--lg {
    padding: 10px 28px;
    font-size: 1.35rem;
  }
}

/* Полупрозрачная метка на тёмном фоне (как телепрограмма) */
.section-label--glass {
  background: rgba(255, 255, 255, 0.2);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.3);
  box-shadow: none;
}
a.section-label--glass:hover {
  background: rgba(255, 255, 255, 0.28);
  color: #fff;
  box-shadow: none;
}

/* Кнопка «Наверх» — стиль как у tv-scroll-arrow, стрелка без изменений */
.btn-back-top {
  position: fixed;
  right: 24px;
  bottom: 90px;
  z-index: 900;
  pointer-events: auto;
}
.btn-back-top.slider-arrow:not(.visible) {
  display: none;
}
.btn-back-top.slider-arrow.visible {
  display: flex;
}
.btn-back-top svg {
  fill: none;
  stroke: currentColor;
}

/* ============================================================
   8. ШАПКА (header / main-nav)
   ============================================================ */
.site-header {
  position: relative;
  width: 100%;
  z-index: 1;
  min-height: var(--nav-min-height);
  height: auto;
  padding: 10px 0;
  overflow: visible;
  background-color: var(--header-bg-color, transparent);
  background-image: var(--header-bg-image, none);
  background-size: cover;
  background-position: center;
  box-shadow: none;
  display: flex;
  align-items: center;
}

.site-header__inner {
  display: grid;
  grid-template-columns: var(--hero-col-livebar) 1fr;
  gap: 20px;
  align-items: center;
}

/* Логотип — по центру колонки лайфбара */
.site-header__logo {
  flex-shrink: 0;
  justify-self: center;
  display: block;
  transition: filter var(--transition);
}
.site-header__logo img {
  height: 74px;
  width: auto;
  transform: translateY(3px);
  transition: transform var(--transition);
}
.site-header__logo:hover img { transform: translateY(6px); }

.site-header__main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px 20px;
  min-width: 0;
  position: relative;
}

/* Навигация — десктоп (до 2 строк) */
.site-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  align-content: flex-start;
  justify-content: flex-start;
  gap: 4px 28px;
  margin: 0;
  padding: 0;
  justify-self: start;
  max-width: 100%;
}
.site-nav__link {
  display: inline-block;
  font-family: var(--font-heading);
  font-weight: 900;
  font-size: 1.25rem;
  line-height: 1.2;
  color: #fff;
  padding: 6px 0;
  margin: 0;
  position: relative;
  transition: color var(--transition);
  white-space: nowrap;
}
.site-nav__link::after {
  content: '';
  position: absolute;
  bottom: 4px;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--color-accent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--transition);
}
.site-nav__link:hover { color: var(--color-accent); }
.site-nav__link:hover::after,
.site-nav__link.active::after { transform: scaleX(1); }
.site-nav__link.active { color: var(--color-accent); }

/* Правая часть: кнопка прямого эфира + поиск */
.site-header__right {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-shrink: 0;
  justify-self: end;
  min-width: 0;
}
.site-header__search-slot {
  display: flex;
  align-items: center;
  min-width: 0;
  position: relative;
  overflow: visible;
}
.site-header__right.is-search-open .site-header__search-slot {
  overflow: visible;
}
.header-search-field-wrap {
  position: relative;
  flex: 0 0 0;
  width: 0;
  min-width: 0;
  max-width: 0;
  overflow: hidden;
  transition: max-width 0.35s ease, width 0.35s ease, flex-basis 0.35s ease;
}
.site-header__right.is-search-open .header-search-field-wrap {
  flex: 1 1 auto;
  width: auto;
  min-width: 0;
  max-width: none;
  overflow: visible;
}
.site-header__main.is-search-open .site-header__right {
  position: static;
}
.site-header__main.is-search-open .site-header__search-slot {
  position: static;
  overflow: visible;
}
.site-header__main.is-search-open .header-search-field-wrap {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: var(--header-search-left, 0);
  right: var(--header-search-right, 56px);
  width: auto;
  max-width: none;
  min-width: 0;
  flex: none;
  z-index: 3;
  transition: none;
}
.site-header__main.is-search-open .site-nav {
  visibility: hidden;
  pointer-events: none;
}
.site-header__right.is-search-open .live-btn {
  flex: 0 0 0;
  width: 0;
  min-width: 0;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  margin: 0;
  transition: width 0.35s ease, opacity 0.25s ease, flex-basis 0.35s ease;
}

/* Кнопка «Прямой эфир» */
.live-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  cursor: pointer;
  border: none;
  background: none;
  color: #fff;
  flex-shrink: 0;
  text-decoration: none;
  transition: width 0.35s ease, opacity 0.25s ease;
}
.live-btn__icon {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--color-accent);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 0 4px rgba(232,69,123,0.25);
  animation: live-pulse 2s infinite;
}
.site-header .live-btn {
  transform: translateY(3px);
  transition: transform var(--transition), width 0.35s ease, opacity 0.25s ease;
}
.site-header .live-btn:hover {
  transform: translateY(6px);
}
.site-header .live-btn__icon {
  animation: none;
  box-shadow: 0 0 0 4px rgba(232,69,123,0.25);
}
.live-btn__icon svg { width: 17px; height: 17px; fill: #fff; }
.live-btn__label {
  font-size: 0.78rem;
  font-weight: 700;
  color: #fff;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  white-space: nowrap;
}
@keyframes live-pulse {
  0%, 100% { box-shadow: 0 0 0 4px rgba(232,69,123,0.25); }
  50%       { box-shadow: 0 0 0 8px rgba(232,69,123,0.10); }
}

/* Поиск */
.search-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: rgba(255,255,255,0.12);
  color: #fff;
  transition: background var(--transition), transform var(--transition);
}
.search-btn:hover { background: rgba(255,255,255,0.24); transform: scale(1.1); }
.search-btn svg { width: 24px; height: 24px; fill: #fff; }

/* Поисковая строка в шапке */
.header-search {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: var(--color-dark);
  padding: 14px var(--side-padding);
  display: none;
  box-shadow: 0 6px 20px rgba(0,0,0,0.25);
}
.header-search.open { display: flex; align-items: center; gap: 12px; }
.header-search--inline {
  position: relative;
  top: auto;
  left: auto;
  right: auto;
  background: transparent;
  padding: 0;
  box-shadow: none;
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
}
.site-header__right.is-search-open .header-search--inline {
  opacity: 1;
  pointer-events: auto;
  overflow: visible;
}
.site-header__right.is-search-open .header-search--inline.open {
  display: flex;
}
.header-search--inline .header-search__input {
  flex: 1;
  min-width: 0;
  width: 100%;
}
.header-search-autocomplete {
  min-width: 100%;
}
.site-header:has(.site-header__right.is-search-open) {
  z-index: 1200;
  overflow: visible;
}
.header-search__input {
  flex: 1;
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.2);
  border-radius: var(--radius-full);
  padding: 10px 18px;
  color: #fff;
  font-size: 0.95rem;
}
.header-search__input::placeholder { color: rgba(255,255,255,0.5); }
.header-search__close {
  color: #fff;
  font-size: 1.4rem;
  line-height: 1;
  cursor: pointer;
  padding: 4px;
  background: none;
  border: none;
  flex-shrink: 0;
}

/* Автодополнение поиска */
.search-autocomplete {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  background: #fff;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-hover);
  overflow: hidden;
  z-index: 1100;
}
.search-autocomplete__item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 16px;
  cursor: pointer;
  transition: background var(--transition);
  font-size: 0.9rem;
}
.search-autocomplete__item:hover { background: var(--color-bg); }
.search-autocomplete__badge {
  font-size: 0.7rem;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: var(--radius-full);
  flex-shrink: 0;
}
.search-autocomplete__badge--story     { background: #e3f0ff; color: var(--color-blue); }
.search-autocomplete__badge--category  { background: var(--color-pink-light); color: var(--color-accent); }
.search-autocomplete__badge--article   { background: #e8f5e9; color: #2e7d32; }
.search-autocomplete__badge--tvprogram { background: #fff3e0; color: #e65100; }
.search-autocomplete__badge--staff     { background: #f3e5f5; color: #6a1b9a; }
.search-autocomplete__badge--page      { background: #eceff1; color: #455a64; }
.search-autocomplete__badge--section   { background: #e8eaf6; color: #3949ab; }
.search-autocomplete__badge--footer    { background: #efebe9; color: #5d4037; }

/* ===== Мобильное меню ===== */
.mobile-nav {
  display: none;
  position: relative;
  width: 100%;
  z-index: 1;
  background: var(--header-bg-color, transparent);
  background-image: var(--header-bg-image, none);
  background-size: cover;
  background-position: center;
  padding: 0 16px;
  height: 56px;
  align-items: center;
  justify-content: space-between;
  box-shadow: none;
}
.mobile-nav__logo img { height: 32px; }
.mobile-nav__controls { display: flex; align-items: center; gap: 10px; }
.mobile-nav__btn {
  display: flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; border-radius: 50%;
  background: rgba(255,255,255,0.12); color: #fff;
}
.mobile-nav__btn svg { width: 18px; height: 18px; fill: #fff; }

.mobile-menu {
  position: fixed;
  top: 56px;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--color-dark);
  z-index: 1040;
  transform: translateY(-110%);
  transition: transform 0.3s ease;
  overflow-y: auto;
  padding: 20px 20px 40px;
}
.mobile-menu.open { transform: translateY(0); }
.mobile-menu__link {
  display: block;
  color: #fff;
  font-family: var(--font-heading);
  font-weight: 900;
  font-size: 1.2rem;
  padding: 14px 0;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}
.mobile-menu__link.active { color: var(--color-accent); }

/* ===== Мобильная оболочка (скрыта на десктопе) ===== */
.mobile-top,
.mobile-bottom-bar,
.home-articles-mobile,
.home-fresh-mobile,
.programs-mobile-cats {
  display: none;
}

.programs-desktop-search {
  display: none;
}

.mobile-top {
  position: sticky;
  top: 0;
  z-index: 1030;
  align-items: center;
  justify-content: center;
  height: 52px;
  padding: 8px 16px;
  background: var(--header-bg-color, transparent);
  background-image: var(--header-bg-image, none);
  background-size: cover;
  background-position: center;
}

.mobile-top__logo img {
  height: 34px;
  width: auto;
  display: block;
}

.mobile-bottom-bar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1050;
  flex-direction: column;
  gap: 0;
  padding: 0;
  background: transparent;
  border: none;
  box-shadow: none;
}

.mobile-bottom-bar__ledge {
  position: relative;
  width: 100%;
  min-height: 52px;
}

.mobile-bottom-bar__nav {
  display: flex;
  align-items: stretch;
  justify-content: space-around;
  gap: 6px;
  width: 100%;
}

.mobile-bottom-bar__btn {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-height: 52px;
  padding: 6px 4px;
  border-radius: var(--radius-md);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #fff;
  background: rgba(255, 255, 255, 0.06);
  transition: background var(--transition), color var(--transition), border-color var(--transition), box-shadow var(--transition);
}

.mobile-bottom-bar__btn svg {
  width: 20px;
  height: 20px;
  fill: currentColor;
}

.mobile-bottom-bar__btn--live {
  gap: 3px;
  border-color: transparent;
  background: transparent;
  box-shadow: none;
}

.mobile-bottom-bar__btn--live .mobile-bottom-bar__live-icon {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  animation: none;
}

.mobile-bottom-bar__btn--live .mobile-bottom-bar__live-icon svg {
  width: 17px;
  height: 17px;
  fill: #fff;
}

.mobile-bottom-bar__label {
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.1;
  opacity: 0.92;
}

.mobile-bottom-bar__btn:active,
.mobile-bottom-bar__btn[aria-expanded="true"] {
  background: rgba(255, 255, 255, 0.14);
  border-color: rgba(255, 255, 255, 0.32);
  color: #fff;
}

.mobile-bottom-bar__btn--live:active,
.mobile-bottom-bar__btn--live[aria-expanded="true"] {
  background: transparent;
  border-color: transparent;
}

.mobile-bottom-bar__search {
  position: relative;
  width: 100%;
}

.mobile-bottom-bar__search-field {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  position: relative;
  isolation: isolate;
  border-radius: var(--radius-md);
}

.mobile-bottom-bar__search-field::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  border: 2px solid transparent;
  pointer-events: none;
  transition: border-color var(--transition);
  z-index: 1;
}

.mobile-bottom-bar__search-field:focus-within::after {
  border-color: var(--color-accent);
}

.mobile-bottom-bar__search-input {
  flex: 1;
  min-width: 0;
  position: relative;
  z-index: 0;
  background: rgba(7, 19, 43, 0.28);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: none;
  border-radius: var(--radius-md);
  padding: 12px 18px;
  color: #fff;
  font-size: 1rem;
}

.mobile-bottom-bar__search-input:focus,
.mobile-bottom-bar__search-input:focus-visible {
  outline: none;
  box-shadow: none;
  border: none;
}

.mobile-bottom-bar__search-input::placeholder {
  color: rgba(255, 255, 255, 0.55);
}

.mobile-bottom-bar__search-close {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: var(--radius-full);
  border: 1px solid rgba(255, 255, 255, 0.28);
  background: transparent;
  color: #fff;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
}

.mobile-bottom-bar.is-search-open .mobile-bottom-bar__nav {
  display: none !important;
}

.mobile-bottom-bar.is-search-open .mobile-bottom-bar__search {
  position: relative;
  inset: auto;
  z-index: 5;
  display: block !important;
}

.mobile-bottom-bar.is-search-open .mobile-bottom-bar__search-field {
  position: relative;
  z-index: 2;
}

.mobile-bottom-bar.is-search-open .mobile-search-autocomplete {
  z-index: 1100;
}

.mobile-search-autocomplete.search-autocomplete--dropup {
  top: auto;
  bottom: calc(100% + 8px);
  max-height: min(50vh, 340px);
  overflow-y: auto;
}

.mobile-bottom-bar.is-search-open {
  z-index: 1060;
}

.home-articles-mosaic {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.home-articles-mosaic__empty {
  grid-column: 1 / -1;
}

.card--mobile-article {
  background: var(--mobile-article-card-bg, var(--color-card));
  min-height: 120px;
}

.card--mobile-article .card__image {
  display: none !important;
}

.card--mobile-article .card__title {
  color: var(--mobile-article-title, var(--color-text));
  font-size: 0.92rem;
}

.card--mobile-article .card__desc {
  color: var(--mobile-article-desc, var(--color-text-muted));
  font-size: 0.78rem;
}
.card--mobile-article .card__desc-text {
  -webkit-line-clamp: 3;
  line-clamp: 3;
}

.card--mobile-article .card__date {
  color: var(--mobile-article-date, var(--color-text-muted));
}

.home-articles-mosaic .card:nth-child(6n + 3),
.home-articles-mosaic .card:nth-child(6n + 4) {
  grid-column: 1 / -1;
}

.programs-mobile-cats {
  position: relative;
  display: flex;
  flex-direction: column;
  margin-bottom: 12px;
}

.programs-mobile-cats__panel {
  order: 1;
  margin-bottom: 0;
}

.programs-mobile-cats__pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 14px 12px 10px;
  background: var(--mobile-cat-panel-bg);
  border: 1px solid var(--mobile-cat-panel-border);
  border-radius: var(--radius-md) var(--radius-md) 0 0;
}

.programs-mobile-cats__pill {
  display: inline-flex;
  align-items: center;
  padding: 8px 14px;
  border-radius: var(--radius-full);
  border: 1.5px solid var(--pill-color, var(--color-accent));
  background: var(--pill-bg, var(--mobile-cat-pill-bg));
  color: var(--pill-color, var(--color-accent));
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1.2;
  transition: background var(--transition), color var(--transition), border-color var(--transition), transform var(--transition);
}

.programs-mobile-cats__pill.active {
  background: var(--pill-color, var(--color-accent));
  color: var(--pill-active-text, var(--mobile-cat-pill-active-text));
  border-color: var(--pill-color, var(--color-accent));
}

.programs-mobile-cats__pill:active {
  transform: scale(0.97);
}

.programs-mobile-cats__toggle {
  order: 2;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 13px 14px;
  border-radius: var(--radius-md);
  background: var(--mobile-cat-toggle-bg);
  border: 1px solid var(--mobile-cat-toggle-border);
  color: var(--mobile-cat-toggle-text);
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: 0.92rem;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: background var(--transition), border-radius var(--transition);
}

.programs-mobile-cats__toggle-text {
  flex: 0 1 auto;
}

.programs-mobile-cats__toggle[aria-expanded="true"] {
  border-radius: 0 0 var(--radius-md) var(--radius-md);
  border-top-color: rgba(255, 255, 255, 0.08);
}

.programs-mobile-cats__chevron {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  transition: transform var(--transition);
}

.programs-mobile-cats__toggle[aria-expanded="true"] .programs-mobile-cats__chevron {
  transform: rotate(180deg);
}

.programs-mobile-cats__panel:not([hidden]) + .programs-mobile-cats__toggle {
  border-radius: 0 0 var(--radius-md) var(--radius-md);
  border-top: none;
}

.site-footer__email-copy--desktop {
  appearance: none;
  border: none;
  background: transparent;
  color: inherit;
  font: inherit;
  line-height: inherit;
  padding: 0;
  cursor: pointer;
  text-align: inherit;
  display: inline;
}
.site-footer__email-text--phone {
  display: none;
}

.site-footer__email-copy.is-copied {
  color: var(--color-accent);
}

/* ============================================================
   9. LIVE-ПЛЕЕР (плавающий виджет)
   ============================================================ */
.live-widget-toggle {
  position: fixed;
  right: 20px;
  bottom: 30px;
  z-index: 950;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--color-accent);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 18px rgba(232,69,123,0.45);
  animation: live-pulse 2s infinite;
  cursor: pointer;
  transition: transform var(--transition);
}
.live-widget-toggle:hover { transform: scale(1.1); }
.live-widget-toggle svg { width: 22px; height: 22px; fill: #fff; }

.live-widget {
  position: fixed;
  right: 0;
  bottom: 92px;
  z-index: 940;
  width: min(680px, calc(100vw - 16px));
  background: #fff;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-hover);
  overflow: hidden;
  cursor: move;
  user-select: none;
  display: block;
  transform: translateX(100%);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition:
    transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.35s ease,
    visibility 0.35s ease;
}
.live-widget.live-widget--dock-right {
  border-radius: var(--radius-lg) 0 0 var(--radius-lg);
}
.live-widget.live-widget--dock-left {
  border-radius: 0 var(--radius-lg) var(--radius-lg) 0;
}
.live-widget.open {
  transform: translateX(0);
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.live-widget.live-widget--instant {
  transition: none !important;
}
.live-widget.live-widget--hidden {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: translateX(0) !important;
}
.live-widget__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 18px;
  background: var(--color-dark);
  color: #fff;
  font-size: 0.95rem;
  font-weight: 700;
}
.live-widget__close {
  cursor: pointer;
  color: #fff;
  font-size: 2rem;
  line-height: 1;
  min-width: 40px;
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 8px;
  margin: -4px -6px -4px 0;
  border-radius: var(--radius-sm);
  transition: background var(--transition), transform var(--transition);
}
.live-widget__close:hover {
  background: rgba(255, 255, 255, 0.14);
  transform: scale(1.06);
}
.live-widget__player {
  aspect-ratio: 16/9;
  min-height: 180px;
  background: #000;
}
.live-widget__player video,
.live-widget__player iframe { width: 100%; height: 100%; }

/* ============================================================
   10. СТРАНИЦА — общий отступ под шапку
   ============================================================ */
.page-content {
  padding-top: 0;
  position: relative;
  z-index: 1;
}

/* ============================================================
   11. HERO-СЕКЦИЯ (первый блок страницы с фоном)
   ============================================================ */
.hero {
  background: transparent;
  position: relative;
  padding: clamp(32px, 6vh, 72px) 0;
}
.hero > * { position: relative; z-index: 1; }

/* ============================================================
   12. SWIPER (слайдер выпусков/статей)
   ============================================================ */
.section-card .swiper {
  overflow: hidden;
  width: 100%;
  margin: 0;
  padding: 0;
}

.section-card .swiper-wrapper {
  align-items: flex-start;
}

.section-card .swiper-slide {
  box-sizing: border-box;
  flex-shrink: 0;
  height: auto;
}

.section-card .swiper-slide .cards-grid {
  width: 100%;
  box-sizing: border-box;
}

/* Резерв под 2 строки заголовка и описания во всех гридах карточек */
.cards-grid .card__title,
.articles-grid .card__title {
  display: flex;
  align-items: center;
  line-height: 1.25;
  min-height: 2.5rem;
  min-height: 2lh;
  height: 2.5rem;
  height: 2lh;
  overflow: hidden;
  flex-shrink: 0;
}
.cards-grid .card__title-text,
.articles-grid .card__title-text {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  width: 100%;
  min-width: 0;
  line-height: inherit;
}
.cards-grid .card__desc,
.articles-grid .card__desc {
  display: flex;
  align-items: center;
  line-height: 1.4;
  min-height: 2.38rem;
  min-height: 2lh;
  height: 2.38rem;
  height: 2lh;
  overflow: hidden;
  flex-shrink: 0;
}
.cards-grid .card__desc-text,
.articles-grid .card__desc-text {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  width: 100%;
  min-width: 0;
  line-height: inherit;
}

/* Крупнее заголовок и описание: главная, проекты, категория, статьи */
.page-index .cards-grid .card__title,
.page-programs .cards-grid .card__title,
.page-articles .articles-grid .card__title {
  font-size: 1.3rem;
  min-height: 3.25rem;
  min-height: 2lh;
  height: 3.25rem;
  height: 2lh;
}
.page-index .cards-grid .card__desc,
.page-programs .cards-grid .card__desc,
.page-articles .articles-grid .card__desc {
  font-size: 1rem;
  min-height: 2.8rem;
  min-height: 2lh;
  height: 2.8rem;
  height: 2lh;
}

.section-card .cards-grid .card__tag--empty {
  visibility: hidden;
  background: transparent;
}

.slider-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 20px;
  padding: 0 4px;
  pointer-events: none;
  z-index: 10;
}
.slider-arrow {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #fff;
  color: var(--color-dark);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--shadow-card);
  cursor: pointer;
  transition: background var(--transition), color var(--transition),
              border-color var(--transition), transform var(--transition);
  flex-shrink: 0;
  pointer-events: auto;
  border: 2px solid transparent;
}
.slider-controls .slider-arrow {
  background: transparent;
  border-color: var(--color-accent);
  color: var(--color-accent);
  box-shadow: none;
}
.slider-controls .slider-arrow--prev:hover,
.slider-controls .slider-arrow--next:hover {
  background: transparent;
  border-color: var(--color-accent);
  color: var(--color-accent);
  transform: scale(1.08);
}
.slider-arrow:not(.slider-arrow--prev):not(.slider-arrow--next):not(.tv-scroll-arrow):hover {
  background: var(--color-dark);
  color: #fff;
  transform: scale(1.08);
}
.slider-arrow svg { width: 18px; height: 18px; fill: currentColor; }
.slider-arrow.swiper-button-disabled { opacity: 0.35; pointer-events: none; }
.slider-controls .slider-arrow.swiper-button-disabled {
  border-color: var(--color-accent);
  color: var(--color-accent);
}

/* Сетка карточек внутри слайда (4 в ряд) */
.cards-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
@media (max-width: 1024px) { .cards-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 700px)  { .cards-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px)  { .cards-grid { grid-template-columns: 1fr; } }

/* ============================================================
   13. ГЛАВНАЯ СТРАНИЦА — лайфбар + плеер
   ============================================================ */
.home-hero { padding: clamp(24px, 4vh, 48px) 0; }
.home-hero__inner {
  display: grid;
  grid-template-columns: var(--hero-col-livebar) 1fr;
  gap: 20px;
  align-items: start;
  min-height: 400px;
  --hero-col-livebar: clamp(248px, 18.5vw, 340px);
  --livebar-card-h-ref: 140px;
  --livebar-card-gap-ref: 10px;
  --livebar-chrome-ref: 104px;
}
.home-hero__player {
  padding-top: var(--livebar-cards-offset, 60px);
  height: auto;
}
@media (max-width: 779px) {
  .home-hero__inner { grid-template-columns: 1fr; }
  .home-hero__player { padding-top: 0; }
}

@media (min-width: 780px) {
  :root {
    --hero-col-livebar: clamp(248px, 18.5vw, 340px);
  }

  .livebar .program-card {
    padding: clamp(12px, 1.15vw, 16px) clamp(14px, 1.35vw, 18px) clamp(14px, 1.35vw, 18px);
  }

  .livebar .program-card__title {
    font-size: clamp(0.94rem, 0.95vw, 1.08rem);
  }

  .livebar .program-card__desc {
    font-size: clamp(0.82rem, 0.82vw, 0.92rem);
    margin-top: clamp(6px, 0.6vw, 8px);
  }

  .livebar .program-card__time {
    font-size: clamp(0.8rem, 0.78vw, 0.88rem);
  }

  .livebar .program-card__badge,
  .livebar .program-card__slot-label {
    font-size: clamp(0.68rem, 0.68vw, 0.74rem);
  }

  .livebar .program-card__censure {
    font-size: clamp(0.7rem, 0.68vw, 0.76rem);
  }

  .livebar .program-card__head {
    margin-bottom: clamp(4px, 0.45vw, 6px);
  }

  .livebar > .tv-scroll-arrow {
    width: clamp(38px, 3.2vw, 44px);
    height: clamp(38px, 3.2vw, 44px);
  }
}

/* Лайфбар */
.livebar {
  display: flex;
  flex-direction: column;
  gap: 8px;
  position: relative;
  align-items: center;
  align-self: start;
  height: var(--livebar-total-h, 678px);
  justify-content: space-between;
}
.livebar__scroll {
  flex: none;
  width: 100%;
  overflow-y: auto;
  overflow-x: hidden;
  height: var(--livebar-viewport-h, 590px);
  max-height: var(--livebar-viewport-h, 590px);
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding: 0 10px;
  box-sizing: border-box;
  scroll-snap-type: y mandatory;
  scroll-padding: 0;
}
.livebar__scroll::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

.livebar__wheel {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: 100%;
  padding: 0 4px;
  gap: var(--livebar-card-gap, 10px);
}

/* Карточка на 3D-карусели лайфбара */
.program-card {
  background: linear-gradient(165deg, #ffffff 0%, #f4f6fa 55%, #e8ecf3 100%);
  border-radius: var(--radius-md);
  padding: 16px 18px 18px;
  margin-bottom: 0;
  cursor: pointer;
  border: 1px solid rgba(255, 255, 255, 0.85);
  outline: none;
  position: relative;
  width: 100%;
  height: var(--livebar-card-h, 140px);
  min-height: var(--livebar-card-h, 140px);
  max-height: var(--livebar-card-h, 140px);
  flex-shrink: 0;
  scroll-snap-align: start;
  scroll-snap-stop: always;
  transform-origin: center center;
  box-sizing: border-box;
  pointer-events: auto;
  overflow: hidden;
  transform: translateY(0);
  opacity: var(--carousel-opacity, 1);
  z-index: 1;
  box-shadow:
    0 2px 0 rgba(255, 255, 255, 0.9) inset,
    0 -3px 10px rgba(7, 19, 43, 0.06) inset,
    0 8px 22px rgba(7, 19, 43, 0.14),
    0 2px 6px rgba(7, 19, 43, 0.08);
  transition:
    background 0.35s ease,
    border-color 0.35s ease,
    color 0.35s ease,
    padding 0.35s ease,
    box-shadow 0.45s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
    margin 0.35s ease,
    opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}
.program-card::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.55);
}
/* Hover — выпрыг вверх у нижних карточек, без обрезки */
.livebar__wheel .program-card.is-livebar-hovered {
  transform: translateY(calc(-1 * var(--expand-shift, 8px))) !important;
  opacity: 1 !important;
  z-index: 100 !important;
  height: auto;
  min-height: var(--livebar-card-h, 140px);
  max-height: none;
  overflow: visible;
  padding: 18px 20px 20px;
  box-shadow:
    0 2px 0 rgba(255, 255, 255, 0.95) inset,
    0 22px 48px rgba(7, 19, 43, 0.26),
    0 10px 22px rgba(7, 19, 43, 0.14);
}
.livebar__wheel .program-card.is-livebar-hovered.is-livebar-hovered--up {
  margin-top: calc(-1 * var(--grow-compensate, 0px));
  padding: 16px 18px 18px;
  transform-origin: bottom center;
}
.livebar__wheel .program-card.is-livebar-hovered.active {
  box-shadow:
    0 2px 0 rgba(255, 255, 255, 0.25) inset,
    0 24px 52px rgba(232, 69, 123, 0.5),
    0 10px 22px rgba(7, 19, 43, 0.12);
}
.livebar__wheel .program-card.is-livebar-hovered .program-card__desc {
  display: block !important;
  overflow: visible;
  -webkit-line-clamp: unset;
  line-clamp: unset;
  -webkit-box-orient: unset;
  white-space: normal;
}
.program-card__badge {
  display: inline-block;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-accent);
  flex-shrink: 0;
  pointer-events: none;
}
.program-card__badge[hidden],
.program-card__censure[hidden],
.program-card__progress[hidden] {
  display: none !important;
}
.program-card.active .program-card__badge { color: rgba(255, 255, 255, 0.95); }
.program-card__title {
  font-size: 1.08rem;
  font-weight: 600;
  line-height: 1.4;
  pointer-events: none;
}
.program-card__desc {
  font-size: 0.92rem;
  line-height: 1.5;
  color: var(--color-text-muted);
  margin-top: 8px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  pointer-events: none;
}
.program-card.active .program-card__desc { color: rgba(255, 255, 255, 0.9); }
.program-card__empty-msg {
  padding: 12px;
  font-size: 0.85rem;
}
.program-card__time {
  font-size: 0.88rem;
  font-weight: 700;
  opacity: 0.7;
  pointer-events: none;
}
.program-card__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 6px;
  pointer-events: none;
}
.program-card__head-end {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  margin-left: auto;
}
.program-card__head-start {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  flex: 1;
}
.program-card__slot-label {
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: var(--color-text-muted);
  flex-shrink: 0;
  pointer-events: none;
}
.program-card__slot-label[hidden] {
  display: none !important;
}
.program-card.active .program-card__slot-label {
  color: rgba(255, 255, 255, 0.9);
}
.livebar__wheel .program-card:last-child { margin-bottom: 0; }
.program-card.active {
  background: linear-gradient(165deg, #f04d8a 0%, var(--color-accent) 45%, #c92d68 100%);
  border-color: rgba(255, 255, 255, 0.25);
  color: #fff;
  box-shadow:
    0 2px 0 rgba(255, 255, 255, 0.2) inset,
    0 12px 36px rgba(232, 69, 123, 0.42),
    0 4px 12px rgba(7, 19, 43, 0.12);
}
.program-card.active .program-card__time { opacity: 0.95; }
.program-card__censure {
  font-size: 0.76rem;
  font-weight: 700;
  background: rgba(0, 0, 0, 0.12);
  border-radius: 4px;
  padding: 1px 5px;
  flex-shrink: 0;
  pointer-events: none;
}
.program-card.active .program-card__censure {
  background: rgba(255, 255, 255, 0.25);
  color: #fff;
}
.program-card__progress {
  height: 2px;
  background: rgba(0,0,0,0.08);
  border-radius: 2px;
  margin-top: 8px;
  overflow: hidden;
}
.program-card__progress-fill {
  height: 100%;
  background: var(--color-blue);
  border-radius: 2px;
  transition: width 0.5s linear;
}
.program-card.active .program-card__progress { background: rgba(255,255,255,0.3); }
.program-card.active .program-card__progress-fill { background: #fff; }

/* Плеер на главной */
.home-player {
  position: relative;
  background: #000;
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: var(--shadow-hover);
  aspect-ratio: 16 / 9;
  line-height: 0;
  font-size: 0;
}
.home-player__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  overflow: hidden;
}
.home-player__video iframe,
.home-player__video video,
.home-player__video > div,
.home-player__video > div > div {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  display: block;
}

/* Инфо под плеером */
.home-player__now {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 12px 16px;
  background: linear-gradient(to top, rgba(7,19,43,0.85), transparent);
  color: #fff;
  pointer-events: none;
}
.home-player__now-badge {
  font-size: 0.68rem;
  font-weight: 700;
  background: var(--color-accent);
  border-radius: var(--radius-full);
  padding: 2px 8px;
  display: inline-block;
  margin-bottom: 4px;
}
.home-player__now-title { font-size: 0.9rem; font-weight: 700; }

/* ============================================================
   14. СКРОЛЛБАР ПРОЕКТОВ (горизонтальный, 2 ряда иконок)
   ============================================================ */
.projects-scrollbar {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-bottom: 20px;
  padding: 8px 0 4px;
}

.projects-scrollbar__viewport {
  overflow: hidden;
  flex: 0 0 auto;
}

.projects-scrollbar__track {
  position: relative;
  width: 100%;
  overflow-x: auto;
  overflow-y: visible;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  padding: 4px 0 8px;
  min-height: 196px;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.projects-scrollbar__track::-webkit-scrollbar { display: none; }

.projects-scrollbar__grid {
  display: grid;
  grid-template-rows: auto auto;
  grid-auto-flow: column;
  grid-auto-columns: 132px;
  column-gap: 16px;
  row-gap: 14px;
  width: max-content;
  min-height: 188px;
  align-items: start;
}

.projects-scrollbar__col {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 2;
  width: 132px;
  scroll-snap-align: start;
}

.project-tab {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 2px 4px;
  cursor: pointer;
  width: 100%;
  max-width: 132px;
  text-align: center;
  transition: transform var(--transition);
  box-shadow: none;
  align-self: start;
}
.project-tab:hover { transform: translateY(-3px); }
.project-tab.active {
  transform: translateY(-4px) scale(1.04);
}

.project-tab__icon {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 2px 10px rgba(7, 19, 43, 0.22);
  transition: box-shadow var(--transition), transform var(--transition);
  overflow: hidden;
}
.project-tab__icon svg {
  width: 42px;
  height: auto;
  max-height: 48px;
  display: block;
}
.project-tab.active .project-tab__icon {
  box-shadow: 0 4px 16px rgba(232, 69, 123, 0.45);
}

.project-tab__text {
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.25;
  color: #fff;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.45);
  white-space: normal;
  max-width: 128px;
  min-height: calc(0.95rem * 1.25 * 2);
}
.project-tab.active .project-tab__text {
  color: var(--color-accent);
  text-shadow: none;
}

/* ============================================================
   15. СОРТИРОВКА
   ============================================================ */
.sort-bar {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 20px;
}
.sort-bar__label {
  font-size: 0.85rem;
  color: rgba(255,255,255,0.7);
  font-weight: 500;
}
.sort-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 16px;
  border-radius: var(--radius-full);
  background: rgba(255,255,255,0.2);
  color: #fff;
  font-size: 0.85rem;
  cursor: pointer;
  transition: background var(--transition);
  border: 1px solid rgba(255,255,255,0.3);
}
.sort-btn__arrow {
  font-size: 0.78rem;
  line-height: 1;
  font-weight: 800;
  opacity: 0.7;
}
.sort-btn.active .sort-btn__arrow {
  opacity: 1;
}
.sort-btn:hover, .sort-btn.active { background: rgba(255,255,255,0.28); }
/* Белый вариант (на светлом фоне) */
.sort-btn--light {
  background: #fff;
  color: var(--color-text);
  border-color: var(--color-border);
}
.sort-btn--light:hover,
.sort-btn--light.active { background: var(--color-dark); color: #fff; border-color: var(--color-dark); }

/* ============================================================
   16. ХЛЕБНЫЕ КРОШКИ
   ============================================================ */
.breadcrumbs {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  font-size: 0.95rem;
  line-height: 1.5;
  color: rgba(255,255,255,0.65);
  margin-bottom: 24px;
}
.section-toolbar .breadcrumbs {
  margin-bottom: 0;
}
.breadcrumbs a,
.breadcrumbs > span:not(.breadcrumbs__sep) {
  display: inline-flex;
  align-items: center;
  padding: 4px 8px;
}
.breadcrumbs a {
  color: rgba(255,255,255,0.65);
  transition: color var(--transition);
}
.breadcrumbs a:hover { color: #fff; }
.breadcrumbs__sep {
  opacity: 0.5;
  padding: 0 2px;
}
.breadcrumbs span { color: #fff; font-weight: 500; }

/* ============================================================
   17. ФУТЕР
   ============================================================ */
.site-footer {
  position: relative;
  z-index: 1;
  background: var(--color-dark);
  color: rgba(255,255,255,0.78);
  font-size: 0.875rem;
  line-height: 1.55;
  padding: clamp(32px, 5vh, 60px) 0 0;
  margin-top: clamp(40px, 6vh, 80px);
}
.site-footer__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: 28px 36px;
  align-items: start;
  padding-bottom: 28px;
}
.site-footer__logo {
  align-self: center;
}
.site-footer__side {
  min-width: 0;
}
.site-footer__side--left .site-footer__blocks {
  justify-content: flex-end;
  flex-wrap: nowrap;
}
.site-footer__side--right .site-footer__blocks {
  justify-content: flex-start;
  flex-wrap: nowrap;
}
.site-footer__blocks {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 20px 32px;
}
.site-footer__block {
  flex: 0 0 auto;
  min-width: 0;
  max-width: none;
  font-size: 0.875rem;
  line-height: 1.55;
}
.site-footer__block--contacts {
  max-width: 220px;
}
.site-footer__heading {
  margin: 0 0 8px;
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 800;
  color: #fff;
  letter-spacing: 0.02em;
  line-height: 1.35;
}
.site-footer__line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 8px;
  margin: 0 0 6px;
}
.site-footer__text,
.site-footer__label,
.site-footer__nav a {
  font-size: inherit;
  line-height: inherit;
  color: rgba(255, 255, 255, 0.78);
}
.site-footer__label {
  color: inherit;
}
.site-footer__line--email {
  align-items: center;
}
.site-footer__copy.about-contact-copy {
  width: 1em;
  height: 1em;
  min-width: 1em;
  border-radius: 2px;
  background: rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.9);
}
.site-footer__copy.about-contact-copy svg {
  width: 0.72em;
  height: 0.72em;
}
.site-footer__copy.about-contact-copy:hover {
  background: var(--color-accent);
  color: #fff;
}
.site-footer__copy.about-contact-copy.is-copied {
  background: #2e7d32;
  color: #fff;
}
.site-footer__nav {
  display: flex;
  flex-direction: column;
  gap: 4px;
  align-items: flex-start;
  font-size: inherit;
  line-height: inherit;
}
.site-footer__nav a {
  text-decoration: none;
  transition: color var(--transition);
}
.site-footer__nav a:hover { color: #fff; }

/* Слот 3-й колонки справа — только планшет, на desktop/phone скрыт */
.site-footer__block--tablet-slot {
  display: none;
}

@media (max-width: 1100px) {
  .site-footer__grid {
    grid-template-columns: 1fr auto 1fr;
    gap: 20px 20px;
  }
  .site-footer__blocks { gap: 16px 20px; }
}
@media (max-width: 779px) {
  .site-footer__side--left .site-footer__blocks,
  .site-footer__side--right .site-footer__blocks {
    flex-wrap: wrap;
  }
  .site-footer__grid {
    grid-template-columns: 1fr;
    gap: 28px;
    text-align: center;
  }
  .site-footer__logo { margin: 0 auto; order: -1; }
  .site-footer__side--left { order: 1; }
  .site-footer__side--right { order: 2; }
  .site-footer__side--left .site-footer__blocks,
  .site-footer__side--right .site-footer__blocks {
    justify-content: center;
  }
  .site-footer__side--left .site-footer__block--legal {
    order: 2;
  }
  .site-footer__side--left .site-footer__block:not(.site-footer__block--contacts):not(.site-footer__block--legal) {
    order: 1;
  }
  .site-footer__side--left .site-footer__block--contacts {
    order: 0;
  }
  .site-footer__block {
    max-width: none;
    min-width: 140px;
    text-align: left;
  }
}
@media (max-width: 520px) {
  .site-footer__blocks {
    flex-direction: column;
    align-items: center;
  }
  .site-footer__block {
    width: 100%;
    max-width: 280px;
    text-align: center;
  }
  .site-footer__nav { align-items: center; }
}
.site-footer__logo a {
  display: inline-block;
  transition: transform 0.25s ease;
}
.site-footer__logo a:hover {
  transform: translateY(-4px) scale(1.05);
}
.site-footer__logo img {
  height: 62px;
  width: auto;
  display: block;
}

.site-footer__socials {
  display: flex;
  justify-content: center;
  gap: 10px;
  padding: 20px 0;
  border-top: 1px solid rgba(255,255,255,0.1);
}
.social-link {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(255,255,255,0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background var(--transition), transform var(--transition);
  flex-shrink: 0;
}
.social-link:hover { background: var(--color-accent); transform: translateY(-3px); }
.social-link svg { width: 18px; height: 18px; fill: #fff; }

.site-footer__bottom {
  border-top: 1px solid rgba(255,255,255,0.1);
  padding: 14px 0;
  text-align: center;
  font-size: inherit;
  line-height: inherit;
  color: inherit;
}

/* ============================================================
   18. ТЕЛЕПРОГРАММА
   ============================================================ */
.page-tvprogram .hero {
  padding-top: calc(clamp(32px, 6vh, 72px) + 16px);
  overflow: visible;
}
.page-tvprogram .tv-days {
  margin-top: clamp(36px, 5vh, 56px);
  margin-bottom: 0;
  padding-top: 10px;
  overflow: visible;
}
.page-tvprogram .tv-program-wrap {
  margin-top: clamp(28px, 4vh, 48px);
}
.page-tvprogram .tv-day-btn:hover {
  transform: translateY(0);
}
.tv-days {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 20px;
  justify-content: center;
}
.tv-day-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 8px 14px;
  background: rgba(255,255,255,0.1);
  border-radius: var(--radius-md);
  color: #fff;
  cursor: pointer;
  transition: background var(--transition), transform var(--transition);
  min-width: 60px;
  border: 1px solid rgba(255,255,255,0.15);
}
.tv-day-btn:hover { background: rgba(255,255,255,0.2); transform: translateY(-2px); }
.tv-day-btn.active { background: var(--color-accent); border-color: var(--color-accent); }
.tv-day-btn__day  { font-size: 0.75rem; font-weight: 500; opacity: 0.8; }
.tv-day-btn__date { font-size: 1rem; font-weight: 900; font-family: var(--font-heading); }
.tv-day-btn__date--mob { display: none; }

.tv-schedule {
  background: rgba(255,255,255,0.2);
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.tv-schedule__scroll {
  max-height: 70vh;
  overflow-y: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.page-tvprogram .tv-schedule__scroll {
  max-height: none;
  height: calc(var(--tv-row-step, 62px) * var(--tv-visible-rows, 10));
  scroll-snap-type: y mandatory;
}
.tv-schedule__scroll::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

.tv-row {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 14px 20px;
  border-bottom: 1px solid rgba(255,255,255,0.06);
  cursor: pointer;
  transition: background var(--transition);
  position: relative;
}
.page-tvprogram .tv-row {
  min-height: var(--tv-row-step, 62px);
  padding: 10px 18px;
  gap: 14px;
  align-items: center;
  box-sizing: border-box;
  scroll-snap-align: start;
  scroll-snap-stop: always;
}
.tv-row:hover { background: rgba(255,255,255,0.06); }
.tv-row.now {
  background: var(--tv-now-bg);
}
.tv-row.now .tv-row__time,
.tv-row.now .tv-row__title {
  color: var(--tv-time-color);
  font-weight: 700;
}
.tv-row.is-open:not(.now) {
  background: rgba(255,255,255,0.08);
}
.tv-row__time {
  flex-shrink: 0;
  width: 52px;
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--tv-time-color);
}
.page-tvprogram .tv-row__time {
  font-size: 0.94rem;
}
.tv-row__body { flex: 1; min-width: 0; }
.page-tvprogram .tv-row__body { min-width: 0; }
.tv-row__title {
  font-size: 0.92rem;
  color: var(--tv-title-color);
  font-weight: 500;
}
.page-tvprogram .tv-row__title {
  font-size: 1rem;
  line-height: 1.25;
}
.tv-row.now .tv-row__title { color: var(--tv-title-color); font-weight: 700; }
.tv-row__meta {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 4px;
}
.page-tvprogram .tv-row__meta {
  margin-top: 2px;
  gap: 6px;
}
.tv-row__badge {
  font-size: 0.7rem;
  padding: 1px 6px;
  border-radius: var(--radius-full);
  background: var(--tv-badge-bg);
  color: var(--tv-badge-text);
}
.page-tvprogram .tv-row__badge {
  font-size: 0.72rem;
  padding: 1px 7px;
  line-height: 1.35;
}
.tv-row__badge--air {
  background: var(--tv-badge-air-bg);
  color: var(--tv-badge-air-text);
  font-weight: 700;
}
.page-tvprogram .tv-row__badge--air.tv-row__badge--next,
.page-tvprogram .tv-row__badge--air.tv-row__badge--then {
  background: var(--tv-badge-next-bg);
  color: var(--tv-badge-air-text);
}
.tv-row.now .tv-row__badge { background: var(--tv-badge-air-bg); color: var(--tv-badge-air-text); }
.tv-row__censure {
  flex-shrink: 0;
  font-size: 0.72rem;
  font-weight: 700;
  background: var(--tv-censure-bg);
  color: var(--tv-censure-text);
  padding: 2px 6px;
  border-radius: var(--radius-sm);
  align-self: flex-start;
}
.page-tvprogram .tv-row__censure {
  font-size: 0.82rem;
  padding: 3px 8px;
  line-height: 1.25;
}

/* Детали передачи — карточка под строкой */
.tv-row__detail {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.35s ease, padding 0.35s ease;
  padding: 0;
  border-bottom: none;
}
.tv-row__detail.open {
  grid-template-rows: 1fr;
  padding: 0 12px 12px;
}
.tv-row__detail-inner {
  overflow: hidden;
  min-height: 0;
}
.tv-row__detail-card {
  background: #fff;
  color: var(--color-text);
  margin-top: 5px;
  transition: none;
}
.tv-row__detail-content {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.tv-row__detail-title {
  font-family: var(--font-heading);
  font-weight: 900;
  font-size: 1.05rem;
  color: var(--color-text);
  margin: 0;
}
.tv-row__detail-meta {
  font-size: 0.88rem;
  color: var(--color-text-muted);
  margin: 0;
}
.tv-row__detail-desc {
  font-size: 0.9rem;
  color: var(--color-text);
  line-height: 1.65;
  margin: 0;
}
.tv-row__detail-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.tv-row__detail-tags .tv-row__badge {
  background: rgba(25, 92, 174, 0.14);
  color: var(--color-blue);
  font-weight: 600;
}

.tv-row__progress-wrap {
  margin: 10px 0 12px;
}

.tv-row__progress {
  height: 3px;
  border-radius: var(--radius-full);
  background: rgba(7, 19, 43, 0.18);
  overflow: hidden;
}

.tv-row__progress-fill {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--color-accent);
  transition: width 0.4s ease;
}

.tv-row__onair-label {
  margin: 8px 0 0;
  font-size: 0.82rem;
  font-weight: 800;
  color: var(--color-accent);
}

.tv-program-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  width: 100%;
}
.tv-program-wrap .tv-schedule {
  width: 100%;
  max-width: 720px;
}
.tv-scroll-controls {
  display: flex;
  justify-content: center;
  width: 100%;
  max-width: 720px;
  padding: 0;
  background: transparent;
}
.tv-scroll-controls .tv-scroll-arrow,
.livebar > .tv-scroll-arrow,
.projects-scrollbar > .tv-scroll-arrow,
.btn-back-top {
  background: transparent;
  border: 2px solid rgba(255, 255, 255, 0.45);
  color: #fff;
  box-shadow: none;
}
.tv-scroll-controls .tv-scroll-arrow:hover,
.livebar > .tv-scroll-arrow:hover,
.projects-scrollbar > .tv-scroll-arrow:hover,
.btn-back-top:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: #fff;
  color: #fff;
  transform: scale(1.06);
}

/* ============================================================
   19. СТРАНИЦА ВЫПУСКА (плеер + сайдбар)
   ============================================================ */
.program-page-top {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 24px;
  align-items: start;
}
@media (max-width: 900px) {
  .program-page-top { grid-template-columns: 1fr; }
}

.program-player-wrap {
  position: relative;
  background: #000;
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: var(--shadow-hover);
  aspect-ratio: 16/9;
  line-height: 0;
  font-size: 0;
}
.program-player-wrap > #program-player {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.program-player-wrap #program-player iframe,
.program-player-wrap #program-player video,
.program-player-wrap #program-player > div,
.program-player-wrap #program-player > div > div,
.program-player-wrap #program-player img {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  display: block;
}
.program-player-wrap #program-player video,
.program-player-wrap #program-player img {
  object-fit: cover;
  object-position: center center;
}
.program-player-wrap #program-player > div {
  background-size: cover !important;
  background-position: center center !important;
}

/* Убрать чёрную полоску снизу (subpixel / PlayerJS) — только desktop, страница выпуска */
@media (min-width: 780px) {
  .program-player-wrap {
    clip-path: inset(0 0 1px 0);
  }
}

/* Скрыть встроенный заголовок PlayerJS на странице выпуска */
.program-player-wrap #program-player_title,
.program-player-wrap #program-player [id$="_title"] {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.video-embed-host iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
  background: #000;
}

.page-video-poster {
  position: absolute;
  inset: 0;
  z-index: 3;
  background-color: #000;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  pointer-events: none;
}

#program-player.is-live-widget-paused iframe {
  visibility: hidden;
}

#program-player.is-live-widget-paused video {
  visibility: hidden;
}
#program-player.video-embed-host {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.program-player-wrap > .card__censure {
  top: 0;
  right: 0;
  left: auto;
  z-index: 5;
  display: inline-block;
  width: auto;
  height: auto;
  font-size: 0.85rem;
  line-height: 1.3;
  padding: 4px 10px;
  pointer-events: none;
  white-space: nowrap;
  border-radius: 0 var(--radius-md) 0 var(--radius-sm);
}
.program-sidebar {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
}
.program-sidebar__heading {
  background: #fff;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-card);
  padding: 12px 14px;
  text-align: center;
  flex-shrink: 0;
}
.program-sidebar__title {
  font-family: var(--font-heading);
  font-weight: 900;
  font-size: 1rem;
  line-height: 1.3;
  color: var(--color-text);
  margin: 0;
}
.program-sidebar__list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.program-sidebar__list::-webkit-scrollbar { display: none; }
@media (min-width: 901px) {
  .program-sidebar__list {
    scroll-snap-type: y mandatory;
  }
  .program-sidebar__card {
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }
}
.program-sidebar__card {
  display: flex;
  gap: 10px;
  background: #fff;
  border-radius: var(--radius-md);
  padding: 10px;
  cursor: pointer;
  box-shadow: var(--shadow-card);
  transition: background var(--transition), transform var(--transition), box-shadow var(--transition);
  flex-shrink: 0;
}
.program-sidebar__card:hover {
  background: #f7f7f7;
  transform: translateY(-3px);
  box-shadow: var(--shadow-hover);
}
.program-sidebar__card.active {
  background: var(--color-accent);
  box-shadow: 0 4px 16px rgba(232, 69, 123, 0.35);
}
.program-sidebar__img {
  width: 72px;
  aspect-ratio: 16/9;
  height: auto;
  object-fit: cover;
  border-radius: var(--radius-sm);
  flex-shrink: 0;
  align-self: flex-start;
}
.program-sidebar__info { flex: 1; min-width: 0; }
.program-sidebar__item-title {
  font-size: 0.82rem;
  color: var(--color-text);
  font-weight: 600;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.program-sidebar__item-date {
  font-size: 0.72rem;
  color: var(--color-text-muted);
  margin-top: 4px;
}
.program-sidebar__card.active .program-sidebar__item-title,
.program-sidebar__card.active .program-sidebar__item-date {
  color: #fff;
}
.program-sidebar__card.active .program-sidebar__item-date {
  color: rgba(255, 255, 255, 0.85);
}

.program-info-card {
  margin-top: clamp(20px, 3vh, 32px);
  padding: 22px 26px;
  cursor: default;
  display: flex;
  flex-direction: column;
}
.program-info-title {
  font-family: var(--font-heading);
  font-size: 1.5rem;
  font-weight: 900;
  margin-bottom: 8px;
  color: var(--color-blue);
  line-height: 1.25;
}
.program-info-text {
  margin-top: 6px;
  color: var(--color-text);
  font-size: 0.92rem;
  line-height: 1.75;
}
.program-info-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: auto;
  padding-top: 18px;
}
.program-info-date {
  font-family: var(--font-heading);
  font-weight: 900;
  font-size: 1rem;
  color: var(--color-text);
}
.program-info-tag.card__tag {
  margin-bottom: 0;
  font-size: 0.8rem;
  font-weight: 700;
  padding: 5px 14px;
}
.program-info-text p,
.program-info-text li,
.program-info-text span,
.program-info-text div {
  color: inherit;
}

/* ============================================================
   20. КОМАНДА — круг + белая полоса (×2, 2 в ряд)
   ============================================================ */
.staff-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(32px, 4vw, 72px);
  align-items: start;
  justify-items: center;
}
.staff-card {
  --staff-tab-min: 32%;
  --staff-tab-width: calc(50% + 18%);
  --staff-tab-pad-y: 1.6%;
  --staff-tab-pad-x: 3%;
  --staff-tab-pad-left: 8.5%;
  --staff-name-size: clamp(0.88rem, 1.35vw, 1.35rem);
  --staff-job-size: clamp(0.72rem, 0.95vw, 0.98rem);
  --staff-bio-size: clamp(0.72rem, 0.9vw, 0.92rem);
  --staff-photo-size: 46.1538%;
  --staff-photo-half: 23.0769%;
  --staff-photo-border: 8px;
  --staff-tab-expand-left: 50px;
  --staff-tab-expand-right: 30px;
  --staff-col-shift: 64px;
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  width: 100%;
  max-width: none;
  padding: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}
/* 1-я колонка — фото под логотипом, полоса сверху вправо */
.staff-card--col-left {
  justify-self: start;
  align-items: flex-start;
  transform: translateX(var(--staff-col-shift));
}
.staff-card--col-left .staff-card__photo-wrap {
  left: calc(var(--hero-col-livebar) / 2);
  margin-left: calc(-1 * var(--staff-photo-half));
}
.staff-card--col-left .staff-card__tab {
  left: calc(var(--hero-col-livebar) / 2 + 8%);
  --staff-tab-width: calc(42% + 12%);
  --staff-tab-min: 28%;
  --staff-tab-expand-right: 120px;
}
.staff-card--col-left .staff-card__bio {
  text-align: left;
}
/* 2-я колонка — зеркало: фото справа, полоса снизу влево */
.staff-card--col-right {
  justify-self: end;
  align-items: flex-end;
  transform: translateX(calc(-1 * var(--staff-col-shift)));
}
.staff-card--col-right .staff-card__photo-wrap {
  left: auto;
  right: calc(var(--hero-col-livebar) / 2);
  margin-left: 0;
  margin-right: calc(-1 * var(--staff-photo-half));
}
.staff-card--col-right .staff-card__tab {
  top: auto;
  bottom: calc(24.17% - 69px);
  left: auto;
  right: calc(var(--hero-col-livebar) / 2 + 8%);
  margin-left: 0;
  margin-right: calc(-1 * var(--staff-tab-expand-left) - 3px);
  --staff-tab-width: calc(42% + 12%);
  --staff-tab-min: 28%;
  width: calc(var(--staff-tab-width) + var(--staff-tab-expand-left) + var(--staff-tab-expand-right) + 90px);
  max-width: calc(92% + var(--staff-tab-expand-left) + var(--staff-tab-expand-right) + 90px);
}
.staff-card--col-right .staff-card__bio {
  text-align: right;
}
.staff-card__figure {
  position: relative;
  width: 100%;
  max-width: 1040px;
  aspect-ratio: 1040 / 480;
  height: auto;
  overflow: visible;
}
.staff-card__unit {
  position: relative;
  width: 100%;
  height: 100%;
  filter: drop-shadow(0 4px 16px rgba(7, 19, 43, 0.08));
}
.staff-card__photo-wrap {
  position: absolute;
  left: 50%;
  bottom: 0;
  width: var(--staff-photo-size);
  height: auto;
  aspect-ratio: 1;
  margin-left: calc(-1 * var(--staff-photo-half));
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  border: var(--staff-photo-border) solid #fff;
  box-shadow: none;
  background: #fff;
  z-index: 2;
}
.staff-card__photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  margin: 0;
  padding: 0;
  border-radius: 50%;
}
.staff-card__tab {
  position: absolute;
  z-index: 1;
  top: calc(24.17% - 69px);
  left: calc(50% + 8%);
  background: #fff;
  border-radius: var(--radius-md);
  box-shadow: none;
  padding: var(--staff-tab-pad-y) var(--staff-tab-pad-x);
  text-align: center;
  min-width: var(--staff-tab-min);
  width: calc(var(--staff-tab-width) + var(--staff-tab-expand-left) + var(--staff-tab-expand-right));
  margin-left: calc(-1 * var(--staff-tab-expand-left));
  max-width: calc(92% + var(--staff-tab-expand-left) + var(--staff-tab-expand-right));
  box-sizing: border-box;
  min-height: calc(
    2 * var(--staff-tab-pad-y)
    + var(--staff-name-size) * 1.25
    + 0.28em
    + var(--staff-job-size) * 1.3
  );
}
.staff-card__tab--no-job {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.staff-card__name {
  font-family: var(--font-heading);
  font-weight: 900;
  font-size: var(--staff-name-size);
  line-height: 1.25;
  color: var(--color-text);
  margin: 0;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.staff-card__job {
  margin: 0.28em 0 0;
  font-size: var(--staff-job-size);
  font-weight: 500;
  color: var(--color-text-muted);
  text-align: center;
  line-height: 1.3;
}
.staff-card__bio {
  margin-top: clamp(10px, 1.8vw, 18px);
  font-size: var(--staff-bio-size);
  line-height: 1.45;
  color: var(--color-text-muted);
  text-align: center;
  max-width: 100%;
}

/* Desktop (≥1025): cluster масштабирует круг+плашку от эталона 624×288 (viewport ~1853) */
@media (min-width: 1025px) {
  .staff-card__figure {
    container-type: inline-size;
  }

  .staff-card {
    --staff-ref-w: 624;
    --staff-ref-h: 288;
    /* px при html 14px на эталоне 1853 — без rem/vw дрейфа на breakpoint 1610 */
    --staff-name-size: 18.9px;
    --staff-job-size: 13.72px;
    --staff-tab-min-h: 58px;
  }

  .staff-card__tab {
    min-height: var(--staff-tab-min-h);
  }

  .staff-card__cluster {
    position: absolute;
    bottom: 0;
    width: calc(var(--staff-ref-w) * 1px);
    height: calc(var(--staff-ref-h) * 1px);
    transform: scale(calc(100cqw / (var(--staff-ref-w) * 1px)));
  }

  .staff-card--col-left .staff-card__cluster {
    left: 0;
    transform-origin: bottom left;
  }

  .staff-card--col-right .staff-card__cluster {
    left: auto;
    right: 0;
    transform-origin: bottom right;
  }
}

/* ============================================================
   21. ФОРМА КОНТАКТОВ
   ============================================================ */
.contact-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.feedback-honeypot {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}
.form-group { display: flex; flex-direction: column; gap: 6px; }
.form-group label { font-size: 0.85rem; font-weight: 500; color: var(--color-text-muted); }
.form-control {
  width: 100%;
  padding: 12px 16px;
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-md);
  background: #fff;
  font-size: 0.95rem;
  transition: border-color var(--transition), box-shadow var(--transition);
}
.form-control:focus {
  border-color: var(--color-accent);
  box-shadow: 0 0 0 3px rgba(232,69,123,0.12);
}
.form-success {
  display: none;
  padding: 12px 16px;
  background: #e8f5e9;
  border-radius: var(--radius-md);
  color: #2e7d32;
  font-size: 0.9rem;
}
.form-success.show { display: block; }

.feedback-notice {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-top: 16px;
  padding: 16px 18px;
  border-radius: var(--radius-md);
  animation: feedback-notice-in 0.45s ease;
}
.feedback-notice[hidden] { display: none; }
.feedback-notice--success {
  background: linear-gradient(135deg, #e8f5e9 0%, #f1f8e9 100%);
  border: 1px solid rgba(46, 125, 50, 0.25);
  color: #1b5e20;
  box-shadow: 0 4px 20px rgba(46, 125, 50, 0.12);
}
.feedback-notice--error {
  background: linear-gradient(135deg, #ffebee 0%, #fce4ec 100%);
  border: 1px solid rgba(198, 40, 40, 0.2);
  color: #b71c1c;
  box-shadow: 0 4px 20px rgba(198, 40, 40, 0.1);
}
.feedback-notice__icon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  font-size: 1.25rem;
  font-weight: 900;
  line-height: 1;
}
.feedback-notice--success .feedback-notice__icon {
  background: #2e7d32;
  color: #fff;
}
.feedback-notice--error .feedback-notice__icon {
  background: #c62828;
  color: #fff;
}
.feedback-notice__title {
  display: block;
  margin: 0 0 4px;
  font-size: 1.05rem;
  font-weight: 800;
  font-family: var(--font-heading);
}
.feedback-notice__text {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.5;
  opacity: 0.9;
}
@keyframes feedback-notice-in {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

/* ============================================================
   22. COOKIE-БАННЕР
   ============================================================ */
.cookie-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 9999;
  background: var(--color-dark);
  color: #fff;
  padding: 14px var(--side-padding);
  display: none;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
  box-shadow: 0 -4px 20px rgba(0,0,0,0.25);
}
.cookie-banner.show { display: flex; }
.cookie-banner__text { flex: 1; font-size: 0.88rem; color: rgba(255,255,255,0.8); }
.cookie-banner__text a { color: var(--color-accent); text-decoration: underline; }
.cookie-banner__btn {
  background: var(--color-accent);
  color: #fff;
  border-radius: var(--radius-full);
  padding: 8px 24px;
  font-weight: 700;
  font-size: 0.88rem;
  flex-shrink: 0;
  transition: background var(--transition);
}
.cookie-banner__btn:hover { background: #c4305e; }

/* ============================================================
   23. СТРАНИЦЫ ОШИБОК
   ============================================================ */
.error-page {
  min-height: 80vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 40px 20px;
}
.error-page__code {
  font-family: var(--font-heading);
  font-weight: 900;
  font-size: clamp(4rem, 15vw, 10rem);
  color: var(--color-accent);
  line-height: 1;
}
.error-page__title { font-size: clamp(1.2rem, 3vw, 2rem); margin-top: 12px; color: var(--color-text); }
.error-page__desc  { color: var(--color-text-muted); margin: 12px 0 28px; max-width: 480px; }

/* ============================================================
   25. УТИЛИТЫ МАКЕТА И ТИПОГРАФИКА
   ============================================================ */
.page-title { color: #fff; margin-bottom: 24px; }
.page-title--lg { margin-bottom: 32px; }
.section-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}
.section-toolbar--start { justify-content: flex-start; gap: 20px; }
.section-search { max-width: 480px; position: relative; }
.section-search--center { margin-left: auto; margin-right: auto; }
.section-search__field {
  position: relative;
  width: 100%;
}
.section-search__input {
  width: 100%;
  padding-right: 44px;
}
.section-search__icon {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.75);
  pointer-events: none;
}
.section-search__icon svg {
  width: 18px;
  height: 18px;
  fill: currentColor;
}

.programs-fresh-header {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
}
.programs-fresh-header__title {
  width: 100%;
  display: flex;
  justify-content: center;
}
.programs-fresh-header__sort.sort-bar {
  margin-bottom: 0;
  margin-left: 8px;
  justify-content: flex-start;
}
.section-center { display: flex; justify-content: center; padding-bottom: 40px; }
.content-narrow { max-width: 860px; margin-left: auto; margin-right: auto; }
.content-medium { max-width: 700px; margin: 0 auto; }
.text-muted-light { color: rgba(255, 255, 255, 0.5); }
.text-muted-hero { color: rgba(255, 255, 255, 0.55); font-size: 0.82rem; }
.text-on-dark { color: rgba(255, 255, 255, 0.8); }
.form-control--hero {
  background: rgba(255, 255, 255, 0.2);
  border-color: rgba(255, 255, 255, 0.3);
  color: #fff;
}
.form-control--hero::placeholder { color: rgba(255, 255, 255, 0.5); }
.form-control--hero:focus {
  border-color: rgba(255, 255, 255, 0.45);
  box-shadow: none;
}
.search-autocomplete--dropdown {
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  z-index: 50;
}
.card--padded { padding: 24px; }
.card--padded-lg { padding: 28px 32px; }
.card--padded-xl { padding: 28px 32px; }
.card--info-dark { margin-top: 16px; padding: 20px 24px; }
.card--info-dark .card__title,
.card--info-dark h1 { font-size: 1.5rem; margin-bottom: 8px; color: #fff; }
.promo-flex {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 14px 20px;
  flex-wrap: wrap;
}
.promo-flex__title { flex: 1; font-weight: 700; }
.promo-close { padding: 4px; color: #aaa; font-size: 1.2rem; }
.tv-layout {
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 20px;
  align-items: start;
}
.tv-detail-sticky { padding: 24px; position: sticky; top: 16px; }
.about-grid {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.about-grid__about {
  width: 100%;
}
.about-grid__lower {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  align-items: stretch;
}
.about-aside-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  align-items: stretch;
  width: 100%;
  min-width: 0;
  height: 100%;
}
.about-aside-grid__item {
  min-height: 160px;
  display: flex;
  flex-direction: column;
}
.about-aside-grid__social {
  grid-column: 1 / -1;
  min-height: 160px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  text-align: center;
}
.about-social-card__title {
  font-size: 1.45rem;
  font-weight: 900;
  font-family: var(--font-heading);
  margin: 0;
  color: var(--color-text);
  text-align: center;
  width: 100%;
  flex-shrink: 0;
}
.about-aside-grid__social.about-grid__secondary-card .about-social-card__links {
  display: flex;
  flex: 1 1 auto;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  width: 100%;
  margin-top: 0;
  min-height: 0;
}
.about-grid__feedback {
  height: 100%;
  min-height: 100%;
  display: flex;
  flex-direction: column;
}
.about-grid__feedback--sent {
  height: auto;
  min-height: 0;
  align-self: center;
  justify-self: center;
  width: min(100%, 320px);
  background: transparent;
  box-shadow: none;
  border-radius: 0;
  padding: 0;
  overflow: visible;
}
.feedback-card__title {
  margin-bottom: 16px;
}
.about-grid__feedback--sent .feedback-card__title {
  display: none;
}
.feedback-form-wrap[hidden] {
  display: none;
}
.feedback-sent-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 20px 18px;
  text-align: center;
  border-radius: var(--radius-md);
  background: linear-gradient(135deg, #fce4ec 0%, #fff5f8 100%);
  border: 1px solid rgba(232, 69, 123, 0.28);
  box-shadow: 0 4px 16px rgba(232, 69, 123, 0.14);
  animation: feedback-notice-in 0.45s ease;
}
.feedback-sent-card[hidden] {
  display: none;
}
.feedback-sent-card__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--color-accent);
  color: #fff;
}
.feedback-sent-card__title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 800;
  font-family: var(--font-heading);
  color: var(--color-accent);
}
.feedback-sent-card__text {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.45;
  color: #c92d68;
}
/* Одна верхняя карточка (Связь без «Адрес») — на всю ширину, как соцсети */
.about-aside-grid > .about-aside-grid__item:only-child {
  grid-column: 1 / -1;
}
.about-aside-grid > .about-aside-grid__item:first-child:nth-last-child(2) {
  grid-column: 1 / -1;
}
.about-grid__lower:has(.about-grid__feedback:only-child) {
  grid-template-columns: 1fr;
}
.about-grid__feedback:only-child {
  grid-column: 1 / -1;
}
.about-grid__secondary-card { min-height: 160px; }
.about-grid__secondary-card .social-row { margin-top: auto; }
.about-about-card { display: flex; flex-direction: column; height: 100%; }
.about-about-card__content {
  flex: 1 1 auto;
  font-size: 1rem;
  line-height: 1.75;
}
.about-about-card__content img { max-width: 100%; height: auto; border-radius: var(--radius-sm); }
.about-contact-card {
  font-size: 1.18rem;
  line-height: 1.55;
}
.about-contact-card__body {
  display: grid;
  grid-template-columns: 1fr minmax(150px, 44%);
  gap: 16px 20px;
  align-items: stretch;
}
.about-contact-card__title {
  font-size: 1.45rem;
  font-weight: 900;
  font-family: var(--font-heading);
  margin: 0 0 16px;
  color: var(--color-text);
  text-align: center;
}
.about-contact-map {
  min-height: 168px;
  border-radius: var(--radius-sm);
  overflow: hidden;
  align-self: stretch;
  border: 1px solid rgba(7, 19, 43, 0.08);
  box-shadow: var(--shadow-card);
}
.about-contact-map__trigger {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  min-height: 168px;
  padding: 0;
  border: none;
  border-radius: var(--radius-sm);
  cursor: pointer;
  background: rgba(7, 19, 43, 0.06);
  overflow: hidden;
  transition: box-shadow var(--transition);
}
.about-contact-map__trigger::after {
  content: 'Открыть карту';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  padding: 10px 12px;
  font-size: 0.78rem;
  font-weight: 700;
  color: #fff;
  text-align: center;
  background: linear-gradient(transparent, rgba(7, 19, 43, 0.72));
  pointer-events: none;
}
.about-contact-map__trigger:hover {
  box-shadow: var(--shadow-hover);
}
.about-contact-map__trigger:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}
.about-contact-map__preview {
  width: 100%;
  height: 100%;
  min-height: 168px;
  border: 0;
  pointer-events: none;
  display: block;
  object-fit: cover;
  background: rgba(7, 19, 43, 0.06);
  transition: transform var(--transition), filter var(--transition);
}
.about-contact-map__trigger:hover .about-contact-map__preview {
  transform: scale(1.02);
  filter: brightness(1.03);
}
.about-contact-map__preview--broken {
  object-fit: contain;
  opacity: 0.55;
}
.about-map-modal {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}
.about-map-modal[hidden] { display: none; }
.about-map-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(7, 19, 43, 0.65);
  backdrop-filter: blur(4px);
}
.about-map-modal__dialog {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: min(960px, 100%);
  max-height: min(85vh, 720px);
  border-radius: var(--radius-md);
  overflow: hidden;
  background: #fff;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.35);
}
.about-map-modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 18px;
  background: var(--color-dark);
  color: #fff;
}
.about-map-modal__title {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
  font-family: var(--font-heading);
  line-height: 1.35;
}
.about-map-modal__close {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  padding: 0;
  border: none;
  border-radius: var(--radius-sm);
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  transition: background var(--transition);
}
.about-map-modal__close:hover {
  background: rgba(255, 255, 255, 0.22);
}
.about-map-modal__body {
  flex: 1 1 auto;
  min-height: 320px;
  background: #e8ecf2;
}
.about-map-modal__frame {
  width: 100%;
  height: min(70vh, 620px);
  min-height: 320px;
  border: 0;
  display: block;
}
body.about-map-modal-open { overflow: hidden; }
.about-contact-card__content p {
  margin: 0 0 12px;
}
.about-contact-card__content p:last-child {
  margin-bottom: 0;
}
.about-contact-list {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  width: 100%;
}
.about-contact-item {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 6px 10px;
  margin: 0;
  text-align: left;
  width: 100%;
}
.about-contact-label {
  font-weight: 700;
  color: var(--color-text);
}
.about-contact-value {
  color: var(--color-text);
}
.about-contact-copy {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  border: none;
  border-radius: var(--radius-sm);
  background: rgba(7, 19, 43, 0.08);
  color: var(--color-text);
  cursor: pointer;
  flex-shrink: 0;
  transition: background var(--transition), color var(--transition), transform var(--transition);
}
.about-contact-copy svg {
  display: block;
}
.about-contact-copy:hover {
  background: var(--color-accent);
  color: #fff;
  transform: scale(1.06);
}
.about-contact-copy.is-copied {
  background: #2e7d32;
  color: #fff;
}
.staff-list-wrap {
  max-width: var(--content-max);
  width: 100%;
  margin: 0 auto;
  padding-bottom: 60px;
}
.grid-col-full { grid-column: 1 / -1; }
.article-content { font-size: 1rem; line-height: 1.75; }
.article-content img { max-width: 100%; height: auto; border-radius: var(--radius-sm); }
.img-responsive { width: 100%; border-radius: 8px; margin-bottom: 20px; }
.player-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #111;
  color: rgba(255, 255, 255, 0.4);
  aspect-ratio: 16 / 9;
}
.card-heading { font-size: 1.2rem; margin-bottom: 16px; }
.card-heading--sm { font-size: 1.1rem; }
.contact-line { margin-bottom: 8px; }
.text-center { text-align: center; }
.text-muted { color: var(--color-text-muted); }
.form-success--error { background: #ffebee; color: #c62828; display: none; }
.social-row { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; }
.social-link--lg { width: 48px; height: 48px; background: var(--color-dark); }
.tv-empty { padding: 24px; }
.tv-detail-badge {
  display: inline-block;
  margin-bottom: 12px;
  align-self: flex-start;
  width: fit-content;
  color: #fff;
}
.tv-detail-title { font-size: 1.2rem; margin-bottom: 8px; }
.tv-detail-meta { font-size: 0.85rem; color: var(--color-text-muted); margin-bottom: 12px; }
.tv-detail-censure {
  background: var(--color-accent);
  color: #fff;
  padding: 1px 6px;
  border-radius: 4px;
  font-size: 0.72rem;
}
.tv-detail-desc { font-size: 0.88rem; line-height: 1.6; color: var(--color-text-muted); }
.search-empty { padding: 32px; }
.section-pad-bottom { padding-bottom: 60px; }
.article-header-toolbar { align-items: flex-start; }
h1.section-label:not(.program-tag-page-h1) { margin: 0; text-align: center; justify-content: center; }
.article-card--body {
  display: flex;
  flex-direction: column;
}
.article-card__layout::after {
  content: '';
  display: table;
  clear: both;
}
.article-card__image {
  float: right;
  width: min(38%, 320px);
  max-width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: var(--radius-md);
  margin: 4px 4px 20px 28px;
}
.article-card--body .article-content {
  font-size: 1rem;
  line-height: 1.75;
}
.article-card--body .article-content img {
  max-width: 100%;
  height: auto;
  border-radius: var(--radius-sm);
}
.program-sidebar-empty { font-size: 0.85rem; }
.post-title { margin-bottom: 16px; }
.post-meta { color: var(--color-text-muted); font-size: 0.85rem; margin-bottom: 20px; }
.section-gap--top { margin-top: 32px; }
.header-search-wrap { position: relative; }
.swiper--relative { position: relative; }
.section-gap--bottom { padding-bottom: clamp(32px, 6vh, 64px); }
.btn--block { width: 100%; }
.btn--block-lg { width: 100%; font-size: 1rem; padding: 14px; }
.search-query em { font-style: normal; color: var(--color-accent); }

/* Грид статей 1+2 / 3+1 */
.articles-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  grid-auto-flow: row dense;
  gap: 16px;
  align-items: stretch;
}
.articles-grid > .card { display: flex; flex-direction: column; }
.articles-grid > .card:nth-child(7n+1) { grid-column: 1 / 3; grid-row: span 2; }
.articles-grid > .card:nth-child(7n+2) { grid-column: 3 / 6; }
.articles-grid > .card:nth-child(7n+3) { grid-column: 3 / 6; }
.articles-grid > .card:nth-child(7n+4) { grid-column: 4 / 6; grid-row: span 3; }
.articles-grid > .card:nth-child(7n+5) { grid-column: 1 / 4; }
.articles-grid > .card:nth-child(7n+6) { grid-column: 1 / 4; }
.articles-grid > .card:nth-child(7n+7) { grid-column: 1 / 4; }
.articles-grid > .card:nth-child(7n+1) .card__image {
  aspect-ratio: auto;
  flex: 1 1 auto;
  min-height: 220px;
}
.articles-grid > .card:nth-child(7n+4) .card__image {
  aspect-ratio: 16 / 9;
  flex: 0 0 auto;
  min-height: 0;
}
.articles-grid > .card:nth-child(7n+3) .card__image,
.articles-grid > .card:nth-child(7n+5) .card__image,
.articles-grid > .card:nth-child(7n+6) .card__image,
.articles-grid > .card:nth-child(7n+7) .card__image { display: none; }

/* Блок «Вам будет интересно» — 6 карточек (1+2 / 2+1) */
.articles-grid--related {
  grid-auto-flow: row;
}
.articles-grid--related .articles-mosaic__block {
  display: contents;
}
.articles-grid--related .articles-mosaic__block > .card {
  display: flex;
  flex-direction: column;
}
.articles-grid--related .articles-mosaic__block > .card:nth-child(1) {
  grid-column: 1 / 3;
  grid-row: span 2;
}
.articles-grid--related .articles-mosaic__block > .card:nth-child(2) {
  grid-column: 3 / 6;
  grid-row: 1;
}
.articles-grid--related .articles-mosaic__block > .card:nth-child(3) {
  grid-column: 3 / 6;
  grid-row: 2;
}
.articles-grid--related .articles-mosaic__block > .card:nth-child(4) {
  grid-column: 4 / 6;
  grid-row: span 3;
}
.articles-grid--related .articles-mosaic__block > .card:nth-child(5) {
  grid-column: 1 / 4;
  grid-row: auto;
}
.articles-grid--related .articles-mosaic__block > .card:nth-child(6) {
  grid-column: 1 / 4;
  grid-row: auto;
}
.articles-grid--related .articles-mosaic__block > .card:nth-child(1) .card__image {
  aspect-ratio: auto;
  flex: 1 1 auto;
  min-height: 220px;
}
.articles-grid--related .articles-mosaic__block > .card:nth-child(4) .card__image {
  aspect-ratio: 16 / 9;
  flex: 0 0 auto;
  min-height: 0;
}
.articles-grid--related .articles-mosaic__block > .card:nth-child(3) .card__image,
.articles-grid--related .articles-mosaic__block > .card:nth-child(5) .card__image,
.articles-grid--related .articles-mosaic__block > .card:nth-child(6) .card__image {
  display: none;
}

.articles-grid .card__body {
  display: flex;
  flex-direction: column;
  flex: 1;
}

.articles-toolbar {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 12px 20px;
}
.articles-toolbar .sort-bar {
  margin-bottom: 0;
}
.articles-toolbar__sort {
  justify-content: flex-start;
  margin-left: 8px;
}
.articles-toolbar__tags {
  justify-content: flex-end;
  margin-left: auto;
  margin-right: 8px;
}

/* ============================================================
   24. АДАПТИВ (финальные правки)
   ============================================================ */
@media (min-width: 780px) {
  .mobile-menu {
    display: none !important;
  }

  .page-programs .hero > .container {
    display: flex;
    flex-direction: column;
  }

  .programs-mobile-toolbar {
    display: none !important;
  }

  .home-fresh-mobile {
    display: none !important;
  }

  .programs-desktop-search {
    display: block;
  }

  .page-programs .projects-scrollbar {
    order: 1;
  }

  .page-programs .programs-desktop-search.section-search--programs {
    order: 2;
    max-width: calc(132px * 4 + 16px * 3);
    width: 100%;
  }

  .page-programs .programs-fresh-header {
    order: 3;
  }

  .page-programs .hero > .container:not(:has(.program-page-top)) > .section-gap:has(.cards-grid) {
    order: 4;
  }

  .page-programs .hero > .container:not(:has(.program-page-top)) > .section-gap.section-center {
    order: 5;
  }

  /* Страница выпуска — «Свежие выпуски» над карточками */
  .page-programs .hero > .container:has(.program-page-top) > .section-gap.section-center:has(.section-label) {
    order: 5;
    margin-top: clamp(24px, 4vh, 48px);
    margin-bottom: 0;
    padding-bottom: 40px;
  }

  .page-programs .hero > .container:has(.program-page-top) > .section-gap:has([data-programs-container]) {
    order: 6;
    margin-top: 0;
  }

  .page-programs .hero > .container:has(.program-page-top) > .section-gap.section-center:has([data-show-more]) {
    order: 7;
  }

  /* «Вам будет интересно» — планшет/десктоп: только 3 карточки (1+2) */
  @media (min-height: 780px) {
    .articles-grid--related .articles-mosaic__block > .card:nth-child(n + 4) {
      display: none !important;
    }
  }

  /* Главная — кнопка «Статьи» по центру между двумя секциями карточек */
  .page-index .home-articles-link {
    margin-top: clamp(24px, 4vh, 48px);
    padding-bottom: clamp(24px, 4vh, 48px);
  }

  .page-index .home-articles-link + .home-articles-desktop {
    margin-top: 0;
  }
}

@media (max-width: 779px) {
  :root {
    --side-padding: 16px;
    --mobile-bar-float: 0px;
    --mobile-bar-height: 46px;
    --mobile-bar-live-overhang: 0px;
    --mobile-safe-bottom: constant(safe-area-inset-bottom);
    --mobile-safe-bottom: env(safe-area-inset-bottom, 0px);
    --mobile-bar-clearance: calc(var(--mobile-bar-height) + var(--mobile-safe-bottom));
    --mobile-bar-bg: rgba(25, 92, 174, 0.45);
    --mobile-bar-border: rgba(255, 255, 255, 0.12);
  }

  html,
  body,
  a,
  button,
  input,
  textarea,
  select,
  label,
  summary,
  [role="button"],
  .card {
    -webkit-tap-highlight-color: transparent;
    tap-highlight-color: transparent;
  }

  :focus:not(:focus-visible) {
    outline: none !important;
    box-shadow: none;
  }

  a:focus,
  button:focus,
  input:focus,
  textarea:focus,
  select:focus,
  [tabindex]:focus {
    outline: none;
  }

  .site-header { display: none !important; visibility: hidden !important; pointer-events: none !important; }
  .mobile-top { display: flex; }

  .btn--show-more {
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
  }

  .btn.btn--show-more:hover,
  .btn.btn--show-more:active,
  .btn.btn--show-more:focus,
  .btn.btn--show-more:focus-visible {
    background: var(--btn-show-more-bg, var(--color-accent));
    color: var(--btn-show-more-text, #fff);
    transform: none;
    box-shadow: none;
  }

  .btn--show-more--loading {
    pointer-events: none;
  }

  .btn-back-top,
  .page-about .contact-form .btn.btn--primary,
  .page-about .about-social-card__links .social-link,
  .page-about .about-contact-copy {
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
  }

  .btn-back-top:hover,
  .btn-back-top:active,
  .btn-back-top:focus,
  .btn-back-top:focus-visible {
    background: transparent;
    border-color: var(--color-accent);
    color: var(--color-accent);
    transform: none;
    box-shadow: none;
  }

  .page-about .contact-form .btn.btn--primary:hover,
  .page-about .contact-form .btn.btn--primary:active,
  .page-about .contact-form .btn.btn--primary:focus,
  .page-about .contact-form .btn.btn--primary:focus-visible {
    background: var(--color-accent);
    color: #fff;
    transform: none;
    box-shadow: none;
  }

  .page-about .about-social-card__links .social-link:hover,
  .page-about .about-social-card__links .social-link:active,
  .page-about .about-social-card__links .social-link:focus,
  .page-about .about-social-card__links .social-link:focus-visible {
    background: var(--color-dark);
    transform: none;
  }

  .page-about .about-contact-copy:hover,
  .page-about .about-contact-copy:active,
  .page-about .about-contact-copy:focus,
  .page-about .about-contact-copy:focus-visible {
    background: rgba(7, 19, 43, 0.08);
    color: var(--color-text);
    transform: none;
  }

  .page-about .about-contact-copy.is-copied:hover,
  .page-about .about-contact-copy.is-copied:active,
  .page-about .about-contact-copy.is-copied:focus,
  .page-about .about-contact-copy.is-copied:focus-visible {
    background: #2e7d32;
    color: #fff;
    transform: none;
  }
  .mobile-bottom-bar {
    display: flex;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    max-width: none;
    margin-inline: 0;
    transform: none;
    padding-bottom: var(--mobile-safe-bottom);
    box-sizing: border-box;
    overflow: visible;
    background: transparent;
    border: none;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .mobile-bottom-bar.is-search-open {
    width: 100%;
    max-width: none;
    left: 0;
    right: 0;
    margin-inline: 0;
  }

  .mobile-bottom-bar__ledge {
    isolation: isolate;
    position: relative;
    width: 100%;
    min-height: var(--mobile-bar-height);
    padding-bottom: 0;
    overflow: visible;
    transition: padding 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  }

  .mobile-bottom-bar__ledge::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: calc(-1 * var(--mobile-safe-bottom));
    border-radius: var(--radius-md) var(--radius-md) 0 0;
    background: var(--mobile-bar-bg);
    border: none;
    border-top: 1px solid var(--mobile-bar-border);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    box-shadow: 0 -2px 18px rgba(7, 19, 43, 0.12);
    z-index: 0;
    transition: background 0.3s ease, box-shadow 0.3s ease;
  }

  .mobile-bottom-bar.is-menu-open .mobile-bottom-bar__ledge::before,
  .mobile-bottom-bar.is-search-open .mobile-bottom-bar__ledge::before {
    background: rgba(25, 92, 174, 0.58);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-top-color: rgba(255, 255, 255, 0.12);
    box-shadow: 0 -4px 22px rgba(7, 19, 43, 0.16);
  }

  .mobile-bottom-bar.is-search-open .mobile-bottom-bar__ledge {
    min-height: auto;
    padding: 10px 10px 22px;
    box-sizing: border-box;
    overflow: visible;
  }

  .mobile-bottom-bar.is-search-open .mobile-bottom-bar__search {
    position: relative;
    padding: 0 4px 6px;
  }

  .mobile-bottom-bar.is-search-open .mobile-bottom-bar__search-field::after {
    left: 0;
    top: 0;
    bottom: 0;
    right: calc(40px + 8px);
    border-radius: var(--radius-md);
  }

  .mobile-bottom-bar.is-search-open .mobile-bottom-bar__search-input {
    padding: 11px 16px;
    font-size: 16px;
  }

  .mobile-bottom-bar.is-search-open .mobile-bottom-bar__search-close {
    border-color: rgba(255, 255, 255, 0.16);
    background: rgba(7, 19, 43, 0.28);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
  }

  .mobile-bottom-bar__nav,
  .mobile-bottom-bar__search,
  .mobile-bottom-bar .mobile-menu {
    position: relative;
    z-index: 2;
  }

  .mobile-bottom-bar__nav {
    align-items: center;
    justify-content: space-between;
    gap: 2px;
    min-height: var(--mobile-bar-height);
    margin-top: 0;
    padding: 4px 6px;
    z-index: 2;
  }

  .mobile-bottom-bar.is-search-open {
    z-index: 1065;
  }

  .mobile-bottom-bar__label {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 0;
    margin: 0;
    font-size: 0.54rem;
    font-weight: 800;
    letter-spacing: 0.01em;
    line-height: 1.05;
    white-space: normal;
    opacity: 1;
    text-align: left;
  }

  .mobile-bottom-bar__label-line {
    display: block;
  }

  .mobile-bottom-bar__btn {
    flex: 1 1 0;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-height: calc(var(--mobile-bar-height) - 8px);
    min-width: 0;
    padding: 4px 3px;
    border: none;
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    color: #fff;
  }

  .mobile-bottom-bar__btn svg {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    fill: currentColor;
  }

  .mobile-bottom-bar__btn--menu svg {
    width: 24px;
    height: auto;
  }

  .mobile-bottom-bar__btn--search .mobile-bottom-bar__label,
  .mobile-bottom-bar__btn--menu .mobile-bottom-bar__label {
    display: none !important;
  }

  .mobile-bottom-bar__btn--search,
  .mobile-bottom-bar__btn--menu {
    flex: 0.85;
    justify-content: center;
    padding: 4px 6px;
  }

  .mobile-bottom-bar__btn--live {
    flex: 1.05;
    margin-top: 0;
    padding-bottom: 0;
    gap: 4px;
  }

  .mobile-bottom-bar__btn--live .mobile-bottom-bar__live-icon {
    width: 34px;
    height: 34px;
    box-shadow: 0 3px 14px rgba(232, 69, 123, 0.38);
  }

  .mobile-bottom-bar__btn--live .mobile-bottom-bar__live-icon svg {
    width: 15px;
    height: 15px;
  }

  .mobile-bottom-bar__btn--live .mobile-bottom-bar__label {
    text-shadow: none;
  }

  .mobile-bottom-bar__btn--search:active,
  .mobile-bottom-bar__btn--search[aria-expanded="true"],
  .mobile-bottom-bar__btn--menu:active,
  .mobile-bottom-bar__btn--menu[aria-expanded="true"] {
    background: rgba(255, 255, 255, 0.12);
    border-radius: var(--radius-sm);
  }

  .mobile-bottom-bar__btn--live:active,
  .mobile-bottom-bar__btn--live[aria-expanded="true"] {
    background: transparent;
  }

  .mobile-bottom-bar .mobile-menu {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    display: block;
    width: 100%;
    height: auto !important;
    max-height: none !important;
    margin: 0;
    padding: 0;
    background: transparent !important;
    border: none;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    transform: none !important;
    overflow: visible;
    opacity: 1;
    visibility: visible;
    pointer-events: none;
    z-index: 3;
  }

  .mobile-bottom-bar .mobile-menu.open {
    pointer-events: auto;
    padding: 0;
  }

  .mobile-bottom-bar .mobile-menu__expand {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.38s cubic-bezier(0.4, 0, 0.2, 1);
  }

  .mobile-bottom-bar .mobile-menu.open .mobile-menu__expand {
    grid-template-rows: 1fr;
  }

  .mobile-bottom-bar .mobile-menu__expand > .mobile-menu__grid {
    min-height: 0;
    overflow: hidden;
  }

  .mobile-bottom-bar .mobile-menu.open .mobile-menu__expand > .mobile-menu__grid {
    overflow: visible;
    padding: 10px 14px 8px;
    background: transparent;
    border: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .mobile-bottom-bar.is-menu-open .mobile-bottom-bar__btn--live .mobile-bottom-bar__label {
    display: flex !important;
    opacity: 1 !important;
    visibility: visible !important;
  }

  .mobile-bottom-bar.is-menu-open .mobile-bottom-bar__ledge {
    padding-top: 0;
  }

  .mobile-menu__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2px 18px;
  }

  .mobile-menu__col {
    display: flex;
    flex-direction: column;
    min-width: 0;
  }

  .mobile-menu__link {
    display: block;
    font-size: 0.95rem;
    font-weight: 800;
    padding: 11px 0;
    line-height: 1.25;
    color: #fff !important;
    opacity: 1 !important;
    visibility: visible !important;
    text-shadow: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.16);
  }

  .mobile-menu__link.active {
    color: var(--color-accent) !important;
    text-shadow: none;
  }

  .mobile-menu__col .mobile-menu__link:last-child {
    border-bottom: none;
  }

  .mobile-bottom-bar.is-search-open .mobile-menu {
    pointer-events: none !important;
  }

  .mobile-bottom-bar.is-search-open .mobile-menu__expand {
    grid-template-rows: 0fr !important;
  }

  .mobile-bottom-bar.is-search-open .mobile-menu.open .mobile-menu__expand > .mobile-menu__grid {
    padding: 0 14px !important;
  }

  body {
    padding-bottom: 0;
  }

  .site-footer {
    padding-bottom: var(--mobile-bar-clearance);
  }

  .page-content {
    padding-top: 0;
  }

  .live-widget-toggle {
    display: none !important;
  }

  .live-widget {
    display: none !important;
    visibility: hidden !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
    pointer-events: none !important;
  }

  .btn-back-top {
    bottom: calc(var(--mobile-bar-clearance) + 12px);
    border-color: var(--color-accent);
    color: var(--color-accent);
  }

  .home-articles-desktop {
    display: none !important;
  }

  .home-articles-mobile,
  .home-fresh-mobile {
    display: block;
  }

  .home-fresh-desktop {
    display: none !important;
  }

  .site-footer__block--hide-phone {
    display: none !important;
  }

  .site-footer__email-copy--desktop {
    display: none !important;
  }

  .site-footer__email-text--phone {
    display: inline;
  }

  .livebar__btn--up,
  .livebar__btn--down {
    display: none !important;
  }

  .projects-scrollbar {
    display: none !important;
  }

  .programs-mobile-cats {
    display: block;
  }

  .page-programs .hero > .container {
    padding-top: 0;
    display: flex;
    flex-direction: column;
  }

  .page-programs .mobile-top {
    display: none !important;
  }

  .page-programs .hero {
    padding-top: 0;
  }

  .page-programs .programs-mobile-toolbar {
    position: sticky;
    top: 0;
    z-index: 1020;
    order: 1;
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding: 0 0 6px;
    background: linear-gradient(180deg, var(--mobile-programs-toolbar-bg) 0%, transparent 100%);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
  }

  .page-programs .programs-mobile-toolbar .section-search.section-gap {
    margin-top: 0 !important;
  }

  .page-programs .programs-mobile-toolbar .section-search--programs {
    margin-top: 0;
    margin-bottom: 0;
    max-width: none;
    width: 100%;
    padding: 0;
  }

  .page-programs .programs-mobile-toolbar .section-search__field {
    border-radius: 0 0 10px 10px;
    position: relative;
    isolation: isolate;
  }

  .page-programs .programs-mobile-toolbar .section-search__field::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    border: 2px solid transparent;
    pointer-events: none;
    transition: border-color var(--transition);
    z-index: 1;
  }

  .page-programs .programs-mobile-toolbar .section-search__field:focus-within::after {
    border-color: var(--mobile-programs-search-focus);
  }

  .page-programs .programs-mobile-toolbar .section-search__input {
    position: relative;
    z-index: 0;
    border-radius: 0 0 10px 10px;
    border: none;
    background: var(--mobile-programs-search-bg);
    color: var(--mobile-programs-search-text);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    padding: calc(9px + env(safe-area-inset-top, 0px)) calc(var(--side-padding) + 44px) 9px var(--side-padding);
    box-shadow: none;
  }

  .page-programs .programs-mobile-toolbar .section-search__input:focus,
  .page-programs .programs-mobile-toolbar .section-search__input:focus-visible {
    outline: none;
    box-shadow: none;
    border: none;
  }

  .page-programs .programs-mobile-toolbar .section-search__input::placeholder {
    color: color-mix(in srgb, var(--mobile-programs-search-text) 65%, transparent);
  }

  .page-programs .programs-mobile-toolbar .section-search__icon {
    z-index: 0;
    right: calc(var(--side-padding) + 14px);
    top: calc(50% + env(safe-area-inset-top, 0px) * 0.5);
  }

  .page-programs .programs-mobile-toolbar .programs-mobile-cats {
    width: 100%;
    margin: 0;
  }

  .page-programs .programs-mobile-toolbar .programs-mobile-cats__toggle {
    border-radius: 0 0 var(--radius-md) var(--radius-md);
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    background: var(--mobile-programs-toggle-bg);
    border-color: rgba(255, 255, 255, 0.12);
    color: var(--mobile-programs-toggle-text);
    margin-top: 0;
    padding: 8px 12px;
    font-size: 0.78rem;
    gap: 6px;
  }

  .page-programs .programs-mobile-toolbar .programs-mobile-cats__chevron {
    width: 14px;
    height: 14px;
  }

  .page-programs .hero > .container > .breadcrumbs {
    order: 2;
    margin-bottom: 0;
  }

  .page-programs .hero > .container > .section-gap:has(.cards-grid) {
    order: 4;
  }

  .page-programs .hero > .container > .section-gap.section-center {
    order: 5;
  }

  .page-programs .programs-desktop-search {
    display: none !important;
  }

  .page-programs .programs-mobile-toolbar .programs-mobile-cats__toggle:focus,
  .page-programs .programs-mobile-toolbar .programs-mobile-cats__toggle:focus-visible {
    outline: none;
    box-shadow: none;
  }

  .page-programs .programs-mobile-toolbar .programs-mobile-cats__toggle[aria-expanded="true"]:focus,
  .page-programs .programs-mobile-toolbar .programs-mobile-cats__toggle[aria-expanded="true"]:focus-visible {
    box-shadow: inset 0 0 0 2px var(--color-accent);
  }

  .page-programs .programs-mobile-toolbar .programs-mobile-cats__toggle[aria-expanded="true"] {
    border-radius: 0 0 var(--radius-md) var(--radius-md);
  }

  .page-programs .programs-mobile-toolbar .programs-mobile-cats__panel:not([hidden]) + .programs-mobile-cats__toggle {
    border-radius: 0 0 var(--radius-md) var(--radius-md);
    border-top: none;
  }

  .page-programs .programs-mobile-toolbar .programs-mobile-cats__pills {
    border-radius: 0;
    border-top: none;
    background: var(--mobile-programs-cats-panel-bg);
    border-color: var(--mobile-programs-cats-panel-border);
  }

  .page-programs .programs-fresh-header {
    order: 3;
    align-items: center;
  }

  .page-programs .programs-fresh-header__title .section-label {
    justify-content: center;
    text-align: center;
    white-space: normal;
    max-width: 100%;
  }

  .page-programs .programs-fresh-header__sort.sort-bar {
    justify-content: center;
    margin-left: 0;
    width: 100%;
  }

  .page-programs .hero > .container:has(.program-page-top) {
    display: flex;
    flex-direction: column;
    padding-top: 0;
  }

  .page-programs .hero:has(.program-page-top) {
    padding-top: 0;
  }

  .page-programs .hero > .container:has(.program-page-top) > .programs-mobile-toolbar {
    margin-top: 0;
  }

  .page-programs .hero > .container:has(.program-page-top) > .breadcrumbs {
    order: 2;
    margin-bottom: 0;
  }

  .page-programs .hero > .container:has(.program-page-top) .program-page-top {
    order: 3;
    margin-top: 8px;
    gap: 0;
    grid-template-columns: 1fr;
    justify-items: center;
  }

  .page-programs .hero > .container:has(.program-page-top) .program-player-wrap {
    width: 100%;
    max-width: 100%;
    margin-inline: auto;
  }

  .page-programs .hero > .container:has(.program-page-top) .program-sidebar {
    display: none !important;
  }

  .page-programs .hero > .container:has(.program-page-top) .program-info-card {
    order: 4;
    margin-top: 16px;
  }

  .page-programs .hero > .container:has(.program-page-top) > .section-gap.section-center:has(.section-label) {
    order: 5;
    margin-top: 20px !important;
    margin-bottom: 0;
    padding-bottom: 0;
  }

  .page-programs .hero > .container:has(.program-page-top) > .section-gap:has([data-programs-container]) {
    order: 6;
    margin-top: 20px !important;
    padding-top: 0;
  }

  .page-programs .hero > .container:has(.program-page-top) > .section-gap.section-center:has([data-show-more]) {
    order: 7;
  }

  .page-programs .cards-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .page-programs .cards-grid .card__image {
    aspect-ratio: 16 / 9;
  }

  .page-tvprogram .mobile-top {
    display: none !important;
  }

  .page-tvprogram .hero {
    padding-top: 0;
    padding-bottom: 0;
    overflow: visible;
  }

  .page-tvprogram .site-footer {
    margin-top: 0;
  }

  .page-tvprogram .hero > .container {
    padding-left: 0;
    padding-right: 0;
    max-width: 100%;
    overflow: visible;
  }

  .page-tvprogram .tv-days-holder {
    height: var(--tv-days-bar-height, 50px);
  }

  .page-tvprogram .tv-days {
    position: fixed;
    top: env(safe-area-inset-top, 0px);
    left: 0;
    right: 0;
    z-index: 1030;
    display: flex;
    flex-wrap: nowrap;
    gap: 4px;
    padding: 8px 6px 10px;
    margin: 0;
    overflow: visible;
    scroll-snap-type: none;
    justify-content: stretch;
    background: rgba(25, 92, 174, 0.55);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-top: none;
    border-radius: 0 0 var(--radius-lg) var(--radius-lg);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.08);
  }

  .page-tvprogram .tv-days::-webkit-scrollbar {
    display: none;
  }

  .page-tvprogram .tv-day-btn {
    flex: 1 1 0;
    min-width: 0;
    width: auto;
    padding: 5px 2px;
    scroll-snap-align: unset;
    background: transparent;
    border-color: transparent;
    color: #fff;
  }

  .page-tvprogram .tv-day-btn__day {
    font-size: 0.62rem;
    line-height: 1.1;
    opacity: 0.9;
  }

  .page-tvprogram .tv-day-btn__date--mob {
    display: block;
    font-size: 0.72rem;
    line-height: 1.15;
  }

  .page-tvprogram .tv-day-btn:not(.active) .tv-day-btn__day,
  .page-tvprogram .tv-day-btn:not(.active) .tv-day-btn__date {
    color: #fff;
    opacity: 0.92;
  }

  .page-tvprogram .tv-day-btn.active {
    background: #fff;
    border-color: #fff;
    color: var(--color-accent);
    transform: none;
  }

  .page-tvprogram .tv-day-btn.active .tv-day-btn__day,
  .page-tvprogram .tv-day-btn.active .tv-day-btn__date {
    color: var(--color-accent);
    opacity: 1;
  }

  .page-tvprogram .tv-day-btn__date--desk {
    display: none;
  }

  .page-tvprogram .tv-day-btn:nth-child(6),
  .page-tvprogram .tv-day-btn:nth-child(7) {
    grid-column: auto;
    grid-row: auto;
  }

  .page-tvprogram .tv-program-wrap {
    margin-top: 8px;
    margin-bottom: 0;
    padding: 0;
    width: 100%;
    max-width: none;
  }

  .page-tvprogram .tv-schedule {
    border-radius: var(--radius-md);
    overflow: hidden;
    background: rgba(255, 255, 255, 0.94);
  }

  .page-tvprogram .tv-program-wrap .tv-schedule {
    max-width: none;
  }

  .page-tvprogram .tv-schedule__scroll {
    height: auto !important;
    max-height: none !important;
    scroll-snap-type: none;
    overflow-y: visible;
  }

  .page-tvprogram .tv-row {
    min-height: 0;
    padding: 12px 14px;
    gap: 12px;
    border-bottom-color: rgba(7, 19, 43, 0.08);
    scroll-snap-align: unset;
    scroll-snap-stop: normal;
  }

  .page-tvprogram .tv-schedule__scroll > .tv-row:first-child {
    border-top-left-radius: var(--radius-md);
    border-top-right-radius: var(--radius-md);
  }

  .page-tvprogram .tv-schedule__scroll > .tv-row:nth-last-child(2),
  .page-tvprogram .tv-schedule__scroll > .tv-row:last-child {
    border-bottom-left-radius: var(--radius-md);
    border-bottom-right-radius: var(--radius-md);
  }

  .page-tvprogram .tv-schedule__scroll > .tv-row:has(+ .tv-row__detail.open) {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
  }

  .page-tvprogram .tv-schedule__scroll > .tv-row:nth-last-child(2):has(+ .tv-row__detail:last-child.open) {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
  }

  .page-tvprogram .tv-schedule__scroll > .tv-empty:only-child {
    border-radius: var(--radius-md);
  }

  .page-tvprogram .tv-row__time {
    width: 46px;
    font-size: 0.88rem;
    color: var(--mobile-tv-time-color);
  }

  .page-tvprogram .tv-row__title {
    font-size: 0.9rem;
    color: var(--mobile-tv-title-color);
    font-weight: 600;
  }

  .page-tvprogram .tv-row.past .tv-row__time,
  .page-tvprogram .tv-row.past .tv-row__title {
    color: var(--mobile-tv-past-color);
  }

  .page-tvprogram .tv-row.past .tv-row__censure {
    opacity: 0.45;
  }

  .page-tvprogram .tv-row.now {
    background: var(--tv-now-bg);
  }

  .page-tvprogram .tv-row.now .tv-row__time {
    color: var(--mobile-tv-now-time);
  }

  .page-tvprogram .tv-row.now .tv-row__title {
    color: var(--mobile-tv-now-title);
  }

  .page-tvprogram .tv-row__meta {
    display: none;
  }

  .page-tvprogram .tv-row__censure {
    color: var(--mobile-tv-censure-text);
    background: var(--mobile-tv-censure-bg);
  }

  .page-tvprogram .tv-row.now .tv-row__censure {
    color: var(--mobile-tv-now-censure-text);
    background: var(--mobile-tv-now-censure-bg);
  }

  .page-tvprogram .tv-row__detail {
    padding: 0;
    border-bottom: none;
  }

  .page-tvprogram .tv-row__detail.open {
    padding: 0 12px 10px;
  }

  .page-tvprogram .tv-row__detail-inner {
    padding: 0;
  }

  .page-tvprogram .tv-row__detail-card {
    background: transparent;
    box-shadow: none;
    margin-top: 0;
    padding: 0;
  }

  .page-tvprogram .tv-row__detail.open .tv-row__detail-card {
    background: #fff;
    color: var(--color-text);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-card);
    border: none;
    margin-top: 0;
    padding: 16px 18px;
  }

  .page-tvprogram .tv-row__detail-title {
    color: var(--color-text);
    font-size: 1.05rem;
    margin: 0;
  }

  .page-tvprogram .tv-row__detail-desc {
    color: var(--color-text-muted);
  }

  .page-tvprogram .tv-row__detail-meta {
    color: var(--color-text-muted);
  }

  .page-tvprogram .tv-row__detail-tags .tv-row__badge {
    background: var(--mobile-tv-detail-badge-bg);
    color: var(--mobile-tv-detail-badge-text);
  }

  .page-tvprogram .tv-scroll-controls {
    display: none !important;
  }

  /* Главная — mobile: лайфбар → «Свежие выпуски» → карточки → плеер */
  .page-index .page-content {
    display: flex;
    flex-direction: column;
  }

  .page-index .home-hero,
  .page-index .home-hero > .container,
  .page-index .home-hero__inner {
    display: contents;
  }

  .page-index .home-hero__inner {
    min-height: 0;
  }

  .page-index .livebar {
    order: 2;
    width: 100%;
    height: auto !important;
    min-height: 0;
    gap: 0;
    padding: 0 12px;
    box-sizing: border-box;
    justify-content: flex-start;
    --livebar-total-h: auto;
    --livebar-viewport-h: auto;
  }

  .page-index .home-fresh-link {
    order: 3;
    margin-top: 20px !important;
    margin-bottom: 0;
    padding-bottom: 0;
  }

  .page-index .home-fresh-mobile {
    order: 4;
    margin-top: 20px !important;
    padding-top: 0;
  }

  .page-index .home-fresh-desktop {
    display: none !important;
  }

  .page-index .home-hero__player {
    order: 1;
    width: 100%;
    margin-top: 0;
    padding-top: clamp(12px, 2vh, 20px) !important;
  }

  .page-index .home-articles-link {
    order: 5;
    margin-top: 20px !important;
    margin-bottom: 0;
    padding-bottom: 0;
  }

  .page-index .home-fresh-link__title,
  .page-index .home-articles-link__title {
    -webkit-tap-highlight-color: transparent !important;
  }

  .page-index .home-fresh-link__title a,
  .page-index .home-articles-link__title a {
    color: #fff !important;
    -webkit-text-fill-color: #fff;
    user-select: none;
    -webkit-user-select: none;
    -webkit-touch-callout: none;
  }

  .page-index .home-fresh-link__title a:hover,
  .page-index .home-fresh-link__title a:active,
  .page-index .home-fresh-link__title a:focus,
  .page-index .home-fresh-link__title a:focus-visible,
  .page-index .home-articles-link__title a:hover,
  .page-index .home-articles-link__title a:active,
  .page-index .home-articles-link__title a:focus,
  .page-index .home-articles-link__title a:focus-visible {
    color: #fff !important;
    -webkit-text-fill-color: #fff;
  }

  .page-index .home-articles-mobile {
    order: 6;
    margin-top: 20px !important;
    padding-top: 0;
  }

  .page-index .livebar > .tv-scroll-arrow {
    display: none !important;
  }

  .page-index .livebar__scroll {
    overflow: hidden;
    height: auto !important;
    max-height: none !important;
    min-height: 0;
    flex: 0 0 auto;
    padding: 0;
  }

  .page-index .livebar__wheel {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    padding: 0;
  }

  /* До первого расчёта JS не показываем всё расписание одним кадром. */
  .page-index .livebar--ssr-pending .livebar__wheel > .program-card {
    display: none;
  }

  .page-index .livebar--ssr-pending .livebar__wheel > .program-card.active,
  .page-index .livebar--ssr-pending .livebar__wheel > .program-card.active + .program-card,
  .page-index .livebar--ssr-pending .livebar__wheel:not(:has(> .program-card.active))
    > .program-card:nth-child(-n + 2) {
    display: block;
  }

  .page-index .livebar .program-card {
    width: 100%;
    min-width: 0;
    max-width: none;
    height: auto !important;
    min-height: 72px;
    max-height: none;
    padding: 10px 12px;
    opacity: 1 !important;
    transform: none !important;
    scroll-snap-align: unset;
  }

  .page-index .livebar .program-card__desc {
    display: none !important;
  }

  .page-index .livebar .program-card__title {
    font-size: 0.82rem;
    line-height: 1.25;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .page-index .livebar .program-card__head {
    margin-bottom: 4px;
  }

  .page-index .livebar .program-card__time {
    font-size: 0.75rem;
  }

  .page-index .livebar .program-card.is-livebar-hovered {
    min-height: 72px;
    transform: none !important;
  }

  .page-index .home-fresh-mobile .cards-grid,
  .page-index .home-articles-mobile .cards-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .page-index .home-fresh-mobile .section-card,
  .page-index .home-articles-mobile .section-card {
    padding-bottom: 12px;
  }

  .site-footer__side--left,
  .site-footer__side--right {
    justify-content: center;
    text-align: center;
  }

  .site-footer__socials {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-content: center;
    gap: 10px 12px;
    width: 100%;
    max-width: 100%;
    margin-inline: 0;
    padding-inline: 0;
    overflow: visible;
  }

  .site-footer__socials .social-link {
    flex: 0 0 40px;
  }

  .site-footer__socials .social-link,
  .site-footer__nav a {
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
  }

  .site-footer__socials .social-link:hover,
  .site-footer__socials .social-link:active,
  .site-footer__socials .social-link:focus,
  .site-footer__socials .social-link:focus-visible {
    background: rgba(255, 255, 255, 0.1);
    transform: none;
  }

  .site-footer__nav a:hover,
  .site-footer__nav a:active,
  .site-footer__nav a:focus,
  .site-footer__nav a:focus-visible {
    color: rgba(255, 255, 255, 0.78);
  }

  .site-footer__blocks {
    align-items: center;
  }

  .site-footer__block--contacts {
    max-width: none;
    text-align: center;
  }

  .site-footer__line {
    justify-content: center;
  }

  .site-footer__copy {
    display: none !important;
  }

  .staff-card__figure,
  .staff-card__unit {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    aspect-ratio: auto;
    height: auto;
  }

  .staff-card__cluster {
    display: contents;
    position: static;
    width: auto;
    height: auto;
    transform: none !important;
  }

  .staff-card__photo-wrap {
    position: static !important;
    order: 1;
    width: 100% !important;
    max-width: 320px;
    margin: 0 !important;
    left: auto !important;
    right: auto !important;
  }

  .staff-card__tab {
    position: static !important;
    order: 2;
    width: fit-content !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 12px 0 0 !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    align-self: center;
    padding: 10px 16px;
    min-height: calc(10px * 2 + 1.25em + 0.28em + 1.3em);
  }

  .staff-card__tab--no-job {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
  }

  .staff-card__name {
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
  }

  .staff-card__photo {
    width: 100%;
    height: auto;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: var(--radius-md);
  }

  .staff-card--col-left .staff-card__tab,
  .staff-card--col-right .staff-card__tab {
    top: auto;
    left: auto;
    right: auto;
    width: fit-content !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    --staff-tab-width: auto;
  }

  .staff-card--col-left .staff-card__photo-wrap,
  .staff-card--col-right .staff-card__photo-wrap {
    left: auto;
    right: auto;
    margin-left: 0;
    margin-right: 0;
  }

  .section-card { padding: 16px 12px; }
  .cards-grid   { gap: 10px; }

  .home-hero__inner { gap: 12px; }

  .projects-scrollbar > .tv-scroll-arrow { display: none; }

  .site-footer__grid { gap: 20px; }

  .slider-controls { padding: 0 2px; }
  .slider-arrow { width: 36px; height: 36px; }

  .page-tvprogram .tv-scroll-controls {
    display: none !important;
  }

  .page-articles .hero {
    padding-top: 6px;
    padding-bottom: 0;
  }

  .page-articles .page-h1-wrap.section-gap {
    margin-top: 10px;
    margin-bottom: 0;
  }

  .page-articles .page-h1.section-label--lg {
    padding: 8px 24px;
    font-size: 1.35rem;
  }

  .page-articles .articles-toolbar.section-gap {
    margin-top: 0;
    margin-bottom: 0;
  }

  .page-staff .hero {
    padding-top: 6px;
    padding-bottom: 0;
  }

  .page-staff .page-h1-wrap.section-gap {
    margin-top: 10px;
    margin-bottom: 0;
  }

  .page-staff .page-h1.section-label--lg {
    padding: 8px 24px;
    font-size: 1.35rem;
  }

  .page-staff .staff-list-wrap.section-gap {
    margin-top: 12px;
  }

  .page-articles .hero > .container > .section-gap:has(.articles-grid:not(.articles-grid--related)) {
    margin-top: 12px;
  }

  .page-articles .article-page-title {
    margin-top: 8px !important;
    margin-bottom: 0;
    padding-bottom: 0;
  }

  .page-articles .article-body-section {
    margin-top: 8px !important;
    margin-bottom: 0;
    padding-bottom: 0;
  }

  .page-articles .article-related-heading {
    margin-top: 8px !important;
    margin-bottom: 0;
    padding-bottom: 0;
  }

  .page-articles .article-related-grid,
  .page-articles .hero > .container > .section-gap:has(.articles-grid--related) {
    margin-top: 8px !important;
    padding-top: 0;
  }

  .page-articles .articles-toolbar {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
  }

  .page-articles .articles-toolbar__tags {
    order: -1;
    justify-content: center;
    margin: 0;
    width: 100%;
  }

  .page-articles .articles-toolbar__sort {
    justify-content: center;
    margin: 0;
    width: 100%;
  }

  .page-articles .articles-grid--listing,
  .page-articles .articles-grid--related {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }

  .page-articles .articles-grid--listing .articles-mosaic__block {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: repeat(4, minmax(86px, auto));
    gap: 8px;
  }

  .page-articles .articles-grid--listing .articles-mosaic__block > .card:nth-child(1) {
    grid-column: 1;
    grid-row: 1 / 3;
  }

  .page-articles .articles-grid--listing .articles-mosaic__block > .card:nth-child(2) {
    grid-column: 2;
    grid-row: 1;
  }

  .page-articles .articles-grid--listing .articles-mosaic__block > .card:nth-child(3) {
    grid-column: 2;
    grid-row: 2;
  }

  .page-articles .articles-grid--listing .articles-mosaic__block > .card:nth-child(4) {
    grid-column: 1;
    grid-row: 3;
  }

  .page-articles .articles-grid--listing .articles-mosaic__block > .card:nth-child(5) {
    grid-column: 1;
    grid-row: 4;
  }

  .page-articles .articles-grid--listing .articles-mosaic__block > .card:nth-child(6) {
    grid-column: 2;
    grid-row: 3 / 5;
  }

  .page-articles .articles-grid--listing .articles-mosaic__block > .card .card__image {
    display: none !important;
  }

  .page-articles .articles-grid--listing .articles-mosaic__block > .card:nth-child(1) .card__desc,
  .page-articles .articles-grid--listing .articles-mosaic__block > .card:nth-child(6) .card__desc {
    display: flex;
    align-items: center;
    font-size: 0.78rem;
    line-height: 1.28;
    margin-top: 2px;
    color: rgba(255, 255, 255, 0.92) !important;
  }
  .page-articles .articles-grid--listing .articles-mosaic__block > .card:nth-child(1) .card__desc-text,
  .page-articles .articles-grid--listing .articles-mosaic__block > .card:nth-child(6) .card__desc-text {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    line-clamp: 3;
    overflow: hidden;
    width: 100%;
  }

  .page-articles .articles-grid--listing .articles-mosaic__block > .card:nth-child(2) .card__desc,
  .page-articles .articles-grid--listing .articles-mosaic__block > .card:nth-child(3) .card__desc,
  .page-articles .articles-grid--listing .articles-mosaic__block > .card:nth-child(4) .card__desc,
  .page-articles .articles-grid--listing .articles-mosaic__block > .card:nth-child(5) .card__desc {
    display: flex;
    align-items: center;
    font-size: 0.72rem;
    line-height: 1.28;
    margin-top: 2px;
    color: rgba(255, 255, 255, 0.92) !important;
  }
  .page-articles .articles-grid--listing .articles-mosaic__block > .card:nth-child(2) .card__desc-text,
  .page-articles .articles-grid--listing .articles-mosaic__block > .card:nth-child(3) .card__desc-text,
  .page-articles .articles-grid--listing .articles-mosaic__block > .card:nth-child(4) .card__desc-text,
  .page-articles .articles-grid--listing .articles-mosaic__block > .card:nth-child(5) .card__desc-text {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    line-clamp: 2;
    overflow: hidden;
    width: 100%;
  }

  .page-articles .articles-grid--listing .articles-mosaic__block > .card {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    border: none;
    background: transparent !important;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.16);
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    content-visibility: auto;
    contain-intrinsic-size: auto 108px;
  }

  .page-articles .articles-grid--listing .articles-mosaic__block > .card::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 0;
    background-size: 100% 100%;
    background-position: 50% 50%;
    border-radius: inherit;
  }

  .page-articles .articles-grid--listing .articles-mosaic__block > .card:nth-child(1)::before {
    background-image: linear-gradient(135deg, #ff6b9d 0%, #c850c0 45%, #4158d0 100%);
  }

  .page-articles .articles-grid--listing .articles-mosaic__block > .card:nth-child(2)::before {
    background-image: linear-gradient(135deg, #00dbde 0%, #0088ff 52%, #7f53ac 100%);
  }

  .page-articles .articles-grid--listing .articles-mosaic__block > .card:nth-child(3)::before {
    background-image: linear-gradient(135deg, #f83600 0%, #ff7a18 42%, #ffb347 100%);
  }

  .page-articles .articles-grid--listing .articles-mosaic__block > .card:nth-child(4)::before {
    background-image: linear-gradient(135deg, #7f00ff 0%, #e100ff 48%, #ff6a88 100%);
  }

  .page-articles .articles-grid--listing .articles-mosaic__block > .card:nth-child(5)::before {
    background-image: linear-gradient(135deg, #11998e 0%, #38ef7d 45%, #00c6fb 100%);
  }

  .page-articles .articles-grid--listing .articles-mosaic__block > .card:nth-child(6)::before {
    background-image: linear-gradient(135deg, #ee0979 0%, #ff6a00 50%, #ffd200 100%);
  }

  .page-articles .articles-grid--listing .articles-mosaic__block:nth-child(4n + 2) > .card:nth-child(1)::before {
    background-image: linear-gradient(135deg, #396afc 0%, #2948ff 40%, #7f53ac 100%);
  }

  .page-articles .articles-grid--listing .articles-mosaic__block:nth-child(4n + 2) > .card:nth-child(2)::before {
    background-image: linear-gradient(135deg, #fc466b 0%, #3f5efb 55%, #43e97b 100%);
  }

  .page-articles .articles-grid--listing .articles-mosaic__block:nth-child(4n + 2) > .card:nth-child(3)::before {
    background-image: linear-gradient(135deg, #ff6b9d 0%, #c850c0 45%, #4158d0 100%);
  }

  .page-articles .articles-grid--listing .articles-mosaic__block:nth-child(4n + 2) > .card:nth-child(4)::before {
    background-image: linear-gradient(135deg, #00dbde 0%, #0088ff 52%, #7f53ac 100%);
  }

  .page-articles .articles-grid--listing .articles-mosaic__block:nth-child(4n + 2) > .card:nth-child(5)::before {
    background-image: linear-gradient(135deg, #f83600 0%, #ff7a18 42%, #ffb347 100%);
  }

  .page-articles .articles-grid--listing .articles-mosaic__block:nth-child(4n + 2) > .card:nth-child(6)::before {
    background-image: linear-gradient(135deg, #7f00ff 0%, #e100ff 48%, #ff6a88 100%);
  }

  .page-articles .articles-grid--listing .articles-mosaic__block:nth-child(4n + 3) > .card:nth-child(1)::before {
    background-image: linear-gradient(135deg, #11998e 0%, #38ef7d 45%, #00c6fb 100%);
  }

  .page-articles .articles-grid--listing .articles-mosaic__block:nth-child(4n + 3) > .card:nth-child(2)::before {
    background-image: linear-gradient(135deg, #ee0979 0%, #ff6a00 50%, #ffd200 100%);
  }

  .page-articles .articles-grid--listing .articles-mosaic__block:nth-child(4n + 3) > .card:nth-child(3)::before {
    background-image: linear-gradient(135deg, #396afc 0%, #2948ff 40%, #7f53ac 100%);
  }

  .page-articles .articles-grid--listing .articles-mosaic__block:nth-child(4n + 3) > .card:nth-child(4)::before {
    background-image: linear-gradient(135deg, #fc466b 0%, #3f5efb 55%, #43e97b 100%);
  }

  .page-articles .articles-grid--listing .articles-mosaic__block:nth-child(4n + 3) > .card:nth-child(5)::before {
    background-image: linear-gradient(135deg, #ff6b9d 0%, #c850c0 45%, #4158d0 100%);
  }

  .page-articles .articles-grid--listing .articles-mosaic__block:nth-child(4n + 3) > .card:nth-child(6)::before {
    background-image: linear-gradient(135deg, #00dbde 0%, #0088ff 52%, #7f53ac 100%);
  }

  .page-articles .articles-grid--listing .articles-mosaic__block:nth-child(4n + 4) > .card:nth-child(1)::before {
    background-image: linear-gradient(135deg, #f83600 0%, #ff7a18 42%, #ffb347 100%);
  }

  .page-articles .articles-grid--listing .articles-mosaic__block:nth-child(4n + 4) > .card:nth-child(2)::before {
    background-image: linear-gradient(135deg, #7f00ff 0%, #e100ff 48%, #ff6a88 100%);
  }

  .page-articles .articles-grid--listing .articles-mosaic__block:nth-child(4n + 4) > .card:nth-child(3)::before {
    background-image: linear-gradient(135deg, #11998e 0%, #38ef7d 45%, #00c6fb 100%);
  }

  .page-articles .articles-grid--listing .articles-mosaic__block:nth-child(4n + 4) > .card:nth-child(4)::before {
    background-image: linear-gradient(135deg, #ee0979 0%, #ff6a00 50%, #ffd200 100%);
  }

  .page-articles .articles-grid--listing .articles-mosaic__block:nth-child(4n + 4) > .card:nth-child(5)::before {
    background-image: linear-gradient(135deg, #396afc 0%, #2948ff 40%, #7f53ac 100%);
  }

  .page-articles .articles-grid--listing .articles-mosaic__block:nth-child(4n + 4) > .card:nth-child(6)::before {
    background-image: linear-gradient(135deg, #fc466b 0%, #3f5efb 55%, #43e97b 100%);
  }

  .page-articles .articles-grid--listing .articles-mosaic__block > .card:nth-child(1) .card__title,
  .page-articles .articles-grid--listing .articles-mosaic__block > .card:nth-child(6) .card__title {
    display: flex;
    align-items: center;
    font-size: 0.95rem;
    min-height: 0;
    line-height: 1.22;
    color: #fff !important;
  }
  .page-articles .articles-grid--listing .articles-mosaic__block > .card:nth-child(1) .card__title-text,
  .page-articles .articles-grid--listing .articles-mosaic__block > .card:nth-child(6) .card__title-text {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    line-clamp: 4;
    overflow: hidden;
    width: 100%;
  }

  .page-articles .articles-grid--listing .articles-mosaic__block > .card:nth-child(2) .card__title,
  .page-articles .articles-grid--listing .articles-mosaic__block > .card:nth-child(3) .card__title,
  .page-articles .articles-grid--listing .articles-mosaic__block > .card:nth-child(4) .card__title,
  .page-articles .articles-grid--listing .articles-mosaic__block > .card:nth-child(5) .card__title {
    display: flex;
    align-items: center;
    font-size: 0.82rem;
    min-height: 0;
    line-height: 1.2;
    color: #fff !important;
  }
  .page-articles .articles-grid--listing .articles-mosaic__block > .card:nth-child(2) .card__title-text,
  .page-articles .articles-grid--listing .articles-mosaic__block > .card:nth-child(3) .card__title-text,
  .page-articles .articles-grid--listing .articles-mosaic__block > .card:nth-child(4) .card__title-text,
  .page-articles .articles-grid--listing .articles-mosaic__block > .card:nth-child(5) .card__title-text {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    width: 100%;
  }

  .page-articles .articles-grid--listing .articles-mosaic__block > .card .card__date {
    color: rgba(255, 255, 255, 0.88) !important;
  }

  .page-articles .articles-grid--listing .articles-mosaic__block > .card .card__body {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    padding: 7px 9px 8px;
    gap: 0;
    position: relative;
    z-index: 2;
    transform: translateZ(0);
    isolation: isolate;
  }

  .page-articles .articles-grid--listing .articles-mosaic__block > .card .card__footer {
    margin-top: auto;
    padding-top: 4px;
    gap: 4px;
    position: relative;
    z-index: 3;
    transform: translateZ(0);
    isolation: isolate;
  }

  .page-articles .articles-grid--listing .articles-mosaic__block > .card .card__footer .card__date {
    font-size: 0.72rem;
    line-height: 1.15;
    transform: translateZ(0);
  }

  .page-articles .articles-grid--listing .articles-mosaic__block > .card .card__footer .card__tag,
  .page-articles .articles-grid--listing .articles-mosaic__block > .card .card__footer .article-card__tag {
    font-size: 0.66rem;
    padding: 1px 6px;
    margin-bottom: 0;
    position: relative;
    z-index: 4;
    transform: translateZ(0);
    backface-visibility: hidden;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    opacity: 1;
  }

  .page-articles .articles-grid--listing .articles-mosaic__block > .card .card__title,
  .page-articles .articles-grid--listing .articles-mosaic__block > .card .card__desc {
    min-height: 0;
  }

  .tv-layout { grid-template-columns: 1fr; }
  .about-grid__lower {
    grid-template-columns: 1fr;
  }
  .about-aside-grid {
    grid-template-columns: 1fr;
  }
  .about-aside-grid__social {
    grid-column: 1;
  }
  .about-contact-card__body {
    grid-template-columns: 1fr;
  }
  .about-contact-map,
  .about-contact-map__trigger,
  .about-contact-map__preview {
    min-height: 200px;
  }
  .about-map-modal__frame {
    height: min(60vh, 520px);
    min-height: 280px;
  }

  .page-about .section-label--lg {
    font-size: clamp(1.08rem, 4.6vw, 1.32rem);
    padding: 10px 22px;
  }

  .page-about .hero {
    padding-top: 18px;
    padding-bottom: clamp(16px, 3vh, 28px);
  }

  .page-about .hero > .container > .section-gap.section-center {
    margin-top: 8px;
    padding-bottom: 12px;
  }

  .page-about .about-grid.section-gap {
    margin-top: 12px;
  }

  .page-about .about-about-card__content {
    font-size: clamp(0.875rem, 3.6vw, 0.98rem);
    line-height: 1.65;
  }

  .page-about .about-about-card__content :where(p, li, span, div, td, th, blockquote, em, strong, a) {
    font-size: inherit !important;
    line-height: inherit !important;
  }

  .page-about .about-about-card__content :where(h1, h2, h3, h4, h5, h6) {
    font-size: clamp(1.05rem, 4.5vw, 1.28rem) !important;
    line-height: 1.28 !important;
  }

  .page-about .about-contact-card {
    font-size: 0.92rem;
    line-height: 1.5;
  }

  .page-about .about-contact-card__title,
  .page-about .about-social-card__title,
  .page-about .feedback-card__title {
    font-size: clamp(1.05rem, 4.2vw, 1.22rem);
    margin-bottom: 12px;
  }

  .page-about .card-heading,
  .page-about .card-heading--sm {
    font-size: clamp(1rem, 4vw, 1.12rem);
    margin-bottom: 12px;
  }

  .page-about .about-contact-value,
  .page-about .about-contact-label,
  .page-about .contact-line {
    font-size: 0.92rem !important;
    line-height: 1.45 !important;
  }

  .page-about .about-contact-list {
    gap: 10px;
  }

  .page-about .about-grid__secondary-card {
    min-height: 0;
  }

  .page-about .card--padded {
    padding: 16px 14px;
  }

  .page-about .form-group label {
    font-size: 0.8rem;
  }

  .page-about .form-control {
    font-size: 16px;
    padding: 11px 14px;
  }

  .page-about .feedback-sent-card__title {
    font-size: 0.98rem;
  }

  .page-about .feedback-sent-card__text {
    font-size: 0.86rem;
  }

  .tv-detail-sticky { position: static; }

  .staff-list { grid-template-columns: 1fr; gap: 48px; }
  .staff-card--col-left,
  .staff-card--col-right {
    justify-self: stretch;
    align-items: center;
    transform: none;
  }
  .staff-card {
    --staff-name-size: clamp(0.85rem, 3.8vw, 1.1rem);
    --staff-job-size: clamp(0.7rem, 3.2vw, 0.88rem);
    --staff-bio-size: clamp(0.68rem, 3vw, 0.82rem);
  }
  .staff-card--col-left .staff-card__bio,
  .staff-card--col-right .staff-card__bio {
    text-align: center;
  }
}

@media (max-width: 480px) {
  .live-widget {
    width: calc(100vw - 16px);
    bottom: 84px;
  }
  .tv-row { padding: 10px 12px; gap: 10px; }
  .tv-row__time { width: 44px; font-size: 0.82rem; }
  .page-tvprogram .tv-row__time { font-size: 0.92rem; }
  .page-tvprogram .tv-row__title { font-size: 0.98rem; }
  .page-tvprogram .tv-row__censure { font-size: 0.84rem; }

  .btn--block,
  .btn--block-lg,
  .btn--show-more,
  .contact-form .btn--primary { width: 100%; }
  .section-toolbar { flex-direction: column; align-items: stretch; }
  .sort-bar { justify-content: center; flex-wrap: wrap; }

  .article-card__image {
    float: none;
    width: 100%;
    margin: 0 0 20px;
  }
  .home-hero__inner { flex-direction: column; }
}

/* ============================================================
   25. ПЛАНШЕТ (780–1024) + TOUCH HOVER (≤1024)
   Breakpoints: static/js/layout-bp.js
   ============================================================ */
@media (min-width: 780px) and (max-width: 1024px) {
  .page-index .home-fresh-link__title,
  .page-index .home-articles-link__title {
    -webkit-tap-highlight-color: transparent !important;
  }

  .page-index .home-fresh-link__title a,
  .page-index .home-articles-link__title a {
    color: #fff !important;
    -webkit-text-fill-color: #fff;
    user-select: none;
    -webkit-user-select: none;
    -webkit-touch-callout: none;
  }

  .page-index .home-fresh-link__title a:hover,
  .page-index .home-fresh-link__title a:active,
  .page-index .home-fresh-link__title a:focus,
  .page-index .home-fresh-link__title a:focus-visible,
  .page-index .home-articles-link__title a:hover,
  .page-index .home-articles-link__title a:active,
  .page-index .home-articles-link__title a:focus,
  .page-index .home-articles-link__title a:focus-visible {
    color: #fff !important;
    -webkit-text-fill-color: #fff;
  }

  .site-header__logo img {
    height: 58px;
  }

  .site-header {
    padding: 8px 0;
  }

  .site-header__inner {
    gap: 12px;
  }

  .site-header__main {
    gap: 8px 12px;
  }

  .site-nav {
    gap: 2px 14px;
    max-height: calc(2 * 1.2em + 16px);
    overflow: hidden;
    justify-content: flex-start;
    align-content: flex-start;
    align-items: flex-start;
  }

  .site-nav__link {
    font-size: 1.05rem;
    padding: 4px 0;
    margin: 0;
  }

  .site-header .live-btn__label {
    font-size: 0.85rem;
  }

  .search-btn svg {
    width: 44px;
    height: 44px;
  }

  .staff-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px 24px;
  }

  .staff-card--col-left,
  .staff-card--col-right {
    transform: none;
    --staff-col-shift: 0px;
  }

  .staff-card__figure,
  .staff-card__unit {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    aspect-ratio: auto;
    height: auto;
  }

  .staff-card__cluster {
    display: contents;
    position: static;
    width: auto;
    height: auto;
    transform: none !important;
  }

  .staff-card__photo-wrap {
    position: static !important;
    order: 1;
    width: 100% !important;
    max-width: 280px;
    margin: 0 !important;
    left: auto !important;
    right: auto !important;
  }

  .staff-card__tab {
    position: static !important;
    order: 2;
    width: fit-content !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 12px 0 0 !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    align-self: center;
    padding: 10px 16px;
    min-height: calc(10px * 2 + 1.25em + 0.28em + 1.3em);
  }

  .staff-card__tab--no-job {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
  }

  .staff-card__name {
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
    text-align: center;
  }

  .staff-card__job {
    text-align: center;
  }

  .staff-card--col-left .staff-card__tab,
  .staff-card--col-right .staff-card__tab {
    top: auto;
    left: auto;
    right: auto;
    width: fit-content !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    --staff-tab-width: auto;
  }

  .staff-card--col-left .staff-card__photo-wrap,
  .staff-card--col-right .staff-card__photo-wrap {
    left: auto;
    right: auto;
    margin-left: 0;
    margin-right: 0;
  }

  .staff-card--col-left .staff-card__bio,
  .staff-card--col-right .staff-card__bio {
    text-align: center;
  }

  .site-footer__grid {
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    gap: 20px 24px;
    text-align: left;
  }

  .site-footer__logo {
    order: 0;
    margin: 0;
    justify-self: center;
    align-self: center;
  }

  .site-footer__side--left {
    order: 0;
    justify-self: stretch;
    overflow: visible;
  }

  .site-footer__side--right {
    order: 0;
    justify-self: stretch;
    overflow: visible;
  }

  .site-footer__side--left .site-footer__blocks,
  .site-footer__side--right .site-footer__blocks {
    flex-wrap: wrap;
    row-gap: 18px;
    column-gap: 16px;
    overflow: visible;
  }

  /* Крайние колонки — 2-я строка под логотипом (только «Мои документы» слева и 3-я справа) */
  .site-footer__side--left .site-footer__blocks > .site-footer__block:not(.site-footer__block--tablet-row2),
  .site-footer__side--right .site-footer__blocks > .site-footer__block:not(.site-footer__block--tablet-row2) {
    order: 0;
  }

  .site-footer__side--left .site-footer__blocks > .site-footer__block--tablet-row2 {
    flex: 0 0 100%;
    order: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    text-align: right;
  }

  .site-footer__side--left .site-footer__block--tablet-row2 .site-footer__nav {
    align-items: flex-end;
  }

  .site-footer__side--right .site-footer__blocks > .site-footer__block--tablet-row2 {
    flex: 0 0 100%;
    order: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
  }

  .site-footer__block--tablet-slot {
    display: block;
    min-height: 1px;
    margin: 0;
    padding: 0;
  }

  .site-footer__block {
    text-align: left;
  }

  /* Страница выпуска с плеером — без сайдбара/скролла под плеером */
  .page-programs .hero > .container:has(.program-page-top) .program-sidebar {
    display: none !important;
  }

  .page-programs .hero > .container:has(.program-page-top) .projects-scrollbar {
    display: none !important;
  }

  /* Плеер по центру: сайдбар скрыт, но grid резервировал 300px */
  .page-programs .hero > .container:has(.program-page-top) .program-page-top {
    grid-template-columns: 1fr;
    justify-items: center;
  }

  .page-programs .hero > .container:has(.program-page-top) .program-player-wrap {
    width: 100%;
    max-width: min(920px, 100%);
    margin-inline: auto;
  }

  /* Кнопки — без hover-залипания и синей подсветки при тапе */
  :is(
    button,
    .btn,
    a.btn,
    [role="button"],
    input[type="button"],
    input[type="submit"],
    input[type="reset"],
    .sort-btn,
    .project-tab,
    .tv-day-btn,
    .page-tvprogram .tv-day-btn,
    .slider-arrow,
    .tv-scroll-arrow,
    .live-btn,
    .site-header .live-btn,
    .search-btn,
    .cookie-banner__btn,
    .btn-back-top,
    .btn--show-more,
    .programs-mobile-cats__toggle,
    .programs-mobile-cats__pill,
    .mobile-menu__btn,
    .mobile-menu__link
  ) {
    -webkit-tap-highlight-color: transparent !important;
    tap-highlight-color: transparent;
    touch-action: manipulation;
    outline: none !important;
    -webkit-focus-ring-color: transparent;
  }

  :is(
    button,
    .btn,
    a.btn,
    [role="button"],
    input[type="button"],
    input[type="submit"],
    input[type="reset"],
    .sort-btn,
    .project-tab,
    .tv-day-btn,
    .slider-arrow,
    .tv-scroll-arrow,
    .live-btn,
    .search-btn,
    .cookie-banner__btn,
    .btn-back-top,
    .btn--show-more
  ):focus,
  :is(
    button,
    .btn,
    a.btn,
    [role="button"],
    input[type="button"],
    input[type="submit"],
    input[type="reset"],
    .sort-btn,
    .project-tab,
    .tv-day-btn,
    .slider-arrow,
    .tv-scroll-arrow,
    .live-btn,
    .search-btn,
    .cookie-banner__btn,
    .btn-back-top,
    .btn--show-more
  ):focus-visible {
    outline: none !important;
    box-shadow: none;
  }

  .btn:hover,
  .btn:active,
  .btn:focus,
  .btn:focus-visible {
    transform: none !important;
    box-shadow: none;
  }

  .btn--primary:hover,
  .btn--primary:active,
  .btn--primary:focus,
  .btn--primary:focus-visible {
    background: var(--color-accent);
    color: #fff;
  }

  .btn--outline:hover,
  .btn--outline:active,
  .btn--outline:focus,
  .btn--outline:focus-visible {
    background: transparent;
    border-color: var(--color-accent);
    color: var(--color-accent);
  }

  .btn--white:hover,
  .btn--white:active,
  .btn--white:focus,
  .btn--white:focus-visible {
    background: #fff;
    color: var(--color-text);
    box-shadow: var(--shadow-card);
  }

  .btn.btn--show-more:hover,
  .btn.btn--show-more:active,
  .btn.btn--show-more:focus,
  .btn.btn--show-more:focus-visible {
    background: var(--btn-show-more-bg, var(--color-accent));
    color: var(--btn-show-more-text, #fff);
  }

  .btn-back-top:hover,
  .btn-back-top:active,
  .btn-back-top:focus,
  .btn-back-top:focus-visible {
    background: transparent;
    border-color: var(--color-accent);
    color: var(--color-accent);
  }

  .sort-btn:hover,
  .sort-btn:active,
  .sort-btn:focus,
  .sort-btn:focus-visible {
    background: rgba(255, 255, 255, 0.2);
    color: #fff;
    border-color: rgba(255, 255, 255, 0.3);
  }

  .sort-btn.active:hover,
  .sort-btn.active:active,
  .sort-btn.active:focus,
  .sort-btn.active:focus-visible {
    background: rgba(255, 255, 255, 0.28);
  }

  .sort-btn--light:hover,
  .sort-btn--light:active,
  .sort-btn--light:focus,
  .sort-btn--light:focus-visible {
    background: #fff;
    color: var(--color-text);
    border-color: var(--color-border);
  }

  .sort-btn--light.active:hover,
  .sort-btn--light.active:active,
  .sort-btn--light.active:focus,
  .sort-btn--light.active:focus-visible {
    background: var(--color-dark);
    color: #fff;
    border-color: var(--color-dark);
  }

  .project-tab:hover,
  .project-tab:active,
  .project-tab:focus,
  .project-tab:focus-visible {
    transform: none;
  }

  .site-header .live-btn:hover,
  .site-header .live-btn:active,
  .site-header .live-btn:focus,
  .site-header .live-btn:focus-visible {
    transform: translateY(3px);
  }

  .search-btn:hover,
  .search-btn:active,
  .search-btn:focus,
  .search-btn:focus-visible {
    background: rgba(255, 255, 255, 0.12);
    transform: none;
  }

  .tv-day-btn:hover,
  .tv-day-btn:active,
  .tv-day-btn:focus,
  .tv-day-btn:focus-visible,
  .page-tvprogram .tv-day-btn:hover,
  .page-tvprogram .tv-day-btn:active,
  .page-tvprogram .tv-day-btn:focus,
  .page-tvprogram .tv-day-btn:focus-visible {
    background: rgba(255, 255, 255, 0.12);
    transform: none;
  }

  .slider-controls .slider-arrow--prev:hover,
  .slider-controls .slider-arrow--next:hover,
  .slider-arrow:not(.slider-arrow--prev):not(.slider-arrow--next):not(.tv-scroll-arrow):hover,
  .tv-scroll-controls .tv-scroll-arrow:hover,
  .livebar > .tv-scroll-arrow:hover,
  .projects-scrollbar > .tv-scroll-arrow:hover,
  .slider-arrow:active,
  .slider-arrow:focus,
  .slider-arrow:focus-visible,
  .tv-scroll-arrow:active,
  .tv-scroll-arrow:focus,
  .tv-scroll-arrow:focus-visible {
    background: rgba(255, 255, 255, 0.12);
    transform: none;
    box-shadow: none;
  }

  .cookie-banner__btn:hover,
  .cookie-banner__btn:active,
  .cookie-banner__btn:focus,
  .cookie-banner__btn:focus-visible {
    background: var(--color-accent);
    color: #fff;
  }
}

/* «Вам будет интересно» — мобильная мозаика 1+2 / 2+1 (только портрет) */
@media (max-width: 779px) {
  .page-articles .articles-grid--related {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }

  .page-articles .articles-grid--related .articles-mosaic__block {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: repeat(4, minmax(86px, auto));
    gap: 8px;
  }

  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(1) {
    grid-column: 1;
    grid-row: 1 / 3;
  }

  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(2) {
    grid-column: 2;
    grid-row: 1;
  }

  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(3) {
    grid-column: 2;
    grid-row: 2;
  }

  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(4) {
    grid-column: 1;
    grid-row: 3;
  }

  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(5) {
    grid-column: 1;
    grid-row: 4;
  }

  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(6) {
    grid-column: 2;
    grid-row: 3 / 5;
  }

  .page-articles .articles-grid--related .articles-mosaic__block > .card .card__image {
    display: none !important;
  }

  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(1) .card__desc,
  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(6) .card__desc {
    display: flex;
    align-items: center;
    font-size: 0.78rem;
    line-height: 1.28;
    margin-top: 2px;
    color: rgba(255, 255, 255, 0.92) !important;
  }
  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(1) .card__desc-text,
  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(6) .card__desc-text {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    line-clamp: 3;
    overflow: hidden;
    width: 100%;
  }

  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(2) .card__desc,
  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(3) .card__desc,
  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(4) .card__desc,
  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(5) .card__desc {
    display: flex;
    align-items: center;
    font-size: 0.72rem;
    line-height: 1.28;
    margin-top: 2px;
    color: rgba(255, 255, 255, 0.92) !important;
  }
  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(2) .card__desc-text,
  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(3) .card__desc-text,
  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(4) .card__desc-text,
  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(5) .card__desc-text {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    line-clamp: 2;
    overflow: hidden;
    width: 100%;
  }

  .page-articles .articles-grid--related .articles-mosaic__block > .card {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    border: none;
    background: transparent !important;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.16);
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    content-visibility: auto;
    contain-intrinsic-size: auto 108px;
  }

  .page-articles .articles-grid--related .articles-mosaic__block > .card::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 0;
    background-size: 100% 100%;
    background-position: 50% 50%;
    border-radius: inherit;
  }

  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(1)::before {
    background-image: linear-gradient(135deg, #ff6b9d 0%, #c850c0 45%, #4158d0 100%);
  }

  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(2)::before {
    background-image: linear-gradient(135deg, #00dbde 0%, #0088ff 52%, #7f53ac 100%);
  }

  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(3)::before {
    background-image: linear-gradient(135deg, #f83600 0%, #ff7a18 42%, #ffb347 100%);
  }

  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(4)::before {
    background-image: linear-gradient(135deg, #7f00ff 0%, #e100ff 48%, #ff6a88 100%);
  }

  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(5)::before {
    background-image: linear-gradient(135deg, #11998e 0%, #38ef7d 45%, #00c6fb 100%);
  }

  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(6)::before {
    background-image: linear-gradient(135deg, #ee0979 0%, #ff6a00 50%, #ffd200 100%);
  }

  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(1) .card__title,
  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(6) .card__title {
    display: flex;
    align-items: center;
    font-size: 0.95rem;
    min-height: 0;
    line-height: 1.22;
    color: #fff !important;
  }
  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(1) .card__title-text,
  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(6) .card__title-text {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    line-clamp: 4;
    overflow: hidden;
    width: 100%;
  }

  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(2) .card__title,
  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(3) .card__title,
  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(4) .card__title,
  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(5) .card__title {
    display: flex;
    align-items: center;
    font-size: 0.82rem;
    min-height: 0;
    line-height: 1.2;
    color: #fff !important;
  }
  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(2) .card__title-text,
  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(3) .card__title-text,
  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(4) .card__title-text,
  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(5) .card__title-text {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    width: 100%;
  }

  .page-articles .articles-grid--related .articles-mosaic__block > .card .card__date {
    color: rgba(255, 255, 255, 0.88) !important;
  }

  .page-articles .articles-grid--related .articles-mosaic__block > .card .card__body {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    padding: 7px 9px 8px;
    gap: 0;
    position: relative;
    z-index: 2;
    transform: translateZ(0);
    isolation: isolate;
  }

  .page-articles .articles-grid--related .articles-mosaic__block > .card .card__footer {
    margin-top: auto;
    padding-top: 4px;
    gap: 4px;
    position: relative;
    z-index: 3;
    transform: translateZ(0);
    isolation: isolate;
  }

  .page-articles .articles-grid--related .articles-mosaic__block > .card .card__footer .card__date {
    font-size: 0.72rem;
    line-height: 1.15;
    transform: translateZ(0);
  }

  .page-articles .articles-grid--related .articles-mosaic__block > .card .card__footer .card__tag,
  .page-articles .articles-grid--related .articles-mosaic__block > .card .card__footer .article-card__tag {
    font-size: 0.66rem;
    padding: 1px 6px;
    margin-bottom: 0;
    position: relative;
    z-index: 4;
    transform: translateZ(0);
    backface-visibility: hidden;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    opacity: 1;
  }

  .page-articles .articles-grid--related .articles-mosaic__block > .card .card__title,
  .page-articles .articles-grid--related .articles-mosaic__block > .card .card__desc {
    min-height: 0;
  }
}

/* Статьи: двухстрочный блок текста в мобильной мозаике */
@media (max-width: 779px) {
  .page-articles .articles-grid--listing .articles-mosaic__block > .card .card__title,
  .page-articles .articles-grid--related .articles-mosaic__block > .card .card__title {
    display: flex;
    align-items: center;
    min-height: 2.4em;
    min-height: 2lh;
    overflow: hidden;
  }

  .page-articles .articles-grid--listing .articles-mosaic__block > .card .card__title-text,
  .page-articles .articles-grid--related .articles-mosaic__block > .card .card__title-text {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    width: 100%;
  }

  .page-articles .articles-grid--listing .articles-mosaic__block > .card .card__desc,
  .page-articles .articles-grid--related .articles-mosaic__block > .card .card__desc {
    display: flex;
    align-items: center;
    min-height: 2.4em;
    min-height: 2lh;
    overflow: hidden;
  }

  .page-articles .articles-grid--listing .articles-mosaic__block > .card .card__desc-text,
  .page-articles .articles-grid--related .articles-mosaic__block > .card .card__desc-text {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    width: 100%;
  }

  /* Большие карточки мозаики: заголовок до 4 строк, описание — ровно до 3. */
  .page-articles :is(.articles-grid--listing, .articles-grid--related)
    .articles-mosaic__block > .card:nth-child(1) .card__title,
  .page-articles :is(.articles-grid--listing, .articles-grid--related)
    .articles-mosaic__block > .card:nth-child(6) .card__title {
    height: auto;
    min-height: 2lh;
    flex-shrink: 0;
  }

  .page-articles :is(.articles-grid--listing, .articles-grid--related)
    .articles-mosaic__block > .card:nth-child(1) .card__title-text,
  .page-articles :is(.articles-grid--listing, .articles-grid--related)
    .articles-mosaic__block > .card:nth-child(6) .card__title-text {
    -webkit-line-clamp: 4;
    line-clamp: 4;
  }

  .page-articles :is(.articles-grid--listing, .articles-grid--related)
    .articles-mosaic__block > .card:nth-child(1) .card__desc,
  .page-articles :is(.articles-grid--listing, .articles-grid--related)
    .articles-mosaic__block > .card:nth-child(6) .card__desc {
    height: 3lh;
    min-height: 3lh;
    flex-shrink: 0;
  }

  .page-articles :is(.articles-grid--listing, .articles-grid--related)
    .articles-mosaic__block > .card:nth-child(1) .card__desc-text,
  .page-articles :is(.articles-grid--listing, .articles-grid--related)
    .articles-mosaic__block > .card:nth-child(6) .card__desc-text {
    -webkit-line-clamp: 3;
    line-clamp: 3;
  }
}

/* ============================================================
   25b. ГЛАВНАЯ — лайфбар на iPad (классы из layout-bp.js + main.js)
   tablet landscape: Mini 1024×768 | tablet portrait: Air 820×1180
   ============================================================ */
html.livebar--tablet-landscape .page-index .livebar .program-card__title {
  font-size: clamp(0.92rem, 1.05vw, 1.02rem);
  line-height: 1.28;
}

html.livebar--tablet-landscape .page-index .livebar .program-card {
  padding: clamp(11px, 1.15vw, 15px) clamp(13px, 1.3vw, 17px) clamp(13px, 1.3vw, 17px);
}

html.livebar--tablet-portrait .page-index .livebar .program-card {
  padding: clamp(9px, 1vw, 12px) clamp(11px, 1.1vw, 14px) clamp(11px, 1.1vw, 14px);
}

html.livebar--tablet-portrait .page-index .livebar .program-card__title {
  font-size: clamp(0.84rem, 0.9vw, 0.94rem);
  line-height: 1.22;
}

html.livebar--tablet-portrait .page-index .livebar .program-card__desc {
  font-size: clamp(0.76rem, 0.78vw, 0.84rem);
  margin-top: clamp(4px, 0.45vw, 6px);
}

html.livebar--tablet-portrait .page-index .livebar .program-card__time {
  font-size: clamp(0.72rem, 0.74vw, 0.8rem);
}

html.livebar--tablet-portrait .page-index .livebar .program-card__head {
  margin-bottom: clamp(3px, 0.35vw, 5px);
}

/* ============================================================
   26. ШИРОКИЙ АЛЬБОМНЫЙ ТЕЛЕФОН (844×390 и т.п.)
   Breakpoints: static/js/layout-bp.js → LAYOUT_MQ.widePhoneLandscape
   Лайфбар: html.livebar--wide-phone (JS, max-height 600px)
   ============================================================ */
@media (min-width: 780px) and (max-width: 1024px) and (max-height: 779px) and (orientation: landscape) {
  /* Главная — лайфбар как на десктопе, но компактные карточки без описания */
  html.livebar--wide-phone .page-index .livebar .program-card__desc,
  html.livebar--wide-phone .page-index .livebar .program-card.is-livebar-hovered .program-card__desc {
    display: none !important;
  }

  html.livebar--wide-phone .page-index .livebar .program-card {
    padding: clamp(8px, 1.2vw, 12px) clamp(10px, 1.4vw, 14px);
  }

  html.livebar--wide-phone .page-index .livebar .program-card__title {
    font-size: clamp(0.82rem, 1.05vw, 0.94rem);
    line-height: 1.25;
  }

  /* Выезжающий live-плеер — на широком альбомном телефоне не нужен */
  .live-widget,
  .live-widget-toggle {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: none !important;
    transition: none !important;
  }

  /* Кнопка «Наверх» — розовая как на телефоне, без hover-масштаба */
  .btn-back-top {
    border-color: var(--color-accent);
    color: var(--color-accent);
    transform: none !important;
  }

  .btn-back-top:hover,
  .btn-back-top:active,
  .btn-back-top:focus,
  .btn-back-top:focus-visible {
    background: transparent !important;
    border-color: var(--color-accent) !important;
    color: var(--color-accent) !important;
    transform: none !important;
    box-shadow: none !important;
  }

  /* «Вам будет интересно» — как на планшете: 3 карточки 1+2 с фото */
  .page-articles .articles-grid--related {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 16px;
    align-items: stretch;
  }

  .page-articles .articles-grid--related .articles-mosaic__block {
    display: contents;
  }

  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(n + 4) {
    display: none !important;
  }

  .page-articles .articles-grid--related .articles-mosaic__block > .card::before {
    display: none;
    content: none;
  }

  .page-articles .articles-grid--related .articles-mosaic__block > .card {
    background: #fff;
    box-shadow: var(--shadow-card);
  }

  .page-articles .articles-grid--related .articles-mosaic__block > .card .card__body {
    padding: 14px 16px 16px;
  }

  .page-articles .articles-grid--related .articles-mosaic__block > .card .card__title,
  .page-articles .articles-grid--related .articles-mosaic__block > .card .card__desc,
  .page-articles .articles-grid--related .articles-mosaic__block > .card .card__date {
    color: inherit !important;
  }

  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(1) .card__image,
  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(2) .card__image {
    display: block !important;
    aspect-ratio: auto;
    flex: 1 1 auto;
    min-height: 120px;
  }

  .page-articles .articles-grid--related .articles-mosaic__block > .card:nth-child(3) .card__image {
    display: none !important;
  }
}

/* iPad Pro, Surface Pro и крупные планшеты (1024+), touch — кнопки и карточки */
@media (min-width: 1024px) and (max-width: 1400px) and (pointer: coarse) {
  :is(
    button,
    .btn,
    a.btn,
    [role="button"],
    input[type="button"],
    input[type="submit"],
    input[type="reset"],
    .sort-btn,
    .project-tab,
    .tv-day-btn,
    .slider-arrow,
    .tv-scroll-arrow,
    .live-btn,
    .search-btn,
    .cookie-banner__btn,
    .btn-back-top,
    .btn--show-more
  ) {
    -webkit-tap-highlight-color: transparent !important;
    tap-highlight-color: transparent;
    touch-action: manipulation;
    outline: none !important;
    -webkit-focus-ring-color: transparent;
  }

  .btn:hover,
  .btn:active,
  .btn:focus,
  .btn:focus-visible {
    transform: none !important;
    box-shadow: none;
  }

  .btn--primary:hover,
  .btn--primary:active,
  .btn--primary:focus,
  .btn--primary:focus-visible {
    background: var(--color-accent);
    color: #fff;
  }

  .btn.btn--show-more:hover,
  .btn.btn--show-more:active,
  .btn.btn--show-more:focus,
  .btn.btn--show-more:focus-visible {
    background: var(--btn-show-more-bg, var(--color-accent));
    color: var(--btn-show-more-text, #fff);
  }

  .sort-btn:hover,
  .sort-btn:active,
  .sort-btn:focus,
  .sort-btn:focus-visible {
    background: rgba(255, 255, 255, 0.2);
  }

  .sort-btn.active:hover,
  .sort-btn.active:active,
  .sort-btn.active:focus,
  .sort-btn.active:focus-visible {
    background: rgba(255, 255, 255, 0.28);
  }

  .project-tab:hover,
  .project-tab:active,
  .project-tab:focus,
  .project-tab:focus-visible {
    transform: none;
  }

  .site-header .live-btn:hover,
  .site-header .live-btn:active,
  .site-header .live-btn:focus,
  .site-header .live-btn:focus-visible {
    transform: translateY(3px);
  }

  .search-btn:hover,
  .search-btn:active,
  .search-btn:focus,
  .search-btn:focus-visible {
    background: rgba(255, 255, 255, 0.12);
    transform: none;
  }
}

/* ============================================================
   27. TOUCH — общий сброс tap-highlight (планшет + coarse)
   MQ: 780–1024 | 1024–1400 + pointer: coarse (layout-bp.js)
   ============================================================ */
@media (min-width: 780px) and (max-width: 1024px),
       (min-width: 1024px) and (max-width: 1400px) and (pointer: coarse) {
  /* Шапка и футер — без синей подсветки и hover-залипания при тапе */
  .site-header__logo,
  .site-nav__link,
  .site-footer__logo a,
  .site-footer__nav a,
  .site-footer__socials .social-link {
    -webkit-tap-highlight-color: transparent !important;
    tap-highlight-color: transparent;
    touch-action: manipulation;
    outline: none !important;
    -webkit-focus-ring-color: transparent;
  }

  .site-header__logo:focus,
  .site-header__logo:focus-visible,
  .site-nav__link:focus,
  .site-nav__link:focus-visible,
  .site-footer__logo a:focus,
  .site-footer__logo a:focus-visible,
  .site-footer__nav a:focus,
  .site-footer__nav a:focus-visible,
  .site-footer__socials .social-link:focus,
  .site-footer__socials .social-link:focus-visible {
    outline: none !important;
    box-shadow: none;
  }

  .site-header__logo:hover img,
  .site-header__logo:active img,
  .site-header__logo:focus img {
    transform: translateY(3px);
  }

  .site-nav__link:hover,
  .site-nav__link:active,
  .site-nav__link:focus,
  .site-nav__link:focus-visible {
    color: #fff;
  }

  .site-nav__link:hover::after,
  .site-nav__link:active::after,
  .site-nav__link:focus::after,
  .site-nav__link:focus-visible::after {
    transform: scaleX(0);
  }

  .site-nav__link.active,
  .site-nav__link.active:hover,
  .site-nav__link.active:active,
  .site-nav__link.active:focus,
  .site-nav__link.active:focus-visible {
    color: var(--color-accent);
  }

  .site-nav__link.active::after,
  .site-nav__link.active:hover::after,
  .site-nav__link.active:active::after,
  .site-nav__link.active:focus::after,
  .site-nav__link.active:focus-visible::after {
    transform: scaleX(1);
  }

  .site-footer__logo a:hover,
  .site-footer__logo a:active,
  .site-footer__logo a:focus,
  .site-footer__logo a:focus-visible {
    transform: none;
  }

  .site-footer__nav a:hover,
  .site-footer__nav a:active,
  .site-footer__nav a:focus,
  .site-footer__nav a:focus-visible {
    color: rgba(255, 255, 255, 0.78);
  }

  .site-footer__socials .social-link:hover,
  .site-footer__socials .social-link:active,
  .site-footer__socials .social-link:focus,
  .site-footer__socials .social-link:focus-visible {
    background: rgba(255, 255, 255, 0.1);
    transform: none;
  }

  /* Карточки и ссылки — без синей подсветки при тапе */
  :focus-visible {
    outline: none !important;
    outline-offset: 0;
    box-shadow: none;
  }

  :focus:not(:focus-visible) {
    outline: none !important;
    box-shadow: none;
  }

  html,
  body,
  a,
  button,
  input,
  textarea,
  select,
  label,
  summary,
  [role="button"],
  [tabindex],
  .card,
  a.card {
    -webkit-tap-highlight-color: transparent !important;
    tap-highlight-color: transparent;
    touch-action: manipulation;
  }

  a:focus,
  button:focus,
  input:focus,
  textarea:focus,
  select:focus,
  [tabindex]:focus {
    outline: none !important;
  }

  a.card:hover,
  a.card:active,
  a.card:focus,
  a.card:focus-visible {
    transform: none;
    box-shadow: var(--shadow-card);
  }

  a.card:hover .card__title,
  a.card:active .card__title,
  a.card:focus .card__title,
  a.card:focus-visible .card__title {
    color: inherit;
  }
}

/* «Наши проекты» — сетка по ориентации (классы выставляет JS) */
.page-programs .cards-grid.cards-grid--tablet-portrait {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.page-programs .cards-grid.cards-grid--tablet-landscape {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.page-programs .program-story-related__portrait-extra {
  display: none !important;
}

@media (min-width: 601px) and (max-width: 1024px) and (orientation: portrait) {
  .page-programs .program-story-related__portrait-extra {
    display: block !important;
  }
}

@media (max-width: 1024px),
       (hover: none),
       (pointer: coarse),
       (any-pointer: coarse) {
  .search-autocomplete__item,
  .search-autocomplete__item:hover,
  .search-autocomplete__item:active,
  .search-autocomplete__item:focus,
  .search-autocomplete__item:focus-visible {
    -webkit-tap-highlight-color: transparent !important;
    tap-highlight-color: transparent;
    outline: none !important;
    -webkit-focus-ring-color: transparent;
  }

  .search-autocomplete__item:active {
    background: var(--color-bg);
  }

  .btn--show-more,
  .btn-back-top,
  .page-about .contact-form .btn.btn--primary,
  .page-about .about-social-card__links .social-link,
  .page-about .about-contact-copy,
  .page-about .about-contact-map__trigger,
  .page-about .about-map-modal__close,
  .site-footer__socials .social-link,
  .site-footer__nav a,
  .site-footer__email-copy--desktop {
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
  }

  .btn.btn--show-more:hover,
  .btn.btn--show-more:active,
  .btn.btn--show-more:focus,
  .btn.btn--show-more:focus-visible {
    background: var(--btn-show-more-bg, var(--color-accent));
    color: var(--btn-show-more-text, #fff);
    transform: none;
    box-shadow: none;
  }

  .btn-back-top:hover,
  .btn-back-top:active,
  .btn-back-top:focus,
  .btn-back-top:focus-visible {
    background: transparent;
    border-color: var(--color-accent);
    color: var(--color-accent);
    transform: none;
    box-shadow: none;
  }

  .page-about .contact-form .btn.btn--primary:hover,
  .page-about .contact-form .btn.btn--primary:active,
  .page-about .contact-form .btn.btn--primary:focus,
  .page-about .contact-form .btn.btn--primary:focus-visible {
    background: var(--color-accent);
    color: #fff;
    transform: none;
    box-shadow: none;
  }

  .page-about .about-social-card__links .social-link:hover,
  .page-about .about-social-card__links .social-link:active,
  .page-about .about-social-card__links .social-link:focus,
  .page-about .about-social-card__links .social-link:focus-visible {
    background: var(--color-dark);
    transform: none;
  }

  .page-about .about-contact-copy:hover,
  .page-about .about-contact-copy:active,
  .page-about .about-contact-copy:focus,
  .page-about .about-contact-copy:focus-visible {
    background: rgba(7, 19, 43, 0.08);
    color: var(--color-text);
    transform: none;
  }

  .page-about .about-contact-map__trigger:hover,
  .page-about .about-contact-map__trigger:active,
  .page-about .about-contact-map__trigger:focus,
  .page-about .about-contact-map__trigger:focus-visible {
    box-shadow: none;
  }

  .page-about .about-contact-map__trigger:hover .about-contact-map__preview,
  .page-about .about-contact-map__trigger:active .about-contact-map__preview,
  .page-about .about-contact-map__trigger:focus .about-contact-map__preview,
  .page-about .about-contact-map__trigger:focus-visible .about-contact-map__preview {
    transform: none;
    filter: none;
  }

  .page-about .about-map-modal__close:hover,
  .page-about .about-map-modal__close:active,
  .page-about .about-map-modal__close:focus,
  .page-about .about-map-modal__close:focus-visible {
    background: rgba(255, 255, 255, 0.12);
  }

  .site-footer__socials .social-link:hover,
  .site-footer__socials .social-link:active,
  .site-footer__socials .social-link:focus,
  .site-footer__socials .social-link:focus-visible {
    background: rgba(255, 255, 255, 0.1);
    transform: none;
  }

  .site-footer__nav a:hover,
  .site-footer__nav a:active,
  .site-footer__nav a:focus,
  .site-footer__nav a:focus-visible {
    color: rgba(255, 255, 255, 0.78);
  }

  .site-footer__email-copy--desktop:hover,
  .site-footer__email-copy--desktop:active,
  .site-footer__email-copy--desktop:focus,
  .site-footer__email-copy--desktop:focus-visible {
    background: transparent;
    color: inherit;
    transform: none;
  }
}

/* Touch / coarse pointer — без синей подсветки и «липкого» hover */
@media (hover: none),
       (pointer: coarse),
       (any-pointer: coarse) {
  :focus-visible {
    outline: none !important;
    box-shadow: none;
  }

  html,
  body,
  a,
  button,
  input,
  textarea,
  select,
  label,
  summary,
  [role="button"],
  [tabindex],
  .card,
  a.card,
  .search-autocomplete__item,
  .project-tab,
  .sort-btn {
    -webkit-tap-highlight-color: transparent !important;
    tap-highlight-color: transparent;
    touch-action: manipulation;
  }

  a.card:hover,
  a.card:active,
  a.card:focus,
  a.card:focus-visible {
    transform: none;
    box-shadow: var(--shadow-card);
  }

  a.card:hover .card__title,
  a.card:active .card__title,
  a.card:focus .card__title,
  a.card:focus-visible .card__title {
    color: var(--color-text);
  }

  .search-autocomplete__item:hover,
  .search-autocomplete__item:active,
  .search-autocomplete__item:focus,
  .search-autocomplete__item:focus-visible {
    outline: none !important;
    background: var(--color-bg);
  }

  .btn--show-more:hover,
  .btn--show-more:active,
  .btn--show-more:focus,
  .btn--show-more:focus-visible {
    background: var(--btn-show-more-bg, var(--color-accent));
    color: var(--btn-show-more-text, #fff);
    transform: none;
    box-shadow: none;
  }

  .page-index .home-fresh-link__title,
  .page-index .home-articles-link__title {
    -webkit-tap-highlight-color: transparent !important;
  }

  .page-index .home-fresh-link__title a,
  .page-index .home-articles-link__title a {
    color: #fff !important;
    -webkit-text-fill-color: #fff;
    user-select: none;
    -webkit-user-select: none;
    -webkit-touch-callout: none;
  }

  .page-index .home-fresh-link__title a:hover,
  .page-index .home-fresh-link__title a:active,
  .page-index .home-fresh-link__title a:focus,
  .page-index .home-fresh-link__title a:focus-visible,
  .page-index .home-articles-link__title a:hover,
  .page-index .home-articles-link__title a:active,
  .page-index .home-articles-link__title a:focus,
  .page-index .home-articles-link__title a:focus-visible {
    color: #fff !important;
    -webkit-text-fill-color: #fff;
  }
}

/* Клавиатурный фокус должен оставаться видимым поверх touch-сбросов. */
:where(a, button, input, textarea, select, summary, [tabindex]):focus-visible {
  outline: 2px solid var(--color-accent) !important;
  outline-offset: 3px !important;
}

/* ============================================================
   28. WIDE DESKTOP (≥1921) — эталон 1920×1080 не трогаем
   Breakpoints: layout-bp.js → LAYOUT_BP.wideMin
   ============================================================ */
@media (min-width: 1921px) {
  :root {
    --content-max: 1380px;
    --side-padding: clamp(24px, 3.5vw, 128px);
    --hero-player-max: 960px;
  }

  .home-hero__inner {
    grid-template-columns: var(--hero-col-livebar) minmax(0, var(--hero-player-max));
  }
}

/* Футер 521–779px: заголовки соседних колонок начинаются на одной линии. */
@media (min-width: 521px) and (max-width: 779px) {
  .site-footer__blocks {
    align-items: flex-start;
  }
}

/* ============================================================
   29. XXL DESKTOP (≥2560) — мягкий рост от эталона
   Breakpoints: layout-bp.js → LAYOUT_BP.xxlMin
   ============================================================ */
@media (min-width: 2560px) {
  :root {
    --content-max: 1440px;
    --side-padding: clamp(32px, 4vw, 140px);
    --hero-player-max: 980px;
  }
}

/* ============================================================
   30. CROSS-BROWSER COMPAT (без layout — только поведение)
   Blink: Chrome, Edge, Brave, Opera, Vivaldi, Samsung, Yandex
   ============================================================ */
@supports (backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px)) {
  .mobile-top,
  .programs-mobile-toolbar,
  .mobile-bottom-bar {
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
  }
}

@media (hover: none),
       (pointer: coarse),
       (any-pointer: coarse) {
  .section-label a,
  .site-nav__link,
  .mobile-menu__link,
  .mobile-bottom-bar__btn,
  .programs-mobile-cats__pill,
  .programs-mobile-cats__toggle,
  .project-tab,
  .sort-btn,
  .btn,
  a.btn {
    -webkit-tap-highlight-color: transparent !important;
    tap-highlight-color: transparent;
    touch-action: manipulation;
  }

  input,
  textarea,
  select,
  .form-control {
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
  }
}
