/* ============================================================
   Тёмная тема BJJ-клуба — накладывается поверх /styles/style.css
   Ничего в style.css не меняем: это отдельный слой переопределений.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=IBM+Plex+Mono:wght@500;600&display=swap');

:root{
  --bjj-bg:        #0B0B0C;
  --bjj-bg-card:   #171213;
  --bjj-bg-card-2: #1C1516;
  --bjj-red:       #C81E3A;
  --bjj-red-deep:  #8F1428;
  --bjj-gold:      #B8934B;
  --bjj-ink:       #F2EDE8;
  --bjj-ink-dim:   #9A9290;
  --bjj-line:      rgba(242,237,232,.08);
}

/* ---------- база ---------- */
body{
  background:var(--bjj-bg) !important;
  color:var(--bjj-ink) !important;
}
a{ color:var(--bjj-red); }
a:hover{ color:var(--bjj-gold); }

h1,h2,h3,h4,h5,h6,[class*="heading-"],
.title-block,.title-decoration-lines-left,.title-decoration-lines-bottom,
.section-head-title{
  font-family:'Bebas Neue', poppins, sans-serif !important;
  letter-spacing:.02em !important;
  color:var(--bjj-ink) !important;
}
.title-decoration-lines-left::before{ background:var(--bjj-red) !important; }
.title-decoration-lines-bottom span::after{ background:var(--bjj-red) !important; }

/* ---------- секции-фоны ---------- */
.bg-default{ background:var(--bjj-bg) !important; }
.bg-gray-4,.bg-gray-100,.bg-gray-2{ background:var(--bjj-bg-card) !important; }
.bg-gray-800,.bg-gray-dark{ background:var(--bjj-bg-card-2) !important; }

/* ---------- шапка / навигация ---------- */
.rd-navbar-corporate.rd-navbar-static .rd-navbar-aside-outer,
.rd-navbar-corporate.rd-navbar-static .rd-navbar-main-outer{
  background:rgba(11,11,12,.94) !important;
}
.rd-navbar-corporate .rd-nav-link{ color:var(--bjj-ink) !important; }
.rd-navbar-corporate .rd-nav-link:hover,
.rd-navbar-corporate .rd-nav-item.active .rd-nav-link{ color:var(--bjj-red) !important; }

/* убираем родной псевдоэлемент фреймворка — именно он давал синюю полосу при наведении
   и сплошной блок на активном пункте меню */
.rd-navbar-corporate .rd-nav-link::before{ content:none !important; }
.rd-navbar-corporate .rd-nav-link{ background:transparent !important; box-shadow:none !important; }

/* свой аккуратный индикатор активного пункта — тонкая линия снизу, без блока и без синего */
.rd-navbar-corporate .rd-nav-item{ position:relative; }
.rd-navbar-corporate .rd-nav-item.active .rd-nav-link::after{
  content:'';
  position:absolute;
  left:0; right:0; bottom:-4px;
  height:2px;
  background:var(--bjj-red);
}

/* ---------- шапка на мобильной/планшетной версии (rd-navbar-fixed, экраны до 992px) ----------
   Раньше тема красилась только для десктопного .rd-navbar-static — здесь оставался
   белый фон плагина по умолчанию, из-за чего текст (например номер телефона) был
   почти не виден. Дублируем тёмную тему и для этого варианта навигации. */
.rd-navbar-fixed .rd-navbar-panel,
.rd-navbar-fixed .rd-navbar-nav-wrap,
.rd-navbar-fixed .rd-navbar-collapse{
  background:rgba(11,11,12,.96) !important;
  color:var(--bjj-ink) !important;
}
.rd-navbar-fixed .rd-navbar-nav-wrap{ border-color:var(--bjj-line) !important; }
.rd-navbar-fixed .rd-navbar-collapse{ box-shadow:0 0 22px -4px rgba(0,0,0,.6) !important; }
.rd-navbar-fixed .rd-navbar-collapse,
.rd-navbar-fixed .rd-navbar-collapse a{ color:var(--bjj-ink) !important; }

