/* ============================================
   FIX: модалки Bootstrap без дёргания на mobile
   ============================================ */

body.modal-open {
    padding-right: 0 !important;
}

.modal-open .navbar-fixed-top,
.modal-open .navbar-fixed-bottom {
    padding-right: 0 !important;
}

/* Не forcing-уем overflow для body:not(.modal-open),
   иначе на mobile это конфликтует с анимацией Bootstrap */
body.modal-open {
    overflow: hidden !important;
}
    /* ============================================
       Навбар: бренд чуть ниже (по центру по высоте)
       ============================================ */
    .navbar-brand{
      height: 20px !important;
      padding-top: 18px !important;
      padding-bottom: 12px !important;
      line-height: 20px !important;
    }

    /* Убрать "свечение/подсветку" активного пункта навигации */
    .navbar-default .navbar-nav > .active > a,
    .navbar-default .navbar-nav > .active > a:hover,
    .navbar-default .navbar-nav > .active > a:focus {
      background: transparent !important;
      box-shadow: none !important;
      text-shadow: none !important;
      outline: none !important;
    }
    .navbar-default .navbar-nav > .active { box-shadow: none !important; }
    .navbar-default .navbar-nav > .active > a { border: 0 !important; }
    .navbar-default .navbar-nav > .active > a { color: var(--brand-accent) !important; }

    /* Опустить кнопку смены темы чуть ниже */
    .navbar-default .navbar-nav > li > a.ds-theme-toggle {
      padding-top: 18px !important;
      padding-bottom: 18px !important;
      line-height: 20px !important;
    }

    /* === КАРУСЕЛИ: закруглить ВСЕ углы так, чтобы не было видно прямых === */
    .carousel,
    .carousel-inner,
    .carousel-inner > .item,
    .carousel-inner > .item > img,
    .carousel-inner > .item > a > img {
      border-radius: 18px !important;
    }
    .carousel { overflow: hidden !important; }
    .carousel .left.carousel-control,
    .carousel .right.carousel-control { border-radius: 18px !important; }

    /* === ОТЗЫВЫ: 3 карточки рядом, БЕЗ карусели === */
    .ds-review-grid .ds-card { height: 100%; }
    .ds-review-card { padding: 86px 18px 18px !important; position: relative; overflow: visible; }
    .ds-review-card h3 {
      font-size: 18px;
      line-height: 1.25;
      margin: 0 0 8px 0 !important;
    }
    .ds-review-card p {
      font-size: 13px;
      line-height: 1.45;
      margin: 0 !important;
    }
    .ds-review-card small { font-size: 12px; display:block; margin-top: 10px; }

    .ds-stars { margin: 0 0 10px 0; }
    .ds-stars .fa { margin-right: 2px; }
    .ds-stars .fa-star { color: #f0ad4e; }
    .ds-stars .fa-star-o { color: #f0ad4e; opacity: .45; }

    /* === АНИМАЦИЯ СВЕЧЕНИЯ НА КНОПКАХ (все кнопки) === */
    .btn {
      transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
      will-change: transform, box-shadow;
    }
    .btn:focus { outline: none !important; }
    @keyframes dsGlowAccent {
      0% { box-shadow: 0 0 0 rgba(0,0,0,0); }
      50% { box-shadow: 0 0 14px var(--brand-accent); }
      100% { box-shadow: 0 0 18px var(--brand-accent); }
    }
    @keyframes dsGlowPrimary {
      0% { box-shadow: 0 0 0 rgba(0,0,0,0); }
      50% { box-shadow: 0 0 14px var(--brand-primary); }
      100% { box-shadow: 0 0 18px var(--brand-primary); }
    }
    @keyframes dsGlowDefault {
      0% { box-shadow: 0 0 0 rgba(0,0,0,0); }
      50% { box-shadow: 0 0 12px rgba(0,0,0,.18); }
      100% { box-shadow: 0 0 16px rgba(0,0,0,.22); }
    }
    .btn:hover, .btn:focus { transform: translateY(-1px); }
    .btn.btn-accent:hover, .btn.btn-accent:focus { animation: dsGlowAccent 1.2s ease-in-out infinite alternate; }
    .btn.btn-primary:hover, .btn.btn-primary:focus { animation: dsGlowPrimary 1.2s ease-in-out infinite alternate; }
    .btn.btn-default:hover, .btn.btn-default:focus { animation: dsGlowDefault 1.2s ease-in-out infinite alternate; }

    /* === NAV: пункты навигации как "кнопки" === */
    .navbar-default .navbar-nav > li > a.ds-nav-btn {
      border-radius: 999px;
      margin: 10px 6px;
      padding: 10px 10px !important;
      line-height: 20px !important;
      transition: transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
      will-change: transform, box-shadow;
    }
    .navbar-default .navbar-nav > li > a.ds-nav-btn:hover,
    .navbar-default .navbar-nav > li > a.ds-nav-btn:focus {
      transform: translateY(-1px);
      background: rgba(0,0,0,.04);
      box-shadow: 0 0 14px rgba(0,0,0,.18);
      text-decoration: none;
    }
    .navbar-default .navbar-nav > .active > a.ds-nav-btn {
      background: rgba(0,0,0,.03) !important;
      box-shadow: none !important;
      color: var(--brand-accent) !important;
    }
    @keyframes dsNavGlow {
      0% { box-shadow: 0 0 0 rgba(0,0,0,0); }
      100% { box-shadow: 0 0 16px rgba(0,0,0,.22); }
    }
    .navbar-default .navbar-nav > li > a.ds-nav-btn:hover { animation: dsNavGlow 1.0s ease-in-out infinite alternate; }

    /* === Таймер в навигации: чуть ниже + жирнее === */
    .ds-nav-timer-text {
      margin: 20px 8px 0 8px;
      padding: 0 0 0 10px;
      border-left: 1px solid rgba(0,0,0,.12);
      color: var(--muted);
      font-size: 13px;
      line-height: 20px;
      white-space: nowrap;
      font-weight: 600;
    }
    .ds-nav-timer-text strong { font-weight: 800; color: inherit; }


@media (max-width: 991px){
    .navbar-default .navbar-nav > li > a.ds-nav-btn {
      margin: 10px 4px;
      padding: 10px 4px !important;
    }
}



    /* =========================
       ВХОД: ВЫРОВНЯТЬ КАК "ТЕМА"
       ========================= */
    .navbar-nav.navbar-right > li { line-height: normal; }
    a.btn.ds-nav-login{
      color: #fff !important;
      display: inline-block;
      margin: 10px 6px !important;
      padding: 8px 12px !important;
      font-size: 13px !important;
      line-height: 20px !important;
      border-radius: 999px;
      vertical-align: middle;
    }


    a.btn.ds-nav-login:hover{
      color: #ff18ff !important;
    }

    a.btn.ds-nav-login i{ margin-right: 6px; }
    .navbar-nav.navbar-right > li { display: inline-block; }

    /* =========================
       MOBILE: убрать залипание подсветки + растянуть кнопку входа
       ========================= */
    @media (max-width: 767px){
      /* На тач-устройствах после клика ссылка может оставаться :focus */
      .navbar-default .navbar-nav > li > a.ds-nav-btn:focus{
        transform: none !important;
        background: transparent !important;
        box-shadow: none !important;
        outline: none !important;
      }

      /* Не оставлять "свечение" на кнопках в шапке после тапа */
      .navbar .btn:focus{
        animation: none !important;
        box-shadow: none !important;
        transform: none !important;
      }

      /* Кнопки справа в коллапсе должны быть блоками */
      .navbar-nav.navbar-right > li{ display: block; }

      /* Растянуть "Войти" на ширину меню */
      a.btn.ds-nav-login{
        display: block;
        width: calc(100% - 12px);
        margin: 8px 6px !important;
        text-align: center;
      }
    }

    /* === Доп. функции: кнопка "наверх" === */
    .ds-to-top {
      position: fixed;
      right: 18px;
      bottom: 18px;
      z-index: 1050;
      display: none;
      border-radius: 999px;
      padding: 10px 12px;
    }

    /* === Преподаватели: компактный размер + кликабельность карточки === */
    .ds-teachers .ds-card { height: 100%; cursor: pointer; }
    .ds-teachers .ds-card:focus { outline: none !important; }
    .ds-teachers .ds-card:hover { transform: translateY(-1px); }
    .ds-teachers .ds-img {
      width: 100%;
      height: 180px;
      object-fit: cover;
      border-radius: 12px;
      display: block;
    }
    .ds-teachers .ds-card-body { padding: 14px 14px; }
    .ds-teachers h3 { font-size: 18px; margin-top: 8px; }

    /* === Контакты: одинаковая высота/размер карточек === */
    .ds-contact-card {
      padding: 18px;
      height: 100%;
      display: flex;
      flex-direction: column;
    }
    .ds-contact-card .ds-contact-actions {
      margin-top: auto;
      padding-top: 12px;
    }
    /* ВАЖНОЕ: одинаковый min-height, чтобы "Быстрая запись" была как "Как нас найти" */
    #contacts .ds-contact-card{ min-height: 160px; } /* можешь поменять число, если хочешь выше/ниже */

    /* Типографика в модалке направлений */
    .ds-dir-meta { color: var(--muted); margin: 0 0 10px 0; }
    .ds-dir-list { margin: 10px 0 0 0; padding-left: 18px; }
    .ds-dir-list li { margin-bottom: 6px; }

    /* Модалка преподавателя */
    .ds-teacher-meta { color: var(--muted); margin: 0 0 10px 0; }
    .ds-teacher-photo {
      width: 100%;
      max-height: 220px;
      object-fit: cover;
      border-radius: 12px;
      display: block;
      margin: 0 0 12px 0;
    }


/* =========================================================
    единый стиль блоков (свечение "из-под" + чуть ярче граница)
   - НЕТ подъёма/дерганья (transform выключен)
   - На hover/фокус НИЧЕГО не меняется (тот же glow/граница)
   - Акцент берём как у кнопки "Войти" (#ff18ff)
   ========================================================= */

.ds-container{
  --ds-accent-rgb: 255, 24, 255;

  /* граница чуть ярче, но аккуратно */
  --ds-border-accent: rgba(var(--ds-accent-rgb), .18);
  --ds-ring: rgba(var(--ds-accent-rgb), .14);

  /* внешнее свечение снизу */
  --ds-glow: rgba(var(--ds-accent-rgb), .07);
}
html.theme-dark .ds-container{
  --ds-border-accent: rgba(var(--ds-accent-rgb), .18);
  --ds-ring: rgba(var(--ds-accent-rgb), .12);
  --ds-glow: rgba(var(--ds-accent-rgb), .18);
}

/* =========================================================
   ЕДИНЫЙ СТИЛЬ — НЕ ТРОГАЕМ FLASH
   ========================================================= */
.ds-container{
  --ds-accent-rgb: 255, 24, 255;
  --ds-border-accent: rgba(var(--ds-accent-rgb), .18);
  --ds-ring: rgba(var(--ds-accent-rgb), .14);
  --ds-glow: rgba(var(--ds-accent-rgb), .07);
}
html.theme-dark .ds-container{
  --ds-border-accent: rgba(var(--ds-accent-rgb), .18);
  --ds-ring: rgba(var(--ds-accent-rgb), .12);
  --ds-glow: rgba(var(--ds-accent-rgb), .18);
}

/* карточки — применяем стиль, но НЕ когда включён flash */
.ds-container .ds-card:not(.ds-card-flash),
.ds-container .ds-card:not(.ds-card-flash):hover,
.ds-container .ds-card:not(.ds-card-flash):focus,
.ds-container .ds-card:not(.ds-card-flash):focus-within{
  transform: none !important;
  border-color: var(--ds-border-accent) !important;
  box-shadow:
    var(--card-shadow),
    0 0 0 1px var(--ds-ring),
    0 8px 36px var(--ds-glow) !important;
  transition: box-shadow 240ms ease, border-color 240ms ease !important;
}

/* hero/карусели — НЕ трогаем homeGalleryCarousel когда flash */
.ds-container .ds-hero,
.ds-container .ds-hero:hover,
.ds-container .ds-hero:focus,
.ds-container .ds-hero:focus-within,
.ds-container .carousel,
.ds-container .carousel:hover,
.ds-container .carousel:focus,
.ds-container .carousel:focus-within,
#homeGalleryCarousel:not(.ds-gallery-flash),
#homeGalleryCarousel:not(.ds-gallery-flash):hover,
#homeGalleryCarousel:not(.ds-gallery-flash):focus,
#homeGalleryCarousel:not(.ds-gallery-flash):focus-within{
  transform: none !important;
  outline: none !important;
  filter: none !important;
  box-shadow:
    0 0 0 1px var(--ds-ring),
    0 8px 36px var(--ds-glow) !important;
  transition: box-shadow 240ms ease !important;
}

#homeGalleryCarousel,
#homeGalleryCarousel .carousel-inner,
#homeGalleryCarousel .item,
#homeGalleryCarousel .item > img{
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}

