:root{--blue:#3366cc;--yellow:#ffd83a;--bs-yellow:#ffd83a;--bg:#f5f7fb;--text:#000000;--muted:#6b7280;}
body{background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif;}
    .topbar{background:none;}
    .brand{font-weight:700;color:var(--blue);text-decoration:none;}
    .hero-card,.section-card{background:#fff;border-radius:20px;box-shadow:0 8px 24px rgba(15,23,42,.06);}
    .hero-title{font-size:clamp(1.8rem,3vw,3.2rem);line-height:1.05;font-weight:800;}
    .hero-note{color:var(--muted);}
    .btn-yellow{background:var(--yellow);border:none;color:#111;font-weight:0;}
    .btn-blue,.btn-outline-blue:hover {
  background-color: var(--blue);
  /* Обводка есть сразу, чтобы кнопка не дергалась при наведении */
  border: 1px solid var(--blue); 
  color: #fff;
  /* Значения 0 не существует, для обычного текста используйте 400 или normal */
  font-weight: 0; 
  /* Плавный переход цветов за 0.3 секунды */
  transition: background-color 0.3s ease, color 0.3s ease; 
}

.btn-blue:hover,.btn-outline-blue {
  /* Прозрачный фон */
  background-color: transparent; 
  /* Обводка остается синей, меняется только фон и текст */
  border-color: var(--blue); 
  color: var(--blue);
}
    .pill{background:#eef4ff;border-radius:999px;padding:.4rem .75rem;font-size:.85rem;display:inline-block;}
    .mini-card{background:#fff;border:1px solid #e8ecf5;border-radius:16px;min-height:92px;}
    .blue-panel{background:linear-gradient(135deg,#3366cc ,#4b7bf0);border-radius:22px;color:#fff;min-height:220px;}
    .form-panel{background:#dfeaff;border-radius:22px;box-shadow:0 12px 30px rgba(47,102,208,.14);}
/* Базовые стили для мобильных (линии нет, блоки идут с отступами друг за другом) */
.metro-row {
    margin-bottom: 1.5rem;
}
.metro-row:last-child {
    margin-bottom: 0;
}
.metro-content {
    padding: 10px;
}

/* Стили для больших экранов (компьютеры и ноутбуки) */
@media (min-width: 992px) {
    .metro-timeline {
        position: relative;
        padding: 2rem 0;
    }
    /* Центральная линия метро */
    .metro-timeline::before {
        content: '';
        position: absolute;
        top: 0;
        bottom: 0;
        left: 50%;
        width: 4px;
        background-color: #3366cc ; /* Желтая ветка метро (под ваш стиль) */
        transform: translateX(-50%);
        z-index: 1;
    }
    /* Корректировка строк, чтобы они плотнее прилегали */
    .metro-row {
        margin-bottom: 3rem;
        position: relative;
        z-index: 2;
    }
    /* Круглая станция с цифрой */
    .metro-badge {
        width: 25px;
        height: 25px;
        background-color: #3366cc;      /* Черный фон кружка */
        color: #fff;                 /* Белая цифра */
        border: 4px solid #3366cc;   /* Желтый ободок, сливающийся с линией */
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 1.1rem;
        z-index: 3;
        box-shadow: 0 0 10px rgba(0,0,0,0.15);
    }
}

	
/* Главный контейнер */
.chart-box {
  height: 333px;
  position: relative;
  overflow: hidden;
  display: flex;
}

/* Рабочая область графика */
.chart-content {
  flex-grow: 1;
  position: relative;
  height: 100%;
  
  /* Включаем Flexbox для баров */
  display: flex; 
  justify-content: center;    /* Выравниваем всю группу баров строго ПО ЦЕНТРУ */
  align-items: flex-end;      /* Прижимаем бары к нижнему краю */
  padding-bottom: 52px;       /* Оставляем место снизу для подписей годов */
  gap: 52px;                  /* УВЕЛИЧЕННОЕ РАССТОЯНИЕ МЕЖДУ БАРАМИ (можно менять это значение) */
  box-sizing: border-box;
}

/* Столбцы диаграммы */
.chart-bar {
  position: relative;         /* Изменили с absolute на relative, чтобы работал gap */
  width: 44px;
  background: var(--blue, #3366cc);
  color: white;
  border-radius: 8px;
  z-index: 2;
  transition: background 0.3s, color 0.3s;
}

.chart-bar:hover {
  background: var(--yellow, #ffd83a);
  color: black;
}

.chart-bar div.proc {
  text-align: center;
  padding: 5px 0 0 0;
  font-weight: bold;
}

/* Горизонтальные риски ОДНОГО цвета */
.chart-grid {
  position: absolute;
  inset: 0;
  bottom: 52px;
  background: repeating-linear-gradient(to top, transparent, transparent 25px, #e8edf7 25px, #e8edf7 26px);
  border-bottom: 1px solid #e8edf7;
  z-index: 1;
}

/* Подписи годов под графиком */
.chart-year {
  position: absolute;
  bottom: -40px; 
  left: 50%;
  transform: translateX(-50%); /* Идеально центрируем год относительно своего бара */
  width: 100%;
  text-align: center;
  color: #3366cc;
  font-weight: 500;
}

/* Правая шкала с цифрами */
.chart-scale {
  width: 85px;
  height: calc(100% - 52px);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  text-align: left;
  padding-left: 15px;
  color: #000;
  box-sizing: border-box;
}


h5.accord { margin: 0; } 
.accord {
  cursor: pointer;
  padding: 20px;
  width: 100%;
  text-align: left;
  border: none;
  outline: none;
  transition: 0.4s;
  background-color: #fff;
  border-bottom: 1px solid #ccc; /* Исправлена опечатка в цвете #ccc */
  
  /* Переводим заголовок на Flexbox */
  display: flex;
  align-items: center;        /* Выравниваем текст и иконку по центру вертикали */
  justify-content: space-between; /* Текст прижимаем влево, иконку — вправо */
  gap: 15px;                  /* Безопасный зазор между текстом и иконкой */
}
.active, .accord:hover {}
.panel {
  padding: 20px;
  display: none;
  overflow: hidden;
  border-bottom: 1px solid #ccc; /* Исправлена опечатка в цвете #ccc */
}
.accord:after {
  content: "\002B";
  /* float: right; — УБИРАЕМ, так как теперь работает Flexbox */
  background-color: #3366cc;
  color: #fff;
  width: 36px;
  height: 36px;
  border-radius: 8px;
  text-align: center;
  font-size: 30px;
  font-weight: normal;
  
  /* Добавляем новые свойства для иконки во флекс-контейнере */
  display: flex;
  align-items: center;     /* Центрируем плюс внутри синего квадрата по вертикали */
  justify-content: center; /* Центрируем плюс внутри синего квадрата по горизонтали */
  flex-shrink: 0;          /* Запрещаем иконке сжиматься, если текст очень длинный */
}
.last-accord {
    border-bottom: none;
}
.last-panel {
	border-top: 1px solid #ccc; /* Исправлена опечатка в цвете #ccc */
    border-bottom: none;
}
.active:after {
  content: "\2212";
}
.accord.active {
  color: #3366cc; /* Цвет текста при активном состоянии */
}


footer {}
footer .fam a{ color: #000; text-decoration: none; }
footer .fam a:hover{ color: #3366cc; }

.marquee-container {
  overflow: hidden;
  white-space: nowrap;
  background: #ffd83a;
  padding-top: 2.5px;
  height: 30px;
}
.marquee-text {
  display: inline-block;
  animation: marquee 15s linear infinite;
  /* margin-left: 100%; чтобы начинать за пределами экрана */
}
@keyframes marquee {
  0% {
    transform: translateX(100%);
  }
  100% {
    transform: translateX(-100%);
  }
}

/* ==========================================================================
   1. ОБЩИЕ СТИЛИ ШАПКИ И МЕГА-МЕНЮ
   ========================================================================== */
.topbar {
  position: relative;
  z-index: 1010;
}

/* Элемент меню (родитель) */
.nav-item-dropdown {
  position: static; 
}

/* Базовые настройки сетки Grid для подменю */
.custom-mega-menu {
  list-style: none !important; /* Убираем маркеры списков ul/li */
  margin: 0 !important;
  background-color: #fff;
  display: grid !important; 
  grid-template-columns: repeat(1, 1fr); /* По умолчанию 1 колонка */
  gap: 8px; 
}

ul.custom-mega-menu li {  padding: 0; margin: 0; }

/* Пункты меню (ссылки внутри li) */
.dropdown-item {
  display: block;
  padding: 0;
  margin: 0;
  color: #000;
  text-decoration: none;
  transition: all 0.2s;
  white-space: normal; /* Разрешаем перенос длинного текста на мобильных */
}
.dropdown-item:hover {
  color: #0d6efd;
  background-color: #f8f9fa;
}

/* Стилизация кнопки Бургера */
.topbar .navbar-toggler {
  color: #0d6efd !important; /* Синий цвет значка ☰ */
  border: 1px solid #0d6efd !important; /* Синяя рамка */
  background-color: transparent !important; /* Прозрачный фон */
  border-radius: var(--bs-border-radius-lg, 8px) !important; /* Полукруглые углы */
  transition: all 0.2s ease-in-out;
}
.topbar .navbar-toggler:hover,
.topbar .navbar-toggler:focus {
  background-color: rgba(13, 110, 253, 0.05) !important;
  box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.15) !important;
}

/* ==========================================================================
   2. ДЕСКТОПНАЯ ВЕРСИЯ (Большие экраны от 992px) — ТУТ ВОЗВРАЩЕНЫ 3 РЯДА
   ========================================================================== */
@media (min-width: 992px) {
  /* Расширяем зону ховера родителя вниз */
  .nav-item-dropdown {
    padding-bottom: 15px; 
    margin-bottom: -15px;
  }

  .custom-mega-menu {
    position: absolute !important;
    transform: none !important;
    left: 12px !important;  
    right: 12px !important; 
    top: 100% !important; 
    z-index: 1000;
    display: none !important; /* Скрыто, пока нет ховера */
    width: auto;
    padding: 1.5rem;
    border: 1px solid #e9ecef !important;
    border-radius: 8px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.08);
    
    /* СЕТКА НА ПК: Строго 3 колонки в ряд */
    grid-template-columns: repeat(3, 1fr) !important; 
  }

  /* Невидимый мост, удерживающий курсор мыши от исчезновения меню */
  .custom-mega-menu::before {
    content: "";
    position: absolute;
    top: -30px;
    left: 0;
    width: 100%;
    height: 30px;
    background: transparent;
  }

  /* Показ сетки в 3 ряда при ховере */
  .nav-item-dropdown:hover .custom-mega-menu,
  .custom-mega-menu:hover {
    display: grid !important; 
  }
}


/* ==========================================================================
   3. ПЛАНШЕТНАЯ ВЕРСИЯ (Средние экраны от 768px до 991px) — ТУТ 2 РЯДА
   ========================================================================== */
@media (min-width: 768px) and (max-width: 991.98px) {
  .custom-mega-menu.show {
    /* СЕТКА НА ПЛАНШЕТАХ: Строго 2 колонки в ряд */
    grid-template-columns: repeat(2, 1fr) !important; 
    padding: 1rem !important;
  }
}

/* ==========================================================================
   4. МОБИЛЬНАЯ ВЕРСИЯ (Смартфоны до 991.98px) — ТУТ 1 РЯД И ВЫРАВНИВАНИЕ СЛЕВА
   ========================================================================== */
@media (max-width: 991.98px) {
  .collapse:not(.show) {
    display: none !important;
  }

  /* Настройки панели скролла */
  .navbar-collapse.show {
    display: flex !important;
    flex-direction: column;
    align-items: flex-start !important; /* Выравнивание контента шторки влево */
    text-align: left !important;
    background: #fff;
    width: 100% !important;
    max-height: 75vh !important; /* Ограничение высоты шторки */
    overflow-y: auto !important; /* Включение вертикального скролла */
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    padding: 15px;
    margin-top: 5px;
	border-radius: 15px;
	box-shadow: 0 0 0 1px #3366cc;
  }

  /* Все ссылки главного меню на мобильных прижимаем влево */
  .navbar-collapse nav a {
    text-align: left !important;
    width: 100%;
  }
  .navbar-collapse nav a.d-block {
    font-weight: bold;
  }

  /* Адаптация подменю Каталога (внутри мобильного бургер-меню) */
  .custom-mega-menu {
    display: none !important; /* Скрыто, пока не кликнули */
    position: relative !important;
    top: 0 !important;
    left: 0 !important;
    transform: none !important;
    float: none !important; 
    width: 100% !important;
    box-shadow: none !important;
    border: none !important;
    border-left: 2px solid #e9ecef !important; /* Серая линия вложенности */
    border-radius: 0 !important;
    padding: 0.5rem 0 0.5rem 0.75rem !important; 
    
    /* СЕТКА НА МОБИЛЬНЫХ: Строго в 1 вертикальный ряд */
    grid-template-columns: repeat(1, 1fr) !important; 
  }
  
  /* Открытие мобильного списка по клику (класс от JS Bootstrap) */
  .custom-mega-menu.show {
    display: grid !important; 
  }

  .custom-mega-menu .dropdown-item {
    text-align: left !important;
    padding-left: 0.5rem !important;
  }

  .nav-item-dropdown .dropdown-toggle {
    font-weight: bold;
    color: #212529 !important;
    padding-bottom: 5px;
    text-align: left !important;
  }

  /* Кнопки в самом низу мобильной шторки */
  .mobile-buttons-group {
    margin-top: 20px;
    width: 100%;
    padding-top: 15px;
    justify-content: flex-start !important; /* Кнопки тоже выравниваем влево */
  }
}
nav a { color: #000; }
nav a:hover { color: #3366cc; }
.f9 { font-size: 9px; }
.f12 { font-size: 12px; }
.f14 { font-size: 14px; }
.f15 { font-size: 15px; }

ul.listmark li{ 
list-style-image: url("/images/kt-dm-icon2.jpg");
margin: 0 0 0 20px;
padding: 0 20px 0 0;
}
ul.listmark2 li{ 
list-style-image: url("/images/kt-dm-icon2.jpg");
}

/* Если вы используете Bootstrap версии ниже 5.3, добавьте это в свой CSS вручную */
.object-fit-cover {
  object-fit: cover;
}

.steps-section {
  background-image: url('/images/map-russia.png');
  background-repeat: no-repeat;
  background-position: center center;
  
  /* По умолчанию (на малых экранах): картинка масштабируется на 100% ширины блока и никогда не обрежется */
  background-size: 100% auto; 
}

/* На экранах шириной от 841px и больше (когда экран шире самой картинки) */
@media (min-width: 841px) {
  .steps-section {
    /* Возвращаем оригинальный размер картинки, чтобы она не размывалась при растягивании */
    background-size: auto auto; 
  }
}

.video-slider-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 20px;
  position: relative;
}
.slider-header {
  text-align: left;
  margin-bottom: 30px;
}
.slider-subtitle {
  color: #666;
  font-size: 0.9em;
}

/* Кнопки навигации */
.slider-controls {
  position: absolute;
  top: 20px;
  right: 20px;
  display: flex;
  gap: 10px;
  z-index: 10;
}
.slider-btn {
  border: 1px solid #3366cc;
  border-radius: 25%;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.3s;
  background: #fff;
}
.slider-btn:hover {
  border-color: #ccc;
}

/* Ограничитель видимости для плавной прокрутки */
.slider-track {
  overflow: hidden;
  width: 100%;
}

/* Контейнер слайдов */
.slides-wrapper {
  display: flex;
  transition: transform 0.5s ease;
  width: 100%;
}

/* На больших экранах: 3 видео в ряд */
.slide {
  flex: 0 0 33.333%;
  padding: 0 10px; /* Отступы между слайдами */
  box-sizing: border-box;
}

.video-card {
  position: relative;
  border-radius: 15px;
  overflow: hidden;
  background: #fff;
}
.video-content {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Иконка Play поверх видео */
.play-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none; /* Чтобы клик проходил сквозь оверлей к видео */
}
.play-icon {
  fill: #3366cc; /* Белая классическая иконка */
}

/* Кнопки навигации */
.slider-btn {
  border: 1px solid #3366cc;
  border-radius: 25%;
  width: 46px;   
  height: 46px;  
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.3s;
  background: #fff;
}

/* Индикаторы слайдов */
.slide-indicators {
  text-align: center;
  margin-top: 20px;
}

/* Индикаторы слайдов (точки) — УБРАЛИ ЧЕРТОЧКИ И ОБВОДКИ */
.indicator {
  width: 15px;
  height: 15px;
  border-radius: 50%;
  border: none !important;            /* Принудительно убираем любые рамки */
  outline: none !important;           /* Убираем синее/черное кольцо фокуса браузера */
  box-shadow: none !important;        /* Убираем возможную тень, похожую на подчеркивание */
  text-decoration: none !important;   /* На всякий случай убираем текстовое подчеркивание */
  background: #fff5cc; 
  display: inline-block;
  margin: 0 5px;
  cursor: pointer;
  transition: background 0.3s ease;
}

.indicator.active {
  background: #ffd83a; 
  border: none !important;            /* Проверяем, что у активной точки тоже нет рамок */
  outline: none !important;
  box-shadow: none !important;
}

/* Дополнительно убираем контур при клике (актуально для Chrome/Safari) */
.indicator:focus, .indicator:active {
  outline: none !important;
  box-shadow: none !important;
}

/* Полностью удаляем встроенную черточку Bootstrap под активной точкой */
.slide-indicators .indicator::after {
  display: none !important;
  content: none !important;
}

/* На всякий случай очищаем псевдоэлемент ::before */
.slide-indicators .indicator::before {
  display: none !important;
  content: none !important;
}


/* Адаптивность: Планшеты (2 видео в ряд) */
@media (max-width: 992px) {
  .slide {
    flex: 0 0 50%;
  }
}

/* Адаптивность: Мобильные (1 видео в ряд) */
@media (max-width: 576px) {
  .slide {
    flex: 0 0 100%;
  }
  .slider-controls {
    top: 10px;
    right: 10px;
  }
}

/* На экранах от 1200px и шире текст жестко держится в одну строку */
@media (min-width: 1200px) {
  .text-nowrap-xl {
    white-space: nowrap !important;
  }
}

/* На экранах 1199px и меньше текст аккуратно складывается в два слова */
@media (max-width: 1199.98px) {
  .text-nowrap-xl {
    white-space: normal !important;
    display: block;       /* Превращаем в блочный элемент для корректного переноса */
    max-width: 170px;     /* Задаем ширину, при которой слово "журналы" красиво упадет вниз */
    line-height: 1.1;     /* Немного уменьшаем межстрочный интервал, чтобы строки не были слишком далеко друг от друга */
  }
}

/* Базовое состояние ваших кнопок-лейблов */
.quality-card {
  display: inline-flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 1; /* Чтобы кнопки были идеально одинаковой ширины */
  background-color: transparent !important;
  transition: all 0.2s ease;
  cursor: pointer;
  border-color: #3366cc;
}

/* Стилизация текста внутри кнопки */
.quality-card .text-label {
  font-size: 14px;
  font-weight: 0;
  margin-top: -2px;
}

/* Блок звезд по умолчанию (всегда рисует 5 контурных звезд) */
.stars-block {
  font-size: 14px;
  letter-spacing: 1px;
  line-height: 0.75;
}
.stars-block::before {
  content: "\2606\2606\2606\2606\2606"; /* Пять пустых звезд ☆ */
  color: #3366cc; /* Цвет контура звезд под цвет вашей синей рамки */
}

/* ЛОГИКА АКТИВНОГО СОСТОЯНИЯ (когда радио-кнопка выбрана) */
.btn-check:checked + .quality-card {
  background-color: #ffd83a !important; /* Насыщенный желтый фон */
  border-color: #ffd83a !important;       /* Делаем рамку желтой, чтобы она сливалась */
  color: #000 !important;                 /* Черный цвет текста */
}

/* При активации меняем пустые звезды на закрашенные БЕЛЫЕ */
.btn-check:checked + .quality-card .stars-block::before {
  color: #fff; /* Белые звезды на желтом фоне */
}

/* Подстановка закрашенных звезд в зависимости от переданного data-stars */
.btn-check:checked + .quality-card .stars-block[data-stars="5"]::before { content: "\2605\2605\2605\2605\2605"; }
.btn-check:checked + .quality-card .stars-block[data-stars="4"]::before { content: "\2605\2605\2605\2605\2606"; }
.btn-check:checked + .quality-card .stars-block[data-stars="3"]::before { content: "\2605\2605\2605\2606\2606"; }

/* Эффект легкого наведения (hover) для неактивных кнопок */
.quality-card:hover, .btn-yellow-hover:hover {
  background-color: #fff5cc !important; /* Легкий желтый оттенок */
  border-color: #ffd83a !important;
}

.bs2-primary{background:#3366cc;}
	a{color:#3366cc;}.blue,a.blue,a#blue{color:#3366cc;}.yellow{color:#ffd83a;}.red{color:red;}
	.btn-check:checked + .btn-yellow-hover {
    background-color: #ffd83a !important; /* Желтый цвет */
    border-color: #ffd83a   !important;     /* Цвет рамки */
    color: #000 !important;              /* Цвет текста */
	}
.btn-yellow-hover{border-color: #3366cc !important;     /* Цвет рамки */}