.rd-navbar-fixed .rd-nav-link{ color:var(--bjj-ink) !important; }
.rd-navbar-fixed .rd-nav-item:hover .rd-nav-link,
.rd-navbar-fixed .rd-nav-item.focus .rd-nav-link,
.rd-navbar-fixed .rd-nav-item.active .rd-nav-link,
.rd-navbar-fixed .rd-nav-item.opened .rd-nav-link{
  color:#fff !important;
  background:var(--bjj-red) !important;
}

.rd-navbar-fixed .rd-navbar-dropdown,
.rd-navbar-fixed .rd-navbar-megamenu{ background:rgba(20,15,16,.98) !important; }
.rd-navbar-fixed .rd-megamenu-list>li>a,
.rd-navbar-fixed .rd-navbar-dropdown>li>a{ color:var(--bjj-ink) !important; }
.rd-navbar-fixed .rd-megamenu-list>li:hover>a,
.rd-navbar-fixed .rd-megamenu-list>li.focus>a,
.rd-navbar-fixed .rd-megamenu-list>li.active>a,
.rd-navbar-fixed .rd-megamenu-list>li.opened>a,
.rd-navbar-fixed .rd-navbar-dropdown>li:hover>a,
.rd-navbar-fixed .rd-navbar-dropdown>li.focus>a,
.rd-navbar-fixed .rd-navbar-dropdown>li.active>a,
.rd-navbar-fixed .rd-navbar-dropdown>li.opened>a{
  color:#fff !important;
  background:var(--bjj-red) !important;
}

/* гамбургер и кнопка "адрес/телефон" рисовались тёмно-серым (#333) в расчёте на
   белый фон — на тёмном фоне становились невидимыми */
.rd-navbar-fixed .rd-navbar-toggle,
.rd-navbar-fixed .rd-navbar-collapse-toggle{ color:var(--bjj-ink) !important; }
.rd-navbar-fixed .rd-navbar-toggle span,
.rd-navbar-fixed .rd-navbar-toggle span::before,
.rd-navbar-fixed .rd-navbar-toggle span::after,
.rd-navbar-fixed .rd-navbar-collapse-toggle span,
.rd-navbar-fixed .rd-navbar-collapse-toggle span::before,
.rd-navbar-fixed .rd-navbar-collapse-toggle span::after{
  background-color:var(--bjj-ink) !important;
}

/* ---------- телефон в мобильной/планшетной шапке (вместо белого блока .cbform) ---------- */
.rd-navbar-fixed .rd-navbar-panel-phone{
  display:flex;
  align-items:center;
  margin-left:auto;
  padding-right:24px; /* место под кнопку-гамбургер адреса/телефона справа сверху */
  overflow:hidden;
  white-space:nowrap;
}
.rd-navbar-fixed .rd-navbar-panel-phone .icon{
  flex-shrink:0;
  margin-right:6px;
  font-size:15px;
  color:var(--bjj-red) !important;
}
.rd-navbar-fixed .rd-navbar-panel-phone .link-phone{
  font-size:13px;
  letter-spacing:.01em;
  overflow:hidden;
  text-overflow:ellipsis;
  color:var(--bjj-ink) !important;
}
@media(min-width:400px){
  .rd-navbar-fixed .rd-navbar-panel-phone .link-phone{ font-size:14px; }
}
@media(min-width:576px){
  .rd-navbar-fixed .rd-navbar-panel-phone{ padding-right:60px; }
  .rd-navbar-fixed .rd-navbar-panel-phone .icon{ font-size:16px; }
  .rd-navbar-fixed .rd-navbar-panel-phone .link-phone{ font-size:15px; }
}
/* На десктопе (rd-navbar-static) этот блок не имеет собственного правила display
   в базовых стилях — рендерится как обычный div в потоке документа. Прячем явно,
   там уже есть родной десктопный блок с адресом и телефоном (rd-navbar-corporate-contacts).
   ВАЖНО: прячем только сам телефон, а не .rd-navbar-panel целиком — в нём же логотип. */
.rd-navbar-static .rd-navbar-panel-phone{
  display:none !important;
}

/* ---------- слайдер (camera.js) — убираем синий цвет плагина по умолчанию ---------- */
/* точки-переключатели на десктопе — по центру, снизу, с отступом 40px от края слайда
   (заменяем хрупкое позиционирование right:50%+margin-right:-215px из camera.css
   на нормальное центрирование через left:50%+translateX) */
