

/* Start:/local/templates/main/components/bitrix/news.list/home.slider/style.css?1793271994350*/
.scene-slider__video-bg {
    display: none;
}

@media (min-width: 1026px) {
    .scene-slider__video-bg {
        display: block;
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        z-index: 0;
    }

    .scene-slider__picture--hidden-desktop {
        display: none;
    }
}

/* End */


/* Start:/local/templates/main/template_styles.css?179327199422016*/
/* Стили шаблона подключаются в header.php */

/* ============================================================
   Битрикс-панель: смещение fixed-элементов на высоту панели
   --bx-panel-h задаётся скриптом в header.php после #bx-panel
   ============================================================ */
:root { --bx-panel-h: 0px; }

/* 404
   ========================================================================== */

.error-404 {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: calc(100dvh - 200px);
    padding: 140px 24px 80px;
    overflow: hidden;
    text-align: center;
}

.error-404__bg {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font: 700 40vw/1 'Stapel', -apple-system, BlinkMacSystemFont, 'Arial', sans-serif;
    color: #0f7bff;
    opacity: .04;
    white-space: nowrap;
    pointer-events: none;
    user-select: none;
}

.error-404__inner {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 560px;
}

.error-404__code {
    font: 700 18px/1 'Stapel', -apple-system, BlinkMacSystemFont, 'Arial', sans-serif;
    margin: 0 0 24px;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: #0f7bff;
}

.error-404__title {
    font: 500 56px/1.1 'Stapel', -apple-system, BlinkMacSystemFont, 'Arial', sans-serif;
    margin: 0 0 20px;
    color: #000;
}

.error-404__text {
    font: 400 18px/1.6 'Stapel', -apple-system, BlinkMacSystemFont, 'Arial', sans-serif;
    margin: 0 0 40px;
    color: rgba(0, 0, 0, .55);
}

@media (max-width: 767px) {
    .error-404__bg {
        font-size: 60vw;
    }

    .error-404__title {
        font-size: 36px;
    }
}

.page-header { top: calc(10px + var(--bx-panel-h)); }
.events-bar  { top: calc(77px + var(--bx-panel-h)); }

@media (max-width: 1025px) {
    .page-header { top: var(--bx-panel-h); }
}

/* Видео-кнопка в баннере — только для десктопа */
@media (max-width: 1025px) {
    .scene-slider__video-btn { display: none; }
}

/* Белая панель контента: не схлопываться на пустых выдачах.

   .page-head зафиксирован (position: fixed), а .page-inner наезжает на него
   с margin-top: 500px. Когда внутри почти ничего нет — например, в разделе
   «Антидопинг» ещё не отмечено ни одной новости, — панель сжимается до высоты
   подменю, и её нижний край оказывается прямо под ним: выглядит как обрезанная
   вёрстка, хотя разметка цела. Нижняя граница высоты это снимает, длинным
   страницам min-height ничего не меняет.
   ========================================================================== */
.page-inner,
.page-about {
    min-height: 320px;
}

/* Видео раздела «Антидопинг», залитое файлом.

   Базовый .antidoping-video__player свёрстан под ссылку-превью с жёстким
   aspect-ratio 1041/417 — это очень широкий кадр, и обычный ролик 16:9 в нём
   пришлось бы обрезать сверху и снизу. Для тега video пропорции отдаём самому
   файлу, оставляя скругление и тёмную подложку.
   ========================================================================== */
.antidoping-video__player--file {
    width: 100%;
    height: auto;
    aspect-ratio: auto;
    background: #000;
}

/* Сообщения о пустой выдаче своих стилей в style.css не имеют и прижимаются
   к краю панели — задаём им отступы и типографику один раз на все разделы. */
.news-section__empty,
.media-section__empty {
    font: 400 1rem/1.4 'Stapel', -apple-system, BlinkMacSystemFont, 'Arial', sans-serif;
    margin: 0;
    padding: 40px 24px 60px;
    color: rgba(0, 0, 0, .55);
}