#homeGalleryCarousel .item > img{
  display: block;
  width: 100%;
}
/* =========================
   FLASH HIGHLIGHTS
   ========================= */

.ds-card.ds-card-flash{
  box-shadow:0 0 0 3px rgba(46,204,113,.55), 0 10px 30px rgba(46,204,113,.18) !important;
  transform:translateY(-2px);
  transition:box-shadow .18s ease, transform .18s ease;
}

#homeGalleryCarousel.ds-gallery-flash{
  box-shadow:0 0 0 3px rgba(46,204,113,.55), 0 10px 30px rgba(46,204,113,.18) !important;
  border-radius:18px;
  overflow:hidden;
  transition:box-shadow .18s ease;
}








/* ===== Review form: отзывы===== */
.ds-review-toolbar{ margin: 6px 0 0; }

/* В calendar.css стиль селекта заскоуплен на #about-2.
   Для страницы отзывов повторяем эти же правила, но на .ds-review-toolbar */
.ds-review-toolbar .ds-studio-card{ width: 100%; }
.ds-review-toolbar .ds-studio-card-body{ padding: 14px 18px; }

.ds-review-toolbar select.ds-studio-select{
  width: 100%;
  display: block;
  cursor: pointer;
  border-radius: 14px;

  border: 1px solid rgba(255,255,255,.22);
  box-shadow: 0 0 0 1px rgba(0,0,0,.08) inset;

  background: var(--surface);
  color: var(--text);

  height: 46px;
  padding: 10px 52px 10px 14px;

  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;

  background-image:
    linear-gradient(45deg, transparent 50%, currentColor 50%),
    linear-gradient(-45deg, transparent 50%, currentColor 50%);
  background-position:
    right 18px center,
    right 28px center;
  background-size: 12px 12px, 12px 12px;
  background-repeat: no-repeat;

  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

html.theme-dark .ds-review-toolbar select.ds-studio-select{
  border-color: rgba(255,255,255,.28);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.06) inset,
    0 0 0 1px rgba(0,0,0,.10);
  color-scheme: dark;
}