.camera_wrap .camera_pag{
  top:auto !important;
  bottom:40px !important;
  left:50% !important;
  right:auto !important;
  margin:0 !important;
  transform:translateX(-50%) !important;
  z-index:5 !important;
}
.camera_pag .camera_pag_ul li span,
.camera_pag .camera_pag_ul li span.cameracurrent{
  background:var(--bjj-ink-dim) !important;
  border-color:var(--bjj-ink-dim) !important;
}
.camera_pag .camera_pag_ul li.cameracurrent span,
.camera_pag .camera_pag_ul li span:hover{
  background:var(--bjj-red) !important;
  border-color:var(--bjj-red) !important;
}
.camera_prev span, .camera_next span{ background:var(--bjj-red) !important; }
.bg-info,[class*="bg-info"]{ background:var(--bjj-bg-card-2) !important; }
.text-info,[class*="text-info"]{ color:var(--bjj-gold) !important; }

/* ---------- подпись слайда отключена: текст через админку не используется ---------- */
.camera_wrap .camera_caption,
#slider .camera_wrap .camera_caption,
#slider.camera_wrap .camera_caption,
#slider .camera_caption{
  display:none !important;
}

/* Высота слайдера теперь управляется только через опцию height в scripts.js
   (.camera() init) — плагин сам пересчитывает её адаптивно от ширины экрана.
   CSS-override здесь больше не нужен и был убран, так как конфликтовал
   с внутренними расчётами плагина (несовпадение видимого размера контейнера
   и размера, по которому плагин обрезал/масштабировал картинку). */
.rd-navbar-corporate-contacts .icon,
.rd-navbar-corporate-contacts a,
.rd-navbar-corporate-contacts p{ color:var(--bjj-ink) !important; }
.rd-navbar-corporate-contacts .icon{ color:var(--bjj-red) !important; }
/* ---------- хлебные крошки на внутренних страницах: убираем тяжёлый анимированный
   фон-баннер (.box-position — картинка + бесконечная CSS-анимация панорамирования,
   которая тормозила загрузку) и делаем компактную полосу в цветах сайта ---------- */
.breadcrumbs-custom-inset{ min-height:0 !important; }
.breadcrumbs-custom .box-position{ display:none !important; }
.breadcrumbs-custom::before{ display:none !important; }
.breadcrumbs-custom{
  min-height:0 !important;
  height:auto !important;
  background:var(--bjj-bg-card) !important;
  border-bottom:1px solid var(--bjj-line);
  padding:20px 0 !important;
}
.breadcrumbs-custom-title{
  font-family:'Bebas Neue', sans-serif !important;
  letter-spacing:.02em;
  font-size:clamp(22px,3vw,32px) !important;
  color:var(--bjj-ink) !important;
  margin-bottom:6px !important;
}
.breadcrumbs-custom-path{ font-size:13px !important; }
.breadcrumbs-custom-path li,
.breadcrumbs-custom-path li a{ color:var(--bjj-ink-dim) !important; }
.breadcrumbs-custom-path li a:hover{ color:var(--bjj-red) !important; }
.breadcrumbs-custom-path li.active{ color:var(--bjj-red) !important; }
.header-address{
  font-size:13px !important;
  line-height:1.3 !important;
  max-width:220px;
  color:var(--bjj-ink) !important;
}
/* на десктопе места достаточно — адрес в одну строку, без переноса,
   и тем же шрифтом/размером, что и телефон рядом, чтобы стиль совпадал */
@media(min-width:992px){
  .header-address,
  .rd-navbar-corporate-contacts .link-phone{
    font-family:'IBM Plex Mono', monospace !important;
    font-weight:600 !important;
    font-size:14px !important;
  }
  .header-address{
    max-width:none !important;
    white-space:nowrap !important;
  }
}
/* ---------- убираем анимацию появления страницы и любой остаточный прелоадер ---------- */
.preloader{ display:none !important; }
.page.animated,
.page{
  animation:none !important;
  -webkit-animation:none !important;
  opacity:1 !important;
  transform:none !important;
}

.rd-navbar-brand{ font-family:'Bebas Neue', sans-serif; }