/* Малая карточка новости: заголовок в две строки с многоточием.
   Затрагивает /news/ и «Другие новости» в разделах видов спорта: обе используют
   .news-card-big--small.

   Обрезка работает на всех ширинах. На мобильной карточка тянется по высоте
   (height: auto), поэтому длинный заголовок её не ломал — но выглядел он всё равно
   разнобойно, и одинаковые две строки читаются ровнее.

   Высоты ниже — только для десктопа: на мобильной их задавать нельзя, там карточка
   рассчитана на свободный рост.

   Карточке добавлено 14px высоты: в исходные 318px вторая строка не помещалась
   (подпись прижата к низу — .news-card-big__info позиционирован absolute с
   inset 204px 0 0, то есть его высота это остаток карточки под фотографией).
   Заголовку доставалось 28px при нужных 42, и вторая строка резалась по
   горизонтали вместо многоточия. Новая высота — сумма содержимого при двух
   строках: 14 + 42 + 10 + 1 (разделитель) + 10 + 19 (дата) + 32 = 128,
   плюс 204 фотографии = 332. Отступы дизайна при этом не тронуты.

   Класс в селекторах высоты удвоен намеренно: этот файл Битрикс подключает
   раньше style.css, поэтому при равной специфичности выигрывали бы прежние
   318px/114px оттуда. Заголовку удвоение не нужно (в style.css нет правил
   display/line-clamp для него), но оставлено для единообразия блока.
   ========================================================================== */
/* Расписание события: колонка стадии на одном месте.

   Строка свёрстана тремя равными колонками — старт, стадия, кнопка «Посмотреть
   результаты». Кнопка теперь выводится только у тех этапов, по которым результаты
   действительно есть, и без третьей колонки стадия занимала половину строки: у одних
   строк «Финал» стоял по центру, у соседних уезжал вправо. Распорка держит сетку.
   ========================================================================== */
.event-schedule__result-placeholder {
    flex: 1;
}

@media (max-width: 1025px) {
    /* На мобильной строка раскладывается в колонку, и пустой блок дал бы лишний отступ */
    .event-schedule__result-placeholder {
        display: none;
    }
}

/* Кнопка «добавить событие в календарь» на карточке календаря.

   Значок перекрыт ссылкой карточки: у .calendar-card__link::after задан inset: 0 с z-index: 1
   (style.css), то есть невидимый слой ссылки растянут на всю карточку поверх кнопки. Клик по
   значку уходил на детальную страницу события вместо выгрузки .ics — со стороны выглядело как
   «календарь не работает», хотя обработчик и эндпоинт /local/ajax/events_ics.php исправны.

   Правка здесь, а не в style.css: тот приходит от верстальщика целиком, и правки внутри
   затирает очередная поставка.
   ========================================================================== */
.calendar-card__cal-btn {
    position: relative;
    z-index: 2;
}

/* Модалки медиа: фон темнее.
   В style.css у .pop-image задано rgba(0, 0, 0, .6) — заказчик просил около 80%.
   Класс удвоен по той же причине, что и высоты карточек ниже: этот файл подключается
   раньше style.css, и при равной специфичности победило бы прежнее значение.
   ========================================================================== */
.pop-image.pop-image {
    background: rgba(0, 0, 0, .8);
}

/* Попап с роликом. Оболочка общая с .pop-image (фон, fade, z-index), поэтому здесь
   только то, чего в вёрстке нет: состояние «открыт» и рамка плеера.
   ========================================================================== */
.pop-video.pop-video--open {
    opacity: 1;
    pointer-events: all;
}

.pop-video__frame {
    width: min(1100px, calc(100% - 48px));
    aspect-ratio: 16 / 9;
    max-height: 85vh;
    background: #000;
    border-radius: 6px;
    overflow: hidden;
}

.pop-video__iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}

/* Подпись под роликом — описание ссылки UF_VIDEOS. Карточка видео в .media-gallery__grid
   раньше была самой ячейкой сетки, теперь ячейка — обёртка с подписью; пропорции задаёт
   сама ссылка (aspect-ratio в style.css), поэтому обёртке размеры не нужны.
   ========================================================================== */