html:not(.theme-dark) .ds-review-toolbar select.ds-studio-select{
  color-scheme: light;
}

.ds-review-toolbar select.ds-studio-select:hover{
  border-color: rgba(103,157,198,.50);
}

.ds-review-toolbar select.ds-studio-select:focus{
  outline: none;
  border-color: rgba(103,157,198,.55);
  box-shadow: 0 0 0 3px rgba(103,157,198,.18);
}

.ds-review-toolbar select.ds-studio-select option{
  background: var(--surface);
  color: var(--text);
}


.ds-review-card .ds-muted{ white-space: pre-line; }
/* Сохраняем переносы строк из textarea */
.ds-review-card .ds-review-body{
  white-space: pre-line;   /* \n -> перенос */
  word-break: break-word;  /* длинные слова не ломают карточку */
}

.ds-review-msg .alert{ margin: 0 0 14px 0; }

/* ===== Review form: rating stars ===== */
.ds-rating{
  display: inline-flex;
  flex-direction: row-reverse;
  gap: 10px;
  user-select: none;
}

.ds-rating input[type="radio"]{
  position: absolute;
  left: -9999px;
}

/* размер + базовый цвет */
.ds-rating label{
  margin: 0 0 0 6px;
  cursor: pointer;
  font-size: 20px;     /* КРУПНЕЕ */
  line-height: 1;
  opacity: 1;
  color: rgba(127,127,127,.35); /* неактивные */
  transition: transform .12s ease, color .12s ease, filter .12s ease;
}