/* ---------- логотип в шапке (объединённый файл: круг РОСС + овал БАТАЛЬОНЪ) ---------- */
.brand-ross-by{
  display:flex !important;
  align-items:center;
  gap:10px;
}
.rd-navbar-brand a.brand-ross-by img{
  height:44px !important;
  max-height:44px !important;
  width:auto !important;
  max-width:none !important;
  display:block;
}
@media(max-width:480px){
  .rd-navbar-brand a.brand-ross-by img{ height:34px !important; max-height:34px !important; }
}

/* ---------- соцсети в шапке (menu.tpl) ---------- */
.rd-navbar-corporate-list-social a{ color:var(--bjj-ink-dim) !important; }
.rd-navbar-corporate-list-social a:hover{ color:var(--bjj-red) !important; }

/* ---------- выпадающее подменю ---------- */
.rd-navbar-static .rd-navbar-dropdown{
  background:var(--bjj-bg-card) !important;
  border:1px solid var(--bjj-line) !important;
}
.rd-navbar-static .rd-navbar-dropdown li>a,
.rd-navbar-static .rd-navbar-dropdown li>a:focus,
.rd-navbar-static .rd-navbar-dropdown li>a:active{ color:var(--bjj-ink) !important; }
.rd-navbar-static .rd-navbar-dropdown li>a:hover{ color:var(--bjj-red) !important; }

/* ---------- кнопки ---------- */
.button-primary,.button-primary:focus{
  background:var(--bjj-red) !important;
  border-color:var(--bjj-red) !important;
  color:#fff !important;
}
.button-primary:hover,.button-primary:active{
  background:var(--bjj-red-deep) !important;
  border-color:var(--bjj-red-deep) !important;
}
.button-default-outline,.button-default-outline:focus{
  color:var(--bjj-ink) !important;
  border-color:rgba(242,237,232,.3) !important;
  background:transparent !important;
}
.button-default-outline:hover{
  border-color:var(--bjj-red) !important;
  color:var(--bjj-red) !important;
  background:transparent !important;
}

/* ---------- карточки направлений (thumbnail-simple) ---------- */
.thumbnail-simple{
  background:var(--bjj-bg-card);
  border:1px solid var(--bjj-line);
  padding:24px;
  transition:background .2s;
}
.thumbnail-simple:hover{ background:var(--bjj-bg-card-2); }
.thumbnail-simple .heading a{ color:var(--bjj-ink) !important; }
.thumbnail-simple .description{ color:var(--bjj-ink-dim) !important; }

/* ---------- блок "цифры" (counter-amy) ---------- */
.counter-amy-number .counter{
  font-family:'IBM Plex Mono', monospace !important;
  color:var(--bjj-gold) !important;
}
.counter-amy-title{ color:var(--bjj-ink-dim) !important; }

/* ---------- FAQ аккордеон ---------- */
.card-corporate{ background:var(--bjj-bg-card) !important; border-color:var(--bjj-line) !important; }
.card-corporate .card-title a{ color:var(--bjj-ink) !important; }
.card-corporate .card-body{ color:var(--bjj-ink-dim) !important; }

/* ---------- футер ---------- */
.footer-corporate,.footer-corporate-2{ background:var(--bjj-bg-card-2) !important; }
.footer-corporate-bottom-panel{ background:var(--bjj-bg) !important; }
.footer-corporate .footer-contacts .icon,
.footer-corporate-2 .footer-contacts .icon{ color:var(--bjj-red) !important; }
.footer-corporate .footer-contacts a,
.footer-corporate .footer-contacts p,
.footer-corporate .rd-range-title{ color:var(--bjj-ink) !important; }
.post-minimal-2-title a{ color:var(--bjj-ink) !important; }
.post-minimal-2-title a:hover{ color:var(--bjj-red) !important; }
.post-minimal-2-time{ color:var(--bjj-ink-dim) !important; }
.footer-corporate .rights,.footer-corporate .rights a{ color:var(--bjj-ink-dim) !important; }
.footer-corporate .list-marked > li::before{ background:var(--bjj-red) !important; }

/* ---------- телефон в шапке (замена кнопки звонка) ---------- */
.link-phone{
  font-family:'IBM Plex Mono', monospace !important;
  font-weight:600 !important;
  color:var(--bjj-ink) !important;
}
.link-phone:hover{ color:var(--bjj-red) !important; }