.media-gallery__video-item {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.media-gallery__caption {
    font: 400 .875rem/1.4 'Stapel', -apple-system, BlinkMacSystemFont, 'Arial', sans-serif;
    margin: 0;
    color: rgba(0, 0, 0, .55);
}

@media (max-width: 1025px) {
    .media-gallery__video-item {
        gap: 6px;
    }

    .media-gallery__caption {
        font-size: .75rem;
    }
}

.news-card-big.news-card-big--small .news-card-big__title {
    display: -webkit-box;
    overflow: hidden;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

@media (min-width: 1026px) {
    .news-card-big.news-card-big--small {
        height: 332px;
    }

    .news-card-big.news-card-big--small .news-card-big__info {
        height: 128px;
    }
}

/* Кнопка «Показать больше»: атрибут hidden должен её действительно прятать.

   Шаблоны и JS проставляют hidden правильно — и сразу при отрисовке, когда подгружать
   уже нечего, и после того как догружена последняя страница. Но браузерное правило
   [hidden] { display: none } живёт в стилях пользовательского агента, а вёрстка задаёт
   этим обёрткам display: flex. Специфичность у обоих селекторов одинаковая (0,1,0),
   и авторский стиль перебивает агентский — кнопка оставалась видимой и кликабельной,
   хотя запрос за следующей страницей возвращал пустоту.

   Селектор с атрибутом даёт (0,2,0) и выигрывает независимо от порядка подключения.
   Это важно: template_styles.css Битрикс подключает раньше style.css, и при равной
   специфичности победило бы правило вёрстки.

   Три класса — три группы разделов: docs-section (документы, карточка персоны, списки
   людей), news-section (новости и медиа вида спорта), media-section (общие медиа и новости).
   ========================================================================== */
.docs-section__more[hidden],
.news-section__more[hidden],
.media-section__more[hidden] {
    display: none;
}
/* Контакты видов спорта: ФИО, должность и телефон.

   Правила приехали в 7c5db90 вместе со структурированными контактами
   /antidoping/contacts/ и были вписаны прямо в assets/css/style.css. Поставка вёрстки
   от 02.09.2026 снесла их вместе со всем каталогом assets/ — ровно тот сценарий, что
   уже описан в шапке js/overrides.js на примере прогресс-бара календаря: assets/
   приходит от верстальщика целиком, и любая наша правка внутри живёт до следующей
   выгрузки. Поэтому правила теперь здесь.

   __fio, __post и __phone рисует news.detail/antidoping.contacts/template.php.
   __email правит и /contacts/ тоже: в style.css у него нет text-decoration, поэтому
   без правила ниже ссылка получает подчёркивание от базового
   a { text-decoration: underline }.

   Удваивать классы, как сделано для .news-card-big и .docs-section__more, здесь не
   нужно: конкурирующих правил в style.css нет, а базовый a (0,0,1) проигрывает
   одиночному классу (0,1,0). Телефон на ширине >= 1380px по-прежнему наследует цвет
   и не кликается — это делает a[href^='tel:'] (0,1,1) из вёрстки, и так было всегда.
   ========================================================================== */
.contacts-sport__fio {
    font: 400 1rem/1.3 'Stapel', -apple-system, BlinkMacSystemFont, 'Arial', sans-serif;
    color: #000;
}

.contacts-sport__post {
    font: 400 .875rem/1.2 'Stapel', -apple-system, BlinkMacSystemFont, 'Arial', sans-serif;
    color: #000;
    opacity: .6;
}

.contacts-sport__phone {
    font: 400 1rem/1.1 'Stapel', -apple-system, BlinkMacSystemFont, 'Arial', sans-serif;
    letter-spacing: .063em;
    text-decoration: none;
    white-space: nowrap;
    color: #0f7bff;
}

.contacts-sport__email {
    text-decoration: none;
}

.contacts-sport__phone:hover,
.contacts-sport__email:hover {
    text-decoration: underline;
}

.contacts-sport__card--lead .contacts-sport__fio,
.contacts-sport__card--lead .contacts-sport__post,
.contacts-sport__card--lead .contacts-sport__phone {
    color: #fff;
}

.contacts-sport__card--lead .contacts-sport__post {
    opacity: .7;
}

/* Формы обратной связи: состояния отправки
   ==========================================================================
   В поставке вёрстки состояний нет — формы там статичные. Классы навешивает
   js/overrides.js по ответу /local/ajax/*.php.
   ========================================================================== */

.feedback-form__subtitle--error {
    color: #ff7369;
}

.feedback-form__field--invalid .feedback-form__input,
.feedback-form__field--invalid .feedback-form__textarea,
.feedback-form__field--invalid .feedback-form__select {
    border-color: #ff7369;
}

.feedback-form__field--invalid .feedback-form__check-text {
    color: #ff7369;
}

.feedback-form__submit:disabled {
    cursor: progress;
    opacity: .6;
}

/* Список спонсоров: строка не подстраивается под пропорции логотипа
   ==========================================================================
   В поставочной вёрстке у .partners-list__logo нет высоты, а у картинки внутри
   стоит height: 100%. Процент считается от неопределённой высоты, поэтому
   картинка берёт собственный размер при ширине 385px: квадратные и вертикальные
   логотипы (World Aquatics, Минспорт, ЦСП) растягивали строку на 300+ пикселей
   и вылезали на соседнюю карточку. В макете этого не видно — там пять
   партнёров с горизонтальными логотипами и заполненными описаниями, и высоту
   строки задавал текст, а не картинка.

   Ограничиваем картинку в пикселях: высота строки перестаёт зависеть от
   пропорций логотипа, карточка без описания остаётся компактной, а логотип
   любой формы вписывается целиком.
   ========================================================================== */

.partners-list__logo {
    display: flex;
    padding: 16px;

    align-items: center;
    justify-content: center;
}

.partners-list__logo-img {
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 88px;
}

@media (max-width: 1025px) {
    .partners-list__logo {
        padding: 10px;
    }

    .partners-list__logo-img {
        max-height: 65px;
    }
}

/* Анонсная картинка вместо логотипа — заполняет ячейку.
   Логотип вписывается целиком (см. выше), а фотография при том же ограничении
   высоты терялась бы в поле шириной 385px. Высота фиксированная, поэтому строка
   не зависит от пропорций снимка — та же защита, что и у логотипа.
   ========================================================================== */

.partners-list__logo--photo {
    padding: 0;
}

.partners-list__logo--photo .partners-list__logo-img {
    width: 100%;
    height: 120px;
    max-height: none;

    -o-object-fit: cover;
       object-fit: cover;
}

@media (max-width: 1025px) {
    .partners-list__logo--photo .partners-list__logo-img {
        height: 85px;
    }
}

/* Тикер спонсоров не наезжает на список — /sponsors/
   Блок .sponsors-section--inner подтягивается на -60px и белым «листом» с
   закруглённым верхом наезжает на предыдущую секцию: на остальных страницах
   под него подложены пустые 160px (.partners-form, .calendar-section). На
   /sponsors/ последняя секция — .news-section--latest с padding-bottom: 0,
   и лист съедает низ карточек. Баг вёрстки, воспроизводится и на демо
   верстальщиков; правило снять, когда починят в style.css.
   ========================================================================== */

.page--sponsors .news-section--latest {
    padding-bottom: 160px;
}

@media (max-width: 1025px) {
    .page--sponsors .news-section--latest {
        padding-bottom: 72px;
    }
}

/* Блоки-«листы» не наезжают на диаграммы — /partners/
   .calendar-promo, .broadcasts и .partner-options тоже подтянуты на -60px и
   рассчитывают на нижний отступ соседа сверху: в вёрстке между ними и
   .audience всегда стоит .champ-facts со своими 161px. Достижения выводятся
   только с картинкой, календарь — только при наличии соревнований, поэтому
   любой из них может не отрисоваться, и следующий лист садится прямо на
   диаграммы, у которых нижнего отступа нет. Отменяем подтяжку и оставляем
   обычный отступ — тот же, что у .champ-facts.
   ========================================================================== */

.page--partners .audience + .calendar-promo,
.page--partners .audience + .broadcasts,
.page--partners .audience + .partner-options {
    margin-top: 44px;
}

@media (max-width: 1025px) {
    .page--partners .audience + .calendar-promo,
    .page--partners .audience + .broadcasts,
    .page--partners .audience + .partner-options {
        margin-top: 38px;
    }
}

/* Статичная страница (include/static_page.php): файлы под текстом */
.static-page__files {
    margin-top: 32px;
}

/* End */
/* /local/templates/main/components/bitrix/news.list/home.slider/style.css?1793271994350 */
/* /local/templates/main/template_styles.css?179327199422016 */