/* hover/preview */
.ds-rating label:hover{
  transform: translateY(-1px);
  color: #f0ad4e; /* желтый preview */
}

/* выбранные + “слева” от выбранного (из-за row-reverse) */
.ds-rating input:checked ~ label{
  color: #f0ad4e; /* ЖЁЛТЫЕ активные */
  filter: drop-shadow(0 2px 6px rgba(240,173,78,.25));
}

/* наводим — подсветить цепочку */
.ds-rating label:hover,
.ds-rating label:hover ~ label{
  color: #f0ad4e;
}

/* Запретить ручное растягивание textarea */
#rev_body{
  width: 100%;
  height: clamp(140px, 10vw, 240px);
  resize: none;
  overflow-y: auto;
}

.ds-review-form-wrap .mce-tinymce{
  margin-top: 8px;
}

.ds-review-form-wrap .mce-edit-area iframe{
  min-height: 220px;
}

.ds-login-inline.btn.ds-nav-login{
  display: block !important;
  width: 100%;
  text-align: center;
  margin: 0 !important;
}


/* ===== Login button inside content: behave like header button ===== */
a.btn.ds-nav-login.ds-login-inline,
a.btn.ds-nav-login.ds-login-inline:hover,
a.btn.ds-nav-login.ds-login-inline:focus,
a.btn.ds-nav-login.ds-login-inline:active{
  text-decoration: none !important;   /* убрать underline */
  color: #fff !important;             /* как в шапке — всегда белый текст */
}

/* если внутри где-то есть span и ему задают цвет отдельно */
a.btn.ds-nav-login.ds-login-inline span,
a.btn.ds-nav-login.ds-login-inline:hover span,
a.btn.ds-nav-login.ds-login-inline:focus span{
  color: inherit !important;
}

/* на всякий случай: если есть глобальные стили на a:hover */
a.btn.ds-nav-login.ds-login-inline:hover{
  filter: none !important;            /* если где-то меняют */
}

/* убрать “ссылочный” outline/подсветку */
a.btn.ds-nav-login.ds-login-inline:focus{
  outline: none !important;
}

/* адаптируем отступы: в navbar margin 10px 6px */
a.btn.ds-nav-login.ds-login-inline{
  margin: 0 !important;
}