/* ---------- "полоса пояса" — разделитель секций ---------- */
.belt-stripe{
  height:14px;
  display:flex;
  background:#EDEAE4;
}
.belt-stripe > span{
  width:28px;
  background:#0A0A0A;
  margin-left:3px;
}
.belt-stripe.thin{ height:6px; }
.belt-stripe.thin > span{ width:14px; }

/* ---------- блок "Что мы преподаём" (home.tpl, категории каталога) ---------- */
.disciplines-section{ padding-top:96px !important; padding-bottom:96px !important; }
.disciplines-section .section-head{ margin:0 auto 52px; max-width:640px; text-align:center; }
.disciplines-section .eyebrow{
  font-family:'IBM Plex Mono', monospace !important;
  font-size:12px; letter-spacing:.15em; text-transform:uppercase;
  color:var(--bjj-gold) !important;
  display:flex; align-items:center; justify-content:center; gap:10px;
  margin-bottom:14px;
}
.disciplines-section .eyebrow .dot{
  width:6px; height:6px; background:var(--bjj-red);
  border-radius:50%; display:inline-block;
}
.disciplines-section .title-block{
  font-size:28px !important;
  margin-bottom:0;
}
@media(min-width:768px){ .disciplines-section .title-block{ font-size:40px !important; } }
@media(min-width:992px){ .disciplines-section .title-block{ font-size:48px !important; } }
@media(min-width:1200px){ .disciplines-section .title-block{ font-size:56px !important; } }
.disciplines-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:var(--bjj-line);
  border:1px solid var(--bjj-line);
}
@media(max-width:820px){ .disciplines-grid{ grid-template-columns:1fr; } }
.discipline-card{
  background:var(--bjj-bg-card);
  padding:38px 30px;
  transition:background .25s;
}
.discipline-card:hover{ background:var(--bjj-bg-card-2); }
.discipline-card-title{
  font-family:'Bebas Neue', sans-serif !important;
  font-size:30px !important;
  text-transform:uppercase;
  margin:0 !important;
  letter-spacing:.02em;
}
.discipline-card-title a{ color:var(--bjj-ink) !important; }
.discipline-card-title a:hover{ color:var(--bjj-red) !important; }
.discipline-card-text{
  color:var(--bjj-ink-dim) !important;
  margin-top:12px !important;
  font-size:14.5px;
  line-height:1.6;
}

/* ---------- hero-блок "Главная" (H1 + текст из админки, home.tpl) ---------- */
.home-hero .eyebrow{
  font-family:'IBM Plex Mono', monospace !important;
  font-size:12px; letter-spacing:.15em; text-transform:uppercase;
  color:var(--bjj-gold) !important;
  display:flex; align-items:center; justify-content:center; gap:10px;
  margin-bottom:14px;
}
.home-hero .eyebrow .dot{
  width:6px; height:6px; background:var(--bjj-red);
  border-radius:50%; display:inline-block;
}
.home-hero-text{
  color:var(--bjj-ink-dim) !important;
  max-width:640px;
  margin:0 auto !important;
  font-size:14.5px;
  line-height:1.6;
}
.home-hero h1 + .home-hero-text{ margin-top:20px !important; }
.home-hero-text + .home-hero-text{ margin-top:10px !important; }
.home-hero h1{
  font-size:28px !important;
  margin-bottom:0 !important;
}
@media(min-width:768px){ .home-hero h1{ font-size:40px !important; } }
@media(min-width:992px){ .home-hero h1{ font-size:48px !important; } }
@media(min-width:1200px){ .home-hero h1{ font-size:56px !important; } }

/* ---------- CTA "первая тренировка бесплатно" (последний блок home.tpl) ---------- */
.cta-band{
  text-align:center;
  background:linear-gradient(180deg, #120E0E, var(--bjj-bg)) !important;
}
.cta-band .title-block{
  font-size:28px !important;
  max-width:720px;
  margin:0 auto !important;
}
@media(min-width:768px){ .cta-band .title-block{ font-size:40px !important; } }
@media(min-width:992px){ .cta-band .title-block{ font-size:48px !important; } }
@media(min-width:1200px){ .cta-band .title-block{ font-size:56px !important; } }
.cta-band p{
  color:var(--bjj-ink-dim) !important;
  margin:18px auto 34px !important;
  max-width:480px;
  font-size:16px;
}
.cta-phone-btn{
  font-family:'IBM Plex Mono', monospace !important;
  background:var(--bjj-red) !important;
  border-color:var(--bjj-red) !important;
  color:#fff !important;
}
.cta-phone-btn:hover{
  background:var(--bjj-red-deep) !important;
  border-color:var(--bjj-red-deep) !important;
}

/* ---------- кнопка "наверх" — синяя, не встроена в tpl (плагин), скрываем и гасим анимацию ---------- */
#toTop,
.ui-to-top,
.scrollup,
.scroll-up,
.back-to-top,
.backtotop,
.totop,
.btn-scroll-top,
.scroll-top,
[class*="to-top"],
[id*="toTop"]{
  display:none !important;
  animation:none !important;
  -webkit-animation:none !important;
  transition:none !important;
}


/* ================================================================
   Расписание тренировок — стили для блока на странице /about
   ================================================================ */
.sched-head{ margin-bottom:40px; max-width:640px; }
  .sched-eyebrow{
    font-family:'IBM Plex Mono', monospace !important;
    font-size:12px; letter-spacing:.15em; text-transform:uppercase;
    color:var(--bjj-gold) !important;
    display:flex; align-items:center; gap:10px;
    margin-bottom:14px;
  }
  .sched-eyebrow .dot{
    width:6px; height:6px; background:var(--bjj-red);
    border-radius:50%; display:inline-block;
  }
  .sched-title{
    font-family:'Bebas Neue', sans-serif !important;
    font-size:clamp(32px,4.5vw,48px) !important;
    letter-spacing:.02em;
    text-transform:uppercase;
    color:var(--bjj-ink) !important;
    margin:0 0 18px !important;
    line-height:1.02;
  }
  .sched-lead{
    color:var(--bjj-ink-dim) !important;
    font-size:15.5px;
    line-height:1.6;
  }

  .sched-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1px;
    background:var(--bjj-line);
    border:1px solid var(--bjj-line);
  }
  @media(max-width:900px){ .sched-grid{ grid-template-columns:1fr; } }

  .sched-card{
    background:var(--bjj-bg-card);
    padding:0;
    transition:background .25s;
  }
  .sched-card:hover{ background:var(--bjj-bg-card-2); }

  .sched-card-head{
    padding:26px 26px 18px;
    border-bottom:1px solid var(--bjj-line);
    position:relative;
  }
  .sched-card-head::before{
    content:"";
    position:absolute; left:0; top:0;
    width:100%; height:3px;
  }
  .sched-card.mma .sched-card-head::before{ background:var(--bjj-red); }
  .sched-card.bjj .sched-card-head::before{ background:var(--bjj-gold); }
  .sched-card.ross .sched-card-head::before{ background:var(--bjj-ink-dim); }

  .sched-disc-name{
    font-family:'Bebas Neue', sans-serif !important;
    font-size:28px !important;
    letter-spacing:.02em;
    text-transform:uppercase;
    color:var(--bjj-ink) !important;
    margin:0 0 4px !important;
  }
  .sched-disc-full{
    font-size:13px;
    color:var(--bjj-ink-dim) !important;
    line-height:1.4;
  }

  .sched-groups{ padding:8px 26px 26px; }
  .sched-group{
    padding:16px 0;
    border-bottom:1px solid var(--bjj-line);
  }
  .sched-group:last-child{ border-bottom:none; }

  .sched-age{
    font-family:'Bebas Neue', sans-serif !important;
    font-size:17px !important;
    letter-spacing:.02em;
    margin:0 0 10px !important;
    color:var(--bjj-ink) !important;
  }
  .sched-age span{
    color:var(--bjj-ink-dim) !important;
    font-weight:400;
    font-family:'IBM Plex Mono', monospace !important;
    font-size:12px;
    letter-spacing:0;
    text-transform:none;
  }

  .sched-slot-label{
    font-family:'IBM Plex Mono', monospace !important;
    font-size:10.5px;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:var(--bjj-ink-dim) !important;
    opacity:.72;
    margin:0 0 3px !important;
  }
  .sched-slot-block{ padding-top:2px; }

  .sched-slot{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:6px 0;
  }
  .sched-days{ display:flex; gap:5px; flex-wrap:wrap; }
  .sched-day{
    font-family:'IBM Plex Mono', monospace !important;
    font-size:11px;
    font-weight:600;
    padding:3px 7px;
    background:var(--bjj-bg);
    color:var(--bjj-ink-dim) !important;
    border:1px solid var(--bjj-line);
  }
  .sched-card.mma .sched-day.on{ background:rgba(200,30,58,.16) !important; color:#e6889a !important; border-color:transparent; }
  .sched-card.bjj .sched-day.on{ background:rgba(184,147,75,.18) !important; color:var(--bjj-gold) !important; border-color:transparent; }
  .sched-card.ross .sched-day.on{ background:rgba(154,146,144,.18) !important; color:var(--bjj-ink) !important; border-color:transparent; }

  .sched-time{
    font-family:'IBM Plex Mono', monospace !important;
    font-size:14.5px;
    font-weight:600;
    white-space:nowrap;
    color:var(--bjj-ink) !important;
  }

  .sched-footnote{
    margin-top:32px;
    color:var(--bjj-ink-dim) !important;
    font-size:13px;
    line-height:1.6;
  }
  .sched-footnote a{ color:var(--bjj-red) !important; }


/* ================================================================
   Страницы направлений (/catalog/mma, /catalog/bjj, /catalog/ross)
   ================================================================ */

.dir-page{ max-width:none; }
.dir-page > p,
.dir-lead,
.dir-checklist{ max-width:none; }

/* контейнер шаблона страницы (row-40 flex-lg-row-reverse justify-content-xl-between
   > col-xl-12) на некоторых экранах не растягивался на всю ширину секции.
   ВАЖНО: width:100% на самой .row ломает штатную компенсацию Bootstrap-гаттера —
   отрицательный margin у .row сдвигает блок влево, а width:100% считается уже
   от сдвинутой позиции, из-за чего справа появлялся лишний зазор ~15px.
   Не трогаем ширину/margin у .row вообще — растягиваем только колонку внутри neё,
   этого достаточно, чтобы контент занимал всю доступную ширину */
.row-40.flex-lg-row-reverse.justify-content-xl-between > .col-xl-12,
.row-40.flex-lg-row-reverse.justify-content-xl-between > .col-12{
  flex:0 0 100% !important;
  max-width:100% !important;
  width:100% !important;
}

.dir-eyebrow{
  font-family:'IBM Plex Mono', monospace !important;
  font-size:12px; letter-spacing:.15em; text-transform:uppercase;
  color:var(--bjj-gold) !important;
  display:flex; align-items:center; gap:10px;
  margin-bottom:16px;
}
.dir-eyebrow .dot{
  width:6px; height:6px; background:var(--bjj-red);
  border-radius:50%; display:inline-block;
}

.dir-age-tags{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:22px; }
.dir-age-tag{
  font-family:'IBM Plex Mono', monospace !important;
  font-size:12px;
  font-weight:600;
  padding:5px 12px;
  border:1px solid var(--bjj-line);
  background:var(--bjj-bg-card);
  color:var(--bjj-ink-dim) !important;
}

.dir-lead{
  font-size:18px !important;
  line-height:1.6 !important;
  color:var(--bjj-ink) !important;
  margin-bottom:0 !important;
}
.dir-lead strong{ color:var(--bjj-ink) !important; }

.dir-divider{
  height:3px;
  margin:36px 0;
  max-width:120px;
  background: repeating-linear-gradient(
    90deg,
    var(--bjj-ink) 0, var(--bjj-ink) 12px,
    var(--bjj-red) 12px, var(--bjj-red) 15px
  );
  font-size:0; line-height:0; color:transparent;
}

.dir-page h2{
  font-family:'Bebas Neue', sans-serif !important;
  font-size:clamp(24px,3vw,32px) !important;
  letter-spacing:.02em;
  text-transform:uppercase;
  color:var(--bjj-ink) !important;
  margin:44px 0 16px !important;
}
.dir-page h2:first-of-type{ margin-top:36px !important; }

.dir-page p{
  color:var(--bjj-ink-dim) !important;
  font-size:15.5px;
  line-height:1.7;
}

.dir-checklist{
  list-style:none;
  margin:20px 0 !important;
  padding:0 !important;
  display:grid;
  gap:10px;
}
.dir-checklist li{
  position:relative;
  padding-left:28px;
  color:var(--bjj-ink) !important;
  font-size:15px;
  line-height:1.5;
}
.dir-checklist li::before{
  content:"✓";
  position:absolute; left:0; top:0;
  font-family:'IBM Plex Mono', monospace;
  font-weight:600;
  color:var(--bjj-red);
}

.dir-audience-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1px;
  background:var(--bjj-line);
  border:1px solid var(--bjj-line);
  margin:20px 0;
}
@media(max-width:640px){ .dir-audience-grid{ grid-template-columns:1fr; } }

.dir-card{
  background:var(--bjj-bg-card);
  padding:24px;
  position:relative;
  transition:background .25s;
}
.dir-card:hover{ background:var(--bjj-bg-card-2); }
.dir-card::before{
  content:"";
  position:absolute; left:0; top:0; right:0;
  height:3px;
  background:var(--bjj-gold);
}
.dir-card-title{
  font-family:'Bebas Neue', sans-serif !important;
  font-size:20px !important;
  letter-spacing:.02em;
  color:var(--bjj-ink) !important;
  margin:6px 0 10px !important;
}
.dir-card-text{
  color:var(--bjj-ink-dim) !important;
  font-size:14px !important;
  line-height:1.6 !important;
  margin:0 !important;
}

.dir-steps{
  list-style:none;
  margin:20px 0 !important;
  padding:0 !important;
}
.dir-steps li{
  display:flex;
  align-items:baseline;
  gap:18px;
  padding:16px 0;
  border-bottom:1px solid var(--bjj-line);
}
.dir-steps li:last-child{ border-bottom:none; }
.dir-step-num{
  font-family:'IBM Plex Mono', monospace !important;
  font-size:20px;
  font-weight:600;
  color:var(--bjj-red);
  flex-shrink:0;
  min-width:32px;
}
.dir-step-text{
  color:var(--bjj-ink) !important;
  font-size:15px;
  line-height:1.55;
}

.dir-cta{
  margin-top:52px;
  padding:36px 30px;
  background:var(--bjj-bg-card-2);
  border:1px solid var(--bjj-line);
  text-align:center;
}
.dir-cta-title{
  font-family:'Bebas Neue', sans-serif !important;
  font-size:26px !important;
  letter-spacing:.02em;
  text-transform:uppercase;
  color:var(--bjj-ink) !important;
  margin:0 0 22px !important;
}
.dir-cta-text{
  color:var(--bjj-ink-dim) !important;
  font-size:14.5px !important;
  margin:0 0 20px !important;
}
.dir-cta-btn{
  display:inline-block;
  margin:0 0 22px !important;
}
.dir-cta-note{
  color:var(--bjj-ink-dim) !important;
  font-size:12.5px !important;
  margin:18px 0 0 !important;
  opacity:.8;
}
.dir-cta-note a{
  color:var(--bjj-gold) !important;
  text-decoration:underline;
}
.dir-cta-note a:hover{ color:var(--bjj-red) !important; }

/* ================================================================
   Карточки направлений на /catalog (сетка BJJ / MMA / ROSS) —
   колонка в шаблоне задана как text-left, из-за чего описание под
   каждой карточкой "гуляло" по ширине и было прижато к краю.
   Центрируем заголовок и описание, задаём единую ширину строки.
   ================================================================ */
.thumbnail-simple{
  text-align:center !important;
}
.thumbnail-simple .heading{
  text-align:center !important;
  margin-top:20px !important;
}
.thumbnail-simple .description{
  text-align:center !important;
  max-width:320px;
  margin:8px auto 0 !important;
  font-size:14.5px;
  line-height:1.65;
  color:var(--bjj-ink-dim) !important;
}

/* ================================================================
   Фото внутри статей направлений (после dir-intro, перед первым h2)
   ================================================================ */
img.dir-photo{
  display:block;
  width:100%;
  height:auto;
  margin:36px 0;
  box-sizing:border-box;
  border:1px solid var(--bjj-line);
  border-top:3px solid var(--bjj-gold);
}
